From 95fca407006ffc9d16698c66366dc5f3892f8ead Mon Sep 17 00:00:00 2001 From: NeoZng Date: Tue, 11 Apr 2023 14:54:12 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E9=99=8D=E4=BD=8Emessage=20center=E7=9A=84?= =?UTF-8?q?=E5=86=97=E4=BD=99=E5=BA=A6,=E6=8F=90=E5=8D=87can=5Fcomm?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E6=94=B6=E6=95=88=E7=8E=87=E5=B9=B6=E5=9C=A8?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=A2=9E=E5=8A=A0=E5=BB=B6=E6=97=B6=E4=BF=9D?= =?UTF-8?q?=E8=AF=81=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/can_comm/can_comm.c | 33 +++++----- modules/message_center/message_center.c | 85 +++++++++---------------- modules/motor/DJImotor/dji_motor.c | 1 + 3 files changed, 47 insertions(+), 72 deletions(-) diff --git a/modules/can_comm/can_comm.c b/modules/can_comm/can_comm.c index ad098b0..29c83fa 100644 --- a/modules/can_comm/can_comm.c +++ b/modules/can_comm/can_comm.c @@ -2,6 +2,7 @@ #include "memory.h" #include "stdlib.h" #include "crc8.h" +#include "bsp_dwt.h" /** * @brief 重置CAN comm的接收状态和buffer @@ -25,7 +26,7 @@ static void CANCommRxCallback(CANInstance *_instance) { CANCommInstance *comm = (CANCommInstance *)_instance->id; // 注意写法,将can instance的id强制转换为CANCommInstance*类型 - /* 接收状态判断 */ + /* 当前接收状态判断 */ if (_instance->rx_buff[0] == CAN_COMM_HEADER && comm->recv_state == 0) // 之前尚未开始接收且此次包里第一个位置是帧头 { if (_instance->rx_buff[1] == comm->recv_data_len) // 如果这一包里的datalen也等于我们设定接收长度(这是因为暂时不支持动态包长) @@ -51,25 +52,18 @@ static void CANCommRxCallback(CANInstance *_instance) // 收完这一包以后刚好等于总buf len,说明已经收完了 if (comm->cur_recv_len == comm->recv_buf_len) - { - // 如果buff里本该是tail的位置不等于CAN_COMM_TAIL - if (comm->raw_recvbuf[comm->recv_buf_len - 1] != CAN_COMM_TAIL) - { - CANCommResetRx(comm); - return; // 重置状态然后返回 - } - else // tail正确, 对数据进行crc8校验 - { - if (comm->raw_recvbuf[comm->recv_buf_len - 2] == - crc_8(comm->raw_recvbuf + 2, comm->recv_data_len)) - { // 通过校验,复制数据到unpack_data中 - memcpy(comm->unpacked_recv_data, comm->raw_recvbuf + 2, comm->recv_data_len); // 数据量大的话考虑使用DMA + { + // 如果buff里本tail的位置等于CAN_COMM_TAIL + if (comm->raw_recvbuf[comm->recv_buf_len - 1] == CAN_COMM_TAIL) + { // 通过校验,复制数据到unpack_data中 + if (comm->raw_recvbuf[comm->recv_buf_len - 2] == crc_8(comm->raw_recvbuf + 2, comm->recv_data_len)) + { // 数据量大的话考虑使用DMA + memcpy(comm->unpacked_recv_data, comm->raw_recvbuf + 2, comm->recv_data_len); comm->update_flag = 1; // 数据更新flag置为1 } - CANCommResetRx(comm); - return; // 重置状态然后返回 } - return; // 访问完一个can comm直接退出,一次中断只处理一个实例的回调 + CANCommResetRx(comm); + return; // 重置状态然后返回 } } } @@ -108,7 +102,10 @@ void CANCommSend(CANCommInstance *instance, uint8_t *data) send_len = instance->send_buf_len - i >= 8 ? 8 : instance->send_buf_len - i; CANSetDLC(instance->can_ins, send_len); memcpy(instance->can_ins->tx_buff, instance->raw_sendbuf + i, send_len); - CANTransmit(instance->can_ins,1); + CANTransmit(instance->can_ins, 1); + if(instance->send_buf_len - i > 8) + DWT_Delay(0.001*0.005); // delay 5ns以保证CAN发送的顺序,如果是最后一包,不需要延时 + // CAN的邮箱不保证发送顺序,当存在空闲时便放入对应邮箱,因此需要延时保证发送顺序 } } diff --git a/modules/message_center/message_center.c b/modules/message_center/message_center.c index cc4e826..ce62f64 100644 --- a/modules/message_center/message_center.c +++ b/modules/message_center/message_center.c @@ -1,6 +1,7 @@ #include "message_center.h" #include "stdlib.h" #include "string.h" +#include "bsp_log.h" /* message_center是fake head node,是方便链表编写的技巧,这样就不需要处理链表头的特殊情况 */ static Publisher_t message_center = { @@ -12,6 +13,7 @@ static void CheckName(char *name) { if (strnlen(name, MAX_EVENT_NAME_LEN + 1) >= MAX_EVENT_NAME_LEN) { + LOGERROR("EVENT NAME TOO LONG:%s", name); while (1) ; // 进入这里说明事件名超出长度限制 } @@ -21,65 +23,12 @@ static void CheckLen(uint8_t len1, uint8_t len2) { if (len1 != len2) { + LOGERROR("EVENT LEN NOT SAME:%d,%d", len1, len2); while (1) ; // 进入这里说明相同事件的消息长度却不同 } } -Subscriber_t *SubRegister(char *name, uint8_t data_len) -{ - CheckName(name); - Publisher_t *node = &message_center; // 可以将message_center看作对消息管理器的抽象,它用于管理所有pub和sub - while (node->next_event_node) // 遍历链表,如果当前有发布者已经注册 - { - node = node->next_event_node; // 指向下一个发布者(发布者发布的事件) - if (strcmp(name, node->event_name) == 0) // 如果事件名相同就订阅这个事件 - { - CheckLen(data_len, node->data_len); - // 创建新的订阅者结点,申请内存,注意要memset因为新空间不一定是空的,可能有之前留存的垃圾值 - Subscriber_t *ret = (Subscriber_t *)malloc(sizeof(Subscriber_t)); - memset(ret, 0, sizeof(Subscriber_t)); - // 对新建的Subscriber进行初始化 - ret->data_len = data_len; // 设定数据长度 - for (size_t i = 0; i < QUEUE_SIZE; ++i) - { // 给消息队列的每一个元素分配空间,queue里保存的实际上是数据执指针,这样可以兼容不同的数据长度 - ret->queue[i] = malloc(sizeof(data_len)); - } - // 如果是第一个订阅者,特殊处理一下 - if (node->first_subs == NULL) - { - node->first_subs = ret; - return ret; - } - // 遍历订阅者链表,直到到达尾部 - Subscriber_t *sub = node->first_subs; // 作为iterator - while (sub->next_subs_queue) // 遍历订阅了该事件的订阅者链表 - { - sub = sub->next_subs_queue; // 移动到下一个订阅者,遇到空指针停下,说明到了链表尾部 - } - sub->next_subs_queue = ret; // 把刚刚创建的订阅者接上 - return ret; - } - // 事件名不同,在下一轮循环访问下一个结点 - } - // 遍历完,发现尚未注册事件(还没有发布者);那么创建一个事件,此时node是publisher链表的最后一个结点 - node->next_event_node = (Publisher_t *)malloc(sizeof(Publisher_t)); - memset(node->next_event_node, 0, sizeof(Publisher_t)); - strcpy(node->next_event_node->event_name, name); - node->next_event_node->data_len = data_len; - // 同之前,创建subscriber作为新事件的第一个订阅者 - Subscriber_t *ret = (Subscriber_t *)malloc(sizeof(Subscriber_t)); - memset(ret, 0, sizeof(Subscriber_t)); - ret->data_len = data_len; - for (size_t i = 0; i < QUEUE_SIZE; ++i) - { // 给消息队列分配空间 - ret->queue[i] = malloc(sizeof(data_len)); - } - // 新建的订阅者是该发布者的第一个订阅者,发布者会通过这个指针顺序访问所有订阅者 - node->next_event_node->first_subs = ret; - return ret; -} - Publisher_t *PubRegister(char *name, uint8_t data_len) { CheckName(name); @@ -103,6 +52,34 @@ Publisher_t *PubRegister(char *name, uint8_t data_len) return node->next_event_node; } +Subscriber_t *SubRegister(char *name, uint8_t data_len) +{ + Publisher_t* pub = PubRegister(name, data_len); // 查找或创建该事件的发布者 + // 创建新的订阅者结点,申请内存,注意要memset因为新空间不一定是空的,可能有之前留存的垃圾值 + Subscriber_t *ret = (Subscriber_t *)malloc(sizeof(Subscriber_t)); + memset(ret, 0, sizeof(Subscriber_t)); + // 对新建的Subscriber进行初始化 + ret->data_len = data_len; // 设定数据长度 + for (size_t i = 0; i < QUEUE_SIZE; ++i) + { // 给消息队列的每一个元素分配空间,queue里保存的实际上是数据执指针,这样可以兼容不同的数据长度 + ret->queue[i] = malloc(sizeof(data_len)); + } + // 如果是第一个订阅者,特殊处理一下,将first_subs指针指向新建的订阅者(详见文档) + if (pub->first_subs == NULL) + { + pub->first_subs = ret; + return ret; + } + // 若该话题已经有订阅者, 遍历订阅者链表,直到到达尾部 + Subscriber_t *sub = pub->first_subs; // 作为iterator + while (sub->next_subs_queue) // 遍历订阅了该事件的订阅者链表 + { + sub = sub->next_subs_queue; // 移动到下一个订阅者,遇到空指针停下,说明到了链表尾部 + } + sub->next_subs_queue = ret; // 把刚刚创建的订阅者接上 + return ret; +} + /* 如果队列为空,会返回0;成功获取数据,返回1;后续可以做更多的修改,比如剩余消息数目等 */ uint8_t SubGetMessage(Subscriber_t *sub, void *data_ptr) { diff --git a/modules/motor/DJImotor/dji_motor.c b/modules/motor/DJImotor/dji_motor.c index 898b287..8c20570 100644 --- a/modules/motor/DJImotor/dji_motor.c +++ b/modules/motor/DJImotor/dji_motor.c @@ -107,6 +107,7 @@ static void MotorSenderGrouping(DJIMotorInstance *motor, CAN_Init_Config_s *conf break; default: // other motors should not be registered here + LOGERROR("You must not register other motors using the API of DJI motor."); while (1) ; // 其他电机不应该在这里注册 } From 6523bbd6a9e650359409dfd6dc309e4bf6823fd0 Mon Sep 17 00:00:00 2001 From: NeoZng Date: Thu, 13 Apr 2023 10:31:06 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbmi088=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E9=9B=B6=E9=A3=98=E9=94=99=E8=AF=AF,=E4=B8=BAinstask=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9B=9B=E5=85=83=E6=95=B0?= =?UTF-8?q?=E4=BB=A5=E9=98=B2=E6=AD=A2=E9=9B=B6=E9=A3=98=E5=8F=91=E6=95=A3?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8Dcancomm=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HAL_N_Middlewares/Src/can.c | 4 +-- modules/BMI088/bmi088.c | 6 ++--- modules/algorithm/QuaternionEKF.c | 14 ++++------ modules/algorithm/QuaternionEKF.h | 2 +- modules/algorithm/user_lib.c | 24 +++++++++++++++++ modules/algorithm/user_lib.h | 8 +++++- modules/imu/BMI088driver.c | 6 ++--- modules/imu/ins_task.c | 44 ++++++++++++++++++++++++++----- 8 files changed, 82 insertions(+), 26 deletions(-) diff --git a/HAL_N_Middlewares/Src/can.c b/HAL_N_Middlewares/Src/can.c index 292573f..fe60482 100644 --- a/HAL_N_Middlewares/Src/can.c +++ b/HAL_N_Middlewares/Src/can.c @@ -49,7 +49,7 @@ void MX_CAN1_Init(void) hcan1.Init.AutoWakeUp = DISABLE; hcan1.Init.AutoRetransmission = DISABLE; hcan1.Init.ReceiveFifoLocked = DISABLE; - hcan1.Init.TransmitFifoPriority = DISABLE; + hcan1.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan1) != HAL_OK) { Error_Handler(); @@ -81,7 +81,7 @@ void MX_CAN2_Init(void) hcan2.Init.AutoWakeUp = DISABLE; hcan2.Init.AutoRetransmission = DISABLE; hcan2.Init.ReceiveFifoLocked = DISABLE; - hcan2.Init.TransmitFifoPriority = DISABLE; + hcan2.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan2) != HAL_OK) { Error_Handler(); diff --git a/modules/BMI088/bmi088.c b/modules/BMI088/bmi088.c index 433734f..91ab6c9 100644 --- a/modules/BMI088/bmi088.c +++ b/modules/BMI088/bmi088.c @@ -261,9 +261,9 @@ BMI088_Data_t BMI088Acquire(BMI088Instance *bmi088) first_read_flag = 1; // 最后在这里,完成一次读取,标志第一次读取完成 } // 别担心,初始化调用的时候offset(即零飘bias)是0 - bmi088->gyro[0] = (float)(int16_t)(((buf[1]) << 8) | buf[0]) * gyrosen - bias1 * dt_imu; - bmi088->gyro[0] = (float)(int16_t)(((buf[3]) << 8) | buf[2]) * gyrosen - bias2 * dt_imu; - bmi088->gyro[0] = (float)(int16_t)(((buf[5]) << 8) | buf[4]) * gyrosen - bias3 * dt_imu; + bmi088->gyro[0] = (float)(int16_t)(((buf[1]) << 8) | buf[0]) * gyrosen - bias1; + bmi088->gyro[0] = (float)(int16_t)(((buf[3]) << 8) | buf[2]) * gyrosen - bias2; + bmi088->gyro[0] = (float)(int16_t)(((buf[5]) << 8) | buf[4]) * gyrosen - bias3; BMI088AccelRead(bmi088, BMI088_TEMP_M, buf, 2); // 读温度,温度传感器在accel上 bmi088->temperature = (float)(int16_t)(((buf[0] << 3) | (buf[1] >> 5))) * BMI088_TEMP_FACTOR + BMI088_TEMP_OFFSET; diff --git a/modules/algorithm/QuaternionEKF.c b/modules/algorithm/QuaternionEKF.c index 5513486..27c06e5 100644 --- a/modules/algorithm/QuaternionEKF.c +++ b/modules/algorithm/QuaternionEKF.c @@ -47,7 +47,7 @@ static void IMU_QuaternionEKF_xhatUpdate(KalmanFilter_t *kf); * @param[in] lambda fading coefficient 0.9996 * @param[in] lpf lowpass filter coefficient 0 */ -void IMU_QuaternionEKF_Init(float process_noise1, float process_noise2, float measure_noise, float lambda, float lpf) +void IMU_QuaternionEKF_Init(float* init_quaternion,float process_noise1, float process_noise2, float measure_noise, float lambda, float lpf) { QEKF_INS.Initialized = 1; QEKF_INS.Q1 = process_noise1; @@ -69,10 +69,10 @@ void IMU_QuaternionEKF_Init(float process_noise1, float process_noise2, float me Matrix_Init(&QEKF_INS.ChiSquare, 1, 1, (float *)QEKF_INS.ChiSquare_Data); // 姿态初始化 - QEKF_INS.IMU_QuaternionEKF.xhat_data[0] = 1; - QEKF_INS.IMU_QuaternionEKF.xhat_data[1] = 0; - QEKF_INS.IMU_QuaternionEKF.xhat_data[2] = 0; - QEKF_INS.IMU_QuaternionEKF.xhat_data[3] = 0; + for(int i = 0; i < 4; i++) + { + QEKF_INS.IMU_QuaternionEKF.xhat_data[i] = init_quaternion[i]; + } // 自定义函数初始化,用于扩展或增加kf的基础功能 QEKF_INS.IMU_QuaternionEKF.User_Func0_f = IMU_QuaternionEKF_Observe; @@ -99,10 +99,6 @@ void IMU_QuaternionEKF_Update(float gx, float gy, float gz, float ax, float ay, // 0.5(Ohm-Ohm^bias)*deltaT,用于更新工作点处的状态转移F矩阵 static float halfgxdt, halfgydt, halfgzdt; static float accelInvNorm; - if (!QEKF_INS.Initialized) - { - IMU_QuaternionEKF_Init(10, 0.001, 1000000 * 10, 0.9996 * 0 + 1, 0); - } /* F, number with * represent vals to be set 0 1* 2* 3* 4 5 diff --git a/modules/algorithm/QuaternionEKF.h b/modules/algorithm/QuaternionEKF.h index f7b4d7e..26ab0a9 100644 --- a/modules/algorithm/QuaternionEKF.h +++ b/modules/algorithm/QuaternionEKF.h @@ -69,7 +69,7 @@ typedef struct extern QEKF_INS_t QEKF_INS; extern float chiSquare; extern float ChiSquareTestThreshold; -void IMU_QuaternionEKF_Init(float process_noise1, float process_noise2, float measure_noise, float lambda, float lpf); +void IMU_QuaternionEKF_Init(float* init_quaternion,float process_noise1, float process_noise2, float measure_noise, float lambda, float lpf); void IMU_QuaternionEKF_Update(float gx, float gy, float gz, float ax, float ay, float az, float dt); #endif diff --git a/modules/algorithm/user_lib.c b/modules/algorithm/user_lib.c index 78d451a..5fe5042 100644 --- a/modules/algorithm/user_lib.c +++ b/modules/algorithm/user_lib.c @@ -162,4 +162,28 @@ int float_rounding(float raw) if (decimal > 0.5f) integer++; return integer; +} + +// 三维向量归一化 +float* Norm3d(float* v) +{ + float len = Sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); + v[0] /= len; + v[1] /= len; + v[2] /= len; + return v; +} + +// 三维向量叉乘v1 x v2 +void Cross3d(float* v1, float* v2,float* res) +{ + res[0] = v1[1] * v2[2] - v1[2] * v2[1]; + res[1] = v1[2] * v2[0] - v1[0] * v2[2]; + res[2] = v1[0] * v2[1] - v1[1] * v2[0]; +} + +// 三维向量点乘 +float Dot3d(float* v1, float* v2) +{ + return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2]; } \ No newline at end of file diff --git a/modules/algorithm/user_lib.h b/modules/algorithm/user_lib.h index 6e76eac..0197d2e 100644 --- a/modules/algorithm/user_lib.h +++ b/modules/algorithm/user_lib.h @@ -88,7 +88,7 @@ extern uint8_t GlobalDebugMode; #define VAL_MAX(a, b) ((a) > (b) ? (a) : (b)) /** - * @brief 返回一块干净的内存,不过仍然需要强制转换为你需要的类型 + * @brief 返回一块干净的内?,不过仍然需要强制转?为你需要的类型 * * @param size 分配大小 * @return void* @@ -114,6 +114,12 @@ float theta_format(float Ang); int float_rounding(float raw); +float* Norm3d(float* v); + +void Cross3d(float* v1, float* v2, float* res); + +float Dot3d(float* v1, float* v2); + //���ȸ�ʽ��Ϊ-PI~PI #define rad_format(Ang) loop_float_constrain((Ang), -PI, PI) diff --git a/modules/imu/BMI088driver.c b/modules/imu/BMI088driver.c index c4d148e..4772204 100644 --- a/modules/imu/BMI088driver.c +++ b/modules/imu/BMI088driver.c @@ -347,11 +347,11 @@ void BMI088_Read(IMU_Data_t *bmi088) if (caliOffset) { bmi088_raw_temp = (int16_t)((buf[3]) << 8) | buf[2]; - bmi088->Gyro[0] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[0] * dt; + bmi088->Gyro[0] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[0]; bmi088_raw_temp = (int16_t)((buf[5]) << 8) | buf[4]; - bmi088->Gyro[1] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[1] * dt; + bmi088->Gyro[1] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[1]; bmi088_raw_temp = (int16_t)((buf[7]) << 8) | buf[6]; - bmi088->Gyro[2] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[2] * dt; + bmi088->Gyro[2] = bmi088_raw_temp * BMI088_GYRO_SEN - bmi088->GyroOffset[2]; } else { diff --git a/modules/imu/ins_task.c b/modules/imu/ins_task.c index a64a78b..8fd18d7 100644 --- a/modules/imu/ins_task.c +++ b/modules/imu/ins_task.c @@ -43,6 +43,33 @@ static void IMU_Temperature_Ctrl(void) IMUPWMSet(float_constrain(float_rounding(TempCtrl.Output), 0, UINT32_MAX)); } +// 使用加速度计的数据初始化Roll和Pitch,而Yaw置0,这样可以避免在初始时候的姿态估计误差 +static void InitQuaternion(float* init_q4) +{ + float acc_init[3] = {0}; + float gravity_norm[3] = {0, 0, 1}; // 导航系重力加速度矢量,归一化后为(0,0,1) + float axis_rot[3] = {0}; // 旋转轴 + // 读取100次加速度计数据,取平均值作为初始值 + for (uint8_t i = 0; i < 100; ++i) + { + BMI088_Read(&BMI088); + acc_init[X] += BMI088.Accel[X]; + acc_init[Y] += BMI088.Accel[Y]; + acc_init[Z] += BMI088.Accel[Z]; + DWT_Delay(0.001); + } + for (uint8_t i = 0; i < 3; ++i) + acc_init[i] /= 100; + Norm3d(acc_init); + // 计算原始加速度矢量和导航系重力加速度矢量的夹角 + float angle = acosf(Dot3d(acc_init, gravity_norm)); + Cross3d(acc_init, gravity_norm, axis_rot); + Norm3d(axis_rot); + init_q4[0] = cosf(angle / 2.0f); + for(uint8_t i = 0; i < 2; ++i) + init_q4[i + 1] = axis_rot[i] * sinf(angle / 2.0f); // 轴角公式,第三轴为0(没有z轴分量) +} + attitude_t *INS_Init(void) { while (BMI088Init(&hspi1, 1) != BMI088_NO_ERROR) @@ -55,19 +82,22 @@ attitude_t *INS_Init(void) IMU_Param.Roll = 0; IMU_Param.flag = 1; - IMU_QuaternionEKF_Init(10, 0.001, 10000000, 1, 0); + float init_quaternion[4] = {0}; + InitQuaternion(init_quaternion); + IMU_QuaternionEKF_Init(init_quaternion, 10, 0.001, 1000000, 1, 0); // imu heat init PID_Init_Config_s config = {.MaxOut = 2000, - .IntegralLimit = 300, - .DeadBand = 0, - .Kp = 1000, - .Ki = 20, - .Kd = 0, - .Improve = 0x01}; // enable integratiaon limit + .IntegralLimit = 300, + .DeadBand = 0, + .Kp = 1000, + .Ki = 20, + .Kd = 0, + .Improve = 0x01}; // enable integratiaon limit PIDInit(&TempCtrl, &config); // noise of accel is relatively big and of high freq,thus lpf is used INS.AccelLPF = 0.0085; + DWT_GetDeltaT64(&INS_DWT_Count); return (attitude_t *)&INS.Gyro; // @todo: 这里偷懒了,不要这样做! 修改INT_t结构体可能会导致异常,待修复. } From 1bc2ff411cb49152c638e31189e5caa255aa7233 Mon Sep 17 00:00:00 2001 From: NeoZng Date: Thu, 13 Apr 2023 11:33:31 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=BB=93=E6=9E=84=EF=BC=8C=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9cubemx=E8=BF=9B=E8=A1=8C=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E6=88=96=E6=96=B0=E5=A2=9E/=E5=87=8F=E5=B0=91=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/ST/STM32F4xx/Include/stm32f407xx.h | 0 .../Device/ST/STM32F4xx/Include/stm32f4xx.h | 0 .../ST/STM32F4xx/Include/system_stm32f4xx.h | 0 .../CMSIS/Device/ST/STM32F4xx/LICENSE.txt | 0 .../CMSIS/Include/cmsis_armcc.h | 0 .../CMSIS/Include/cmsis_armclang.h | 0 .../CMSIS/Include/cmsis_compiler.h | 0 .../CMSIS/Include/cmsis_gcc.h | 0 .../CMSIS/Include/cmsis_iccarm.h | 0 .../CMSIS/Include/cmsis_version.h | 0 Drivers/CMSIS/Include/core_armv8mbl.h | 1918 ++ Drivers/CMSIS/Include/core_armv8mml.h | 2927 ++ .../CMSIS/Include/core_cm0.h | 0 .../CMSIS/Include/core_cm0plus.h | 0 Drivers/CMSIS/Include/core_cm1.h | 976 + Drivers/CMSIS/Include/core_cm23.h | 1993 ++ Drivers/CMSIS/Include/core_cm3.h | 1941 ++ Drivers/CMSIS/Include/core_cm33.h | 3002 +++ .../CMSIS/Include/core_cm4.h | 0 Drivers/CMSIS/Include/core_cm7.h | 2671 ++ Drivers/CMSIS/Include/core_sc000.h | 1022 + Drivers/CMSIS/Include/core_sc300.h | 1915 ++ .../CMSIS/Include/mpu_armv7.h | 0 Drivers/CMSIS/Include/mpu_armv8.h | 333 + .../CMSIS/Include/tz_context.h | 0 .../Drivers => Drivers}/CMSIS/LICENSE.txt | 0 .../Inc/Legacy/stm32_hal_legacy.h | 0 .../STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h | 0 .../Inc/stm32f4xx_hal_adc.h | 0 .../Inc/stm32f4xx_hal_adc_ex.h | 0 .../Inc/stm32f4xx_hal_can.h | 0 .../Inc/stm32f4xx_hal_cortex.h | 0 .../Inc/stm32f4xx_hal_crc.h | 0 .../Inc/stm32f4xx_hal_dac.h | 0 .../Inc/stm32f4xx_hal_dac_ex.h | 0 .../Inc/stm32f4xx_hal_def.h | 0 .../Inc/stm32f4xx_hal_dma.h | 0 .../Inc/stm32f4xx_hal_dma_ex.h | 0 .../Inc/stm32f4xx_hal_exti.h | 0 .../Inc/stm32f4xx_hal_flash.h | 0 .../Inc/stm32f4xx_hal_flash_ex.h | 0 .../Inc/stm32f4xx_hal_flash_ramfunc.h | 0 .../Inc/stm32f4xx_hal_gpio.h | 0 .../Inc/stm32f4xx_hal_gpio_ex.h | 0 .../Inc/stm32f4xx_hal_i2c.h | 0 .../Inc/stm32f4xx_hal_i2c_ex.h | 0 .../Inc/stm32f4xx_hal_pcd.h | 0 .../Inc/stm32f4xx_hal_pcd_ex.h | 0 .../Inc/stm32f4xx_hal_pwr.h | 0 .../Inc/stm32f4xx_hal_pwr_ex.h | 0 .../Inc/stm32f4xx_hal_rcc.h | 0 .../Inc/stm32f4xx_hal_rcc_ex.h | 0 .../Inc/stm32f4xx_hal_rng.h | 0 .../Inc/stm32f4xx_hal_rtc.h | 0 .../Inc/stm32f4xx_hal_rtc_ex.h | 0 .../Inc/stm32f4xx_hal_spi.h | 0 .../Inc/stm32f4xx_hal_tim.h | 0 .../Inc/stm32f4xx_hal_tim_ex.h | 0 .../Inc/stm32f4xx_hal_uart.h | 0 .../Inc/stm32f4xx_ll_adc.h | 0 .../Inc/stm32f4xx_ll_bus.h | 0 .../Inc/stm32f4xx_ll_cortex.h | 0 .../Inc/stm32f4xx_ll_crc.h | 0 .../Inc/stm32f4xx_ll_dac.h | 0 .../Inc/stm32f4xx_ll_dma.h | 0 .../Inc/stm32f4xx_ll_exti.h | 0 .../Inc/stm32f4xx_ll_gpio.h | 0 .../Inc/stm32f4xx_ll_i2c.h | 0 .../Inc/stm32f4xx_ll_pwr.h | 0 .../Inc/stm32f4xx_ll_rcc.h | 0 .../Inc/stm32f4xx_ll_rng.h | 0 .../Inc/stm32f4xx_ll_rtc.h | 0 .../Inc/stm32f4xx_ll_system.h | 0 .../Inc/stm32f4xx_ll_tim.h | 0 .../Inc/stm32f4xx_ll_usart.h | 0 .../Inc/stm32f4xx_ll_usb.h | 0 .../Inc/stm32f4xx_ll_utils.h | 0 Drivers/STM32F4xx_HAL_Driver/LICENSE.txt | 6 + .../STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c | 0 .../Src/stm32f4xx_hal_adc.c | 0 .../Src/stm32f4xx_hal_adc_ex.c | 0 .../Src/stm32f4xx_hal_can.c | 0 .../Src/stm32f4xx_hal_cortex.c | 0 .../Src/stm32f4xx_hal_crc.c | 0 .../Src/stm32f4xx_hal_dac.c | 0 .../Src/stm32f4xx_hal_dac_ex.c | 0 .../Src/stm32f4xx_hal_dma.c | 0 .../Src/stm32f4xx_hal_dma_ex.c | 0 .../Src/stm32f4xx_hal_exti.c | 0 .../Src/stm32f4xx_hal_flash.c | 0 .../Src/stm32f4xx_hal_flash_ex.c | 0 .../Src/stm32f4xx_hal_flash_ramfunc.c | 0 .../Src/stm32f4xx_hal_gpio.c | 0 .../Src/stm32f4xx_hal_i2c.c | 0 .../Src/stm32f4xx_hal_i2c_ex.c | 0 .../Src/stm32f4xx_hal_pcd.c | 0 .../Src/stm32f4xx_hal_pcd_ex.c | 0 .../Src/stm32f4xx_hal_pwr.c | 0 .../Src/stm32f4xx_hal_pwr_ex.c | 0 .../Src/stm32f4xx_hal_rcc.c | 0 .../Src/stm32f4xx_hal_rcc_ex.c | 0 .../Src/stm32f4xx_hal_rng.c | 0 .../Src/stm32f4xx_hal_rtc.c | 0 .../Src/stm32f4xx_hal_rtc_ex.c | 0 .../Src/stm32f4xx_hal_spi.c | 0 .../Src/stm32f4xx_hal_tim.c | 0 .../Src/stm32f4xx_hal_tim_ex.c | 0 .../Src/stm32f4xx_hal_uart.c | 0 .../Src/stm32f4xx_ll_adc.c | 0 .../Src/stm32f4xx_ll_usb.c | 0 .../CMSIS/DSP/Include/arm_common_tables.h | 121 - .../CMSIS/DSP/Include/arm_const_structs.h | 66 - .../Source/BasicMathFunctions/arm_abs_f32.c | 153 - .../Source/BasicMathFunctions/arm_abs_q15.c | 167 - .../Source/BasicMathFunctions/arm_abs_q31.c | 118 - .../Source/BasicMathFunctions/arm_abs_q7.c | 145 - .../Source/BasicMathFunctions/arm_add_f32.c | 138 - .../Source/BasicMathFunctions/arm_add_q15.c | 128 - .../Source/BasicMathFunctions/arm_add_q31.c | 136 - .../Source/BasicMathFunctions/arm_add_q7.c | 122 - .../BasicMathFunctions/arm_dot_prod_f32.c | 123 - .../BasicMathFunctions/arm_dot_prod_q15.c | 128 - .../BasicMathFunctions/arm_dot_prod_q31.c | 131 - .../BasicMathFunctions/arm_dot_prod_q7.c | 147 - .../Source/BasicMathFunctions/arm_mult_f32.c | 162 - .../Source/BasicMathFunctions/arm_mult_q15.c | 142 - .../Source/BasicMathFunctions/arm_mult_q31.c | 148 - .../Source/BasicMathFunctions/arm_mult_q7.c | 115 - .../BasicMathFunctions/arm_negate_f32.c | 134 - .../BasicMathFunctions/arm_negate_q15.c | 131 - .../BasicMathFunctions/arm_negate_q31.c | 117 - .../Source/BasicMathFunctions/arm_negate_q7.c | 113 - .../BasicMathFunctions/arm_offset_f32.c | 154 - .../BasicMathFunctions/arm_offset_q15.c | 124 - .../BasicMathFunctions/arm_offset_q31.c | 128 - .../Source/BasicMathFunctions/arm_offset_q7.c | 123 - .../Source/BasicMathFunctions/arm_scale_f32.c | 157 - .../Source/BasicMathFunctions/arm_scale_q15.c | 150 - .../Source/BasicMathFunctions/arm_scale_q31.c | 227 - .../Source/BasicMathFunctions/arm_scale_q7.c | 137 - .../Source/BasicMathFunctions/arm_shift_q15.c | 236 - .../Source/BasicMathFunctions/arm_shift_q31.c | 191 - .../Source/BasicMathFunctions/arm_shift_q7.c | 208 - .../Source/BasicMathFunctions/arm_sub_f32.c | 138 - .../Source/BasicMathFunctions/arm_sub_q15.c | 128 - .../Source/BasicMathFunctions/arm_sub_q31.c | 134 - .../Source/BasicMathFunctions/arm_sub_q7.c | 119 - .../Source/CommonTables/arm_common_tables.c | 22176 ---------------- .../Source/CommonTables/arm_const_structs.c | 379 - .../ComplexMathFunctions/arm_cmplx_conj_f32.c | 171 - .../ComplexMathFunctions/arm_cmplx_conj_q15.c | 149 - .../ComplexMathFunctions/arm_cmplx_conj_q31.c | 169 - .../arm_cmplx_dot_prod_f32.c | 191 - .../arm_cmplx_dot_prod_q15.c | 177 - .../arm_cmplx_dot_prod_q31.c | 175 - .../ComplexMathFunctions/arm_cmplx_mag_f32.c | 153 - .../ComplexMathFunctions/arm_cmplx_mag_q15.c | 141 - .../ComplexMathFunctions/arm_cmplx_mag_q31.c | 173 - .../arm_cmplx_mag_squared_f32.c | 204 - .../arm_cmplx_mag_squared_q15.c | 136 - .../arm_cmplx_mag_squared_q31.c | 149 - .../arm_cmplx_mult_cmplx_f32.c | 196 - .../arm_cmplx_mult_cmplx_q15.c | 181 - .../arm_cmplx_mult_cmplx_q31.c | 314 - .../arm_cmplx_mult_real_f32.c | 213 - .../arm_cmplx_mult_real_q15.c | 191 - .../arm_cmplx_mult_real_q31.c | 211 - .../ControllerFunctions/arm_pid_init_f32.c | 74 - .../ControllerFunctions/arm_pid_init_q15.c | 110 - .../ControllerFunctions/arm_pid_init_q31.c | 95 - .../ControllerFunctions/arm_pid_reset_f32.c | 53 - .../ControllerFunctions/arm_pid_reset_q15.c | 52 - .../ControllerFunctions/arm_pid_reset_q31.c | 53 - .../ControllerFunctions/arm_sin_cos_f32.c | 144 - .../ControllerFunctions/arm_sin_cos_q31.c | 110 - .../Source/FastMathFunctions/arm_cos_f32.c | 115 - .../Source/FastMathFunctions/arm_cos_q15.c | 84 - .../Source/FastMathFunctions/arm_cos_q31.c | 84 - .../Source/FastMathFunctions/arm_sin_f32.c | 123 - .../Source/FastMathFunctions/arm_sin_q15.c | 76 - .../Source/FastMathFunctions/arm_sin_q31.c | 75 - .../Source/FastMathFunctions/arm_sqrt_q15.c | 144 - .../Source/FastMathFunctions/arm_sqrt_q31.c | 142 - .../arm_biquad_cascade_df1_32x64_init_q31.c | 98 - .../arm_biquad_cascade_df1_32x64_q31.c | 549 - .../arm_biquad_cascade_df1_f32.c | 412 - .../arm_biquad_cascade_df1_fast_q15.c | 273 - .../arm_biquad_cascade_df1_fast_q31.c | 292 - .../arm_biquad_cascade_df1_init_f32.c | 97 - .../arm_biquad_cascade_df1_init_q15.c | 99 - .../arm_biquad_cascade_df1_init_q31.c | 98 - .../arm_biquad_cascade_df1_q15.c | 398 - .../arm_biquad_cascade_df1_q31.c | 392 - .../arm_biquad_cascade_df2T_f32.c | 590 - .../arm_biquad_cascade_df2T_f64.c | 590 - .../arm_biquad_cascade_df2T_init_f32.c | 89 - .../arm_biquad_cascade_df2T_init_f64.c | 89 - .../arm_biquad_cascade_stereo_df2T_f32.c | 670 - .../arm_biquad_cascade_stereo_df2T_init_f32.c | 89 - .../Source/FilteringFunctions/arm_conv_f32.c | 635 - .../arm_conv_fast_opt_q15.c | 531 - .../FilteringFunctions/arm_conv_fast_q15.c | 1398 - .../FilteringFunctions/arm_conv_fast_q31.c | 565 - .../FilteringFunctions/arm_conv_opt_q15.c | 533 - .../FilteringFunctions/arm_conv_opt_q7.c | 423 - .../FilteringFunctions/arm_conv_partial_f32.c | 678 - .../arm_conv_partial_fast_opt_q15.c | 756 - .../arm_conv_partial_fast_q15.c | 1494 -- .../arm_conv_partial_fast_q31.c | 620 - .../arm_conv_partial_opt_q15.c | 753 - .../arm_conv_partial_opt_q7.c | 791 - .../FilteringFunctions/arm_conv_partial_q15.c | 795 - .../FilteringFunctions/arm_conv_partial_q31.c | 616 - .../FilteringFunctions/arm_conv_partial_q7.c | 750 - .../Source/FilteringFunctions/arm_conv_q15.c | 722 - .../Source/FilteringFunctions/arm_conv_q31.c | 553 - .../Source/FilteringFunctions/arm_conv_q7.c | 678 - .../FilteringFunctions/arm_correlate_f32.c | 727 - .../arm_correlate_fast_opt_q15.c | 500 - .../arm_correlate_fast_q15.c | 1307 - .../arm_correlate_fast_q31.c | 600 - .../arm_correlate_opt_q15.c | 501 - .../FilteringFunctions/arm_correlate_opt_q7.c | 452 - .../FilteringFunctions/arm_correlate_q15.c | 707 - .../FilteringFunctions/arm_correlate_q31.c | 653 - .../FilteringFunctions/arm_correlate_q7.c | 778 - .../FilteringFunctions/arm_fir_decimate_f32.c | 512 - .../arm_fir_decimate_fast_q15.c | 586 - .../arm_fir_decimate_fast_q31.c | 339 - .../arm_fir_decimate_init_f32.c | 105 - .../arm_fir_decimate_init_q15.c | 107 - .../arm_fir_decimate_init_q31.c | 105 - .../FilteringFunctions/arm_fir_decimate_q15.c | 684 - .../FilteringFunctions/arm_fir_decimate_q31.c | 299 - .../Source/FilteringFunctions/arm_fir_f32.c | 985 - .../FilteringFunctions/arm_fir_fast_q15.c | 333 - .../FilteringFunctions/arm_fir_fast_q31.c | 293 - .../FilteringFunctions/arm_fir_init_f32.c | 84 - .../FilteringFunctions/arm_fir_init_q15.c | 142 - .../FilteringFunctions/arm_fir_init_q31.c | 84 - .../FilteringFunctions/arm_fir_init_q7.c | 82 - .../arm_fir_interpolate_f32.c | 569 - .../arm_fir_interpolate_init_f32.c | 109 - .../arm_fir_interpolate_init_q15.c | 108 - .../arm_fir_interpolate_init_q31.c | 109 - .../arm_fir_interpolate_q15.c | 496 - .../arm_fir_interpolate_q31.c | 492 - .../FilteringFunctions/arm_fir_lattice_f32.c | 494 - .../arm_fir_lattice_init_f32.c | 71 - .../arm_fir_lattice_init_q15.c | 71 - .../arm_fir_lattice_init_q31.c | 71 - .../FilteringFunctions/arm_fir_lattice_q15.c | 524 - .../FilteringFunctions/arm_fir_lattice_q31.c | 341 - .../Source/FilteringFunctions/arm_fir_q15.c | 679 - .../Source/FilteringFunctions/arm_fir_q31.c | 353 - .../Source/FilteringFunctions/arm_fir_q7.c | 385 - .../FilteringFunctions/arm_fir_sparse_f32.c | 433 - .../arm_fir_sparse_init_f32.c | 95 - .../arm_fir_sparse_init_q15.c | 95 - .../arm_fir_sparse_init_q31.c | 94 - .../arm_fir_sparse_init_q7.c | 95 - .../FilteringFunctions/arm_fir_sparse_q15.c | 470 - .../FilteringFunctions/arm_fir_sparse_q31.c | 450 - .../FilteringFunctions/arm_fir_sparse_q7.c | 469 - .../FilteringFunctions/arm_iir_lattice_f32.c | 435 - .../arm_iir_lattice_init_f32.c | 79 - .../arm_iir_lattice_init_q15.c | 79 - .../arm_iir_lattice_init_q31.c | 79 - .../FilteringFunctions/arm_iir_lattice_q15.c | 452 - .../FilteringFunctions/arm_iir_lattice_q31.c | 338 - .../Source/FilteringFunctions/arm_lms_f32.c | 430 - .../FilteringFunctions/arm_lms_init_f32.c | 83 - .../FilteringFunctions/arm_lms_init_q15.c | 93 - .../FilteringFunctions/arm_lms_init_q31.c | 93 - .../FilteringFunctions/arm_lms_norm_f32.c | 454 - .../arm_lms_norm_init_f32.c | 93 - .../arm_lms_norm_init_q15.c | 100 - .../arm_lms_norm_init_q31.c | 99 - .../FilteringFunctions/arm_lms_norm_q15.c | 428 - .../FilteringFunctions/arm_lms_norm_q31.c | 419 - .../Source/FilteringFunctions/arm_lms_q15.c | 368 - .../Source/FilteringFunctions/arm_lms_q31.c | 357 - .../Source/MatrixFunctions/arm_mat_add_f32.c | 196 - .../Source/MatrixFunctions/arm_mat_add_q15.c | 151 - .../Source/MatrixFunctions/arm_mat_add_q31.c | 195 - .../MatrixFunctions/arm_mat_cmplx_mult_f32.c | 272 - .../MatrixFunctions/arm_mat_cmplx_mult_q15.c | 413 - .../MatrixFunctions/arm_mat_cmplx_mult_q31.c | 282 - .../Source/MatrixFunctions/arm_mat_init_f32.c | 76 - .../Source/MatrixFunctions/arm_mat_init_q15.c | 67 - .../Source/MatrixFunctions/arm_mat_init_q31.c | 72 - .../MatrixFunctions/arm_mat_inverse_f32.c | 691 - .../MatrixFunctions/arm_mat_inverse_f64.c | 691 - .../Source/MatrixFunctions/arm_mat_mult_f32.c | 274 - .../MatrixFunctions/arm_mat_mult_fast_q15.c | 525 - .../MatrixFunctions/arm_mat_mult_fast_q31.c | 384 - .../Source/MatrixFunctions/arm_mat_mult_q15.c | 457 - .../Source/MatrixFunctions/arm_mat_mult_q31.c | 282 - .../MatrixFunctions/arm_mat_scale_f32.c | 169 - .../MatrixFunctions/arm_mat_scale_q15.c | 171 - .../MatrixFunctions/arm_mat_scale_q31.c | 191 - .../Source/MatrixFunctions/arm_mat_sub_f32.c | 197 - .../Source/MatrixFunctions/arm_mat_sub_q15.c | 148 - .../Source/MatrixFunctions/arm_mat_sub_q31.c | 196 - .../MatrixFunctions/arm_mat_trans_f32.c | 206 - .../MatrixFunctions/arm_mat_trans_q15.c | 272 - .../MatrixFunctions/arm_mat_trans_q31.c | 198 - .../Source/StatisticsFunctions/arm_max_f32.c | 170 - .../Source/StatisticsFunctions/arm_max_q15.c | 162 - .../Source/StatisticsFunctions/arm_max_q31.c | 162 - .../Source/StatisticsFunctions/arm_max_q7.c | 162 - .../Source/StatisticsFunctions/arm_mean_f32.c | 125 - .../Source/StatisticsFunctions/arm_mean_q15.c | 120 - .../Source/StatisticsFunctions/arm_mean_q31.c | 123 - .../Source/StatisticsFunctions/arm_mean_q7.c | 120 - .../Source/StatisticsFunctions/arm_min_f32.c | 170 - .../Source/StatisticsFunctions/arm_min_q15.c | 163 - .../Source/StatisticsFunctions/arm_min_q31.c | 163 - .../Source/StatisticsFunctions/arm_min_q7.c | 163 - .../StatisticsFunctions/arm_power_f32.c | 129 - .../StatisticsFunctions/arm_power_q15.c | 138 - .../StatisticsFunctions/arm_power_q31.c | 129 - .../Source/StatisticsFunctions/arm_power_q7.c | 127 - .../Source/StatisticsFunctions/arm_rms_f32.c | 127 - .../Source/StatisticsFunctions/arm_rms_q15.c | 139 - .../Source/StatisticsFunctions/arm_rms_q31.c | 137 - .../Source/StatisticsFunctions/arm_std_f32.c | 186 - .../Source/StatisticsFunctions/arm_std_q15.c | 174 - .../Source/StatisticsFunctions/arm_std_q31.c | 169 - .../Source/StatisticsFunctions/arm_var_f32.c | 181 - .../Source/StatisticsFunctions/arm_var_q15.c | 172 - .../Source/StatisticsFunctions/arm_var_q31.c | 169 - .../Source/SupportFunctions/arm_copy_f32.c | 123 - .../Source/SupportFunctions/arm_copy_q15.c | 102 - .../Source/SupportFunctions/arm_copy_q31.c | 111 - .../DSP/Source/SupportFunctions/arm_copy_q7.c | 103 - .../Source/SupportFunctions/arm_fill_f32.c | 122 - .../Source/SupportFunctions/arm_fill_q15.c | 108 - .../Source/SupportFunctions/arm_fill_q31.c | 109 - .../DSP/Source/SupportFunctions/arm_fill_q7.c | 106 - .../SupportFunctions/arm_float_to_q15.c | 192 - .../SupportFunctions/arm_float_to_q31.c | 199 - .../Source/SupportFunctions/arm_float_to_q7.c | 191 - .../SupportFunctions/arm_q15_to_float.c | 122 - .../Source/SupportFunctions/arm_q15_to_q31.c | 144 - .../Source/SupportFunctions/arm_q15_to_q7.c | 142 - .../SupportFunctions/arm_q31_to_float.c | 119 - .../Source/SupportFunctions/arm_q31_to_q15.c | 133 - .../Source/SupportFunctions/arm_q31_to_q7.c | 124 - .../Source/SupportFunctions/arm_q7_to_float.c | 119 - .../Source/SupportFunctions/arm_q7_to_q15.c | 145 - .../Source/SupportFunctions/arm_q7_to_q31.c | 130 - .../TransformFunctions/arm_bitreversal.c | 230 - .../TransformFunctions/arm_bitreversal2.S | 216 - .../Source/TransformFunctions/arm_cfft_f32.c | 620 - .../Source/TransformFunctions/arm_cfft_q15.c | 345 - .../Source/TransformFunctions/arm_cfft_q31.c | 252 - .../TransformFunctions/arm_cfft_radix2_f32.c | 472 - .../arm_cfft_radix2_init_f32.c | 192 - .../arm_cfft_radix2_init_q15.c | 177 - .../arm_cfft_radix2_init_q31.c | 174 - .../TransformFunctions/arm_cfft_radix2_q15.c | 729 - .../TransformFunctions/arm_cfft_radix2_q31.c | 338 - .../TransformFunctions/arm_cfft_radix4_f32.c | 1209 - .../arm_cfft_radix4_init_f32.c | 152 - .../arm_cfft_radix4_init_q15.c | 140 - .../arm_cfft_radix4_init_q31.c | 136 - .../TransformFunctions/arm_cfft_radix4_q15.c | 1910 -- .../TransformFunctions/arm_cfft_radix4_q31.c | 1389 - .../TransformFunctions/arm_cfft_radix8_f32.c | 285 - .../Source/TransformFunctions/arm_dct4_f32.c | 449 - .../TransformFunctions/arm_dct4_init_f32.c | 16513 ------------ .../TransformFunctions/arm_dct4_init_q15.c | 4280 --- .../TransformFunctions/arm_dct4_init_q31.c | 7686 ------ .../Source/TransformFunctions/arm_dct4_q15.c | 382 - .../Source/TransformFunctions/arm_dct4_q31.c | 383 - .../Source/TransformFunctions/arm_rfft_f32.c | 318 - .../TransformFunctions/arm_rfft_fast_f32.c | 317 - .../arm_rfft_fast_init_f32.c | 131 - .../TransformFunctions/arm_rfft_init_f32.c | 4273 --- .../TransformFunctions/arm_rfft_init_q15.c | 2229 -- .../TransformFunctions/arm_rfft_init_q31.c | 4280 --- .../Source/TransformFunctions/arm_rfft_q15.c | 426 - .../Source/TransformFunctions/arm_rfft_q31.c | 283 - .../CMSIS/Lib/GCC/libarm_cortexM4lf_math.a | Bin 3097502 -> 0 bytes HAL_N_Middlewares/Inc/usbd_cdc_if.h | 131 - .../Class/CDC/Inc/usbd_cdc_if_template.h | 43 - .../Class/CDC/Src/usbd_cdc_if_template.c | 247 - .../Core/Inc/usbd_conf_template.h | 222 - .../Core/Inc/usbd_desc_template.h | 61 - .../Core/Src/usbd_conf_template.c | 282 - .../Core/Src/usbd_desc_template.c | 452 - HAL_N_Middlewares/Src/main.c | 243 - HAL_N_Middlewares/Src/usbd_cdc_if.c | 344 - .../Inc => Inc}/FreeRTOSConfig.h | 0 {HAL_N_Middlewares/Inc => Inc}/adc.h | 0 {HAL_N_Middlewares/Inc => Inc}/can.h | 0 {HAL_N_Middlewares/Inc => Inc}/crc.h | 0 {HAL_N_Middlewares/Inc => Inc}/dac.h | 0 {HAL_N_Middlewares/Inc => Inc}/dma.h | 0 {HAL_N_Middlewares/Inc => Inc}/gpio.h | 0 {HAL_N_Middlewares/Inc => Inc}/i2c.h | 0 {HAL_N_Middlewares/Inc => Inc}/main.h | 0 {HAL_N_Middlewares/Inc => Inc}/rng.h | 0 {HAL_N_Middlewares/Inc => Inc}/rtc.h | 0 {HAL_N_Middlewares/Inc => Inc}/spi.h | 0 .../Inc => Inc}/stm32f4xx_hal_conf.h | 0 {HAL_N_Middlewares/Inc => Inc}/stm32f4xx_it.h | 0 {HAL_N_Middlewares/Inc => Inc}/tim.h | 0 {HAL_N_Middlewares/Inc => Inc}/usart.h | 0 {HAL_N_Middlewares/Inc => Inc}/usb_device.h | 0 Inc/usbd_cdc_if.h | 131 + {HAL_N_Middlewares/Inc => Inc}/usbd_conf.h | 0 {HAL_N_Middlewares/Inc => Inc}/usbd_desc.h | 0 Makefile | 232 +- .../ST/ARM/DSP/Inc}/arm_math.h | 0 .../ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a | Bin 0 -> 5359640 bytes .../Class/CDC/Inc/usbd_cdc.h | 0 .../Class/CDC/Src/usbd_cdc.c | 0 .../Core/Inc/usbd_core.h | 0 .../Core/Inc/usbd_ctlreq.h | 0 .../Core/Inc/usbd_def.h | 0 .../Core/Inc/usbd_ioreq.h | 0 .../Core/Src/usbd_core.c | 0 .../Core/Src/usbd_ctlreq.c | 0 .../Core/Src/usbd_ioreq.c | 0 .../ST/STM32_USB_Device_Library/LICENSE.txt | 0 .../FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c | 0 .../FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h | 0 .../Third_Party/FreeRTOS/Source/LICENSE | 18 + .../Third_Party/FreeRTOS/Source/croutine.c | 0 .../FreeRTOS/Source/event_groups.c | 0 .../FreeRTOS/Source/include/FreeRTOS.h | 0 .../FreeRTOS/Source/include/StackMacros.h | 0 .../FreeRTOS/Source/include/atomic.h | 0 .../FreeRTOS/Source/include/croutine.h | 0 .../Source/include/deprecated_definitions.h | 0 .../FreeRTOS/Source/include/event_groups.h | 0 .../FreeRTOS/Source/include/list.h | 0 .../FreeRTOS/Source/include/message_buffer.h | 0 .../FreeRTOS/Source/include/mpu_prototypes.h | 0 .../FreeRTOS/Source/include/mpu_wrappers.h | 0 .../FreeRTOS/Source/include/portable.h | 0 .../FreeRTOS/Source/include/projdefs.h | 0 .../FreeRTOS/Source/include/queue.h | 0 .../FreeRTOS/Source/include/semphr.h | 0 .../FreeRTOS/Source/include/stack_macros.h | 0 .../FreeRTOS/Source/include/stream_buffer.h | 0 .../FreeRTOS/Source/include/task.h | 0 .../FreeRTOS/Source/include/timers.h | 0 .../Third_Party/FreeRTOS/Source/list.c | 0 .../Source/portable/GCC/ARM_CM4F/port.c | 0 .../Source/portable/GCC/ARM_CM4F/portmacro.h | 0 .../FreeRTOS/Source/portable/MemMang/heap_4.c | 0 .../Third_Party/FreeRTOS/Source/queue.c | 0 .../FreeRTOS/Source/stream_buffer.c | 0 .../Third_Party/FreeRTOS/Source/tasks.c | 0 .../Third_Party/FreeRTOS/Source/timers.c | 0 .../SEGGER/Config/SEGGER_RTT_Conf.h | 0 .../Third_Party/SEGGER/RTT/SEGGER_RTT.c | 0 .../Third_Party/SEGGER/RTT/SEGGER_RTT.h | 0 .../SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s | 0 .../SEGGER/RTT/SEGGER_RTT_printf.c | 0 {HAL_N_Middlewares/Src => Src}/adc.c | 0 {HAL_N_Middlewares/Src => Src}/can.c | 2 +- {HAL_N_Middlewares/Src => Src}/crc.c | 0 {HAL_N_Middlewares/Src => Src}/dac.c | 0 {HAL_N_Middlewares/Src => Src}/dma.c | 0 {HAL_N_Middlewares/Src => Src}/freertos.c | 16 +- {HAL_N_Middlewares/Src => Src}/gpio.c | 0 {HAL_N_Middlewares/Src => Src}/i2c.c | 0 Src/main.c | 243 + {HAL_N_Middlewares/Src => Src}/rng.c | 0 {HAL_N_Middlewares/Src => Src}/rtc.c | 0 {HAL_N_Middlewares/Src => Src}/spi.c | 0 .../Src => Src}/stm32f4xx_hal_msp.c | 0 .../Src => Src}/stm32f4xx_hal_timebase_tim.c | 0 {HAL_N_Middlewares/Src => Src}/stm32f4xx_it.c | 177 +- .../Src => Src}/system_stm32f4xx.c | 0 {HAL_N_Middlewares/Src => Src}/tim.c | 0 {HAL_N_Middlewares/Src => Src}/usart.c | 2 +- {HAL_N_Middlewares/Src => Src}/usb_device.c | 0 Src/usbd_cdc_if.c | 328 + {HAL_N_Middlewares/Src => Src}/usbd_conf.c | 0 {HAL_N_Middlewares/Src => Src}/usbd_desc.c | 0 basic_framework.ioc | 3 +- bsp/bsp_init.c | 2 +- modules/can_comm/can_comm.c | 3 - modules/referee/referee_communication.c | 2 +- 修改HAL配置时文件目录的更改.md | 14 - 490 files changed, 19643 insertions(+), 139630 deletions(-) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Device/ST/STM32F4xx/LICENSE.txt (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_armcc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_armclang.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_compiler.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_gcc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_iccarm.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/cmsis_version.h (100%) create mode 100644 Drivers/CMSIS/Include/core_armv8mbl.h create mode 100644 Drivers/CMSIS/Include/core_armv8mml.h rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/core_cm0.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/core_cm0plus.h (100%) create mode 100644 Drivers/CMSIS/Include/core_cm1.h create mode 100644 Drivers/CMSIS/Include/core_cm23.h create mode 100644 Drivers/CMSIS/Include/core_cm3.h create mode 100644 Drivers/CMSIS/Include/core_cm33.h rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/core_cm4.h (100%) create mode 100644 Drivers/CMSIS/Include/core_cm7.h create mode 100644 Drivers/CMSIS/Include/core_sc000.h create mode 100644 Drivers/CMSIS/Include/core_sc300.h rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/mpu_armv7.h (100%) create mode 100644 Drivers/CMSIS/Include/mpu_armv8.h rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/Include/tz_context.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/CMSIS/LICENSE.txt (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h (100%) create mode 100644 Drivers/STM32F4xx_HAL_Driver/LICENSE.txt rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c (100%) rename {HAL_N_Middlewares/Drivers => Drivers}/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c (100%) delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_common_tables.h delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_const_structs.h delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_common_tables.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_const_structs.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f64.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal2.S delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix8_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_f32.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c delete mode 100644 HAL_N_Middlewares/Drivers/CMSIS/Lib/GCC/libarm_cortexM4lf_math.a delete mode 100644 HAL_N_Middlewares/Inc/usbd_cdc_if.h delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc_if_template.h delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc_if_template.c delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_conf_template.h delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_desc_template.h delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_conf_template.c delete mode 100644 HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_desc_template.c delete mode 100644 HAL_N_Middlewares/Src/main.c delete mode 100644 HAL_N_Middlewares/Src/usbd_cdc_if.c rename {HAL_N_Middlewares/Inc => Inc}/FreeRTOSConfig.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/adc.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/can.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/crc.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/dac.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/dma.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/gpio.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/i2c.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/main.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/rng.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/rtc.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/spi.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/stm32f4xx_hal_conf.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/stm32f4xx_it.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/tim.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/usart.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/usb_device.h (100%) create mode 100644 Inc/usbd_cdc_if.h rename {HAL_N_Middlewares/Inc => Inc}/usbd_conf.h (100%) rename {HAL_N_Middlewares/Inc => Inc}/usbd_desc.h (100%) rename {HAL_N_Middlewares/Drivers/CMSIS/DSP/Include => Middlewares/ST/ARM/DSP/Inc}/arm_math.h (100%) create mode 100644 Middlewares/ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/ST/STM32_USB_Device_Library/LICENSE.txt (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h (100%) create mode 100644 Middlewares/Third_Party/FreeRTOS/Source/LICENSE rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/croutine.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/event_groups.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/FreeRTOS.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/StackMacros.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/atomic.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/croutine.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/event_groups.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/list.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/message_buffer.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/portable.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/projdefs.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/queue.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/semphr.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/stack_macros.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/stream_buffer.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/task.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/include/timers.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/list.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/queue.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/stream_buffer.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/tasks.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/FreeRTOS/Source/timers.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/SEGGER/Config/SEGGER_RTT_Conf.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/SEGGER/RTT/SEGGER_RTT.c (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/SEGGER/RTT/SEGGER_RTT.h (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s (100%) rename {HAL_N_Middlewares/Middlewares => Middlewares}/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c (100%) rename {HAL_N_Middlewares/Src => Src}/adc.c (100%) rename {HAL_N_Middlewares/Src => Src}/can.c (99%) rename {HAL_N_Middlewares/Src => Src}/crc.c (100%) rename {HAL_N_Middlewares/Src => Src}/dac.c (100%) rename {HAL_N_Middlewares/Src => Src}/dma.c (100%) rename {HAL_N_Middlewares/Src => Src}/freertos.c (97%) rename {HAL_N_Middlewares/Src => Src}/gpio.c (100%) rename {HAL_N_Middlewares/Src => Src}/i2c.c (100%) create mode 100644 Src/main.c rename {HAL_N_Middlewares/Src => Src}/rng.c (100%) rename {HAL_N_Middlewares/Src => Src}/rtc.c (100%) rename {HAL_N_Middlewares/Src => Src}/spi.c (100%) rename {HAL_N_Middlewares/Src => Src}/stm32f4xx_hal_msp.c (100%) rename {HAL_N_Middlewares/Src => Src}/stm32f4xx_hal_timebase_tim.c (100%) rename {HAL_N_Middlewares/Src => Src}/stm32f4xx_it.c (79%) rename {HAL_N_Middlewares/Src => Src}/system_stm32f4xx.c (100%) rename {HAL_N_Middlewares/Src => Src}/tim.c (100%) rename {HAL_N_Middlewares/Src => Src}/usart.c (99%) rename {HAL_N_Middlewares/Src => Src}/usb_device.c (100%) create mode 100644 Src/usbd_cdc_if.c rename {HAL_N_Middlewares/Src => Src}/usbd_conf.c (100%) rename {HAL_N_Middlewares/Src => Src}/usbd_desc.c (100%) delete mode 100644 修改HAL配置时文件目录的更改.md diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h b/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h rename to Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h b/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h rename to Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h b/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h rename to Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/LICENSE.txt b/Drivers/CMSIS/Device/ST/STM32F4xx/LICENSE.txt similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/LICENSE.txt rename to Drivers/CMSIS/Device/ST/STM32F4xx/LICENSE.txt diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_armcc.h b/Drivers/CMSIS/Include/cmsis_armcc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_armcc.h rename to Drivers/CMSIS/Include/cmsis_armcc.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_armclang.h b/Drivers/CMSIS/Include/cmsis_armclang.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_armclang.h rename to Drivers/CMSIS/Include/cmsis_armclang.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_compiler.h b/Drivers/CMSIS/Include/cmsis_compiler.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_compiler.h rename to Drivers/CMSIS/Include/cmsis_compiler.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_gcc.h b/Drivers/CMSIS/Include/cmsis_gcc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_gcc.h rename to Drivers/CMSIS/Include/cmsis_gcc.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_iccarm.h b/Drivers/CMSIS/Include/cmsis_iccarm.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_iccarm.h rename to Drivers/CMSIS/Include/cmsis_iccarm.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_version.h b/Drivers/CMSIS/Include/cmsis_version.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/cmsis_version.h rename to Drivers/CMSIS/Include/cmsis_version.h diff --git a/Drivers/CMSIS/Include/core_armv8mbl.h b/Drivers/CMSIS/Include/core_armv8mbl.h new file mode 100644 index 0000000..251e4ed --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mbl.h @@ -0,0 +1,1918 @@ +/**************************************************************************//** + * @file core_armv8mbl.h + * @brief CMSIS Armv8-M Baseline Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 22. June 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MBL_H_GENERIC +#define __CORE_ARMV8MBL_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MBL + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __ARMv8MBL_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MBL_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MBL_CMSIS_VERSION ((__ARMv8MBL_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MBL_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M ( 2U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MBL_H_DEPENDANT +#define __CORE_ARMV8MBL_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MBL_REV + #define __ARMv8MBL_REV 0x0000U + #warning "__ARMv8MBL_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MBL */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000002UL) /* bit [1] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MBL_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_armv8mml.h b/Drivers/CMSIS/Include/core_armv8mml.h new file mode 100644 index 0000000..3a3148e --- /dev/null +++ b/Drivers/CMSIS/Include/core_armv8mml.h @@ -0,0 +1,2927 @@ +/**************************************************************************//** + * @file core_armv8mml.h + * @brief CMSIS Armv8-M Mainline Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 06. July 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_ARMV8MML_H_GENERIC +#define __CORE_ARMV8MML_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_ARMv8MML + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS Armv8MML definitions */ +#define __ARMv8MML_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __ARMv8MML_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __ARMv8MML_CMSIS_VERSION ((__ARMv8MML_CMSIS_VERSION_MAIN << 16U) | \ + __ARMv8MML_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (81U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined(__ARM_FEATURE_DSP) + #if defined(__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_ARMV8MML_H_DEPENDANT +#define __CORE_ARMV8MML_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __ARMv8MML_REV + #define __ARMv8MML_REV 0x0000U + #warning "__ARMv8MML_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group ARMv8MML */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Sizes Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Sizes Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[809U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) Software Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) Software Lock Status Register */ + uint32_t RESERVED4[4U]; + __IM uint32_t TYPE; /*!< Offset: 0xFC8 (R/ ) Device Identifier Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_SWOSCALER_Pos 0U /*!< TPI ACPR: SWOSCALER Position */ +#define TPI_ACPR_SWOSCALER_Msk (0xFFFFUL /*<< TPI_ACPR_SWOSCALER_Pos*/) /*!< TPI ACPR: SWOSCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI Periodic Synchronization Control Register Definitions */ +#define TPI_PSCR_PSCount_Pos 0U /*!< TPI PSCR: PSCount Position */ +#define TPI_PSCR_PSCount_Msk (0x1FUL /*<< TPI_PSCR_PSCount_Pos*/) /*!< TPI PSCR: TPSCount Mask */ + +/* TPI Software Lock Status Register Definitions */ +#define TPI_LSR_nTT_Pos 1U /*!< TPI LSR: Not thirty-two bit. Position */ +#define TPI_LSR_nTT_Msk (0x1UL << TPI_LSR_nTT_Pos) /*!< TPI LSR: Not thirty-two bit. Mask */ + +#define TPI_LSR_SLK_Pos 1U /*!< TPI LSR: Software Lock status Position */ +#define TPI_LSR_SLK_Msk (0x1UL << TPI_LSR_SLK_Pos) /*!< TPI LSR: Software Lock status Mask */ + +#define TPI_LSR_SLI_Pos 0U /*!< TPI LSR: Software Lock implemented Position */ +#define TPI_LSR_SLI_Msk (0x1UL /*<< TPI_LSR_SLI_Pos*/) /*!< TPI LSR: Software Lock implemented Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFO depth Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFO depth Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000002UL) /* bit [1] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_ARMV8MML_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm0.h b/Drivers/CMSIS/Include/core_cm0.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm0.h rename to Drivers/CMSIS/Include/core_cm0.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm0plus.h b/Drivers/CMSIS/Include/core_cm0plus.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm0plus.h rename to Drivers/CMSIS/Include/core_cm0plus.h diff --git a/Drivers/CMSIS/Include/core_cm1.h b/Drivers/CMSIS/Include/core_cm1.h new file mode 100644 index 0000000..0ed678e --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm1.h @@ -0,0 +1,976 @@ +/**************************************************************************//** + * @file core_cm1.h + * @brief CMSIS Cortex-M1 Core Peripheral Access Layer Header File + * @version V1.0.0 + * @date 23. July 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM1_H_GENERIC +#define __CORE_CM1_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M1 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM1 definitions */ +#define __CM1_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM1_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM1_CMSIS_VERSION ((__CM1_CMSIS_VERSION_MAIN << 16U) | \ + __CM1_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (1U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM1_H_DEPENDANT +#define __CORE_CM1_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM1_REV + #define __CM1_REV 0x0100U + #warning "__CM1_REV not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M1 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_ITCMUAEN_Pos 4U /*!< ACTLR: Instruction TCM Upper Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMUAEN_Msk (1UL << SCnSCB_ACTLR_ITCMUAEN_Pos) /*!< ACTLR: Instruction TCM Upper Alias Enable Mask */ + +#define SCnSCB_ACTLR_ITCMLAEN_Pos 3U /*!< ACTLR: Instruction TCM Lower Alias Enable Position */ +#define SCnSCB_ACTLR_ITCMLAEN_Msk (1UL << SCnSCB_ACTLR_ITCMLAEN_Pos) /*!< ACTLR: Instruction TCM Lower Alias Enable Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Cortex-M1 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the Cortex-M1 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M1 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + Address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)0x0U; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)0x0U; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM1_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm23.h b/Drivers/CMSIS/Include/core_cm23.h new file mode 100644 index 0000000..acbc5df --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm23.h @@ -0,0 +1,1993 @@ +/**************************************************************************//** + * @file core_cm23.h + * @brief CMSIS Cortex-M23 Core Peripheral Access Layer Header File + * @version V5.0.7 + * @date 22. June 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM23_H_GENERIC +#define __CORE_CM23_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M23 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS definitions */ +#define __CM23_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM23_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM23_CMSIS_VERSION ((__CM23_CMSIS_VERSION_MAIN << 16U) | \ + __CM23_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (23U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM23_H_DEPENDANT +#define __CORE_CM23_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM23_REV + #define __CM23_REV 0x0000U + #warning "__CM23_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __VTOR_PRESENT + #define __VTOR_PRESENT 0U + #warning "__VTOR_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif + + #ifndef __ETM_PRESENT + #define __ETM_PRESENT 0U + #warning "__ETM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MTB_PRESENT + #define __MTB_PRESENT 0U + #warning "__MTB_PRESENT not defined in device header file; using default!" + #endif + +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M23 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint32_t IPR[124U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IOM uint32_t SHPR[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + uint32_t RESERVED0[6U]; + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x3UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + uint32_t RESERVED0[7U]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 1U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: EN Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: EN Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#endif +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_DWTENA_Pos 24U /*!< CoreDebug DEMCR: DWTENA Position */ +#define CoreDebug_DEMCR_DWTENA_Msk (1UL << CoreDebug_DEMCR_DWTENA_Pos) /*!< CoreDebug DEMCR: DWTENA Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for Cortex-M23 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for Cortex-M23 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000002UL) /* bit [1] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + +#define __NVIC_SetPriorityGrouping(X) (void)(X) +#define __NVIC_GetPriorityGrouping() (0U) + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + If VTOR is not present address 0 must be mapped to SRAM. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ +#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) + uint32_t *vectors = (uint32_t *)SCB->VTOR; +#else + uint32_t *vectors = (uint32_t *)0x0U; +#endif + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[_IP_IDX(IRQn)] = ((uint32_t)(NVIC_NS->IPR[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB_NS->SHPR[_SHP_IDX(IRQn)] = ((uint32_t)(SCB_NS->SHPR[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IPR[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB_NS->SHPR[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM23_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm3.h b/Drivers/CMSIS/Include/core_cm3.h new file mode 100644 index 0000000..74bff64 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm3.h @@ -0,0 +1,1941 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 04. June 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M3 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (3U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200U + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if defined (__CM3_REV) && (__CM3_REV < 0x0201U) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if defined (__CM3_REV) && (__CM3_REV >= 0x200U) + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1U]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_cm33.h b/Drivers/CMSIS/Include/core_cm33.h new file mode 100644 index 0000000..6cd2db7 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm33.h @@ -0,0 +1,3002 @@ +/**************************************************************************//** + * @file core_cm33.h + * @brief CMSIS Cortex-M33 Core Peripheral Access Layer Header File + * @version V5.0.9 + * @date 06. July 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM33_H_GENERIC +#define __CORE_CM33_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M33 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM33 definitions */ +#define __CM33_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM33_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM33_CMSIS_VERSION ((__CM33_CMSIS_VERSION_MAIN << 16U) | \ + __CM33_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (33U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined (__TARGET_FPU_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined (__ARM_PCS_VFP) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined (__ARMVFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + + #if defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1U) + #if defined (__DSP_PRESENT) && (__DSP_PRESENT == 1U) + #define __DSP_USED 1U + #else + #error "Compiler generates DSP (SIMD) instructions for a devices without DSP extensions (check __DSP_PRESENT)" + #define __DSP_USED 0U + #endif + #else + #define __DSP_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined (__TI_VFP_SUPPORT__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined (__FPU_VFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM33_H_DEPENDANT +#define __CORE_CM33_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM33_REV + #define __CM33_REV 0x0000U + #warning "__CM33_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __SAUREGION_PRESENT + #define __SAUREGION_PRESENT 0U + #warning "__SAUREGION_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DSP_PRESENT + #define __DSP_PRESENT 0U + #warning "__DSP_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M33 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core SAU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack-pointer select */ + uint32_t FPCA:1; /*!< bit: 2 Floating-point context active */ + uint32_t SFPA:1; /*!< bit: 3 Secure floating-point active */ + uint32_t _reserved1:28; /*!< bit: 4..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SFPA_Pos 3U /*!< CONTROL: SFPA Position */ +#define CONTROL_SFPA_Msk (1UL << CONTROL_SFPA_Pos) /*!< CONTROL: SFPA Mask */ + +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[16U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[16U]; + __IOM uint32_t ICER[16U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[16U]; + __IOM uint32_t ISPR[16U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[16U]; + __IOM uint32_t ICPR[16U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[16U]; + __IOM uint32_t IABR[16U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[16U]; + __IOM uint32_t ITNS[16U]; /*!< Offset: 0x280 (R/W) Interrupt Non-Secure State Register */ + uint32_t RESERVED5[16U]; + __IOM uint8_t IPR[496U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED6[580U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[6U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + __IOM uint32_t NSACR; /*!< Offset: 0x08C (R/W) Non-Secure Access Control Register */ + uint32_t RESERVED3[92U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_PENDNMISET_Pos 31U /*!< SCB ICSR: PENDNMISET Position */ +#define SCB_ICSR_PENDNMISET_Msk (1UL << SCB_ICSR_PENDNMISET_Pos) /*!< SCB ICSR: PENDNMISET Mask */ + +#define SCB_ICSR_NMIPENDSET_Pos SCB_ICSR_PENDNMISET_Pos /*!< SCB ICSR: NMIPENDSET Position, backward compatibility */ +#define SCB_ICSR_NMIPENDSET_Msk SCB_ICSR_PENDNMISET_Msk /*!< SCB ICSR: NMIPENDSET Mask, backward compatibility */ + +#define SCB_ICSR_PENDNMICLR_Pos 30U /*!< SCB ICSR: PENDNMICLR Position */ +#define SCB_ICSR_PENDNMICLR_Msk (1UL << SCB_ICSR_PENDNMICLR_Pos) /*!< SCB ICSR: PENDNMICLR Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_STTNS_Pos 24U /*!< SCB ICSR: STTNS Position (Security Extension) */ +#define SCB_ICSR_STTNS_Msk (1UL << SCB_ICSR_STTNS_Pos) /*!< SCB ICSR: STTNS Mask (Security Extension) */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIS_Pos 14U /*!< SCB AIRCR: PRIS Position */ +#define SCB_AIRCR_PRIS_Msk (1UL << SCB_AIRCR_PRIS_Pos) /*!< SCB AIRCR: PRIS Mask */ + +#define SCB_AIRCR_BFHFNMINS_Pos 13U /*!< SCB AIRCR: BFHFNMINS Position */ +#define SCB_AIRCR_BFHFNMINS_Msk (1UL << SCB_AIRCR_BFHFNMINS_Pos) /*!< SCB AIRCR: BFHFNMINS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQS_Pos 3U /*!< SCB AIRCR: SYSRESETREQS Position */ +#define SCB_AIRCR_SYSRESETREQS_Msk (1UL << SCB_AIRCR_SYSRESETREQS_Pos) /*!< SCB AIRCR: SYSRESETREQS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEPS_Pos 3U /*!< SCB SCR: SLEEPDEEPS Position */ +#define SCB_SCR_SLEEPDEEPS_Msk (1UL << SCB_SCR_SLEEPDEEPS_Pos) /*!< SCB SCR: SLEEPDEEPS Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: BP Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: BP Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: IC Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: IC Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: DC Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: DC Mask */ + +#define SCB_CCR_STKOFHFNMIGN_Pos 10U /*!< SCB CCR: STKOFHFNMIGN Position */ +#define SCB_CCR_STKOFHFNMIGN_Msk (1UL << SCB_CCR_STKOFHFNMIGN_Pos) /*!< SCB CCR: STKOFHFNMIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_HARDFAULTPENDED_Pos 21U /*!< SCB SHCSR: HARDFAULTPENDED Position */ +#define SCB_SHCSR_HARDFAULTPENDED_Msk (1UL << SCB_SHCSR_HARDFAULTPENDED_Pos) /*!< SCB SHCSR: HARDFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTPENDED_Pos 20U /*!< SCB SHCSR: SECUREFAULTPENDED Position */ +#define SCB_SHCSR_SECUREFAULTPENDED_Msk (1UL << SCB_SHCSR_SECUREFAULTPENDED_Pos) /*!< SCB SHCSR: SECUREFAULTPENDED Mask */ + +#define SCB_SHCSR_SECUREFAULTENA_Pos 19U /*!< SCB SHCSR: SECUREFAULTENA Position */ +#define SCB_SHCSR_SECUREFAULTENA_Msk (1UL << SCB_SHCSR_SECUREFAULTENA_Pos) /*!< SCB SHCSR: SECUREFAULTENA Mask */ + +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_NMIACT_Pos 5U /*!< SCB SHCSR: NMIACT Position */ +#define SCB_SHCSR_NMIACT_Msk (1UL << SCB_SHCSR_NMIACT_Pos) /*!< SCB SHCSR: NMIACT Mask */ + +#define SCB_SHCSR_SECUREFAULTACT_Pos 4U /*!< SCB SHCSR: SECUREFAULTACT Position */ +#define SCB_SHCSR_SECUREFAULTACT_Msk (1UL << SCB_SHCSR_SECUREFAULTACT_Pos) /*!< SCB SHCSR: SECUREFAULTACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_HARDFAULTACT_Pos 2U /*!< SCB SHCSR: HARDFAULTACT Position */ +#define SCB_SHCSR_HARDFAULTACT_Msk (1UL << SCB_SHCSR_HARDFAULTACT_Pos) /*!< SCB SHCSR: HARDFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_STKOF_Pos (SCB_CFSR_USGFAULTSR_Pos + 4U) /*!< SCB CFSR (UFSR): STKOF Position */ +#define SCB_CFSR_STKOF_Msk (1UL << SCB_CFSR_STKOF_Pos) /*!< SCB CFSR (UFSR): STKOF Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Non-Secure Access Control Register Definitions */ +#define SCB_NSACR_CP11_Pos 11U /*!< SCB NSACR: CP11 Position */ +#define SCB_NSACR_CP11_Msk (1UL << SCB_NSACR_CP11_Pos) /*!< SCB NSACR: CP11 Mask */ + +#define SCB_NSACR_CP10_Pos 10U /*!< SCB NSACR: CP10 Position */ +#define SCB_NSACR_CP10_Msk (1UL << SCB_NSACR_CP10_Pos) /*!< SCB NSACR: CP10 Mask */ + +#define SCB_NSACR_CPn_Pos 0U /*!< SCB NSACR: CPn Position */ +#define SCB_NSACR_CPn_Msk (1UL /*<< SCB_NSACR_CPn_Pos*/) /*!< SCB NSACR: CPn Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ + __IOM uint32_t CPPWR; /*!< Offset: 0x00C (R/W) Coprocessor Power Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) ITM Device Architecture Register */ + uint32_t RESERVED6[4U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Stimulus Port Register Definitions */ +#define ITM_STIM_DISABLED_Pos 1U /*!< ITM STIM: DISABLED Position */ +#define ITM_STIM_DISABLED_Msk (0x1UL << ITM_STIM_DISABLED_Pos) /*!< ITM STIM: DISABLED Mask */ + +#define ITM_STIM_FIFOREADY_Pos 0U /*!< ITM STIM: FIFOREADY Position */ +#define ITM_STIM_FIFOREADY_Msk (0x1UL /*<< ITM_STIM_FIFOREADY_Pos*/) /*!< ITM STIM: FIFOREADY Mask */ + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TRACEBUSID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TRACEBUSID_Msk (0x7FUL << ITM_TCR_TRACEBUSID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPRESCALE_Pos 8U /*!< ITM TCR: TSPRESCALE Position */ +#define ITM_TCR_TSPRESCALE_Msk (3UL << ITM_TCR_TSPRESCALE_Pos) /*!< ITM TCR: TSPRESCALE Mask */ + +#define ITM_TCR_STALLENA_Pos 5U /*!< ITM TCR: STALLENA Position */ +#define ITM_TCR_STALLENA_Msk (1UL << ITM_TCR_STALLENA_Pos) /*!< ITM TCR: STALLENA Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + uint32_t RESERVED3[1U]; + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED4[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + uint32_t RESERVED5[1U]; + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED6[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + uint32_t RESERVED7[1U]; + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED8[1U]; + __IOM uint32_t COMP4; /*!< Offset: 0x060 (R/W) Comparator Register 4 */ + uint32_t RESERVED9[1U]; + __IOM uint32_t FUNCTION4; /*!< Offset: 0x068 (R/W) Function Register 4 */ + uint32_t RESERVED10[1U]; + __IOM uint32_t COMP5; /*!< Offset: 0x070 (R/W) Comparator Register 5 */ + uint32_t RESERVED11[1U]; + __IOM uint32_t FUNCTION5; /*!< Offset: 0x078 (R/W) Function Register 5 */ + uint32_t RESERVED12[1U]; + __IOM uint32_t COMP6; /*!< Offset: 0x080 (R/W) Comparator Register 6 */ + uint32_t RESERVED13[1U]; + __IOM uint32_t FUNCTION6; /*!< Offset: 0x088 (R/W) Function Register 6 */ + uint32_t RESERVED14[1U]; + __IOM uint32_t COMP7; /*!< Offset: 0x090 (R/W) Comparator Register 7 */ + uint32_t RESERVED15[1U]; + __IOM uint32_t FUNCTION7; /*!< Offset: 0x098 (R/W) Function Register 7 */ + uint32_t RESERVED16[1U]; + __IOM uint32_t COMP8; /*!< Offset: 0x0A0 (R/W) Comparator Register 8 */ + uint32_t RESERVED17[1U]; + __IOM uint32_t FUNCTION8; /*!< Offset: 0x0A8 (R/W) Function Register 8 */ + uint32_t RESERVED18[1U]; + __IOM uint32_t COMP9; /*!< Offset: 0x0B0 (R/W) Comparator Register 9 */ + uint32_t RESERVED19[1U]; + __IOM uint32_t FUNCTION9; /*!< Offset: 0x0B8 (R/W) Function Register 9 */ + uint32_t RESERVED20[1U]; + __IOM uint32_t COMP10; /*!< Offset: 0x0C0 (R/W) Comparator Register 10 */ + uint32_t RESERVED21[1U]; + __IOM uint32_t FUNCTION10; /*!< Offset: 0x0C8 (R/W) Function Register 10 */ + uint32_t RESERVED22[1U]; + __IOM uint32_t COMP11; /*!< Offset: 0x0D0 (R/W) Comparator Register 11 */ + uint32_t RESERVED23[1U]; + __IOM uint32_t FUNCTION11; /*!< Offset: 0x0D8 (R/W) Function Register 11 */ + uint32_t RESERVED24[1U]; + __IOM uint32_t COMP12; /*!< Offset: 0x0E0 (R/W) Comparator Register 12 */ + uint32_t RESERVED25[1U]; + __IOM uint32_t FUNCTION12; /*!< Offset: 0x0E8 (R/W) Function Register 12 */ + uint32_t RESERVED26[1U]; + __IOM uint32_t COMP13; /*!< Offset: 0x0F0 (R/W) Comparator Register 13 */ + uint32_t RESERVED27[1U]; + __IOM uint32_t FUNCTION13; /*!< Offset: 0x0F8 (R/W) Function Register 13 */ + uint32_t RESERVED28[1U]; + __IOM uint32_t COMP14; /*!< Offset: 0x100 (R/W) Comparator Register 14 */ + uint32_t RESERVED29[1U]; + __IOM uint32_t FUNCTION14; /*!< Offset: 0x108 (R/W) Function Register 14 */ + uint32_t RESERVED30[1U]; + __IOM uint32_t COMP15; /*!< Offset: 0x110 (R/W) Comparator Register 15 */ + uint32_t RESERVED31[1U]; + __IOM uint32_t FUNCTION15; /*!< Offset: 0x118 (R/W) Function Register 15 */ + uint32_t RESERVED32[934U]; + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ + uint32_t RESERVED33[1U]; + __IM uint32_t DEVARCH; /*!< Offset: 0xFBC (R/ ) Device Architecture Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCDISS_Pos 23U /*!< DWT CTRL: CYCDISS Position */ +#define DWT_CTRL_CYCDISS_Msk (0x1UL << DWT_CTRL_CYCDISS_Pos) /*!< DWT CTRL: CYCDISS Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_ID_Pos 27U /*!< DWT FUNCTION: ID Position */ +#define DWT_FUNCTION_ID_Msk (0x1FUL << DWT_FUNCTION_ID_Pos) /*!< DWT FUNCTION: ID Mask */ + +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_ACTION_Pos 4U /*!< DWT FUNCTION: ACTION Position */ +#define DWT_FUNCTION_ACTION_Msk (0x1UL << DWT_FUNCTION_ACTION_Pos) /*!< DWT FUNCTION: ACTION Mask */ + +#define DWT_FUNCTION_MATCH_Pos 0U /*!< DWT FUNCTION: MATCH Position */ +#define DWT_FUNCTION_MATCH_Msk (0xFUL /*<< DWT_FUNCTION_MATCH_Pos*/) /*!< DWT FUNCTION: MATCH Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IOM uint32_t PSCR; /*!< Offset: 0x308 (R/W) Periodic Synchronization Control Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t ITFTTD0; /*!< Offset: 0xEEC (R/ ) Integration Test FIFO Test Data 0 Register */ + __IOM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0 */ + __IM uint32_t ITFTTD1; /*!< Offset: 0xEFC (R/ ) Integration Test FIFO Test Data 1 Register */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) Device Configuration Register */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) Device Type Identifier Register */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_FOnMan_Pos 6U /*!< TPI FFCR: FOnMan Position */ +#define TPI_FFCR_FOnMan_Msk (0x1UL << TPI_FFCR_FOnMan_Pos) /*!< TPI FFCR: FOnMan Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration Test FIFO Test Data 0 Register Definitions */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD0: ATB Interface 2 ATVALIDPosition */ +#define TPI_ITFTTD0_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD0: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD0_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD0_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD0: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD0_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD0: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD0_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD0_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD0: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data2_Pos 16U /*!< TPI ITFTTD0: ATB Interface 1 data2 Position */ +#define TPI_ITFTTD0_ATB_IF1_data2_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data2 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data1_Pos 8U /*!< TPI ITFTTD0: ATB Interface 1 data1 Position */ +#define TPI_ITFTTD0_ATB_IF1_data1_Msk (0xFFUL << TPI_ITFTTD0_ATB_IF1_data1_Pos) /*!< TPI ITFTTD0: ATB Interface 1 data1 Mask */ + +#define TPI_ITFTTD0_ATB_IF1_data0_Pos 0U /*!< TPI ITFTTD0: ATB Interface 1 data0 Position */ +#define TPI_ITFTTD0_ATB_IF1_data0_Msk (0xFFUL /*<< TPI_ITFTTD0_ATB_IF1_data0_Pos*/) /*!< TPI ITFTTD0: ATB Interface 1 data0 Mask */ + +/* TPI Integration Test ATB Control Register 2 Register Definitions */ +#define TPI_ITATBCTR2_AFVALID2S_Pos 1U /*!< TPI ITATBCTR2: AFVALID2S Position */ +#define TPI_ITATBCTR2_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID2S_Pos) /*!< TPI ITATBCTR2: AFVALID2SS Mask */ + +#define TPI_ITATBCTR2_AFVALID1S_Pos 1U /*!< TPI ITATBCTR2: AFVALID1S Position */ +#define TPI_ITATBCTR2_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR2_AFVALID1S_Pos) /*!< TPI ITATBCTR2: AFVALID1SS Mask */ + +#define TPI_ITATBCTR2_ATREADY2S_Pos 0U /*!< TPI ITATBCTR2: ATREADY2S Position */ +#define TPI_ITATBCTR2_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2S_Pos*/) /*!< TPI ITATBCTR2: ATREADY2S Mask */ + +#define TPI_ITATBCTR2_ATREADY1S_Pos 0U /*!< TPI ITATBCTR2: ATREADY1S Position */ +#define TPI_ITATBCTR2_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1S_Pos*/) /*!< TPI ITATBCTR2: ATREADY1S Mask */ + +/* TPI Integration Test FIFO Test Data 1 Register Definitions */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Pos 29U /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF2_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 2 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF2_bytecount_Pos 27U /*!< TPI ITFTTD1: ATB Interface 2 byte count Position */ +#define TPI_ITFTTD1_ATB_IF2_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF2_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 2 byte count Mask */ + +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Pos 26U /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Position */ +#define TPI_ITFTTD1_ATB_IF1_ATVALID_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_ATVALID_Pos) /*!< TPI ITFTTD1: ATB Interface 1 ATVALID Mask */ + +#define TPI_ITFTTD1_ATB_IF1_bytecount_Pos 24U /*!< TPI ITFTTD1: ATB Interface 1 byte count Position */ +#define TPI_ITFTTD1_ATB_IF1_bytecount_Msk (0x3UL << TPI_ITFTTD1_ATB_IF1_bytecount_Pos) /*!< TPI ITFTTD1: ATB Interface 1 byte countt Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data2_Pos 16U /*!< TPI ITFTTD1: ATB Interface 2 data2 Position */ +#define TPI_ITFTTD1_ATB_IF2_data2_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data2 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data1_Pos 8U /*!< TPI ITFTTD1: ATB Interface 2 data1 Position */ +#define TPI_ITFTTD1_ATB_IF2_data1_Msk (0xFFUL << TPI_ITFTTD1_ATB_IF2_data1_Pos) /*!< TPI ITFTTD1: ATB Interface 2 data1 Mask */ + +#define TPI_ITFTTD1_ATB_IF2_data0_Pos 0U /*!< TPI ITFTTD1: ATB Interface 2 data0 Position */ +#define TPI_ITFTTD1_ATB_IF2_data0_Msk (0xFFUL /*<< TPI_ITFTTD1_ATB_IF2_data0_Pos*/) /*!< TPI ITFTTD1: ATB Interface 2 data0 Mask */ + +/* TPI Integration Test ATB Control Register 0 Definitions */ +#define TPI_ITATBCTR0_AFVALID2S_Pos 1U /*!< TPI ITATBCTR0: AFVALID2S Position */ +#define TPI_ITATBCTR0_AFVALID2S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID2S_Pos) /*!< TPI ITATBCTR0: AFVALID2SS Mask */ + +#define TPI_ITATBCTR0_AFVALID1S_Pos 1U /*!< TPI ITATBCTR0: AFVALID1S Position */ +#define TPI_ITATBCTR0_AFVALID1S_Msk (0x1UL << TPI_ITATBCTR0_AFVALID1S_Pos) /*!< TPI ITATBCTR0: AFVALID1SS Mask */ + +#define TPI_ITATBCTR0_ATREADY2S_Pos 0U /*!< TPI ITATBCTR0: ATREADY2S Position */ +#define TPI_ITATBCTR0_ATREADY2S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2S_Pos*/) /*!< TPI ITATBCTR0: ATREADY2S Mask */ + +#define TPI_ITATBCTR0_ATREADY1S_Pos 0U /*!< TPI ITATBCTR0: ATREADY1S Position */ +#define TPI_ITATBCTR0_ATREADY1S_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1S_Pos*/) /*!< TPI ITATBCTR0: ATREADY1S Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_FIFOSZ_Pos 6U /*!< TPI DEVID: FIFOSZ Position */ +#define TPI_DEVID_FIFOSZ_Msk (0x7UL << TPI_DEVID_FIFOSZ_Pos) /*!< TPI DEVID: FIFOSZ Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x3FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) MPU Region Limit Address Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Region Base Address Register Alias 1 */ + __IOM uint32_t RLAR_A1; /*!< Offset: 0x018 (R/W) MPU Region Limit Address Register Alias 1 */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2 */ + __IOM uint32_t RLAR_A2; /*!< Offset: 0x020 (R/W) MPU Region Limit Address Register Alias 2 */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3 */ + __IOM uint32_t RLAR_A3; /*!< Offset: 0x028 (R/W) MPU Region Limit Address Register Alias 3 */ + uint32_t RESERVED0[1]; + union { + __IOM uint32_t MAIR[2]; + struct { + __IOM uint32_t MAIR0; /*!< Offset: 0x030 (R/W) MPU Memory Attribute Indirection Register 0 */ + __IOM uint32_t MAIR1; /*!< Offset: 0x034 (R/W) MPU Memory Attribute Indirection Register 1 */ + }; + }; +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_BASE_Pos 5U /*!< MPU RBAR: BASE Position */ +#define MPU_RBAR_BASE_Msk (0x7FFFFFFUL << MPU_RBAR_BASE_Pos) /*!< MPU RBAR: BASE Mask */ + +#define MPU_RBAR_SH_Pos 3U /*!< MPU RBAR: SH Position */ +#define MPU_RBAR_SH_Msk (0x3UL << MPU_RBAR_SH_Pos) /*!< MPU RBAR: SH Mask */ + +#define MPU_RBAR_AP_Pos 1U /*!< MPU RBAR: AP Position */ +#define MPU_RBAR_AP_Msk (0x3UL << MPU_RBAR_AP_Pos) /*!< MPU RBAR: AP Mask */ + +#define MPU_RBAR_XN_Pos 0U /*!< MPU RBAR: XN Position */ +#define MPU_RBAR_XN_Msk (01UL /*<< MPU_RBAR_XN_Pos*/) /*!< MPU RBAR: XN Mask */ + +/* MPU Region Limit Address Register Definitions */ +#define MPU_RLAR_LIMIT_Pos 5U /*!< MPU RLAR: LIMIT Position */ +#define MPU_RLAR_LIMIT_Msk (0x7FFFFFFUL << MPU_RLAR_LIMIT_Pos) /*!< MPU RLAR: LIMIT Mask */ + +#define MPU_RLAR_AttrIndx_Pos 1U /*!< MPU RLAR: AttrIndx Position */ +#define MPU_RLAR_AttrIndx_Msk (0x7UL << MPU_RLAR_AttrIndx_Pos) /*!< MPU RLAR: AttrIndx Mask */ + +#define MPU_RLAR_EN_Pos 0U /*!< MPU RLAR: Region enable bit Position */ +#define MPU_RLAR_EN_Msk (1UL /*<< MPU_RLAR_EN_Pos*/) /*!< MPU RLAR: Region enable bit Disable Mask */ + +/* MPU Memory Attribute Indirection Register 0 Definitions */ +#define MPU_MAIR0_Attr3_Pos 24U /*!< MPU MAIR0: Attr3 Position */ +#define MPU_MAIR0_Attr3_Msk (0xFFUL << MPU_MAIR0_Attr3_Pos) /*!< MPU MAIR0: Attr3 Mask */ + +#define MPU_MAIR0_Attr2_Pos 16U /*!< MPU MAIR0: Attr2 Position */ +#define MPU_MAIR0_Attr2_Msk (0xFFUL << MPU_MAIR0_Attr2_Pos) /*!< MPU MAIR0: Attr2 Mask */ + +#define MPU_MAIR0_Attr1_Pos 8U /*!< MPU MAIR0: Attr1 Position */ +#define MPU_MAIR0_Attr1_Msk (0xFFUL << MPU_MAIR0_Attr1_Pos) /*!< MPU MAIR0: Attr1 Mask */ + +#define MPU_MAIR0_Attr0_Pos 0U /*!< MPU MAIR0: Attr0 Position */ +#define MPU_MAIR0_Attr0_Msk (0xFFUL /*<< MPU_MAIR0_Attr0_Pos*/) /*!< MPU MAIR0: Attr0 Mask */ + +/* MPU Memory Attribute Indirection Register 1 Definitions */ +#define MPU_MAIR1_Attr7_Pos 24U /*!< MPU MAIR1: Attr7 Position */ +#define MPU_MAIR1_Attr7_Msk (0xFFUL << MPU_MAIR1_Attr7_Pos) /*!< MPU MAIR1: Attr7 Mask */ + +#define MPU_MAIR1_Attr6_Pos 16U /*!< MPU MAIR1: Attr6 Position */ +#define MPU_MAIR1_Attr6_Msk (0xFFUL << MPU_MAIR1_Attr6_Pos) /*!< MPU MAIR1: Attr6 Mask */ + +#define MPU_MAIR1_Attr5_Pos 8U /*!< MPU MAIR1: Attr5 Position */ +#define MPU_MAIR1_Attr5_Msk (0xFFUL << MPU_MAIR1_Attr5_Pos) /*!< MPU MAIR1: Attr5 Mask */ + +#define MPU_MAIR1_Attr4_Pos 0U /*!< MPU MAIR1: Attr4 Position */ +#define MPU_MAIR1_Attr4_Msk (0xFFUL /*<< MPU_MAIR1_Attr4_Pos*/) /*!< MPU MAIR1: Attr4 Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SAU Security Attribution Unit (SAU) + \brief Type definitions for the Security Attribution Unit (SAU) + @{ + */ + +/** + \brief Structure type to access the Security Attribution Unit (SAU). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SAU Control Register */ + __IM uint32_t TYPE; /*!< Offset: 0x004 (R/ ) SAU Type Register */ +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) SAU Region Number Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) SAU Region Base Address Register */ + __IOM uint32_t RLAR; /*!< Offset: 0x010 (R/W) SAU Region Limit Address Register */ +#else + uint32_t RESERVED0[3]; +#endif + __IOM uint32_t SFSR; /*!< Offset: 0x014 (R/W) Secure Fault Status Register */ + __IOM uint32_t SFAR; /*!< Offset: 0x018 (R/W) Secure Fault Address Register */ +} SAU_Type; + +/* SAU Control Register Definitions */ +#define SAU_CTRL_ALLNS_Pos 1U /*!< SAU CTRL: ALLNS Position */ +#define SAU_CTRL_ALLNS_Msk (1UL << SAU_CTRL_ALLNS_Pos) /*!< SAU CTRL: ALLNS Mask */ + +#define SAU_CTRL_ENABLE_Pos 0U /*!< SAU CTRL: ENABLE Position */ +#define SAU_CTRL_ENABLE_Msk (1UL /*<< SAU_CTRL_ENABLE_Pos*/) /*!< SAU CTRL: ENABLE Mask */ + +/* SAU Type Register Definitions */ +#define SAU_TYPE_SREGION_Pos 0U /*!< SAU TYPE: SREGION Position */ +#define SAU_TYPE_SREGION_Msk (0xFFUL /*<< SAU_TYPE_SREGION_Pos*/) /*!< SAU TYPE: SREGION Mask */ + +#if defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) +/* SAU Region Number Register Definitions */ +#define SAU_RNR_REGION_Pos 0U /*!< SAU RNR: REGION Position */ +#define SAU_RNR_REGION_Msk (0xFFUL /*<< SAU_RNR_REGION_Pos*/) /*!< SAU RNR: REGION Mask */ + +/* SAU Region Base Address Register Definitions */ +#define SAU_RBAR_BADDR_Pos 5U /*!< SAU RBAR: BADDR Position */ +#define SAU_RBAR_BADDR_Msk (0x7FFFFFFUL << SAU_RBAR_BADDR_Pos) /*!< SAU RBAR: BADDR Mask */ + +/* SAU Region Limit Address Register Definitions */ +#define SAU_RLAR_LADDR_Pos 5U /*!< SAU RLAR: LADDR Position */ +#define SAU_RLAR_LADDR_Msk (0x7FFFFFFUL << SAU_RLAR_LADDR_Pos) /*!< SAU RLAR: LADDR Mask */ + +#define SAU_RLAR_NSC_Pos 1U /*!< SAU RLAR: NSC Position */ +#define SAU_RLAR_NSC_Msk (1UL << SAU_RLAR_NSC_Pos) /*!< SAU RLAR: NSC Mask */ + +#define SAU_RLAR_ENABLE_Pos 0U /*!< SAU RLAR: ENABLE Position */ +#define SAU_RLAR_ENABLE_Msk (1UL /*<< SAU_RLAR_ENABLE_Pos*/) /*!< SAU RLAR: ENABLE Mask */ + +#endif /* defined (__SAUREGION_PRESENT) && (__SAUREGION_PRESENT == 1U) */ + +/* Secure Fault Status Register Definitions */ +#define SAU_SFSR_LSERR_Pos 7U /*!< SAU SFSR: LSERR Position */ +#define SAU_SFSR_LSERR_Msk (1UL << SAU_SFSR_LSERR_Pos) /*!< SAU SFSR: LSERR Mask */ + +#define SAU_SFSR_SFARVALID_Pos 6U /*!< SAU SFSR: SFARVALID Position */ +#define SAU_SFSR_SFARVALID_Msk (1UL << SAU_SFSR_SFARVALID_Pos) /*!< SAU SFSR: SFARVALID Mask */ + +#define SAU_SFSR_LSPERR_Pos 5U /*!< SAU SFSR: LSPERR Position */ +#define SAU_SFSR_LSPERR_Msk (1UL << SAU_SFSR_LSPERR_Pos) /*!< SAU SFSR: LSPERR Mask */ + +#define SAU_SFSR_INVTRAN_Pos 4U /*!< SAU SFSR: INVTRAN Position */ +#define SAU_SFSR_INVTRAN_Msk (1UL << SAU_SFSR_INVTRAN_Pos) /*!< SAU SFSR: INVTRAN Mask */ + +#define SAU_SFSR_AUVIOL_Pos 3U /*!< SAU SFSR: AUVIOL Position */ +#define SAU_SFSR_AUVIOL_Msk (1UL << SAU_SFSR_AUVIOL_Pos) /*!< SAU SFSR: AUVIOL Mask */ + +#define SAU_SFSR_INVER_Pos 2U /*!< SAU SFSR: INVER Position */ +#define SAU_SFSR_INVER_Msk (1UL << SAU_SFSR_INVER_Pos) /*!< SAU SFSR: INVER Mask */ + +#define SAU_SFSR_INVIS_Pos 1U /*!< SAU SFSR: INVIS Position */ +#define SAU_SFSR_INVIS_Msk (1UL << SAU_SFSR_INVIS_Pos) /*!< SAU SFSR: INVIS Mask */ + +#define SAU_SFSR_INVEP_Pos 0U /*!< SAU SFSR: INVEP Position */ +#define SAU_SFSR_INVEP_Msk (1UL /*<< SAU_SFSR_INVEP_Pos*/) /*!< SAU SFSR: INVEP Mask */ + +/*@} end of group CMSIS_SAU */ +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_LSPENS_Pos 29U /*!< FPCCR: LSPENS Position */ +#define FPU_FPCCR_LSPENS_Msk (1UL << FPU_FPCCR_LSPENS_Pos) /*!< FPCCR: LSPENS bit Mask */ + +#define FPU_FPCCR_CLRONRET_Pos 28U /*!< FPCCR: CLRONRET Position */ +#define FPU_FPCCR_CLRONRET_Msk (1UL << FPU_FPCCR_CLRONRET_Pos) /*!< FPCCR: CLRONRET bit Mask */ + +#define FPU_FPCCR_CLRONRETS_Pos 27U /*!< FPCCR: CLRONRETS Position */ +#define FPU_FPCCR_CLRONRETS_Msk (1UL << FPU_FPCCR_CLRONRETS_Pos) /*!< FPCCR: CLRONRETS bit Mask */ + +#define FPU_FPCCR_TS_Pos 26U /*!< FPCCR: TS Position */ +#define FPU_FPCCR_TS_Msk (1UL << FPU_FPCCR_TS_Pos) /*!< FPCCR: TS bit Mask */ + +#define FPU_FPCCR_UFRDY_Pos 10U /*!< FPCCR: UFRDY Position */ +#define FPU_FPCCR_UFRDY_Msk (1UL << FPU_FPCCR_UFRDY_Pos) /*!< FPCCR: UFRDY bit Mask */ + +#define FPU_FPCCR_SPLIMVIOL_Pos 9U /*!< FPCCR: SPLIMVIOL Position */ +#define FPU_FPCCR_SPLIMVIOL_Msk (1UL << FPU_FPCCR_SPLIMVIOL_Pos) /*!< FPCCR: SPLIMVIOL bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_SFRDY_Pos 7U /*!< FPCCR: SFRDY Position */ +#define FPU_FPCCR_SFRDY_Msk (1UL << FPU_FPCCR_SFRDY_Pos) /*!< FPCCR: SFRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_S_Pos 2U /*!< FPCCR: Security status of the FP context bit Position */ +#define FPU_FPCCR_S_Msk (1UL << FPU_FPCCR_S_Pos) /*!< FPCCR: Security status of the FP context bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ + uint32_t RESERVED4[1U]; + __IOM uint32_t DAUTHCTRL; /*!< Offset: 0x014 (R/W) Debug Authentication Control Register */ + __IOM uint32_t DSCSR; /*!< Offset: 0x018 (R/W) Debug Security Control and Status Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESTART_ST_Pos 26U /*!< CoreDebug DHCSR: S_RESTART_ST Position */ +#define CoreDebug_DHCSR_S_RESTART_ST_Msk (1UL << CoreDebug_DHCSR_S_RESTART_ST_Pos) /*!< CoreDebug DHCSR: S_RESTART_ST Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/* Debug Authentication Control Register Definitions */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos 3U /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Position */ +#define CoreDebug_DAUTHCTRL_INTSPNIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPNIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPNIDEN, Mask */ + +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos 2U /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPNIDENSEL_Msk (1UL << CoreDebug_DAUTHCTRL_SPNIDENSEL_Pos) /*!< CoreDebug DAUTHCTRL: SPNIDENSEL Mask */ + +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Pos 1U /*!< CoreDebug DAUTHCTRL: INTSPIDEN Position */ +#define CoreDebug_DAUTHCTRL_INTSPIDEN_Msk (1UL << CoreDebug_DAUTHCTRL_INTSPIDEN_Pos) /*!< CoreDebug DAUTHCTRL: INTSPIDEN Mask */ + +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Pos 0U /*!< CoreDebug DAUTHCTRL: SPIDENSEL Position */ +#define CoreDebug_DAUTHCTRL_SPIDENSEL_Msk (1UL /*<< CoreDebug_DAUTHCTRL_SPIDENSEL_Pos*/) /*!< CoreDebug DAUTHCTRL: SPIDENSEL Mask */ + +/* Debug Security Control and Status Register Definitions */ +#define CoreDebug_DSCSR_CDS_Pos 16U /*!< CoreDebug DSCSR: CDS Position */ +#define CoreDebug_DSCSR_CDS_Msk (1UL << CoreDebug_DSCSR_CDS_Pos) /*!< CoreDebug DSCSR: CDS Mask */ + +#define CoreDebug_DSCSR_SBRSEL_Pos 1U /*!< CoreDebug DSCSR: SBRSEL Position */ +#define CoreDebug_DSCSR_SBRSEL_Msk (1UL << CoreDebug_DSCSR_SBRSEL_Pos) /*!< CoreDebug DSCSR: SBRSEL Mask */ + +#define CoreDebug_DSCSR_SBRSELEN_Pos 0U /*!< CoreDebug DSCSR: SBRSELEN Position */ +#define CoreDebug_DSCSR_SBRSELEN_Msk (1UL /*<< CoreDebug_DSCSR_SBRSELEN_Pos*/) /*!< CoreDebug DSCSR: SBRSELEN Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ + #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ + #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ + #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ + #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ + #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ + #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ + #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ + #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + + #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ + #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ + #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ + #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ + #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ + #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ + #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE ) /*!< Core Debug configuration struct */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ + #endif + + #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SAU_BASE (SCS_BASE + 0x0DD0UL) /*!< Security Attribution Unit */ + #define SAU ((SAU_Type *) SAU_BASE ) /*!< Security Attribution Unit */ + #endif + + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + #define SCS_BASE_NS (0xE002E000UL) /*!< System Control Space Base Address (non-secure address space) */ + #define CoreDebug_BASE_NS (0xE002EDF0UL) /*!< Core Debug Base Address (non-secure address space) */ + #define SysTick_BASE_NS (SCS_BASE_NS + 0x0010UL) /*!< SysTick Base Address (non-secure address space) */ + #define NVIC_BASE_NS (SCS_BASE_NS + 0x0100UL) /*!< NVIC Base Address (non-secure address space) */ + #define SCB_BASE_NS (SCS_BASE_NS + 0x0D00UL) /*!< System Control Block Base Address (non-secure address space) */ + + #define SCnSCB_NS ((SCnSCB_Type *) SCS_BASE_NS ) /*!< System control Register not in SCB(non-secure address space) */ + #define SCB_NS ((SCB_Type *) SCB_BASE_NS ) /*!< SCB configuration struct (non-secure address space) */ + #define SysTick_NS ((SysTick_Type *) SysTick_BASE_NS ) /*!< SysTick configuration struct (non-secure address space) */ + #define NVIC_NS ((NVIC_Type *) NVIC_BASE_NS ) /*!< NVIC configuration struct (non-secure address space) */ + #define CoreDebug_NS ((CoreDebug_Type *) CoreDebug_BASE_NS) /*!< Core Debug configuration struct (non-secure address space) */ + + #if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE_NS (SCS_BASE_NS + 0x0D90UL) /*!< Memory Protection Unit (non-secure address space) */ + #define MPU_NS ((MPU_Type *) MPU_BASE_NS ) /*!< Memory Protection Unit (non-secure address space) */ + #endif + + #define FPU_BASE_NS (SCS_BASE_NS + 0x0F30UL) /*!< Floating Point Unit (non-secure address space) */ + #define FPU_NS ((FPU_Type *) FPU_BASE_NS ) /*!< Floating Point Unit (non-secure address space) */ + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* Special LR values for Secure/Non-Secure call handling and exception handling */ + +/* Function Return Payload (from ARMv8-M Architecture Reference Manual) LR value on entry from Secure BLXNS */ +#define FNC_RETURN (0xFEFFFFFFUL) /* bit [0] ignored when processing a branch */ + +/* The following EXC_RETURN mask values are used to evaluate the LR on exception entry */ +#define EXC_RETURN_PREFIX (0xFF000000UL) /* bits [31:24] set to indicate an EXC_RETURN value */ +#define EXC_RETURN_S (0x00000040UL) /* bit [6] stack used to push registers: 0=Non-secure 1=Secure */ +#define EXC_RETURN_DCRS (0x00000020UL) /* bit [5] stacking rules for called registers: 0=skipped 1=saved */ +#define EXC_RETURN_FTYPE (0x00000010UL) /* bit [4] allocate stack for floating-point context: 0=done 1=skipped */ +#define EXC_RETURN_MODE (0x00000008UL) /* bit [3] processor mode for return: 0=Handler mode 1=Thread mode */ +#define EXC_RETURN_SPSEL (0x00000002UL) /* bit [1] stack pointer used to restore context: 0=MSP 1=PSP */ +#define EXC_RETURN_ES (0x00000001UL) /* bit [0] security state exception was taken to: 0=Non-secure 1=Secure */ + +/* Integrity Signature (from ARMv8-M Architecture Reference Manual) for exception context stacking */ +#if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) /* Value for processors with floating-point extension: */ +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125AUL) /* bit [0] SFTC must match LR bit[4] EXC_RETURN_FTYPE */ +#else +#define EXC_INTEGRITY_SIGNATURE (0xFEFA125BUL) /* Value for processors without floating-point extension */ +#endif + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Get Interrupt Target State + \details Reads the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + \return 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Target State + \details Sets the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] |= ((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Clear Interrupt Target State + \details Clears the interrupt target field in the NVIC and returns the interrupt target bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 if interrupt is assigned to Secure + 1 if interrupt is assigned to Non Secure + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] &= ~((uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL))); + return((uint32_t)(((NVIC->ITNS[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief Set Priority Grouping (non-secure) + \details Sets the non-secure priority grouping field when in secure state using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB_NS->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB_NS->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping (non-secure) + \details Reads the priority grouping field from the non-secure NVIC when in secure state. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void) +{ + return ((uint32_t)((SCB_NS->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt (non-secure) + \details Enables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status (non-secure) + \details Returns a device specific interrupt enable status from the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt (non-secure) + \details Disables a device specific interrupt in the non-secure NVIC interrupt controller when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Pending Interrupt (non-secure) + \details Reads the NVIC pending register in the non-secure NVIC when in secure state and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt (non-secure) + \details Sets the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt (non-secure) + \details Clears the pending bit of a device specific interrupt in the non-secure NVIC pending register when in secure state. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt (non-secure) + \details Reads the active register in non-secure NVIC when in secure state and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC_NS->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority (non-secure) + \details Sets the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every non-secure processor exception. + */ +__STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC_NS->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority (non-secure) + \details Reads the priority of a non-secure device specific interrupt or a non-secure processor exception when in secure state. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC_NS->IPR[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB_NS->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} +#endif /* defined (__ARM_FEATURE_CMSE) &&(__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv8.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## SAU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SAUFunctions SAU Functions + \brief Functions that configure the SAU. + @{ + */ + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) + +/** + \brief Enable SAU + \details Enables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Enable(void) +{ + SAU->CTRL |= (SAU_CTRL_ENABLE_Msk); +} + + + +/** + \brief Disable SAU + \details Disables the Security Attribution Unit (SAU). + */ +__STATIC_INLINE void TZ_SAU_Disable(void) +{ + SAU->CTRL &= ~(SAU_CTRL_ENABLE_Msk); +} + +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +/*@} end of CMSIS_Core_SAUFunctions */ + + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) +/** + \brief System Tick Configuration (non-secure) + \details Initializes the non-secure System Timer and its interrupt when in secure state, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function TZ_SysTick_Config_NS is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + + */ +__STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick_NS->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + TZ_NVIC_SetPriority_NS (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick_NS->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick_NS->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} +#endif /* defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) */ + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM33_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm4.h b/Drivers/CMSIS/Include/core_cm4.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/core_cm4.h rename to Drivers/CMSIS/Include/core_cm4.h diff --git a/Drivers/CMSIS/Include/core_cm7.h b/Drivers/CMSIS/Include/core_cm7.h new file mode 100644 index 0000000..a14dc62 --- /dev/null +++ b/Drivers/CMSIS/Include/core_cm7.h @@ -0,0 +1,2671 @@ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V5.0.8 + * @date 04. June 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM7_H_GENERIC +#define __CORE_CM7_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M7 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM7 definitions */ +#define __CM7_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM7_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16U) | \ + __CM7_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (7U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM7_H_DEPENDANT +#define __CORE_CM7_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM7_REV + #define __CM7_REV 0x0000U + #warning "__CM7_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __ICACHE_PRESENT + #define __ICACHE_PRESENT 0U + #warning "__ICACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DCACHE_PRESENT + #define __DCACHE_PRESENT 0U + #warning "__DCACHE_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __DTCM_PRESENT + #define __DTCM_PRESENT 0U + #warning "__DTCM_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M7 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHPR[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t ID_PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t ID_MFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ID_ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[1U]; + __IM uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __IM uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __IM uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IOM uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED3[93U]; + __OM uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15U]; + __IM uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 2 */ + uint32_t RESERVED5[1U]; + __OM uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1U]; + __OM uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __OM uint32_t DCIMVAC; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __OM uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __OM uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __OM uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __OM uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __OM uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __OM uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6U]; + __IOM uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IOM uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IOM uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IOM uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IOM uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1U]; + __IOM uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_BP_Pos 18U /*!< SCB CCR: Branch prediction enable bit Position */ +#define SCB_CCR_BP_Msk (1UL << SCB_CCR_BP_Pos) /*!< SCB CCR: Branch prediction enable bit Mask */ + +#define SCB_CCR_IC_Pos 17U /*!< SCB CCR: Instruction cache enable bit Position */ +#define SCB_CCR_IC_Msk (1UL << SCB_CCR_IC_Pos) /*!< SCB CCR: Instruction cache enable bit Mask */ + +#define SCB_CCR_DC_Pos 16U /*!< SCB CCR: Cache enable bit Position */ +#define SCB_CCR_DC_Msk (1UL << SCB_CCR_DC_Pos) /*!< SCB CCR: Cache enable bit Mask */ + +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/* SCB Cache Level ID Register Definitions */ +#define SCB_CLIDR_LOUU_Pos 27U /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24U /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_LOC_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* SCB Cache Type Register Definitions */ +#define SCB_CTR_FORMAT_Pos 29U /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24U /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20U /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16U /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0U /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL /*<< SCB_CTR_IMINLINE_Pos*/) /*!< SCB CTR: ImInLine Mask */ + +/* SCB Cache Size ID Register Definitions */ +#define SCB_CCSIDR_WT_Pos 31U /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (1UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30U /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (1UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29U /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (1UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28U /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (1UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13U /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3U /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0U /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL /*<< SCB_CCSIDR_LINESIZE_Pos*/) /*!< SCB CCSIDR: LineSize Mask */ + +/* SCB Cache Size Selection Register Definitions */ +#define SCB_CSSELR_LEVEL_Pos 1U /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (7UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0U /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL /*<< SCB_CSSELR_IND_Pos*/) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register Definitions */ +#define SCB_STIR_INTID_Pos 0U /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL /*<< SCB_STIR_INTID_Pos*/) /*!< SCB STIR: INTID Mask */ + +/* SCB D-Cache Invalidate by Set-way Register Definitions */ +#define SCB_DCISW_WAY_Pos 30U /*!< SCB DCISW: Way Position */ +#define SCB_DCISW_WAY_Msk (3UL << SCB_DCISW_WAY_Pos) /*!< SCB DCISW: Way Mask */ + +#define SCB_DCISW_SET_Pos 5U /*!< SCB DCISW: Set Position */ +#define SCB_DCISW_SET_Msk (0x1FFUL << SCB_DCISW_SET_Pos) /*!< SCB DCISW: Set Mask */ + +/* SCB D-Cache Clean by Set-way Register Definitions */ +#define SCB_DCCSW_WAY_Pos 30U /*!< SCB DCCSW: Way Position */ +#define SCB_DCCSW_WAY_Msk (3UL << SCB_DCCSW_WAY_Pos) /*!< SCB DCCSW: Way Mask */ + +#define SCB_DCCSW_SET_Pos 5U /*!< SCB DCCSW: Set Position */ +#define SCB_DCCSW_SET_Msk (0x1FFUL << SCB_DCCSW_SET_Pos) /*!< SCB DCCSW: Set Mask */ + +/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */ +#define SCB_DCCISW_WAY_Pos 30U /*!< SCB DCCISW: Way Position */ +#define SCB_DCCISW_WAY_Msk (3UL << SCB_DCCISW_WAY_Pos) /*!< SCB DCCISW: Way Mask */ + +#define SCB_DCCISW_SET_Pos 5U /*!< SCB DCCISW: Set Position */ +#define SCB_DCCISW_SET_Msk (0x1FFUL << SCB_DCCISW_SET_Pos) /*!< SCB DCCISW: Set Mask */ + +/* Instruction Tightly-Coupled Memory Control Register Definitions */ +#define SCB_ITCMCR_SZ_Pos 3U /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2U /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1UL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1U /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1UL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0U /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1UL /*<< SCB_ITCMCR_EN_Pos*/) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Register Definitions */ +#define SCB_DTCMCR_SZ_Pos 3U /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2U /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1U /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0U /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL /*<< SCB_DTCMCR_EN_Pos*/) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register Definitions */ +#define SCB_AHBPCR_SZ_Pos 1U /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0U /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL /*<< SCB_AHBPCR_EN_Pos*/) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register Definitions */ +#define SCB_CACR_FORCEWT_Pos 2U /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1U /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0U /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL /*<< SCB_CACR_SIWT_Pos*/) /*!< SCB CACR: SIWT Mask */ + +/* AHBS Control Register Definitions */ +#define SCB_AHBSCR_INITCOUNT_Pos 11U /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2U /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0U /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL /*<< SCB_AHBPCR_CTL_Pos*/) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register Definitions */ +#define SCB_ABFSR_AXIMTYPE_Pos 8U /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4U /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3U /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2U /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1U /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0U /*!< SCB ABFSR: ITCM Position*/ +#define SCB_ABFSR_ITCM_Msk (1UL /*<< SCB_ABFSR_ITCM_Pos*/) /*!< SCB ABFSR: ITCM Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Pos 12U /*!< ACTLR: DISITMATBFLUSH Position */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ + +#define SCnSCB_ACTLR_DISRAMODE_Pos 11U /*!< ACTLR: DISRAMODE Position */ +#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ + +#define SCnSCB_ACTLR_FPEXCODIS_Pos 10U /*!< ACTLR: FPEXCODIS Position */ +#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED3[981U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __IM uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/* Media and FP Feature Register 2 Definitions */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ +#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL) /* return to Handler mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL) /* return to Thread mode, uses MSP after return, restore floating-point state */ +#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL) /* return to Thread mode, uses PSP after return, restore floating-point state */ + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = SCB->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x220U) + { + return 2U; /* Double + Single precision FPU */ + } + else if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ########################## Cache functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_CacheFunctions Cache Functions + \brief Functions that configure Instruction and Data cache. + @{ + */ + +/* Cache Size ID Register Macros */ +#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) +#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) + + +/** + \brief Enable I-Cache + \details Turns on I-Cache + */ +__STATIC_INLINE void SCB_EnableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + SCB->CCR |= (uint32_t)SCB_CCR_IC_Msk; /* enable I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable I-Cache + \details Turns off I-Cache + */ +__STATIC_INLINE void SCB_DisableICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->CCR &= ~(uint32_t)SCB_CCR_IC_Msk; /* disable I-Cache */ + SCB->ICIALLU = 0UL; /* invalidate I-Cache */ + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate I-Cache + \details Invalidates I-Cache + */ +__STATIC_INLINE void SCB_InvalidateICache (void) +{ + #if defined (__ICACHE_PRESENT) && (__ICACHE_PRESENT == 1U) + __DSB(); + __ISB(); + SCB->ICIALLU = 0UL; + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Enable D-Cache + \details Turns on D-Cache + */ +__STATIC_INLINE void SCB_EnableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + __DSB(); + + SCB->CCR |= (uint32_t)SCB_CCR_DC_Msk; /* enable D-Cache */ + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Disable D-Cache + \details Turns off D-Cache + */ +__STATIC_INLINE void SCB_DisableDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* Level 1 data cache */ + __DSB(); + + SCB->CCR &= ~(uint32_t)SCB_CCR_DC_Msk; /* disable D-Cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Invalidate D-Cache + \details Invalidates D-Cache + */ +__STATIC_INLINE void SCB_InvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCISW = (((sets << SCB_DCISW_SET_Pos) & SCB_DCISW_SET_Msk) | + ((ways << SCB_DCISW_WAY_Pos) & SCB_DCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean D-Cache + \details Cleans D-Cache + */ +__STATIC_INLINE void SCB_CleanDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCSW = (((sets << SCB_DCCSW_SET_Pos) & SCB_DCCSW_SET_Msk) | + ((ways << SCB_DCCSW_WAY_Pos) & SCB_DCCSW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief Clean & Invalidate D-Cache + \details Cleans and Invalidates D-Cache + */ +__STATIC_INLINE void SCB_CleanInvalidateDCache (void) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + uint32_t ccsidr; + uint32_t sets; + uint32_t ways; + + SCB->CSSELR = 0U; /*(0U << 1U) | 0U;*/ /* Level 1 data cache */ + __DSB(); + + ccsidr = SCB->CCSIDR; + + /* clean & invalidate D-Cache */ + sets = (uint32_t)(CCSIDR_SETS(ccsidr)); + do { + ways = (uint32_t)(CCSIDR_WAYS(ccsidr)); + do { + SCB->DCCISW = (((sets << SCB_DCCISW_SET_Pos) & SCB_DCCISW_SET_Msk) | + ((ways << SCB_DCCISW_WAY_Pos) & SCB_DCCISW_WAY_Msk) ); + #if defined ( __CC_ARM ) + __schedule_barrier(); + #endif + } while (ways-- != 0U); + } while(sets-- != 0U); + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Invalidate by address + \details Invalidates D-Cache for the given address + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_InvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t)addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCIMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Clean by address + \details Cleans D-Cache for the given address + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t) addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCCMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __DSB(); + __ISB(); + #endif +} + + +/** + \brief D-Cache Clean and Invalidate by address + \details Cleans and invalidates D_Cache for the given address + \param[in] addr address (aligned to 32-byte boundary) + \param[in] dsize size of memory block (in number of bytes) +*/ +__STATIC_INLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, int32_t dsize) +{ + #if defined (__DCACHE_PRESENT) && (__DCACHE_PRESENT == 1U) + int32_t op_size = dsize; + uint32_t op_addr = (uint32_t) addr; + int32_t linesize = 32; /* in Cortex-M7 size of cache line is fixed to 8 words (32 bytes) */ + + __DSB(); + + while (op_size > 0) { + SCB->DCCIMVAC = op_addr; + op_addr += (uint32_t)linesize; + op_size -= linesize; + } + + __DSB(); + __ISB(); + #endif +} + + +/*@} end of CMSIS_Core_CacheFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM7_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_sc000.h b/Drivers/CMSIS/Include/core_sc000.h new file mode 100644 index 0000000..9b67c92 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc000.h @@ -0,0 +1,1022 @@ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V5.0.5 + * @date 28. May 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (000U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC000_H_DEPENDANT +#define __CORE_SC000_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC000_REV + #define __SC000_REV 0x0000U + #warning "__SC000_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 2U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC000 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t _reserved0:1; /*!< bit: 0 Reserved */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31U]; + __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31U]; + __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31U]; + __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31U]; + uint32_t RESERVED4[64U]; + __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */ +} NVIC_Type; + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1U]; + __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor. + Therefore they are not covered by the SC000 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else +/*#define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping not available for SC000 */ +/*#define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping not available for SC000 */ + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ +/*#define NVIC_GetActive __NVIC_GetActive not available for SC000 */ + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + +/* Interrupt Priorities are WORD accessible only under Armv6-M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL) +#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) ) +#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) ) + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } + else + { + SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) | + (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn))); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/Drivers/CMSIS/Include/core_sc300.h b/Drivers/CMSIS/Include/core_sc300.h new file mode 100644 index 0000000..3e8a471 --- /dev/null +++ b/Drivers/CMSIS/Include/core_sc300.h @@ -0,0 +1,1915 @@ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V5.0.6 + * @date 04. June 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup SC3000 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16U) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_SC (300U) /*!< Cortex secure core */ + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC300_H_DEPENDANT +#define __CORE_SC300_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __SC300_REV + #define __SC300_REV 0x0000U + #warning "__SC300_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group SC300 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t _reserved1:8; /*!< bit: 16..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED1[129U]; + __IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + uint32_t RESERVED1[1U]; +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER Register */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY2_Pos 0U /*!< TPI ITATBCTR2: ATREADY2 Position */ +#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY2_Pos*/) /*!< TPI ITATBCTR2: ATREADY2 Mask */ + +#define TPI_ITATBCTR2_ATREADY1_Pos 0U /*!< TPI ITATBCTR2: ATREADY1 Position */ +#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY1_Pos*/) /*!< TPI ITATBCTR2: ATREADY1 Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY2_Pos 0U /*!< TPI ITATBCTR0: ATREADY2 Position */ +#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY2_Pos*/) /*!< TPI ITATBCTR0: ATREADY2 Mask */ + +#define TPI_ITATBCTR0_ATREADY1_Pos 0U /*!< TPI ITATBCTR0: ATREADY1 Position */ +#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY1_Pos*/) /*!< TPI ITATBCTR0: ATREADY1 Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x3UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_SubType_Pos 4U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 0U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + +/* The following EXC_RETURN values are saved the LR on exception entry */ +#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */ +#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */ +#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */ + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + return 0U; /* No FPU */ +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC300_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/mpu_armv7.h b/Drivers/CMSIS/Include/mpu_armv7.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/mpu_armv7.h rename to Drivers/CMSIS/Include/mpu_armv7.h diff --git a/Drivers/CMSIS/Include/mpu_armv8.h b/Drivers/CMSIS/Include/mpu_armv8.h new file mode 100644 index 0000000..62571da --- /dev/null +++ b/Drivers/CMSIS/Include/mpu_armv8.h @@ -0,0 +1,333 @@ +/****************************************************************************** + * @file mpu_armv8.h + * @brief CMSIS MPU API for Armv8-M MPU + * @version V5.0.4 + * @date 10. January 2018 + ******************************************************************************/ +/* + * Copyright (c) 2017-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV8_H +#define ARM_MPU_ARMV8_H + +/** \brief Attribute for device memory (outer only) */ +#define ARM_MPU_ATTR_DEVICE ( 0U ) + +/** \brief Attribute for non-cacheable, normal memory */ +#define ARM_MPU_ATTR_NON_CACHEABLE ( 4U ) + +/** \brief Attribute for normal memory (outer and inner) +* \param NT Non-Transient: Set to 1 for non-transient data. +* \param WB Write-Back: Set to 1 to use write-back update policy. +* \param RA Read Allocation: Set to 1 to use cache allocation on read miss. +* \param WA Write Allocation: Set to 1 to use cache allocation on write miss. +*/ +#define ARM_MPU_ATTR_MEMORY_(NT, WB, RA, WA) \ + (((NT & 1U) << 3U) | ((WB & 1U) << 2U) | ((RA & 1U) << 1U) | (WA & 1U)) + +/** \brief Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRnE (0U) + +/** \brief Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGnRE (1U) + +/** \brief Device memory type non Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_nGRE (2U) + +/** \brief Device memory type Gathering, Re-ordering, Early Write Acknowledgement */ +#define ARM_MPU_ATTR_DEVICE_GRE (3U) + +/** \brief Memory Attribute +* \param O Outer memory attributes +* \param I O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes +*/ +#define ARM_MPU_ATTR(O, I) (((O & 0xFU) << 4U) | (((O & 0xFU) != 0U) ? (I & 0xFU) : ((I & 0x3U) << 2U))) + +/** \brief Normal memory non-shareable */ +#define ARM_MPU_SH_NON (0U) + +/** \brief Normal memory outer shareable */ +#define ARM_MPU_SH_OUTER (2U) + +/** \brief Normal memory inner shareable */ +#define ARM_MPU_SH_INNER (3U) + +/** \brief Memory access permissions +* \param RO Read-Only: Set to 1 for read-only memory. +* \param NP Non-Privileged: Set to 1 for non-privileged memory. +*/ +#define ARM_MPU_AP_(RO, NP) (((RO & 1U) << 1U) | (NP & 1U)) + +/** \brief Region Base Address Register value +* \param BASE The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. +* \param SH Defines the Shareability domain for this memory region. +* \param RO Read-Only: Set to 1 for a read-only memory region. +* \param NP Non-Privileged: Set to 1 for a non-privileged memory region. +* \oaram XN eXecute Never: Set to 1 for a non-executable memory region. +*/ +#define ARM_MPU_RBAR(BASE, SH, RO, NP, XN) \ + ((BASE & MPU_RBAR_BASE_Msk) | \ + ((SH << MPU_RBAR_SH_Pos) & MPU_RBAR_SH_Msk) | \ + ((ARM_MPU_AP_(RO, NP) << MPU_RBAR_AP_Pos) & MPU_RBAR_AP_Msk) | \ + ((XN << MPU_RBAR_XN_Pos) & MPU_RBAR_XN_Msk)) + +/** \brief Region Limit Address Register value +* \param LIMIT The limit address bits [31:5] for this memory region. The value is one extended. +* \param IDX The attribute index to be associated with this memory region. +*/ +#define ARM_MPU_RLAR(LIMIT, IDX) \ + ((LIMIT & MPU_RLAR_LIMIT_Msk) | \ + ((IDX << MPU_RLAR_AttrIndx_Pos) & MPU_RLAR_AttrIndx_Msk) | \ + (MPU_RLAR_EN_Msk)) + +/** +* Struct for a single MPU Region +*/ +typedef struct { + uint32_t RBAR; /*!< Region Base Address Register value */ + uint32_t RLAR; /*!< Region Limit Address Register value */ +} ARM_MPU_Region_t; + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + __DSB(); + __ISB(); + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DSB(); + __ISB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +#ifdef MPU_NS +/** Enable the Non-secure MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable_NS(uint32_t MPU_Control) +{ + __DSB(); + __ISB(); + MPU_NS->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the Non-secure MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable_NS(void) +{ + __DSB(); + __ISB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB_NS->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU_NS->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} +#endif + +/** Set the memory attribute encoding to the given MPU. +* \param mpu Pointer to the MPU to be configured. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttrEx(MPU_Type* mpu, uint8_t idx, uint8_t attr) +{ + const uint8_t reg = idx / 4U; + const uint32_t pos = ((idx % 4U) * 8U); + const uint32_t mask = 0xFFU << pos; + + if (reg >= (sizeof(mpu->MAIR) / sizeof(mpu->MAIR[0]))) { + return; // invalid index + } + + mpu->MAIR[reg] = ((mpu->MAIR[reg] & ~mask) | ((attr << pos) & mask)); +} + +/** Set the memory attribute encoding. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU, idx, attr); +} + +#ifdef MPU_NS +/** Set the memory attribute encoding to the Non-secure MPU. +* \param idx The attribute index to be set [0-7] +* \param attr The attribute value to be set. +*/ +__STATIC_INLINE void ARM_MPU_SetMemAttr_NS(uint8_t idx, uint8_t attr) +{ + ARM_MPU_SetMemAttrEx(MPU_NS, idx, attr); +} +#endif + +/** Clear and disable the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegionEx(MPU_Type* mpu, uint32_t rnr) +{ + mpu->RNR = rnr; + mpu->RLAR = 0U; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU, rnr); +} + +#ifdef MPU_NS +/** Clear and disable the given Non-secure MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion_NS(uint32_t rnr) +{ + ARM_MPU_ClrRegionEx(MPU_NS, rnr); +} +#endif + +/** Configure the given MPU region of the given MPU. +* \param mpu Pointer to MPU to be used. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(MPU_Type* mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + mpu->RNR = rnr; + mpu->RBAR = rbar; + mpu->RLAR = rlar; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU, rnr, rbar, rlar); +} + +#ifdef MPU_NS +/** Configure the given Non-secure MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rlar Value for RLAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion_NS(uint32_t rnr, uint32_t rbar, uint32_t rlar) +{ + ARM_MPU_SetRegionEx(MPU_NS, rnr, rbar, rlar); +} +#endif + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table to the given MPU. +* \param mpu Pointer to the MPU registers to be used. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_LoadEx(MPU_Type* mpu, uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + if (cnt == 1U) { + mpu->RNR = rnr; + orderedCpy(&(mpu->RBAR), &(table->RBAR), rowWordSize); + } else { + uint32_t rnrBase = rnr & ~(MPU_TYPE_RALIASES-1U); + uint32_t rnrOffset = rnr % MPU_TYPE_RALIASES; + + mpu->RNR = rnrBase; + while ((rnrOffset + cnt) > MPU_TYPE_RALIASES) { + uint32_t c = MPU_TYPE_RALIASES - rnrOffset; + orderedCpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), c*rowWordSize); + table += c; + cnt -= c; + rnrOffset = 0U; + rnrBase += MPU_TYPE_RALIASES; + mpu->RNR = rnrBase; + } + + orderedCpy(&(mpu->RBAR)+(rnrOffset*2U), &(table->RBAR), cnt*rowWordSize); + } +} + +/** Load the given number of MPU regions from a table. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU, rnr, table, cnt); +} + +#ifdef MPU_NS +/** Load the given number of MPU regions from a table to the Non-secure MPU. +* \param rnr First region number to be configured. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load_NS(uint32_t rnr, ARM_MPU_Region_t const* table, uint32_t cnt) +{ + ARM_MPU_LoadEx(MPU_NS, rnr, table, cnt); +} +#endif + +#endif + diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Include/tz_context.h b/Drivers/CMSIS/Include/tz_context.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/Include/tz_context.h rename to Drivers/CMSIS/Include/tz_context.h diff --git a/HAL_N_Middlewares/Drivers/CMSIS/LICENSE.txt b/Drivers/CMSIS/LICENSE.txt similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/LICENSE.txt rename to Drivers/CMSIS/LICENSE.txt diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_crc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dac_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rng.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_adc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_bus.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_cortex.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_crc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dac.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_dma.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_exti.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_gpio.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_i2c.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_pwr.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rcc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rng.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_system.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_tim.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usart.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h b/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h rename to Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_utils.h diff --git a/Drivers/STM32F4xx_HAL_Driver/LICENSE.txt b/Drivers/STM32F4xx_HAL_Driver/LICENSE.txt new file mode 100644 index 0000000..3edc4d1 --- /dev/null +++ b/Drivers/STM32F4xx_HAL_Driver/LICENSE.txt @@ -0,0 +1,6 @@ +This software component is provided to you as part of a software package and +applicable license terms are in the Package_license file. If you received this +software component outside of a package or without applicable license terms, +the terms of the BSD-3-Clause license shall apply. +You may obtain a copy of the BSD-3-Clause at: +https://opensource.org/licenses/BSD-3-Clause diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c diff --git a/HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c b/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c similarity index 100% rename from HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c rename to Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_common_tables.h b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_common_tables.h deleted file mode 100644 index dfea746..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_common_tables.h +++ /dev/null @@ -1,121 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_common_tables.h - * Description: Extern declaration for common tables - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _ARM_COMMON_TABLES_H -#define _ARM_COMMON_TABLES_H - -#include "arm_math.h" - -extern const uint16_t armBitRevTable[1024]; -extern const q15_t armRecipTableQ15[64]; -extern const q31_t armRecipTableQ31[64]; -extern const float32_t twiddleCoef_16[32]; -extern const float32_t twiddleCoef_32[64]; -extern const float32_t twiddleCoef_64[128]; -extern const float32_t twiddleCoef_128[256]; -extern const float32_t twiddleCoef_256[512]; -extern const float32_t twiddleCoef_512[1024]; -extern const float32_t twiddleCoef_1024[2048]; -extern const float32_t twiddleCoef_2048[4096]; -extern const float32_t twiddleCoef_4096[8192]; -#define twiddleCoef twiddleCoef_4096 -extern const q31_t twiddleCoef_16_q31[24]; -extern const q31_t twiddleCoef_32_q31[48]; -extern const q31_t twiddleCoef_64_q31[96]; -extern const q31_t twiddleCoef_128_q31[192]; -extern const q31_t twiddleCoef_256_q31[384]; -extern const q31_t twiddleCoef_512_q31[768]; -extern const q31_t twiddleCoef_1024_q31[1536]; -extern const q31_t twiddleCoef_2048_q31[3072]; -extern const q31_t twiddleCoef_4096_q31[6144]; -extern const q15_t twiddleCoef_16_q15[24]; -extern const q15_t twiddleCoef_32_q15[48]; -extern const q15_t twiddleCoef_64_q15[96]; -extern const q15_t twiddleCoef_128_q15[192]; -extern const q15_t twiddleCoef_256_q15[384]; -extern const q15_t twiddleCoef_512_q15[768]; -extern const q15_t twiddleCoef_1024_q15[1536]; -extern const q15_t twiddleCoef_2048_q15[3072]; -extern const q15_t twiddleCoef_4096_q15[6144]; -extern const float32_t twiddleCoef_rfft_32[32]; -extern const float32_t twiddleCoef_rfft_64[64]; -extern const float32_t twiddleCoef_rfft_128[128]; -extern const float32_t twiddleCoef_rfft_256[256]; -extern const float32_t twiddleCoef_rfft_512[512]; -extern const float32_t twiddleCoef_rfft_1024[1024]; -extern const float32_t twiddleCoef_rfft_2048[2048]; -extern const float32_t twiddleCoef_rfft_4096[4096]; - -/* floating-point bit reversal tables */ -#define ARMBITREVINDEXTABLE_16_TABLE_LENGTH ((uint16_t)20) -#define ARMBITREVINDEXTABLE_32_TABLE_LENGTH ((uint16_t)48) -#define ARMBITREVINDEXTABLE_64_TABLE_LENGTH ((uint16_t)56) -#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208) -#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440) -#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448) -#define ARMBITREVINDEXTABLE_1024_TABLE_LENGTH ((uint16_t)1800) -#define ARMBITREVINDEXTABLE_2048_TABLE_LENGTH ((uint16_t)3808) -#define ARMBITREVINDEXTABLE_4096_TABLE_LENGTH ((uint16_t)4032) - -extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE_16_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE_32_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE_64_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE_1024_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE_2048_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE_4096_TABLE_LENGTH]; - -/* fixed-point bit reversal tables */ -#define ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH ((uint16_t)12) -#define ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH ((uint16_t)24) -#define ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH ((uint16_t)56) -#define ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH ((uint16_t)112) -#define ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH ((uint16_t)240) -#define ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH ((uint16_t)480) -#define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992) -#define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984) -#define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032) - -extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH]; -extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH]; - -/* Tables for Fast Math Sine and Cosine */ -extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1]; -extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1]; -extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1]; - -#endif /* ARM_COMMON_TABLES_H */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_const_structs.h b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_const_structs.h deleted file mode 100644 index 80a3e8b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_const_structs.h +++ /dev/null @@ -1,66 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_const_structs.h - * Description: Constant structs that are initialized for user convenience. - * For example, some can be given as arguments to the arm_cfft_f32() function. - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _ARM_CONST_STRUCTS_H -#define _ARM_CONST_STRUCTS_H - -#include "arm_math.h" -#include "arm_common_tables.h" - - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048; - extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096; - - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048; - extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096; - - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048; - extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096; - -#endif diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_f32.c deleted file mode 100644 index f88ef95..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_f32.c +++ /dev/null @@ -1,153 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_abs_f32.c - * Description: Floating-point vector absolute value - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicAbs Vector Absolute Value - * - * Computes the absolute value of a vector on an element-by-element basis. - * - *
- *     pDst[n] = abs(pSrc[n]),   0 <= n < blockSize.
- * 
- * - * The functions support in-place computation allowing the source and - * destination pointers to reference the same memory buffer. - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Floating-point vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_abs_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = |A| */ - /* Calculate absolute and then store the results in the destination buffer. */ - /* read sample from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - - /* find absolute value */ - in1 = fabsf(in1); - - /* read sample from source */ - in4 = *(pSrc + 3); - - /* find absolute value */ - in2 = fabsf(in2); - - /* read sample from source */ - *pDst = in1; - - /* find absolute value */ - in3 = fabsf(in3); - - /* find absolute value */ - in4 = fabsf(in4); - - /* store result to destination */ - *(pDst + 1) = in2; - - /* store result to destination */ - *(pDst + 2) = in3; - - /* store result to destination */ - *(pDst + 3) = in4; - - - /* Update source pointer to process next sampels */ - pSrc += 4U; - - /* Update destination pointer to process next sampels */ - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = |A| */ - /* Calculate absolute and then store the results in the destination buffer. */ - *pDst++ = fabsf(*pSrc++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAbs group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q15.c deleted file mode 100644 index ec47fff..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q15.c +++ /dev/null @@ -1,167 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_abs_q15.c - * Description: Q15 vector absolute value - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Q15 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF. - */ - -void arm_abs_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - __SIMD32_TYPE *simd; - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t in1; /* Input value1 */ - q15_t in2; /* Input value2 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - simd = __SIMD32_CONST(pDst); - while (blkCnt > 0U) - { - /* C = |A| */ - /* Read two inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - - - /* Store the Absolute result in the destination buffer by packing the two values, in a single cycle */ -#ifndef ARM_MATH_BIG_ENDIAN - *simd++ = - __PKHBT(((in1 > 0) ? in1 : (q15_t)__QSUB16(0, in1)), - ((in2 > 0) ? in2 : (q15_t)__QSUB16(0, in2)), 16); - -#else - - - *simd++ = - __PKHBT(((in2 > 0) ? in2 : (q15_t)__QSUB16(0, in2)), - ((in1 > 0) ? in1 : (q15_t)__QSUB16(0, in1)), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - - -#ifndef ARM_MATH_BIG_ENDIAN - - *simd++ = - __PKHBT(((in1 > 0) ? in1 : (q15_t)__QSUB16(0, in1)), - ((in2 > 0) ? in2 : (q15_t)__QSUB16(0, in2)), 16); - -#else - - - *simd++ = - __PKHBT(((in2 > 0) ? in2 : (q15_t)__QSUB16(0, in2)), - ((in1 > 0) ? in1 : (q15_t)__QSUB16(0, in1)), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - pDst = (q15_t *)simd; - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = |A| */ - /* Read the input */ - in1 = *pSrc++; - - /* Calculate absolute value of input and then store the result in the destination buffer. */ - *pDst++ = (in1 > 0) ? in1 : (q15_t)__QSUB16(0, in1); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t in; /* Temporary input variable */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = |A| */ - /* Read the input */ - in = *pSrc++; - - /* Calculate absolute value of input and then store the result in the destination buffer. */ - *pDst++ = (in > 0) ? in : ((in == (q15_t) 0x8000) ? 0x7fff : -in); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of BasicAbs group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q31.c deleted file mode 100644 index 2733f51..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q31.c +++ /dev/null @@ -1,118 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_abs_q31.c - * Description: Q31 vector absolute value - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - - -/** - * @brief Q31 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF. - */ - -void arm_abs_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q31_t in; /* Input value */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = |A| */ - /* Calculate absolute of input (if -1 then saturated to 0x7fffffff) and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = (in1 > 0) ? in1 : (q31_t)__QSUB(0, in1); - *pDst++ = (in2 > 0) ? in2 : (q31_t)__QSUB(0, in2); - *pDst++ = (in3 > 0) ? in3 : (q31_t)__QSUB(0, in3); - *pDst++ = (in4 > 0) ? in4 : (q31_t)__QSUB(0, in4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = |A| */ - /* Calculate absolute value of the input (if -1 then saturated to 0x7fffffff) and then store the results in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in > 0) ? in : ((in == INT32_MIN) ? INT32_MAX : -in); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of BasicAbs group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q7.c deleted file mode 100644 index d0acbfc..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_q7.c +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_abs_q7.c - * Description: Q7 vector absolute value - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAbs - * @{ - */ - -/** - * @brief Q7 vector absolute value. - * @param[in] *pSrc points to the input buffer - * @param[out] *pDst points to the output buffer - * @param[in] blockSize number of samples in each vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q7 value -1 (0x80) will be saturated to the maximum allowable positive value 0x7F. - */ - -void arm_abs_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q7_t in; /* Input value1 */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = |A| */ - /* Read inputs */ - in1 = (q31_t) * pSrc; - in2 = (q31_t) * (pSrc + 1); - in3 = (q31_t) * (pSrc + 2); - - /* find absolute value */ - out1 = (in1 > 0) ? in1 : (q31_t)__QSUB8(0, in1); - - /* read input */ - in4 = (q31_t) * (pSrc + 3); - - /* find absolute value */ - out2 = (in2 > 0) ? in2 : (q31_t)__QSUB8(0, in2); - - /* store result to destination */ - *pDst = (q7_t) out1; - - /* find absolute value */ - out3 = (in3 > 0) ? in3 : (q31_t)__QSUB8(0, in3); - - /* find absolute value */ - out4 = (in4 > 0) ? in4 : (q31_t)__QSUB8(0, in4); - - /* store result to destination */ - *(pDst + 1) = (q7_t) out2; - - /* store result to destination */ - *(pDst + 2) = (q7_t) out3; - - /* store result to destination */ - *(pDst + 3) = (q7_t) out4; - - /* update pointers to process next samples */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - -#endif /* #define ARM_MATH_CM0_FAMILY */ - - while (blkCnt > 0U) - { - /* C = |A| */ - /* Read the input */ - in = *pSrc++; - - /* Store the Absolute result in the destination buffer */ - *pDst++ = (in > 0) ? in : ((in == (q7_t) 0x80) ? 0x7f : -in); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAbs group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_f32.c deleted file mode 100644 index 78feb64..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_f32.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_add_f32.c - * Description: Floating-point vector addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicAdd Vector Addition - * - * Element-by-element addition of two vectors. - * - *
- *     pDst[n] = pSrcA[n] + pSrcB[n],   0 <= n < blockSize.
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Floating-point vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_add_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary input variabels */ - float32_t inB1, inB2, inB3, inB4; /* temporary input variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - - /* read four inputs from sourceA and four inputs from sourceB */ - inA1 = *pSrcA; - inB1 = *pSrcB; - inA2 = *(pSrcA + 1); - inB2 = *(pSrcB + 1); - inA3 = *(pSrcA + 2); - inB3 = *(pSrcB + 2); - inA4 = *(pSrcA + 3); - inB4 = *(pSrcB + 3); - - /* C = A + B */ - /* add and store result to destination */ - *pDst = inA1 + inB1; - *(pDst + 1) = inA2 + inB2; - *(pDst + 2) = inA3 + inB3; - *(pDst + 3) = inA4 + inB4; - - /* update pointers to process next samples */ - pSrcA += 4U; - pSrcB += 4U; - pDst += 4U; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (*pSrcA++) + (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q15.c deleted file mode 100644 index 80a523f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q15.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_add_q15.c - * Description: Q15 vector addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Q15 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_add_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inB1, inB2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - inA1 = *__SIMD32(pSrcA)++; - inA2 = *__SIMD32(pSrcA)++; - inB1 = *__SIMD32(pSrcB)++; - inB2 = *__SIMD32(pSrcB)++; - - *__SIMD32(pDst)++ = __QADD16(inA1, inB1); - *__SIMD32(pDst)++ = __QADD16(inA2, inB2); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __QADD16(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrcA++ + *pSrcB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - -} - -/** - * @} end of BasicAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q31.c deleted file mode 100644 index c008bcc..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q31.c +++ /dev/null @@ -1,136 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_add_q31.c - * Description: Q31 vector addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - - -/** - * @brief Q31 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_add_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - *pDst++ = __QADD(inA1, inB1); - *pDst++ = __QADD(inA2, inB2); - *pDst++ = __QADD(inA3, inB3); - *pDst++ = __QADD(inA4, inB4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = __QADD(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrcA++ + *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of BasicAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q7.c deleted file mode 100644 index ab4e785..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_add_q7.c +++ /dev/null @@ -1,122 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_add_q7.c - * Description: Q7 vector addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicAdd - * @{ - */ - -/** - * @brief Q7 vector addition. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_add_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *__SIMD32(pDst)++ = __QADD8(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(*pSrcA++ + *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + B */ - /* Add and then store the results in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrcA++ + *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - -} - -/** - * @} end of BasicAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_f32.c deleted file mode 100644 index 0cd0afc..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_f32.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dot_prod_f32.c - * Description: Floating-point dot product - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup dot_prod Vector Dot Product - * - * Computes the dot product of two vectors. - * The vectors are multiplied element-by-element and then summed. - * - *
- *     sum = pSrcA[0]*pSrcB[0] + pSrcA[1]*pSrcB[1] + ... + pSrcA[blockSize-1]*pSrcB[blockSize-1]
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of floating-point vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - */ - - -void arm_dot_prod_f32( - float32_t * pSrcA, - float32_t * pSrcB, - uint32_t blockSize, - float32_t * result) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer */ - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - sum += (*pSrcA++) * (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum += (*pSrcA++) * (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - /* Store the result back in the destination buffer */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q15.c deleted file mode 100644 index dec4ec5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q15.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dot_prod_q15.c - * Description: Q15 dot product - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q15 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.15 x 1.15 = 2.30 format and these - * results are added to a 64-bit accumulator in 34.30 format. - * Nonsaturating additions are used and given that there are 33 guard bits in the accumulator - * there is no risk of overflow. - * The return result is in 34.30 format. - */ - -void arm_dot_prod_q15( - q15_t * pSrcA, - q15_t * pSrcB, - uint32_t blockSize, - q63_t * result) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum = __SMLALD(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++, sum); - sum = __SMLALD(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the results in a temporary buffer. */ - sum = __SMLALD(*pSrcA++, *pSrcB++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the results in a temporary buffer. */ - sum += (q63_t) ((q31_t) * pSrcA++ * *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Store the result in the destination buffer in 34.30 format */ - *result = sum; - -} - -/** - * @} end of dot_prod group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q31.c deleted file mode 100644 index 67ae887..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q31.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dot_prod_q31.c - * Description: Q31 dot product - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q31 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.31 x 1.31 = 2.62 format and these - * are truncated to 2.48 format by discarding the lower 14 bits. - * The 2.48 result is then added without saturation to a 64-bit accumulator in 16.48 format. - * There are 15 guard bits in the accumulator and there is no risk of overflow as long as - * the length of the vectors is less than 2^16 elements. - * The return result is in 16.48 format. - */ - -void arm_dot_prod_q31( - q31_t * pSrcA, - q31_t * pSrcB, - uint32_t blockSize, - q63_t * result) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - sum += ((q63_t) inA1 * inB1) >> 14U; - sum += ((q63_t) inA2 * inB2) >> 14U; - sum += ((q63_t) inA3 * inB3) >> 14U; - sum += ((q63_t) inA4 * inB4) >> 14U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Calculate dot product and then store the result in a temporary buffer. */ - sum += ((q63_t) * pSrcA++ * *pSrcB++) >> 14U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result in the destination buffer in 16.48 format */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q7.c deleted file mode 100644 index 487efe3..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_q7.c +++ /dev/null @@ -1,147 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dot_prod_q7.c - * Description: Q7 dot product - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup dot_prod - * @{ - */ - -/** - * @brief Dot product of Q7 vectors. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[in] blockSize number of samples in each vector - * @param[out] *result output result returned here - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The intermediate multiplications are in 1.7 x 1.7 = 2.14 format and these - * results are added to an accumulator in 18.14 format. - * Nonsaturating additions are used and there is no danger of wrap around as long as - * the vectors are less than 2^18 elements long. - * The return result is in 18.14 format. - */ - -void arm_dot_prod_q7( - q7_t * pSrcA, - q7_t * pSrcB, - uint32_t blockSize, - q31_t * result) -{ - uint32_t blkCnt; /* loop counter */ - - q31_t sum = 0; /* Temporary variables to store output */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t input1, input2; /* Temporary variables to store input */ - q31_t inA1, inA2, inB1, inB2; /* Temporary variables to store input */ - - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* read 4 samples at a time from sourceA */ - input1 = *__SIMD32(pSrcA)++; - /* read 4 samples at a time from sourceB */ - input2 = *__SIMD32(pSrcB)++; - - /* extract two q7_t samples to q15_t samples */ - inA1 = __SXTB16(__ROR(input1, 8)); - /* extract reminaing two samples */ - inA2 = __SXTB16(input1); - /* extract two q7_t samples to q15_t samples */ - inB1 = __SXTB16(__ROR(input2, 8)); - /* extract reminaing two samples */ - inB2 = __SXTB16(input2); - - /* multiply and accumulate two samples at a time */ - sum = __SMLAD(inA1, inB1, sum); - sum = __SMLAD(inA2, inB2, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Dot product and then store the results in a temporary buffer. */ - sum = __SMLAD(*pSrcA++, *pSrcB++, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A[0]* B[0] + A[1]* B[1] + A[2]* B[2] + .....+ A[blockSize-1]* B[blockSize-1] */ - /* Dot product and then store the results in a temporary buffer. */ - sum += (q31_t) ((q15_t) * pSrcA++ * *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - - /* Store the result in the destination buffer in 18.14 format */ - *result = sum; -} - -/** - * @} end of dot_prod group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_f32.c deleted file mode 100644 index e4a9ef2..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_f32.c +++ /dev/null @@ -1,162 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mult_f32.c - * Description: Floating-point vector multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicMult Vector Multiplication - * - * Element-by-element multiplication of two vectors. - * - *
- *     pDst[n] = pSrcA[n] * pSrcB[n],   0 <= n < blockSize.
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Floating-point vector multiplication. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_mult_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary input variables */ - float32_t inB1, inB2, inB3, inB4; /* temporary input variables */ - float32_t out1, out2, out3, out4; /* temporary output variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and store the results in output buffer */ - /* read sample from sourceA */ - inA1 = *pSrcA; - /* read sample from sourceB */ - inB1 = *pSrcB; - /* read sample from sourceA */ - inA2 = *(pSrcA + 1); - /* read sample from sourceB */ - inB2 = *(pSrcB + 1); - - /* out = sourceA * sourceB */ - out1 = inA1 * inB1; - - /* read sample from sourceA */ - inA3 = *(pSrcA + 2); - /* read sample from sourceB */ - inB3 = *(pSrcB + 2); - - /* out = sourceA * sourceB */ - out2 = inA2 * inB2; - - /* read sample from sourceA */ - inA4 = *(pSrcA + 3); - - /* store result to destination buffer */ - *pDst = out1; - - /* read sample from sourceB */ - inB4 = *(pSrcB + 3); - - /* out = sourceA * sourceB */ - out3 = inA3 * inB3; - - /* store result to destination buffer */ - *(pDst + 1) = out2; - - /* out = sourceA * sourceB */ - out4 = inA4 * inB4; - /* store result to destination buffer */ - *(pDst + 2) = out3; - /* store result to destination buffer */ - *(pDst + 3) = out4; - - - /* update pointers to process next samples */ - pSrcA += 4U; - pSrcB += 4U; - pDst += 4U; - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and store the results in output buffer */ - *pDst++ = (*pSrcA++) * (*pSrcB++); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q15.c deleted file mode 100644 index 8e20963..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q15.c +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mult_q15.c - * Description: Q15 vector multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - - -/** - * @brief Q15 vector multiplication - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_mult_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inB1, inB2; /* temporary input variables */ - q15_t out1, out2, out3, out4; /* temporary output variables */ - q31_t mul1, mul2, mul3, mul4; /* temporary variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* read two samples at a time from sourceA */ - inA1 = *__SIMD32(pSrcA)++; - /* read two samples at a time from sourceB */ - inB1 = *__SIMD32(pSrcB)++; - /* read two samples at a time from sourceA */ - inA2 = *__SIMD32(pSrcA)++; - /* read two samples at a time from sourceB */ - inB2 = *__SIMD32(pSrcB)++; - - /* multiply mul = sourceA * sourceB */ - mul1 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16)); - mul2 = (q31_t) ((q15_t) inA1 * (q15_t) inB1); - mul3 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB2 >> 16)); - mul4 = (q31_t) ((q15_t) inA2 * (q15_t) inB2); - - /* saturate result to 16 bit */ - out1 = (q15_t) __SSAT(mul1 >> 15, 16); - out2 = (q15_t) __SSAT(mul2 >> 15, 16); - out3 = (q15_t) __SSAT(mul3 >> 15, 16); - out4 = (q15_t) __SSAT(mul4 >> 15, 16); - - /* store the result */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(out2, out1, 16); - *__SIMD32(pDst)++ = __PKHBT(out4, out3, 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(out2, out1, 16); - *__SIMD32(pDst)++ = __PKHBT(out4, out3, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and store the result in the destination buffer */ - *pDst++ = (q15_t) __SSAT((((q31_t) (*pSrcA++) * (*pSrcB++)) >> 15), 16); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q31.c deleted file mode 100644 index c302b01..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q31.c +++ /dev/null @@ -1,148 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mult_q31.c - * Description: Q31 vector multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Q31 vector multiplication. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_mult_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; /* temporary input variables */ - q31_t inB1, inB2, inB3, inB4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variables */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - out1 = ((q63_t) inA1 * inB1) >> 32; - out2 = ((q63_t) inA2 * inB2) >> 32; - out3 = ((q63_t) inA3 * inB3) >> 32; - out4 = ((q63_t) inA4 * inB4) >> 32; - - out1 = __SSAT(out1, 31); - out2 = __SSAT(out2, 31); - out3 = __SSAT(out3, 31); - out4 = __SSAT(out4, 31); - - *pDst++ = out1 << 1U; - *pDst++ = out2 << 1U; - *pDst++ = out3 << 1U; - *pDst++ = out4 << 1U; - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inB1 = *pSrcB++; - out1 = ((q63_t) inA1 * inB1) >> 32; - out1 = __SSAT(out1, 31); - *pDst++ = out1 << 1U; - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and then store the results in the destination buffer. */ - *pDst++ = - (q31_t) clip_q63_to_q31(((q63_t) (*pSrcA++) * (*pSrcB++)) >> 31); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ -} - -/** - * @} end of BasicMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q7.c deleted file mode 100644 index d8a2f8a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_q7.c +++ /dev/null @@ -1,115 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mult_q7.c - * Description: Q7 vector multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicMult - * @{ - */ - -/** - * @brief Q7 vector multiplication - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_mult_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counters */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t out1, out2, out3, out4; /* Temporary variables to store the product */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and store the results in temporary variables */ - out1 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out2 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out3 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - out4 = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - - /* Store the results of 4 inputs in the destination buffer in single cycle by packing */ - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A * B */ - /* Multiply the inputs and store the result in the destination buffer */ - *pDst++ = (q7_t) __SSAT((((q15_t) (*pSrcA++) * (*pSrcB++)) >> 7), 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_f32.c deleted file mode 100644 index e39624c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_f32.c +++ /dev/null @@ -1,134 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_negate_f32.c - * Description: Negates floating-point vectors - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup negate Vector Negate - * - * Negates the elements of a vector. - * - *
- *     pDst[n] = -pSrc[n],   0 <= n < blockSize.
- * 
- * - * The functions support in-place computation allowing the source and - * destination pointers to reference the same memory buffer. - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - -void arm_negate_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* read inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* negate the input */ - in1 = -in1; - in2 = -in2; - in3 = -in3; - in4 = -in4; - - /* store the result to destination */ - *pDst = in1; - *(pDst + 1) = in2; - *(pDst + 2) = in3; - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ - *pDst++ = -*pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q15.c deleted file mode 100644 index 9624160..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q15.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_negate_q15.c - * Description: Negates Q15 vectors - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF. - */ - -void arm_negate_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q15_t in; - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2; /* Temporary variables */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = -A */ - /* Read two inputs at a time */ - in1 = _SIMD32_OFFSET(pSrc); - in2 = _SIMD32_OFFSET(pSrc + 2); - - /* negate two samples at a time */ - in1 = __QSUB16(0, in1); - - /* negate two samples at a time */ - in2 = __QSUB16(0, in2); - - /* store the result to destination 2 samples at a time */ - _SIMD32_OFFSET(pDst) = in1; - /* store the result to destination 2 samples at a time */ - _SIMD32_OFFSET(pDst + 2) = in2; - - - /* update pointers to process next samples */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = -A */ - /* Negate and then store the result in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in == (q15_t) 0x8000) ? 0x7fff : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q31.c deleted file mode 100644 index 4a5a58d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q31.c +++ /dev/null @@ -1,117 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_negate_q31.c - * Description: Negates Q31 vectors - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF. - */ - -void arm_negate_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t in; /* Temporary variable */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = __QSUB(0, in1); - *pDst++ = __QSUB(0, in2); - *pDst++ = __QSUB(0, in3); - *pDst++ = __QSUB(0, in4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = -A */ - /* Negate and then store the result in the destination buffer. */ - in = *pSrc++; - *pDst++ = (in == INT32_MIN) ? INT32_MAX : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q7.c deleted file mode 100644 index d72c317..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_q7.c +++ /dev/null @@ -1,113 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_negate_q7.c - * Description: Negates Q7 vectors - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup negate - * @{ - */ - -/** - * @brief Negates the elements of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * The Q7 value -1 (0x80) will be saturated to the maximum allowable positive value 0x7F. - */ - -void arm_negate_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - q7_t in; - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t input; /* Input values1-4 */ - q31_t zero = 0x00000000; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = -A */ - /* Read four inputs */ - input = *__SIMD32(pSrc)++; - - /* Store the Negated results in the destination buffer in a single cycle by packing the results */ - *__SIMD32(pDst)++ = __QSUB8(zero, input); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = -A */ - /* Negate and then store the results in the destination buffer. */ \ - in = *pSrc++; - *pDst++ = (in == (q7_t) 0x80) ? 0x7f : -in; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of negate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_f32.c deleted file mode 100644 index ebc20a4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_f32.c +++ /dev/null @@ -1,154 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_offset_f32.c - * Description: Floating-point vector offset - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup offset Vector Offset - * - * Adds a constant offset to each element of a vector. - * - *
- *     pDst[n] = pSrc[n] + offset,   0 <= n < blockSize.
- * 
- * - * The functions support in-place computation allowing the source and - * destination pointers to reference the same memory buffer. - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - - -void arm_offset_f32( - float32_t * pSrc, - float32_t offset, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - /* read samples from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - - /* add offset to input */ - in1 = in1 + offset; - - /* read samples from source */ - in3 = *(pSrc + 2); - - /* add offset to input */ - in2 = in2 + offset; - - /* read samples from source */ - in4 = *(pSrc + 3); - - /* add offset to input */ - in3 = in3 + offset; - - /* store result to destination */ - *pDst = in1; - - /* add offset to input */ - in4 = in4 + offset; - - /* store result to destination */ - *(pDst + 1) = in2; - - /* store result to destination */ - *(pDst + 2) = in3; - - /* store result to destination */ - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++) + offset; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of offset group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q15.c deleted file mode 100644 index dab0b10..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q15.c +++ /dev/null @@ -1,124 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_offset_q15.c - * Description: Q15 vector offset - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated. - */ - -void arm_offset_q15( - q15_t * pSrc, - q15_t offset, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t offset_packed; /* Offset packed to 32 bit */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Offset is packed to 32 bit in order to use SIMD32 for addition */ - offset_packed = __PKHBT(offset, offset, 16); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer, 2 samples at a time. */ - *__SIMD32(pDst)++ = __QADD16(*__SIMD32(pSrc)++, offset_packed); - *__SIMD32(pDst)++ = __QADD16(*__SIMD32(pSrc)++, offset_packed); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __QADD16(*pSrc++, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrc++ + offset), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of offset group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q31.c deleted file mode 100644 index 655426e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q31.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_offset_q31.c - * Description: Q31 vector offset - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] are saturated. - */ - -void arm_offset_q31( - q31_t * pSrc, - q31_t offset, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination buffer. */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = __QADD(in1, offset); - *pDst++ = __QADD(in2, offset); - *pDst++ = __QADD(in3, offset); - *pDst++ = __QADD(in4, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = __QADD(*pSrc++, offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrc++ + offset); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of offset group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q7.c deleted file mode 100644 index 5de6241..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_q7.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_offset_q7.c - * Description: Q7 vector offset - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup offset - * @{ - */ - -/** - * @brief Adds a constant offset to a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] offset is the offset to be added - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] are saturated. - */ - -void arm_offset_q7( - q7_t * pSrc, - q7_t offset, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t offset_packed; /* Offset packed to 32 bit */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Offset is packed to 32 bit in order to use SIMD32 for addition */ - offset_packed = __PACKq7(offset, offset, offset, offset); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the results in the destination bufferfor 4 samples at a time. */ - *__SIMD32(pDst)++ = __QADD8(*__SIMD32(pSrc)++, offset_packed); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(*pSrc++ + offset, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A + offset */ - /* Add offset and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrc++ + offset, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of offset group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_f32.c deleted file mode 100644 index c90c037..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_f32.c +++ /dev/null @@ -1,157 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_scale_f32.c - * Description: Multiplies a floating-point vector by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup scale Vector Scale - * - * Multiply a vector by a scalar value. For floating-point data, the algorithm used is: - * - *
- *     pDst[n] = pSrc[n] * scale,   0 <= n < blockSize.
- * 
- * - * In the fixed-point Q7, Q15, and Q31 functions, scale is represented by - * a fractional multiplication scaleFract and an arithmetic shift shift. - * The shift allows the gain of the scaling operation to exceed 1.0. - * The algorithm used with fixed-point data is: - * - *
- *     pDst[n] = (pSrc[n] * scaleFract) << shift,   0 <= n < blockSize.
- * 
- * - * The overall scale factor applied to the fixed-point data is - *
- *     scale = scaleFract * 2^shift.
- * 
- * - * The functions support in-place computation allowing the source and destination - * pointers to reference the same memory buffer. - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a floating-point vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scale scale factor to be applied - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - */ - - -void arm_scale_f32( - float32_t * pSrc, - float32_t scale, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; /* temporary variabels */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the results in the destination buffer. */ - /* read input samples from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - - /* multiply with scaling factor */ - in1 = in1 * scale; - - /* read input sample from source */ - in3 = *(pSrc + 2); - - /* multiply with scaling factor */ - in2 = in2 * scale; - - /* read input sample from source */ - in4 = *(pSrc + 3); - - /* multiply with scaling factor */ - in3 = in3 * scale; - in4 = in4 * scale; - /* store the result to destination */ - *pDst = in1; - *(pDst + 1) = in2; - *(pDst + 2) = in3; - *(pDst + 3) = in4; - - /* update pointers to process next samples */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++) * scale; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of scale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q15.c deleted file mode 100644 index 9d5727d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q15.c +++ /dev/null @@ -1,150 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_scale_q15.c - * Description: Multiplies a Q15 vector by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q15 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.15 format. - * These are multiplied to yield a 2.30 intermediate result and this is shifted with saturation to 1.15 format. - */ - - -void arm_scale_q15( - q15_t * pSrc, - q15_t scaleFract, - int8_t shift, - q15_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = 15 - shift; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q15_t in1, in2, in3, in4; - q31_t inA1, inA2; /* Temporary variables */ - q31_t out1, out2, out3, out4; - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Reading 2 inputs from memory */ - inA1 = *__SIMD32(pSrc)++; - inA2 = *__SIMD32(pSrc)++; - - /* C = A * scale */ - /* Scale the inputs and then store the 2 results in the destination buffer - * in single cycle by packing the outputs */ - out1 = (q31_t) ((q15_t) (inA1 >> 16) * scaleFract); - out2 = (q31_t) ((q15_t) inA1 * scaleFract); - out3 = (q31_t) ((q15_t) (inA2 >> 16) * scaleFract); - out4 = (q31_t) ((q15_t) inA2 * scaleFract); - - /* apply shifting */ - out1 = out1 >> kShift; - out2 = out2 >> kShift; - out3 = out3 >> kShift; - out4 = out4 >> kShift; - - /* saturate the output */ - in1 = (q15_t) (__SSAT(out1, 16)); - in2 = (q15_t) (__SSAT(out2, 16)); - in3 = (q15_t) (__SSAT(out3, 16)); - in4 = (q15_t) (__SSAT(out4, 16)); - - /* store the result to destination */ - *__SIMD32(pDst)++ = __PKHBT(in2, in1, 16); - *__SIMD32(pDst)++ = __PKHBT(in4, in3, 16); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT(((*pSrc++) * scaleFract) >> kShift, 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT(((q31_t) * pSrc++ * scaleFract) >> kShift, 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of scale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q31.c deleted file mode 100644 index e89524d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q31.c +++ /dev/null @@ -1,227 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_scale_q31.c - * Description: Multiplies a Q31 vector by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q31 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.31 format. - * These are multiplied to yield a 2.62 intermediate result and this is shifted with saturation to 1.31 format. - */ - -void arm_scale_q31( - q31_t * pSrc, - q31_t scaleFract, - int8_t shift, - q31_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = shift + 1; /* Shift to apply after scaling */ - int8_t sign = (kShift & 0x80); - uint32_t blkCnt; /* loop counter */ - q31_t in, out; - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2, in3, in4; /* temporary input variables */ - q31_t out1, out2, out3, out4; /* temporary output variabels */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - if (sign == 0U) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* read four inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 << kShift; - out2 = in2 << kShift; - - /* saturate the results. */ - if (in1 != (out1 >> kShift)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if (in2 != (out2 >> kShift)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - out3 = in3 << kShift; - out4 = in4 << kShift; - - *pDst = out1; - *(pDst + 1) = out2; - - if (in3 != (out3 >> kShift)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if (in4 != (out4 >> kShift)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - /* Store result destination */ - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update pointers to process next sampels */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - } - else - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* read four inputs from source */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 >> -kShift; - out2 = in2 >> -kShift; - - out3 = in3 >> -kShift; - out4 = in4 >> -kShift; - - /* Store result destination */ - *pDst = out1; - *(pDst + 1) = out2; - - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update pointers to process next sampels */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - } - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - if (sign == 0) - { - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - in = *pSrc++; - in = ((q63_t) in * scaleFract) >> 32; - - out = in << kShift; - - if (in != (out >> kShift)) - out = 0x7FFFFFFF ^ (in >> 31); - - *pDst++ = out; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - in = *pSrc++; - in = ((q63_t) in * scaleFract) >> 32; - - out = in >> -kShift; - - *pDst++ = out; - - /* Decrement the loop counter */ - blkCnt--; - } - - } -} - -/** - * @} end of scale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q7.c deleted file mode 100644 index 6cf1bbb..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_q7.c +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_scale_q7.c - * Description: Multiplies a Q7 vector by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup scale - * @{ - */ - -/** - * @brief Multiplies a Q7 vector by a scalar. - * @param[in] *pSrc points to the input vector - * @param[in] scaleFract fractional portion of the scale value - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.7 format. - * These are multiplied to yield a 2.14 intermediate result and this is shifted with saturation to 1.7 format. - */ - -void arm_scale_q7( - q7_t * pSrc, - q7_t scaleFract, - int8_t shift, - q7_t * pDst, - uint32_t blockSize) -{ - int8_t kShift = 7 - shift; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t in1, in2, in3, in4, out1, out2, out3, out4; /* Temporary variables to store input & output */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Reading 4 inputs from memory */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - /* C = A * scale */ - /* Scale the inputs and then store the results in the temporary variables. */ - out1 = (q7_t) (__SSAT(((in1) * scaleFract) >> kShift, 8)); - out2 = (q7_t) (__SSAT(((in2) * scaleFract) >> kShift, 8)); - out3 = (q7_t) (__SSAT(((in3) * scaleFract) >> kShift, 8)); - out4 = (q7_t) (__SSAT(((in4) * scaleFract) >> kShift, 8)); - - /* Packing the individual outputs into 32bit and storing in - * destination buffer in single write */ - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) (__SSAT(((*pSrc++) * scaleFract) >> kShift, 8)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A * scale */ - /* Scale the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) (__SSAT((((q15_t) * pSrc++ * scaleFract) >> kShift), 8)); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of scale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q15.c deleted file mode 100644 index d2cd037..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q15.c +++ /dev/null @@ -1,236 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_shift_q15.c - * Description: Shifts the elements of a Q15 vector by a specified number of bits - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup shift - * @{ - */ - -/** - * @brief Shifts the elements of a Q15 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_shift_q15( - q15_t * pSrc, - int8_t shiftBits, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign; /* Sign of shiftBits */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t in1, in2; /* Temporary variables */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if (sign == 0U) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Read 2 inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - /* C = A << shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Shift and then store the results in the destination buffer. */ - *pDst++ = __SSAT((*pSrc++ << shiftBits), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Read 2 inputs */ - in1 = *pSrc++; - in2 = *pSrc++; - - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT((in1 >> -shiftBits), - (in2 >> -shiftBits), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT((in2 >> -shiftBits), - (in1 >> -shiftBits), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pSrc++; - in2 = *pSrc++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT((in1 >> -shiftBits), - (in2 >> -shiftBits), 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT((in2 >> -shiftBits), - (in1 >> -shiftBits), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if (sign == 0U) - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Shift and then store the results in the destination buffer. */ - *pDst++ = __SSAT(((q31_t) * pSrc++ << shiftBits), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Shift the inputs and then store the results in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of shift group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q31.c deleted file mode 100644 index 7e728d4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q31.c +++ /dev/null @@ -1,191 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_shift_q31.c - * Description: Shifts the elements of a Q31 vector by a specified number of bits - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ -/** - * @defgroup shift Vector Shift - * - * Shifts the elements of a fixed-point vector by a specified number of bits. - * There are separate functions for Q7, Q15, and Q31 data types. - * The underlying algorithm used is: - * - *
- *     pDst[n] = pSrc[n] << shift,   0 <= n < blockSize.
- * 
- * - * If shift is positive then the elements of the vector are shifted to the left. - * If shift is negative then the elements of the vector are shifted to the right. - * - * The functions support in-place computation allowing the source and destination - * pointers to reference the same memory buffer. - */ - -/** - * @addtogroup shift - * @{ - */ - -/** - * @brief Shifts the elements of a Q31 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_shift_q31( - q31_t * pSrc, - int8_t shiftBits, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign = (shiftBits & 0x80); /* Sign of shiftBits */ - -#if defined (ARM_MATH_DSP) - - q31_t in1, in2, in3, in4; /* Temporary input variables */ - q31_t out1, out2, out3, out4; /* Temporary output variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - - if (sign == 0U) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Shift the input and then store the results in the destination buffer. */ - in1 = *pSrc; - in2 = *(pSrc + 1); - out1 = in1 << shiftBits; - in3 = *(pSrc + 2); - out2 = in2 << shiftBits; - in4 = *(pSrc + 3); - if (in1 != (out1 >> shiftBits)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if (in2 != (out2 >> shiftBits)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - *pDst = out1; - out3 = in3 << shiftBits; - *(pDst + 1) = out2; - out4 = in4 << shiftBits; - - if (in3 != (out3 >> shiftBits)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if (in4 != (out4 >> shiftBits)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - *(pDst + 2) = out3; - *(pDst + 3) = out4; - - /* Update destination pointer to process next sampels */ - pSrc += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the results in the destination buffer. */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - *pDst = (in1 >> -shiftBits); - *(pDst + 1) = (in2 >> -shiftBits); - *(pDst + 2) = (in3 >> -shiftBits); - *(pDst + 3) = (in4 >> -shiftBits); - - - pSrc += 4U; - pDst += 4U; - - blkCnt--; - } - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A (>> or <<) shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (sign == 0U) ? clip_q63_to_q31((q63_t) * pSrc++ << shiftBits) : - (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - - -} - -/** - * @} end of shift group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q7.c deleted file mode 100644 index fd508b4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_shift_q7.c +++ /dev/null @@ -1,208 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_shift_q7.c - * Description: Processing function for the Q7 Shifting - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup shift - * @{ - */ - - -/** - * @brief Shifts the elements of a Q7 vector a specified number of bits. - * @param[in] *pSrc points to the input vector - * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in the vector - * @return none. - * - * \par Conditions for optimum performance - * Input and output buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x8 0x7F] will be saturated. - */ - -void arm_shift_q7( - q7_t * pSrc, - int8_t shiftBits, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - uint8_t sign; /* Sign of shiftBits */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q7_t in1; /* Input value1 */ - q7_t in2; /* Input value2 */ - q7_t in3; /* Input value3 */ - q7_t in4; /* Input value4 */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if (sign == 0U) - { - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Read 4 inputs */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* Store the Shifted result in the destination buffer in single cycle by packing the outputs */ - *__SIMD32(pDst)++ = __PACKq7(__SSAT((in1 << shiftBits), 8), - __SSAT((in2 << shiftBits), 8), - __SSAT((in3 << shiftBits), 8), - __SSAT((in4 << shiftBits), 8)); - /* Update source pointer to process next sampels */ - pSrc += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((*pSrc++ << shiftBits), 8); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - shiftBits = -shiftBits; - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Read 4 inputs */ - in1 = *pSrc; - in2 = *(pSrc + 1); - in3 = *(pSrc + 2); - in4 = *(pSrc + 3); - - /* Store the Shifted result in the destination buffer in single cycle by packing the outputs */ - *__SIMD32(pDst)++ = __PACKq7((in1 >> shiftBits), (in2 >> shiftBits), - (in3 >> shiftBits), (in4 >> shiftBits)); - - - pSrc += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - in1 = *pSrc++; - *pDst++ = (in1 >> shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Getting the sign of shiftBits */ - sign = (shiftBits & 0x80); - - /* If the shift value is positive then do right shift else left shift */ - if (sign == 0U) - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A << shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT(((q15_t) * pSrc++ << shiftBits), 8); - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A >> shiftBits */ - /* Shift the input and then store the result in the destination buffer. */ - *pDst++ = (*pSrc++ >> -shiftBits); - - /* Decrement the loop counter */ - blkCnt--; - } - } - -#endif /* #if defined (ARM_MATH_DSP) */ -} - -/** - * @} end of shift group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_f32.c deleted file mode 100644 index 74a2944..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_f32.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sub_f32.c - * Description: Floating-point vector subtraction. - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @defgroup BasicSub Vector Subtraction - * - * Element-by-element subtraction of two vectors. - * - *
- *     pDst[n] = pSrcA[n] - pSrcB[n],   0 <= n < blockSize.
- * 
- * - * There are separate functions for floating-point, Q7, Q15, and Q31 data types. - */ - -/** - * @addtogroup BasicSub - * @{ - */ - - -/** - * @brief Floating-point vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - */ - -void arm_sub_f32( - float32_t * pSrcA, - float32_t * pSrcB, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t inA1, inA2, inA3, inA4; /* temporary variables */ - float32_t inB1, inB2, inB3, inB4; /* temporary variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - /* Read 4 input samples from sourceA and sourceB */ - inA1 = *pSrcA; - inB1 = *pSrcB; - inA2 = *(pSrcA + 1); - inB2 = *(pSrcB + 1); - inA3 = *(pSrcA + 2); - inB3 = *(pSrcB + 2); - inA4 = *(pSrcA + 3); - inB4 = *(pSrcB + 3); - - /* dst = srcA - srcB */ - /* subtract and store the result */ - *pDst = inA1 - inB1; - *(pDst + 1) = inA2 - inB2; - *(pDst + 2) = inA3 - inB3; - *(pDst + 3) = inA4 - inB4; - - - /* Update pointers to process next sampels */ - pSrcA += 4U; - pSrcB += 4U; - pDst += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - *pDst++ = (*pSrcA++) - (*pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q15.c deleted file mode 100644 index 17942eb..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q15.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sub_q15.c - * Description: Q15 vector subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q15 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -void arm_sub_q15( - q15_t * pSrcA, - q15_t * pSrcB, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2; - q31_t inB1, inB2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer two samples at a time. */ - inA1 = *__SIMD32(pSrcA)++; - inA2 = *__SIMD32(pSrcA)++; - inB1 = *__SIMD32(pSrcB)++; - inB2 = *__SIMD32(pSrcB)++; - - *__SIMD32(pDst)++ = __QSUB16(inA1, inB1); - *__SIMD32(pDst)++ = __QSUB16(inA2, inB2); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q15_t) __QSUB16(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q15_t) __SSAT(((q31_t) * pSrcA++ - *pSrcB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - -} - -/** - * @} end of BasicSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q31.c deleted file mode 100644 index 72b8597..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q31.c +++ /dev/null @@ -1,134 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sub_q31.c - * Description: Q31 vector subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q31 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -void arm_sub_q31( - q31_t * pSrcA, - q31_t * pSrcB, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t inA1, inA2, inA3, inA4; - q31_t inB1, inB2, inB3, inB4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer. */ - inA1 = *pSrcA++; - inA2 = *pSrcA++; - inB1 = *pSrcB++; - inB2 = *pSrcB++; - - inA3 = *pSrcA++; - inA4 = *pSrcA++; - inB3 = *pSrcB++; - inB4 = *pSrcB++; - - *pDst++ = __QSUB(inA1, inB1); - *pDst++ = __QSUB(inA2, inB2); - *pDst++ = __QSUB(inA3, inB3); - *pDst++ = __QSUB(inA4, inB4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = __QSUB(*pSrcA++, *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q31_t) clip_q63_to_q31((q63_t) * pSrcA++ - *pSrcB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of BasicSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q7.c deleted file mode 100644 index d211f40..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_q7.c +++ /dev/null @@ -1,119 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sub_q7.c - * Description: Q7 vector subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMath - */ - -/** - * @addtogroup BasicSub - * @{ - */ - -/** - * @brief Q7 vector subtraction. - * @param[in] *pSrcA points to the first input vector - * @param[in] *pSrcB points to the second input vector - * @param[out] *pDst points to the output vector - * @param[in] blockSize number of samples in each vector - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - */ - -void arm_sub_q7( - q7_t * pSrcA, - q7_t * pSrcB, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the results in the destination buffer 4 samples at a time. */ - *__SIMD32(pDst)++ = __QSUB8(*__SIMD32(pSrcA)++, *__SIMD32(pSrcB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = __SSAT(*pSrcA++ - *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A - B */ - /* Subtract and then store the result in the destination buffer. */ - *pDst++ = (q7_t) __SSAT((q15_t) * pSrcA++ - *pSrcB++, 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - -} - -/** - * @} end of BasicSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_common_tables.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_common_tables.c deleted file mode 100644 index 1f8f589..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_common_tables.c +++ /dev/null @@ -1,22176 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_common_tables.c - * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup ComplexFFT - */ - -/** - * @addtogroup CFFT_CIFFT Complex FFT Tables - * @{ - */ - -/** -* \par -* Pseudo code for Generation of Bit reversal Table is -* \par -*
for(l=1;l <= N/4;l++)
-* {
-*   for(i=0;i> 1;
-*  } 
-* \par -* where N = 4096 logN2 = 12 -* \par -* N is the maximum FFT Size supported -*/ - -/* -* @brief Table for bit reversal process -*/ -const uint16_t armBitRevTable[1024] = { - 0x400, 0x200, 0x600, 0x100, 0x500, 0x300, 0x700, 0x80, 0x480, 0x280, - 0x680, 0x180, 0x580, 0x380, 0x780, 0x40, 0x440, 0x240, 0x640, 0x140, - 0x540, 0x340, 0x740, 0xc0, 0x4c0, 0x2c0, 0x6c0, 0x1c0, 0x5c0, 0x3c0, - 0x7c0, 0x20, 0x420, 0x220, 0x620, 0x120, 0x520, 0x320, 0x720, 0xa0, - 0x4a0, 0x2a0, 0x6a0, 0x1a0, 0x5a0, 0x3a0, 0x7a0, 0x60, 0x460, 0x260, - 0x660, 0x160, 0x560, 0x360, 0x760, 0xe0, 0x4e0, 0x2e0, 0x6e0, 0x1e0, - 0x5e0, 0x3e0, 0x7e0, 0x10, 0x410, 0x210, 0x610, 0x110, 0x510, 0x310, - 0x710, 0x90, 0x490, 0x290, 0x690, 0x190, 0x590, 0x390, 0x790, 0x50, - 0x450, 0x250, 0x650, 0x150, 0x550, 0x350, 0x750, 0xd0, 0x4d0, 0x2d0, - 0x6d0, 0x1d0, 0x5d0, 0x3d0, 0x7d0, 0x30, 0x430, 0x230, 0x630, 0x130, - 0x530, 0x330, 0x730, 0xb0, 0x4b0, 0x2b0, 0x6b0, 0x1b0, 0x5b0, 0x3b0, - 0x7b0, 0x70, 0x470, 0x270, 0x670, 0x170, 0x570, 0x370, 0x770, 0xf0, - 0x4f0, 0x2f0, 0x6f0, 0x1f0, 0x5f0, 0x3f0, 0x7f0, 0x8, 0x408, 0x208, - 0x608, 0x108, 0x508, 0x308, 0x708, 0x88, 0x488, 0x288, 0x688, 0x188, - 0x588, 0x388, 0x788, 0x48, 0x448, 0x248, 0x648, 0x148, 0x548, 0x348, - 0x748, 0xc8, 0x4c8, 0x2c8, 0x6c8, 0x1c8, 0x5c8, 0x3c8, 0x7c8, 0x28, - 0x428, 0x228, 0x628, 0x128, 0x528, 0x328, 0x728, 0xa8, 0x4a8, 0x2a8, - 0x6a8, 0x1a8, 0x5a8, 0x3a8, 0x7a8, 0x68, 0x468, 0x268, 0x668, 0x168, - 0x568, 0x368, 0x768, 0xe8, 0x4e8, 0x2e8, 0x6e8, 0x1e8, 0x5e8, 0x3e8, - 0x7e8, 0x18, 0x418, 0x218, 0x618, 0x118, 0x518, 0x318, 0x718, 0x98, - 0x498, 0x298, 0x698, 0x198, 0x598, 0x398, 0x798, 0x58, 0x458, 0x258, - 0x658, 0x158, 0x558, 0x358, 0x758, 0xd8, 0x4d8, 0x2d8, 0x6d8, 0x1d8, - 0x5d8, 0x3d8, 0x7d8, 0x38, 0x438, 0x238, 0x638, 0x138, 0x538, 0x338, - 0x738, 0xb8, 0x4b8, 0x2b8, 0x6b8, 0x1b8, 0x5b8, 0x3b8, 0x7b8, 0x78, - 0x478, 0x278, 0x678, 0x178, 0x578, 0x378, 0x778, 0xf8, 0x4f8, 0x2f8, - 0x6f8, 0x1f8, 0x5f8, 0x3f8, 0x7f8, 0x4, 0x404, 0x204, 0x604, 0x104, - 0x504, 0x304, 0x704, 0x84, 0x484, 0x284, 0x684, 0x184, 0x584, 0x384, - 0x784, 0x44, 0x444, 0x244, 0x644, 0x144, 0x544, 0x344, 0x744, 0xc4, - 0x4c4, 0x2c4, 0x6c4, 0x1c4, 0x5c4, 0x3c4, 0x7c4, 0x24, 0x424, 0x224, - 0x624, 0x124, 0x524, 0x324, 0x724, 0xa4, 0x4a4, 0x2a4, 0x6a4, 0x1a4, - 0x5a4, 0x3a4, 0x7a4, 0x64, 0x464, 0x264, 0x664, 0x164, 0x564, 0x364, - 0x764, 0xe4, 0x4e4, 0x2e4, 0x6e4, 0x1e4, 0x5e4, 0x3e4, 0x7e4, 0x14, - 0x414, 0x214, 0x614, 0x114, 0x514, 0x314, 0x714, 0x94, 0x494, 0x294, - 0x694, 0x194, 0x594, 0x394, 0x794, 0x54, 0x454, 0x254, 0x654, 0x154, - 0x554, 0x354, 0x754, 0xd4, 0x4d4, 0x2d4, 0x6d4, 0x1d4, 0x5d4, 0x3d4, - 0x7d4, 0x34, 0x434, 0x234, 0x634, 0x134, 0x534, 0x334, 0x734, 0xb4, - 0x4b4, 0x2b4, 0x6b4, 0x1b4, 0x5b4, 0x3b4, 0x7b4, 0x74, 0x474, 0x274, - 0x674, 0x174, 0x574, 0x374, 0x774, 0xf4, 0x4f4, 0x2f4, 0x6f4, 0x1f4, - 0x5f4, 0x3f4, 0x7f4, 0xc, 0x40c, 0x20c, 0x60c, 0x10c, 0x50c, 0x30c, - 0x70c, 0x8c, 0x48c, 0x28c, 0x68c, 0x18c, 0x58c, 0x38c, 0x78c, 0x4c, - 0x44c, 0x24c, 0x64c, 0x14c, 0x54c, 0x34c, 0x74c, 0xcc, 0x4cc, 0x2cc, - 0x6cc, 0x1cc, 0x5cc, 0x3cc, 0x7cc, 0x2c, 0x42c, 0x22c, 0x62c, 0x12c, - 0x52c, 0x32c, 0x72c, 0xac, 0x4ac, 0x2ac, 0x6ac, 0x1ac, 0x5ac, 0x3ac, - 0x7ac, 0x6c, 0x46c, 0x26c, 0x66c, 0x16c, 0x56c, 0x36c, 0x76c, 0xec, - 0x4ec, 0x2ec, 0x6ec, 0x1ec, 0x5ec, 0x3ec, 0x7ec, 0x1c, 0x41c, 0x21c, - 0x61c, 0x11c, 0x51c, 0x31c, 0x71c, 0x9c, 0x49c, 0x29c, 0x69c, 0x19c, - 0x59c, 0x39c, 0x79c, 0x5c, 0x45c, 0x25c, 0x65c, 0x15c, 0x55c, 0x35c, - 0x75c, 0xdc, 0x4dc, 0x2dc, 0x6dc, 0x1dc, 0x5dc, 0x3dc, 0x7dc, 0x3c, - 0x43c, 0x23c, 0x63c, 0x13c, 0x53c, 0x33c, 0x73c, 0xbc, 0x4bc, 0x2bc, - 0x6bc, 0x1bc, 0x5bc, 0x3bc, 0x7bc, 0x7c, 0x47c, 0x27c, 0x67c, 0x17c, - 0x57c, 0x37c, 0x77c, 0xfc, 0x4fc, 0x2fc, 0x6fc, 0x1fc, 0x5fc, 0x3fc, - 0x7fc, 0x2, 0x402, 0x202, 0x602, 0x102, 0x502, 0x302, 0x702, 0x82, - 0x482, 0x282, 0x682, 0x182, 0x582, 0x382, 0x782, 0x42, 0x442, 0x242, - 0x642, 0x142, 0x542, 0x342, 0x742, 0xc2, 0x4c2, 0x2c2, 0x6c2, 0x1c2, - 0x5c2, 0x3c2, 0x7c2, 0x22, 0x422, 0x222, 0x622, 0x122, 0x522, 0x322, - 0x722, 0xa2, 0x4a2, 0x2a2, 0x6a2, 0x1a2, 0x5a2, 0x3a2, 0x7a2, 0x62, - 0x462, 0x262, 0x662, 0x162, 0x562, 0x362, 0x762, 0xe2, 0x4e2, 0x2e2, - 0x6e2, 0x1e2, 0x5e2, 0x3e2, 0x7e2, 0x12, 0x412, 0x212, 0x612, 0x112, - 0x512, 0x312, 0x712, 0x92, 0x492, 0x292, 0x692, 0x192, 0x592, 0x392, - 0x792, 0x52, 0x452, 0x252, 0x652, 0x152, 0x552, 0x352, 0x752, 0xd2, - 0x4d2, 0x2d2, 0x6d2, 0x1d2, 0x5d2, 0x3d2, 0x7d2, 0x32, 0x432, 0x232, - 0x632, 0x132, 0x532, 0x332, 0x732, 0xb2, 0x4b2, 0x2b2, 0x6b2, 0x1b2, - 0x5b2, 0x3b2, 0x7b2, 0x72, 0x472, 0x272, 0x672, 0x172, 0x572, 0x372, - 0x772, 0xf2, 0x4f2, 0x2f2, 0x6f2, 0x1f2, 0x5f2, 0x3f2, 0x7f2, 0xa, - 0x40a, 0x20a, 0x60a, 0x10a, 0x50a, 0x30a, 0x70a, 0x8a, 0x48a, 0x28a, - 0x68a, 0x18a, 0x58a, 0x38a, 0x78a, 0x4a, 0x44a, 0x24a, 0x64a, 0x14a, - 0x54a, 0x34a, 0x74a, 0xca, 0x4ca, 0x2ca, 0x6ca, 0x1ca, 0x5ca, 0x3ca, - 0x7ca, 0x2a, 0x42a, 0x22a, 0x62a, 0x12a, 0x52a, 0x32a, 0x72a, 0xaa, - 0x4aa, 0x2aa, 0x6aa, 0x1aa, 0x5aa, 0x3aa, 0x7aa, 0x6a, 0x46a, 0x26a, - 0x66a, 0x16a, 0x56a, 0x36a, 0x76a, 0xea, 0x4ea, 0x2ea, 0x6ea, 0x1ea, - 0x5ea, 0x3ea, 0x7ea, 0x1a, 0x41a, 0x21a, 0x61a, 0x11a, 0x51a, 0x31a, - 0x71a, 0x9a, 0x49a, 0x29a, 0x69a, 0x19a, 0x59a, 0x39a, 0x79a, 0x5a, - 0x45a, 0x25a, 0x65a, 0x15a, 0x55a, 0x35a, 0x75a, 0xda, 0x4da, 0x2da, - 0x6da, 0x1da, 0x5da, 0x3da, 0x7da, 0x3a, 0x43a, 0x23a, 0x63a, 0x13a, - 0x53a, 0x33a, 0x73a, 0xba, 0x4ba, 0x2ba, 0x6ba, 0x1ba, 0x5ba, 0x3ba, - 0x7ba, 0x7a, 0x47a, 0x27a, 0x67a, 0x17a, 0x57a, 0x37a, 0x77a, 0xfa, - 0x4fa, 0x2fa, 0x6fa, 0x1fa, 0x5fa, 0x3fa, 0x7fa, 0x6, 0x406, 0x206, - 0x606, 0x106, 0x506, 0x306, 0x706, 0x86, 0x486, 0x286, 0x686, 0x186, - 0x586, 0x386, 0x786, 0x46, 0x446, 0x246, 0x646, 0x146, 0x546, 0x346, - 0x746, 0xc6, 0x4c6, 0x2c6, 0x6c6, 0x1c6, 0x5c6, 0x3c6, 0x7c6, 0x26, - 0x426, 0x226, 0x626, 0x126, 0x526, 0x326, 0x726, 0xa6, 0x4a6, 0x2a6, - 0x6a6, 0x1a6, 0x5a6, 0x3a6, 0x7a6, 0x66, 0x466, 0x266, 0x666, 0x166, - 0x566, 0x366, 0x766, 0xe6, 0x4e6, 0x2e6, 0x6e6, 0x1e6, 0x5e6, 0x3e6, - 0x7e6, 0x16, 0x416, 0x216, 0x616, 0x116, 0x516, 0x316, 0x716, 0x96, - 0x496, 0x296, 0x696, 0x196, 0x596, 0x396, 0x796, 0x56, 0x456, 0x256, - 0x656, 0x156, 0x556, 0x356, 0x756, 0xd6, 0x4d6, 0x2d6, 0x6d6, 0x1d6, - 0x5d6, 0x3d6, 0x7d6, 0x36, 0x436, 0x236, 0x636, 0x136, 0x536, 0x336, - 0x736, 0xb6, 0x4b6, 0x2b6, 0x6b6, 0x1b6, 0x5b6, 0x3b6, 0x7b6, 0x76, - 0x476, 0x276, 0x676, 0x176, 0x576, 0x376, 0x776, 0xf6, 0x4f6, 0x2f6, - 0x6f6, 0x1f6, 0x5f6, 0x3f6, 0x7f6, 0xe, 0x40e, 0x20e, 0x60e, 0x10e, - 0x50e, 0x30e, 0x70e, 0x8e, 0x48e, 0x28e, 0x68e, 0x18e, 0x58e, 0x38e, - 0x78e, 0x4e, 0x44e, 0x24e, 0x64e, 0x14e, 0x54e, 0x34e, 0x74e, 0xce, - 0x4ce, 0x2ce, 0x6ce, 0x1ce, 0x5ce, 0x3ce, 0x7ce, 0x2e, 0x42e, 0x22e, - 0x62e, 0x12e, 0x52e, 0x32e, 0x72e, 0xae, 0x4ae, 0x2ae, 0x6ae, 0x1ae, - 0x5ae, 0x3ae, 0x7ae, 0x6e, 0x46e, 0x26e, 0x66e, 0x16e, 0x56e, 0x36e, - 0x76e, 0xee, 0x4ee, 0x2ee, 0x6ee, 0x1ee, 0x5ee, 0x3ee, 0x7ee, 0x1e, - 0x41e, 0x21e, 0x61e, 0x11e, 0x51e, 0x31e, 0x71e, 0x9e, 0x49e, 0x29e, - 0x69e, 0x19e, 0x59e, 0x39e, 0x79e, 0x5e, 0x45e, 0x25e, 0x65e, 0x15e, - 0x55e, 0x35e, 0x75e, 0xde, 0x4de, 0x2de, 0x6de, 0x1de, 0x5de, 0x3de, - 0x7de, 0x3e, 0x43e, 0x23e, 0x63e, 0x13e, 0x53e, 0x33e, 0x73e, 0xbe, - 0x4be, 0x2be, 0x6be, 0x1be, 0x5be, 0x3be, 0x7be, 0x7e, 0x47e, 0x27e, - 0x67e, 0x17e, 0x57e, 0x37e, 0x77e, 0xfe, 0x4fe, 0x2fe, 0x6fe, 0x1fe, - 0x5fe, 0x3fe, 0x7fe, 0x1 -}; - - -/* -* @brief Floating-point Twiddle factors Table Generation -*/ - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 16 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_16[32] = { - 1.000000000f, 0.000000000f, - 0.923879533f, 0.382683432f, - 0.707106781f, 0.707106781f, - 0.382683432f, 0.923879533f, - 0.000000000f, 1.000000000f, - -0.382683432f, 0.923879533f, - -0.707106781f, 0.707106781f, - -0.923879533f, 0.382683432f, - -1.000000000f, 0.000000000f, - -0.923879533f, -0.382683432f, - -0.707106781f, -0.707106781f, - -0.382683432f, -0.923879533f, - -0.000000000f, -1.000000000f, - 0.382683432f, -0.923879533f, - 0.707106781f, -0.707106781f, - 0.923879533f, -0.382683432f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 32 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_32[64] = { - 1.000000000f, 0.000000000f, - 0.980785280f, 0.195090322f, - 0.923879533f, 0.382683432f, - 0.831469612f, 0.555570233f, - 0.707106781f, 0.707106781f, - 0.555570233f, 0.831469612f, - 0.382683432f, 0.923879533f, - 0.195090322f, 0.980785280f, - 0.000000000f, 1.000000000f, - -0.195090322f, 0.980785280f, - -0.382683432f, 0.923879533f, - -0.555570233f, 0.831469612f, - -0.707106781f, 0.707106781f, - -0.831469612f, 0.555570233f, - -0.923879533f, 0.382683432f, - -0.980785280f, 0.195090322f, - -1.000000000f, 0.000000000f, - -0.980785280f, -0.195090322f, - -0.923879533f, -0.382683432f, - -0.831469612f, -0.555570233f, - -0.707106781f, -0.707106781f, - -0.555570233f, -0.831469612f, - -0.382683432f, -0.923879533f, - -0.195090322f, -0.980785280f, - -0.000000000f, -1.000000000f, - 0.195090322f, -0.980785280f, - 0.382683432f, -0.923879533f, - 0.555570233f, -0.831469612f, - 0.707106781f, -0.707106781f, - 0.831469612f, -0.555570233f, - 0.923879533f, -0.382683432f, - 0.980785280f, -0.195090322f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 64 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_64[128] = { - 1.000000000f, 0.000000000f, - 0.995184727f, 0.098017140f, - 0.980785280f, 0.195090322f, - 0.956940336f, 0.290284677f, - 0.923879533f, 0.382683432f, - 0.881921264f, 0.471396737f, - 0.831469612f, 0.555570233f, - 0.773010453f, 0.634393284f, - 0.707106781f, 0.707106781f, - 0.634393284f, 0.773010453f, - 0.555570233f, 0.831469612f, - 0.471396737f, 0.881921264f, - 0.382683432f, 0.923879533f, - 0.290284677f, 0.956940336f, - 0.195090322f, 0.980785280f, - 0.098017140f, 0.995184727f, - 0.000000000f, 1.000000000f, - -0.098017140f, 0.995184727f, - -0.195090322f, 0.980785280f, - -0.290284677f, 0.956940336f, - -0.382683432f, 0.923879533f, - -0.471396737f, 0.881921264f, - -0.555570233f, 0.831469612f, - -0.634393284f, 0.773010453f, - -0.707106781f, 0.707106781f, - -0.773010453f, 0.634393284f, - -0.831469612f, 0.555570233f, - -0.881921264f, 0.471396737f, - -0.923879533f, 0.382683432f, - -0.956940336f, 0.290284677f, - -0.980785280f, 0.195090322f, - -0.995184727f, 0.098017140f, - -1.000000000f, 0.000000000f, - -0.995184727f, -0.098017140f, - -0.980785280f, -0.195090322f, - -0.956940336f, -0.290284677f, - -0.923879533f, -0.382683432f, - -0.881921264f, -0.471396737f, - -0.831469612f, -0.555570233f, - -0.773010453f, -0.634393284f, - -0.707106781f, -0.707106781f, - -0.634393284f, -0.773010453f, - -0.555570233f, -0.831469612f, - -0.471396737f, -0.881921264f, - -0.382683432f, -0.923879533f, - -0.290284677f, -0.956940336f, - -0.195090322f, -0.980785280f, - -0.098017140f, -0.995184727f, - -0.000000000f, -1.000000000f, - 0.098017140f, -0.995184727f, - 0.195090322f, -0.980785280f, - 0.290284677f, -0.956940336f, - 0.382683432f, -0.923879533f, - 0.471396737f, -0.881921264f, - 0.555570233f, -0.831469612f, - 0.634393284f, -0.773010453f, - 0.707106781f, -0.707106781f, - 0.773010453f, -0.634393284f, - 0.831469612f, -0.555570233f, - 0.881921264f, -0.471396737f, - 0.923879533f, -0.382683432f, - 0.956940336f, -0.290284677f, - 0.980785280f, -0.195090322f, - 0.995184727f, -0.098017140f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 128 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ - -const float32_t twiddleCoef_128[256] = { - 1.000000000f, 0.000000000f, - 0.998795456f, 0.049067674f, - 0.995184727f, 0.098017140f, - 0.989176510f, 0.146730474f, - 0.980785280f, 0.195090322f, - 0.970031253f, 0.242980180f, - 0.956940336f, 0.290284677f, - 0.941544065f, 0.336889853f, - 0.923879533f, 0.382683432f, - 0.903989293f, 0.427555093f, - 0.881921264f, 0.471396737f, - 0.857728610f, 0.514102744f, - 0.831469612f, 0.555570233f, - 0.803207531f, 0.595699304f, - 0.773010453f, 0.634393284f, - 0.740951125f, 0.671558955f, - 0.707106781f, 0.707106781f, - 0.671558955f, 0.740951125f, - 0.634393284f, 0.773010453f, - 0.595699304f, 0.803207531f, - 0.555570233f, 0.831469612f, - 0.514102744f, 0.857728610f, - 0.471396737f, 0.881921264f, - 0.427555093f, 0.903989293f, - 0.382683432f, 0.923879533f, - 0.336889853f, 0.941544065f, - 0.290284677f, 0.956940336f, - 0.242980180f, 0.970031253f, - 0.195090322f, 0.980785280f, - 0.146730474f, 0.989176510f, - 0.098017140f, 0.995184727f, - 0.049067674f, 0.998795456f, - 0.000000000f, 1.000000000f, - -0.049067674f, 0.998795456f, - -0.098017140f, 0.995184727f, - -0.146730474f, 0.989176510f, - -0.195090322f, 0.980785280f, - -0.242980180f, 0.970031253f, - -0.290284677f, 0.956940336f, - -0.336889853f, 0.941544065f, - -0.382683432f, 0.923879533f, - -0.427555093f, 0.903989293f, - -0.471396737f, 0.881921264f, - -0.514102744f, 0.857728610f, - -0.555570233f, 0.831469612f, - -0.595699304f, 0.803207531f, - -0.634393284f, 0.773010453f, - -0.671558955f, 0.740951125f, - -0.707106781f, 0.707106781f, - -0.740951125f, 0.671558955f, - -0.773010453f, 0.634393284f, - -0.803207531f, 0.595699304f, - -0.831469612f, 0.555570233f, - -0.857728610f, 0.514102744f, - -0.881921264f, 0.471396737f, - -0.903989293f, 0.427555093f, - -0.923879533f, 0.382683432f, - -0.941544065f, 0.336889853f, - -0.956940336f, 0.290284677f, - -0.970031253f, 0.242980180f, - -0.980785280f, 0.195090322f, - -0.989176510f, 0.146730474f, - -0.995184727f, 0.098017140f, - -0.998795456f, 0.049067674f, - -1.000000000f, 0.000000000f, - -0.998795456f, -0.049067674f, - -0.995184727f, -0.098017140f, - -0.989176510f, -0.146730474f, - -0.980785280f, -0.195090322f, - -0.970031253f, -0.242980180f, - -0.956940336f, -0.290284677f, - -0.941544065f, -0.336889853f, - -0.923879533f, -0.382683432f, - -0.903989293f, -0.427555093f, - -0.881921264f, -0.471396737f, - -0.857728610f, -0.514102744f, - -0.831469612f, -0.555570233f, - -0.803207531f, -0.595699304f, - -0.773010453f, -0.634393284f, - -0.740951125f, -0.671558955f, - -0.707106781f, -0.707106781f, - -0.671558955f, -0.740951125f, - -0.634393284f, -0.773010453f, - -0.595699304f, -0.803207531f, - -0.555570233f, -0.831469612f, - -0.514102744f, -0.857728610f, - -0.471396737f, -0.881921264f, - -0.427555093f, -0.903989293f, - -0.382683432f, -0.923879533f, - -0.336889853f, -0.941544065f, - -0.290284677f, -0.956940336f, - -0.242980180f, -0.970031253f, - -0.195090322f, -0.980785280f, - -0.146730474f, -0.989176510f, - -0.098017140f, -0.995184727f, - -0.049067674f, -0.998795456f, - -0.000000000f, -1.000000000f, - 0.049067674f, -0.998795456f, - 0.098017140f, -0.995184727f, - 0.146730474f, -0.989176510f, - 0.195090322f, -0.980785280f, - 0.242980180f, -0.970031253f, - 0.290284677f, -0.956940336f, - 0.336889853f, -0.941544065f, - 0.382683432f, -0.923879533f, - 0.427555093f, -0.903989293f, - 0.471396737f, -0.881921264f, - 0.514102744f, -0.857728610f, - 0.555570233f, -0.831469612f, - 0.595699304f, -0.803207531f, - 0.634393284f, -0.773010453f, - 0.671558955f, -0.740951125f, - 0.707106781f, -0.707106781f, - 0.740951125f, -0.671558955f, - 0.773010453f, -0.634393284f, - 0.803207531f, -0.595699304f, - 0.831469612f, -0.555570233f, - 0.857728610f, -0.514102744f, - 0.881921264f, -0.471396737f, - 0.903989293f, -0.427555093f, - 0.923879533f, -0.382683432f, - 0.941544065f, -0.336889853f, - 0.956940336f, -0.290284677f, - 0.970031253f, -0.242980180f, - 0.980785280f, -0.195090322f, - 0.989176510f, -0.146730474f, - 0.995184727f, -0.098017140f, - 0.998795456f, -0.049067674f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 256 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_256[512] = { - 1.000000000f, 0.000000000f, - 0.999698819f, 0.024541229f, - 0.998795456f, 0.049067674f, - 0.997290457f, 0.073564564f, - 0.995184727f, 0.098017140f, - 0.992479535f, 0.122410675f, - 0.989176510f, 0.146730474f, - 0.985277642f, 0.170961889f, - 0.980785280f, 0.195090322f, - 0.975702130f, 0.219101240f, - 0.970031253f, 0.242980180f, - 0.963776066f, 0.266712757f, - 0.956940336f, 0.290284677f, - 0.949528181f, 0.313681740f, - 0.941544065f, 0.336889853f, - 0.932992799f, 0.359895037f, - 0.923879533f, 0.382683432f, - 0.914209756f, 0.405241314f, - 0.903989293f, 0.427555093f, - 0.893224301f, 0.449611330f, - 0.881921264f, 0.471396737f, - 0.870086991f, 0.492898192f, - 0.857728610f, 0.514102744f, - 0.844853565f, 0.534997620f, - 0.831469612f, 0.555570233f, - 0.817584813f, 0.575808191f, - 0.803207531f, 0.595699304f, - 0.788346428f, 0.615231591f, - 0.773010453f, 0.634393284f, - 0.757208847f, 0.653172843f, - 0.740951125f, 0.671558955f, - 0.724247083f, 0.689540545f, - 0.707106781f, 0.707106781f, - 0.689540545f, 0.724247083f, - 0.671558955f, 0.740951125f, - 0.653172843f, 0.757208847f, - 0.634393284f, 0.773010453f, - 0.615231591f, 0.788346428f, - 0.595699304f, 0.803207531f, - 0.575808191f, 0.817584813f, - 0.555570233f, 0.831469612f, - 0.534997620f, 0.844853565f, - 0.514102744f, 0.857728610f, - 0.492898192f, 0.870086991f, - 0.471396737f, 0.881921264f, - 0.449611330f, 0.893224301f, - 0.427555093f, 0.903989293f, - 0.405241314f, 0.914209756f, - 0.382683432f, 0.923879533f, - 0.359895037f, 0.932992799f, - 0.336889853f, 0.941544065f, - 0.313681740f, 0.949528181f, - 0.290284677f, 0.956940336f, - 0.266712757f, 0.963776066f, - 0.242980180f, 0.970031253f, - 0.219101240f, 0.975702130f, - 0.195090322f, 0.980785280f, - 0.170961889f, 0.985277642f, - 0.146730474f, 0.989176510f, - 0.122410675f, 0.992479535f, - 0.098017140f, 0.995184727f, - 0.073564564f, 0.997290457f, - 0.049067674f, 0.998795456f, - 0.024541229f, 0.999698819f, - 0.000000000f, 1.000000000f, - -0.024541229f, 0.999698819f, - -0.049067674f, 0.998795456f, - -0.073564564f, 0.997290457f, - -0.098017140f, 0.995184727f, - -0.122410675f, 0.992479535f, - -0.146730474f, 0.989176510f, - -0.170961889f, 0.985277642f, - -0.195090322f, 0.980785280f, - -0.219101240f, 0.975702130f, - -0.242980180f, 0.970031253f, - -0.266712757f, 0.963776066f, - -0.290284677f, 0.956940336f, - -0.313681740f, 0.949528181f, - -0.336889853f, 0.941544065f, - -0.359895037f, 0.932992799f, - -0.382683432f, 0.923879533f, - -0.405241314f, 0.914209756f, - -0.427555093f, 0.903989293f, - -0.449611330f, 0.893224301f, - -0.471396737f, 0.881921264f, - -0.492898192f, 0.870086991f, - -0.514102744f, 0.857728610f, - -0.534997620f, 0.844853565f, - -0.555570233f, 0.831469612f, - -0.575808191f, 0.817584813f, - -0.595699304f, 0.803207531f, - -0.615231591f, 0.788346428f, - -0.634393284f, 0.773010453f, - -0.653172843f, 0.757208847f, - -0.671558955f, 0.740951125f, - -0.689540545f, 0.724247083f, - -0.707106781f, 0.707106781f, - -0.724247083f, 0.689540545f, - -0.740951125f, 0.671558955f, - -0.757208847f, 0.653172843f, - -0.773010453f, 0.634393284f, - -0.788346428f, 0.615231591f, - -0.803207531f, 0.595699304f, - -0.817584813f, 0.575808191f, - -0.831469612f, 0.555570233f, - -0.844853565f, 0.534997620f, - -0.857728610f, 0.514102744f, - -0.870086991f, 0.492898192f, - -0.881921264f, 0.471396737f, - -0.893224301f, 0.449611330f, - -0.903989293f, 0.427555093f, - -0.914209756f, 0.405241314f, - -0.923879533f, 0.382683432f, - -0.932992799f, 0.359895037f, - -0.941544065f, 0.336889853f, - -0.949528181f, 0.313681740f, - -0.956940336f, 0.290284677f, - -0.963776066f, 0.266712757f, - -0.970031253f, 0.242980180f, - -0.975702130f, 0.219101240f, - -0.980785280f, 0.195090322f, - -0.985277642f, 0.170961889f, - -0.989176510f, 0.146730474f, - -0.992479535f, 0.122410675f, - -0.995184727f, 0.098017140f, - -0.997290457f, 0.073564564f, - -0.998795456f, 0.049067674f, - -0.999698819f, 0.024541229f, - -1.000000000f, 0.000000000f, - -0.999698819f, -0.024541229f, - -0.998795456f, -0.049067674f, - -0.997290457f, -0.073564564f, - -0.995184727f, -0.098017140f, - -0.992479535f, -0.122410675f, - -0.989176510f, -0.146730474f, - -0.985277642f, -0.170961889f, - -0.980785280f, -0.195090322f, - -0.975702130f, -0.219101240f, - -0.970031253f, -0.242980180f, - -0.963776066f, -0.266712757f, - -0.956940336f, -0.290284677f, - -0.949528181f, -0.313681740f, - -0.941544065f, -0.336889853f, - -0.932992799f, -0.359895037f, - -0.923879533f, -0.382683432f, - -0.914209756f, -0.405241314f, - -0.903989293f, -0.427555093f, - -0.893224301f, -0.449611330f, - -0.881921264f, -0.471396737f, - -0.870086991f, -0.492898192f, - -0.857728610f, -0.514102744f, - -0.844853565f, -0.534997620f, - -0.831469612f, -0.555570233f, - -0.817584813f, -0.575808191f, - -0.803207531f, -0.595699304f, - -0.788346428f, -0.615231591f, - -0.773010453f, -0.634393284f, - -0.757208847f, -0.653172843f, - -0.740951125f, -0.671558955f, - -0.724247083f, -0.689540545f, - -0.707106781f, -0.707106781f, - -0.689540545f, -0.724247083f, - -0.671558955f, -0.740951125f, - -0.653172843f, -0.757208847f, - -0.634393284f, -0.773010453f, - -0.615231591f, -0.788346428f, - -0.595699304f, -0.803207531f, - -0.575808191f, -0.817584813f, - -0.555570233f, -0.831469612f, - -0.534997620f, -0.844853565f, - -0.514102744f, -0.857728610f, - -0.492898192f, -0.870086991f, - -0.471396737f, -0.881921264f, - -0.449611330f, -0.893224301f, - -0.427555093f, -0.903989293f, - -0.405241314f, -0.914209756f, - -0.382683432f, -0.923879533f, - -0.359895037f, -0.932992799f, - -0.336889853f, -0.941544065f, - -0.313681740f, -0.949528181f, - -0.290284677f, -0.956940336f, - -0.266712757f, -0.963776066f, - -0.242980180f, -0.970031253f, - -0.219101240f, -0.975702130f, - -0.195090322f, -0.980785280f, - -0.170961889f, -0.985277642f, - -0.146730474f, -0.989176510f, - -0.122410675f, -0.992479535f, - -0.098017140f, -0.995184727f, - -0.073564564f, -0.997290457f, - -0.049067674f, -0.998795456f, - -0.024541229f, -0.999698819f, - -0.000000000f, -1.000000000f, - 0.024541229f, -0.999698819f, - 0.049067674f, -0.998795456f, - 0.073564564f, -0.997290457f, - 0.098017140f, -0.995184727f, - 0.122410675f, -0.992479535f, - 0.146730474f, -0.989176510f, - 0.170961889f, -0.985277642f, - 0.195090322f, -0.980785280f, - 0.219101240f, -0.975702130f, - 0.242980180f, -0.970031253f, - 0.266712757f, -0.963776066f, - 0.290284677f, -0.956940336f, - 0.313681740f, -0.949528181f, - 0.336889853f, -0.941544065f, - 0.359895037f, -0.932992799f, - 0.382683432f, -0.923879533f, - 0.405241314f, -0.914209756f, - 0.427555093f, -0.903989293f, - 0.449611330f, -0.893224301f, - 0.471396737f, -0.881921264f, - 0.492898192f, -0.870086991f, - 0.514102744f, -0.857728610f, - 0.534997620f, -0.844853565f, - 0.555570233f, -0.831469612f, - 0.575808191f, -0.817584813f, - 0.595699304f, -0.803207531f, - 0.615231591f, -0.788346428f, - 0.634393284f, -0.773010453f, - 0.653172843f, -0.757208847f, - 0.671558955f, -0.740951125f, - 0.689540545f, -0.724247083f, - 0.707106781f, -0.707106781f, - 0.724247083f, -0.689540545f, - 0.740951125f, -0.671558955f, - 0.757208847f, -0.653172843f, - 0.773010453f, -0.634393284f, - 0.788346428f, -0.615231591f, - 0.803207531f, -0.595699304f, - 0.817584813f, -0.575808191f, - 0.831469612f, -0.555570233f, - 0.844853565f, -0.534997620f, - 0.857728610f, -0.514102744f, - 0.870086991f, -0.492898192f, - 0.881921264f, -0.471396737f, - 0.893224301f, -0.449611330f, - 0.903989293f, -0.427555093f, - 0.914209756f, -0.405241314f, - 0.923879533f, -0.382683432f, - 0.932992799f, -0.359895037f, - 0.941544065f, -0.336889853f, - 0.949528181f, -0.313681740f, - 0.956940336f, -0.290284677f, - 0.963776066f, -0.266712757f, - 0.970031253f, -0.242980180f, - 0.975702130f, -0.219101240f, - 0.980785280f, -0.195090322f, - 0.985277642f, -0.170961889f, - 0.989176510f, -0.146730474f, - 0.992479535f, -0.122410675f, - 0.995184727f, -0.098017140f, - 0.997290457f, -0.073564564f, - 0.998795456f, -0.049067674f, - 0.999698819f, -0.024541229f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 512 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_512[1024] = { - 1.000000000f, 0.000000000f, - 0.999924702f, 0.012271538f, - 0.999698819f, 0.024541229f, - 0.999322385f, 0.036807223f, - 0.998795456f, 0.049067674f, - 0.998118113f, 0.061320736f, - 0.997290457f, 0.073564564f, - 0.996312612f, 0.085797312f, - 0.995184727f, 0.098017140f, - 0.993906970f, 0.110222207f, - 0.992479535f, 0.122410675f, - 0.990902635f, 0.134580709f, - 0.989176510f, 0.146730474f, - 0.987301418f, 0.158858143f, - 0.985277642f, 0.170961889f, - 0.983105487f, 0.183039888f, - 0.980785280f, 0.195090322f, - 0.978317371f, 0.207111376f, - 0.975702130f, 0.219101240f, - 0.972939952f, 0.231058108f, - 0.970031253f, 0.242980180f, - 0.966976471f, 0.254865660f, - 0.963776066f, 0.266712757f, - 0.960430519f, 0.278519689f, - 0.956940336f, 0.290284677f, - 0.953306040f, 0.302005949f, - 0.949528181f, 0.313681740f, - 0.945607325f, 0.325310292f, - 0.941544065f, 0.336889853f, - 0.937339012f, 0.348418680f, - 0.932992799f, 0.359895037f, - 0.928506080f, 0.371317194f, - 0.923879533f, 0.382683432f, - 0.919113852f, 0.393992040f, - 0.914209756f, 0.405241314f, - 0.909167983f, 0.416429560f, - 0.903989293f, 0.427555093f, - 0.898674466f, 0.438616239f, - 0.893224301f, 0.449611330f, - 0.887639620f, 0.460538711f, - 0.881921264f, 0.471396737f, - 0.876070094f, 0.482183772f, - 0.870086991f, 0.492898192f, - 0.863972856f, 0.503538384f, - 0.857728610f, 0.514102744f, - 0.851355193f, 0.524589683f, - 0.844853565f, 0.534997620f, - 0.838224706f, 0.545324988f, - 0.831469612f, 0.555570233f, - 0.824589303f, 0.565731811f, - 0.817584813f, 0.575808191f, - 0.810457198f, 0.585797857f, - 0.803207531f, 0.595699304f, - 0.795836905f, 0.605511041f, - 0.788346428f, 0.615231591f, - 0.780737229f, 0.624859488f, - 0.773010453f, 0.634393284f, - 0.765167266f, 0.643831543f, - 0.757208847f, 0.653172843f, - 0.749136395f, 0.662415778f, - 0.740951125f, 0.671558955f, - 0.732654272f, 0.680600998f, - 0.724247083f, 0.689540545f, - 0.715730825f, 0.698376249f, - 0.707106781f, 0.707106781f, - 0.698376249f, 0.715730825f, - 0.689540545f, 0.724247083f, - 0.680600998f, 0.732654272f, - 0.671558955f, 0.740951125f, - 0.662415778f, 0.749136395f, - 0.653172843f, 0.757208847f, - 0.643831543f, 0.765167266f, - 0.634393284f, 0.773010453f, - 0.624859488f, 0.780737229f, - 0.615231591f, 0.788346428f, - 0.605511041f, 0.795836905f, - 0.595699304f, 0.803207531f, - 0.585797857f, 0.810457198f, - 0.575808191f, 0.817584813f, - 0.565731811f, 0.824589303f, - 0.555570233f, 0.831469612f, - 0.545324988f, 0.838224706f, - 0.534997620f, 0.844853565f, - 0.524589683f, 0.851355193f, - 0.514102744f, 0.857728610f, - 0.503538384f, 0.863972856f, - 0.492898192f, 0.870086991f, - 0.482183772f, 0.876070094f, - 0.471396737f, 0.881921264f, - 0.460538711f, 0.887639620f, - 0.449611330f, 0.893224301f, - 0.438616239f, 0.898674466f, - 0.427555093f, 0.903989293f, - 0.416429560f, 0.909167983f, - 0.405241314f, 0.914209756f, - 0.393992040f, 0.919113852f, - 0.382683432f, 0.923879533f, - 0.371317194f, 0.928506080f, - 0.359895037f, 0.932992799f, - 0.348418680f, 0.937339012f, - 0.336889853f, 0.941544065f, - 0.325310292f, 0.945607325f, - 0.313681740f, 0.949528181f, - 0.302005949f, 0.953306040f, - 0.290284677f, 0.956940336f, - 0.278519689f, 0.960430519f, - 0.266712757f, 0.963776066f, - 0.254865660f, 0.966976471f, - 0.242980180f, 0.970031253f, - 0.231058108f, 0.972939952f, - 0.219101240f, 0.975702130f, - 0.207111376f, 0.978317371f, - 0.195090322f, 0.980785280f, - 0.183039888f, 0.983105487f, - 0.170961889f, 0.985277642f, - 0.158858143f, 0.987301418f, - 0.146730474f, 0.989176510f, - 0.134580709f, 0.990902635f, - 0.122410675f, 0.992479535f, - 0.110222207f, 0.993906970f, - 0.098017140f, 0.995184727f, - 0.085797312f, 0.996312612f, - 0.073564564f, 0.997290457f, - 0.061320736f, 0.998118113f, - 0.049067674f, 0.998795456f, - 0.036807223f, 0.999322385f, - 0.024541229f, 0.999698819f, - 0.012271538f, 0.999924702f, - 0.000000000f, 1.000000000f, - -0.012271538f, 0.999924702f, - -0.024541229f, 0.999698819f, - -0.036807223f, 0.999322385f, - -0.049067674f, 0.998795456f, - -0.061320736f, 0.998118113f, - -0.073564564f, 0.997290457f, - -0.085797312f, 0.996312612f, - -0.098017140f, 0.995184727f, - -0.110222207f, 0.993906970f, - -0.122410675f, 0.992479535f, - -0.134580709f, 0.990902635f, - -0.146730474f, 0.989176510f, - -0.158858143f, 0.987301418f, - -0.170961889f, 0.985277642f, - -0.183039888f, 0.983105487f, - -0.195090322f, 0.980785280f, - -0.207111376f, 0.978317371f, - -0.219101240f, 0.975702130f, - -0.231058108f, 0.972939952f, - -0.242980180f, 0.970031253f, - -0.254865660f, 0.966976471f, - -0.266712757f, 0.963776066f, - -0.278519689f, 0.960430519f, - -0.290284677f, 0.956940336f, - -0.302005949f, 0.953306040f, - -0.313681740f, 0.949528181f, - -0.325310292f, 0.945607325f, - -0.336889853f, 0.941544065f, - -0.348418680f, 0.937339012f, - -0.359895037f, 0.932992799f, - -0.371317194f, 0.928506080f, - -0.382683432f, 0.923879533f, - -0.393992040f, 0.919113852f, - -0.405241314f, 0.914209756f, - -0.416429560f, 0.909167983f, - -0.427555093f, 0.903989293f, - -0.438616239f, 0.898674466f, - -0.449611330f, 0.893224301f, - -0.460538711f, 0.887639620f, - -0.471396737f, 0.881921264f, - -0.482183772f, 0.876070094f, - -0.492898192f, 0.870086991f, - -0.503538384f, 0.863972856f, - -0.514102744f, 0.857728610f, - -0.524589683f, 0.851355193f, - -0.534997620f, 0.844853565f, - -0.545324988f, 0.838224706f, - -0.555570233f, 0.831469612f, - -0.565731811f, 0.824589303f, - -0.575808191f, 0.817584813f, - -0.585797857f, 0.810457198f, - -0.595699304f, 0.803207531f, - -0.605511041f, 0.795836905f, - -0.615231591f, 0.788346428f, - -0.624859488f, 0.780737229f, - -0.634393284f, 0.773010453f, - -0.643831543f, 0.765167266f, - -0.653172843f, 0.757208847f, - -0.662415778f, 0.749136395f, - -0.671558955f, 0.740951125f, - -0.680600998f, 0.732654272f, - -0.689540545f, 0.724247083f, - -0.698376249f, 0.715730825f, - -0.707106781f, 0.707106781f, - -0.715730825f, 0.698376249f, - -0.724247083f, 0.689540545f, - -0.732654272f, 0.680600998f, - -0.740951125f, 0.671558955f, - -0.749136395f, 0.662415778f, - -0.757208847f, 0.653172843f, - -0.765167266f, 0.643831543f, - -0.773010453f, 0.634393284f, - -0.780737229f, 0.624859488f, - -0.788346428f, 0.615231591f, - -0.795836905f, 0.605511041f, - -0.803207531f, 0.595699304f, - -0.810457198f, 0.585797857f, - -0.817584813f, 0.575808191f, - -0.824589303f, 0.565731811f, - -0.831469612f, 0.555570233f, - -0.838224706f, 0.545324988f, - -0.844853565f, 0.534997620f, - -0.851355193f, 0.524589683f, - -0.857728610f, 0.514102744f, - -0.863972856f, 0.503538384f, - -0.870086991f, 0.492898192f, - -0.876070094f, 0.482183772f, - -0.881921264f, 0.471396737f, - -0.887639620f, 0.460538711f, - -0.893224301f, 0.449611330f, - -0.898674466f, 0.438616239f, - -0.903989293f, 0.427555093f, - -0.909167983f, 0.416429560f, - -0.914209756f, 0.405241314f, - -0.919113852f, 0.393992040f, - -0.923879533f, 0.382683432f, - -0.928506080f, 0.371317194f, - -0.932992799f, 0.359895037f, - -0.937339012f, 0.348418680f, - -0.941544065f, 0.336889853f, - -0.945607325f, 0.325310292f, - -0.949528181f, 0.313681740f, - -0.953306040f, 0.302005949f, - -0.956940336f, 0.290284677f, - -0.960430519f, 0.278519689f, - -0.963776066f, 0.266712757f, - -0.966976471f, 0.254865660f, - -0.970031253f, 0.242980180f, - -0.972939952f, 0.231058108f, - -0.975702130f, 0.219101240f, - -0.978317371f, 0.207111376f, - -0.980785280f, 0.195090322f, - -0.983105487f, 0.183039888f, - -0.985277642f, 0.170961889f, - -0.987301418f, 0.158858143f, - -0.989176510f, 0.146730474f, - -0.990902635f, 0.134580709f, - -0.992479535f, 0.122410675f, - -0.993906970f, 0.110222207f, - -0.995184727f, 0.098017140f, - -0.996312612f, 0.085797312f, - -0.997290457f, 0.073564564f, - -0.998118113f, 0.061320736f, - -0.998795456f, 0.049067674f, - -0.999322385f, 0.036807223f, - -0.999698819f, 0.024541229f, - -0.999924702f, 0.012271538f, - -1.000000000f, 0.000000000f, - -0.999924702f, -0.012271538f, - -0.999698819f, -0.024541229f, - -0.999322385f, -0.036807223f, - -0.998795456f, -0.049067674f, - -0.998118113f, -0.061320736f, - -0.997290457f, -0.073564564f, - -0.996312612f, -0.085797312f, - -0.995184727f, -0.098017140f, - -0.993906970f, -0.110222207f, - -0.992479535f, -0.122410675f, - -0.990902635f, -0.134580709f, - -0.989176510f, -0.146730474f, - -0.987301418f, -0.158858143f, - -0.985277642f, -0.170961889f, - -0.983105487f, -0.183039888f, - -0.980785280f, -0.195090322f, - -0.978317371f, -0.207111376f, - -0.975702130f, -0.219101240f, - -0.972939952f, -0.231058108f, - -0.970031253f, -0.242980180f, - -0.966976471f, -0.254865660f, - -0.963776066f, -0.266712757f, - -0.960430519f, -0.278519689f, - -0.956940336f, -0.290284677f, - -0.953306040f, -0.302005949f, - -0.949528181f, -0.313681740f, - -0.945607325f, -0.325310292f, - -0.941544065f, -0.336889853f, - -0.937339012f, -0.348418680f, - -0.932992799f, -0.359895037f, - -0.928506080f, -0.371317194f, - -0.923879533f, -0.382683432f, - -0.919113852f, -0.393992040f, - -0.914209756f, -0.405241314f, - -0.909167983f, -0.416429560f, - -0.903989293f, -0.427555093f, - -0.898674466f, -0.438616239f, - -0.893224301f, -0.449611330f, - -0.887639620f, -0.460538711f, - -0.881921264f, -0.471396737f, - -0.876070094f, -0.482183772f, - -0.870086991f, -0.492898192f, - -0.863972856f, -0.503538384f, - -0.857728610f, -0.514102744f, - -0.851355193f, -0.524589683f, - -0.844853565f, -0.534997620f, - -0.838224706f, -0.545324988f, - -0.831469612f, -0.555570233f, - -0.824589303f, -0.565731811f, - -0.817584813f, -0.575808191f, - -0.810457198f, -0.585797857f, - -0.803207531f, -0.595699304f, - -0.795836905f, -0.605511041f, - -0.788346428f, -0.615231591f, - -0.780737229f, -0.624859488f, - -0.773010453f, -0.634393284f, - -0.765167266f, -0.643831543f, - -0.757208847f, -0.653172843f, - -0.749136395f, -0.662415778f, - -0.740951125f, -0.671558955f, - -0.732654272f, -0.680600998f, - -0.724247083f, -0.689540545f, - -0.715730825f, -0.698376249f, - -0.707106781f, -0.707106781f, - -0.698376249f, -0.715730825f, - -0.689540545f, -0.724247083f, - -0.680600998f, -0.732654272f, - -0.671558955f, -0.740951125f, - -0.662415778f, -0.749136395f, - -0.653172843f, -0.757208847f, - -0.643831543f, -0.765167266f, - -0.634393284f, -0.773010453f, - -0.624859488f, -0.780737229f, - -0.615231591f, -0.788346428f, - -0.605511041f, -0.795836905f, - -0.595699304f, -0.803207531f, - -0.585797857f, -0.810457198f, - -0.575808191f, -0.817584813f, - -0.565731811f, -0.824589303f, - -0.555570233f, -0.831469612f, - -0.545324988f, -0.838224706f, - -0.534997620f, -0.844853565f, - -0.524589683f, -0.851355193f, - -0.514102744f, -0.857728610f, - -0.503538384f, -0.863972856f, - -0.492898192f, -0.870086991f, - -0.482183772f, -0.876070094f, - -0.471396737f, -0.881921264f, - -0.460538711f, -0.887639620f, - -0.449611330f, -0.893224301f, - -0.438616239f, -0.898674466f, - -0.427555093f, -0.903989293f, - -0.416429560f, -0.909167983f, - -0.405241314f, -0.914209756f, - -0.393992040f, -0.919113852f, - -0.382683432f, -0.923879533f, - -0.371317194f, -0.928506080f, - -0.359895037f, -0.932992799f, - -0.348418680f, -0.937339012f, - -0.336889853f, -0.941544065f, - -0.325310292f, -0.945607325f, - -0.313681740f, -0.949528181f, - -0.302005949f, -0.953306040f, - -0.290284677f, -0.956940336f, - -0.278519689f, -0.960430519f, - -0.266712757f, -0.963776066f, - -0.254865660f, -0.966976471f, - -0.242980180f, -0.970031253f, - -0.231058108f, -0.972939952f, - -0.219101240f, -0.975702130f, - -0.207111376f, -0.978317371f, - -0.195090322f, -0.980785280f, - -0.183039888f, -0.983105487f, - -0.170961889f, -0.985277642f, - -0.158858143f, -0.987301418f, - -0.146730474f, -0.989176510f, - -0.134580709f, -0.990902635f, - -0.122410675f, -0.992479535f, - -0.110222207f, -0.993906970f, - -0.098017140f, -0.995184727f, - -0.085797312f, -0.996312612f, - -0.073564564f, -0.997290457f, - -0.061320736f, -0.998118113f, - -0.049067674f, -0.998795456f, - -0.036807223f, -0.999322385f, - -0.024541229f, -0.999698819f, - -0.012271538f, -0.999924702f, - -0.000000000f, -1.000000000f, - 0.012271538f, -0.999924702f, - 0.024541229f, -0.999698819f, - 0.036807223f, -0.999322385f, - 0.049067674f, -0.998795456f, - 0.061320736f, -0.998118113f, - 0.073564564f, -0.997290457f, - 0.085797312f, -0.996312612f, - 0.098017140f, -0.995184727f, - 0.110222207f, -0.993906970f, - 0.122410675f, -0.992479535f, - 0.134580709f, -0.990902635f, - 0.146730474f, -0.989176510f, - 0.158858143f, -0.987301418f, - 0.170961889f, -0.985277642f, - 0.183039888f, -0.983105487f, - 0.195090322f, -0.980785280f, - 0.207111376f, -0.978317371f, - 0.219101240f, -0.975702130f, - 0.231058108f, -0.972939952f, - 0.242980180f, -0.970031253f, - 0.254865660f, -0.966976471f, - 0.266712757f, -0.963776066f, - 0.278519689f, -0.960430519f, - 0.290284677f, -0.956940336f, - 0.302005949f, -0.953306040f, - 0.313681740f, -0.949528181f, - 0.325310292f, -0.945607325f, - 0.336889853f, -0.941544065f, - 0.348418680f, -0.937339012f, - 0.359895037f, -0.932992799f, - 0.371317194f, -0.928506080f, - 0.382683432f, -0.923879533f, - 0.393992040f, -0.919113852f, - 0.405241314f, -0.914209756f, - 0.416429560f, -0.909167983f, - 0.427555093f, -0.903989293f, - 0.438616239f, -0.898674466f, - 0.449611330f, -0.893224301f, - 0.460538711f, -0.887639620f, - 0.471396737f, -0.881921264f, - 0.482183772f, -0.876070094f, - 0.492898192f, -0.870086991f, - 0.503538384f, -0.863972856f, - 0.514102744f, -0.857728610f, - 0.524589683f, -0.851355193f, - 0.534997620f, -0.844853565f, - 0.545324988f, -0.838224706f, - 0.555570233f, -0.831469612f, - 0.565731811f, -0.824589303f, - 0.575808191f, -0.817584813f, - 0.585797857f, -0.810457198f, - 0.595699304f, -0.803207531f, - 0.605511041f, -0.795836905f, - 0.615231591f, -0.788346428f, - 0.624859488f, -0.780737229f, - 0.634393284f, -0.773010453f, - 0.643831543f, -0.765167266f, - 0.653172843f, -0.757208847f, - 0.662415778f, -0.749136395f, - 0.671558955f, -0.740951125f, - 0.680600998f, -0.732654272f, - 0.689540545f, -0.724247083f, - 0.698376249f, -0.715730825f, - 0.707106781f, -0.707106781f, - 0.715730825f, -0.698376249f, - 0.724247083f, -0.689540545f, - 0.732654272f, -0.680600998f, - 0.740951125f, -0.671558955f, - 0.749136395f, -0.662415778f, - 0.757208847f, -0.653172843f, - 0.765167266f, -0.643831543f, - 0.773010453f, -0.634393284f, - 0.780737229f, -0.624859488f, - 0.788346428f, -0.615231591f, - 0.795836905f, -0.605511041f, - 0.803207531f, -0.595699304f, - 0.810457198f, -0.585797857f, - 0.817584813f, -0.575808191f, - 0.824589303f, -0.565731811f, - 0.831469612f, -0.555570233f, - 0.838224706f, -0.545324988f, - 0.844853565f, -0.534997620f, - 0.851355193f, -0.524589683f, - 0.857728610f, -0.514102744f, - 0.863972856f, -0.503538384f, - 0.870086991f, -0.492898192f, - 0.876070094f, -0.482183772f, - 0.881921264f, -0.471396737f, - 0.887639620f, -0.460538711f, - 0.893224301f, -0.449611330f, - 0.898674466f, -0.438616239f, - 0.903989293f, -0.427555093f, - 0.909167983f, -0.416429560f, - 0.914209756f, -0.405241314f, - 0.919113852f, -0.393992040f, - 0.923879533f, -0.382683432f, - 0.928506080f, -0.371317194f, - 0.932992799f, -0.359895037f, - 0.937339012f, -0.348418680f, - 0.941544065f, -0.336889853f, - 0.945607325f, -0.325310292f, - 0.949528181f, -0.313681740f, - 0.953306040f, -0.302005949f, - 0.956940336f, -0.290284677f, - 0.960430519f, -0.278519689f, - 0.963776066f, -0.266712757f, - 0.966976471f, -0.254865660f, - 0.970031253f, -0.242980180f, - 0.972939952f, -0.231058108f, - 0.975702130f, -0.219101240f, - 0.978317371f, -0.207111376f, - 0.980785280f, -0.195090322f, - 0.983105487f, -0.183039888f, - 0.985277642f, -0.170961889f, - 0.987301418f, -0.158858143f, - 0.989176510f, -0.146730474f, - 0.990902635f, -0.134580709f, - 0.992479535f, -0.122410675f, - 0.993906970f, -0.110222207f, - 0.995184727f, -0.098017140f, - 0.996312612f, -0.085797312f, - 0.997290457f, -0.073564564f, - 0.998118113f, -0.061320736f, - 0.998795456f, -0.049067674f, - 0.999322385f, -0.036807223f, - 0.999698819f, -0.024541229f, - 0.999924702f, -0.012271538f -}; -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 1024 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_1024[2048] = { - 1.000000000f, 0.000000000f, - 0.999981175f, 0.006135885f, - 0.999924702f, 0.012271538f, - 0.999830582f, 0.018406730f, - 0.999698819f, 0.024541229f, - 0.999529418f, 0.030674803f, - 0.999322385f, 0.036807223f, - 0.999077728f, 0.042938257f, - 0.998795456f, 0.049067674f, - 0.998475581f, 0.055195244f, - 0.998118113f, 0.061320736f, - 0.997723067f, 0.067443920f, - 0.997290457f, 0.073564564f, - 0.996820299f, 0.079682438f, - 0.996312612f, 0.085797312f, - 0.995767414f, 0.091908956f, - 0.995184727f, 0.098017140f, - 0.994564571f, 0.104121634f, - 0.993906970f, 0.110222207f, - 0.993211949f, 0.116318631f, - 0.992479535f, 0.122410675f, - 0.991709754f, 0.128498111f, - 0.990902635f, 0.134580709f, - 0.990058210f, 0.140658239f, - 0.989176510f, 0.146730474f, - 0.988257568f, 0.152797185f, - 0.987301418f, 0.158858143f, - 0.986308097f, 0.164913120f, - 0.985277642f, 0.170961889f, - 0.984210092f, 0.177004220f, - 0.983105487f, 0.183039888f, - 0.981963869f, 0.189068664f, - 0.980785280f, 0.195090322f, - 0.979569766f, 0.201104635f, - 0.978317371f, 0.207111376f, - 0.977028143f, 0.213110320f, - 0.975702130f, 0.219101240f, - 0.974339383f, 0.225083911f, - 0.972939952f, 0.231058108f, - 0.971503891f, 0.237023606f, - 0.970031253f, 0.242980180f, - 0.968522094f, 0.248927606f, - 0.966976471f, 0.254865660f, - 0.965394442f, 0.260794118f, - 0.963776066f, 0.266712757f, - 0.962121404f, 0.272621355f, - 0.960430519f, 0.278519689f, - 0.958703475f, 0.284407537f, - 0.956940336f, 0.290284677f, - 0.955141168f, 0.296150888f, - 0.953306040f, 0.302005949f, - 0.951435021f, 0.307849640f, - 0.949528181f, 0.313681740f, - 0.947585591f, 0.319502031f, - 0.945607325f, 0.325310292f, - 0.943593458f, 0.331106306f, - 0.941544065f, 0.336889853f, - 0.939459224f, 0.342660717f, - 0.937339012f, 0.348418680f, - 0.935183510f, 0.354163525f, - 0.932992799f, 0.359895037f, - 0.930766961f, 0.365612998f, - 0.928506080f, 0.371317194f, - 0.926210242f, 0.377007410f, - 0.923879533f, 0.382683432f, - 0.921514039f, 0.388345047f, - 0.919113852f, 0.393992040f, - 0.916679060f, 0.399624200f, - 0.914209756f, 0.405241314f, - 0.911706032f, 0.410843171f, - 0.909167983f, 0.416429560f, - 0.906595705f, 0.422000271f, - 0.903989293f, 0.427555093f, - 0.901348847f, 0.433093819f, - 0.898674466f, 0.438616239f, - 0.895966250f, 0.444122145f, - 0.893224301f, 0.449611330f, - 0.890448723f, 0.455083587f, - 0.887639620f, 0.460538711f, - 0.884797098f, 0.465976496f, - 0.881921264f, 0.471396737f, - 0.879012226f, 0.476799230f, - 0.876070094f, 0.482183772f, - 0.873094978f, 0.487550160f, - 0.870086991f, 0.492898192f, - 0.867046246f, 0.498227667f, - 0.863972856f, 0.503538384f, - 0.860866939f, 0.508830143f, - 0.857728610f, 0.514102744f, - 0.854557988f, 0.519355990f, - 0.851355193f, 0.524589683f, - 0.848120345f, 0.529803625f, - 0.844853565f, 0.534997620f, - 0.841554977f, 0.540171473f, - 0.838224706f, 0.545324988f, - 0.834862875f, 0.550457973f, - 0.831469612f, 0.555570233f, - 0.828045045f, 0.560661576f, - 0.824589303f, 0.565731811f, - 0.821102515f, 0.570780746f, - 0.817584813f, 0.575808191f, - 0.814036330f, 0.580813958f, - 0.810457198f, 0.585797857f, - 0.806847554f, 0.590759702f, - 0.803207531f, 0.595699304f, - 0.799537269f, 0.600616479f, - 0.795836905f, 0.605511041f, - 0.792106577f, 0.610382806f, - 0.788346428f, 0.615231591f, - 0.784556597f, 0.620057212f, - 0.780737229f, 0.624859488f, - 0.776888466f, 0.629638239f, - 0.773010453f, 0.634393284f, - 0.769103338f, 0.639124445f, - 0.765167266f, 0.643831543f, - 0.761202385f, 0.648514401f, - 0.757208847f, 0.653172843f, - 0.753186799f, 0.657806693f, - 0.749136395f, 0.662415778f, - 0.745057785f, 0.666999922f, - 0.740951125f, 0.671558955f, - 0.736816569f, 0.676092704f, - 0.732654272f, 0.680600998f, - 0.728464390f, 0.685083668f, - 0.724247083f, 0.689540545f, - 0.720002508f, 0.693971461f, - 0.715730825f, 0.698376249f, - 0.711432196f, 0.702754744f, - 0.707106781f, 0.707106781f, - 0.702754744f, 0.711432196f, - 0.698376249f, 0.715730825f, - 0.693971461f, 0.720002508f, - 0.689540545f, 0.724247083f, - 0.685083668f, 0.728464390f, - 0.680600998f, 0.732654272f, - 0.676092704f, 0.736816569f, - 0.671558955f, 0.740951125f, - 0.666999922f, 0.745057785f, - 0.662415778f, 0.749136395f, - 0.657806693f, 0.753186799f, - 0.653172843f, 0.757208847f, - 0.648514401f, 0.761202385f, - 0.643831543f, 0.765167266f, - 0.639124445f, 0.769103338f, - 0.634393284f, 0.773010453f, - 0.629638239f, 0.776888466f, - 0.624859488f, 0.780737229f, - 0.620057212f, 0.784556597f, - 0.615231591f, 0.788346428f, - 0.610382806f, 0.792106577f, - 0.605511041f, 0.795836905f, - 0.600616479f, 0.799537269f, - 0.595699304f, 0.803207531f, - 0.590759702f, 0.806847554f, - 0.585797857f, 0.810457198f, - 0.580813958f, 0.814036330f, - 0.575808191f, 0.817584813f, - 0.570780746f, 0.821102515f, - 0.565731811f, 0.824589303f, - 0.560661576f, 0.828045045f, - 0.555570233f, 0.831469612f, - 0.550457973f, 0.834862875f, - 0.545324988f, 0.838224706f, - 0.540171473f, 0.841554977f, - 0.534997620f, 0.844853565f, - 0.529803625f, 0.848120345f, - 0.524589683f, 0.851355193f, - 0.519355990f, 0.854557988f, - 0.514102744f, 0.857728610f, - 0.508830143f, 0.860866939f, - 0.503538384f, 0.863972856f, - 0.498227667f, 0.867046246f, - 0.492898192f, 0.870086991f, - 0.487550160f, 0.873094978f, - 0.482183772f, 0.876070094f, - 0.476799230f, 0.879012226f, - 0.471396737f, 0.881921264f, - 0.465976496f, 0.884797098f, - 0.460538711f, 0.887639620f, - 0.455083587f, 0.890448723f, - 0.449611330f, 0.893224301f, - 0.444122145f, 0.895966250f, - 0.438616239f, 0.898674466f, - 0.433093819f, 0.901348847f, - 0.427555093f, 0.903989293f, - 0.422000271f, 0.906595705f, - 0.416429560f, 0.909167983f, - 0.410843171f, 0.911706032f, - 0.405241314f, 0.914209756f, - 0.399624200f, 0.916679060f, - 0.393992040f, 0.919113852f, - 0.388345047f, 0.921514039f, - 0.382683432f, 0.923879533f, - 0.377007410f, 0.926210242f, - 0.371317194f, 0.928506080f, - 0.365612998f, 0.930766961f, - 0.359895037f, 0.932992799f, - 0.354163525f, 0.935183510f, - 0.348418680f, 0.937339012f, - 0.342660717f, 0.939459224f, - 0.336889853f, 0.941544065f, - 0.331106306f, 0.943593458f, - 0.325310292f, 0.945607325f, - 0.319502031f, 0.947585591f, - 0.313681740f, 0.949528181f, - 0.307849640f, 0.951435021f, - 0.302005949f, 0.953306040f, - 0.296150888f, 0.955141168f, - 0.290284677f, 0.956940336f, - 0.284407537f, 0.958703475f, - 0.278519689f, 0.960430519f, - 0.272621355f, 0.962121404f, - 0.266712757f, 0.963776066f, - 0.260794118f, 0.965394442f, - 0.254865660f, 0.966976471f, - 0.248927606f, 0.968522094f, - 0.242980180f, 0.970031253f, - 0.237023606f, 0.971503891f, - 0.231058108f, 0.972939952f, - 0.225083911f, 0.974339383f, - 0.219101240f, 0.975702130f, - 0.213110320f, 0.977028143f, - 0.207111376f, 0.978317371f, - 0.201104635f, 0.979569766f, - 0.195090322f, 0.980785280f, - 0.189068664f, 0.981963869f, - 0.183039888f, 0.983105487f, - 0.177004220f, 0.984210092f, - 0.170961889f, 0.985277642f, - 0.164913120f, 0.986308097f, - 0.158858143f, 0.987301418f, - 0.152797185f, 0.988257568f, - 0.146730474f, 0.989176510f, - 0.140658239f, 0.990058210f, - 0.134580709f, 0.990902635f, - 0.128498111f, 0.991709754f, - 0.122410675f, 0.992479535f, - 0.116318631f, 0.993211949f, - 0.110222207f, 0.993906970f, - 0.104121634f, 0.994564571f, - 0.098017140f, 0.995184727f, - 0.091908956f, 0.995767414f, - 0.085797312f, 0.996312612f, - 0.079682438f, 0.996820299f, - 0.073564564f, 0.997290457f, - 0.067443920f, 0.997723067f, - 0.061320736f, 0.998118113f, - 0.055195244f, 0.998475581f, - 0.049067674f, 0.998795456f, - 0.042938257f, 0.999077728f, - 0.036807223f, 0.999322385f, - 0.030674803f, 0.999529418f, - 0.024541229f, 0.999698819f, - 0.018406730f, 0.999830582f, - 0.012271538f, 0.999924702f, - 0.006135885f, 0.999981175f, - 0.000000000f, 1.000000000f, - -0.006135885f, 0.999981175f, - -0.012271538f, 0.999924702f, - -0.018406730f, 0.999830582f, - -0.024541229f, 0.999698819f, - -0.030674803f, 0.999529418f, - -0.036807223f, 0.999322385f, - -0.042938257f, 0.999077728f, - -0.049067674f, 0.998795456f, - -0.055195244f, 0.998475581f, - -0.061320736f, 0.998118113f, - -0.067443920f, 0.997723067f, - -0.073564564f, 0.997290457f, - -0.079682438f, 0.996820299f, - -0.085797312f, 0.996312612f, - -0.091908956f, 0.995767414f, - -0.098017140f, 0.995184727f, - -0.104121634f, 0.994564571f, - -0.110222207f, 0.993906970f, - -0.116318631f, 0.993211949f, - -0.122410675f, 0.992479535f, - -0.128498111f, 0.991709754f, - -0.134580709f, 0.990902635f, - -0.140658239f, 0.990058210f, - -0.146730474f, 0.989176510f, - -0.152797185f, 0.988257568f, - -0.158858143f, 0.987301418f, - -0.164913120f, 0.986308097f, - -0.170961889f, 0.985277642f, - -0.177004220f, 0.984210092f, - -0.183039888f, 0.983105487f, - -0.189068664f, 0.981963869f, - -0.195090322f, 0.980785280f, - -0.201104635f, 0.979569766f, - -0.207111376f, 0.978317371f, - -0.213110320f, 0.977028143f, - -0.219101240f, 0.975702130f, - -0.225083911f, 0.974339383f, - -0.231058108f, 0.972939952f, - -0.237023606f, 0.971503891f, - -0.242980180f, 0.970031253f, - -0.248927606f, 0.968522094f, - -0.254865660f, 0.966976471f, - -0.260794118f, 0.965394442f, - -0.266712757f, 0.963776066f, - -0.272621355f, 0.962121404f, - -0.278519689f, 0.960430519f, - -0.284407537f, 0.958703475f, - -0.290284677f, 0.956940336f, - -0.296150888f, 0.955141168f, - -0.302005949f, 0.953306040f, - -0.307849640f, 0.951435021f, - -0.313681740f, 0.949528181f, - -0.319502031f, 0.947585591f, - -0.325310292f, 0.945607325f, - -0.331106306f, 0.943593458f, - -0.336889853f, 0.941544065f, - -0.342660717f, 0.939459224f, - -0.348418680f, 0.937339012f, - -0.354163525f, 0.935183510f, - -0.359895037f, 0.932992799f, - -0.365612998f, 0.930766961f, - -0.371317194f, 0.928506080f, - -0.377007410f, 0.926210242f, - -0.382683432f, 0.923879533f, - -0.388345047f, 0.921514039f, - -0.393992040f, 0.919113852f, - -0.399624200f, 0.916679060f, - -0.405241314f, 0.914209756f, - -0.410843171f, 0.911706032f, - -0.416429560f, 0.909167983f, - -0.422000271f, 0.906595705f, - -0.427555093f, 0.903989293f, - -0.433093819f, 0.901348847f, - -0.438616239f, 0.898674466f, - -0.444122145f, 0.895966250f, - -0.449611330f, 0.893224301f, - -0.455083587f, 0.890448723f, - -0.460538711f, 0.887639620f, - -0.465976496f, 0.884797098f, - -0.471396737f, 0.881921264f, - -0.476799230f, 0.879012226f, - -0.482183772f, 0.876070094f, - -0.487550160f, 0.873094978f, - -0.492898192f, 0.870086991f, - -0.498227667f, 0.867046246f, - -0.503538384f, 0.863972856f, - -0.508830143f, 0.860866939f, - -0.514102744f, 0.857728610f, - -0.519355990f, 0.854557988f, - -0.524589683f, 0.851355193f, - -0.529803625f, 0.848120345f, - -0.534997620f, 0.844853565f, - -0.540171473f, 0.841554977f, - -0.545324988f, 0.838224706f, - -0.550457973f, 0.834862875f, - -0.555570233f, 0.831469612f, - -0.560661576f, 0.828045045f, - -0.565731811f, 0.824589303f, - -0.570780746f, 0.821102515f, - -0.575808191f, 0.817584813f, - -0.580813958f, 0.814036330f, - -0.585797857f, 0.810457198f, - -0.590759702f, 0.806847554f, - -0.595699304f, 0.803207531f, - -0.600616479f, 0.799537269f, - -0.605511041f, 0.795836905f, - -0.610382806f, 0.792106577f, - -0.615231591f, 0.788346428f, - -0.620057212f, 0.784556597f, - -0.624859488f, 0.780737229f, - -0.629638239f, 0.776888466f, - -0.634393284f, 0.773010453f, - -0.639124445f, 0.769103338f, - -0.643831543f, 0.765167266f, - -0.648514401f, 0.761202385f, - -0.653172843f, 0.757208847f, - -0.657806693f, 0.753186799f, - -0.662415778f, 0.749136395f, - -0.666999922f, 0.745057785f, - -0.671558955f, 0.740951125f, - -0.676092704f, 0.736816569f, - -0.680600998f, 0.732654272f, - -0.685083668f, 0.728464390f, - -0.689540545f, 0.724247083f, - -0.693971461f, 0.720002508f, - -0.698376249f, 0.715730825f, - -0.702754744f, 0.711432196f, - -0.707106781f, 0.707106781f, - -0.711432196f, 0.702754744f, - -0.715730825f, 0.698376249f, - -0.720002508f, 0.693971461f, - -0.724247083f, 0.689540545f, - -0.728464390f, 0.685083668f, - -0.732654272f, 0.680600998f, - -0.736816569f, 0.676092704f, - -0.740951125f, 0.671558955f, - -0.745057785f, 0.666999922f, - -0.749136395f, 0.662415778f, - -0.753186799f, 0.657806693f, - -0.757208847f, 0.653172843f, - -0.761202385f, 0.648514401f, - -0.765167266f, 0.643831543f, - -0.769103338f, 0.639124445f, - -0.773010453f, 0.634393284f, - -0.776888466f, 0.629638239f, - -0.780737229f, 0.624859488f, - -0.784556597f, 0.620057212f, - -0.788346428f, 0.615231591f, - -0.792106577f, 0.610382806f, - -0.795836905f, 0.605511041f, - -0.799537269f, 0.600616479f, - -0.803207531f, 0.595699304f, - -0.806847554f, 0.590759702f, - -0.810457198f, 0.585797857f, - -0.814036330f, 0.580813958f, - -0.817584813f, 0.575808191f, - -0.821102515f, 0.570780746f, - -0.824589303f, 0.565731811f, - -0.828045045f, 0.560661576f, - -0.831469612f, 0.555570233f, - -0.834862875f, 0.550457973f, - -0.838224706f, 0.545324988f, - -0.841554977f, 0.540171473f, - -0.844853565f, 0.534997620f, - -0.848120345f, 0.529803625f, - -0.851355193f, 0.524589683f, - -0.854557988f, 0.519355990f, - -0.857728610f, 0.514102744f, - -0.860866939f, 0.508830143f, - -0.863972856f, 0.503538384f, - -0.867046246f, 0.498227667f, - -0.870086991f, 0.492898192f, - -0.873094978f, 0.487550160f, - -0.876070094f, 0.482183772f, - -0.879012226f, 0.476799230f, - -0.881921264f, 0.471396737f, - -0.884797098f, 0.465976496f, - -0.887639620f, 0.460538711f, - -0.890448723f, 0.455083587f, - -0.893224301f, 0.449611330f, - -0.895966250f, 0.444122145f, - -0.898674466f, 0.438616239f, - -0.901348847f, 0.433093819f, - -0.903989293f, 0.427555093f, - -0.906595705f, 0.422000271f, - -0.909167983f, 0.416429560f, - -0.911706032f, 0.410843171f, - -0.914209756f, 0.405241314f, - -0.916679060f, 0.399624200f, - -0.919113852f, 0.393992040f, - -0.921514039f, 0.388345047f, - -0.923879533f, 0.382683432f, - -0.926210242f, 0.377007410f, - -0.928506080f, 0.371317194f, - -0.930766961f, 0.365612998f, - -0.932992799f, 0.359895037f, - -0.935183510f, 0.354163525f, - -0.937339012f, 0.348418680f, - -0.939459224f, 0.342660717f, - -0.941544065f, 0.336889853f, - -0.943593458f, 0.331106306f, - -0.945607325f, 0.325310292f, - -0.947585591f, 0.319502031f, - -0.949528181f, 0.313681740f, - -0.951435021f, 0.307849640f, - -0.953306040f, 0.302005949f, - -0.955141168f, 0.296150888f, - -0.956940336f, 0.290284677f, - -0.958703475f, 0.284407537f, - -0.960430519f, 0.278519689f, - -0.962121404f, 0.272621355f, - -0.963776066f, 0.266712757f, - -0.965394442f, 0.260794118f, - -0.966976471f, 0.254865660f, - -0.968522094f, 0.248927606f, - -0.970031253f, 0.242980180f, - -0.971503891f, 0.237023606f, - -0.972939952f, 0.231058108f, - -0.974339383f, 0.225083911f, - -0.975702130f, 0.219101240f, - -0.977028143f, 0.213110320f, - -0.978317371f, 0.207111376f, - -0.979569766f, 0.201104635f, - -0.980785280f, 0.195090322f, - -0.981963869f, 0.189068664f, - -0.983105487f, 0.183039888f, - -0.984210092f, 0.177004220f, - -0.985277642f, 0.170961889f, - -0.986308097f, 0.164913120f, - -0.987301418f, 0.158858143f, - -0.988257568f, 0.152797185f, - -0.989176510f, 0.146730474f, - -0.990058210f, 0.140658239f, - -0.990902635f, 0.134580709f, - -0.991709754f, 0.128498111f, - -0.992479535f, 0.122410675f, - -0.993211949f, 0.116318631f, - -0.993906970f, 0.110222207f, - -0.994564571f, 0.104121634f, - -0.995184727f, 0.098017140f, - -0.995767414f, 0.091908956f, - -0.996312612f, 0.085797312f, - -0.996820299f, 0.079682438f, - -0.997290457f, 0.073564564f, - -0.997723067f, 0.067443920f, - -0.998118113f, 0.061320736f, - -0.998475581f, 0.055195244f, - -0.998795456f, 0.049067674f, - -0.999077728f, 0.042938257f, - -0.999322385f, 0.036807223f, - -0.999529418f, 0.030674803f, - -0.999698819f, 0.024541229f, - -0.999830582f, 0.018406730f, - -0.999924702f, 0.012271538f, - -0.999981175f, 0.006135885f, - -1.000000000f, 0.000000000f, - -0.999981175f, -0.006135885f, - -0.999924702f, -0.012271538f, - -0.999830582f, -0.018406730f, - -0.999698819f, -0.024541229f, - -0.999529418f, -0.030674803f, - -0.999322385f, -0.036807223f, - -0.999077728f, -0.042938257f, - -0.998795456f, -0.049067674f, - -0.998475581f, -0.055195244f, - -0.998118113f, -0.061320736f, - -0.997723067f, -0.067443920f, - -0.997290457f, -0.073564564f, - -0.996820299f, -0.079682438f, - -0.996312612f, -0.085797312f, - -0.995767414f, -0.091908956f, - -0.995184727f, -0.098017140f, - -0.994564571f, -0.104121634f, - -0.993906970f, -0.110222207f, - -0.993211949f, -0.116318631f, - -0.992479535f, -0.122410675f, - -0.991709754f, -0.128498111f, - -0.990902635f, -0.134580709f, - -0.990058210f, -0.140658239f, - -0.989176510f, -0.146730474f, - -0.988257568f, -0.152797185f, - -0.987301418f, -0.158858143f, - -0.986308097f, -0.164913120f, - -0.985277642f, -0.170961889f, - -0.984210092f, -0.177004220f, - -0.983105487f, -0.183039888f, - -0.981963869f, -0.189068664f, - -0.980785280f, -0.195090322f, - -0.979569766f, -0.201104635f, - -0.978317371f, -0.207111376f, - -0.977028143f, -0.213110320f, - -0.975702130f, -0.219101240f, - -0.974339383f, -0.225083911f, - -0.972939952f, -0.231058108f, - -0.971503891f, -0.237023606f, - -0.970031253f, -0.242980180f, - -0.968522094f, -0.248927606f, - -0.966976471f, -0.254865660f, - -0.965394442f, -0.260794118f, - -0.963776066f, -0.266712757f, - -0.962121404f, -0.272621355f, - -0.960430519f, -0.278519689f, - -0.958703475f, -0.284407537f, - -0.956940336f, -0.290284677f, - -0.955141168f, -0.296150888f, - -0.953306040f, -0.302005949f, - -0.951435021f, -0.307849640f, - -0.949528181f, -0.313681740f, - -0.947585591f, -0.319502031f, - -0.945607325f, -0.325310292f, - -0.943593458f, -0.331106306f, - -0.941544065f, -0.336889853f, - -0.939459224f, -0.342660717f, - -0.937339012f, -0.348418680f, - -0.935183510f, -0.354163525f, - -0.932992799f, -0.359895037f, - -0.930766961f, -0.365612998f, - -0.928506080f, -0.371317194f, - -0.926210242f, -0.377007410f, - -0.923879533f, -0.382683432f, - -0.921514039f, -0.388345047f, - -0.919113852f, -0.393992040f, - -0.916679060f, -0.399624200f, - -0.914209756f, -0.405241314f, - -0.911706032f, -0.410843171f, - -0.909167983f, -0.416429560f, - -0.906595705f, -0.422000271f, - -0.903989293f, -0.427555093f, - -0.901348847f, -0.433093819f, - -0.898674466f, -0.438616239f, - -0.895966250f, -0.444122145f, - -0.893224301f, -0.449611330f, - -0.890448723f, -0.455083587f, - -0.887639620f, -0.460538711f, - -0.884797098f, -0.465976496f, - -0.881921264f, -0.471396737f, - -0.879012226f, -0.476799230f, - -0.876070094f, -0.482183772f, - -0.873094978f, -0.487550160f, - -0.870086991f, -0.492898192f, - -0.867046246f, -0.498227667f, - -0.863972856f, -0.503538384f, - -0.860866939f, -0.508830143f, - -0.857728610f, -0.514102744f, - -0.854557988f, -0.519355990f, - -0.851355193f, -0.524589683f, - -0.848120345f, -0.529803625f, - -0.844853565f, -0.534997620f, - -0.841554977f, -0.540171473f, - -0.838224706f, -0.545324988f, - -0.834862875f, -0.550457973f, - -0.831469612f, -0.555570233f, - -0.828045045f, -0.560661576f, - -0.824589303f, -0.565731811f, - -0.821102515f, -0.570780746f, - -0.817584813f, -0.575808191f, - -0.814036330f, -0.580813958f, - -0.810457198f, -0.585797857f, - -0.806847554f, -0.590759702f, - -0.803207531f, -0.595699304f, - -0.799537269f, -0.600616479f, - -0.795836905f, -0.605511041f, - -0.792106577f, -0.610382806f, - -0.788346428f, -0.615231591f, - -0.784556597f, -0.620057212f, - -0.780737229f, -0.624859488f, - -0.776888466f, -0.629638239f, - -0.773010453f, -0.634393284f, - -0.769103338f, -0.639124445f, - -0.765167266f, -0.643831543f, - -0.761202385f, -0.648514401f, - -0.757208847f, -0.653172843f, - -0.753186799f, -0.657806693f, - -0.749136395f, -0.662415778f, - -0.745057785f, -0.666999922f, - -0.740951125f, -0.671558955f, - -0.736816569f, -0.676092704f, - -0.732654272f, -0.680600998f, - -0.728464390f, -0.685083668f, - -0.724247083f, -0.689540545f, - -0.720002508f, -0.693971461f, - -0.715730825f, -0.698376249f, - -0.711432196f, -0.702754744f, - -0.707106781f, -0.707106781f, - -0.702754744f, -0.711432196f, - -0.698376249f, -0.715730825f, - -0.693971461f, -0.720002508f, - -0.689540545f, -0.724247083f, - -0.685083668f, -0.728464390f, - -0.680600998f, -0.732654272f, - -0.676092704f, -0.736816569f, - -0.671558955f, -0.740951125f, - -0.666999922f, -0.745057785f, - -0.662415778f, -0.749136395f, - -0.657806693f, -0.753186799f, - -0.653172843f, -0.757208847f, - -0.648514401f, -0.761202385f, - -0.643831543f, -0.765167266f, - -0.639124445f, -0.769103338f, - -0.634393284f, -0.773010453f, - -0.629638239f, -0.776888466f, - -0.624859488f, -0.780737229f, - -0.620057212f, -0.784556597f, - -0.615231591f, -0.788346428f, - -0.610382806f, -0.792106577f, - -0.605511041f, -0.795836905f, - -0.600616479f, -0.799537269f, - -0.595699304f, -0.803207531f, - -0.590759702f, -0.806847554f, - -0.585797857f, -0.810457198f, - -0.580813958f, -0.814036330f, - -0.575808191f, -0.817584813f, - -0.570780746f, -0.821102515f, - -0.565731811f, -0.824589303f, - -0.560661576f, -0.828045045f, - -0.555570233f, -0.831469612f, - -0.550457973f, -0.834862875f, - -0.545324988f, -0.838224706f, - -0.540171473f, -0.841554977f, - -0.534997620f, -0.844853565f, - -0.529803625f, -0.848120345f, - -0.524589683f, -0.851355193f, - -0.519355990f, -0.854557988f, - -0.514102744f, -0.857728610f, - -0.508830143f, -0.860866939f, - -0.503538384f, -0.863972856f, - -0.498227667f, -0.867046246f, - -0.492898192f, -0.870086991f, - -0.487550160f, -0.873094978f, - -0.482183772f, -0.876070094f, - -0.476799230f, -0.879012226f, - -0.471396737f, -0.881921264f, - -0.465976496f, -0.884797098f, - -0.460538711f, -0.887639620f, - -0.455083587f, -0.890448723f, - -0.449611330f, -0.893224301f, - -0.444122145f, -0.895966250f, - -0.438616239f, -0.898674466f, - -0.433093819f, -0.901348847f, - -0.427555093f, -0.903989293f, - -0.422000271f, -0.906595705f, - -0.416429560f, -0.909167983f, - -0.410843171f, -0.911706032f, - -0.405241314f, -0.914209756f, - -0.399624200f, -0.916679060f, - -0.393992040f, -0.919113852f, - -0.388345047f, -0.921514039f, - -0.382683432f, -0.923879533f, - -0.377007410f, -0.926210242f, - -0.371317194f, -0.928506080f, - -0.365612998f, -0.930766961f, - -0.359895037f, -0.932992799f, - -0.354163525f, -0.935183510f, - -0.348418680f, -0.937339012f, - -0.342660717f, -0.939459224f, - -0.336889853f, -0.941544065f, - -0.331106306f, -0.943593458f, - -0.325310292f, -0.945607325f, - -0.319502031f, -0.947585591f, - -0.313681740f, -0.949528181f, - -0.307849640f, -0.951435021f, - -0.302005949f, -0.953306040f, - -0.296150888f, -0.955141168f, - -0.290284677f, -0.956940336f, - -0.284407537f, -0.958703475f, - -0.278519689f, -0.960430519f, - -0.272621355f, -0.962121404f, - -0.266712757f, -0.963776066f, - -0.260794118f, -0.965394442f, - -0.254865660f, -0.966976471f, - -0.248927606f, -0.968522094f, - -0.242980180f, -0.970031253f, - -0.237023606f, -0.971503891f, - -0.231058108f, -0.972939952f, - -0.225083911f, -0.974339383f, - -0.219101240f, -0.975702130f, - -0.213110320f, -0.977028143f, - -0.207111376f, -0.978317371f, - -0.201104635f, -0.979569766f, - -0.195090322f, -0.980785280f, - -0.189068664f, -0.981963869f, - -0.183039888f, -0.983105487f, - -0.177004220f, -0.984210092f, - -0.170961889f, -0.985277642f, - -0.164913120f, -0.986308097f, - -0.158858143f, -0.987301418f, - -0.152797185f, -0.988257568f, - -0.146730474f, -0.989176510f, - -0.140658239f, -0.990058210f, - -0.134580709f, -0.990902635f, - -0.128498111f, -0.991709754f, - -0.122410675f, -0.992479535f, - -0.116318631f, -0.993211949f, - -0.110222207f, -0.993906970f, - -0.104121634f, -0.994564571f, - -0.098017140f, -0.995184727f, - -0.091908956f, -0.995767414f, - -0.085797312f, -0.996312612f, - -0.079682438f, -0.996820299f, - -0.073564564f, -0.997290457f, - -0.067443920f, -0.997723067f, - -0.061320736f, -0.998118113f, - -0.055195244f, -0.998475581f, - -0.049067674f, -0.998795456f, - -0.042938257f, -0.999077728f, - -0.036807223f, -0.999322385f, - -0.030674803f, -0.999529418f, - -0.024541229f, -0.999698819f, - -0.018406730f, -0.999830582f, - -0.012271538f, -0.999924702f, - -0.006135885f, -0.999981175f, - -0.000000000f, -1.000000000f, - 0.006135885f, -0.999981175f, - 0.012271538f, -0.999924702f, - 0.018406730f, -0.999830582f, - 0.024541229f, -0.999698819f, - 0.030674803f, -0.999529418f, - 0.036807223f, -0.999322385f, - 0.042938257f, -0.999077728f, - 0.049067674f, -0.998795456f, - 0.055195244f, -0.998475581f, - 0.061320736f, -0.998118113f, - 0.067443920f, -0.997723067f, - 0.073564564f, -0.997290457f, - 0.079682438f, -0.996820299f, - 0.085797312f, -0.996312612f, - 0.091908956f, -0.995767414f, - 0.098017140f, -0.995184727f, - 0.104121634f, -0.994564571f, - 0.110222207f, -0.993906970f, - 0.116318631f, -0.993211949f, - 0.122410675f, -0.992479535f, - 0.128498111f, -0.991709754f, - 0.134580709f, -0.990902635f, - 0.140658239f, -0.990058210f, - 0.146730474f, -0.989176510f, - 0.152797185f, -0.988257568f, - 0.158858143f, -0.987301418f, - 0.164913120f, -0.986308097f, - 0.170961889f, -0.985277642f, - 0.177004220f, -0.984210092f, - 0.183039888f, -0.983105487f, - 0.189068664f, -0.981963869f, - 0.195090322f, -0.980785280f, - 0.201104635f, -0.979569766f, - 0.207111376f, -0.978317371f, - 0.213110320f, -0.977028143f, - 0.219101240f, -0.975702130f, - 0.225083911f, -0.974339383f, - 0.231058108f, -0.972939952f, - 0.237023606f, -0.971503891f, - 0.242980180f, -0.970031253f, - 0.248927606f, -0.968522094f, - 0.254865660f, -0.966976471f, - 0.260794118f, -0.965394442f, - 0.266712757f, -0.963776066f, - 0.272621355f, -0.962121404f, - 0.278519689f, -0.960430519f, - 0.284407537f, -0.958703475f, - 0.290284677f, -0.956940336f, - 0.296150888f, -0.955141168f, - 0.302005949f, -0.953306040f, - 0.307849640f, -0.951435021f, - 0.313681740f, -0.949528181f, - 0.319502031f, -0.947585591f, - 0.325310292f, -0.945607325f, - 0.331106306f, -0.943593458f, - 0.336889853f, -0.941544065f, - 0.342660717f, -0.939459224f, - 0.348418680f, -0.937339012f, - 0.354163525f, -0.935183510f, - 0.359895037f, -0.932992799f, - 0.365612998f, -0.930766961f, - 0.371317194f, -0.928506080f, - 0.377007410f, -0.926210242f, - 0.382683432f, -0.923879533f, - 0.388345047f, -0.921514039f, - 0.393992040f, -0.919113852f, - 0.399624200f, -0.916679060f, - 0.405241314f, -0.914209756f, - 0.410843171f, -0.911706032f, - 0.416429560f, -0.909167983f, - 0.422000271f, -0.906595705f, - 0.427555093f, -0.903989293f, - 0.433093819f, -0.901348847f, - 0.438616239f, -0.898674466f, - 0.444122145f, -0.895966250f, - 0.449611330f, -0.893224301f, - 0.455083587f, -0.890448723f, - 0.460538711f, -0.887639620f, - 0.465976496f, -0.884797098f, - 0.471396737f, -0.881921264f, - 0.476799230f, -0.879012226f, - 0.482183772f, -0.876070094f, - 0.487550160f, -0.873094978f, - 0.492898192f, -0.870086991f, - 0.498227667f, -0.867046246f, - 0.503538384f, -0.863972856f, - 0.508830143f, -0.860866939f, - 0.514102744f, -0.857728610f, - 0.519355990f, -0.854557988f, - 0.524589683f, -0.851355193f, - 0.529803625f, -0.848120345f, - 0.534997620f, -0.844853565f, - 0.540171473f, -0.841554977f, - 0.545324988f, -0.838224706f, - 0.550457973f, -0.834862875f, - 0.555570233f, -0.831469612f, - 0.560661576f, -0.828045045f, - 0.565731811f, -0.824589303f, - 0.570780746f, -0.821102515f, - 0.575808191f, -0.817584813f, - 0.580813958f, -0.814036330f, - 0.585797857f, -0.810457198f, - 0.590759702f, -0.806847554f, - 0.595699304f, -0.803207531f, - 0.600616479f, -0.799537269f, - 0.605511041f, -0.795836905f, - 0.610382806f, -0.792106577f, - 0.615231591f, -0.788346428f, - 0.620057212f, -0.784556597f, - 0.624859488f, -0.780737229f, - 0.629638239f, -0.776888466f, - 0.634393284f, -0.773010453f, - 0.639124445f, -0.769103338f, - 0.643831543f, -0.765167266f, - 0.648514401f, -0.761202385f, - 0.653172843f, -0.757208847f, - 0.657806693f, -0.753186799f, - 0.662415778f, -0.749136395f, - 0.666999922f, -0.745057785f, - 0.671558955f, -0.740951125f, - 0.676092704f, -0.736816569f, - 0.680600998f, -0.732654272f, - 0.685083668f, -0.728464390f, - 0.689540545f, -0.724247083f, - 0.693971461f, -0.720002508f, - 0.698376249f, -0.715730825f, - 0.702754744f, -0.711432196f, - 0.707106781f, -0.707106781f, - 0.711432196f, -0.702754744f, - 0.715730825f, -0.698376249f, - 0.720002508f, -0.693971461f, - 0.724247083f, -0.689540545f, - 0.728464390f, -0.685083668f, - 0.732654272f, -0.680600998f, - 0.736816569f, -0.676092704f, - 0.740951125f, -0.671558955f, - 0.745057785f, -0.666999922f, - 0.749136395f, -0.662415778f, - 0.753186799f, -0.657806693f, - 0.757208847f, -0.653172843f, - 0.761202385f, -0.648514401f, - 0.765167266f, -0.643831543f, - 0.769103338f, -0.639124445f, - 0.773010453f, -0.634393284f, - 0.776888466f, -0.629638239f, - 0.780737229f, -0.624859488f, - 0.784556597f, -0.620057212f, - 0.788346428f, -0.615231591f, - 0.792106577f, -0.610382806f, - 0.795836905f, -0.605511041f, - 0.799537269f, -0.600616479f, - 0.803207531f, -0.595699304f, - 0.806847554f, -0.590759702f, - 0.810457198f, -0.585797857f, - 0.814036330f, -0.580813958f, - 0.817584813f, -0.575808191f, - 0.821102515f, -0.570780746f, - 0.824589303f, -0.565731811f, - 0.828045045f, -0.560661576f, - 0.831469612f, -0.555570233f, - 0.834862875f, -0.550457973f, - 0.838224706f, -0.545324988f, - 0.841554977f, -0.540171473f, - 0.844853565f, -0.534997620f, - 0.848120345f, -0.529803625f, - 0.851355193f, -0.524589683f, - 0.854557988f, -0.519355990f, - 0.857728610f, -0.514102744f, - 0.860866939f, -0.508830143f, - 0.863972856f, -0.503538384f, - 0.867046246f, -0.498227667f, - 0.870086991f, -0.492898192f, - 0.873094978f, -0.487550160f, - 0.876070094f, -0.482183772f, - 0.879012226f, -0.476799230f, - 0.881921264f, -0.471396737f, - 0.884797098f, -0.465976496f, - 0.887639620f, -0.460538711f, - 0.890448723f, -0.455083587f, - 0.893224301f, -0.449611330f, - 0.895966250f, -0.444122145f, - 0.898674466f, -0.438616239f, - 0.901348847f, -0.433093819f, - 0.903989293f, -0.427555093f, - 0.906595705f, -0.422000271f, - 0.909167983f, -0.416429560f, - 0.911706032f, -0.410843171f, - 0.914209756f, -0.405241314f, - 0.916679060f, -0.399624200f, - 0.919113852f, -0.393992040f, - 0.921514039f, -0.388345047f, - 0.923879533f, -0.382683432f, - 0.926210242f, -0.377007410f, - 0.928506080f, -0.371317194f, - 0.930766961f, -0.365612998f, - 0.932992799f, -0.359895037f, - 0.935183510f, -0.354163525f, - 0.937339012f, -0.348418680f, - 0.939459224f, -0.342660717f, - 0.941544065f, -0.336889853f, - 0.943593458f, -0.331106306f, - 0.945607325f, -0.325310292f, - 0.947585591f, -0.319502031f, - 0.949528181f, -0.313681740f, - 0.951435021f, -0.307849640f, - 0.953306040f, -0.302005949f, - 0.955141168f, -0.296150888f, - 0.956940336f, -0.290284677f, - 0.958703475f, -0.284407537f, - 0.960430519f, -0.278519689f, - 0.962121404f, -0.272621355f, - 0.963776066f, -0.266712757f, - 0.965394442f, -0.260794118f, - 0.966976471f, -0.254865660f, - 0.968522094f, -0.248927606f, - 0.970031253f, -0.242980180f, - 0.971503891f, -0.237023606f, - 0.972939952f, -0.231058108f, - 0.974339383f, -0.225083911f, - 0.975702130f, -0.219101240f, - 0.977028143f, -0.213110320f, - 0.978317371f, -0.207111376f, - 0.979569766f, -0.201104635f, - 0.980785280f, -0.195090322f, - 0.981963869f, -0.189068664f, - 0.983105487f, -0.183039888f, - 0.984210092f, -0.177004220f, - 0.985277642f, -0.170961889f, - 0.986308097f, -0.164913120f, - 0.987301418f, -0.158858143f, - 0.988257568f, -0.152797185f, - 0.989176510f, -0.146730474f, - 0.990058210f, -0.140658239f, - 0.990902635f, -0.134580709f, - 0.991709754f, -0.128498111f, - 0.992479535f, -0.122410675f, - 0.993211949f, -0.116318631f, - 0.993906970f, -0.110222207f, - 0.994564571f, -0.104121634f, - 0.995184727f, -0.098017140f, - 0.995767414f, -0.091908956f, - 0.996312612f, -0.085797312f, - 0.996820299f, -0.079682438f, - 0.997290457f, -0.073564564f, - 0.997723067f, -0.067443920f, - 0.998118113f, -0.061320736f, - 0.998475581f, -0.055195244f, - 0.998795456f, -0.049067674f, - 0.999077728f, -0.042938257f, - 0.999322385f, -0.036807223f, - 0.999529418f, -0.030674803f, - 0.999698819f, -0.024541229f, - 0.999830582f, -0.018406730f, - 0.999924702f, -0.012271538f, - 0.999981175f, -0.006135885f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 2048 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_2048[4096] = { - 1.000000000f, 0.000000000f, - 0.999995294f, 0.003067957f, - 0.999981175f, 0.006135885f, - 0.999957645f, 0.009203755f, - 0.999924702f, 0.012271538f, - 0.999882347f, 0.015339206f, - 0.999830582f, 0.018406730f, - 0.999769405f, 0.021474080f, - 0.999698819f, 0.024541229f, - 0.999618822f, 0.027608146f, - 0.999529418f, 0.030674803f, - 0.999430605f, 0.033741172f, - 0.999322385f, 0.036807223f, - 0.999204759f, 0.039872928f, - 0.999077728f, 0.042938257f, - 0.998941293f, 0.046003182f, - 0.998795456f, 0.049067674f, - 0.998640218f, 0.052131705f, - 0.998475581f, 0.055195244f, - 0.998301545f, 0.058258265f, - 0.998118113f, 0.061320736f, - 0.997925286f, 0.064382631f, - 0.997723067f, 0.067443920f, - 0.997511456f, 0.070504573f, - 0.997290457f, 0.073564564f, - 0.997060070f, 0.076623861f, - 0.996820299f, 0.079682438f, - 0.996571146f, 0.082740265f, - 0.996312612f, 0.085797312f, - 0.996044701f, 0.088853553f, - 0.995767414f, 0.091908956f, - 0.995480755f, 0.094963495f, - 0.995184727f, 0.098017140f, - 0.994879331f, 0.101069863f, - 0.994564571f, 0.104121634f, - 0.994240449f, 0.107172425f, - 0.993906970f, 0.110222207f, - 0.993564136f, 0.113270952f, - 0.993211949f, 0.116318631f, - 0.992850414f, 0.119365215f, - 0.992479535f, 0.122410675f, - 0.992099313f, 0.125454983f, - 0.991709754f, 0.128498111f, - 0.991310860f, 0.131540029f, - 0.990902635f, 0.134580709f, - 0.990485084f, 0.137620122f, - 0.990058210f, 0.140658239f, - 0.989622017f, 0.143695033f, - 0.989176510f, 0.146730474f, - 0.988721692f, 0.149764535f, - 0.988257568f, 0.152797185f, - 0.987784142f, 0.155828398f, - 0.987301418f, 0.158858143f, - 0.986809402f, 0.161886394f, - 0.986308097f, 0.164913120f, - 0.985797509f, 0.167938295f, - 0.985277642f, 0.170961889f, - 0.984748502f, 0.173983873f, - 0.984210092f, 0.177004220f, - 0.983662419f, 0.180022901f, - 0.983105487f, 0.183039888f, - 0.982539302f, 0.186055152f, - 0.981963869f, 0.189068664f, - 0.981379193f, 0.192080397f, - 0.980785280f, 0.195090322f, - 0.980182136f, 0.198098411f, - 0.979569766f, 0.201104635f, - 0.978948175f, 0.204108966f, - 0.978317371f, 0.207111376f, - 0.977677358f, 0.210111837f, - 0.977028143f, 0.213110320f, - 0.976369731f, 0.216106797f, - 0.975702130f, 0.219101240f, - 0.975025345f, 0.222093621f, - 0.974339383f, 0.225083911f, - 0.973644250f, 0.228072083f, - 0.972939952f, 0.231058108f, - 0.972226497f, 0.234041959f, - 0.971503891f, 0.237023606f, - 0.970772141f, 0.240003022f, - 0.970031253f, 0.242980180f, - 0.969281235f, 0.245955050f, - 0.968522094f, 0.248927606f, - 0.967753837f, 0.251897818f, - 0.966976471f, 0.254865660f, - 0.966190003f, 0.257831102f, - 0.965394442f, 0.260794118f, - 0.964589793f, 0.263754679f, - 0.963776066f, 0.266712757f, - 0.962953267f, 0.269668326f, - 0.962121404f, 0.272621355f, - 0.961280486f, 0.275571819f, - 0.960430519f, 0.278519689f, - 0.959571513f, 0.281464938f, - 0.958703475f, 0.284407537f, - 0.957826413f, 0.287347460f, - 0.956940336f, 0.290284677f, - 0.956045251f, 0.293219163f, - 0.955141168f, 0.296150888f, - 0.954228095f, 0.299079826f, - 0.953306040f, 0.302005949f, - 0.952375013f, 0.304929230f, - 0.951435021f, 0.307849640f, - 0.950486074f, 0.310767153f, - 0.949528181f, 0.313681740f, - 0.948561350f, 0.316593376f, - 0.947585591f, 0.319502031f, - 0.946600913f, 0.322407679f, - 0.945607325f, 0.325310292f, - 0.944604837f, 0.328209844f, - 0.943593458f, 0.331106306f, - 0.942573198f, 0.333999651f, - 0.941544065f, 0.336889853f, - 0.940506071f, 0.339776884f, - 0.939459224f, 0.342660717f, - 0.938403534f, 0.345541325f, - 0.937339012f, 0.348418680f, - 0.936265667f, 0.351292756f, - 0.935183510f, 0.354163525f, - 0.934092550f, 0.357030961f, - 0.932992799f, 0.359895037f, - 0.931884266f, 0.362755724f, - 0.930766961f, 0.365612998f, - 0.929640896f, 0.368466830f, - 0.928506080f, 0.371317194f, - 0.927362526f, 0.374164063f, - 0.926210242f, 0.377007410f, - 0.925049241f, 0.379847209f, - 0.923879533f, 0.382683432f, - 0.922701128f, 0.385516054f, - 0.921514039f, 0.388345047f, - 0.920318277f, 0.391170384f, - 0.919113852f, 0.393992040f, - 0.917900776f, 0.396809987f, - 0.916679060f, 0.399624200f, - 0.915448716f, 0.402434651f, - 0.914209756f, 0.405241314f, - 0.912962190f, 0.408044163f, - 0.911706032f, 0.410843171f, - 0.910441292f, 0.413638312f, - 0.909167983f, 0.416429560f, - 0.907886116f, 0.419216888f, - 0.906595705f, 0.422000271f, - 0.905296759f, 0.424779681f, - 0.903989293f, 0.427555093f, - 0.902673318f, 0.430326481f, - 0.901348847f, 0.433093819f, - 0.900015892f, 0.435857080f, - 0.898674466f, 0.438616239f, - 0.897324581f, 0.441371269f, - 0.895966250f, 0.444122145f, - 0.894599486f, 0.446868840f, - 0.893224301f, 0.449611330f, - 0.891840709f, 0.452349587f, - 0.890448723f, 0.455083587f, - 0.889048356f, 0.457813304f, - 0.887639620f, 0.460538711f, - 0.886222530f, 0.463259784f, - 0.884797098f, 0.465976496f, - 0.883363339f, 0.468688822f, - 0.881921264f, 0.471396737f, - 0.880470889f, 0.474100215f, - 0.879012226f, 0.476799230f, - 0.877545290f, 0.479493758f, - 0.876070094f, 0.482183772f, - 0.874586652f, 0.484869248f, - 0.873094978f, 0.487550160f, - 0.871595087f, 0.490226483f, - 0.870086991f, 0.492898192f, - 0.868570706f, 0.495565262f, - 0.867046246f, 0.498227667f, - 0.865513624f, 0.500885383f, - 0.863972856f, 0.503538384f, - 0.862423956f, 0.506186645f, - 0.860866939f, 0.508830143f, - 0.859301818f, 0.511468850f, - 0.857728610f, 0.514102744f, - 0.856147328f, 0.516731799f, - 0.854557988f, 0.519355990f, - 0.852960605f, 0.521975293f, - 0.851355193f, 0.524589683f, - 0.849741768f, 0.527199135f, - 0.848120345f, 0.529803625f, - 0.846490939f, 0.532403128f, - 0.844853565f, 0.534997620f, - 0.843208240f, 0.537587076f, - 0.841554977f, 0.540171473f, - 0.839893794f, 0.542750785f, - 0.838224706f, 0.545324988f, - 0.836547727f, 0.547894059f, - 0.834862875f, 0.550457973f, - 0.833170165f, 0.553016706f, - 0.831469612f, 0.555570233f, - 0.829761234f, 0.558118531f, - 0.828045045f, 0.560661576f, - 0.826321063f, 0.563199344f, - 0.824589303f, 0.565731811f, - 0.822849781f, 0.568258953f, - 0.821102515f, 0.570780746f, - 0.819347520f, 0.573297167f, - 0.817584813f, 0.575808191f, - 0.815814411f, 0.578313796f, - 0.814036330f, 0.580813958f, - 0.812250587f, 0.583308653f, - 0.810457198f, 0.585797857f, - 0.808656182f, 0.588281548f, - 0.806847554f, 0.590759702f, - 0.805031331f, 0.593232295f, - 0.803207531f, 0.595699304f, - 0.801376172f, 0.598160707f, - 0.799537269f, 0.600616479f, - 0.797690841f, 0.603066599f, - 0.795836905f, 0.605511041f, - 0.793975478f, 0.607949785f, - 0.792106577f, 0.610382806f, - 0.790230221f, 0.612810082f, - 0.788346428f, 0.615231591f, - 0.786455214f, 0.617647308f, - 0.784556597f, 0.620057212f, - 0.782650596f, 0.622461279f, - 0.780737229f, 0.624859488f, - 0.778816512f, 0.627251815f, - 0.776888466f, 0.629638239f, - 0.774953107f, 0.632018736f, - 0.773010453f, 0.634393284f, - 0.771060524f, 0.636761861f, - 0.769103338f, 0.639124445f, - 0.767138912f, 0.641481013f, - 0.765167266f, 0.643831543f, - 0.763188417f, 0.646176013f, - 0.761202385f, 0.648514401f, - 0.759209189f, 0.650846685f, - 0.757208847f, 0.653172843f, - 0.755201377f, 0.655492853f, - 0.753186799f, 0.657806693f, - 0.751165132f, 0.660114342f, - 0.749136395f, 0.662415778f, - 0.747100606f, 0.664710978f, - 0.745057785f, 0.666999922f, - 0.743007952f, 0.669282588f, - 0.740951125f, 0.671558955f, - 0.738887324f, 0.673829000f, - 0.736816569f, 0.676092704f, - 0.734738878f, 0.678350043f, - 0.732654272f, 0.680600998f, - 0.730562769f, 0.682845546f, - 0.728464390f, 0.685083668f, - 0.726359155f, 0.687315341f, - 0.724247083f, 0.689540545f, - 0.722128194f, 0.691759258f, - 0.720002508f, 0.693971461f, - 0.717870045f, 0.696177131f, - 0.715730825f, 0.698376249f, - 0.713584869f, 0.700568794f, - 0.711432196f, 0.702754744f, - 0.709272826f, 0.704934080f, - 0.707106781f, 0.707106781f, - 0.704934080f, 0.709272826f, - 0.702754744f, 0.711432196f, - 0.700568794f, 0.713584869f, - 0.698376249f, 0.715730825f, - 0.696177131f, 0.717870045f, - 0.693971461f, 0.720002508f, - 0.691759258f, 0.722128194f, - 0.689540545f, 0.724247083f, - 0.687315341f, 0.726359155f, - 0.685083668f, 0.728464390f, - 0.682845546f, 0.730562769f, - 0.680600998f, 0.732654272f, - 0.678350043f, 0.734738878f, - 0.676092704f, 0.736816569f, - 0.673829000f, 0.738887324f, - 0.671558955f, 0.740951125f, - 0.669282588f, 0.743007952f, - 0.666999922f, 0.745057785f, - 0.664710978f, 0.747100606f, - 0.662415778f, 0.749136395f, - 0.660114342f, 0.751165132f, - 0.657806693f, 0.753186799f, - 0.655492853f, 0.755201377f, - 0.653172843f, 0.757208847f, - 0.650846685f, 0.759209189f, - 0.648514401f, 0.761202385f, - 0.646176013f, 0.763188417f, - 0.643831543f, 0.765167266f, - 0.641481013f, 0.767138912f, - 0.639124445f, 0.769103338f, - 0.636761861f, 0.771060524f, - 0.634393284f, 0.773010453f, - 0.632018736f, 0.774953107f, - 0.629638239f, 0.776888466f, - 0.627251815f, 0.778816512f, - 0.624859488f, 0.780737229f, - 0.622461279f, 0.782650596f, - 0.620057212f, 0.784556597f, - 0.617647308f, 0.786455214f, - 0.615231591f, 0.788346428f, - 0.612810082f, 0.790230221f, - 0.610382806f, 0.792106577f, - 0.607949785f, 0.793975478f, - 0.605511041f, 0.795836905f, - 0.603066599f, 0.797690841f, - 0.600616479f, 0.799537269f, - 0.598160707f, 0.801376172f, - 0.595699304f, 0.803207531f, - 0.593232295f, 0.805031331f, - 0.590759702f, 0.806847554f, - 0.588281548f, 0.808656182f, - 0.585797857f, 0.810457198f, - 0.583308653f, 0.812250587f, - 0.580813958f, 0.814036330f, - 0.578313796f, 0.815814411f, - 0.575808191f, 0.817584813f, - 0.573297167f, 0.819347520f, - 0.570780746f, 0.821102515f, - 0.568258953f, 0.822849781f, - 0.565731811f, 0.824589303f, - 0.563199344f, 0.826321063f, - 0.560661576f, 0.828045045f, - 0.558118531f, 0.829761234f, - 0.555570233f, 0.831469612f, - 0.553016706f, 0.833170165f, - 0.550457973f, 0.834862875f, - 0.547894059f, 0.836547727f, - 0.545324988f, 0.838224706f, - 0.542750785f, 0.839893794f, - 0.540171473f, 0.841554977f, - 0.537587076f, 0.843208240f, - 0.534997620f, 0.844853565f, - 0.532403128f, 0.846490939f, - 0.529803625f, 0.848120345f, - 0.527199135f, 0.849741768f, - 0.524589683f, 0.851355193f, - 0.521975293f, 0.852960605f, - 0.519355990f, 0.854557988f, - 0.516731799f, 0.856147328f, - 0.514102744f, 0.857728610f, - 0.511468850f, 0.859301818f, - 0.508830143f, 0.860866939f, - 0.506186645f, 0.862423956f, - 0.503538384f, 0.863972856f, - 0.500885383f, 0.865513624f, - 0.498227667f, 0.867046246f, - 0.495565262f, 0.868570706f, - 0.492898192f, 0.870086991f, - 0.490226483f, 0.871595087f, - 0.487550160f, 0.873094978f, - 0.484869248f, 0.874586652f, - 0.482183772f, 0.876070094f, - 0.479493758f, 0.877545290f, - 0.476799230f, 0.879012226f, - 0.474100215f, 0.880470889f, - 0.471396737f, 0.881921264f, - 0.468688822f, 0.883363339f, - 0.465976496f, 0.884797098f, - 0.463259784f, 0.886222530f, - 0.460538711f, 0.887639620f, - 0.457813304f, 0.889048356f, - 0.455083587f, 0.890448723f, - 0.452349587f, 0.891840709f, - 0.449611330f, 0.893224301f, - 0.446868840f, 0.894599486f, - 0.444122145f, 0.895966250f, - 0.441371269f, 0.897324581f, - 0.438616239f, 0.898674466f, - 0.435857080f, 0.900015892f, - 0.433093819f, 0.901348847f, - 0.430326481f, 0.902673318f, - 0.427555093f, 0.903989293f, - 0.424779681f, 0.905296759f, - 0.422000271f, 0.906595705f, - 0.419216888f, 0.907886116f, - 0.416429560f, 0.909167983f, - 0.413638312f, 0.910441292f, - 0.410843171f, 0.911706032f, - 0.408044163f, 0.912962190f, - 0.405241314f, 0.914209756f, - 0.402434651f, 0.915448716f, - 0.399624200f, 0.916679060f, - 0.396809987f, 0.917900776f, - 0.393992040f, 0.919113852f, - 0.391170384f, 0.920318277f, - 0.388345047f, 0.921514039f, - 0.385516054f, 0.922701128f, - 0.382683432f, 0.923879533f, - 0.379847209f, 0.925049241f, - 0.377007410f, 0.926210242f, - 0.374164063f, 0.927362526f, - 0.371317194f, 0.928506080f, - 0.368466830f, 0.929640896f, - 0.365612998f, 0.930766961f, - 0.362755724f, 0.931884266f, - 0.359895037f, 0.932992799f, - 0.357030961f, 0.934092550f, - 0.354163525f, 0.935183510f, - 0.351292756f, 0.936265667f, - 0.348418680f, 0.937339012f, - 0.345541325f, 0.938403534f, - 0.342660717f, 0.939459224f, - 0.339776884f, 0.940506071f, - 0.336889853f, 0.941544065f, - 0.333999651f, 0.942573198f, - 0.331106306f, 0.943593458f, - 0.328209844f, 0.944604837f, - 0.325310292f, 0.945607325f, - 0.322407679f, 0.946600913f, - 0.319502031f, 0.947585591f, - 0.316593376f, 0.948561350f, - 0.313681740f, 0.949528181f, - 0.310767153f, 0.950486074f, - 0.307849640f, 0.951435021f, - 0.304929230f, 0.952375013f, - 0.302005949f, 0.953306040f, - 0.299079826f, 0.954228095f, - 0.296150888f, 0.955141168f, - 0.293219163f, 0.956045251f, - 0.290284677f, 0.956940336f, - 0.287347460f, 0.957826413f, - 0.284407537f, 0.958703475f, - 0.281464938f, 0.959571513f, - 0.278519689f, 0.960430519f, - 0.275571819f, 0.961280486f, - 0.272621355f, 0.962121404f, - 0.269668326f, 0.962953267f, - 0.266712757f, 0.963776066f, - 0.263754679f, 0.964589793f, - 0.260794118f, 0.965394442f, - 0.257831102f, 0.966190003f, - 0.254865660f, 0.966976471f, - 0.251897818f, 0.967753837f, - 0.248927606f, 0.968522094f, - 0.245955050f, 0.969281235f, - 0.242980180f, 0.970031253f, - 0.240003022f, 0.970772141f, - 0.237023606f, 0.971503891f, - 0.234041959f, 0.972226497f, - 0.231058108f, 0.972939952f, - 0.228072083f, 0.973644250f, - 0.225083911f, 0.974339383f, - 0.222093621f, 0.975025345f, - 0.219101240f, 0.975702130f, - 0.216106797f, 0.976369731f, - 0.213110320f, 0.977028143f, - 0.210111837f, 0.977677358f, - 0.207111376f, 0.978317371f, - 0.204108966f, 0.978948175f, - 0.201104635f, 0.979569766f, - 0.198098411f, 0.980182136f, - 0.195090322f, 0.980785280f, - 0.192080397f, 0.981379193f, - 0.189068664f, 0.981963869f, - 0.186055152f, 0.982539302f, - 0.183039888f, 0.983105487f, - 0.180022901f, 0.983662419f, - 0.177004220f, 0.984210092f, - 0.173983873f, 0.984748502f, - 0.170961889f, 0.985277642f, - 0.167938295f, 0.985797509f, - 0.164913120f, 0.986308097f, - 0.161886394f, 0.986809402f, - 0.158858143f, 0.987301418f, - 0.155828398f, 0.987784142f, - 0.152797185f, 0.988257568f, - 0.149764535f, 0.988721692f, - 0.146730474f, 0.989176510f, - 0.143695033f, 0.989622017f, - 0.140658239f, 0.990058210f, - 0.137620122f, 0.990485084f, - 0.134580709f, 0.990902635f, - 0.131540029f, 0.991310860f, - 0.128498111f, 0.991709754f, - 0.125454983f, 0.992099313f, - 0.122410675f, 0.992479535f, - 0.119365215f, 0.992850414f, - 0.116318631f, 0.993211949f, - 0.113270952f, 0.993564136f, - 0.110222207f, 0.993906970f, - 0.107172425f, 0.994240449f, - 0.104121634f, 0.994564571f, - 0.101069863f, 0.994879331f, - 0.098017140f, 0.995184727f, - 0.094963495f, 0.995480755f, - 0.091908956f, 0.995767414f, - 0.088853553f, 0.996044701f, - 0.085797312f, 0.996312612f, - 0.082740265f, 0.996571146f, - 0.079682438f, 0.996820299f, - 0.076623861f, 0.997060070f, - 0.073564564f, 0.997290457f, - 0.070504573f, 0.997511456f, - 0.067443920f, 0.997723067f, - 0.064382631f, 0.997925286f, - 0.061320736f, 0.998118113f, - 0.058258265f, 0.998301545f, - 0.055195244f, 0.998475581f, - 0.052131705f, 0.998640218f, - 0.049067674f, 0.998795456f, - 0.046003182f, 0.998941293f, - 0.042938257f, 0.999077728f, - 0.039872928f, 0.999204759f, - 0.036807223f, 0.999322385f, - 0.033741172f, 0.999430605f, - 0.030674803f, 0.999529418f, - 0.027608146f, 0.999618822f, - 0.024541229f, 0.999698819f, - 0.021474080f, 0.999769405f, - 0.018406730f, 0.999830582f, - 0.015339206f, 0.999882347f, - 0.012271538f, 0.999924702f, - 0.009203755f, 0.999957645f, - 0.006135885f, 0.999981175f, - 0.003067957f, 0.999995294f, - 0.000000000f, 1.000000000f, - -0.003067957f, 0.999995294f, - -0.006135885f, 0.999981175f, - -0.009203755f, 0.999957645f, - -0.012271538f, 0.999924702f, - -0.015339206f, 0.999882347f, - -0.018406730f, 0.999830582f, - -0.021474080f, 0.999769405f, - -0.024541229f, 0.999698819f, - -0.027608146f, 0.999618822f, - -0.030674803f, 0.999529418f, - -0.033741172f, 0.999430605f, - -0.036807223f, 0.999322385f, - -0.039872928f, 0.999204759f, - -0.042938257f, 0.999077728f, - -0.046003182f, 0.998941293f, - -0.049067674f, 0.998795456f, - -0.052131705f, 0.998640218f, - -0.055195244f, 0.998475581f, - -0.058258265f, 0.998301545f, - -0.061320736f, 0.998118113f, - -0.064382631f, 0.997925286f, - -0.067443920f, 0.997723067f, - -0.070504573f, 0.997511456f, - -0.073564564f, 0.997290457f, - -0.076623861f, 0.997060070f, - -0.079682438f, 0.996820299f, - -0.082740265f, 0.996571146f, - -0.085797312f, 0.996312612f, - -0.088853553f, 0.996044701f, - -0.091908956f, 0.995767414f, - -0.094963495f, 0.995480755f, - -0.098017140f, 0.995184727f, - -0.101069863f, 0.994879331f, - -0.104121634f, 0.994564571f, - -0.107172425f, 0.994240449f, - -0.110222207f, 0.993906970f, - -0.113270952f, 0.993564136f, - -0.116318631f, 0.993211949f, - -0.119365215f, 0.992850414f, - -0.122410675f, 0.992479535f, - -0.125454983f, 0.992099313f, - -0.128498111f, 0.991709754f, - -0.131540029f, 0.991310860f, - -0.134580709f, 0.990902635f, - -0.137620122f, 0.990485084f, - -0.140658239f, 0.990058210f, - -0.143695033f, 0.989622017f, - -0.146730474f, 0.989176510f, - -0.149764535f, 0.988721692f, - -0.152797185f, 0.988257568f, - -0.155828398f, 0.987784142f, - -0.158858143f, 0.987301418f, - -0.161886394f, 0.986809402f, - -0.164913120f, 0.986308097f, - -0.167938295f, 0.985797509f, - -0.170961889f, 0.985277642f, - -0.173983873f, 0.984748502f, - -0.177004220f, 0.984210092f, - -0.180022901f, 0.983662419f, - -0.183039888f, 0.983105487f, - -0.186055152f, 0.982539302f, - -0.189068664f, 0.981963869f, - -0.192080397f, 0.981379193f, - -0.195090322f, 0.980785280f, - -0.198098411f, 0.980182136f, - -0.201104635f, 0.979569766f, - -0.204108966f, 0.978948175f, - -0.207111376f, 0.978317371f, - -0.210111837f, 0.977677358f, - -0.213110320f, 0.977028143f, - -0.216106797f, 0.976369731f, - -0.219101240f, 0.975702130f, - -0.222093621f, 0.975025345f, - -0.225083911f, 0.974339383f, - -0.228072083f, 0.973644250f, - -0.231058108f, 0.972939952f, - -0.234041959f, 0.972226497f, - -0.237023606f, 0.971503891f, - -0.240003022f, 0.970772141f, - -0.242980180f, 0.970031253f, - -0.245955050f, 0.969281235f, - -0.248927606f, 0.968522094f, - -0.251897818f, 0.967753837f, - -0.254865660f, 0.966976471f, - -0.257831102f, 0.966190003f, - -0.260794118f, 0.965394442f, - -0.263754679f, 0.964589793f, - -0.266712757f, 0.963776066f, - -0.269668326f, 0.962953267f, - -0.272621355f, 0.962121404f, - -0.275571819f, 0.961280486f, - -0.278519689f, 0.960430519f, - -0.281464938f, 0.959571513f, - -0.284407537f, 0.958703475f, - -0.287347460f, 0.957826413f, - -0.290284677f, 0.956940336f, - -0.293219163f, 0.956045251f, - -0.296150888f, 0.955141168f, - -0.299079826f, 0.954228095f, - -0.302005949f, 0.953306040f, - -0.304929230f, 0.952375013f, - -0.307849640f, 0.951435021f, - -0.310767153f, 0.950486074f, - -0.313681740f, 0.949528181f, - -0.316593376f, 0.948561350f, - -0.319502031f, 0.947585591f, - -0.322407679f, 0.946600913f, - -0.325310292f, 0.945607325f, - -0.328209844f, 0.944604837f, - -0.331106306f, 0.943593458f, - -0.333999651f, 0.942573198f, - -0.336889853f, 0.941544065f, - -0.339776884f, 0.940506071f, - -0.342660717f, 0.939459224f, - -0.345541325f, 0.938403534f, - -0.348418680f, 0.937339012f, - -0.351292756f, 0.936265667f, - -0.354163525f, 0.935183510f, - -0.357030961f, 0.934092550f, - -0.359895037f, 0.932992799f, - -0.362755724f, 0.931884266f, - -0.365612998f, 0.930766961f, - -0.368466830f, 0.929640896f, - -0.371317194f, 0.928506080f, - -0.374164063f, 0.927362526f, - -0.377007410f, 0.926210242f, - -0.379847209f, 0.925049241f, - -0.382683432f, 0.923879533f, - -0.385516054f, 0.922701128f, - -0.388345047f, 0.921514039f, - -0.391170384f, 0.920318277f, - -0.393992040f, 0.919113852f, - -0.396809987f, 0.917900776f, - -0.399624200f, 0.916679060f, - -0.402434651f, 0.915448716f, - -0.405241314f, 0.914209756f, - -0.408044163f, 0.912962190f, - -0.410843171f, 0.911706032f, - -0.413638312f, 0.910441292f, - -0.416429560f, 0.909167983f, - -0.419216888f, 0.907886116f, - -0.422000271f, 0.906595705f, - -0.424779681f, 0.905296759f, - -0.427555093f, 0.903989293f, - -0.430326481f, 0.902673318f, - -0.433093819f, 0.901348847f, - -0.435857080f, 0.900015892f, - -0.438616239f, 0.898674466f, - -0.441371269f, 0.897324581f, - -0.444122145f, 0.895966250f, - -0.446868840f, 0.894599486f, - -0.449611330f, 0.893224301f, - -0.452349587f, 0.891840709f, - -0.455083587f, 0.890448723f, - -0.457813304f, 0.889048356f, - -0.460538711f, 0.887639620f, - -0.463259784f, 0.886222530f, - -0.465976496f, 0.884797098f, - -0.468688822f, 0.883363339f, - -0.471396737f, 0.881921264f, - -0.474100215f, 0.880470889f, - -0.476799230f, 0.879012226f, - -0.479493758f, 0.877545290f, - -0.482183772f, 0.876070094f, - -0.484869248f, 0.874586652f, - -0.487550160f, 0.873094978f, - -0.490226483f, 0.871595087f, - -0.492898192f, 0.870086991f, - -0.495565262f, 0.868570706f, - -0.498227667f, 0.867046246f, - -0.500885383f, 0.865513624f, - -0.503538384f, 0.863972856f, - -0.506186645f, 0.862423956f, - -0.508830143f, 0.860866939f, - -0.511468850f, 0.859301818f, - -0.514102744f, 0.857728610f, - -0.516731799f, 0.856147328f, - -0.519355990f, 0.854557988f, - -0.521975293f, 0.852960605f, - -0.524589683f, 0.851355193f, - -0.527199135f, 0.849741768f, - -0.529803625f, 0.848120345f, - -0.532403128f, 0.846490939f, - -0.534997620f, 0.844853565f, - -0.537587076f, 0.843208240f, - -0.540171473f, 0.841554977f, - -0.542750785f, 0.839893794f, - -0.545324988f, 0.838224706f, - -0.547894059f, 0.836547727f, - -0.550457973f, 0.834862875f, - -0.553016706f, 0.833170165f, - -0.555570233f, 0.831469612f, - -0.558118531f, 0.829761234f, - -0.560661576f, 0.828045045f, - -0.563199344f, 0.826321063f, - -0.565731811f, 0.824589303f, - -0.568258953f, 0.822849781f, - -0.570780746f, 0.821102515f, - -0.573297167f, 0.819347520f, - -0.575808191f, 0.817584813f, - -0.578313796f, 0.815814411f, - -0.580813958f, 0.814036330f, - -0.583308653f, 0.812250587f, - -0.585797857f, 0.810457198f, - -0.588281548f, 0.808656182f, - -0.590759702f, 0.806847554f, - -0.593232295f, 0.805031331f, - -0.595699304f, 0.803207531f, - -0.598160707f, 0.801376172f, - -0.600616479f, 0.799537269f, - -0.603066599f, 0.797690841f, - -0.605511041f, 0.795836905f, - -0.607949785f, 0.793975478f, - -0.610382806f, 0.792106577f, - -0.612810082f, 0.790230221f, - -0.615231591f, 0.788346428f, - -0.617647308f, 0.786455214f, - -0.620057212f, 0.784556597f, - -0.622461279f, 0.782650596f, - -0.624859488f, 0.780737229f, - -0.627251815f, 0.778816512f, - -0.629638239f, 0.776888466f, - -0.632018736f, 0.774953107f, - -0.634393284f, 0.773010453f, - -0.636761861f, 0.771060524f, - -0.639124445f, 0.769103338f, - -0.641481013f, 0.767138912f, - -0.643831543f, 0.765167266f, - -0.646176013f, 0.763188417f, - -0.648514401f, 0.761202385f, - -0.650846685f, 0.759209189f, - -0.653172843f, 0.757208847f, - -0.655492853f, 0.755201377f, - -0.657806693f, 0.753186799f, - -0.660114342f, 0.751165132f, - -0.662415778f, 0.749136395f, - -0.664710978f, 0.747100606f, - -0.666999922f, 0.745057785f, - -0.669282588f, 0.743007952f, - -0.671558955f, 0.740951125f, - -0.673829000f, 0.738887324f, - -0.676092704f, 0.736816569f, - -0.678350043f, 0.734738878f, - -0.680600998f, 0.732654272f, - -0.682845546f, 0.730562769f, - -0.685083668f, 0.728464390f, - -0.687315341f, 0.726359155f, - -0.689540545f, 0.724247083f, - -0.691759258f, 0.722128194f, - -0.693971461f, 0.720002508f, - -0.696177131f, 0.717870045f, - -0.698376249f, 0.715730825f, - -0.700568794f, 0.713584869f, - -0.702754744f, 0.711432196f, - -0.704934080f, 0.709272826f, - -0.707106781f, 0.707106781f, - -0.709272826f, 0.704934080f, - -0.711432196f, 0.702754744f, - -0.713584869f, 0.700568794f, - -0.715730825f, 0.698376249f, - -0.717870045f, 0.696177131f, - -0.720002508f, 0.693971461f, - -0.722128194f, 0.691759258f, - -0.724247083f, 0.689540545f, - -0.726359155f, 0.687315341f, - -0.728464390f, 0.685083668f, - -0.730562769f, 0.682845546f, - -0.732654272f, 0.680600998f, - -0.734738878f, 0.678350043f, - -0.736816569f, 0.676092704f, - -0.738887324f, 0.673829000f, - -0.740951125f, 0.671558955f, - -0.743007952f, 0.669282588f, - -0.745057785f, 0.666999922f, - -0.747100606f, 0.664710978f, - -0.749136395f, 0.662415778f, - -0.751165132f, 0.660114342f, - -0.753186799f, 0.657806693f, - -0.755201377f, 0.655492853f, - -0.757208847f, 0.653172843f, - -0.759209189f, 0.650846685f, - -0.761202385f, 0.648514401f, - -0.763188417f, 0.646176013f, - -0.765167266f, 0.643831543f, - -0.767138912f, 0.641481013f, - -0.769103338f, 0.639124445f, - -0.771060524f, 0.636761861f, - -0.773010453f, 0.634393284f, - -0.774953107f, 0.632018736f, - -0.776888466f, 0.629638239f, - -0.778816512f, 0.627251815f, - -0.780737229f, 0.624859488f, - -0.782650596f, 0.622461279f, - -0.784556597f, 0.620057212f, - -0.786455214f, 0.617647308f, - -0.788346428f, 0.615231591f, - -0.790230221f, 0.612810082f, - -0.792106577f, 0.610382806f, - -0.793975478f, 0.607949785f, - -0.795836905f, 0.605511041f, - -0.797690841f, 0.603066599f, - -0.799537269f, 0.600616479f, - -0.801376172f, 0.598160707f, - -0.803207531f, 0.595699304f, - -0.805031331f, 0.593232295f, - -0.806847554f, 0.590759702f, - -0.808656182f, 0.588281548f, - -0.810457198f, 0.585797857f, - -0.812250587f, 0.583308653f, - -0.814036330f, 0.580813958f, - -0.815814411f, 0.578313796f, - -0.817584813f, 0.575808191f, - -0.819347520f, 0.573297167f, - -0.821102515f, 0.570780746f, - -0.822849781f, 0.568258953f, - -0.824589303f, 0.565731811f, - -0.826321063f, 0.563199344f, - -0.828045045f, 0.560661576f, - -0.829761234f, 0.558118531f, - -0.831469612f, 0.555570233f, - -0.833170165f, 0.553016706f, - -0.834862875f, 0.550457973f, - -0.836547727f, 0.547894059f, - -0.838224706f, 0.545324988f, - -0.839893794f, 0.542750785f, - -0.841554977f, 0.540171473f, - -0.843208240f, 0.537587076f, - -0.844853565f, 0.534997620f, - -0.846490939f, 0.532403128f, - -0.848120345f, 0.529803625f, - -0.849741768f, 0.527199135f, - -0.851355193f, 0.524589683f, - -0.852960605f, 0.521975293f, - -0.854557988f, 0.519355990f, - -0.856147328f, 0.516731799f, - -0.857728610f, 0.514102744f, - -0.859301818f, 0.511468850f, - -0.860866939f, 0.508830143f, - -0.862423956f, 0.506186645f, - -0.863972856f, 0.503538384f, - -0.865513624f, 0.500885383f, - -0.867046246f, 0.498227667f, - -0.868570706f, 0.495565262f, - -0.870086991f, 0.492898192f, - -0.871595087f, 0.490226483f, - -0.873094978f, 0.487550160f, - -0.874586652f, 0.484869248f, - -0.876070094f, 0.482183772f, - -0.877545290f, 0.479493758f, - -0.879012226f, 0.476799230f, - -0.880470889f, 0.474100215f, - -0.881921264f, 0.471396737f, - -0.883363339f, 0.468688822f, - -0.884797098f, 0.465976496f, - -0.886222530f, 0.463259784f, - -0.887639620f, 0.460538711f, - -0.889048356f, 0.457813304f, - -0.890448723f, 0.455083587f, - -0.891840709f, 0.452349587f, - -0.893224301f, 0.449611330f, - -0.894599486f, 0.446868840f, - -0.895966250f, 0.444122145f, - -0.897324581f, 0.441371269f, - -0.898674466f, 0.438616239f, - -0.900015892f, 0.435857080f, - -0.901348847f, 0.433093819f, - -0.902673318f, 0.430326481f, - -0.903989293f, 0.427555093f, - -0.905296759f, 0.424779681f, - -0.906595705f, 0.422000271f, - -0.907886116f, 0.419216888f, - -0.909167983f, 0.416429560f, - -0.910441292f, 0.413638312f, - -0.911706032f, 0.410843171f, - -0.912962190f, 0.408044163f, - -0.914209756f, 0.405241314f, - -0.915448716f, 0.402434651f, - -0.916679060f, 0.399624200f, - -0.917900776f, 0.396809987f, - -0.919113852f, 0.393992040f, - -0.920318277f, 0.391170384f, - -0.921514039f, 0.388345047f, - -0.922701128f, 0.385516054f, - -0.923879533f, 0.382683432f, - -0.925049241f, 0.379847209f, - -0.926210242f, 0.377007410f, - -0.927362526f, 0.374164063f, - -0.928506080f, 0.371317194f, - -0.929640896f, 0.368466830f, - -0.930766961f, 0.365612998f, - -0.931884266f, 0.362755724f, - -0.932992799f, 0.359895037f, - -0.934092550f, 0.357030961f, - -0.935183510f, 0.354163525f, - -0.936265667f, 0.351292756f, - -0.937339012f, 0.348418680f, - -0.938403534f, 0.345541325f, - -0.939459224f, 0.342660717f, - -0.940506071f, 0.339776884f, - -0.941544065f, 0.336889853f, - -0.942573198f, 0.333999651f, - -0.943593458f, 0.331106306f, - -0.944604837f, 0.328209844f, - -0.945607325f, 0.325310292f, - -0.946600913f, 0.322407679f, - -0.947585591f, 0.319502031f, - -0.948561350f, 0.316593376f, - -0.949528181f, 0.313681740f, - -0.950486074f, 0.310767153f, - -0.951435021f, 0.307849640f, - -0.952375013f, 0.304929230f, - -0.953306040f, 0.302005949f, - -0.954228095f, 0.299079826f, - -0.955141168f, 0.296150888f, - -0.956045251f, 0.293219163f, - -0.956940336f, 0.290284677f, - -0.957826413f, 0.287347460f, - -0.958703475f, 0.284407537f, - -0.959571513f, 0.281464938f, - -0.960430519f, 0.278519689f, - -0.961280486f, 0.275571819f, - -0.962121404f, 0.272621355f, - -0.962953267f, 0.269668326f, - -0.963776066f, 0.266712757f, - -0.964589793f, 0.263754679f, - -0.965394442f, 0.260794118f, - -0.966190003f, 0.257831102f, - -0.966976471f, 0.254865660f, - -0.967753837f, 0.251897818f, - -0.968522094f, 0.248927606f, - -0.969281235f, 0.245955050f, - -0.970031253f, 0.242980180f, - -0.970772141f, 0.240003022f, - -0.971503891f, 0.237023606f, - -0.972226497f, 0.234041959f, - -0.972939952f, 0.231058108f, - -0.973644250f, 0.228072083f, - -0.974339383f, 0.225083911f, - -0.975025345f, 0.222093621f, - -0.975702130f, 0.219101240f, - -0.976369731f, 0.216106797f, - -0.977028143f, 0.213110320f, - -0.977677358f, 0.210111837f, - -0.978317371f, 0.207111376f, - -0.978948175f, 0.204108966f, - -0.979569766f, 0.201104635f, - -0.980182136f, 0.198098411f, - -0.980785280f, 0.195090322f, - -0.981379193f, 0.192080397f, - -0.981963869f, 0.189068664f, - -0.982539302f, 0.186055152f, - -0.983105487f, 0.183039888f, - -0.983662419f, 0.180022901f, - -0.984210092f, 0.177004220f, - -0.984748502f, 0.173983873f, - -0.985277642f, 0.170961889f, - -0.985797509f, 0.167938295f, - -0.986308097f, 0.164913120f, - -0.986809402f, 0.161886394f, - -0.987301418f, 0.158858143f, - -0.987784142f, 0.155828398f, - -0.988257568f, 0.152797185f, - -0.988721692f, 0.149764535f, - -0.989176510f, 0.146730474f, - -0.989622017f, 0.143695033f, - -0.990058210f, 0.140658239f, - -0.990485084f, 0.137620122f, - -0.990902635f, 0.134580709f, - -0.991310860f, 0.131540029f, - -0.991709754f, 0.128498111f, - -0.992099313f, 0.125454983f, - -0.992479535f, 0.122410675f, - -0.992850414f, 0.119365215f, - -0.993211949f, 0.116318631f, - -0.993564136f, 0.113270952f, - -0.993906970f, 0.110222207f, - -0.994240449f, 0.107172425f, - -0.994564571f, 0.104121634f, - -0.994879331f, 0.101069863f, - -0.995184727f, 0.098017140f, - -0.995480755f, 0.094963495f, - -0.995767414f, 0.091908956f, - -0.996044701f, 0.088853553f, - -0.996312612f, 0.085797312f, - -0.996571146f, 0.082740265f, - -0.996820299f, 0.079682438f, - -0.997060070f, 0.076623861f, - -0.997290457f, 0.073564564f, - -0.997511456f, 0.070504573f, - -0.997723067f, 0.067443920f, - -0.997925286f, 0.064382631f, - -0.998118113f, 0.061320736f, - -0.998301545f, 0.058258265f, - -0.998475581f, 0.055195244f, - -0.998640218f, 0.052131705f, - -0.998795456f, 0.049067674f, - -0.998941293f, 0.046003182f, - -0.999077728f, 0.042938257f, - -0.999204759f, 0.039872928f, - -0.999322385f, 0.036807223f, - -0.999430605f, 0.033741172f, - -0.999529418f, 0.030674803f, - -0.999618822f, 0.027608146f, - -0.999698819f, 0.024541229f, - -0.999769405f, 0.021474080f, - -0.999830582f, 0.018406730f, - -0.999882347f, 0.015339206f, - -0.999924702f, 0.012271538f, - -0.999957645f, 0.009203755f, - -0.999981175f, 0.006135885f, - -0.999995294f, 0.003067957f, - -1.000000000f, 0.000000000f, - -0.999995294f, -0.003067957f, - -0.999981175f, -0.006135885f, - -0.999957645f, -0.009203755f, - -0.999924702f, -0.012271538f, - -0.999882347f, -0.015339206f, - -0.999830582f, -0.018406730f, - -0.999769405f, -0.021474080f, - -0.999698819f, -0.024541229f, - -0.999618822f, -0.027608146f, - -0.999529418f, -0.030674803f, - -0.999430605f, -0.033741172f, - -0.999322385f, -0.036807223f, - -0.999204759f, -0.039872928f, - -0.999077728f, -0.042938257f, - -0.998941293f, -0.046003182f, - -0.998795456f, -0.049067674f, - -0.998640218f, -0.052131705f, - -0.998475581f, -0.055195244f, - -0.998301545f, -0.058258265f, - -0.998118113f, -0.061320736f, - -0.997925286f, -0.064382631f, - -0.997723067f, -0.067443920f, - -0.997511456f, -0.070504573f, - -0.997290457f, -0.073564564f, - -0.997060070f, -0.076623861f, - -0.996820299f, -0.079682438f, - -0.996571146f, -0.082740265f, - -0.996312612f, -0.085797312f, - -0.996044701f, -0.088853553f, - -0.995767414f, -0.091908956f, - -0.995480755f, -0.094963495f, - -0.995184727f, -0.098017140f, - -0.994879331f, -0.101069863f, - -0.994564571f, -0.104121634f, - -0.994240449f, -0.107172425f, - -0.993906970f, -0.110222207f, - -0.993564136f, -0.113270952f, - -0.993211949f, -0.116318631f, - -0.992850414f, -0.119365215f, - -0.992479535f, -0.122410675f, - -0.992099313f, -0.125454983f, - -0.991709754f, -0.128498111f, - -0.991310860f, -0.131540029f, - -0.990902635f, -0.134580709f, - -0.990485084f, -0.137620122f, - -0.990058210f, -0.140658239f, - -0.989622017f, -0.143695033f, - -0.989176510f, -0.146730474f, - -0.988721692f, -0.149764535f, - -0.988257568f, -0.152797185f, - -0.987784142f, -0.155828398f, - -0.987301418f, -0.158858143f, - -0.986809402f, -0.161886394f, - -0.986308097f, -0.164913120f, - -0.985797509f, -0.167938295f, - -0.985277642f, -0.170961889f, - -0.984748502f, -0.173983873f, - -0.984210092f, -0.177004220f, - -0.983662419f, -0.180022901f, - -0.983105487f, -0.183039888f, - -0.982539302f, -0.186055152f, - -0.981963869f, -0.189068664f, - -0.981379193f, -0.192080397f, - -0.980785280f, -0.195090322f, - -0.980182136f, -0.198098411f, - -0.979569766f, -0.201104635f, - -0.978948175f, -0.204108966f, - -0.978317371f, -0.207111376f, - -0.977677358f, -0.210111837f, - -0.977028143f, -0.213110320f, - -0.976369731f, -0.216106797f, - -0.975702130f, -0.219101240f, - -0.975025345f, -0.222093621f, - -0.974339383f, -0.225083911f, - -0.973644250f, -0.228072083f, - -0.972939952f, -0.231058108f, - -0.972226497f, -0.234041959f, - -0.971503891f, -0.237023606f, - -0.970772141f, -0.240003022f, - -0.970031253f, -0.242980180f, - -0.969281235f, -0.245955050f, - -0.968522094f, -0.248927606f, - -0.967753837f, -0.251897818f, - -0.966976471f, -0.254865660f, - -0.966190003f, -0.257831102f, - -0.965394442f, -0.260794118f, - -0.964589793f, -0.263754679f, - -0.963776066f, -0.266712757f, - -0.962953267f, -0.269668326f, - -0.962121404f, -0.272621355f, - -0.961280486f, -0.275571819f, - -0.960430519f, -0.278519689f, - -0.959571513f, -0.281464938f, - -0.958703475f, -0.284407537f, - -0.957826413f, -0.287347460f, - -0.956940336f, -0.290284677f, - -0.956045251f, -0.293219163f, - -0.955141168f, -0.296150888f, - -0.954228095f, -0.299079826f, - -0.953306040f, -0.302005949f, - -0.952375013f, -0.304929230f, - -0.951435021f, -0.307849640f, - -0.950486074f, -0.310767153f, - -0.949528181f, -0.313681740f, - -0.948561350f, -0.316593376f, - -0.947585591f, -0.319502031f, - -0.946600913f, -0.322407679f, - -0.945607325f, -0.325310292f, - -0.944604837f, -0.328209844f, - -0.943593458f, -0.331106306f, - -0.942573198f, -0.333999651f, - -0.941544065f, -0.336889853f, - -0.940506071f, -0.339776884f, - -0.939459224f, -0.342660717f, - -0.938403534f, -0.345541325f, - -0.937339012f, -0.348418680f, - -0.936265667f, -0.351292756f, - -0.935183510f, -0.354163525f, - -0.934092550f, -0.357030961f, - -0.932992799f, -0.359895037f, - -0.931884266f, -0.362755724f, - -0.930766961f, -0.365612998f, - -0.929640896f, -0.368466830f, - -0.928506080f, -0.371317194f, - -0.927362526f, -0.374164063f, - -0.926210242f, -0.377007410f, - -0.925049241f, -0.379847209f, - -0.923879533f, -0.382683432f, - -0.922701128f, -0.385516054f, - -0.921514039f, -0.388345047f, - -0.920318277f, -0.391170384f, - -0.919113852f, -0.393992040f, - -0.917900776f, -0.396809987f, - -0.916679060f, -0.399624200f, - -0.915448716f, -0.402434651f, - -0.914209756f, -0.405241314f, - -0.912962190f, -0.408044163f, - -0.911706032f, -0.410843171f, - -0.910441292f, -0.413638312f, - -0.909167983f, -0.416429560f, - -0.907886116f, -0.419216888f, - -0.906595705f, -0.422000271f, - -0.905296759f, -0.424779681f, - -0.903989293f, -0.427555093f, - -0.902673318f, -0.430326481f, - -0.901348847f, -0.433093819f, - -0.900015892f, -0.435857080f, - -0.898674466f, -0.438616239f, - -0.897324581f, -0.441371269f, - -0.895966250f, -0.444122145f, - -0.894599486f, -0.446868840f, - -0.893224301f, -0.449611330f, - -0.891840709f, -0.452349587f, - -0.890448723f, -0.455083587f, - -0.889048356f, -0.457813304f, - -0.887639620f, -0.460538711f, - -0.886222530f, -0.463259784f, - -0.884797098f, -0.465976496f, - -0.883363339f, -0.468688822f, - -0.881921264f, -0.471396737f, - -0.880470889f, -0.474100215f, - -0.879012226f, -0.476799230f, - -0.877545290f, -0.479493758f, - -0.876070094f, -0.482183772f, - -0.874586652f, -0.484869248f, - -0.873094978f, -0.487550160f, - -0.871595087f, -0.490226483f, - -0.870086991f, -0.492898192f, - -0.868570706f, -0.495565262f, - -0.867046246f, -0.498227667f, - -0.865513624f, -0.500885383f, - -0.863972856f, -0.503538384f, - -0.862423956f, -0.506186645f, - -0.860866939f, -0.508830143f, - -0.859301818f, -0.511468850f, - -0.857728610f, -0.514102744f, - -0.856147328f, -0.516731799f, - -0.854557988f, -0.519355990f, - -0.852960605f, -0.521975293f, - -0.851355193f, -0.524589683f, - -0.849741768f, -0.527199135f, - -0.848120345f, -0.529803625f, - -0.846490939f, -0.532403128f, - -0.844853565f, -0.534997620f, - -0.843208240f, -0.537587076f, - -0.841554977f, -0.540171473f, - -0.839893794f, -0.542750785f, - -0.838224706f, -0.545324988f, - -0.836547727f, -0.547894059f, - -0.834862875f, -0.550457973f, - -0.833170165f, -0.553016706f, - -0.831469612f, -0.555570233f, - -0.829761234f, -0.558118531f, - -0.828045045f, -0.560661576f, - -0.826321063f, -0.563199344f, - -0.824589303f, -0.565731811f, - -0.822849781f, -0.568258953f, - -0.821102515f, -0.570780746f, - -0.819347520f, -0.573297167f, - -0.817584813f, -0.575808191f, - -0.815814411f, -0.578313796f, - -0.814036330f, -0.580813958f, - -0.812250587f, -0.583308653f, - -0.810457198f, -0.585797857f, - -0.808656182f, -0.588281548f, - -0.806847554f, -0.590759702f, - -0.805031331f, -0.593232295f, - -0.803207531f, -0.595699304f, - -0.801376172f, -0.598160707f, - -0.799537269f, -0.600616479f, - -0.797690841f, -0.603066599f, - -0.795836905f, -0.605511041f, - -0.793975478f, -0.607949785f, - -0.792106577f, -0.610382806f, - -0.790230221f, -0.612810082f, - -0.788346428f, -0.615231591f, - -0.786455214f, -0.617647308f, - -0.784556597f, -0.620057212f, - -0.782650596f, -0.622461279f, - -0.780737229f, -0.624859488f, - -0.778816512f, -0.627251815f, - -0.776888466f, -0.629638239f, - -0.774953107f, -0.632018736f, - -0.773010453f, -0.634393284f, - -0.771060524f, -0.636761861f, - -0.769103338f, -0.639124445f, - -0.767138912f, -0.641481013f, - -0.765167266f, -0.643831543f, - -0.763188417f, -0.646176013f, - -0.761202385f, -0.648514401f, - -0.759209189f, -0.650846685f, - -0.757208847f, -0.653172843f, - -0.755201377f, -0.655492853f, - -0.753186799f, -0.657806693f, - -0.751165132f, -0.660114342f, - -0.749136395f, -0.662415778f, - -0.747100606f, -0.664710978f, - -0.745057785f, -0.666999922f, - -0.743007952f, -0.669282588f, - -0.740951125f, -0.671558955f, - -0.738887324f, -0.673829000f, - -0.736816569f, -0.676092704f, - -0.734738878f, -0.678350043f, - -0.732654272f, -0.680600998f, - -0.730562769f, -0.682845546f, - -0.728464390f, -0.685083668f, - -0.726359155f, -0.687315341f, - -0.724247083f, -0.689540545f, - -0.722128194f, -0.691759258f, - -0.720002508f, -0.693971461f, - -0.717870045f, -0.696177131f, - -0.715730825f, -0.698376249f, - -0.713584869f, -0.700568794f, - -0.711432196f, -0.702754744f, - -0.709272826f, -0.704934080f, - -0.707106781f, -0.707106781f, - -0.704934080f, -0.709272826f, - -0.702754744f, -0.711432196f, - -0.700568794f, -0.713584869f, - -0.698376249f, -0.715730825f, - -0.696177131f, -0.717870045f, - -0.693971461f, -0.720002508f, - -0.691759258f, -0.722128194f, - -0.689540545f, -0.724247083f, - -0.687315341f, -0.726359155f, - -0.685083668f, -0.728464390f, - -0.682845546f, -0.730562769f, - -0.680600998f, -0.732654272f, - -0.678350043f, -0.734738878f, - -0.676092704f, -0.736816569f, - -0.673829000f, -0.738887324f, - -0.671558955f, -0.740951125f, - -0.669282588f, -0.743007952f, - -0.666999922f, -0.745057785f, - -0.664710978f, -0.747100606f, - -0.662415778f, -0.749136395f, - -0.660114342f, -0.751165132f, - -0.657806693f, -0.753186799f, - -0.655492853f, -0.755201377f, - -0.653172843f, -0.757208847f, - -0.650846685f, -0.759209189f, - -0.648514401f, -0.761202385f, - -0.646176013f, -0.763188417f, - -0.643831543f, -0.765167266f, - -0.641481013f, -0.767138912f, - -0.639124445f, -0.769103338f, - -0.636761861f, -0.771060524f, - -0.634393284f, -0.773010453f, - -0.632018736f, -0.774953107f, - -0.629638239f, -0.776888466f, - -0.627251815f, -0.778816512f, - -0.624859488f, -0.780737229f, - -0.622461279f, -0.782650596f, - -0.620057212f, -0.784556597f, - -0.617647308f, -0.786455214f, - -0.615231591f, -0.788346428f, - -0.612810082f, -0.790230221f, - -0.610382806f, -0.792106577f, - -0.607949785f, -0.793975478f, - -0.605511041f, -0.795836905f, - -0.603066599f, -0.797690841f, - -0.600616479f, -0.799537269f, - -0.598160707f, -0.801376172f, - -0.595699304f, -0.803207531f, - -0.593232295f, -0.805031331f, - -0.590759702f, -0.806847554f, - -0.588281548f, -0.808656182f, - -0.585797857f, -0.810457198f, - -0.583308653f, -0.812250587f, - -0.580813958f, -0.814036330f, - -0.578313796f, -0.815814411f, - -0.575808191f, -0.817584813f, - -0.573297167f, -0.819347520f, - -0.570780746f, -0.821102515f, - -0.568258953f, -0.822849781f, - -0.565731811f, -0.824589303f, - -0.563199344f, -0.826321063f, - -0.560661576f, -0.828045045f, - -0.558118531f, -0.829761234f, - -0.555570233f, -0.831469612f, - -0.553016706f, -0.833170165f, - -0.550457973f, -0.834862875f, - -0.547894059f, -0.836547727f, - -0.545324988f, -0.838224706f, - -0.542750785f, -0.839893794f, - -0.540171473f, -0.841554977f, - -0.537587076f, -0.843208240f, - -0.534997620f, -0.844853565f, - -0.532403128f, -0.846490939f, - -0.529803625f, -0.848120345f, - -0.527199135f, -0.849741768f, - -0.524589683f, -0.851355193f, - -0.521975293f, -0.852960605f, - -0.519355990f, -0.854557988f, - -0.516731799f, -0.856147328f, - -0.514102744f, -0.857728610f, - -0.511468850f, -0.859301818f, - -0.508830143f, -0.860866939f, - -0.506186645f, -0.862423956f, - -0.503538384f, -0.863972856f, - -0.500885383f, -0.865513624f, - -0.498227667f, -0.867046246f, - -0.495565262f, -0.868570706f, - -0.492898192f, -0.870086991f, - -0.490226483f, -0.871595087f, - -0.487550160f, -0.873094978f, - -0.484869248f, -0.874586652f, - -0.482183772f, -0.876070094f, - -0.479493758f, -0.877545290f, - -0.476799230f, -0.879012226f, - -0.474100215f, -0.880470889f, - -0.471396737f, -0.881921264f, - -0.468688822f, -0.883363339f, - -0.465976496f, -0.884797098f, - -0.463259784f, -0.886222530f, - -0.460538711f, -0.887639620f, - -0.457813304f, -0.889048356f, - -0.455083587f, -0.890448723f, - -0.452349587f, -0.891840709f, - -0.449611330f, -0.893224301f, - -0.446868840f, -0.894599486f, - -0.444122145f, -0.895966250f, - -0.441371269f, -0.897324581f, - -0.438616239f, -0.898674466f, - -0.435857080f, -0.900015892f, - -0.433093819f, -0.901348847f, - -0.430326481f, -0.902673318f, - -0.427555093f, -0.903989293f, - -0.424779681f, -0.905296759f, - -0.422000271f, -0.906595705f, - -0.419216888f, -0.907886116f, - -0.416429560f, -0.909167983f, - -0.413638312f, -0.910441292f, - -0.410843171f, -0.911706032f, - -0.408044163f, -0.912962190f, - -0.405241314f, -0.914209756f, - -0.402434651f, -0.915448716f, - -0.399624200f, -0.916679060f, - -0.396809987f, -0.917900776f, - -0.393992040f, -0.919113852f, - -0.391170384f, -0.920318277f, - -0.388345047f, -0.921514039f, - -0.385516054f, -0.922701128f, - -0.382683432f, -0.923879533f, - -0.379847209f, -0.925049241f, - -0.377007410f, -0.926210242f, - -0.374164063f, -0.927362526f, - -0.371317194f, -0.928506080f, - -0.368466830f, -0.929640896f, - -0.365612998f, -0.930766961f, - -0.362755724f, -0.931884266f, - -0.359895037f, -0.932992799f, - -0.357030961f, -0.934092550f, - -0.354163525f, -0.935183510f, - -0.351292756f, -0.936265667f, - -0.348418680f, -0.937339012f, - -0.345541325f, -0.938403534f, - -0.342660717f, -0.939459224f, - -0.339776884f, -0.940506071f, - -0.336889853f, -0.941544065f, - -0.333999651f, -0.942573198f, - -0.331106306f, -0.943593458f, - -0.328209844f, -0.944604837f, - -0.325310292f, -0.945607325f, - -0.322407679f, -0.946600913f, - -0.319502031f, -0.947585591f, - -0.316593376f, -0.948561350f, - -0.313681740f, -0.949528181f, - -0.310767153f, -0.950486074f, - -0.307849640f, -0.951435021f, - -0.304929230f, -0.952375013f, - -0.302005949f, -0.953306040f, - -0.299079826f, -0.954228095f, - -0.296150888f, -0.955141168f, - -0.293219163f, -0.956045251f, - -0.290284677f, -0.956940336f, - -0.287347460f, -0.957826413f, - -0.284407537f, -0.958703475f, - -0.281464938f, -0.959571513f, - -0.278519689f, -0.960430519f, - -0.275571819f, -0.961280486f, - -0.272621355f, -0.962121404f, - -0.269668326f, -0.962953267f, - -0.266712757f, -0.963776066f, - -0.263754679f, -0.964589793f, - -0.260794118f, -0.965394442f, - -0.257831102f, -0.966190003f, - -0.254865660f, -0.966976471f, - -0.251897818f, -0.967753837f, - -0.248927606f, -0.968522094f, - -0.245955050f, -0.969281235f, - -0.242980180f, -0.970031253f, - -0.240003022f, -0.970772141f, - -0.237023606f, -0.971503891f, - -0.234041959f, -0.972226497f, - -0.231058108f, -0.972939952f, - -0.228072083f, -0.973644250f, - -0.225083911f, -0.974339383f, - -0.222093621f, -0.975025345f, - -0.219101240f, -0.975702130f, - -0.216106797f, -0.976369731f, - -0.213110320f, -0.977028143f, - -0.210111837f, -0.977677358f, - -0.207111376f, -0.978317371f, - -0.204108966f, -0.978948175f, - -0.201104635f, -0.979569766f, - -0.198098411f, -0.980182136f, - -0.195090322f, -0.980785280f, - -0.192080397f, -0.981379193f, - -0.189068664f, -0.981963869f, - -0.186055152f, -0.982539302f, - -0.183039888f, -0.983105487f, - -0.180022901f, -0.983662419f, - -0.177004220f, -0.984210092f, - -0.173983873f, -0.984748502f, - -0.170961889f, -0.985277642f, - -0.167938295f, -0.985797509f, - -0.164913120f, -0.986308097f, - -0.161886394f, -0.986809402f, - -0.158858143f, -0.987301418f, - -0.155828398f, -0.987784142f, - -0.152797185f, -0.988257568f, - -0.149764535f, -0.988721692f, - -0.146730474f, -0.989176510f, - -0.143695033f, -0.989622017f, - -0.140658239f, -0.990058210f, - -0.137620122f, -0.990485084f, - -0.134580709f, -0.990902635f, - -0.131540029f, -0.991310860f, - -0.128498111f, -0.991709754f, - -0.125454983f, -0.992099313f, - -0.122410675f, -0.992479535f, - -0.119365215f, -0.992850414f, - -0.116318631f, -0.993211949f, - -0.113270952f, -0.993564136f, - -0.110222207f, -0.993906970f, - -0.107172425f, -0.994240449f, - -0.104121634f, -0.994564571f, - -0.101069863f, -0.994879331f, - -0.098017140f, -0.995184727f, - -0.094963495f, -0.995480755f, - -0.091908956f, -0.995767414f, - -0.088853553f, -0.996044701f, - -0.085797312f, -0.996312612f, - -0.082740265f, -0.996571146f, - -0.079682438f, -0.996820299f, - -0.076623861f, -0.997060070f, - -0.073564564f, -0.997290457f, - -0.070504573f, -0.997511456f, - -0.067443920f, -0.997723067f, - -0.064382631f, -0.997925286f, - -0.061320736f, -0.998118113f, - -0.058258265f, -0.998301545f, - -0.055195244f, -0.998475581f, - -0.052131705f, -0.998640218f, - -0.049067674f, -0.998795456f, - -0.046003182f, -0.998941293f, - -0.042938257f, -0.999077728f, - -0.039872928f, -0.999204759f, - -0.036807223f, -0.999322385f, - -0.033741172f, -0.999430605f, - -0.030674803f, -0.999529418f, - -0.027608146f, -0.999618822f, - -0.024541229f, -0.999698819f, - -0.021474080f, -0.999769405f, - -0.018406730f, -0.999830582f, - -0.015339206f, -0.999882347f, - -0.012271538f, -0.999924702f, - -0.009203755f, -0.999957645f, - -0.006135885f, -0.999981175f, - -0.003067957f, -0.999995294f, - -0.000000000f, -1.000000000f, - 0.003067957f, -0.999995294f, - 0.006135885f, -0.999981175f, - 0.009203755f, -0.999957645f, - 0.012271538f, -0.999924702f, - 0.015339206f, -0.999882347f, - 0.018406730f, -0.999830582f, - 0.021474080f, -0.999769405f, - 0.024541229f, -0.999698819f, - 0.027608146f, -0.999618822f, - 0.030674803f, -0.999529418f, - 0.033741172f, -0.999430605f, - 0.036807223f, -0.999322385f, - 0.039872928f, -0.999204759f, - 0.042938257f, -0.999077728f, - 0.046003182f, -0.998941293f, - 0.049067674f, -0.998795456f, - 0.052131705f, -0.998640218f, - 0.055195244f, -0.998475581f, - 0.058258265f, -0.998301545f, - 0.061320736f, -0.998118113f, - 0.064382631f, -0.997925286f, - 0.067443920f, -0.997723067f, - 0.070504573f, -0.997511456f, - 0.073564564f, -0.997290457f, - 0.076623861f, -0.997060070f, - 0.079682438f, -0.996820299f, - 0.082740265f, -0.996571146f, - 0.085797312f, -0.996312612f, - 0.088853553f, -0.996044701f, - 0.091908956f, -0.995767414f, - 0.094963495f, -0.995480755f, - 0.098017140f, -0.995184727f, - 0.101069863f, -0.994879331f, - 0.104121634f, -0.994564571f, - 0.107172425f, -0.994240449f, - 0.110222207f, -0.993906970f, - 0.113270952f, -0.993564136f, - 0.116318631f, -0.993211949f, - 0.119365215f, -0.992850414f, - 0.122410675f, -0.992479535f, - 0.125454983f, -0.992099313f, - 0.128498111f, -0.991709754f, - 0.131540029f, -0.991310860f, - 0.134580709f, -0.990902635f, - 0.137620122f, -0.990485084f, - 0.140658239f, -0.990058210f, - 0.143695033f, -0.989622017f, - 0.146730474f, -0.989176510f, - 0.149764535f, -0.988721692f, - 0.152797185f, -0.988257568f, - 0.155828398f, -0.987784142f, - 0.158858143f, -0.987301418f, - 0.161886394f, -0.986809402f, - 0.164913120f, -0.986308097f, - 0.167938295f, -0.985797509f, - 0.170961889f, -0.985277642f, - 0.173983873f, -0.984748502f, - 0.177004220f, -0.984210092f, - 0.180022901f, -0.983662419f, - 0.183039888f, -0.983105487f, - 0.186055152f, -0.982539302f, - 0.189068664f, -0.981963869f, - 0.192080397f, -0.981379193f, - 0.195090322f, -0.980785280f, - 0.198098411f, -0.980182136f, - 0.201104635f, -0.979569766f, - 0.204108966f, -0.978948175f, - 0.207111376f, -0.978317371f, - 0.210111837f, -0.977677358f, - 0.213110320f, -0.977028143f, - 0.216106797f, -0.976369731f, - 0.219101240f, -0.975702130f, - 0.222093621f, -0.975025345f, - 0.225083911f, -0.974339383f, - 0.228072083f, -0.973644250f, - 0.231058108f, -0.972939952f, - 0.234041959f, -0.972226497f, - 0.237023606f, -0.971503891f, - 0.240003022f, -0.970772141f, - 0.242980180f, -0.970031253f, - 0.245955050f, -0.969281235f, - 0.248927606f, -0.968522094f, - 0.251897818f, -0.967753837f, - 0.254865660f, -0.966976471f, - 0.257831102f, -0.966190003f, - 0.260794118f, -0.965394442f, - 0.263754679f, -0.964589793f, - 0.266712757f, -0.963776066f, - 0.269668326f, -0.962953267f, - 0.272621355f, -0.962121404f, - 0.275571819f, -0.961280486f, - 0.278519689f, -0.960430519f, - 0.281464938f, -0.959571513f, - 0.284407537f, -0.958703475f, - 0.287347460f, -0.957826413f, - 0.290284677f, -0.956940336f, - 0.293219163f, -0.956045251f, - 0.296150888f, -0.955141168f, - 0.299079826f, -0.954228095f, - 0.302005949f, -0.953306040f, - 0.304929230f, -0.952375013f, - 0.307849640f, -0.951435021f, - 0.310767153f, -0.950486074f, - 0.313681740f, -0.949528181f, - 0.316593376f, -0.948561350f, - 0.319502031f, -0.947585591f, - 0.322407679f, -0.946600913f, - 0.325310292f, -0.945607325f, - 0.328209844f, -0.944604837f, - 0.331106306f, -0.943593458f, - 0.333999651f, -0.942573198f, - 0.336889853f, -0.941544065f, - 0.339776884f, -0.940506071f, - 0.342660717f, -0.939459224f, - 0.345541325f, -0.938403534f, - 0.348418680f, -0.937339012f, - 0.351292756f, -0.936265667f, - 0.354163525f, -0.935183510f, - 0.357030961f, -0.934092550f, - 0.359895037f, -0.932992799f, - 0.362755724f, -0.931884266f, - 0.365612998f, -0.930766961f, - 0.368466830f, -0.929640896f, - 0.371317194f, -0.928506080f, - 0.374164063f, -0.927362526f, - 0.377007410f, -0.926210242f, - 0.379847209f, -0.925049241f, - 0.382683432f, -0.923879533f, - 0.385516054f, -0.922701128f, - 0.388345047f, -0.921514039f, - 0.391170384f, -0.920318277f, - 0.393992040f, -0.919113852f, - 0.396809987f, -0.917900776f, - 0.399624200f, -0.916679060f, - 0.402434651f, -0.915448716f, - 0.405241314f, -0.914209756f, - 0.408044163f, -0.912962190f, - 0.410843171f, -0.911706032f, - 0.413638312f, -0.910441292f, - 0.416429560f, -0.909167983f, - 0.419216888f, -0.907886116f, - 0.422000271f, -0.906595705f, - 0.424779681f, -0.905296759f, - 0.427555093f, -0.903989293f, - 0.430326481f, -0.902673318f, - 0.433093819f, -0.901348847f, - 0.435857080f, -0.900015892f, - 0.438616239f, -0.898674466f, - 0.441371269f, -0.897324581f, - 0.444122145f, -0.895966250f, - 0.446868840f, -0.894599486f, - 0.449611330f, -0.893224301f, - 0.452349587f, -0.891840709f, - 0.455083587f, -0.890448723f, - 0.457813304f, -0.889048356f, - 0.460538711f, -0.887639620f, - 0.463259784f, -0.886222530f, - 0.465976496f, -0.884797098f, - 0.468688822f, -0.883363339f, - 0.471396737f, -0.881921264f, - 0.474100215f, -0.880470889f, - 0.476799230f, -0.879012226f, - 0.479493758f, -0.877545290f, - 0.482183772f, -0.876070094f, - 0.484869248f, -0.874586652f, - 0.487550160f, -0.873094978f, - 0.490226483f, -0.871595087f, - 0.492898192f, -0.870086991f, - 0.495565262f, -0.868570706f, - 0.498227667f, -0.867046246f, - 0.500885383f, -0.865513624f, - 0.503538384f, -0.863972856f, - 0.506186645f, -0.862423956f, - 0.508830143f, -0.860866939f, - 0.511468850f, -0.859301818f, - 0.514102744f, -0.857728610f, - 0.516731799f, -0.856147328f, - 0.519355990f, -0.854557988f, - 0.521975293f, -0.852960605f, - 0.524589683f, -0.851355193f, - 0.527199135f, -0.849741768f, - 0.529803625f, -0.848120345f, - 0.532403128f, -0.846490939f, - 0.534997620f, -0.844853565f, - 0.537587076f, -0.843208240f, - 0.540171473f, -0.841554977f, - 0.542750785f, -0.839893794f, - 0.545324988f, -0.838224706f, - 0.547894059f, -0.836547727f, - 0.550457973f, -0.834862875f, - 0.553016706f, -0.833170165f, - 0.555570233f, -0.831469612f, - 0.558118531f, -0.829761234f, - 0.560661576f, -0.828045045f, - 0.563199344f, -0.826321063f, - 0.565731811f, -0.824589303f, - 0.568258953f, -0.822849781f, - 0.570780746f, -0.821102515f, - 0.573297167f, -0.819347520f, - 0.575808191f, -0.817584813f, - 0.578313796f, -0.815814411f, - 0.580813958f, -0.814036330f, - 0.583308653f, -0.812250587f, - 0.585797857f, -0.810457198f, - 0.588281548f, -0.808656182f, - 0.590759702f, -0.806847554f, - 0.593232295f, -0.805031331f, - 0.595699304f, -0.803207531f, - 0.598160707f, -0.801376172f, - 0.600616479f, -0.799537269f, - 0.603066599f, -0.797690841f, - 0.605511041f, -0.795836905f, - 0.607949785f, -0.793975478f, - 0.610382806f, -0.792106577f, - 0.612810082f, -0.790230221f, - 0.615231591f, -0.788346428f, - 0.617647308f, -0.786455214f, - 0.620057212f, -0.784556597f, - 0.622461279f, -0.782650596f, - 0.624859488f, -0.780737229f, - 0.627251815f, -0.778816512f, - 0.629638239f, -0.776888466f, - 0.632018736f, -0.774953107f, - 0.634393284f, -0.773010453f, - 0.636761861f, -0.771060524f, - 0.639124445f, -0.769103338f, - 0.641481013f, -0.767138912f, - 0.643831543f, -0.765167266f, - 0.646176013f, -0.763188417f, - 0.648514401f, -0.761202385f, - 0.650846685f, -0.759209189f, - 0.653172843f, -0.757208847f, - 0.655492853f, -0.755201377f, - 0.657806693f, -0.753186799f, - 0.660114342f, -0.751165132f, - 0.662415778f, -0.749136395f, - 0.664710978f, -0.747100606f, - 0.666999922f, -0.745057785f, - 0.669282588f, -0.743007952f, - 0.671558955f, -0.740951125f, - 0.673829000f, -0.738887324f, - 0.676092704f, -0.736816569f, - 0.678350043f, -0.734738878f, - 0.680600998f, -0.732654272f, - 0.682845546f, -0.730562769f, - 0.685083668f, -0.728464390f, - 0.687315341f, -0.726359155f, - 0.689540545f, -0.724247083f, - 0.691759258f, -0.722128194f, - 0.693971461f, -0.720002508f, - 0.696177131f, -0.717870045f, - 0.698376249f, -0.715730825f, - 0.700568794f, -0.713584869f, - 0.702754744f, -0.711432196f, - 0.704934080f, -0.709272826f, - 0.707106781f, -0.707106781f, - 0.709272826f, -0.704934080f, - 0.711432196f, -0.702754744f, - 0.713584869f, -0.700568794f, - 0.715730825f, -0.698376249f, - 0.717870045f, -0.696177131f, - 0.720002508f, -0.693971461f, - 0.722128194f, -0.691759258f, - 0.724247083f, -0.689540545f, - 0.726359155f, -0.687315341f, - 0.728464390f, -0.685083668f, - 0.730562769f, -0.682845546f, - 0.732654272f, -0.680600998f, - 0.734738878f, -0.678350043f, - 0.736816569f, -0.676092704f, - 0.738887324f, -0.673829000f, - 0.740951125f, -0.671558955f, - 0.743007952f, -0.669282588f, - 0.745057785f, -0.666999922f, - 0.747100606f, -0.664710978f, - 0.749136395f, -0.662415778f, - 0.751165132f, -0.660114342f, - 0.753186799f, -0.657806693f, - 0.755201377f, -0.655492853f, - 0.757208847f, -0.653172843f, - 0.759209189f, -0.650846685f, - 0.761202385f, -0.648514401f, - 0.763188417f, -0.646176013f, - 0.765167266f, -0.643831543f, - 0.767138912f, -0.641481013f, - 0.769103338f, -0.639124445f, - 0.771060524f, -0.636761861f, - 0.773010453f, -0.634393284f, - 0.774953107f, -0.632018736f, - 0.776888466f, -0.629638239f, - 0.778816512f, -0.627251815f, - 0.780737229f, -0.624859488f, - 0.782650596f, -0.622461279f, - 0.784556597f, -0.620057212f, - 0.786455214f, -0.617647308f, - 0.788346428f, -0.615231591f, - 0.790230221f, -0.612810082f, - 0.792106577f, -0.610382806f, - 0.793975478f, -0.607949785f, - 0.795836905f, -0.605511041f, - 0.797690841f, -0.603066599f, - 0.799537269f, -0.600616479f, - 0.801376172f, -0.598160707f, - 0.803207531f, -0.595699304f, - 0.805031331f, -0.593232295f, - 0.806847554f, -0.590759702f, - 0.808656182f, -0.588281548f, - 0.810457198f, -0.585797857f, - 0.812250587f, -0.583308653f, - 0.814036330f, -0.580813958f, - 0.815814411f, -0.578313796f, - 0.817584813f, -0.575808191f, - 0.819347520f, -0.573297167f, - 0.821102515f, -0.570780746f, - 0.822849781f, -0.568258953f, - 0.824589303f, -0.565731811f, - 0.826321063f, -0.563199344f, - 0.828045045f, -0.560661576f, - 0.829761234f, -0.558118531f, - 0.831469612f, -0.555570233f, - 0.833170165f, -0.553016706f, - 0.834862875f, -0.550457973f, - 0.836547727f, -0.547894059f, - 0.838224706f, -0.545324988f, - 0.839893794f, -0.542750785f, - 0.841554977f, -0.540171473f, - 0.843208240f, -0.537587076f, - 0.844853565f, -0.534997620f, - 0.846490939f, -0.532403128f, - 0.848120345f, -0.529803625f, - 0.849741768f, -0.527199135f, - 0.851355193f, -0.524589683f, - 0.852960605f, -0.521975293f, - 0.854557988f, -0.519355990f, - 0.856147328f, -0.516731799f, - 0.857728610f, -0.514102744f, - 0.859301818f, -0.511468850f, - 0.860866939f, -0.508830143f, - 0.862423956f, -0.506186645f, - 0.863972856f, -0.503538384f, - 0.865513624f, -0.500885383f, - 0.867046246f, -0.498227667f, - 0.868570706f, -0.495565262f, - 0.870086991f, -0.492898192f, - 0.871595087f, -0.490226483f, - 0.873094978f, -0.487550160f, - 0.874586652f, -0.484869248f, - 0.876070094f, -0.482183772f, - 0.877545290f, -0.479493758f, - 0.879012226f, -0.476799230f, - 0.880470889f, -0.474100215f, - 0.881921264f, -0.471396737f, - 0.883363339f, -0.468688822f, - 0.884797098f, -0.465976496f, - 0.886222530f, -0.463259784f, - 0.887639620f, -0.460538711f, - 0.889048356f, -0.457813304f, - 0.890448723f, -0.455083587f, - 0.891840709f, -0.452349587f, - 0.893224301f, -0.449611330f, - 0.894599486f, -0.446868840f, - 0.895966250f, -0.444122145f, - 0.897324581f, -0.441371269f, - 0.898674466f, -0.438616239f, - 0.900015892f, -0.435857080f, - 0.901348847f, -0.433093819f, - 0.902673318f, -0.430326481f, - 0.903989293f, -0.427555093f, - 0.905296759f, -0.424779681f, - 0.906595705f, -0.422000271f, - 0.907886116f, -0.419216888f, - 0.909167983f, -0.416429560f, - 0.910441292f, -0.413638312f, - 0.911706032f, -0.410843171f, - 0.912962190f, -0.408044163f, - 0.914209756f, -0.405241314f, - 0.915448716f, -0.402434651f, - 0.916679060f, -0.399624200f, - 0.917900776f, -0.396809987f, - 0.919113852f, -0.393992040f, - 0.920318277f, -0.391170384f, - 0.921514039f, -0.388345047f, - 0.922701128f, -0.385516054f, - 0.923879533f, -0.382683432f, - 0.925049241f, -0.379847209f, - 0.926210242f, -0.377007410f, - 0.927362526f, -0.374164063f, - 0.928506080f, -0.371317194f, - 0.929640896f, -0.368466830f, - 0.930766961f, -0.365612998f, - 0.931884266f, -0.362755724f, - 0.932992799f, -0.359895037f, - 0.934092550f, -0.357030961f, - 0.935183510f, -0.354163525f, - 0.936265667f, -0.351292756f, - 0.937339012f, -0.348418680f, - 0.938403534f, -0.345541325f, - 0.939459224f, -0.342660717f, - 0.940506071f, -0.339776884f, - 0.941544065f, -0.336889853f, - 0.942573198f, -0.333999651f, - 0.943593458f, -0.331106306f, - 0.944604837f, -0.328209844f, - 0.945607325f, -0.325310292f, - 0.946600913f, -0.322407679f, - 0.947585591f, -0.319502031f, - 0.948561350f, -0.316593376f, - 0.949528181f, -0.313681740f, - 0.950486074f, -0.310767153f, - 0.951435021f, -0.307849640f, - 0.952375013f, -0.304929230f, - 0.953306040f, -0.302005949f, - 0.954228095f, -0.299079826f, - 0.955141168f, -0.296150888f, - 0.956045251f, -0.293219163f, - 0.956940336f, -0.290284677f, - 0.957826413f, -0.287347460f, - 0.958703475f, -0.284407537f, - 0.959571513f, -0.281464938f, - 0.960430519f, -0.278519689f, - 0.961280486f, -0.275571819f, - 0.962121404f, -0.272621355f, - 0.962953267f, -0.269668326f, - 0.963776066f, -0.266712757f, - 0.964589793f, -0.263754679f, - 0.965394442f, -0.260794118f, - 0.966190003f, -0.257831102f, - 0.966976471f, -0.254865660f, - 0.967753837f, -0.251897818f, - 0.968522094f, -0.248927606f, - 0.969281235f, -0.245955050f, - 0.970031253f, -0.242980180f, - 0.970772141f, -0.240003022f, - 0.971503891f, -0.237023606f, - 0.972226497f, -0.234041959f, - 0.972939952f, -0.231058108f, - 0.973644250f, -0.228072083f, - 0.974339383f, -0.225083911f, - 0.975025345f, -0.222093621f, - 0.975702130f, -0.219101240f, - 0.976369731f, -0.216106797f, - 0.977028143f, -0.213110320f, - 0.977677358f, -0.210111837f, - 0.978317371f, -0.207111376f, - 0.978948175f, -0.204108966f, - 0.979569766f, -0.201104635f, - 0.980182136f, -0.198098411f, - 0.980785280f, -0.195090322f, - 0.981379193f, -0.192080397f, - 0.981963869f, -0.189068664f, - 0.982539302f, -0.186055152f, - 0.983105487f, -0.183039888f, - 0.983662419f, -0.180022901f, - 0.984210092f, -0.177004220f, - 0.984748502f, -0.173983873f, - 0.985277642f, -0.170961889f, - 0.985797509f, -0.167938295f, - 0.986308097f, -0.164913120f, - 0.986809402f, -0.161886394f, - 0.987301418f, -0.158858143f, - 0.987784142f, -0.155828398f, - 0.988257568f, -0.152797185f, - 0.988721692f, -0.149764535f, - 0.989176510f, -0.146730474f, - 0.989622017f, -0.143695033f, - 0.990058210f, -0.140658239f, - 0.990485084f, -0.137620122f, - 0.990902635f, -0.134580709f, - 0.991310860f, -0.131540029f, - 0.991709754f, -0.128498111f, - 0.992099313f, -0.125454983f, - 0.992479535f, -0.122410675f, - 0.992850414f, -0.119365215f, - 0.993211949f, -0.116318631f, - 0.993564136f, -0.113270952f, - 0.993906970f, -0.110222207f, - 0.994240449f, -0.107172425f, - 0.994564571f, -0.104121634f, - 0.994879331f, -0.101069863f, - 0.995184727f, -0.098017140f, - 0.995480755f, -0.094963495f, - 0.995767414f, -0.091908956f, - 0.996044701f, -0.088853553f, - 0.996312612f, -0.085797312f, - 0.996571146f, -0.082740265f, - 0.996820299f, -0.079682438f, - 0.997060070f, -0.076623861f, - 0.997290457f, -0.073564564f, - 0.997511456f, -0.070504573f, - 0.997723067f, -0.067443920f, - 0.997925286f, -0.064382631f, - 0.998118113f, -0.061320736f, - 0.998301545f, -0.058258265f, - 0.998475581f, -0.055195244f, - 0.998640218f, -0.052131705f, - 0.998795456f, -0.049067674f, - 0.998941293f, -0.046003182f, - 0.999077728f, -0.042938257f, - 0.999204759f, -0.039872928f, - 0.999322385f, -0.036807223f, - 0.999430605f, -0.033741172f, - 0.999529418f, -0.030674803f, - 0.999618822f, -0.027608146f, - 0.999698819f, -0.024541229f, - 0.999769405f, -0.021474080f, - 0.999830582f, -0.018406730f, - 0.999882347f, -0.015339206f, - 0.999924702f, -0.012271538f, - 0.999957645f, -0.009203755f, - 0.999981175f, -0.006135885f, - 0.999995294f, -0.003067957f -}; - -/** -* \par -* Example code for Floating-point Twiddle factors Generation: -* \par -*
for(i = 0; i< N/; i++)
-* {
-*	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
-*	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are in interleaved fashion -* -*/ -const float32_t twiddleCoef_4096[8192] = { - 1.000000000f, 0.000000000f, - 0.999998823f, 0.001533980f, - 0.999995294f, 0.003067957f, - 0.999989411f, 0.004601926f, - 0.999981175f, 0.006135885f, - 0.999970586f, 0.007669829f, - 0.999957645f, 0.009203755f, - 0.999942350f, 0.010737659f, - 0.999924702f, 0.012271538f, - 0.999904701f, 0.013805389f, - 0.999882347f, 0.015339206f, - 0.999857641f, 0.016872988f, - 0.999830582f, 0.018406730f, - 0.999801170f, 0.019940429f, - 0.999769405f, 0.021474080f, - 0.999735288f, 0.023007681f, - 0.999698819f, 0.024541229f, - 0.999659997f, 0.026074718f, - 0.999618822f, 0.027608146f, - 0.999575296f, 0.029141509f, - 0.999529418f, 0.030674803f, - 0.999481187f, 0.032208025f, - 0.999430605f, 0.033741172f, - 0.999377670f, 0.035274239f, - 0.999322385f, 0.036807223f, - 0.999264747f, 0.038340120f, - 0.999204759f, 0.039872928f, - 0.999142419f, 0.041405641f, - 0.999077728f, 0.042938257f, - 0.999010686f, 0.044470772f, - 0.998941293f, 0.046003182f, - 0.998869550f, 0.047535484f, - 0.998795456f, 0.049067674f, - 0.998719012f, 0.050599749f, - 0.998640218f, 0.052131705f, - 0.998559074f, 0.053663538f, - 0.998475581f, 0.055195244f, - 0.998389737f, 0.056726821f, - 0.998301545f, 0.058258265f, - 0.998211003f, 0.059789571f, - 0.998118113f, 0.061320736f, - 0.998022874f, 0.062851758f, - 0.997925286f, 0.064382631f, - 0.997825350f, 0.065913353f, - 0.997723067f, 0.067443920f, - 0.997618435f, 0.068974328f, - 0.997511456f, 0.070504573f, - 0.997402130f, 0.072034653f, - 0.997290457f, 0.073564564f, - 0.997176437f, 0.075094301f, - 0.997060070f, 0.076623861f, - 0.996941358f, 0.078153242f, - 0.996820299f, 0.079682438f, - 0.996696895f, 0.081211447f, - 0.996571146f, 0.082740265f, - 0.996443051f, 0.084268888f, - 0.996312612f, 0.085797312f, - 0.996179829f, 0.087325535f, - 0.996044701f, 0.088853553f, - 0.995907229f, 0.090381361f, - 0.995767414f, 0.091908956f, - 0.995625256f, 0.093436336f, - 0.995480755f, 0.094963495f, - 0.995333912f, 0.096490431f, - 0.995184727f, 0.098017140f, - 0.995033199f, 0.099543619f, - 0.994879331f, 0.101069863f, - 0.994723121f, 0.102595869f, - 0.994564571f, 0.104121634f, - 0.994403680f, 0.105647154f, - 0.994240449f, 0.107172425f, - 0.994074879f, 0.108697444f, - 0.993906970f, 0.110222207f, - 0.993736722f, 0.111746711f, - 0.993564136f, 0.113270952f, - 0.993389211f, 0.114794927f, - 0.993211949f, 0.116318631f, - 0.993032350f, 0.117842062f, - 0.992850414f, 0.119365215f, - 0.992666142f, 0.120888087f, - 0.992479535f, 0.122410675f, - 0.992290591f, 0.123932975f, - 0.992099313f, 0.125454983f, - 0.991905700f, 0.126976696f, - 0.991709754f, 0.128498111f, - 0.991511473f, 0.130019223f, - 0.991310860f, 0.131540029f, - 0.991107914f, 0.133060525f, - 0.990902635f, 0.134580709f, - 0.990695025f, 0.136100575f, - 0.990485084f, 0.137620122f, - 0.990272812f, 0.139139344f, - 0.990058210f, 0.140658239f, - 0.989841278f, 0.142176804f, - 0.989622017f, 0.143695033f, - 0.989400428f, 0.145212925f, - 0.989176510f, 0.146730474f, - 0.988950265f, 0.148247679f, - 0.988721692f, 0.149764535f, - 0.988490793f, 0.151281038f, - 0.988257568f, 0.152797185f, - 0.988022017f, 0.154312973f, - 0.987784142f, 0.155828398f, - 0.987543942f, 0.157343456f, - 0.987301418f, 0.158858143f, - 0.987056571f, 0.160372457f, - 0.986809402f, 0.161886394f, - 0.986559910f, 0.163399949f, - 0.986308097f, 0.164913120f, - 0.986053963f, 0.166425904f, - 0.985797509f, 0.167938295f, - 0.985538735f, 0.169450291f, - 0.985277642f, 0.170961889f, - 0.985014231f, 0.172473084f, - 0.984748502f, 0.173983873f, - 0.984480455f, 0.175494253f, - 0.984210092f, 0.177004220f, - 0.983937413f, 0.178513771f, - 0.983662419f, 0.180022901f, - 0.983385110f, 0.181531608f, - 0.983105487f, 0.183039888f, - 0.982823551f, 0.184547737f, - 0.982539302f, 0.186055152f, - 0.982252741f, 0.187562129f, - 0.981963869f, 0.189068664f, - 0.981672686f, 0.190574755f, - 0.981379193f, 0.192080397f, - 0.981083391f, 0.193585587f, - 0.980785280f, 0.195090322f, - 0.980484862f, 0.196594598f, - 0.980182136f, 0.198098411f, - 0.979877104f, 0.199601758f, - 0.979569766f, 0.201104635f, - 0.979260123f, 0.202607039f, - 0.978948175f, 0.204108966f, - 0.978633924f, 0.205610413f, - 0.978317371f, 0.207111376f, - 0.977998515f, 0.208611852f, - 0.977677358f, 0.210111837f, - 0.977353900f, 0.211611327f, - 0.977028143f, 0.213110320f, - 0.976700086f, 0.214608811f, - 0.976369731f, 0.216106797f, - 0.976037079f, 0.217604275f, - 0.975702130f, 0.219101240f, - 0.975364885f, 0.220597690f, - 0.975025345f, 0.222093621f, - 0.974683511f, 0.223589029f, - 0.974339383f, 0.225083911f, - 0.973992962f, 0.226578264f, - 0.973644250f, 0.228072083f, - 0.973293246f, 0.229565366f, - 0.972939952f, 0.231058108f, - 0.972584369f, 0.232550307f, - 0.972226497f, 0.234041959f, - 0.971866337f, 0.235533059f, - 0.971503891f, 0.237023606f, - 0.971139158f, 0.238513595f, - 0.970772141f, 0.240003022f, - 0.970402839f, 0.241491885f, - 0.970031253f, 0.242980180f, - 0.969657385f, 0.244467903f, - 0.969281235f, 0.245955050f, - 0.968902805f, 0.247441619f, - 0.968522094f, 0.248927606f, - 0.968139105f, 0.250413007f, - 0.967753837f, 0.251897818f, - 0.967366292f, 0.253382037f, - 0.966976471f, 0.254865660f, - 0.966584374f, 0.256348682f, - 0.966190003f, 0.257831102f, - 0.965793359f, 0.259312915f, - 0.965394442f, 0.260794118f, - 0.964993253f, 0.262274707f, - 0.964589793f, 0.263754679f, - 0.964184064f, 0.265234030f, - 0.963776066f, 0.266712757f, - 0.963365800f, 0.268190857f, - 0.962953267f, 0.269668326f, - 0.962538468f, 0.271145160f, - 0.962121404f, 0.272621355f, - 0.961702077f, 0.274096910f, - 0.961280486f, 0.275571819f, - 0.960856633f, 0.277046080f, - 0.960430519f, 0.278519689f, - 0.960002146f, 0.279992643f, - 0.959571513f, 0.281464938f, - 0.959138622f, 0.282936570f, - 0.958703475f, 0.284407537f, - 0.958266071f, 0.285877835f, - 0.957826413f, 0.287347460f, - 0.957384501f, 0.288816408f, - 0.956940336f, 0.290284677f, - 0.956493919f, 0.291752263f, - 0.956045251f, 0.293219163f, - 0.955594334f, 0.294685372f, - 0.955141168f, 0.296150888f, - 0.954685755f, 0.297615707f, - 0.954228095f, 0.299079826f, - 0.953768190f, 0.300543241f, - 0.953306040f, 0.302005949f, - 0.952841648f, 0.303467947f, - 0.952375013f, 0.304929230f, - 0.951906137f, 0.306389795f, - 0.951435021f, 0.307849640f, - 0.950961666f, 0.309308760f, - 0.950486074f, 0.310767153f, - 0.950008245f, 0.312224814f, - 0.949528181f, 0.313681740f, - 0.949045882f, 0.315137929f, - 0.948561350f, 0.316593376f, - 0.948074586f, 0.318048077f, - 0.947585591f, 0.319502031f, - 0.947094366f, 0.320955232f, - 0.946600913f, 0.322407679f, - 0.946105232f, 0.323859367f, - 0.945607325f, 0.325310292f, - 0.945107193f, 0.326760452f, - 0.944604837f, 0.328209844f, - 0.944100258f, 0.329658463f, - 0.943593458f, 0.331106306f, - 0.943084437f, 0.332553370f, - 0.942573198f, 0.333999651f, - 0.942059740f, 0.335445147f, - 0.941544065f, 0.336889853f, - 0.941026175f, 0.338333767f, - 0.940506071f, 0.339776884f, - 0.939983753f, 0.341219202f, - 0.939459224f, 0.342660717f, - 0.938932484f, 0.344101426f, - 0.938403534f, 0.345541325f, - 0.937872376f, 0.346980411f, - 0.937339012f, 0.348418680f, - 0.936803442f, 0.349856130f, - 0.936265667f, 0.351292756f, - 0.935725689f, 0.352728556f, - 0.935183510f, 0.354163525f, - 0.934639130f, 0.355597662f, - 0.934092550f, 0.357030961f, - 0.933543773f, 0.358463421f, - 0.932992799f, 0.359895037f, - 0.932439629f, 0.361325806f, - 0.931884266f, 0.362755724f, - 0.931326709f, 0.364184790f, - 0.930766961f, 0.365612998f, - 0.930205023f, 0.367040346f, - 0.929640896f, 0.368466830f, - 0.929074581f, 0.369892447f, - 0.928506080f, 0.371317194f, - 0.927935395f, 0.372741067f, - 0.927362526f, 0.374164063f, - 0.926787474f, 0.375586178f, - 0.926210242f, 0.377007410f, - 0.925630831f, 0.378427755f, - 0.925049241f, 0.379847209f, - 0.924465474f, 0.381265769f, - 0.923879533f, 0.382683432f, - 0.923291417f, 0.384100195f, - 0.922701128f, 0.385516054f, - 0.922108669f, 0.386931006f, - 0.921514039f, 0.388345047f, - 0.920917242f, 0.389758174f, - 0.920318277f, 0.391170384f, - 0.919717146f, 0.392581674f, - 0.919113852f, 0.393992040f, - 0.918508394f, 0.395401479f, - 0.917900776f, 0.396809987f, - 0.917290997f, 0.398217562f, - 0.916679060f, 0.399624200f, - 0.916064966f, 0.401029897f, - 0.915448716f, 0.402434651f, - 0.914830312f, 0.403838458f, - 0.914209756f, 0.405241314f, - 0.913587048f, 0.406643217f, - 0.912962190f, 0.408044163f, - 0.912335185f, 0.409444149f, - 0.911706032f, 0.410843171f, - 0.911074734f, 0.412241227f, - 0.910441292f, 0.413638312f, - 0.909805708f, 0.415034424f, - 0.909167983f, 0.416429560f, - 0.908528119f, 0.417823716f, - 0.907886116f, 0.419216888f, - 0.907241978f, 0.420609074f, - 0.906595705f, 0.422000271f, - 0.905947298f, 0.423390474f, - 0.905296759f, 0.424779681f, - 0.904644091f, 0.426167889f, - 0.903989293f, 0.427555093f, - 0.903332368f, 0.428941292f, - 0.902673318f, 0.430326481f, - 0.902012144f, 0.431710658f, - 0.901348847f, 0.433093819f, - 0.900683429f, 0.434475961f, - 0.900015892f, 0.435857080f, - 0.899346237f, 0.437237174f, - 0.898674466f, 0.438616239f, - 0.898000580f, 0.439994271f, - 0.897324581f, 0.441371269f, - 0.896646470f, 0.442747228f, - 0.895966250f, 0.444122145f, - 0.895283921f, 0.445496017f, - 0.894599486f, 0.446868840f, - 0.893912945f, 0.448240612f, - 0.893224301f, 0.449611330f, - 0.892533555f, 0.450980989f, - 0.891840709f, 0.452349587f, - 0.891145765f, 0.453717121f, - 0.890448723f, 0.455083587f, - 0.889749586f, 0.456448982f, - 0.889048356f, 0.457813304f, - 0.888345033f, 0.459176548f, - 0.887639620f, 0.460538711f, - 0.886932119f, 0.461899791f, - 0.886222530f, 0.463259784f, - 0.885510856f, 0.464618686f, - 0.884797098f, 0.465976496f, - 0.884081259f, 0.467333209f, - 0.883363339f, 0.468688822f, - 0.882643340f, 0.470043332f, - 0.881921264f, 0.471396737f, - 0.881197113f, 0.472749032f, - 0.880470889f, 0.474100215f, - 0.879742593f, 0.475450282f, - 0.879012226f, 0.476799230f, - 0.878279792f, 0.478147056f, - 0.877545290f, 0.479493758f, - 0.876808724f, 0.480839331f, - 0.876070094f, 0.482183772f, - 0.875329403f, 0.483527079f, - 0.874586652f, 0.484869248f, - 0.873841843f, 0.486210276f, - 0.873094978f, 0.487550160f, - 0.872346059f, 0.488888897f, - 0.871595087f, 0.490226483f, - 0.870842063f, 0.491562916f, - 0.870086991f, 0.492898192f, - 0.869329871f, 0.494232309f, - 0.868570706f, 0.495565262f, - 0.867809497f, 0.496897049f, - 0.867046246f, 0.498227667f, - 0.866280954f, 0.499557113f, - 0.865513624f, 0.500885383f, - 0.864744258f, 0.502212474f, - 0.863972856f, 0.503538384f, - 0.863199422f, 0.504863109f, - 0.862423956f, 0.506186645f, - 0.861646461f, 0.507508991f, - 0.860866939f, 0.508830143f, - 0.860085390f, 0.510150097f, - 0.859301818f, 0.511468850f, - 0.858516224f, 0.512786401f, - 0.857728610f, 0.514102744f, - 0.856938977f, 0.515417878f, - 0.856147328f, 0.516731799f, - 0.855353665f, 0.518044504f, - 0.854557988f, 0.519355990f, - 0.853760301f, 0.520666254f, - 0.852960605f, 0.521975293f, - 0.852158902f, 0.523283103f, - 0.851355193f, 0.524589683f, - 0.850549481f, 0.525895027f, - 0.849741768f, 0.527199135f, - 0.848932055f, 0.528502002f, - 0.848120345f, 0.529803625f, - 0.847306639f, 0.531104001f, - 0.846490939f, 0.532403128f, - 0.845673247f, 0.533701002f, - 0.844853565f, 0.534997620f, - 0.844031895f, 0.536292979f, - 0.843208240f, 0.537587076f, - 0.842382600f, 0.538879909f, - 0.841554977f, 0.540171473f, - 0.840725375f, 0.541461766f, - 0.839893794f, 0.542750785f, - 0.839060237f, 0.544038527f, - 0.838224706f, 0.545324988f, - 0.837387202f, 0.546610167f, - 0.836547727f, 0.547894059f, - 0.835706284f, 0.549176662f, - 0.834862875f, 0.550457973f, - 0.834017501f, 0.551737988f, - 0.833170165f, 0.553016706f, - 0.832320868f, 0.554294121f, - 0.831469612f, 0.555570233f, - 0.830616400f, 0.556845037f, - 0.829761234f, 0.558118531f, - 0.828904115f, 0.559390712f, - 0.828045045f, 0.560661576f, - 0.827184027f, 0.561931121f, - 0.826321063f, 0.563199344f, - 0.825456154f, 0.564466242f, - 0.824589303f, 0.565731811f, - 0.823720511f, 0.566996049f, - 0.822849781f, 0.568258953f, - 0.821977115f, 0.569520519f, - 0.821102515f, 0.570780746f, - 0.820225983f, 0.572039629f, - 0.819347520f, 0.573297167f, - 0.818467130f, 0.574553355f, - 0.817584813f, 0.575808191f, - 0.816700573f, 0.577061673f, - 0.815814411f, 0.578313796f, - 0.814926329f, 0.579564559f, - 0.814036330f, 0.580813958f, - 0.813144415f, 0.582061990f, - 0.812250587f, 0.583308653f, - 0.811354847f, 0.584553943f, - 0.810457198f, 0.585797857f, - 0.809557642f, 0.587040394f, - 0.808656182f, 0.588281548f, - 0.807752818f, 0.589521319f, - 0.806847554f, 0.590759702f, - 0.805940391f, 0.591996695f, - 0.805031331f, 0.593232295f, - 0.804120377f, 0.594466499f, - 0.803207531f, 0.595699304f, - 0.802292796f, 0.596930708f, - 0.801376172f, 0.598160707f, - 0.800457662f, 0.599389298f, - 0.799537269f, 0.600616479f, - 0.798614995f, 0.601842247f, - 0.797690841f, 0.603066599f, - 0.796764810f, 0.604289531f, - 0.795836905f, 0.605511041f, - 0.794907126f, 0.606731127f, - 0.793975478f, 0.607949785f, - 0.793041960f, 0.609167012f, - 0.792106577f, 0.610382806f, - 0.791169330f, 0.611597164f, - 0.790230221f, 0.612810082f, - 0.789289253f, 0.614021559f, - 0.788346428f, 0.615231591f, - 0.787401747f, 0.616440175f, - 0.786455214f, 0.617647308f, - 0.785506830f, 0.618852988f, - 0.784556597f, 0.620057212f, - 0.783604519f, 0.621259977f, - 0.782650596f, 0.622461279f, - 0.781694832f, 0.623661118f, - 0.780737229f, 0.624859488f, - 0.779777788f, 0.626056388f, - 0.778816512f, 0.627251815f, - 0.777853404f, 0.628445767f, - 0.776888466f, 0.629638239f, - 0.775921699f, 0.630829230f, - 0.774953107f, 0.632018736f, - 0.773982691f, 0.633206755f, - 0.773010453f, 0.634393284f, - 0.772036397f, 0.635578320f, - 0.771060524f, 0.636761861f, - 0.770082837f, 0.637943904f, - 0.769103338f, 0.639124445f, - 0.768122029f, 0.640303482f, - 0.767138912f, 0.641481013f, - 0.766153990f, 0.642657034f, - 0.765167266f, 0.643831543f, - 0.764178741f, 0.645004537f, - 0.763188417f, 0.646176013f, - 0.762196298f, 0.647345969f, - 0.761202385f, 0.648514401f, - 0.760206682f, 0.649681307f, - 0.759209189f, 0.650846685f, - 0.758209910f, 0.652010531f, - 0.757208847f, 0.653172843f, - 0.756206001f, 0.654333618f, - 0.755201377f, 0.655492853f, - 0.754194975f, 0.656650546f, - 0.753186799f, 0.657806693f, - 0.752176850f, 0.658961293f, - 0.751165132f, 0.660114342f, - 0.750151646f, 0.661265838f, - 0.749136395f, 0.662415778f, - 0.748119380f, 0.663564159f, - 0.747100606f, 0.664710978f, - 0.746080074f, 0.665856234f, - 0.745057785f, 0.666999922f, - 0.744033744f, 0.668142041f, - 0.743007952f, 0.669282588f, - 0.741980412f, 0.670421560f, - 0.740951125f, 0.671558955f, - 0.739920095f, 0.672694769f, - 0.738887324f, 0.673829000f, - 0.737852815f, 0.674961646f, - 0.736816569f, 0.676092704f, - 0.735778589f, 0.677222170f, - 0.734738878f, 0.678350043f, - 0.733697438f, 0.679476320f, - 0.732654272f, 0.680600998f, - 0.731609381f, 0.681724074f, - 0.730562769f, 0.682845546f, - 0.729514438f, 0.683965412f, - 0.728464390f, 0.685083668f, - 0.727412629f, 0.686200312f, - 0.726359155f, 0.687315341f, - 0.725303972f, 0.688428753f, - 0.724247083f, 0.689540545f, - 0.723188489f, 0.690650714f, - 0.722128194f, 0.691759258f, - 0.721066199f, 0.692866175f, - 0.720002508f, 0.693971461f, - 0.718937122f, 0.695075114f, - 0.717870045f, 0.696177131f, - 0.716801279f, 0.697277511f, - 0.715730825f, 0.698376249f, - 0.714658688f, 0.699473345f, - 0.713584869f, 0.700568794f, - 0.712509371f, 0.701662595f, - 0.711432196f, 0.702754744f, - 0.710353347f, 0.703845241f, - 0.709272826f, 0.704934080f, - 0.708190637f, 0.706021261f, - 0.707106781f, 0.707106781f, - 0.706021261f, 0.708190637f, - 0.704934080f, 0.709272826f, - 0.703845241f, 0.710353347f, - 0.702754744f, 0.711432196f, - 0.701662595f, 0.712509371f, - 0.700568794f, 0.713584869f, - 0.699473345f, 0.714658688f, - 0.698376249f, 0.715730825f, - 0.697277511f, 0.716801279f, - 0.696177131f, 0.717870045f, - 0.695075114f, 0.718937122f, - 0.693971461f, 0.720002508f, - 0.692866175f, 0.721066199f, - 0.691759258f, 0.722128194f, - 0.690650714f, 0.723188489f, - 0.689540545f, 0.724247083f, - 0.688428753f, 0.725303972f, - 0.687315341f, 0.726359155f, - 0.686200312f, 0.727412629f, - 0.685083668f, 0.728464390f, - 0.683965412f, 0.729514438f, - 0.682845546f, 0.730562769f, - 0.681724074f, 0.731609381f, - 0.680600998f, 0.732654272f, - 0.679476320f, 0.733697438f, - 0.678350043f, 0.734738878f, - 0.677222170f, 0.735778589f, - 0.676092704f, 0.736816569f, - 0.674961646f, 0.737852815f, - 0.673829000f, 0.738887324f, - 0.672694769f, 0.739920095f, - 0.671558955f, 0.740951125f, - 0.670421560f, 0.741980412f, - 0.669282588f, 0.743007952f, - 0.668142041f, 0.744033744f, - 0.666999922f, 0.745057785f, - 0.665856234f, 0.746080074f, - 0.664710978f, 0.747100606f, - 0.663564159f, 0.748119380f, - 0.662415778f, 0.749136395f, - 0.661265838f, 0.750151646f, - 0.660114342f, 0.751165132f, - 0.658961293f, 0.752176850f, - 0.657806693f, 0.753186799f, - 0.656650546f, 0.754194975f, - 0.655492853f, 0.755201377f, - 0.654333618f, 0.756206001f, - 0.653172843f, 0.757208847f, - 0.652010531f, 0.758209910f, - 0.650846685f, 0.759209189f, - 0.649681307f, 0.760206682f, - 0.648514401f, 0.761202385f, - 0.647345969f, 0.762196298f, - 0.646176013f, 0.763188417f, - 0.645004537f, 0.764178741f, - 0.643831543f, 0.765167266f, - 0.642657034f, 0.766153990f, - 0.641481013f, 0.767138912f, - 0.640303482f, 0.768122029f, - 0.639124445f, 0.769103338f, - 0.637943904f, 0.770082837f, - 0.636761861f, 0.771060524f, - 0.635578320f, 0.772036397f, - 0.634393284f, 0.773010453f, - 0.633206755f, 0.773982691f, - 0.632018736f, 0.774953107f, - 0.630829230f, 0.775921699f, - 0.629638239f, 0.776888466f, - 0.628445767f, 0.777853404f, - 0.627251815f, 0.778816512f, - 0.626056388f, 0.779777788f, - 0.624859488f, 0.780737229f, - 0.623661118f, 0.781694832f, - 0.622461279f, 0.782650596f, - 0.621259977f, 0.783604519f, - 0.620057212f, 0.784556597f, - 0.618852988f, 0.785506830f, - 0.617647308f, 0.786455214f, - 0.616440175f, 0.787401747f, - 0.615231591f, 0.788346428f, - 0.614021559f, 0.789289253f, - 0.612810082f, 0.790230221f, - 0.611597164f, 0.791169330f, - 0.610382806f, 0.792106577f, - 0.609167012f, 0.793041960f, - 0.607949785f, 0.793975478f, - 0.606731127f, 0.794907126f, - 0.605511041f, 0.795836905f, - 0.604289531f, 0.796764810f, - 0.603066599f, 0.797690841f, - 0.601842247f, 0.798614995f, - 0.600616479f, 0.799537269f, - 0.599389298f, 0.800457662f, - 0.598160707f, 0.801376172f, - 0.596930708f, 0.802292796f, - 0.595699304f, 0.803207531f, - 0.594466499f, 0.804120377f, - 0.593232295f, 0.805031331f, - 0.591996695f, 0.805940391f, - 0.590759702f, 0.806847554f, - 0.589521319f, 0.807752818f, - 0.588281548f, 0.808656182f, - 0.587040394f, 0.809557642f, - 0.585797857f, 0.810457198f, - 0.584553943f, 0.811354847f, - 0.583308653f, 0.812250587f, - 0.582061990f, 0.813144415f, - 0.580813958f, 0.814036330f, - 0.579564559f, 0.814926329f, - 0.578313796f, 0.815814411f, - 0.577061673f, 0.816700573f, - 0.575808191f, 0.817584813f, - 0.574553355f, 0.818467130f, - 0.573297167f, 0.819347520f, - 0.572039629f, 0.820225983f, - 0.570780746f, 0.821102515f, - 0.569520519f, 0.821977115f, - 0.568258953f, 0.822849781f, - 0.566996049f, 0.823720511f, - 0.565731811f, 0.824589303f, - 0.564466242f, 0.825456154f, - 0.563199344f, 0.826321063f, - 0.561931121f, 0.827184027f, - 0.560661576f, 0.828045045f, - 0.559390712f, 0.828904115f, - 0.558118531f, 0.829761234f, - 0.556845037f, 0.830616400f, - 0.555570233f, 0.831469612f, - 0.554294121f, 0.832320868f, - 0.553016706f, 0.833170165f, - 0.551737988f, 0.834017501f, - 0.550457973f, 0.834862875f, - 0.549176662f, 0.835706284f, - 0.547894059f, 0.836547727f, - 0.546610167f, 0.837387202f, - 0.545324988f, 0.838224706f, - 0.544038527f, 0.839060237f, - 0.542750785f, 0.839893794f, - 0.541461766f, 0.840725375f, - 0.540171473f, 0.841554977f, - 0.538879909f, 0.842382600f, - 0.537587076f, 0.843208240f, - 0.536292979f, 0.844031895f, - 0.534997620f, 0.844853565f, - 0.533701002f, 0.845673247f, - 0.532403128f, 0.846490939f, - 0.531104001f, 0.847306639f, - 0.529803625f, 0.848120345f, - 0.528502002f, 0.848932055f, - 0.527199135f, 0.849741768f, - 0.525895027f, 0.850549481f, - 0.524589683f, 0.851355193f, - 0.523283103f, 0.852158902f, - 0.521975293f, 0.852960605f, - 0.520666254f, 0.853760301f, - 0.519355990f, 0.854557988f, - 0.518044504f, 0.855353665f, - 0.516731799f, 0.856147328f, - 0.515417878f, 0.856938977f, - 0.514102744f, 0.857728610f, - 0.512786401f, 0.858516224f, - 0.511468850f, 0.859301818f, - 0.510150097f, 0.860085390f, - 0.508830143f, 0.860866939f, - 0.507508991f, 0.861646461f, - 0.506186645f, 0.862423956f, - 0.504863109f, 0.863199422f, - 0.503538384f, 0.863972856f, - 0.502212474f, 0.864744258f, - 0.500885383f, 0.865513624f, - 0.499557113f, 0.866280954f, - 0.498227667f, 0.867046246f, - 0.496897049f, 0.867809497f, - 0.495565262f, 0.868570706f, - 0.494232309f, 0.869329871f, - 0.492898192f, 0.870086991f, - 0.491562916f, 0.870842063f, - 0.490226483f, 0.871595087f, - 0.488888897f, 0.872346059f, - 0.487550160f, 0.873094978f, - 0.486210276f, 0.873841843f, - 0.484869248f, 0.874586652f, - 0.483527079f, 0.875329403f, - 0.482183772f, 0.876070094f, - 0.480839331f, 0.876808724f, - 0.479493758f, 0.877545290f, - 0.478147056f, 0.878279792f, - 0.476799230f, 0.879012226f, - 0.475450282f, 0.879742593f, - 0.474100215f, 0.880470889f, - 0.472749032f, 0.881197113f, - 0.471396737f, 0.881921264f, - 0.470043332f, 0.882643340f, - 0.468688822f, 0.883363339f, - 0.467333209f, 0.884081259f, - 0.465976496f, 0.884797098f, - 0.464618686f, 0.885510856f, - 0.463259784f, 0.886222530f, - 0.461899791f, 0.886932119f, - 0.460538711f, 0.887639620f, - 0.459176548f, 0.888345033f, - 0.457813304f, 0.889048356f, - 0.456448982f, 0.889749586f, - 0.455083587f, 0.890448723f, - 0.453717121f, 0.891145765f, - 0.452349587f, 0.891840709f, - 0.450980989f, 0.892533555f, - 0.449611330f, 0.893224301f, - 0.448240612f, 0.893912945f, - 0.446868840f, 0.894599486f, - 0.445496017f, 0.895283921f, - 0.444122145f, 0.895966250f, - 0.442747228f, 0.896646470f, - 0.441371269f, 0.897324581f, - 0.439994271f, 0.898000580f, - 0.438616239f, 0.898674466f, - 0.437237174f, 0.899346237f, - 0.435857080f, 0.900015892f, - 0.434475961f, 0.900683429f, - 0.433093819f, 0.901348847f, - 0.431710658f, 0.902012144f, - 0.430326481f, 0.902673318f, - 0.428941292f, 0.903332368f, - 0.427555093f, 0.903989293f, - 0.426167889f, 0.904644091f, - 0.424779681f, 0.905296759f, - 0.423390474f, 0.905947298f, - 0.422000271f, 0.906595705f, - 0.420609074f, 0.907241978f, - 0.419216888f, 0.907886116f, - 0.417823716f, 0.908528119f, - 0.416429560f, 0.909167983f, - 0.415034424f, 0.909805708f, - 0.413638312f, 0.910441292f, - 0.412241227f, 0.911074734f, - 0.410843171f, 0.911706032f, - 0.409444149f, 0.912335185f, - 0.408044163f, 0.912962190f, - 0.406643217f, 0.913587048f, - 0.405241314f, 0.914209756f, - 0.403838458f, 0.914830312f, - 0.402434651f, 0.915448716f, - 0.401029897f, 0.916064966f, - 0.399624200f, 0.916679060f, - 0.398217562f, 0.917290997f, - 0.396809987f, 0.917900776f, - 0.395401479f, 0.918508394f, - 0.393992040f, 0.919113852f, - 0.392581674f, 0.919717146f, - 0.391170384f, 0.920318277f, - 0.389758174f, 0.920917242f, - 0.388345047f, 0.921514039f, - 0.386931006f, 0.922108669f, - 0.385516054f, 0.922701128f, - 0.384100195f, 0.923291417f, - 0.382683432f, 0.923879533f, - 0.381265769f, 0.924465474f, - 0.379847209f, 0.925049241f, - 0.378427755f, 0.925630831f, - 0.377007410f, 0.926210242f, - 0.375586178f, 0.926787474f, - 0.374164063f, 0.927362526f, - 0.372741067f, 0.927935395f, - 0.371317194f, 0.928506080f, - 0.369892447f, 0.929074581f, - 0.368466830f, 0.929640896f, - 0.367040346f, 0.930205023f, - 0.365612998f, 0.930766961f, - 0.364184790f, 0.931326709f, - 0.362755724f, 0.931884266f, - 0.361325806f, 0.932439629f, - 0.359895037f, 0.932992799f, - 0.358463421f, 0.933543773f, - 0.357030961f, 0.934092550f, - 0.355597662f, 0.934639130f, - 0.354163525f, 0.935183510f, - 0.352728556f, 0.935725689f, - 0.351292756f, 0.936265667f, - 0.349856130f, 0.936803442f, - 0.348418680f, 0.937339012f, - 0.346980411f, 0.937872376f, - 0.345541325f, 0.938403534f, - 0.344101426f, 0.938932484f, - 0.342660717f, 0.939459224f, - 0.341219202f, 0.939983753f, - 0.339776884f, 0.940506071f, - 0.338333767f, 0.941026175f, - 0.336889853f, 0.941544065f, - 0.335445147f, 0.942059740f, - 0.333999651f, 0.942573198f, - 0.332553370f, 0.943084437f, - 0.331106306f, 0.943593458f, - 0.329658463f, 0.944100258f, - 0.328209844f, 0.944604837f, - 0.326760452f, 0.945107193f, - 0.325310292f, 0.945607325f, - 0.323859367f, 0.946105232f, - 0.322407679f, 0.946600913f, - 0.320955232f, 0.947094366f, - 0.319502031f, 0.947585591f, - 0.318048077f, 0.948074586f, - 0.316593376f, 0.948561350f, - 0.315137929f, 0.949045882f, - 0.313681740f, 0.949528181f, - 0.312224814f, 0.950008245f, - 0.310767153f, 0.950486074f, - 0.309308760f, 0.950961666f, - 0.307849640f, 0.951435021f, - 0.306389795f, 0.951906137f, - 0.304929230f, 0.952375013f, - 0.303467947f, 0.952841648f, - 0.302005949f, 0.953306040f, - 0.300543241f, 0.953768190f, - 0.299079826f, 0.954228095f, - 0.297615707f, 0.954685755f, - 0.296150888f, 0.955141168f, - 0.294685372f, 0.955594334f, - 0.293219163f, 0.956045251f, - 0.291752263f, 0.956493919f, - 0.290284677f, 0.956940336f, - 0.288816408f, 0.957384501f, - 0.287347460f, 0.957826413f, - 0.285877835f, 0.958266071f, - 0.284407537f, 0.958703475f, - 0.282936570f, 0.959138622f, - 0.281464938f, 0.959571513f, - 0.279992643f, 0.960002146f, - 0.278519689f, 0.960430519f, - 0.277046080f, 0.960856633f, - 0.275571819f, 0.961280486f, - 0.274096910f, 0.961702077f, - 0.272621355f, 0.962121404f, - 0.271145160f, 0.962538468f, - 0.269668326f, 0.962953267f, - 0.268190857f, 0.963365800f, - 0.266712757f, 0.963776066f, - 0.265234030f, 0.964184064f, - 0.263754679f, 0.964589793f, - 0.262274707f, 0.964993253f, - 0.260794118f, 0.965394442f, - 0.259312915f, 0.965793359f, - 0.257831102f, 0.966190003f, - 0.256348682f, 0.966584374f, - 0.254865660f, 0.966976471f, - 0.253382037f, 0.967366292f, - 0.251897818f, 0.967753837f, - 0.250413007f, 0.968139105f, - 0.248927606f, 0.968522094f, - 0.247441619f, 0.968902805f, - 0.245955050f, 0.969281235f, - 0.244467903f, 0.969657385f, - 0.242980180f, 0.970031253f, - 0.241491885f, 0.970402839f, - 0.240003022f, 0.970772141f, - 0.238513595f, 0.971139158f, - 0.237023606f, 0.971503891f, - 0.235533059f, 0.971866337f, - 0.234041959f, 0.972226497f, - 0.232550307f, 0.972584369f, - 0.231058108f, 0.972939952f, - 0.229565366f, 0.973293246f, - 0.228072083f, 0.973644250f, - 0.226578264f, 0.973992962f, - 0.225083911f, 0.974339383f, - 0.223589029f, 0.974683511f, - 0.222093621f, 0.975025345f, - 0.220597690f, 0.975364885f, - 0.219101240f, 0.975702130f, - 0.217604275f, 0.976037079f, - 0.216106797f, 0.976369731f, - 0.214608811f, 0.976700086f, - 0.213110320f, 0.977028143f, - 0.211611327f, 0.977353900f, - 0.210111837f, 0.977677358f, - 0.208611852f, 0.977998515f, - 0.207111376f, 0.978317371f, - 0.205610413f, 0.978633924f, - 0.204108966f, 0.978948175f, - 0.202607039f, 0.979260123f, - 0.201104635f, 0.979569766f, - 0.199601758f, 0.979877104f, - 0.198098411f, 0.980182136f, - 0.196594598f, 0.980484862f, - 0.195090322f, 0.980785280f, - 0.193585587f, 0.981083391f, - 0.192080397f, 0.981379193f, - 0.190574755f, 0.981672686f, - 0.189068664f, 0.981963869f, - 0.187562129f, 0.982252741f, - 0.186055152f, 0.982539302f, - 0.184547737f, 0.982823551f, - 0.183039888f, 0.983105487f, - 0.181531608f, 0.983385110f, - 0.180022901f, 0.983662419f, - 0.178513771f, 0.983937413f, - 0.177004220f, 0.984210092f, - 0.175494253f, 0.984480455f, - 0.173983873f, 0.984748502f, - 0.172473084f, 0.985014231f, - 0.170961889f, 0.985277642f, - 0.169450291f, 0.985538735f, - 0.167938295f, 0.985797509f, - 0.166425904f, 0.986053963f, - 0.164913120f, 0.986308097f, - 0.163399949f, 0.986559910f, - 0.161886394f, 0.986809402f, - 0.160372457f, 0.987056571f, - 0.158858143f, 0.987301418f, - 0.157343456f, 0.987543942f, - 0.155828398f, 0.987784142f, - 0.154312973f, 0.988022017f, - 0.152797185f, 0.988257568f, - 0.151281038f, 0.988490793f, - 0.149764535f, 0.988721692f, - 0.148247679f, 0.988950265f, - 0.146730474f, 0.989176510f, - 0.145212925f, 0.989400428f, - 0.143695033f, 0.989622017f, - 0.142176804f, 0.989841278f, - 0.140658239f, 0.990058210f, - 0.139139344f, 0.990272812f, - 0.137620122f, 0.990485084f, - 0.136100575f, 0.990695025f, - 0.134580709f, 0.990902635f, - 0.133060525f, 0.991107914f, - 0.131540029f, 0.991310860f, - 0.130019223f, 0.991511473f, - 0.128498111f, 0.991709754f, - 0.126976696f, 0.991905700f, - 0.125454983f, 0.992099313f, - 0.123932975f, 0.992290591f, - 0.122410675f, 0.992479535f, - 0.120888087f, 0.992666142f, - 0.119365215f, 0.992850414f, - 0.117842062f, 0.993032350f, - 0.116318631f, 0.993211949f, - 0.114794927f, 0.993389211f, - 0.113270952f, 0.993564136f, - 0.111746711f, 0.993736722f, - 0.110222207f, 0.993906970f, - 0.108697444f, 0.994074879f, - 0.107172425f, 0.994240449f, - 0.105647154f, 0.994403680f, - 0.104121634f, 0.994564571f, - 0.102595869f, 0.994723121f, - 0.101069863f, 0.994879331f, - 0.099543619f, 0.995033199f, - 0.098017140f, 0.995184727f, - 0.096490431f, 0.995333912f, - 0.094963495f, 0.995480755f, - 0.093436336f, 0.995625256f, - 0.091908956f, 0.995767414f, - 0.090381361f, 0.995907229f, - 0.088853553f, 0.996044701f, - 0.087325535f, 0.996179829f, - 0.085797312f, 0.996312612f, - 0.084268888f, 0.996443051f, - 0.082740265f, 0.996571146f, - 0.081211447f, 0.996696895f, - 0.079682438f, 0.996820299f, - 0.078153242f, 0.996941358f, - 0.076623861f, 0.997060070f, - 0.075094301f, 0.997176437f, - 0.073564564f, 0.997290457f, - 0.072034653f, 0.997402130f, - 0.070504573f, 0.997511456f, - 0.068974328f, 0.997618435f, - 0.067443920f, 0.997723067f, - 0.065913353f, 0.997825350f, - 0.064382631f, 0.997925286f, - 0.062851758f, 0.998022874f, - 0.061320736f, 0.998118113f, - 0.059789571f, 0.998211003f, - 0.058258265f, 0.998301545f, - 0.056726821f, 0.998389737f, - 0.055195244f, 0.998475581f, - 0.053663538f, 0.998559074f, - 0.052131705f, 0.998640218f, - 0.050599749f, 0.998719012f, - 0.049067674f, 0.998795456f, - 0.047535484f, 0.998869550f, - 0.046003182f, 0.998941293f, - 0.044470772f, 0.999010686f, - 0.042938257f, 0.999077728f, - 0.041405641f, 0.999142419f, - 0.039872928f, 0.999204759f, - 0.038340120f, 0.999264747f, - 0.036807223f, 0.999322385f, - 0.035274239f, 0.999377670f, - 0.033741172f, 0.999430605f, - 0.032208025f, 0.999481187f, - 0.030674803f, 0.999529418f, - 0.029141509f, 0.999575296f, - 0.027608146f, 0.999618822f, - 0.026074718f, 0.999659997f, - 0.024541229f, 0.999698819f, - 0.023007681f, 0.999735288f, - 0.021474080f, 0.999769405f, - 0.019940429f, 0.999801170f, - 0.018406730f, 0.999830582f, - 0.016872988f, 0.999857641f, - 0.015339206f, 0.999882347f, - 0.013805389f, 0.999904701f, - 0.012271538f, 0.999924702f, - 0.010737659f, 0.999942350f, - 0.009203755f, 0.999957645f, - 0.007669829f, 0.999970586f, - 0.006135885f, 0.999981175f, - 0.004601926f, 0.999989411f, - 0.003067957f, 0.999995294f, - 0.001533980f, 0.999998823f, - 0.000000000f, 1.000000000f, - -0.001533980f, 0.999998823f, - -0.003067957f, 0.999995294f, - -0.004601926f, 0.999989411f, - -0.006135885f, 0.999981175f, - -0.007669829f, 0.999970586f, - -0.009203755f, 0.999957645f, - -0.010737659f, 0.999942350f, - -0.012271538f, 0.999924702f, - -0.013805389f, 0.999904701f, - -0.015339206f, 0.999882347f, - -0.016872988f, 0.999857641f, - -0.018406730f, 0.999830582f, - -0.019940429f, 0.999801170f, - -0.021474080f, 0.999769405f, - -0.023007681f, 0.999735288f, - -0.024541229f, 0.999698819f, - -0.026074718f, 0.999659997f, - -0.027608146f, 0.999618822f, - -0.029141509f, 0.999575296f, - -0.030674803f, 0.999529418f, - -0.032208025f, 0.999481187f, - -0.033741172f, 0.999430605f, - -0.035274239f, 0.999377670f, - -0.036807223f, 0.999322385f, - -0.038340120f, 0.999264747f, - -0.039872928f, 0.999204759f, - -0.041405641f, 0.999142419f, - -0.042938257f, 0.999077728f, - -0.044470772f, 0.999010686f, - -0.046003182f, 0.998941293f, - -0.047535484f, 0.998869550f, - -0.049067674f, 0.998795456f, - -0.050599749f, 0.998719012f, - -0.052131705f, 0.998640218f, - -0.053663538f, 0.998559074f, - -0.055195244f, 0.998475581f, - -0.056726821f, 0.998389737f, - -0.058258265f, 0.998301545f, - -0.059789571f, 0.998211003f, - -0.061320736f, 0.998118113f, - -0.062851758f, 0.998022874f, - -0.064382631f, 0.997925286f, - -0.065913353f, 0.997825350f, - -0.067443920f, 0.997723067f, - -0.068974328f, 0.997618435f, - -0.070504573f, 0.997511456f, - -0.072034653f, 0.997402130f, - -0.073564564f, 0.997290457f, - -0.075094301f, 0.997176437f, - -0.076623861f, 0.997060070f, - -0.078153242f, 0.996941358f, - -0.079682438f, 0.996820299f, - -0.081211447f, 0.996696895f, - -0.082740265f, 0.996571146f, - -0.084268888f, 0.996443051f, - -0.085797312f, 0.996312612f, - -0.087325535f, 0.996179829f, - -0.088853553f, 0.996044701f, - -0.090381361f, 0.995907229f, - -0.091908956f, 0.995767414f, - -0.093436336f, 0.995625256f, - -0.094963495f, 0.995480755f, - -0.096490431f, 0.995333912f, - -0.098017140f, 0.995184727f, - -0.099543619f, 0.995033199f, - -0.101069863f, 0.994879331f, - -0.102595869f, 0.994723121f, - -0.104121634f, 0.994564571f, - -0.105647154f, 0.994403680f, - -0.107172425f, 0.994240449f, - -0.108697444f, 0.994074879f, - -0.110222207f, 0.993906970f, - -0.111746711f, 0.993736722f, - -0.113270952f, 0.993564136f, - -0.114794927f, 0.993389211f, - -0.116318631f, 0.993211949f, - -0.117842062f, 0.993032350f, - -0.119365215f, 0.992850414f, - -0.120888087f, 0.992666142f, - -0.122410675f, 0.992479535f, - -0.123932975f, 0.992290591f, - -0.125454983f, 0.992099313f, - -0.126976696f, 0.991905700f, - -0.128498111f, 0.991709754f, - -0.130019223f, 0.991511473f, - -0.131540029f, 0.991310860f, - -0.133060525f, 0.991107914f, - -0.134580709f, 0.990902635f, - -0.136100575f, 0.990695025f, - -0.137620122f, 0.990485084f, - -0.139139344f, 0.990272812f, - -0.140658239f, 0.990058210f, - -0.142176804f, 0.989841278f, - -0.143695033f, 0.989622017f, - -0.145212925f, 0.989400428f, - -0.146730474f, 0.989176510f, - -0.148247679f, 0.988950265f, - -0.149764535f, 0.988721692f, - -0.151281038f, 0.988490793f, - -0.152797185f, 0.988257568f, - -0.154312973f, 0.988022017f, - -0.155828398f, 0.987784142f, - -0.157343456f, 0.987543942f, - -0.158858143f, 0.987301418f, - -0.160372457f, 0.987056571f, - -0.161886394f, 0.986809402f, - -0.163399949f, 0.986559910f, - -0.164913120f, 0.986308097f, - -0.166425904f, 0.986053963f, - -0.167938295f, 0.985797509f, - -0.169450291f, 0.985538735f, - -0.170961889f, 0.985277642f, - -0.172473084f, 0.985014231f, - -0.173983873f, 0.984748502f, - -0.175494253f, 0.984480455f, - -0.177004220f, 0.984210092f, - -0.178513771f, 0.983937413f, - -0.180022901f, 0.983662419f, - -0.181531608f, 0.983385110f, - -0.183039888f, 0.983105487f, - -0.184547737f, 0.982823551f, - -0.186055152f, 0.982539302f, - -0.187562129f, 0.982252741f, - -0.189068664f, 0.981963869f, - -0.190574755f, 0.981672686f, - -0.192080397f, 0.981379193f, - -0.193585587f, 0.981083391f, - -0.195090322f, 0.980785280f, - -0.196594598f, 0.980484862f, - -0.198098411f, 0.980182136f, - -0.199601758f, 0.979877104f, - -0.201104635f, 0.979569766f, - -0.202607039f, 0.979260123f, - -0.204108966f, 0.978948175f, - -0.205610413f, 0.978633924f, - -0.207111376f, 0.978317371f, - -0.208611852f, 0.977998515f, - -0.210111837f, 0.977677358f, - -0.211611327f, 0.977353900f, - -0.213110320f, 0.977028143f, - -0.214608811f, 0.976700086f, - -0.216106797f, 0.976369731f, - -0.217604275f, 0.976037079f, - -0.219101240f, 0.975702130f, - -0.220597690f, 0.975364885f, - -0.222093621f, 0.975025345f, - -0.223589029f, 0.974683511f, - -0.225083911f, 0.974339383f, - -0.226578264f, 0.973992962f, - -0.228072083f, 0.973644250f, - -0.229565366f, 0.973293246f, - -0.231058108f, 0.972939952f, - -0.232550307f, 0.972584369f, - -0.234041959f, 0.972226497f, - -0.235533059f, 0.971866337f, - -0.237023606f, 0.971503891f, - -0.238513595f, 0.971139158f, - -0.240003022f, 0.970772141f, - -0.241491885f, 0.970402839f, - -0.242980180f, 0.970031253f, - -0.244467903f, 0.969657385f, - -0.245955050f, 0.969281235f, - -0.247441619f, 0.968902805f, - -0.248927606f, 0.968522094f, - -0.250413007f, 0.968139105f, - -0.251897818f, 0.967753837f, - -0.253382037f, 0.967366292f, - -0.254865660f, 0.966976471f, - -0.256348682f, 0.966584374f, - -0.257831102f, 0.966190003f, - -0.259312915f, 0.965793359f, - -0.260794118f, 0.965394442f, - -0.262274707f, 0.964993253f, - -0.263754679f, 0.964589793f, - -0.265234030f, 0.964184064f, - -0.266712757f, 0.963776066f, - -0.268190857f, 0.963365800f, - -0.269668326f, 0.962953267f, - -0.271145160f, 0.962538468f, - -0.272621355f, 0.962121404f, - -0.274096910f, 0.961702077f, - -0.275571819f, 0.961280486f, - -0.277046080f, 0.960856633f, - -0.278519689f, 0.960430519f, - -0.279992643f, 0.960002146f, - -0.281464938f, 0.959571513f, - -0.282936570f, 0.959138622f, - -0.284407537f, 0.958703475f, - -0.285877835f, 0.958266071f, - -0.287347460f, 0.957826413f, - -0.288816408f, 0.957384501f, - -0.290284677f, 0.956940336f, - -0.291752263f, 0.956493919f, - -0.293219163f, 0.956045251f, - -0.294685372f, 0.955594334f, - -0.296150888f, 0.955141168f, - -0.297615707f, 0.954685755f, - -0.299079826f, 0.954228095f, - -0.300543241f, 0.953768190f, - -0.302005949f, 0.953306040f, - -0.303467947f, 0.952841648f, - -0.304929230f, 0.952375013f, - -0.306389795f, 0.951906137f, - -0.307849640f, 0.951435021f, - -0.309308760f, 0.950961666f, - -0.310767153f, 0.950486074f, - -0.312224814f, 0.950008245f, - -0.313681740f, 0.949528181f, - -0.315137929f, 0.949045882f, - -0.316593376f, 0.948561350f, - -0.318048077f, 0.948074586f, - -0.319502031f, 0.947585591f, - -0.320955232f, 0.947094366f, - -0.322407679f, 0.946600913f, - -0.323859367f, 0.946105232f, - -0.325310292f, 0.945607325f, - -0.326760452f, 0.945107193f, - -0.328209844f, 0.944604837f, - -0.329658463f, 0.944100258f, - -0.331106306f, 0.943593458f, - -0.332553370f, 0.943084437f, - -0.333999651f, 0.942573198f, - -0.335445147f, 0.942059740f, - -0.336889853f, 0.941544065f, - -0.338333767f, 0.941026175f, - -0.339776884f, 0.940506071f, - -0.341219202f, 0.939983753f, - -0.342660717f, 0.939459224f, - -0.344101426f, 0.938932484f, - -0.345541325f, 0.938403534f, - -0.346980411f, 0.937872376f, - -0.348418680f, 0.937339012f, - -0.349856130f, 0.936803442f, - -0.351292756f, 0.936265667f, - -0.352728556f, 0.935725689f, - -0.354163525f, 0.935183510f, - -0.355597662f, 0.934639130f, - -0.357030961f, 0.934092550f, - -0.358463421f, 0.933543773f, - -0.359895037f, 0.932992799f, - -0.361325806f, 0.932439629f, - -0.362755724f, 0.931884266f, - -0.364184790f, 0.931326709f, - -0.365612998f, 0.930766961f, - -0.367040346f, 0.930205023f, - -0.368466830f, 0.929640896f, - -0.369892447f, 0.929074581f, - -0.371317194f, 0.928506080f, - -0.372741067f, 0.927935395f, - -0.374164063f, 0.927362526f, - -0.375586178f, 0.926787474f, - -0.377007410f, 0.926210242f, - -0.378427755f, 0.925630831f, - -0.379847209f, 0.925049241f, - -0.381265769f, 0.924465474f, - -0.382683432f, 0.923879533f, - -0.384100195f, 0.923291417f, - -0.385516054f, 0.922701128f, - -0.386931006f, 0.922108669f, - -0.388345047f, 0.921514039f, - -0.389758174f, 0.920917242f, - -0.391170384f, 0.920318277f, - -0.392581674f, 0.919717146f, - -0.393992040f, 0.919113852f, - -0.395401479f, 0.918508394f, - -0.396809987f, 0.917900776f, - -0.398217562f, 0.917290997f, - -0.399624200f, 0.916679060f, - -0.401029897f, 0.916064966f, - -0.402434651f, 0.915448716f, - -0.403838458f, 0.914830312f, - -0.405241314f, 0.914209756f, - -0.406643217f, 0.913587048f, - -0.408044163f, 0.912962190f, - -0.409444149f, 0.912335185f, - -0.410843171f, 0.911706032f, - -0.412241227f, 0.911074734f, - -0.413638312f, 0.910441292f, - -0.415034424f, 0.909805708f, - -0.416429560f, 0.909167983f, - -0.417823716f, 0.908528119f, - -0.419216888f, 0.907886116f, - -0.420609074f, 0.907241978f, - -0.422000271f, 0.906595705f, - -0.423390474f, 0.905947298f, - -0.424779681f, 0.905296759f, - -0.426167889f, 0.904644091f, - -0.427555093f, 0.903989293f, - -0.428941292f, 0.903332368f, - -0.430326481f, 0.902673318f, - -0.431710658f, 0.902012144f, - -0.433093819f, 0.901348847f, - -0.434475961f, 0.900683429f, - -0.435857080f, 0.900015892f, - -0.437237174f, 0.899346237f, - -0.438616239f, 0.898674466f, - -0.439994271f, 0.898000580f, - -0.441371269f, 0.897324581f, - -0.442747228f, 0.896646470f, - -0.444122145f, 0.895966250f, - -0.445496017f, 0.895283921f, - -0.446868840f, 0.894599486f, - -0.448240612f, 0.893912945f, - -0.449611330f, 0.893224301f, - -0.450980989f, 0.892533555f, - -0.452349587f, 0.891840709f, - -0.453717121f, 0.891145765f, - -0.455083587f, 0.890448723f, - -0.456448982f, 0.889749586f, - -0.457813304f, 0.889048356f, - -0.459176548f, 0.888345033f, - -0.460538711f, 0.887639620f, - -0.461899791f, 0.886932119f, - -0.463259784f, 0.886222530f, - -0.464618686f, 0.885510856f, - -0.465976496f, 0.884797098f, - -0.467333209f, 0.884081259f, - -0.468688822f, 0.883363339f, - -0.470043332f, 0.882643340f, - -0.471396737f, 0.881921264f, - -0.472749032f, 0.881197113f, - -0.474100215f, 0.880470889f, - -0.475450282f, 0.879742593f, - -0.476799230f, 0.879012226f, - -0.478147056f, 0.878279792f, - -0.479493758f, 0.877545290f, - -0.480839331f, 0.876808724f, - -0.482183772f, 0.876070094f, - -0.483527079f, 0.875329403f, - -0.484869248f, 0.874586652f, - -0.486210276f, 0.873841843f, - -0.487550160f, 0.873094978f, - -0.488888897f, 0.872346059f, - -0.490226483f, 0.871595087f, - -0.491562916f, 0.870842063f, - -0.492898192f, 0.870086991f, - -0.494232309f, 0.869329871f, - -0.495565262f, 0.868570706f, - -0.496897049f, 0.867809497f, - -0.498227667f, 0.867046246f, - -0.499557113f, 0.866280954f, - -0.500885383f, 0.865513624f, - -0.502212474f, 0.864744258f, - -0.503538384f, 0.863972856f, - -0.504863109f, 0.863199422f, - -0.506186645f, 0.862423956f, - -0.507508991f, 0.861646461f, - -0.508830143f, 0.860866939f, - -0.510150097f, 0.860085390f, - -0.511468850f, 0.859301818f, - -0.512786401f, 0.858516224f, - -0.514102744f, 0.857728610f, - -0.515417878f, 0.856938977f, - -0.516731799f, 0.856147328f, - -0.518044504f, 0.855353665f, - -0.519355990f, 0.854557988f, - -0.520666254f, 0.853760301f, - -0.521975293f, 0.852960605f, - -0.523283103f, 0.852158902f, - -0.524589683f, 0.851355193f, - -0.525895027f, 0.850549481f, - -0.527199135f, 0.849741768f, - -0.528502002f, 0.848932055f, - -0.529803625f, 0.848120345f, - -0.531104001f, 0.847306639f, - -0.532403128f, 0.846490939f, - -0.533701002f, 0.845673247f, - -0.534997620f, 0.844853565f, - -0.536292979f, 0.844031895f, - -0.537587076f, 0.843208240f, - -0.538879909f, 0.842382600f, - -0.540171473f, 0.841554977f, - -0.541461766f, 0.840725375f, - -0.542750785f, 0.839893794f, - -0.544038527f, 0.839060237f, - -0.545324988f, 0.838224706f, - -0.546610167f, 0.837387202f, - -0.547894059f, 0.836547727f, - -0.549176662f, 0.835706284f, - -0.550457973f, 0.834862875f, - -0.551737988f, 0.834017501f, - -0.553016706f, 0.833170165f, - -0.554294121f, 0.832320868f, - -0.555570233f, 0.831469612f, - -0.556845037f, 0.830616400f, - -0.558118531f, 0.829761234f, - -0.559390712f, 0.828904115f, - -0.560661576f, 0.828045045f, - -0.561931121f, 0.827184027f, - -0.563199344f, 0.826321063f, - -0.564466242f, 0.825456154f, - -0.565731811f, 0.824589303f, - -0.566996049f, 0.823720511f, - -0.568258953f, 0.822849781f, - -0.569520519f, 0.821977115f, - -0.570780746f, 0.821102515f, - -0.572039629f, 0.820225983f, - -0.573297167f, 0.819347520f, - -0.574553355f, 0.818467130f, - -0.575808191f, 0.817584813f, - -0.577061673f, 0.816700573f, - -0.578313796f, 0.815814411f, - -0.579564559f, 0.814926329f, - -0.580813958f, 0.814036330f, - -0.582061990f, 0.813144415f, - -0.583308653f, 0.812250587f, - -0.584553943f, 0.811354847f, - -0.585797857f, 0.810457198f, - -0.587040394f, 0.809557642f, - -0.588281548f, 0.808656182f, - -0.589521319f, 0.807752818f, - -0.590759702f, 0.806847554f, - -0.591996695f, 0.805940391f, - -0.593232295f, 0.805031331f, - -0.594466499f, 0.804120377f, - -0.595699304f, 0.803207531f, - -0.596930708f, 0.802292796f, - -0.598160707f, 0.801376172f, - -0.599389298f, 0.800457662f, - -0.600616479f, 0.799537269f, - -0.601842247f, 0.798614995f, - -0.603066599f, 0.797690841f, - -0.604289531f, 0.796764810f, - -0.605511041f, 0.795836905f, - -0.606731127f, 0.794907126f, - -0.607949785f, 0.793975478f, - -0.609167012f, 0.793041960f, - -0.610382806f, 0.792106577f, - -0.611597164f, 0.791169330f, - -0.612810082f, 0.790230221f, - -0.614021559f, 0.789289253f, - -0.615231591f, 0.788346428f, - -0.616440175f, 0.787401747f, - -0.617647308f, 0.786455214f, - -0.618852988f, 0.785506830f, - -0.620057212f, 0.784556597f, - -0.621259977f, 0.783604519f, - -0.622461279f, 0.782650596f, - -0.623661118f, 0.781694832f, - -0.624859488f, 0.780737229f, - -0.626056388f, 0.779777788f, - -0.627251815f, 0.778816512f, - -0.628445767f, 0.777853404f, - -0.629638239f, 0.776888466f, - -0.630829230f, 0.775921699f, - -0.632018736f, 0.774953107f, - -0.633206755f, 0.773982691f, - -0.634393284f, 0.773010453f, - -0.635578320f, 0.772036397f, - -0.636761861f, 0.771060524f, - -0.637943904f, 0.770082837f, - -0.639124445f, 0.769103338f, - -0.640303482f, 0.768122029f, - -0.641481013f, 0.767138912f, - -0.642657034f, 0.766153990f, - -0.643831543f, 0.765167266f, - -0.645004537f, 0.764178741f, - -0.646176013f, 0.763188417f, - -0.647345969f, 0.762196298f, - -0.648514401f, 0.761202385f, - -0.649681307f, 0.760206682f, - -0.650846685f, 0.759209189f, - -0.652010531f, 0.758209910f, - -0.653172843f, 0.757208847f, - -0.654333618f, 0.756206001f, - -0.655492853f, 0.755201377f, - -0.656650546f, 0.754194975f, - -0.657806693f, 0.753186799f, - -0.658961293f, 0.752176850f, - -0.660114342f, 0.751165132f, - -0.661265838f, 0.750151646f, - -0.662415778f, 0.749136395f, - -0.663564159f, 0.748119380f, - -0.664710978f, 0.747100606f, - -0.665856234f, 0.746080074f, - -0.666999922f, 0.745057785f, - -0.668142041f, 0.744033744f, - -0.669282588f, 0.743007952f, - -0.670421560f, 0.741980412f, - -0.671558955f, 0.740951125f, - -0.672694769f, 0.739920095f, - -0.673829000f, 0.738887324f, - -0.674961646f, 0.737852815f, - -0.676092704f, 0.736816569f, - -0.677222170f, 0.735778589f, - -0.678350043f, 0.734738878f, - -0.679476320f, 0.733697438f, - -0.680600998f, 0.732654272f, - -0.681724074f, 0.731609381f, - -0.682845546f, 0.730562769f, - -0.683965412f, 0.729514438f, - -0.685083668f, 0.728464390f, - -0.686200312f, 0.727412629f, - -0.687315341f, 0.726359155f, - -0.688428753f, 0.725303972f, - -0.689540545f, 0.724247083f, - -0.690650714f, 0.723188489f, - -0.691759258f, 0.722128194f, - -0.692866175f, 0.721066199f, - -0.693971461f, 0.720002508f, - -0.695075114f, 0.718937122f, - -0.696177131f, 0.717870045f, - -0.697277511f, 0.716801279f, - -0.698376249f, 0.715730825f, - -0.699473345f, 0.714658688f, - -0.700568794f, 0.713584869f, - -0.701662595f, 0.712509371f, - -0.702754744f, 0.711432196f, - -0.703845241f, 0.710353347f, - -0.704934080f, 0.709272826f, - -0.706021261f, 0.708190637f, - -0.707106781f, 0.707106781f, - -0.708190637f, 0.706021261f, - -0.709272826f, 0.704934080f, - -0.710353347f, 0.703845241f, - -0.711432196f, 0.702754744f, - -0.712509371f, 0.701662595f, - -0.713584869f, 0.700568794f, - -0.714658688f, 0.699473345f, - -0.715730825f, 0.698376249f, - -0.716801279f, 0.697277511f, - -0.717870045f, 0.696177131f, - -0.718937122f, 0.695075114f, - -0.720002508f, 0.693971461f, - -0.721066199f, 0.692866175f, - -0.722128194f, 0.691759258f, - -0.723188489f, 0.690650714f, - -0.724247083f, 0.689540545f, - -0.725303972f, 0.688428753f, - -0.726359155f, 0.687315341f, - -0.727412629f, 0.686200312f, - -0.728464390f, 0.685083668f, - -0.729514438f, 0.683965412f, - -0.730562769f, 0.682845546f, - -0.731609381f, 0.681724074f, - -0.732654272f, 0.680600998f, - -0.733697438f, 0.679476320f, - -0.734738878f, 0.678350043f, - -0.735778589f, 0.677222170f, - -0.736816569f, 0.676092704f, - -0.737852815f, 0.674961646f, - -0.738887324f, 0.673829000f, - -0.739920095f, 0.672694769f, - -0.740951125f, 0.671558955f, - -0.741980412f, 0.670421560f, - -0.743007952f, 0.669282588f, - -0.744033744f, 0.668142041f, - -0.745057785f, 0.666999922f, - -0.746080074f, 0.665856234f, - -0.747100606f, 0.664710978f, - -0.748119380f, 0.663564159f, - -0.749136395f, 0.662415778f, - -0.750151646f, 0.661265838f, - -0.751165132f, 0.660114342f, - -0.752176850f, 0.658961293f, - -0.753186799f, 0.657806693f, - -0.754194975f, 0.656650546f, - -0.755201377f, 0.655492853f, - -0.756206001f, 0.654333618f, - -0.757208847f, 0.653172843f, - -0.758209910f, 0.652010531f, - -0.759209189f, 0.650846685f, - -0.760206682f, 0.649681307f, - -0.761202385f, 0.648514401f, - -0.762196298f, 0.647345969f, - -0.763188417f, 0.646176013f, - -0.764178741f, 0.645004537f, - -0.765167266f, 0.643831543f, - -0.766153990f, 0.642657034f, - -0.767138912f, 0.641481013f, - -0.768122029f, 0.640303482f, - -0.769103338f, 0.639124445f, - -0.770082837f, 0.637943904f, - -0.771060524f, 0.636761861f, - -0.772036397f, 0.635578320f, - -0.773010453f, 0.634393284f, - -0.773982691f, 0.633206755f, - -0.774953107f, 0.632018736f, - -0.775921699f, 0.630829230f, - -0.776888466f, 0.629638239f, - -0.777853404f, 0.628445767f, - -0.778816512f, 0.627251815f, - -0.779777788f, 0.626056388f, - -0.780737229f, 0.624859488f, - -0.781694832f, 0.623661118f, - -0.782650596f, 0.622461279f, - -0.783604519f, 0.621259977f, - -0.784556597f, 0.620057212f, - -0.785506830f, 0.618852988f, - -0.786455214f, 0.617647308f, - -0.787401747f, 0.616440175f, - -0.788346428f, 0.615231591f, - -0.789289253f, 0.614021559f, - -0.790230221f, 0.612810082f, - -0.791169330f, 0.611597164f, - -0.792106577f, 0.610382806f, - -0.793041960f, 0.609167012f, - -0.793975478f, 0.607949785f, - -0.794907126f, 0.606731127f, - -0.795836905f, 0.605511041f, - -0.796764810f, 0.604289531f, - -0.797690841f, 0.603066599f, - -0.798614995f, 0.601842247f, - -0.799537269f, 0.600616479f, - -0.800457662f, 0.599389298f, - -0.801376172f, 0.598160707f, - -0.802292796f, 0.596930708f, - -0.803207531f, 0.595699304f, - -0.804120377f, 0.594466499f, - -0.805031331f, 0.593232295f, - -0.805940391f, 0.591996695f, - -0.806847554f, 0.590759702f, - -0.807752818f, 0.589521319f, - -0.808656182f, 0.588281548f, - -0.809557642f, 0.587040394f, - -0.810457198f, 0.585797857f, - -0.811354847f, 0.584553943f, - -0.812250587f, 0.583308653f, - -0.813144415f, 0.582061990f, - -0.814036330f, 0.580813958f, - -0.814926329f, 0.579564559f, - -0.815814411f, 0.578313796f, - -0.816700573f, 0.577061673f, - -0.817584813f, 0.575808191f, - -0.818467130f, 0.574553355f, - -0.819347520f, 0.573297167f, - -0.820225983f, 0.572039629f, - -0.821102515f, 0.570780746f, - -0.821977115f, 0.569520519f, - -0.822849781f, 0.568258953f, - -0.823720511f, 0.566996049f, - -0.824589303f, 0.565731811f, - -0.825456154f, 0.564466242f, - -0.826321063f, 0.563199344f, - -0.827184027f, 0.561931121f, - -0.828045045f, 0.560661576f, - -0.828904115f, 0.559390712f, - -0.829761234f, 0.558118531f, - -0.830616400f, 0.556845037f, - -0.831469612f, 0.555570233f, - -0.832320868f, 0.554294121f, - -0.833170165f, 0.553016706f, - -0.834017501f, 0.551737988f, - -0.834862875f, 0.550457973f, - -0.835706284f, 0.549176662f, - -0.836547727f, 0.547894059f, - -0.837387202f, 0.546610167f, - -0.838224706f, 0.545324988f, - -0.839060237f, 0.544038527f, - -0.839893794f, 0.542750785f, - -0.840725375f, 0.541461766f, - -0.841554977f, 0.540171473f, - -0.842382600f, 0.538879909f, - -0.843208240f, 0.537587076f, - -0.844031895f, 0.536292979f, - -0.844853565f, 0.534997620f, - -0.845673247f, 0.533701002f, - -0.846490939f, 0.532403128f, - -0.847306639f, 0.531104001f, - -0.848120345f, 0.529803625f, - -0.848932055f, 0.528502002f, - -0.849741768f, 0.527199135f, - -0.850549481f, 0.525895027f, - -0.851355193f, 0.524589683f, - -0.852158902f, 0.523283103f, - -0.852960605f, 0.521975293f, - -0.853760301f, 0.520666254f, - -0.854557988f, 0.519355990f, - -0.855353665f, 0.518044504f, - -0.856147328f, 0.516731799f, - -0.856938977f, 0.515417878f, - -0.857728610f, 0.514102744f, - -0.858516224f, 0.512786401f, - -0.859301818f, 0.511468850f, - -0.860085390f, 0.510150097f, - -0.860866939f, 0.508830143f, - -0.861646461f, 0.507508991f, - -0.862423956f, 0.506186645f, - -0.863199422f, 0.504863109f, - -0.863972856f, 0.503538384f, - -0.864744258f, 0.502212474f, - -0.865513624f, 0.500885383f, - -0.866280954f, 0.499557113f, - -0.867046246f, 0.498227667f, - -0.867809497f, 0.496897049f, - -0.868570706f, 0.495565262f, - -0.869329871f, 0.494232309f, - -0.870086991f, 0.492898192f, - -0.870842063f, 0.491562916f, - -0.871595087f, 0.490226483f, - -0.872346059f, 0.488888897f, - -0.873094978f, 0.487550160f, - -0.873841843f, 0.486210276f, - -0.874586652f, 0.484869248f, - -0.875329403f, 0.483527079f, - -0.876070094f, 0.482183772f, - -0.876808724f, 0.480839331f, - -0.877545290f, 0.479493758f, - -0.878279792f, 0.478147056f, - -0.879012226f, 0.476799230f, - -0.879742593f, 0.475450282f, - -0.880470889f, 0.474100215f, - -0.881197113f, 0.472749032f, - -0.881921264f, 0.471396737f, - -0.882643340f, 0.470043332f, - -0.883363339f, 0.468688822f, - -0.884081259f, 0.467333209f, - -0.884797098f, 0.465976496f, - -0.885510856f, 0.464618686f, - -0.886222530f, 0.463259784f, - -0.886932119f, 0.461899791f, - -0.887639620f, 0.460538711f, - -0.888345033f, 0.459176548f, - -0.889048356f, 0.457813304f, - -0.889749586f, 0.456448982f, - -0.890448723f, 0.455083587f, - -0.891145765f, 0.453717121f, - -0.891840709f, 0.452349587f, - -0.892533555f, 0.450980989f, - -0.893224301f, 0.449611330f, - -0.893912945f, 0.448240612f, - -0.894599486f, 0.446868840f, - -0.895283921f, 0.445496017f, - -0.895966250f, 0.444122145f, - -0.896646470f, 0.442747228f, - -0.897324581f, 0.441371269f, - -0.898000580f, 0.439994271f, - -0.898674466f, 0.438616239f, - -0.899346237f, 0.437237174f, - -0.900015892f, 0.435857080f, - -0.900683429f, 0.434475961f, - -0.901348847f, 0.433093819f, - -0.902012144f, 0.431710658f, - -0.902673318f, 0.430326481f, - -0.903332368f, 0.428941292f, - -0.903989293f, 0.427555093f, - -0.904644091f, 0.426167889f, - -0.905296759f, 0.424779681f, - -0.905947298f, 0.423390474f, - -0.906595705f, 0.422000271f, - -0.907241978f, 0.420609074f, - -0.907886116f, 0.419216888f, - -0.908528119f, 0.417823716f, - -0.909167983f, 0.416429560f, - -0.909805708f, 0.415034424f, - -0.910441292f, 0.413638312f, - -0.911074734f, 0.412241227f, - -0.911706032f, 0.410843171f, - -0.912335185f, 0.409444149f, - -0.912962190f, 0.408044163f, - -0.913587048f, 0.406643217f, - -0.914209756f, 0.405241314f, - -0.914830312f, 0.403838458f, - -0.915448716f, 0.402434651f, - -0.916064966f, 0.401029897f, - -0.916679060f, 0.399624200f, - -0.917290997f, 0.398217562f, - -0.917900776f, 0.396809987f, - -0.918508394f, 0.395401479f, - -0.919113852f, 0.393992040f, - -0.919717146f, 0.392581674f, - -0.920318277f, 0.391170384f, - -0.920917242f, 0.389758174f, - -0.921514039f, 0.388345047f, - -0.922108669f, 0.386931006f, - -0.922701128f, 0.385516054f, - -0.923291417f, 0.384100195f, - -0.923879533f, 0.382683432f, - -0.924465474f, 0.381265769f, - -0.925049241f, 0.379847209f, - -0.925630831f, 0.378427755f, - -0.926210242f, 0.377007410f, - -0.926787474f, 0.375586178f, - -0.927362526f, 0.374164063f, - -0.927935395f, 0.372741067f, - -0.928506080f, 0.371317194f, - -0.929074581f, 0.369892447f, - -0.929640896f, 0.368466830f, - -0.930205023f, 0.367040346f, - -0.930766961f, 0.365612998f, - -0.931326709f, 0.364184790f, - -0.931884266f, 0.362755724f, - -0.932439629f, 0.361325806f, - -0.932992799f, 0.359895037f, - -0.933543773f, 0.358463421f, - -0.934092550f, 0.357030961f, - -0.934639130f, 0.355597662f, - -0.935183510f, 0.354163525f, - -0.935725689f, 0.352728556f, - -0.936265667f, 0.351292756f, - -0.936803442f, 0.349856130f, - -0.937339012f, 0.348418680f, - -0.937872376f, 0.346980411f, - -0.938403534f, 0.345541325f, - -0.938932484f, 0.344101426f, - -0.939459224f, 0.342660717f, - -0.939983753f, 0.341219202f, - -0.940506071f, 0.339776884f, - -0.941026175f, 0.338333767f, - -0.941544065f, 0.336889853f, - -0.942059740f, 0.335445147f, - -0.942573198f, 0.333999651f, - -0.943084437f, 0.332553370f, - -0.943593458f, 0.331106306f, - -0.944100258f, 0.329658463f, - -0.944604837f, 0.328209844f, - -0.945107193f, 0.326760452f, - -0.945607325f, 0.325310292f, - -0.946105232f, 0.323859367f, - -0.946600913f, 0.322407679f, - -0.947094366f, 0.320955232f, - -0.947585591f, 0.319502031f, - -0.948074586f, 0.318048077f, - -0.948561350f, 0.316593376f, - -0.949045882f, 0.315137929f, - -0.949528181f, 0.313681740f, - -0.950008245f, 0.312224814f, - -0.950486074f, 0.310767153f, - -0.950961666f, 0.309308760f, - -0.951435021f, 0.307849640f, - -0.951906137f, 0.306389795f, - -0.952375013f, 0.304929230f, - -0.952841648f, 0.303467947f, - -0.953306040f, 0.302005949f, - -0.953768190f, 0.300543241f, - -0.954228095f, 0.299079826f, - -0.954685755f, 0.297615707f, - -0.955141168f, 0.296150888f, - -0.955594334f, 0.294685372f, - -0.956045251f, 0.293219163f, - -0.956493919f, 0.291752263f, - -0.956940336f, 0.290284677f, - -0.957384501f, 0.288816408f, - -0.957826413f, 0.287347460f, - -0.958266071f, 0.285877835f, - -0.958703475f, 0.284407537f, - -0.959138622f, 0.282936570f, - -0.959571513f, 0.281464938f, - -0.960002146f, 0.279992643f, - -0.960430519f, 0.278519689f, - -0.960856633f, 0.277046080f, - -0.961280486f, 0.275571819f, - -0.961702077f, 0.274096910f, - -0.962121404f, 0.272621355f, - -0.962538468f, 0.271145160f, - -0.962953267f, 0.269668326f, - -0.963365800f, 0.268190857f, - -0.963776066f, 0.266712757f, - -0.964184064f, 0.265234030f, - -0.964589793f, 0.263754679f, - -0.964993253f, 0.262274707f, - -0.965394442f, 0.260794118f, - -0.965793359f, 0.259312915f, - -0.966190003f, 0.257831102f, - -0.966584374f, 0.256348682f, - -0.966976471f, 0.254865660f, - -0.967366292f, 0.253382037f, - -0.967753837f, 0.251897818f, - -0.968139105f, 0.250413007f, - -0.968522094f, 0.248927606f, - -0.968902805f, 0.247441619f, - -0.969281235f, 0.245955050f, - -0.969657385f, 0.244467903f, - -0.970031253f, 0.242980180f, - -0.970402839f, 0.241491885f, - -0.970772141f, 0.240003022f, - -0.971139158f, 0.238513595f, - -0.971503891f, 0.237023606f, - -0.971866337f, 0.235533059f, - -0.972226497f, 0.234041959f, - -0.972584369f, 0.232550307f, - -0.972939952f, 0.231058108f, - -0.973293246f, 0.229565366f, - -0.973644250f, 0.228072083f, - -0.973992962f, 0.226578264f, - -0.974339383f, 0.225083911f, - -0.974683511f, 0.223589029f, - -0.975025345f, 0.222093621f, - -0.975364885f, 0.220597690f, - -0.975702130f, 0.219101240f, - -0.976037079f, 0.217604275f, - -0.976369731f, 0.216106797f, - -0.976700086f, 0.214608811f, - -0.977028143f, 0.213110320f, - -0.977353900f, 0.211611327f, - -0.977677358f, 0.210111837f, - -0.977998515f, 0.208611852f, - -0.978317371f, 0.207111376f, - -0.978633924f, 0.205610413f, - -0.978948175f, 0.204108966f, - -0.979260123f, 0.202607039f, - -0.979569766f, 0.201104635f, - -0.979877104f, 0.199601758f, - -0.980182136f, 0.198098411f, - -0.980484862f, 0.196594598f, - -0.980785280f, 0.195090322f, - -0.981083391f, 0.193585587f, - -0.981379193f, 0.192080397f, - -0.981672686f, 0.190574755f, - -0.981963869f, 0.189068664f, - -0.982252741f, 0.187562129f, - -0.982539302f, 0.186055152f, - -0.982823551f, 0.184547737f, - -0.983105487f, 0.183039888f, - -0.983385110f, 0.181531608f, - -0.983662419f, 0.180022901f, - -0.983937413f, 0.178513771f, - -0.984210092f, 0.177004220f, - -0.984480455f, 0.175494253f, - -0.984748502f, 0.173983873f, - -0.985014231f, 0.172473084f, - -0.985277642f, 0.170961889f, - -0.985538735f, 0.169450291f, - -0.985797509f, 0.167938295f, - -0.986053963f, 0.166425904f, - -0.986308097f, 0.164913120f, - -0.986559910f, 0.163399949f, - -0.986809402f, 0.161886394f, - -0.987056571f, 0.160372457f, - -0.987301418f, 0.158858143f, - -0.987543942f, 0.157343456f, - -0.987784142f, 0.155828398f, - -0.988022017f, 0.154312973f, - -0.988257568f, 0.152797185f, - -0.988490793f, 0.151281038f, - -0.988721692f, 0.149764535f, - -0.988950265f, 0.148247679f, - -0.989176510f, 0.146730474f, - -0.989400428f, 0.145212925f, - -0.989622017f, 0.143695033f, - -0.989841278f, 0.142176804f, - -0.990058210f, 0.140658239f, - -0.990272812f, 0.139139344f, - -0.990485084f, 0.137620122f, - -0.990695025f, 0.136100575f, - -0.990902635f, 0.134580709f, - -0.991107914f, 0.133060525f, - -0.991310860f, 0.131540029f, - -0.991511473f, 0.130019223f, - -0.991709754f, 0.128498111f, - -0.991905700f, 0.126976696f, - -0.992099313f, 0.125454983f, - -0.992290591f, 0.123932975f, - -0.992479535f, 0.122410675f, - -0.992666142f, 0.120888087f, - -0.992850414f, 0.119365215f, - -0.993032350f, 0.117842062f, - -0.993211949f, 0.116318631f, - -0.993389211f, 0.114794927f, - -0.993564136f, 0.113270952f, - -0.993736722f, 0.111746711f, - -0.993906970f, 0.110222207f, - -0.994074879f, 0.108697444f, - -0.994240449f, 0.107172425f, - -0.994403680f, 0.105647154f, - -0.994564571f, 0.104121634f, - -0.994723121f, 0.102595869f, - -0.994879331f, 0.101069863f, - -0.995033199f, 0.099543619f, - -0.995184727f, 0.098017140f, - -0.995333912f, 0.096490431f, - -0.995480755f, 0.094963495f, - -0.995625256f, 0.093436336f, - -0.995767414f, 0.091908956f, - -0.995907229f, 0.090381361f, - -0.996044701f, 0.088853553f, - -0.996179829f, 0.087325535f, - -0.996312612f, 0.085797312f, - -0.996443051f, 0.084268888f, - -0.996571146f, 0.082740265f, - -0.996696895f, 0.081211447f, - -0.996820299f, 0.079682438f, - -0.996941358f, 0.078153242f, - -0.997060070f, 0.076623861f, - -0.997176437f, 0.075094301f, - -0.997290457f, 0.073564564f, - -0.997402130f, 0.072034653f, - -0.997511456f, 0.070504573f, - -0.997618435f, 0.068974328f, - -0.997723067f, 0.067443920f, - -0.997825350f, 0.065913353f, - -0.997925286f, 0.064382631f, - -0.998022874f, 0.062851758f, - -0.998118113f, 0.061320736f, - -0.998211003f, 0.059789571f, - -0.998301545f, 0.058258265f, - -0.998389737f, 0.056726821f, - -0.998475581f, 0.055195244f, - -0.998559074f, 0.053663538f, - -0.998640218f, 0.052131705f, - -0.998719012f, 0.050599749f, - -0.998795456f, 0.049067674f, - -0.998869550f, 0.047535484f, - -0.998941293f, 0.046003182f, - -0.999010686f, 0.044470772f, - -0.999077728f, 0.042938257f, - -0.999142419f, 0.041405641f, - -0.999204759f, 0.039872928f, - -0.999264747f, 0.038340120f, - -0.999322385f, 0.036807223f, - -0.999377670f, 0.035274239f, - -0.999430605f, 0.033741172f, - -0.999481187f, 0.032208025f, - -0.999529418f, 0.030674803f, - -0.999575296f, 0.029141509f, - -0.999618822f, 0.027608146f, - -0.999659997f, 0.026074718f, - -0.999698819f, 0.024541229f, - -0.999735288f, 0.023007681f, - -0.999769405f, 0.021474080f, - -0.999801170f, 0.019940429f, - -0.999830582f, 0.018406730f, - -0.999857641f, 0.016872988f, - -0.999882347f, 0.015339206f, - -0.999904701f, 0.013805389f, - -0.999924702f, 0.012271538f, - -0.999942350f, 0.010737659f, - -0.999957645f, 0.009203755f, - -0.999970586f, 0.007669829f, - -0.999981175f, 0.006135885f, - -0.999989411f, 0.004601926f, - -0.999995294f, 0.003067957f, - -0.999998823f, 0.001533980f, - -1.000000000f, 0.000000000f, - -0.999998823f, -0.001533980f, - -0.999995294f, -0.003067957f, - -0.999989411f, -0.004601926f, - -0.999981175f, -0.006135885f, - -0.999970586f, -0.007669829f, - -0.999957645f, -0.009203755f, - -0.999942350f, -0.010737659f, - -0.999924702f, -0.012271538f, - -0.999904701f, -0.013805389f, - -0.999882347f, -0.015339206f, - -0.999857641f, -0.016872988f, - -0.999830582f, -0.018406730f, - -0.999801170f, -0.019940429f, - -0.999769405f, -0.021474080f, - -0.999735288f, -0.023007681f, - -0.999698819f, -0.024541229f, - -0.999659997f, -0.026074718f, - -0.999618822f, -0.027608146f, - -0.999575296f, -0.029141509f, - -0.999529418f, -0.030674803f, - -0.999481187f, -0.032208025f, - -0.999430605f, -0.033741172f, - -0.999377670f, -0.035274239f, - -0.999322385f, -0.036807223f, - -0.999264747f, -0.038340120f, - -0.999204759f, -0.039872928f, - -0.999142419f, -0.041405641f, - -0.999077728f, -0.042938257f, - -0.999010686f, -0.044470772f, - -0.998941293f, -0.046003182f, - -0.998869550f, -0.047535484f, - -0.998795456f, -0.049067674f, - -0.998719012f, -0.050599749f, - -0.998640218f, -0.052131705f, - -0.998559074f, -0.053663538f, - -0.998475581f, -0.055195244f, - -0.998389737f, -0.056726821f, - -0.998301545f, -0.058258265f, - -0.998211003f, -0.059789571f, - -0.998118113f, -0.061320736f, - -0.998022874f, -0.062851758f, - -0.997925286f, -0.064382631f, - -0.997825350f, -0.065913353f, - -0.997723067f, -0.067443920f, - -0.997618435f, -0.068974328f, - -0.997511456f, -0.070504573f, - -0.997402130f, -0.072034653f, - -0.997290457f, -0.073564564f, - -0.997176437f, -0.075094301f, - -0.997060070f, -0.076623861f, - -0.996941358f, -0.078153242f, - -0.996820299f, -0.079682438f, - -0.996696895f, -0.081211447f, - -0.996571146f, -0.082740265f, - -0.996443051f, -0.084268888f, - -0.996312612f, -0.085797312f, - -0.996179829f, -0.087325535f, - -0.996044701f, -0.088853553f, - -0.995907229f, -0.090381361f, - -0.995767414f, -0.091908956f, - -0.995625256f, -0.093436336f, - -0.995480755f, -0.094963495f, - -0.995333912f, -0.096490431f, - -0.995184727f, -0.098017140f, - -0.995033199f, -0.099543619f, - -0.994879331f, -0.101069863f, - -0.994723121f, -0.102595869f, - -0.994564571f, -0.104121634f, - -0.994403680f, -0.105647154f, - -0.994240449f, -0.107172425f, - -0.994074879f, -0.108697444f, - -0.993906970f, -0.110222207f, - -0.993736722f, -0.111746711f, - -0.993564136f, -0.113270952f, - -0.993389211f, -0.114794927f, - -0.993211949f, -0.116318631f, - -0.993032350f, -0.117842062f, - -0.992850414f, -0.119365215f, - -0.992666142f, -0.120888087f, - -0.992479535f, -0.122410675f, - -0.992290591f, -0.123932975f, - -0.992099313f, -0.125454983f, - -0.991905700f, -0.126976696f, - -0.991709754f, -0.128498111f, - -0.991511473f, -0.130019223f, - -0.991310860f, -0.131540029f, - -0.991107914f, -0.133060525f, - -0.990902635f, -0.134580709f, - -0.990695025f, -0.136100575f, - -0.990485084f, -0.137620122f, - -0.990272812f, -0.139139344f, - -0.990058210f, -0.140658239f, - -0.989841278f, -0.142176804f, - -0.989622017f, -0.143695033f, - -0.989400428f, -0.145212925f, - -0.989176510f, -0.146730474f, - -0.988950265f, -0.148247679f, - -0.988721692f, -0.149764535f, - -0.988490793f, -0.151281038f, - -0.988257568f, -0.152797185f, - -0.988022017f, -0.154312973f, - -0.987784142f, -0.155828398f, - -0.987543942f, -0.157343456f, - -0.987301418f, -0.158858143f, - -0.987056571f, -0.160372457f, - -0.986809402f, -0.161886394f, - -0.986559910f, -0.163399949f, - -0.986308097f, -0.164913120f, - -0.986053963f, -0.166425904f, - -0.985797509f, -0.167938295f, - -0.985538735f, -0.169450291f, - -0.985277642f, -0.170961889f, - -0.985014231f, -0.172473084f, - -0.984748502f, -0.173983873f, - -0.984480455f, -0.175494253f, - -0.984210092f, -0.177004220f, - -0.983937413f, -0.178513771f, - -0.983662419f, -0.180022901f, - -0.983385110f, -0.181531608f, - -0.983105487f, -0.183039888f, - -0.982823551f, -0.184547737f, - -0.982539302f, -0.186055152f, - -0.982252741f, -0.187562129f, - -0.981963869f, -0.189068664f, - -0.981672686f, -0.190574755f, - -0.981379193f, -0.192080397f, - -0.981083391f, -0.193585587f, - -0.980785280f, -0.195090322f, - -0.980484862f, -0.196594598f, - -0.980182136f, -0.198098411f, - -0.979877104f, -0.199601758f, - -0.979569766f, -0.201104635f, - -0.979260123f, -0.202607039f, - -0.978948175f, -0.204108966f, - -0.978633924f, -0.205610413f, - -0.978317371f, -0.207111376f, - -0.977998515f, -0.208611852f, - -0.977677358f, -0.210111837f, - -0.977353900f, -0.211611327f, - -0.977028143f, -0.213110320f, - -0.976700086f, -0.214608811f, - -0.976369731f, -0.216106797f, - -0.976037079f, -0.217604275f, - -0.975702130f, -0.219101240f, - -0.975364885f, -0.220597690f, - -0.975025345f, -0.222093621f, - -0.974683511f, -0.223589029f, - -0.974339383f, -0.225083911f, - -0.973992962f, -0.226578264f, - -0.973644250f, -0.228072083f, - -0.973293246f, -0.229565366f, - -0.972939952f, -0.231058108f, - -0.972584369f, -0.232550307f, - -0.972226497f, -0.234041959f, - -0.971866337f, -0.235533059f, - -0.971503891f, -0.237023606f, - -0.971139158f, -0.238513595f, - -0.970772141f, -0.240003022f, - -0.970402839f, -0.241491885f, - -0.970031253f, -0.242980180f, - -0.969657385f, -0.244467903f, - -0.969281235f, -0.245955050f, - -0.968902805f, -0.247441619f, - -0.968522094f, -0.248927606f, - -0.968139105f, -0.250413007f, - -0.967753837f, -0.251897818f, - -0.967366292f, -0.253382037f, - -0.966976471f, -0.254865660f, - -0.966584374f, -0.256348682f, - -0.966190003f, -0.257831102f, - -0.965793359f, -0.259312915f, - -0.965394442f, -0.260794118f, - -0.964993253f, -0.262274707f, - -0.964589793f, -0.263754679f, - -0.964184064f, -0.265234030f, - -0.963776066f, -0.266712757f, - -0.963365800f, -0.268190857f, - -0.962953267f, -0.269668326f, - -0.962538468f, -0.271145160f, - -0.962121404f, -0.272621355f, - -0.961702077f, -0.274096910f, - -0.961280486f, -0.275571819f, - -0.960856633f, -0.277046080f, - -0.960430519f, -0.278519689f, - -0.960002146f, -0.279992643f, - -0.959571513f, -0.281464938f, - -0.959138622f, -0.282936570f, - -0.958703475f, -0.284407537f, - -0.958266071f, -0.285877835f, - -0.957826413f, -0.287347460f, - -0.957384501f, -0.288816408f, - -0.956940336f, -0.290284677f, - -0.956493919f, -0.291752263f, - -0.956045251f, -0.293219163f, - -0.955594334f, -0.294685372f, - -0.955141168f, -0.296150888f, - -0.954685755f, -0.297615707f, - -0.954228095f, -0.299079826f, - -0.953768190f, -0.300543241f, - -0.953306040f, -0.302005949f, - -0.952841648f, -0.303467947f, - -0.952375013f, -0.304929230f, - -0.951906137f, -0.306389795f, - -0.951435021f, -0.307849640f, - -0.950961666f, -0.309308760f, - -0.950486074f, -0.310767153f, - -0.950008245f, -0.312224814f, - -0.949528181f, -0.313681740f, - -0.949045882f, -0.315137929f, - -0.948561350f, -0.316593376f, - -0.948074586f, -0.318048077f, - -0.947585591f, -0.319502031f, - -0.947094366f, -0.320955232f, - -0.946600913f, -0.322407679f, - -0.946105232f, -0.323859367f, - -0.945607325f, -0.325310292f, - -0.945107193f, -0.326760452f, - -0.944604837f, -0.328209844f, - -0.944100258f, -0.329658463f, - -0.943593458f, -0.331106306f, - -0.943084437f, -0.332553370f, - -0.942573198f, -0.333999651f, - -0.942059740f, -0.335445147f, - -0.941544065f, -0.336889853f, - -0.941026175f, -0.338333767f, - -0.940506071f, -0.339776884f, - -0.939983753f, -0.341219202f, - -0.939459224f, -0.342660717f, - -0.938932484f, -0.344101426f, - -0.938403534f, -0.345541325f, - -0.937872376f, -0.346980411f, - -0.937339012f, -0.348418680f, - -0.936803442f, -0.349856130f, - -0.936265667f, -0.351292756f, - -0.935725689f, -0.352728556f, - -0.935183510f, -0.354163525f, - -0.934639130f, -0.355597662f, - -0.934092550f, -0.357030961f, - -0.933543773f, -0.358463421f, - -0.932992799f, -0.359895037f, - -0.932439629f, -0.361325806f, - -0.931884266f, -0.362755724f, - -0.931326709f, -0.364184790f, - -0.930766961f, -0.365612998f, - -0.930205023f, -0.367040346f, - -0.929640896f, -0.368466830f, - -0.929074581f, -0.369892447f, - -0.928506080f, -0.371317194f, - -0.927935395f, -0.372741067f, - -0.927362526f, -0.374164063f, - -0.926787474f, -0.375586178f, - -0.926210242f, -0.377007410f, - -0.925630831f, -0.378427755f, - -0.925049241f, -0.379847209f, - -0.924465474f, -0.381265769f, - -0.923879533f, -0.382683432f, - -0.923291417f, -0.384100195f, - -0.922701128f, -0.385516054f, - -0.922108669f, -0.386931006f, - -0.921514039f, -0.388345047f, - -0.920917242f, -0.389758174f, - -0.920318277f, -0.391170384f, - -0.919717146f, -0.392581674f, - -0.919113852f, -0.393992040f, - -0.918508394f, -0.395401479f, - -0.917900776f, -0.396809987f, - -0.917290997f, -0.398217562f, - -0.916679060f, -0.399624200f, - -0.916064966f, -0.401029897f, - -0.915448716f, -0.402434651f, - -0.914830312f, -0.403838458f, - -0.914209756f, -0.405241314f, - -0.913587048f, -0.406643217f, - -0.912962190f, -0.408044163f, - -0.912335185f, -0.409444149f, - -0.911706032f, -0.410843171f, - -0.911074734f, -0.412241227f, - -0.910441292f, -0.413638312f, - -0.909805708f, -0.415034424f, - -0.909167983f, -0.416429560f, - -0.908528119f, -0.417823716f, - -0.907886116f, -0.419216888f, - -0.907241978f, -0.420609074f, - -0.906595705f, -0.422000271f, - -0.905947298f, -0.423390474f, - -0.905296759f, -0.424779681f, - -0.904644091f, -0.426167889f, - -0.903989293f, -0.427555093f, - -0.903332368f, -0.428941292f, - -0.902673318f, -0.430326481f, - -0.902012144f, -0.431710658f, - -0.901348847f, -0.433093819f, - -0.900683429f, -0.434475961f, - -0.900015892f, -0.435857080f, - -0.899346237f, -0.437237174f, - -0.898674466f, -0.438616239f, - -0.898000580f, -0.439994271f, - -0.897324581f, -0.441371269f, - -0.896646470f, -0.442747228f, - -0.895966250f, -0.444122145f, - -0.895283921f, -0.445496017f, - -0.894599486f, -0.446868840f, - -0.893912945f, -0.448240612f, - -0.893224301f, -0.449611330f, - -0.892533555f, -0.450980989f, - -0.891840709f, -0.452349587f, - -0.891145765f, -0.453717121f, - -0.890448723f, -0.455083587f, - -0.889749586f, -0.456448982f, - -0.889048356f, -0.457813304f, - -0.888345033f, -0.459176548f, - -0.887639620f, -0.460538711f, - -0.886932119f, -0.461899791f, - -0.886222530f, -0.463259784f, - -0.885510856f, -0.464618686f, - -0.884797098f, -0.465976496f, - -0.884081259f, -0.467333209f, - -0.883363339f, -0.468688822f, - -0.882643340f, -0.470043332f, - -0.881921264f, -0.471396737f, - -0.881197113f, -0.472749032f, - -0.880470889f, -0.474100215f, - -0.879742593f, -0.475450282f, - -0.879012226f, -0.476799230f, - -0.878279792f, -0.478147056f, - -0.877545290f, -0.479493758f, - -0.876808724f, -0.480839331f, - -0.876070094f, -0.482183772f, - -0.875329403f, -0.483527079f, - -0.874586652f, -0.484869248f, - -0.873841843f, -0.486210276f, - -0.873094978f, -0.487550160f, - -0.872346059f, -0.488888897f, - -0.871595087f, -0.490226483f, - -0.870842063f, -0.491562916f, - -0.870086991f, -0.492898192f, - -0.869329871f, -0.494232309f, - -0.868570706f, -0.495565262f, - -0.867809497f, -0.496897049f, - -0.867046246f, -0.498227667f, - -0.866280954f, -0.499557113f, - -0.865513624f, -0.500885383f, - -0.864744258f, -0.502212474f, - -0.863972856f, -0.503538384f, - -0.863199422f, -0.504863109f, - -0.862423956f, -0.506186645f, - -0.861646461f, -0.507508991f, - -0.860866939f, -0.508830143f, - -0.860085390f, -0.510150097f, - -0.859301818f, -0.511468850f, - -0.858516224f, -0.512786401f, - -0.857728610f, -0.514102744f, - -0.856938977f, -0.515417878f, - -0.856147328f, -0.516731799f, - -0.855353665f, -0.518044504f, - -0.854557988f, -0.519355990f, - -0.853760301f, -0.520666254f, - -0.852960605f, -0.521975293f, - -0.852158902f, -0.523283103f, - -0.851355193f, -0.524589683f, - -0.850549481f, -0.525895027f, - -0.849741768f, -0.527199135f, - -0.848932055f, -0.528502002f, - -0.848120345f, -0.529803625f, - -0.847306639f, -0.531104001f, - -0.846490939f, -0.532403128f, - -0.845673247f, -0.533701002f, - -0.844853565f, -0.534997620f, - -0.844031895f, -0.536292979f, - -0.843208240f, -0.537587076f, - -0.842382600f, -0.538879909f, - -0.841554977f, -0.540171473f, - -0.840725375f, -0.541461766f, - -0.839893794f, -0.542750785f, - -0.839060237f, -0.544038527f, - -0.838224706f, -0.545324988f, - -0.837387202f, -0.546610167f, - -0.836547727f, -0.547894059f, - -0.835706284f, -0.549176662f, - -0.834862875f, -0.550457973f, - -0.834017501f, -0.551737988f, - -0.833170165f, -0.553016706f, - -0.832320868f, -0.554294121f, - -0.831469612f, -0.555570233f, - -0.830616400f, -0.556845037f, - -0.829761234f, -0.558118531f, - -0.828904115f, -0.559390712f, - -0.828045045f, -0.560661576f, - -0.827184027f, -0.561931121f, - -0.826321063f, -0.563199344f, - -0.825456154f, -0.564466242f, - -0.824589303f, -0.565731811f, - -0.823720511f, -0.566996049f, - -0.822849781f, -0.568258953f, - -0.821977115f, -0.569520519f, - -0.821102515f, -0.570780746f, - -0.820225983f, -0.572039629f, - -0.819347520f, -0.573297167f, - -0.818467130f, -0.574553355f, - -0.817584813f, -0.575808191f, - -0.816700573f, -0.577061673f, - -0.815814411f, -0.578313796f, - -0.814926329f, -0.579564559f, - -0.814036330f, -0.580813958f, - -0.813144415f, -0.582061990f, - -0.812250587f, -0.583308653f, - -0.811354847f, -0.584553943f, - -0.810457198f, -0.585797857f, - -0.809557642f, -0.587040394f, - -0.808656182f, -0.588281548f, - -0.807752818f, -0.589521319f, - -0.806847554f, -0.590759702f, - -0.805940391f, -0.591996695f, - -0.805031331f, -0.593232295f, - -0.804120377f, -0.594466499f, - -0.803207531f, -0.595699304f, - -0.802292796f, -0.596930708f, - -0.801376172f, -0.598160707f, - -0.800457662f, -0.599389298f, - -0.799537269f, -0.600616479f, - -0.798614995f, -0.601842247f, - -0.797690841f, -0.603066599f, - -0.796764810f, -0.604289531f, - -0.795836905f, -0.605511041f, - -0.794907126f, -0.606731127f, - -0.793975478f, -0.607949785f, - -0.793041960f, -0.609167012f, - -0.792106577f, -0.610382806f, - -0.791169330f, -0.611597164f, - -0.790230221f, -0.612810082f, - -0.789289253f, -0.614021559f, - -0.788346428f, -0.615231591f, - -0.787401747f, -0.616440175f, - -0.786455214f, -0.617647308f, - -0.785506830f, -0.618852988f, - -0.784556597f, -0.620057212f, - -0.783604519f, -0.621259977f, - -0.782650596f, -0.622461279f, - -0.781694832f, -0.623661118f, - -0.780737229f, -0.624859488f, - -0.779777788f, -0.626056388f, - -0.778816512f, -0.627251815f, - -0.777853404f, -0.628445767f, - -0.776888466f, -0.629638239f, - -0.775921699f, -0.630829230f, - -0.774953107f, -0.632018736f, - -0.773982691f, -0.633206755f, - -0.773010453f, -0.634393284f, - -0.772036397f, -0.635578320f, - -0.771060524f, -0.636761861f, - -0.770082837f, -0.637943904f, - -0.769103338f, -0.639124445f, - -0.768122029f, -0.640303482f, - -0.767138912f, -0.641481013f, - -0.766153990f, -0.642657034f, - -0.765167266f, -0.643831543f, - -0.764178741f, -0.645004537f, - -0.763188417f, -0.646176013f, - -0.762196298f, -0.647345969f, - -0.761202385f, -0.648514401f, - -0.760206682f, -0.649681307f, - -0.759209189f, -0.650846685f, - -0.758209910f, -0.652010531f, - -0.757208847f, -0.653172843f, - -0.756206001f, -0.654333618f, - -0.755201377f, -0.655492853f, - -0.754194975f, -0.656650546f, - -0.753186799f, -0.657806693f, - -0.752176850f, -0.658961293f, - -0.751165132f, -0.660114342f, - -0.750151646f, -0.661265838f, - -0.749136395f, -0.662415778f, - -0.748119380f, -0.663564159f, - -0.747100606f, -0.664710978f, - -0.746080074f, -0.665856234f, - -0.745057785f, -0.666999922f, - -0.744033744f, -0.668142041f, - -0.743007952f, -0.669282588f, - -0.741980412f, -0.670421560f, - -0.740951125f, -0.671558955f, - -0.739920095f, -0.672694769f, - -0.738887324f, -0.673829000f, - -0.737852815f, -0.674961646f, - -0.736816569f, -0.676092704f, - -0.735778589f, -0.677222170f, - -0.734738878f, -0.678350043f, - -0.733697438f, -0.679476320f, - -0.732654272f, -0.680600998f, - -0.731609381f, -0.681724074f, - -0.730562769f, -0.682845546f, - -0.729514438f, -0.683965412f, - -0.728464390f, -0.685083668f, - -0.727412629f, -0.686200312f, - -0.726359155f, -0.687315341f, - -0.725303972f, -0.688428753f, - -0.724247083f, -0.689540545f, - -0.723188489f, -0.690650714f, - -0.722128194f, -0.691759258f, - -0.721066199f, -0.692866175f, - -0.720002508f, -0.693971461f, - -0.718937122f, -0.695075114f, - -0.717870045f, -0.696177131f, - -0.716801279f, -0.697277511f, - -0.715730825f, -0.698376249f, - -0.714658688f, -0.699473345f, - -0.713584869f, -0.700568794f, - -0.712509371f, -0.701662595f, - -0.711432196f, -0.702754744f, - -0.710353347f, -0.703845241f, - -0.709272826f, -0.704934080f, - -0.708190637f, -0.706021261f, - -0.707106781f, -0.707106781f, - -0.706021261f, -0.708190637f, - -0.704934080f, -0.709272826f, - -0.703845241f, -0.710353347f, - -0.702754744f, -0.711432196f, - -0.701662595f, -0.712509371f, - -0.700568794f, -0.713584869f, - -0.699473345f, -0.714658688f, - -0.698376249f, -0.715730825f, - -0.697277511f, -0.716801279f, - -0.696177131f, -0.717870045f, - -0.695075114f, -0.718937122f, - -0.693971461f, -0.720002508f, - -0.692866175f, -0.721066199f, - -0.691759258f, -0.722128194f, - -0.690650714f, -0.723188489f, - -0.689540545f, -0.724247083f, - -0.688428753f, -0.725303972f, - -0.687315341f, -0.726359155f, - -0.686200312f, -0.727412629f, - -0.685083668f, -0.728464390f, - -0.683965412f, -0.729514438f, - -0.682845546f, -0.730562769f, - -0.681724074f, -0.731609381f, - -0.680600998f, -0.732654272f, - -0.679476320f, -0.733697438f, - -0.678350043f, -0.734738878f, - -0.677222170f, -0.735778589f, - -0.676092704f, -0.736816569f, - -0.674961646f, -0.737852815f, - -0.673829000f, -0.738887324f, - -0.672694769f, -0.739920095f, - -0.671558955f, -0.740951125f, - -0.670421560f, -0.741980412f, - -0.669282588f, -0.743007952f, - -0.668142041f, -0.744033744f, - -0.666999922f, -0.745057785f, - -0.665856234f, -0.746080074f, - -0.664710978f, -0.747100606f, - -0.663564159f, -0.748119380f, - -0.662415778f, -0.749136395f, - -0.661265838f, -0.750151646f, - -0.660114342f, -0.751165132f, - -0.658961293f, -0.752176850f, - -0.657806693f, -0.753186799f, - -0.656650546f, -0.754194975f, - -0.655492853f, -0.755201377f, - -0.654333618f, -0.756206001f, - -0.653172843f, -0.757208847f, - -0.652010531f, -0.758209910f, - -0.650846685f, -0.759209189f, - -0.649681307f, -0.760206682f, - -0.648514401f, -0.761202385f, - -0.647345969f, -0.762196298f, - -0.646176013f, -0.763188417f, - -0.645004537f, -0.764178741f, - -0.643831543f, -0.765167266f, - -0.642657034f, -0.766153990f, - -0.641481013f, -0.767138912f, - -0.640303482f, -0.768122029f, - -0.639124445f, -0.769103338f, - -0.637943904f, -0.770082837f, - -0.636761861f, -0.771060524f, - -0.635578320f, -0.772036397f, - -0.634393284f, -0.773010453f, - -0.633206755f, -0.773982691f, - -0.632018736f, -0.774953107f, - -0.630829230f, -0.775921699f, - -0.629638239f, -0.776888466f, - -0.628445767f, -0.777853404f, - -0.627251815f, -0.778816512f, - -0.626056388f, -0.779777788f, - -0.624859488f, -0.780737229f, - -0.623661118f, -0.781694832f, - -0.622461279f, -0.782650596f, - -0.621259977f, -0.783604519f, - -0.620057212f, -0.784556597f, - -0.618852988f, -0.785506830f, - -0.617647308f, -0.786455214f, - -0.616440175f, -0.787401747f, - -0.615231591f, -0.788346428f, - -0.614021559f, -0.789289253f, - -0.612810082f, -0.790230221f, - -0.611597164f, -0.791169330f, - -0.610382806f, -0.792106577f, - -0.609167012f, -0.793041960f, - -0.607949785f, -0.793975478f, - -0.606731127f, -0.794907126f, - -0.605511041f, -0.795836905f, - -0.604289531f, -0.796764810f, - -0.603066599f, -0.797690841f, - -0.601842247f, -0.798614995f, - -0.600616479f, -0.799537269f, - -0.599389298f, -0.800457662f, - -0.598160707f, -0.801376172f, - -0.596930708f, -0.802292796f, - -0.595699304f, -0.803207531f, - -0.594466499f, -0.804120377f, - -0.593232295f, -0.805031331f, - -0.591996695f, -0.805940391f, - -0.590759702f, -0.806847554f, - -0.589521319f, -0.807752818f, - -0.588281548f, -0.808656182f, - -0.587040394f, -0.809557642f, - -0.585797857f, -0.810457198f, - -0.584553943f, -0.811354847f, - -0.583308653f, -0.812250587f, - -0.582061990f, -0.813144415f, - -0.580813958f, -0.814036330f, - -0.579564559f, -0.814926329f, - -0.578313796f, -0.815814411f, - -0.577061673f, -0.816700573f, - -0.575808191f, -0.817584813f, - -0.574553355f, -0.818467130f, - -0.573297167f, -0.819347520f, - -0.572039629f, -0.820225983f, - -0.570780746f, -0.821102515f, - -0.569520519f, -0.821977115f, - -0.568258953f, -0.822849781f, - -0.566996049f, -0.823720511f, - -0.565731811f, -0.824589303f, - -0.564466242f, -0.825456154f, - -0.563199344f, -0.826321063f, - -0.561931121f, -0.827184027f, - -0.560661576f, -0.828045045f, - -0.559390712f, -0.828904115f, - -0.558118531f, -0.829761234f, - -0.556845037f, -0.830616400f, - -0.555570233f, -0.831469612f, - -0.554294121f, -0.832320868f, - -0.553016706f, -0.833170165f, - -0.551737988f, -0.834017501f, - -0.550457973f, -0.834862875f, - -0.549176662f, -0.835706284f, - -0.547894059f, -0.836547727f, - -0.546610167f, -0.837387202f, - -0.545324988f, -0.838224706f, - -0.544038527f, -0.839060237f, - -0.542750785f, -0.839893794f, - -0.541461766f, -0.840725375f, - -0.540171473f, -0.841554977f, - -0.538879909f, -0.842382600f, - -0.537587076f, -0.843208240f, - -0.536292979f, -0.844031895f, - -0.534997620f, -0.844853565f, - -0.533701002f, -0.845673247f, - -0.532403128f, -0.846490939f, - -0.531104001f, -0.847306639f, - -0.529803625f, -0.848120345f, - -0.528502002f, -0.848932055f, - -0.527199135f, -0.849741768f, - -0.525895027f, -0.850549481f, - -0.524589683f, -0.851355193f, - -0.523283103f, -0.852158902f, - -0.521975293f, -0.852960605f, - -0.520666254f, -0.853760301f, - -0.519355990f, -0.854557988f, - -0.518044504f, -0.855353665f, - -0.516731799f, -0.856147328f, - -0.515417878f, -0.856938977f, - -0.514102744f, -0.857728610f, - -0.512786401f, -0.858516224f, - -0.511468850f, -0.859301818f, - -0.510150097f, -0.860085390f, - -0.508830143f, -0.860866939f, - -0.507508991f, -0.861646461f, - -0.506186645f, -0.862423956f, - -0.504863109f, -0.863199422f, - -0.503538384f, -0.863972856f, - -0.502212474f, -0.864744258f, - -0.500885383f, -0.865513624f, - -0.499557113f, -0.866280954f, - -0.498227667f, -0.867046246f, - -0.496897049f, -0.867809497f, - -0.495565262f, -0.868570706f, - -0.494232309f, -0.869329871f, - -0.492898192f, -0.870086991f, - -0.491562916f, -0.870842063f, - -0.490226483f, -0.871595087f, - -0.488888897f, -0.872346059f, - -0.487550160f, -0.873094978f, - -0.486210276f, -0.873841843f, - -0.484869248f, -0.874586652f, - -0.483527079f, -0.875329403f, - -0.482183772f, -0.876070094f, - -0.480839331f, -0.876808724f, - -0.479493758f, -0.877545290f, - -0.478147056f, -0.878279792f, - -0.476799230f, -0.879012226f, - -0.475450282f, -0.879742593f, - -0.474100215f, -0.880470889f, - -0.472749032f, -0.881197113f, - -0.471396737f, -0.881921264f, - -0.470043332f, -0.882643340f, - -0.468688822f, -0.883363339f, - -0.467333209f, -0.884081259f, - -0.465976496f, -0.884797098f, - -0.464618686f, -0.885510856f, - -0.463259784f, -0.886222530f, - -0.461899791f, -0.886932119f, - -0.460538711f, -0.887639620f, - -0.459176548f, -0.888345033f, - -0.457813304f, -0.889048356f, - -0.456448982f, -0.889749586f, - -0.455083587f, -0.890448723f, - -0.453717121f, -0.891145765f, - -0.452349587f, -0.891840709f, - -0.450980989f, -0.892533555f, - -0.449611330f, -0.893224301f, - -0.448240612f, -0.893912945f, - -0.446868840f, -0.894599486f, - -0.445496017f, -0.895283921f, - -0.444122145f, -0.895966250f, - -0.442747228f, -0.896646470f, - -0.441371269f, -0.897324581f, - -0.439994271f, -0.898000580f, - -0.438616239f, -0.898674466f, - -0.437237174f, -0.899346237f, - -0.435857080f, -0.900015892f, - -0.434475961f, -0.900683429f, - -0.433093819f, -0.901348847f, - -0.431710658f, -0.902012144f, - -0.430326481f, -0.902673318f, - -0.428941292f, -0.903332368f, - -0.427555093f, -0.903989293f, - -0.426167889f, -0.904644091f, - -0.424779681f, -0.905296759f, - -0.423390474f, -0.905947298f, - -0.422000271f, -0.906595705f, - -0.420609074f, -0.907241978f, - -0.419216888f, -0.907886116f, - -0.417823716f, -0.908528119f, - -0.416429560f, -0.909167983f, - -0.415034424f, -0.909805708f, - -0.413638312f, -0.910441292f, - -0.412241227f, -0.911074734f, - -0.410843171f, -0.911706032f, - -0.409444149f, -0.912335185f, - -0.408044163f, -0.912962190f, - -0.406643217f, -0.913587048f, - -0.405241314f, -0.914209756f, - -0.403838458f, -0.914830312f, - -0.402434651f, -0.915448716f, - -0.401029897f, -0.916064966f, - -0.399624200f, -0.916679060f, - -0.398217562f, -0.917290997f, - -0.396809987f, -0.917900776f, - -0.395401479f, -0.918508394f, - -0.393992040f, -0.919113852f, - -0.392581674f, -0.919717146f, - -0.391170384f, -0.920318277f, - -0.389758174f, -0.920917242f, - -0.388345047f, -0.921514039f, - -0.386931006f, -0.922108669f, - -0.385516054f, -0.922701128f, - -0.384100195f, -0.923291417f, - -0.382683432f, -0.923879533f, - -0.381265769f, -0.924465474f, - -0.379847209f, -0.925049241f, - -0.378427755f, -0.925630831f, - -0.377007410f, -0.926210242f, - -0.375586178f, -0.926787474f, - -0.374164063f, -0.927362526f, - -0.372741067f, -0.927935395f, - -0.371317194f, -0.928506080f, - -0.369892447f, -0.929074581f, - -0.368466830f, -0.929640896f, - -0.367040346f, -0.930205023f, - -0.365612998f, -0.930766961f, - -0.364184790f, -0.931326709f, - -0.362755724f, -0.931884266f, - -0.361325806f, -0.932439629f, - -0.359895037f, -0.932992799f, - -0.358463421f, -0.933543773f, - -0.357030961f, -0.934092550f, - -0.355597662f, -0.934639130f, - -0.354163525f, -0.935183510f, - -0.352728556f, -0.935725689f, - -0.351292756f, -0.936265667f, - -0.349856130f, -0.936803442f, - -0.348418680f, -0.937339012f, - -0.346980411f, -0.937872376f, - -0.345541325f, -0.938403534f, - -0.344101426f, -0.938932484f, - -0.342660717f, -0.939459224f, - -0.341219202f, -0.939983753f, - -0.339776884f, -0.940506071f, - -0.338333767f, -0.941026175f, - -0.336889853f, -0.941544065f, - -0.335445147f, -0.942059740f, - -0.333999651f, -0.942573198f, - -0.332553370f, -0.943084437f, - -0.331106306f, -0.943593458f, - -0.329658463f, -0.944100258f, - -0.328209844f, -0.944604837f, - -0.326760452f, -0.945107193f, - -0.325310292f, -0.945607325f, - -0.323859367f, -0.946105232f, - -0.322407679f, -0.946600913f, - -0.320955232f, -0.947094366f, - -0.319502031f, -0.947585591f, - -0.318048077f, -0.948074586f, - -0.316593376f, -0.948561350f, - -0.315137929f, -0.949045882f, - -0.313681740f, -0.949528181f, - -0.312224814f, -0.950008245f, - -0.310767153f, -0.950486074f, - -0.309308760f, -0.950961666f, - -0.307849640f, -0.951435021f, - -0.306389795f, -0.951906137f, - -0.304929230f, -0.952375013f, - -0.303467947f, -0.952841648f, - -0.302005949f, -0.953306040f, - -0.300543241f, -0.953768190f, - -0.299079826f, -0.954228095f, - -0.297615707f, -0.954685755f, - -0.296150888f, -0.955141168f, - -0.294685372f, -0.955594334f, - -0.293219163f, -0.956045251f, - -0.291752263f, -0.956493919f, - -0.290284677f, -0.956940336f, - -0.288816408f, -0.957384501f, - -0.287347460f, -0.957826413f, - -0.285877835f, -0.958266071f, - -0.284407537f, -0.958703475f, - -0.282936570f, -0.959138622f, - -0.281464938f, -0.959571513f, - -0.279992643f, -0.960002146f, - -0.278519689f, -0.960430519f, - -0.277046080f, -0.960856633f, - -0.275571819f, -0.961280486f, - -0.274096910f, -0.961702077f, - -0.272621355f, -0.962121404f, - -0.271145160f, -0.962538468f, - -0.269668326f, -0.962953267f, - -0.268190857f, -0.963365800f, - -0.266712757f, -0.963776066f, - -0.265234030f, -0.964184064f, - -0.263754679f, -0.964589793f, - -0.262274707f, -0.964993253f, - -0.260794118f, -0.965394442f, - -0.259312915f, -0.965793359f, - -0.257831102f, -0.966190003f, - -0.256348682f, -0.966584374f, - -0.254865660f, -0.966976471f, - -0.253382037f, -0.967366292f, - -0.251897818f, -0.967753837f, - -0.250413007f, -0.968139105f, - -0.248927606f, -0.968522094f, - -0.247441619f, -0.968902805f, - -0.245955050f, -0.969281235f, - -0.244467903f, -0.969657385f, - -0.242980180f, -0.970031253f, - -0.241491885f, -0.970402839f, - -0.240003022f, -0.970772141f, - -0.238513595f, -0.971139158f, - -0.237023606f, -0.971503891f, - -0.235533059f, -0.971866337f, - -0.234041959f, -0.972226497f, - -0.232550307f, -0.972584369f, - -0.231058108f, -0.972939952f, - -0.229565366f, -0.973293246f, - -0.228072083f, -0.973644250f, - -0.226578264f, -0.973992962f, - -0.225083911f, -0.974339383f, - -0.223589029f, -0.974683511f, - -0.222093621f, -0.975025345f, - -0.220597690f, -0.975364885f, - -0.219101240f, -0.975702130f, - -0.217604275f, -0.976037079f, - -0.216106797f, -0.976369731f, - -0.214608811f, -0.976700086f, - -0.213110320f, -0.977028143f, - -0.211611327f, -0.977353900f, - -0.210111837f, -0.977677358f, - -0.208611852f, -0.977998515f, - -0.207111376f, -0.978317371f, - -0.205610413f, -0.978633924f, - -0.204108966f, -0.978948175f, - -0.202607039f, -0.979260123f, - -0.201104635f, -0.979569766f, - -0.199601758f, -0.979877104f, - -0.198098411f, -0.980182136f, - -0.196594598f, -0.980484862f, - -0.195090322f, -0.980785280f, - -0.193585587f, -0.981083391f, - -0.192080397f, -0.981379193f, - -0.190574755f, -0.981672686f, - -0.189068664f, -0.981963869f, - -0.187562129f, -0.982252741f, - -0.186055152f, -0.982539302f, - -0.184547737f, -0.982823551f, - -0.183039888f, -0.983105487f, - -0.181531608f, -0.983385110f, - -0.180022901f, -0.983662419f, - -0.178513771f, -0.983937413f, - -0.177004220f, -0.984210092f, - -0.175494253f, -0.984480455f, - -0.173983873f, -0.984748502f, - -0.172473084f, -0.985014231f, - -0.170961889f, -0.985277642f, - -0.169450291f, -0.985538735f, - -0.167938295f, -0.985797509f, - -0.166425904f, -0.986053963f, - -0.164913120f, -0.986308097f, - -0.163399949f, -0.986559910f, - -0.161886394f, -0.986809402f, - -0.160372457f, -0.987056571f, - -0.158858143f, -0.987301418f, - -0.157343456f, -0.987543942f, - -0.155828398f, -0.987784142f, - -0.154312973f, -0.988022017f, - -0.152797185f, -0.988257568f, - -0.151281038f, -0.988490793f, - -0.149764535f, -0.988721692f, - -0.148247679f, -0.988950265f, - -0.146730474f, -0.989176510f, - -0.145212925f, -0.989400428f, - -0.143695033f, -0.989622017f, - -0.142176804f, -0.989841278f, - -0.140658239f, -0.990058210f, - -0.139139344f, -0.990272812f, - -0.137620122f, -0.990485084f, - -0.136100575f, -0.990695025f, - -0.134580709f, -0.990902635f, - -0.133060525f, -0.991107914f, - -0.131540029f, -0.991310860f, - -0.130019223f, -0.991511473f, - -0.128498111f, -0.991709754f, - -0.126976696f, -0.991905700f, - -0.125454983f, -0.992099313f, - -0.123932975f, -0.992290591f, - -0.122410675f, -0.992479535f, - -0.120888087f, -0.992666142f, - -0.119365215f, -0.992850414f, - -0.117842062f, -0.993032350f, - -0.116318631f, -0.993211949f, - -0.114794927f, -0.993389211f, - -0.113270952f, -0.993564136f, - -0.111746711f, -0.993736722f, - -0.110222207f, -0.993906970f, - -0.108697444f, -0.994074879f, - -0.107172425f, -0.994240449f, - -0.105647154f, -0.994403680f, - -0.104121634f, -0.994564571f, - -0.102595869f, -0.994723121f, - -0.101069863f, -0.994879331f, - -0.099543619f, -0.995033199f, - -0.098017140f, -0.995184727f, - -0.096490431f, -0.995333912f, - -0.094963495f, -0.995480755f, - -0.093436336f, -0.995625256f, - -0.091908956f, -0.995767414f, - -0.090381361f, -0.995907229f, - -0.088853553f, -0.996044701f, - -0.087325535f, -0.996179829f, - -0.085797312f, -0.996312612f, - -0.084268888f, -0.996443051f, - -0.082740265f, -0.996571146f, - -0.081211447f, -0.996696895f, - -0.079682438f, -0.996820299f, - -0.078153242f, -0.996941358f, - -0.076623861f, -0.997060070f, - -0.075094301f, -0.997176437f, - -0.073564564f, -0.997290457f, - -0.072034653f, -0.997402130f, - -0.070504573f, -0.997511456f, - -0.068974328f, -0.997618435f, - -0.067443920f, -0.997723067f, - -0.065913353f, -0.997825350f, - -0.064382631f, -0.997925286f, - -0.062851758f, -0.998022874f, - -0.061320736f, -0.998118113f, - -0.059789571f, -0.998211003f, - -0.058258265f, -0.998301545f, - -0.056726821f, -0.998389737f, - -0.055195244f, -0.998475581f, - -0.053663538f, -0.998559074f, - -0.052131705f, -0.998640218f, - -0.050599749f, -0.998719012f, - -0.049067674f, -0.998795456f, - -0.047535484f, -0.998869550f, - -0.046003182f, -0.998941293f, - -0.044470772f, -0.999010686f, - -0.042938257f, -0.999077728f, - -0.041405641f, -0.999142419f, - -0.039872928f, -0.999204759f, - -0.038340120f, -0.999264747f, - -0.036807223f, -0.999322385f, - -0.035274239f, -0.999377670f, - -0.033741172f, -0.999430605f, - -0.032208025f, -0.999481187f, - -0.030674803f, -0.999529418f, - -0.029141509f, -0.999575296f, - -0.027608146f, -0.999618822f, - -0.026074718f, -0.999659997f, - -0.024541229f, -0.999698819f, - -0.023007681f, -0.999735288f, - -0.021474080f, -0.999769405f, - -0.019940429f, -0.999801170f, - -0.018406730f, -0.999830582f, - -0.016872988f, -0.999857641f, - -0.015339206f, -0.999882347f, - -0.013805389f, -0.999904701f, - -0.012271538f, -0.999924702f, - -0.010737659f, -0.999942350f, - -0.009203755f, -0.999957645f, - -0.007669829f, -0.999970586f, - -0.006135885f, -0.999981175f, - -0.004601926f, -0.999989411f, - -0.003067957f, -0.999995294f, - -0.001533980f, -0.999998823f, - -0.000000000f, -1.000000000f, - 0.001533980f, -0.999998823f, - 0.003067957f, -0.999995294f, - 0.004601926f, -0.999989411f, - 0.006135885f, -0.999981175f, - 0.007669829f, -0.999970586f, - 0.009203755f, -0.999957645f, - 0.010737659f, -0.999942350f, - 0.012271538f, -0.999924702f, - 0.013805389f, -0.999904701f, - 0.015339206f, -0.999882347f, - 0.016872988f, -0.999857641f, - 0.018406730f, -0.999830582f, - 0.019940429f, -0.999801170f, - 0.021474080f, -0.999769405f, - 0.023007681f, -0.999735288f, - 0.024541229f, -0.999698819f, - 0.026074718f, -0.999659997f, - 0.027608146f, -0.999618822f, - 0.029141509f, -0.999575296f, - 0.030674803f, -0.999529418f, - 0.032208025f, -0.999481187f, - 0.033741172f, -0.999430605f, - 0.035274239f, -0.999377670f, - 0.036807223f, -0.999322385f, - 0.038340120f, -0.999264747f, - 0.039872928f, -0.999204759f, - 0.041405641f, -0.999142419f, - 0.042938257f, -0.999077728f, - 0.044470772f, -0.999010686f, - 0.046003182f, -0.998941293f, - 0.047535484f, -0.998869550f, - 0.049067674f, -0.998795456f, - 0.050599749f, -0.998719012f, - 0.052131705f, -0.998640218f, - 0.053663538f, -0.998559074f, - 0.055195244f, -0.998475581f, - 0.056726821f, -0.998389737f, - 0.058258265f, -0.998301545f, - 0.059789571f, -0.998211003f, - 0.061320736f, -0.998118113f, - 0.062851758f, -0.998022874f, - 0.064382631f, -0.997925286f, - 0.065913353f, -0.997825350f, - 0.067443920f, -0.997723067f, - 0.068974328f, -0.997618435f, - 0.070504573f, -0.997511456f, - 0.072034653f, -0.997402130f, - 0.073564564f, -0.997290457f, - 0.075094301f, -0.997176437f, - 0.076623861f, -0.997060070f, - 0.078153242f, -0.996941358f, - 0.079682438f, -0.996820299f, - 0.081211447f, -0.996696895f, - 0.082740265f, -0.996571146f, - 0.084268888f, -0.996443051f, - 0.085797312f, -0.996312612f, - 0.087325535f, -0.996179829f, - 0.088853553f, -0.996044701f, - 0.090381361f, -0.995907229f, - 0.091908956f, -0.995767414f, - 0.093436336f, -0.995625256f, - 0.094963495f, -0.995480755f, - 0.096490431f, -0.995333912f, - 0.098017140f, -0.995184727f, - 0.099543619f, -0.995033199f, - 0.101069863f, -0.994879331f, - 0.102595869f, -0.994723121f, - 0.104121634f, -0.994564571f, - 0.105647154f, -0.994403680f, - 0.107172425f, -0.994240449f, - 0.108697444f, -0.994074879f, - 0.110222207f, -0.993906970f, - 0.111746711f, -0.993736722f, - 0.113270952f, -0.993564136f, - 0.114794927f, -0.993389211f, - 0.116318631f, -0.993211949f, - 0.117842062f, -0.993032350f, - 0.119365215f, -0.992850414f, - 0.120888087f, -0.992666142f, - 0.122410675f, -0.992479535f, - 0.123932975f, -0.992290591f, - 0.125454983f, -0.992099313f, - 0.126976696f, -0.991905700f, - 0.128498111f, -0.991709754f, - 0.130019223f, -0.991511473f, - 0.131540029f, -0.991310860f, - 0.133060525f, -0.991107914f, - 0.134580709f, -0.990902635f, - 0.136100575f, -0.990695025f, - 0.137620122f, -0.990485084f, - 0.139139344f, -0.990272812f, - 0.140658239f, -0.990058210f, - 0.142176804f, -0.989841278f, - 0.143695033f, -0.989622017f, - 0.145212925f, -0.989400428f, - 0.146730474f, -0.989176510f, - 0.148247679f, -0.988950265f, - 0.149764535f, -0.988721692f, - 0.151281038f, -0.988490793f, - 0.152797185f, -0.988257568f, - 0.154312973f, -0.988022017f, - 0.155828398f, -0.987784142f, - 0.157343456f, -0.987543942f, - 0.158858143f, -0.987301418f, - 0.160372457f, -0.987056571f, - 0.161886394f, -0.986809402f, - 0.163399949f, -0.986559910f, - 0.164913120f, -0.986308097f, - 0.166425904f, -0.986053963f, - 0.167938295f, -0.985797509f, - 0.169450291f, -0.985538735f, - 0.170961889f, -0.985277642f, - 0.172473084f, -0.985014231f, - 0.173983873f, -0.984748502f, - 0.175494253f, -0.984480455f, - 0.177004220f, -0.984210092f, - 0.178513771f, -0.983937413f, - 0.180022901f, -0.983662419f, - 0.181531608f, -0.983385110f, - 0.183039888f, -0.983105487f, - 0.184547737f, -0.982823551f, - 0.186055152f, -0.982539302f, - 0.187562129f, -0.982252741f, - 0.189068664f, -0.981963869f, - 0.190574755f, -0.981672686f, - 0.192080397f, -0.981379193f, - 0.193585587f, -0.981083391f, - 0.195090322f, -0.980785280f, - 0.196594598f, -0.980484862f, - 0.198098411f, -0.980182136f, - 0.199601758f, -0.979877104f, - 0.201104635f, -0.979569766f, - 0.202607039f, -0.979260123f, - 0.204108966f, -0.978948175f, - 0.205610413f, -0.978633924f, - 0.207111376f, -0.978317371f, - 0.208611852f, -0.977998515f, - 0.210111837f, -0.977677358f, - 0.211611327f, -0.977353900f, - 0.213110320f, -0.977028143f, - 0.214608811f, -0.976700086f, - 0.216106797f, -0.976369731f, - 0.217604275f, -0.976037079f, - 0.219101240f, -0.975702130f, - 0.220597690f, -0.975364885f, - 0.222093621f, -0.975025345f, - 0.223589029f, -0.974683511f, - 0.225083911f, -0.974339383f, - 0.226578264f, -0.973992962f, - 0.228072083f, -0.973644250f, - 0.229565366f, -0.973293246f, - 0.231058108f, -0.972939952f, - 0.232550307f, -0.972584369f, - 0.234041959f, -0.972226497f, - 0.235533059f, -0.971866337f, - 0.237023606f, -0.971503891f, - 0.238513595f, -0.971139158f, - 0.240003022f, -0.970772141f, - 0.241491885f, -0.970402839f, - 0.242980180f, -0.970031253f, - 0.244467903f, -0.969657385f, - 0.245955050f, -0.969281235f, - 0.247441619f, -0.968902805f, - 0.248927606f, -0.968522094f, - 0.250413007f, -0.968139105f, - 0.251897818f, -0.967753837f, - 0.253382037f, -0.967366292f, - 0.254865660f, -0.966976471f, - 0.256348682f, -0.966584374f, - 0.257831102f, -0.966190003f, - 0.259312915f, -0.965793359f, - 0.260794118f, -0.965394442f, - 0.262274707f, -0.964993253f, - 0.263754679f, -0.964589793f, - 0.265234030f, -0.964184064f, - 0.266712757f, -0.963776066f, - 0.268190857f, -0.963365800f, - 0.269668326f, -0.962953267f, - 0.271145160f, -0.962538468f, - 0.272621355f, -0.962121404f, - 0.274096910f, -0.961702077f, - 0.275571819f, -0.961280486f, - 0.277046080f, -0.960856633f, - 0.278519689f, -0.960430519f, - 0.279992643f, -0.960002146f, - 0.281464938f, -0.959571513f, - 0.282936570f, -0.959138622f, - 0.284407537f, -0.958703475f, - 0.285877835f, -0.958266071f, - 0.287347460f, -0.957826413f, - 0.288816408f, -0.957384501f, - 0.290284677f, -0.956940336f, - 0.291752263f, -0.956493919f, - 0.293219163f, -0.956045251f, - 0.294685372f, -0.955594334f, - 0.296150888f, -0.955141168f, - 0.297615707f, -0.954685755f, - 0.299079826f, -0.954228095f, - 0.300543241f, -0.953768190f, - 0.302005949f, -0.953306040f, - 0.303467947f, -0.952841648f, - 0.304929230f, -0.952375013f, - 0.306389795f, -0.951906137f, - 0.307849640f, -0.951435021f, - 0.309308760f, -0.950961666f, - 0.310767153f, -0.950486074f, - 0.312224814f, -0.950008245f, - 0.313681740f, -0.949528181f, - 0.315137929f, -0.949045882f, - 0.316593376f, -0.948561350f, - 0.318048077f, -0.948074586f, - 0.319502031f, -0.947585591f, - 0.320955232f, -0.947094366f, - 0.322407679f, -0.946600913f, - 0.323859367f, -0.946105232f, - 0.325310292f, -0.945607325f, - 0.326760452f, -0.945107193f, - 0.328209844f, -0.944604837f, - 0.329658463f, -0.944100258f, - 0.331106306f, -0.943593458f, - 0.332553370f, -0.943084437f, - 0.333999651f, -0.942573198f, - 0.335445147f, -0.942059740f, - 0.336889853f, -0.941544065f, - 0.338333767f, -0.941026175f, - 0.339776884f, -0.940506071f, - 0.341219202f, -0.939983753f, - 0.342660717f, -0.939459224f, - 0.344101426f, -0.938932484f, - 0.345541325f, -0.938403534f, - 0.346980411f, -0.937872376f, - 0.348418680f, -0.937339012f, - 0.349856130f, -0.936803442f, - 0.351292756f, -0.936265667f, - 0.352728556f, -0.935725689f, - 0.354163525f, -0.935183510f, - 0.355597662f, -0.934639130f, - 0.357030961f, -0.934092550f, - 0.358463421f, -0.933543773f, - 0.359895037f, -0.932992799f, - 0.361325806f, -0.932439629f, - 0.362755724f, -0.931884266f, - 0.364184790f, -0.931326709f, - 0.365612998f, -0.930766961f, - 0.367040346f, -0.930205023f, - 0.368466830f, -0.929640896f, - 0.369892447f, -0.929074581f, - 0.371317194f, -0.928506080f, - 0.372741067f, -0.927935395f, - 0.374164063f, -0.927362526f, - 0.375586178f, -0.926787474f, - 0.377007410f, -0.926210242f, - 0.378427755f, -0.925630831f, - 0.379847209f, -0.925049241f, - 0.381265769f, -0.924465474f, - 0.382683432f, -0.923879533f, - 0.384100195f, -0.923291417f, - 0.385516054f, -0.922701128f, - 0.386931006f, -0.922108669f, - 0.388345047f, -0.921514039f, - 0.389758174f, -0.920917242f, - 0.391170384f, -0.920318277f, - 0.392581674f, -0.919717146f, - 0.393992040f, -0.919113852f, - 0.395401479f, -0.918508394f, - 0.396809987f, -0.917900776f, - 0.398217562f, -0.917290997f, - 0.399624200f, -0.916679060f, - 0.401029897f, -0.916064966f, - 0.402434651f, -0.915448716f, - 0.403838458f, -0.914830312f, - 0.405241314f, -0.914209756f, - 0.406643217f, -0.913587048f, - 0.408044163f, -0.912962190f, - 0.409444149f, -0.912335185f, - 0.410843171f, -0.911706032f, - 0.412241227f, -0.911074734f, - 0.413638312f, -0.910441292f, - 0.415034424f, -0.909805708f, - 0.416429560f, -0.909167983f, - 0.417823716f, -0.908528119f, - 0.419216888f, -0.907886116f, - 0.420609074f, -0.907241978f, - 0.422000271f, -0.906595705f, - 0.423390474f, -0.905947298f, - 0.424779681f, -0.905296759f, - 0.426167889f, -0.904644091f, - 0.427555093f, -0.903989293f, - 0.428941292f, -0.903332368f, - 0.430326481f, -0.902673318f, - 0.431710658f, -0.902012144f, - 0.433093819f, -0.901348847f, - 0.434475961f, -0.900683429f, - 0.435857080f, -0.900015892f, - 0.437237174f, -0.899346237f, - 0.438616239f, -0.898674466f, - 0.439994271f, -0.898000580f, - 0.441371269f, -0.897324581f, - 0.442747228f, -0.896646470f, - 0.444122145f, -0.895966250f, - 0.445496017f, -0.895283921f, - 0.446868840f, -0.894599486f, - 0.448240612f, -0.893912945f, - 0.449611330f, -0.893224301f, - 0.450980989f, -0.892533555f, - 0.452349587f, -0.891840709f, - 0.453717121f, -0.891145765f, - 0.455083587f, -0.890448723f, - 0.456448982f, -0.889749586f, - 0.457813304f, -0.889048356f, - 0.459176548f, -0.888345033f, - 0.460538711f, -0.887639620f, - 0.461899791f, -0.886932119f, - 0.463259784f, -0.886222530f, - 0.464618686f, -0.885510856f, - 0.465976496f, -0.884797098f, - 0.467333209f, -0.884081259f, - 0.468688822f, -0.883363339f, - 0.470043332f, -0.882643340f, - 0.471396737f, -0.881921264f, - 0.472749032f, -0.881197113f, - 0.474100215f, -0.880470889f, - 0.475450282f, -0.879742593f, - 0.476799230f, -0.879012226f, - 0.478147056f, -0.878279792f, - 0.479493758f, -0.877545290f, - 0.480839331f, -0.876808724f, - 0.482183772f, -0.876070094f, - 0.483527079f, -0.875329403f, - 0.484869248f, -0.874586652f, - 0.486210276f, -0.873841843f, - 0.487550160f, -0.873094978f, - 0.488888897f, -0.872346059f, - 0.490226483f, -0.871595087f, - 0.491562916f, -0.870842063f, - 0.492898192f, -0.870086991f, - 0.494232309f, -0.869329871f, - 0.495565262f, -0.868570706f, - 0.496897049f, -0.867809497f, - 0.498227667f, -0.867046246f, - 0.499557113f, -0.866280954f, - 0.500885383f, -0.865513624f, - 0.502212474f, -0.864744258f, - 0.503538384f, -0.863972856f, - 0.504863109f, -0.863199422f, - 0.506186645f, -0.862423956f, - 0.507508991f, -0.861646461f, - 0.508830143f, -0.860866939f, - 0.510150097f, -0.860085390f, - 0.511468850f, -0.859301818f, - 0.512786401f, -0.858516224f, - 0.514102744f, -0.857728610f, - 0.515417878f, -0.856938977f, - 0.516731799f, -0.856147328f, - 0.518044504f, -0.855353665f, - 0.519355990f, -0.854557988f, - 0.520666254f, -0.853760301f, - 0.521975293f, -0.852960605f, - 0.523283103f, -0.852158902f, - 0.524589683f, -0.851355193f, - 0.525895027f, -0.850549481f, - 0.527199135f, -0.849741768f, - 0.528502002f, -0.848932055f, - 0.529803625f, -0.848120345f, - 0.531104001f, -0.847306639f, - 0.532403128f, -0.846490939f, - 0.533701002f, -0.845673247f, - 0.534997620f, -0.844853565f, - 0.536292979f, -0.844031895f, - 0.537587076f, -0.843208240f, - 0.538879909f, -0.842382600f, - 0.540171473f, -0.841554977f, - 0.541461766f, -0.840725375f, - 0.542750785f, -0.839893794f, - 0.544038527f, -0.839060237f, - 0.545324988f, -0.838224706f, - 0.546610167f, -0.837387202f, - 0.547894059f, -0.836547727f, - 0.549176662f, -0.835706284f, - 0.550457973f, -0.834862875f, - 0.551737988f, -0.834017501f, - 0.553016706f, -0.833170165f, - 0.554294121f, -0.832320868f, - 0.555570233f, -0.831469612f, - 0.556845037f, -0.830616400f, - 0.558118531f, -0.829761234f, - 0.559390712f, -0.828904115f, - 0.560661576f, -0.828045045f, - 0.561931121f, -0.827184027f, - 0.563199344f, -0.826321063f, - 0.564466242f, -0.825456154f, - 0.565731811f, -0.824589303f, - 0.566996049f, -0.823720511f, - 0.568258953f, -0.822849781f, - 0.569520519f, -0.821977115f, - 0.570780746f, -0.821102515f, - 0.572039629f, -0.820225983f, - 0.573297167f, -0.819347520f, - 0.574553355f, -0.818467130f, - 0.575808191f, -0.817584813f, - 0.577061673f, -0.816700573f, - 0.578313796f, -0.815814411f, - 0.579564559f, -0.814926329f, - 0.580813958f, -0.814036330f, - 0.582061990f, -0.813144415f, - 0.583308653f, -0.812250587f, - 0.584553943f, -0.811354847f, - 0.585797857f, -0.810457198f, - 0.587040394f, -0.809557642f, - 0.588281548f, -0.808656182f, - 0.589521319f, -0.807752818f, - 0.590759702f, -0.806847554f, - 0.591996695f, -0.805940391f, - 0.593232295f, -0.805031331f, - 0.594466499f, -0.804120377f, - 0.595699304f, -0.803207531f, - 0.596930708f, -0.802292796f, - 0.598160707f, -0.801376172f, - 0.599389298f, -0.800457662f, - 0.600616479f, -0.799537269f, - 0.601842247f, -0.798614995f, - 0.603066599f, -0.797690841f, - 0.604289531f, -0.796764810f, - 0.605511041f, -0.795836905f, - 0.606731127f, -0.794907126f, - 0.607949785f, -0.793975478f, - 0.609167012f, -0.793041960f, - 0.610382806f, -0.792106577f, - 0.611597164f, -0.791169330f, - 0.612810082f, -0.790230221f, - 0.614021559f, -0.789289253f, - 0.615231591f, -0.788346428f, - 0.616440175f, -0.787401747f, - 0.617647308f, -0.786455214f, - 0.618852988f, -0.785506830f, - 0.620057212f, -0.784556597f, - 0.621259977f, -0.783604519f, - 0.622461279f, -0.782650596f, - 0.623661118f, -0.781694832f, - 0.624859488f, -0.780737229f, - 0.626056388f, -0.779777788f, - 0.627251815f, -0.778816512f, - 0.628445767f, -0.777853404f, - 0.629638239f, -0.776888466f, - 0.630829230f, -0.775921699f, - 0.632018736f, -0.774953107f, - 0.633206755f, -0.773982691f, - 0.634393284f, -0.773010453f, - 0.635578320f, -0.772036397f, - 0.636761861f, -0.771060524f, - 0.637943904f, -0.770082837f, - 0.639124445f, -0.769103338f, - 0.640303482f, -0.768122029f, - 0.641481013f, -0.767138912f, - 0.642657034f, -0.766153990f, - 0.643831543f, -0.765167266f, - 0.645004537f, -0.764178741f, - 0.646176013f, -0.763188417f, - 0.647345969f, -0.762196298f, - 0.648514401f, -0.761202385f, - 0.649681307f, -0.760206682f, - 0.650846685f, -0.759209189f, - 0.652010531f, -0.758209910f, - 0.653172843f, -0.757208847f, - 0.654333618f, -0.756206001f, - 0.655492853f, -0.755201377f, - 0.656650546f, -0.754194975f, - 0.657806693f, -0.753186799f, - 0.658961293f, -0.752176850f, - 0.660114342f, -0.751165132f, - 0.661265838f, -0.750151646f, - 0.662415778f, -0.749136395f, - 0.663564159f, -0.748119380f, - 0.664710978f, -0.747100606f, - 0.665856234f, -0.746080074f, - 0.666999922f, -0.745057785f, - 0.668142041f, -0.744033744f, - 0.669282588f, -0.743007952f, - 0.670421560f, -0.741980412f, - 0.671558955f, -0.740951125f, - 0.672694769f, -0.739920095f, - 0.673829000f, -0.738887324f, - 0.674961646f, -0.737852815f, - 0.676092704f, -0.736816569f, - 0.677222170f, -0.735778589f, - 0.678350043f, -0.734738878f, - 0.679476320f, -0.733697438f, - 0.680600998f, -0.732654272f, - 0.681724074f, -0.731609381f, - 0.682845546f, -0.730562769f, - 0.683965412f, -0.729514438f, - 0.685083668f, -0.728464390f, - 0.686200312f, -0.727412629f, - 0.687315341f, -0.726359155f, - 0.688428753f, -0.725303972f, - 0.689540545f, -0.724247083f, - 0.690650714f, -0.723188489f, - 0.691759258f, -0.722128194f, - 0.692866175f, -0.721066199f, - 0.693971461f, -0.720002508f, - 0.695075114f, -0.718937122f, - 0.696177131f, -0.717870045f, - 0.697277511f, -0.716801279f, - 0.698376249f, -0.715730825f, - 0.699473345f, -0.714658688f, - 0.700568794f, -0.713584869f, - 0.701662595f, -0.712509371f, - 0.702754744f, -0.711432196f, - 0.703845241f, -0.710353347f, - 0.704934080f, -0.709272826f, - 0.706021261f, -0.708190637f, - 0.707106781f, -0.707106781f, - 0.708190637f, -0.706021261f, - 0.709272826f, -0.704934080f, - 0.710353347f, -0.703845241f, - 0.711432196f, -0.702754744f, - 0.712509371f, -0.701662595f, - 0.713584869f, -0.700568794f, - 0.714658688f, -0.699473345f, - 0.715730825f, -0.698376249f, - 0.716801279f, -0.697277511f, - 0.717870045f, -0.696177131f, - 0.718937122f, -0.695075114f, - 0.720002508f, -0.693971461f, - 0.721066199f, -0.692866175f, - 0.722128194f, -0.691759258f, - 0.723188489f, -0.690650714f, - 0.724247083f, -0.689540545f, - 0.725303972f, -0.688428753f, - 0.726359155f, -0.687315341f, - 0.727412629f, -0.686200312f, - 0.728464390f, -0.685083668f, - 0.729514438f, -0.683965412f, - 0.730562769f, -0.682845546f, - 0.731609381f, -0.681724074f, - 0.732654272f, -0.680600998f, - 0.733697438f, -0.679476320f, - 0.734738878f, -0.678350043f, - 0.735778589f, -0.677222170f, - 0.736816569f, -0.676092704f, - 0.737852815f, -0.674961646f, - 0.738887324f, -0.673829000f, - 0.739920095f, -0.672694769f, - 0.740951125f, -0.671558955f, - 0.741980412f, -0.670421560f, - 0.743007952f, -0.669282588f, - 0.744033744f, -0.668142041f, - 0.745057785f, -0.666999922f, - 0.746080074f, -0.665856234f, - 0.747100606f, -0.664710978f, - 0.748119380f, -0.663564159f, - 0.749136395f, -0.662415778f, - 0.750151646f, -0.661265838f, - 0.751165132f, -0.660114342f, - 0.752176850f, -0.658961293f, - 0.753186799f, -0.657806693f, - 0.754194975f, -0.656650546f, - 0.755201377f, -0.655492853f, - 0.756206001f, -0.654333618f, - 0.757208847f, -0.653172843f, - 0.758209910f, -0.652010531f, - 0.759209189f, -0.650846685f, - 0.760206682f, -0.649681307f, - 0.761202385f, -0.648514401f, - 0.762196298f, -0.647345969f, - 0.763188417f, -0.646176013f, - 0.764178741f, -0.645004537f, - 0.765167266f, -0.643831543f, - 0.766153990f, -0.642657034f, - 0.767138912f, -0.641481013f, - 0.768122029f, -0.640303482f, - 0.769103338f, -0.639124445f, - 0.770082837f, -0.637943904f, - 0.771060524f, -0.636761861f, - 0.772036397f, -0.635578320f, - 0.773010453f, -0.634393284f, - 0.773982691f, -0.633206755f, - 0.774953107f, -0.632018736f, - 0.775921699f, -0.630829230f, - 0.776888466f, -0.629638239f, - 0.777853404f, -0.628445767f, - 0.778816512f, -0.627251815f, - 0.779777788f, -0.626056388f, - 0.780737229f, -0.624859488f, - 0.781694832f, -0.623661118f, - 0.782650596f, -0.622461279f, - 0.783604519f, -0.621259977f, - 0.784556597f, -0.620057212f, - 0.785506830f, -0.618852988f, - 0.786455214f, -0.617647308f, - 0.787401747f, -0.616440175f, - 0.788346428f, -0.615231591f, - 0.789289253f, -0.614021559f, - 0.790230221f, -0.612810082f, - 0.791169330f, -0.611597164f, - 0.792106577f, -0.610382806f, - 0.793041960f, -0.609167012f, - 0.793975478f, -0.607949785f, - 0.794907126f, -0.606731127f, - 0.795836905f, -0.605511041f, - 0.796764810f, -0.604289531f, - 0.797690841f, -0.603066599f, - 0.798614995f, -0.601842247f, - 0.799537269f, -0.600616479f, - 0.800457662f, -0.599389298f, - 0.801376172f, -0.598160707f, - 0.802292796f, -0.596930708f, - 0.803207531f, -0.595699304f, - 0.804120377f, -0.594466499f, - 0.805031331f, -0.593232295f, - 0.805940391f, -0.591996695f, - 0.806847554f, -0.590759702f, - 0.807752818f, -0.589521319f, - 0.808656182f, -0.588281548f, - 0.809557642f, -0.587040394f, - 0.810457198f, -0.585797857f, - 0.811354847f, -0.584553943f, - 0.812250587f, -0.583308653f, - 0.813144415f, -0.582061990f, - 0.814036330f, -0.580813958f, - 0.814926329f, -0.579564559f, - 0.815814411f, -0.578313796f, - 0.816700573f, -0.577061673f, - 0.817584813f, -0.575808191f, - 0.818467130f, -0.574553355f, - 0.819347520f, -0.573297167f, - 0.820225983f, -0.572039629f, - 0.821102515f, -0.570780746f, - 0.821977115f, -0.569520519f, - 0.822849781f, -0.568258953f, - 0.823720511f, -0.566996049f, - 0.824589303f, -0.565731811f, - 0.825456154f, -0.564466242f, - 0.826321063f, -0.563199344f, - 0.827184027f, -0.561931121f, - 0.828045045f, -0.560661576f, - 0.828904115f, -0.559390712f, - 0.829761234f, -0.558118531f, - 0.830616400f, -0.556845037f, - 0.831469612f, -0.555570233f, - 0.832320868f, -0.554294121f, - 0.833170165f, -0.553016706f, - 0.834017501f, -0.551737988f, - 0.834862875f, -0.550457973f, - 0.835706284f, -0.549176662f, - 0.836547727f, -0.547894059f, - 0.837387202f, -0.546610167f, - 0.838224706f, -0.545324988f, - 0.839060237f, -0.544038527f, - 0.839893794f, -0.542750785f, - 0.840725375f, -0.541461766f, - 0.841554977f, -0.540171473f, - 0.842382600f, -0.538879909f, - 0.843208240f, -0.537587076f, - 0.844031895f, -0.536292979f, - 0.844853565f, -0.534997620f, - 0.845673247f, -0.533701002f, - 0.846490939f, -0.532403128f, - 0.847306639f, -0.531104001f, - 0.848120345f, -0.529803625f, - 0.848932055f, -0.528502002f, - 0.849741768f, -0.527199135f, - 0.850549481f, -0.525895027f, - 0.851355193f, -0.524589683f, - 0.852158902f, -0.523283103f, - 0.852960605f, -0.521975293f, - 0.853760301f, -0.520666254f, - 0.854557988f, -0.519355990f, - 0.855353665f, -0.518044504f, - 0.856147328f, -0.516731799f, - 0.856938977f, -0.515417878f, - 0.857728610f, -0.514102744f, - 0.858516224f, -0.512786401f, - 0.859301818f, -0.511468850f, - 0.860085390f, -0.510150097f, - 0.860866939f, -0.508830143f, - 0.861646461f, -0.507508991f, - 0.862423956f, -0.506186645f, - 0.863199422f, -0.504863109f, - 0.863972856f, -0.503538384f, - 0.864744258f, -0.502212474f, - 0.865513624f, -0.500885383f, - 0.866280954f, -0.499557113f, - 0.867046246f, -0.498227667f, - 0.867809497f, -0.496897049f, - 0.868570706f, -0.495565262f, - 0.869329871f, -0.494232309f, - 0.870086991f, -0.492898192f, - 0.870842063f, -0.491562916f, - 0.871595087f, -0.490226483f, - 0.872346059f, -0.488888897f, - 0.873094978f, -0.487550160f, - 0.873841843f, -0.486210276f, - 0.874586652f, -0.484869248f, - 0.875329403f, -0.483527079f, - 0.876070094f, -0.482183772f, - 0.876808724f, -0.480839331f, - 0.877545290f, -0.479493758f, - 0.878279792f, -0.478147056f, - 0.879012226f, -0.476799230f, - 0.879742593f, -0.475450282f, - 0.880470889f, -0.474100215f, - 0.881197113f, -0.472749032f, - 0.881921264f, -0.471396737f, - 0.882643340f, -0.470043332f, - 0.883363339f, -0.468688822f, - 0.884081259f, -0.467333209f, - 0.884797098f, -0.465976496f, - 0.885510856f, -0.464618686f, - 0.886222530f, -0.463259784f, - 0.886932119f, -0.461899791f, - 0.887639620f, -0.460538711f, - 0.888345033f, -0.459176548f, - 0.889048356f, -0.457813304f, - 0.889749586f, -0.456448982f, - 0.890448723f, -0.455083587f, - 0.891145765f, -0.453717121f, - 0.891840709f, -0.452349587f, - 0.892533555f, -0.450980989f, - 0.893224301f, -0.449611330f, - 0.893912945f, -0.448240612f, - 0.894599486f, -0.446868840f, - 0.895283921f, -0.445496017f, - 0.895966250f, -0.444122145f, - 0.896646470f, -0.442747228f, - 0.897324581f, -0.441371269f, - 0.898000580f, -0.439994271f, - 0.898674466f, -0.438616239f, - 0.899346237f, -0.437237174f, - 0.900015892f, -0.435857080f, - 0.900683429f, -0.434475961f, - 0.901348847f, -0.433093819f, - 0.902012144f, -0.431710658f, - 0.902673318f, -0.430326481f, - 0.903332368f, -0.428941292f, - 0.903989293f, -0.427555093f, - 0.904644091f, -0.426167889f, - 0.905296759f, -0.424779681f, - 0.905947298f, -0.423390474f, - 0.906595705f, -0.422000271f, - 0.907241978f, -0.420609074f, - 0.907886116f, -0.419216888f, - 0.908528119f, -0.417823716f, - 0.909167983f, -0.416429560f, - 0.909805708f, -0.415034424f, - 0.910441292f, -0.413638312f, - 0.911074734f, -0.412241227f, - 0.911706032f, -0.410843171f, - 0.912335185f, -0.409444149f, - 0.912962190f, -0.408044163f, - 0.913587048f, -0.406643217f, - 0.914209756f, -0.405241314f, - 0.914830312f, -0.403838458f, - 0.915448716f, -0.402434651f, - 0.916064966f, -0.401029897f, - 0.916679060f, -0.399624200f, - 0.917290997f, -0.398217562f, - 0.917900776f, -0.396809987f, - 0.918508394f, -0.395401479f, - 0.919113852f, -0.393992040f, - 0.919717146f, -0.392581674f, - 0.920318277f, -0.391170384f, - 0.920917242f, -0.389758174f, - 0.921514039f, -0.388345047f, - 0.922108669f, -0.386931006f, - 0.922701128f, -0.385516054f, - 0.923291417f, -0.384100195f, - 0.923879533f, -0.382683432f, - 0.924465474f, -0.381265769f, - 0.925049241f, -0.379847209f, - 0.925630831f, -0.378427755f, - 0.926210242f, -0.377007410f, - 0.926787474f, -0.375586178f, - 0.927362526f, -0.374164063f, - 0.927935395f, -0.372741067f, - 0.928506080f, -0.371317194f, - 0.929074581f, -0.369892447f, - 0.929640896f, -0.368466830f, - 0.930205023f, -0.367040346f, - 0.930766961f, -0.365612998f, - 0.931326709f, -0.364184790f, - 0.931884266f, -0.362755724f, - 0.932439629f, -0.361325806f, - 0.932992799f, -0.359895037f, - 0.933543773f, -0.358463421f, - 0.934092550f, -0.357030961f, - 0.934639130f, -0.355597662f, - 0.935183510f, -0.354163525f, - 0.935725689f, -0.352728556f, - 0.936265667f, -0.351292756f, - 0.936803442f, -0.349856130f, - 0.937339012f, -0.348418680f, - 0.937872376f, -0.346980411f, - 0.938403534f, -0.345541325f, - 0.938932484f, -0.344101426f, - 0.939459224f, -0.342660717f, - 0.939983753f, -0.341219202f, - 0.940506071f, -0.339776884f, - 0.941026175f, -0.338333767f, - 0.941544065f, -0.336889853f, - 0.942059740f, -0.335445147f, - 0.942573198f, -0.333999651f, - 0.943084437f, -0.332553370f, - 0.943593458f, -0.331106306f, - 0.944100258f, -0.329658463f, - 0.944604837f, -0.328209844f, - 0.945107193f, -0.326760452f, - 0.945607325f, -0.325310292f, - 0.946105232f, -0.323859367f, - 0.946600913f, -0.322407679f, - 0.947094366f, -0.320955232f, - 0.947585591f, -0.319502031f, - 0.948074586f, -0.318048077f, - 0.948561350f, -0.316593376f, - 0.949045882f, -0.315137929f, - 0.949528181f, -0.313681740f, - 0.950008245f, -0.312224814f, - 0.950486074f, -0.310767153f, - 0.950961666f, -0.309308760f, - 0.951435021f, -0.307849640f, - 0.951906137f, -0.306389795f, - 0.952375013f, -0.304929230f, - 0.952841648f, -0.303467947f, - 0.953306040f, -0.302005949f, - 0.953768190f, -0.300543241f, - 0.954228095f, -0.299079826f, - 0.954685755f, -0.297615707f, - 0.955141168f, -0.296150888f, - 0.955594334f, -0.294685372f, - 0.956045251f, -0.293219163f, - 0.956493919f, -0.291752263f, - 0.956940336f, -0.290284677f, - 0.957384501f, -0.288816408f, - 0.957826413f, -0.287347460f, - 0.958266071f, -0.285877835f, - 0.958703475f, -0.284407537f, - 0.959138622f, -0.282936570f, - 0.959571513f, -0.281464938f, - 0.960002146f, -0.279992643f, - 0.960430519f, -0.278519689f, - 0.960856633f, -0.277046080f, - 0.961280486f, -0.275571819f, - 0.961702077f, -0.274096910f, - 0.962121404f, -0.272621355f, - 0.962538468f, -0.271145160f, - 0.962953267f, -0.269668326f, - 0.963365800f, -0.268190857f, - 0.963776066f, -0.266712757f, - 0.964184064f, -0.265234030f, - 0.964589793f, -0.263754679f, - 0.964993253f, -0.262274707f, - 0.965394442f, -0.260794118f, - 0.965793359f, -0.259312915f, - 0.966190003f, -0.257831102f, - 0.966584374f, -0.256348682f, - 0.966976471f, -0.254865660f, - 0.967366292f, -0.253382037f, - 0.967753837f, -0.251897818f, - 0.968139105f, -0.250413007f, - 0.968522094f, -0.248927606f, - 0.968902805f, -0.247441619f, - 0.969281235f, -0.245955050f, - 0.969657385f, -0.244467903f, - 0.970031253f, -0.242980180f, - 0.970402839f, -0.241491885f, - 0.970772141f, -0.240003022f, - 0.971139158f, -0.238513595f, - 0.971503891f, -0.237023606f, - 0.971866337f, -0.235533059f, - 0.972226497f, -0.234041959f, - 0.972584369f, -0.232550307f, - 0.972939952f, -0.231058108f, - 0.973293246f, -0.229565366f, - 0.973644250f, -0.228072083f, - 0.973992962f, -0.226578264f, - 0.974339383f, -0.225083911f, - 0.974683511f, -0.223589029f, - 0.975025345f, -0.222093621f, - 0.975364885f, -0.220597690f, - 0.975702130f, -0.219101240f, - 0.976037079f, -0.217604275f, - 0.976369731f, -0.216106797f, - 0.976700086f, -0.214608811f, - 0.977028143f, -0.213110320f, - 0.977353900f, -0.211611327f, - 0.977677358f, -0.210111837f, - 0.977998515f, -0.208611852f, - 0.978317371f, -0.207111376f, - 0.978633924f, -0.205610413f, - 0.978948175f, -0.204108966f, - 0.979260123f, -0.202607039f, - 0.979569766f, -0.201104635f, - 0.979877104f, -0.199601758f, - 0.980182136f, -0.198098411f, - 0.980484862f, -0.196594598f, - 0.980785280f, -0.195090322f, - 0.981083391f, -0.193585587f, - 0.981379193f, -0.192080397f, - 0.981672686f, -0.190574755f, - 0.981963869f, -0.189068664f, - 0.982252741f, -0.187562129f, - 0.982539302f, -0.186055152f, - 0.982823551f, -0.184547737f, - 0.983105487f, -0.183039888f, - 0.983385110f, -0.181531608f, - 0.983662419f, -0.180022901f, - 0.983937413f, -0.178513771f, - 0.984210092f, -0.177004220f, - 0.984480455f, -0.175494253f, - 0.984748502f, -0.173983873f, - 0.985014231f, -0.172473084f, - 0.985277642f, -0.170961889f, - 0.985538735f, -0.169450291f, - 0.985797509f, -0.167938295f, - 0.986053963f, -0.166425904f, - 0.986308097f, -0.164913120f, - 0.986559910f, -0.163399949f, - 0.986809402f, -0.161886394f, - 0.987056571f, -0.160372457f, - 0.987301418f, -0.158858143f, - 0.987543942f, -0.157343456f, - 0.987784142f, -0.155828398f, - 0.988022017f, -0.154312973f, - 0.988257568f, -0.152797185f, - 0.988490793f, -0.151281038f, - 0.988721692f, -0.149764535f, - 0.988950265f, -0.148247679f, - 0.989176510f, -0.146730474f, - 0.989400428f, -0.145212925f, - 0.989622017f, -0.143695033f, - 0.989841278f, -0.142176804f, - 0.990058210f, -0.140658239f, - 0.990272812f, -0.139139344f, - 0.990485084f, -0.137620122f, - 0.990695025f, -0.136100575f, - 0.990902635f, -0.134580709f, - 0.991107914f, -0.133060525f, - 0.991310860f, -0.131540029f, - 0.991511473f, -0.130019223f, - 0.991709754f, -0.128498111f, - 0.991905700f, -0.126976696f, - 0.992099313f, -0.125454983f, - 0.992290591f, -0.123932975f, - 0.992479535f, -0.122410675f, - 0.992666142f, -0.120888087f, - 0.992850414f, -0.119365215f, - 0.993032350f, -0.117842062f, - 0.993211949f, -0.116318631f, - 0.993389211f, -0.114794927f, - 0.993564136f, -0.113270952f, - 0.993736722f, -0.111746711f, - 0.993906970f, -0.110222207f, - 0.994074879f, -0.108697444f, - 0.994240449f, -0.107172425f, - 0.994403680f, -0.105647154f, - 0.994564571f, -0.104121634f, - 0.994723121f, -0.102595869f, - 0.994879331f, -0.101069863f, - 0.995033199f, -0.099543619f, - 0.995184727f, -0.098017140f, - 0.995333912f, -0.096490431f, - 0.995480755f, -0.094963495f, - 0.995625256f, -0.093436336f, - 0.995767414f, -0.091908956f, - 0.995907229f, -0.090381361f, - 0.996044701f, -0.088853553f, - 0.996179829f, -0.087325535f, - 0.996312612f, -0.085797312f, - 0.996443051f, -0.084268888f, - 0.996571146f, -0.082740265f, - 0.996696895f, -0.081211447f, - 0.996820299f, -0.079682438f, - 0.996941358f, -0.078153242f, - 0.997060070f, -0.076623861f, - 0.997176437f, -0.075094301f, - 0.997290457f, -0.073564564f, - 0.997402130f, -0.072034653f, - 0.997511456f, -0.070504573f, - 0.997618435f, -0.068974328f, - 0.997723067f, -0.067443920f, - 0.997825350f, -0.065913353f, - 0.997925286f, -0.064382631f, - 0.998022874f, -0.062851758f, - 0.998118113f, -0.061320736f, - 0.998211003f, -0.059789571f, - 0.998301545f, -0.058258265f, - 0.998389737f, -0.056726821f, - 0.998475581f, -0.055195244f, - 0.998559074f, -0.053663538f, - 0.998640218f, -0.052131705f, - 0.998719012f, -0.050599749f, - 0.998795456f, -0.049067674f, - 0.998869550f, -0.047535484f, - 0.998941293f, -0.046003182f, - 0.999010686f, -0.044470772f, - 0.999077728f, -0.042938257f, - 0.999142419f, -0.041405641f, - 0.999204759f, -0.039872928f, - 0.999264747f, -0.038340120f, - 0.999322385f, -0.036807223f, - 0.999377670f, -0.035274239f, - 0.999430605f, -0.033741172f, - 0.999481187f, -0.032208025f, - 0.999529418f, -0.030674803f, - 0.999575296f, -0.029141509f, - 0.999618822f, -0.027608146f, - 0.999659997f, -0.026074718f, - 0.999698819f, -0.024541229f, - 0.999735288f, -0.023007681f, - 0.999769405f, -0.021474080f, - 0.999801170f, -0.019940429f, - 0.999830582f, -0.018406730f, - 0.999857641f, -0.016872988f, - 0.999882347f, -0.015339206f, - 0.999904701f, -0.013805389f, - 0.999924702f, -0.012271538f, - 0.999942350f, -0.010737659f, - 0.999957645f, -0.009203755f, - 0.999970586f, -0.007669829f, - 0.999981175f, -0.006135885f, - 0.999989411f, -0.004601926f, - 0.999995294f, -0.003067957f, - 0.999998823f, -0.001533980f -}; - -/* -* @brief Q31 Twiddle factors Table -*/ - - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 16 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_16_q31[24] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, - (q31_t)0x7641AF3C, (q31_t)0x30FBC54D, - (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, - (q31_t)0x00000000, (q31_t)0x7FFFFFFF, - (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, - (q31_t)0x89BE50C3, (q31_t)0x30FBC54D, - (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, - (q31_t)0xA57D8666, (q31_t)0xA57D8666, - (q31_t)0xCF043AB2, (q31_t)0x89BE50C3 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 32 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_32_q31[48] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, - (q31_t)0x7D8A5F3F, (q31_t)0x18F8B83C, - (q31_t)0x7641AF3C, (q31_t)0x30FBC54D, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, - (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x471CECE6, (q31_t)0x6A6D98A4, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, - (q31_t)0x18F8B83C, (q31_t)0x7D8A5F3F, - (q31_t)0x00000000, (q31_t)0x7FFFFFFF, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, - (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xB8E31319, (q31_t)0x6A6D98A4, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, - (q31_t)0x9592675B, (q31_t)0x471CECE6, - (q31_t)0x89BE50C3, (q31_t)0x30FBC54D, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, - (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x8275A0C0, (q31_t)0xE70747C3, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, - (q31_t)0x9592675B, (q31_t)0xB8E31319, - (q31_t)0xA57D8666, (q31_t)0xA57D8666, - (q31_t)0xB8E31319, (q31_t)0x9592675B, - (q31_t)0xCF043AB2, (q31_t)0x89BE50C3, - (q31_t)0xE70747C3, (q31_t)0x8275A0C0 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 64 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_64_q31[96] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7F62368F, - (q31_t)0x0C8BD35E, (q31_t)0x7D8A5F3F, (q31_t)0x18F8B83C, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x7641AF3C, - (q31_t)0x30FBC54D, (q31_t)0x70E2CBC6, (q31_t)0x3C56BA70, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x62F201AC, - (q31_t)0x5133CC94, (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x471CECE6, - (q31_t)0x6A6D98A4, (q31_t)0x3C56BA70, (q31_t)0x70E2CBC6, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x25280C5D, - (q31_t)0x7A7D055B, (q31_t)0x18F8B83C, (q31_t)0x7D8A5F3F, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x00000000, - (q31_t)0x7FFFFFFF, (q31_t)0xF3742CA1, (q31_t)0x7F62368F, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xDAD7F3A2, - (q31_t)0x7A7D055B, (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xB8E31319, - (q31_t)0x6A6D98A4, (q31_t)0xAECC336B, (q31_t)0x62F201AC, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0x9D0DFE53, - (q31_t)0x5133CC94, (q31_t)0x9592675B, (q31_t)0x471CECE6, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x89BE50C3, - (q31_t)0x30FBC54D, (q31_t)0x8582FAA4, (q31_t)0x25280C5D, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x809DC970, - (q31_t)0x0C8BD35E, (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x8275A0C0, - (q31_t)0xE70747C3, (q31_t)0x8582FAA4, (q31_t)0xDAD7F3A2, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x8F1D343A, - (q31_t)0xC3A9458F, (q31_t)0x9592675B, (q31_t)0xB8E31319, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0xA57D8666, - (q31_t)0xA57D8666, (q31_t)0xAECC336B, (q31_t)0x9D0DFE53, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xC3A9458F, - (q31_t)0x8F1D343A, (q31_t)0xCF043AB2, (q31_t)0x89BE50C3, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xE70747C3, - (q31_t)0x8275A0C0, (q31_t)0xF3742CA1, (q31_t)0x809DC970 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 128 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_128_q31[192] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FD8878D, - (q31_t)0x0647D97C, (q31_t)0x7F62368F, (q31_t)0x0C8BD35E, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7D8A5F3F, - (q31_t)0x18F8B83C, (q31_t)0x7C29FBEE, (q31_t)0x1F19F97B, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x78848413, - (q31_t)0x2B1F34EB, (q31_t)0x7641AF3C, (q31_t)0x30FBC54D, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x70E2CBC6, - (q31_t)0x3C56BA70, (q31_t)0x6DCA0D14, (q31_t)0x41CE1E64, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x66CF811F, - (q31_t)0x4C3FDFF3, (q31_t)0x62F201AC, (q31_t)0x5133CC94, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5A82799A, - (q31_t)0x5A82799A, (q31_t)0x55F5A4D2, (q31_t)0x5ED77C89, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x4C3FDFF3, - (q31_t)0x66CF811F, (q31_t)0x471CECE6, (q31_t)0x6A6D98A4, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x3C56BA70, - (q31_t)0x70E2CBC6, (q31_t)0x36BA2013, (q31_t)0x73B5EBD0, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x2B1F34EB, - (q31_t)0x78848413, (q31_t)0x25280C5D, (q31_t)0x7A7D055B, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x18F8B83C, - (q31_t)0x7D8A5F3F, (q31_t)0x12C8106E, (q31_t)0x7E9D55FC, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x0647D97C, - (q31_t)0x7FD8878D, (q31_t)0x00000000, (q31_t)0x7FFFFFFF, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF3742CA1, - (q31_t)0x7F62368F, (q31_t)0xED37EF91, (q31_t)0x7E9D55FC, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE0E60684, - (q31_t)0x7C29FBEE, (q31_t)0xDAD7F3A2, (q31_t)0x7A7D055B, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xCF043AB2, - (q31_t)0x7641AF3C, (q31_t)0xC945DFEC, (q31_t)0x73B5EBD0, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xBE31E19B, - (q31_t)0x6DCA0D14, (q31_t)0xB8E31319, (q31_t)0x6A6D98A4, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xAECC336B, - (q31_t)0x62F201AC, (q31_t)0xAA0A5B2D, (q31_t)0x5ED77C89, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA1288376, - (q31_t)0x55F5A4D2, (q31_t)0x9D0DFE53, (q31_t)0x5133CC94, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x9592675B, - (q31_t)0x471CECE6, (q31_t)0x9235F2EB, (q31_t)0x41CE1E64, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8C4A142F, - (q31_t)0x36BA2013, (q31_t)0x89BE50C3, (q31_t)0x30FBC54D, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x8582FAA4, - (q31_t)0x25280C5D, (q31_t)0x83D60411, (q31_t)0x1F19F97B, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x8162AA03, - (q31_t)0x12C8106E, (q31_t)0x809DC970, (q31_t)0x0C8BD35E, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x80000000, - (q31_t)0x00000000, (q31_t)0x80277872, (q31_t)0xF9B82683, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x8162AA03, - (q31_t)0xED37EF91, (q31_t)0x8275A0C0, (q31_t)0xE70747C3, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x8582FAA4, - (q31_t)0xDAD7F3A2, (q31_t)0x877B7BEC, (q31_t)0xD4E0CB14, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x8C4A142F, - (q31_t)0xC945DFEC, (q31_t)0x8F1D343A, (q31_t)0xC3A9458F, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x9592675B, - (q31_t)0xB8E31319, (q31_t)0x99307EE0, (q31_t)0xB3C0200C, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0xA1288376, - (q31_t)0xAA0A5B2D, (q31_t)0xA57D8666, (q31_t)0xA57D8666, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAECC336B, - (q31_t)0x9D0DFE53, (q31_t)0xB3C0200C, (q31_t)0x99307EE0, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xBE31E19B, - (q31_t)0x9235F2EB, (q31_t)0xC3A9458F, (q31_t)0x8F1D343A, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xCF043AB2, - (q31_t)0x89BE50C3, (q31_t)0xD4E0CB14, (q31_t)0x877B7BEC, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xE0E60684, - (q31_t)0x83D60411, (q31_t)0xE70747C3, (q31_t)0x8275A0C0, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xF3742CA1, - (q31_t)0x809DC970, (q31_t)0xF9B82683, (q31_t)0x80277872 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 256 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_256_q31[384] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FF62182, - (q31_t)0x03242ABF, (q31_t)0x7FD8878D, (q31_t)0x0647D97C, - (q31_t)0x7FA736B4, (q31_t)0x096A9049, (q31_t)0x7F62368F, - (q31_t)0x0C8BD35E, (q31_t)0x7F0991C3, (q31_t)0x0FAB272B, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7E1D93E9, - (q31_t)0x15E21444, (q31_t)0x7D8A5F3F, (q31_t)0x18F8B83C, - (q31_t)0x7CE3CEB1, (q31_t)0x1C0B826A, (q31_t)0x7C29FBEE, - (q31_t)0x1F19F97B, (q31_t)0x7B5D039D, (q31_t)0x2223A4C5, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x798A23B1, - (q31_t)0x2826B928, (q31_t)0x78848413, (q31_t)0x2B1F34EB, - (q31_t)0x776C4EDB, (q31_t)0x2E110A62, (q31_t)0x7641AF3C, - (q31_t)0x30FBC54D, (q31_t)0x7504D345, (q31_t)0x33DEF287, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x72552C84, - (q31_t)0x398CDD32, (q31_t)0x70E2CBC6, (q31_t)0x3C56BA70, - (q31_t)0x6F5F02B1, (q31_t)0x3F1749B7, (q31_t)0x6DCA0D14, - (q31_t)0x41CE1E64, (q31_t)0x6C242960, (q31_t)0x447ACD50, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x68A69E81, - (q31_t)0x49B41533, (q31_t)0x66CF811F, (q31_t)0x4C3FDFF3, - (q31_t)0x64E88926, (q31_t)0x4EBFE8A4, (q31_t)0x62F201AC, - (q31_t)0x5133CC94, (q31_t)0x60EC3830, (q31_t)0x539B2AEF, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5CB420DF, - (q31_t)0x5842DD54, (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x5842DD54, (q31_t)0x5CB420DF, (q31_t)0x55F5A4D2, - (q31_t)0x5ED77C89, (q31_t)0x539B2AEF, (q31_t)0x60EC3830, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x4EBFE8A4, - (q31_t)0x64E88926, (q31_t)0x4C3FDFF3, (q31_t)0x66CF811F, - (q31_t)0x49B41533, (q31_t)0x68A69E81, (q31_t)0x471CECE6, - (q31_t)0x6A6D98A4, (q31_t)0x447ACD50, (q31_t)0x6C242960, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x3F1749B7, - (q31_t)0x6F5F02B1, (q31_t)0x3C56BA70, (q31_t)0x70E2CBC6, - (q31_t)0x398CDD32, (q31_t)0x72552C84, (q31_t)0x36BA2013, - (q31_t)0x73B5EBD0, (q31_t)0x33DEF287, (q31_t)0x7504D345, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x2E110A62, - (q31_t)0x776C4EDB, (q31_t)0x2B1F34EB, (q31_t)0x78848413, - (q31_t)0x2826B928, (q31_t)0x798A23B1, (q31_t)0x25280C5D, - (q31_t)0x7A7D055B, (q31_t)0x2223A4C5, (q31_t)0x7B5D039D, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x1C0B826A, - (q31_t)0x7CE3CEB1, (q31_t)0x18F8B83C, (q31_t)0x7D8A5F3F, - (q31_t)0x15E21444, (q31_t)0x7E1D93E9, (q31_t)0x12C8106E, - (q31_t)0x7E9D55FC, (q31_t)0x0FAB272B, (q31_t)0x7F0991C3, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x096A9049, - (q31_t)0x7FA736B4, (q31_t)0x0647D97C, (q31_t)0x7FD8878D, - (q31_t)0x03242ABF, (q31_t)0x7FF62182, (q31_t)0x00000000, - (q31_t)0x7FFFFFFF, (q31_t)0xFCDBD541, (q31_t)0x7FF62182, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF6956FB6, - (q31_t)0x7FA736B4, (q31_t)0xF3742CA1, (q31_t)0x7F62368F, - (q31_t)0xF054D8D4, (q31_t)0x7F0991C3, (q31_t)0xED37EF91, - (q31_t)0x7E9D55FC, (q31_t)0xEA1DEBBB, (q31_t)0x7E1D93E9, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE3F47D95, - (q31_t)0x7CE3CEB1, (q31_t)0xE0E60684, (q31_t)0x7C29FBEE, - (q31_t)0xDDDC5B3A, (q31_t)0x7B5D039D, (q31_t)0xDAD7F3A2, - (q31_t)0x7A7D055B, (q31_t)0xD7D946D7, (q31_t)0x798A23B1, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xD1EEF59E, - (q31_t)0x776C4EDB, (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xCC210D78, (q31_t)0x7504D345, (q31_t)0xC945DFEC, - (q31_t)0x73B5EBD0, (q31_t)0xC67322CD, (q31_t)0x72552C84, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xC0E8B648, - (q31_t)0x6F5F02B1, (q31_t)0xBE31E19B, (q31_t)0x6DCA0D14, - (q31_t)0xBB8532AF, (q31_t)0x6C242960, (q31_t)0xB8E31319, - (q31_t)0x6A6D98A4, (q31_t)0xB64BEACC, (q31_t)0x68A69E81, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xB140175B, - (q31_t)0x64E88926, (q31_t)0xAECC336B, (q31_t)0x62F201AC, - (q31_t)0xAC64D510, (q31_t)0x60EC3830, (q31_t)0xAA0A5B2D, - (q31_t)0x5ED77C89, (q31_t)0xA7BD22AB, (q31_t)0x5CB420DF, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA34BDF20, - (q31_t)0x5842DD54, (q31_t)0xA1288376, (q31_t)0x55F5A4D2, - (q31_t)0x9F13C7D0, (q31_t)0x539B2AEF, (q31_t)0x9D0DFE53, - (q31_t)0x5133CC94, (q31_t)0x9B1776D9, (q31_t)0x4EBFE8A4, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x9759617E, - (q31_t)0x49B41533, (q31_t)0x9592675B, (q31_t)0x471CECE6, - (q31_t)0x93DBD69F, (q31_t)0x447ACD50, (q31_t)0x9235F2EB, - (q31_t)0x41CE1E64, (q31_t)0x90A0FD4E, (q31_t)0x3F1749B7, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8DAAD37B, - (q31_t)0x398CDD32, (q31_t)0x8C4A142F, (q31_t)0x36BA2013, - (q31_t)0x8AFB2CBA, (q31_t)0x33DEF287, (q31_t)0x89BE50C3, - (q31_t)0x30FBC54D, (q31_t)0x8893B124, (q31_t)0x2E110A62, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x8675DC4E, - (q31_t)0x2826B928, (q31_t)0x8582FAA4, (q31_t)0x25280C5D, - (q31_t)0x84A2FC62, (q31_t)0x2223A4C5, (q31_t)0x83D60411, - (q31_t)0x1F19F97B, (q31_t)0x831C314E, (q31_t)0x1C0B826A, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x81E26C16, - (q31_t)0x15E21444, (q31_t)0x8162AA03, (q31_t)0x12C8106E, - (q31_t)0x80F66E3C, (q31_t)0x0FAB272B, (q31_t)0x809DC970, - (q31_t)0x0C8BD35E, (q31_t)0x8058C94C, (q31_t)0x096A9049, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x8009DE7D, - (q31_t)0x03242ABF, (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x8009DE7D, (q31_t)0xFCDBD541, (q31_t)0x80277872, - (q31_t)0xF9B82683, (q31_t)0x8058C94C, (q31_t)0xF6956FB6, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x80F66E3C, - (q31_t)0xF054D8D4, (q31_t)0x8162AA03, (q31_t)0xED37EF91, - (q31_t)0x81E26C16, (q31_t)0xEA1DEBBB, (q31_t)0x8275A0C0, - (q31_t)0xE70747C3, (q31_t)0x831C314E, (q31_t)0xE3F47D95, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x84A2FC62, - (q31_t)0xDDDC5B3A, (q31_t)0x8582FAA4, (q31_t)0xDAD7F3A2, - (q31_t)0x8675DC4E, (q31_t)0xD7D946D7, (q31_t)0x877B7BEC, - (q31_t)0xD4E0CB14, (q31_t)0x8893B124, (q31_t)0xD1EEF59E, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x8AFB2CBA, - (q31_t)0xCC210D78, (q31_t)0x8C4A142F, (q31_t)0xC945DFEC, - (q31_t)0x8DAAD37B, (q31_t)0xC67322CD, (q31_t)0x8F1D343A, - (q31_t)0xC3A9458F, (q31_t)0x90A0FD4E, (q31_t)0xC0E8B648, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x93DBD69F, - (q31_t)0xBB8532AF, (q31_t)0x9592675B, (q31_t)0xB8E31319, - (q31_t)0x9759617E, (q31_t)0xB64BEACC, (q31_t)0x99307EE0, - (q31_t)0xB3C0200C, (q31_t)0x9B1776D9, (q31_t)0xB140175B, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0x9F13C7D0, - (q31_t)0xAC64D510, (q31_t)0xA1288376, (q31_t)0xAA0A5B2D, - (q31_t)0xA34BDF20, (q31_t)0xA7BD22AB, (q31_t)0xA57D8666, - (q31_t)0xA57D8666, (q31_t)0xA7BD22AB, (q31_t)0xA34BDF20, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAC64D510, - (q31_t)0x9F13C7D0, (q31_t)0xAECC336B, (q31_t)0x9D0DFE53, - (q31_t)0xB140175B, (q31_t)0x9B1776D9, (q31_t)0xB3C0200C, - (q31_t)0x99307EE0, (q31_t)0xB64BEACC, (q31_t)0x9759617E, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xBB8532AF, - (q31_t)0x93DBD69F, (q31_t)0xBE31E19B, (q31_t)0x9235F2EB, - (q31_t)0xC0E8B648, (q31_t)0x90A0FD4E, (q31_t)0xC3A9458F, - (q31_t)0x8F1D343A, (q31_t)0xC67322CD, (q31_t)0x8DAAD37B, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xCC210D78, - (q31_t)0x8AFB2CBA, (q31_t)0xCF043AB2, (q31_t)0x89BE50C3, - (q31_t)0xD1EEF59E, (q31_t)0x8893B124, (q31_t)0xD4E0CB14, - (q31_t)0x877B7BEC, (q31_t)0xD7D946D7, (q31_t)0x8675DC4E, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xDDDC5B3A, - (q31_t)0x84A2FC62, (q31_t)0xE0E60684, (q31_t)0x83D60411, - (q31_t)0xE3F47D95, (q31_t)0x831C314E, (q31_t)0xE70747C3, - (q31_t)0x8275A0C0, (q31_t)0xEA1DEBBB, (q31_t)0x81E26C16, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xF054D8D4, - (q31_t)0x80F66E3C, (q31_t)0xF3742CA1, (q31_t)0x809DC970, - (q31_t)0xF6956FB6, (q31_t)0x8058C94C, (q31_t)0xF9B82683, - (q31_t)0x80277872, (q31_t)0xFCDBD541, (q31_t)0x8009DE7D -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 512 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_512_q31[768] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FFD885A, - (q31_t)0x01921D1F, (q31_t)0x7FF62182, (q31_t)0x03242ABF, - (q31_t)0x7FE9CBC0, (q31_t)0x04B6195D, (q31_t)0x7FD8878D, - (q31_t)0x0647D97C, (q31_t)0x7FC25596, (q31_t)0x07D95B9E, - (q31_t)0x7FA736B4, (q31_t)0x096A9049, (q31_t)0x7F872BF3, - (q31_t)0x0AFB6805, (q31_t)0x7F62368F, (q31_t)0x0C8BD35E, - (q31_t)0x7F3857F5, (q31_t)0x0E1BC2E3, (q31_t)0x7F0991C3, - (q31_t)0x0FAB272B, (q31_t)0x7ED5E5C6, (q31_t)0x1139F0CE, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7E5FE493, - (q31_t)0x145576B1, (q31_t)0x7E1D93E9, (q31_t)0x15E21444, - (q31_t)0x7DD6668E, (q31_t)0x176DD9DE, (q31_t)0x7D8A5F3F, - (q31_t)0x18F8B83C, (q31_t)0x7D3980EC, (q31_t)0x1A82A025, - (q31_t)0x7CE3CEB1, (q31_t)0x1C0B826A, (q31_t)0x7C894BDD, - (q31_t)0x1D934FE5, (q31_t)0x7C29FBEE, (q31_t)0x1F19F97B, - (q31_t)0x7BC5E28F, (q31_t)0x209F701C, (q31_t)0x7B5D039D, - (q31_t)0x2223A4C5, (q31_t)0x7AEF6323, (q31_t)0x23A6887E, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x7A05EEAD, - (q31_t)0x26A82185, (q31_t)0x798A23B1, (q31_t)0x2826B928, - (q31_t)0x7909A92C, (q31_t)0x29A3C484, (q31_t)0x78848413, - (q31_t)0x2B1F34EB, (q31_t)0x77FAB988, (q31_t)0x2C98FBBA, - (q31_t)0x776C4EDB, (q31_t)0x2E110A62, (q31_t)0x76D94988, - (q31_t)0x2F875262, (q31_t)0x7641AF3C, (q31_t)0x30FBC54D, - (q31_t)0x75A585CF, (q31_t)0x326E54C7, (q31_t)0x7504D345, - (q31_t)0x33DEF287, (q31_t)0x745F9DD1, (q31_t)0x354D9056, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x7307C3D0, - (q31_t)0x382493B0, (q31_t)0x72552C84, (q31_t)0x398CDD32, - (q31_t)0x719E2CD2, (q31_t)0x3AF2EEB7, (q31_t)0x70E2CBC6, - (q31_t)0x3C56BA70, (q31_t)0x70231099, (q31_t)0x3DB832A5, - (q31_t)0x6F5F02B1, (q31_t)0x3F1749B7, (q31_t)0x6E96A99C, - (q31_t)0x4073F21D, (q31_t)0x6DCA0D14, (q31_t)0x41CE1E64, - (q31_t)0x6CF934FB, (q31_t)0x4325C135, (q31_t)0x6C242960, - (q31_t)0x447ACD50, (q31_t)0x6B4AF278, (q31_t)0x45CD358F, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x698C246C, - (q31_t)0x4869E664, (q31_t)0x68A69E81, (q31_t)0x49B41533, - (q31_t)0x67BD0FBC, (q31_t)0x4AFB6C97, (q31_t)0x66CF811F, - (q31_t)0x4C3FDFF3, (q31_t)0x65DDFBD3, (q31_t)0x4D8162C4, - (q31_t)0x64E88926, (q31_t)0x4EBFE8A4, (q31_t)0x63EF328F, - (q31_t)0x4FFB654D, (q31_t)0x62F201AC, (q31_t)0x5133CC94, - (q31_t)0x61F1003E, (q31_t)0x5269126E, (q31_t)0x60EC3830, - (q31_t)0x539B2AEF, (q31_t)0x5FE3B38D, (q31_t)0x54CA0A4A, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5DC79D7C, - (q31_t)0x571DEEF9, (q31_t)0x5CB420DF, (q31_t)0x5842DD54, - (q31_t)0x5B9D1153, (q31_t)0x59646497, (q31_t)0x5A82799A, - (q31_t)0x5A82799A, (q31_t)0x59646497, (q31_t)0x5B9D1153, - (q31_t)0x5842DD54, (q31_t)0x5CB420DF, (q31_t)0x571DEEF9, - (q31_t)0x5DC79D7C, (q31_t)0x55F5A4D2, (q31_t)0x5ED77C89, - (q31_t)0x54CA0A4A, (q31_t)0x5FE3B38D, (q31_t)0x539B2AEF, - (q31_t)0x60EC3830, (q31_t)0x5269126E, (q31_t)0x61F1003E, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x4FFB654D, - (q31_t)0x63EF328F, (q31_t)0x4EBFE8A4, (q31_t)0x64E88926, - (q31_t)0x4D8162C4, (q31_t)0x65DDFBD3, (q31_t)0x4C3FDFF3, - (q31_t)0x66CF811F, (q31_t)0x4AFB6C97, (q31_t)0x67BD0FBC, - (q31_t)0x49B41533, (q31_t)0x68A69E81, (q31_t)0x4869E664, - (q31_t)0x698C246C, (q31_t)0x471CECE6, (q31_t)0x6A6D98A4, - (q31_t)0x45CD358F, (q31_t)0x6B4AF278, (q31_t)0x447ACD50, - (q31_t)0x6C242960, (q31_t)0x4325C135, (q31_t)0x6CF934FB, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x4073F21D, - (q31_t)0x6E96A99C, (q31_t)0x3F1749B7, (q31_t)0x6F5F02B1, - (q31_t)0x3DB832A5, (q31_t)0x70231099, (q31_t)0x3C56BA70, - (q31_t)0x70E2CBC6, (q31_t)0x3AF2EEB7, (q31_t)0x719E2CD2, - (q31_t)0x398CDD32, (q31_t)0x72552C84, (q31_t)0x382493B0, - (q31_t)0x7307C3D0, (q31_t)0x36BA2013, (q31_t)0x73B5EBD0, - (q31_t)0x354D9056, (q31_t)0x745F9DD1, (q31_t)0x33DEF287, - (q31_t)0x7504D345, (q31_t)0x326E54C7, (q31_t)0x75A585CF, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x2F875262, - (q31_t)0x76D94988, (q31_t)0x2E110A62, (q31_t)0x776C4EDB, - (q31_t)0x2C98FBBA, (q31_t)0x77FAB988, (q31_t)0x2B1F34EB, - (q31_t)0x78848413, (q31_t)0x29A3C484, (q31_t)0x7909A92C, - (q31_t)0x2826B928, (q31_t)0x798A23B1, (q31_t)0x26A82185, - (q31_t)0x7A05EEAD, (q31_t)0x25280C5D, (q31_t)0x7A7D055B, - (q31_t)0x23A6887E, (q31_t)0x7AEF6323, (q31_t)0x2223A4C5, - (q31_t)0x7B5D039D, (q31_t)0x209F701C, (q31_t)0x7BC5E28F, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x1D934FE5, - (q31_t)0x7C894BDD, (q31_t)0x1C0B826A, (q31_t)0x7CE3CEB1, - (q31_t)0x1A82A025, (q31_t)0x7D3980EC, (q31_t)0x18F8B83C, - (q31_t)0x7D8A5F3F, (q31_t)0x176DD9DE, (q31_t)0x7DD6668E, - (q31_t)0x15E21444, (q31_t)0x7E1D93E9, (q31_t)0x145576B1, - (q31_t)0x7E5FE493, (q31_t)0x12C8106E, (q31_t)0x7E9D55FC, - (q31_t)0x1139F0CE, (q31_t)0x7ED5E5C6, (q31_t)0x0FAB272B, - (q31_t)0x7F0991C3, (q31_t)0x0E1BC2E3, (q31_t)0x7F3857F5, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x0AFB6805, - (q31_t)0x7F872BF3, (q31_t)0x096A9049, (q31_t)0x7FA736B4, - (q31_t)0x07D95B9E, (q31_t)0x7FC25596, (q31_t)0x0647D97C, - (q31_t)0x7FD8878D, (q31_t)0x04B6195D, (q31_t)0x7FE9CBC0, - (q31_t)0x03242ABF, (q31_t)0x7FF62182, (q31_t)0x01921D1F, - (q31_t)0x7FFD885A, (q31_t)0x00000000, (q31_t)0x7FFFFFFF, - (q31_t)0xFE6DE2E0, (q31_t)0x7FFD885A, (q31_t)0xFCDBD541, - (q31_t)0x7FF62182, (q31_t)0xFB49E6A2, (q31_t)0x7FE9CBC0, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF826A461, - (q31_t)0x7FC25596, (q31_t)0xF6956FB6, (q31_t)0x7FA736B4, - (q31_t)0xF50497FA, (q31_t)0x7F872BF3, (q31_t)0xF3742CA1, - (q31_t)0x7F62368F, (q31_t)0xF1E43D1C, (q31_t)0x7F3857F5, - (q31_t)0xF054D8D4, (q31_t)0x7F0991C3, (q31_t)0xEEC60F31, - (q31_t)0x7ED5E5C6, (q31_t)0xED37EF91, (q31_t)0x7E9D55FC, - (q31_t)0xEBAA894E, (q31_t)0x7E5FE493, (q31_t)0xEA1DEBBB, - (q31_t)0x7E1D93E9, (q31_t)0xE8922621, (q31_t)0x7DD6668E, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE57D5FDA, - (q31_t)0x7D3980EC, (q31_t)0xE3F47D95, (q31_t)0x7CE3CEB1, - (q31_t)0xE26CB01A, (q31_t)0x7C894BDD, (q31_t)0xE0E60684, - (q31_t)0x7C29FBEE, (q31_t)0xDF608FE3, (q31_t)0x7BC5E28F, - (q31_t)0xDDDC5B3A, (q31_t)0x7B5D039D, (q31_t)0xDC597781, - (q31_t)0x7AEF6323, (q31_t)0xDAD7F3A2, (q31_t)0x7A7D055B, - (q31_t)0xD957DE7A, (q31_t)0x7A05EEAD, (q31_t)0xD7D946D7, - (q31_t)0x798A23B1, (q31_t)0xD65C3B7B, (q31_t)0x7909A92C, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xD3670445, - (q31_t)0x77FAB988, (q31_t)0xD1EEF59E, (q31_t)0x776C4EDB, - (q31_t)0xD078AD9D, (q31_t)0x76D94988, (q31_t)0xCF043AB2, - (q31_t)0x7641AF3C, (q31_t)0xCD91AB38, (q31_t)0x75A585CF, - (q31_t)0xCC210D78, (q31_t)0x7504D345, (q31_t)0xCAB26FA9, - (q31_t)0x745F9DD1, (q31_t)0xC945DFEC, (q31_t)0x73B5EBD0, - (q31_t)0xC7DB6C50, (q31_t)0x7307C3D0, (q31_t)0xC67322CD, - (q31_t)0x72552C84, (q31_t)0xC50D1148, (q31_t)0x719E2CD2, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xC247CD5A, - (q31_t)0x70231099, (q31_t)0xC0E8B648, (q31_t)0x6F5F02B1, - (q31_t)0xBF8C0DE2, (q31_t)0x6E96A99C, (q31_t)0xBE31E19B, - (q31_t)0x6DCA0D14, (q31_t)0xBCDA3ECA, (q31_t)0x6CF934FB, - (q31_t)0xBB8532AF, (q31_t)0x6C242960, (q31_t)0xBA32CA70, - (q31_t)0x6B4AF278, (q31_t)0xB8E31319, (q31_t)0x6A6D98A4, - (q31_t)0xB796199B, (q31_t)0x698C246C, (q31_t)0xB64BEACC, - (q31_t)0x68A69E81, (q31_t)0xB5049368, (q31_t)0x67BD0FBC, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xB27E9D3B, - (q31_t)0x65DDFBD3, (q31_t)0xB140175B, (q31_t)0x64E88926, - (q31_t)0xB0049AB2, (q31_t)0x63EF328F, (q31_t)0xAECC336B, - (q31_t)0x62F201AC, (q31_t)0xAD96ED91, (q31_t)0x61F1003E, - (q31_t)0xAC64D510, (q31_t)0x60EC3830, (q31_t)0xAB35F5B5, - (q31_t)0x5FE3B38D, (q31_t)0xAA0A5B2D, (q31_t)0x5ED77C89, - (q31_t)0xA8E21106, (q31_t)0x5DC79D7C, (q31_t)0xA7BD22AB, - (q31_t)0x5CB420DF, (q31_t)0xA69B9B68, (q31_t)0x5B9D1153, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA462EEAC, - (q31_t)0x59646497, (q31_t)0xA34BDF20, (q31_t)0x5842DD54, - (q31_t)0xA2386283, (q31_t)0x571DEEF9, (q31_t)0xA1288376, - (q31_t)0x55F5A4D2, (q31_t)0xA01C4C72, (q31_t)0x54CA0A4A, - (q31_t)0x9F13C7D0, (q31_t)0x539B2AEF, (q31_t)0x9E0EFFC1, - (q31_t)0x5269126E, (q31_t)0x9D0DFE53, (q31_t)0x5133CC94, - (q31_t)0x9C10CD70, (q31_t)0x4FFB654D, (q31_t)0x9B1776D9, - (q31_t)0x4EBFE8A4, (q31_t)0x9A22042C, (q31_t)0x4D8162C4, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x9842F043, - (q31_t)0x4AFB6C97, (q31_t)0x9759617E, (q31_t)0x49B41533, - (q31_t)0x9673DB94, (q31_t)0x4869E664, (q31_t)0x9592675B, - (q31_t)0x471CECE6, (q31_t)0x94B50D87, (q31_t)0x45CD358F, - (q31_t)0x93DBD69F, (q31_t)0x447ACD50, (q31_t)0x9306CB04, - (q31_t)0x4325C135, (q31_t)0x9235F2EB, (q31_t)0x41CE1E64, - (q31_t)0x91695663, (q31_t)0x4073F21D, (q31_t)0x90A0FD4E, - (q31_t)0x3F1749B7, (q31_t)0x8FDCEF66, (q31_t)0x3DB832A5, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8E61D32D, - (q31_t)0x3AF2EEB7, (q31_t)0x8DAAD37B, (q31_t)0x398CDD32, - (q31_t)0x8CF83C30, (q31_t)0x382493B0, (q31_t)0x8C4A142F, - (q31_t)0x36BA2013, (q31_t)0x8BA0622F, (q31_t)0x354D9056, - (q31_t)0x8AFB2CBA, (q31_t)0x33DEF287, (q31_t)0x8A5A7A30, - (q31_t)0x326E54C7, (q31_t)0x89BE50C3, (q31_t)0x30FBC54D, - (q31_t)0x8926B677, (q31_t)0x2F875262, (q31_t)0x8893B124, - (q31_t)0x2E110A62, (q31_t)0x88054677, (q31_t)0x2C98FBBA, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x86F656D3, - (q31_t)0x29A3C484, (q31_t)0x8675DC4E, (q31_t)0x2826B928, - (q31_t)0x85FA1152, (q31_t)0x26A82185, (q31_t)0x8582FAA4, - (q31_t)0x25280C5D, (q31_t)0x85109CDC, (q31_t)0x23A6887E, - (q31_t)0x84A2FC62, (q31_t)0x2223A4C5, (q31_t)0x843A1D70, - (q31_t)0x209F701C, (q31_t)0x83D60411, (q31_t)0x1F19F97B, - (q31_t)0x8376B422, (q31_t)0x1D934FE5, (q31_t)0x831C314E, - (q31_t)0x1C0B826A, (q31_t)0x82C67F13, (q31_t)0x1A82A025, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x82299971, - (q31_t)0x176DD9DE, (q31_t)0x81E26C16, (q31_t)0x15E21444, - (q31_t)0x81A01B6C, (q31_t)0x145576B1, (q31_t)0x8162AA03, - (q31_t)0x12C8106E, (q31_t)0x812A1A39, (q31_t)0x1139F0CE, - (q31_t)0x80F66E3C, (q31_t)0x0FAB272B, (q31_t)0x80C7A80A, - (q31_t)0x0E1BC2E3, (q31_t)0x809DC970, (q31_t)0x0C8BD35E, - (q31_t)0x8078D40D, (q31_t)0x0AFB6805, (q31_t)0x8058C94C, - (q31_t)0x096A9049, (q31_t)0x803DAA69, (q31_t)0x07D95B9E, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x80163440, - (q31_t)0x04B6195D, (q31_t)0x8009DE7D, (q31_t)0x03242ABF, - (q31_t)0x800277A5, (q31_t)0x01921D1F, (q31_t)0x80000000, - (q31_t)0x00000000, (q31_t)0x800277A5, (q31_t)0xFE6DE2E0, - (q31_t)0x8009DE7D, (q31_t)0xFCDBD541, (q31_t)0x80163440, - (q31_t)0xFB49E6A2, (q31_t)0x80277872, (q31_t)0xF9B82683, - (q31_t)0x803DAA69, (q31_t)0xF826A461, (q31_t)0x8058C94C, - (q31_t)0xF6956FB6, (q31_t)0x8078D40D, (q31_t)0xF50497FA, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x80C7A80A, - (q31_t)0xF1E43D1C, (q31_t)0x80F66E3C, (q31_t)0xF054D8D4, - (q31_t)0x812A1A39, (q31_t)0xEEC60F31, (q31_t)0x8162AA03, - (q31_t)0xED37EF91, (q31_t)0x81A01B6C, (q31_t)0xEBAA894E, - (q31_t)0x81E26C16, (q31_t)0xEA1DEBBB, (q31_t)0x82299971, - (q31_t)0xE8922621, (q31_t)0x8275A0C0, (q31_t)0xE70747C3, - (q31_t)0x82C67F13, (q31_t)0xE57D5FDA, (q31_t)0x831C314E, - (q31_t)0xE3F47D95, (q31_t)0x8376B422, (q31_t)0xE26CB01A, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x843A1D70, - (q31_t)0xDF608FE3, (q31_t)0x84A2FC62, (q31_t)0xDDDC5B3A, - (q31_t)0x85109CDC, (q31_t)0xDC597781, (q31_t)0x8582FAA4, - (q31_t)0xDAD7F3A2, (q31_t)0x85FA1152, (q31_t)0xD957DE7A, - (q31_t)0x8675DC4E, (q31_t)0xD7D946D7, (q31_t)0x86F656D3, - (q31_t)0xD65C3B7B, (q31_t)0x877B7BEC, (q31_t)0xD4E0CB14, - (q31_t)0x88054677, (q31_t)0xD3670445, (q31_t)0x8893B124, - (q31_t)0xD1EEF59E, (q31_t)0x8926B677, (q31_t)0xD078AD9D, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x8A5A7A30, - (q31_t)0xCD91AB38, (q31_t)0x8AFB2CBA, (q31_t)0xCC210D78, - (q31_t)0x8BA0622F, (q31_t)0xCAB26FA9, (q31_t)0x8C4A142F, - (q31_t)0xC945DFEC, (q31_t)0x8CF83C30, (q31_t)0xC7DB6C50, - (q31_t)0x8DAAD37B, (q31_t)0xC67322CD, (q31_t)0x8E61D32D, - (q31_t)0xC50D1148, (q31_t)0x8F1D343A, (q31_t)0xC3A9458F, - (q31_t)0x8FDCEF66, (q31_t)0xC247CD5A, (q31_t)0x90A0FD4E, - (q31_t)0xC0E8B648, (q31_t)0x91695663, (q31_t)0xBF8C0DE2, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x9306CB04, - (q31_t)0xBCDA3ECA, (q31_t)0x93DBD69F, (q31_t)0xBB8532AF, - (q31_t)0x94B50D87, (q31_t)0xBA32CA70, (q31_t)0x9592675B, - (q31_t)0xB8E31319, (q31_t)0x9673DB94, (q31_t)0xB796199B, - (q31_t)0x9759617E, (q31_t)0xB64BEACC, (q31_t)0x9842F043, - (q31_t)0xB5049368, (q31_t)0x99307EE0, (q31_t)0xB3C0200C, - (q31_t)0x9A22042C, (q31_t)0xB27E9D3B, (q31_t)0x9B1776D9, - (q31_t)0xB140175B, (q31_t)0x9C10CD70, (q31_t)0xB0049AB2, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0x9E0EFFC1, - (q31_t)0xAD96ED91, (q31_t)0x9F13C7D0, (q31_t)0xAC64D510, - (q31_t)0xA01C4C72, (q31_t)0xAB35F5B5, (q31_t)0xA1288376, - (q31_t)0xAA0A5B2D, (q31_t)0xA2386283, (q31_t)0xA8E21106, - (q31_t)0xA34BDF20, (q31_t)0xA7BD22AB, (q31_t)0xA462EEAC, - (q31_t)0xA69B9B68, (q31_t)0xA57D8666, (q31_t)0xA57D8666, - (q31_t)0xA69B9B68, (q31_t)0xA462EEAC, (q31_t)0xA7BD22AB, - (q31_t)0xA34BDF20, (q31_t)0xA8E21106, (q31_t)0xA2386283, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAB35F5B5, - (q31_t)0xA01C4C72, (q31_t)0xAC64D510, (q31_t)0x9F13C7D0, - (q31_t)0xAD96ED91, (q31_t)0x9E0EFFC1, (q31_t)0xAECC336B, - (q31_t)0x9D0DFE53, (q31_t)0xB0049AB2, (q31_t)0x9C10CD70, - (q31_t)0xB140175B, (q31_t)0x9B1776D9, (q31_t)0xB27E9D3B, - (q31_t)0x9A22042C, (q31_t)0xB3C0200C, (q31_t)0x99307EE0, - (q31_t)0xB5049368, (q31_t)0x9842F043, (q31_t)0xB64BEACC, - (q31_t)0x9759617E, (q31_t)0xB796199B, (q31_t)0x9673DB94, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xBA32CA70, - (q31_t)0x94B50D87, (q31_t)0xBB8532AF, (q31_t)0x93DBD69F, - (q31_t)0xBCDA3ECA, (q31_t)0x9306CB04, (q31_t)0xBE31E19B, - (q31_t)0x9235F2EB, (q31_t)0xBF8C0DE2, (q31_t)0x91695663, - (q31_t)0xC0E8B648, (q31_t)0x90A0FD4E, (q31_t)0xC247CD5A, - (q31_t)0x8FDCEF66, (q31_t)0xC3A9458F, (q31_t)0x8F1D343A, - (q31_t)0xC50D1148, (q31_t)0x8E61D32D, (q31_t)0xC67322CD, - (q31_t)0x8DAAD37B, (q31_t)0xC7DB6C50, (q31_t)0x8CF83C30, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xCAB26FA9, - (q31_t)0x8BA0622F, (q31_t)0xCC210D78, (q31_t)0x8AFB2CBA, - (q31_t)0xCD91AB38, (q31_t)0x8A5A7A30, (q31_t)0xCF043AB2, - (q31_t)0x89BE50C3, (q31_t)0xD078AD9D, (q31_t)0x8926B677, - (q31_t)0xD1EEF59E, (q31_t)0x8893B124, (q31_t)0xD3670445, - (q31_t)0x88054677, (q31_t)0xD4E0CB14, (q31_t)0x877B7BEC, - (q31_t)0xD65C3B7B, (q31_t)0x86F656D3, (q31_t)0xD7D946D7, - (q31_t)0x8675DC4E, (q31_t)0xD957DE7A, (q31_t)0x85FA1152, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xDC597781, - (q31_t)0x85109CDC, (q31_t)0xDDDC5B3A, (q31_t)0x84A2FC62, - (q31_t)0xDF608FE3, (q31_t)0x843A1D70, (q31_t)0xE0E60684, - (q31_t)0x83D60411, (q31_t)0xE26CB01A, (q31_t)0x8376B422, - (q31_t)0xE3F47D95, (q31_t)0x831C314E, (q31_t)0xE57D5FDA, - (q31_t)0x82C67F13, (q31_t)0xE70747C3, (q31_t)0x8275A0C0, - (q31_t)0xE8922621, (q31_t)0x82299971, (q31_t)0xEA1DEBBB, - (q31_t)0x81E26C16, (q31_t)0xEBAA894E, (q31_t)0x81A01B6C, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xEEC60F31, - (q31_t)0x812A1A39, (q31_t)0xF054D8D4, (q31_t)0x80F66E3C, - (q31_t)0xF1E43D1C, (q31_t)0x80C7A80A, (q31_t)0xF3742CA1, - (q31_t)0x809DC970, (q31_t)0xF50497FA, (q31_t)0x8078D40D, - (q31_t)0xF6956FB6, (q31_t)0x8058C94C, (q31_t)0xF826A461, - (q31_t)0x803DAA69, (q31_t)0xF9B82683, (q31_t)0x80277872, - (q31_t)0xFB49E6A2, (q31_t)0x80163440, (q31_t)0xFCDBD541, - (q31_t)0x8009DE7D, (q31_t)0xFE6DE2E0, (q31_t)0x800277A5 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 1024 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_1024_q31[1536] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FFF6216, - (q31_t)0x00C90F88, (q31_t)0x7FFD885A, (q31_t)0x01921D1F, - (q31_t)0x7FFA72D1, (q31_t)0x025B26D7, (q31_t)0x7FF62182, - (q31_t)0x03242ABF, (q31_t)0x7FF09477, (q31_t)0x03ED26E6, - (q31_t)0x7FE9CBC0, (q31_t)0x04B6195D, (q31_t)0x7FE1C76B, - (q31_t)0x057F0034, (q31_t)0x7FD8878D, (q31_t)0x0647D97C, - (q31_t)0x7FCE0C3E, (q31_t)0x0710A344, (q31_t)0x7FC25596, - (q31_t)0x07D95B9E, (q31_t)0x7FB563B2, (q31_t)0x08A2009A, - (q31_t)0x7FA736B4, (q31_t)0x096A9049, (q31_t)0x7F97CEBC, - (q31_t)0x0A3308BC, (q31_t)0x7F872BF3, (q31_t)0x0AFB6805, - (q31_t)0x7F754E7F, (q31_t)0x0BC3AC35, (q31_t)0x7F62368F, - (q31_t)0x0C8BD35E, (q31_t)0x7F4DE450, (q31_t)0x0D53DB92, - (q31_t)0x7F3857F5, (q31_t)0x0E1BC2E3, (q31_t)0x7F2191B4, - (q31_t)0x0EE38765, (q31_t)0x7F0991C3, (q31_t)0x0FAB272B, - (q31_t)0x7EF0585F, (q31_t)0x1072A047, (q31_t)0x7ED5E5C6, - (q31_t)0x1139F0CE, (q31_t)0x7EBA3A39, (q31_t)0x120116D4, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7E7F3956, - (q31_t)0x138EDBB0, (q31_t)0x7E5FE493, (q31_t)0x145576B1, - (q31_t)0x7E3F57FE, (q31_t)0x151BDF85, (q31_t)0x7E1D93E9, - (q31_t)0x15E21444, (q31_t)0x7DFA98A7, (q31_t)0x16A81305, - (q31_t)0x7DD6668E, (q31_t)0x176DD9DE, (q31_t)0x7DB0FDF7, - (q31_t)0x183366E8, (q31_t)0x7D8A5F3F, (q31_t)0x18F8B83C, - (q31_t)0x7D628AC5, (q31_t)0x19BDCBF2, (q31_t)0x7D3980EC, - (q31_t)0x1A82A025, (q31_t)0x7D0F4218, (q31_t)0x1B4732EF, - (q31_t)0x7CE3CEB1, (q31_t)0x1C0B826A, (q31_t)0x7CB72724, - (q31_t)0x1CCF8CB3, (q31_t)0x7C894BDD, (q31_t)0x1D934FE5, - (q31_t)0x7C5A3D4F, (q31_t)0x1E56CA1E, (q31_t)0x7C29FBEE, - (q31_t)0x1F19F97B, (q31_t)0x7BF88830, (q31_t)0x1FDCDC1A, - (q31_t)0x7BC5E28F, (q31_t)0x209F701C, (q31_t)0x7B920B89, - (q31_t)0x2161B39F, (q31_t)0x7B5D039D, (q31_t)0x2223A4C5, - (q31_t)0x7B26CB4F, (q31_t)0x22E541AE, (q31_t)0x7AEF6323, - (q31_t)0x23A6887E, (q31_t)0x7AB6CBA3, (q31_t)0x24677757, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x7A4210D8, - (q31_t)0x25E845B5, (q31_t)0x7A05EEAD, (q31_t)0x26A82185, - (q31_t)0x79C89F6D, (q31_t)0x27679DF4, (q31_t)0x798A23B1, - (q31_t)0x2826B928, (q31_t)0x794A7C11, (q31_t)0x28E5714A, - (q31_t)0x7909A92C, (q31_t)0x29A3C484, (q31_t)0x78C7ABA1, - (q31_t)0x2A61B101, (q31_t)0x78848413, (q31_t)0x2B1F34EB, - (q31_t)0x78403328, (q31_t)0x2BDC4E6F, (q31_t)0x77FAB988, - (q31_t)0x2C98FBBA, (q31_t)0x77B417DF, (q31_t)0x2D553AFB, - (q31_t)0x776C4EDB, (q31_t)0x2E110A62, (q31_t)0x77235F2D, - (q31_t)0x2ECC681E, (q31_t)0x76D94988, (q31_t)0x2F875262, - (q31_t)0x768E0EA5, (q31_t)0x3041C760, (q31_t)0x7641AF3C, - (q31_t)0x30FBC54D, (q31_t)0x75F42C0A, (q31_t)0x31B54A5D, - (q31_t)0x75A585CF, (q31_t)0x326E54C7, (q31_t)0x7555BD4B, - (q31_t)0x3326E2C2, (q31_t)0x7504D345, (q31_t)0x33DEF287, - (q31_t)0x74B2C883, (q31_t)0x3496824F, (q31_t)0x745F9DD1, - (q31_t)0x354D9056, (q31_t)0x740B53FA, (q31_t)0x36041AD9, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x735F6626, - (q31_t)0x376F9E46, (q31_t)0x7307C3D0, (q31_t)0x382493B0, - (q31_t)0x72AF05A6, (q31_t)0x38D8FE93, (q31_t)0x72552C84, - (q31_t)0x398CDD32, (q31_t)0x71FA3948, (q31_t)0x3A402DD1, - (q31_t)0x719E2CD2, (q31_t)0x3AF2EEB7, (q31_t)0x71410804, - (q31_t)0x3BA51E29, (q31_t)0x70E2CBC6, (q31_t)0x3C56BA70, - (q31_t)0x708378FE, (q31_t)0x3D07C1D5, (q31_t)0x70231099, - (q31_t)0x3DB832A5, (q31_t)0x6FC19385, (q31_t)0x3E680B2C, - (q31_t)0x6F5F02B1, (q31_t)0x3F1749B7, (q31_t)0x6EFB5F12, - (q31_t)0x3FC5EC97, (q31_t)0x6E96A99C, (q31_t)0x4073F21D, - (q31_t)0x6E30E349, (q31_t)0x4121589A, (q31_t)0x6DCA0D14, - (q31_t)0x41CE1E64, (q31_t)0x6D6227FA, (q31_t)0x427A41D0, - (q31_t)0x6CF934FB, (q31_t)0x4325C135, (q31_t)0x6C8F351C, - (q31_t)0x43D09AEC, (q31_t)0x6C242960, (q31_t)0x447ACD50, - (q31_t)0x6BB812D0, (q31_t)0x452456BC, (q31_t)0x6B4AF278, - (q31_t)0x45CD358F, (q31_t)0x6ADCC964, (q31_t)0x46756827, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x69FD614A, - (q31_t)0x47C3C22E, (q31_t)0x698C246C, (q31_t)0x4869E664, - (q31_t)0x6919E320, (q31_t)0x490F57EE, (q31_t)0x68A69E81, - (q31_t)0x49B41533, (q31_t)0x683257AA, (q31_t)0x4A581C9D, - (q31_t)0x67BD0FBC, (q31_t)0x4AFB6C97, (q31_t)0x6746C7D7, - (q31_t)0x4B9E038F, (q31_t)0x66CF811F, (q31_t)0x4C3FDFF3, - (q31_t)0x66573CBB, (q31_t)0x4CE10034, (q31_t)0x65DDFBD3, - (q31_t)0x4D8162C4, (q31_t)0x6563BF92, (q31_t)0x4E210617, - (q31_t)0x64E88926, (q31_t)0x4EBFE8A4, (q31_t)0x646C59BF, - (q31_t)0x4F5E08E3, (q31_t)0x63EF328F, (q31_t)0x4FFB654D, - (q31_t)0x637114CC, (q31_t)0x5097FC5E, (q31_t)0x62F201AC, - (q31_t)0x5133CC94, (q31_t)0x6271FA69, (q31_t)0x51CED46E, - (q31_t)0x61F1003E, (q31_t)0x5269126E, (q31_t)0x616F146B, - (q31_t)0x53028517, (q31_t)0x60EC3830, (q31_t)0x539B2AEF, - (q31_t)0x60686CCE, (q31_t)0x5433027D, (q31_t)0x5FE3B38D, - (q31_t)0x54CA0A4A, (q31_t)0x5F5E0DB3, (q31_t)0x556040E2, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5E50015D, - (q31_t)0x568A34A9, (q31_t)0x5DC79D7C, (q31_t)0x571DEEF9, - (q31_t)0x5D3E5236, (q31_t)0x57B0D256, (q31_t)0x5CB420DF, - (q31_t)0x5842DD54, (q31_t)0x5C290ACC, (q31_t)0x58D40E8C, - (q31_t)0x5B9D1153, (q31_t)0x59646497, (q31_t)0x5B1035CF, - (q31_t)0x59F3DE12, (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x59F3DE12, (q31_t)0x5B1035CF, (q31_t)0x59646497, - (q31_t)0x5B9D1153, (q31_t)0x58D40E8C, (q31_t)0x5C290ACC, - (q31_t)0x5842DD54, (q31_t)0x5CB420DF, (q31_t)0x57B0D256, - (q31_t)0x5D3E5236, (q31_t)0x571DEEF9, (q31_t)0x5DC79D7C, - (q31_t)0x568A34A9, (q31_t)0x5E50015D, (q31_t)0x55F5A4D2, - (q31_t)0x5ED77C89, (q31_t)0x556040E2, (q31_t)0x5F5E0DB3, - (q31_t)0x54CA0A4A, (q31_t)0x5FE3B38D, (q31_t)0x5433027D, - (q31_t)0x60686CCE, (q31_t)0x539B2AEF, (q31_t)0x60EC3830, - (q31_t)0x53028517, (q31_t)0x616F146B, (q31_t)0x5269126E, - (q31_t)0x61F1003E, (q31_t)0x51CED46E, (q31_t)0x6271FA69, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x5097FC5E, - (q31_t)0x637114CC, (q31_t)0x4FFB654D, (q31_t)0x63EF328F, - (q31_t)0x4F5E08E3, (q31_t)0x646C59BF, (q31_t)0x4EBFE8A4, - (q31_t)0x64E88926, (q31_t)0x4E210617, (q31_t)0x6563BF92, - (q31_t)0x4D8162C4, (q31_t)0x65DDFBD3, (q31_t)0x4CE10034, - (q31_t)0x66573CBB, (q31_t)0x4C3FDFF3, (q31_t)0x66CF811F, - (q31_t)0x4B9E038F, (q31_t)0x6746C7D7, (q31_t)0x4AFB6C97, - (q31_t)0x67BD0FBC, (q31_t)0x4A581C9D, (q31_t)0x683257AA, - (q31_t)0x49B41533, (q31_t)0x68A69E81, (q31_t)0x490F57EE, - (q31_t)0x6919E320, (q31_t)0x4869E664, (q31_t)0x698C246C, - (q31_t)0x47C3C22E, (q31_t)0x69FD614A, (q31_t)0x471CECE6, - (q31_t)0x6A6D98A4, (q31_t)0x46756827, (q31_t)0x6ADCC964, - (q31_t)0x45CD358F, (q31_t)0x6B4AF278, (q31_t)0x452456BC, - (q31_t)0x6BB812D0, (q31_t)0x447ACD50, (q31_t)0x6C242960, - (q31_t)0x43D09AEC, (q31_t)0x6C8F351C, (q31_t)0x4325C135, - (q31_t)0x6CF934FB, (q31_t)0x427A41D0, (q31_t)0x6D6227FA, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x4121589A, - (q31_t)0x6E30E349, (q31_t)0x4073F21D, (q31_t)0x6E96A99C, - (q31_t)0x3FC5EC97, (q31_t)0x6EFB5F12, (q31_t)0x3F1749B7, - (q31_t)0x6F5F02B1, (q31_t)0x3E680B2C, (q31_t)0x6FC19385, - (q31_t)0x3DB832A5, (q31_t)0x70231099, (q31_t)0x3D07C1D5, - (q31_t)0x708378FE, (q31_t)0x3C56BA70, (q31_t)0x70E2CBC6, - (q31_t)0x3BA51E29, (q31_t)0x71410804, (q31_t)0x3AF2EEB7, - (q31_t)0x719E2CD2, (q31_t)0x3A402DD1, (q31_t)0x71FA3948, - (q31_t)0x398CDD32, (q31_t)0x72552C84, (q31_t)0x38D8FE93, - (q31_t)0x72AF05A6, (q31_t)0x382493B0, (q31_t)0x7307C3D0, - (q31_t)0x376F9E46, (q31_t)0x735F6626, (q31_t)0x36BA2013, - (q31_t)0x73B5EBD0, (q31_t)0x36041AD9, (q31_t)0x740B53FA, - (q31_t)0x354D9056, (q31_t)0x745F9DD1, (q31_t)0x3496824F, - (q31_t)0x74B2C883, (q31_t)0x33DEF287, (q31_t)0x7504D345, - (q31_t)0x3326E2C2, (q31_t)0x7555BD4B, (q31_t)0x326E54C7, - (q31_t)0x75A585CF, (q31_t)0x31B54A5D, (q31_t)0x75F42C0A, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x3041C760, - (q31_t)0x768E0EA5, (q31_t)0x2F875262, (q31_t)0x76D94988, - (q31_t)0x2ECC681E, (q31_t)0x77235F2D, (q31_t)0x2E110A62, - (q31_t)0x776C4EDB, (q31_t)0x2D553AFB, (q31_t)0x77B417DF, - (q31_t)0x2C98FBBA, (q31_t)0x77FAB988, (q31_t)0x2BDC4E6F, - (q31_t)0x78403328, (q31_t)0x2B1F34EB, (q31_t)0x78848413, - (q31_t)0x2A61B101, (q31_t)0x78C7ABA1, (q31_t)0x29A3C484, - (q31_t)0x7909A92C, (q31_t)0x28E5714A, (q31_t)0x794A7C11, - (q31_t)0x2826B928, (q31_t)0x798A23B1, (q31_t)0x27679DF4, - (q31_t)0x79C89F6D, (q31_t)0x26A82185, (q31_t)0x7A05EEAD, - (q31_t)0x25E845B5, (q31_t)0x7A4210D8, (q31_t)0x25280C5D, - (q31_t)0x7A7D055B, (q31_t)0x24677757, (q31_t)0x7AB6CBA3, - (q31_t)0x23A6887E, (q31_t)0x7AEF6323, (q31_t)0x22E541AE, - (q31_t)0x7B26CB4F, (q31_t)0x2223A4C5, (q31_t)0x7B5D039D, - (q31_t)0x2161B39F, (q31_t)0x7B920B89, (q31_t)0x209F701C, - (q31_t)0x7BC5E28F, (q31_t)0x1FDCDC1A, (q31_t)0x7BF88830, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x1E56CA1E, - (q31_t)0x7C5A3D4F, (q31_t)0x1D934FE5, (q31_t)0x7C894BDD, - (q31_t)0x1CCF8CB3, (q31_t)0x7CB72724, (q31_t)0x1C0B826A, - (q31_t)0x7CE3CEB1, (q31_t)0x1B4732EF, (q31_t)0x7D0F4218, - (q31_t)0x1A82A025, (q31_t)0x7D3980EC, (q31_t)0x19BDCBF2, - (q31_t)0x7D628AC5, (q31_t)0x18F8B83C, (q31_t)0x7D8A5F3F, - (q31_t)0x183366E8, (q31_t)0x7DB0FDF7, (q31_t)0x176DD9DE, - (q31_t)0x7DD6668E, (q31_t)0x16A81305, (q31_t)0x7DFA98A7, - (q31_t)0x15E21444, (q31_t)0x7E1D93E9, (q31_t)0x151BDF85, - (q31_t)0x7E3F57FE, (q31_t)0x145576B1, (q31_t)0x7E5FE493, - (q31_t)0x138EDBB0, (q31_t)0x7E7F3956, (q31_t)0x12C8106E, - (q31_t)0x7E9D55FC, (q31_t)0x120116D4, (q31_t)0x7EBA3A39, - (q31_t)0x1139F0CE, (q31_t)0x7ED5E5C6, (q31_t)0x1072A047, - (q31_t)0x7EF0585F, (q31_t)0x0FAB272B, (q31_t)0x7F0991C3, - (q31_t)0x0EE38765, (q31_t)0x7F2191B4, (q31_t)0x0E1BC2E3, - (q31_t)0x7F3857F5, (q31_t)0x0D53DB92, (q31_t)0x7F4DE450, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x0BC3AC35, - (q31_t)0x7F754E7F, (q31_t)0x0AFB6805, (q31_t)0x7F872BF3, - (q31_t)0x0A3308BC, (q31_t)0x7F97CEBC, (q31_t)0x096A9049, - (q31_t)0x7FA736B4, (q31_t)0x08A2009A, (q31_t)0x7FB563B2, - (q31_t)0x07D95B9E, (q31_t)0x7FC25596, (q31_t)0x0710A344, - (q31_t)0x7FCE0C3E, (q31_t)0x0647D97C, (q31_t)0x7FD8878D, - (q31_t)0x057F0034, (q31_t)0x7FE1C76B, (q31_t)0x04B6195D, - (q31_t)0x7FE9CBC0, (q31_t)0x03ED26E6, (q31_t)0x7FF09477, - (q31_t)0x03242ABF, (q31_t)0x7FF62182, (q31_t)0x025B26D7, - (q31_t)0x7FFA72D1, (q31_t)0x01921D1F, (q31_t)0x7FFD885A, - (q31_t)0x00C90F88, (q31_t)0x7FFF6216, (q31_t)0x00000000, - (q31_t)0x7FFFFFFF, (q31_t)0xFF36F078, (q31_t)0x7FFF6216, - (q31_t)0xFE6DE2E0, (q31_t)0x7FFD885A, (q31_t)0xFDA4D928, - (q31_t)0x7FFA72D1, (q31_t)0xFCDBD541, (q31_t)0x7FF62182, - (q31_t)0xFC12D919, (q31_t)0x7FF09477, (q31_t)0xFB49E6A2, - (q31_t)0x7FE9CBC0, (q31_t)0xFA80FFCB, (q31_t)0x7FE1C76B, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF8EF5CBB, - (q31_t)0x7FCE0C3E, (q31_t)0xF826A461, (q31_t)0x7FC25596, - (q31_t)0xF75DFF65, (q31_t)0x7FB563B2, (q31_t)0xF6956FB6, - (q31_t)0x7FA736B4, (q31_t)0xF5CCF743, (q31_t)0x7F97CEBC, - (q31_t)0xF50497FA, (q31_t)0x7F872BF3, (q31_t)0xF43C53CA, - (q31_t)0x7F754E7F, (q31_t)0xF3742CA1, (q31_t)0x7F62368F, - (q31_t)0xF2AC246D, (q31_t)0x7F4DE450, (q31_t)0xF1E43D1C, - (q31_t)0x7F3857F5, (q31_t)0xF11C789A, (q31_t)0x7F2191B4, - (q31_t)0xF054D8D4, (q31_t)0x7F0991C3, (q31_t)0xEF8D5FB8, - (q31_t)0x7EF0585F, (q31_t)0xEEC60F31, (q31_t)0x7ED5E5C6, - (q31_t)0xEDFEE92B, (q31_t)0x7EBA3A39, (q31_t)0xED37EF91, - (q31_t)0x7E9D55FC, (q31_t)0xEC71244F, (q31_t)0x7E7F3956, - (q31_t)0xEBAA894E, (q31_t)0x7E5FE493, (q31_t)0xEAE4207A, - (q31_t)0x7E3F57FE, (q31_t)0xEA1DEBBB, (q31_t)0x7E1D93E9, - (q31_t)0xE957ECFB, (q31_t)0x7DFA98A7, (q31_t)0xE8922621, - (q31_t)0x7DD6668E, (q31_t)0xE7CC9917, (q31_t)0x7DB0FDF7, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE642340D, - (q31_t)0x7D628AC5, (q31_t)0xE57D5FDA, (q31_t)0x7D3980EC, - (q31_t)0xE4B8CD10, (q31_t)0x7D0F4218, (q31_t)0xE3F47D95, - (q31_t)0x7CE3CEB1, (q31_t)0xE330734C, (q31_t)0x7CB72724, - (q31_t)0xE26CB01A, (q31_t)0x7C894BDD, (q31_t)0xE1A935E1, - (q31_t)0x7C5A3D4F, (q31_t)0xE0E60684, (q31_t)0x7C29FBEE, - (q31_t)0xE02323E5, (q31_t)0x7BF88830, (q31_t)0xDF608FE3, - (q31_t)0x7BC5E28F, (q31_t)0xDE9E4C60, (q31_t)0x7B920B89, - (q31_t)0xDDDC5B3A, (q31_t)0x7B5D039D, (q31_t)0xDD1ABE51, - (q31_t)0x7B26CB4F, (q31_t)0xDC597781, (q31_t)0x7AEF6323, - (q31_t)0xDB9888A8, (q31_t)0x7AB6CBA3, (q31_t)0xDAD7F3A2, - (q31_t)0x7A7D055B, (q31_t)0xDA17BA4A, (q31_t)0x7A4210D8, - (q31_t)0xD957DE7A, (q31_t)0x7A05EEAD, (q31_t)0xD898620C, - (q31_t)0x79C89F6D, (q31_t)0xD7D946D7, (q31_t)0x798A23B1, - (q31_t)0xD71A8EB5, (q31_t)0x794A7C11, (q31_t)0xD65C3B7B, - (q31_t)0x7909A92C, (q31_t)0xD59E4EFE, (q31_t)0x78C7ABA1, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xD423B190, - (q31_t)0x78403328, (q31_t)0xD3670445, (q31_t)0x77FAB988, - (q31_t)0xD2AAC504, (q31_t)0x77B417DF, (q31_t)0xD1EEF59E, - (q31_t)0x776C4EDB, (q31_t)0xD13397E1, (q31_t)0x77235F2D, - (q31_t)0xD078AD9D, (q31_t)0x76D94988, (q31_t)0xCFBE389F, - (q31_t)0x768E0EA5, (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xCE4AB5A2, (q31_t)0x75F42C0A, (q31_t)0xCD91AB38, - (q31_t)0x75A585CF, (q31_t)0xCCD91D3D, (q31_t)0x7555BD4B, - (q31_t)0xCC210D78, (q31_t)0x7504D345, (q31_t)0xCB697DB0, - (q31_t)0x74B2C883, (q31_t)0xCAB26FA9, (q31_t)0x745F9DD1, - (q31_t)0xC9FBE527, (q31_t)0x740B53FA, (q31_t)0xC945DFEC, - (q31_t)0x73B5EBD0, (q31_t)0xC89061BA, (q31_t)0x735F6626, - (q31_t)0xC7DB6C50, (q31_t)0x7307C3D0, (q31_t)0xC727016C, - (q31_t)0x72AF05A6, (q31_t)0xC67322CD, (q31_t)0x72552C84, - (q31_t)0xC5BFD22E, (q31_t)0x71FA3948, (q31_t)0xC50D1148, - (q31_t)0x719E2CD2, (q31_t)0xC45AE1D7, (q31_t)0x71410804, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xC2F83E2A, - (q31_t)0x708378FE, (q31_t)0xC247CD5A, (q31_t)0x70231099, - (q31_t)0xC197F4D3, (q31_t)0x6FC19385, (q31_t)0xC0E8B648, - (q31_t)0x6F5F02B1, (q31_t)0xC03A1368, (q31_t)0x6EFB5F12, - (q31_t)0xBF8C0DE2, (q31_t)0x6E96A99C, (q31_t)0xBEDEA765, - (q31_t)0x6E30E349, (q31_t)0xBE31E19B, (q31_t)0x6DCA0D14, - (q31_t)0xBD85BE2F, (q31_t)0x6D6227FA, (q31_t)0xBCDA3ECA, - (q31_t)0x6CF934FB, (q31_t)0xBC2F6513, (q31_t)0x6C8F351C, - (q31_t)0xBB8532AF, (q31_t)0x6C242960, (q31_t)0xBADBA943, - (q31_t)0x6BB812D0, (q31_t)0xBA32CA70, (q31_t)0x6B4AF278, - (q31_t)0xB98A97D8, (q31_t)0x6ADCC964, (q31_t)0xB8E31319, - (q31_t)0x6A6D98A4, (q31_t)0xB83C3DD1, (q31_t)0x69FD614A, - (q31_t)0xB796199B, (q31_t)0x698C246C, (q31_t)0xB6F0A811, - (q31_t)0x6919E320, (q31_t)0xB64BEACC, (q31_t)0x68A69E81, - (q31_t)0xB5A7E362, (q31_t)0x683257AA, (q31_t)0xB5049368, - (q31_t)0x67BD0FBC, (q31_t)0xB461FC70, (q31_t)0x6746C7D7, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xB31EFFCB, - (q31_t)0x66573CBB, (q31_t)0xB27E9D3B, (q31_t)0x65DDFBD3, - (q31_t)0xB1DEF9E8, (q31_t)0x6563BF92, (q31_t)0xB140175B, - (q31_t)0x64E88926, (q31_t)0xB0A1F71C, (q31_t)0x646C59BF, - (q31_t)0xB0049AB2, (q31_t)0x63EF328F, (q31_t)0xAF6803A1, - (q31_t)0x637114CC, (q31_t)0xAECC336B, (q31_t)0x62F201AC, - (q31_t)0xAE312B91, (q31_t)0x6271FA69, (q31_t)0xAD96ED91, - (q31_t)0x61F1003E, (q31_t)0xACFD7AE8, (q31_t)0x616F146B, - (q31_t)0xAC64D510, (q31_t)0x60EC3830, (q31_t)0xABCCFD82, - (q31_t)0x60686CCE, (q31_t)0xAB35F5B5, (q31_t)0x5FE3B38D, - (q31_t)0xAA9FBF1D, (q31_t)0x5F5E0DB3, (q31_t)0xAA0A5B2D, - (q31_t)0x5ED77C89, (q31_t)0xA975CB56, (q31_t)0x5E50015D, - (q31_t)0xA8E21106, (q31_t)0x5DC79D7C, (q31_t)0xA84F2DA9, - (q31_t)0x5D3E5236, (q31_t)0xA7BD22AB, (q31_t)0x5CB420DF, - (q31_t)0xA72BF173, (q31_t)0x5C290ACC, (q31_t)0xA69B9B68, - (q31_t)0x5B9D1153, (q31_t)0xA60C21ED, (q31_t)0x5B1035CF, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA4EFCA31, - (q31_t)0x59F3DE12, (q31_t)0xA462EEAC, (q31_t)0x59646497, - (q31_t)0xA3D6F533, (q31_t)0x58D40E8C, (q31_t)0xA34BDF20, - (q31_t)0x5842DD54, (q31_t)0xA2C1ADC9, (q31_t)0x57B0D256, - (q31_t)0xA2386283, (q31_t)0x571DEEF9, (q31_t)0xA1AFFEA2, - (q31_t)0x568A34A9, (q31_t)0xA1288376, (q31_t)0x55F5A4D2, - (q31_t)0xA0A1F24C, (q31_t)0x556040E2, (q31_t)0xA01C4C72, - (q31_t)0x54CA0A4A, (q31_t)0x9F979331, (q31_t)0x5433027D, - (q31_t)0x9F13C7D0, (q31_t)0x539B2AEF, (q31_t)0x9E90EB94, - (q31_t)0x53028517, (q31_t)0x9E0EFFC1, (q31_t)0x5269126E, - (q31_t)0x9D8E0596, (q31_t)0x51CED46E, (q31_t)0x9D0DFE53, - (q31_t)0x5133CC94, (q31_t)0x9C8EEB33, (q31_t)0x5097FC5E, - (q31_t)0x9C10CD70, (q31_t)0x4FFB654D, (q31_t)0x9B93A640, - (q31_t)0x4F5E08E3, (q31_t)0x9B1776D9, (q31_t)0x4EBFE8A4, - (q31_t)0x9A9C406D, (q31_t)0x4E210617, (q31_t)0x9A22042C, - (q31_t)0x4D8162C4, (q31_t)0x99A8C344, (q31_t)0x4CE10034, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x98B93828, - (q31_t)0x4B9E038F, (q31_t)0x9842F043, (q31_t)0x4AFB6C97, - (q31_t)0x97CDA855, (q31_t)0x4A581C9D, (q31_t)0x9759617E, - (q31_t)0x49B41533, (q31_t)0x96E61CDF, (q31_t)0x490F57EE, - (q31_t)0x9673DB94, (q31_t)0x4869E664, (q31_t)0x96029EB5, - (q31_t)0x47C3C22E, (q31_t)0x9592675B, (q31_t)0x471CECE6, - (q31_t)0x9523369B, (q31_t)0x46756827, (q31_t)0x94B50D87, - (q31_t)0x45CD358F, (q31_t)0x9447ED2F, (q31_t)0x452456BC, - (q31_t)0x93DBD69F, (q31_t)0x447ACD50, (q31_t)0x9370CAE4, - (q31_t)0x43D09AEC, (q31_t)0x9306CB04, (q31_t)0x4325C135, - (q31_t)0x929DD805, (q31_t)0x427A41D0, (q31_t)0x9235F2EB, - (q31_t)0x41CE1E64, (q31_t)0x91CF1CB6, (q31_t)0x4121589A, - (q31_t)0x91695663, (q31_t)0x4073F21D, (q31_t)0x9104A0ED, - (q31_t)0x3FC5EC97, (q31_t)0x90A0FD4E, (q31_t)0x3F1749B7, - (q31_t)0x903E6C7A, (q31_t)0x3E680B2C, (q31_t)0x8FDCEF66, - (q31_t)0x3DB832A5, (q31_t)0x8F7C8701, (q31_t)0x3D07C1D5, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8EBEF7FB, - (q31_t)0x3BA51E29, (q31_t)0x8E61D32D, (q31_t)0x3AF2EEB7, - (q31_t)0x8E05C6B7, (q31_t)0x3A402DD1, (q31_t)0x8DAAD37B, - (q31_t)0x398CDD32, (q31_t)0x8D50FA59, (q31_t)0x38D8FE93, - (q31_t)0x8CF83C30, (q31_t)0x382493B0, (q31_t)0x8CA099D9, - (q31_t)0x376F9E46, (q31_t)0x8C4A142F, (q31_t)0x36BA2013, - (q31_t)0x8BF4AC05, (q31_t)0x36041AD9, (q31_t)0x8BA0622F, - (q31_t)0x354D9056, (q31_t)0x8B4D377C, (q31_t)0x3496824F, - (q31_t)0x8AFB2CBA, (q31_t)0x33DEF287, (q31_t)0x8AAA42B4, - (q31_t)0x3326E2C2, (q31_t)0x8A5A7A30, (q31_t)0x326E54C7, - (q31_t)0x8A0BD3F5, (q31_t)0x31B54A5D, (q31_t)0x89BE50C3, - (q31_t)0x30FBC54D, (q31_t)0x8971F15A, (q31_t)0x3041C760, - (q31_t)0x8926B677, (q31_t)0x2F875262, (q31_t)0x88DCA0D3, - (q31_t)0x2ECC681E, (q31_t)0x8893B124, (q31_t)0x2E110A62, - (q31_t)0x884BE820, (q31_t)0x2D553AFB, (q31_t)0x88054677, - (q31_t)0x2C98FBBA, (q31_t)0x87BFCCD7, (q31_t)0x2BDC4E6F, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x8738545E, - (q31_t)0x2A61B101, (q31_t)0x86F656D3, (q31_t)0x29A3C484, - (q31_t)0x86B583EE, (q31_t)0x28E5714A, (q31_t)0x8675DC4E, - (q31_t)0x2826B928, (q31_t)0x86376092, (q31_t)0x27679DF4, - (q31_t)0x85FA1152, (q31_t)0x26A82185, (q31_t)0x85BDEF27, - (q31_t)0x25E845B5, (q31_t)0x8582FAA4, (q31_t)0x25280C5D, - (q31_t)0x8549345C, (q31_t)0x24677757, (q31_t)0x85109CDC, - (q31_t)0x23A6887E, (q31_t)0x84D934B0, (q31_t)0x22E541AE, - (q31_t)0x84A2FC62, (q31_t)0x2223A4C5, (q31_t)0x846DF476, - (q31_t)0x2161B39F, (q31_t)0x843A1D70, (q31_t)0x209F701C, - (q31_t)0x840777CF, (q31_t)0x1FDCDC1A, (q31_t)0x83D60411, - (q31_t)0x1F19F97B, (q31_t)0x83A5C2B0, (q31_t)0x1E56CA1E, - (q31_t)0x8376B422, (q31_t)0x1D934FE5, (q31_t)0x8348D8DB, - (q31_t)0x1CCF8CB3, (q31_t)0x831C314E, (q31_t)0x1C0B826A, - (q31_t)0x82F0BDE8, (q31_t)0x1B4732EF, (q31_t)0x82C67F13, - (q31_t)0x1A82A025, (q31_t)0x829D753A, (q31_t)0x19BDCBF2, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x824F0208, - (q31_t)0x183366E8, (q31_t)0x82299971, (q31_t)0x176DD9DE, - (q31_t)0x82056758, (q31_t)0x16A81305, (q31_t)0x81E26C16, - (q31_t)0x15E21444, (q31_t)0x81C0A801, (q31_t)0x151BDF85, - (q31_t)0x81A01B6C, (q31_t)0x145576B1, (q31_t)0x8180C6A9, - (q31_t)0x138EDBB0, (q31_t)0x8162AA03, (q31_t)0x12C8106E, - (q31_t)0x8145C5C6, (q31_t)0x120116D4, (q31_t)0x812A1A39, - (q31_t)0x1139F0CE, (q31_t)0x810FA7A0, (q31_t)0x1072A047, - (q31_t)0x80F66E3C, (q31_t)0x0FAB272B, (q31_t)0x80DE6E4C, - (q31_t)0x0EE38765, (q31_t)0x80C7A80A, (q31_t)0x0E1BC2E3, - (q31_t)0x80B21BAF, (q31_t)0x0D53DB92, (q31_t)0x809DC970, - (q31_t)0x0C8BD35E, (q31_t)0x808AB180, (q31_t)0x0BC3AC35, - (q31_t)0x8078D40D, (q31_t)0x0AFB6805, (q31_t)0x80683143, - (q31_t)0x0A3308BC, (q31_t)0x8058C94C, (q31_t)0x096A9049, - (q31_t)0x804A9C4D, (q31_t)0x08A2009A, (q31_t)0x803DAA69, - (q31_t)0x07D95B9E, (q31_t)0x8031F3C1, (q31_t)0x0710A344, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x801E3894, - (q31_t)0x057F0034, (q31_t)0x80163440, (q31_t)0x04B6195D, - (q31_t)0x800F6B88, (q31_t)0x03ED26E6, (q31_t)0x8009DE7D, - (q31_t)0x03242ABF, (q31_t)0x80058D2E, (q31_t)0x025B26D7, - (q31_t)0x800277A5, (q31_t)0x01921D1F, (q31_t)0x80009DE9, - (q31_t)0x00C90F88, (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x80009DE9, (q31_t)0xFF36F078, (q31_t)0x800277A5, - (q31_t)0xFE6DE2E0, (q31_t)0x80058D2E, (q31_t)0xFDA4D928, - (q31_t)0x8009DE7D, (q31_t)0xFCDBD541, (q31_t)0x800F6B88, - (q31_t)0xFC12D919, (q31_t)0x80163440, (q31_t)0xFB49E6A2, - (q31_t)0x801E3894, (q31_t)0xFA80FFCB, (q31_t)0x80277872, - (q31_t)0xF9B82683, (q31_t)0x8031F3C1, (q31_t)0xF8EF5CBB, - (q31_t)0x803DAA69, (q31_t)0xF826A461, (q31_t)0x804A9C4D, - (q31_t)0xF75DFF65, (q31_t)0x8058C94C, (q31_t)0xF6956FB6, - (q31_t)0x80683143, (q31_t)0xF5CCF743, (q31_t)0x8078D40D, - (q31_t)0xF50497FA, (q31_t)0x808AB180, (q31_t)0xF43C53CA, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x80B21BAF, - (q31_t)0xF2AC246D, (q31_t)0x80C7A80A, (q31_t)0xF1E43D1C, - (q31_t)0x80DE6E4C, (q31_t)0xF11C789A, (q31_t)0x80F66E3C, - (q31_t)0xF054D8D4, (q31_t)0x810FA7A0, (q31_t)0xEF8D5FB8, - (q31_t)0x812A1A39, (q31_t)0xEEC60F31, (q31_t)0x8145C5C6, - (q31_t)0xEDFEE92B, (q31_t)0x8162AA03, (q31_t)0xED37EF91, - (q31_t)0x8180C6A9, (q31_t)0xEC71244F, (q31_t)0x81A01B6C, - (q31_t)0xEBAA894E, (q31_t)0x81C0A801, (q31_t)0xEAE4207A, - (q31_t)0x81E26C16, (q31_t)0xEA1DEBBB, (q31_t)0x82056758, - (q31_t)0xE957ECFB, (q31_t)0x82299971, (q31_t)0xE8922621, - (q31_t)0x824F0208, (q31_t)0xE7CC9917, (q31_t)0x8275A0C0, - (q31_t)0xE70747C3, (q31_t)0x829D753A, (q31_t)0xE642340D, - (q31_t)0x82C67F13, (q31_t)0xE57D5FDA, (q31_t)0x82F0BDE8, - (q31_t)0xE4B8CD10, (q31_t)0x831C314E, (q31_t)0xE3F47D95, - (q31_t)0x8348D8DB, (q31_t)0xE330734C, (q31_t)0x8376B422, - (q31_t)0xE26CB01A, (q31_t)0x83A5C2B0, (q31_t)0xE1A935E1, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x840777CF, - (q31_t)0xE02323E5, (q31_t)0x843A1D70, (q31_t)0xDF608FE3, - (q31_t)0x846DF476, (q31_t)0xDE9E4C60, (q31_t)0x84A2FC62, - (q31_t)0xDDDC5B3A, (q31_t)0x84D934B0, (q31_t)0xDD1ABE51, - (q31_t)0x85109CDC, (q31_t)0xDC597781, (q31_t)0x8549345C, - (q31_t)0xDB9888A8, (q31_t)0x8582FAA4, (q31_t)0xDAD7F3A2, - (q31_t)0x85BDEF27, (q31_t)0xDA17BA4A, (q31_t)0x85FA1152, - (q31_t)0xD957DE7A, (q31_t)0x86376092, (q31_t)0xD898620C, - (q31_t)0x8675DC4E, (q31_t)0xD7D946D7, (q31_t)0x86B583EE, - (q31_t)0xD71A8EB5, (q31_t)0x86F656D3, (q31_t)0xD65C3B7B, - (q31_t)0x8738545E, (q31_t)0xD59E4EFE, (q31_t)0x877B7BEC, - (q31_t)0xD4E0CB14, (q31_t)0x87BFCCD7, (q31_t)0xD423B190, - (q31_t)0x88054677, (q31_t)0xD3670445, (q31_t)0x884BE820, - (q31_t)0xD2AAC504, (q31_t)0x8893B124, (q31_t)0xD1EEF59E, - (q31_t)0x88DCA0D3, (q31_t)0xD13397E1, (q31_t)0x8926B677, - (q31_t)0xD078AD9D, (q31_t)0x8971F15A, (q31_t)0xCFBE389F, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x8A0BD3F5, - (q31_t)0xCE4AB5A2, (q31_t)0x8A5A7A30, (q31_t)0xCD91AB38, - (q31_t)0x8AAA42B4, (q31_t)0xCCD91D3D, (q31_t)0x8AFB2CBA, - (q31_t)0xCC210D78, (q31_t)0x8B4D377C, (q31_t)0xCB697DB0, - (q31_t)0x8BA0622F, (q31_t)0xCAB26FA9, (q31_t)0x8BF4AC05, - (q31_t)0xC9FBE527, (q31_t)0x8C4A142F, (q31_t)0xC945DFEC, - (q31_t)0x8CA099D9, (q31_t)0xC89061BA, (q31_t)0x8CF83C30, - (q31_t)0xC7DB6C50, (q31_t)0x8D50FA59, (q31_t)0xC727016C, - (q31_t)0x8DAAD37B, (q31_t)0xC67322CD, (q31_t)0x8E05C6B7, - (q31_t)0xC5BFD22E, (q31_t)0x8E61D32D, (q31_t)0xC50D1148, - (q31_t)0x8EBEF7FB, (q31_t)0xC45AE1D7, (q31_t)0x8F1D343A, - (q31_t)0xC3A9458F, (q31_t)0x8F7C8701, (q31_t)0xC2F83E2A, - (q31_t)0x8FDCEF66, (q31_t)0xC247CD5A, (q31_t)0x903E6C7A, - (q31_t)0xC197F4D3, (q31_t)0x90A0FD4E, (q31_t)0xC0E8B648, - (q31_t)0x9104A0ED, (q31_t)0xC03A1368, (q31_t)0x91695663, - (q31_t)0xBF8C0DE2, (q31_t)0x91CF1CB6, (q31_t)0xBEDEA765, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x929DD805, - (q31_t)0xBD85BE2F, (q31_t)0x9306CB04, (q31_t)0xBCDA3ECA, - (q31_t)0x9370CAE4, (q31_t)0xBC2F6513, (q31_t)0x93DBD69F, - (q31_t)0xBB8532AF, (q31_t)0x9447ED2F, (q31_t)0xBADBA943, - (q31_t)0x94B50D87, (q31_t)0xBA32CA70, (q31_t)0x9523369B, - (q31_t)0xB98A97D8, (q31_t)0x9592675B, (q31_t)0xB8E31319, - (q31_t)0x96029EB5, (q31_t)0xB83C3DD1, (q31_t)0x9673DB94, - (q31_t)0xB796199B, (q31_t)0x96E61CDF, (q31_t)0xB6F0A811, - (q31_t)0x9759617E, (q31_t)0xB64BEACC, (q31_t)0x97CDA855, - (q31_t)0xB5A7E362, (q31_t)0x9842F043, (q31_t)0xB5049368, - (q31_t)0x98B93828, (q31_t)0xB461FC70, (q31_t)0x99307EE0, - (q31_t)0xB3C0200C, (q31_t)0x99A8C344, (q31_t)0xB31EFFCB, - (q31_t)0x9A22042C, (q31_t)0xB27E9D3B, (q31_t)0x9A9C406D, - (q31_t)0xB1DEF9E8, (q31_t)0x9B1776D9, (q31_t)0xB140175B, - (q31_t)0x9B93A640, (q31_t)0xB0A1F71C, (q31_t)0x9C10CD70, - (q31_t)0xB0049AB2, (q31_t)0x9C8EEB33, (q31_t)0xAF6803A1, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0x9D8E0596, - (q31_t)0xAE312B91, (q31_t)0x9E0EFFC1, (q31_t)0xAD96ED91, - (q31_t)0x9E90EB94, (q31_t)0xACFD7AE8, (q31_t)0x9F13C7D0, - (q31_t)0xAC64D510, (q31_t)0x9F979331, (q31_t)0xABCCFD82, - (q31_t)0xA01C4C72, (q31_t)0xAB35F5B5, (q31_t)0xA0A1F24C, - (q31_t)0xAA9FBF1D, (q31_t)0xA1288376, (q31_t)0xAA0A5B2D, - (q31_t)0xA1AFFEA2, (q31_t)0xA975CB56, (q31_t)0xA2386283, - (q31_t)0xA8E21106, (q31_t)0xA2C1ADC9, (q31_t)0xA84F2DA9, - (q31_t)0xA34BDF20, (q31_t)0xA7BD22AB, (q31_t)0xA3D6F533, - (q31_t)0xA72BF173, (q31_t)0xA462EEAC, (q31_t)0xA69B9B68, - (q31_t)0xA4EFCA31, (q31_t)0xA60C21ED, (q31_t)0xA57D8666, - (q31_t)0xA57D8666, (q31_t)0xA60C21ED, (q31_t)0xA4EFCA31, - (q31_t)0xA69B9B68, (q31_t)0xA462EEAC, (q31_t)0xA72BF173, - (q31_t)0xA3D6F533, (q31_t)0xA7BD22AB, (q31_t)0xA34BDF20, - (q31_t)0xA84F2DA9, (q31_t)0xA2C1ADC9, (q31_t)0xA8E21106, - (q31_t)0xA2386283, (q31_t)0xA975CB56, (q31_t)0xA1AFFEA2, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAA9FBF1D, - (q31_t)0xA0A1F24C, (q31_t)0xAB35F5B5, (q31_t)0xA01C4C72, - (q31_t)0xABCCFD82, (q31_t)0x9F979331, (q31_t)0xAC64D510, - (q31_t)0x9F13C7D0, (q31_t)0xACFD7AE8, (q31_t)0x9E90EB94, - (q31_t)0xAD96ED91, (q31_t)0x9E0EFFC1, (q31_t)0xAE312B91, - (q31_t)0x9D8E0596, (q31_t)0xAECC336B, (q31_t)0x9D0DFE53, - (q31_t)0xAF6803A1, (q31_t)0x9C8EEB33, (q31_t)0xB0049AB2, - (q31_t)0x9C10CD70, (q31_t)0xB0A1F71C, (q31_t)0x9B93A640, - (q31_t)0xB140175B, (q31_t)0x9B1776D9, (q31_t)0xB1DEF9E8, - (q31_t)0x9A9C406D, (q31_t)0xB27E9D3B, (q31_t)0x9A22042C, - (q31_t)0xB31EFFCB, (q31_t)0x99A8C344, (q31_t)0xB3C0200C, - (q31_t)0x99307EE0, (q31_t)0xB461FC70, (q31_t)0x98B93828, - (q31_t)0xB5049368, (q31_t)0x9842F043, (q31_t)0xB5A7E362, - (q31_t)0x97CDA855, (q31_t)0xB64BEACC, (q31_t)0x9759617E, - (q31_t)0xB6F0A811, (q31_t)0x96E61CDF, (q31_t)0xB796199B, - (q31_t)0x9673DB94, (q31_t)0xB83C3DD1, (q31_t)0x96029EB5, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xB98A97D8, - (q31_t)0x9523369B, (q31_t)0xBA32CA70, (q31_t)0x94B50D87, - (q31_t)0xBADBA943, (q31_t)0x9447ED2F, (q31_t)0xBB8532AF, - (q31_t)0x93DBD69F, (q31_t)0xBC2F6513, (q31_t)0x9370CAE4, - (q31_t)0xBCDA3ECA, (q31_t)0x9306CB04, (q31_t)0xBD85BE2F, - (q31_t)0x929DD805, (q31_t)0xBE31E19B, (q31_t)0x9235F2EB, - (q31_t)0xBEDEA765, (q31_t)0x91CF1CB6, (q31_t)0xBF8C0DE2, - (q31_t)0x91695663, (q31_t)0xC03A1368, (q31_t)0x9104A0ED, - (q31_t)0xC0E8B648, (q31_t)0x90A0FD4E, (q31_t)0xC197F4D3, - (q31_t)0x903E6C7A, (q31_t)0xC247CD5A, (q31_t)0x8FDCEF66, - (q31_t)0xC2F83E2A, (q31_t)0x8F7C8701, (q31_t)0xC3A9458F, - (q31_t)0x8F1D343A, (q31_t)0xC45AE1D7, (q31_t)0x8EBEF7FB, - (q31_t)0xC50D1148, (q31_t)0x8E61D32D, (q31_t)0xC5BFD22E, - (q31_t)0x8E05C6B7, (q31_t)0xC67322CD, (q31_t)0x8DAAD37B, - (q31_t)0xC727016C, (q31_t)0x8D50FA59, (q31_t)0xC7DB6C50, - (q31_t)0x8CF83C30, (q31_t)0xC89061BA, (q31_t)0x8CA099D9, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xC9FBE527, - (q31_t)0x8BF4AC05, (q31_t)0xCAB26FA9, (q31_t)0x8BA0622F, - (q31_t)0xCB697DB0, (q31_t)0x8B4D377C, (q31_t)0xCC210D78, - (q31_t)0x8AFB2CBA, (q31_t)0xCCD91D3D, (q31_t)0x8AAA42B4, - (q31_t)0xCD91AB38, (q31_t)0x8A5A7A30, (q31_t)0xCE4AB5A2, - (q31_t)0x8A0BD3F5, (q31_t)0xCF043AB2, (q31_t)0x89BE50C3, - (q31_t)0xCFBE389F, (q31_t)0x8971F15A, (q31_t)0xD078AD9D, - (q31_t)0x8926B677, (q31_t)0xD13397E1, (q31_t)0x88DCA0D3, - (q31_t)0xD1EEF59E, (q31_t)0x8893B124, (q31_t)0xD2AAC504, - (q31_t)0x884BE820, (q31_t)0xD3670445, (q31_t)0x88054677, - (q31_t)0xD423B190, (q31_t)0x87BFCCD7, (q31_t)0xD4E0CB14, - (q31_t)0x877B7BEC, (q31_t)0xD59E4EFE, (q31_t)0x8738545E, - (q31_t)0xD65C3B7B, (q31_t)0x86F656D3, (q31_t)0xD71A8EB5, - (q31_t)0x86B583EE, (q31_t)0xD7D946D7, (q31_t)0x8675DC4E, - (q31_t)0xD898620C, (q31_t)0x86376092, (q31_t)0xD957DE7A, - (q31_t)0x85FA1152, (q31_t)0xDA17BA4A, (q31_t)0x85BDEF27, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xDB9888A8, - (q31_t)0x8549345C, (q31_t)0xDC597781, (q31_t)0x85109CDC, - (q31_t)0xDD1ABE51, (q31_t)0x84D934B0, (q31_t)0xDDDC5B3A, - (q31_t)0x84A2FC62, (q31_t)0xDE9E4C60, (q31_t)0x846DF476, - (q31_t)0xDF608FE3, (q31_t)0x843A1D70, (q31_t)0xE02323E5, - (q31_t)0x840777CF, (q31_t)0xE0E60684, (q31_t)0x83D60411, - (q31_t)0xE1A935E1, (q31_t)0x83A5C2B0, (q31_t)0xE26CB01A, - (q31_t)0x8376B422, (q31_t)0xE330734C, (q31_t)0x8348D8DB, - (q31_t)0xE3F47D95, (q31_t)0x831C314E, (q31_t)0xE4B8CD10, - (q31_t)0x82F0BDE8, (q31_t)0xE57D5FDA, (q31_t)0x82C67F13, - (q31_t)0xE642340D, (q31_t)0x829D753A, (q31_t)0xE70747C3, - (q31_t)0x8275A0C0, (q31_t)0xE7CC9917, (q31_t)0x824F0208, - (q31_t)0xE8922621, (q31_t)0x82299971, (q31_t)0xE957ECFB, - (q31_t)0x82056758, (q31_t)0xEA1DEBBB, (q31_t)0x81E26C16, - (q31_t)0xEAE4207A, (q31_t)0x81C0A801, (q31_t)0xEBAA894E, - (q31_t)0x81A01B6C, (q31_t)0xEC71244F, (q31_t)0x8180C6A9, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xEDFEE92B, - (q31_t)0x8145C5C6, (q31_t)0xEEC60F31, (q31_t)0x812A1A39, - (q31_t)0xEF8D5FB8, (q31_t)0x810FA7A0, (q31_t)0xF054D8D4, - (q31_t)0x80F66E3C, (q31_t)0xF11C789A, (q31_t)0x80DE6E4C, - (q31_t)0xF1E43D1C, (q31_t)0x80C7A80A, (q31_t)0xF2AC246D, - (q31_t)0x80B21BAF, (q31_t)0xF3742CA1, (q31_t)0x809DC970, - (q31_t)0xF43C53CA, (q31_t)0x808AB180, (q31_t)0xF50497FA, - (q31_t)0x8078D40D, (q31_t)0xF5CCF743, (q31_t)0x80683143, - (q31_t)0xF6956FB6, (q31_t)0x8058C94C, (q31_t)0xF75DFF65, - (q31_t)0x804A9C4D, (q31_t)0xF826A461, (q31_t)0x803DAA69, - (q31_t)0xF8EF5CBB, (q31_t)0x8031F3C1, (q31_t)0xF9B82683, - (q31_t)0x80277872, (q31_t)0xFA80FFCB, (q31_t)0x801E3894, - (q31_t)0xFB49E6A2, (q31_t)0x80163440, (q31_t)0xFC12D919, - (q31_t)0x800F6B88, (q31_t)0xFCDBD541, (q31_t)0x8009DE7D, - (q31_t)0xFDA4D928, (q31_t)0x80058D2E, (q31_t)0xFE6DE2E0, - (q31_t)0x800277A5, (q31_t)0xFF36F078, (q31_t)0x80009DE9 -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 2048 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_2048_q31[3072] = { - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FFFD885, - (q31_t)0x006487E3, (q31_t)0x7FFF6216, (q31_t)0x00C90F88, - (q31_t)0x7FFE9CB2, (q31_t)0x012D96B0, (q31_t)0x7FFD885A, - (q31_t)0x01921D1F, (q31_t)0x7FFC250F, (q31_t)0x01F6A296, - (q31_t)0x7FFA72D1, (q31_t)0x025B26D7, (q31_t)0x7FF871A1, - (q31_t)0x02BFA9A4, (q31_t)0x7FF62182, (q31_t)0x03242ABF, - (q31_t)0x7FF38273, (q31_t)0x0388A9E9, (q31_t)0x7FF09477, - (q31_t)0x03ED26E6, (q31_t)0x7FED5790, (q31_t)0x0451A176, - (q31_t)0x7FE9CBC0, (q31_t)0x04B6195D, (q31_t)0x7FE5F108, - (q31_t)0x051A8E5C, (q31_t)0x7FE1C76B, (q31_t)0x057F0034, - (q31_t)0x7FDD4EEC, (q31_t)0x05E36EA9, (q31_t)0x7FD8878D, - (q31_t)0x0647D97C, (q31_t)0x7FD37152, (q31_t)0x06AC406F, - (q31_t)0x7FCE0C3E, (q31_t)0x0710A344, (q31_t)0x7FC85853, - (q31_t)0x077501BE, (q31_t)0x7FC25596, (q31_t)0x07D95B9E, - (q31_t)0x7FBC040A, (q31_t)0x083DB0A7, (q31_t)0x7FB563B2, - (q31_t)0x08A2009A, (q31_t)0x7FAE7494, (q31_t)0x09064B3A, - (q31_t)0x7FA736B4, (q31_t)0x096A9049, (q31_t)0x7F9FAA15, - (q31_t)0x09CECF89, (q31_t)0x7F97CEBC, (q31_t)0x0A3308BC, - (q31_t)0x7F8FA4AF, (q31_t)0x0A973BA5, (q31_t)0x7F872BF3, - (q31_t)0x0AFB6805, (q31_t)0x7F7E648B, (q31_t)0x0B5F8D9F, - (q31_t)0x7F754E7F, (q31_t)0x0BC3AC35, (q31_t)0x7F6BE9D4, - (q31_t)0x0C27C389, (q31_t)0x7F62368F, (q31_t)0x0C8BD35E, - (q31_t)0x7F5834B6, (q31_t)0x0CEFDB75, (q31_t)0x7F4DE450, - (q31_t)0x0D53DB92, (q31_t)0x7F434563, (q31_t)0x0DB7D376, - (q31_t)0x7F3857F5, (q31_t)0x0E1BC2E3, (q31_t)0x7F2D1C0E, - (q31_t)0x0E7FA99D, (q31_t)0x7F2191B4, (q31_t)0x0EE38765, - (q31_t)0x7F15B8EE, (q31_t)0x0F475BFE, (q31_t)0x7F0991C3, - (q31_t)0x0FAB272B, (q31_t)0x7EFD1C3C, (q31_t)0x100EE8AD, - (q31_t)0x7EF0585F, (q31_t)0x1072A047, (q31_t)0x7EE34635, - (q31_t)0x10D64DBC, (q31_t)0x7ED5E5C6, (q31_t)0x1139F0CE, - (q31_t)0x7EC8371A, (q31_t)0x119D8940, (q31_t)0x7EBA3A39, - (q31_t)0x120116D4, (q31_t)0x7EABEF2C, (q31_t)0x1264994E, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7E8E6EB1, - (q31_t)0x132B7BF9, (q31_t)0x7E7F3956, (q31_t)0x138EDBB0, - (q31_t)0x7E6FB5F3, (q31_t)0x13F22F57, (q31_t)0x7E5FE493, - (q31_t)0x145576B1, (q31_t)0x7E4FC53E, (q31_t)0x14B8B17F, - (q31_t)0x7E3F57FE, (q31_t)0x151BDF85, (q31_t)0x7E2E9CDF, - (q31_t)0x157F0086, (q31_t)0x7E1D93E9, (q31_t)0x15E21444, - (q31_t)0x7E0C3D29, (q31_t)0x16451A83, (q31_t)0x7DFA98A7, - (q31_t)0x16A81305, (q31_t)0x7DE8A670, (q31_t)0x170AFD8D, - (q31_t)0x7DD6668E, (q31_t)0x176DD9DE, (q31_t)0x7DC3D90D, - (q31_t)0x17D0A7BB, (q31_t)0x7DB0FDF7, (q31_t)0x183366E8, - (q31_t)0x7D9DD55A, (q31_t)0x18961727, (q31_t)0x7D8A5F3F, - (q31_t)0x18F8B83C, (q31_t)0x7D769BB5, (q31_t)0x195B49E9, - (q31_t)0x7D628AC5, (q31_t)0x19BDCBF2, (q31_t)0x7D4E2C7E, - (q31_t)0x1A203E1B, (q31_t)0x7D3980EC, (q31_t)0x1A82A025, - (q31_t)0x7D24881A, (q31_t)0x1AE4F1D6, (q31_t)0x7D0F4218, - (q31_t)0x1B4732EF, (q31_t)0x7CF9AEF0, (q31_t)0x1BA96334, - (q31_t)0x7CE3CEB1, (q31_t)0x1C0B826A, (q31_t)0x7CCDA168, - (q31_t)0x1C6D9053, (q31_t)0x7CB72724, (q31_t)0x1CCF8CB3, - (q31_t)0x7CA05FF1, (q31_t)0x1D31774D, (q31_t)0x7C894BDD, - (q31_t)0x1D934FE5, (q31_t)0x7C71EAF8, (q31_t)0x1DF5163F, - (q31_t)0x7C5A3D4F, (q31_t)0x1E56CA1E, (q31_t)0x7C4242F2, - (q31_t)0x1EB86B46, (q31_t)0x7C29FBEE, (q31_t)0x1F19F97B, - (q31_t)0x7C116853, (q31_t)0x1F7B7480, (q31_t)0x7BF88830, - (q31_t)0x1FDCDC1A, (q31_t)0x7BDF5B94, (q31_t)0x203E300D, - (q31_t)0x7BC5E28F, (q31_t)0x209F701C, (q31_t)0x7BAC1D31, - (q31_t)0x21009C0B, (q31_t)0x7B920B89, (q31_t)0x2161B39F, - (q31_t)0x7B77ADA8, (q31_t)0x21C2B69C, (q31_t)0x7B5D039D, - (q31_t)0x2223A4C5, (q31_t)0x7B420D7A, (q31_t)0x22847DDF, - (q31_t)0x7B26CB4F, (q31_t)0x22E541AE, (q31_t)0x7B0B3D2C, - (q31_t)0x2345EFF7, (q31_t)0x7AEF6323, (q31_t)0x23A6887E, - (q31_t)0x7AD33D45, (q31_t)0x24070B07, (q31_t)0x7AB6CBA3, - (q31_t)0x24677757, (q31_t)0x7A9A0E4F, (q31_t)0x24C7CD32, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x7A5FB0D8, - (q31_t)0x2588349D, (q31_t)0x7A4210D8, (q31_t)0x25E845B5, - (q31_t)0x7A24256E, (q31_t)0x26483F6C, (q31_t)0x7A05EEAD, - (q31_t)0x26A82185, (q31_t)0x79E76CA6, (q31_t)0x2707EBC6, - (q31_t)0x79C89F6D, (q31_t)0x27679DF4, (q31_t)0x79A98715, - (q31_t)0x27C737D2, (q31_t)0x798A23B1, (q31_t)0x2826B928, - (q31_t)0x796A7554, (q31_t)0x288621B9, (q31_t)0x794A7C11, - (q31_t)0x28E5714A, (q31_t)0x792A37FE, (q31_t)0x2944A7A2, - (q31_t)0x7909A92C, (q31_t)0x29A3C484, (q31_t)0x78E8CFB1, - (q31_t)0x2A02C7B8, (q31_t)0x78C7ABA1, (q31_t)0x2A61B101, - (q31_t)0x78A63D10, (q31_t)0x2AC08025, (q31_t)0x78848413, - (q31_t)0x2B1F34EB, (q31_t)0x786280BF, (q31_t)0x2B7DCF17, - (q31_t)0x78403328, (q31_t)0x2BDC4E6F, (q31_t)0x781D9B64, - (q31_t)0x2C3AB2B9, (q31_t)0x77FAB988, (q31_t)0x2C98FBBA, - (q31_t)0x77D78DAA, (q31_t)0x2CF72939, (q31_t)0x77B417DF, - (q31_t)0x2D553AFB, (q31_t)0x7790583D, (q31_t)0x2DB330C7, - (q31_t)0x776C4EDB, (q31_t)0x2E110A62, (q31_t)0x7747FBCE, - (q31_t)0x2E6EC792, (q31_t)0x77235F2D, (q31_t)0x2ECC681E, - (q31_t)0x76FE790E, (q31_t)0x2F29EBCC, (q31_t)0x76D94988, - (q31_t)0x2F875262, (q31_t)0x76B3D0B3, (q31_t)0x2FE49BA6, - (q31_t)0x768E0EA5, (q31_t)0x3041C760, (q31_t)0x76680376, - (q31_t)0x309ED555, (q31_t)0x7641AF3C, (q31_t)0x30FBC54D, - (q31_t)0x761B1211, (q31_t)0x3158970D, (q31_t)0x75F42C0A, - (q31_t)0x31B54A5D, (q31_t)0x75CCFD42, (q31_t)0x3211DF03, - (q31_t)0x75A585CF, (q31_t)0x326E54C7, (q31_t)0x757DC5CA, - (q31_t)0x32CAAB6F, (q31_t)0x7555BD4B, (q31_t)0x3326E2C2, - (q31_t)0x752D6C6C, (q31_t)0x3382FA88, (q31_t)0x7504D345, - (q31_t)0x33DEF287, (q31_t)0x74DBF1EF, (q31_t)0x343ACA87, - (q31_t)0x74B2C883, (q31_t)0x3496824F, (q31_t)0x7489571B, - (q31_t)0x34F219A7, (q31_t)0x745F9DD1, (q31_t)0x354D9056, - (q31_t)0x74359CBD, (q31_t)0x35A8E624, (q31_t)0x740B53FA, - (q31_t)0x36041AD9, (q31_t)0x73E0C3A3, (q31_t)0x365F2E3B, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x738ACC9E, - (q31_t)0x3714F02A, (q31_t)0x735F6626, (q31_t)0x376F9E46, - (q31_t)0x7333B883, (q31_t)0x37CA2A30, (q31_t)0x7307C3D0, - (q31_t)0x382493B0, (q31_t)0x72DB8828, (q31_t)0x387EDA8E, - (q31_t)0x72AF05A6, (q31_t)0x38D8FE93, (q31_t)0x72823C66, - (q31_t)0x3932FF87, (q31_t)0x72552C84, (q31_t)0x398CDD32, - (q31_t)0x7227D61C, (q31_t)0x39E6975D, (q31_t)0x71FA3948, - (q31_t)0x3A402DD1, (q31_t)0x71CC5626, (q31_t)0x3A99A057, - (q31_t)0x719E2CD2, (q31_t)0x3AF2EEB7, (q31_t)0x716FBD68, - (q31_t)0x3B4C18BA, (q31_t)0x71410804, (q31_t)0x3BA51E29, - (q31_t)0x71120CC5, (q31_t)0x3BFDFECD, (q31_t)0x70E2CBC6, - (q31_t)0x3C56BA70, (q31_t)0x70B34524, (q31_t)0x3CAF50DA, - (q31_t)0x708378FE, (q31_t)0x3D07C1D5, (q31_t)0x70536771, - (q31_t)0x3D600D2B, (q31_t)0x70231099, (q31_t)0x3DB832A5, - (q31_t)0x6FF27496, (q31_t)0x3E10320D, (q31_t)0x6FC19385, - (q31_t)0x3E680B2C, (q31_t)0x6F906D84, (q31_t)0x3EBFBDCC, - (q31_t)0x6F5F02B1, (q31_t)0x3F1749B7, (q31_t)0x6F2D532C, - (q31_t)0x3F6EAEB8, (q31_t)0x6EFB5F12, (q31_t)0x3FC5EC97, - (q31_t)0x6EC92682, (q31_t)0x401D0320, (q31_t)0x6E96A99C, - (q31_t)0x4073F21D, (q31_t)0x6E63E87F, (q31_t)0x40CAB957, - (q31_t)0x6E30E349, (q31_t)0x4121589A, (q31_t)0x6DFD9A1B, - (q31_t)0x4177CFB0, (q31_t)0x6DCA0D14, (q31_t)0x41CE1E64, - (q31_t)0x6D963C54, (q31_t)0x42244480, (q31_t)0x6D6227FA, - (q31_t)0x427A41D0, (q31_t)0x6D2DD027, (q31_t)0x42D0161E, - (q31_t)0x6CF934FB, (q31_t)0x4325C135, (q31_t)0x6CC45697, - (q31_t)0x437B42E1, (q31_t)0x6C8F351C, (q31_t)0x43D09AEC, - (q31_t)0x6C59D0A9, (q31_t)0x4425C923, (q31_t)0x6C242960, - (q31_t)0x447ACD50, (q31_t)0x6BEE3F62, (q31_t)0x44CFA73F, - (q31_t)0x6BB812D0, (q31_t)0x452456BC, (q31_t)0x6B81A3CD, - (q31_t)0x4578DB93, (q31_t)0x6B4AF278, (q31_t)0x45CD358F, - (q31_t)0x6B13FEF5, (q31_t)0x4621647C, (q31_t)0x6ADCC964, - (q31_t)0x46756827, (q31_t)0x6AA551E8, (q31_t)0x46C9405C, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x6A359DB9, - (q31_t)0x47706D93, (q31_t)0x69FD614A, (q31_t)0x47C3C22E, - (q31_t)0x69C4E37A, (q31_t)0x4816EA85, (q31_t)0x698C246C, - (q31_t)0x4869E664, (q31_t)0x69532442, (q31_t)0x48BCB598, - (q31_t)0x6919E320, (q31_t)0x490F57EE, (q31_t)0x68E06129, - (q31_t)0x4961CD32, (q31_t)0x68A69E81, (q31_t)0x49B41533, - (q31_t)0x686C9B4B, (q31_t)0x4A062FBD, (q31_t)0x683257AA, - (q31_t)0x4A581C9D, (q31_t)0x67F7D3C4, (q31_t)0x4AA9DBA1, - (q31_t)0x67BD0FBC, (q31_t)0x4AFB6C97, (q31_t)0x67820BB6, - (q31_t)0x4B4CCF4D, (q31_t)0x6746C7D7, (q31_t)0x4B9E038F, - (q31_t)0x670B4443, (q31_t)0x4BEF092D, (q31_t)0x66CF811F, - (q31_t)0x4C3FDFF3, (q31_t)0x66937E90, (q31_t)0x4C9087B1, - (q31_t)0x66573CBB, (q31_t)0x4CE10034, (q31_t)0x661ABBC5, - (q31_t)0x4D31494B, (q31_t)0x65DDFBD3, (q31_t)0x4D8162C4, - (q31_t)0x65A0FD0B, (q31_t)0x4DD14C6E, (q31_t)0x6563BF92, - (q31_t)0x4E210617, (q31_t)0x6526438E, (q31_t)0x4E708F8F, - (q31_t)0x64E88926, (q31_t)0x4EBFE8A4, (q31_t)0x64AA907F, - (q31_t)0x4F0F1126, (q31_t)0x646C59BF, (q31_t)0x4F5E08E3, - (q31_t)0x642DE50D, (q31_t)0x4FACCFAB, (q31_t)0x63EF328F, - (q31_t)0x4FFB654D, (q31_t)0x63B0426D, (q31_t)0x5049C999, - (q31_t)0x637114CC, (q31_t)0x5097FC5E, (q31_t)0x6331A9D4, - (q31_t)0x50E5FD6C, (q31_t)0x62F201AC, (q31_t)0x5133CC94, - (q31_t)0x62B21C7B, (q31_t)0x518169A4, (q31_t)0x6271FA69, - (q31_t)0x51CED46E, (q31_t)0x62319B9D, (q31_t)0x521C0CC1, - (q31_t)0x61F1003E, (q31_t)0x5269126E, (q31_t)0x61B02876, - (q31_t)0x52B5E545, (q31_t)0x616F146B, (q31_t)0x53028517, - (q31_t)0x612DC446, (q31_t)0x534EF1B5, (q31_t)0x60EC3830, - (q31_t)0x539B2AEF, (q31_t)0x60AA704F, (q31_t)0x53E73097, - (q31_t)0x60686CCE, (q31_t)0x5433027D, (q31_t)0x60262DD5, - (q31_t)0x547EA073, (q31_t)0x5FE3B38D, (q31_t)0x54CA0A4A, - (q31_t)0x5FA0FE1E, (q31_t)0x55153FD4, (q31_t)0x5F5E0DB3, - (q31_t)0x556040E2, (q31_t)0x5F1AE273, (q31_t)0x55AB0D46, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5E93DC1F, - (q31_t)0x56400757, (q31_t)0x5E50015D, (q31_t)0x568A34A9, - (q31_t)0x5E0BEC6E, (q31_t)0x56D42C99, (q31_t)0x5DC79D7C, - (q31_t)0x571DEEF9, (q31_t)0x5D8314B0, (q31_t)0x57677B9D, - (q31_t)0x5D3E5236, (q31_t)0x57B0D256, (q31_t)0x5CF95638, - (q31_t)0x57F9F2F7, (q31_t)0x5CB420DF, (q31_t)0x5842DD54, - (q31_t)0x5C6EB258, (q31_t)0x588B913F, (q31_t)0x5C290ACC, - (q31_t)0x58D40E8C, (q31_t)0x5BE32A67, (q31_t)0x591C550E, - (q31_t)0x5B9D1153, (q31_t)0x59646497, (q31_t)0x5B56BFBD, - (q31_t)0x59AC3CFD, (q31_t)0x5B1035CF, (q31_t)0x59F3DE12, - (q31_t)0x5AC973B4, (q31_t)0x5A3B47AA, (q31_t)0x5A82799A, - (q31_t)0x5A82799A, (q31_t)0x5A3B47AA, (q31_t)0x5AC973B4, - (q31_t)0x59F3DE12, (q31_t)0x5B1035CF, (q31_t)0x59AC3CFD, - (q31_t)0x5B56BFBD, (q31_t)0x59646497, (q31_t)0x5B9D1153, - (q31_t)0x591C550E, (q31_t)0x5BE32A67, (q31_t)0x58D40E8C, - (q31_t)0x5C290ACC, (q31_t)0x588B913F, (q31_t)0x5C6EB258, - (q31_t)0x5842DD54, (q31_t)0x5CB420DF, (q31_t)0x57F9F2F7, - (q31_t)0x5CF95638, (q31_t)0x57B0D256, (q31_t)0x5D3E5236, - (q31_t)0x57677B9D, (q31_t)0x5D8314B0, (q31_t)0x571DEEF9, - (q31_t)0x5DC79D7C, (q31_t)0x56D42C99, (q31_t)0x5E0BEC6E, - (q31_t)0x568A34A9, (q31_t)0x5E50015D, (q31_t)0x56400757, - (q31_t)0x5E93DC1F, (q31_t)0x55F5A4D2, (q31_t)0x5ED77C89, - (q31_t)0x55AB0D46, (q31_t)0x5F1AE273, (q31_t)0x556040E2, - (q31_t)0x5F5E0DB3, (q31_t)0x55153FD4, (q31_t)0x5FA0FE1E, - (q31_t)0x54CA0A4A, (q31_t)0x5FE3B38D, (q31_t)0x547EA073, - (q31_t)0x60262DD5, (q31_t)0x5433027D, (q31_t)0x60686CCE, - (q31_t)0x53E73097, (q31_t)0x60AA704F, (q31_t)0x539B2AEF, - (q31_t)0x60EC3830, (q31_t)0x534EF1B5, (q31_t)0x612DC446, - (q31_t)0x53028517, (q31_t)0x616F146B, (q31_t)0x52B5E545, - (q31_t)0x61B02876, (q31_t)0x5269126E, (q31_t)0x61F1003E, - (q31_t)0x521C0CC1, (q31_t)0x62319B9D, (q31_t)0x51CED46E, - (q31_t)0x6271FA69, (q31_t)0x518169A4, (q31_t)0x62B21C7B, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x50E5FD6C, - (q31_t)0x6331A9D4, (q31_t)0x5097FC5E, (q31_t)0x637114CC, - (q31_t)0x5049C999, (q31_t)0x63B0426D, (q31_t)0x4FFB654D, - (q31_t)0x63EF328F, (q31_t)0x4FACCFAB, (q31_t)0x642DE50D, - (q31_t)0x4F5E08E3, (q31_t)0x646C59BF, (q31_t)0x4F0F1126, - (q31_t)0x64AA907F, (q31_t)0x4EBFE8A4, (q31_t)0x64E88926, - (q31_t)0x4E708F8F, (q31_t)0x6526438E, (q31_t)0x4E210617, - (q31_t)0x6563BF92, (q31_t)0x4DD14C6E, (q31_t)0x65A0FD0B, - (q31_t)0x4D8162C4, (q31_t)0x65DDFBD3, (q31_t)0x4D31494B, - (q31_t)0x661ABBC5, (q31_t)0x4CE10034, (q31_t)0x66573CBB, - (q31_t)0x4C9087B1, (q31_t)0x66937E90, (q31_t)0x4C3FDFF3, - (q31_t)0x66CF811F, (q31_t)0x4BEF092D, (q31_t)0x670B4443, - (q31_t)0x4B9E038F, (q31_t)0x6746C7D7, (q31_t)0x4B4CCF4D, - (q31_t)0x67820BB6, (q31_t)0x4AFB6C97, (q31_t)0x67BD0FBC, - (q31_t)0x4AA9DBA1, (q31_t)0x67F7D3C4, (q31_t)0x4A581C9D, - (q31_t)0x683257AA, (q31_t)0x4A062FBD, (q31_t)0x686C9B4B, - (q31_t)0x49B41533, (q31_t)0x68A69E81, (q31_t)0x4961CD32, - (q31_t)0x68E06129, (q31_t)0x490F57EE, (q31_t)0x6919E320, - (q31_t)0x48BCB598, (q31_t)0x69532442, (q31_t)0x4869E664, - (q31_t)0x698C246C, (q31_t)0x4816EA85, (q31_t)0x69C4E37A, - (q31_t)0x47C3C22E, (q31_t)0x69FD614A, (q31_t)0x47706D93, - (q31_t)0x6A359DB9, (q31_t)0x471CECE6, (q31_t)0x6A6D98A4, - (q31_t)0x46C9405C, (q31_t)0x6AA551E8, (q31_t)0x46756827, - (q31_t)0x6ADCC964, (q31_t)0x4621647C, (q31_t)0x6B13FEF5, - (q31_t)0x45CD358F, (q31_t)0x6B4AF278, (q31_t)0x4578DB93, - (q31_t)0x6B81A3CD, (q31_t)0x452456BC, (q31_t)0x6BB812D0, - (q31_t)0x44CFA73F, (q31_t)0x6BEE3F62, (q31_t)0x447ACD50, - (q31_t)0x6C242960, (q31_t)0x4425C923, (q31_t)0x6C59D0A9, - (q31_t)0x43D09AEC, (q31_t)0x6C8F351C, (q31_t)0x437B42E1, - (q31_t)0x6CC45697, (q31_t)0x4325C135, (q31_t)0x6CF934FB, - (q31_t)0x42D0161E, (q31_t)0x6D2DD027, (q31_t)0x427A41D0, - (q31_t)0x6D6227FA, (q31_t)0x42244480, (q31_t)0x6D963C54, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x4177CFB0, - (q31_t)0x6DFD9A1B, (q31_t)0x4121589A, (q31_t)0x6E30E349, - (q31_t)0x40CAB957, (q31_t)0x6E63E87F, (q31_t)0x4073F21D, - (q31_t)0x6E96A99C, (q31_t)0x401D0320, (q31_t)0x6EC92682, - (q31_t)0x3FC5EC97, (q31_t)0x6EFB5F12, (q31_t)0x3F6EAEB8, - (q31_t)0x6F2D532C, (q31_t)0x3F1749B7, (q31_t)0x6F5F02B1, - (q31_t)0x3EBFBDCC, (q31_t)0x6F906D84, (q31_t)0x3E680B2C, - (q31_t)0x6FC19385, (q31_t)0x3E10320D, (q31_t)0x6FF27496, - (q31_t)0x3DB832A5, (q31_t)0x70231099, (q31_t)0x3D600D2B, - (q31_t)0x70536771, (q31_t)0x3D07C1D5, (q31_t)0x708378FE, - (q31_t)0x3CAF50DA, (q31_t)0x70B34524, (q31_t)0x3C56BA70, - (q31_t)0x70E2CBC6, (q31_t)0x3BFDFECD, (q31_t)0x71120CC5, - (q31_t)0x3BA51E29, (q31_t)0x71410804, (q31_t)0x3B4C18BA, - (q31_t)0x716FBD68, (q31_t)0x3AF2EEB7, (q31_t)0x719E2CD2, - (q31_t)0x3A99A057, (q31_t)0x71CC5626, (q31_t)0x3A402DD1, - (q31_t)0x71FA3948, (q31_t)0x39E6975D, (q31_t)0x7227D61C, - (q31_t)0x398CDD32, (q31_t)0x72552C84, (q31_t)0x3932FF87, - (q31_t)0x72823C66, (q31_t)0x38D8FE93, (q31_t)0x72AF05A6, - (q31_t)0x387EDA8E, (q31_t)0x72DB8828, (q31_t)0x382493B0, - (q31_t)0x7307C3D0, (q31_t)0x37CA2A30, (q31_t)0x7333B883, - (q31_t)0x376F9E46, (q31_t)0x735F6626, (q31_t)0x3714F02A, - (q31_t)0x738ACC9E, (q31_t)0x36BA2013, (q31_t)0x73B5EBD0, - (q31_t)0x365F2E3B, (q31_t)0x73E0C3A3, (q31_t)0x36041AD9, - (q31_t)0x740B53FA, (q31_t)0x35A8E624, (q31_t)0x74359CBD, - (q31_t)0x354D9056, (q31_t)0x745F9DD1, (q31_t)0x34F219A7, - (q31_t)0x7489571B, (q31_t)0x3496824F, (q31_t)0x74B2C883, - (q31_t)0x343ACA87, (q31_t)0x74DBF1EF, (q31_t)0x33DEF287, - (q31_t)0x7504D345, (q31_t)0x3382FA88, (q31_t)0x752D6C6C, - (q31_t)0x3326E2C2, (q31_t)0x7555BD4B, (q31_t)0x32CAAB6F, - (q31_t)0x757DC5CA, (q31_t)0x326E54C7, (q31_t)0x75A585CF, - (q31_t)0x3211DF03, (q31_t)0x75CCFD42, (q31_t)0x31B54A5D, - (q31_t)0x75F42C0A, (q31_t)0x3158970D, (q31_t)0x761B1211, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x309ED555, - (q31_t)0x76680376, (q31_t)0x3041C760, (q31_t)0x768E0EA5, - (q31_t)0x2FE49BA6, (q31_t)0x76B3D0B3, (q31_t)0x2F875262, - (q31_t)0x76D94988, (q31_t)0x2F29EBCC, (q31_t)0x76FE790E, - (q31_t)0x2ECC681E, (q31_t)0x77235F2D, (q31_t)0x2E6EC792, - (q31_t)0x7747FBCE, (q31_t)0x2E110A62, (q31_t)0x776C4EDB, - (q31_t)0x2DB330C7, (q31_t)0x7790583D, (q31_t)0x2D553AFB, - (q31_t)0x77B417DF, (q31_t)0x2CF72939, (q31_t)0x77D78DAA, - (q31_t)0x2C98FBBA, (q31_t)0x77FAB988, (q31_t)0x2C3AB2B9, - (q31_t)0x781D9B64, (q31_t)0x2BDC4E6F, (q31_t)0x78403328, - (q31_t)0x2B7DCF17, (q31_t)0x786280BF, (q31_t)0x2B1F34EB, - (q31_t)0x78848413, (q31_t)0x2AC08025, (q31_t)0x78A63D10, - (q31_t)0x2A61B101, (q31_t)0x78C7ABA1, (q31_t)0x2A02C7B8, - (q31_t)0x78E8CFB1, (q31_t)0x29A3C484, (q31_t)0x7909A92C, - (q31_t)0x2944A7A2, (q31_t)0x792A37FE, (q31_t)0x28E5714A, - (q31_t)0x794A7C11, (q31_t)0x288621B9, (q31_t)0x796A7554, - (q31_t)0x2826B928, (q31_t)0x798A23B1, (q31_t)0x27C737D2, - (q31_t)0x79A98715, (q31_t)0x27679DF4, (q31_t)0x79C89F6D, - (q31_t)0x2707EBC6, (q31_t)0x79E76CA6, (q31_t)0x26A82185, - (q31_t)0x7A05EEAD, (q31_t)0x26483F6C, (q31_t)0x7A24256E, - (q31_t)0x25E845B5, (q31_t)0x7A4210D8, (q31_t)0x2588349D, - (q31_t)0x7A5FB0D8, (q31_t)0x25280C5D, (q31_t)0x7A7D055B, - (q31_t)0x24C7CD32, (q31_t)0x7A9A0E4F, (q31_t)0x24677757, - (q31_t)0x7AB6CBA3, (q31_t)0x24070B07, (q31_t)0x7AD33D45, - (q31_t)0x23A6887E, (q31_t)0x7AEF6323, (q31_t)0x2345EFF7, - (q31_t)0x7B0B3D2C, (q31_t)0x22E541AE, (q31_t)0x7B26CB4F, - (q31_t)0x22847DDF, (q31_t)0x7B420D7A, (q31_t)0x2223A4C5, - (q31_t)0x7B5D039D, (q31_t)0x21C2B69C, (q31_t)0x7B77ADA8, - (q31_t)0x2161B39F, (q31_t)0x7B920B89, (q31_t)0x21009C0B, - (q31_t)0x7BAC1D31, (q31_t)0x209F701C, (q31_t)0x7BC5E28F, - (q31_t)0x203E300D, (q31_t)0x7BDF5B94, (q31_t)0x1FDCDC1A, - (q31_t)0x7BF88830, (q31_t)0x1F7B7480, (q31_t)0x7C116853, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x1EB86B46, - (q31_t)0x7C4242F2, (q31_t)0x1E56CA1E, (q31_t)0x7C5A3D4F, - (q31_t)0x1DF5163F, (q31_t)0x7C71EAF8, (q31_t)0x1D934FE5, - (q31_t)0x7C894BDD, (q31_t)0x1D31774D, (q31_t)0x7CA05FF1, - (q31_t)0x1CCF8CB3, (q31_t)0x7CB72724, (q31_t)0x1C6D9053, - (q31_t)0x7CCDA168, (q31_t)0x1C0B826A, (q31_t)0x7CE3CEB1, - (q31_t)0x1BA96334, (q31_t)0x7CF9AEF0, (q31_t)0x1B4732EF, - (q31_t)0x7D0F4218, (q31_t)0x1AE4F1D6, (q31_t)0x7D24881A, - (q31_t)0x1A82A025, (q31_t)0x7D3980EC, (q31_t)0x1A203E1B, - (q31_t)0x7D4E2C7E, (q31_t)0x19BDCBF2, (q31_t)0x7D628AC5, - (q31_t)0x195B49E9, (q31_t)0x7D769BB5, (q31_t)0x18F8B83C, - (q31_t)0x7D8A5F3F, (q31_t)0x18961727, (q31_t)0x7D9DD55A, - (q31_t)0x183366E8, (q31_t)0x7DB0FDF7, (q31_t)0x17D0A7BB, - (q31_t)0x7DC3D90D, (q31_t)0x176DD9DE, (q31_t)0x7DD6668E, - (q31_t)0x170AFD8D, (q31_t)0x7DE8A670, (q31_t)0x16A81305, - (q31_t)0x7DFA98A7, (q31_t)0x16451A83, (q31_t)0x7E0C3D29, - (q31_t)0x15E21444, (q31_t)0x7E1D93E9, (q31_t)0x157F0086, - (q31_t)0x7E2E9CDF, (q31_t)0x151BDF85, (q31_t)0x7E3F57FE, - (q31_t)0x14B8B17F, (q31_t)0x7E4FC53E, (q31_t)0x145576B1, - (q31_t)0x7E5FE493, (q31_t)0x13F22F57, (q31_t)0x7E6FB5F3, - (q31_t)0x138EDBB0, (q31_t)0x7E7F3956, (q31_t)0x132B7BF9, - (q31_t)0x7E8E6EB1, (q31_t)0x12C8106E, (q31_t)0x7E9D55FC, - (q31_t)0x1264994E, (q31_t)0x7EABEF2C, (q31_t)0x120116D4, - (q31_t)0x7EBA3A39, (q31_t)0x119D8940, (q31_t)0x7EC8371A, - (q31_t)0x1139F0CE, (q31_t)0x7ED5E5C6, (q31_t)0x10D64DBC, - (q31_t)0x7EE34635, (q31_t)0x1072A047, (q31_t)0x7EF0585F, - (q31_t)0x100EE8AD, (q31_t)0x7EFD1C3C, (q31_t)0x0FAB272B, - (q31_t)0x7F0991C3, (q31_t)0x0F475BFE, (q31_t)0x7F15B8EE, - (q31_t)0x0EE38765, (q31_t)0x7F2191B4, (q31_t)0x0E7FA99D, - (q31_t)0x7F2D1C0E, (q31_t)0x0E1BC2E3, (q31_t)0x7F3857F5, - (q31_t)0x0DB7D376, (q31_t)0x7F434563, (q31_t)0x0D53DB92, - (q31_t)0x7F4DE450, (q31_t)0x0CEFDB75, (q31_t)0x7F5834B6, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x0C27C389, - (q31_t)0x7F6BE9D4, (q31_t)0x0BC3AC35, (q31_t)0x7F754E7F, - (q31_t)0x0B5F8D9F, (q31_t)0x7F7E648B, (q31_t)0x0AFB6805, - (q31_t)0x7F872BF3, (q31_t)0x0A973BA5, (q31_t)0x7F8FA4AF, - (q31_t)0x0A3308BC, (q31_t)0x7F97CEBC, (q31_t)0x09CECF89, - (q31_t)0x7F9FAA15, (q31_t)0x096A9049, (q31_t)0x7FA736B4, - (q31_t)0x09064B3A, (q31_t)0x7FAE7494, (q31_t)0x08A2009A, - (q31_t)0x7FB563B2, (q31_t)0x083DB0A7, (q31_t)0x7FBC040A, - (q31_t)0x07D95B9E, (q31_t)0x7FC25596, (q31_t)0x077501BE, - (q31_t)0x7FC85853, (q31_t)0x0710A344, (q31_t)0x7FCE0C3E, - (q31_t)0x06AC406F, (q31_t)0x7FD37152, (q31_t)0x0647D97C, - (q31_t)0x7FD8878D, (q31_t)0x05E36EA9, (q31_t)0x7FDD4EEC, - (q31_t)0x057F0034, (q31_t)0x7FE1C76B, (q31_t)0x051A8E5C, - (q31_t)0x7FE5F108, (q31_t)0x04B6195D, (q31_t)0x7FE9CBC0, - (q31_t)0x0451A176, (q31_t)0x7FED5790, (q31_t)0x03ED26E6, - (q31_t)0x7FF09477, (q31_t)0x0388A9E9, (q31_t)0x7FF38273, - (q31_t)0x03242ABF, (q31_t)0x7FF62182, (q31_t)0x02BFA9A4, - (q31_t)0x7FF871A1, (q31_t)0x025B26D7, (q31_t)0x7FFA72D1, - (q31_t)0x01F6A296, (q31_t)0x7FFC250F, (q31_t)0x01921D1F, - (q31_t)0x7FFD885A, (q31_t)0x012D96B0, (q31_t)0x7FFE9CB2, - (q31_t)0x00C90F88, (q31_t)0x7FFF6216, (q31_t)0x006487E3, - (q31_t)0x7FFFD885, (q31_t)0x00000000, (q31_t)0x7FFFFFFF, - (q31_t)0xFF9B781D, (q31_t)0x7FFFD885, (q31_t)0xFF36F078, - (q31_t)0x7FFF6216, (q31_t)0xFED2694F, (q31_t)0x7FFE9CB2, - (q31_t)0xFE6DE2E0, (q31_t)0x7FFD885A, (q31_t)0xFE095D69, - (q31_t)0x7FFC250F, (q31_t)0xFDA4D928, (q31_t)0x7FFA72D1, - (q31_t)0xFD40565B, (q31_t)0x7FF871A1, (q31_t)0xFCDBD541, - (q31_t)0x7FF62182, (q31_t)0xFC775616, (q31_t)0x7FF38273, - (q31_t)0xFC12D919, (q31_t)0x7FF09477, (q31_t)0xFBAE5E89, - (q31_t)0x7FED5790, (q31_t)0xFB49E6A2, (q31_t)0x7FE9CBC0, - (q31_t)0xFAE571A4, (q31_t)0x7FE5F108, (q31_t)0xFA80FFCB, - (q31_t)0x7FE1C76B, (q31_t)0xFA1C9156, (q31_t)0x7FDD4EEC, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF953BF90, - (q31_t)0x7FD37152, (q31_t)0xF8EF5CBB, (q31_t)0x7FCE0C3E, - (q31_t)0xF88AFE41, (q31_t)0x7FC85853, (q31_t)0xF826A461, - (q31_t)0x7FC25596, (q31_t)0xF7C24F58, (q31_t)0x7FBC040A, - (q31_t)0xF75DFF65, (q31_t)0x7FB563B2, (q31_t)0xF6F9B4C5, - (q31_t)0x7FAE7494, (q31_t)0xF6956FB6, (q31_t)0x7FA736B4, - (q31_t)0xF6313076, (q31_t)0x7F9FAA15, (q31_t)0xF5CCF743, - (q31_t)0x7F97CEBC, (q31_t)0xF568C45A, (q31_t)0x7F8FA4AF, - (q31_t)0xF50497FA, (q31_t)0x7F872BF3, (q31_t)0xF4A07260, - (q31_t)0x7F7E648B, (q31_t)0xF43C53CA, (q31_t)0x7F754E7F, - (q31_t)0xF3D83C76, (q31_t)0x7F6BE9D4, (q31_t)0xF3742CA1, - (q31_t)0x7F62368F, (q31_t)0xF310248A, (q31_t)0x7F5834B6, - (q31_t)0xF2AC246D, (q31_t)0x7F4DE450, (q31_t)0xF2482C89, - (q31_t)0x7F434563, (q31_t)0xF1E43D1C, (q31_t)0x7F3857F5, - (q31_t)0xF1805662, (q31_t)0x7F2D1C0E, (q31_t)0xF11C789A, - (q31_t)0x7F2191B4, (q31_t)0xF0B8A401, (q31_t)0x7F15B8EE, - (q31_t)0xF054D8D4, (q31_t)0x7F0991C3, (q31_t)0xEFF11752, - (q31_t)0x7EFD1C3C, (q31_t)0xEF8D5FB8, (q31_t)0x7EF0585F, - (q31_t)0xEF29B243, (q31_t)0x7EE34635, (q31_t)0xEEC60F31, - (q31_t)0x7ED5E5C6, (q31_t)0xEE6276BF, (q31_t)0x7EC8371A, - (q31_t)0xEDFEE92B, (q31_t)0x7EBA3A39, (q31_t)0xED9B66B2, - (q31_t)0x7EABEF2C, (q31_t)0xED37EF91, (q31_t)0x7E9D55FC, - (q31_t)0xECD48406, (q31_t)0x7E8E6EB1, (q31_t)0xEC71244F, - (q31_t)0x7E7F3956, (q31_t)0xEC0DD0A8, (q31_t)0x7E6FB5F3, - (q31_t)0xEBAA894E, (q31_t)0x7E5FE493, (q31_t)0xEB474E80, - (q31_t)0x7E4FC53E, (q31_t)0xEAE4207A, (q31_t)0x7E3F57FE, - (q31_t)0xEA80FF79, (q31_t)0x7E2E9CDF, (q31_t)0xEA1DEBBB, - (q31_t)0x7E1D93E9, (q31_t)0xE9BAE57C, (q31_t)0x7E0C3D29, - (q31_t)0xE957ECFB, (q31_t)0x7DFA98A7, (q31_t)0xE8F50273, - (q31_t)0x7DE8A670, (q31_t)0xE8922621, (q31_t)0x7DD6668E, - (q31_t)0xE82F5844, (q31_t)0x7DC3D90D, (q31_t)0xE7CC9917, - (q31_t)0x7DB0FDF7, (q31_t)0xE769E8D8, (q31_t)0x7D9DD55A, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE6A4B616, - (q31_t)0x7D769BB5, (q31_t)0xE642340D, (q31_t)0x7D628AC5, - (q31_t)0xE5DFC1E4, (q31_t)0x7D4E2C7E, (q31_t)0xE57D5FDA, - (q31_t)0x7D3980EC, (q31_t)0xE51B0E2A, (q31_t)0x7D24881A, - (q31_t)0xE4B8CD10, (q31_t)0x7D0F4218, (q31_t)0xE4569CCB, - (q31_t)0x7CF9AEF0, (q31_t)0xE3F47D95, (q31_t)0x7CE3CEB1, - (q31_t)0xE3926FAC, (q31_t)0x7CCDA168, (q31_t)0xE330734C, - (q31_t)0x7CB72724, (q31_t)0xE2CE88B2, (q31_t)0x7CA05FF1, - (q31_t)0xE26CB01A, (q31_t)0x7C894BDD, (q31_t)0xE20AE9C1, - (q31_t)0x7C71EAF8, (q31_t)0xE1A935E1, (q31_t)0x7C5A3D4F, - (q31_t)0xE14794B9, (q31_t)0x7C4242F2, (q31_t)0xE0E60684, - (q31_t)0x7C29FBEE, (q31_t)0xE0848B7F, (q31_t)0x7C116853, - (q31_t)0xE02323E5, (q31_t)0x7BF88830, (q31_t)0xDFC1CFF2, - (q31_t)0x7BDF5B94, (q31_t)0xDF608FE3, (q31_t)0x7BC5E28F, - (q31_t)0xDEFF63F4, (q31_t)0x7BAC1D31, (q31_t)0xDE9E4C60, - (q31_t)0x7B920B89, (q31_t)0xDE3D4963, (q31_t)0x7B77ADA8, - (q31_t)0xDDDC5B3A, (q31_t)0x7B5D039D, (q31_t)0xDD7B8220, - (q31_t)0x7B420D7A, (q31_t)0xDD1ABE51, (q31_t)0x7B26CB4F, - (q31_t)0xDCBA1008, (q31_t)0x7B0B3D2C, (q31_t)0xDC597781, - (q31_t)0x7AEF6323, (q31_t)0xDBF8F4F8, (q31_t)0x7AD33D45, - (q31_t)0xDB9888A8, (q31_t)0x7AB6CBA3, (q31_t)0xDB3832CD, - (q31_t)0x7A9A0E4F, (q31_t)0xDAD7F3A2, (q31_t)0x7A7D055B, - (q31_t)0xDA77CB62, (q31_t)0x7A5FB0D8, (q31_t)0xDA17BA4A, - (q31_t)0x7A4210D8, (q31_t)0xD9B7C093, (q31_t)0x7A24256E, - (q31_t)0xD957DE7A, (q31_t)0x7A05EEAD, (q31_t)0xD8F81439, - (q31_t)0x79E76CA6, (q31_t)0xD898620C, (q31_t)0x79C89F6D, - (q31_t)0xD838C82D, (q31_t)0x79A98715, (q31_t)0xD7D946D7, - (q31_t)0x798A23B1, (q31_t)0xD779DE46, (q31_t)0x796A7554, - (q31_t)0xD71A8EB5, (q31_t)0x794A7C11, (q31_t)0xD6BB585D, - (q31_t)0x792A37FE, (q31_t)0xD65C3B7B, (q31_t)0x7909A92C, - (q31_t)0xD5FD3847, (q31_t)0x78E8CFB1, (q31_t)0xD59E4EFE, - (q31_t)0x78C7ABA1, (q31_t)0xD53F7FDA, (q31_t)0x78A63D10, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xD48230E8, - (q31_t)0x786280BF, (q31_t)0xD423B190, (q31_t)0x78403328, - (q31_t)0xD3C54D46, (q31_t)0x781D9B64, (q31_t)0xD3670445, - (q31_t)0x77FAB988, (q31_t)0xD308D6C6, (q31_t)0x77D78DAA, - (q31_t)0xD2AAC504, (q31_t)0x77B417DF, (q31_t)0xD24CCF38, - (q31_t)0x7790583D, (q31_t)0xD1EEF59E, (q31_t)0x776C4EDB, - (q31_t)0xD191386D, (q31_t)0x7747FBCE, (q31_t)0xD13397E1, - (q31_t)0x77235F2D, (q31_t)0xD0D61433, (q31_t)0x76FE790E, - (q31_t)0xD078AD9D, (q31_t)0x76D94988, (q31_t)0xD01B6459, - (q31_t)0x76B3D0B3, (q31_t)0xCFBE389F, (q31_t)0x768E0EA5, - (q31_t)0xCF612AAA, (q31_t)0x76680376, (q31_t)0xCF043AB2, - (q31_t)0x7641AF3C, (q31_t)0xCEA768F2, (q31_t)0x761B1211, - (q31_t)0xCE4AB5A2, (q31_t)0x75F42C0A, (q31_t)0xCDEE20FC, - (q31_t)0x75CCFD42, (q31_t)0xCD91AB38, (q31_t)0x75A585CF, - (q31_t)0xCD355490, (q31_t)0x757DC5CA, (q31_t)0xCCD91D3D, - (q31_t)0x7555BD4B, (q31_t)0xCC7D0577, (q31_t)0x752D6C6C, - (q31_t)0xCC210D78, (q31_t)0x7504D345, (q31_t)0xCBC53578, - (q31_t)0x74DBF1EF, (q31_t)0xCB697DB0, (q31_t)0x74B2C883, - (q31_t)0xCB0DE658, (q31_t)0x7489571B, (q31_t)0xCAB26FA9, - (q31_t)0x745F9DD1, (q31_t)0xCA5719DB, (q31_t)0x74359CBD, - (q31_t)0xC9FBE527, (q31_t)0x740B53FA, (q31_t)0xC9A0D1C4, - (q31_t)0x73E0C3A3, (q31_t)0xC945DFEC, (q31_t)0x73B5EBD0, - (q31_t)0xC8EB0FD6, (q31_t)0x738ACC9E, (q31_t)0xC89061BA, - (q31_t)0x735F6626, (q31_t)0xC835D5D0, (q31_t)0x7333B883, - (q31_t)0xC7DB6C50, (q31_t)0x7307C3D0, (q31_t)0xC7812571, - (q31_t)0x72DB8828, (q31_t)0xC727016C, (q31_t)0x72AF05A6, - (q31_t)0xC6CD0079, (q31_t)0x72823C66, (q31_t)0xC67322CD, - (q31_t)0x72552C84, (q31_t)0xC61968A2, (q31_t)0x7227D61C, - (q31_t)0xC5BFD22E, (q31_t)0x71FA3948, (q31_t)0xC5665FA8, - (q31_t)0x71CC5626, (q31_t)0xC50D1148, (q31_t)0x719E2CD2, - (q31_t)0xC4B3E746, (q31_t)0x716FBD68, (q31_t)0xC45AE1D7, - (q31_t)0x71410804, (q31_t)0xC4020132, (q31_t)0x71120CC5, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xC350AF25, - (q31_t)0x70B34524, (q31_t)0xC2F83E2A, (q31_t)0x708378FE, - (q31_t)0xC29FF2D4, (q31_t)0x70536771, (q31_t)0xC247CD5A, - (q31_t)0x70231099, (q31_t)0xC1EFCDF2, (q31_t)0x6FF27496, - (q31_t)0xC197F4D3, (q31_t)0x6FC19385, (q31_t)0xC1404233, - (q31_t)0x6F906D84, (q31_t)0xC0E8B648, (q31_t)0x6F5F02B1, - (q31_t)0xC0915147, (q31_t)0x6F2D532C, (q31_t)0xC03A1368, - (q31_t)0x6EFB5F12, (q31_t)0xBFE2FCDF, (q31_t)0x6EC92682, - (q31_t)0xBF8C0DE2, (q31_t)0x6E96A99C, (q31_t)0xBF3546A8, - (q31_t)0x6E63E87F, (q31_t)0xBEDEA765, (q31_t)0x6E30E349, - (q31_t)0xBE88304F, (q31_t)0x6DFD9A1B, (q31_t)0xBE31E19B, - (q31_t)0x6DCA0D14, (q31_t)0xBDDBBB7F, (q31_t)0x6D963C54, - (q31_t)0xBD85BE2F, (q31_t)0x6D6227FA, (q31_t)0xBD2FE9E1, - (q31_t)0x6D2DD027, (q31_t)0xBCDA3ECA, (q31_t)0x6CF934FB, - (q31_t)0xBC84BD1E, (q31_t)0x6CC45697, (q31_t)0xBC2F6513, - (q31_t)0x6C8F351C, (q31_t)0xBBDA36DC, (q31_t)0x6C59D0A9, - (q31_t)0xBB8532AF, (q31_t)0x6C242960, (q31_t)0xBB3058C0, - (q31_t)0x6BEE3F62, (q31_t)0xBADBA943, (q31_t)0x6BB812D0, - (q31_t)0xBA87246C, (q31_t)0x6B81A3CD, (q31_t)0xBA32CA70, - (q31_t)0x6B4AF278, (q31_t)0xB9DE9B83, (q31_t)0x6B13FEF5, - (q31_t)0xB98A97D8, (q31_t)0x6ADCC964, (q31_t)0xB936BFA3, - (q31_t)0x6AA551E8, (q31_t)0xB8E31319, (q31_t)0x6A6D98A4, - (q31_t)0xB88F926C, (q31_t)0x6A359DB9, (q31_t)0xB83C3DD1, - (q31_t)0x69FD614A, (q31_t)0xB7E9157A, (q31_t)0x69C4E37A, - (q31_t)0xB796199B, (q31_t)0x698C246C, (q31_t)0xB7434A67, - (q31_t)0x69532442, (q31_t)0xB6F0A811, (q31_t)0x6919E320, - (q31_t)0xB69E32CD, (q31_t)0x68E06129, (q31_t)0xB64BEACC, - (q31_t)0x68A69E81, (q31_t)0xB5F9D042, (q31_t)0x686C9B4B, - (q31_t)0xB5A7E362, (q31_t)0x683257AA, (q31_t)0xB556245E, - (q31_t)0x67F7D3C4, (q31_t)0xB5049368, (q31_t)0x67BD0FBC, - (q31_t)0xB4B330B2, (q31_t)0x67820BB6, (q31_t)0xB461FC70, - (q31_t)0x6746C7D7, (q31_t)0xB410F6D2, (q31_t)0x670B4443, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xB36F784E, - (q31_t)0x66937E90, (q31_t)0xB31EFFCB, (q31_t)0x66573CBB, - (q31_t)0xB2CEB6B5, (q31_t)0x661ABBC5, (q31_t)0xB27E9D3B, - (q31_t)0x65DDFBD3, (q31_t)0xB22EB392, (q31_t)0x65A0FD0B, - (q31_t)0xB1DEF9E8, (q31_t)0x6563BF92, (q31_t)0xB18F7070, - (q31_t)0x6526438E, (q31_t)0xB140175B, (q31_t)0x64E88926, - (q31_t)0xB0F0EEDA, (q31_t)0x64AA907F, (q31_t)0xB0A1F71C, - (q31_t)0x646C59BF, (q31_t)0xB0533055, (q31_t)0x642DE50D, - (q31_t)0xB0049AB2, (q31_t)0x63EF328F, (q31_t)0xAFB63667, - (q31_t)0x63B0426D, (q31_t)0xAF6803A1, (q31_t)0x637114CC, - (q31_t)0xAF1A0293, (q31_t)0x6331A9D4, (q31_t)0xAECC336B, - (q31_t)0x62F201AC, (q31_t)0xAE7E965B, (q31_t)0x62B21C7B, - (q31_t)0xAE312B91, (q31_t)0x6271FA69, (q31_t)0xADE3F33E, - (q31_t)0x62319B9D, (q31_t)0xAD96ED91, (q31_t)0x61F1003E, - (q31_t)0xAD4A1ABA, (q31_t)0x61B02876, (q31_t)0xACFD7AE8, - (q31_t)0x616F146B, (q31_t)0xACB10E4A, (q31_t)0x612DC446, - (q31_t)0xAC64D510, (q31_t)0x60EC3830, (q31_t)0xAC18CF68, - (q31_t)0x60AA704F, (q31_t)0xABCCFD82, (q31_t)0x60686CCE, - (q31_t)0xAB815F8C, (q31_t)0x60262DD5, (q31_t)0xAB35F5B5, - (q31_t)0x5FE3B38D, (q31_t)0xAAEAC02B, (q31_t)0x5FA0FE1E, - (q31_t)0xAA9FBF1D, (q31_t)0x5F5E0DB3, (q31_t)0xAA54F2B9, - (q31_t)0x5F1AE273, (q31_t)0xAA0A5B2D, (q31_t)0x5ED77C89, - (q31_t)0xA9BFF8A8, (q31_t)0x5E93DC1F, (q31_t)0xA975CB56, - (q31_t)0x5E50015D, (q31_t)0xA92BD366, (q31_t)0x5E0BEC6E, - (q31_t)0xA8E21106, (q31_t)0x5DC79D7C, (q31_t)0xA8988463, - (q31_t)0x5D8314B0, (q31_t)0xA84F2DA9, (q31_t)0x5D3E5236, - (q31_t)0xA8060D08, (q31_t)0x5CF95638, (q31_t)0xA7BD22AB, - (q31_t)0x5CB420DF, (q31_t)0xA7746EC0, (q31_t)0x5C6EB258, - (q31_t)0xA72BF173, (q31_t)0x5C290ACC, (q31_t)0xA6E3AAF2, - (q31_t)0x5BE32A67, (q31_t)0xA69B9B68, (q31_t)0x5B9D1153, - (q31_t)0xA653C302, (q31_t)0x5B56BFBD, (q31_t)0xA60C21ED, - (q31_t)0x5B1035CF, (q31_t)0xA5C4B855, (q31_t)0x5AC973B4, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA5368C4B, - (q31_t)0x5A3B47AA, (q31_t)0xA4EFCA31, (q31_t)0x59F3DE12, - (q31_t)0xA4A94042, (q31_t)0x59AC3CFD, (q31_t)0xA462EEAC, - (q31_t)0x59646497, (q31_t)0xA41CD598, (q31_t)0x591C550E, - (q31_t)0xA3D6F533, (q31_t)0x58D40E8C, (q31_t)0xA3914DA7, - (q31_t)0x588B913F, (q31_t)0xA34BDF20, (q31_t)0x5842DD54, - (q31_t)0xA306A9C7, (q31_t)0x57F9F2F7, (q31_t)0xA2C1ADC9, - (q31_t)0x57B0D256, (q31_t)0xA27CEB4F, (q31_t)0x57677B9D, - (q31_t)0xA2386283, (q31_t)0x571DEEF9, (q31_t)0xA1F41391, - (q31_t)0x56D42C99, (q31_t)0xA1AFFEA2, (q31_t)0x568A34A9, - (q31_t)0xA16C23E1, (q31_t)0x56400757, (q31_t)0xA1288376, - (q31_t)0x55F5A4D2, (q31_t)0xA0E51D8C, (q31_t)0x55AB0D46, - (q31_t)0xA0A1F24C, (q31_t)0x556040E2, (q31_t)0xA05F01E1, - (q31_t)0x55153FD4, (q31_t)0xA01C4C72, (q31_t)0x54CA0A4A, - (q31_t)0x9FD9D22A, (q31_t)0x547EA073, (q31_t)0x9F979331, - (q31_t)0x5433027D, (q31_t)0x9F558FB0, (q31_t)0x53E73097, - (q31_t)0x9F13C7D0, (q31_t)0x539B2AEF, (q31_t)0x9ED23BB9, - (q31_t)0x534EF1B5, (q31_t)0x9E90EB94, (q31_t)0x53028517, - (q31_t)0x9E4FD789, (q31_t)0x52B5E545, (q31_t)0x9E0EFFC1, - (q31_t)0x5269126E, (q31_t)0x9DCE6462, (q31_t)0x521C0CC1, - (q31_t)0x9D8E0596, (q31_t)0x51CED46E, (q31_t)0x9D4DE384, - (q31_t)0x518169A4, (q31_t)0x9D0DFE53, (q31_t)0x5133CC94, - (q31_t)0x9CCE562B, (q31_t)0x50E5FD6C, (q31_t)0x9C8EEB33, - (q31_t)0x5097FC5E, (q31_t)0x9C4FBD92, (q31_t)0x5049C999, - (q31_t)0x9C10CD70, (q31_t)0x4FFB654D, (q31_t)0x9BD21AF2, - (q31_t)0x4FACCFAB, (q31_t)0x9B93A640, (q31_t)0x4F5E08E3, - (q31_t)0x9B556F80, (q31_t)0x4F0F1126, (q31_t)0x9B1776D9, - (q31_t)0x4EBFE8A4, (q31_t)0x9AD9BC71, (q31_t)0x4E708F8F, - (q31_t)0x9A9C406D, (q31_t)0x4E210617, (q31_t)0x9A5F02F5, - (q31_t)0x4DD14C6E, (q31_t)0x9A22042C, (q31_t)0x4D8162C4, - (q31_t)0x99E5443A, (q31_t)0x4D31494B, (q31_t)0x99A8C344, - (q31_t)0x4CE10034, (q31_t)0x996C816F, (q31_t)0x4C9087B1, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x98F4BBBC, - (q31_t)0x4BEF092D, (q31_t)0x98B93828, (q31_t)0x4B9E038F, - (q31_t)0x987DF449, (q31_t)0x4B4CCF4D, (q31_t)0x9842F043, - (q31_t)0x4AFB6C97, (q31_t)0x98082C3B, (q31_t)0x4AA9DBA1, - (q31_t)0x97CDA855, (q31_t)0x4A581C9D, (q31_t)0x979364B5, - (q31_t)0x4A062FBD, (q31_t)0x9759617E, (q31_t)0x49B41533, - (q31_t)0x971F9ED6, (q31_t)0x4961CD32, (q31_t)0x96E61CDF, - (q31_t)0x490F57EE, (q31_t)0x96ACDBBD, (q31_t)0x48BCB598, - (q31_t)0x9673DB94, (q31_t)0x4869E664, (q31_t)0x963B1C85, - (q31_t)0x4816EA85, (q31_t)0x96029EB5, (q31_t)0x47C3C22E, - (q31_t)0x95CA6246, (q31_t)0x47706D93, (q31_t)0x9592675B, - (q31_t)0x471CECE6, (q31_t)0x955AAE17, (q31_t)0x46C9405C, - (q31_t)0x9523369B, (q31_t)0x46756827, (q31_t)0x94EC010B, - (q31_t)0x4621647C, (q31_t)0x94B50D87, (q31_t)0x45CD358F, - (q31_t)0x947E5C32, (q31_t)0x4578DB93, (q31_t)0x9447ED2F, - (q31_t)0x452456BC, (q31_t)0x9411C09D, (q31_t)0x44CFA73F, - (q31_t)0x93DBD69F, (q31_t)0x447ACD50, (q31_t)0x93A62F56, - (q31_t)0x4425C923, (q31_t)0x9370CAE4, (q31_t)0x43D09AEC, - (q31_t)0x933BA968, (q31_t)0x437B42E1, (q31_t)0x9306CB04, - (q31_t)0x4325C135, (q31_t)0x92D22FD8, (q31_t)0x42D0161E, - (q31_t)0x929DD805, (q31_t)0x427A41D0, (q31_t)0x9269C3AC, - (q31_t)0x42244480, (q31_t)0x9235F2EB, (q31_t)0x41CE1E64, - (q31_t)0x920265E4, (q31_t)0x4177CFB0, (q31_t)0x91CF1CB6, - (q31_t)0x4121589A, (q31_t)0x919C1780, (q31_t)0x40CAB957, - (q31_t)0x91695663, (q31_t)0x4073F21D, (q31_t)0x9136D97D, - (q31_t)0x401D0320, (q31_t)0x9104A0ED, (q31_t)0x3FC5EC97, - (q31_t)0x90D2ACD3, (q31_t)0x3F6EAEB8, (q31_t)0x90A0FD4E, - (q31_t)0x3F1749B7, (q31_t)0x906F927B, (q31_t)0x3EBFBDCC, - (q31_t)0x903E6C7A, (q31_t)0x3E680B2C, (q31_t)0x900D8B69, - (q31_t)0x3E10320D, (q31_t)0x8FDCEF66, (q31_t)0x3DB832A5, - (q31_t)0x8FAC988E, (q31_t)0x3D600D2B, (q31_t)0x8F7C8701, - (q31_t)0x3D07C1D5, (q31_t)0x8F4CBADB, (q31_t)0x3CAF50DA, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8EEDF33B, - (q31_t)0x3BFDFECD, (q31_t)0x8EBEF7FB, (q31_t)0x3BA51E29, - (q31_t)0x8E904298, (q31_t)0x3B4C18BA, (q31_t)0x8E61D32D, - (q31_t)0x3AF2EEB7, (q31_t)0x8E33A9D9, (q31_t)0x3A99A057, - (q31_t)0x8E05C6B7, (q31_t)0x3A402DD1, (q31_t)0x8DD829E4, - (q31_t)0x39E6975D, (q31_t)0x8DAAD37B, (q31_t)0x398CDD32, - (q31_t)0x8D7DC399, (q31_t)0x3932FF87, (q31_t)0x8D50FA59, - (q31_t)0x38D8FE93, (q31_t)0x8D2477D8, (q31_t)0x387EDA8E, - (q31_t)0x8CF83C30, (q31_t)0x382493B0, (q31_t)0x8CCC477D, - (q31_t)0x37CA2A30, (q31_t)0x8CA099D9, (q31_t)0x376F9E46, - (q31_t)0x8C753361, (q31_t)0x3714F02A, (q31_t)0x8C4A142F, - (q31_t)0x36BA2013, (q31_t)0x8C1F3C5C, (q31_t)0x365F2E3B, - (q31_t)0x8BF4AC05, (q31_t)0x36041AD9, (q31_t)0x8BCA6342, - (q31_t)0x35A8E624, (q31_t)0x8BA0622F, (q31_t)0x354D9056, - (q31_t)0x8B76A8E4, (q31_t)0x34F219A7, (q31_t)0x8B4D377C, - (q31_t)0x3496824F, (q31_t)0x8B240E10, (q31_t)0x343ACA87, - (q31_t)0x8AFB2CBA, (q31_t)0x33DEF287, (q31_t)0x8AD29393, - (q31_t)0x3382FA88, (q31_t)0x8AAA42B4, (q31_t)0x3326E2C2, - (q31_t)0x8A823A35, (q31_t)0x32CAAB6F, (q31_t)0x8A5A7A30, - (q31_t)0x326E54C7, (q31_t)0x8A3302BD, (q31_t)0x3211DF03, - (q31_t)0x8A0BD3F5, (q31_t)0x31B54A5D, (q31_t)0x89E4EDEE, - (q31_t)0x3158970D, (q31_t)0x89BE50C3, (q31_t)0x30FBC54D, - (q31_t)0x8997FC89, (q31_t)0x309ED555, (q31_t)0x8971F15A, - (q31_t)0x3041C760, (q31_t)0x894C2F4C, (q31_t)0x2FE49BA6, - (q31_t)0x8926B677, (q31_t)0x2F875262, (q31_t)0x890186F1, - (q31_t)0x2F29EBCC, (q31_t)0x88DCA0D3, (q31_t)0x2ECC681E, - (q31_t)0x88B80431, (q31_t)0x2E6EC792, (q31_t)0x8893B124, - (q31_t)0x2E110A62, (q31_t)0x886FA7C2, (q31_t)0x2DB330C7, - (q31_t)0x884BE820, (q31_t)0x2D553AFB, (q31_t)0x88287255, - (q31_t)0x2CF72939, (q31_t)0x88054677, (q31_t)0x2C98FBBA, - (q31_t)0x87E2649B, (q31_t)0x2C3AB2B9, (q31_t)0x87BFCCD7, - (q31_t)0x2BDC4E6F, (q31_t)0x879D7F40, (q31_t)0x2B7DCF17, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x8759C2EF, - (q31_t)0x2AC08025, (q31_t)0x8738545E, (q31_t)0x2A61B101, - (q31_t)0x8717304E, (q31_t)0x2A02C7B8, (q31_t)0x86F656D3, - (q31_t)0x29A3C484, (q31_t)0x86D5C802, (q31_t)0x2944A7A2, - (q31_t)0x86B583EE, (q31_t)0x28E5714A, (q31_t)0x86958AAB, - (q31_t)0x288621B9, (q31_t)0x8675DC4E, (q31_t)0x2826B928, - (q31_t)0x865678EA, (q31_t)0x27C737D2, (q31_t)0x86376092, - (q31_t)0x27679DF4, (q31_t)0x86189359, (q31_t)0x2707EBC6, - (q31_t)0x85FA1152, (q31_t)0x26A82185, (q31_t)0x85DBDA91, - (q31_t)0x26483F6C, (q31_t)0x85BDEF27, (q31_t)0x25E845B5, - (q31_t)0x85A04F28, (q31_t)0x2588349D, (q31_t)0x8582FAA4, - (q31_t)0x25280C5D, (q31_t)0x8565F1B0, (q31_t)0x24C7CD32, - (q31_t)0x8549345C, (q31_t)0x24677757, (q31_t)0x852CC2BA, - (q31_t)0x24070B07, (q31_t)0x85109CDC, (q31_t)0x23A6887E, - (q31_t)0x84F4C2D3, (q31_t)0x2345EFF7, (q31_t)0x84D934B0, - (q31_t)0x22E541AE, (q31_t)0x84BDF285, (q31_t)0x22847DDF, - (q31_t)0x84A2FC62, (q31_t)0x2223A4C5, (q31_t)0x84885257, - (q31_t)0x21C2B69C, (q31_t)0x846DF476, (q31_t)0x2161B39F, - (q31_t)0x8453E2CE, (q31_t)0x21009C0B, (q31_t)0x843A1D70, - (q31_t)0x209F701C, (q31_t)0x8420A46B, (q31_t)0x203E300D, - (q31_t)0x840777CF, (q31_t)0x1FDCDC1A, (q31_t)0x83EE97AC, - (q31_t)0x1F7B7480, (q31_t)0x83D60411, (q31_t)0x1F19F97B, - (q31_t)0x83BDBD0D, (q31_t)0x1EB86B46, (q31_t)0x83A5C2B0, - (q31_t)0x1E56CA1E, (q31_t)0x838E1507, (q31_t)0x1DF5163F, - (q31_t)0x8376B422, (q31_t)0x1D934FE5, (q31_t)0x835FA00E, - (q31_t)0x1D31774D, (q31_t)0x8348D8DB, (q31_t)0x1CCF8CB3, - (q31_t)0x83325E97, (q31_t)0x1C6D9053, (q31_t)0x831C314E, - (q31_t)0x1C0B826A, (q31_t)0x8306510F, (q31_t)0x1BA96334, - (q31_t)0x82F0BDE8, (q31_t)0x1B4732EF, (q31_t)0x82DB77E5, - (q31_t)0x1AE4F1D6, (q31_t)0x82C67F13, (q31_t)0x1A82A025, - (q31_t)0x82B1D381, (q31_t)0x1A203E1B, (q31_t)0x829D753A, - (q31_t)0x19BDCBF2, (q31_t)0x8289644A, (q31_t)0x195B49E9, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x82622AA5, - (q31_t)0x18961727, (q31_t)0x824F0208, (q31_t)0x183366E8, - (q31_t)0x823C26F2, (q31_t)0x17D0A7BB, (q31_t)0x82299971, - (q31_t)0x176DD9DE, (q31_t)0x8217598F, (q31_t)0x170AFD8D, - (q31_t)0x82056758, (q31_t)0x16A81305, (q31_t)0x81F3C2D7, - (q31_t)0x16451A83, (q31_t)0x81E26C16, (q31_t)0x15E21444, - (q31_t)0x81D16320, (q31_t)0x157F0086, (q31_t)0x81C0A801, - (q31_t)0x151BDF85, (q31_t)0x81B03AC1, (q31_t)0x14B8B17F, - (q31_t)0x81A01B6C, (q31_t)0x145576B1, (q31_t)0x81904A0C, - (q31_t)0x13F22F57, (q31_t)0x8180C6A9, (q31_t)0x138EDBB0, - (q31_t)0x8171914E, (q31_t)0x132B7BF9, (q31_t)0x8162AA03, - (q31_t)0x12C8106E, (q31_t)0x815410D3, (q31_t)0x1264994E, - (q31_t)0x8145C5C6, (q31_t)0x120116D4, (q31_t)0x8137C8E6, - (q31_t)0x119D8940, (q31_t)0x812A1A39, (q31_t)0x1139F0CE, - (q31_t)0x811CB9CA, (q31_t)0x10D64DBC, (q31_t)0x810FA7A0, - (q31_t)0x1072A047, (q31_t)0x8102E3C3, (q31_t)0x100EE8AD, - (q31_t)0x80F66E3C, (q31_t)0x0FAB272B, (q31_t)0x80EA4712, - (q31_t)0x0F475BFE, (q31_t)0x80DE6E4C, (q31_t)0x0EE38765, - (q31_t)0x80D2E3F1, (q31_t)0x0E7FA99D, (q31_t)0x80C7A80A, - (q31_t)0x0E1BC2E3, (q31_t)0x80BCBA9C, (q31_t)0x0DB7D376, - (q31_t)0x80B21BAF, (q31_t)0x0D53DB92, (q31_t)0x80A7CB49, - (q31_t)0x0CEFDB75, (q31_t)0x809DC970, (q31_t)0x0C8BD35E, - (q31_t)0x8094162B, (q31_t)0x0C27C389, (q31_t)0x808AB180, - (q31_t)0x0BC3AC35, (q31_t)0x80819B74, (q31_t)0x0B5F8D9F, - (q31_t)0x8078D40D, (q31_t)0x0AFB6805, (q31_t)0x80705B50, - (q31_t)0x0A973BA5, (q31_t)0x80683143, (q31_t)0x0A3308BC, - (q31_t)0x806055EA, (q31_t)0x09CECF89, (q31_t)0x8058C94C, - (q31_t)0x096A9049, (q31_t)0x80518B6B, (q31_t)0x09064B3A, - (q31_t)0x804A9C4D, (q31_t)0x08A2009A, (q31_t)0x8043FBF6, - (q31_t)0x083DB0A7, (q31_t)0x803DAA69, (q31_t)0x07D95B9E, - (q31_t)0x8037A7AC, (q31_t)0x077501BE, (q31_t)0x8031F3C1, - (q31_t)0x0710A344, (q31_t)0x802C8EAD, (q31_t)0x06AC406F, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x8022B113, - (q31_t)0x05E36EA9, (q31_t)0x801E3894, (q31_t)0x057F0034, - (q31_t)0x801A0EF7, (q31_t)0x051A8E5C, (q31_t)0x80163440, - (q31_t)0x04B6195D, (q31_t)0x8012A86F, (q31_t)0x0451A176, - (q31_t)0x800F6B88, (q31_t)0x03ED26E6, (q31_t)0x800C7D8C, - (q31_t)0x0388A9E9, (q31_t)0x8009DE7D, (q31_t)0x03242ABF, - (q31_t)0x80078E5E, (q31_t)0x02BFA9A4, (q31_t)0x80058D2E, - (q31_t)0x025B26D7, (q31_t)0x8003DAF0, (q31_t)0x01F6A296, - (q31_t)0x800277A5, (q31_t)0x01921D1F, (q31_t)0x8001634D, - (q31_t)0x012D96B0, (q31_t)0x80009DE9, (q31_t)0x00C90F88, - (q31_t)0x8000277A, (q31_t)0x006487E3, (q31_t)0x80000000, - (q31_t)0x00000000, (q31_t)0x8000277A, (q31_t)0xFF9B781D, - (q31_t)0x80009DE9, (q31_t)0xFF36F078, (q31_t)0x8001634D, - (q31_t)0xFED2694F, (q31_t)0x800277A5, (q31_t)0xFE6DE2E0, - (q31_t)0x8003DAF0, (q31_t)0xFE095D69, (q31_t)0x80058D2E, - (q31_t)0xFDA4D928, (q31_t)0x80078E5E, (q31_t)0xFD40565B, - (q31_t)0x8009DE7D, (q31_t)0xFCDBD541, (q31_t)0x800C7D8C, - (q31_t)0xFC775616, (q31_t)0x800F6B88, (q31_t)0xFC12D919, - (q31_t)0x8012A86F, (q31_t)0xFBAE5E89, (q31_t)0x80163440, - (q31_t)0xFB49E6A2, (q31_t)0x801A0EF7, (q31_t)0xFAE571A4, - (q31_t)0x801E3894, (q31_t)0xFA80FFCB, (q31_t)0x8022B113, - (q31_t)0xFA1C9156, (q31_t)0x80277872, (q31_t)0xF9B82683, - (q31_t)0x802C8EAD, (q31_t)0xF953BF90, (q31_t)0x8031F3C1, - (q31_t)0xF8EF5CBB, (q31_t)0x8037A7AC, (q31_t)0xF88AFE41, - (q31_t)0x803DAA69, (q31_t)0xF826A461, (q31_t)0x8043FBF6, - (q31_t)0xF7C24F58, (q31_t)0x804A9C4D, (q31_t)0xF75DFF65, - (q31_t)0x80518B6B, (q31_t)0xF6F9B4C5, (q31_t)0x8058C94C, - (q31_t)0xF6956FB6, (q31_t)0x806055EA, (q31_t)0xF6313076, - (q31_t)0x80683143, (q31_t)0xF5CCF743, (q31_t)0x80705B50, - (q31_t)0xF568C45A, (q31_t)0x8078D40D, (q31_t)0xF50497FA, - (q31_t)0x80819B74, (q31_t)0xF4A07260, (q31_t)0x808AB180, - (q31_t)0xF43C53CA, (q31_t)0x8094162B, (q31_t)0xF3D83C76, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x80A7CB49, - (q31_t)0xF310248A, (q31_t)0x80B21BAF, (q31_t)0xF2AC246D, - (q31_t)0x80BCBA9C, (q31_t)0xF2482C89, (q31_t)0x80C7A80A, - (q31_t)0xF1E43D1C, (q31_t)0x80D2E3F1, (q31_t)0xF1805662, - (q31_t)0x80DE6E4C, (q31_t)0xF11C789A, (q31_t)0x80EA4712, - (q31_t)0xF0B8A401, (q31_t)0x80F66E3C, (q31_t)0xF054D8D4, - (q31_t)0x8102E3C3, (q31_t)0xEFF11752, (q31_t)0x810FA7A0, - (q31_t)0xEF8D5FB8, (q31_t)0x811CB9CA, (q31_t)0xEF29B243, - (q31_t)0x812A1A39, (q31_t)0xEEC60F31, (q31_t)0x8137C8E6, - (q31_t)0xEE6276BF, (q31_t)0x8145C5C6, (q31_t)0xEDFEE92B, - (q31_t)0x815410D3, (q31_t)0xED9B66B2, (q31_t)0x8162AA03, - (q31_t)0xED37EF91, (q31_t)0x8171914E, (q31_t)0xECD48406, - (q31_t)0x8180C6A9, (q31_t)0xEC71244F, (q31_t)0x81904A0C, - (q31_t)0xEC0DD0A8, (q31_t)0x81A01B6C, (q31_t)0xEBAA894E, - (q31_t)0x81B03AC1, (q31_t)0xEB474E80, (q31_t)0x81C0A801, - (q31_t)0xEAE4207A, (q31_t)0x81D16320, (q31_t)0xEA80FF79, - (q31_t)0x81E26C16, (q31_t)0xEA1DEBBB, (q31_t)0x81F3C2D7, - (q31_t)0xE9BAE57C, (q31_t)0x82056758, (q31_t)0xE957ECFB, - (q31_t)0x8217598F, (q31_t)0xE8F50273, (q31_t)0x82299971, - (q31_t)0xE8922621, (q31_t)0x823C26F2, (q31_t)0xE82F5844, - (q31_t)0x824F0208, (q31_t)0xE7CC9917, (q31_t)0x82622AA5, - (q31_t)0xE769E8D8, (q31_t)0x8275A0C0, (q31_t)0xE70747C3, - (q31_t)0x8289644A, (q31_t)0xE6A4B616, (q31_t)0x829D753A, - (q31_t)0xE642340D, (q31_t)0x82B1D381, (q31_t)0xE5DFC1E4, - (q31_t)0x82C67F13, (q31_t)0xE57D5FDA, (q31_t)0x82DB77E5, - (q31_t)0xE51B0E2A, (q31_t)0x82F0BDE8, (q31_t)0xE4B8CD10, - (q31_t)0x8306510F, (q31_t)0xE4569CCB, (q31_t)0x831C314E, - (q31_t)0xE3F47D95, (q31_t)0x83325E97, (q31_t)0xE3926FAC, - (q31_t)0x8348D8DB, (q31_t)0xE330734C, (q31_t)0x835FA00E, - (q31_t)0xE2CE88B2, (q31_t)0x8376B422, (q31_t)0xE26CB01A, - (q31_t)0x838E1507, (q31_t)0xE20AE9C1, (q31_t)0x83A5C2B0, - (q31_t)0xE1A935E1, (q31_t)0x83BDBD0D, (q31_t)0xE14794B9, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x83EE97AC, - (q31_t)0xE0848B7F, (q31_t)0x840777CF, (q31_t)0xE02323E5, - (q31_t)0x8420A46B, (q31_t)0xDFC1CFF2, (q31_t)0x843A1D70, - (q31_t)0xDF608FE3, (q31_t)0x8453E2CE, (q31_t)0xDEFF63F4, - (q31_t)0x846DF476, (q31_t)0xDE9E4C60, (q31_t)0x84885257, - (q31_t)0xDE3D4963, (q31_t)0x84A2FC62, (q31_t)0xDDDC5B3A, - (q31_t)0x84BDF285, (q31_t)0xDD7B8220, (q31_t)0x84D934B0, - (q31_t)0xDD1ABE51, (q31_t)0x84F4C2D3, (q31_t)0xDCBA1008, - (q31_t)0x85109CDC, (q31_t)0xDC597781, (q31_t)0x852CC2BA, - (q31_t)0xDBF8F4F8, (q31_t)0x8549345C, (q31_t)0xDB9888A8, - (q31_t)0x8565F1B0, (q31_t)0xDB3832CD, (q31_t)0x8582FAA4, - (q31_t)0xDAD7F3A2, (q31_t)0x85A04F28, (q31_t)0xDA77CB62, - (q31_t)0x85BDEF27, (q31_t)0xDA17BA4A, (q31_t)0x85DBDA91, - (q31_t)0xD9B7C093, (q31_t)0x85FA1152, (q31_t)0xD957DE7A, - (q31_t)0x86189359, (q31_t)0xD8F81439, (q31_t)0x86376092, - (q31_t)0xD898620C, (q31_t)0x865678EA, (q31_t)0xD838C82D, - (q31_t)0x8675DC4E, (q31_t)0xD7D946D7, (q31_t)0x86958AAB, - (q31_t)0xD779DE46, (q31_t)0x86B583EE, (q31_t)0xD71A8EB5, - (q31_t)0x86D5C802, (q31_t)0xD6BB585D, (q31_t)0x86F656D3, - (q31_t)0xD65C3B7B, (q31_t)0x8717304E, (q31_t)0xD5FD3847, - (q31_t)0x8738545E, (q31_t)0xD59E4EFE, (q31_t)0x8759C2EF, - (q31_t)0xD53F7FDA, (q31_t)0x877B7BEC, (q31_t)0xD4E0CB14, - (q31_t)0x879D7F40, (q31_t)0xD48230E8, (q31_t)0x87BFCCD7, - (q31_t)0xD423B190, (q31_t)0x87E2649B, (q31_t)0xD3C54D46, - (q31_t)0x88054677, (q31_t)0xD3670445, (q31_t)0x88287255, - (q31_t)0xD308D6C6, (q31_t)0x884BE820, (q31_t)0xD2AAC504, - (q31_t)0x886FA7C2, (q31_t)0xD24CCF38, (q31_t)0x8893B124, - (q31_t)0xD1EEF59E, (q31_t)0x88B80431, (q31_t)0xD191386D, - (q31_t)0x88DCA0D3, (q31_t)0xD13397E1, (q31_t)0x890186F1, - (q31_t)0xD0D61433, (q31_t)0x8926B677, (q31_t)0xD078AD9D, - (q31_t)0x894C2F4C, (q31_t)0xD01B6459, (q31_t)0x8971F15A, - (q31_t)0xCFBE389F, (q31_t)0x8997FC89, (q31_t)0xCF612AAA, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x89E4EDEE, - (q31_t)0xCEA768F2, (q31_t)0x8A0BD3F5, (q31_t)0xCE4AB5A2, - (q31_t)0x8A3302BD, (q31_t)0xCDEE20FC, (q31_t)0x8A5A7A30, - (q31_t)0xCD91AB38, (q31_t)0x8A823A35, (q31_t)0xCD355490, - (q31_t)0x8AAA42B4, (q31_t)0xCCD91D3D, (q31_t)0x8AD29393, - (q31_t)0xCC7D0577, (q31_t)0x8AFB2CBA, (q31_t)0xCC210D78, - (q31_t)0x8B240E10, (q31_t)0xCBC53578, (q31_t)0x8B4D377C, - (q31_t)0xCB697DB0, (q31_t)0x8B76A8E4, (q31_t)0xCB0DE658, - (q31_t)0x8BA0622F, (q31_t)0xCAB26FA9, (q31_t)0x8BCA6342, - (q31_t)0xCA5719DB, (q31_t)0x8BF4AC05, (q31_t)0xC9FBE527, - (q31_t)0x8C1F3C5C, (q31_t)0xC9A0D1C4, (q31_t)0x8C4A142F, - (q31_t)0xC945DFEC, (q31_t)0x8C753361, (q31_t)0xC8EB0FD6, - (q31_t)0x8CA099D9, (q31_t)0xC89061BA, (q31_t)0x8CCC477D, - (q31_t)0xC835D5D0, (q31_t)0x8CF83C30, (q31_t)0xC7DB6C50, - (q31_t)0x8D2477D8, (q31_t)0xC7812571, (q31_t)0x8D50FA59, - (q31_t)0xC727016C, (q31_t)0x8D7DC399, (q31_t)0xC6CD0079, - (q31_t)0x8DAAD37B, (q31_t)0xC67322CD, (q31_t)0x8DD829E4, - (q31_t)0xC61968A2, (q31_t)0x8E05C6B7, (q31_t)0xC5BFD22E, - (q31_t)0x8E33A9D9, (q31_t)0xC5665FA8, (q31_t)0x8E61D32D, - (q31_t)0xC50D1148, (q31_t)0x8E904298, (q31_t)0xC4B3E746, - (q31_t)0x8EBEF7FB, (q31_t)0xC45AE1D7, (q31_t)0x8EEDF33B, - (q31_t)0xC4020132, (q31_t)0x8F1D343A, (q31_t)0xC3A9458F, - (q31_t)0x8F4CBADB, (q31_t)0xC350AF25, (q31_t)0x8F7C8701, - (q31_t)0xC2F83E2A, (q31_t)0x8FAC988E, (q31_t)0xC29FF2D4, - (q31_t)0x8FDCEF66, (q31_t)0xC247CD5A, (q31_t)0x900D8B69, - (q31_t)0xC1EFCDF2, (q31_t)0x903E6C7A, (q31_t)0xC197F4D3, - (q31_t)0x906F927B, (q31_t)0xC1404233, (q31_t)0x90A0FD4E, - (q31_t)0xC0E8B648, (q31_t)0x90D2ACD3, (q31_t)0xC0915147, - (q31_t)0x9104A0ED, (q31_t)0xC03A1368, (q31_t)0x9136D97D, - (q31_t)0xBFE2FCDF, (q31_t)0x91695663, (q31_t)0xBF8C0DE2, - (q31_t)0x919C1780, (q31_t)0xBF3546A8, (q31_t)0x91CF1CB6, - (q31_t)0xBEDEA765, (q31_t)0x920265E4, (q31_t)0xBE88304F, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x9269C3AC, - (q31_t)0xBDDBBB7F, (q31_t)0x929DD805, (q31_t)0xBD85BE2F, - (q31_t)0x92D22FD8, (q31_t)0xBD2FE9E1, (q31_t)0x9306CB04, - (q31_t)0xBCDA3ECA, (q31_t)0x933BA968, (q31_t)0xBC84BD1E, - (q31_t)0x9370CAE4, (q31_t)0xBC2F6513, (q31_t)0x93A62F56, - (q31_t)0xBBDA36DC, (q31_t)0x93DBD69F, (q31_t)0xBB8532AF, - (q31_t)0x9411C09D, (q31_t)0xBB3058C0, (q31_t)0x9447ED2F, - (q31_t)0xBADBA943, (q31_t)0x947E5C32, (q31_t)0xBA87246C, - (q31_t)0x94B50D87, (q31_t)0xBA32CA70, (q31_t)0x94EC010B, - (q31_t)0xB9DE9B83, (q31_t)0x9523369B, (q31_t)0xB98A97D8, - (q31_t)0x955AAE17, (q31_t)0xB936BFA3, (q31_t)0x9592675B, - (q31_t)0xB8E31319, (q31_t)0x95CA6246, (q31_t)0xB88F926C, - (q31_t)0x96029EB5, (q31_t)0xB83C3DD1, (q31_t)0x963B1C85, - (q31_t)0xB7E9157A, (q31_t)0x9673DB94, (q31_t)0xB796199B, - (q31_t)0x96ACDBBD, (q31_t)0xB7434A67, (q31_t)0x96E61CDF, - (q31_t)0xB6F0A811, (q31_t)0x971F9ED6, (q31_t)0xB69E32CD, - (q31_t)0x9759617E, (q31_t)0xB64BEACC, (q31_t)0x979364B5, - (q31_t)0xB5F9D042, (q31_t)0x97CDA855, (q31_t)0xB5A7E362, - (q31_t)0x98082C3B, (q31_t)0xB556245E, (q31_t)0x9842F043, - (q31_t)0xB5049368, (q31_t)0x987DF449, (q31_t)0xB4B330B2, - (q31_t)0x98B93828, (q31_t)0xB461FC70, (q31_t)0x98F4BBBC, - (q31_t)0xB410F6D2, (q31_t)0x99307EE0, (q31_t)0xB3C0200C, - (q31_t)0x996C816F, (q31_t)0xB36F784E, (q31_t)0x99A8C344, - (q31_t)0xB31EFFCB, (q31_t)0x99E5443A, (q31_t)0xB2CEB6B5, - (q31_t)0x9A22042C, (q31_t)0xB27E9D3B, (q31_t)0x9A5F02F5, - (q31_t)0xB22EB392, (q31_t)0x9A9C406D, (q31_t)0xB1DEF9E8, - (q31_t)0x9AD9BC71, (q31_t)0xB18F7070, (q31_t)0x9B1776D9, - (q31_t)0xB140175B, (q31_t)0x9B556F80, (q31_t)0xB0F0EEDA, - (q31_t)0x9B93A640, (q31_t)0xB0A1F71C, (q31_t)0x9BD21AF2, - (q31_t)0xB0533055, (q31_t)0x9C10CD70, (q31_t)0xB0049AB2, - (q31_t)0x9C4FBD92, (q31_t)0xAFB63667, (q31_t)0x9C8EEB33, - (q31_t)0xAF6803A1, (q31_t)0x9CCE562B, (q31_t)0xAF1A0293, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0x9D4DE384, - (q31_t)0xAE7E965B, (q31_t)0x9D8E0596, (q31_t)0xAE312B91, - (q31_t)0x9DCE6462, (q31_t)0xADE3F33E, (q31_t)0x9E0EFFC1, - (q31_t)0xAD96ED91, (q31_t)0x9E4FD789, (q31_t)0xAD4A1ABA, - (q31_t)0x9E90EB94, (q31_t)0xACFD7AE8, (q31_t)0x9ED23BB9, - (q31_t)0xACB10E4A, (q31_t)0x9F13C7D0, (q31_t)0xAC64D510, - (q31_t)0x9F558FB0, (q31_t)0xAC18CF68, (q31_t)0x9F979331, - (q31_t)0xABCCFD82, (q31_t)0x9FD9D22A, (q31_t)0xAB815F8C, - (q31_t)0xA01C4C72, (q31_t)0xAB35F5B5, (q31_t)0xA05F01E1, - (q31_t)0xAAEAC02B, (q31_t)0xA0A1F24C, (q31_t)0xAA9FBF1D, - (q31_t)0xA0E51D8C, (q31_t)0xAA54F2B9, (q31_t)0xA1288376, - (q31_t)0xAA0A5B2D, (q31_t)0xA16C23E1, (q31_t)0xA9BFF8A8, - (q31_t)0xA1AFFEA2, (q31_t)0xA975CB56, (q31_t)0xA1F41391, - (q31_t)0xA92BD366, (q31_t)0xA2386283, (q31_t)0xA8E21106, - (q31_t)0xA27CEB4F, (q31_t)0xA8988463, (q31_t)0xA2C1ADC9, - (q31_t)0xA84F2DA9, (q31_t)0xA306A9C7, (q31_t)0xA8060D08, - (q31_t)0xA34BDF20, (q31_t)0xA7BD22AB, (q31_t)0xA3914DA7, - (q31_t)0xA7746EC0, (q31_t)0xA3D6F533, (q31_t)0xA72BF173, - (q31_t)0xA41CD598, (q31_t)0xA6E3AAF2, (q31_t)0xA462EEAC, - (q31_t)0xA69B9B68, (q31_t)0xA4A94042, (q31_t)0xA653C302, - (q31_t)0xA4EFCA31, (q31_t)0xA60C21ED, (q31_t)0xA5368C4B, - (q31_t)0xA5C4B855, (q31_t)0xA57D8666, (q31_t)0xA57D8666, - (q31_t)0xA5C4B855, (q31_t)0xA5368C4B, (q31_t)0xA60C21ED, - (q31_t)0xA4EFCA31, (q31_t)0xA653C302, (q31_t)0xA4A94042, - (q31_t)0xA69B9B68, (q31_t)0xA462EEAC, (q31_t)0xA6E3AAF2, - (q31_t)0xA41CD598, (q31_t)0xA72BF173, (q31_t)0xA3D6F533, - (q31_t)0xA7746EC0, (q31_t)0xA3914DA7, (q31_t)0xA7BD22AB, - (q31_t)0xA34BDF20, (q31_t)0xA8060D08, (q31_t)0xA306A9C7, - (q31_t)0xA84F2DA9, (q31_t)0xA2C1ADC9, (q31_t)0xA8988463, - (q31_t)0xA27CEB4F, (q31_t)0xA8E21106, (q31_t)0xA2386283, - (q31_t)0xA92BD366, (q31_t)0xA1F41391, (q31_t)0xA975CB56, - (q31_t)0xA1AFFEA2, (q31_t)0xA9BFF8A8, (q31_t)0xA16C23E1, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAA54F2B9, - (q31_t)0xA0E51D8C, (q31_t)0xAA9FBF1D, (q31_t)0xA0A1F24C, - (q31_t)0xAAEAC02B, (q31_t)0xA05F01E1, (q31_t)0xAB35F5B5, - (q31_t)0xA01C4C72, (q31_t)0xAB815F8C, (q31_t)0x9FD9D22A, - (q31_t)0xABCCFD82, (q31_t)0x9F979331, (q31_t)0xAC18CF68, - (q31_t)0x9F558FB0, (q31_t)0xAC64D510, (q31_t)0x9F13C7D0, - (q31_t)0xACB10E4A, (q31_t)0x9ED23BB9, (q31_t)0xACFD7AE8, - (q31_t)0x9E90EB94, (q31_t)0xAD4A1ABA, (q31_t)0x9E4FD789, - (q31_t)0xAD96ED91, (q31_t)0x9E0EFFC1, (q31_t)0xADE3F33E, - (q31_t)0x9DCE6462, (q31_t)0xAE312B91, (q31_t)0x9D8E0596, - (q31_t)0xAE7E965B, (q31_t)0x9D4DE384, (q31_t)0xAECC336B, - (q31_t)0x9D0DFE53, (q31_t)0xAF1A0293, (q31_t)0x9CCE562B, - (q31_t)0xAF6803A1, (q31_t)0x9C8EEB33, (q31_t)0xAFB63667, - (q31_t)0x9C4FBD92, (q31_t)0xB0049AB2, (q31_t)0x9C10CD70, - (q31_t)0xB0533055, (q31_t)0x9BD21AF2, (q31_t)0xB0A1F71C, - (q31_t)0x9B93A640, (q31_t)0xB0F0EEDA, (q31_t)0x9B556F80, - (q31_t)0xB140175B, (q31_t)0x9B1776D9, (q31_t)0xB18F7070, - (q31_t)0x9AD9BC71, (q31_t)0xB1DEF9E8, (q31_t)0x9A9C406D, - (q31_t)0xB22EB392, (q31_t)0x9A5F02F5, (q31_t)0xB27E9D3B, - (q31_t)0x9A22042C, (q31_t)0xB2CEB6B5, (q31_t)0x99E5443A, - (q31_t)0xB31EFFCB, (q31_t)0x99A8C344, (q31_t)0xB36F784E, - (q31_t)0x996C816F, (q31_t)0xB3C0200C, (q31_t)0x99307EE0, - (q31_t)0xB410F6D2, (q31_t)0x98F4BBBC, (q31_t)0xB461FC70, - (q31_t)0x98B93828, (q31_t)0xB4B330B2, (q31_t)0x987DF449, - (q31_t)0xB5049368, (q31_t)0x9842F043, (q31_t)0xB556245E, - (q31_t)0x98082C3B, (q31_t)0xB5A7E362, (q31_t)0x97CDA855, - (q31_t)0xB5F9D042, (q31_t)0x979364B5, (q31_t)0xB64BEACC, - (q31_t)0x9759617E, (q31_t)0xB69E32CD, (q31_t)0x971F9ED6, - (q31_t)0xB6F0A811, (q31_t)0x96E61CDF, (q31_t)0xB7434A67, - (q31_t)0x96ACDBBD, (q31_t)0xB796199B, (q31_t)0x9673DB94, - (q31_t)0xB7E9157A, (q31_t)0x963B1C85, (q31_t)0xB83C3DD1, - (q31_t)0x96029EB5, (q31_t)0xB88F926C, (q31_t)0x95CA6246, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xB936BFA3, - (q31_t)0x955AAE17, (q31_t)0xB98A97D8, (q31_t)0x9523369B, - (q31_t)0xB9DE9B83, (q31_t)0x94EC010B, (q31_t)0xBA32CA70, - (q31_t)0x94B50D87, (q31_t)0xBA87246C, (q31_t)0x947E5C32, - (q31_t)0xBADBA943, (q31_t)0x9447ED2F, (q31_t)0xBB3058C0, - (q31_t)0x9411C09D, (q31_t)0xBB8532AF, (q31_t)0x93DBD69F, - (q31_t)0xBBDA36DC, (q31_t)0x93A62F56, (q31_t)0xBC2F6513, - (q31_t)0x9370CAE4, (q31_t)0xBC84BD1E, (q31_t)0x933BA968, - (q31_t)0xBCDA3ECA, (q31_t)0x9306CB04, (q31_t)0xBD2FE9E1, - (q31_t)0x92D22FD8, (q31_t)0xBD85BE2F, (q31_t)0x929DD805, - (q31_t)0xBDDBBB7F, (q31_t)0x9269C3AC, (q31_t)0xBE31E19B, - (q31_t)0x9235F2EB, (q31_t)0xBE88304F, (q31_t)0x920265E4, - (q31_t)0xBEDEA765, (q31_t)0x91CF1CB6, (q31_t)0xBF3546A8, - (q31_t)0x919C1780, (q31_t)0xBF8C0DE2, (q31_t)0x91695663, - (q31_t)0xBFE2FCDF, (q31_t)0x9136D97D, (q31_t)0xC03A1368, - (q31_t)0x9104A0ED, (q31_t)0xC0915147, (q31_t)0x90D2ACD3, - (q31_t)0xC0E8B648, (q31_t)0x90A0FD4E, (q31_t)0xC1404233, - (q31_t)0x906F927B, (q31_t)0xC197F4D3, (q31_t)0x903E6C7A, - (q31_t)0xC1EFCDF2, (q31_t)0x900D8B69, (q31_t)0xC247CD5A, - (q31_t)0x8FDCEF66, (q31_t)0xC29FF2D4, (q31_t)0x8FAC988E, - (q31_t)0xC2F83E2A, (q31_t)0x8F7C8701, (q31_t)0xC350AF25, - (q31_t)0x8F4CBADB, (q31_t)0xC3A9458F, (q31_t)0x8F1D343A, - (q31_t)0xC4020132, (q31_t)0x8EEDF33B, (q31_t)0xC45AE1D7, - (q31_t)0x8EBEF7FB, (q31_t)0xC4B3E746, (q31_t)0x8E904298, - (q31_t)0xC50D1148, (q31_t)0x8E61D32D, (q31_t)0xC5665FA8, - (q31_t)0x8E33A9D9, (q31_t)0xC5BFD22E, (q31_t)0x8E05C6B7, - (q31_t)0xC61968A2, (q31_t)0x8DD829E4, (q31_t)0xC67322CD, - (q31_t)0x8DAAD37B, (q31_t)0xC6CD0079, (q31_t)0x8D7DC399, - (q31_t)0xC727016C, (q31_t)0x8D50FA59, (q31_t)0xC7812571, - (q31_t)0x8D2477D8, (q31_t)0xC7DB6C50, (q31_t)0x8CF83C30, - (q31_t)0xC835D5D0, (q31_t)0x8CCC477D, (q31_t)0xC89061BA, - (q31_t)0x8CA099D9, (q31_t)0xC8EB0FD6, (q31_t)0x8C753361, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xC9A0D1C4, - (q31_t)0x8C1F3C5C, (q31_t)0xC9FBE527, (q31_t)0x8BF4AC05, - (q31_t)0xCA5719DB, (q31_t)0x8BCA6342, (q31_t)0xCAB26FA9, - (q31_t)0x8BA0622F, (q31_t)0xCB0DE658, (q31_t)0x8B76A8E4, - (q31_t)0xCB697DB0, (q31_t)0x8B4D377C, (q31_t)0xCBC53578, - (q31_t)0x8B240E10, (q31_t)0xCC210D78, (q31_t)0x8AFB2CBA, - (q31_t)0xCC7D0577, (q31_t)0x8AD29393, (q31_t)0xCCD91D3D, - (q31_t)0x8AAA42B4, (q31_t)0xCD355490, (q31_t)0x8A823A35, - (q31_t)0xCD91AB38, (q31_t)0x8A5A7A30, (q31_t)0xCDEE20FC, - (q31_t)0x8A3302BD, (q31_t)0xCE4AB5A2, (q31_t)0x8A0BD3F5, - (q31_t)0xCEA768F2, (q31_t)0x89E4EDEE, (q31_t)0xCF043AB2, - (q31_t)0x89BE50C3, (q31_t)0xCF612AAA, (q31_t)0x8997FC89, - (q31_t)0xCFBE389F, (q31_t)0x8971F15A, (q31_t)0xD01B6459, - (q31_t)0x894C2F4C, (q31_t)0xD078AD9D, (q31_t)0x8926B677, - (q31_t)0xD0D61433, (q31_t)0x890186F1, (q31_t)0xD13397E1, - (q31_t)0x88DCA0D3, (q31_t)0xD191386D, (q31_t)0x88B80431, - (q31_t)0xD1EEF59E, (q31_t)0x8893B124, (q31_t)0xD24CCF38, - (q31_t)0x886FA7C2, (q31_t)0xD2AAC504, (q31_t)0x884BE820, - (q31_t)0xD308D6C6, (q31_t)0x88287255, (q31_t)0xD3670445, - (q31_t)0x88054677, (q31_t)0xD3C54D46, (q31_t)0x87E2649B, - (q31_t)0xD423B190, (q31_t)0x87BFCCD7, (q31_t)0xD48230E8, - (q31_t)0x879D7F40, (q31_t)0xD4E0CB14, (q31_t)0x877B7BEC, - (q31_t)0xD53F7FDA, (q31_t)0x8759C2EF, (q31_t)0xD59E4EFE, - (q31_t)0x8738545E, (q31_t)0xD5FD3847, (q31_t)0x8717304E, - (q31_t)0xD65C3B7B, (q31_t)0x86F656D3, (q31_t)0xD6BB585D, - (q31_t)0x86D5C802, (q31_t)0xD71A8EB5, (q31_t)0x86B583EE, - (q31_t)0xD779DE46, (q31_t)0x86958AAB, (q31_t)0xD7D946D7, - (q31_t)0x8675DC4E, (q31_t)0xD838C82D, (q31_t)0x865678EA, - (q31_t)0xD898620C, (q31_t)0x86376092, (q31_t)0xD8F81439, - (q31_t)0x86189359, (q31_t)0xD957DE7A, (q31_t)0x85FA1152, - (q31_t)0xD9B7C093, (q31_t)0x85DBDA91, (q31_t)0xDA17BA4A, - (q31_t)0x85BDEF27, (q31_t)0xDA77CB62, (q31_t)0x85A04F28, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xDB3832CD, - (q31_t)0x8565F1B0, (q31_t)0xDB9888A8, (q31_t)0x8549345C, - (q31_t)0xDBF8F4F8, (q31_t)0x852CC2BA, (q31_t)0xDC597781, - (q31_t)0x85109CDC, (q31_t)0xDCBA1008, (q31_t)0x84F4C2D3, - (q31_t)0xDD1ABE51, (q31_t)0x84D934B0, (q31_t)0xDD7B8220, - (q31_t)0x84BDF285, (q31_t)0xDDDC5B3A, (q31_t)0x84A2FC62, - (q31_t)0xDE3D4963, (q31_t)0x84885257, (q31_t)0xDE9E4C60, - (q31_t)0x846DF476, (q31_t)0xDEFF63F4, (q31_t)0x8453E2CE, - (q31_t)0xDF608FE3, (q31_t)0x843A1D70, (q31_t)0xDFC1CFF2, - (q31_t)0x8420A46B, (q31_t)0xE02323E5, (q31_t)0x840777CF, - (q31_t)0xE0848B7F, (q31_t)0x83EE97AC, (q31_t)0xE0E60684, - (q31_t)0x83D60411, (q31_t)0xE14794B9, (q31_t)0x83BDBD0D, - (q31_t)0xE1A935E1, (q31_t)0x83A5C2B0, (q31_t)0xE20AE9C1, - (q31_t)0x838E1507, (q31_t)0xE26CB01A, (q31_t)0x8376B422, - (q31_t)0xE2CE88B2, (q31_t)0x835FA00E, (q31_t)0xE330734C, - (q31_t)0x8348D8DB, (q31_t)0xE3926FAC, (q31_t)0x83325E97, - (q31_t)0xE3F47D95, (q31_t)0x831C314E, (q31_t)0xE4569CCB, - (q31_t)0x8306510F, (q31_t)0xE4B8CD10, (q31_t)0x82F0BDE8, - (q31_t)0xE51B0E2A, (q31_t)0x82DB77E5, (q31_t)0xE57D5FDA, - (q31_t)0x82C67F13, (q31_t)0xE5DFC1E4, (q31_t)0x82B1D381, - (q31_t)0xE642340D, (q31_t)0x829D753A, (q31_t)0xE6A4B616, - (q31_t)0x8289644A, (q31_t)0xE70747C3, (q31_t)0x8275A0C0, - (q31_t)0xE769E8D8, (q31_t)0x82622AA5, (q31_t)0xE7CC9917, - (q31_t)0x824F0208, (q31_t)0xE82F5844, (q31_t)0x823C26F2, - (q31_t)0xE8922621, (q31_t)0x82299971, (q31_t)0xE8F50273, - (q31_t)0x8217598F, (q31_t)0xE957ECFB, (q31_t)0x82056758, - (q31_t)0xE9BAE57C, (q31_t)0x81F3C2D7, (q31_t)0xEA1DEBBB, - (q31_t)0x81E26C16, (q31_t)0xEA80FF79, (q31_t)0x81D16320, - (q31_t)0xEAE4207A, (q31_t)0x81C0A801, (q31_t)0xEB474E80, - (q31_t)0x81B03AC1, (q31_t)0xEBAA894E, (q31_t)0x81A01B6C, - (q31_t)0xEC0DD0A8, (q31_t)0x81904A0C, (q31_t)0xEC71244F, - (q31_t)0x8180C6A9, (q31_t)0xECD48406, (q31_t)0x8171914E, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xED9B66B2, - (q31_t)0x815410D3, (q31_t)0xEDFEE92B, (q31_t)0x8145C5C6, - (q31_t)0xEE6276BF, (q31_t)0x8137C8E6, (q31_t)0xEEC60F31, - (q31_t)0x812A1A39, (q31_t)0xEF29B243, (q31_t)0x811CB9CA, - (q31_t)0xEF8D5FB8, (q31_t)0x810FA7A0, (q31_t)0xEFF11752, - (q31_t)0x8102E3C3, (q31_t)0xF054D8D4, (q31_t)0x80F66E3C, - (q31_t)0xF0B8A401, (q31_t)0x80EA4712, (q31_t)0xF11C789A, - (q31_t)0x80DE6E4C, (q31_t)0xF1805662, (q31_t)0x80D2E3F1, - (q31_t)0xF1E43D1C, (q31_t)0x80C7A80A, (q31_t)0xF2482C89, - (q31_t)0x80BCBA9C, (q31_t)0xF2AC246D, (q31_t)0x80B21BAF, - (q31_t)0xF310248A, (q31_t)0x80A7CB49, (q31_t)0xF3742CA1, - (q31_t)0x809DC970, (q31_t)0xF3D83C76, (q31_t)0x8094162B, - (q31_t)0xF43C53CA, (q31_t)0x808AB180, (q31_t)0xF4A07260, - (q31_t)0x80819B74, (q31_t)0xF50497FA, (q31_t)0x8078D40D, - (q31_t)0xF568C45A, (q31_t)0x80705B50, (q31_t)0xF5CCF743, - (q31_t)0x80683143, (q31_t)0xF6313076, (q31_t)0x806055EA, - (q31_t)0xF6956FB6, (q31_t)0x8058C94C, (q31_t)0xF6F9B4C5, - (q31_t)0x80518B6B, (q31_t)0xF75DFF65, (q31_t)0x804A9C4D, - (q31_t)0xF7C24F58, (q31_t)0x8043FBF6, (q31_t)0xF826A461, - (q31_t)0x803DAA69, (q31_t)0xF88AFE41, (q31_t)0x8037A7AC, - (q31_t)0xF8EF5CBB, (q31_t)0x8031F3C1, (q31_t)0xF953BF90, - (q31_t)0x802C8EAD, (q31_t)0xF9B82683, (q31_t)0x80277872, - (q31_t)0xFA1C9156, (q31_t)0x8022B113, (q31_t)0xFA80FFCB, - (q31_t)0x801E3894, (q31_t)0xFAE571A4, (q31_t)0x801A0EF7, - (q31_t)0xFB49E6A2, (q31_t)0x80163440, (q31_t)0xFBAE5E89, - (q31_t)0x8012A86F, (q31_t)0xFC12D919, (q31_t)0x800F6B88, - (q31_t)0xFC775616, (q31_t)0x800C7D8C, (q31_t)0xFCDBD541, - (q31_t)0x8009DE7D, (q31_t)0xFD40565B, (q31_t)0x80078E5E, - (q31_t)0xFDA4D928, (q31_t)0x80058D2E, (q31_t)0xFE095D69, - (q31_t)0x8003DAF0, (q31_t)0xFE6DE2E0, (q31_t)0x800277A5, - (q31_t)0xFED2694F, (q31_t)0x8001634D, (q31_t)0xFF36F078, - (q31_t)0x80009DE9, (q31_t)0xFF9B781D, (q31_t)0x8000277A -}; - -/** -* \par -* Example code for Q31 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to Q31(Fixed point 1.31): -* round(twiddleCoefQ31(i) * pow(2, 31)) -* -*/ -const q31_t twiddleCoef_4096_q31[6144] = -{ - (q31_t)0x7FFFFFFF, (q31_t)0x00000000, (q31_t)0x7FFFF621, - (q31_t)0x003243F5, (q31_t)0x7FFFD885, (q31_t)0x006487E3, - (q31_t)0x7FFFA72C, (q31_t)0x0096CBC1, (q31_t)0x7FFF6216, - (q31_t)0x00C90F88, (q31_t)0x7FFF0942, (q31_t)0x00FB532F, - (q31_t)0x7FFE9CB2, (q31_t)0x012D96B0, (q31_t)0x7FFE1C64, - (q31_t)0x015FDA03, (q31_t)0x7FFD885A, (q31_t)0x01921D1F, - (q31_t)0x7FFCE093, (q31_t)0x01C45FFE, (q31_t)0x7FFC250F, - (q31_t)0x01F6A296, (q31_t)0x7FFB55CE, (q31_t)0x0228E4E1, - (q31_t)0x7FFA72D1, (q31_t)0x025B26D7, (q31_t)0x7FF97C17, - (q31_t)0x028D6870, (q31_t)0x7FF871A1, (q31_t)0x02BFA9A4, - (q31_t)0x7FF7536F, (q31_t)0x02F1EA6B, (q31_t)0x7FF62182, - (q31_t)0x03242ABF, (q31_t)0x7FF4DBD8, (q31_t)0x03566A96, - (q31_t)0x7FF38273, (q31_t)0x0388A9E9, (q31_t)0x7FF21553, - (q31_t)0x03BAE8B1, (q31_t)0x7FF09477, (q31_t)0x03ED26E6, - (q31_t)0x7FEEFFE1, (q31_t)0x041F647F, (q31_t)0x7FED5790, - (q31_t)0x0451A176, (q31_t)0x7FEB9B85, (q31_t)0x0483DDC3, - (q31_t)0x7FE9CBC0, (q31_t)0x04B6195D, (q31_t)0x7FE7E840, - (q31_t)0x04E8543D, (q31_t)0x7FE5F108, (q31_t)0x051A8E5C, - (q31_t)0x7FE3E616, (q31_t)0x054CC7B0, (q31_t)0x7FE1C76B, - (q31_t)0x057F0034, (q31_t)0x7FDF9508, (q31_t)0x05B137DF, - (q31_t)0x7FDD4EEC, (q31_t)0x05E36EA9, (q31_t)0x7FDAF518, - (q31_t)0x0615A48A, (q31_t)0x7FD8878D, (q31_t)0x0647D97C, - (q31_t)0x7FD6064B, (q31_t)0x067A0D75, (q31_t)0x7FD37152, - (q31_t)0x06AC406F, (q31_t)0x7FD0C8A3, (q31_t)0x06DE7261, - (q31_t)0x7FCE0C3E, (q31_t)0x0710A344, (q31_t)0x7FCB3C23, - (q31_t)0x0742D310, (q31_t)0x7FC85853, (q31_t)0x077501BE, - (q31_t)0x7FC560CF, (q31_t)0x07A72F45, (q31_t)0x7FC25596, - (q31_t)0x07D95B9E, (q31_t)0x7FBF36A9, (q31_t)0x080B86C1, - (q31_t)0x7FBC040A, (q31_t)0x083DB0A7, (q31_t)0x7FB8BDB7, - (q31_t)0x086FD947, (q31_t)0x7FB563B2, (q31_t)0x08A2009A, - (q31_t)0x7FB1F5FC, (q31_t)0x08D42698, (q31_t)0x7FAE7494, - (q31_t)0x09064B3A, (q31_t)0x7FAADF7C, (q31_t)0x09386E77, - (q31_t)0x7FA736B4, (q31_t)0x096A9049, (q31_t)0x7FA37A3C, - (q31_t)0x099CB0A7, (q31_t)0x7F9FAA15, (q31_t)0x09CECF89, - (q31_t)0x7F9BC63F, (q31_t)0x0A00ECE8, (q31_t)0x7F97CEBC, - (q31_t)0x0A3308BC, (q31_t)0x7F93C38C, (q31_t)0x0A6522FE, - (q31_t)0x7F8FA4AF, (q31_t)0x0A973BA5, (q31_t)0x7F8B7226, - (q31_t)0x0AC952AA, (q31_t)0x7F872BF3, (q31_t)0x0AFB6805, - (q31_t)0x7F82D214, (q31_t)0x0B2D7BAE, (q31_t)0x7F7E648B, - (q31_t)0x0B5F8D9F, (q31_t)0x7F79E35A, (q31_t)0x0B919DCE, - (q31_t)0x7F754E7F, (q31_t)0x0BC3AC35, (q31_t)0x7F70A5FD, - (q31_t)0x0BF5B8CB, (q31_t)0x7F6BE9D4, (q31_t)0x0C27C389, - (q31_t)0x7F671A04, (q31_t)0x0C59CC67, (q31_t)0x7F62368F, - (q31_t)0x0C8BD35E, (q31_t)0x7F5D3F75, (q31_t)0x0CBDD865, - (q31_t)0x7F5834B6, (q31_t)0x0CEFDB75, (q31_t)0x7F531654, - (q31_t)0x0D21DC87, (q31_t)0x7F4DE450, (q31_t)0x0D53DB92, - (q31_t)0x7F489EAA, (q31_t)0x0D85D88F, (q31_t)0x7F434563, - (q31_t)0x0DB7D376, (q31_t)0x7F3DD87C, (q31_t)0x0DE9CC3F, - (q31_t)0x7F3857F5, (q31_t)0x0E1BC2E3, (q31_t)0x7F32C3D0, - (q31_t)0x0E4DB75B, (q31_t)0x7F2D1C0E, (q31_t)0x0E7FA99D, - (q31_t)0x7F2760AF, (q31_t)0x0EB199A3, (q31_t)0x7F2191B4, - (q31_t)0x0EE38765, (q31_t)0x7F1BAF1E, (q31_t)0x0F1572DC, - (q31_t)0x7F15B8EE, (q31_t)0x0F475BFE, (q31_t)0x7F0FAF24, - (q31_t)0x0F7942C6, (q31_t)0x7F0991C3, (q31_t)0x0FAB272B, - (q31_t)0x7F0360CB, (q31_t)0x0FDD0925, (q31_t)0x7EFD1C3C, - (q31_t)0x100EE8AD, (q31_t)0x7EF6C418, (q31_t)0x1040C5BB, - (q31_t)0x7EF0585F, (q31_t)0x1072A047, (q31_t)0x7EE9D913, - (q31_t)0x10A4784A, (q31_t)0x7EE34635, (q31_t)0x10D64DBC, - (q31_t)0x7EDC9FC6, (q31_t)0x11082096, (q31_t)0x7ED5E5C6, - (q31_t)0x1139F0CE, (q31_t)0x7ECF1837, (q31_t)0x116BBE5F, - (q31_t)0x7EC8371A, (q31_t)0x119D8940, (q31_t)0x7EC1426F, - (q31_t)0x11CF516A, (q31_t)0x7EBA3A39, (q31_t)0x120116D4, - (q31_t)0x7EB31E77, (q31_t)0x1232D978, (q31_t)0x7EABEF2C, - (q31_t)0x1264994E, (q31_t)0x7EA4AC58, (q31_t)0x1296564D, - (q31_t)0x7E9D55FC, (q31_t)0x12C8106E, (q31_t)0x7E95EC19, - (q31_t)0x12F9C7AA, (q31_t)0x7E8E6EB1, (q31_t)0x132B7BF9, - (q31_t)0x7E86DDC5, (q31_t)0x135D2D53, (q31_t)0x7E7F3956, - (q31_t)0x138EDBB0, (q31_t)0x7E778165, (q31_t)0x13C0870A, - (q31_t)0x7E6FB5F3, (q31_t)0x13F22F57, (q31_t)0x7E67D702, - (q31_t)0x1423D492, (q31_t)0x7E5FE493, (q31_t)0x145576B1, - (q31_t)0x7E57DEA6, (q31_t)0x148715AD, (q31_t)0x7E4FC53E, - (q31_t)0x14B8B17F, (q31_t)0x7E47985B, (q31_t)0x14EA4A1F, - (q31_t)0x7E3F57FE, (q31_t)0x151BDF85, (q31_t)0x7E37042A, - (q31_t)0x154D71AA, (q31_t)0x7E2E9CDF, (q31_t)0x157F0086, - (q31_t)0x7E26221E, (q31_t)0x15B08C11, (q31_t)0x7E1D93E9, - (q31_t)0x15E21444, (q31_t)0x7E14F242, (q31_t)0x16139917, - (q31_t)0x7E0C3D29, (q31_t)0x16451A83, (q31_t)0x7E03749F, - (q31_t)0x1676987F, (q31_t)0x7DFA98A7, (q31_t)0x16A81305, - (q31_t)0x7DF1A942, (q31_t)0x16D98A0C, (q31_t)0x7DE8A670, - (q31_t)0x170AFD8D, (q31_t)0x7DDF9034, (q31_t)0x173C6D80, - (q31_t)0x7DD6668E, (q31_t)0x176DD9DE, (q31_t)0x7DCD2981, - (q31_t)0x179F429F, (q31_t)0x7DC3D90D, (q31_t)0x17D0A7BB, - (q31_t)0x7DBA7534, (q31_t)0x1802092C, (q31_t)0x7DB0FDF7, - (q31_t)0x183366E8, (q31_t)0x7DA77359, (q31_t)0x1864C0E9, - (q31_t)0x7D9DD55A, (q31_t)0x18961727, (q31_t)0x7D9423FB, - (q31_t)0x18C7699B, (q31_t)0x7D8A5F3F, (q31_t)0x18F8B83C, - (q31_t)0x7D808727, (q31_t)0x192A0303, (q31_t)0x7D769BB5, - (q31_t)0x195B49E9, (q31_t)0x7D6C9CE9, (q31_t)0x198C8CE6, - (q31_t)0x7D628AC5, (q31_t)0x19BDCBF2, (q31_t)0x7D58654C, - (q31_t)0x19EF0706, (q31_t)0x7D4E2C7E, (q31_t)0x1A203E1B, - (q31_t)0x7D43E05E, (q31_t)0x1A517127, (q31_t)0x7D3980EC, - (q31_t)0x1A82A025, (q31_t)0x7D2F0E2A, (q31_t)0x1AB3CB0C, - (q31_t)0x7D24881A, (q31_t)0x1AE4F1D6, (q31_t)0x7D19EEBE, - (q31_t)0x1B161479, (q31_t)0x7D0F4218, (q31_t)0x1B4732EF, - (q31_t)0x7D048228, (q31_t)0x1B784D30, (q31_t)0x7CF9AEF0, - (q31_t)0x1BA96334, (q31_t)0x7CEEC873, (q31_t)0x1BDA74F5, - (q31_t)0x7CE3CEB1, (q31_t)0x1C0B826A, (q31_t)0x7CD8C1AD, - (q31_t)0x1C3C8B8C, (q31_t)0x7CCDA168, (q31_t)0x1C6D9053, - (q31_t)0x7CC26DE5, (q31_t)0x1C9E90B8, (q31_t)0x7CB72724, - (q31_t)0x1CCF8CB3, (q31_t)0x7CABCD27, (q31_t)0x1D00843C, - (q31_t)0x7CA05FF1, (q31_t)0x1D31774D, (q31_t)0x7C94DF82, - (q31_t)0x1D6265DD, (q31_t)0x7C894BDD, (q31_t)0x1D934FE5, - (q31_t)0x7C7DA504, (q31_t)0x1DC4355D, (q31_t)0x7C71EAF8, - (q31_t)0x1DF5163F, (q31_t)0x7C661DBB, (q31_t)0x1E25F281, - (q31_t)0x7C5A3D4F, (q31_t)0x1E56CA1E, (q31_t)0x7C4E49B6, - (q31_t)0x1E879D0C, (q31_t)0x7C4242F2, (q31_t)0x1EB86B46, - (q31_t)0x7C362904, (q31_t)0x1EE934C2, (q31_t)0x7C29FBEE, - (q31_t)0x1F19F97B, (q31_t)0x7C1DBBB2, (q31_t)0x1F4AB967, - (q31_t)0x7C116853, (q31_t)0x1F7B7480, (q31_t)0x7C0501D1, - (q31_t)0x1FAC2ABF, (q31_t)0x7BF88830, (q31_t)0x1FDCDC1A, - (q31_t)0x7BEBFB70, (q31_t)0x200D888C, (q31_t)0x7BDF5B94, - (q31_t)0x203E300D, (q31_t)0x7BD2A89E, (q31_t)0x206ED295, - (q31_t)0x7BC5E28F, (q31_t)0x209F701C, (q31_t)0x7BB9096A, - (q31_t)0x20D0089B, (q31_t)0x7BAC1D31, (q31_t)0x21009C0B, - (q31_t)0x7B9F1DE5, (q31_t)0x21312A65, (q31_t)0x7B920B89, - (q31_t)0x2161B39F, (q31_t)0x7B84E61E, (q31_t)0x219237B4, - (q31_t)0x7B77ADA8, (q31_t)0x21C2B69C, (q31_t)0x7B6A6227, - (q31_t)0x21F3304E, (q31_t)0x7B5D039D, (q31_t)0x2223A4C5, - (q31_t)0x7B4F920E, (q31_t)0x225413F8, (q31_t)0x7B420D7A, - (q31_t)0x22847DDF, (q31_t)0x7B3475E4, (q31_t)0x22B4E274, - (q31_t)0x7B26CB4F, (q31_t)0x22E541AE, (q31_t)0x7B190DBB, - (q31_t)0x23159B87, (q31_t)0x7B0B3D2C, (q31_t)0x2345EFF7, - (q31_t)0x7AFD59A3, (q31_t)0x23763EF7, (q31_t)0x7AEF6323, - (q31_t)0x23A6887E, (q31_t)0x7AE159AE, (q31_t)0x23D6CC86, - (q31_t)0x7AD33D45, (q31_t)0x24070B07, (q31_t)0x7AC50DEB, - (q31_t)0x243743FA, (q31_t)0x7AB6CBA3, (q31_t)0x24677757, - (q31_t)0x7AA8766E, (q31_t)0x2497A517, (q31_t)0x7A9A0E4F, - (q31_t)0x24C7CD32, (q31_t)0x7A8B9348, (q31_t)0x24F7EFA1, - (q31_t)0x7A7D055B, (q31_t)0x25280C5D, (q31_t)0x7A6E648A, - (q31_t)0x2558235E, (q31_t)0x7A5FB0D8, (q31_t)0x2588349D, - (q31_t)0x7A50EA46, (q31_t)0x25B84012, (q31_t)0x7A4210D8, - (q31_t)0x25E845B5, (q31_t)0x7A33248F, (q31_t)0x26184581, - (q31_t)0x7A24256E, (q31_t)0x26483F6C, (q31_t)0x7A151377, - (q31_t)0x26783370, (q31_t)0x7A05EEAD, (q31_t)0x26A82185, - (q31_t)0x79F6B711, (q31_t)0x26D809A5, (q31_t)0x79E76CA6, - (q31_t)0x2707EBC6, (q31_t)0x79D80F6F, (q31_t)0x2737C7E3, - (q31_t)0x79C89F6D, (q31_t)0x27679DF4, (q31_t)0x79B91CA4, - (q31_t)0x27976DF1, (q31_t)0x79A98715, (q31_t)0x27C737D2, - (q31_t)0x7999DEC3, (q31_t)0x27F6FB92, (q31_t)0x798A23B1, - (q31_t)0x2826B928, (q31_t)0x797A55E0, (q31_t)0x2856708C, - (q31_t)0x796A7554, (q31_t)0x288621B9, (q31_t)0x795A820E, - (q31_t)0x28B5CCA5, (q31_t)0x794A7C11, (q31_t)0x28E5714A, - (q31_t)0x793A6360, (q31_t)0x29150FA1, (q31_t)0x792A37FE, - (q31_t)0x2944A7A2, (q31_t)0x7919F9EB, (q31_t)0x29743945, - (q31_t)0x7909A92C, (q31_t)0x29A3C484, (q31_t)0x78F945C3, - (q31_t)0x29D34958, (q31_t)0x78E8CFB1, (q31_t)0x2A02C7B8, - (q31_t)0x78D846FB, (q31_t)0x2A323F9D, (q31_t)0x78C7ABA1, - (q31_t)0x2A61B101, (q31_t)0x78B6FDA8, (q31_t)0x2A911BDB, - (q31_t)0x78A63D10, (q31_t)0x2AC08025, (q31_t)0x789569DE, - (q31_t)0x2AEFDDD8, (q31_t)0x78848413, (q31_t)0x2B1F34EB, - (q31_t)0x78738BB3, (q31_t)0x2B4E8558, (q31_t)0x786280BF, - (q31_t)0x2B7DCF17, (q31_t)0x7851633B, (q31_t)0x2BAD1221, - (q31_t)0x78403328, (q31_t)0x2BDC4E6F, (q31_t)0x782EF08B, - (q31_t)0x2C0B83F9, (q31_t)0x781D9B64, (q31_t)0x2C3AB2B9, - (q31_t)0x780C33B8, (q31_t)0x2C69DAA6, (q31_t)0x77FAB988, - (q31_t)0x2C98FBBA, (q31_t)0x77E92CD8, (q31_t)0x2CC815ED, - (q31_t)0x77D78DAA, (q31_t)0x2CF72939, (q31_t)0x77C5DC01, - (q31_t)0x2D263595, (q31_t)0x77B417DF, (q31_t)0x2D553AFB, - (q31_t)0x77A24148, (q31_t)0x2D843963, (q31_t)0x7790583D, - (q31_t)0x2DB330C7, (q31_t)0x777E5CC3, (q31_t)0x2DE2211E, - (q31_t)0x776C4EDB, (q31_t)0x2E110A62, (q31_t)0x775A2E88, - (q31_t)0x2E3FEC8B, (q31_t)0x7747FBCE, (q31_t)0x2E6EC792, - (q31_t)0x7735B6AE, (q31_t)0x2E9D9B70, (q31_t)0x77235F2D, - (q31_t)0x2ECC681E, (q31_t)0x7710F54B, (q31_t)0x2EFB2D94, - (q31_t)0x76FE790E, (q31_t)0x2F29EBCC, (q31_t)0x76EBEA77, - (q31_t)0x2F58A2BD, (q31_t)0x76D94988, (q31_t)0x2F875262, - (q31_t)0x76C69646, (q31_t)0x2FB5FAB2, (q31_t)0x76B3D0B3, - (q31_t)0x2FE49BA6, (q31_t)0x76A0F8D2, (q31_t)0x30133538, - (q31_t)0x768E0EA5, (q31_t)0x3041C760, (q31_t)0x767B1230, - (q31_t)0x30705217, (q31_t)0x76680376, (q31_t)0x309ED555, - (q31_t)0x7654E279, (q31_t)0x30CD5114, (q31_t)0x7641AF3C, - (q31_t)0x30FBC54D, (q31_t)0x762E69C3, (q31_t)0x312A31F8, - (q31_t)0x761B1211, (q31_t)0x3158970D, (q31_t)0x7607A827, - (q31_t)0x3186F487, (q31_t)0x75F42C0A, (q31_t)0x31B54A5D, - (q31_t)0x75E09DBD, (q31_t)0x31E39889, (q31_t)0x75CCFD42, - (q31_t)0x3211DF03, (q31_t)0x75B94A9C, (q31_t)0x32401DC5, - (q31_t)0x75A585CF, (q31_t)0x326E54C7, (q31_t)0x7591AEDD, - (q31_t)0x329C8402, (q31_t)0x757DC5CA, (q31_t)0x32CAAB6F, - (q31_t)0x7569CA98, (q31_t)0x32F8CB07, (q31_t)0x7555BD4B, - (q31_t)0x3326E2C2, (q31_t)0x75419DE6, (q31_t)0x3354F29A, - (q31_t)0x752D6C6C, (q31_t)0x3382FA88, (q31_t)0x751928E0, - (q31_t)0x33B0FA84, (q31_t)0x7504D345, (q31_t)0x33DEF287, - (q31_t)0x74F06B9E, (q31_t)0x340CE28A, (q31_t)0x74DBF1EF, - (q31_t)0x343ACA87, (q31_t)0x74C7663A, (q31_t)0x3468AA76, - (q31_t)0x74B2C883, (q31_t)0x3496824F, (q31_t)0x749E18CD, - (q31_t)0x34C4520D, (q31_t)0x7489571B, (q31_t)0x34F219A7, - (q31_t)0x74748371, (q31_t)0x351FD917, (q31_t)0x745F9DD1, - (q31_t)0x354D9056, (q31_t)0x744AA63E, (q31_t)0x357B3F5D, - (q31_t)0x74359CBD, (q31_t)0x35A8E624, (q31_t)0x74208150, - (q31_t)0x35D684A5, (q31_t)0x740B53FA, (q31_t)0x36041AD9, - (q31_t)0x73F614C0, (q31_t)0x3631A8B7, (q31_t)0x73E0C3A3, - (q31_t)0x365F2E3B, (q31_t)0x73CB60A7, (q31_t)0x368CAB5C, - (q31_t)0x73B5EBD0, (q31_t)0x36BA2013, (q31_t)0x73A06522, - (q31_t)0x36E78C5A, (q31_t)0x738ACC9E, (q31_t)0x3714F02A, - (q31_t)0x73752249, (q31_t)0x37424B7A, (q31_t)0x735F6626, - (q31_t)0x376F9E46, (q31_t)0x73499838, (q31_t)0x379CE884, - (q31_t)0x7333B883, (q31_t)0x37CA2A30, (q31_t)0x731DC709, - (q31_t)0x37F76340, (q31_t)0x7307C3D0, (q31_t)0x382493B0, - (q31_t)0x72F1AED8, (q31_t)0x3851BB76, (q31_t)0x72DB8828, - (q31_t)0x387EDA8E, (q31_t)0x72C54FC0, (q31_t)0x38ABF0EF, - (q31_t)0x72AF05A6, (q31_t)0x38D8FE93, (q31_t)0x7298A9DC, - (q31_t)0x39060372, (q31_t)0x72823C66, (q31_t)0x3932FF87, - (q31_t)0x726BBD48, (q31_t)0x395FF2C9, (q31_t)0x72552C84, - (q31_t)0x398CDD32, (q31_t)0x723E8A1F, (q31_t)0x39B9BEBB, - (q31_t)0x7227D61C, (q31_t)0x39E6975D, (q31_t)0x7211107D, - (q31_t)0x3A136712, (q31_t)0x71FA3948, (q31_t)0x3A402DD1, - (q31_t)0x71E3507F, (q31_t)0x3A6CEB95, (q31_t)0x71CC5626, - (q31_t)0x3A99A057, (q31_t)0x71B54A40, (q31_t)0x3AC64C0F, - (q31_t)0x719E2CD2, (q31_t)0x3AF2EEB7, (q31_t)0x7186FDDE, - (q31_t)0x3B1F8847, (q31_t)0x716FBD68, (q31_t)0x3B4C18BA, - (q31_t)0x71586B73, (q31_t)0x3B78A007, (q31_t)0x71410804, - (q31_t)0x3BA51E29, (q31_t)0x7129931E, (q31_t)0x3BD19317, - (q31_t)0x71120CC5, (q31_t)0x3BFDFECD, (q31_t)0x70FA74FB, - (q31_t)0x3C2A6142, (q31_t)0x70E2CBC6, (q31_t)0x3C56BA70, - (q31_t)0x70CB1127, (q31_t)0x3C830A4F, (q31_t)0x70B34524, - (q31_t)0x3CAF50DA, (q31_t)0x709B67C0, (q31_t)0x3CDB8E09, - (q31_t)0x708378FE, (q31_t)0x3D07C1D5, (q31_t)0x706B78E3, - (q31_t)0x3D33EC39, (q31_t)0x70536771, (q31_t)0x3D600D2B, - (q31_t)0x703B44AC, (q31_t)0x3D8C24A7, (q31_t)0x70231099, - (q31_t)0x3DB832A5, (q31_t)0x700ACB3B, (q31_t)0x3DE4371F, - (q31_t)0x6FF27496, (q31_t)0x3E10320D, (q31_t)0x6FDA0CAD, - (q31_t)0x3E3C2369, (q31_t)0x6FC19385, (q31_t)0x3E680B2C, - (q31_t)0x6FA90920, (q31_t)0x3E93E94F, (q31_t)0x6F906D84, - (q31_t)0x3EBFBDCC, (q31_t)0x6F77C0B3, (q31_t)0x3EEB889C, - (q31_t)0x6F5F02B1, (q31_t)0x3F1749B7, (q31_t)0x6F463383, - (q31_t)0x3F430118, (q31_t)0x6F2D532C, (q31_t)0x3F6EAEB8, - (q31_t)0x6F1461AF, (q31_t)0x3F9A528F, (q31_t)0x6EFB5F12, - (q31_t)0x3FC5EC97, (q31_t)0x6EE24B57, (q31_t)0x3FF17CCA, - (q31_t)0x6EC92682, (q31_t)0x401D0320, (q31_t)0x6EAFF098, - (q31_t)0x40487F93, (q31_t)0x6E96A99C, (q31_t)0x4073F21D, - (q31_t)0x6E7D5193, (q31_t)0x409F5AB6, (q31_t)0x6E63E87F, - (q31_t)0x40CAB957, (q31_t)0x6E4A6E65, (q31_t)0x40F60DFB, - (q31_t)0x6E30E349, (q31_t)0x4121589A, (q31_t)0x6E17472F, - (q31_t)0x414C992E, (q31_t)0x6DFD9A1B, (q31_t)0x4177CFB0, - (q31_t)0x6DE3DC11, (q31_t)0x41A2FC1A, (q31_t)0x6DCA0D14, - (q31_t)0x41CE1E64, (q31_t)0x6DB02D29, (q31_t)0x41F93688, - (q31_t)0x6D963C54, (q31_t)0x42244480, (q31_t)0x6D7C3A98, - (q31_t)0x424F4845, (q31_t)0x6D6227FA, (q31_t)0x427A41D0, - (q31_t)0x6D48047E, (q31_t)0x42A5311A, (q31_t)0x6D2DD027, - (q31_t)0x42D0161E, (q31_t)0x6D138AFA, (q31_t)0x42FAF0D4, - (q31_t)0x6CF934FB, (q31_t)0x4325C135, (q31_t)0x6CDECE2E, - (q31_t)0x4350873C, (q31_t)0x6CC45697, (q31_t)0x437B42E1, - (q31_t)0x6CA9CE3A, (q31_t)0x43A5F41E, (q31_t)0x6C8F351C, - (q31_t)0x43D09AEC, (q31_t)0x6C748B3F, (q31_t)0x43FB3745, - (q31_t)0x6C59D0A9, (q31_t)0x4425C923, (q31_t)0x6C3F055D, - (q31_t)0x4450507E, (q31_t)0x6C242960, (q31_t)0x447ACD50, - (q31_t)0x6C093CB6, (q31_t)0x44A53F93, (q31_t)0x6BEE3F62, - (q31_t)0x44CFA73F, (q31_t)0x6BD3316A, (q31_t)0x44FA044F, - (q31_t)0x6BB812D0, (q31_t)0x452456BC, (q31_t)0x6B9CE39B, - (q31_t)0x454E9E80, (q31_t)0x6B81A3CD, (q31_t)0x4578DB93, - (q31_t)0x6B66536A, (q31_t)0x45A30DF0, (q31_t)0x6B4AF278, - (q31_t)0x45CD358F, (q31_t)0x6B2F80FA, (q31_t)0x45F7526B, - (q31_t)0x6B13FEF5, (q31_t)0x4621647C, (q31_t)0x6AF86C6C, - (q31_t)0x464B6BBD, (q31_t)0x6ADCC964, (q31_t)0x46756827, - (q31_t)0x6AC115E1, (q31_t)0x469F59B4, (q31_t)0x6AA551E8, - (q31_t)0x46C9405C, (q31_t)0x6A897D7D, (q31_t)0x46F31C1A, - (q31_t)0x6A6D98A4, (q31_t)0x471CECE6, (q31_t)0x6A51A361, - (q31_t)0x4746B2BC, (q31_t)0x6A359DB9, (q31_t)0x47706D93, - (q31_t)0x6A1987B0, (q31_t)0x479A1D66, (q31_t)0x69FD614A, - (q31_t)0x47C3C22E, (q31_t)0x69E12A8C, (q31_t)0x47ED5BE6, - (q31_t)0x69C4E37A, (q31_t)0x4816EA85, (q31_t)0x69A88C18, - (q31_t)0x48406E07, (q31_t)0x698C246C, (q31_t)0x4869E664, - (q31_t)0x696FAC78, (q31_t)0x48935397, (q31_t)0x69532442, - (q31_t)0x48BCB598, (q31_t)0x69368BCE, (q31_t)0x48E60C62, - (q31_t)0x6919E320, (q31_t)0x490F57EE, (q31_t)0x68FD2A3D, - (q31_t)0x49389836, (q31_t)0x68E06129, (q31_t)0x4961CD32, - (q31_t)0x68C387E9, (q31_t)0x498AF6DE, (q31_t)0x68A69E81, - (q31_t)0x49B41533, (q31_t)0x6889A4F5, (q31_t)0x49DD282A, - (q31_t)0x686C9B4B, (q31_t)0x4A062FBD, (q31_t)0x684F8186, - (q31_t)0x4A2F2BE5, (q31_t)0x683257AA, (q31_t)0x4A581C9D, - (q31_t)0x68151DBE, (q31_t)0x4A8101DE, (q31_t)0x67F7D3C4, - (q31_t)0x4AA9DBA1, (q31_t)0x67DA79C2, (q31_t)0x4AD2A9E1, - (q31_t)0x67BD0FBC, (q31_t)0x4AFB6C97, (q31_t)0x679F95B7, - (q31_t)0x4B2423BD, (q31_t)0x67820BB6, (q31_t)0x4B4CCF4D, - (q31_t)0x676471C0, (q31_t)0x4B756F3F, (q31_t)0x6746C7D7, - (q31_t)0x4B9E038F, (q31_t)0x67290E02, (q31_t)0x4BC68C36, - (q31_t)0x670B4443, (q31_t)0x4BEF092D, (q31_t)0x66ED6AA1, - (q31_t)0x4C177A6E, (q31_t)0x66CF811F, (q31_t)0x4C3FDFF3, - (q31_t)0x66B187C3, (q31_t)0x4C6839B6, (q31_t)0x66937E90, - (q31_t)0x4C9087B1, (q31_t)0x6675658C, (q31_t)0x4CB8C9DD, - (q31_t)0x66573CBB, (q31_t)0x4CE10034, (q31_t)0x66390422, - (q31_t)0x4D092AB0, (q31_t)0x661ABBC5, (q31_t)0x4D31494B, - (q31_t)0x65FC63A9, (q31_t)0x4D595BFE, (q31_t)0x65DDFBD3, - (q31_t)0x4D8162C4, (q31_t)0x65BF8447, (q31_t)0x4DA95D96, - (q31_t)0x65A0FD0B, (q31_t)0x4DD14C6E, (q31_t)0x65826622, - (q31_t)0x4DF92F45, (q31_t)0x6563BF92, (q31_t)0x4E210617, - (q31_t)0x6545095F, (q31_t)0x4E48D0DC, (q31_t)0x6526438E, - (q31_t)0x4E708F8F, (q31_t)0x65076E24, (q31_t)0x4E984229, - (q31_t)0x64E88926, (q31_t)0x4EBFE8A4, (q31_t)0x64C99498, - (q31_t)0x4EE782FA, (q31_t)0x64AA907F, (q31_t)0x4F0F1126, - (q31_t)0x648B7CDF, (q31_t)0x4F369320, (q31_t)0x646C59BF, - (q31_t)0x4F5E08E3, (q31_t)0x644D2722, (q31_t)0x4F857268, - (q31_t)0x642DE50D, (q31_t)0x4FACCFAB, (q31_t)0x640E9385, - (q31_t)0x4FD420A3, (q31_t)0x63EF328F, (q31_t)0x4FFB654D, - (q31_t)0x63CFC230, (q31_t)0x50229DA0, (q31_t)0x63B0426D, - (q31_t)0x5049C999, (q31_t)0x6390B34A, (q31_t)0x5070E92F, - (q31_t)0x637114CC, (q31_t)0x5097FC5E, (q31_t)0x635166F8, - (q31_t)0x50BF031F, (q31_t)0x6331A9D4, (q31_t)0x50E5FD6C, - (q31_t)0x6311DD63, (q31_t)0x510CEB40, (q31_t)0x62F201AC, - (q31_t)0x5133CC94, (q31_t)0x62D216B2, (q31_t)0x515AA162, - (q31_t)0x62B21C7B, (q31_t)0x518169A4, (q31_t)0x6292130C, - (q31_t)0x51A82555, (q31_t)0x6271FA69, (q31_t)0x51CED46E, - (q31_t)0x6251D297, (q31_t)0x51F576E9, (q31_t)0x62319B9D, - (q31_t)0x521C0CC1, (q31_t)0x6211557D, (q31_t)0x524295EF, - (q31_t)0x61F1003E, (q31_t)0x5269126E, (q31_t)0x61D09BE5, - (q31_t)0x528F8237, (q31_t)0x61B02876, (q31_t)0x52B5E545, - (q31_t)0x618FA5F6, (q31_t)0x52DC3B92, (q31_t)0x616F146B, - (q31_t)0x53028517, (q31_t)0x614E73D9, (q31_t)0x5328C1D0, - (q31_t)0x612DC446, (q31_t)0x534EF1B5, (q31_t)0x610D05B7, - (q31_t)0x537514C1, (q31_t)0x60EC3830, (q31_t)0x539B2AEF, - (q31_t)0x60CB5BB6, (q31_t)0x53C13438, (q31_t)0x60AA704F, - (q31_t)0x53E73097, (q31_t)0x60897600, (q31_t)0x540D2005, - (q31_t)0x60686CCE, (q31_t)0x5433027D, (q31_t)0x604754BE, - (q31_t)0x5458D7F9, (q31_t)0x60262DD5, (q31_t)0x547EA073, - (q31_t)0x6004F818, (q31_t)0x54A45BE5, (q31_t)0x5FE3B38D, - (q31_t)0x54CA0A4A, (q31_t)0x5FC26038, (q31_t)0x54EFAB9C, - (q31_t)0x5FA0FE1E, (q31_t)0x55153FD4, (q31_t)0x5F7F8D46, - (q31_t)0x553AC6ED, (q31_t)0x5F5E0DB3, (q31_t)0x556040E2, - (q31_t)0x5F3C7F6B, (q31_t)0x5585ADAC, (q31_t)0x5F1AE273, - (q31_t)0x55AB0D46, (q31_t)0x5EF936D1, (q31_t)0x55D05FAA, - (q31_t)0x5ED77C89, (q31_t)0x55F5A4D2, (q31_t)0x5EB5B3A1, - (q31_t)0x561ADCB8, (q31_t)0x5E93DC1F, (q31_t)0x56400757, - (q31_t)0x5E71F606, (q31_t)0x566524AA, (q31_t)0x5E50015D, - (q31_t)0x568A34A9, (q31_t)0x5E2DFE28, (q31_t)0x56AF3750, - (q31_t)0x5E0BEC6E, (q31_t)0x56D42C99, (q31_t)0x5DE9CC32, - (q31_t)0x56F9147E, (q31_t)0x5DC79D7C, (q31_t)0x571DEEF9, - (q31_t)0x5DA5604E, (q31_t)0x5742BC05, (q31_t)0x5D8314B0, - (q31_t)0x57677B9D, (q31_t)0x5D60BAA6, (q31_t)0x578C2DB9, - (q31_t)0x5D3E5236, (q31_t)0x57B0D256, (q31_t)0x5D1BDB65, - (q31_t)0x57D5696C, (q31_t)0x5CF95638, (q31_t)0x57F9F2F7, - (q31_t)0x5CD6C2B4, (q31_t)0x581E6EF1, (q31_t)0x5CB420DF, - (q31_t)0x5842DD54, (q31_t)0x5C9170BF, (q31_t)0x58673E1B, - (q31_t)0x5C6EB258, (q31_t)0x588B913F, (q31_t)0x5C4BE5B0, - (q31_t)0x58AFD6BC, (q31_t)0x5C290ACC, (q31_t)0x58D40E8C, - (q31_t)0x5C0621B2, (q31_t)0x58F838A9, (q31_t)0x5BE32A67, - (q31_t)0x591C550E, (q31_t)0x5BC024F0, (q31_t)0x594063B4, - (q31_t)0x5B9D1153, (q31_t)0x59646497, (q31_t)0x5B79EF96, - (q31_t)0x598857B1, (q31_t)0x5B56BFBD, (q31_t)0x59AC3CFD, - (q31_t)0x5B3381CE, (q31_t)0x59D01474, (q31_t)0x5B1035CF, - (q31_t)0x59F3DE12, (q31_t)0x5AECDBC4, (q31_t)0x5A1799D0, - (q31_t)0x5AC973B4, (q31_t)0x5A3B47AA, (q31_t)0x5AA5FDA4, - (q31_t)0x5A5EE79A, (q31_t)0x5A82799A, (q31_t)0x5A82799A, - (q31_t)0x5A5EE79A, (q31_t)0x5AA5FDA4, (q31_t)0x5A3B47AA, - (q31_t)0x5AC973B4, (q31_t)0x5A1799D0, (q31_t)0x5AECDBC4, - (q31_t)0x59F3DE12, (q31_t)0x5B1035CF, (q31_t)0x59D01474, - (q31_t)0x5B3381CE, (q31_t)0x59AC3CFD, (q31_t)0x5B56BFBD, - (q31_t)0x598857B1, (q31_t)0x5B79EF96, (q31_t)0x59646497, - (q31_t)0x5B9D1153, (q31_t)0x594063B4, (q31_t)0x5BC024F0, - (q31_t)0x591C550E, (q31_t)0x5BE32A67, (q31_t)0x58F838A9, - (q31_t)0x5C0621B2, (q31_t)0x58D40E8C, (q31_t)0x5C290ACC, - (q31_t)0x58AFD6BC, (q31_t)0x5C4BE5B0, (q31_t)0x588B913F, - (q31_t)0x5C6EB258, (q31_t)0x58673E1B, (q31_t)0x5C9170BF, - (q31_t)0x5842DD54, (q31_t)0x5CB420DF, (q31_t)0x581E6EF1, - (q31_t)0x5CD6C2B4, (q31_t)0x57F9F2F7, (q31_t)0x5CF95638, - (q31_t)0x57D5696C, (q31_t)0x5D1BDB65, (q31_t)0x57B0D256, - (q31_t)0x5D3E5236, (q31_t)0x578C2DB9, (q31_t)0x5D60BAA6, - (q31_t)0x57677B9D, (q31_t)0x5D8314B0, (q31_t)0x5742BC05, - (q31_t)0x5DA5604E, (q31_t)0x571DEEF9, (q31_t)0x5DC79D7C, - (q31_t)0x56F9147E, (q31_t)0x5DE9CC32, (q31_t)0x56D42C99, - (q31_t)0x5E0BEC6E, (q31_t)0x56AF3750, (q31_t)0x5E2DFE28, - (q31_t)0x568A34A9, (q31_t)0x5E50015D, (q31_t)0x566524AA, - (q31_t)0x5E71F606, (q31_t)0x56400757, (q31_t)0x5E93DC1F, - (q31_t)0x561ADCB8, (q31_t)0x5EB5B3A1, (q31_t)0x55F5A4D2, - (q31_t)0x5ED77C89, (q31_t)0x55D05FAA, (q31_t)0x5EF936D1, - (q31_t)0x55AB0D46, (q31_t)0x5F1AE273, (q31_t)0x5585ADAC, - (q31_t)0x5F3C7F6B, (q31_t)0x556040E2, (q31_t)0x5F5E0DB3, - (q31_t)0x553AC6ED, (q31_t)0x5F7F8D46, (q31_t)0x55153FD4, - (q31_t)0x5FA0FE1E, (q31_t)0x54EFAB9C, (q31_t)0x5FC26038, - (q31_t)0x54CA0A4A, (q31_t)0x5FE3B38D, (q31_t)0x54A45BE5, - (q31_t)0x6004F818, (q31_t)0x547EA073, (q31_t)0x60262DD5, - (q31_t)0x5458D7F9, (q31_t)0x604754BE, (q31_t)0x5433027D, - (q31_t)0x60686CCE, (q31_t)0x540D2005, (q31_t)0x60897600, - (q31_t)0x53E73097, (q31_t)0x60AA704F, (q31_t)0x53C13438, - (q31_t)0x60CB5BB6, (q31_t)0x539B2AEF, (q31_t)0x60EC3830, - (q31_t)0x537514C1, (q31_t)0x610D05B7, (q31_t)0x534EF1B5, - (q31_t)0x612DC446, (q31_t)0x5328C1D0, (q31_t)0x614E73D9, - (q31_t)0x53028517, (q31_t)0x616F146B, (q31_t)0x52DC3B92, - (q31_t)0x618FA5F6, (q31_t)0x52B5E545, (q31_t)0x61B02876, - (q31_t)0x528F8237, (q31_t)0x61D09BE5, (q31_t)0x5269126E, - (q31_t)0x61F1003E, (q31_t)0x524295EF, (q31_t)0x6211557D, - (q31_t)0x521C0CC1, (q31_t)0x62319B9D, (q31_t)0x51F576E9, - (q31_t)0x6251D297, (q31_t)0x51CED46E, (q31_t)0x6271FA69, - (q31_t)0x51A82555, (q31_t)0x6292130C, (q31_t)0x518169A4, - (q31_t)0x62B21C7B, (q31_t)0x515AA162, (q31_t)0x62D216B2, - (q31_t)0x5133CC94, (q31_t)0x62F201AC, (q31_t)0x510CEB40, - (q31_t)0x6311DD63, (q31_t)0x50E5FD6C, (q31_t)0x6331A9D4, - (q31_t)0x50BF031F, (q31_t)0x635166F8, (q31_t)0x5097FC5E, - (q31_t)0x637114CC, (q31_t)0x5070E92F, (q31_t)0x6390B34A, - (q31_t)0x5049C999, (q31_t)0x63B0426D, (q31_t)0x50229DA0, - (q31_t)0x63CFC230, (q31_t)0x4FFB654D, (q31_t)0x63EF328F, - (q31_t)0x4FD420A3, (q31_t)0x640E9385, (q31_t)0x4FACCFAB, - (q31_t)0x642DE50D, (q31_t)0x4F857268, (q31_t)0x644D2722, - (q31_t)0x4F5E08E3, (q31_t)0x646C59BF, (q31_t)0x4F369320, - (q31_t)0x648B7CDF, (q31_t)0x4F0F1126, (q31_t)0x64AA907F, - (q31_t)0x4EE782FA, (q31_t)0x64C99498, (q31_t)0x4EBFE8A4, - (q31_t)0x64E88926, (q31_t)0x4E984229, (q31_t)0x65076E24, - (q31_t)0x4E708F8F, (q31_t)0x6526438E, (q31_t)0x4E48D0DC, - (q31_t)0x6545095F, (q31_t)0x4E210617, (q31_t)0x6563BF92, - (q31_t)0x4DF92F45, (q31_t)0x65826622, (q31_t)0x4DD14C6E, - (q31_t)0x65A0FD0B, (q31_t)0x4DA95D96, (q31_t)0x65BF8447, - (q31_t)0x4D8162C4, (q31_t)0x65DDFBD3, (q31_t)0x4D595BFE, - (q31_t)0x65FC63A9, (q31_t)0x4D31494B, (q31_t)0x661ABBC5, - (q31_t)0x4D092AB0, (q31_t)0x66390422, (q31_t)0x4CE10034, - (q31_t)0x66573CBB, (q31_t)0x4CB8C9DD, (q31_t)0x6675658C, - (q31_t)0x4C9087B1, (q31_t)0x66937E90, (q31_t)0x4C6839B6, - (q31_t)0x66B187C3, (q31_t)0x4C3FDFF3, (q31_t)0x66CF811F, - (q31_t)0x4C177A6E, (q31_t)0x66ED6AA1, (q31_t)0x4BEF092D, - (q31_t)0x670B4443, (q31_t)0x4BC68C36, (q31_t)0x67290E02, - (q31_t)0x4B9E038F, (q31_t)0x6746C7D7, (q31_t)0x4B756F3F, - (q31_t)0x676471C0, (q31_t)0x4B4CCF4D, (q31_t)0x67820BB6, - (q31_t)0x4B2423BD, (q31_t)0x679F95B7, (q31_t)0x4AFB6C97, - (q31_t)0x67BD0FBC, (q31_t)0x4AD2A9E1, (q31_t)0x67DA79C2, - (q31_t)0x4AA9DBA1, (q31_t)0x67F7D3C4, (q31_t)0x4A8101DE, - (q31_t)0x68151DBE, (q31_t)0x4A581C9D, (q31_t)0x683257AA, - (q31_t)0x4A2F2BE5, (q31_t)0x684F8186, (q31_t)0x4A062FBD, - (q31_t)0x686C9B4B, (q31_t)0x49DD282A, (q31_t)0x6889A4F5, - (q31_t)0x49B41533, (q31_t)0x68A69E81, (q31_t)0x498AF6DE, - (q31_t)0x68C387E9, (q31_t)0x4961CD32, (q31_t)0x68E06129, - (q31_t)0x49389836, (q31_t)0x68FD2A3D, (q31_t)0x490F57EE, - (q31_t)0x6919E320, (q31_t)0x48E60C62, (q31_t)0x69368BCE, - (q31_t)0x48BCB598, (q31_t)0x69532442, (q31_t)0x48935397, - (q31_t)0x696FAC78, (q31_t)0x4869E664, (q31_t)0x698C246C, - (q31_t)0x48406E07, (q31_t)0x69A88C18, (q31_t)0x4816EA85, - (q31_t)0x69C4E37A, (q31_t)0x47ED5BE6, (q31_t)0x69E12A8C, - (q31_t)0x47C3C22E, (q31_t)0x69FD614A, (q31_t)0x479A1D66, - (q31_t)0x6A1987B0, (q31_t)0x47706D93, (q31_t)0x6A359DB9, - (q31_t)0x4746B2BC, (q31_t)0x6A51A361, (q31_t)0x471CECE6, - (q31_t)0x6A6D98A4, (q31_t)0x46F31C1A, (q31_t)0x6A897D7D, - (q31_t)0x46C9405C, (q31_t)0x6AA551E8, (q31_t)0x469F59B4, - (q31_t)0x6AC115E1, (q31_t)0x46756827, (q31_t)0x6ADCC964, - (q31_t)0x464B6BBD, (q31_t)0x6AF86C6C, (q31_t)0x4621647C, - (q31_t)0x6B13FEF5, (q31_t)0x45F7526B, (q31_t)0x6B2F80FA, - (q31_t)0x45CD358F, (q31_t)0x6B4AF278, (q31_t)0x45A30DF0, - (q31_t)0x6B66536A, (q31_t)0x4578DB93, (q31_t)0x6B81A3CD, - (q31_t)0x454E9E80, (q31_t)0x6B9CE39B, (q31_t)0x452456BC, - (q31_t)0x6BB812D0, (q31_t)0x44FA044F, (q31_t)0x6BD3316A, - (q31_t)0x44CFA73F, (q31_t)0x6BEE3F62, (q31_t)0x44A53F93, - (q31_t)0x6C093CB6, (q31_t)0x447ACD50, (q31_t)0x6C242960, - (q31_t)0x4450507E, (q31_t)0x6C3F055D, (q31_t)0x4425C923, - (q31_t)0x6C59D0A9, (q31_t)0x43FB3745, (q31_t)0x6C748B3F, - (q31_t)0x43D09AEC, (q31_t)0x6C8F351C, (q31_t)0x43A5F41E, - (q31_t)0x6CA9CE3A, (q31_t)0x437B42E1, (q31_t)0x6CC45697, - (q31_t)0x4350873C, (q31_t)0x6CDECE2E, (q31_t)0x4325C135, - (q31_t)0x6CF934FB, (q31_t)0x42FAF0D4, (q31_t)0x6D138AFA, - (q31_t)0x42D0161E, (q31_t)0x6D2DD027, (q31_t)0x42A5311A, - (q31_t)0x6D48047E, (q31_t)0x427A41D0, (q31_t)0x6D6227FA, - (q31_t)0x424F4845, (q31_t)0x6D7C3A98, (q31_t)0x42244480, - (q31_t)0x6D963C54, (q31_t)0x41F93688, (q31_t)0x6DB02D29, - (q31_t)0x41CE1E64, (q31_t)0x6DCA0D14, (q31_t)0x41A2FC1A, - (q31_t)0x6DE3DC11, (q31_t)0x4177CFB0, (q31_t)0x6DFD9A1B, - (q31_t)0x414C992E, (q31_t)0x6E17472F, (q31_t)0x4121589A, - (q31_t)0x6E30E349, (q31_t)0x40F60DFB, (q31_t)0x6E4A6E65, - (q31_t)0x40CAB957, (q31_t)0x6E63E87F, (q31_t)0x409F5AB6, - (q31_t)0x6E7D5193, (q31_t)0x4073F21D, (q31_t)0x6E96A99C, - (q31_t)0x40487F93, (q31_t)0x6EAFF098, (q31_t)0x401D0320, - (q31_t)0x6EC92682, (q31_t)0x3FF17CCA, (q31_t)0x6EE24B57, - (q31_t)0x3FC5EC97, (q31_t)0x6EFB5F12, (q31_t)0x3F9A528F, - (q31_t)0x6F1461AF, (q31_t)0x3F6EAEB8, (q31_t)0x6F2D532C, - (q31_t)0x3F430118, (q31_t)0x6F463383, (q31_t)0x3F1749B7, - (q31_t)0x6F5F02B1, (q31_t)0x3EEB889C, (q31_t)0x6F77C0B3, - (q31_t)0x3EBFBDCC, (q31_t)0x6F906D84, (q31_t)0x3E93E94F, - (q31_t)0x6FA90920, (q31_t)0x3E680B2C, (q31_t)0x6FC19385, - (q31_t)0x3E3C2369, (q31_t)0x6FDA0CAD, (q31_t)0x3E10320D, - (q31_t)0x6FF27496, (q31_t)0x3DE4371F, (q31_t)0x700ACB3B, - (q31_t)0x3DB832A5, (q31_t)0x70231099, (q31_t)0x3D8C24A7, - (q31_t)0x703B44AC, (q31_t)0x3D600D2B, (q31_t)0x70536771, - (q31_t)0x3D33EC39, (q31_t)0x706B78E3, (q31_t)0x3D07C1D5, - (q31_t)0x708378FE, (q31_t)0x3CDB8E09, (q31_t)0x709B67C0, - (q31_t)0x3CAF50DA, (q31_t)0x70B34524, (q31_t)0x3C830A4F, - (q31_t)0x70CB1127, (q31_t)0x3C56BA70, (q31_t)0x70E2CBC6, - (q31_t)0x3C2A6142, (q31_t)0x70FA74FB, (q31_t)0x3BFDFECD, - (q31_t)0x71120CC5, (q31_t)0x3BD19317, (q31_t)0x7129931E, - (q31_t)0x3BA51E29, (q31_t)0x71410804, (q31_t)0x3B78A007, - (q31_t)0x71586B73, (q31_t)0x3B4C18BA, (q31_t)0x716FBD68, - (q31_t)0x3B1F8847, (q31_t)0x7186FDDE, (q31_t)0x3AF2EEB7, - (q31_t)0x719E2CD2, (q31_t)0x3AC64C0F, (q31_t)0x71B54A40, - (q31_t)0x3A99A057, (q31_t)0x71CC5626, (q31_t)0x3A6CEB95, - (q31_t)0x71E3507F, (q31_t)0x3A402DD1, (q31_t)0x71FA3948, - (q31_t)0x3A136712, (q31_t)0x7211107D, (q31_t)0x39E6975D, - (q31_t)0x7227D61C, (q31_t)0x39B9BEBB, (q31_t)0x723E8A1F, - (q31_t)0x398CDD32, (q31_t)0x72552C84, (q31_t)0x395FF2C9, - (q31_t)0x726BBD48, (q31_t)0x3932FF87, (q31_t)0x72823C66, - (q31_t)0x39060372, (q31_t)0x7298A9DC, (q31_t)0x38D8FE93, - (q31_t)0x72AF05A6, (q31_t)0x38ABF0EF, (q31_t)0x72C54FC0, - (q31_t)0x387EDA8E, (q31_t)0x72DB8828, (q31_t)0x3851BB76, - (q31_t)0x72F1AED8, (q31_t)0x382493B0, (q31_t)0x7307C3D0, - (q31_t)0x37F76340, (q31_t)0x731DC709, (q31_t)0x37CA2A30, - (q31_t)0x7333B883, (q31_t)0x379CE884, (q31_t)0x73499838, - (q31_t)0x376F9E46, (q31_t)0x735F6626, (q31_t)0x37424B7A, - (q31_t)0x73752249, (q31_t)0x3714F02A, (q31_t)0x738ACC9E, - (q31_t)0x36E78C5A, (q31_t)0x73A06522, (q31_t)0x36BA2013, - (q31_t)0x73B5EBD0, (q31_t)0x368CAB5C, (q31_t)0x73CB60A7, - (q31_t)0x365F2E3B, (q31_t)0x73E0C3A3, (q31_t)0x3631A8B7, - (q31_t)0x73F614C0, (q31_t)0x36041AD9, (q31_t)0x740B53FA, - (q31_t)0x35D684A5, (q31_t)0x74208150, (q31_t)0x35A8E624, - (q31_t)0x74359CBD, (q31_t)0x357B3F5D, (q31_t)0x744AA63E, - (q31_t)0x354D9056, (q31_t)0x745F9DD1, (q31_t)0x351FD917, - (q31_t)0x74748371, (q31_t)0x34F219A7, (q31_t)0x7489571B, - (q31_t)0x34C4520D, (q31_t)0x749E18CD, (q31_t)0x3496824F, - (q31_t)0x74B2C883, (q31_t)0x3468AA76, (q31_t)0x74C7663A, - (q31_t)0x343ACA87, (q31_t)0x74DBF1EF, (q31_t)0x340CE28A, - (q31_t)0x74F06B9E, (q31_t)0x33DEF287, (q31_t)0x7504D345, - (q31_t)0x33B0FA84, (q31_t)0x751928E0, (q31_t)0x3382FA88, - (q31_t)0x752D6C6C, (q31_t)0x3354F29A, (q31_t)0x75419DE6, - (q31_t)0x3326E2C2, (q31_t)0x7555BD4B, (q31_t)0x32F8CB07, - (q31_t)0x7569CA98, (q31_t)0x32CAAB6F, (q31_t)0x757DC5CA, - (q31_t)0x329C8402, (q31_t)0x7591AEDD, (q31_t)0x326E54C7, - (q31_t)0x75A585CF, (q31_t)0x32401DC5, (q31_t)0x75B94A9C, - (q31_t)0x3211DF03, (q31_t)0x75CCFD42, (q31_t)0x31E39889, - (q31_t)0x75E09DBD, (q31_t)0x31B54A5D, (q31_t)0x75F42C0A, - (q31_t)0x3186F487, (q31_t)0x7607A827, (q31_t)0x3158970D, - (q31_t)0x761B1211, (q31_t)0x312A31F8, (q31_t)0x762E69C3, - (q31_t)0x30FBC54D, (q31_t)0x7641AF3C, (q31_t)0x30CD5114, - (q31_t)0x7654E279, (q31_t)0x309ED555, (q31_t)0x76680376, - (q31_t)0x30705217, (q31_t)0x767B1230, (q31_t)0x3041C760, - (q31_t)0x768E0EA5, (q31_t)0x30133538, (q31_t)0x76A0F8D2, - (q31_t)0x2FE49BA6, (q31_t)0x76B3D0B3, (q31_t)0x2FB5FAB2, - (q31_t)0x76C69646, (q31_t)0x2F875262, (q31_t)0x76D94988, - (q31_t)0x2F58A2BD, (q31_t)0x76EBEA77, (q31_t)0x2F29EBCC, - (q31_t)0x76FE790E, (q31_t)0x2EFB2D94, (q31_t)0x7710F54B, - (q31_t)0x2ECC681E, (q31_t)0x77235F2D, (q31_t)0x2E9D9B70, - (q31_t)0x7735B6AE, (q31_t)0x2E6EC792, (q31_t)0x7747FBCE, - (q31_t)0x2E3FEC8B, (q31_t)0x775A2E88, (q31_t)0x2E110A62, - (q31_t)0x776C4EDB, (q31_t)0x2DE2211E, (q31_t)0x777E5CC3, - (q31_t)0x2DB330C7, (q31_t)0x7790583D, (q31_t)0x2D843963, - (q31_t)0x77A24148, (q31_t)0x2D553AFB, (q31_t)0x77B417DF, - (q31_t)0x2D263595, (q31_t)0x77C5DC01, (q31_t)0x2CF72939, - (q31_t)0x77D78DAA, (q31_t)0x2CC815ED, (q31_t)0x77E92CD8, - (q31_t)0x2C98FBBA, (q31_t)0x77FAB988, (q31_t)0x2C69DAA6, - (q31_t)0x780C33B8, (q31_t)0x2C3AB2B9, (q31_t)0x781D9B64, - (q31_t)0x2C0B83F9, (q31_t)0x782EF08B, (q31_t)0x2BDC4E6F, - (q31_t)0x78403328, (q31_t)0x2BAD1221, (q31_t)0x7851633B, - (q31_t)0x2B7DCF17, (q31_t)0x786280BF, (q31_t)0x2B4E8558, - (q31_t)0x78738BB3, (q31_t)0x2B1F34EB, (q31_t)0x78848413, - (q31_t)0x2AEFDDD8, (q31_t)0x789569DE, (q31_t)0x2AC08025, - (q31_t)0x78A63D10, (q31_t)0x2A911BDB, (q31_t)0x78B6FDA8, - (q31_t)0x2A61B101, (q31_t)0x78C7ABA1, (q31_t)0x2A323F9D, - (q31_t)0x78D846FB, (q31_t)0x2A02C7B8, (q31_t)0x78E8CFB1, - (q31_t)0x29D34958, (q31_t)0x78F945C3, (q31_t)0x29A3C484, - (q31_t)0x7909A92C, (q31_t)0x29743945, (q31_t)0x7919F9EB, - (q31_t)0x2944A7A2, (q31_t)0x792A37FE, (q31_t)0x29150FA1, - (q31_t)0x793A6360, (q31_t)0x28E5714A, (q31_t)0x794A7C11, - (q31_t)0x28B5CCA5, (q31_t)0x795A820E, (q31_t)0x288621B9, - (q31_t)0x796A7554, (q31_t)0x2856708C, (q31_t)0x797A55E0, - (q31_t)0x2826B928, (q31_t)0x798A23B1, (q31_t)0x27F6FB92, - (q31_t)0x7999DEC3, (q31_t)0x27C737D2, (q31_t)0x79A98715, - (q31_t)0x27976DF1, (q31_t)0x79B91CA4, (q31_t)0x27679DF4, - (q31_t)0x79C89F6D, (q31_t)0x2737C7E3, (q31_t)0x79D80F6F, - (q31_t)0x2707EBC6, (q31_t)0x79E76CA6, (q31_t)0x26D809A5, - (q31_t)0x79F6B711, (q31_t)0x26A82185, (q31_t)0x7A05EEAD, - (q31_t)0x26783370, (q31_t)0x7A151377, (q31_t)0x26483F6C, - (q31_t)0x7A24256E, (q31_t)0x26184581, (q31_t)0x7A33248F, - (q31_t)0x25E845B5, (q31_t)0x7A4210D8, (q31_t)0x25B84012, - (q31_t)0x7A50EA46, (q31_t)0x2588349D, (q31_t)0x7A5FB0D8, - (q31_t)0x2558235E, (q31_t)0x7A6E648A, (q31_t)0x25280C5D, - (q31_t)0x7A7D055B, (q31_t)0x24F7EFA1, (q31_t)0x7A8B9348, - (q31_t)0x24C7CD32, (q31_t)0x7A9A0E4F, (q31_t)0x2497A517, - (q31_t)0x7AA8766E, (q31_t)0x24677757, (q31_t)0x7AB6CBA3, - (q31_t)0x243743FA, (q31_t)0x7AC50DEB, (q31_t)0x24070B07, - (q31_t)0x7AD33D45, (q31_t)0x23D6CC86, (q31_t)0x7AE159AE, - (q31_t)0x23A6887E, (q31_t)0x7AEF6323, (q31_t)0x23763EF7, - (q31_t)0x7AFD59A3, (q31_t)0x2345EFF7, (q31_t)0x7B0B3D2C, - (q31_t)0x23159B87, (q31_t)0x7B190DBB, (q31_t)0x22E541AE, - (q31_t)0x7B26CB4F, (q31_t)0x22B4E274, (q31_t)0x7B3475E4, - (q31_t)0x22847DDF, (q31_t)0x7B420D7A, (q31_t)0x225413F8, - (q31_t)0x7B4F920E, (q31_t)0x2223A4C5, (q31_t)0x7B5D039D, - (q31_t)0x21F3304E, (q31_t)0x7B6A6227, (q31_t)0x21C2B69C, - (q31_t)0x7B77ADA8, (q31_t)0x219237B4, (q31_t)0x7B84E61E, - (q31_t)0x2161B39F, (q31_t)0x7B920B89, (q31_t)0x21312A65, - (q31_t)0x7B9F1DE5, (q31_t)0x21009C0B, (q31_t)0x7BAC1D31, - (q31_t)0x20D0089B, (q31_t)0x7BB9096A, (q31_t)0x209F701C, - (q31_t)0x7BC5E28F, (q31_t)0x206ED295, (q31_t)0x7BD2A89E, - (q31_t)0x203E300D, (q31_t)0x7BDF5B94, (q31_t)0x200D888C, - (q31_t)0x7BEBFB70, (q31_t)0x1FDCDC1A, (q31_t)0x7BF88830, - (q31_t)0x1FAC2ABF, (q31_t)0x7C0501D1, (q31_t)0x1F7B7480, - (q31_t)0x7C116853, (q31_t)0x1F4AB967, (q31_t)0x7C1DBBB2, - (q31_t)0x1F19F97B, (q31_t)0x7C29FBEE, (q31_t)0x1EE934C2, - (q31_t)0x7C362904, (q31_t)0x1EB86B46, (q31_t)0x7C4242F2, - (q31_t)0x1E879D0C, (q31_t)0x7C4E49B6, (q31_t)0x1E56CA1E, - (q31_t)0x7C5A3D4F, (q31_t)0x1E25F281, (q31_t)0x7C661DBB, - (q31_t)0x1DF5163F, (q31_t)0x7C71EAF8, (q31_t)0x1DC4355D, - (q31_t)0x7C7DA504, (q31_t)0x1D934FE5, (q31_t)0x7C894BDD, - (q31_t)0x1D6265DD, (q31_t)0x7C94DF82, (q31_t)0x1D31774D, - (q31_t)0x7CA05FF1, (q31_t)0x1D00843C, (q31_t)0x7CABCD27, - (q31_t)0x1CCF8CB3, (q31_t)0x7CB72724, (q31_t)0x1C9E90B8, - (q31_t)0x7CC26DE5, (q31_t)0x1C6D9053, (q31_t)0x7CCDA168, - (q31_t)0x1C3C8B8C, (q31_t)0x7CD8C1AD, (q31_t)0x1C0B826A, - (q31_t)0x7CE3CEB1, (q31_t)0x1BDA74F5, (q31_t)0x7CEEC873, - (q31_t)0x1BA96334, (q31_t)0x7CF9AEF0, (q31_t)0x1B784D30, - (q31_t)0x7D048228, (q31_t)0x1B4732EF, (q31_t)0x7D0F4218, - (q31_t)0x1B161479, (q31_t)0x7D19EEBE, (q31_t)0x1AE4F1D6, - (q31_t)0x7D24881A, (q31_t)0x1AB3CB0C, (q31_t)0x7D2F0E2A, - (q31_t)0x1A82A025, (q31_t)0x7D3980EC, (q31_t)0x1A517127, - (q31_t)0x7D43E05E, (q31_t)0x1A203E1B, (q31_t)0x7D4E2C7E, - (q31_t)0x19EF0706, (q31_t)0x7D58654C, (q31_t)0x19BDCBF2, - (q31_t)0x7D628AC5, (q31_t)0x198C8CE6, (q31_t)0x7D6C9CE9, - (q31_t)0x195B49E9, (q31_t)0x7D769BB5, (q31_t)0x192A0303, - (q31_t)0x7D808727, (q31_t)0x18F8B83C, (q31_t)0x7D8A5F3F, - (q31_t)0x18C7699B, (q31_t)0x7D9423FB, (q31_t)0x18961727, - (q31_t)0x7D9DD55A, (q31_t)0x1864C0E9, (q31_t)0x7DA77359, - (q31_t)0x183366E8, (q31_t)0x7DB0FDF7, (q31_t)0x1802092C, - (q31_t)0x7DBA7534, (q31_t)0x17D0A7BB, (q31_t)0x7DC3D90D, - (q31_t)0x179F429F, (q31_t)0x7DCD2981, (q31_t)0x176DD9DE, - (q31_t)0x7DD6668E, (q31_t)0x173C6D80, (q31_t)0x7DDF9034, - (q31_t)0x170AFD8D, (q31_t)0x7DE8A670, (q31_t)0x16D98A0C, - (q31_t)0x7DF1A942, (q31_t)0x16A81305, (q31_t)0x7DFA98A7, - (q31_t)0x1676987F, (q31_t)0x7E03749F, (q31_t)0x16451A83, - (q31_t)0x7E0C3D29, (q31_t)0x16139917, (q31_t)0x7E14F242, - (q31_t)0x15E21444, (q31_t)0x7E1D93E9, (q31_t)0x15B08C11, - (q31_t)0x7E26221E, (q31_t)0x157F0086, (q31_t)0x7E2E9CDF, - (q31_t)0x154D71AA, (q31_t)0x7E37042A, (q31_t)0x151BDF85, - (q31_t)0x7E3F57FE, (q31_t)0x14EA4A1F, (q31_t)0x7E47985B, - (q31_t)0x14B8B17F, (q31_t)0x7E4FC53E, (q31_t)0x148715AD, - (q31_t)0x7E57DEA6, (q31_t)0x145576B1, (q31_t)0x7E5FE493, - (q31_t)0x1423D492, (q31_t)0x7E67D702, (q31_t)0x13F22F57, - (q31_t)0x7E6FB5F3, (q31_t)0x13C0870A, (q31_t)0x7E778165, - (q31_t)0x138EDBB0, (q31_t)0x7E7F3956, (q31_t)0x135D2D53, - (q31_t)0x7E86DDC5, (q31_t)0x132B7BF9, (q31_t)0x7E8E6EB1, - (q31_t)0x12F9C7AA, (q31_t)0x7E95EC19, (q31_t)0x12C8106E, - (q31_t)0x7E9D55FC, (q31_t)0x1296564D, (q31_t)0x7EA4AC58, - (q31_t)0x1264994E, (q31_t)0x7EABEF2C, (q31_t)0x1232D978, - (q31_t)0x7EB31E77, (q31_t)0x120116D4, (q31_t)0x7EBA3A39, - (q31_t)0x11CF516A, (q31_t)0x7EC1426F, (q31_t)0x119D8940, - (q31_t)0x7EC8371A, (q31_t)0x116BBE5F, (q31_t)0x7ECF1837, - (q31_t)0x1139F0CE, (q31_t)0x7ED5E5C6, (q31_t)0x11082096, - (q31_t)0x7EDC9FC6, (q31_t)0x10D64DBC, (q31_t)0x7EE34635, - (q31_t)0x10A4784A, (q31_t)0x7EE9D913, (q31_t)0x1072A047, - (q31_t)0x7EF0585F, (q31_t)0x1040C5BB, (q31_t)0x7EF6C418, - (q31_t)0x100EE8AD, (q31_t)0x7EFD1C3C, (q31_t)0x0FDD0925, - (q31_t)0x7F0360CB, (q31_t)0x0FAB272B, (q31_t)0x7F0991C3, - (q31_t)0x0F7942C6, (q31_t)0x7F0FAF24, (q31_t)0x0F475BFE, - (q31_t)0x7F15B8EE, (q31_t)0x0F1572DC, (q31_t)0x7F1BAF1E, - (q31_t)0x0EE38765, (q31_t)0x7F2191B4, (q31_t)0x0EB199A3, - (q31_t)0x7F2760AF, (q31_t)0x0E7FA99D, (q31_t)0x7F2D1C0E, - (q31_t)0x0E4DB75B, (q31_t)0x7F32C3D0, (q31_t)0x0E1BC2E3, - (q31_t)0x7F3857F5, (q31_t)0x0DE9CC3F, (q31_t)0x7F3DD87C, - (q31_t)0x0DB7D376, (q31_t)0x7F434563, (q31_t)0x0D85D88F, - (q31_t)0x7F489EAA, (q31_t)0x0D53DB92, (q31_t)0x7F4DE450, - (q31_t)0x0D21DC87, (q31_t)0x7F531654, (q31_t)0x0CEFDB75, - (q31_t)0x7F5834B6, (q31_t)0x0CBDD865, (q31_t)0x7F5D3F75, - (q31_t)0x0C8BD35E, (q31_t)0x7F62368F, (q31_t)0x0C59CC67, - (q31_t)0x7F671A04, (q31_t)0x0C27C389, (q31_t)0x7F6BE9D4, - (q31_t)0x0BF5B8CB, (q31_t)0x7F70A5FD, (q31_t)0x0BC3AC35, - (q31_t)0x7F754E7F, (q31_t)0x0B919DCE, (q31_t)0x7F79E35A, - (q31_t)0x0B5F8D9F, (q31_t)0x7F7E648B, (q31_t)0x0B2D7BAE, - (q31_t)0x7F82D214, (q31_t)0x0AFB6805, (q31_t)0x7F872BF3, - (q31_t)0x0AC952AA, (q31_t)0x7F8B7226, (q31_t)0x0A973BA5, - (q31_t)0x7F8FA4AF, (q31_t)0x0A6522FE, (q31_t)0x7F93C38C, - (q31_t)0x0A3308BC, (q31_t)0x7F97CEBC, (q31_t)0x0A00ECE8, - (q31_t)0x7F9BC63F, (q31_t)0x09CECF89, (q31_t)0x7F9FAA15, - (q31_t)0x099CB0A7, (q31_t)0x7FA37A3C, (q31_t)0x096A9049, - (q31_t)0x7FA736B4, (q31_t)0x09386E77, (q31_t)0x7FAADF7C, - (q31_t)0x09064B3A, (q31_t)0x7FAE7494, (q31_t)0x08D42698, - (q31_t)0x7FB1F5FC, (q31_t)0x08A2009A, (q31_t)0x7FB563B2, - (q31_t)0x086FD947, (q31_t)0x7FB8BDB7, (q31_t)0x083DB0A7, - (q31_t)0x7FBC040A, (q31_t)0x080B86C1, (q31_t)0x7FBF36A9, - (q31_t)0x07D95B9E, (q31_t)0x7FC25596, (q31_t)0x07A72F45, - (q31_t)0x7FC560CF, (q31_t)0x077501BE, (q31_t)0x7FC85853, - (q31_t)0x0742D310, (q31_t)0x7FCB3C23, (q31_t)0x0710A344, - (q31_t)0x7FCE0C3E, (q31_t)0x06DE7261, (q31_t)0x7FD0C8A3, - (q31_t)0x06AC406F, (q31_t)0x7FD37152, (q31_t)0x067A0D75, - (q31_t)0x7FD6064B, (q31_t)0x0647D97C, (q31_t)0x7FD8878D, - (q31_t)0x0615A48A, (q31_t)0x7FDAF518, (q31_t)0x05E36EA9, - (q31_t)0x7FDD4EEC, (q31_t)0x05B137DF, (q31_t)0x7FDF9508, - (q31_t)0x057F0034, (q31_t)0x7FE1C76B, (q31_t)0x054CC7B0, - (q31_t)0x7FE3E616, (q31_t)0x051A8E5C, (q31_t)0x7FE5F108, - (q31_t)0x04E8543D, (q31_t)0x7FE7E840, (q31_t)0x04B6195D, - (q31_t)0x7FE9CBC0, (q31_t)0x0483DDC3, (q31_t)0x7FEB9B85, - (q31_t)0x0451A176, (q31_t)0x7FED5790, (q31_t)0x041F647F, - (q31_t)0x7FEEFFE1, (q31_t)0x03ED26E6, (q31_t)0x7FF09477, - (q31_t)0x03BAE8B1, (q31_t)0x7FF21553, (q31_t)0x0388A9E9, - (q31_t)0x7FF38273, (q31_t)0x03566A96, (q31_t)0x7FF4DBD8, - (q31_t)0x03242ABF, (q31_t)0x7FF62182, (q31_t)0x02F1EA6B, - (q31_t)0x7FF7536F, (q31_t)0x02BFA9A4, (q31_t)0x7FF871A1, - (q31_t)0x028D6870, (q31_t)0x7FF97C17, (q31_t)0x025B26D7, - (q31_t)0x7FFA72D1, (q31_t)0x0228E4E1, (q31_t)0x7FFB55CE, - (q31_t)0x01F6A296, (q31_t)0x7FFC250F, (q31_t)0x01C45FFE, - (q31_t)0x7FFCE093, (q31_t)0x01921D1F, (q31_t)0x7FFD885A, - (q31_t)0x015FDA03, (q31_t)0x7FFE1C64, (q31_t)0x012D96B0, - (q31_t)0x7FFE9CB2, (q31_t)0x00FB532F, (q31_t)0x7FFF0942, - (q31_t)0x00C90F88, (q31_t)0x7FFF6216, (q31_t)0x0096CBC1, - (q31_t)0x7FFFA72C, (q31_t)0x006487E3, (q31_t)0x7FFFD885, - (q31_t)0x003243F5, (q31_t)0x7FFFF621, (q31_t)0x00000000, - (q31_t)0x7FFFFFFF, (q31_t)0xFFCDBC0A, (q31_t)0x7FFFF621, - (q31_t)0xFF9B781D, (q31_t)0x7FFFD885, (q31_t)0xFF69343E, - (q31_t)0x7FFFA72C, (q31_t)0xFF36F078, (q31_t)0x7FFF6216, - (q31_t)0xFF04ACD0, (q31_t)0x7FFF0942, (q31_t)0xFED2694F, - (q31_t)0x7FFE9CB2, (q31_t)0xFEA025FC, (q31_t)0x7FFE1C64, - (q31_t)0xFE6DE2E0, (q31_t)0x7FFD885A, (q31_t)0xFE3BA001, - (q31_t)0x7FFCE093, (q31_t)0xFE095D69, (q31_t)0x7FFC250F, - (q31_t)0xFDD71B1E, (q31_t)0x7FFB55CE, (q31_t)0xFDA4D928, - (q31_t)0x7FFA72D1, (q31_t)0xFD72978F, (q31_t)0x7FF97C17, - (q31_t)0xFD40565B, (q31_t)0x7FF871A1, (q31_t)0xFD0E1594, - (q31_t)0x7FF7536F, (q31_t)0xFCDBD541, (q31_t)0x7FF62182, - (q31_t)0xFCA99569, (q31_t)0x7FF4DBD8, (q31_t)0xFC775616, - (q31_t)0x7FF38273, (q31_t)0xFC45174E, (q31_t)0x7FF21553, - (q31_t)0xFC12D919, (q31_t)0x7FF09477, (q31_t)0xFBE09B80, - (q31_t)0x7FEEFFE1, (q31_t)0xFBAE5E89, (q31_t)0x7FED5790, - (q31_t)0xFB7C223C, (q31_t)0x7FEB9B85, (q31_t)0xFB49E6A2, - (q31_t)0x7FE9CBC0, (q31_t)0xFB17ABC2, (q31_t)0x7FE7E840, - (q31_t)0xFAE571A4, (q31_t)0x7FE5F108, (q31_t)0xFAB3384F, - (q31_t)0x7FE3E616, (q31_t)0xFA80FFCB, (q31_t)0x7FE1C76B, - (q31_t)0xFA4EC820, (q31_t)0x7FDF9508, (q31_t)0xFA1C9156, - (q31_t)0x7FDD4EEC, (q31_t)0xF9EA5B75, (q31_t)0x7FDAF518, - (q31_t)0xF9B82683, (q31_t)0x7FD8878D, (q31_t)0xF985F28A, - (q31_t)0x7FD6064B, (q31_t)0xF953BF90, (q31_t)0x7FD37152, - (q31_t)0xF9218D9E, (q31_t)0x7FD0C8A3, (q31_t)0xF8EF5CBB, - (q31_t)0x7FCE0C3E, (q31_t)0xF8BD2CEF, (q31_t)0x7FCB3C23, - (q31_t)0xF88AFE41, (q31_t)0x7FC85853, (q31_t)0xF858D0BA, - (q31_t)0x7FC560CF, (q31_t)0xF826A461, (q31_t)0x7FC25596, - (q31_t)0xF7F4793E, (q31_t)0x7FBF36A9, (q31_t)0xF7C24F58, - (q31_t)0x7FBC040A, (q31_t)0xF79026B8, (q31_t)0x7FB8BDB7, - (q31_t)0xF75DFF65, (q31_t)0x7FB563B2, (q31_t)0xF72BD967, - (q31_t)0x7FB1F5FC, (q31_t)0xF6F9B4C5, (q31_t)0x7FAE7494, - (q31_t)0xF6C79188, (q31_t)0x7FAADF7C, (q31_t)0xF6956FB6, - (q31_t)0x7FA736B4, (q31_t)0xF6634F58, (q31_t)0x7FA37A3C, - (q31_t)0xF6313076, (q31_t)0x7F9FAA15, (q31_t)0xF5FF1317, - (q31_t)0x7F9BC63F, (q31_t)0xF5CCF743, (q31_t)0x7F97CEBC, - (q31_t)0xF59ADD01, (q31_t)0x7F93C38C, (q31_t)0xF568C45A, - (q31_t)0x7F8FA4AF, (q31_t)0xF536AD55, (q31_t)0x7F8B7226, - (q31_t)0xF50497FA, (q31_t)0x7F872BF3, (q31_t)0xF4D28451, - (q31_t)0x7F82D214, (q31_t)0xF4A07260, (q31_t)0x7F7E648B, - (q31_t)0xF46E6231, (q31_t)0x7F79E35A, (q31_t)0xF43C53CA, - (q31_t)0x7F754E7F, (q31_t)0xF40A4734, (q31_t)0x7F70A5FD, - (q31_t)0xF3D83C76, (q31_t)0x7F6BE9D4, (q31_t)0xF3A63398, - (q31_t)0x7F671A04, (q31_t)0xF3742CA1, (q31_t)0x7F62368F, - (q31_t)0xF342279A, (q31_t)0x7F5D3F75, (q31_t)0xF310248A, - (q31_t)0x7F5834B6, (q31_t)0xF2DE2378, (q31_t)0x7F531654, - (q31_t)0xF2AC246D, (q31_t)0x7F4DE450, (q31_t)0xF27A2770, - (q31_t)0x7F489EAA, (q31_t)0xF2482C89, (q31_t)0x7F434563, - (q31_t)0xF21633C0, (q31_t)0x7F3DD87C, (q31_t)0xF1E43D1C, - (q31_t)0x7F3857F5, (q31_t)0xF1B248A5, (q31_t)0x7F32C3D0, - (q31_t)0xF1805662, (q31_t)0x7F2D1C0E, (q31_t)0xF14E665C, - (q31_t)0x7F2760AF, (q31_t)0xF11C789A, (q31_t)0x7F2191B4, - (q31_t)0xF0EA8D23, (q31_t)0x7F1BAF1E, (q31_t)0xF0B8A401, - (q31_t)0x7F15B8EE, (q31_t)0xF086BD39, (q31_t)0x7F0FAF24, - (q31_t)0xF054D8D4, (q31_t)0x7F0991C3, (q31_t)0xF022F6DA, - (q31_t)0x7F0360CB, (q31_t)0xEFF11752, (q31_t)0x7EFD1C3C, - (q31_t)0xEFBF3A44, (q31_t)0x7EF6C418, (q31_t)0xEF8D5FB8, - (q31_t)0x7EF0585F, (q31_t)0xEF5B87B5, (q31_t)0x7EE9D913, - (q31_t)0xEF29B243, (q31_t)0x7EE34635, (q31_t)0xEEF7DF6A, - (q31_t)0x7EDC9FC6, (q31_t)0xEEC60F31, (q31_t)0x7ED5E5C6, - (q31_t)0xEE9441A0, (q31_t)0x7ECF1837, (q31_t)0xEE6276BF, - (q31_t)0x7EC8371A, (q31_t)0xEE30AE95, (q31_t)0x7EC1426F, - (q31_t)0xEDFEE92B, (q31_t)0x7EBA3A39, (q31_t)0xEDCD2687, - (q31_t)0x7EB31E77, (q31_t)0xED9B66B2, (q31_t)0x7EABEF2C, - (q31_t)0xED69A9B2, (q31_t)0x7EA4AC58, (q31_t)0xED37EF91, - (q31_t)0x7E9D55FC, (q31_t)0xED063855, (q31_t)0x7E95EC19, - (q31_t)0xECD48406, (q31_t)0x7E8E6EB1, (q31_t)0xECA2D2AC, - (q31_t)0x7E86DDC5, (q31_t)0xEC71244F, (q31_t)0x7E7F3956, - (q31_t)0xEC3F78F5, (q31_t)0x7E778165, (q31_t)0xEC0DD0A8, - (q31_t)0x7E6FB5F3, (q31_t)0xEBDC2B6D, (q31_t)0x7E67D702, - (q31_t)0xEBAA894E, (q31_t)0x7E5FE493, (q31_t)0xEB78EA52, - (q31_t)0x7E57DEA6, (q31_t)0xEB474E80, (q31_t)0x7E4FC53E, - (q31_t)0xEB15B5E0, (q31_t)0x7E47985B, (q31_t)0xEAE4207A, - (q31_t)0x7E3F57FE, (q31_t)0xEAB28E55, (q31_t)0x7E37042A, - (q31_t)0xEA80FF79, (q31_t)0x7E2E9CDF, (q31_t)0xEA4F73EE, - (q31_t)0x7E26221E, (q31_t)0xEA1DEBBB, (q31_t)0x7E1D93E9, - (q31_t)0xE9EC66E8, (q31_t)0x7E14F242, (q31_t)0xE9BAE57C, - (q31_t)0x7E0C3D29, (q31_t)0xE9896780, (q31_t)0x7E03749F, - (q31_t)0xE957ECFB, (q31_t)0x7DFA98A7, (q31_t)0xE92675F4, - (q31_t)0x7DF1A942, (q31_t)0xE8F50273, (q31_t)0x7DE8A670, - (q31_t)0xE8C3927F, (q31_t)0x7DDF9034, (q31_t)0xE8922621, - (q31_t)0x7DD6668E, (q31_t)0xE860BD60, (q31_t)0x7DCD2981, - (q31_t)0xE82F5844, (q31_t)0x7DC3D90D, (q31_t)0xE7FDF6D3, - (q31_t)0x7DBA7534, (q31_t)0xE7CC9917, (q31_t)0x7DB0FDF7, - (q31_t)0xE79B3F16, (q31_t)0x7DA77359, (q31_t)0xE769E8D8, - (q31_t)0x7D9DD55A, (q31_t)0xE7389664, (q31_t)0x7D9423FB, - (q31_t)0xE70747C3, (q31_t)0x7D8A5F3F, (q31_t)0xE6D5FCFC, - (q31_t)0x7D808727, (q31_t)0xE6A4B616, (q31_t)0x7D769BB5, - (q31_t)0xE6737319, (q31_t)0x7D6C9CE9, (q31_t)0xE642340D, - (q31_t)0x7D628AC5, (q31_t)0xE610F8F9, (q31_t)0x7D58654C, - (q31_t)0xE5DFC1E4, (q31_t)0x7D4E2C7E, (q31_t)0xE5AE8ED8, - (q31_t)0x7D43E05E, (q31_t)0xE57D5FDA, (q31_t)0x7D3980EC, - (q31_t)0xE54C34F3, (q31_t)0x7D2F0E2A, (q31_t)0xE51B0E2A, - (q31_t)0x7D24881A, (q31_t)0xE4E9EB86, (q31_t)0x7D19EEBE, - (q31_t)0xE4B8CD10, (q31_t)0x7D0F4218, (q31_t)0xE487B2CF, - (q31_t)0x7D048228, (q31_t)0xE4569CCB, (q31_t)0x7CF9AEF0, - (q31_t)0xE4258B0A, (q31_t)0x7CEEC873, (q31_t)0xE3F47D95, - (q31_t)0x7CE3CEB1, (q31_t)0xE3C37473, (q31_t)0x7CD8C1AD, - (q31_t)0xE3926FAC, (q31_t)0x7CCDA168, (q31_t)0xE3616F47, - (q31_t)0x7CC26DE5, (q31_t)0xE330734C, (q31_t)0x7CB72724, - (q31_t)0xE2FF7BC3, (q31_t)0x7CABCD27, (q31_t)0xE2CE88B2, - (q31_t)0x7CA05FF1, (q31_t)0xE29D9A22, (q31_t)0x7C94DF82, - (q31_t)0xE26CB01A, (q31_t)0x7C894BDD, (q31_t)0xE23BCAA2, - (q31_t)0x7C7DA504, (q31_t)0xE20AE9C1, (q31_t)0x7C71EAF8, - (q31_t)0xE1DA0D7E, (q31_t)0x7C661DBB, (q31_t)0xE1A935E1, - (q31_t)0x7C5A3D4F, (q31_t)0xE17862F3, (q31_t)0x7C4E49B6, - (q31_t)0xE14794B9, (q31_t)0x7C4242F2, (q31_t)0xE116CB3D, - (q31_t)0x7C362904, (q31_t)0xE0E60684, (q31_t)0x7C29FBEE, - (q31_t)0xE0B54698, (q31_t)0x7C1DBBB2, (q31_t)0xE0848B7F, - (q31_t)0x7C116853, (q31_t)0xE053D541, (q31_t)0x7C0501D1, - (q31_t)0xE02323E5, (q31_t)0x7BF88830, (q31_t)0xDFF27773, - (q31_t)0x7BEBFB70, (q31_t)0xDFC1CFF2, (q31_t)0x7BDF5B94, - (q31_t)0xDF912D6A, (q31_t)0x7BD2A89E, (q31_t)0xDF608FE3, - (q31_t)0x7BC5E28F, (q31_t)0xDF2FF764, (q31_t)0x7BB9096A, - (q31_t)0xDEFF63F4, (q31_t)0x7BAC1D31, (q31_t)0xDECED59B, - (q31_t)0x7B9F1DE5, (q31_t)0xDE9E4C60, (q31_t)0x7B920B89, - (q31_t)0xDE6DC84B, (q31_t)0x7B84E61E, (q31_t)0xDE3D4963, - (q31_t)0x7B77ADA8, (q31_t)0xDE0CCFB1, (q31_t)0x7B6A6227, - (q31_t)0xDDDC5B3A, (q31_t)0x7B5D039D, (q31_t)0xDDABEC07, - (q31_t)0x7B4F920E, (q31_t)0xDD7B8220, (q31_t)0x7B420D7A, - (q31_t)0xDD4B1D8B, (q31_t)0x7B3475E4, (q31_t)0xDD1ABE51, - (q31_t)0x7B26CB4F, (q31_t)0xDCEA6478, (q31_t)0x7B190DBB, - (q31_t)0xDCBA1008, (q31_t)0x7B0B3D2C, (q31_t)0xDC89C108, - (q31_t)0x7AFD59A3, (q31_t)0xDC597781, (q31_t)0x7AEF6323, - (q31_t)0xDC293379, (q31_t)0x7AE159AE, (q31_t)0xDBF8F4F8, - (q31_t)0x7AD33D45, (q31_t)0xDBC8BC05, (q31_t)0x7AC50DEB, - (q31_t)0xDB9888A8, (q31_t)0x7AB6CBA3, (q31_t)0xDB685AE8, - (q31_t)0x7AA8766E, (q31_t)0xDB3832CD, (q31_t)0x7A9A0E4F, - (q31_t)0xDB08105E, (q31_t)0x7A8B9348, (q31_t)0xDAD7F3A2, - (q31_t)0x7A7D055B, (q31_t)0xDAA7DCA1, (q31_t)0x7A6E648A, - (q31_t)0xDA77CB62, (q31_t)0x7A5FB0D8, (q31_t)0xDA47BFED, - (q31_t)0x7A50EA46, (q31_t)0xDA17BA4A, (q31_t)0x7A4210D8, - (q31_t)0xD9E7BA7E, (q31_t)0x7A33248F, (q31_t)0xD9B7C093, - (q31_t)0x7A24256E, (q31_t)0xD987CC8F, (q31_t)0x7A151377, - (q31_t)0xD957DE7A, (q31_t)0x7A05EEAD, (q31_t)0xD927F65B, - (q31_t)0x79F6B711, (q31_t)0xD8F81439, (q31_t)0x79E76CA6, - (q31_t)0xD8C8381C, (q31_t)0x79D80F6F, (q31_t)0xD898620C, - (q31_t)0x79C89F6D, (q31_t)0xD868920F, (q31_t)0x79B91CA4, - (q31_t)0xD838C82D, (q31_t)0x79A98715, (q31_t)0xD809046D, - (q31_t)0x7999DEC3, (q31_t)0xD7D946D7, (q31_t)0x798A23B1, - (q31_t)0xD7A98F73, (q31_t)0x797A55E0, (q31_t)0xD779DE46, - (q31_t)0x796A7554, (q31_t)0xD74A335A, (q31_t)0x795A820E, - (q31_t)0xD71A8EB5, (q31_t)0x794A7C11, (q31_t)0xD6EAF05E, - (q31_t)0x793A6360, (q31_t)0xD6BB585D, (q31_t)0x792A37FE, - (q31_t)0xD68BC6BA, (q31_t)0x7919F9EB, (q31_t)0xD65C3B7B, - (q31_t)0x7909A92C, (q31_t)0xD62CB6A7, (q31_t)0x78F945C3, - (q31_t)0xD5FD3847, (q31_t)0x78E8CFB1, (q31_t)0xD5CDC062, - (q31_t)0x78D846FB, (q31_t)0xD59E4EFE, (q31_t)0x78C7ABA1, - (q31_t)0xD56EE424, (q31_t)0x78B6FDA8, (q31_t)0xD53F7FDA, - (q31_t)0x78A63D10, (q31_t)0xD5102227, (q31_t)0x789569DE, - (q31_t)0xD4E0CB14, (q31_t)0x78848413, (q31_t)0xD4B17AA7, - (q31_t)0x78738BB3, (q31_t)0xD48230E8, (q31_t)0x786280BF, - (q31_t)0xD452EDDE, (q31_t)0x7851633B, (q31_t)0xD423B190, - (q31_t)0x78403328, (q31_t)0xD3F47C06, (q31_t)0x782EF08B, - (q31_t)0xD3C54D46, (q31_t)0x781D9B64, (q31_t)0xD3962559, - (q31_t)0x780C33B8, (q31_t)0xD3670445, (q31_t)0x77FAB988, - (q31_t)0xD337EA12, (q31_t)0x77E92CD8, (q31_t)0xD308D6C6, - (q31_t)0x77D78DAA, (q31_t)0xD2D9CA6A, (q31_t)0x77C5DC01, - (q31_t)0xD2AAC504, (q31_t)0x77B417DF, (q31_t)0xD27BC69C, - (q31_t)0x77A24148, (q31_t)0xD24CCF38, (q31_t)0x7790583D, - (q31_t)0xD21DDEE1, (q31_t)0x777E5CC3, (q31_t)0xD1EEF59E, - (q31_t)0x776C4EDB, (q31_t)0xD1C01374, (q31_t)0x775A2E88, - (q31_t)0xD191386D, (q31_t)0x7747FBCE, (q31_t)0xD162648F, - (q31_t)0x7735B6AE, (q31_t)0xD13397E1, (q31_t)0x77235F2D, - (q31_t)0xD104D26B, (q31_t)0x7710F54B, (q31_t)0xD0D61433, - (q31_t)0x76FE790E, (q31_t)0xD0A75D42, (q31_t)0x76EBEA77, - (q31_t)0xD078AD9D, (q31_t)0x76D94988, (q31_t)0xD04A054D, - (q31_t)0x76C69646, (q31_t)0xD01B6459, (q31_t)0x76B3D0B3, - (q31_t)0xCFECCAC7, (q31_t)0x76A0F8D2, (q31_t)0xCFBE389F, - (q31_t)0x768E0EA5, (q31_t)0xCF8FADE8, (q31_t)0x767B1230, - (q31_t)0xCF612AAA, (q31_t)0x76680376, (q31_t)0xCF32AEEB, - (q31_t)0x7654E279, (q31_t)0xCF043AB2, (q31_t)0x7641AF3C, - (q31_t)0xCED5CE08, (q31_t)0x762E69C3, (q31_t)0xCEA768F2, - (q31_t)0x761B1211, (q31_t)0xCE790B78, (q31_t)0x7607A827, - (q31_t)0xCE4AB5A2, (q31_t)0x75F42C0A, (q31_t)0xCE1C6776, - (q31_t)0x75E09DBD, (q31_t)0xCDEE20FC, (q31_t)0x75CCFD42, - (q31_t)0xCDBFE23A, (q31_t)0x75B94A9C, (q31_t)0xCD91AB38, - (q31_t)0x75A585CF, (q31_t)0xCD637BFD, (q31_t)0x7591AEDD, - (q31_t)0xCD355490, (q31_t)0x757DC5CA, (q31_t)0xCD0734F8, - (q31_t)0x7569CA98, (q31_t)0xCCD91D3D, (q31_t)0x7555BD4B, - (q31_t)0xCCAB0D65, (q31_t)0x75419DE6, (q31_t)0xCC7D0577, - (q31_t)0x752D6C6C, (q31_t)0xCC4F057B, (q31_t)0x751928E0, - (q31_t)0xCC210D78, (q31_t)0x7504D345, (q31_t)0xCBF31D75, - (q31_t)0x74F06B9E, (q31_t)0xCBC53578, (q31_t)0x74DBF1EF, - (q31_t)0xCB975589, (q31_t)0x74C7663A, (q31_t)0xCB697DB0, - (q31_t)0x74B2C883, (q31_t)0xCB3BADF2, (q31_t)0x749E18CD, - (q31_t)0xCB0DE658, (q31_t)0x7489571B, (q31_t)0xCAE026E8, - (q31_t)0x74748371, (q31_t)0xCAB26FA9, (q31_t)0x745F9DD1, - (q31_t)0xCA84C0A2, (q31_t)0x744AA63E, (q31_t)0xCA5719DB, - (q31_t)0x74359CBD, (q31_t)0xCA297B5A, (q31_t)0x74208150, - (q31_t)0xC9FBE527, (q31_t)0x740B53FA, (q31_t)0xC9CE5748, - (q31_t)0x73F614C0, (q31_t)0xC9A0D1C4, (q31_t)0x73E0C3A3, - (q31_t)0xC97354A3, (q31_t)0x73CB60A7, (q31_t)0xC945DFEC, - (q31_t)0x73B5EBD0, (q31_t)0xC91873A5, (q31_t)0x73A06522, - (q31_t)0xC8EB0FD6, (q31_t)0x738ACC9E, (q31_t)0xC8BDB485, - (q31_t)0x73752249, (q31_t)0xC89061BA, (q31_t)0x735F6626, - (q31_t)0xC863177B, (q31_t)0x73499838, (q31_t)0xC835D5D0, - (q31_t)0x7333B883, (q31_t)0xC8089CBF, (q31_t)0x731DC709, - (q31_t)0xC7DB6C50, (q31_t)0x7307C3D0, (q31_t)0xC7AE4489, - (q31_t)0x72F1AED8, (q31_t)0xC7812571, (q31_t)0x72DB8828, - (q31_t)0xC7540F10, (q31_t)0x72C54FC0, (q31_t)0xC727016C, - (q31_t)0x72AF05A6, (q31_t)0xC6F9FC8D, (q31_t)0x7298A9DC, - (q31_t)0xC6CD0079, (q31_t)0x72823C66, (q31_t)0xC6A00D36, - (q31_t)0x726BBD48, (q31_t)0xC67322CD, (q31_t)0x72552C84, - (q31_t)0xC6464144, (q31_t)0x723E8A1F, (q31_t)0xC61968A2, - (q31_t)0x7227D61C, (q31_t)0xC5EC98ED, (q31_t)0x7211107D, - (q31_t)0xC5BFD22E, (q31_t)0x71FA3948, (q31_t)0xC593146A, - (q31_t)0x71E3507F, (q31_t)0xC5665FA8, (q31_t)0x71CC5626, - (q31_t)0xC539B3F0, (q31_t)0x71B54A40, (q31_t)0xC50D1148, - (q31_t)0x719E2CD2, (q31_t)0xC4E077B8, (q31_t)0x7186FDDE, - (q31_t)0xC4B3E746, (q31_t)0x716FBD68, (q31_t)0xC4875FF8, - (q31_t)0x71586B73, (q31_t)0xC45AE1D7, (q31_t)0x71410804, - (q31_t)0xC42E6CE8, (q31_t)0x7129931E, (q31_t)0xC4020132, - (q31_t)0x71120CC5, (q31_t)0xC3D59EBD, (q31_t)0x70FA74FB, - (q31_t)0xC3A9458F, (q31_t)0x70E2CBC6, (q31_t)0xC37CF5B0, - (q31_t)0x70CB1127, (q31_t)0xC350AF25, (q31_t)0x70B34524, - (q31_t)0xC32471F6, (q31_t)0x709B67C0, (q31_t)0xC2F83E2A, - (q31_t)0x708378FE, (q31_t)0xC2CC13C7, (q31_t)0x706B78E3, - (q31_t)0xC29FF2D4, (q31_t)0x70536771, (q31_t)0xC273DB58, - (q31_t)0x703B44AC, (q31_t)0xC247CD5A, (q31_t)0x70231099, - (q31_t)0xC21BC8E0, (q31_t)0x700ACB3B, (q31_t)0xC1EFCDF2, - (q31_t)0x6FF27496, (q31_t)0xC1C3DC96, (q31_t)0x6FDA0CAD, - (q31_t)0xC197F4D3, (q31_t)0x6FC19385, (q31_t)0xC16C16B0, - (q31_t)0x6FA90920, (q31_t)0xC1404233, (q31_t)0x6F906D84, - (q31_t)0xC1147763, (q31_t)0x6F77C0B3, (q31_t)0xC0E8B648, - (q31_t)0x6F5F02B1, (q31_t)0xC0BCFEE7, (q31_t)0x6F463383, - (q31_t)0xC0915147, (q31_t)0x6F2D532C, (q31_t)0xC065AD70, - (q31_t)0x6F1461AF, (q31_t)0xC03A1368, (q31_t)0x6EFB5F12, - (q31_t)0xC00E8335, (q31_t)0x6EE24B57, (q31_t)0xBFE2FCDF, - (q31_t)0x6EC92682, (q31_t)0xBFB7806C, (q31_t)0x6EAFF098, - (q31_t)0xBF8C0DE2, (q31_t)0x6E96A99C, (q31_t)0xBF60A54A, - (q31_t)0x6E7D5193, (q31_t)0xBF3546A8, (q31_t)0x6E63E87F, - (q31_t)0xBF09F204, (q31_t)0x6E4A6E65, (q31_t)0xBEDEA765, - (q31_t)0x6E30E349, (q31_t)0xBEB366D1, (q31_t)0x6E17472F, - (q31_t)0xBE88304F, (q31_t)0x6DFD9A1B, (q31_t)0xBE5D03E5, - (q31_t)0x6DE3DC11, (q31_t)0xBE31E19B, (q31_t)0x6DCA0D14, - (q31_t)0xBE06C977, (q31_t)0x6DB02D29, (q31_t)0xBDDBBB7F, - (q31_t)0x6D963C54, (q31_t)0xBDB0B7BA, (q31_t)0x6D7C3A98, - (q31_t)0xBD85BE2F, (q31_t)0x6D6227FA, (q31_t)0xBD5ACEE5, - (q31_t)0x6D48047E, (q31_t)0xBD2FE9E1, (q31_t)0x6D2DD027, - (q31_t)0xBD050F2C, (q31_t)0x6D138AFA, (q31_t)0xBCDA3ECA, - (q31_t)0x6CF934FB, (q31_t)0xBCAF78C3, (q31_t)0x6CDECE2E, - (q31_t)0xBC84BD1E, (q31_t)0x6CC45697, (q31_t)0xBC5A0BE1, - (q31_t)0x6CA9CE3A, (q31_t)0xBC2F6513, (q31_t)0x6C8F351C, - (q31_t)0xBC04C8BA, (q31_t)0x6C748B3F, (q31_t)0xBBDA36DC, - (q31_t)0x6C59D0A9, (q31_t)0xBBAFAF81, (q31_t)0x6C3F055D, - (q31_t)0xBB8532AF, (q31_t)0x6C242960, (q31_t)0xBB5AC06C, - (q31_t)0x6C093CB6, (q31_t)0xBB3058C0, (q31_t)0x6BEE3F62, - (q31_t)0xBB05FBB0, (q31_t)0x6BD3316A, (q31_t)0xBADBA943, - (q31_t)0x6BB812D0, (q31_t)0xBAB1617F, (q31_t)0x6B9CE39B, - (q31_t)0xBA87246C, (q31_t)0x6B81A3CD, (q31_t)0xBA5CF210, - (q31_t)0x6B66536A, (q31_t)0xBA32CA70, (q31_t)0x6B4AF278, - (q31_t)0xBA08AD94, (q31_t)0x6B2F80FA, (q31_t)0xB9DE9B83, - (q31_t)0x6B13FEF5, (q31_t)0xB9B49442, (q31_t)0x6AF86C6C, - (q31_t)0xB98A97D8, (q31_t)0x6ADCC964, (q31_t)0xB960A64B, - (q31_t)0x6AC115E1, (q31_t)0xB936BFA3, (q31_t)0x6AA551E8, - (q31_t)0xB90CE3E6, (q31_t)0x6A897D7D, (q31_t)0xB8E31319, - (q31_t)0x6A6D98A4, (q31_t)0xB8B94D44, (q31_t)0x6A51A361, - (q31_t)0xB88F926C, (q31_t)0x6A359DB9, (q31_t)0xB865E299, - (q31_t)0x6A1987B0, (q31_t)0xB83C3DD1, (q31_t)0x69FD614A, - (q31_t)0xB812A419, (q31_t)0x69E12A8C, (q31_t)0xB7E9157A, - (q31_t)0x69C4E37A, (q31_t)0xB7BF91F8, (q31_t)0x69A88C18, - (q31_t)0xB796199B, (q31_t)0x698C246C, (q31_t)0xB76CAC68, - (q31_t)0x696FAC78, (q31_t)0xB7434A67, (q31_t)0x69532442, - (q31_t)0xB719F39D, (q31_t)0x69368BCE, (q31_t)0xB6F0A811, - (q31_t)0x6919E320, (q31_t)0xB6C767CA, (q31_t)0x68FD2A3D, - (q31_t)0xB69E32CD, (q31_t)0x68E06129, (q31_t)0xB6750921, - (q31_t)0x68C387E9, (q31_t)0xB64BEACC, (q31_t)0x68A69E81, - (q31_t)0xB622D7D5, (q31_t)0x6889A4F5, (q31_t)0xB5F9D042, - (q31_t)0x686C9B4B, (q31_t)0xB5D0D41A, (q31_t)0x684F8186, - (q31_t)0xB5A7E362, (q31_t)0x683257AA, (q31_t)0xB57EFE21, - (q31_t)0x68151DBE, (q31_t)0xB556245E, (q31_t)0x67F7D3C4, - (q31_t)0xB52D561E, (q31_t)0x67DA79C2, (q31_t)0xB5049368, - (q31_t)0x67BD0FBC, (q31_t)0xB4DBDC42, (q31_t)0x679F95B7, - (q31_t)0xB4B330B2, (q31_t)0x67820BB6, (q31_t)0xB48A90C0, - (q31_t)0x676471C0, (q31_t)0xB461FC70, (q31_t)0x6746C7D7, - (q31_t)0xB43973C9, (q31_t)0x67290E02, (q31_t)0xB410F6D2, - (q31_t)0x670B4443, (q31_t)0xB3E88591, (q31_t)0x66ED6AA1, - (q31_t)0xB3C0200C, (q31_t)0x66CF811F, (q31_t)0xB397C649, - (q31_t)0x66B187C3, (q31_t)0xB36F784E, (q31_t)0x66937E90, - (q31_t)0xB3473622, (q31_t)0x6675658C, (q31_t)0xB31EFFCB, - (q31_t)0x66573CBB, (q31_t)0xB2F6D54F, (q31_t)0x66390422, - (q31_t)0xB2CEB6B5, (q31_t)0x661ABBC5, (q31_t)0xB2A6A401, - (q31_t)0x65FC63A9, (q31_t)0xB27E9D3B, (q31_t)0x65DDFBD3, - (q31_t)0xB256A26A, (q31_t)0x65BF8447, (q31_t)0xB22EB392, - (q31_t)0x65A0FD0B, (q31_t)0xB206D0BA, (q31_t)0x65826622, - (q31_t)0xB1DEF9E8, (q31_t)0x6563BF92, (q31_t)0xB1B72F23, - (q31_t)0x6545095F, (q31_t)0xB18F7070, (q31_t)0x6526438E, - (q31_t)0xB167BDD6, (q31_t)0x65076E24, (q31_t)0xB140175B, - (q31_t)0x64E88926, (q31_t)0xB1187D05, (q31_t)0x64C99498, - (q31_t)0xB0F0EEDA, (q31_t)0x64AA907F, (q31_t)0xB0C96CDF, - (q31_t)0x648B7CDF, (q31_t)0xB0A1F71C, (q31_t)0x646C59BF, - (q31_t)0xB07A8D97, (q31_t)0x644D2722, (q31_t)0xB0533055, - (q31_t)0x642DE50D, (q31_t)0xB02BDF5C, (q31_t)0x640E9385, - (q31_t)0xB0049AB2, (q31_t)0x63EF328F, (q31_t)0xAFDD625F, - (q31_t)0x63CFC230, (q31_t)0xAFB63667, (q31_t)0x63B0426D, - (q31_t)0xAF8F16D0, (q31_t)0x6390B34A, (q31_t)0xAF6803A1, - (q31_t)0x637114CC, (q31_t)0xAF40FCE0, (q31_t)0x635166F8, - (q31_t)0xAF1A0293, (q31_t)0x6331A9D4, (q31_t)0xAEF314BF, - (q31_t)0x6311DD63, (q31_t)0xAECC336B, (q31_t)0x62F201AC, - (q31_t)0xAEA55E9D, (q31_t)0x62D216B2, (q31_t)0xAE7E965B, - (q31_t)0x62B21C7B, (q31_t)0xAE57DAAA, (q31_t)0x6292130C, - (q31_t)0xAE312B91, (q31_t)0x6271FA69, (q31_t)0xAE0A8916, - (q31_t)0x6251D297, (q31_t)0xADE3F33E, (q31_t)0x62319B9D, - (q31_t)0xADBD6A10, (q31_t)0x6211557D, (q31_t)0xAD96ED91, - (q31_t)0x61F1003E, (q31_t)0xAD707DC8, (q31_t)0x61D09BE5, - (q31_t)0xAD4A1ABA, (q31_t)0x61B02876, (q31_t)0xAD23C46D, - (q31_t)0x618FA5F6, (q31_t)0xACFD7AE8, (q31_t)0x616F146B, - (q31_t)0xACD73E30, (q31_t)0x614E73D9, (q31_t)0xACB10E4A, - (q31_t)0x612DC446, (q31_t)0xAC8AEB3E, (q31_t)0x610D05B7, - (q31_t)0xAC64D510, (q31_t)0x60EC3830, (q31_t)0xAC3ECBC7, - (q31_t)0x60CB5BB6, (q31_t)0xAC18CF68, (q31_t)0x60AA704F, - (q31_t)0xABF2DFFA, (q31_t)0x60897600, (q31_t)0xABCCFD82, - (q31_t)0x60686CCE, (q31_t)0xABA72806, (q31_t)0x604754BE, - (q31_t)0xAB815F8C, (q31_t)0x60262DD5, (q31_t)0xAB5BA41A, - (q31_t)0x6004F818, (q31_t)0xAB35F5B5, (q31_t)0x5FE3B38D, - (q31_t)0xAB105464, (q31_t)0x5FC26038, (q31_t)0xAAEAC02B, - (q31_t)0x5FA0FE1E, (q31_t)0xAAC53912, (q31_t)0x5F7F8D46, - (q31_t)0xAA9FBF1D, (q31_t)0x5F5E0DB3, (q31_t)0xAA7A5253, - (q31_t)0x5F3C7F6B, (q31_t)0xAA54F2B9, (q31_t)0x5F1AE273, - (q31_t)0xAA2FA055, (q31_t)0x5EF936D1, (q31_t)0xAA0A5B2D, - (q31_t)0x5ED77C89, (q31_t)0xA9E52347, (q31_t)0x5EB5B3A1, - (q31_t)0xA9BFF8A8, (q31_t)0x5E93DC1F, (q31_t)0xA99ADB56, - (q31_t)0x5E71F606, (q31_t)0xA975CB56, (q31_t)0x5E50015D, - (q31_t)0xA950C8AF, (q31_t)0x5E2DFE28, (q31_t)0xA92BD366, - (q31_t)0x5E0BEC6E, (q31_t)0xA906EB81, (q31_t)0x5DE9CC32, - (q31_t)0xA8E21106, (q31_t)0x5DC79D7C, (q31_t)0xA8BD43FA, - (q31_t)0x5DA5604E, (q31_t)0xA8988463, (q31_t)0x5D8314B0, - (q31_t)0xA873D246, (q31_t)0x5D60BAA6, (q31_t)0xA84F2DA9, - (q31_t)0x5D3E5236, (q31_t)0xA82A9693, (q31_t)0x5D1BDB65, - (q31_t)0xA8060D08, (q31_t)0x5CF95638, (q31_t)0xA7E1910E, - (q31_t)0x5CD6C2B4, (q31_t)0xA7BD22AB, (q31_t)0x5CB420DF, - (q31_t)0xA798C1E4, (q31_t)0x5C9170BF, (q31_t)0xA7746EC0, - (q31_t)0x5C6EB258, (q31_t)0xA7502943, (q31_t)0x5C4BE5B0, - (q31_t)0xA72BF173, (q31_t)0x5C290ACC, (q31_t)0xA707C756, - (q31_t)0x5C0621B2, (q31_t)0xA6E3AAF2, (q31_t)0x5BE32A67, - (q31_t)0xA6BF9C4B, (q31_t)0x5BC024F0, (q31_t)0xA69B9B68, - (q31_t)0x5B9D1153, (q31_t)0xA677A84E, (q31_t)0x5B79EF96, - (q31_t)0xA653C302, (q31_t)0x5B56BFBD, (q31_t)0xA62FEB8B, - (q31_t)0x5B3381CE, (q31_t)0xA60C21ED, (q31_t)0x5B1035CF, - (q31_t)0xA5E8662F, (q31_t)0x5AECDBC4, (q31_t)0xA5C4B855, - (q31_t)0x5AC973B4, (q31_t)0xA5A11865, (q31_t)0x5AA5FDA4, - (q31_t)0xA57D8666, (q31_t)0x5A82799A, (q31_t)0xA55A025B, - (q31_t)0x5A5EE79A, (q31_t)0xA5368C4B, (q31_t)0x5A3B47AA, - (q31_t)0xA513243B, (q31_t)0x5A1799D0, (q31_t)0xA4EFCA31, - (q31_t)0x59F3DE12, (q31_t)0xA4CC7E31, (q31_t)0x59D01474, - (q31_t)0xA4A94042, (q31_t)0x59AC3CFD, (q31_t)0xA4861069, - (q31_t)0x598857B1, (q31_t)0xA462EEAC, (q31_t)0x59646497, - (q31_t)0xA43FDB0F, (q31_t)0x594063B4, (q31_t)0xA41CD598, - (q31_t)0x591C550E, (q31_t)0xA3F9DE4D, (q31_t)0x58F838A9, - (q31_t)0xA3D6F533, (q31_t)0x58D40E8C, (q31_t)0xA3B41A4F, - (q31_t)0x58AFD6BC, (q31_t)0xA3914DA7, (q31_t)0x588B913F, - (q31_t)0xA36E8F40, (q31_t)0x58673E1B, (q31_t)0xA34BDF20, - (q31_t)0x5842DD54, (q31_t)0xA3293D4B, (q31_t)0x581E6EF1, - (q31_t)0xA306A9C7, (q31_t)0x57F9F2F7, (q31_t)0xA2E4249A, - (q31_t)0x57D5696C, (q31_t)0xA2C1ADC9, (q31_t)0x57B0D256, - (q31_t)0xA29F4559, (q31_t)0x578C2DB9, (q31_t)0xA27CEB4F, - (q31_t)0x57677B9D, (q31_t)0xA25A9FB1, (q31_t)0x5742BC05, - (q31_t)0xA2386283, (q31_t)0x571DEEF9, (q31_t)0xA21633CD, - (q31_t)0x56F9147E, (q31_t)0xA1F41391, (q31_t)0x56D42C99, - (q31_t)0xA1D201D7, (q31_t)0x56AF3750, (q31_t)0xA1AFFEA2, - (q31_t)0x568A34A9, (q31_t)0xA18E09F9, (q31_t)0x566524AA, - (q31_t)0xA16C23E1, (q31_t)0x56400757, (q31_t)0xA14A4C5E, - (q31_t)0x561ADCB8, (q31_t)0xA1288376, (q31_t)0x55F5A4D2, - (q31_t)0xA106C92E, (q31_t)0x55D05FAA, (q31_t)0xA0E51D8C, - (q31_t)0x55AB0D46, (q31_t)0xA0C38094, (q31_t)0x5585ADAC, - (q31_t)0xA0A1F24C, (q31_t)0x556040E2, (q31_t)0xA08072BA, - (q31_t)0x553AC6ED, (q31_t)0xA05F01E1, (q31_t)0x55153FD4, - (q31_t)0xA03D9FC7, (q31_t)0x54EFAB9C, (q31_t)0xA01C4C72, - (q31_t)0x54CA0A4A, (q31_t)0x9FFB07E7, (q31_t)0x54A45BE5, - (q31_t)0x9FD9D22A, (q31_t)0x547EA073, (q31_t)0x9FB8AB41, - (q31_t)0x5458D7F9, (q31_t)0x9F979331, (q31_t)0x5433027D, - (q31_t)0x9F7689FF, (q31_t)0x540D2005, (q31_t)0x9F558FB0, - (q31_t)0x53E73097, (q31_t)0x9F34A449, (q31_t)0x53C13438, - (q31_t)0x9F13C7D0, (q31_t)0x539B2AEF, (q31_t)0x9EF2FA48, - (q31_t)0x537514C1, (q31_t)0x9ED23BB9, (q31_t)0x534EF1B5, - (q31_t)0x9EB18C26, (q31_t)0x5328C1D0, (q31_t)0x9E90EB94, - (q31_t)0x53028517, (q31_t)0x9E705A09, (q31_t)0x52DC3B92, - (q31_t)0x9E4FD789, (q31_t)0x52B5E545, (q31_t)0x9E2F641A, - (q31_t)0x528F8237, (q31_t)0x9E0EFFC1, (q31_t)0x5269126E, - (q31_t)0x9DEEAA82, (q31_t)0x524295EF, (q31_t)0x9DCE6462, - (q31_t)0x521C0CC1, (q31_t)0x9DAE2D68, (q31_t)0x51F576E9, - (q31_t)0x9D8E0596, (q31_t)0x51CED46E, (q31_t)0x9D6DECF4, - (q31_t)0x51A82555, (q31_t)0x9D4DE384, (q31_t)0x518169A4, - (q31_t)0x9D2DE94D, (q31_t)0x515AA162, (q31_t)0x9D0DFE53, - (q31_t)0x5133CC94, (q31_t)0x9CEE229C, (q31_t)0x510CEB40, - (q31_t)0x9CCE562B, (q31_t)0x50E5FD6C, (q31_t)0x9CAE9907, - (q31_t)0x50BF031F, (q31_t)0x9C8EEB33, (q31_t)0x5097FC5E, - (q31_t)0x9C6F4CB5, (q31_t)0x5070E92F, (q31_t)0x9C4FBD92, - (q31_t)0x5049C999, (q31_t)0x9C303DCF, (q31_t)0x50229DA0, - (q31_t)0x9C10CD70, (q31_t)0x4FFB654D, (q31_t)0x9BF16C7A, - (q31_t)0x4FD420A3, (q31_t)0x9BD21AF2, (q31_t)0x4FACCFAB, - (q31_t)0x9BB2D8DD, (q31_t)0x4F857268, (q31_t)0x9B93A640, - (q31_t)0x4F5E08E3, (q31_t)0x9B748320, (q31_t)0x4F369320, - (q31_t)0x9B556F80, (q31_t)0x4F0F1126, (q31_t)0x9B366B67, - (q31_t)0x4EE782FA, (q31_t)0x9B1776D9, (q31_t)0x4EBFE8A4, - (q31_t)0x9AF891DB, (q31_t)0x4E984229, (q31_t)0x9AD9BC71, - (q31_t)0x4E708F8F, (q31_t)0x9ABAF6A0, (q31_t)0x4E48D0DC, - (q31_t)0x9A9C406D, (q31_t)0x4E210617, (q31_t)0x9A7D99DD, - (q31_t)0x4DF92F45, (q31_t)0x9A5F02F5, (q31_t)0x4DD14C6E, - (q31_t)0x9A407BB8, (q31_t)0x4DA95D96, (q31_t)0x9A22042C, - (q31_t)0x4D8162C4, (q31_t)0x9A039C56, (q31_t)0x4D595BFE, - (q31_t)0x99E5443A, (q31_t)0x4D31494B, (q31_t)0x99C6FBDE, - (q31_t)0x4D092AB0, (q31_t)0x99A8C344, (q31_t)0x4CE10034, - (q31_t)0x998A9A73, (q31_t)0x4CB8C9DD, (q31_t)0x996C816F, - (q31_t)0x4C9087B1, (q31_t)0x994E783C, (q31_t)0x4C6839B6, - (q31_t)0x99307EE0, (q31_t)0x4C3FDFF3, (q31_t)0x9912955E, - (q31_t)0x4C177A6E, (q31_t)0x98F4BBBC, (q31_t)0x4BEF092D, - (q31_t)0x98D6F1FE, (q31_t)0x4BC68C36, (q31_t)0x98B93828, - (q31_t)0x4B9E038F, (q31_t)0x989B8E3F, (q31_t)0x4B756F3F, - (q31_t)0x987DF449, (q31_t)0x4B4CCF4D, (q31_t)0x98606A48, - (q31_t)0x4B2423BD, (q31_t)0x9842F043, (q31_t)0x4AFB6C97, - (q31_t)0x9825863D, (q31_t)0x4AD2A9E1, (q31_t)0x98082C3B, - (q31_t)0x4AA9DBA1, (q31_t)0x97EAE241, (q31_t)0x4A8101DE, - (q31_t)0x97CDA855, (q31_t)0x4A581C9D, (q31_t)0x97B07E7A, - (q31_t)0x4A2F2BE5, (q31_t)0x979364B5, (q31_t)0x4A062FBD, - (q31_t)0x97765B0A, (q31_t)0x49DD282A, (q31_t)0x9759617E, - (q31_t)0x49B41533, (q31_t)0x973C7816, (q31_t)0x498AF6DE, - (q31_t)0x971F9ED6, (q31_t)0x4961CD32, (q31_t)0x9702D5C2, - (q31_t)0x49389836, (q31_t)0x96E61CDF, (q31_t)0x490F57EE, - (q31_t)0x96C97431, (q31_t)0x48E60C62, (q31_t)0x96ACDBBD, - (q31_t)0x48BCB598, (q31_t)0x96905387, (q31_t)0x48935397, - (q31_t)0x9673DB94, (q31_t)0x4869E664, (q31_t)0x965773E7, - (q31_t)0x48406E07, (q31_t)0x963B1C85, (q31_t)0x4816EA85, - (q31_t)0x961ED573, (q31_t)0x47ED5BE6, (q31_t)0x96029EB5, - (q31_t)0x47C3C22E, (q31_t)0x95E6784F, (q31_t)0x479A1D66, - (q31_t)0x95CA6246, (q31_t)0x47706D93, (q31_t)0x95AE5C9E, - (q31_t)0x4746B2BC, (q31_t)0x9592675B, (q31_t)0x471CECE6, - (q31_t)0x95768282, (q31_t)0x46F31C1A, (q31_t)0x955AAE17, - (q31_t)0x46C9405C, (q31_t)0x953EEA1E, (q31_t)0x469F59B4, - (q31_t)0x9523369B, (q31_t)0x46756827, (q31_t)0x95079393, - (q31_t)0x464B6BBD, (q31_t)0x94EC010B, (q31_t)0x4621647C, - (q31_t)0x94D07F05, (q31_t)0x45F7526B, (q31_t)0x94B50D87, - (q31_t)0x45CD358F, (q31_t)0x9499AC95, (q31_t)0x45A30DF0, - (q31_t)0x947E5C32, (q31_t)0x4578DB93, (q31_t)0x94631C64, - (q31_t)0x454E9E80, (q31_t)0x9447ED2F, (q31_t)0x452456BC, - (q31_t)0x942CCE95, (q31_t)0x44FA044F, (q31_t)0x9411C09D, - (q31_t)0x44CFA73F, (q31_t)0x93F6C34A, (q31_t)0x44A53F93, - (q31_t)0x93DBD69F, (q31_t)0x447ACD50, (q31_t)0x93C0FAA2, - (q31_t)0x4450507E, (q31_t)0x93A62F56, (q31_t)0x4425C923, - (q31_t)0x938B74C0, (q31_t)0x43FB3745, (q31_t)0x9370CAE4, - (q31_t)0x43D09AEC, (q31_t)0x935631C5, (q31_t)0x43A5F41E, - (q31_t)0x933BA968, (q31_t)0x437B42E1, (q31_t)0x932131D1, - (q31_t)0x4350873C, (q31_t)0x9306CB04, (q31_t)0x4325C135, - (q31_t)0x92EC7505, (q31_t)0x42FAF0D4, (q31_t)0x92D22FD8, - (q31_t)0x42D0161E, (q31_t)0x92B7FB82, (q31_t)0x42A5311A, - (q31_t)0x929DD805, (q31_t)0x427A41D0, (q31_t)0x9283C567, - (q31_t)0x424F4845, (q31_t)0x9269C3AC, (q31_t)0x42244480, - (q31_t)0x924FD2D6, (q31_t)0x41F93688, (q31_t)0x9235F2EB, - (q31_t)0x41CE1E64, (q31_t)0x921C23EE, (q31_t)0x41A2FC1A, - (q31_t)0x920265E4, (q31_t)0x4177CFB0, (q31_t)0x91E8B8D0, - (q31_t)0x414C992E, (q31_t)0x91CF1CB6, (q31_t)0x4121589A, - (q31_t)0x91B5919A, (q31_t)0x40F60DFB, (q31_t)0x919C1780, - (q31_t)0x40CAB957, (q31_t)0x9182AE6C, (q31_t)0x409F5AB6, - (q31_t)0x91695663, (q31_t)0x4073F21D, (q31_t)0x91500F67, - (q31_t)0x40487F93, (q31_t)0x9136D97D, (q31_t)0x401D0320, - (q31_t)0x911DB4A8, (q31_t)0x3FF17CCA, (q31_t)0x9104A0ED, - (q31_t)0x3FC5EC97, (q31_t)0x90EB9E50, (q31_t)0x3F9A528F, - (q31_t)0x90D2ACD3, (q31_t)0x3F6EAEB8, (q31_t)0x90B9CC7C, - (q31_t)0x3F430118, (q31_t)0x90A0FD4E, (q31_t)0x3F1749B7, - (q31_t)0x90883F4C, (q31_t)0x3EEB889C, (q31_t)0x906F927B, - (q31_t)0x3EBFBDCC, (q31_t)0x9056F6DF, (q31_t)0x3E93E94F, - (q31_t)0x903E6C7A, (q31_t)0x3E680B2C, (q31_t)0x9025F352, - (q31_t)0x3E3C2369, (q31_t)0x900D8B69, (q31_t)0x3E10320D, - (q31_t)0x8FF534C4, (q31_t)0x3DE4371F, (q31_t)0x8FDCEF66, - (q31_t)0x3DB832A5, (q31_t)0x8FC4BB53, (q31_t)0x3D8C24A7, - (q31_t)0x8FAC988E, (q31_t)0x3D600D2B, (q31_t)0x8F94871D, - (q31_t)0x3D33EC39, (q31_t)0x8F7C8701, (q31_t)0x3D07C1D5, - (q31_t)0x8F64983F, (q31_t)0x3CDB8E09, (q31_t)0x8F4CBADB, - (q31_t)0x3CAF50DA, (q31_t)0x8F34EED8, (q31_t)0x3C830A4F, - (q31_t)0x8F1D343A, (q31_t)0x3C56BA70, (q31_t)0x8F058B04, - (q31_t)0x3C2A6142, (q31_t)0x8EEDF33B, (q31_t)0x3BFDFECD, - (q31_t)0x8ED66CE1, (q31_t)0x3BD19317, (q31_t)0x8EBEF7FB, - (q31_t)0x3BA51E29, (q31_t)0x8EA7948C, (q31_t)0x3B78A007, - (q31_t)0x8E904298, (q31_t)0x3B4C18BA, (q31_t)0x8E790222, - (q31_t)0x3B1F8847, (q31_t)0x8E61D32D, (q31_t)0x3AF2EEB7, - (q31_t)0x8E4AB5BF, (q31_t)0x3AC64C0F, (q31_t)0x8E33A9D9, - (q31_t)0x3A99A057, (q31_t)0x8E1CAF80, (q31_t)0x3A6CEB95, - (q31_t)0x8E05C6B7, (q31_t)0x3A402DD1, (q31_t)0x8DEEEF82, - (q31_t)0x3A136712, (q31_t)0x8DD829E4, (q31_t)0x39E6975D, - (q31_t)0x8DC175E0, (q31_t)0x39B9BEBB, (q31_t)0x8DAAD37B, - (q31_t)0x398CDD32, (q31_t)0x8D9442B7, (q31_t)0x395FF2C9, - (q31_t)0x8D7DC399, (q31_t)0x3932FF87, (q31_t)0x8D675623, - (q31_t)0x39060372, (q31_t)0x8D50FA59, (q31_t)0x38D8FE93, - (q31_t)0x8D3AB03F, (q31_t)0x38ABF0EF, (q31_t)0x8D2477D8, - (q31_t)0x387EDA8E, (q31_t)0x8D0E5127, (q31_t)0x3851BB76, - (q31_t)0x8CF83C30, (q31_t)0x382493B0, (q31_t)0x8CE238F6, - (q31_t)0x37F76340, (q31_t)0x8CCC477D, (q31_t)0x37CA2A30, - (q31_t)0x8CB667C7, (q31_t)0x379CE884, (q31_t)0x8CA099D9, - (q31_t)0x376F9E46, (q31_t)0x8C8ADDB6, (q31_t)0x37424B7A, - (q31_t)0x8C753361, (q31_t)0x3714F02A, (q31_t)0x8C5F9ADD, - (q31_t)0x36E78C5A, (q31_t)0x8C4A142F, (q31_t)0x36BA2013, - (q31_t)0x8C349F58, (q31_t)0x368CAB5C, (q31_t)0x8C1F3C5C, - (q31_t)0x365F2E3B, (q31_t)0x8C09EB40, (q31_t)0x3631A8B7, - (q31_t)0x8BF4AC05, (q31_t)0x36041AD9, (q31_t)0x8BDF7EAF, - (q31_t)0x35D684A5, (q31_t)0x8BCA6342, (q31_t)0x35A8E624, - (q31_t)0x8BB559C1, (q31_t)0x357B3F5D, (q31_t)0x8BA0622F, - (q31_t)0x354D9056, (q31_t)0x8B8B7C8F, (q31_t)0x351FD917, - (q31_t)0x8B76A8E4, (q31_t)0x34F219A7, (q31_t)0x8B61E732, - (q31_t)0x34C4520D, (q31_t)0x8B4D377C, (q31_t)0x3496824F, - (q31_t)0x8B3899C5, (q31_t)0x3468AA76, (q31_t)0x8B240E10, - (q31_t)0x343ACA87, (q31_t)0x8B0F9461, (q31_t)0x340CE28A, - (q31_t)0x8AFB2CBA, (q31_t)0x33DEF287, (q31_t)0x8AE6D71F, - (q31_t)0x33B0FA84, (q31_t)0x8AD29393, (q31_t)0x3382FA88, - (q31_t)0x8ABE6219, (q31_t)0x3354F29A, (q31_t)0x8AAA42B4, - (q31_t)0x3326E2C2, (q31_t)0x8A963567, (q31_t)0x32F8CB07, - (q31_t)0x8A823A35, (q31_t)0x32CAAB6F, (q31_t)0x8A6E5122, - (q31_t)0x329C8402, (q31_t)0x8A5A7A30, (q31_t)0x326E54C7, - (q31_t)0x8A46B563, (q31_t)0x32401DC5, (q31_t)0x8A3302BD, - (q31_t)0x3211DF03, (q31_t)0x8A1F6242, (q31_t)0x31E39889, - (q31_t)0x8A0BD3F5, (q31_t)0x31B54A5D, (q31_t)0x89F857D8, - (q31_t)0x3186F487, (q31_t)0x89E4EDEE, (q31_t)0x3158970D, - (q31_t)0x89D1963C, (q31_t)0x312A31F8, (q31_t)0x89BE50C3, - (q31_t)0x30FBC54D, (q31_t)0x89AB1D86, (q31_t)0x30CD5114, - (q31_t)0x8997FC89, (q31_t)0x309ED555, (q31_t)0x8984EDCF, - (q31_t)0x30705217, (q31_t)0x8971F15A, (q31_t)0x3041C760, - (q31_t)0x895F072D, (q31_t)0x30133538, (q31_t)0x894C2F4C, - (q31_t)0x2FE49BA6, (q31_t)0x893969B9, (q31_t)0x2FB5FAB2, - (q31_t)0x8926B677, (q31_t)0x2F875262, (q31_t)0x89141589, - (q31_t)0x2F58A2BD, (q31_t)0x890186F1, (q31_t)0x2F29EBCC, - (q31_t)0x88EF0AB4, (q31_t)0x2EFB2D94, (q31_t)0x88DCA0D3, - (q31_t)0x2ECC681E, (q31_t)0x88CA4951, (q31_t)0x2E9D9B70, - (q31_t)0x88B80431, (q31_t)0x2E6EC792, (q31_t)0x88A5D177, - (q31_t)0x2E3FEC8B, (q31_t)0x8893B124, (q31_t)0x2E110A62, - (q31_t)0x8881A33C, (q31_t)0x2DE2211E, (q31_t)0x886FA7C2, - (q31_t)0x2DB330C7, (q31_t)0x885DBEB7, (q31_t)0x2D843963, - (q31_t)0x884BE820, (q31_t)0x2D553AFB, (q31_t)0x883A23FE, - (q31_t)0x2D263595, (q31_t)0x88287255, (q31_t)0x2CF72939, - (q31_t)0x8816D327, (q31_t)0x2CC815ED, (q31_t)0x88054677, - (q31_t)0x2C98FBBA, (q31_t)0x87F3CC47, (q31_t)0x2C69DAA6, - (q31_t)0x87E2649B, (q31_t)0x2C3AB2B9, (q31_t)0x87D10F75, - (q31_t)0x2C0B83F9, (q31_t)0x87BFCCD7, (q31_t)0x2BDC4E6F, - (q31_t)0x87AE9CC5, (q31_t)0x2BAD1221, (q31_t)0x879D7F40, - (q31_t)0x2B7DCF17, (q31_t)0x878C744C, (q31_t)0x2B4E8558, - (q31_t)0x877B7BEC, (q31_t)0x2B1F34EB, (q31_t)0x876A9621, - (q31_t)0x2AEFDDD8, (q31_t)0x8759C2EF, (q31_t)0x2AC08025, - (q31_t)0x87490257, (q31_t)0x2A911BDB, (q31_t)0x8738545E, - (q31_t)0x2A61B101, (q31_t)0x8727B904, (q31_t)0x2A323F9D, - (q31_t)0x8717304E, (q31_t)0x2A02C7B8, (q31_t)0x8706BA3C, - (q31_t)0x29D34958, (q31_t)0x86F656D3, (q31_t)0x29A3C484, - (q31_t)0x86E60614, (q31_t)0x29743945, (q31_t)0x86D5C802, - (q31_t)0x2944A7A2, (q31_t)0x86C59C9F, (q31_t)0x29150FA1, - (q31_t)0x86B583EE, (q31_t)0x28E5714A, (q31_t)0x86A57DF1, - (q31_t)0x28B5CCA5, (q31_t)0x86958AAB, (q31_t)0x288621B9, - (q31_t)0x8685AA1F, (q31_t)0x2856708C, (q31_t)0x8675DC4E, - (q31_t)0x2826B928, (q31_t)0x8666213C, (q31_t)0x27F6FB92, - (q31_t)0x865678EA, (q31_t)0x27C737D2, (q31_t)0x8646E35B, - (q31_t)0x27976DF1, (q31_t)0x86376092, (q31_t)0x27679DF4, - (q31_t)0x8627F090, (q31_t)0x2737C7E3, (q31_t)0x86189359, - (q31_t)0x2707EBC6, (q31_t)0x860948EE, (q31_t)0x26D809A5, - (q31_t)0x85FA1152, (q31_t)0x26A82185, (q31_t)0x85EAEC88, - (q31_t)0x26783370, (q31_t)0x85DBDA91, (q31_t)0x26483F6C, - (q31_t)0x85CCDB70, (q31_t)0x26184581, (q31_t)0x85BDEF27, - (q31_t)0x25E845B5, (q31_t)0x85AF15B9, (q31_t)0x25B84012, - (q31_t)0x85A04F28, (q31_t)0x2588349D, (q31_t)0x85919B75, - (q31_t)0x2558235E, (q31_t)0x8582FAA4, (q31_t)0x25280C5D, - (q31_t)0x85746CB7, (q31_t)0x24F7EFA1, (q31_t)0x8565F1B0, - (q31_t)0x24C7CD32, (q31_t)0x85578991, (q31_t)0x2497A517, - (q31_t)0x8549345C, (q31_t)0x24677757, (q31_t)0x853AF214, - (q31_t)0x243743FA, (q31_t)0x852CC2BA, (q31_t)0x24070B07, - (q31_t)0x851EA652, (q31_t)0x23D6CC86, (q31_t)0x85109CDC, - (q31_t)0x23A6887E, (q31_t)0x8502A65C, (q31_t)0x23763EF7, - (q31_t)0x84F4C2D3, (q31_t)0x2345EFF7, (q31_t)0x84E6F244, - (q31_t)0x23159B87, (q31_t)0x84D934B0, (q31_t)0x22E541AE, - (q31_t)0x84CB8A1B, (q31_t)0x22B4E274, (q31_t)0x84BDF285, - (q31_t)0x22847DDF, (q31_t)0x84B06DF1, (q31_t)0x225413F8, - (q31_t)0x84A2FC62, (q31_t)0x2223A4C5, (q31_t)0x84959DD9, - (q31_t)0x21F3304E, (q31_t)0x84885257, (q31_t)0x21C2B69C, - (q31_t)0x847B19E1, (q31_t)0x219237B4, (q31_t)0x846DF476, - (q31_t)0x2161B39F, (q31_t)0x8460E21A, (q31_t)0x21312A65, - (q31_t)0x8453E2CE, (q31_t)0x21009C0B, (q31_t)0x8446F695, - (q31_t)0x20D0089B, (q31_t)0x843A1D70, (q31_t)0x209F701C, - (q31_t)0x842D5761, (q31_t)0x206ED295, (q31_t)0x8420A46B, - (q31_t)0x203E300D, (q31_t)0x8414048F, (q31_t)0x200D888C, - (q31_t)0x840777CF, (q31_t)0x1FDCDC1A, (q31_t)0x83FAFE2E, - (q31_t)0x1FAC2ABF, (q31_t)0x83EE97AC, (q31_t)0x1F7B7480, - (q31_t)0x83E2444D, (q31_t)0x1F4AB967, (q31_t)0x83D60411, - (q31_t)0x1F19F97B, (q31_t)0x83C9D6FB, (q31_t)0x1EE934C2, - (q31_t)0x83BDBD0D, (q31_t)0x1EB86B46, (q31_t)0x83B1B649, - (q31_t)0x1E879D0C, (q31_t)0x83A5C2B0, (q31_t)0x1E56CA1E, - (q31_t)0x8399E244, (q31_t)0x1E25F281, (q31_t)0x838E1507, - (q31_t)0x1DF5163F, (q31_t)0x83825AFB, (q31_t)0x1DC4355D, - (q31_t)0x8376B422, (q31_t)0x1D934FE5, (q31_t)0x836B207D, - (q31_t)0x1D6265DD, (q31_t)0x835FA00E, (q31_t)0x1D31774D, - (q31_t)0x835432D8, (q31_t)0x1D00843C, (q31_t)0x8348D8DB, - (q31_t)0x1CCF8CB3, (q31_t)0x833D921A, (q31_t)0x1C9E90B8, - (q31_t)0x83325E97, (q31_t)0x1C6D9053, (q31_t)0x83273E52, - (q31_t)0x1C3C8B8C, (q31_t)0x831C314E, (q31_t)0x1C0B826A, - (q31_t)0x8311378C, (q31_t)0x1BDA74F5, (q31_t)0x8306510F, - (q31_t)0x1BA96334, (q31_t)0x82FB7DD8, (q31_t)0x1B784D30, - (q31_t)0x82F0BDE8, (q31_t)0x1B4732EF, (q31_t)0x82E61141, - (q31_t)0x1B161479, (q31_t)0x82DB77E5, (q31_t)0x1AE4F1D6, - (q31_t)0x82D0F1D5, (q31_t)0x1AB3CB0C, (q31_t)0x82C67F13, - (q31_t)0x1A82A025, (q31_t)0x82BC1FA1, (q31_t)0x1A517127, - (q31_t)0x82B1D381, (q31_t)0x1A203E1B, (q31_t)0x82A79AB3, - (q31_t)0x19EF0706, (q31_t)0x829D753A, (q31_t)0x19BDCBF2, - (q31_t)0x82936316, (q31_t)0x198C8CE6, (q31_t)0x8289644A, - (q31_t)0x195B49E9, (q31_t)0x827F78D8, (q31_t)0x192A0303, - (q31_t)0x8275A0C0, (q31_t)0x18F8B83C, (q31_t)0x826BDC04, - (q31_t)0x18C7699B, (q31_t)0x82622AA5, (q31_t)0x18961727, - (q31_t)0x82588CA6, (q31_t)0x1864C0E9, (q31_t)0x824F0208, - (q31_t)0x183366E8, (q31_t)0x82458ACB, (q31_t)0x1802092C, - (q31_t)0x823C26F2, (q31_t)0x17D0A7BB, (q31_t)0x8232D67E, - (q31_t)0x179F429F, (q31_t)0x82299971, (q31_t)0x176DD9DE, - (q31_t)0x82206FCB, (q31_t)0x173C6D80, (q31_t)0x8217598F, - (q31_t)0x170AFD8D, (q31_t)0x820E56BE, (q31_t)0x16D98A0C, - (q31_t)0x82056758, (q31_t)0x16A81305, (q31_t)0x81FC8B60, - (q31_t)0x1676987F, (q31_t)0x81F3C2D7, (q31_t)0x16451A83, - (q31_t)0x81EB0DBD, (q31_t)0x16139917, (q31_t)0x81E26C16, - (q31_t)0x15E21444, (q31_t)0x81D9DDE1, (q31_t)0x15B08C11, - (q31_t)0x81D16320, (q31_t)0x157F0086, (q31_t)0x81C8FBD5, - (q31_t)0x154D71AA, (q31_t)0x81C0A801, (q31_t)0x151BDF85, - (q31_t)0x81B867A4, (q31_t)0x14EA4A1F, (q31_t)0x81B03AC1, - (q31_t)0x14B8B17F, (q31_t)0x81A82159, (q31_t)0x148715AD, - (q31_t)0x81A01B6C, (q31_t)0x145576B1, (q31_t)0x819828FD, - (q31_t)0x1423D492, (q31_t)0x81904A0C, (q31_t)0x13F22F57, - (q31_t)0x81887E9A, (q31_t)0x13C0870A, (q31_t)0x8180C6A9, - (q31_t)0x138EDBB0, (q31_t)0x8179223A, (q31_t)0x135D2D53, - (q31_t)0x8171914E, (q31_t)0x132B7BF9, (q31_t)0x816A13E6, - (q31_t)0x12F9C7AA, (q31_t)0x8162AA03, (q31_t)0x12C8106E, - (q31_t)0x815B53A8, (q31_t)0x1296564D, (q31_t)0x815410D3, - (q31_t)0x1264994E, (q31_t)0x814CE188, (q31_t)0x1232D978, - (q31_t)0x8145C5C6, (q31_t)0x120116D4, (q31_t)0x813EBD90, - (q31_t)0x11CF516A, (q31_t)0x8137C8E6, (q31_t)0x119D8940, - (q31_t)0x8130E7C8, (q31_t)0x116BBE5F, (q31_t)0x812A1A39, - (q31_t)0x1139F0CE, (q31_t)0x81236039, (q31_t)0x11082096, - (q31_t)0x811CB9CA, (q31_t)0x10D64DBC, (q31_t)0x811626EC, - (q31_t)0x10A4784A, (q31_t)0x810FA7A0, (q31_t)0x1072A047, - (q31_t)0x81093BE8, (q31_t)0x1040C5BB, (q31_t)0x8102E3C3, - (q31_t)0x100EE8AD, (q31_t)0x80FC9F35, (q31_t)0x0FDD0925, - (q31_t)0x80F66E3C, (q31_t)0x0FAB272B, (q31_t)0x80F050DB, - (q31_t)0x0F7942C6, (q31_t)0x80EA4712, (q31_t)0x0F475BFE, - (q31_t)0x80E450E2, (q31_t)0x0F1572DC, (q31_t)0x80DE6E4C, - (q31_t)0x0EE38765, (q31_t)0x80D89F51, (q31_t)0x0EB199A3, - (q31_t)0x80D2E3F1, (q31_t)0x0E7FA99D, (q31_t)0x80CD3C2F, - (q31_t)0x0E4DB75B, (q31_t)0x80C7A80A, (q31_t)0x0E1BC2E3, - (q31_t)0x80C22783, (q31_t)0x0DE9CC3F, (q31_t)0x80BCBA9C, - (q31_t)0x0DB7D376, (q31_t)0x80B76155, (q31_t)0x0D85D88F, - (q31_t)0x80B21BAF, (q31_t)0x0D53DB92, (q31_t)0x80ACE9AB, - (q31_t)0x0D21DC87, (q31_t)0x80A7CB49, (q31_t)0x0CEFDB75, - (q31_t)0x80A2C08B, (q31_t)0x0CBDD865, (q31_t)0x809DC970, - (q31_t)0x0C8BD35E, (q31_t)0x8098E5FB, (q31_t)0x0C59CC67, - (q31_t)0x8094162B, (q31_t)0x0C27C389, (q31_t)0x808F5A02, - (q31_t)0x0BF5B8CB, (q31_t)0x808AB180, (q31_t)0x0BC3AC35, - (q31_t)0x80861CA5, (q31_t)0x0B919DCE, (q31_t)0x80819B74, - (q31_t)0x0B5F8D9F, (q31_t)0x807D2DEB, (q31_t)0x0B2D7BAE, - (q31_t)0x8078D40D, (q31_t)0x0AFB6805, (q31_t)0x80748DD9, - (q31_t)0x0AC952AA, (q31_t)0x80705B50, (q31_t)0x0A973BA5, - (q31_t)0x806C3C73, (q31_t)0x0A6522FE, (q31_t)0x80683143, - (q31_t)0x0A3308BC, (q31_t)0x806439C0, (q31_t)0x0A00ECE8, - (q31_t)0x806055EA, (q31_t)0x09CECF89, (q31_t)0x805C85C3, - (q31_t)0x099CB0A7, (q31_t)0x8058C94C, (q31_t)0x096A9049, - (q31_t)0x80552083, (q31_t)0x09386E77, (q31_t)0x80518B6B, - (q31_t)0x09064B3A, (q31_t)0x804E0A03, (q31_t)0x08D42698, - (q31_t)0x804A9C4D, (q31_t)0x08A2009A, (q31_t)0x80474248, - (q31_t)0x086FD947, (q31_t)0x8043FBF6, (q31_t)0x083DB0A7, - (q31_t)0x8040C956, (q31_t)0x080B86C1, (q31_t)0x803DAA69, - (q31_t)0x07D95B9E, (q31_t)0x803A9F31, (q31_t)0x07A72F45, - (q31_t)0x8037A7AC, (q31_t)0x077501BE, (q31_t)0x8034C3DC, - (q31_t)0x0742D310, (q31_t)0x8031F3C1, (q31_t)0x0710A344, - (q31_t)0x802F375C, (q31_t)0x06DE7261, (q31_t)0x802C8EAD, - (q31_t)0x06AC406F, (q31_t)0x8029F9B4, (q31_t)0x067A0D75, - (q31_t)0x80277872, (q31_t)0x0647D97C, (q31_t)0x80250AE7, - (q31_t)0x0615A48A, (q31_t)0x8022B113, (q31_t)0x05E36EA9, - (q31_t)0x80206AF8, (q31_t)0x05B137DF, (q31_t)0x801E3894, - (q31_t)0x057F0034, (q31_t)0x801C19E9, (q31_t)0x054CC7B0, - (q31_t)0x801A0EF7, (q31_t)0x051A8E5C, (q31_t)0x801817BF, - (q31_t)0x04E8543D, (q31_t)0x80163440, (q31_t)0x04B6195D, - (q31_t)0x8014647A, (q31_t)0x0483DDC3, (q31_t)0x8012A86F, - (q31_t)0x0451A176, (q31_t)0x8011001E, (q31_t)0x041F647F, - (q31_t)0x800F6B88, (q31_t)0x03ED26E6, (q31_t)0x800DEAAC, - (q31_t)0x03BAE8B1, (q31_t)0x800C7D8C, (q31_t)0x0388A9E9, - (q31_t)0x800B2427, (q31_t)0x03566A96, (q31_t)0x8009DE7D, - (q31_t)0x03242ABF, (q31_t)0x8008AC90, (q31_t)0x02F1EA6B, - (q31_t)0x80078E5E, (q31_t)0x02BFA9A4, (q31_t)0x800683E8, - (q31_t)0x028D6870, (q31_t)0x80058D2E, (q31_t)0x025B26D7, - (q31_t)0x8004AA31, (q31_t)0x0228E4E1, (q31_t)0x8003DAF0, - (q31_t)0x01F6A296, (q31_t)0x80031F6C, (q31_t)0x01C45FFE, - (q31_t)0x800277A5, (q31_t)0x01921D1F, (q31_t)0x8001E39B, - (q31_t)0x015FDA03, (q31_t)0x8001634D, (q31_t)0x012D96B0, - (q31_t)0x8000F6BD, (q31_t)0x00FB532F, (q31_t)0x80009DE9, - (q31_t)0x00C90F88, (q31_t)0x800058D3, (q31_t)0x0096CBC1, - (q31_t)0x8000277A, (q31_t)0x006487E3, (q31_t)0x800009DE, - (q31_t)0x003243F5, (q31_t)0x80000000, (q31_t)0x00000000, - (q31_t)0x800009DE, (q31_t)0xFFCDBC0A, (q31_t)0x8000277A, - (q31_t)0xFF9B781D, (q31_t)0x800058D3, (q31_t)0xFF69343E, - (q31_t)0x80009DE9, (q31_t)0xFF36F078, (q31_t)0x8000F6BD, - (q31_t)0xFF04ACD0, (q31_t)0x8001634D, (q31_t)0xFED2694F, - (q31_t)0x8001E39B, (q31_t)0xFEA025FC, (q31_t)0x800277A5, - (q31_t)0xFE6DE2E0, (q31_t)0x80031F6C, (q31_t)0xFE3BA001, - (q31_t)0x8003DAF0, (q31_t)0xFE095D69, (q31_t)0x8004AA31, - (q31_t)0xFDD71B1E, (q31_t)0x80058D2E, (q31_t)0xFDA4D928, - (q31_t)0x800683E8, (q31_t)0xFD72978F, (q31_t)0x80078E5E, - (q31_t)0xFD40565B, (q31_t)0x8008AC90, (q31_t)0xFD0E1594, - (q31_t)0x8009DE7D, (q31_t)0xFCDBD541, (q31_t)0x800B2427, - (q31_t)0xFCA99569, (q31_t)0x800C7D8C, (q31_t)0xFC775616, - (q31_t)0x800DEAAC, (q31_t)0xFC45174E, (q31_t)0x800F6B88, - (q31_t)0xFC12D919, (q31_t)0x8011001E, (q31_t)0xFBE09B80, - (q31_t)0x8012A86F, (q31_t)0xFBAE5E89, (q31_t)0x8014647A, - (q31_t)0xFB7C223C, (q31_t)0x80163440, (q31_t)0xFB49E6A2, - (q31_t)0x801817BF, (q31_t)0xFB17ABC2, (q31_t)0x801A0EF7, - (q31_t)0xFAE571A4, (q31_t)0x801C19E9, (q31_t)0xFAB3384F, - (q31_t)0x801E3894, (q31_t)0xFA80FFCB, (q31_t)0x80206AF8, - (q31_t)0xFA4EC820, (q31_t)0x8022B113, (q31_t)0xFA1C9156, - (q31_t)0x80250AE7, (q31_t)0xF9EA5B75, (q31_t)0x80277872, - (q31_t)0xF9B82683, (q31_t)0x8029F9B4, (q31_t)0xF985F28A, - (q31_t)0x802C8EAD, (q31_t)0xF953BF90, (q31_t)0x802F375C, - (q31_t)0xF9218D9E, (q31_t)0x8031F3C1, (q31_t)0xF8EF5CBB, - (q31_t)0x8034C3DC, (q31_t)0xF8BD2CEF, (q31_t)0x8037A7AC, - (q31_t)0xF88AFE41, (q31_t)0x803A9F31, (q31_t)0xF858D0BA, - (q31_t)0x803DAA69, (q31_t)0xF826A461, (q31_t)0x8040C956, - (q31_t)0xF7F4793E, (q31_t)0x8043FBF6, (q31_t)0xF7C24F58, - (q31_t)0x80474248, (q31_t)0xF79026B8, (q31_t)0x804A9C4D, - (q31_t)0xF75DFF65, (q31_t)0x804E0A03, (q31_t)0xF72BD967, - (q31_t)0x80518B6B, (q31_t)0xF6F9B4C5, (q31_t)0x80552083, - (q31_t)0xF6C79188, (q31_t)0x8058C94C, (q31_t)0xF6956FB6, - (q31_t)0x805C85C3, (q31_t)0xF6634F58, (q31_t)0x806055EA, - (q31_t)0xF6313076, (q31_t)0x806439C0, (q31_t)0xF5FF1317, - (q31_t)0x80683143, (q31_t)0xF5CCF743, (q31_t)0x806C3C73, - (q31_t)0xF59ADD01, (q31_t)0x80705B50, (q31_t)0xF568C45A, - (q31_t)0x80748DD9, (q31_t)0xF536AD55, (q31_t)0x8078D40D, - (q31_t)0xF50497FA, (q31_t)0x807D2DEB, (q31_t)0xF4D28451, - (q31_t)0x80819B74, (q31_t)0xF4A07260, (q31_t)0x80861CA5, - (q31_t)0xF46E6231, (q31_t)0x808AB180, (q31_t)0xF43C53CA, - (q31_t)0x808F5A02, (q31_t)0xF40A4734, (q31_t)0x8094162B, - (q31_t)0xF3D83C76, (q31_t)0x8098E5FB, (q31_t)0xF3A63398, - (q31_t)0x809DC970, (q31_t)0xF3742CA1, (q31_t)0x80A2C08B, - (q31_t)0xF342279A, (q31_t)0x80A7CB49, (q31_t)0xF310248A, - (q31_t)0x80ACE9AB, (q31_t)0xF2DE2378, (q31_t)0x80B21BAF, - (q31_t)0xF2AC246D, (q31_t)0x80B76155, (q31_t)0xF27A2770, - (q31_t)0x80BCBA9C, (q31_t)0xF2482C89, (q31_t)0x80C22783, - (q31_t)0xF21633C0, (q31_t)0x80C7A80A, (q31_t)0xF1E43D1C, - (q31_t)0x80CD3C2F, (q31_t)0xF1B248A5, (q31_t)0x80D2E3F1, - (q31_t)0xF1805662, (q31_t)0x80D89F51, (q31_t)0xF14E665C, - (q31_t)0x80DE6E4C, (q31_t)0xF11C789A, (q31_t)0x80E450E2, - (q31_t)0xF0EA8D23, (q31_t)0x80EA4712, (q31_t)0xF0B8A401, - (q31_t)0x80F050DB, (q31_t)0xF086BD39, (q31_t)0x80F66E3C, - (q31_t)0xF054D8D4, (q31_t)0x80FC9F35, (q31_t)0xF022F6DA, - (q31_t)0x8102E3C3, (q31_t)0xEFF11752, (q31_t)0x81093BE8, - (q31_t)0xEFBF3A44, (q31_t)0x810FA7A0, (q31_t)0xEF8D5FB8, - (q31_t)0x811626EC, (q31_t)0xEF5B87B5, (q31_t)0x811CB9CA, - (q31_t)0xEF29B243, (q31_t)0x81236039, (q31_t)0xEEF7DF6A, - (q31_t)0x812A1A39, (q31_t)0xEEC60F31, (q31_t)0x8130E7C8, - (q31_t)0xEE9441A0, (q31_t)0x8137C8E6, (q31_t)0xEE6276BF, - (q31_t)0x813EBD90, (q31_t)0xEE30AE95, (q31_t)0x8145C5C6, - (q31_t)0xEDFEE92B, (q31_t)0x814CE188, (q31_t)0xEDCD2687, - (q31_t)0x815410D3, (q31_t)0xED9B66B2, (q31_t)0x815B53A8, - (q31_t)0xED69A9B2, (q31_t)0x8162AA03, (q31_t)0xED37EF91, - (q31_t)0x816A13E6, (q31_t)0xED063855, (q31_t)0x8171914E, - (q31_t)0xECD48406, (q31_t)0x8179223A, (q31_t)0xECA2D2AC, - (q31_t)0x8180C6A9, (q31_t)0xEC71244F, (q31_t)0x81887E9A, - (q31_t)0xEC3F78F5, (q31_t)0x81904A0C, (q31_t)0xEC0DD0A8, - (q31_t)0x819828FD, (q31_t)0xEBDC2B6D, (q31_t)0x81A01B6C, - (q31_t)0xEBAA894E, (q31_t)0x81A82159, (q31_t)0xEB78EA52, - (q31_t)0x81B03AC1, (q31_t)0xEB474E80, (q31_t)0x81B867A4, - (q31_t)0xEB15B5E0, (q31_t)0x81C0A801, (q31_t)0xEAE4207A, - (q31_t)0x81C8FBD5, (q31_t)0xEAB28E55, (q31_t)0x81D16320, - (q31_t)0xEA80FF79, (q31_t)0x81D9DDE1, (q31_t)0xEA4F73EE, - (q31_t)0x81E26C16, (q31_t)0xEA1DEBBB, (q31_t)0x81EB0DBD, - (q31_t)0xE9EC66E8, (q31_t)0x81F3C2D7, (q31_t)0xE9BAE57C, - (q31_t)0x81FC8B60, (q31_t)0xE9896780, (q31_t)0x82056758, - (q31_t)0xE957ECFB, (q31_t)0x820E56BE, (q31_t)0xE92675F4, - (q31_t)0x8217598F, (q31_t)0xE8F50273, (q31_t)0x82206FCB, - (q31_t)0xE8C3927F, (q31_t)0x82299971, (q31_t)0xE8922621, - (q31_t)0x8232D67E, (q31_t)0xE860BD60, (q31_t)0x823C26F2, - (q31_t)0xE82F5844, (q31_t)0x82458ACB, (q31_t)0xE7FDF6D3, - (q31_t)0x824F0208, (q31_t)0xE7CC9917, (q31_t)0x82588CA6, - (q31_t)0xE79B3F16, (q31_t)0x82622AA5, (q31_t)0xE769E8D8, - (q31_t)0x826BDC04, (q31_t)0xE7389664, (q31_t)0x8275A0C0, - (q31_t)0xE70747C3, (q31_t)0x827F78D8, (q31_t)0xE6D5FCFC, - (q31_t)0x8289644A, (q31_t)0xE6A4B616, (q31_t)0x82936316, - (q31_t)0xE6737319, (q31_t)0x829D753A, (q31_t)0xE642340D, - (q31_t)0x82A79AB3, (q31_t)0xE610F8F9, (q31_t)0x82B1D381, - (q31_t)0xE5DFC1E4, (q31_t)0x82BC1FA1, (q31_t)0xE5AE8ED8, - (q31_t)0x82C67F13, (q31_t)0xE57D5FDA, (q31_t)0x82D0F1D5, - (q31_t)0xE54C34F3, (q31_t)0x82DB77E5, (q31_t)0xE51B0E2A, - (q31_t)0x82E61141, (q31_t)0xE4E9EB86, (q31_t)0x82F0BDE8, - (q31_t)0xE4B8CD10, (q31_t)0x82FB7DD8, (q31_t)0xE487B2CF, - (q31_t)0x8306510F, (q31_t)0xE4569CCB, (q31_t)0x8311378C, - (q31_t)0xE4258B0A, (q31_t)0x831C314E, (q31_t)0xE3F47D95, - (q31_t)0x83273E52, (q31_t)0xE3C37473, (q31_t)0x83325E97, - (q31_t)0xE3926FAC, (q31_t)0x833D921A, (q31_t)0xE3616F47, - (q31_t)0x8348D8DB, (q31_t)0xE330734C, (q31_t)0x835432D8, - (q31_t)0xE2FF7BC3, (q31_t)0x835FA00E, (q31_t)0xE2CE88B2, - (q31_t)0x836B207D, (q31_t)0xE29D9A22, (q31_t)0x8376B422, - (q31_t)0xE26CB01A, (q31_t)0x83825AFB, (q31_t)0xE23BCAA2, - (q31_t)0x838E1507, (q31_t)0xE20AE9C1, (q31_t)0x8399E244, - (q31_t)0xE1DA0D7E, (q31_t)0x83A5C2B0, (q31_t)0xE1A935E1, - (q31_t)0x83B1B649, (q31_t)0xE17862F3, (q31_t)0x83BDBD0D, - (q31_t)0xE14794B9, (q31_t)0x83C9D6FB, (q31_t)0xE116CB3D, - (q31_t)0x83D60411, (q31_t)0xE0E60684, (q31_t)0x83E2444D, - (q31_t)0xE0B54698, (q31_t)0x83EE97AC, (q31_t)0xE0848B7F, - (q31_t)0x83FAFE2E, (q31_t)0xE053D541, (q31_t)0x840777CF, - (q31_t)0xE02323E5, (q31_t)0x8414048F, (q31_t)0xDFF27773, - (q31_t)0x8420A46B, (q31_t)0xDFC1CFF2, (q31_t)0x842D5761, - (q31_t)0xDF912D6A, (q31_t)0x843A1D70, (q31_t)0xDF608FE3, - (q31_t)0x8446F695, (q31_t)0xDF2FF764, (q31_t)0x8453E2CE, - (q31_t)0xDEFF63F4, (q31_t)0x8460E21A, (q31_t)0xDECED59B, - (q31_t)0x846DF476, (q31_t)0xDE9E4C60, (q31_t)0x847B19E1, - (q31_t)0xDE6DC84B, (q31_t)0x84885257, (q31_t)0xDE3D4963, - (q31_t)0x84959DD9, (q31_t)0xDE0CCFB1, (q31_t)0x84A2FC62, - (q31_t)0xDDDC5B3A, (q31_t)0x84B06DF1, (q31_t)0xDDABEC07, - (q31_t)0x84BDF285, (q31_t)0xDD7B8220, (q31_t)0x84CB8A1B, - (q31_t)0xDD4B1D8B, (q31_t)0x84D934B0, (q31_t)0xDD1ABE51, - (q31_t)0x84E6F244, (q31_t)0xDCEA6478, (q31_t)0x84F4C2D3, - (q31_t)0xDCBA1008, (q31_t)0x8502A65C, (q31_t)0xDC89C108, - (q31_t)0x85109CDC, (q31_t)0xDC597781, (q31_t)0x851EA652, - (q31_t)0xDC293379, (q31_t)0x852CC2BA, (q31_t)0xDBF8F4F8, - (q31_t)0x853AF214, (q31_t)0xDBC8BC05, (q31_t)0x8549345C, - (q31_t)0xDB9888A8, (q31_t)0x85578991, (q31_t)0xDB685AE8, - (q31_t)0x8565F1B0, (q31_t)0xDB3832CD, (q31_t)0x85746CB7, - (q31_t)0xDB08105E, (q31_t)0x8582FAA4, (q31_t)0xDAD7F3A2, - (q31_t)0x85919B75, (q31_t)0xDAA7DCA1, (q31_t)0x85A04F28, - (q31_t)0xDA77CB62, (q31_t)0x85AF15B9, (q31_t)0xDA47BFED, - (q31_t)0x85BDEF27, (q31_t)0xDA17BA4A, (q31_t)0x85CCDB70, - (q31_t)0xD9E7BA7E, (q31_t)0x85DBDA91, (q31_t)0xD9B7C093, - (q31_t)0x85EAEC88, (q31_t)0xD987CC8F, (q31_t)0x85FA1152, - (q31_t)0xD957DE7A, (q31_t)0x860948EE, (q31_t)0xD927F65B, - (q31_t)0x86189359, (q31_t)0xD8F81439, (q31_t)0x8627F090, - (q31_t)0xD8C8381C, (q31_t)0x86376092, (q31_t)0xD898620C, - (q31_t)0x8646E35B, (q31_t)0xD868920F, (q31_t)0x865678EA, - (q31_t)0xD838C82D, (q31_t)0x8666213C, (q31_t)0xD809046D, - (q31_t)0x8675DC4E, (q31_t)0xD7D946D7, (q31_t)0x8685AA1F, - (q31_t)0xD7A98F73, (q31_t)0x86958AAB, (q31_t)0xD779DE46, - (q31_t)0x86A57DF1, (q31_t)0xD74A335A, (q31_t)0x86B583EE, - (q31_t)0xD71A8EB5, (q31_t)0x86C59C9F, (q31_t)0xD6EAF05E, - (q31_t)0x86D5C802, (q31_t)0xD6BB585D, (q31_t)0x86E60614, - (q31_t)0xD68BC6BA, (q31_t)0x86F656D3, (q31_t)0xD65C3B7B, - (q31_t)0x8706BA3C, (q31_t)0xD62CB6A7, (q31_t)0x8717304E, - (q31_t)0xD5FD3847, (q31_t)0x8727B904, (q31_t)0xD5CDC062, - (q31_t)0x8738545E, (q31_t)0xD59E4EFE, (q31_t)0x87490257, - (q31_t)0xD56EE424, (q31_t)0x8759C2EF, (q31_t)0xD53F7FDA, - (q31_t)0x876A9621, (q31_t)0xD5102227, (q31_t)0x877B7BEC, - (q31_t)0xD4E0CB14, (q31_t)0x878C744C, (q31_t)0xD4B17AA7, - (q31_t)0x879D7F40, (q31_t)0xD48230E8, (q31_t)0x87AE9CC5, - (q31_t)0xD452EDDE, (q31_t)0x87BFCCD7, (q31_t)0xD423B190, - (q31_t)0x87D10F75, (q31_t)0xD3F47C06, (q31_t)0x87E2649B, - (q31_t)0xD3C54D46, (q31_t)0x87F3CC47, (q31_t)0xD3962559, - (q31_t)0x88054677, (q31_t)0xD3670445, (q31_t)0x8816D327, - (q31_t)0xD337EA12, (q31_t)0x88287255, (q31_t)0xD308D6C6, - (q31_t)0x883A23FE, (q31_t)0xD2D9CA6A, (q31_t)0x884BE820, - (q31_t)0xD2AAC504, (q31_t)0x885DBEB7, (q31_t)0xD27BC69C, - (q31_t)0x886FA7C2, (q31_t)0xD24CCF38, (q31_t)0x8881A33C, - (q31_t)0xD21DDEE1, (q31_t)0x8893B124, (q31_t)0xD1EEF59E, - (q31_t)0x88A5D177, (q31_t)0xD1C01374, (q31_t)0x88B80431, - (q31_t)0xD191386D, (q31_t)0x88CA4951, (q31_t)0xD162648F, - (q31_t)0x88DCA0D3, (q31_t)0xD13397E1, (q31_t)0x88EF0AB4, - (q31_t)0xD104D26B, (q31_t)0x890186F1, (q31_t)0xD0D61433, - (q31_t)0x89141589, (q31_t)0xD0A75D42, (q31_t)0x8926B677, - (q31_t)0xD078AD9D, (q31_t)0x893969B9, (q31_t)0xD04A054D, - (q31_t)0x894C2F4C, (q31_t)0xD01B6459, (q31_t)0x895F072D, - (q31_t)0xCFECCAC7, (q31_t)0x8971F15A, (q31_t)0xCFBE389F, - (q31_t)0x8984EDCF, (q31_t)0xCF8FADE8, (q31_t)0x8997FC89, - (q31_t)0xCF612AAA, (q31_t)0x89AB1D86, (q31_t)0xCF32AEEB, - (q31_t)0x89BE50C3, (q31_t)0xCF043AB2, (q31_t)0x89D1963C, - (q31_t)0xCED5CE08, (q31_t)0x89E4EDEE, (q31_t)0xCEA768F2, - (q31_t)0x89F857D8, (q31_t)0xCE790B78, (q31_t)0x8A0BD3F5, - (q31_t)0xCE4AB5A2, (q31_t)0x8A1F6242, (q31_t)0xCE1C6776, - (q31_t)0x8A3302BD, (q31_t)0xCDEE20FC, (q31_t)0x8A46B563, - (q31_t)0xCDBFE23A, (q31_t)0x8A5A7A30, (q31_t)0xCD91AB38, - (q31_t)0x8A6E5122, (q31_t)0xCD637BFD, (q31_t)0x8A823A35, - (q31_t)0xCD355490, (q31_t)0x8A963567, (q31_t)0xCD0734F8, - (q31_t)0x8AAA42B4, (q31_t)0xCCD91D3D, (q31_t)0x8ABE6219, - (q31_t)0xCCAB0D65, (q31_t)0x8AD29393, (q31_t)0xCC7D0577, - (q31_t)0x8AE6D71F, (q31_t)0xCC4F057B, (q31_t)0x8AFB2CBA, - (q31_t)0xCC210D78, (q31_t)0x8B0F9461, (q31_t)0xCBF31D75, - (q31_t)0x8B240E10, (q31_t)0xCBC53578, (q31_t)0x8B3899C5, - (q31_t)0xCB975589, (q31_t)0x8B4D377C, (q31_t)0xCB697DB0, - (q31_t)0x8B61E732, (q31_t)0xCB3BADF2, (q31_t)0x8B76A8E4, - (q31_t)0xCB0DE658, (q31_t)0x8B8B7C8F, (q31_t)0xCAE026E8, - (q31_t)0x8BA0622F, (q31_t)0xCAB26FA9, (q31_t)0x8BB559C1, - (q31_t)0xCA84C0A2, (q31_t)0x8BCA6342, (q31_t)0xCA5719DB, - (q31_t)0x8BDF7EAF, (q31_t)0xCA297B5A, (q31_t)0x8BF4AC05, - (q31_t)0xC9FBE527, (q31_t)0x8C09EB40, (q31_t)0xC9CE5748, - (q31_t)0x8C1F3C5C, (q31_t)0xC9A0D1C4, (q31_t)0x8C349F58, - (q31_t)0xC97354A3, (q31_t)0x8C4A142F, (q31_t)0xC945DFEC, - (q31_t)0x8C5F9ADD, (q31_t)0xC91873A5, (q31_t)0x8C753361, - (q31_t)0xC8EB0FD6, (q31_t)0x8C8ADDB6, (q31_t)0xC8BDB485, - (q31_t)0x8CA099D9, (q31_t)0xC89061BA, (q31_t)0x8CB667C7, - (q31_t)0xC863177B, (q31_t)0x8CCC477D, (q31_t)0xC835D5D0, - (q31_t)0x8CE238F6, (q31_t)0xC8089CBF, (q31_t)0x8CF83C30, - (q31_t)0xC7DB6C50, (q31_t)0x8D0E5127, (q31_t)0xC7AE4489, - (q31_t)0x8D2477D8, (q31_t)0xC7812571, (q31_t)0x8D3AB03F, - (q31_t)0xC7540F10, (q31_t)0x8D50FA59, (q31_t)0xC727016C, - (q31_t)0x8D675623, (q31_t)0xC6F9FC8D, (q31_t)0x8D7DC399, - (q31_t)0xC6CD0079, (q31_t)0x8D9442B7, (q31_t)0xC6A00D36, - (q31_t)0x8DAAD37B, (q31_t)0xC67322CD, (q31_t)0x8DC175E0, - (q31_t)0xC6464144, (q31_t)0x8DD829E4, (q31_t)0xC61968A2, - (q31_t)0x8DEEEF82, (q31_t)0xC5EC98ED, (q31_t)0x8E05C6B7, - (q31_t)0xC5BFD22E, (q31_t)0x8E1CAF80, (q31_t)0xC593146A, - (q31_t)0x8E33A9D9, (q31_t)0xC5665FA8, (q31_t)0x8E4AB5BF, - (q31_t)0xC539B3F0, (q31_t)0x8E61D32D, (q31_t)0xC50D1148, - (q31_t)0x8E790222, (q31_t)0xC4E077B8, (q31_t)0x8E904298, - (q31_t)0xC4B3E746, (q31_t)0x8EA7948C, (q31_t)0xC4875FF8, - (q31_t)0x8EBEF7FB, (q31_t)0xC45AE1D7, (q31_t)0x8ED66CE1, - (q31_t)0xC42E6CE8, (q31_t)0x8EEDF33B, (q31_t)0xC4020132, - (q31_t)0x8F058B04, (q31_t)0xC3D59EBD, (q31_t)0x8F1D343A, - (q31_t)0xC3A9458F, (q31_t)0x8F34EED8, (q31_t)0xC37CF5B0, - (q31_t)0x8F4CBADB, (q31_t)0xC350AF25, (q31_t)0x8F64983F, - (q31_t)0xC32471F6, (q31_t)0x8F7C8701, (q31_t)0xC2F83E2A, - (q31_t)0x8F94871D, (q31_t)0xC2CC13C7, (q31_t)0x8FAC988E, - (q31_t)0xC29FF2D4, (q31_t)0x8FC4BB53, (q31_t)0xC273DB58, - (q31_t)0x8FDCEF66, (q31_t)0xC247CD5A, (q31_t)0x8FF534C4, - (q31_t)0xC21BC8E0, (q31_t)0x900D8B69, (q31_t)0xC1EFCDF2, - (q31_t)0x9025F352, (q31_t)0xC1C3DC96, (q31_t)0x903E6C7A, - (q31_t)0xC197F4D3, (q31_t)0x9056F6DF, (q31_t)0xC16C16B0, - (q31_t)0x906F927B, (q31_t)0xC1404233, (q31_t)0x90883F4C, - (q31_t)0xC1147763, (q31_t)0x90A0FD4E, (q31_t)0xC0E8B648, - (q31_t)0x90B9CC7C, (q31_t)0xC0BCFEE7, (q31_t)0x90D2ACD3, - (q31_t)0xC0915147, (q31_t)0x90EB9E50, (q31_t)0xC065AD70, - (q31_t)0x9104A0ED, (q31_t)0xC03A1368, (q31_t)0x911DB4A8, - (q31_t)0xC00E8335, (q31_t)0x9136D97D, (q31_t)0xBFE2FCDF, - (q31_t)0x91500F67, (q31_t)0xBFB7806C, (q31_t)0x91695663, - (q31_t)0xBF8C0DE2, (q31_t)0x9182AE6C, (q31_t)0xBF60A54A, - (q31_t)0x919C1780, (q31_t)0xBF3546A8, (q31_t)0x91B5919A, - (q31_t)0xBF09F204, (q31_t)0x91CF1CB6, (q31_t)0xBEDEA765, - (q31_t)0x91E8B8D0, (q31_t)0xBEB366D1, (q31_t)0x920265E4, - (q31_t)0xBE88304F, (q31_t)0x921C23EE, (q31_t)0xBE5D03E5, - (q31_t)0x9235F2EB, (q31_t)0xBE31E19B, (q31_t)0x924FD2D6, - (q31_t)0xBE06C977, (q31_t)0x9269C3AC, (q31_t)0xBDDBBB7F, - (q31_t)0x9283C567, (q31_t)0xBDB0B7BA, (q31_t)0x929DD805, - (q31_t)0xBD85BE2F, (q31_t)0x92B7FB82, (q31_t)0xBD5ACEE5, - (q31_t)0x92D22FD8, (q31_t)0xBD2FE9E1, (q31_t)0x92EC7505, - (q31_t)0xBD050F2C, (q31_t)0x9306CB04, (q31_t)0xBCDA3ECA, - (q31_t)0x932131D1, (q31_t)0xBCAF78C3, (q31_t)0x933BA968, - (q31_t)0xBC84BD1E, (q31_t)0x935631C5, (q31_t)0xBC5A0BE1, - (q31_t)0x9370CAE4, (q31_t)0xBC2F6513, (q31_t)0x938B74C0, - (q31_t)0xBC04C8BA, (q31_t)0x93A62F56, (q31_t)0xBBDA36DC, - (q31_t)0x93C0FAA2, (q31_t)0xBBAFAF81, (q31_t)0x93DBD69F, - (q31_t)0xBB8532AF, (q31_t)0x93F6C34A, (q31_t)0xBB5AC06C, - (q31_t)0x9411C09D, (q31_t)0xBB3058C0, (q31_t)0x942CCE95, - (q31_t)0xBB05FBB0, (q31_t)0x9447ED2F, (q31_t)0xBADBA943, - (q31_t)0x94631C64, (q31_t)0xBAB1617F, (q31_t)0x947E5C32, - (q31_t)0xBA87246C, (q31_t)0x9499AC95, (q31_t)0xBA5CF210, - (q31_t)0x94B50D87, (q31_t)0xBA32CA70, (q31_t)0x94D07F05, - (q31_t)0xBA08AD94, (q31_t)0x94EC010B, (q31_t)0xB9DE9B83, - (q31_t)0x95079393, (q31_t)0xB9B49442, (q31_t)0x9523369B, - (q31_t)0xB98A97D8, (q31_t)0x953EEA1E, (q31_t)0xB960A64B, - (q31_t)0x955AAE17, (q31_t)0xB936BFA3, (q31_t)0x95768282, - (q31_t)0xB90CE3E6, (q31_t)0x9592675B, (q31_t)0xB8E31319, - (q31_t)0x95AE5C9E, (q31_t)0xB8B94D44, (q31_t)0x95CA6246, - (q31_t)0xB88F926C, (q31_t)0x95E6784F, (q31_t)0xB865E299, - (q31_t)0x96029EB5, (q31_t)0xB83C3DD1, (q31_t)0x961ED573, - (q31_t)0xB812A419, (q31_t)0x963B1C85, (q31_t)0xB7E9157A, - (q31_t)0x965773E7, (q31_t)0xB7BF91F8, (q31_t)0x9673DB94, - (q31_t)0xB796199B, (q31_t)0x96905387, (q31_t)0xB76CAC68, - (q31_t)0x96ACDBBD, (q31_t)0xB7434A67, (q31_t)0x96C97431, - (q31_t)0xB719F39D, (q31_t)0x96E61CDF, (q31_t)0xB6F0A811, - (q31_t)0x9702D5C2, (q31_t)0xB6C767CA, (q31_t)0x971F9ED6, - (q31_t)0xB69E32CD, (q31_t)0x973C7816, (q31_t)0xB6750921, - (q31_t)0x9759617E, (q31_t)0xB64BEACC, (q31_t)0x97765B0A, - (q31_t)0xB622D7D5, (q31_t)0x979364B5, (q31_t)0xB5F9D042, - (q31_t)0x97B07E7A, (q31_t)0xB5D0D41A, (q31_t)0x97CDA855, - (q31_t)0xB5A7E362, (q31_t)0x97EAE241, (q31_t)0xB57EFE21, - (q31_t)0x98082C3B, (q31_t)0xB556245E, (q31_t)0x9825863D, - (q31_t)0xB52D561E, (q31_t)0x9842F043, (q31_t)0xB5049368, - (q31_t)0x98606A48, (q31_t)0xB4DBDC42, (q31_t)0x987DF449, - (q31_t)0xB4B330B2, (q31_t)0x989B8E3F, (q31_t)0xB48A90C0, - (q31_t)0x98B93828, (q31_t)0xB461FC70, (q31_t)0x98D6F1FE, - (q31_t)0xB43973C9, (q31_t)0x98F4BBBC, (q31_t)0xB410F6D2, - (q31_t)0x9912955E, (q31_t)0xB3E88591, (q31_t)0x99307EE0, - (q31_t)0xB3C0200C, (q31_t)0x994E783C, (q31_t)0xB397C649, - (q31_t)0x996C816F, (q31_t)0xB36F784E, (q31_t)0x998A9A73, - (q31_t)0xB3473622, (q31_t)0x99A8C344, (q31_t)0xB31EFFCB, - (q31_t)0x99C6FBDE, (q31_t)0xB2F6D54F, (q31_t)0x99E5443A, - (q31_t)0xB2CEB6B5, (q31_t)0x9A039C56, (q31_t)0xB2A6A401, - (q31_t)0x9A22042C, (q31_t)0xB27E9D3B, (q31_t)0x9A407BB8, - (q31_t)0xB256A26A, (q31_t)0x9A5F02F5, (q31_t)0xB22EB392, - (q31_t)0x9A7D99DD, (q31_t)0xB206D0BA, (q31_t)0x9A9C406D, - (q31_t)0xB1DEF9E8, (q31_t)0x9ABAF6A0, (q31_t)0xB1B72F23, - (q31_t)0x9AD9BC71, (q31_t)0xB18F7070, (q31_t)0x9AF891DB, - (q31_t)0xB167BDD6, (q31_t)0x9B1776D9, (q31_t)0xB140175B, - (q31_t)0x9B366B67, (q31_t)0xB1187D05, (q31_t)0x9B556F80, - (q31_t)0xB0F0EEDA, (q31_t)0x9B748320, (q31_t)0xB0C96CDF, - (q31_t)0x9B93A640, (q31_t)0xB0A1F71C, (q31_t)0x9BB2D8DD, - (q31_t)0xB07A8D97, (q31_t)0x9BD21AF2, (q31_t)0xB0533055, - (q31_t)0x9BF16C7A, (q31_t)0xB02BDF5C, (q31_t)0x9C10CD70, - (q31_t)0xB0049AB2, (q31_t)0x9C303DCF, (q31_t)0xAFDD625F, - (q31_t)0x9C4FBD92, (q31_t)0xAFB63667, (q31_t)0x9C6F4CB5, - (q31_t)0xAF8F16D0, (q31_t)0x9C8EEB33, (q31_t)0xAF6803A1, - (q31_t)0x9CAE9907, (q31_t)0xAF40FCE0, (q31_t)0x9CCE562B, - (q31_t)0xAF1A0293, (q31_t)0x9CEE229C, (q31_t)0xAEF314BF, - (q31_t)0x9D0DFE53, (q31_t)0xAECC336B, (q31_t)0x9D2DE94D, - (q31_t)0xAEA55E9D, (q31_t)0x9D4DE384, (q31_t)0xAE7E965B, - (q31_t)0x9D6DECF4, (q31_t)0xAE57DAAA, (q31_t)0x9D8E0596, - (q31_t)0xAE312B91, (q31_t)0x9DAE2D68, (q31_t)0xAE0A8916, - (q31_t)0x9DCE6462, (q31_t)0xADE3F33E, (q31_t)0x9DEEAA82, - (q31_t)0xADBD6A10, (q31_t)0x9E0EFFC1, (q31_t)0xAD96ED91, - (q31_t)0x9E2F641A, (q31_t)0xAD707DC8, (q31_t)0x9E4FD789, - (q31_t)0xAD4A1ABA, (q31_t)0x9E705A09, (q31_t)0xAD23C46D, - (q31_t)0x9E90EB94, (q31_t)0xACFD7AE8, (q31_t)0x9EB18C26, - (q31_t)0xACD73E30, (q31_t)0x9ED23BB9, (q31_t)0xACB10E4A, - (q31_t)0x9EF2FA48, (q31_t)0xAC8AEB3E, (q31_t)0x9F13C7D0, - (q31_t)0xAC64D510, (q31_t)0x9F34A449, (q31_t)0xAC3ECBC7, - (q31_t)0x9F558FB0, (q31_t)0xAC18CF68, (q31_t)0x9F7689FF, - (q31_t)0xABF2DFFA, (q31_t)0x9F979331, (q31_t)0xABCCFD82, - (q31_t)0x9FB8AB41, (q31_t)0xABA72806, (q31_t)0x9FD9D22A, - (q31_t)0xAB815F8C, (q31_t)0x9FFB07E7, (q31_t)0xAB5BA41A, - (q31_t)0xA01C4C72, (q31_t)0xAB35F5B5, (q31_t)0xA03D9FC7, - (q31_t)0xAB105464, (q31_t)0xA05F01E1, (q31_t)0xAAEAC02B, - (q31_t)0xA08072BA, (q31_t)0xAAC53912, (q31_t)0xA0A1F24C, - (q31_t)0xAA9FBF1D, (q31_t)0xA0C38094, (q31_t)0xAA7A5253, - (q31_t)0xA0E51D8C, (q31_t)0xAA54F2B9, (q31_t)0xA106C92E, - (q31_t)0xAA2FA055, (q31_t)0xA1288376, (q31_t)0xAA0A5B2D, - (q31_t)0xA14A4C5E, (q31_t)0xA9E52347, (q31_t)0xA16C23E1, - (q31_t)0xA9BFF8A8, (q31_t)0xA18E09F9, (q31_t)0xA99ADB56, - (q31_t)0xA1AFFEA2, (q31_t)0xA975CB56, (q31_t)0xA1D201D7, - (q31_t)0xA950C8AF, (q31_t)0xA1F41391, (q31_t)0xA92BD366, - (q31_t)0xA21633CD, (q31_t)0xA906EB81, (q31_t)0xA2386283, - (q31_t)0xA8E21106, (q31_t)0xA25A9FB1, (q31_t)0xA8BD43FA, - (q31_t)0xA27CEB4F, (q31_t)0xA8988463, (q31_t)0xA29F4559, - (q31_t)0xA873D246, (q31_t)0xA2C1ADC9, (q31_t)0xA84F2DA9, - (q31_t)0xA2E4249A, (q31_t)0xA82A9693, (q31_t)0xA306A9C7, - (q31_t)0xA8060D08, (q31_t)0xA3293D4B, (q31_t)0xA7E1910E, - (q31_t)0xA34BDF20, (q31_t)0xA7BD22AB, (q31_t)0xA36E8F40, - (q31_t)0xA798C1E4, (q31_t)0xA3914DA7, (q31_t)0xA7746EC0, - (q31_t)0xA3B41A4F, (q31_t)0xA7502943, (q31_t)0xA3D6F533, - (q31_t)0xA72BF173, (q31_t)0xA3F9DE4D, (q31_t)0xA707C756, - (q31_t)0xA41CD598, (q31_t)0xA6E3AAF2, (q31_t)0xA43FDB0F, - (q31_t)0xA6BF9C4B, (q31_t)0xA462EEAC, (q31_t)0xA69B9B68, - (q31_t)0xA4861069, (q31_t)0xA677A84E, (q31_t)0xA4A94042, - (q31_t)0xA653C302, (q31_t)0xA4CC7E31, (q31_t)0xA62FEB8B, - (q31_t)0xA4EFCA31, (q31_t)0xA60C21ED, (q31_t)0xA513243B, - (q31_t)0xA5E8662F, (q31_t)0xA5368C4B, (q31_t)0xA5C4B855, - (q31_t)0xA55A025B, (q31_t)0xA5A11865, (q31_t)0xA57D8666, - (q31_t)0xA57D8666, (q31_t)0xA5A11865, (q31_t)0xA55A025B, - (q31_t)0xA5C4B855, (q31_t)0xA5368C4B, (q31_t)0xA5E8662F, - (q31_t)0xA513243B, (q31_t)0xA60C21ED, (q31_t)0xA4EFCA31, - (q31_t)0xA62FEB8B, (q31_t)0xA4CC7E31, (q31_t)0xA653C302, - (q31_t)0xA4A94042, (q31_t)0xA677A84E, (q31_t)0xA4861069, - (q31_t)0xA69B9B68, (q31_t)0xA462EEAC, (q31_t)0xA6BF9C4B, - (q31_t)0xA43FDB0F, (q31_t)0xA6E3AAF2, (q31_t)0xA41CD598, - (q31_t)0xA707C756, (q31_t)0xA3F9DE4D, (q31_t)0xA72BF173, - (q31_t)0xA3D6F533, (q31_t)0xA7502943, (q31_t)0xA3B41A4F, - (q31_t)0xA7746EC0, (q31_t)0xA3914DA7, (q31_t)0xA798C1E4, - (q31_t)0xA36E8F40, (q31_t)0xA7BD22AB, (q31_t)0xA34BDF20, - (q31_t)0xA7E1910E, (q31_t)0xA3293D4B, (q31_t)0xA8060D08, - (q31_t)0xA306A9C7, (q31_t)0xA82A9693, (q31_t)0xA2E4249A, - (q31_t)0xA84F2DA9, (q31_t)0xA2C1ADC9, (q31_t)0xA873D246, - (q31_t)0xA29F4559, (q31_t)0xA8988463, (q31_t)0xA27CEB4F, - (q31_t)0xA8BD43FA, (q31_t)0xA25A9FB1, (q31_t)0xA8E21106, - (q31_t)0xA2386283, (q31_t)0xA906EB81, (q31_t)0xA21633CD, - (q31_t)0xA92BD366, (q31_t)0xA1F41391, (q31_t)0xA950C8AF, - (q31_t)0xA1D201D7, (q31_t)0xA975CB56, (q31_t)0xA1AFFEA2, - (q31_t)0xA99ADB56, (q31_t)0xA18E09F9, (q31_t)0xA9BFF8A8, - (q31_t)0xA16C23E1, (q31_t)0xA9E52347, (q31_t)0xA14A4C5E, - (q31_t)0xAA0A5B2D, (q31_t)0xA1288376, (q31_t)0xAA2FA055, - (q31_t)0xA106C92E, (q31_t)0xAA54F2B9, (q31_t)0xA0E51D8C, - (q31_t)0xAA7A5253, (q31_t)0xA0C38094, (q31_t)0xAA9FBF1D, - (q31_t)0xA0A1F24C, (q31_t)0xAAC53912, (q31_t)0xA08072BA, - (q31_t)0xAAEAC02B, (q31_t)0xA05F01E1, (q31_t)0xAB105464, - (q31_t)0xA03D9FC7, (q31_t)0xAB35F5B5, (q31_t)0xA01C4C72, - (q31_t)0xAB5BA41A, (q31_t)0x9FFB07E7, (q31_t)0xAB815F8C, - (q31_t)0x9FD9D22A, (q31_t)0xABA72806, (q31_t)0x9FB8AB41, - (q31_t)0xABCCFD82, (q31_t)0x9F979331, (q31_t)0xABF2DFFA, - (q31_t)0x9F7689FF, (q31_t)0xAC18CF68, (q31_t)0x9F558FB0, - (q31_t)0xAC3ECBC7, (q31_t)0x9F34A449, (q31_t)0xAC64D510, - (q31_t)0x9F13C7D0, (q31_t)0xAC8AEB3E, (q31_t)0x9EF2FA48, - (q31_t)0xACB10E4A, (q31_t)0x9ED23BB9, (q31_t)0xACD73E30, - (q31_t)0x9EB18C26, (q31_t)0xACFD7AE8, (q31_t)0x9E90EB94, - (q31_t)0xAD23C46D, (q31_t)0x9E705A09, (q31_t)0xAD4A1ABA, - (q31_t)0x9E4FD789, (q31_t)0xAD707DC8, (q31_t)0x9E2F641A, - (q31_t)0xAD96ED91, (q31_t)0x9E0EFFC1, (q31_t)0xADBD6A10, - (q31_t)0x9DEEAA82, (q31_t)0xADE3F33E, (q31_t)0x9DCE6462, - (q31_t)0xAE0A8916, (q31_t)0x9DAE2D68, (q31_t)0xAE312B91, - (q31_t)0x9D8E0596, (q31_t)0xAE57DAAA, (q31_t)0x9D6DECF4, - (q31_t)0xAE7E965B, (q31_t)0x9D4DE384, (q31_t)0xAEA55E9D, - (q31_t)0x9D2DE94D, (q31_t)0xAECC336B, (q31_t)0x9D0DFE53, - (q31_t)0xAEF314BF, (q31_t)0x9CEE229C, (q31_t)0xAF1A0293, - (q31_t)0x9CCE562B, (q31_t)0xAF40FCE0, (q31_t)0x9CAE9907, - (q31_t)0xAF6803A1, (q31_t)0x9C8EEB33, (q31_t)0xAF8F16D0, - (q31_t)0x9C6F4CB5, (q31_t)0xAFB63667, (q31_t)0x9C4FBD92, - (q31_t)0xAFDD625F, (q31_t)0x9C303DCF, (q31_t)0xB0049AB2, - (q31_t)0x9C10CD70, (q31_t)0xB02BDF5C, (q31_t)0x9BF16C7A, - (q31_t)0xB0533055, (q31_t)0x9BD21AF2, (q31_t)0xB07A8D97, - (q31_t)0x9BB2D8DD, (q31_t)0xB0A1F71C, (q31_t)0x9B93A640, - (q31_t)0xB0C96CDF, (q31_t)0x9B748320, (q31_t)0xB0F0EEDA, - (q31_t)0x9B556F80, (q31_t)0xB1187D05, (q31_t)0x9B366B67, - (q31_t)0xB140175B, (q31_t)0x9B1776D9, (q31_t)0xB167BDD6, - (q31_t)0x9AF891DB, (q31_t)0xB18F7070, (q31_t)0x9AD9BC71, - (q31_t)0xB1B72F23, (q31_t)0x9ABAF6A0, (q31_t)0xB1DEF9E8, - (q31_t)0x9A9C406D, (q31_t)0xB206D0BA, (q31_t)0x9A7D99DD, - (q31_t)0xB22EB392, (q31_t)0x9A5F02F5, (q31_t)0xB256A26A, - (q31_t)0x9A407BB8, (q31_t)0xB27E9D3B, (q31_t)0x9A22042C, - (q31_t)0xB2A6A401, (q31_t)0x9A039C56, (q31_t)0xB2CEB6B5, - (q31_t)0x99E5443A, (q31_t)0xB2F6D54F, (q31_t)0x99C6FBDE, - (q31_t)0xB31EFFCB, (q31_t)0x99A8C344, (q31_t)0xB3473622, - (q31_t)0x998A9A73, (q31_t)0xB36F784E, (q31_t)0x996C816F, - (q31_t)0xB397C649, (q31_t)0x994E783C, (q31_t)0xB3C0200C, - (q31_t)0x99307EE0, (q31_t)0xB3E88591, (q31_t)0x9912955E, - (q31_t)0xB410F6D2, (q31_t)0x98F4BBBC, (q31_t)0xB43973C9, - (q31_t)0x98D6F1FE, (q31_t)0xB461FC70, (q31_t)0x98B93828, - (q31_t)0xB48A90C0, (q31_t)0x989B8E3F, (q31_t)0xB4B330B2, - (q31_t)0x987DF449, (q31_t)0xB4DBDC42, (q31_t)0x98606A48, - (q31_t)0xB5049368, (q31_t)0x9842F043, (q31_t)0xB52D561E, - (q31_t)0x9825863D, (q31_t)0xB556245E, (q31_t)0x98082C3B, - (q31_t)0xB57EFE21, (q31_t)0x97EAE241, (q31_t)0xB5A7E362, - (q31_t)0x97CDA855, (q31_t)0xB5D0D41A, (q31_t)0x97B07E7A, - (q31_t)0xB5F9D042, (q31_t)0x979364B5, (q31_t)0xB622D7D5, - (q31_t)0x97765B0A, (q31_t)0xB64BEACC, (q31_t)0x9759617E, - (q31_t)0xB6750921, (q31_t)0x973C7816, (q31_t)0xB69E32CD, - (q31_t)0x971F9ED6, (q31_t)0xB6C767CA, (q31_t)0x9702D5C2, - (q31_t)0xB6F0A811, (q31_t)0x96E61CDF, (q31_t)0xB719F39D, - (q31_t)0x96C97431, (q31_t)0xB7434A67, (q31_t)0x96ACDBBD, - (q31_t)0xB76CAC68, (q31_t)0x96905387, (q31_t)0xB796199B, - (q31_t)0x9673DB94, (q31_t)0xB7BF91F8, (q31_t)0x965773E7, - (q31_t)0xB7E9157A, (q31_t)0x963B1C85, (q31_t)0xB812A419, - (q31_t)0x961ED573, (q31_t)0xB83C3DD1, (q31_t)0x96029EB5, - (q31_t)0xB865E299, (q31_t)0x95E6784F, (q31_t)0xB88F926C, - (q31_t)0x95CA6246, (q31_t)0xB8B94D44, (q31_t)0x95AE5C9E, - (q31_t)0xB8E31319, (q31_t)0x9592675B, (q31_t)0xB90CE3E6, - (q31_t)0x95768282, (q31_t)0xB936BFA3, (q31_t)0x955AAE17, - (q31_t)0xB960A64B, (q31_t)0x953EEA1E, (q31_t)0xB98A97D8, - (q31_t)0x9523369B, (q31_t)0xB9B49442, (q31_t)0x95079393, - (q31_t)0xB9DE9B83, (q31_t)0x94EC010B, (q31_t)0xBA08AD94, - (q31_t)0x94D07F05, (q31_t)0xBA32CA70, (q31_t)0x94B50D87, - (q31_t)0xBA5CF210, (q31_t)0x9499AC95, (q31_t)0xBA87246C, - (q31_t)0x947E5C32, (q31_t)0xBAB1617F, (q31_t)0x94631C64, - (q31_t)0xBADBA943, (q31_t)0x9447ED2F, (q31_t)0xBB05FBB0, - (q31_t)0x942CCE95, (q31_t)0xBB3058C0, (q31_t)0x9411C09D, - (q31_t)0xBB5AC06C, (q31_t)0x93F6C34A, (q31_t)0xBB8532AF, - (q31_t)0x93DBD69F, (q31_t)0xBBAFAF81, (q31_t)0x93C0FAA2, - (q31_t)0xBBDA36DC, (q31_t)0x93A62F56, (q31_t)0xBC04C8BA, - (q31_t)0x938B74C0, (q31_t)0xBC2F6513, (q31_t)0x9370CAE4, - (q31_t)0xBC5A0BE1, (q31_t)0x935631C5, (q31_t)0xBC84BD1E, - (q31_t)0x933BA968, (q31_t)0xBCAF78C3, (q31_t)0x932131D1, - (q31_t)0xBCDA3ECA, (q31_t)0x9306CB04, (q31_t)0xBD050F2C, - (q31_t)0x92EC7505, (q31_t)0xBD2FE9E1, (q31_t)0x92D22FD8, - (q31_t)0xBD5ACEE5, (q31_t)0x92B7FB82, (q31_t)0xBD85BE2F, - (q31_t)0x929DD805, (q31_t)0xBDB0B7BA, (q31_t)0x9283C567, - (q31_t)0xBDDBBB7F, (q31_t)0x9269C3AC, (q31_t)0xBE06C977, - (q31_t)0x924FD2D6, (q31_t)0xBE31E19B, (q31_t)0x9235F2EB, - (q31_t)0xBE5D03E5, (q31_t)0x921C23EE, (q31_t)0xBE88304F, - (q31_t)0x920265E4, (q31_t)0xBEB366D1, (q31_t)0x91E8B8D0, - (q31_t)0xBEDEA765, (q31_t)0x91CF1CB6, (q31_t)0xBF09F204, - (q31_t)0x91B5919A, (q31_t)0xBF3546A8, (q31_t)0x919C1780, - (q31_t)0xBF60A54A, (q31_t)0x9182AE6C, (q31_t)0xBF8C0DE2, - (q31_t)0x91695663, (q31_t)0xBFB7806C, (q31_t)0x91500F67, - (q31_t)0xBFE2FCDF, (q31_t)0x9136D97D, (q31_t)0xC00E8335, - (q31_t)0x911DB4A8, (q31_t)0xC03A1368, (q31_t)0x9104A0ED, - (q31_t)0xC065AD70, (q31_t)0x90EB9E50, (q31_t)0xC0915147, - (q31_t)0x90D2ACD3, (q31_t)0xC0BCFEE7, (q31_t)0x90B9CC7C, - (q31_t)0xC0E8B648, (q31_t)0x90A0FD4E, (q31_t)0xC1147763, - (q31_t)0x90883F4C, (q31_t)0xC1404233, (q31_t)0x906F927B, - (q31_t)0xC16C16B0, (q31_t)0x9056F6DF, (q31_t)0xC197F4D3, - (q31_t)0x903E6C7A, (q31_t)0xC1C3DC96, (q31_t)0x9025F352, - (q31_t)0xC1EFCDF2, (q31_t)0x900D8B69, (q31_t)0xC21BC8E0, - (q31_t)0x8FF534C4, (q31_t)0xC247CD5A, (q31_t)0x8FDCEF66, - (q31_t)0xC273DB58, (q31_t)0x8FC4BB53, (q31_t)0xC29FF2D4, - (q31_t)0x8FAC988E, (q31_t)0xC2CC13C7, (q31_t)0x8F94871D, - (q31_t)0xC2F83E2A, (q31_t)0x8F7C8701, (q31_t)0xC32471F6, - (q31_t)0x8F64983F, (q31_t)0xC350AF25, (q31_t)0x8F4CBADB, - (q31_t)0xC37CF5B0, (q31_t)0x8F34EED8, (q31_t)0xC3A9458F, - (q31_t)0x8F1D343A, (q31_t)0xC3D59EBD, (q31_t)0x8F058B04, - (q31_t)0xC4020132, (q31_t)0x8EEDF33B, (q31_t)0xC42E6CE8, - (q31_t)0x8ED66CE1, (q31_t)0xC45AE1D7, (q31_t)0x8EBEF7FB, - (q31_t)0xC4875FF8, (q31_t)0x8EA7948C, (q31_t)0xC4B3E746, - (q31_t)0x8E904298, (q31_t)0xC4E077B8, (q31_t)0x8E790222, - (q31_t)0xC50D1148, (q31_t)0x8E61D32D, (q31_t)0xC539B3F0, - (q31_t)0x8E4AB5BF, (q31_t)0xC5665FA8, (q31_t)0x8E33A9D9, - (q31_t)0xC593146A, (q31_t)0x8E1CAF80, (q31_t)0xC5BFD22E, - (q31_t)0x8E05C6B7, (q31_t)0xC5EC98ED, (q31_t)0x8DEEEF82, - (q31_t)0xC61968A2, (q31_t)0x8DD829E4, (q31_t)0xC6464144, - (q31_t)0x8DC175E0, (q31_t)0xC67322CD, (q31_t)0x8DAAD37B, - (q31_t)0xC6A00D36, (q31_t)0x8D9442B7, (q31_t)0xC6CD0079, - (q31_t)0x8D7DC399, (q31_t)0xC6F9FC8D, (q31_t)0x8D675623, - (q31_t)0xC727016C, (q31_t)0x8D50FA59, (q31_t)0xC7540F10, - (q31_t)0x8D3AB03F, (q31_t)0xC7812571, (q31_t)0x8D2477D8, - (q31_t)0xC7AE4489, (q31_t)0x8D0E5127, (q31_t)0xC7DB6C50, - (q31_t)0x8CF83C30, (q31_t)0xC8089CBF, (q31_t)0x8CE238F6, - (q31_t)0xC835D5D0, (q31_t)0x8CCC477D, (q31_t)0xC863177B, - (q31_t)0x8CB667C7, (q31_t)0xC89061BA, (q31_t)0x8CA099D9, - (q31_t)0xC8BDB485, (q31_t)0x8C8ADDB6, (q31_t)0xC8EB0FD6, - (q31_t)0x8C753361, (q31_t)0xC91873A5, (q31_t)0x8C5F9ADD, - (q31_t)0xC945DFEC, (q31_t)0x8C4A142F, (q31_t)0xC97354A3, - (q31_t)0x8C349F58, (q31_t)0xC9A0D1C4, (q31_t)0x8C1F3C5C, - (q31_t)0xC9CE5748, (q31_t)0x8C09EB40, (q31_t)0xC9FBE527, - (q31_t)0x8BF4AC05, (q31_t)0xCA297B5A, (q31_t)0x8BDF7EAF, - (q31_t)0xCA5719DB, (q31_t)0x8BCA6342, (q31_t)0xCA84C0A2, - (q31_t)0x8BB559C1, (q31_t)0xCAB26FA9, (q31_t)0x8BA0622F, - (q31_t)0xCAE026E8, (q31_t)0x8B8B7C8F, (q31_t)0xCB0DE658, - (q31_t)0x8B76A8E4, (q31_t)0xCB3BADF2, (q31_t)0x8B61E732, - (q31_t)0xCB697DB0, (q31_t)0x8B4D377C, (q31_t)0xCB975589, - (q31_t)0x8B3899C5, (q31_t)0xCBC53578, (q31_t)0x8B240E10, - (q31_t)0xCBF31D75, (q31_t)0x8B0F9461, (q31_t)0xCC210D78, - (q31_t)0x8AFB2CBA, (q31_t)0xCC4F057B, (q31_t)0x8AE6D71F, - (q31_t)0xCC7D0577, (q31_t)0x8AD29393, (q31_t)0xCCAB0D65, - (q31_t)0x8ABE6219, (q31_t)0xCCD91D3D, (q31_t)0x8AAA42B4, - (q31_t)0xCD0734F8, (q31_t)0x8A963567, (q31_t)0xCD355490, - (q31_t)0x8A823A35, (q31_t)0xCD637BFD, (q31_t)0x8A6E5122, - (q31_t)0xCD91AB38, (q31_t)0x8A5A7A30, (q31_t)0xCDBFE23A, - (q31_t)0x8A46B563, (q31_t)0xCDEE20FC, (q31_t)0x8A3302BD, - (q31_t)0xCE1C6776, (q31_t)0x8A1F6242, (q31_t)0xCE4AB5A2, - (q31_t)0x8A0BD3F5, (q31_t)0xCE790B78, (q31_t)0x89F857D8, - (q31_t)0xCEA768F2, (q31_t)0x89E4EDEE, (q31_t)0xCED5CE08, - (q31_t)0x89D1963C, (q31_t)0xCF043AB2, (q31_t)0x89BE50C3, - (q31_t)0xCF32AEEB, (q31_t)0x89AB1D86, (q31_t)0xCF612AAA, - (q31_t)0x8997FC89, (q31_t)0xCF8FADE8, (q31_t)0x8984EDCF, - (q31_t)0xCFBE389F, (q31_t)0x8971F15A, (q31_t)0xCFECCAC7, - (q31_t)0x895F072D, (q31_t)0xD01B6459, (q31_t)0x894C2F4C, - (q31_t)0xD04A054D, (q31_t)0x893969B9, (q31_t)0xD078AD9D, - (q31_t)0x8926B677, (q31_t)0xD0A75D42, (q31_t)0x89141589, - (q31_t)0xD0D61433, (q31_t)0x890186F1, (q31_t)0xD104D26B, - (q31_t)0x88EF0AB4, (q31_t)0xD13397E1, (q31_t)0x88DCA0D3, - (q31_t)0xD162648F, (q31_t)0x88CA4951, (q31_t)0xD191386D, - (q31_t)0x88B80431, (q31_t)0xD1C01374, (q31_t)0x88A5D177, - (q31_t)0xD1EEF59E, (q31_t)0x8893B124, (q31_t)0xD21DDEE1, - (q31_t)0x8881A33C, (q31_t)0xD24CCF38, (q31_t)0x886FA7C2, - (q31_t)0xD27BC69C, (q31_t)0x885DBEB7, (q31_t)0xD2AAC504, - (q31_t)0x884BE820, (q31_t)0xD2D9CA6A, (q31_t)0x883A23FE, - (q31_t)0xD308D6C6, (q31_t)0x88287255, (q31_t)0xD337EA12, - (q31_t)0x8816D327, (q31_t)0xD3670445, (q31_t)0x88054677, - (q31_t)0xD3962559, (q31_t)0x87F3CC47, (q31_t)0xD3C54D46, - (q31_t)0x87E2649B, (q31_t)0xD3F47C06, (q31_t)0x87D10F75, - (q31_t)0xD423B190, (q31_t)0x87BFCCD7, (q31_t)0xD452EDDE, - (q31_t)0x87AE9CC5, (q31_t)0xD48230E8, (q31_t)0x879D7F40, - (q31_t)0xD4B17AA7, (q31_t)0x878C744C, (q31_t)0xD4E0CB14, - (q31_t)0x877B7BEC, (q31_t)0xD5102227, (q31_t)0x876A9621, - (q31_t)0xD53F7FDA, (q31_t)0x8759C2EF, (q31_t)0xD56EE424, - (q31_t)0x87490257, (q31_t)0xD59E4EFE, (q31_t)0x8738545E, - (q31_t)0xD5CDC062, (q31_t)0x8727B904, (q31_t)0xD5FD3847, - (q31_t)0x8717304E, (q31_t)0xD62CB6A7, (q31_t)0x8706BA3C, - (q31_t)0xD65C3B7B, (q31_t)0x86F656D3, (q31_t)0xD68BC6BA, - (q31_t)0x86E60614, (q31_t)0xD6BB585D, (q31_t)0x86D5C802, - (q31_t)0xD6EAF05E, (q31_t)0x86C59C9F, (q31_t)0xD71A8EB5, - (q31_t)0x86B583EE, (q31_t)0xD74A335A, (q31_t)0x86A57DF1, - (q31_t)0xD779DE46, (q31_t)0x86958AAB, (q31_t)0xD7A98F73, - (q31_t)0x8685AA1F, (q31_t)0xD7D946D7, (q31_t)0x8675DC4E, - (q31_t)0xD809046D, (q31_t)0x8666213C, (q31_t)0xD838C82D, - (q31_t)0x865678EA, (q31_t)0xD868920F, (q31_t)0x8646E35B, - (q31_t)0xD898620C, (q31_t)0x86376092, (q31_t)0xD8C8381C, - (q31_t)0x8627F090, (q31_t)0xD8F81439, (q31_t)0x86189359, - (q31_t)0xD927F65B, (q31_t)0x860948EE, (q31_t)0xD957DE7A, - (q31_t)0x85FA1152, (q31_t)0xD987CC8F, (q31_t)0x85EAEC88, - (q31_t)0xD9B7C093, (q31_t)0x85DBDA91, (q31_t)0xD9E7BA7E, - (q31_t)0x85CCDB70, (q31_t)0xDA17BA4A, (q31_t)0x85BDEF27, - (q31_t)0xDA47BFED, (q31_t)0x85AF15B9, (q31_t)0xDA77CB62, - (q31_t)0x85A04F28, (q31_t)0xDAA7DCA1, (q31_t)0x85919B75, - (q31_t)0xDAD7F3A2, (q31_t)0x8582FAA4, (q31_t)0xDB08105E, - (q31_t)0x85746CB7, (q31_t)0xDB3832CD, (q31_t)0x8565F1B0, - (q31_t)0xDB685AE8, (q31_t)0x85578991, (q31_t)0xDB9888A8, - (q31_t)0x8549345C, (q31_t)0xDBC8BC05, (q31_t)0x853AF214, - (q31_t)0xDBF8F4F8, (q31_t)0x852CC2BA, (q31_t)0xDC293379, - (q31_t)0x851EA652, (q31_t)0xDC597781, (q31_t)0x85109CDC, - (q31_t)0xDC89C108, (q31_t)0x8502A65C, (q31_t)0xDCBA1008, - (q31_t)0x84F4C2D3, (q31_t)0xDCEA6478, (q31_t)0x84E6F244, - (q31_t)0xDD1ABE51, (q31_t)0x84D934B0, (q31_t)0xDD4B1D8B, - (q31_t)0x84CB8A1B, (q31_t)0xDD7B8220, (q31_t)0x84BDF285, - (q31_t)0xDDABEC07, (q31_t)0x84B06DF1, (q31_t)0xDDDC5B3A, - (q31_t)0x84A2FC62, (q31_t)0xDE0CCFB1, (q31_t)0x84959DD9, - (q31_t)0xDE3D4963, (q31_t)0x84885257, (q31_t)0xDE6DC84B, - (q31_t)0x847B19E1, (q31_t)0xDE9E4C60, (q31_t)0x846DF476, - (q31_t)0xDECED59B, (q31_t)0x8460E21A, (q31_t)0xDEFF63F4, - (q31_t)0x8453E2CE, (q31_t)0xDF2FF764, (q31_t)0x8446F695, - (q31_t)0xDF608FE3, (q31_t)0x843A1D70, (q31_t)0xDF912D6A, - (q31_t)0x842D5761, (q31_t)0xDFC1CFF2, (q31_t)0x8420A46B, - (q31_t)0xDFF27773, (q31_t)0x8414048F, (q31_t)0xE02323E5, - (q31_t)0x840777CF, (q31_t)0xE053D541, (q31_t)0x83FAFE2E, - (q31_t)0xE0848B7F, (q31_t)0x83EE97AC, (q31_t)0xE0B54698, - (q31_t)0x83E2444D, (q31_t)0xE0E60684, (q31_t)0x83D60411, - (q31_t)0xE116CB3D, (q31_t)0x83C9D6FB, (q31_t)0xE14794B9, - (q31_t)0x83BDBD0D, (q31_t)0xE17862F3, (q31_t)0x83B1B649, - (q31_t)0xE1A935E1, (q31_t)0x83A5C2B0, (q31_t)0xE1DA0D7E, - (q31_t)0x8399E244, (q31_t)0xE20AE9C1, (q31_t)0x838E1507, - (q31_t)0xE23BCAA2, (q31_t)0x83825AFB, (q31_t)0xE26CB01A, - (q31_t)0x8376B422, (q31_t)0xE29D9A22, (q31_t)0x836B207D, - (q31_t)0xE2CE88B2, (q31_t)0x835FA00E, (q31_t)0xE2FF7BC3, - (q31_t)0x835432D8, (q31_t)0xE330734C, (q31_t)0x8348D8DB, - (q31_t)0xE3616F47, (q31_t)0x833D921A, (q31_t)0xE3926FAC, - (q31_t)0x83325E97, (q31_t)0xE3C37473, (q31_t)0x83273E52, - (q31_t)0xE3F47D95, (q31_t)0x831C314E, (q31_t)0xE4258B0A, - (q31_t)0x8311378C, (q31_t)0xE4569CCB, (q31_t)0x8306510F, - (q31_t)0xE487B2CF, (q31_t)0x82FB7DD8, (q31_t)0xE4B8CD10, - (q31_t)0x82F0BDE8, (q31_t)0xE4E9EB86, (q31_t)0x82E61141, - (q31_t)0xE51B0E2A, (q31_t)0x82DB77E5, (q31_t)0xE54C34F3, - (q31_t)0x82D0F1D5, (q31_t)0xE57D5FDA, (q31_t)0x82C67F13, - (q31_t)0xE5AE8ED8, (q31_t)0x82BC1FA1, (q31_t)0xE5DFC1E4, - (q31_t)0x82B1D381, (q31_t)0xE610F8F9, (q31_t)0x82A79AB3, - (q31_t)0xE642340D, (q31_t)0x829D753A, (q31_t)0xE6737319, - (q31_t)0x82936316, (q31_t)0xE6A4B616, (q31_t)0x8289644A, - (q31_t)0xE6D5FCFC, (q31_t)0x827F78D8, (q31_t)0xE70747C3, - (q31_t)0x8275A0C0, (q31_t)0xE7389664, (q31_t)0x826BDC04, - (q31_t)0xE769E8D8, (q31_t)0x82622AA5, (q31_t)0xE79B3F16, - (q31_t)0x82588CA6, (q31_t)0xE7CC9917, (q31_t)0x824F0208, - (q31_t)0xE7FDF6D3, (q31_t)0x82458ACB, (q31_t)0xE82F5844, - (q31_t)0x823C26F2, (q31_t)0xE860BD60, (q31_t)0x8232D67E, - (q31_t)0xE8922621, (q31_t)0x82299971, (q31_t)0xE8C3927F, - (q31_t)0x82206FCB, (q31_t)0xE8F50273, (q31_t)0x8217598F, - (q31_t)0xE92675F4, (q31_t)0x820E56BE, (q31_t)0xE957ECFB, - (q31_t)0x82056758, (q31_t)0xE9896780, (q31_t)0x81FC8B60, - (q31_t)0xE9BAE57C, (q31_t)0x81F3C2D7, (q31_t)0xE9EC66E8, - (q31_t)0x81EB0DBD, (q31_t)0xEA1DEBBB, (q31_t)0x81E26C16, - (q31_t)0xEA4F73EE, (q31_t)0x81D9DDE1, (q31_t)0xEA80FF79, - (q31_t)0x81D16320, (q31_t)0xEAB28E55, (q31_t)0x81C8FBD5, - (q31_t)0xEAE4207A, (q31_t)0x81C0A801, (q31_t)0xEB15B5E0, - (q31_t)0x81B867A4, (q31_t)0xEB474E80, (q31_t)0x81B03AC1, - (q31_t)0xEB78EA52, (q31_t)0x81A82159, (q31_t)0xEBAA894E, - (q31_t)0x81A01B6C, (q31_t)0xEBDC2B6D, (q31_t)0x819828FD, - (q31_t)0xEC0DD0A8, (q31_t)0x81904A0C, (q31_t)0xEC3F78F5, - (q31_t)0x81887E9A, (q31_t)0xEC71244F, (q31_t)0x8180C6A9, - (q31_t)0xECA2D2AC, (q31_t)0x8179223A, (q31_t)0xECD48406, - (q31_t)0x8171914E, (q31_t)0xED063855, (q31_t)0x816A13E6, - (q31_t)0xED37EF91, (q31_t)0x8162AA03, (q31_t)0xED69A9B2, - (q31_t)0x815B53A8, (q31_t)0xED9B66B2, (q31_t)0x815410D3, - (q31_t)0xEDCD2687, (q31_t)0x814CE188, (q31_t)0xEDFEE92B, - (q31_t)0x8145C5C6, (q31_t)0xEE30AE95, (q31_t)0x813EBD90, - (q31_t)0xEE6276BF, (q31_t)0x8137C8E6, (q31_t)0xEE9441A0, - (q31_t)0x8130E7C8, (q31_t)0xEEC60F31, (q31_t)0x812A1A39, - (q31_t)0xEEF7DF6A, (q31_t)0x81236039, (q31_t)0xEF29B243, - (q31_t)0x811CB9CA, (q31_t)0xEF5B87B5, (q31_t)0x811626EC, - (q31_t)0xEF8D5FB8, (q31_t)0x810FA7A0, (q31_t)0xEFBF3A44, - (q31_t)0x81093BE8, (q31_t)0xEFF11752, (q31_t)0x8102E3C3, - (q31_t)0xF022F6DA, (q31_t)0x80FC9F35, (q31_t)0xF054D8D4, - (q31_t)0x80F66E3C, (q31_t)0xF086BD39, (q31_t)0x80F050DB, - (q31_t)0xF0B8A401, (q31_t)0x80EA4712, (q31_t)0xF0EA8D23, - (q31_t)0x80E450E2, (q31_t)0xF11C789A, (q31_t)0x80DE6E4C, - (q31_t)0xF14E665C, (q31_t)0x80D89F51, (q31_t)0xF1805662, - (q31_t)0x80D2E3F1, (q31_t)0xF1B248A5, (q31_t)0x80CD3C2F, - (q31_t)0xF1E43D1C, (q31_t)0x80C7A80A, (q31_t)0xF21633C0, - (q31_t)0x80C22783, (q31_t)0xF2482C89, (q31_t)0x80BCBA9C, - (q31_t)0xF27A2770, (q31_t)0x80B76155, (q31_t)0xF2AC246D, - (q31_t)0x80B21BAF, (q31_t)0xF2DE2378, (q31_t)0x80ACE9AB, - (q31_t)0xF310248A, (q31_t)0x80A7CB49, (q31_t)0xF342279A, - (q31_t)0x80A2C08B, (q31_t)0xF3742CA1, (q31_t)0x809DC970, - (q31_t)0xF3A63398, (q31_t)0x8098E5FB, (q31_t)0xF3D83C76, - (q31_t)0x8094162B, (q31_t)0xF40A4734, (q31_t)0x808F5A02, - (q31_t)0xF43C53CA, (q31_t)0x808AB180, (q31_t)0xF46E6231, - (q31_t)0x80861CA5, (q31_t)0xF4A07260, (q31_t)0x80819B74, - (q31_t)0xF4D28451, (q31_t)0x807D2DEB, (q31_t)0xF50497FA, - (q31_t)0x8078D40D, (q31_t)0xF536AD55, (q31_t)0x80748DD9, - (q31_t)0xF568C45A, (q31_t)0x80705B50, (q31_t)0xF59ADD01, - (q31_t)0x806C3C73, (q31_t)0xF5CCF743, (q31_t)0x80683143, - (q31_t)0xF5FF1317, (q31_t)0x806439C0, (q31_t)0xF6313076, - (q31_t)0x806055EA, (q31_t)0xF6634F58, (q31_t)0x805C85C3, - (q31_t)0xF6956FB6, (q31_t)0x8058C94C, (q31_t)0xF6C79188, - (q31_t)0x80552083, (q31_t)0xF6F9B4C5, (q31_t)0x80518B6B, - (q31_t)0xF72BD967, (q31_t)0x804E0A03, (q31_t)0xF75DFF65, - (q31_t)0x804A9C4D, (q31_t)0xF79026B8, (q31_t)0x80474248, - (q31_t)0xF7C24F58, (q31_t)0x8043FBF6, (q31_t)0xF7F4793E, - (q31_t)0x8040C956, (q31_t)0xF826A461, (q31_t)0x803DAA69, - (q31_t)0xF858D0BA, (q31_t)0x803A9F31, (q31_t)0xF88AFE41, - (q31_t)0x8037A7AC, (q31_t)0xF8BD2CEF, (q31_t)0x8034C3DC, - (q31_t)0xF8EF5CBB, (q31_t)0x8031F3C1, (q31_t)0xF9218D9E, - (q31_t)0x802F375C, (q31_t)0xF953BF90, (q31_t)0x802C8EAD, - (q31_t)0xF985F28A, (q31_t)0x8029F9B4, (q31_t)0xF9B82683, - (q31_t)0x80277872, (q31_t)0xF9EA5B75, (q31_t)0x80250AE7, - (q31_t)0xFA1C9156, (q31_t)0x8022B113, (q31_t)0xFA4EC820, - (q31_t)0x80206AF8, (q31_t)0xFA80FFCB, (q31_t)0x801E3894, - (q31_t)0xFAB3384F, (q31_t)0x801C19E9, (q31_t)0xFAE571A4, - (q31_t)0x801A0EF7, (q31_t)0xFB17ABC2, (q31_t)0x801817BF, - (q31_t)0xFB49E6A2, (q31_t)0x80163440, (q31_t)0xFB7C223C, - (q31_t)0x8014647A, (q31_t)0xFBAE5E89, (q31_t)0x8012A86F, - (q31_t)0xFBE09B80, (q31_t)0x8011001E, (q31_t)0xFC12D919, - (q31_t)0x800F6B88, (q31_t)0xFC45174E, (q31_t)0x800DEAAC, - (q31_t)0xFC775616, (q31_t)0x800C7D8C, (q31_t)0xFCA99569, - (q31_t)0x800B2427, (q31_t)0xFCDBD541, (q31_t)0x8009DE7D, - (q31_t)0xFD0E1594, (q31_t)0x8008AC90, (q31_t)0xFD40565B, - (q31_t)0x80078E5E, (q31_t)0xFD72978F, (q31_t)0x800683E8, - (q31_t)0xFDA4D928, (q31_t)0x80058D2E, (q31_t)0xFDD71B1E, - (q31_t)0x8004AA31, (q31_t)0xFE095D69, (q31_t)0x8003DAF0, - (q31_t)0xFE3BA001, (q31_t)0x80031F6C, (q31_t)0xFE6DE2E0, - (q31_t)0x800277A5, (q31_t)0xFEA025FC, (q31_t)0x8001E39B, - (q31_t)0xFED2694F, (q31_t)0x8001634D, (q31_t)0xFF04ACD0, - (q31_t)0x8000F6BD, (q31_t)0xFF36F078, (q31_t)0x80009DE9, - (q31_t)0xFF69343E, (q31_t)0x800058D3, (q31_t)0xFF9B781D, - (q31_t)0x8000277A, (q31_t)0xFFCDBC0A, (q31_t)0x800009DE -}; - - - -/* -* @brief q15 Twiddle factors Table -*/ - - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 16 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_16_q15[24] = { - (q15_t)0x7FFF, (q15_t)0x0000, - (q15_t)0x7641, (q15_t)0x30FB, - (q15_t)0x5A82, (q15_t)0x5A82, - (q15_t)0x30FB, (q15_t)0x7641, - (q15_t)0x0000, (q15_t)0x7FFF, - (q15_t)0xCF04, (q15_t)0x7641, - (q15_t)0xA57D, (q15_t)0x5A82, - (q15_t)0x89BE, (q15_t)0x30FB, - (q15_t)0x8000, (q15_t)0x0000, - (q15_t)0x89BE, (q15_t)0xCF04, - (q15_t)0xA57D, (q15_t)0xA57D, - (q15_t)0xCF04, (q15_t)0x89BE -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 32 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_32_q15[48] = { - (q15_t)0x7FFF, (q15_t)0x0000, - (q15_t)0x7D8A, (q15_t)0x18F8, - (q15_t)0x7641, (q15_t)0x30FB, - (q15_t)0x6A6D, (q15_t)0x471C, - (q15_t)0x5A82, (q15_t)0x5A82, - (q15_t)0x471C, (q15_t)0x6A6D, - (q15_t)0x30FB, (q15_t)0x7641, - (q15_t)0x18F8, (q15_t)0x7D8A, - (q15_t)0x0000, (q15_t)0x7FFF, - (q15_t)0xE707, (q15_t)0x7D8A, - (q15_t)0xCF04, (q15_t)0x7641, - (q15_t)0xB8E3, (q15_t)0x6A6D, - (q15_t)0xA57D, (q15_t)0x5A82, - (q15_t)0x9592, (q15_t)0x471C, - (q15_t)0x89BE, (q15_t)0x30FB, - (q15_t)0x8275, (q15_t)0x18F8, - (q15_t)0x8000, (q15_t)0x0000, - (q15_t)0x8275, (q15_t)0xE707, - (q15_t)0x89BE, (q15_t)0xCF04, - (q15_t)0x9592, (q15_t)0xB8E3, - (q15_t)0xA57D, (q15_t)0xA57D, - (q15_t)0xB8E3, (q15_t)0x9592, - (q15_t)0xCF04, (q15_t)0x89BE, - (q15_t)0xE707, (q15_t)0x8275 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 64 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_64_q15[96] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7F62, (q15_t)0x0C8B, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7A7D, (q15_t)0x2528, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x70E2, (q15_t)0x3C56, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x62F2, (q15_t)0x5133, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x5133, (q15_t)0x62F2, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x3C56, (q15_t)0x70E2, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x2528, (q15_t)0x7A7D, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x0C8B, (q15_t)0x7F62, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xF374, (q15_t)0x7F62, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xDAD7, (q15_t)0x7A7D, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xC3A9, (q15_t)0x70E2, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xAECC, (q15_t)0x62F2, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0x9D0D, (q15_t)0x5133, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x8F1D, (q15_t)0x3C56, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x8582, (q15_t)0x2528, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x809D, (q15_t)0x0C8B, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x809D, (q15_t)0xF374, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x8582, (q15_t)0xDAD7, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x8F1D, (q15_t)0xC3A9, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x9D0D, (q15_t)0xAECC, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xAECC, (q15_t)0x9D0D, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xC3A9, (q15_t)0x8F1D, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xDAD7, (q15_t)0x8582, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xF374, (q15_t)0x809D -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 128 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_128_q15[192] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FD8, (q15_t)0x0647, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7E9D, (q15_t)0x12C8, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7C29, (q15_t)0x1F19, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x7884, (q15_t)0x2B1F, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x73B5, (q15_t)0x36BA, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x6DCA, (q15_t)0x41CE, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x66CF, (q15_t)0x4C3F, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x5ED7, (q15_t)0x55F5, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x55F5, (q15_t)0x5ED7, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x4C3F, (q15_t)0x66CF, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x41CE, (q15_t)0x6DCA, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x36BA, (q15_t)0x73B5, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x2B1F, (q15_t)0x7884, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x1F19, (q15_t)0x7C29, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x12C8, (q15_t)0x7E9D, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x0647, (q15_t)0x7FD8, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xF9B8, (q15_t)0x7FD8, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xED37, (q15_t)0x7E9D, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE0E6, (q15_t)0x7C29, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xD4E0, (q15_t)0x7884, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xC945, (q15_t)0x73B5, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xBE31, (q15_t)0x6DCA, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB3C0, (q15_t)0x66CF, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAA0A, (q15_t)0x5ED7, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA128, (q15_t)0x55F5, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9930, (q15_t)0x4C3F, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x9235, (q15_t)0x41CE, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8C4A, (q15_t)0x36BA, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x877B, (q15_t)0x2B1F, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x83D6, (q15_t)0x1F19, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x8162, (q15_t)0x12C8, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x8027, (q15_t)0x0647, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8027, (q15_t)0xF9B8, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x8162, (q15_t)0xED37, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x83D6, (q15_t)0xE0E6, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x877B, (q15_t)0xD4E0, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x8C4A, (q15_t)0xC945, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x9235, (q15_t)0xBE31, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x9930, (q15_t)0xB3C0, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0xA128, (q15_t)0xAA0A, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xAA0A, (q15_t)0xA128, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xB3C0, (q15_t)0x9930, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xBE31, (q15_t)0x9235, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC945, (q15_t)0x8C4A, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xD4E0, (q15_t)0x877B, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xE0E6, (q15_t)0x83D6, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xED37, (q15_t)0x8162, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF9B8, (q15_t)0x8027 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 256 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_256_q15[384] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FF6, (q15_t)0x0324, - (q15_t)0x7FD8, (q15_t)0x0647, (q15_t)0x7FA7, (q15_t)0x096A, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7F09, (q15_t)0x0FAB, - (q15_t)0x7E9D, (q15_t)0x12C8, (q15_t)0x7E1D, (q15_t)0x15E2, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7CE3, (q15_t)0x1C0B, - (q15_t)0x7C29, (q15_t)0x1F19, (q15_t)0x7B5D, (q15_t)0x2223, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x798A, (q15_t)0x2826, - (q15_t)0x7884, (q15_t)0x2B1F, (q15_t)0x776C, (q15_t)0x2E11, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x7504, (q15_t)0x33DE, - (q15_t)0x73B5, (q15_t)0x36BA, (q15_t)0x7255, (q15_t)0x398C, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x6F5F, (q15_t)0x3F17, - (q15_t)0x6DCA, (q15_t)0x41CE, (q15_t)0x6C24, (q15_t)0x447A, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x68A6, (q15_t)0x49B4, - (q15_t)0x66CF, (q15_t)0x4C3F, (q15_t)0x64E8, (q15_t)0x4EBF, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x60EC, (q15_t)0x539B, - (q15_t)0x5ED7, (q15_t)0x55F5, (q15_t)0x5CB4, (q15_t)0x5842, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x5842, (q15_t)0x5CB4, - (q15_t)0x55F5, (q15_t)0x5ED7, (q15_t)0x539B, (q15_t)0x60EC, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x4EBF, (q15_t)0x64E8, - (q15_t)0x4C3F, (q15_t)0x66CF, (q15_t)0x49B4, (q15_t)0x68A6, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x447A, (q15_t)0x6C24, - (q15_t)0x41CE, (q15_t)0x6DCA, (q15_t)0x3F17, (q15_t)0x6F5F, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x398C, (q15_t)0x7255, - (q15_t)0x36BA, (q15_t)0x73B5, (q15_t)0x33DE, (q15_t)0x7504, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x2E11, (q15_t)0x776C, - (q15_t)0x2B1F, (q15_t)0x7884, (q15_t)0x2826, (q15_t)0x798A, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x2223, (q15_t)0x7B5D, - (q15_t)0x1F19, (q15_t)0x7C29, (q15_t)0x1C0B, (q15_t)0x7CE3, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x15E2, (q15_t)0x7E1D, - (q15_t)0x12C8, (q15_t)0x7E9D, (q15_t)0x0FAB, (q15_t)0x7F09, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x096A, (q15_t)0x7FA7, - (q15_t)0x0647, (q15_t)0x7FD8, (q15_t)0x0324, (q15_t)0x7FF6, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xFCDB, (q15_t)0x7FF6, - (q15_t)0xF9B8, (q15_t)0x7FD8, (q15_t)0xF695, (q15_t)0x7FA7, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xF054, (q15_t)0x7F09, - (q15_t)0xED37, (q15_t)0x7E9D, (q15_t)0xEA1D, (q15_t)0x7E1D, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE3F4, (q15_t)0x7CE3, - (q15_t)0xE0E6, (q15_t)0x7C29, (q15_t)0xDDDC, (q15_t)0x7B5D, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xD7D9, (q15_t)0x798A, - (q15_t)0xD4E0, (q15_t)0x7884, (q15_t)0xD1EE, (q15_t)0x776C, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xCC21, (q15_t)0x7504, - (q15_t)0xC945, (q15_t)0x73B5, (q15_t)0xC673, (q15_t)0x7255, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xC0E8, (q15_t)0x6F5F, - (q15_t)0xBE31, (q15_t)0x6DCA, (q15_t)0xBB85, (q15_t)0x6C24, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB64B, (q15_t)0x68A6, - (q15_t)0xB3C0, (q15_t)0x66CF, (q15_t)0xB140, (q15_t)0x64E8, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAC64, (q15_t)0x60EC, - (q15_t)0xAA0A, (q15_t)0x5ED7, (q15_t)0xA7BD, (q15_t)0x5CB4, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA34B, (q15_t)0x5842, - (q15_t)0xA128, (q15_t)0x55F5, (q15_t)0x9F13, (q15_t)0x539B, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9B17, (q15_t)0x4EBF, - (q15_t)0x9930, (q15_t)0x4C3F, (q15_t)0x9759, (q15_t)0x49B4, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x93DB, (q15_t)0x447A, - (q15_t)0x9235, (q15_t)0x41CE, (q15_t)0x90A0, (q15_t)0x3F17, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8DAA, (q15_t)0x398C, - (q15_t)0x8C4A, (q15_t)0x36BA, (q15_t)0x8AFB, (q15_t)0x33DE, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x8893, (q15_t)0x2E11, - (q15_t)0x877B, (q15_t)0x2B1F, (q15_t)0x8675, (q15_t)0x2826, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x84A2, (q15_t)0x2223, - (q15_t)0x83D6, (q15_t)0x1F19, (q15_t)0x831C, (q15_t)0x1C0B, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x81E2, (q15_t)0x15E2, - (q15_t)0x8162, (q15_t)0x12C8, (q15_t)0x80F6, (q15_t)0x0FAB, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x8058, (q15_t)0x096A, - (q15_t)0x8027, (q15_t)0x0647, (q15_t)0x8009, (q15_t)0x0324, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8009, (q15_t)0xFCDB, - (q15_t)0x8027, (q15_t)0xF9B8, (q15_t)0x8058, (q15_t)0xF695, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x80F6, (q15_t)0xF054, - (q15_t)0x8162, (q15_t)0xED37, (q15_t)0x81E2, (q15_t)0xEA1D, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x831C, (q15_t)0xE3F4, - (q15_t)0x83D6, (q15_t)0xE0E6, (q15_t)0x84A2, (q15_t)0xDDDC, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x8675, (q15_t)0xD7D9, - (q15_t)0x877B, (q15_t)0xD4E0, (q15_t)0x8893, (q15_t)0xD1EE, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x8AFB, (q15_t)0xCC21, - (q15_t)0x8C4A, (q15_t)0xC945, (q15_t)0x8DAA, (q15_t)0xC673, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x90A0, (q15_t)0xC0E8, - (q15_t)0x9235, (q15_t)0xBE31, (q15_t)0x93DB, (q15_t)0xBB85, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x9759, (q15_t)0xB64B, - (q15_t)0x9930, (q15_t)0xB3C0, (q15_t)0x9B17, (q15_t)0xB140, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0x9F13, (q15_t)0xAC64, - (q15_t)0xA128, (q15_t)0xAA0A, (q15_t)0xA34B, (q15_t)0xA7BD, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xA7BD, (q15_t)0xA34B, - (q15_t)0xAA0A, (q15_t)0xA128, (q15_t)0xAC64, (q15_t)0x9F13, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xB140, (q15_t)0x9B17, - (q15_t)0xB3C0, (q15_t)0x9930, (q15_t)0xB64B, (q15_t)0x9759, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xBB85, (q15_t)0x93DB, - (q15_t)0xBE31, (q15_t)0x9235, (q15_t)0xC0E8, (q15_t)0x90A0, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC673, (q15_t)0x8DAA, - (q15_t)0xC945, (q15_t)0x8C4A, (q15_t)0xCC21, (q15_t)0x8AFB, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xD1EE, (q15_t)0x8893, - (q15_t)0xD4E0, (q15_t)0x877B, (q15_t)0xD7D9, (q15_t)0x8675, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xDDDC, (q15_t)0x84A2, - (q15_t)0xE0E6, (q15_t)0x83D6, (q15_t)0xE3F4, (q15_t)0x831C, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xEA1D, (q15_t)0x81E2, - (q15_t)0xED37, (q15_t)0x8162, (q15_t)0xF054, (q15_t)0x80F6, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF695, (q15_t)0x8058, - (q15_t)0xF9B8, (q15_t)0x8027, (q15_t)0xFCDB, (q15_t)0x8009 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 512 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_512_q15[768] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FFD, (q15_t)0x0192, - (q15_t)0x7FF6, (q15_t)0x0324, (q15_t)0x7FE9, (q15_t)0x04B6, - (q15_t)0x7FD8, (q15_t)0x0647, (q15_t)0x7FC2, (q15_t)0x07D9, - (q15_t)0x7FA7, (q15_t)0x096A, (q15_t)0x7F87, (q15_t)0x0AFB, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7F38, (q15_t)0x0E1B, - (q15_t)0x7F09, (q15_t)0x0FAB, (q15_t)0x7ED5, (q15_t)0x1139, - (q15_t)0x7E9D, (q15_t)0x12C8, (q15_t)0x7E5F, (q15_t)0x1455, - (q15_t)0x7E1D, (q15_t)0x15E2, (q15_t)0x7DD6, (q15_t)0x176D, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7D39, (q15_t)0x1A82, - (q15_t)0x7CE3, (q15_t)0x1C0B, (q15_t)0x7C89, (q15_t)0x1D93, - (q15_t)0x7C29, (q15_t)0x1F19, (q15_t)0x7BC5, (q15_t)0x209F, - (q15_t)0x7B5D, (q15_t)0x2223, (q15_t)0x7AEF, (q15_t)0x23A6, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x7A05, (q15_t)0x26A8, - (q15_t)0x798A, (q15_t)0x2826, (q15_t)0x7909, (q15_t)0x29A3, - (q15_t)0x7884, (q15_t)0x2B1F, (q15_t)0x77FA, (q15_t)0x2C98, - (q15_t)0x776C, (q15_t)0x2E11, (q15_t)0x76D9, (q15_t)0x2F87, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x75A5, (q15_t)0x326E, - (q15_t)0x7504, (q15_t)0x33DE, (q15_t)0x745F, (q15_t)0x354D, - (q15_t)0x73B5, (q15_t)0x36BA, (q15_t)0x7307, (q15_t)0x3824, - (q15_t)0x7255, (q15_t)0x398C, (q15_t)0x719E, (q15_t)0x3AF2, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x7023, (q15_t)0x3DB8, - (q15_t)0x6F5F, (q15_t)0x3F17, (q15_t)0x6E96, (q15_t)0x4073, - (q15_t)0x6DCA, (q15_t)0x41CE, (q15_t)0x6CF9, (q15_t)0x4325, - (q15_t)0x6C24, (q15_t)0x447A, (q15_t)0x6B4A, (q15_t)0x45CD, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x698C, (q15_t)0x4869, - (q15_t)0x68A6, (q15_t)0x49B4, (q15_t)0x67BD, (q15_t)0x4AFB, - (q15_t)0x66CF, (q15_t)0x4C3F, (q15_t)0x65DD, (q15_t)0x4D81, - (q15_t)0x64E8, (q15_t)0x4EBF, (q15_t)0x63EF, (q15_t)0x4FFB, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x61F1, (q15_t)0x5269, - (q15_t)0x60EC, (q15_t)0x539B, (q15_t)0x5FE3, (q15_t)0x54CA, - (q15_t)0x5ED7, (q15_t)0x55F5, (q15_t)0x5DC7, (q15_t)0x571D, - (q15_t)0x5CB4, (q15_t)0x5842, (q15_t)0x5B9D, (q15_t)0x5964, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x5964, (q15_t)0x5B9D, - (q15_t)0x5842, (q15_t)0x5CB4, (q15_t)0x571D, (q15_t)0x5DC7, - (q15_t)0x55F5, (q15_t)0x5ED7, (q15_t)0x54CA, (q15_t)0x5FE3, - (q15_t)0x539B, (q15_t)0x60EC, (q15_t)0x5269, (q15_t)0x61F1, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x4FFB, (q15_t)0x63EF, - (q15_t)0x4EBF, (q15_t)0x64E8, (q15_t)0x4D81, (q15_t)0x65DD, - (q15_t)0x4C3F, (q15_t)0x66CF, (q15_t)0x4AFB, (q15_t)0x67BD, - (q15_t)0x49B4, (q15_t)0x68A6, (q15_t)0x4869, (q15_t)0x698C, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x45CD, (q15_t)0x6B4A, - (q15_t)0x447A, (q15_t)0x6C24, (q15_t)0x4325, (q15_t)0x6CF9, - (q15_t)0x41CE, (q15_t)0x6DCA, (q15_t)0x4073, (q15_t)0x6E96, - (q15_t)0x3F17, (q15_t)0x6F5F, (q15_t)0x3DB8, (q15_t)0x7023, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x3AF2, (q15_t)0x719E, - (q15_t)0x398C, (q15_t)0x7255, (q15_t)0x3824, (q15_t)0x7307, - (q15_t)0x36BA, (q15_t)0x73B5, (q15_t)0x354D, (q15_t)0x745F, - (q15_t)0x33DE, (q15_t)0x7504, (q15_t)0x326E, (q15_t)0x75A5, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x2F87, (q15_t)0x76D9, - (q15_t)0x2E11, (q15_t)0x776C, (q15_t)0x2C98, (q15_t)0x77FA, - (q15_t)0x2B1F, (q15_t)0x7884, (q15_t)0x29A3, (q15_t)0x7909, - (q15_t)0x2826, (q15_t)0x798A, (q15_t)0x26A8, (q15_t)0x7A05, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x23A6, (q15_t)0x7AEF, - (q15_t)0x2223, (q15_t)0x7B5D, (q15_t)0x209F, (q15_t)0x7BC5, - (q15_t)0x1F19, (q15_t)0x7C29, (q15_t)0x1D93, (q15_t)0x7C89, - (q15_t)0x1C0B, (q15_t)0x7CE3, (q15_t)0x1A82, (q15_t)0x7D39, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x176D, (q15_t)0x7DD6, - (q15_t)0x15E2, (q15_t)0x7E1D, (q15_t)0x1455, (q15_t)0x7E5F, - (q15_t)0x12C8, (q15_t)0x7E9D, (q15_t)0x1139, (q15_t)0x7ED5, - (q15_t)0x0FAB, (q15_t)0x7F09, (q15_t)0x0E1B, (q15_t)0x7F38, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x0AFB, (q15_t)0x7F87, - (q15_t)0x096A, (q15_t)0x7FA7, (q15_t)0x07D9, (q15_t)0x7FC2, - (q15_t)0x0647, (q15_t)0x7FD8, (q15_t)0x04B6, (q15_t)0x7FE9, - (q15_t)0x0324, (q15_t)0x7FF6, (q15_t)0x0192, (q15_t)0x7FFD, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xFE6D, (q15_t)0x7FFD, - (q15_t)0xFCDB, (q15_t)0x7FF6, (q15_t)0xFB49, (q15_t)0x7FE9, - (q15_t)0xF9B8, (q15_t)0x7FD8, (q15_t)0xF826, (q15_t)0x7FC2, - (q15_t)0xF695, (q15_t)0x7FA7, (q15_t)0xF504, (q15_t)0x7F87, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xF1E4, (q15_t)0x7F38, - (q15_t)0xF054, (q15_t)0x7F09, (q15_t)0xEEC6, (q15_t)0x7ED5, - (q15_t)0xED37, (q15_t)0x7E9D, (q15_t)0xEBAA, (q15_t)0x7E5F, - (q15_t)0xEA1D, (q15_t)0x7E1D, (q15_t)0xE892, (q15_t)0x7DD6, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE57D, (q15_t)0x7D39, - (q15_t)0xE3F4, (q15_t)0x7CE3, (q15_t)0xE26C, (q15_t)0x7C89, - (q15_t)0xE0E6, (q15_t)0x7C29, (q15_t)0xDF60, (q15_t)0x7BC5, - (q15_t)0xDDDC, (q15_t)0x7B5D, (q15_t)0xDC59, (q15_t)0x7AEF, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xD957, (q15_t)0x7A05, - (q15_t)0xD7D9, (q15_t)0x798A, (q15_t)0xD65C, (q15_t)0x7909, - (q15_t)0xD4E0, (q15_t)0x7884, (q15_t)0xD367, (q15_t)0x77FA, - (q15_t)0xD1EE, (q15_t)0x776C, (q15_t)0xD078, (q15_t)0x76D9, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xCD91, (q15_t)0x75A5, - (q15_t)0xCC21, (q15_t)0x7504, (q15_t)0xCAB2, (q15_t)0x745F, - (q15_t)0xC945, (q15_t)0x73B5, (q15_t)0xC7DB, (q15_t)0x7307, - (q15_t)0xC673, (q15_t)0x7255, (q15_t)0xC50D, (q15_t)0x719E, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xC247, (q15_t)0x7023, - (q15_t)0xC0E8, (q15_t)0x6F5F, (q15_t)0xBF8C, (q15_t)0x6E96, - (q15_t)0xBE31, (q15_t)0x6DCA, (q15_t)0xBCDA, (q15_t)0x6CF9, - (q15_t)0xBB85, (q15_t)0x6C24, (q15_t)0xBA32, (q15_t)0x6B4A, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB796, (q15_t)0x698C, - (q15_t)0xB64B, (q15_t)0x68A6, (q15_t)0xB504, (q15_t)0x67BD, - (q15_t)0xB3C0, (q15_t)0x66CF, (q15_t)0xB27E, (q15_t)0x65DD, - (q15_t)0xB140, (q15_t)0x64E8, (q15_t)0xB004, (q15_t)0x63EF, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAD96, (q15_t)0x61F1, - (q15_t)0xAC64, (q15_t)0x60EC, (q15_t)0xAB35, (q15_t)0x5FE3, - (q15_t)0xAA0A, (q15_t)0x5ED7, (q15_t)0xA8E2, (q15_t)0x5DC7, - (q15_t)0xA7BD, (q15_t)0x5CB4, (q15_t)0xA69B, (q15_t)0x5B9D, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA462, (q15_t)0x5964, - (q15_t)0xA34B, (q15_t)0x5842, (q15_t)0xA238, (q15_t)0x571D, - (q15_t)0xA128, (q15_t)0x55F5, (q15_t)0xA01C, (q15_t)0x54CA, - (q15_t)0x9F13, (q15_t)0x539B, (q15_t)0x9E0E, (q15_t)0x5269, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9C10, (q15_t)0x4FFB, - (q15_t)0x9B17, (q15_t)0x4EBF, (q15_t)0x9A22, (q15_t)0x4D81, - (q15_t)0x9930, (q15_t)0x4C3F, (q15_t)0x9842, (q15_t)0x4AFB, - (q15_t)0x9759, (q15_t)0x49B4, (q15_t)0x9673, (q15_t)0x4869, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x94B5, (q15_t)0x45CD, - (q15_t)0x93DB, (q15_t)0x447A, (q15_t)0x9306, (q15_t)0x4325, - (q15_t)0x9235, (q15_t)0x41CE, (q15_t)0x9169, (q15_t)0x4073, - (q15_t)0x90A0, (q15_t)0x3F17, (q15_t)0x8FDC, (q15_t)0x3DB8, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8E61, (q15_t)0x3AF2, - (q15_t)0x8DAA, (q15_t)0x398C, (q15_t)0x8CF8, (q15_t)0x3824, - (q15_t)0x8C4A, (q15_t)0x36BA, (q15_t)0x8BA0, (q15_t)0x354D, - (q15_t)0x8AFB, (q15_t)0x33DE, (q15_t)0x8A5A, (q15_t)0x326E, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x8926, (q15_t)0x2F87, - (q15_t)0x8893, (q15_t)0x2E11, (q15_t)0x8805, (q15_t)0x2C98, - (q15_t)0x877B, (q15_t)0x2B1F, (q15_t)0x86F6, (q15_t)0x29A3, - (q15_t)0x8675, (q15_t)0x2826, (q15_t)0x85FA, (q15_t)0x26A8, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x8510, (q15_t)0x23A6, - (q15_t)0x84A2, (q15_t)0x2223, (q15_t)0x843A, (q15_t)0x209F, - (q15_t)0x83D6, (q15_t)0x1F19, (q15_t)0x8376, (q15_t)0x1D93, - (q15_t)0x831C, (q15_t)0x1C0B, (q15_t)0x82C6, (q15_t)0x1A82, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x8229, (q15_t)0x176D, - (q15_t)0x81E2, (q15_t)0x15E2, (q15_t)0x81A0, (q15_t)0x1455, - (q15_t)0x8162, (q15_t)0x12C8, (q15_t)0x812A, (q15_t)0x1139, - (q15_t)0x80F6, (q15_t)0x0FAB, (q15_t)0x80C7, (q15_t)0x0E1B, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x8078, (q15_t)0x0AFB, - (q15_t)0x8058, (q15_t)0x096A, (q15_t)0x803D, (q15_t)0x07D9, - (q15_t)0x8027, (q15_t)0x0647, (q15_t)0x8016, (q15_t)0x04B6, - (q15_t)0x8009, (q15_t)0x0324, (q15_t)0x8002, (q15_t)0x0192, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8002, (q15_t)0xFE6D, - (q15_t)0x8009, (q15_t)0xFCDB, (q15_t)0x8016, (q15_t)0xFB49, - (q15_t)0x8027, (q15_t)0xF9B8, (q15_t)0x803D, (q15_t)0xF826, - (q15_t)0x8058, (q15_t)0xF695, (q15_t)0x8078, (q15_t)0xF504, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x80C7, (q15_t)0xF1E4, - (q15_t)0x80F6, (q15_t)0xF054, (q15_t)0x812A, (q15_t)0xEEC6, - (q15_t)0x8162, (q15_t)0xED37, (q15_t)0x81A0, (q15_t)0xEBAA, - (q15_t)0x81E2, (q15_t)0xEA1D, (q15_t)0x8229, (q15_t)0xE892, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x82C6, (q15_t)0xE57D, - (q15_t)0x831C, (q15_t)0xE3F4, (q15_t)0x8376, (q15_t)0xE26C, - (q15_t)0x83D6, (q15_t)0xE0E6, (q15_t)0x843A, (q15_t)0xDF60, - (q15_t)0x84A2, (q15_t)0xDDDC, (q15_t)0x8510, (q15_t)0xDC59, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x85FA, (q15_t)0xD957, - (q15_t)0x8675, (q15_t)0xD7D9, (q15_t)0x86F6, (q15_t)0xD65C, - (q15_t)0x877B, (q15_t)0xD4E0, (q15_t)0x8805, (q15_t)0xD367, - (q15_t)0x8893, (q15_t)0xD1EE, (q15_t)0x8926, (q15_t)0xD078, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x8A5A, (q15_t)0xCD91, - (q15_t)0x8AFB, (q15_t)0xCC21, (q15_t)0x8BA0, (q15_t)0xCAB2, - (q15_t)0x8C4A, (q15_t)0xC945, (q15_t)0x8CF8, (q15_t)0xC7DB, - (q15_t)0x8DAA, (q15_t)0xC673, (q15_t)0x8E61, (q15_t)0xC50D, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x8FDC, (q15_t)0xC247, - (q15_t)0x90A0, (q15_t)0xC0E8, (q15_t)0x9169, (q15_t)0xBF8C, - (q15_t)0x9235, (q15_t)0xBE31, (q15_t)0x9306, (q15_t)0xBCDA, - (q15_t)0x93DB, (q15_t)0xBB85, (q15_t)0x94B5, (q15_t)0xBA32, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x9673, (q15_t)0xB796, - (q15_t)0x9759, (q15_t)0xB64B, (q15_t)0x9842, (q15_t)0xB504, - (q15_t)0x9930, (q15_t)0xB3C0, (q15_t)0x9A22, (q15_t)0xB27E, - (q15_t)0x9B17, (q15_t)0xB140, (q15_t)0x9C10, (q15_t)0xB004, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0x9E0E, (q15_t)0xAD96, - (q15_t)0x9F13, (q15_t)0xAC64, (q15_t)0xA01C, (q15_t)0xAB35, - (q15_t)0xA128, (q15_t)0xAA0A, (q15_t)0xA238, (q15_t)0xA8E2, - (q15_t)0xA34B, (q15_t)0xA7BD, (q15_t)0xA462, (q15_t)0xA69B, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xA69B, (q15_t)0xA462, - (q15_t)0xA7BD, (q15_t)0xA34B, (q15_t)0xA8E2, (q15_t)0xA238, - (q15_t)0xAA0A, (q15_t)0xA128, (q15_t)0xAB35, (q15_t)0xA01C, - (q15_t)0xAC64, (q15_t)0x9F13, (q15_t)0xAD96, (q15_t)0x9E0E, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xB004, (q15_t)0x9C10, - (q15_t)0xB140, (q15_t)0x9B17, (q15_t)0xB27E, (q15_t)0x9A22, - (q15_t)0xB3C0, (q15_t)0x9930, (q15_t)0xB504, (q15_t)0x9842, - (q15_t)0xB64B, (q15_t)0x9759, (q15_t)0xB796, (q15_t)0x9673, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xBA32, (q15_t)0x94B5, - (q15_t)0xBB85, (q15_t)0x93DB, (q15_t)0xBCDA, (q15_t)0x9306, - (q15_t)0xBE31, (q15_t)0x9235, (q15_t)0xBF8C, (q15_t)0x9169, - (q15_t)0xC0E8, (q15_t)0x90A0, (q15_t)0xC247, (q15_t)0x8FDC, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC50D, (q15_t)0x8E61, - (q15_t)0xC673, (q15_t)0x8DAA, (q15_t)0xC7DB, (q15_t)0x8CF8, - (q15_t)0xC945, (q15_t)0x8C4A, (q15_t)0xCAB2, (q15_t)0x8BA0, - (q15_t)0xCC21, (q15_t)0x8AFB, (q15_t)0xCD91, (q15_t)0x8A5A, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xD078, (q15_t)0x8926, - (q15_t)0xD1EE, (q15_t)0x8893, (q15_t)0xD367, (q15_t)0x8805, - (q15_t)0xD4E0, (q15_t)0x877B, (q15_t)0xD65C, (q15_t)0x86F6, - (q15_t)0xD7D9, (q15_t)0x8675, (q15_t)0xD957, (q15_t)0x85FA, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xDC59, (q15_t)0x8510, - (q15_t)0xDDDC, (q15_t)0x84A2, (q15_t)0xDF60, (q15_t)0x843A, - (q15_t)0xE0E6, (q15_t)0x83D6, (q15_t)0xE26C, (q15_t)0x8376, - (q15_t)0xE3F4, (q15_t)0x831C, (q15_t)0xE57D, (q15_t)0x82C6, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xE892, (q15_t)0x8229, - (q15_t)0xEA1D, (q15_t)0x81E2, (q15_t)0xEBAA, (q15_t)0x81A0, - (q15_t)0xED37, (q15_t)0x8162, (q15_t)0xEEC6, (q15_t)0x812A, - (q15_t)0xF054, (q15_t)0x80F6, (q15_t)0xF1E4, (q15_t)0x80C7, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF504, (q15_t)0x8078, - (q15_t)0xF695, (q15_t)0x8058, (q15_t)0xF826, (q15_t)0x803D, - (q15_t)0xF9B8, (q15_t)0x8027, (q15_t)0xFB49, (q15_t)0x8016, - (q15_t)0xFCDB, (q15_t)0x8009, (q15_t)0xFE6D, (q15_t)0x8002 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 1024 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_1024_q15[1536] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0x00C9, - (q15_t)0x7FFD, (q15_t)0x0192, (q15_t)0x7FFA, (q15_t)0x025B, - (q15_t)0x7FF6, (q15_t)0x0324, (q15_t)0x7FF0, (q15_t)0x03ED, - (q15_t)0x7FE9, (q15_t)0x04B6, (q15_t)0x7FE1, (q15_t)0x057F, - (q15_t)0x7FD8, (q15_t)0x0647, (q15_t)0x7FCE, (q15_t)0x0710, - (q15_t)0x7FC2, (q15_t)0x07D9, (q15_t)0x7FB5, (q15_t)0x08A2, - (q15_t)0x7FA7, (q15_t)0x096A, (q15_t)0x7F97, (q15_t)0x0A33, - (q15_t)0x7F87, (q15_t)0x0AFB, (q15_t)0x7F75, (q15_t)0x0BC3, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7F4D, (q15_t)0x0D53, - (q15_t)0x7F38, (q15_t)0x0E1B, (q15_t)0x7F21, (q15_t)0x0EE3, - (q15_t)0x7F09, (q15_t)0x0FAB, (q15_t)0x7EF0, (q15_t)0x1072, - (q15_t)0x7ED5, (q15_t)0x1139, (q15_t)0x7EBA, (q15_t)0x1201, - (q15_t)0x7E9D, (q15_t)0x12C8, (q15_t)0x7E7F, (q15_t)0x138E, - (q15_t)0x7E5F, (q15_t)0x1455, (q15_t)0x7E3F, (q15_t)0x151B, - (q15_t)0x7E1D, (q15_t)0x15E2, (q15_t)0x7DFA, (q15_t)0x16A8, - (q15_t)0x7DD6, (q15_t)0x176D, (q15_t)0x7DB0, (q15_t)0x1833, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7D62, (q15_t)0x19BD, - (q15_t)0x7D39, (q15_t)0x1A82, (q15_t)0x7D0F, (q15_t)0x1B47, - (q15_t)0x7CE3, (q15_t)0x1C0B, (q15_t)0x7CB7, (q15_t)0x1CCF, - (q15_t)0x7C89, (q15_t)0x1D93, (q15_t)0x7C5A, (q15_t)0x1E56, - (q15_t)0x7C29, (q15_t)0x1F19, (q15_t)0x7BF8, (q15_t)0x1FDC, - (q15_t)0x7BC5, (q15_t)0x209F, (q15_t)0x7B92, (q15_t)0x2161, - (q15_t)0x7B5D, (q15_t)0x2223, (q15_t)0x7B26, (q15_t)0x22E5, - (q15_t)0x7AEF, (q15_t)0x23A6, (q15_t)0x7AB6, (q15_t)0x2467, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x7A42, (q15_t)0x25E8, - (q15_t)0x7A05, (q15_t)0x26A8, (q15_t)0x79C8, (q15_t)0x2767, - (q15_t)0x798A, (q15_t)0x2826, (q15_t)0x794A, (q15_t)0x28E5, - (q15_t)0x7909, (q15_t)0x29A3, (q15_t)0x78C7, (q15_t)0x2A61, - (q15_t)0x7884, (q15_t)0x2B1F, (q15_t)0x7840, (q15_t)0x2BDC, - (q15_t)0x77FA, (q15_t)0x2C98, (q15_t)0x77B4, (q15_t)0x2D55, - (q15_t)0x776C, (q15_t)0x2E11, (q15_t)0x7723, (q15_t)0x2ECC, - (q15_t)0x76D9, (q15_t)0x2F87, (q15_t)0x768E, (q15_t)0x3041, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x75F4, (q15_t)0x31B5, - (q15_t)0x75A5, (q15_t)0x326E, (q15_t)0x7555, (q15_t)0x3326, - (q15_t)0x7504, (q15_t)0x33DE, (q15_t)0x74B2, (q15_t)0x3496, - (q15_t)0x745F, (q15_t)0x354D, (q15_t)0x740B, (q15_t)0x3604, - (q15_t)0x73B5, (q15_t)0x36BA, (q15_t)0x735F, (q15_t)0x376F, - (q15_t)0x7307, (q15_t)0x3824, (q15_t)0x72AF, (q15_t)0x38D8, - (q15_t)0x7255, (q15_t)0x398C, (q15_t)0x71FA, (q15_t)0x3A40, - (q15_t)0x719E, (q15_t)0x3AF2, (q15_t)0x7141, (q15_t)0x3BA5, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x7083, (q15_t)0x3D07, - (q15_t)0x7023, (q15_t)0x3DB8, (q15_t)0x6FC1, (q15_t)0x3E68, - (q15_t)0x6F5F, (q15_t)0x3F17, (q15_t)0x6EFB, (q15_t)0x3FC5, - (q15_t)0x6E96, (q15_t)0x4073, (q15_t)0x6E30, (q15_t)0x4121, - (q15_t)0x6DCA, (q15_t)0x41CE, (q15_t)0x6D62, (q15_t)0x427A, - (q15_t)0x6CF9, (q15_t)0x4325, (q15_t)0x6C8F, (q15_t)0x43D0, - (q15_t)0x6C24, (q15_t)0x447A, (q15_t)0x6BB8, (q15_t)0x4524, - (q15_t)0x6B4A, (q15_t)0x45CD, (q15_t)0x6ADC, (q15_t)0x4675, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x69FD, (q15_t)0x47C3, - (q15_t)0x698C, (q15_t)0x4869, (q15_t)0x6919, (q15_t)0x490F, - (q15_t)0x68A6, (q15_t)0x49B4, (q15_t)0x6832, (q15_t)0x4A58, - (q15_t)0x67BD, (q15_t)0x4AFB, (q15_t)0x6746, (q15_t)0x4B9E, - (q15_t)0x66CF, (q15_t)0x4C3F, (q15_t)0x6657, (q15_t)0x4CE1, - (q15_t)0x65DD, (q15_t)0x4D81, (q15_t)0x6563, (q15_t)0x4E21, - (q15_t)0x64E8, (q15_t)0x4EBF, (q15_t)0x646C, (q15_t)0x4F5E, - (q15_t)0x63EF, (q15_t)0x4FFB, (q15_t)0x6371, (q15_t)0x5097, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x6271, (q15_t)0x51CE, - (q15_t)0x61F1, (q15_t)0x5269, (q15_t)0x616F, (q15_t)0x5302, - (q15_t)0x60EC, (q15_t)0x539B, (q15_t)0x6068, (q15_t)0x5433, - (q15_t)0x5FE3, (q15_t)0x54CA, (q15_t)0x5F5E, (q15_t)0x5560, - (q15_t)0x5ED7, (q15_t)0x55F5, (q15_t)0x5E50, (q15_t)0x568A, - (q15_t)0x5DC7, (q15_t)0x571D, (q15_t)0x5D3E, (q15_t)0x57B0, - (q15_t)0x5CB4, (q15_t)0x5842, (q15_t)0x5C29, (q15_t)0x58D4, - (q15_t)0x5B9D, (q15_t)0x5964, (q15_t)0x5B10, (q15_t)0x59F3, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x59F3, (q15_t)0x5B10, - (q15_t)0x5964, (q15_t)0x5B9D, (q15_t)0x58D4, (q15_t)0x5C29, - (q15_t)0x5842, (q15_t)0x5CB4, (q15_t)0x57B0, (q15_t)0x5D3E, - (q15_t)0x571D, (q15_t)0x5DC7, (q15_t)0x568A, (q15_t)0x5E50, - (q15_t)0x55F5, (q15_t)0x5ED7, (q15_t)0x5560, (q15_t)0x5F5E, - (q15_t)0x54CA, (q15_t)0x5FE3, (q15_t)0x5433, (q15_t)0x6068, - (q15_t)0x539B, (q15_t)0x60EC, (q15_t)0x5302, (q15_t)0x616F, - (q15_t)0x5269, (q15_t)0x61F1, (q15_t)0x51CE, (q15_t)0x6271, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x5097, (q15_t)0x6371, - (q15_t)0x4FFB, (q15_t)0x63EF, (q15_t)0x4F5E, (q15_t)0x646C, - (q15_t)0x4EBF, (q15_t)0x64E8, (q15_t)0x4E21, (q15_t)0x6563, - (q15_t)0x4D81, (q15_t)0x65DD, (q15_t)0x4CE1, (q15_t)0x6657, - (q15_t)0x4C3F, (q15_t)0x66CF, (q15_t)0x4B9E, (q15_t)0x6746, - (q15_t)0x4AFB, (q15_t)0x67BD, (q15_t)0x4A58, (q15_t)0x6832, - (q15_t)0x49B4, (q15_t)0x68A6, (q15_t)0x490F, (q15_t)0x6919, - (q15_t)0x4869, (q15_t)0x698C, (q15_t)0x47C3, (q15_t)0x69FD, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x4675, (q15_t)0x6ADC, - (q15_t)0x45CD, (q15_t)0x6B4A, (q15_t)0x4524, (q15_t)0x6BB8, - (q15_t)0x447A, (q15_t)0x6C24, (q15_t)0x43D0, (q15_t)0x6C8F, - (q15_t)0x4325, (q15_t)0x6CF9, (q15_t)0x427A, (q15_t)0x6D62, - (q15_t)0x41CE, (q15_t)0x6DCA, (q15_t)0x4121, (q15_t)0x6E30, - (q15_t)0x4073, (q15_t)0x6E96, (q15_t)0x3FC5, (q15_t)0x6EFB, - (q15_t)0x3F17, (q15_t)0x6F5F, (q15_t)0x3E68, (q15_t)0x6FC1, - (q15_t)0x3DB8, (q15_t)0x7023, (q15_t)0x3D07, (q15_t)0x7083, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x3BA5, (q15_t)0x7141, - (q15_t)0x3AF2, (q15_t)0x719E, (q15_t)0x3A40, (q15_t)0x71FA, - (q15_t)0x398C, (q15_t)0x7255, (q15_t)0x38D8, (q15_t)0x72AF, - (q15_t)0x3824, (q15_t)0x7307, (q15_t)0x376F, (q15_t)0x735F, - (q15_t)0x36BA, (q15_t)0x73B5, (q15_t)0x3604, (q15_t)0x740B, - (q15_t)0x354D, (q15_t)0x745F, (q15_t)0x3496, (q15_t)0x74B2, - (q15_t)0x33DE, (q15_t)0x7504, (q15_t)0x3326, (q15_t)0x7555, - (q15_t)0x326E, (q15_t)0x75A5, (q15_t)0x31B5, (q15_t)0x75F4, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x3041, (q15_t)0x768E, - (q15_t)0x2F87, (q15_t)0x76D9, (q15_t)0x2ECC, (q15_t)0x7723, - (q15_t)0x2E11, (q15_t)0x776C, (q15_t)0x2D55, (q15_t)0x77B4, - (q15_t)0x2C98, (q15_t)0x77FA, (q15_t)0x2BDC, (q15_t)0x7840, - (q15_t)0x2B1F, (q15_t)0x7884, (q15_t)0x2A61, (q15_t)0x78C7, - (q15_t)0x29A3, (q15_t)0x7909, (q15_t)0x28E5, (q15_t)0x794A, - (q15_t)0x2826, (q15_t)0x798A, (q15_t)0x2767, (q15_t)0x79C8, - (q15_t)0x26A8, (q15_t)0x7A05, (q15_t)0x25E8, (q15_t)0x7A42, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x2467, (q15_t)0x7AB6, - (q15_t)0x23A6, (q15_t)0x7AEF, (q15_t)0x22E5, (q15_t)0x7B26, - (q15_t)0x2223, (q15_t)0x7B5D, (q15_t)0x2161, (q15_t)0x7B92, - (q15_t)0x209F, (q15_t)0x7BC5, (q15_t)0x1FDC, (q15_t)0x7BF8, - (q15_t)0x1F19, (q15_t)0x7C29, (q15_t)0x1E56, (q15_t)0x7C5A, - (q15_t)0x1D93, (q15_t)0x7C89, (q15_t)0x1CCF, (q15_t)0x7CB7, - (q15_t)0x1C0B, (q15_t)0x7CE3, (q15_t)0x1B47, (q15_t)0x7D0F, - (q15_t)0x1A82, (q15_t)0x7D39, (q15_t)0x19BD, (q15_t)0x7D62, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x1833, (q15_t)0x7DB0, - (q15_t)0x176D, (q15_t)0x7DD6, (q15_t)0x16A8, (q15_t)0x7DFA, - (q15_t)0x15E2, (q15_t)0x7E1D, (q15_t)0x151B, (q15_t)0x7E3F, - (q15_t)0x1455, (q15_t)0x7E5F, (q15_t)0x138E, (q15_t)0x7E7F, - (q15_t)0x12C8, (q15_t)0x7E9D, (q15_t)0x1201, (q15_t)0x7EBA, - (q15_t)0x1139, (q15_t)0x7ED5, (q15_t)0x1072, (q15_t)0x7EF0, - (q15_t)0x0FAB, (q15_t)0x7F09, (q15_t)0x0EE3, (q15_t)0x7F21, - (q15_t)0x0E1B, (q15_t)0x7F38, (q15_t)0x0D53, (q15_t)0x7F4D, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x0BC3, (q15_t)0x7F75, - (q15_t)0x0AFB, (q15_t)0x7F87, (q15_t)0x0A33, (q15_t)0x7F97, - (q15_t)0x096A, (q15_t)0x7FA7, (q15_t)0x08A2, (q15_t)0x7FB5, - (q15_t)0x07D9, (q15_t)0x7FC2, (q15_t)0x0710, (q15_t)0x7FCE, - (q15_t)0x0647, (q15_t)0x7FD8, (q15_t)0x057F, (q15_t)0x7FE1, - (q15_t)0x04B6, (q15_t)0x7FE9, (q15_t)0x03ED, (q15_t)0x7FF0, - (q15_t)0x0324, (q15_t)0x7FF6, (q15_t)0x025B, (q15_t)0x7FFA, - (q15_t)0x0192, (q15_t)0x7FFD, (q15_t)0x00C9, (q15_t)0x7FFF, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xFF36, (q15_t)0x7FFF, - (q15_t)0xFE6D, (q15_t)0x7FFD, (q15_t)0xFDA4, (q15_t)0x7FFA, - (q15_t)0xFCDB, (q15_t)0x7FF6, (q15_t)0xFC12, (q15_t)0x7FF0, - (q15_t)0xFB49, (q15_t)0x7FE9, (q15_t)0xFA80, (q15_t)0x7FE1, - (q15_t)0xF9B8, (q15_t)0x7FD8, (q15_t)0xF8EF, (q15_t)0x7FCE, - (q15_t)0xF826, (q15_t)0x7FC2, (q15_t)0xF75D, (q15_t)0x7FB5, - (q15_t)0xF695, (q15_t)0x7FA7, (q15_t)0xF5CC, (q15_t)0x7F97, - (q15_t)0xF504, (q15_t)0x7F87, (q15_t)0xF43C, (q15_t)0x7F75, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xF2AC, (q15_t)0x7F4D, - (q15_t)0xF1E4, (q15_t)0x7F38, (q15_t)0xF11C, (q15_t)0x7F21, - (q15_t)0xF054, (q15_t)0x7F09, (q15_t)0xEF8D, (q15_t)0x7EF0, - (q15_t)0xEEC6, (q15_t)0x7ED5, (q15_t)0xEDFE, (q15_t)0x7EBA, - (q15_t)0xED37, (q15_t)0x7E9D, (q15_t)0xEC71, (q15_t)0x7E7F, - (q15_t)0xEBAA, (q15_t)0x7E5F, (q15_t)0xEAE4, (q15_t)0x7E3F, - (q15_t)0xEA1D, (q15_t)0x7E1D, (q15_t)0xE957, (q15_t)0x7DFA, - (q15_t)0xE892, (q15_t)0x7DD6, (q15_t)0xE7CC, (q15_t)0x7DB0, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE642, (q15_t)0x7D62, - (q15_t)0xE57D, (q15_t)0x7D39, (q15_t)0xE4B8, (q15_t)0x7D0F, - (q15_t)0xE3F4, (q15_t)0x7CE3, (q15_t)0xE330, (q15_t)0x7CB7, - (q15_t)0xE26C, (q15_t)0x7C89, (q15_t)0xE1A9, (q15_t)0x7C5A, - (q15_t)0xE0E6, (q15_t)0x7C29, (q15_t)0xE023, (q15_t)0x7BF8, - (q15_t)0xDF60, (q15_t)0x7BC5, (q15_t)0xDE9E, (q15_t)0x7B92, - (q15_t)0xDDDC, (q15_t)0x7B5D, (q15_t)0xDD1A, (q15_t)0x7B26, - (q15_t)0xDC59, (q15_t)0x7AEF, (q15_t)0xDB98, (q15_t)0x7AB6, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xDA17, (q15_t)0x7A42, - (q15_t)0xD957, (q15_t)0x7A05, (q15_t)0xD898, (q15_t)0x79C8, - (q15_t)0xD7D9, (q15_t)0x798A, (q15_t)0xD71A, (q15_t)0x794A, - (q15_t)0xD65C, (q15_t)0x7909, (q15_t)0xD59E, (q15_t)0x78C7, - (q15_t)0xD4E0, (q15_t)0x7884, (q15_t)0xD423, (q15_t)0x7840, - (q15_t)0xD367, (q15_t)0x77FA, (q15_t)0xD2AA, (q15_t)0x77B4, - (q15_t)0xD1EE, (q15_t)0x776C, (q15_t)0xD133, (q15_t)0x7723, - (q15_t)0xD078, (q15_t)0x76D9, (q15_t)0xCFBE, (q15_t)0x768E, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xCE4A, (q15_t)0x75F4, - (q15_t)0xCD91, (q15_t)0x75A5, (q15_t)0xCCD9, (q15_t)0x7555, - (q15_t)0xCC21, (q15_t)0x7504, (q15_t)0xCB69, (q15_t)0x74B2, - (q15_t)0xCAB2, (q15_t)0x745F, (q15_t)0xC9FB, (q15_t)0x740B, - (q15_t)0xC945, (q15_t)0x73B5, (q15_t)0xC890, (q15_t)0x735F, - (q15_t)0xC7DB, (q15_t)0x7307, (q15_t)0xC727, (q15_t)0x72AF, - (q15_t)0xC673, (q15_t)0x7255, (q15_t)0xC5BF, (q15_t)0x71FA, - (q15_t)0xC50D, (q15_t)0x719E, (q15_t)0xC45A, (q15_t)0x7141, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xC2F8, (q15_t)0x7083, - (q15_t)0xC247, (q15_t)0x7023, (q15_t)0xC197, (q15_t)0x6FC1, - (q15_t)0xC0E8, (q15_t)0x6F5F, (q15_t)0xC03A, (q15_t)0x6EFB, - (q15_t)0xBF8C, (q15_t)0x6E96, (q15_t)0xBEDE, (q15_t)0x6E30, - (q15_t)0xBE31, (q15_t)0x6DCA, (q15_t)0xBD85, (q15_t)0x6D62, - (q15_t)0xBCDA, (q15_t)0x6CF9, (q15_t)0xBC2F, (q15_t)0x6C8F, - (q15_t)0xBB85, (q15_t)0x6C24, (q15_t)0xBADB, (q15_t)0x6BB8, - (q15_t)0xBA32, (q15_t)0x6B4A, (q15_t)0xB98A, (q15_t)0x6ADC, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB83C, (q15_t)0x69FD, - (q15_t)0xB796, (q15_t)0x698C, (q15_t)0xB6F0, (q15_t)0x6919, - (q15_t)0xB64B, (q15_t)0x68A6, (q15_t)0xB5A7, (q15_t)0x6832, - (q15_t)0xB504, (q15_t)0x67BD, (q15_t)0xB461, (q15_t)0x6746, - (q15_t)0xB3C0, (q15_t)0x66CF, (q15_t)0xB31E, (q15_t)0x6657, - (q15_t)0xB27E, (q15_t)0x65DD, (q15_t)0xB1DE, (q15_t)0x6563, - (q15_t)0xB140, (q15_t)0x64E8, (q15_t)0xB0A1, (q15_t)0x646C, - (q15_t)0xB004, (q15_t)0x63EF, (q15_t)0xAF68, (q15_t)0x6371, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAE31, (q15_t)0x6271, - (q15_t)0xAD96, (q15_t)0x61F1, (q15_t)0xACFD, (q15_t)0x616F, - (q15_t)0xAC64, (q15_t)0x60EC, (q15_t)0xABCC, (q15_t)0x6068, - (q15_t)0xAB35, (q15_t)0x5FE3, (q15_t)0xAA9F, (q15_t)0x5F5E, - (q15_t)0xAA0A, (q15_t)0x5ED7, (q15_t)0xA975, (q15_t)0x5E50, - (q15_t)0xA8E2, (q15_t)0x5DC7, (q15_t)0xA84F, (q15_t)0x5D3E, - (q15_t)0xA7BD, (q15_t)0x5CB4, (q15_t)0xA72B, (q15_t)0x5C29, - (q15_t)0xA69B, (q15_t)0x5B9D, (q15_t)0xA60C, (q15_t)0x5B10, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA4EF, (q15_t)0x59F3, - (q15_t)0xA462, (q15_t)0x5964, (q15_t)0xA3D6, (q15_t)0x58D4, - (q15_t)0xA34B, (q15_t)0x5842, (q15_t)0xA2C1, (q15_t)0x57B0, - (q15_t)0xA238, (q15_t)0x571D, (q15_t)0xA1AF, (q15_t)0x568A, - (q15_t)0xA128, (q15_t)0x55F5, (q15_t)0xA0A1, (q15_t)0x5560, - (q15_t)0xA01C, (q15_t)0x54CA, (q15_t)0x9F97, (q15_t)0x5433, - (q15_t)0x9F13, (q15_t)0x539B, (q15_t)0x9E90, (q15_t)0x5302, - (q15_t)0x9E0E, (q15_t)0x5269, (q15_t)0x9D8E, (q15_t)0x51CE, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9C8E, (q15_t)0x5097, - (q15_t)0x9C10, (q15_t)0x4FFB, (q15_t)0x9B93, (q15_t)0x4F5E, - (q15_t)0x9B17, (q15_t)0x4EBF, (q15_t)0x9A9C, (q15_t)0x4E21, - (q15_t)0x9A22, (q15_t)0x4D81, (q15_t)0x99A8, (q15_t)0x4CE1, - (q15_t)0x9930, (q15_t)0x4C3F, (q15_t)0x98B9, (q15_t)0x4B9E, - (q15_t)0x9842, (q15_t)0x4AFB, (q15_t)0x97CD, (q15_t)0x4A58, - (q15_t)0x9759, (q15_t)0x49B4, (q15_t)0x96E6, (q15_t)0x490F, - (q15_t)0x9673, (q15_t)0x4869, (q15_t)0x9602, (q15_t)0x47C3, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x9523, (q15_t)0x4675, - (q15_t)0x94B5, (q15_t)0x45CD, (q15_t)0x9447, (q15_t)0x4524, - (q15_t)0x93DB, (q15_t)0x447A, (q15_t)0x9370, (q15_t)0x43D0, - (q15_t)0x9306, (q15_t)0x4325, (q15_t)0x929D, (q15_t)0x427A, - (q15_t)0x9235, (q15_t)0x41CE, (q15_t)0x91CF, (q15_t)0x4121, - (q15_t)0x9169, (q15_t)0x4073, (q15_t)0x9104, (q15_t)0x3FC5, - (q15_t)0x90A0, (q15_t)0x3F17, (q15_t)0x903E, (q15_t)0x3E68, - (q15_t)0x8FDC, (q15_t)0x3DB8, (q15_t)0x8F7C, (q15_t)0x3D07, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8EBE, (q15_t)0x3BA5, - (q15_t)0x8E61, (q15_t)0x3AF2, (q15_t)0x8E05, (q15_t)0x3A40, - (q15_t)0x8DAA, (q15_t)0x398C, (q15_t)0x8D50, (q15_t)0x38D8, - (q15_t)0x8CF8, (q15_t)0x3824, (q15_t)0x8CA0, (q15_t)0x376F, - (q15_t)0x8C4A, (q15_t)0x36BA, (q15_t)0x8BF4, (q15_t)0x3604, - (q15_t)0x8BA0, (q15_t)0x354D, (q15_t)0x8B4D, (q15_t)0x3496, - (q15_t)0x8AFB, (q15_t)0x33DE, (q15_t)0x8AAA, (q15_t)0x3326, - (q15_t)0x8A5A, (q15_t)0x326E, (q15_t)0x8A0B, (q15_t)0x31B5, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x8971, (q15_t)0x3041, - (q15_t)0x8926, (q15_t)0x2F87, (q15_t)0x88DC, (q15_t)0x2ECC, - (q15_t)0x8893, (q15_t)0x2E11, (q15_t)0x884B, (q15_t)0x2D55, - (q15_t)0x8805, (q15_t)0x2C98, (q15_t)0x87BF, (q15_t)0x2BDC, - (q15_t)0x877B, (q15_t)0x2B1F, (q15_t)0x8738, (q15_t)0x2A61, - (q15_t)0x86F6, (q15_t)0x29A3, (q15_t)0x86B5, (q15_t)0x28E5, - (q15_t)0x8675, (q15_t)0x2826, (q15_t)0x8637, (q15_t)0x2767, - (q15_t)0x85FA, (q15_t)0x26A8, (q15_t)0x85BD, (q15_t)0x25E8, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x8549, (q15_t)0x2467, - (q15_t)0x8510, (q15_t)0x23A6, (q15_t)0x84D9, (q15_t)0x22E5, - (q15_t)0x84A2, (q15_t)0x2223, (q15_t)0x846D, (q15_t)0x2161, - (q15_t)0x843A, (q15_t)0x209F, (q15_t)0x8407, (q15_t)0x1FDC, - (q15_t)0x83D6, (q15_t)0x1F19, (q15_t)0x83A5, (q15_t)0x1E56, - (q15_t)0x8376, (q15_t)0x1D93, (q15_t)0x8348, (q15_t)0x1CCF, - (q15_t)0x831C, (q15_t)0x1C0B, (q15_t)0x82F0, (q15_t)0x1B47, - (q15_t)0x82C6, (q15_t)0x1A82, (q15_t)0x829D, (q15_t)0x19BD, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x824F, (q15_t)0x1833, - (q15_t)0x8229, (q15_t)0x176D, (q15_t)0x8205, (q15_t)0x16A8, - (q15_t)0x81E2, (q15_t)0x15E2, (q15_t)0x81C0, (q15_t)0x151B, - (q15_t)0x81A0, (q15_t)0x1455, (q15_t)0x8180, (q15_t)0x138E, - (q15_t)0x8162, (q15_t)0x12C8, (q15_t)0x8145, (q15_t)0x1201, - (q15_t)0x812A, (q15_t)0x1139, (q15_t)0x810F, (q15_t)0x1072, - (q15_t)0x80F6, (q15_t)0x0FAB, (q15_t)0x80DE, (q15_t)0x0EE3, - (q15_t)0x80C7, (q15_t)0x0E1B, (q15_t)0x80B2, (q15_t)0x0D53, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x808A, (q15_t)0x0BC3, - (q15_t)0x8078, (q15_t)0x0AFB, (q15_t)0x8068, (q15_t)0x0A33, - (q15_t)0x8058, (q15_t)0x096A, (q15_t)0x804A, (q15_t)0x08A2, - (q15_t)0x803D, (q15_t)0x07D9, (q15_t)0x8031, (q15_t)0x0710, - (q15_t)0x8027, (q15_t)0x0647, (q15_t)0x801E, (q15_t)0x057F, - (q15_t)0x8016, (q15_t)0x04B6, (q15_t)0x800F, (q15_t)0x03ED, - (q15_t)0x8009, (q15_t)0x0324, (q15_t)0x8005, (q15_t)0x025B, - (q15_t)0x8002, (q15_t)0x0192, (q15_t)0x8000, (q15_t)0x00C9, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8000, (q15_t)0xFF36, - (q15_t)0x8002, (q15_t)0xFE6D, (q15_t)0x8005, (q15_t)0xFDA4, - (q15_t)0x8009, (q15_t)0xFCDB, (q15_t)0x800F, (q15_t)0xFC12, - (q15_t)0x8016, (q15_t)0xFB49, (q15_t)0x801E, (q15_t)0xFA80, - (q15_t)0x8027, (q15_t)0xF9B8, (q15_t)0x8031, (q15_t)0xF8EF, - (q15_t)0x803D, (q15_t)0xF826, (q15_t)0x804A, (q15_t)0xF75D, - (q15_t)0x8058, (q15_t)0xF695, (q15_t)0x8068, (q15_t)0xF5CC, - (q15_t)0x8078, (q15_t)0xF504, (q15_t)0x808A, (q15_t)0xF43C, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x80B2, (q15_t)0xF2AC, - (q15_t)0x80C7, (q15_t)0xF1E4, (q15_t)0x80DE, (q15_t)0xF11C, - (q15_t)0x80F6, (q15_t)0xF054, (q15_t)0x810F, (q15_t)0xEF8D, - (q15_t)0x812A, (q15_t)0xEEC6, (q15_t)0x8145, (q15_t)0xEDFE, - (q15_t)0x8162, (q15_t)0xED37, (q15_t)0x8180, (q15_t)0xEC71, - (q15_t)0x81A0, (q15_t)0xEBAA, (q15_t)0x81C0, (q15_t)0xEAE4, - (q15_t)0x81E2, (q15_t)0xEA1D, (q15_t)0x8205, (q15_t)0xE957, - (q15_t)0x8229, (q15_t)0xE892, (q15_t)0x824F, (q15_t)0xE7CC, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x829D, (q15_t)0xE642, - (q15_t)0x82C6, (q15_t)0xE57D, (q15_t)0x82F0, (q15_t)0xE4B8, - (q15_t)0x831C, (q15_t)0xE3F4, (q15_t)0x8348, (q15_t)0xE330, - (q15_t)0x8376, (q15_t)0xE26C, (q15_t)0x83A5, (q15_t)0xE1A9, - (q15_t)0x83D6, (q15_t)0xE0E6, (q15_t)0x8407, (q15_t)0xE023, - (q15_t)0x843A, (q15_t)0xDF60, (q15_t)0x846D, (q15_t)0xDE9E, - (q15_t)0x84A2, (q15_t)0xDDDC, (q15_t)0x84D9, (q15_t)0xDD1A, - (q15_t)0x8510, (q15_t)0xDC59, (q15_t)0x8549, (q15_t)0xDB98, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x85BD, (q15_t)0xDA17, - (q15_t)0x85FA, (q15_t)0xD957, (q15_t)0x8637, (q15_t)0xD898, - (q15_t)0x8675, (q15_t)0xD7D9, (q15_t)0x86B5, (q15_t)0xD71A, - (q15_t)0x86F6, (q15_t)0xD65C, (q15_t)0x8738, (q15_t)0xD59E, - (q15_t)0x877B, (q15_t)0xD4E0, (q15_t)0x87BF, (q15_t)0xD423, - (q15_t)0x8805, (q15_t)0xD367, (q15_t)0x884B, (q15_t)0xD2AA, - (q15_t)0x8893, (q15_t)0xD1EE, (q15_t)0x88DC, (q15_t)0xD133, - (q15_t)0x8926, (q15_t)0xD078, (q15_t)0x8971, (q15_t)0xCFBE, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x8A0B, (q15_t)0xCE4A, - (q15_t)0x8A5A, (q15_t)0xCD91, (q15_t)0x8AAA, (q15_t)0xCCD9, - (q15_t)0x8AFB, (q15_t)0xCC21, (q15_t)0x8B4D, (q15_t)0xCB69, - (q15_t)0x8BA0, (q15_t)0xCAB2, (q15_t)0x8BF4, (q15_t)0xC9FB, - (q15_t)0x8C4A, (q15_t)0xC945, (q15_t)0x8CA0, (q15_t)0xC890, - (q15_t)0x8CF8, (q15_t)0xC7DB, (q15_t)0x8D50, (q15_t)0xC727, - (q15_t)0x8DAA, (q15_t)0xC673, (q15_t)0x8E05, (q15_t)0xC5BF, - (q15_t)0x8E61, (q15_t)0xC50D, (q15_t)0x8EBE, (q15_t)0xC45A, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x8F7C, (q15_t)0xC2F8, - (q15_t)0x8FDC, (q15_t)0xC247, (q15_t)0x903E, (q15_t)0xC197, - (q15_t)0x90A0, (q15_t)0xC0E8, (q15_t)0x9104, (q15_t)0xC03A, - (q15_t)0x9169, (q15_t)0xBF8C, (q15_t)0x91CF, (q15_t)0xBEDE, - (q15_t)0x9235, (q15_t)0xBE31, (q15_t)0x929D, (q15_t)0xBD85, - (q15_t)0x9306, (q15_t)0xBCDA, (q15_t)0x9370, (q15_t)0xBC2F, - (q15_t)0x93DB, (q15_t)0xBB85, (q15_t)0x9447, (q15_t)0xBADB, - (q15_t)0x94B5, (q15_t)0xBA32, (q15_t)0x9523, (q15_t)0xB98A, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x9602, (q15_t)0xB83C, - (q15_t)0x9673, (q15_t)0xB796, (q15_t)0x96E6, (q15_t)0xB6F0, - (q15_t)0x9759, (q15_t)0xB64B, (q15_t)0x97CD, (q15_t)0xB5A7, - (q15_t)0x9842, (q15_t)0xB504, (q15_t)0x98B9, (q15_t)0xB461, - (q15_t)0x9930, (q15_t)0xB3C0, (q15_t)0x99A8, (q15_t)0xB31E, - (q15_t)0x9A22, (q15_t)0xB27E, (q15_t)0x9A9C, (q15_t)0xB1DE, - (q15_t)0x9B17, (q15_t)0xB140, (q15_t)0x9B93, (q15_t)0xB0A1, - (q15_t)0x9C10, (q15_t)0xB004, (q15_t)0x9C8E, (q15_t)0xAF68, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0x9D8E, (q15_t)0xAE31, - (q15_t)0x9E0E, (q15_t)0xAD96, (q15_t)0x9E90, (q15_t)0xACFD, - (q15_t)0x9F13, (q15_t)0xAC64, (q15_t)0x9F97, (q15_t)0xABCC, - (q15_t)0xA01C, (q15_t)0xAB35, (q15_t)0xA0A1, (q15_t)0xAA9F, - (q15_t)0xA128, (q15_t)0xAA0A, (q15_t)0xA1AF, (q15_t)0xA975, - (q15_t)0xA238, (q15_t)0xA8E2, (q15_t)0xA2C1, (q15_t)0xA84F, - (q15_t)0xA34B, (q15_t)0xA7BD, (q15_t)0xA3D6, (q15_t)0xA72B, - (q15_t)0xA462, (q15_t)0xA69B, (q15_t)0xA4EF, (q15_t)0xA60C, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xA60C, (q15_t)0xA4EF, - (q15_t)0xA69B, (q15_t)0xA462, (q15_t)0xA72B, (q15_t)0xA3D6, - (q15_t)0xA7BD, (q15_t)0xA34B, (q15_t)0xA84F, (q15_t)0xA2C1, - (q15_t)0xA8E2, (q15_t)0xA238, (q15_t)0xA975, (q15_t)0xA1AF, - (q15_t)0xAA0A, (q15_t)0xA128, (q15_t)0xAA9F, (q15_t)0xA0A1, - (q15_t)0xAB35, (q15_t)0xA01C, (q15_t)0xABCC, (q15_t)0x9F97, - (q15_t)0xAC64, (q15_t)0x9F13, (q15_t)0xACFD, (q15_t)0x9E90, - (q15_t)0xAD96, (q15_t)0x9E0E, (q15_t)0xAE31, (q15_t)0x9D8E, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xAF68, (q15_t)0x9C8E, - (q15_t)0xB004, (q15_t)0x9C10, (q15_t)0xB0A1, (q15_t)0x9B93, - (q15_t)0xB140, (q15_t)0x9B17, (q15_t)0xB1DE, (q15_t)0x9A9C, - (q15_t)0xB27E, (q15_t)0x9A22, (q15_t)0xB31E, (q15_t)0x99A8, - (q15_t)0xB3C0, (q15_t)0x9930, (q15_t)0xB461, (q15_t)0x98B9, - (q15_t)0xB504, (q15_t)0x9842, (q15_t)0xB5A7, (q15_t)0x97CD, - (q15_t)0xB64B, (q15_t)0x9759, (q15_t)0xB6F0, (q15_t)0x96E6, - (q15_t)0xB796, (q15_t)0x9673, (q15_t)0xB83C, (q15_t)0x9602, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xB98A, (q15_t)0x9523, - (q15_t)0xBA32, (q15_t)0x94B5, (q15_t)0xBADB, (q15_t)0x9447, - (q15_t)0xBB85, (q15_t)0x93DB, (q15_t)0xBC2F, (q15_t)0x9370, - (q15_t)0xBCDA, (q15_t)0x9306, (q15_t)0xBD85, (q15_t)0x929D, - (q15_t)0xBE31, (q15_t)0x9235, (q15_t)0xBEDE, (q15_t)0x91CF, - (q15_t)0xBF8C, (q15_t)0x9169, (q15_t)0xC03A, (q15_t)0x9104, - (q15_t)0xC0E8, (q15_t)0x90A0, (q15_t)0xC197, (q15_t)0x903E, - (q15_t)0xC247, (q15_t)0x8FDC, (q15_t)0xC2F8, (q15_t)0x8F7C, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC45A, (q15_t)0x8EBE, - (q15_t)0xC50D, (q15_t)0x8E61, (q15_t)0xC5BF, (q15_t)0x8E05, - (q15_t)0xC673, (q15_t)0x8DAA, (q15_t)0xC727, (q15_t)0x8D50, - (q15_t)0xC7DB, (q15_t)0x8CF8, (q15_t)0xC890, (q15_t)0x8CA0, - (q15_t)0xC945, (q15_t)0x8C4A, (q15_t)0xC9FB, (q15_t)0x8BF4, - (q15_t)0xCAB2, (q15_t)0x8BA0, (q15_t)0xCB69, (q15_t)0x8B4D, - (q15_t)0xCC21, (q15_t)0x8AFB, (q15_t)0xCCD9, (q15_t)0x8AAA, - (q15_t)0xCD91, (q15_t)0x8A5A, (q15_t)0xCE4A, (q15_t)0x8A0B, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xCFBE, (q15_t)0x8971, - (q15_t)0xD078, (q15_t)0x8926, (q15_t)0xD133, (q15_t)0x88DC, - (q15_t)0xD1EE, (q15_t)0x8893, (q15_t)0xD2AA, (q15_t)0x884B, - (q15_t)0xD367, (q15_t)0x8805, (q15_t)0xD423, (q15_t)0x87BF, - (q15_t)0xD4E0, (q15_t)0x877B, (q15_t)0xD59E, (q15_t)0x8738, - (q15_t)0xD65C, (q15_t)0x86F6, (q15_t)0xD71A, (q15_t)0x86B5, - (q15_t)0xD7D9, (q15_t)0x8675, (q15_t)0xD898, (q15_t)0x8637, - (q15_t)0xD957, (q15_t)0x85FA, (q15_t)0xDA17, (q15_t)0x85BD, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xDB98, (q15_t)0x8549, - (q15_t)0xDC59, (q15_t)0x8510, (q15_t)0xDD1A, (q15_t)0x84D9, - (q15_t)0xDDDC, (q15_t)0x84A2, (q15_t)0xDE9E, (q15_t)0x846D, - (q15_t)0xDF60, (q15_t)0x843A, (q15_t)0xE023, (q15_t)0x8407, - (q15_t)0xE0E6, (q15_t)0x83D6, (q15_t)0xE1A9, (q15_t)0x83A5, - (q15_t)0xE26C, (q15_t)0x8376, (q15_t)0xE330, (q15_t)0x8348, - (q15_t)0xE3F4, (q15_t)0x831C, (q15_t)0xE4B8, (q15_t)0x82F0, - (q15_t)0xE57D, (q15_t)0x82C6, (q15_t)0xE642, (q15_t)0x829D, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xE7CC, (q15_t)0x824F, - (q15_t)0xE892, (q15_t)0x8229, (q15_t)0xE957, (q15_t)0x8205, - (q15_t)0xEA1D, (q15_t)0x81E2, (q15_t)0xEAE4, (q15_t)0x81C0, - (q15_t)0xEBAA, (q15_t)0x81A0, (q15_t)0xEC71, (q15_t)0x8180, - (q15_t)0xED37, (q15_t)0x8162, (q15_t)0xEDFE, (q15_t)0x8145, - (q15_t)0xEEC6, (q15_t)0x812A, (q15_t)0xEF8D, (q15_t)0x810F, - (q15_t)0xF054, (q15_t)0x80F6, (q15_t)0xF11C, (q15_t)0x80DE, - (q15_t)0xF1E4, (q15_t)0x80C7, (q15_t)0xF2AC, (q15_t)0x80B2, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF43C, (q15_t)0x808A, - (q15_t)0xF504, (q15_t)0x8078, (q15_t)0xF5CC, (q15_t)0x8068, - (q15_t)0xF695, (q15_t)0x8058, (q15_t)0xF75D, (q15_t)0x804A, - (q15_t)0xF826, (q15_t)0x803D, (q15_t)0xF8EF, (q15_t)0x8031, - (q15_t)0xF9B8, (q15_t)0x8027, (q15_t)0xFA80, (q15_t)0x801E, - (q15_t)0xFB49, (q15_t)0x8016, (q15_t)0xFC12, (q15_t)0x800F, - (q15_t)0xFCDB, (q15_t)0x8009, (q15_t)0xFDA4, (q15_t)0x8005, - (q15_t)0xFE6D, (q15_t)0x8002, (q15_t)0xFF36, (q15_t)0x8000 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 2048 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_2048_q15[3072] = { - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0x0064, - (q15_t)0x7FFF, (q15_t)0x00C9, (q15_t)0x7FFE, (q15_t)0x012D, - (q15_t)0x7FFD, (q15_t)0x0192, (q15_t)0x7FFC, (q15_t)0x01F6, - (q15_t)0x7FFA, (q15_t)0x025B, (q15_t)0x7FF8, (q15_t)0x02BF, - (q15_t)0x7FF6, (q15_t)0x0324, (q15_t)0x7FF3, (q15_t)0x0388, - (q15_t)0x7FF0, (q15_t)0x03ED, (q15_t)0x7FED, (q15_t)0x0451, - (q15_t)0x7FE9, (q15_t)0x04B6, (q15_t)0x7FE5, (q15_t)0x051A, - (q15_t)0x7FE1, (q15_t)0x057F, (q15_t)0x7FDD, (q15_t)0x05E3, - (q15_t)0x7FD8, (q15_t)0x0647, (q15_t)0x7FD3, (q15_t)0x06AC, - (q15_t)0x7FCE, (q15_t)0x0710, (q15_t)0x7FC8, (q15_t)0x0775, - (q15_t)0x7FC2, (q15_t)0x07D9, (q15_t)0x7FBC, (q15_t)0x083D, - (q15_t)0x7FB5, (q15_t)0x08A2, (q15_t)0x7FAE, (q15_t)0x0906, - (q15_t)0x7FA7, (q15_t)0x096A, (q15_t)0x7F9F, (q15_t)0x09CE, - (q15_t)0x7F97, (q15_t)0x0A33, (q15_t)0x7F8F, (q15_t)0x0A97, - (q15_t)0x7F87, (q15_t)0x0AFB, (q15_t)0x7F7E, (q15_t)0x0B5F, - (q15_t)0x7F75, (q15_t)0x0BC3, (q15_t)0x7F6B, (q15_t)0x0C27, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7F58, (q15_t)0x0CEF, - (q15_t)0x7F4D, (q15_t)0x0D53, (q15_t)0x7F43, (q15_t)0x0DB7, - (q15_t)0x7F38, (q15_t)0x0E1B, (q15_t)0x7F2D, (q15_t)0x0E7F, - (q15_t)0x7F21, (q15_t)0x0EE3, (q15_t)0x7F15, (q15_t)0x0F47, - (q15_t)0x7F09, (q15_t)0x0FAB, (q15_t)0x7EFD, (q15_t)0x100E, - (q15_t)0x7EF0, (q15_t)0x1072, (q15_t)0x7EE3, (q15_t)0x10D6, - (q15_t)0x7ED5, (q15_t)0x1139, (q15_t)0x7EC8, (q15_t)0x119D, - (q15_t)0x7EBA, (q15_t)0x1201, (q15_t)0x7EAB, (q15_t)0x1264, - (q15_t)0x7E9D, (q15_t)0x12C8, (q15_t)0x7E8E, (q15_t)0x132B, - (q15_t)0x7E7F, (q15_t)0x138E, (q15_t)0x7E6F, (q15_t)0x13F2, - (q15_t)0x7E5F, (q15_t)0x1455, (q15_t)0x7E4F, (q15_t)0x14B8, - (q15_t)0x7E3F, (q15_t)0x151B, (q15_t)0x7E2E, (q15_t)0x157F, - (q15_t)0x7E1D, (q15_t)0x15E2, (q15_t)0x7E0C, (q15_t)0x1645, - (q15_t)0x7DFA, (q15_t)0x16A8, (q15_t)0x7DE8, (q15_t)0x170A, - (q15_t)0x7DD6, (q15_t)0x176D, (q15_t)0x7DC3, (q15_t)0x17D0, - (q15_t)0x7DB0, (q15_t)0x1833, (q15_t)0x7D9D, (q15_t)0x1896, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7D76, (q15_t)0x195B, - (q15_t)0x7D62, (q15_t)0x19BD, (q15_t)0x7D4E, (q15_t)0x1A20, - (q15_t)0x7D39, (q15_t)0x1A82, (q15_t)0x7D24, (q15_t)0x1AE4, - (q15_t)0x7D0F, (q15_t)0x1B47, (q15_t)0x7CF9, (q15_t)0x1BA9, - (q15_t)0x7CE3, (q15_t)0x1C0B, (q15_t)0x7CCD, (q15_t)0x1C6D, - (q15_t)0x7CB7, (q15_t)0x1CCF, (q15_t)0x7CA0, (q15_t)0x1D31, - (q15_t)0x7C89, (q15_t)0x1D93, (q15_t)0x7C71, (q15_t)0x1DF5, - (q15_t)0x7C5A, (q15_t)0x1E56, (q15_t)0x7C42, (q15_t)0x1EB8, - (q15_t)0x7C29, (q15_t)0x1F19, (q15_t)0x7C11, (q15_t)0x1F7B, - (q15_t)0x7BF8, (q15_t)0x1FDC, (q15_t)0x7BDF, (q15_t)0x203E, - (q15_t)0x7BC5, (q15_t)0x209F, (q15_t)0x7BAC, (q15_t)0x2100, - (q15_t)0x7B92, (q15_t)0x2161, (q15_t)0x7B77, (q15_t)0x21C2, - (q15_t)0x7B5D, (q15_t)0x2223, (q15_t)0x7B42, (q15_t)0x2284, - (q15_t)0x7B26, (q15_t)0x22E5, (q15_t)0x7B0B, (q15_t)0x2345, - (q15_t)0x7AEF, (q15_t)0x23A6, (q15_t)0x7AD3, (q15_t)0x2407, - (q15_t)0x7AB6, (q15_t)0x2467, (q15_t)0x7A9A, (q15_t)0x24C7, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x7A5F, (q15_t)0x2588, - (q15_t)0x7A42, (q15_t)0x25E8, (q15_t)0x7A24, (q15_t)0x2648, - (q15_t)0x7A05, (q15_t)0x26A8, (q15_t)0x79E7, (q15_t)0x2707, - (q15_t)0x79C8, (q15_t)0x2767, (q15_t)0x79A9, (q15_t)0x27C7, - (q15_t)0x798A, (q15_t)0x2826, (q15_t)0x796A, (q15_t)0x2886, - (q15_t)0x794A, (q15_t)0x28E5, (q15_t)0x792A, (q15_t)0x2944, - (q15_t)0x7909, (q15_t)0x29A3, (q15_t)0x78E8, (q15_t)0x2A02, - (q15_t)0x78C7, (q15_t)0x2A61, (q15_t)0x78A6, (q15_t)0x2AC0, - (q15_t)0x7884, (q15_t)0x2B1F, (q15_t)0x7862, (q15_t)0x2B7D, - (q15_t)0x7840, (q15_t)0x2BDC, (q15_t)0x781D, (q15_t)0x2C3A, - (q15_t)0x77FA, (q15_t)0x2C98, (q15_t)0x77D7, (q15_t)0x2CF7, - (q15_t)0x77B4, (q15_t)0x2D55, (q15_t)0x7790, (q15_t)0x2DB3, - (q15_t)0x776C, (q15_t)0x2E11, (q15_t)0x7747, (q15_t)0x2E6E, - (q15_t)0x7723, (q15_t)0x2ECC, (q15_t)0x76FE, (q15_t)0x2F29, - (q15_t)0x76D9, (q15_t)0x2F87, (q15_t)0x76B3, (q15_t)0x2FE4, - (q15_t)0x768E, (q15_t)0x3041, (q15_t)0x7668, (q15_t)0x309E, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x761B, (q15_t)0x3158, - (q15_t)0x75F4, (q15_t)0x31B5, (q15_t)0x75CC, (q15_t)0x3211, - (q15_t)0x75A5, (q15_t)0x326E, (q15_t)0x757D, (q15_t)0x32CA, - (q15_t)0x7555, (q15_t)0x3326, (q15_t)0x752D, (q15_t)0x3382, - (q15_t)0x7504, (q15_t)0x33DE, (q15_t)0x74DB, (q15_t)0x343A, - (q15_t)0x74B2, (q15_t)0x3496, (q15_t)0x7489, (q15_t)0x34F2, - (q15_t)0x745F, (q15_t)0x354D, (q15_t)0x7435, (q15_t)0x35A8, - (q15_t)0x740B, (q15_t)0x3604, (q15_t)0x73E0, (q15_t)0x365F, - (q15_t)0x73B5, (q15_t)0x36BA, (q15_t)0x738A, (q15_t)0x3714, - (q15_t)0x735F, (q15_t)0x376F, (q15_t)0x7333, (q15_t)0x37CA, - (q15_t)0x7307, (q15_t)0x3824, (q15_t)0x72DB, (q15_t)0x387E, - (q15_t)0x72AF, (q15_t)0x38D8, (q15_t)0x7282, (q15_t)0x3932, - (q15_t)0x7255, (q15_t)0x398C, (q15_t)0x7227, (q15_t)0x39E6, - (q15_t)0x71FA, (q15_t)0x3A40, (q15_t)0x71CC, (q15_t)0x3A99, - (q15_t)0x719E, (q15_t)0x3AF2, (q15_t)0x716F, (q15_t)0x3B4C, - (q15_t)0x7141, (q15_t)0x3BA5, (q15_t)0x7112, (q15_t)0x3BFD, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x70B3, (q15_t)0x3CAF, - (q15_t)0x7083, (q15_t)0x3D07, (q15_t)0x7053, (q15_t)0x3D60, - (q15_t)0x7023, (q15_t)0x3DB8, (q15_t)0x6FF2, (q15_t)0x3E10, - (q15_t)0x6FC1, (q15_t)0x3E68, (q15_t)0x6F90, (q15_t)0x3EBF, - (q15_t)0x6F5F, (q15_t)0x3F17, (q15_t)0x6F2D, (q15_t)0x3F6E, - (q15_t)0x6EFB, (q15_t)0x3FC5, (q15_t)0x6EC9, (q15_t)0x401D, - (q15_t)0x6E96, (q15_t)0x4073, (q15_t)0x6E63, (q15_t)0x40CA, - (q15_t)0x6E30, (q15_t)0x4121, (q15_t)0x6DFD, (q15_t)0x4177, - (q15_t)0x6DCA, (q15_t)0x41CE, (q15_t)0x6D96, (q15_t)0x4224, - (q15_t)0x6D62, (q15_t)0x427A, (q15_t)0x6D2D, (q15_t)0x42D0, - (q15_t)0x6CF9, (q15_t)0x4325, (q15_t)0x6CC4, (q15_t)0x437B, - (q15_t)0x6C8F, (q15_t)0x43D0, (q15_t)0x6C59, (q15_t)0x4425, - (q15_t)0x6C24, (q15_t)0x447A, (q15_t)0x6BEE, (q15_t)0x44CF, - (q15_t)0x6BB8, (q15_t)0x4524, (q15_t)0x6B81, (q15_t)0x4578, - (q15_t)0x6B4A, (q15_t)0x45CD, (q15_t)0x6B13, (q15_t)0x4621, - (q15_t)0x6ADC, (q15_t)0x4675, (q15_t)0x6AA5, (q15_t)0x46C9, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x6A35, (q15_t)0x4770, - (q15_t)0x69FD, (q15_t)0x47C3, (q15_t)0x69C4, (q15_t)0x4816, - (q15_t)0x698C, (q15_t)0x4869, (q15_t)0x6953, (q15_t)0x48BC, - (q15_t)0x6919, (q15_t)0x490F, (q15_t)0x68E0, (q15_t)0x4961, - (q15_t)0x68A6, (q15_t)0x49B4, (q15_t)0x686C, (q15_t)0x4A06, - (q15_t)0x6832, (q15_t)0x4A58, (q15_t)0x67F7, (q15_t)0x4AA9, - (q15_t)0x67BD, (q15_t)0x4AFB, (q15_t)0x6782, (q15_t)0x4B4C, - (q15_t)0x6746, (q15_t)0x4B9E, (q15_t)0x670B, (q15_t)0x4BEF, - (q15_t)0x66CF, (q15_t)0x4C3F, (q15_t)0x6693, (q15_t)0x4C90, - (q15_t)0x6657, (q15_t)0x4CE1, (q15_t)0x661A, (q15_t)0x4D31, - (q15_t)0x65DD, (q15_t)0x4D81, (q15_t)0x65A0, (q15_t)0x4DD1, - (q15_t)0x6563, (q15_t)0x4E21, (q15_t)0x6526, (q15_t)0x4E70, - (q15_t)0x64E8, (q15_t)0x4EBF, (q15_t)0x64AA, (q15_t)0x4F0F, - (q15_t)0x646C, (q15_t)0x4F5E, (q15_t)0x642D, (q15_t)0x4FAC, - (q15_t)0x63EF, (q15_t)0x4FFB, (q15_t)0x63B0, (q15_t)0x5049, - (q15_t)0x6371, (q15_t)0x5097, (q15_t)0x6331, (q15_t)0x50E5, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x62B2, (q15_t)0x5181, - (q15_t)0x6271, (q15_t)0x51CE, (q15_t)0x6231, (q15_t)0x521C, - (q15_t)0x61F1, (q15_t)0x5269, (q15_t)0x61B0, (q15_t)0x52B5, - (q15_t)0x616F, (q15_t)0x5302, (q15_t)0x612D, (q15_t)0x534E, - (q15_t)0x60EC, (q15_t)0x539B, (q15_t)0x60AA, (q15_t)0x53E7, - (q15_t)0x6068, (q15_t)0x5433, (q15_t)0x6026, (q15_t)0x547E, - (q15_t)0x5FE3, (q15_t)0x54CA, (q15_t)0x5FA0, (q15_t)0x5515, - (q15_t)0x5F5E, (q15_t)0x5560, (q15_t)0x5F1A, (q15_t)0x55AB, - (q15_t)0x5ED7, (q15_t)0x55F5, (q15_t)0x5E93, (q15_t)0x5640, - (q15_t)0x5E50, (q15_t)0x568A, (q15_t)0x5E0B, (q15_t)0x56D4, - (q15_t)0x5DC7, (q15_t)0x571D, (q15_t)0x5D83, (q15_t)0x5767, - (q15_t)0x5D3E, (q15_t)0x57B0, (q15_t)0x5CF9, (q15_t)0x57F9, - (q15_t)0x5CB4, (q15_t)0x5842, (q15_t)0x5C6E, (q15_t)0x588B, - (q15_t)0x5C29, (q15_t)0x58D4, (q15_t)0x5BE3, (q15_t)0x591C, - (q15_t)0x5B9D, (q15_t)0x5964, (q15_t)0x5B56, (q15_t)0x59AC, - (q15_t)0x5B10, (q15_t)0x59F3, (q15_t)0x5AC9, (q15_t)0x5A3B, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x5A3B, (q15_t)0x5AC9, - (q15_t)0x59F3, (q15_t)0x5B10, (q15_t)0x59AC, (q15_t)0x5B56, - (q15_t)0x5964, (q15_t)0x5B9D, (q15_t)0x591C, (q15_t)0x5BE3, - (q15_t)0x58D4, (q15_t)0x5C29, (q15_t)0x588B, (q15_t)0x5C6E, - (q15_t)0x5842, (q15_t)0x5CB4, (q15_t)0x57F9, (q15_t)0x5CF9, - (q15_t)0x57B0, (q15_t)0x5D3E, (q15_t)0x5767, (q15_t)0x5D83, - (q15_t)0x571D, (q15_t)0x5DC7, (q15_t)0x56D4, (q15_t)0x5E0B, - (q15_t)0x568A, (q15_t)0x5E50, (q15_t)0x5640, (q15_t)0x5E93, - (q15_t)0x55F5, (q15_t)0x5ED7, (q15_t)0x55AB, (q15_t)0x5F1A, - (q15_t)0x5560, (q15_t)0x5F5E, (q15_t)0x5515, (q15_t)0x5FA0, - (q15_t)0x54CA, (q15_t)0x5FE3, (q15_t)0x547E, (q15_t)0x6026, - (q15_t)0x5433, (q15_t)0x6068, (q15_t)0x53E7, (q15_t)0x60AA, - (q15_t)0x539B, (q15_t)0x60EC, (q15_t)0x534E, (q15_t)0x612D, - (q15_t)0x5302, (q15_t)0x616F, (q15_t)0x52B5, (q15_t)0x61B0, - (q15_t)0x5269, (q15_t)0x61F1, (q15_t)0x521C, (q15_t)0x6231, - (q15_t)0x51CE, (q15_t)0x6271, (q15_t)0x5181, (q15_t)0x62B2, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x50E5, (q15_t)0x6331, - (q15_t)0x5097, (q15_t)0x6371, (q15_t)0x5049, (q15_t)0x63B0, - (q15_t)0x4FFB, (q15_t)0x63EF, (q15_t)0x4FAC, (q15_t)0x642D, - (q15_t)0x4F5E, (q15_t)0x646C, (q15_t)0x4F0F, (q15_t)0x64AA, - (q15_t)0x4EBF, (q15_t)0x64E8, (q15_t)0x4E70, (q15_t)0x6526, - (q15_t)0x4E21, (q15_t)0x6563, (q15_t)0x4DD1, (q15_t)0x65A0, - (q15_t)0x4D81, (q15_t)0x65DD, (q15_t)0x4D31, (q15_t)0x661A, - (q15_t)0x4CE1, (q15_t)0x6657, (q15_t)0x4C90, (q15_t)0x6693, - (q15_t)0x4C3F, (q15_t)0x66CF, (q15_t)0x4BEF, (q15_t)0x670B, - (q15_t)0x4B9E, (q15_t)0x6746, (q15_t)0x4B4C, (q15_t)0x6782, - (q15_t)0x4AFB, (q15_t)0x67BD, (q15_t)0x4AA9, (q15_t)0x67F7, - (q15_t)0x4A58, (q15_t)0x6832, (q15_t)0x4A06, (q15_t)0x686C, - (q15_t)0x49B4, (q15_t)0x68A6, (q15_t)0x4961, (q15_t)0x68E0, - (q15_t)0x490F, (q15_t)0x6919, (q15_t)0x48BC, (q15_t)0x6953, - (q15_t)0x4869, (q15_t)0x698C, (q15_t)0x4816, (q15_t)0x69C4, - (q15_t)0x47C3, (q15_t)0x69FD, (q15_t)0x4770, (q15_t)0x6A35, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x46C9, (q15_t)0x6AA5, - (q15_t)0x4675, (q15_t)0x6ADC, (q15_t)0x4621, (q15_t)0x6B13, - (q15_t)0x45CD, (q15_t)0x6B4A, (q15_t)0x4578, (q15_t)0x6B81, - (q15_t)0x4524, (q15_t)0x6BB8, (q15_t)0x44CF, (q15_t)0x6BEE, - (q15_t)0x447A, (q15_t)0x6C24, (q15_t)0x4425, (q15_t)0x6C59, - (q15_t)0x43D0, (q15_t)0x6C8F, (q15_t)0x437B, (q15_t)0x6CC4, - (q15_t)0x4325, (q15_t)0x6CF9, (q15_t)0x42D0, (q15_t)0x6D2D, - (q15_t)0x427A, (q15_t)0x6D62, (q15_t)0x4224, (q15_t)0x6D96, - (q15_t)0x41CE, (q15_t)0x6DCA, (q15_t)0x4177, (q15_t)0x6DFD, - (q15_t)0x4121, (q15_t)0x6E30, (q15_t)0x40CA, (q15_t)0x6E63, - (q15_t)0x4073, (q15_t)0x6E96, (q15_t)0x401D, (q15_t)0x6EC9, - (q15_t)0x3FC5, (q15_t)0x6EFB, (q15_t)0x3F6E, (q15_t)0x6F2D, - (q15_t)0x3F17, (q15_t)0x6F5F, (q15_t)0x3EBF, (q15_t)0x6F90, - (q15_t)0x3E68, (q15_t)0x6FC1, (q15_t)0x3E10, (q15_t)0x6FF2, - (q15_t)0x3DB8, (q15_t)0x7023, (q15_t)0x3D60, (q15_t)0x7053, - (q15_t)0x3D07, (q15_t)0x7083, (q15_t)0x3CAF, (q15_t)0x70B3, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x3BFD, (q15_t)0x7112, - (q15_t)0x3BA5, (q15_t)0x7141, (q15_t)0x3B4C, (q15_t)0x716F, - (q15_t)0x3AF2, (q15_t)0x719E, (q15_t)0x3A99, (q15_t)0x71CC, - (q15_t)0x3A40, (q15_t)0x71FA, (q15_t)0x39E6, (q15_t)0x7227, - (q15_t)0x398C, (q15_t)0x7255, (q15_t)0x3932, (q15_t)0x7282, - (q15_t)0x38D8, (q15_t)0x72AF, (q15_t)0x387E, (q15_t)0x72DB, - (q15_t)0x3824, (q15_t)0x7307, (q15_t)0x37CA, (q15_t)0x7333, - (q15_t)0x376F, (q15_t)0x735F, (q15_t)0x3714, (q15_t)0x738A, - (q15_t)0x36BA, (q15_t)0x73B5, (q15_t)0x365F, (q15_t)0x73E0, - (q15_t)0x3604, (q15_t)0x740B, (q15_t)0x35A8, (q15_t)0x7435, - (q15_t)0x354D, (q15_t)0x745F, (q15_t)0x34F2, (q15_t)0x7489, - (q15_t)0x3496, (q15_t)0x74B2, (q15_t)0x343A, (q15_t)0x74DB, - (q15_t)0x33DE, (q15_t)0x7504, (q15_t)0x3382, (q15_t)0x752D, - (q15_t)0x3326, (q15_t)0x7555, (q15_t)0x32CA, (q15_t)0x757D, - (q15_t)0x326E, (q15_t)0x75A5, (q15_t)0x3211, (q15_t)0x75CC, - (q15_t)0x31B5, (q15_t)0x75F4, (q15_t)0x3158, (q15_t)0x761B, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x309E, (q15_t)0x7668, - (q15_t)0x3041, (q15_t)0x768E, (q15_t)0x2FE4, (q15_t)0x76B3, - (q15_t)0x2F87, (q15_t)0x76D9, (q15_t)0x2F29, (q15_t)0x76FE, - (q15_t)0x2ECC, (q15_t)0x7723, (q15_t)0x2E6E, (q15_t)0x7747, - (q15_t)0x2E11, (q15_t)0x776C, (q15_t)0x2DB3, (q15_t)0x7790, - (q15_t)0x2D55, (q15_t)0x77B4, (q15_t)0x2CF7, (q15_t)0x77D7, - (q15_t)0x2C98, (q15_t)0x77FA, (q15_t)0x2C3A, (q15_t)0x781D, - (q15_t)0x2BDC, (q15_t)0x7840, (q15_t)0x2B7D, (q15_t)0x7862, - (q15_t)0x2B1F, (q15_t)0x7884, (q15_t)0x2AC0, (q15_t)0x78A6, - (q15_t)0x2A61, (q15_t)0x78C7, (q15_t)0x2A02, (q15_t)0x78E8, - (q15_t)0x29A3, (q15_t)0x7909, (q15_t)0x2944, (q15_t)0x792A, - (q15_t)0x28E5, (q15_t)0x794A, (q15_t)0x2886, (q15_t)0x796A, - (q15_t)0x2826, (q15_t)0x798A, (q15_t)0x27C7, (q15_t)0x79A9, - (q15_t)0x2767, (q15_t)0x79C8, (q15_t)0x2707, (q15_t)0x79E7, - (q15_t)0x26A8, (q15_t)0x7A05, (q15_t)0x2648, (q15_t)0x7A24, - (q15_t)0x25E8, (q15_t)0x7A42, (q15_t)0x2588, (q15_t)0x7A5F, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x24C7, (q15_t)0x7A9A, - (q15_t)0x2467, (q15_t)0x7AB6, (q15_t)0x2407, (q15_t)0x7AD3, - (q15_t)0x23A6, (q15_t)0x7AEF, (q15_t)0x2345, (q15_t)0x7B0B, - (q15_t)0x22E5, (q15_t)0x7B26, (q15_t)0x2284, (q15_t)0x7B42, - (q15_t)0x2223, (q15_t)0x7B5D, (q15_t)0x21C2, (q15_t)0x7B77, - (q15_t)0x2161, (q15_t)0x7B92, (q15_t)0x2100, (q15_t)0x7BAC, - (q15_t)0x209F, (q15_t)0x7BC5, (q15_t)0x203E, (q15_t)0x7BDF, - (q15_t)0x1FDC, (q15_t)0x7BF8, (q15_t)0x1F7B, (q15_t)0x7C11, - (q15_t)0x1F19, (q15_t)0x7C29, (q15_t)0x1EB8, (q15_t)0x7C42, - (q15_t)0x1E56, (q15_t)0x7C5A, (q15_t)0x1DF5, (q15_t)0x7C71, - (q15_t)0x1D93, (q15_t)0x7C89, (q15_t)0x1D31, (q15_t)0x7CA0, - (q15_t)0x1CCF, (q15_t)0x7CB7, (q15_t)0x1C6D, (q15_t)0x7CCD, - (q15_t)0x1C0B, (q15_t)0x7CE3, (q15_t)0x1BA9, (q15_t)0x7CF9, - (q15_t)0x1B47, (q15_t)0x7D0F, (q15_t)0x1AE4, (q15_t)0x7D24, - (q15_t)0x1A82, (q15_t)0x7D39, (q15_t)0x1A20, (q15_t)0x7D4E, - (q15_t)0x19BD, (q15_t)0x7D62, (q15_t)0x195B, (q15_t)0x7D76, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x1896, (q15_t)0x7D9D, - (q15_t)0x1833, (q15_t)0x7DB0, (q15_t)0x17D0, (q15_t)0x7DC3, - (q15_t)0x176D, (q15_t)0x7DD6, (q15_t)0x170A, (q15_t)0x7DE8, - (q15_t)0x16A8, (q15_t)0x7DFA, (q15_t)0x1645, (q15_t)0x7E0C, - (q15_t)0x15E2, (q15_t)0x7E1D, (q15_t)0x157F, (q15_t)0x7E2E, - (q15_t)0x151B, (q15_t)0x7E3F, (q15_t)0x14B8, (q15_t)0x7E4F, - (q15_t)0x1455, (q15_t)0x7E5F, (q15_t)0x13F2, (q15_t)0x7E6F, - (q15_t)0x138E, (q15_t)0x7E7F, (q15_t)0x132B, (q15_t)0x7E8E, - (q15_t)0x12C8, (q15_t)0x7E9D, (q15_t)0x1264, (q15_t)0x7EAB, - (q15_t)0x1201, (q15_t)0x7EBA, (q15_t)0x119D, (q15_t)0x7EC8, - (q15_t)0x1139, (q15_t)0x7ED5, (q15_t)0x10D6, (q15_t)0x7EE3, - (q15_t)0x1072, (q15_t)0x7EF0, (q15_t)0x100E, (q15_t)0x7EFD, - (q15_t)0x0FAB, (q15_t)0x7F09, (q15_t)0x0F47, (q15_t)0x7F15, - (q15_t)0x0EE3, (q15_t)0x7F21, (q15_t)0x0E7F, (q15_t)0x7F2D, - (q15_t)0x0E1B, (q15_t)0x7F38, (q15_t)0x0DB7, (q15_t)0x7F43, - (q15_t)0x0D53, (q15_t)0x7F4D, (q15_t)0x0CEF, (q15_t)0x7F58, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x0C27, (q15_t)0x7F6B, - (q15_t)0x0BC3, (q15_t)0x7F75, (q15_t)0x0B5F, (q15_t)0x7F7E, - (q15_t)0x0AFB, (q15_t)0x7F87, (q15_t)0x0A97, (q15_t)0x7F8F, - (q15_t)0x0A33, (q15_t)0x7F97, (q15_t)0x09CE, (q15_t)0x7F9F, - (q15_t)0x096A, (q15_t)0x7FA7, (q15_t)0x0906, (q15_t)0x7FAE, - (q15_t)0x08A2, (q15_t)0x7FB5, (q15_t)0x083D, (q15_t)0x7FBC, - (q15_t)0x07D9, (q15_t)0x7FC2, (q15_t)0x0775, (q15_t)0x7FC8, - (q15_t)0x0710, (q15_t)0x7FCE, (q15_t)0x06AC, (q15_t)0x7FD3, - (q15_t)0x0647, (q15_t)0x7FD8, (q15_t)0x05E3, (q15_t)0x7FDD, - (q15_t)0x057F, (q15_t)0x7FE1, (q15_t)0x051A, (q15_t)0x7FE5, - (q15_t)0x04B6, (q15_t)0x7FE9, (q15_t)0x0451, (q15_t)0x7FED, - (q15_t)0x03ED, (q15_t)0x7FF0, (q15_t)0x0388, (q15_t)0x7FF3, - (q15_t)0x0324, (q15_t)0x7FF6, (q15_t)0x02BF, (q15_t)0x7FF8, - (q15_t)0x025B, (q15_t)0x7FFA, (q15_t)0x01F6, (q15_t)0x7FFC, - (q15_t)0x0192, (q15_t)0x7FFD, (q15_t)0x012D, (q15_t)0x7FFE, - (q15_t)0x00C9, (q15_t)0x7FFF, (q15_t)0x0064, (q15_t)0x7FFF, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xFF9B, (q15_t)0x7FFF, - (q15_t)0xFF36, (q15_t)0x7FFF, (q15_t)0xFED2, (q15_t)0x7FFE, - (q15_t)0xFE6D, (q15_t)0x7FFD, (q15_t)0xFE09, (q15_t)0x7FFC, - (q15_t)0xFDA4, (q15_t)0x7FFA, (q15_t)0xFD40, (q15_t)0x7FF8, - (q15_t)0xFCDB, (q15_t)0x7FF6, (q15_t)0xFC77, (q15_t)0x7FF3, - (q15_t)0xFC12, (q15_t)0x7FF0, (q15_t)0xFBAE, (q15_t)0x7FED, - (q15_t)0xFB49, (q15_t)0x7FE9, (q15_t)0xFAE5, (q15_t)0x7FE5, - (q15_t)0xFA80, (q15_t)0x7FE1, (q15_t)0xFA1C, (q15_t)0x7FDD, - (q15_t)0xF9B8, (q15_t)0x7FD8, (q15_t)0xF953, (q15_t)0x7FD3, - (q15_t)0xF8EF, (q15_t)0x7FCE, (q15_t)0xF88A, (q15_t)0x7FC8, - (q15_t)0xF826, (q15_t)0x7FC2, (q15_t)0xF7C2, (q15_t)0x7FBC, - (q15_t)0xF75D, (q15_t)0x7FB5, (q15_t)0xF6F9, (q15_t)0x7FAE, - (q15_t)0xF695, (q15_t)0x7FA7, (q15_t)0xF631, (q15_t)0x7F9F, - (q15_t)0xF5CC, (q15_t)0x7F97, (q15_t)0xF568, (q15_t)0x7F8F, - (q15_t)0xF504, (q15_t)0x7F87, (q15_t)0xF4A0, (q15_t)0x7F7E, - (q15_t)0xF43C, (q15_t)0x7F75, (q15_t)0xF3D8, (q15_t)0x7F6B, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xF310, (q15_t)0x7F58, - (q15_t)0xF2AC, (q15_t)0x7F4D, (q15_t)0xF248, (q15_t)0x7F43, - (q15_t)0xF1E4, (q15_t)0x7F38, (q15_t)0xF180, (q15_t)0x7F2D, - (q15_t)0xF11C, (q15_t)0x7F21, (q15_t)0xF0B8, (q15_t)0x7F15, - (q15_t)0xF054, (q15_t)0x7F09, (q15_t)0xEFF1, (q15_t)0x7EFD, - (q15_t)0xEF8D, (q15_t)0x7EF0, (q15_t)0xEF29, (q15_t)0x7EE3, - (q15_t)0xEEC6, (q15_t)0x7ED5, (q15_t)0xEE62, (q15_t)0x7EC8, - (q15_t)0xEDFE, (q15_t)0x7EBA, (q15_t)0xED9B, (q15_t)0x7EAB, - (q15_t)0xED37, (q15_t)0x7E9D, (q15_t)0xECD4, (q15_t)0x7E8E, - (q15_t)0xEC71, (q15_t)0x7E7F, (q15_t)0xEC0D, (q15_t)0x7E6F, - (q15_t)0xEBAA, (q15_t)0x7E5F, (q15_t)0xEB47, (q15_t)0x7E4F, - (q15_t)0xEAE4, (q15_t)0x7E3F, (q15_t)0xEA80, (q15_t)0x7E2E, - (q15_t)0xEA1D, (q15_t)0x7E1D, (q15_t)0xE9BA, (q15_t)0x7E0C, - (q15_t)0xE957, (q15_t)0x7DFA, (q15_t)0xE8F5, (q15_t)0x7DE8, - (q15_t)0xE892, (q15_t)0x7DD6, (q15_t)0xE82F, (q15_t)0x7DC3, - (q15_t)0xE7CC, (q15_t)0x7DB0, (q15_t)0xE769, (q15_t)0x7D9D, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE6A4, (q15_t)0x7D76, - (q15_t)0xE642, (q15_t)0x7D62, (q15_t)0xE5DF, (q15_t)0x7D4E, - (q15_t)0xE57D, (q15_t)0x7D39, (q15_t)0xE51B, (q15_t)0x7D24, - (q15_t)0xE4B8, (q15_t)0x7D0F, (q15_t)0xE456, (q15_t)0x7CF9, - (q15_t)0xE3F4, (q15_t)0x7CE3, (q15_t)0xE392, (q15_t)0x7CCD, - (q15_t)0xE330, (q15_t)0x7CB7, (q15_t)0xE2CE, (q15_t)0x7CA0, - (q15_t)0xE26C, (q15_t)0x7C89, (q15_t)0xE20A, (q15_t)0x7C71, - (q15_t)0xE1A9, (q15_t)0x7C5A, (q15_t)0xE147, (q15_t)0x7C42, - (q15_t)0xE0E6, (q15_t)0x7C29, (q15_t)0xE084, (q15_t)0x7C11, - (q15_t)0xE023, (q15_t)0x7BF8, (q15_t)0xDFC1, (q15_t)0x7BDF, - (q15_t)0xDF60, (q15_t)0x7BC5, (q15_t)0xDEFF, (q15_t)0x7BAC, - (q15_t)0xDE9E, (q15_t)0x7B92, (q15_t)0xDE3D, (q15_t)0x7B77, - (q15_t)0xDDDC, (q15_t)0x7B5D, (q15_t)0xDD7B, (q15_t)0x7B42, - (q15_t)0xDD1A, (q15_t)0x7B26, (q15_t)0xDCBA, (q15_t)0x7B0B, - (q15_t)0xDC59, (q15_t)0x7AEF, (q15_t)0xDBF8, (q15_t)0x7AD3, - (q15_t)0xDB98, (q15_t)0x7AB6, (q15_t)0xDB38, (q15_t)0x7A9A, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xDA77, (q15_t)0x7A5F, - (q15_t)0xDA17, (q15_t)0x7A42, (q15_t)0xD9B7, (q15_t)0x7A24, - (q15_t)0xD957, (q15_t)0x7A05, (q15_t)0xD8F8, (q15_t)0x79E7, - (q15_t)0xD898, (q15_t)0x79C8, (q15_t)0xD838, (q15_t)0x79A9, - (q15_t)0xD7D9, (q15_t)0x798A, (q15_t)0xD779, (q15_t)0x796A, - (q15_t)0xD71A, (q15_t)0x794A, (q15_t)0xD6BB, (q15_t)0x792A, - (q15_t)0xD65C, (q15_t)0x7909, (q15_t)0xD5FD, (q15_t)0x78E8, - (q15_t)0xD59E, (q15_t)0x78C7, (q15_t)0xD53F, (q15_t)0x78A6, - (q15_t)0xD4E0, (q15_t)0x7884, (q15_t)0xD482, (q15_t)0x7862, - (q15_t)0xD423, (q15_t)0x7840, (q15_t)0xD3C5, (q15_t)0x781D, - (q15_t)0xD367, (q15_t)0x77FA, (q15_t)0xD308, (q15_t)0x77D7, - (q15_t)0xD2AA, (q15_t)0x77B4, (q15_t)0xD24C, (q15_t)0x7790, - (q15_t)0xD1EE, (q15_t)0x776C, (q15_t)0xD191, (q15_t)0x7747, - (q15_t)0xD133, (q15_t)0x7723, (q15_t)0xD0D6, (q15_t)0x76FE, - (q15_t)0xD078, (q15_t)0x76D9, (q15_t)0xD01B, (q15_t)0x76B3, - (q15_t)0xCFBE, (q15_t)0x768E, (q15_t)0xCF61, (q15_t)0x7668, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xCEA7, (q15_t)0x761B, - (q15_t)0xCE4A, (q15_t)0x75F4, (q15_t)0xCDEE, (q15_t)0x75CC, - (q15_t)0xCD91, (q15_t)0x75A5, (q15_t)0xCD35, (q15_t)0x757D, - (q15_t)0xCCD9, (q15_t)0x7555, (q15_t)0xCC7D, (q15_t)0x752D, - (q15_t)0xCC21, (q15_t)0x7504, (q15_t)0xCBC5, (q15_t)0x74DB, - (q15_t)0xCB69, (q15_t)0x74B2, (q15_t)0xCB0D, (q15_t)0x7489, - (q15_t)0xCAB2, (q15_t)0x745F, (q15_t)0xCA57, (q15_t)0x7435, - (q15_t)0xC9FB, (q15_t)0x740B, (q15_t)0xC9A0, (q15_t)0x73E0, - (q15_t)0xC945, (q15_t)0x73B5, (q15_t)0xC8EB, (q15_t)0x738A, - (q15_t)0xC890, (q15_t)0x735F, (q15_t)0xC835, (q15_t)0x7333, - (q15_t)0xC7DB, (q15_t)0x7307, (q15_t)0xC781, (q15_t)0x72DB, - (q15_t)0xC727, (q15_t)0x72AF, (q15_t)0xC6CD, (q15_t)0x7282, - (q15_t)0xC673, (q15_t)0x7255, (q15_t)0xC619, (q15_t)0x7227, - (q15_t)0xC5BF, (q15_t)0x71FA, (q15_t)0xC566, (q15_t)0x71CC, - (q15_t)0xC50D, (q15_t)0x719E, (q15_t)0xC4B3, (q15_t)0x716F, - (q15_t)0xC45A, (q15_t)0x7141, (q15_t)0xC402, (q15_t)0x7112, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xC350, (q15_t)0x70B3, - (q15_t)0xC2F8, (q15_t)0x7083, (q15_t)0xC29F, (q15_t)0x7053, - (q15_t)0xC247, (q15_t)0x7023, (q15_t)0xC1EF, (q15_t)0x6FF2, - (q15_t)0xC197, (q15_t)0x6FC1, (q15_t)0xC140, (q15_t)0x6F90, - (q15_t)0xC0E8, (q15_t)0x6F5F, (q15_t)0xC091, (q15_t)0x6F2D, - (q15_t)0xC03A, (q15_t)0x6EFB, (q15_t)0xBFE2, (q15_t)0x6EC9, - (q15_t)0xBF8C, (q15_t)0x6E96, (q15_t)0xBF35, (q15_t)0x6E63, - (q15_t)0xBEDE, (q15_t)0x6E30, (q15_t)0xBE88, (q15_t)0x6DFD, - (q15_t)0xBE31, (q15_t)0x6DCA, (q15_t)0xBDDB, (q15_t)0x6D96, - (q15_t)0xBD85, (q15_t)0x6D62, (q15_t)0xBD2F, (q15_t)0x6D2D, - (q15_t)0xBCDA, (q15_t)0x6CF9, (q15_t)0xBC84, (q15_t)0x6CC4, - (q15_t)0xBC2F, (q15_t)0x6C8F, (q15_t)0xBBDA, (q15_t)0x6C59, - (q15_t)0xBB85, (q15_t)0x6C24, (q15_t)0xBB30, (q15_t)0x6BEE, - (q15_t)0xBADB, (q15_t)0x6BB8, (q15_t)0xBA87, (q15_t)0x6B81, - (q15_t)0xBA32, (q15_t)0x6B4A, (q15_t)0xB9DE, (q15_t)0x6B13, - (q15_t)0xB98A, (q15_t)0x6ADC, (q15_t)0xB936, (q15_t)0x6AA5, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB88F, (q15_t)0x6A35, - (q15_t)0xB83C, (q15_t)0x69FD, (q15_t)0xB7E9, (q15_t)0x69C4, - (q15_t)0xB796, (q15_t)0x698C, (q15_t)0xB743, (q15_t)0x6953, - (q15_t)0xB6F0, (q15_t)0x6919, (q15_t)0xB69E, (q15_t)0x68E0, - (q15_t)0xB64B, (q15_t)0x68A6, (q15_t)0xB5F9, (q15_t)0x686C, - (q15_t)0xB5A7, (q15_t)0x6832, (q15_t)0xB556, (q15_t)0x67F7, - (q15_t)0xB504, (q15_t)0x67BD, (q15_t)0xB4B3, (q15_t)0x6782, - (q15_t)0xB461, (q15_t)0x6746, (q15_t)0xB410, (q15_t)0x670B, - (q15_t)0xB3C0, (q15_t)0x66CF, (q15_t)0xB36F, (q15_t)0x6693, - (q15_t)0xB31E, (q15_t)0x6657, (q15_t)0xB2CE, (q15_t)0x661A, - (q15_t)0xB27E, (q15_t)0x65DD, (q15_t)0xB22E, (q15_t)0x65A0, - (q15_t)0xB1DE, (q15_t)0x6563, (q15_t)0xB18F, (q15_t)0x6526, - (q15_t)0xB140, (q15_t)0x64E8, (q15_t)0xB0F0, (q15_t)0x64AA, - (q15_t)0xB0A1, (q15_t)0x646C, (q15_t)0xB053, (q15_t)0x642D, - (q15_t)0xB004, (q15_t)0x63EF, (q15_t)0xAFB6, (q15_t)0x63B0, - (q15_t)0xAF68, (q15_t)0x6371, (q15_t)0xAF1A, (q15_t)0x6331, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAE7E, (q15_t)0x62B2, - (q15_t)0xAE31, (q15_t)0x6271, (q15_t)0xADE3, (q15_t)0x6231, - (q15_t)0xAD96, (q15_t)0x61F1, (q15_t)0xAD4A, (q15_t)0x61B0, - (q15_t)0xACFD, (q15_t)0x616F, (q15_t)0xACB1, (q15_t)0x612D, - (q15_t)0xAC64, (q15_t)0x60EC, (q15_t)0xAC18, (q15_t)0x60AA, - (q15_t)0xABCC, (q15_t)0x6068, (q15_t)0xAB81, (q15_t)0x6026, - (q15_t)0xAB35, (q15_t)0x5FE3, (q15_t)0xAAEA, (q15_t)0x5FA0, - (q15_t)0xAA9F, (q15_t)0x5F5E, (q15_t)0xAA54, (q15_t)0x5F1A, - (q15_t)0xAA0A, (q15_t)0x5ED7, (q15_t)0xA9BF, (q15_t)0x5E93, - (q15_t)0xA975, (q15_t)0x5E50, (q15_t)0xA92B, (q15_t)0x5E0B, - (q15_t)0xA8E2, (q15_t)0x5DC7, (q15_t)0xA898, (q15_t)0x5D83, - (q15_t)0xA84F, (q15_t)0x5D3E, (q15_t)0xA806, (q15_t)0x5CF9, - (q15_t)0xA7BD, (q15_t)0x5CB4, (q15_t)0xA774, (q15_t)0x5C6E, - (q15_t)0xA72B, (q15_t)0x5C29, (q15_t)0xA6E3, (q15_t)0x5BE3, - (q15_t)0xA69B, (q15_t)0x5B9D, (q15_t)0xA653, (q15_t)0x5B56, - (q15_t)0xA60C, (q15_t)0x5B10, (q15_t)0xA5C4, (q15_t)0x5AC9, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA536, (q15_t)0x5A3B, - (q15_t)0xA4EF, (q15_t)0x59F3, (q15_t)0xA4A9, (q15_t)0x59AC, - (q15_t)0xA462, (q15_t)0x5964, (q15_t)0xA41C, (q15_t)0x591C, - (q15_t)0xA3D6, (q15_t)0x58D4, (q15_t)0xA391, (q15_t)0x588B, - (q15_t)0xA34B, (q15_t)0x5842, (q15_t)0xA306, (q15_t)0x57F9, - (q15_t)0xA2C1, (q15_t)0x57B0, (q15_t)0xA27C, (q15_t)0x5767, - (q15_t)0xA238, (q15_t)0x571D, (q15_t)0xA1F4, (q15_t)0x56D4, - (q15_t)0xA1AF, (q15_t)0x568A, (q15_t)0xA16C, (q15_t)0x5640, - (q15_t)0xA128, (q15_t)0x55F5, (q15_t)0xA0E5, (q15_t)0x55AB, - (q15_t)0xA0A1, (q15_t)0x5560, (q15_t)0xA05F, (q15_t)0x5515, - (q15_t)0xA01C, (q15_t)0x54CA, (q15_t)0x9FD9, (q15_t)0x547E, - (q15_t)0x9F97, (q15_t)0x5433, (q15_t)0x9F55, (q15_t)0x53E7, - (q15_t)0x9F13, (q15_t)0x539B, (q15_t)0x9ED2, (q15_t)0x534E, - (q15_t)0x9E90, (q15_t)0x5302, (q15_t)0x9E4F, (q15_t)0x52B5, - (q15_t)0x9E0E, (q15_t)0x5269, (q15_t)0x9DCE, (q15_t)0x521C, - (q15_t)0x9D8E, (q15_t)0x51CE, (q15_t)0x9D4D, (q15_t)0x5181, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9CCE, (q15_t)0x50E5, - (q15_t)0x9C8E, (q15_t)0x5097, (q15_t)0x9C4F, (q15_t)0x5049, - (q15_t)0x9C10, (q15_t)0x4FFB, (q15_t)0x9BD2, (q15_t)0x4FAC, - (q15_t)0x9B93, (q15_t)0x4F5E, (q15_t)0x9B55, (q15_t)0x4F0F, - (q15_t)0x9B17, (q15_t)0x4EBF, (q15_t)0x9AD9, (q15_t)0x4E70, - (q15_t)0x9A9C, (q15_t)0x4E21, (q15_t)0x9A5F, (q15_t)0x4DD1, - (q15_t)0x9A22, (q15_t)0x4D81, (q15_t)0x99E5, (q15_t)0x4D31, - (q15_t)0x99A8, (q15_t)0x4CE1, (q15_t)0x996C, (q15_t)0x4C90, - (q15_t)0x9930, (q15_t)0x4C3F, (q15_t)0x98F4, (q15_t)0x4BEF, - (q15_t)0x98B9, (q15_t)0x4B9E, (q15_t)0x987D, (q15_t)0x4B4C, - (q15_t)0x9842, (q15_t)0x4AFB, (q15_t)0x9808, (q15_t)0x4AA9, - (q15_t)0x97CD, (q15_t)0x4A58, (q15_t)0x9793, (q15_t)0x4A06, - (q15_t)0x9759, (q15_t)0x49B4, (q15_t)0x971F, (q15_t)0x4961, - (q15_t)0x96E6, (q15_t)0x490F, (q15_t)0x96AC, (q15_t)0x48BC, - (q15_t)0x9673, (q15_t)0x4869, (q15_t)0x963B, (q15_t)0x4816, - (q15_t)0x9602, (q15_t)0x47C3, (q15_t)0x95CA, (q15_t)0x4770, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x955A, (q15_t)0x46C9, - (q15_t)0x9523, (q15_t)0x4675, (q15_t)0x94EC, (q15_t)0x4621, - (q15_t)0x94B5, (q15_t)0x45CD, (q15_t)0x947E, (q15_t)0x4578, - (q15_t)0x9447, (q15_t)0x4524, (q15_t)0x9411, (q15_t)0x44CF, - (q15_t)0x93DB, (q15_t)0x447A, (q15_t)0x93A6, (q15_t)0x4425, - (q15_t)0x9370, (q15_t)0x43D0, (q15_t)0x933B, (q15_t)0x437B, - (q15_t)0x9306, (q15_t)0x4325, (q15_t)0x92D2, (q15_t)0x42D0, - (q15_t)0x929D, (q15_t)0x427A, (q15_t)0x9269, (q15_t)0x4224, - (q15_t)0x9235, (q15_t)0x41CE, (q15_t)0x9202, (q15_t)0x4177, - (q15_t)0x91CF, (q15_t)0x4121, (q15_t)0x919C, (q15_t)0x40CA, - (q15_t)0x9169, (q15_t)0x4073, (q15_t)0x9136, (q15_t)0x401D, - (q15_t)0x9104, (q15_t)0x3FC5, (q15_t)0x90D2, (q15_t)0x3F6E, - (q15_t)0x90A0, (q15_t)0x3F17, (q15_t)0x906F, (q15_t)0x3EBF, - (q15_t)0x903E, (q15_t)0x3E68, (q15_t)0x900D, (q15_t)0x3E10, - (q15_t)0x8FDC, (q15_t)0x3DB8, (q15_t)0x8FAC, (q15_t)0x3D60, - (q15_t)0x8F7C, (q15_t)0x3D07, (q15_t)0x8F4C, (q15_t)0x3CAF, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8EED, (q15_t)0x3BFD, - (q15_t)0x8EBE, (q15_t)0x3BA5, (q15_t)0x8E90, (q15_t)0x3B4C, - (q15_t)0x8E61, (q15_t)0x3AF2, (q15_t)0x8E33, (q15_t)0x3A99, - (q15_t)0x8E05, (q15_t)0x3A40, (q15_t)0x8DD8, (q15_t)0x39E6, - (q15_t)0x8DAA, (q15_t)0x398C, (q15_t)0x8D7D, (q15_t)0x3932, - (q15_t)0x8D50, (q15_t)0x38D8, (q15_t)0x8D24, (q15_t)0x387E, - (q15_t)0x8CF8, (q15_t)0x3824, (q15_t)0x8CCC, (q15_t)0x37CA, - (q15_t)0x8CA0, (q15_t)0x376F, (q15_t)0x8C75, (q15_t)0x3714, - (q15_t)0x8C4A, (q15_t)0x36BA, (q15_t)0x8C1F, (q15_t)0x365F, - (q15_t)0x8BF4, (q15_t)0x3604, (q15_t)0x8BCA, (q15_t)0x35A8, - (q15_t)0x8BA0, (q15_t)0x354D, (q15_t)0x8B76, (q15_t)0x34F2, - (q15_t)0x8B4D, (q15_t)0x3496, (q15_t)0x8B24, (q15_t)0x343A, - (q15_t)0x8AFB, (q15_t)0x33DE, (q15_t)0x8AD2, (q15_t)0x3382, - (q15_t)0x8AAA, (q15_t)0x3326, (q15_t)0x8A82, (q15_t)0x32CA, - (q15_t)0x8A5A, (q15_t)0x326E, (q15_t)0x8A33, (q15_t)0x3211, - (q15_t)0x8A0B, (q15_t)0x31B5, (q15_t)0x89E4, (q15_t)0x3158, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x8997, (q15_t)0x309E, - (q15_t)0x8971, (q15_t)0x3041, (q15_t)0x894C, (q15_t)0x2FE4, - (q15_t)0x8926, (q15_t)0x2F87, (q15_t)0x8901, (q15_t)0x2F29, - (q15_t)0x88DC, (q15_t)0x2ECC, (q15_t)0x88B8, (q15_t)0x2E6E, - (q15_t)0x8893, (q15_t)0x2E11, (q15_t)0x886F, (q15_t)0x2DB3, - (q15_t)0x884B, (q15_t)0x2D55, (q15_t)0x8828, (q15_t)0x2CF7, - (q15_t)0x8805, (q15_t)0x2C98, (q15_t)0x87E2, (q15_t)0x2C3A, - (q15_t)0x87BF, (q15_t)0x2BDC, (q15_t)0x879D, (q15_t)0x2B7D, - (q15_t)0x877B, (q15_t)0x2B1F, (q15_t)0x8759, (q15_t)0x2AC0, - (q15_t)0x8738, (q15_t)0x2A61, (q15_t)0x8717, (q15_t)0x2A02, - (q15_t)0x86F6, (q15_t)0x29A3, (q15_t)0x86D5, (q15_t)0x2944, - (q15_t)0x86B5, (q15_t)0x28E5, (q15_t)0x8695, (q15_t)0x2886, - (q15_t)0x8675, (q15_t)0x2826, (q15_t)0x8656, (q15_t)0x27C7, - (q15_t)0x8637, (q15_t)0x2767, (q15_t)0x8618, (q15_t)0x2707, - (q15_t)0x85FA, (q15_t)0x26A8, (q15_t)0x85DB, (q15_t)0x2648, - (q15_t)0x85BD, (q15_t)0x25E8, (q15_t)0x85A0, (q15_t)0x2588, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x8565, (q15_t)0x24C7, - (q15_t)0x8549, (q15_t)0x2467, (q15_t)0x852C, (q15_t)0x2407, - (q15_t)0x8510, (q15_t)0x23A6, (q15_t)0x84F4, (q15_t)0x2345, - (q15_t)0x84D9, (q15_t)0x22E5, (q15_t)0x84BD, (q15_t)0x2284, - (q15_t)0x84A2, (q15_t)0x2223, (q15_t)0x8488, (q15_t)0x21C2, - (q15_t)0x846D, (q15_t)0x2161, (q15_t)0x8453, (q15_t)0x2100, - (q15_t)0x843A, (q15_t)0x209F, (q15_t)0x8420, (q15_t)0x203E, - (q15_t)0x8407, (q15_t)0x1FDC, (q15_t)0x83EE, (q15_t)0x1F7B, - (q15_t)0x83D6, (q15_t)0x1F19, (q15_t)0x83BD, (q15_t)0x1EB8, - (q15_t)0x83A5, (q15_t)0x1E56, (q15_t)0x838E, (q15_t)0x1DF5, - (q15_t)0x8376, (q15_t)0x1D93, (q15_t)0x835F, (q15_t)0x1D31, - (q15_t)0x8348, (q15_t)0x1CCF, (q15_t)0x8332, (q15_t)0x1C6D, - (q15_t)0x831C, (q15_t)0x1C0B, (q15_t)0x8306, (q15_t)0x1BA9, - (q15_t)0x82F0, (q15_t)0x1B47, (q15_t)0x82DB, (q15_t)0x1AE4, - (q15_t)0x82C6, (q15_t)0x1A82, (q15_t)0x82B1, (q15_t)0x1A20, - (q15_t)0x829D, (q15_t)0x19BD, (q15_t)0x8289, (q15_t)0x195B, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x8262, (q15_t)0x1896, - (q15_t)0x824F, (q15_t)0x1833, (q15_t)0x823C, (q15_t)0x17D0, - (q15_t)0x8229, (q15_t)0x176D, (q15_t)0x8217, (q15_t)0x170A, - (q15_t)0x8205, (q15_t)0x16A8, (q15_t)0x81F3, (q15_t)0x1645, - (q15_t)0x81E2, (q15_t)0x15E2, (q15_t)0x81D1, (q15_t)0x157F, - (q15_t)0x81C0, (q15_t)0x151B, (q15_t)0x81B0, (q15_t)0x14B8, - (q15_t)0x81A0, (q15_t)0x1455, (q15_t)0x8190, (q15_t)0x13F2, - (q15_t)0x8180, (q15_t)0x138E, (q15_t)0x8171, (q15_t)0x132B, - (q15_t)0x8162, (q15_t)0x12C8, (q15_t)0x8154, (q15_t)0x1264, - (q15_t)0x8145, (q15_t)0x1201, (q15_t)0x8137, (q15_t)0x119D, - (q15_t)0x812A, (q15_t)0x1139, (q15_t)0x811C, (q15_t)0x10D6, - (q15_t)0x810F, (q15_t)0x1072, (q15_t)0x8102, (q15_t)0x100E, - (q15_t)0x80F6, (q15_t)0x0FAB, (q15_t)0x80EA, (q15_t)0x0F47, - (q15_t)0x80DE, (q15_t)0x0EE3, (q15_t)0x80D2, (q15_t)0x0E7F, - (q15_t)0x80C7, (q15_t)0x0E1B, (q15_t)0x80BC, (q15_t)0x0DB7, - (q15_t)0x80B2, (q15_t)0x0D53, (q15_t)0x80A7, (q15_t)0x0CEF, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x8094, (q15_t)0x0C27, - (q15_t)0x808A, (q15_t)0x0BC3, (q15_t)0x8081, (q15_t)0x0B5F, - (q15_t)0x8078, (q15_t)0x0AFB, (q15_t)0x8070, (q15_t)0x0A97, - (q15_t)0x8068, (q15_t)0x0A33, (q15_t)0x8060, (q15_t)0x09CE, - (q15_t)0x8058, (q15_t)0x096A, (q15_t)0x8051, (q15_t)0x0906, - (q15_t)0x804A, (q15_t)0x08A2, (q15_t)0x8043, (q15_t)0x083D, - (q15_t)0x803D, (q15_t)0x07D9, (q15_t)0x8037, (q15_t)0x0775, - (q15_t)0x8031, (q15_t)0x0710, (q15_t)0x802C, (q15_t)0x06AC, - (q15_t)0x8027, (q15_t)0x0647, (q15_t)0x8022, (q15_t)0x05E3, - (q15_t)0x801E, (q15_t)0x057F, (q15_t)0x801A, (q15_t)0x051A, - (q15_t)0x8016, (q15_t)0x04B6, (q15_t)0x8012, (q15_t)0x0451, - (q15_t)0x800F, (q15_t)0x03ED, (q15_t)0x800C, (q15_t)0x0388, - (q15_t)0x8009, (q15_t)0x0324, (q15_t)0x8007, (q15_t)0x02BF, - (q15_t)0x8005, (q15_t)0x025B, (q15_t)0x8003, (q15_t)0x01F6, - (q15_t)0x8002, (q15_t)0x0192, (q15_t)0x8001, (q15_t)0x012D, - (q15_t)0x8000, (q15_t)0x00C9, (q15_t)0x8000, (q15_t)0x0064, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8000, (q15_t)0xFF9B, - (q15_t)0x8000, (q15_t)0xFF36, (q15_t)0x8001, (q15_t)0xFED2, - (q15_t)0x8002, (q15_t)0xFE6D, (q15_t)0x8003, (q15_t)0xFE09, - (q15_t)0x8005, (q15_t)0xFDA4, (q15_t)0x8007, (q15_t)0xFD40, - (q15_t)0x8009, (q15_t)0xFCDB, (q15_t)0x800C, (q15_t)0xFC77, - (q15_t)0x800F, (q15_t)0xFC12, (q15_t)0x8012, (q15_t)0xFBAE, - (q15_t)0x8016, (q15_t)0xFB49, (q15_t)0x801A, (q15_t)0xFAE5, - (q15_t)0x801E, (q15_t)0xFA80, (q15_t)0x8022, (q15_t)0xFA1C, - (q15_t)0x8027, (q15_t)0xF9B8, (q15_t)0x802C, (q15_t)0xF953, - (q15_t)0x8031, (q15_t)0xF8EF, (q15_t)0x8037, (q15_t)0xF88A, - (q15_t)0x803D, (q15_t)0xF826, (q15_t)0x8043, (q15_t)0xF7C2, - (q15_t)0x804A, (q15_t)0xF75D, (q15_t)0x8051, (q15_t)0xF6F9, - (q15_t)0x8058, (q15_t)0xF695, (q15_t)0x8060, (q15_t)0xF631, - (q15_t)0x8068, (q15_t)0xF5CC, (q15_t)0x8070, (q15_t)0xF568, - (q15_t)0x8078, (q15_t)0xF504, (q15_t)0x8081, (q15_t)0xF4A0, - (q15_t)0x808A, (q15_t)0xF43C, (q15_t)0x8094, (q15_t)0xF3D8, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x80A7, (q15_t)0xF310, - (q15_t)0x80B2, (q15_t)0xF2AC, (q15_t)0x80BC, (q15_t)0xF248, - (q15_t)0x80C7, (q15_t)0xF1E4, (q15_t)0x80D2, (q15_t)0xF180, - (q15_t)0x80DE, (q15_t)0xF11C, (q15_t)0x80EA, (q15_t)0xF0B8, - (q15_t)0x80F6, (q15_t)0xF054, (q15_t)0x8102, (q15_t)0xEFF1, - (q15_t)0x810F, (q15_t)0xEF8D, (q15_t)0x811C, (q15_t)0xEF29, - (q15_t)0x812A, (q15_t)0xEEC6, (q15_t)0x8137, (q15_t)0xEE62, - (q15_t)0x8145, (q15_t)0xEDFE, (q15_t)0x8154, (q15_t)0xED9B, - (q15_t)0x8162, (q15_t)0xED37, (q15_t)0x8171, (q15_t)0xECD4, - (q15_t)0x8180, (q15_t)0xEC71, (q15_t)0x8190, (q15_t)0xEC0D, - (q15_t)0x81A0, (q15_t)0xEBAA, (q15_t)0x81B0, (q15_t)0xEB47, - (q15_t)0x81C0, (q15_t)0xEAE4, (q15_t)0x81D1, (q15_t)0xEA80, - (q15_t)0x81E2, (q15_t)0xEA1D, (q15_t)0x81F3, (q15_t)0xE9BA, - (q15_t)0x8205, (q15_t)0xE957, (q15_t)0x8217, (q15_t)0xE8F5, - (q15_t)0x8229, (q15_t)0xE892, (q15_t)0x823C, (q15_t)0xE82F, - (q15_t)0x824F, (q15_t)0xE7CC, (q15_t)0x8262, (q15_t)0xE769, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x8289, (q15_t)0xE6A4, - (q15_t)0x829D, (q15_t)0xE642, (q15_t)0x82B1, (q15_t)0xE5DF, - (q15_t)0x82C6, (q15_t)0xE57D, (q15_t)0x82DB, (q15_t)0xE51B, - (q15_t)0x82F0, (q15_t)0xE4B8, (q15_t)0x8306, (q15_t)0xE456, - (q15_t)0x831C, (q15_t)0xE3F4, (q15_t)0x8332, (q15_t)0xE392, - (q15_t)0x8348, (q15_t)0xE330, (q15_t)0x835F, (q15_t)0xE2CE, - (q15_t)0x8376, (q15_t)0xE26C, (q15_t)0x838E, (q15_t)0xE20A, - (q15_t)0x83A5, (q15_t)0xE1A9, (q15_t)0x83BD, (q15_t)0xE147, - (q15_t)0x83D6, (q15_t)0xE0E6, (q15_t)0x83EE, (q15_t)0xE084, - (q15_t)0x8407, (q15_t)0xE023, (q15_t)0x8420, (q15_t)0xDFC1, - (q15_t)0x843A, (q15_t)0xDF60, (q15_t)0x8453, (q15_t)0xDEFF, - (q15_t)0x846D, (q15_t)0xDE9E, (q15_t)0x8488, (q15_t)0xDE3D, - (q15_t)0x84A2, (q15_t)0xDDDC, (q15_t)0x84BD, (q15_t)0xDD7B, - (q15_t)0x84D9, (q15_t)0xDD1A, (q15_t)0x84F4, (q15_t)0xDCBA, - (q15_t)0x8510, (q15_t)0xDC59, (q15_t)0x852C, (q15_t)0xDBF8, - (q15_t)0x8549, (q15_t)0xDB98, (q15_t)0x8565, (q15_t)0xDB38, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x85A0, (q15_t)0xDA77, - (q15_t)0x85BD, (q15_t)0xDA17, (q15_t)0x85DB, (q15_t)0xD9B7, - (q15_t)0x85FA, (q15_t)0xD957, (q15_t)0x8618, (q15_t)0xD8F8, - (q15_t)0x8637, (q15_t)0xD898, (q15_t)0x8656, (q15_t)0xD838, - (q15_t)0x8675, (q15_t)0xD7D9, (q15_t)0x8695, (q15_t)0xD779, - (q15_t)0x86B5, (q15_t)0xD71A, (q15_t)0x86D5, (q15_t)0xD6BB, - (q15_t)0x86F6, (q15_t)0xD65C, (q15_t)0x8717, (q15_t)0xD5FD, - (q15_t)0x8738, (q15_t)0xD59E, (q15_t)0x8759, (q15_t)0xD53F, - (q15_t)0x877B, (q15_t)0xD4E0, (q15_t)0x879D, (q15_t)0xD482, - (q15_t)0x87BF, (q15_t)0xD423, (q15_t)0x87E2, (q15_t)0xD3C5, - (q15_t)0x8805, (q15_t)0xD367, (q15_t)0x8828, (q15_t)0xD308, - (q15_t)0x884B, (q15_t)0xD2AA, (q15_t)0x886F, (q15_t)0xD24C, - (q15_t)0x8893, (q15_t)0xD1EE, (q15_t)0x88B8, (q15_t)0xD191, - (q15_t)0x88DC, (q15_t)0xD133, (q15_t)0x8901, (q15_t)0xD0D6, - (q15_t)0x8926, (q15_t)0xD078, (q15_t)0x894C, (q15_t)0xD01B, - (q15_t)0x8971, (q15_t)0xCFBE, (q15_t)0x8997, (q15_t)0xCF61, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x89E4, (q15_t)0xCEA7, - (q15_t)0x8A0B, (q15_t)0xCE4A, (q15_t)0x8A33, (q15_t)0xCDEE, - (q15_t)0x8A5A, (q15_t)0xCD91, (q15_t)0x8A82, (q15_t)0xCD35, - (q15_t)0x8AAA, (q15_t)0xCCD9, (q15_t)0x8AD2, (q15_t)0xCC7D, - (q15_t)0x8AFB, (q15_t)0xCC21, (q15_t)0x8B24, (q15_t)0xCBC5, - (q15_t)0x8B4D, (q15_t)0xCB69, (q15_t)0x8B76, (q15_t)0xCB0D, - (q15_t)0x8BA0, (q15_t)0xCAB2, (q15_t)0x8BCA, (q15_t)0xCA57, - (q15_t)0x8BF4, (q15_t)0xC9FB, (q15_t)0x8C1F, (q15_t)0xC9A0, - (q15_t)0x8C4A, (q15_t)0xC945, (q15_t)0x8C75, (q15_t)0xC8EB, - (q15_t)0x8CA0, (q15_t)0xC890, (q15_t)0x8CCC, (q15_t)0xC835, - (q15_t)0x8CF8, (q15_t)0xC7DB, (q15_t)0x8D24, (q15_t)0xC781, - (q15_t)0x8D50, (q15_t)0xC727, (q15_t)0x8D7D, (q15_t)0xC6CD, - (q15_t)0x8DAA, (q15_t)0xC673, (q15_t)0x8DD8, (q15_t)0xC619, - (q15_t)0x8E05, (q15_t)0xC5BF, (q15_t)0x8E33, (q15_t)0xC566, - (q15_t)0x8E61, (q15_t)0xC50D, (q15_t)0x8E90, (q15_t)0xC4B3, - (q15_t)0x8EBE, (q15_t)0xC45A, (q15_t)0x8EED, (q15_t)0xC402, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x8F4C, (q15_t)0xC350, - (q15_t)0x8F7C, (q15_t)0xC2F8, (q15_t)0x8FAC, (q15_t)0xC29F, - (q15_t)0x8FDC, (q15_t)0xC247, (q15_t)0x900D, (q15_t)0xC1EF, - (q15_t)0x903E, (q15_t)0xC197, (q15_t)0x906F, (q15_t)0xC140, - (q15_t)0x90A0, (q15_t)0xC0E8, (q15_t)0x90D2, (q15_t)0xC091, - (q15_t)0x9104, (q15_t)0xC03A, (q15_t)0x9136, (q15_t)0xBFE2, - (q15_t)0x9169, (q15_t)0xBF8C, (q15_t)0x919C, (q15_t)0xBF35, - (q15_t)0x91CF, (q15_t)0xBEDE, (q15_t)0x9202, (q15_t)0xBE88, - (q15_t)0x9235, (q15_t)0xBE31, (q15_t)0x9269, (q15_t)0xBDDB, - (q15_t)0x929D, (q15_t)0xBD85, (q15_t)0x92D2, (q15_t)0xBD2F, - (q15_t)0x9306, (q15_t)0xBCDA, (q15_t)0x933B, (q15_t)0xBC84, - (q15_t)0x9370, (q15_t)0xBC2F, (q15_t)0x93A6, (q15_t)0xBBDA, - (q15_t)0x93DB, (q15_t)0xBB85, (q15_t)0x9411, (q15_t)0xBB30, - (q15_t)0x9447, (q15_t)0xBADB, (q15_t)0x947E, (q15_t)0xBA87, - (q15_t)0x94B5, (q15_t)0xBA32, (q15_t)0x94EC, (q15_t)0xB9DE, - (q15_t)0x9523, (q15_t)0xB98A, (q15_t)0x955A, (q15_t)0xB936, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x95CA, (q15_t)0xB88F, - (q15_t)0x9602, (q15_t)0xB83C, (q15_t)0x963B, (q15_t)0xB7E9, - (q15_t)0x9673, (q15_t)0xB796, (q15_t)0x96AC, (q15_t)0xB743, - (q15_t)0x96E6, (q15_t)0xB6F0, (q15_t)0x971F, (q15_t)0xB69E, - (q15_t)0x9759, (q15_t)0xB64B, (q15_t)0x9793, (q15_t)0xB5F9, - (q15_t)0x97CD, (q15_t)0xB5A7, (q15_t)0x9808, (q15_t)0xB556, - (q15_t)0x9842, (q15_t)0xB504, (q15_t)0x987D, (q15_t)0xB4B3, - (q15_t)0x98B9, (q15_t)0xB461, (q15_t)0x98F4, (q15_t)0xB410, - (q15_t)0x9930, (q15_t)0xB3C0, (q15_t)0x996C, (q15_t)0xB36F, - (q15_t)0x99A8, (q15_t)0xB31E, (q15_t)0x99E5, (q15_t)0xB2CE, - (q15_t)0x9A22, (q15_t)0xB27E, (q15_t)0x9A5F, (q15_t)0xB22E, - (q15_t)0x9A9C, (q15_t)0xB1DE, (q15_t)0x9AD9, (q15_t)0xB18F, - (q15_t)0x9B17, (q15_t)0xB140, (q15_t)0x9B55, (q15_t)0xB0F0, - (q15_t)0x9B93, (q15_t)0xB0A1, (q15_t)0x9BD2, (q15_t)0xB053, - (q15_t)0x9C10, (q15_t)0xB004, (q15_t)0x9C4F, (q15_t)0xAFB6, - (q15_t)0x9C8E, (q15_t)0xAF68, (q15_t)0x9CCE, (q15_t)0xAF1A, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0x9D4D, (q15_t)0xAE7E, - (q15_t)0x9D8E, (q15_t)0xAE31, (q15_t)0x9DCE, (q15_t)0xADE3, - (q15_t)0x9E0E, (q15_t)0xAD96, (q15_t)0x9E4F, (q15_t)0xAD4A, - (q15_t)0x9E90, (q15_t)0xACFD, (q15_t)0x9ED2, (q15_t)0xACB1, - (q15_t)0x9F13, (q15_t)0xAC64, (q15_t)0x9F55, (q15_t)0xAC18, - (q15_t)0x9F97, (q15_t)0xABCC, (q15_t)0x9FD9, (q15_t)0xAB81, - (q15_t)0xA01C, (q15_t)0xAB35, (q15_t)0xA05F, (q15_t)0xAAEA, - (q15_t)0xA0A1, (q15_t)0xAA9F, (q15_t)0xA0E5, (q15_t)0xAA54, - (q15_t)0xA128, (q15_t)0xAA0A, (q15_t)0xA16C, (q15_t)0xA9BF, - (q15_t)0xA1AF, (q15_t)0xA975, (q15_t)0xA1F4, (q15_t)0xA92B, - (q15_t)0xA238, (q15_t)0xA8E2, (q15_t)0xA27C, (q15_t)0xA898, - (q15_t)0xA2C1, (q15_t)0xA84F, (q15_t)0xA306, (q15_t)0xA806, - (q15_t)0xA34B, (q15_t)0xA7BD, (q15_t)0xA391, (q15_t)0xA774, - (q15_t)0xA3D6, (q15_t)0xA72B, (q15_t)0xA41C, (q15_t)0xA6E3, - (q15_t)0xA462, (q15_t)0xA69B, (q15_t)0xA4A9, (q15_t)0xA653, - (q15_t)0xA4EF, (q15_t)0xA60C, (q15_t)0xA536, (q15_t)0xA5C4, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xA5C4, (q15_t)0xA536, - (q15_t)0xA60C, (q15_t)0xA4EF, (q15_t)0xA653, (q15_t)0xA4A9, - (q15_t)0xA69B, (q15_t)0xA462, (q15_t)0xA6E3, (q15_t)0xA41C, - (q15_t)0xA72B, (q15_t)0xA3D6, (q15_t)0xA774, (q15_t)0xA391, - (q15_t)0xA7BD, (q15_t)0xA34B, (q15_t)0xA806, (q15_t)0xA306, - (q15_t)0xA84F, (q15_t)0xA2C1, (q15_t)0xA898, (q15_t)0xA27C, - (q15_t)0xA8E2, (q15_t)0xA238, (q15_t)0xA92B, (q15_t)0xA1F4, - (q15_t)0xA975, (q15_t)0xA1AF, (q15_t)0xA9BF, (q15_t)0xA16C, - (q15_t)0xAA0A, (q15_t)0xA128, (q15_t)0xAA54, (q15_t)0xA0E5, - (q15_t)0xAA9F, (q15_t)0xA0A1, (q15_t)0xAAEA, (q15_t)0xA05F, - (q15_t)0xAB35, (q15_t)0xA01C, (q15_t)0xAB81, (q15_t)0x9FD9, - (q15_t)0xABCC, (q15_t)0x9F97, (q15_t)0xAC18, (q15_t)0x9F55, - (q15_t)0xAC64, (q15_t)0x9F13, (q15_t)0xACB1, (q15_t)0x9ED2, - (q15_t)0xACFD, (q15_t)0x9E90, (q15_t)0xAD4A, (q15_t)0x9E4F, - (q15_t)0xAD96, (q15_t)0x9E0E, (q15_t)0xADE3, (q15_t)0x9DCE, - (q15_t)0xAE31, (q15_t)0x9D8E, (q15_t)0xAE7E, (q15_t)0x9D4D, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xAF1A, (q15_t)0x9CCE, - (q15_t)0xAF68, (q15_t)0x9C8E, (q15_t)0xAFB6, (q15_t)0x9C4F, - (q15_t)0xB004, (q15_t)0x9C10, (q15_t)0xB053, (q15_t)0x9BD2, - (q15_t)0xB0A1, (q15_t)0x9B93, (q15_t)0xB0F0, (q15_t)0x9B55, - (q15_t)0xB140, (q15_t)0x9B17, (q15_t)0xB18F, (q15_t)0x9AD9, - (q15_t)0xB1DE, (q15_t)0x9A9C, (q15_t)0xB22E, (q15_t)0x9A5F, - (q15_t)0xB27E, (q15_t)0x9A22, (q15_t)0xB2CE, (q15_t)0x99E5, - (q15_t)0xB31E, (q15_t)0x99A8, (q15_t)0xB36F, (q15_t)0x996C, - (q15_t)0xB3C0, (q15_t)0x9930, (q15_t)0xB410, (q15_t)0x98F4, - (q15_t)0xB461, (q15_t)0x98B9, (q15_t)0xB4B3, (q15_t)0x987D, - (q15_t)0xB504, (q15_t)0x9842, (q15_t)0xB556, (q15_t)0x9808, - (q15_t)0xB5A7, (q15_t)0x97CD, (q15_t)0xB5F9, (q15_t)0x9793, - (q15_t)0xB64B, (q15_t)0x9759, (q15_t)0xB69E, (q15_t)0x971F, - (q15_t)0xB6F0, (q15_t)0x96E6, (q15_t)0xB743, (q15_t)0x96AC, - (q15_t)0xB796, (q15_t)0x9673, (q15_t)0xB7E9, (q15_t)0x963B, - (q15_t)0xB83C, (q15_t)0x9602, (q15_t)0xB88F, (q15_t)0x95CA, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xB936, (q15_t)0x955A, - (q15_t)0xB98A, (q15_t)0x9523, (q15_t)0xB9DE, (q15_t)0x94EC, - (q15_t)0xBA32, (q15_t)0x94B5, (q15_t)0xBA87, (q15_t)0x947E, - (q15_t)0xBADB, (q15_t)0x9447, (q15_t)0xBB30, (q15_t)0x9411, - (q15_t)0xBB85, (q15_t)0x93DB, (q15_t)0xBBDA, (q15_t)0x93A6, - (q15_t)0xBC2F, (q15_t)0x9370, (q15_t)0xBC84, (q15_t)0x933B, - (q15_t)0xBCDA, (q15_t)0x9306, (q15_t)0xBD2F, (q15_t)0x92D2, - (q15_t)0xBD85, (q15_t)0x929D, (q15_t)0xBDDB, (q15_t)0x9269, - (q15_t)0xBE31, (q15_t)0x9235, (q15_t)0xBE88, (q15_t)0x9202, - (q15_t)0xBEDE, (q15_t)0x91CF, (q15_t)0xBF35, (q15_t)0x919C, - (q15_t)0xBF8C, (q15_t)0x9169, (q15_t)0xBFE2, (q15_t)0x9136, - (q15_t)0xC03A, (q15_t)0x9104, (q15_t)0xC091, (q15_t)0x90D2, - (q15_t)0xC0E8, (q15_t)0x90A0, (q15_t)0xC140, (q15_t)0x906F, - (q15_t)0xC197, (q15_t)0x903E, (q15_t)0xC1EF, (q15_t)0x900D, - (q15_t)0xC247, (q15_t)0x8FDC, (q15_t)0xC29F, (q15_t)0x8FAC, - (q15_t)0xC2F8, (q15_t)0x8F7C, (q15_t)0xC350, (q15_t)0x8F4C, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC402, (q15_t)0x8EED, - (q15_t)0xC45A, (q15_t)0x8EBE, (q15_t)0xC4B3, (q15_t)0x8E90, - (q15_t)0xC50D, (q15_t)0x8E61, (q15_t)0xC566, (q15_t)0x8E33, - (q15_t)0xC5BF, (q15_t)0x8E05, (q15_t)0xC619, (q15_t)0x8DD8, - (q15_t)0xC673, (q15_t)0x8DAA, (q15_t)0xC6CD, (q15_t)0x8D7D, - (q15_t)0xC727, (q15_t)0x8D50, (q15_t)0xC781, (q15_t)0x8D24, - (q15_t)0xC7DB, (q15_t)0x8CF8, (q15_t)0xC835, (q15_t)0x8CCC, - (q15_t)0xC890, (q15_t)0x8CA0, (q15_t)0xC8EB, (q15_t)0x8C75, - (q15_t)0xC945, (q15_t)0x8C4A, (q15_t)0xC9A0, (q15_t)0x8C1F, - (q15_t)0xC9FB, (q15_t)0x8BF4, (q15_t)0xCA57, (q15_t)0x8BCA, - (q15_t)0xCAB2, (q15_t)0x8BA0, (q15_t)0xCB0D, (q15_t)0x8B76, - (q15_t)0xCB69, (q15_t)0x8B4D, (q15_t)0xCBC5, (q15_t)0x8B24, - (q15_t)0xCC21, (q15_t)0x8AFB, (q15_t)0xCC7D, (q15_t)0x8AD2, - (q15_t)0xCCD9, (q15_t)0x8AAA, (q15_t)0xCD35, (q15_t)0x8A82, - (q15_t)0xCD91, (q15_t)0x8A5A, (q15_t)0xCDEE, (q15_t)0x8A33, - (q15_t)0xCE4A, (q15_t)0x8A0B, (q15_t)0xCEA7, (q15_t)0x89E4, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xCF61, (q15_t)0x8997, - (q15_t)0xCFBE, (q15_t)0x8971, (q15_t)0xD01B, (q15_t)0x894C, - (q15_t)0xD078, (q15_t)0x8926, (q15_t)0xD0D6, (q15_t)0x8901, - (q15_t)0xD133, (q15_t)0x88DC, (q15_t)0xD191, (q15_t)0x88B8, - (q15_t)0xD1EE, (q15_t)0x8893, (q15_t)0xD24C, (q15_t)0x886F, - (q15_t)0xD2AA, (q15_t)0x884B, (q15_t)0xD308, (q15_t)0x8828, - (q15_t)0xD367, (q15_t)0x8805, (q15_t)0xD3C5, (q15_t)0x87E2, - (q15_t)0xD423, (q15_t)0x87BF, (q15_t)0xD482, (q15_t)0x879D, - (q15_t)0xD4E0, (q15_t)0x877B, (q15_t)0xD53F, (q15_t)0x8759, - (q15_t)0xD59E, (q15_t)0x8738, (q15_t)0xD5FD, (q15_t)0x8717, - (q15_t)0xD65C, (q15_t)0x86F6, (q15_t)0xD6BB, (q15_t)0x86D5, - (q15_t)0xD71A, (q15_t)0x86B5, (q15_t)0xD779, (q15_t)0x8695, - (q15_t)0xD7D9, (q15_t)0x8675, (q15_t)0xD838, (q15_t)0x8656, - (q15_t)0xD898, (q15_t)0x8637, (q15_t)0xD8F8, (q15_t)0x8618, - (q15_t)0xD957, (q15_t)0x85FA, (q15_t)0xD9B7, (q15_t)0x85DB, - (q15_t)0xDA17, (q15_t)0x85BD, (q15_t)0xDA77, (q15_t)0x85A0, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xDB38, (q15_t)0x8565, - (q15_t)0xDB98, (q15_t)0x8549, (q15_t)0xDBF8, (q15_t)0x852C, - (q15_t)0xDC59, (q15_t)0x8510, (q15_t)0xDCBA, (q15_t)0x84F4, - (q15_t)0xDD1A, (q15_t)0x84D9, (q15_t)0xDD7B, (q15_t)0x84BD, - (q15_t)0xDDDC, (q15_t)0x84A2, (q15_t)0xDE3D, (q15_t)0x8488, - (q15_t)0xDE9E, (q15_t)0x846D, (q15_t)0xDEFF, (q15_t)0x8453, - (q15_t)0xDF60, (q15_t)0x843A, (q15_t)0xDFC1, (q15_t)0x8420, - (q15_t)0xE023, (q15_t)0x8407, (q15_t)0xE084, (q15_t)0x83EE, - (q15_t)0xE0E6, (q15_t)0x83D6, (q15_t)0xE147, (q15_t)0x83BD, - (q15_t)0xE1A9, (q15_t)0x83A5, (q15_t)0xE20A, (q15_t)0x838E, - (q15_t)0xE26C, (q15_t)0x8376, (q15_t)0xE2CE, (q15_t)0x835F, - (q15_t)0xE330, (q15_t)0x8348, (q15_t)0xE392, (q15_t)0x8332, - (q15_t)0xE3F4, (q15_t)0x831C, (q15_t)0xE456, (q15_t)0x8306, - (q15_t)0xE4B8, (q15_t)0x82F0, (q15_t)0xE51B, (q15_t)0x82DB, - (q15_t)0xE57D, (q15_t)0x82C6, (q15_t)0xE5DF, (q15_t)0x82B1, - (q15_t)0xE642, (q15_t)0x829D, (q15_t)0xE6A4, (q15_t)0x8289, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xE769, (q15_t)0x8262, - (q15_t)0xE7CC, (q15_t)0x824F, (q15_t)0xE82F, (q15_t)0x823C, - (q15_t)0xE892, (q15_t)0x8229, (q15_t)0xE8F5, (q15_t)0x8217, - (q15_t)0xE957, (q15_t)0x8205, (q15_t)0xE9BA, (q15_t)0x81F3, - (q15_t)0xEA1D, (q15_t)0x81E2, (q15_t)0xEA80, (q15_t)0x81D1, - (q15_t)0xEAE4, (q15_t)0x81C0, (q15_t)0xEB47, (q15_t)0x81B0, - (q15_t)0xEBAA, (q15_t)0x81A0, (q15_t)0xEC0D, (q15_t)0x8190, - (q15_t)0xEC71, (q15_t)0x8180, (q15_t)0xECD4, (q15_t)0x8171, - (q15_t)0xED37, (q15_t)0x8162, (q15_t)0xED9B, (q15_t)0x8154, - (q15_t)0xEDFE, (q15_t)0x8145, (q15_t)0xEE62, (q15_t)0x8137, - (q15_t)0xEEC6, (q15_t)0x812A, (q15_t)0xEF29, (q15_t)0x811C, - (q15_t)0xEF8D, (q15_t)0x810F, (q15_t)0xEFF1, (q15_t)0x8102, - (q15_t)0xF054, (q15_t)0x80F6, (q15_t)0xF0B8, (q15_t)0x80EA, - (q15_t)0xF11C, (q15_t)0x80DE, (q15_t)0xF180, (q15_t)0x80D2, - (q15_t)0xF1E4, (q15_t)0x80C7, (q15_t)0xF248, (q15_t)0x80BC, - (q15_t)0xF2AC, (q15_t)0x80B2, (q15_t)0xF310, (q15_t)0x80A7, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF3D8, (q15_t)0x8094, - (q15_t)0xF43C, (q15_t)0x808A, (q15_t)0xF4A0, (q15_t)0x8081, - (q15_t)0xF504, (q15_t)0x8078, (q15_t)0xF568, (q15_t)0x8070, - (q15_t)0xF5CC, (q15_t)0x8068, (q15_t)0xF631, (q15_t)0x8060, - (q15_t)0xF695, (q15_t)0x8058, (q15_t)0xF6F9, (q15_t)0x8051, - (q15_t)0xF75D, (q15_t)0x804A, (q15_t)0xF7C2, (q15_t)0x8043, - (q15_t)0xF826, (q15_t)0x803D, (q15_t)0xF88A, (q15_t)0x8037, - (q15_t)0xF8EF, (q15_t)0x8031, (q15_t)0xF953, (q15_t)0x802C, - (q15_t)0xF9B8, (q15_t)0x8027, (q15_t)0xFA1C, (q15_t)0x8022, - (q15_t)0xFA80, (q15_t)0x801E, (q15_t)0xFAE5, (q15_t)0x801A, - (q15_t)0xFB49, (q15_t)0x8016, (q15_t)0xFBAE, (q15_t)0x8012, - (q15_t)0xFC12, (q15_t)0x800F, (q15_t)0xFC77, (q15_t)0x800C, - (q15_t)0xFCDB, (q15_t)0x8009, (q15_t)0xFD40, (q15_t)0x8007, - (q15_t)0xFDA4, (q15_t)0x8005, (q15_t)0xFE09, (q15_t)0x8003, - (q15_t)0xFE6D, (q15_t)0x8002, (q15_t)0xFED2, (q15_t)0x8001, - (q15_t)0xFF36, (q15_t)0x8000, (q15_t)0xFF9B, (q15_t)0x8000 -}; - -/** -* \par -* Example code for q15 Twiddle factors Generation:: -* \par -*
for(i = 0; i< 3N/4; i++)
-* {
-*    twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N);
-*    twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N);
-* } 
-* \par -* where N = 4096 and PI = 3.14159265358979 -* \par -* Cos and Sin values are interleaved fashion -* \par -* Convert Floating point to q15(Fixed point 1.15): -* round(twiddleCoefq15(i) * pow(2, 15)) -* -*/ -const q15_t twiddleCoef_4096_q15[6144] = -{ - (q15_t)0x7FFF, (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0x0032, - (q15_t)0x7FFF, (q15_t)0x0064, (q15_t)0x7FFF, (q15_t)0x0096, - (q15_t)0x7FFF, (q15_t)0x00C9, (q15_t)0x7FFF, (q15_t)0x00FB, - (q15_t)0x7FFE, (q15_t)0x012D, (q15_t)0x7FFE, (q15_t)0x015F, - (q15_t)0x7FFD, (q15_t)0x0192, (q15_t)0x7FFC, (q15_t)0x01C4, - (q15_t)0x7FFC, (q15_t)0x01F6, (q15_t)0x7FFB, (q15_t)0x0228, - (q15_t)0x7FFA, (q15_t)0x025B, (q15_t)0x7FF9, (q15_t)0x028D, - (q15_t)0x7FF8, (q15_t)0x02BF, (q15_t)0x7FF7, (q15_t)0x02F1, - (q15_t)0x7FF6, (q15_t)0x0324, (q15_t)0x7FF4, (q15_t)0x0356, - (q15_t)0x7FF3, (q15_t)0x0388, (q15_t)0x7FF2, (q15_t)0x03BA, - (q15_t)0x7FF0, (q15_t)0x03ED, (q15_t)0x7FEE, (q15_t)0x041F, - (q15_t)0x7FED, (q15_t)0x0451, (q15_t)0x7FEB, (q15_t)0x0483, - (q15_t)0x7FE9, (q15_t)0x04B6, (q15_t)0x7FE7, (q15_t)0x04E8, - (q15_t)0x7FE5, (q15_t)0x051A, (q15_t)0x7FE3, (q15_t)0x054C, - (q15_t)0x7FE1, (q15_t)0x057F, (q15_t)0x7FDF, (q15_t)0x05B1, - (q15_t)0x7FDD, (q15_t)0x05E3, (q15_t)0x7FDA, (q15_t)0x0615, - (q15_t)0x7FD8, (q15_t)0x0647, (q15_t)0x7FD6, (q15_t)0x067A, - (q15_t)0x7FD3, (q15_t)0x06AC, (q15_t)0x7FD0, (q15_t)0x06DE, - (q15_t)0x7FCE, (q15_t)0x0710, (q15_t)0x7FCB, (q15_t)0x0742, - (q15_t)0x7FC8, (q15_t)0x0775, (q15_t)0x7FC5, (q15_t)0x07A7, - (q15_t)0x7FC2, (q15_t)0x07D9, (q15_t)0x7FBF, (q15_t)0x080B, - (q15_t)0x7FBC, (q15_t)0x083D, (q15_t)0x7FB8, (q15_t)0x086F, - (q15_t)0x7FB5, (q15_t)0x08A2, (q15_t)0x7FB1, (q15_t)0x08D4, - (q15_t)0x7FAE, (q15_t)0x0906, (q15_t)0x7FAA, (q15_t)0x0938, - (q15_t)0x7FA7, (q15_t)0x096A, (q15_t)0x7FA3, (q15_t)0x099C, - (q15_t)0x7F9F, (q15_t)0x09CE, (q15_t)0x7F9B, (q15_t)0x0A00, - (q15_t)0x7F97, (q15_t)0x0A33, (q15_t)0x7F93, (q15_t)0x0A65, - (q15_t)0x7F8F, (q15_t)0x0A97, (q15_t)0x7F8B, (q15_t)0x0AC9, - (q15_t)0x7F87, (q15_t)0x0AFB, (q15_t)0x7F82, (q15_t)0x0B2D, - (q15_t)0x7F7E, (q15_t)0x0B5F, (q15_t)0x7F79, (q15_t)0x0B91, - (q15_t)0x7F75, (q15_t)0x0BC3, (q15_t)0x7F70, (q15_t)0x0BF5, - (q15_t)0x7F6B, (q15_t)0x0C27, (q15_t)0x7F67, (q15_t)0x0C59, - (q15_t)0x7F62, (q15_t)0x0C8B, (q15_t)0x7F5D, (q15_t)0x0CBD, - (q15_t)0x7F58, (q15_t)0x0CEF, (q15_t)0x7F53, (q15_t)0x0D21, - (q15_t)0x7F4D, (q15_t)0x0D53, (q15_t)0x7F48, (q15_t)0x0D85, - (q15_t)0x7F43, (q15_t)0x0DB7, (q15_t)0x7F3D, (q15_t)0x0DE9, - (q15_t)0x7F38, (q15_t)0x0E1B, (q15_t)0x7F32, (q15_t)0x0E4D, - (q15_t)0x7F2D, (q15_t)0x0E7F, (q15_t)0x7F27, (q15_t)0x0EB1, - (q15_t)0x7F21, (q15_t)0x0EE3, (q15_t)0x7F1B, (q15_t)0x0F15, - (q15_t)0x7F15, (q15_t)0x0F47, (q15_t)0x7F0F, (q15_t)0x0F79, - (q15_t)0x7F09, (q15_t)0x0FAB, (q15_t)0x7F03, (q15_t)0x0FDD, - (q15_t)0x7EFD, (q15_t)0x100E, (q15_t)0x7EF6, (q15_t)0x1040, - (q15_t)0x7EF0, (q15_t)0x1072, (q15_t)0x7EE9, (q15_t)0x10A4, - (q15_t)0x7EE3, (q15_t)0x10D6, (q15_t)0x7EDC, (q15_t)0x1108, - (q15_t)0x7ED5, (q15_t)0x1139, (q15_t)0x7ECF, (q15_t)0x116B, - (q15_t)0x7EC8, (q15_t)0x119D, (q15_t)0x7EC1, (q15_t)0x11CF, - (q15_t)0x7EBA, (q15_t)0x1201, (q15_t)0x7EB3, (q15_t)0x1232, - (q15_t)0x7EAB, (q15_t)0x1264, (q15_t)0x7EA4, (q15_t)0x1296, - (q15_t)0x7E9D, (q15_t)0x12C8, (q15_t)0x7E95, (q15_t)0x12F9, - (q15_t)0x7E8E, (q15_t)0x132B, (q15_t)0x7E86, (q15_t)0x135D, - (q15_t)0x7E7F, (q15_t)0x138E, (q15_t)0x7E77, (q15_t)0x13C0, - (q15_t)0x7E6F, (q15_t)0x13F2, (q15_t)0x7E67, (q15_t)0x1423, - (q15_t)0x7E5F, (q15_t)0x1455, (q15_t)0x7E57, (q15_t)0x1487, - (q15_t)0x7E4F, (q15_t)0x14B8, (q15_t)0x7E47, (q15_t)0x14EA, - (q15_t)0x7E3F, (q15_t)0x151B, (q15_t)0x7E37, (q15_t)0x154D, - (q15_t)0x7E2E, (q15_t)0x157F, (q15_t)0x7E26, (q15_t)0x15B0, - (q15_t)0x7E1D, (q15_t)0x15E2, (q15_t)0x7E14, (q15_t)0x1613, - (q15_t)0x7E0C, (q15_t)0x1645, (q15_t)0x7E03, (q15_t)0x1676, - (q15_t)0x7DFA, (q15_t)0x16A8, (q15_t)0x7DF1, (q15_t)0x16D9, - (q15_t)0x7DE8, (q15_t)0x170A, (q15_t)0x7DDF, (q15_t)0x173C, - (q15_t)0x7DD6, (q15_t)0x176D, (q15_t)0x7DCD, (q15_t)0x179F, - (q15_t)0x7DC3, (q15_t)0x17D0, (q15_t)0x7DBA, (q15_t)0x1802, - (q15_t)0x7DB0, (q15_t)0x1833, (q15_t)0x7DA7, (q15_t)0x1864, - (q15_t)0x7D9D, (q15_t)0x1896, (q15_t)0x7D94, (q15_t)0x18C7, - (q15_t)0x7D8A, (q15_t)0x18F8, (q15_t)0x7D80, (q15_t)0x192A, - (q15_t)0x7D76, (q15_t)0x195B, (q15_t)0x7D6C, (q15_t)0x198C, - (q15_t)0x7D62, (q15_t)0x19BD, (q15_t)0x7D58, (q15_t)0x19EF, - (q15_t)0x7D4E, (q15_t)0x1A20, (q15_t)0x7D43, (q15_t)0x1A51, - (q15_t)0x7D39, (q15_t)0x1A82, (q15_t)0x7D2F, (q15_t)0x1AB3, - (q15_t)0x7D24, (q15_t)0x1AE4, (q15_t)0x7D19, (q15_t)0x1B16, - (q15_t)0x7D0F, (q15_t)0x1B47, (q15_t)0x7D04, (q15_t)0x1B78, - (q15_t)0x7CF9, (q15_t)0x1BA9, (q15_t)0x7CEE, (q15_t)0x1BDA, - (q15_t)0x7CE3, (q15_t)0x1C0B, (q15_t)0x7CD8, (q15_t)0x1C3C, - (q15_t)0x7CCD, (q15_t)0x1C6D, (q15_t)0x7CC2, (q15_t)0x1C9E, - (q15_t)0x7CB7, (q15_t)0x1CCF, (q15_t)0x7CAB, (q15_t)0x1D00, - (q15_t)0x7CA0, (q15_t)0x1D31, (q15_t)0x7C94, (q15_t)0x1D62, - (q15_t)0x7C89, (q15_t)0x1D93, (q15_t)0x7C7D, (q15_t)0x1DC4, - (q15_t)0x7C71, (q15_t)0x1DF5, (q15_t)0x7C66, (q15_t)0x1E25, - (q15_t)0x7C5A, (q15_t)0x1E56, (q15_t)0x7C4E, (q15_t)0x1E87, - (q15_t)0x7C42, (q15_t)0x1EB8, (q15_t)0x7C36, (q15_t)0x1EE9, - (q15_t)0x7C29, (q15_t)0x1F19, (q15_t)0x7C1D, (q15_t)0x1F4A, - (q15_t)0x7C11, (q15_t)0x1F7B, (q15_t)0x7C05, (q15_t)0x1FAC, - (q15_t)0x7BF8, (q15_t)0x1FDC, (q15_t)0x7BEB, (q15_t)0x200D, - (q15_t)0x7BDF, (q15_t)0x203E, (q15_t)0x7BD2, (q15_t)0x206E, - (q15_t)0x7BC5, (q15_t)0x209F, (q15_t)0x7BB9, (q15_t)0x20D0, - (q15_t)0x7BAC, (q15_t)0x2100, (q15_t)0x7B9F, (q15_t)0x2131, - (q15_t)0x7B92, (q15_t)0x2161, (q15_t)0x7B84, (q15_t)0x2192, - (q15_t)0x7B77, (q15_t)0x21C2, (q15_t)0x7B6A, (q15_t)0x21F3, - (q15_t)0x7B5D, (q15_t)0x2223, (q15_t)0x7B4F, (q15_t)0x2254, - (q15_t)0x7B42, (q15_t)0x2284, (q15_t)0x7B34, (q15_t)0x22B4, - (q15_t)0x7B26, (q15_t)0x22E5, (q15_t)0x7B19, (q15_t)0x2315, - (q15_t)0x7B0B, (q15_t)0x2345, (q15_t)0x7AFD, (q15_t)0x2376, - (q15_t)0x7AEF, (q15_t)0x23A6, (q15_t)0x7AE1, (q15_t)0x23D6, - (q15_t)0x7AD3, (q15_t)0x2407, (q15_t)0x7AC5, (q15_t)0x2437, - (q15_t)0x7AB6, (q15_t)0x2467, (q15_t)0x7AA8, (q15_t)0x2497, - (q15_t)0x7A9A, (q15_t)0x24C7, (q15_t)0x7A8B, (q15_t)0x24F7, - (q15_t)0x7A7D, (q15_t)0x2528, (q15_t)0x7A6E, (q15_t)0x2558, - (q15_t)0x7A5F, (q15_t)0x2588, (q15_t)0x7A50, (q15_t)0x25B8, - (q15_t)0x7A42, (q15_t)0x25E8, (q15_t)0x7A33, (q15_t)0x2618, - (q15_t)0x7A24, (q15_t)0x2648, (q15_t)0x7A15, (q15_t)0x2678, - (q15_t)0x7A05, (q15_t)0x26A8, (q15_t)0x79F6, (q15_t)0x26D8, - (q15_t)0x79E7, (q15_t)0x2707, (q15_t)0x79D8, (q15_t)0x2737, - (q15_t)0x79C8, (q15_t)0x2767, (q15_t)0x79B9, (q15_t)0x2797, - (q15_t)0x79A9, (q15_t)0x27C7, (q15_t)0x7999, (q15_t)0x27F6, - (q15_t)0x798A, (q15_t)0x2826, (q15_t)0x797A, (q15_t)0x2856, - (q15_t)0x796A, (q15_t)0x2886, (q15_t)0x795A, (q15_t)0x28B5, - (q15_t)0x794A, (q15_t)0x28E5, (q15_t)0x793A, (q15_t)0x2915, - (q15_t)0x792A, (q15_t)0x2944, (q15_t)0x7919, (q15_t)0x2974, - (q15_t)0x7909, (q15_t)0x29A3, (q15_t)0x78F9, (q15_t)0x29D3, - (q15_t)0x78E8, (q15_t)0x2A02, (q15_t)0x78D8, (q15_t)0x2A32, - (q15_t)0x78C7, (q15_t)0x2A61, (q15_t)0x78B6, (q15_t)0x2A91, - (q15_t)0x78A6, (q15_t)0x2AC0, (q15_t)0x7895, (q15_t)0x2AEF, - (q15_t)0x7884, (q15_t)0x2B1F, (q15_t)0x7873, (q15_t)0x2B4E, - (q15_t)0x7862, (q15_t)0x2B7D, (q15_t)0x7851, (q15_t)0x2BAD, - (q15_t)0x7840, (q15_t)0x2BDC, (q15_t)0x782E, (q15_t)0x2C0B, - (q15_t)0x781D, (q15_t)0x2C3A, (q15_t)0x780C, (q15_t)0x2C69, - (q15_t)0x77FA, (q15_t)0x2C98, (q15_t)0x77E9, (q15_t)0x2CC8, - (q15_t)0x77D7, (q15_t)0x2CF7, (q15_t)0x77C5, (q15_t)0x2D26, - (q15_t)0x77B4, (q15_t)0x2D55, (q15_t)0x77A2, (q15_t)0x2D84, - (q15_t)0x7790, (q15_t)0x2DB3, (q15_t)0x777E, (q15_t)0x2DE2, - (q15_t)0x776C, (q15_t)0x2E11, (q15_t)0x775A, (q15_t)0x2E3F, - (q15_t)0x7747, (q15_t)0x2E6E, (q15_t)0x7735, (q15_t)0x2E9D, - (q15_t)0x7723, (q15_t)0x2ECC, (q15_t)0x7710, (q15_t)0x2EFB, - (q15_t)0x76FE, (q15_t)0x2F29, (q15_t)0x76EB, (q15_t)0x2F58, - (q15_t)0x76D9, (q15_t)0x2F87, (q15_t)0x76C6, (q15_t)0x2FB5, - (q15_t)0x76B3, (q15_t)0x2FE4, (q15_t)0x76A0, (q15_t)0x3013, - (q15_t)0x768E, (q15_t)0x3041, (q15_t)0x767B, (q15_t)0x3070, - (q15_t)0x7668, (q15_t)0x309E, (q15_t)0x7654, (q15_t)0x30CD, - (q15_t)0x7641, (q15_t)0x30FB, (q15_t)0x762E, (q15_t)0x312A, - (q15_t)0x761B, (q15_t)0x3158, (q15_t)0x7607, (q15_t)0x3186, - (q15_t)0x75F4, (q15_t)0x31B5, (q15_t)0x75E0, (q15_t)0x31E3, - (q15_t)0x75CC, (q15_t)0x3211, (q15_t)0x75B9, (q15_t)0x3240, - (q15_t)0x75A5, (q15_t)0x326E, (q15_t)0x7591, (q15_t)0x329C, - (q15_t)0x757D, (q15_t)0x32CA, (q15_t)0x7569, (q15_t)0x32F8, - (q15_t)0x7555, (q15_t)0x3326, (q15_t)0x7541, (q15_t)0x3354, - (q15_t)0x752D, (q15_t)0x3382, (q15_t)0x7519, (q15_t)0x33B0, - (q15_t)0x7504, (q15_t)0x33DE, (q15_t)0x74F0, (q15_t)0x340C, - (q15_t)0x74DB, (q15_t)0x343A, (q15_t)0x74C7, (q15_t)0x3468, - (q15_t)0x74B2, (q15_t)0x3496, (q15_t)0x749E, (q15_t)0x34C4, - (q15_t)0x7489, (q15_t)0x34F2, (q15_t)0x7474, (q15_t)0x351F, - (q15_t)0x745F, (q15_t)0x354D, (q15_t)0x744A, (q15_t)0x357B, - (q15_t)0x7435, (q15_t)0x35A8, (q15_t)0x7420, (q15_t)0x35D6, - (q15_t)0x740B, (q15_t)0x3604, (q15_t)0x73F6, (q15_t)0x3631, - (q15_t)0x73E0, (q15_t)0x365F, (q15_t)0x73CB, (q15_t)0x368C, - (q15_t)0x73B5, (q15_t)0x36BA, (q15_t)0x73A0, (q15_t)0x36E7, - (q15_t)0x738A, (q15_t)0x3714, (q15_t)0x7375, (q15_t)0x3742, - (q15_t)0x735F, (q15_t)0x376F, (q15_t)0x7349, (q15_t)0x379C, - (q15_t)0x7333, (q15_t)0x37CA, (q15_t)0x731D, (q15_t)0x37F7, - (q15_t)0x7307, (q15_t)0x3824, (q15_t)0x72F1, (q15_t)0x3851, - (q15_t)0x72DB, (q15_t)0x387E, (q15_t)0x72C5, (q15_t)0x38AB, - (q15_t)0x72AF, (q15_t)0x38D8, (q15_t)0x7298, (q15_t)0x3906, - (q15_t)0x7282, (q15_t)0x3932, (q15_t)0x726B, (q15_t)0x395F, - (q15_t)0x7255, (q15_t)0x398C, (q15_t)0x723E, (q15_t)0x39B9, - (q15_t)0x7227, (q15_t)0x39E6, (q15_t)0x7211, (q15_t)0x3A13, - (q15_t)0x71FA, (q15_t)0x3A40, (q15_t)0x71E3, (q15_t)0x3A6C, - (q15_t)0x71CC, (q15_t)0x3A99, (q15_t)0x71B5, (q15_t)0x3AC6, - (q15_t)0x719E, (q15_t)0x3AF2, (q15_t)0x7186, (q15_t)0x3B1F, - (q15_t)0x716F, (q15_t)0x3B4C, (q15_t)0x7158, (q15_t)0x3B78, - (q15_t)0x7141, (q15_t)0x3BA5, (q15_t)0x7129, (q15_t)0x3BD1, - (q15_t)0x7112, (q15_t)0x3BFD, (q15_t)0x70FA, (q15_t)0x3C2A, - (q15_t)0x70E2, (q15_t)0x3C56, (q15_t)0x70CB, (q15_t)0x3C83, - (q15_t)0x70B3, (q15_t)0x3CAF, (q15_t)0x709B, (q15_t)0x3CDB, - (q15_t)0x7083, (q15_t)0x3D07, (q15_t)0x706B, (q15_t)0x3D33, - (q15_t)0x7053, (q15_t)0x3D60, (q15_t)0x703B, (q15_t)0x3D8C, - (q15_t)0x7023, (q15_t)0x3DB8, (q15_t)0x700A, (q15_t)0x3DE4, - (q15_t)0x6FF2, (q15_t)0x3E10, (q15_t)0x6FDA, (q15_t)0x3E3C, - (q15_t)0x6FC1, (q15_t)0x3E68, (q15_t)0x6FA9, (q15_t)0x3E93, - (q15_t)0x6F90, (q15_t)0x3EBF, (q15_t)0x6F77, (q15_t)0x3EEB, - (q15_t)0x6F5F, (q15_t)0x3F17, (q15_t)0x6F46, (q15_t)0x3F43, - (q15_t)0x6F2D, (q15_t)0x3F6E, (q15_t)0x6F14, (q15_t)0x3F9A, - (q15_t)0x6EFB, (q15_t)0x3FC5, (q15_t)0x6EE2, (q15_t)0x3FF1, - (q15_t)0x6EC9, (q15_t)0x401D, (q15_t)0x6EAF, (q15_t)0x4048, - (q15_t)0x6E96, (q15_t)0x4073, (q15_t)0x6E7D, (q15_t)0x409F, - (q15_t)0x6E63, (q15_t)0x40CA, (q15_t)0x6E4A, (q15_t)0x40F6, - (q15_t)0x6E30, (q15_t)0x4121, (q15_t)0x6E17, (q15_t)0x414C, - (q15_t)0x6DFD, (q15_t)0x4177, (q15_t)0x6DE3, (q15_t)0x41A2, - (q15_t)0x6DCA, (q15_t)0x41CE, (q15_t)0x6DB0, (q15_t)0x41F9, - (q15_t)0x6D96, (q15_t)0x4224, (q15_t)0x6D7C, (q15_t)0x424F, - (q15_t)0x6D62, (q15_t)0x427A, (q15_t)0x6D48, (q15_t)0x42A5, - (q15_t)0x6D2D, (q15_t)0x42D0, (q15_t)0x6D13, (q15_t)0x42FA, - (q15_t)0x6CF9, (q15_t)0x4325, (q15_t)0x6CDE, (q15_t)0x4350, - (q15_t)0x6CC4, (q15_t)0x437B, (q15_t)0x6CA9, (q15_t)0x43A5, - (q15_t)0x6C8F, (q15_t)0x43D0, (q15_t)0x6C74, (q15_t)0x43FB, - (q15_t)0x6C59, (q15_t)0x4425, (q15_t)0x6C3F, (q15_t)0x4450, - (q15_t)0x6C24, (q15_t)0x447A, (q15_t)0x6C09, (q15_t)0x44A5, - (q15_t)0x6BEE, (q15_t)0x44CF, (q15_t)0x6BD3, (q15_t)0x44FA, - (q15_t)0x6BB8, (q15_t)0x4524, (q15_t)0x6B9C, (q15_t)0x454E, - (q15_t)0x6B81, (q15_t)0x4578, (q15_t)0x6B66, (q15_t)0x45A3, - (q15_t)0x6B4A, (q15_t)0x45CD, (q15_t)0x6B2F, (q15_t)0x45F7, - (q15_t)0x6B13, (q15_t)0x4621, (q15_t)0x6AF8, (q15_t)0x464B, - (q15_t)0x6ADC, (q15_t)0x4675, (q15_t)0x6AC1, (q15_t)0x469F, - (q15_t)0x6AA5, (q15_t)0x46C9, (q15_t)0x6A89, (q15_t)0x46F3, - (q15_t)0x6A6D, (q15_t)0x471C, (q15_t)0x6A51, (q15_t)0x4746, - (q15_t)0x6A35, (q15_t)0x4770, (q15_t)0x6A19, (q15_t)0x479A, - (q15_t)0x69FD, (q15_t)0x47C3, (q15_t)0x69E1, (q15_t)0x47ED, - (q15_t)0x69C4, (q15_t)0x4816, (q15_t)0x69A8, (q15_t)0x4840, - (q15_t)0x698C, (q15_t)0x4869, (q15_t)0x696F, (q15_t)0x4893, - (q15_t)0x6953, (q15_t)0x48BC, (q15_t)0x6936, (q15_t)0x48E6, - (q15_t)0x6919, (q15_t)0x490F, (q15_t)0x68FD, (q15_t)0x4938, - (q15_t)0x68E0, (q15_t)0x4961, (q15_t)0x68C3, (q15_t)0x498A, - (q15_t)0x68A6, (q15_t)0x49B4, (q15_t)0x6889, (q15_t)0x49DD, - (q15_t)0x686C, (q15_t)0x4A06, (q15_t)0x684F, (q15_t)0x4A2F, - (q15_t)0x6832, (q15_t)0x4A58, (q15_t)0x6815, (q15_t)0x4A81, - (q15_t)0x67F7, (q15_t)0x4AA9, (q15_t)0x67DA, (q15_t)0x4AD2, - (q15_t)0x67BD, (q15_t)0x4AFB, (q15_t)0x679F, (q15_t)0x4B24, - (q15_t)0x6782, (q15_t)0x4B4C, (q15_t)0x6764, (q15_t)0x4B75, - (q15_t)0x6746, (q15_t)0x4B9E, (q15_t)0x6729, (q15_t)0x4BC6, - (q15_t)0x670B, (q15_t)0x4BEF, (q15_t)0x66ED, (q15_t)0x4C17, - (q15_t)0x66CF, (q15_t)0x4C3F, (q15_t)0x66B1, (q15_t)0x4C68, - (q15_t)0x6693, (q15_t)0x4C90, (q15_t)0x6675, (q15_t)0x4CB8, - (q15_t)0x6657, (q15_t)0x4CE1, (q15_t)0x6639, (q15_t)0x4D09, - (q15_t)0x661A, (q15_t)0x4D31, (q15_t)0x65FC, (q15_t)0x4D59, - (q15_t)0x65DD, (q15_t)0x4D81, (q15_t)0x65BF, (q15_t)0x4DA9, - (q15_t)0x65A0, (q15_t)0x4DD1, (q15_t)0x6582, (q15_t)0x4DF9, - (q15_t)0x6563, (q15_t)0x4E21, (q15_t)0x6545, (q15_t)0x4E48, - (q15_t)0x6526, (q15_t)0x4E70, (q15_t)0x6507, (q15_t)0x4E98, - (q15_t)0x64E8, (q15_t)0x4EBF, (q15_t)0x64C9, (q15_t)0x4EE7, - (q15_t)0x64AA, (q15_t)0x4F0F, (q15_t)0x648B, (q15_t)0x4F36, - (q15_t)0x646C, (q15_t)0x4F5E, (q15_t)0x644D, (q15_t)0x4F85, - (q15_t)0x642D, (q15_t)0x4FAC, (q15_t)0x640E, (q15_t)0x4FD4, - (q15_t)0x63EF, (q15_t)0x4FFB, (q15_t)0x63CF, (q15_t)0x5022, - (q15_t)0x63B0, (q15_t)0x5049, (q15_t)0x6390, (q15_t)0x5070, - (q15_t)0x6371, (q15_t)0x5097, (q15_t)0x6351, (q15_t)0x50BF, - (q15_t)0x6331, (q15_t)0x50E5, (q15_t)0x6311, (q15_t)0x510C, - (q15_t)0x62F2, (q15_t)0x5133, (q15_t)0x62D2, (q15_t)0x515A, - (q15_t)0x62B2, (q15_t)0x5181, (q15_t)0x6292, (q15_t)0x51A8, - (q15_t)0x6271, (q15_t)0x51CE, (q15_t)0x6251, (q15_t)0x51F5, - (q15_t)0x6231, (q15_t)0x521C, (q15_t)0x6211, (q15_t)0x5242, - (q15_t)0x61F1, (q15_t)0x5269, (q15_t)0x61D0, (q15_t)0x528F, - (q15_t)0x61B0, (q15_t)0x52B5, (q15_t)0x618F, (q15_t)0x52DC, - (q15_t)0x616F, (q15_t)0x5302, (q15_t)0x614E, (q15_t)0x5328, - (q15_t)0x612D, (q15_t)0x534E, (q15_t)0x610D, (q15_t)0x5375, - (q15_t)0x60EC, (q15_t)0x539B, (q15_t)0x60CB, (q15_t)0x53C1, - (q15_t)0x60AA, (q15_t)0x53E7, (q15_t)0x6089, (q15_t)0x540D, - (q15_t)0x6068, (q15_t)0x5433, (q15_t)0x6047, (q15_t)0x5458, - (q15_t)0x6026, (q15_t)0x547E, (q15_t)0x6004, (q15_t)0x54A4, - (q15_t)0x5FE3, (q15_t)0x54CA, (q15_t)0x5FC2, (q15_t)0x54EF, - (q15_t)0x5FA0, (q15_t)0x5515, (q15_t)0x5F7F, (q15_t)0x553A, - (q15_t)0x5F5E, (q15_t)0x5560, (q15_t)0x5F3C, (q15_t)0x5585, - (q15_t)0x5F1A, (q15_t)0x55AB, (q15_t)0x5EF9, (q15_t)0x55D0, - (q15_t)0x5ED7, (q15_t)0x55F5, (q15_t)0x5EB5, (q15_t)0x561A, - (q15_t)0x5E93, (q15_t)0x5640, (q15_t)0x5E71, (q15_t)0x5665, - (q15_t)0x5E50, (q15_t)0x568A, (q15_t)0x5E2D, (q15_t)0x56AF, - (q15_t)0x5E0B, (q15_t)0x56D4, (q15_t)0x5DE9, (q15_t)0x56F9, - (q15_t)0x5DC7, (q15_t)0x571D, (q15_t)0x5DA5, (q15_t)0x5742, - (q15_t)0x5D83, (q15_t)0x5767, (q15_t)0x5D60, (q15_t)0x578C, - (q15_t)0x5D3E, (q15_t)0x57B0, (q15_t)0x5D1B, (q15_t)0x57D5, - (q15_t)0x5CF9, (q15_t)0x57F9, (q15_t)0x5CD6, (q15_t)0x581E, - (q15_t)0x5CB4, (q15_t)0x5842, (q15_t)0x5C91, (q15_t)0x5867, - (q15_t)0x5C6E, (q15_t)0x588B, (q15_t)0x5C4B, (q15_t)0x58AF, - (q15_t)0x5C29, (q15_t)0x58D4, (q15_t)0x5C06, (q15_t)0x58F8, - (q15_t)0x5BE3, (q15_t)0x591C, (q15_t)0x5BC0, (q15_t)0x5940, - (q15_t)0x5B9D, (q15_t)0x5964, (q15_t)0x5B79, (q15_t)0x5988, - (q15_t)0x5B56, (q15_t)0x59AC, (q15_t)0x5B33, (q15_t)0x59D0, - (q15_t)0x5B10, (q15_t)0x59F3, (q15_t)0x5AEC, (q15_t)0x5A17, - (q15_t)0x5AC9, (q15_t)0x5A3B, (q15_t)0x5AA5, (q15_t)0x5A5E, - (q15_t)0x5A82, (q15_t)0x5A82, (q15_t)0x5A5E, (q15_t)0x5AA5, - (q15_t)0x5A3B, (q15_t)0x5AC9, (q15_t)0x5A17, (q15_t)0x5AEC, - (q15_t)0x59F3, (q15_t)0x5B10, (q15_t)0x59D0, (q15_t)0x5B33, - (q15_t)0x59AC, (q15_t)0x5B56, (q15_t)0x5988, (q15_t)0x5B79, - (q15_t)0x5964, (q15_t)0x5B9D, (q15_t)0x5940, (q15_t)0x5BC0, - (q15_t)0x591C, (q15_t)0x5BE3, (q15_t)0x58F8, (q15_t)0x5C06, - (q15_t)0x58D4, (q15_t)0x5C29, (q15_t)0x58AF, (q15_t)0x5C4B, - (q15_t)0x588B, (q15_t)0x5C6E, (q15_t)0x5867, (q15_t)0x5C91, - (q15_t)0x5842, (q15_t)0x5CB4, (q15_t)0x581E, (q15_t)0x5CD6, - (q15_t)0x57F9, (q15_t)0x5CF9, (q15_t)0x57D5, (q15_t)0x5D1B, - (q15_t)0x57B0, (q15_t)0x5D3E, (q15_t)0x578C, (q15_t)0x5D60, - (q15_t)0x5767, (q15_t)0x5D83, (q15_t)0x5742, (q15_t)0x5DA5, - (q15_t)0x571D, (q15_t)0x5DC7, (q15_t)0x56F9, (q15_t)0x5DE9, - (q15_t)0x56D4, (q15_t)0x5E0B, (q15_t)0x56AF, (q15_t)0x5E2D, - (q15_t)0x568A, (q15_t)0x5E50, (q15_t)0x5665, (q15_t)0x5E71, - (q15_t)0x5640, (q15_t)0x5E93, (q15_t)0x561A, (q15_t)0x5EB5, - (q15_t)0x55F5, (q15_t)0x5ED7, (q15_t)0x55D0, (q15_t)0x5EF9, - (q15_t)0x55AB, (q15_t)0x5F1A, (q15_t)0x5585, (q15_t)0x5F3C, - (q15_t)0x5560, (q15_t)0x5F5E, (q15_t)0x553A, (q15_t)0x5F7F, - (q15_t)0x5515, (q15_t)0x5FA0, (q15_t)0x54EF, (q15_t)0x5FC2, - (q15_t)0x54CA, (q15_t)0x5FE3, (q15_t)0x54A4, (q15_t)0x6004, - (q15_t)0x547E, (q15_t)0x6026, (q15_t)0x5458, (q15_t)0x6047, - (q15_t)0x5433, (q15_t)0x6068, (q15_t)0x540D, (q15_t)0x6089, - (q15_t)0x53E7, (q15_t)0x60AA, (q15_t)0x53C1, (q15_t)0x60CB, - (q15_t)0x539B, (q15_t)0x60EC, (q15_t)0x5375, (q15_t)0x610D, - (q15_t)0x534E, (q15_t)0x612D, (q15_t)0x5328, (q15_t)0x614E, - (q15_t)0x5302, (q15_t)0x616F, (q15_t)0x52DC, (q15_t)0x618F, - (q15_t)0x52B5, (q15_t)0x61B0, (q15_t)0x528F, (q15_t)0x61D0, - (q15_t)0x5269, (q15_t)0x61F1, (q15_t)0x5242, (q15_t)0x6211, - (q15_t)0x521C, (q15_t)0x6231, (q15_t)0x51F5, (q15_t)0x6251, - (q15_t)0x51CE, (q15_t)0x6271, (q15_t)0x51A8, (q15_t)0x6292, - (q15_t)0x5181, (q15_t)0x62B2, (q15_t)0x515A, (q15_t)0x62D2, - (q15_t)0x5133, (q15_t)0x62F2, (q15_t)0x510C, (q15_t)0x6311, - (q15_t)0x50E5, (q15_t)0x6331, (q15_t)0x50BF, (q15_t)0x6351, - (q15_t)0x5097, (q15_t)0x6371, (q15_t)0x5070, (q15_t)0x6390, - (q15_t)0x5049, (q15_t)0x63B0, (q15_t)0x5022, (q15_t)0x63CF, - (q15_t)0x4FFB, (q15_t)0x63EF, (q15_t)0x4FD4, (q15_t)0x640E, - (q15_t)0x4FAC, (q15_t)0x642D, (q15_t)0x4F85, (q15_t)0x644D, - (q15_t)0x4F5E, (q15_t)0x646C, (q15_t)0x4F36, (q15_t)0x648B, - (q15_t)0x4F0F, (q15_t)0x64AA, (q15_t)0x4EE7, (q15_t)0x64C9, - (q15_t)0x4EBF, (q15_t)0x64E8, (q15_t)0x4E98, (q15_t)0x6507, - (q15_t)0x4E70, (q15_t)0x6526, (q15_t)0x4E48, (q15_t)0x6545, - (q15_t)0x4E21, (q15_t)0x6563, (q15_t)0x4DF9, (q15_t)0x6582, - (q15_t)0x4DD1, (q15_t)0x65A0, (q15_t)0x4DA9, (q15_t)0x65BF, - (q15_t)0x4D81, (q15_t)0x65DD, (q15_t)0x4D59, (q15_t)0x65FC, - (q15_t)0x4D31, (q15_t)0x661A, (q15_t)0x4D09, (q15_t)0x6639, - (q15_t)0x4CE1, (q15_t)0x6657, (q15_t)0x4CB8, (q15_t)0x6675, - (q15_t)0x4C90, (q15_t)0x6693, (q15_t)0x4C68, (q15_t)0x66B1, - (q15_t)0x4C3F, (q15_t)0x66CF, (q15_t)0x4C17, (q15_t)0x66ED, - (q15_t)0x4BEF, (q15_t)0x670B, (q15_t)0x4BC6, (q15_t)0x6729, - (q15_t)0x4B9E, (q15_t)0x6746, (q15_t)0x4B75, (q15_t)0x6764, - (q15_t)0x4B4C, (q15_t)0x6782, (q15_t)0x4B24, (q15_t)0x679F, - (q15_t)0x4AFB, (q15_t)0x67BD, (q15_t)0x4AD2, (q15_t)0x67DA, - (q15_t)0x4AA9, (q15_t)0x67F7, (q15_t)0x4A81, (q15_t)0x6815, - (q15_t)0x4A58, (q15_t)0x6832, (q15_t)0x4A2F, (q15_t)0x684F, - (q15_t)0x4A06, (q15_t)0x686C, (q15_t)0x49DD, (q15_t)0x6889, - (q15_t)0x49B4, (q15_t)0x68A6, (q15_t)0x498A, (q15_t)0x68C3, - (q15_t)0x4961, (q15_t)0x68E0, (q15_t)0x4938, (q15_t)0x68FD, - (q15_t)0x490F, (q15_t)0x6919, (q15_t)0x48E6, (q15_t)0x6936, - (q15_t)0x48BC, (q15_t)0x6953, (q15_t)0x4893, (q15_t)0x696F, - (q15_t)0x4869, (q15_t)0x698C, (q15_t)0x4840, (q15_t)0x69A8, - (q15_t)0x4816, (q15_t)0x69C4, (q15_t)0x47ED, (q15_t)0x69E1, - (q15_t)0x47C3, (q15_t)0x69FD, (q15_t)0x479A, (q15_t)0x6A19, - (q15_t)0x4770, (q15_t)0x6A35, (q15_t)0x4746, (q15_t)0x6A51, - (q15_t)0x471C, (q15_t)0x6A6D, (q15_t)0x46F3, (q15_t)0x6A89, - (q15_t)0x46C9, (q15_t)0x6AA5, (q15_t)0x469F, (q15_t)0x6AC1, - (q15_t)0x4675, (q15_t)0x6ADC, (q15_t)0x464B, (q15_t)0x6AF8, - (q15_t)0x4621, (q15_t)0x6B13, (q15_t)0x45F7, (q15_t)0x6B2F, - (q15_t)0x45CD, (q15_t)0x6B4A, (q15_t)0x45A3, (q15_t)0x6B66, - (q15_t)0x4578, (q15_t)0x6B81, (q15_t)0x454E, (q15_t)0x6B9C, - (q15_t)0x4524, (q15_t)0x6BB8, (q15_t)0x44FA, (q15_t)0x6BD3, - (q15_t)0x44CF, (q15_t)0x6BEE, (q15_t)0x44A5, (q15_t)0x6C09, - (q15_t)0x447A, (q15_t)0x6C24, (q15_t)0x4450, (q15_t)0x6C3F, - (q15_t)0x4425, (q15_t)0x6C59, (q15_t)0x43FB, (q15_t)0x6C74, - (q15_t)0x43D0, (q15_t)0x6C8F, (q15_t)0x43A5, (q15_t)0x6CA9, - (q15_t)0x437B, (q15_t)0x6CC4, (q15_t)0x4350, (q15_t)0x6CDE, - (q15_t)0x4325, (q15_t)0x6CF9, (q15_t)0x42FA, (q15_t)0x6D13, - (q15_t)0x42D0, (q15_t)0x6D2D, (q15_t)0x42A5, (q15_t)0x6D48, - (q15_t)0x427A, (q15_t)0x6D62, (q15_t)0x424F, (q15_t)0x6D7C, - (q15_t)0x4224, (q15_t)0x6D96, (q15_t)0x41F9, (q15_t)0x6DB0, - (q15_t)0x41CE, (q15_t)0x6DCA, (q15_t)0x41A2, (q15_t)0x6DE3, - (q15_t)0x4177, (q15_t)0x6DFD, (q15_t)0x414C, (q15_t)0x6E17, - (q15_t)0x4121, (q15_t)0x6E30, (q15_t)0x40F6, (q15_t)0x6E4A, - (q15_t)0x40CA, (q15_t)0x6E63, (q15_t)0x409F, (q15_t)0x6E7D, - (q15_t)0x4073, (q15_t)0x6E96, (q15_t)0x4048, (q15_t)0x6EAF, - (q15_t)0x401D, (q15_t)0x6EC9, (q15_t)0x3FF1, (q15_t)0x6EE2, - (q15_t)0x3FC5, (q15_t)0x6EFB, (q15_t)0x3F9A, (q15_t)0x6F14, - (q15_t)0x3F6E, (q15_t)0x6F2D, (q15_t)0x3F43, (q15_t)0x6F46, - (q15_t)0x3F17, (q15_t)0x6F5F, (q15_t)0x3EEB, (q15_t)0x6F77, - (q15_t)0x3EBF, (q15_t)0x6F90, (q15_t)0x3E93, (q15_t)0x6FA9, - (q15_t)0x3E68, (q15_t)0x6FC1, (q15_t)0x3E3C, (q15_t)0x6FDA, - (q15_t)0x3E10, (q15_t)0x6FF2, (q15_t)0x3DE4, (q15_t)0x700A, - (q15_t)0x3DB8, (q15_t)0x7023, (q15_t)0x3D8C, (q15_t)0x703B, - (q15_t)0x3D60, (q15_t)0x7053, (q15_t)0x3D33, (q15_t)0x706B, - (q15_t)0x3D07, (q15_t)0x7083, (q15_t)0x3CDB, (q15_t)0x709B, - (q15_t)0x3CAF, (q15_t)0x70B3, (q15_t)0x3C83, (q15_t)0x70CB, - (q15_t)0x3C56, (q15_t)0x70E2, (q15_t)0x3C2A, (q15_t)0x70FA, - (q15_t)0x3BFD, (q15_t)0x7112, (q15_t)0x3BD1, (q15_t)0x7129, - (q15_t)0x3BA5, (q15_t)0x7141, (q15_t)0x3B78, (q15_t)0x7158, - (q15_t)0x3B4C, (q15_t)0x716F, (q15_t)0x3B1F, (q15_t)0x7186, - (q15_t)0x3AF2, (q15_t)0x719E, (q15_t)0x3AC6, (q15_t)0x71B5, - (q15_t)0x3A99, (q15_t)0x71CC, (q15_t)0x3A6C, (q15_t)0x71E3, - (q15_t)0x3A40, (q15_t)0x71FA, (q15_t)0x3A13, (q15_t)0x7211, - (q15_t)0x39E6, (q15_t)0x7227, (q15_t)0x39B9, (q15_t)0x723E, - (q15_t)0x398C, (q15_t)0x7255, (q15_t)0x395F, (q15_t)0x726B, - (q15_t)0x3932, (q15_t)0x7282, (q15_t)0x3906, (q15_t)0x7298, - (q15_t)0x38D8, (q15_t)0x72AF, (q15_t)0x38AB, (q15_t)0x72C5, - (q15_t)0x387E, (q15_t)0x72DB, (q15_t)0x3851, (q15_t)0x72F1, - (q15_t)0x3824, (q15_t)0x7307, (q15_t)0x37F7, (q15_t)0x731D, - (q15_t)0x37CA, (q15_t)0x7333, (q15_t)0x379C, (q15_t)0x7349, - (q15_t)0x376F, (q15_t)0x735F, (q15_t)0x3742, (q15_t)0x7375, - (q15_t)0x3714, (q15_t)0x738A, (q15_t)0x36E7, (q15_t)0x73A0, - (q15_t)0x36BA, (q15_t)0x73B5, (q15_t)0x368C, (q15_t)0x73CB, - (q15_t)0x365F, (q15_t)0x73E0, (q15_t)0x3631, (q15_t)0x73F6, - (q15_t)0x3604, (q15_t)0x740B, (q15_t)0x35D6, (q15_t)0x7420, - (q15_t)0x35A8, (q15_t)0x7435, (q15_t)0x357B, (q15_t)0x744A, - (q15_t)0x354D, (q15_t)0x745F, (q15_t)0x351F, (q15_t)0x7474, - (q15_t)0x34F2, (q15_t)0x7489, (q15_t)0x34C4, (q15_t)0x749E, - (q15_t)0x3496, (q15_t)0x74B2, (q15_t)0x3468, (q15_t)0x74C7, - (q15_t)0x343A, (q15_t)0x74DB, (q15_t)0x340C, (q15_t)0x74F0, - (q15_t)0x33DE, (q15_t)0x7504, (q15_t)0x33B0, (q15_t)0x7519, - (q15_t)0x3382, (q15_t)0x752D, (q15_t)0x3354, (q15_t)0x7541, - (q15_t)0x3326, (q15_t)0x7555, (q15_t)0x32F8, (q15_t)0x7569, - (q15_t)0x32CA, (q15_t)0x757D, (q15_t)0x329C, (q15_t)0x7591, - (q15_t)0x326E, (q15_t)0x75A5, (q15_t)0x3240, (q15_t)0x75B9, - (q15_t)0x3211, (q15_t)0x75CC, (q15_t)0x31E3, (q15_t)0x75E0, - (q15_t)0x31B5, (q15_t)0x75F4, (q15_t)0x3186, (q15_t)0x7607, - (q15_t)0x3158, (q15_t)0x761B, (q15_t)0x312A, (q15_t)0x762E, - (q15_t)0x30FB, (q15_t)0x7641, (q15_t)0x30CD, (q15_t)0x7654, - (q15_t)0x309E, (q15_t)0x7668, (q15_t)0x3070, (q15_t)0x767B, - (q15_t)0x3041, (q15_t)0x768E, (q15_t)0x3013, (q15_t)0x76A0, - (q15_t)0x2FE4, (q15_t)0x76B3, (q15_t)0x2FB5, (q15_t)0x76C6, - (q15_t)0x2F87, (q15_t)0x76D9, (q15_t)0x2F58, (q15_t)0x76EB, - (q15_t)0x2F29, (q15_t)0x76FE, (q15_t)0x2EFB, (q15_t)0x7710, - (q15_t)0x2ECC, (q15_t)0x7723, (q15_t)0x2E9D, (q15_t)0x7735, - (q15_t)0x2E6E, (q15_t)0x7747, (q15_t)0x2E3F, (q15_t)0x775A, - (q15_t)0x2E11, (q15_t)0x776C, (q15_t)0x2DE2, (q15_t)0x777E, - (q15_t)0x2DB3, (q15_t)0x7790, (q15_t)0x2D84, (q15_t)0x77A2, - (q15_t)0x2D55, (q15_t)0x77B4, (q15_t)0x2D26, (q15_t)0x77C5, - (q15_t)0x2CF7, (q15_t)0x77D7, (q15_t)0x2CC8, (q15_t)0x77E9, - (q15_t)0x2C98, (q15_t)0x77FA, (q15_t)0x2C69, (q15_t)0x780C, - (q15_t)0x2C3A, (q15_t)0x781D, (q15_t)0x2C0B, (q15_t)0x782E, - (q15_t)0x2BDC, (q15_t)0x7840, (q15_t)0x2BAD, (q15_t)0x7851, - (q15_t)0x2B7D, (q15_t)0x7862, (q15_t)0x2B4E, (q15_t)0x7873, - (q15_t)0x2B1F, (q15_t)0x7884, (q15_t)0x2AEF, (q15_t)0x7895, - (q15_t)0x2AC0, (q15_t)0x78A6, (q15_t)0x2A91, (q15_t)0x78B6, - (q15_t)0x2A61, (q15_t)0x78C7, (q15_t)0x2A32, (q15_t)0x78D8, - (q15_t)0x2A02, (q15_t)0x78E8, (q15_t)0x29D3, (q15_t)0x78F9, - (q15_t)0x29A3, (q15_t)0x7909, (q15_t)0x2974, (q15_t)0x7919, - (q15_t)0x2944, (q15_t)0x792A, (q15_t)0x2915, (q15_t)0x793A, - (q15_t)0x28E5, (q15_t)0x794A, (q15_t)0x28B5, (q15_t)0x795A, - (q15_t)0x2886, (q15_t)0x796A, (q15_t)0x2856, (q15_t)0x797A, - (q15_t)0x2826, (q15_t)0x798A, (q15_t)0x27F6, (q15_t)0x7999, - (q15_t)0x27C7, (q15_t)0x79A9, (q15_t)0x2797, (q15_t)0x79B9, - (q15_t)0x2767, (q15_t)0x79C8, (q15_t)0x2737, (q15_t)0x79D8, - (q15_t)0x2707, (q15_t)0x79E7, (q15_t)0x26D8, (q15_t)0x79F6, - (q15_t)0x26A8, (q15_t)0x7A05, (q15_t)0x2678, (q15_t)0x7A15, - (q15_t)0x2648, (q15_t)0x7A24, (q15_t)0x2618, (q15_t)0x7A33, - (q15_t)0x25E8, (q15_t)0x7A42, (q15_t)0x25B8, (q15_t)0x7A50, - (q15_t)0x2588, (q15_t)0x7A5F, (q15_t)0x2558, (q15_t)0x7A6E, - (q15_t)0x2528, (q15_t)0x7A7D, (q15_t)0x24F7, (q15_t)0x7A8B, - (q15_t)0x24C7, (q15_t)0x7A9A, (q15_t)0x2497, (q15_t)0x7AA8, - (q15_t)0x2467, (q15_t)0x7AB6, (q15_t)0x2437, (q15_t)0x7AC5, - (q15_t)0x2407, (q15_t)0x7AD3, (q15_t)0x23D6, (q15_t)0x7AE1, - (q15_t)0x23A6, (q15_t)0x7AEF, (q15_t)0x2376, (q15_t)0x7AFD, - (q15_t)0x2345, (q15_t)0x7B0B, (q15_t)0x2315, (q15_t)0x7B19, - (q15_t)0x22E5, (q15_t)0x7B26, (q15_t)0x22B4, (q15_t)0x7B34, - (q15_t)0x2284, (q15_t)0x7B42, (q15_t)0x2254, (q15_t)0x7B4F, - (q15_t)0x2223, (q15_t)0x7B5D, (q15_t)0x21F3, (q15_t)0x7B6A, - (q15_t)0x21C2, (q15_t)0x7B77, (q15_t)0x2192, (q15_t)0x7B84, - (q15_t)0x2161, (q15_t)0x7B92, (q15_t)0x2131, (q15_t)0x7B9F, - (q15_t)0x2100, (q15_t)0x7BAC, (q15_t)0x20D0, (q15_t)0x7BB9, - (q15_t)0x209F, (q15_t)0x7BC5, (q15_t)0x206E, (q15_t)0x7BD2, - (q15_t)0x203E, (q15_t)0x7BDF, (q15_t)0x200D, (q15_t)0x7BEB, - (q15_t)0x1FDC, (q15_t)0x7BF8, (q15_t)0x1FAC, (q15_t)0x7C05, - (q15_t)0x1F7B, (q15_t)0x7C11, (q15_t)0x1F4A, (q15_t)0x7C1D, - (q15_t)0x1F19, (q15_t)0x7C29, (q15_t)0x1EE9, (q15_t)0x7C36, - (q15_t)0x1EB8, (q15_t)0x7C42, (q15_t)0x1E87, (q15_t)0x7C4E, - (q15_t)0x1E56, (q15_t)0x7C5A, (q15_t)0x1E25, (q15_t)0x7C66, - (q15_t)0x1DF5, (q15_t)0x7C71, (q15_t)0x1DC4, (q15_t)0x7C7D, - (q15_t)0x1D93, (q15_t)0x7C89, (q15_t)0x1D62, (q15_t)0x7C94, - (q15_t)0x1D31, (q15_t)0x7CA0, (q15_t)0x1D00, (q15_t)0x7CAB, - (q15_t)0x1CCF, (q15_t)0x7CB7, (q15_t)0x1C9E, (q15_t)0x7CC2, - (q15_t)0x1C6D, (q15_t)0x7CCD, (q15_t)0x1C3C, (q15_t)0x7CD8, - (q15_t)0x1C0B, (q15_t)0x7CE3, (q15_t)0x1BDA, (q15_t)0x7CEE, - (q15_t)0x1BA9, (q15_t)0x7CF9, (q15_t)0x1B78, (q15_t)0x7D04, - (q15_t)0x1B47, (q15_t)0x7D0F, (q15_t)0x1B16, (q15_t)0x7D19, - (q15_t)0x1AE4, (q15_t)0x7D24, (q15_t)0x1AB3, (q15_t)0x7D2F, - (q15_t)0x1A82, (q15_t)0x7D39, (q15_t)0x1A51, (q15_t)0x7D43, - (q15_t)0x1A20, (q15_t)0x7D4E, (q15_t)0x19EF, (q15_t)0x7D58, - (q15_t)0x19BD, (q15_t)0x7D62, (q15_t)0x198C, (q15_t)0x7D6C, - (q15_t)0x195B, (q15_t)0x7D76, (q15_t)0x192A, (q15_t)0x7D80, - (q15_t)0x18F8, (q15_t)0x7D8A, (q15_t)0x18C7, (q15_t)0x7D94, - (q15_t)0x1896, (q15_t)0x7D9D, (q15_t)0x1864, (q15_t)0x7DA7, - (q15_t)0x1833, (q15_t)0x7DB0, (q15_t)0x1802, (q15_t)0x7DBA, - (q15_t)0x17D0, (q15_t)0x7DC3, (q15_t)0x179F, (q15_t)0x7DCD, - (q15_t)0x176D, (q15_t)0x7DD6, (q15_t)0x173C, (q15_t)0x7DDF, - (q15_t)0x170A, (q15_t)0x7DE8, (q15_t)0x16D9, (q15_t)0x7DF1, - (q15_t)0x16A8, (q15_t)0x7DFA, (q15_t)0x1676, (q15_t)0x7E03, - (q15_t)0x1645, (q15_t)0x7E0C, (q15_t)0x1613, (q15_t)0x7E14, - (q15_t)0x15E2, (q15_t)0x7E1D, (q15_t)0x15B0, (q15_t)0x7E26, - (q15_t)0x157F, (q15_t)0x7E2E, (q15_t)0x154D, (q15_t)0x7E37, - (q15_t)0x151B, (q15_t)0x7E3F, (q15_t)0x14EA, (q15_t)0x7E47, - (q15_t)0x14B8, (q15_t)0x7E4F, (q15_t)0x1487, (q15_t)0x7E57, - (q15_t)0x1455, (q15_t)0x7E5F, (q15_t)0x1423, (q15_t)0x7E67, - (q15_t)0x13F2, (q15_t)0x7E6F, (q15_t)0x13C0, (q15_t)0x7E77, - (q15_t)0x138E, (q15_t)0x7E7F, (q15_t)0x135D, (q15_t)0x7E86, - (q15_t)0x132B, (q15_t)0x7E8E, (q15_t)0x12F9, (q15_t)0x7E95, - (q15_t)0x12C8, (q15_t)0x7E9D, (q15_t)0x1296, (q15_t)0x7EA4, - (q15_t)0x1264, (q15_t)0x7EAB, (q15_t)0x1232, (q15_t)0x7EB3, - (q15_t)0x1201, (q15_t)0x7EBA, (q15_t)0x11CF, (q15_t)0x7EC1, - (q15_t)0x119D, (q15_t)0x7EC8, (q15_t)0x116B, (q15_t)0x7ECF, - (q15_t)0x1139, (q15_t)0x7ED5, (q15_t)0x1108, (q15_t)0x7EDC, - (q15_t)0x10D6, (q15_t)0x7EE3, (q15_t)0x10A4, (q15_t)0x7EE9, - (q15_t)0x1072, (q15_t)0x7EF0, (q15_t)0x1040, (q15_t)0x7EF6, - (q15_t)0x100E, (q15_t)0x7EFD, (q15_t)0x0FDD, (q15_t)0x7F03, - (q15_t)0x0FAB, (q15_t)0x7F09, (q15_t)0x0F79, (q15_t)0x7F0F, - (q15_t)0x0F47, (q15_t)0x7F15, (q15_t)0x0F15, (q15_t)0x7F1B, - (q15_t)0x0EE3, (q15_t)0x7F21, (q15_t)0x0EB1, (q15_t)0x7F27, - (q15_t)0x0E7F, (q15_t)0x7F2D, (q15_t)0x0E4D, (q15_t)0x7F32, - (q15_t)0x0E1B, (q15_t)0x7F38, (q15_t)0x0DE9, (q15_t)0x7F3D, - (q15_t)0x0DB7, (q15_t)0x7F43, (q15_t)0x0D85, (q15_t)0x7F48, - (q15_t)0x0D53, (q15_t)0x7F4D, (q15_t)0x0D21, (q15_t)0x7F53, - (q15_t)0x0CEF, (q15_t)0x7F58, (q15_t)0x0CBD, (q15_t)0x7F5D, - (q15_t)0x0C8B, (q15_t)0x7F62, (q15_t)0x0C59, (q15_t)0x7F67, - (q15_t)0x0C27, (q15_t)0x7F6B, (q15_t)0x0BF5, (q15_t)0x7F70, - (q15_t)0x0BC3, (q15_t)0x7F75, (q15_t)0x0B91, (q15_t)0x7F79, - (q15_t)0x0B5F, (q15_t)0x7F7E, (q15_t)0x0B2D, (q15_t)0x7F82, - (q15_t)0x0AFB, (q15_t)0x7F87, (q15_t)0x0AC9, (q15_t)0x7F8B, - (q15_t)0x0A97, (q15_t)0x7F8F, (q15_t)0x0A65, (q15_t)0x7F93, - (q15_t)0x0A33, (q15_t)0x7F97, (q15_t)0x0A00, (q15_t)0x7F9B, - (q15_t)0x09CE, (q15_t)0x7F9F, (q15_t)0x099C, (q15_t)0x7FA3, - (q15_t)0x096A, (q15_t)0x7FA7, (q15_t)0x0938, (q15_t)0x7FAA, - (q15_t)0x0906, (q15_t)0x7FAE, (q15_t)0x08D4, (q15_t)0x7FB1, - (q15_t)0x08A2, (q15_t)0x7FB5, (q15_t)0x086F, (q15_t)0x7FB8, - (q15_t)0x083D, (q15_t)0x7FBC, (q15_t)0x080B, (q15_t)0x7FBF, - (q15_t)0x07D9, (q15_t)0x7FC2, (q15_t)0x07A7, (q15_t)0x7FC5, - (q15_t)0x0775, (q15_t)0x7FC8, (q15_t)0x0742, (q15_t)0x7FCB, - (q15_t)0x0710, (q15_t)0x7FCE, (q15_t)0x06DE, (q15_t)0x7FD0, - (q15_t)0x06AC, (q15_t)0x7FD3, (q15_t)0x067A, (q15_t)0x7FD6, - (q15_t)0x0647, (q15_t)0x7FD8, (q15_t)0x0615, (q15_t)0x7FDA, - (q15_t)0x05E3, (q15_t)0x7FDD, (q15_t)0x05B1, (q15_t)0x7FDF, - (q15_t)0x057F, (q15_t)0x7FE1, (q15_t)0x054C, (q15_t)0x7FE3, - (q15_t)0x051A, (q15_t)0x7FE5, (q15_t)0x04E8, (q15_t)0x7FE7, - (q15_t)0x04B6, (q15_t)0x7FE9, (q15_t)0x0483, (q15_t)0x7FEB, - (q15_t)0x0451, (q15_t)0x7FED, (q15_t)0x041F, (q15_t)0x7FEE, - (q15_t)0x03ED, (q15_t)0x7FF0, (q15_t)0x03BA, (q15_t)0x7FF2, - (q15_t)0x0388, (q15_t)0x7FF3, (q15_t)0x0356, (q15_t)0x7FF4, - (q15_t)0x0324, (q15_t)0x7FF6, (q15_t)0x02F1, (q15_t)0x7FF7, - (q15_t)0x02BF, (q15_t)0x7FF8, (q15_t)0x028D, (q15_t)0x7FF9, - (q15_t)0x025B, (q15_t)0x7FFA, (q15_t)0x0228, (q15_t)0x7FFB, - (q15_t)0x01F6, (q15_t)0x7FFC, (q15_t)0x01C4, (q15_t)0x7FFC, - (q15_t)0x0192, (q15_t)0x7FFD, (q15_t)0x015F, (q15_t)0x7FFE, - (q15_t)0x012D, (q15_t)0x7FFE, (q15_t)0x00FB, (q15_t)0x7FFF, - (q15_t)0x00C9, (q15_t)0x7FFF, (q15_t)0x0096, (q15_t)0x7FFF, - (q15_t)0x0064, (q15_t)0x7FFF, (q15_t)0x0032, (q15_t)0x7FFF, - (q15_t)0x0000, (q15_t)0x7FFF, (q15_t)0xFFCD, (q15_t)0x7FFF, - (q15_t)0xFF9B, (q15_t)0x7FFF, (q15_t)0xFF69, (q15_t)0x7FFF, - (q15_t)0xFF36, (q15_t)0x7FFF, (q15_t)0xFF04, (q15_t)0x7FFF, - (q15_t)0xFED2, (q15_t)0x7FFE, (q15_t)0xFEA0, (q15_t)0x7FFE, - (q15_t)0xFE6D, (q15_t)0x7FFD, (q15_t)0xFE3B, (q15_t)0x7FFC, - (q15_t)0xFE09, (q15_t)0x7FFC, (q15_t)0xFDD7, (q15_t)0x7FFB, - (q15_t)0xFDA4, (q15_t)0x7FFA, (q15_t)0xFD72, (q15_t)0x7FF9, - (q15_t)0xFD40, (q15_t)0x7FF8, (q15_t)0xFD0E, (q15_t)0x7FF7, - (q15_t)0xFCDB, (q15_t)0x7FF6, (q15_t)0xFCA9, (q15_t)0x7FF4, - (q15_t)0xFC77, (q15_t)0x7FF3, (q15_t)0xFC45, (q15_t)0x7FF2, - (q15_t)0xFC12, (q15_t)0x7FF0, (q15_t)0xFBE0, (q15_t)0x7FEE, - (q15_t)0xFBAE, (q15_t)0x7FED, (q15_t)0xFB7C, (q15_t)0x7FEB, - (q15_t)0xFB49, (q15_t)0x7FE9, (q15_t)0xFB17, (q15_t)0x7FE7, - (q15_t)0xFAE5, (q15_t)0x7FE5, (q15_t)0xFAB3, (q15_t)0x7FE3, - (q15_t)0xFA80, (q15_t)0x7FE1, (q15_t)0xFA4E, (q15_t)0x7FDF, - (q15_t)0xFA1C, (q15_t)0x7FDD, (q15_t)0xF9EA, (q15_t)0x7FDA, - (q15_t)0xF9B8, (q15_t)0x7FD8, (q15_t)0xF985, (q15_t)0x7FD6, - (q15_t)0xF953, (q15_t)0x7FD3, (q15_t)0xF921, (q15_t)0x7FD0, - (q15_t)0xF8EF, (q15_t)0x7FCE, (q15_t)0xF8BD, (q15_t)0x7FCB, - (q15_t)0xF88A, (q15_t)0x7FC8, (q15_t)0xF858, (q15_t)0x7FC5, - (q15_t)0xF826, (q15_t)0x7FC2, (q15_t)0xF7F4, (q15_t)0x7FBF, - (q15_t)0xF7C2, (q15_t)0x7FBC, (q15_t)0xF790, (q15_t)0x7FB8, - (q15_t)0xF75D, (q15_t)0x7FB5, (q15_t)0xF72B, (q15_t)0x7FB1, - (q15_t)0xF6F9, (q15_t)0x7FAE, (q15_t)0xF6C7, (q15_t)0x7FAA, - (q15_t)0xF695, (q15_t)0x7FA7, (q15_t)0xF663, (q15_t)0x7FA3, - (q15_t)0xF631, (q15_t)0x7F9F, (q15_t)0xF5FF, (q15_t)0x7F9B, - (q15_t)0xF5CC, (q15_t)0x7F97, (q15_t)0xF59A, (q15_t)0x7F93, - (q15_t)0xF568, (q15_t)0x7F8F, (q15_t)0xF536, (q15_t)0x7F8B, - (q15_t)0xF504, (q15_t)0x7F87, (q15_t)0xF4D2, (q15_t)0x7F82, - (q15_t)0xF4A0, (q15_t)0x7F7E, (q15_t)0xF46E, (q15_t)0x7F79, - (q15_t)0xF43C, (q15_t)0x7F75, (q15_t)0xF40A, (q15_t)0x7F70, - (q15_t)0xF3D8, (q15_t)0x7F6B, (q15_t)0xF3A6, (q15_t)0x7F67, - (q15_t)0xF374, (q15_t)0x7F62, (q15_t)0xF342, (q15_t)0x7F5D, - (q15_t)0xF310, (q15_t)0x7F58, (q15_t)0xF2DE, (q15_t)0x7F53, - (q15_t)0xF2AC, (q15_t)0x7F4D, (q15_t)0xF27A, (q15_t)0x7F48, - (q15_t)0xF248, (q15_t)0x7F43, (q15_t)0xF216, (q15_t)0x7F3D, - (q15_t)0xF1E4, (q15_t)0x7F38, (q15_t)0xF1B2, (q15_t)0x7F32, - (q15_t)0xF180, (q15_t)0x7F2D, (q15_t)0xF14E, (q15_t)0x7F27, - (q15_t)0xF11C, (q15_t)0x7F21, (q15_t)0xF0EA, (q15_t)0x7F1B, - (q15_t)0xF0B8, (q15_t)0x7F15, (q15_t)0xF086, (q15_t)0x7F0F, - (q15_t)0xF054, (q15_t)0x7F09, (q15_t)0xF022, (q15_t)0x7F03, - (q15_t)0xEFF1, (q15_t)0x7EFD, (q15_t)0xEFBF, (q15_t)0x7EF6, - (q15_t)0xEF8D, (q15_t)0x7EF0, (q15_t)0xEF5B, (q15_t)0x7EE9, - (q15_t)0xEF29, (q15_t)0x7EE3, (q15_t)0xEEF7, (q15_t)0x7EDC, - (q15_t)0xEEC6, (q15_t)0x7ED5, (q15_t)0xEE94, (q15_t)0x7ECF, - (q15_t)0xEE62, (q15_t)0x7EC8, (q15_t)0xEE30, (q15_t)0x7EC1, - (q15_t)0xEDFE, (q15_t)0x7EBA, (q15_t)0xEDCD, (q15_t)0x7EB3, - (q15_t)0xED9B, (q15_t)0x7EAB, (q15_t)0xED69, (q15_t)0x7EA4, - (q15_t)0xED37, (q15_t)0x7E9D, (q15_t)0xED06, (q15_t)0x7E95, - (q15_t)0xECD4, (q15_t)0x7E8E, (q15_t)0xECA2, (q15_t)0x7E86, - (q15_t)0xEC71, (q15_t)0x7E7F, (q15_t)0xEC3F, (q15_t)0x7E77, - (q15_t)0xEC0D, (q15_t)0x7E6F, (q15_t)0xEBDC, (q15_t)0x7E67, - (q15_t)0xEBAA, (q15_t)0x7E5F, (q15_t)0xEB78, (q15_t)0x7E57, - (q15_t)0xEB47, (q15_t)0x7E4F, (q15_t)0xEB15, (q15_t)0x7E47, - (q15_t)0xEAE4, (q15_t)0x7E3F, (q15_t)0xEAB2, (q15_t)0x7E37, - (q15_t)0xEA80, (q15_t)0x7E2E, (q15_t)0xEA4F, (q15_t)0x7E26, - (q15_t)0xEA1D, (q15_t)0x7E1D, (q15_t)0xE9EC, (q15_t)0x7E14, - (q15_t)0xE9BA, (q15_t)0x7E0C, (q15_t)0xE989, (q15_t)0x7E03, - (q15_t)0xE957, (q15_t)0x7DFA, (q15_t)0xE926, (q15_t)0x7DF1, - (q15_t)0xE8F5, (q15_t)0x7DE8, (q15_t)0xE8C3, (q15_t)0x7DDF, - (q15_t)0xE892, (q15_t)0x7DD6, (q15_t)0xE860, (q15_t)0x7DCD, - (q15_t)0xE82F, (q15_t)0x7DC3, (q15_t)0xE7FD, (q15_t)0x7DBA, - (q15_t)0xE7CC, (q15_t)0x7DB0, (q15_t)0xE79B, (q15_t)0x7DA7, - (q15_t)0xE769, (q15_t)0x7D9D, (q15_t)0xE738, (q15_t)0x7D94, - (q15_t)0xE707, (q15_t)0x7D8A, (q15_t)0xE6D5, (q15_t)0x7D80, - (q15_t)0xE6A4, (q15_t)0x7D76, (q15_t)0xE673, (q15_t)0x7D6C, - (q15_t)0xE642, (q15_t)0x7D62, (q15_t)0xE610, (q15_t)0x7D58, - (q15_t)0xE5DF, (q15_t)0x7D4E, (q15_t)0xE5AE, (q15_t)0x7D43, - (q15_t)0xE57D, (q15_t)0x7D39, (q15_t)0xE54C, (q15_t)0x7D2F, - (q15_t)0xE51B, (q15_t)0x7D24, (q15_t)0xE4E9, (q15_t)0x7D19, - (q15_t)0xE4B8, (q15_t)0x7D0F, (q15_t)0xE487, (q15_t)0x7D04, - (q15_t)0xE456, (q15_t)0x7CF9, (q15_t)0xE425, (q15_t)0x7CEE, - (q15_t)0xE3F4, (q15_t)0x7CE3, (q15_t)0xE3C3, (q15_t)0x7CD8, - (q15_t)0xE392, (q15_t)0x7CCD, (q15_t)0xE361, (q15_t)0x7CC2, - (q15_t)0xE330, (q15_t)0x7CB7, (q15_t)0xE2FF, (q15_t)0x7CAB, - (q15_t)0xE2CE, (q15_t)0x7CA0, (q15_t)0xE29D, (q15_t)0x7C94, - (q15_t)0xE26C, (q15_t)0x7C89, (q15_t)0xE23B, (q15_t)0x7C7D, - (q15_t)0xE20A, (q15_t)0x7C71, (q15_t)0xE1DA, (q15_t)0x7C66, - (q15_t)0xE1A9, (q15_t)0x7C5A, (q15_t)0xE178, (q15_t)0x7C4E, - (q15_t)0xE147, (q15_t)0x7C42, (q15_t)0xE116, (q15_t)0x7C36, - (q15_t)0xE0E6, (q15_t)0x7C29, (q15_t)0xE0B5, (q15_t)0x7C1D, - (q15_t)0xE084, (q15_t)0x7C11, (q15_t)0xE053, (q15_t)0x7C05, - (q15_t)0xE023, (q15_t)0x7BF8, (q15_t)0xDFF2, (q15_t)0x7BEB, - (q15_t)0xDFC1, (q15_t)0x7BDF, (q15_t)0xDF91, (q15_t)0x7BD2, - (q15_t)0xDF60, (q15_t)0x7BC5, (q15_t)0xDF2F, (q15_t)0x7BB9, - (q15_t)0xDEFF, (q15_t)0x7BAC, (q15_t)0xDECE, (q15_t)0x7B9F, - (q15_t)0xDE9E, (q15_t)0x7B92, (q15_t)0xDE6D, (q15_t)0x7B84, - (q15_t)0xDE3D, (q15_t)0x7B77, (q15_t)0xDE0C, (q15_t)0x7B6A, - (q15_t)0xDDDC, (q15_t)0x7B5D, (q15_t)0xDDAB, (q15_t)0x7B4F, - (q15_t)0xDD7B, (q15_t)0x7B42, (q15_t)0xDD4B, (q15_t)0x7B34, - (q15_t)0xDD1A, (q15_t)0x7B26, (q15_t)0xDCEA, (q15_t)0x7B19, - (q15_t)0xDCBA, (q15_t)0x7B0B, (q15_t)0xDC89, (q15_t)0x7AFD, - (q15_t)0xDC59, (q15_t)0x7AEF, (q15_t)0xDC29, (q15_t)0x7AE1, - (q15_t)0xDBF8, (q15_t)0x7AD3, (q15_t)0xDBC8, (q15_t)0x7AC5, - (q15_t)0xDB98, (q15_t)0x7AB6, (q15_t)0xDB68, (q15_t)0x7AA8, - (q15_t)0xDB38, (q15_t)0x7A9A, (q15_t)0xDB08, (q15_t)0x7A8B, - (q15_t)0xDAD7, (q15_t)0x7A7D, (q15_t)0xDAA7, (q15_t)0x7A6E, - (q15_t)0xDA77, (q15_t)0x7A5F, (q15_t)0xDA47, (q15_t)0x7A50, - (q15_t)0xDA17, (q15_t)0x7A42, (q15_t)0xD9E7, (q15_t)0x7A33, - (q15_t)0xD9B7, (q15_t)0x7A24, (q15_t)0xD987, (q15_t)0x7A15, - (q15_t)0xD957, (q15_t)0x7A05, (q15_t)0xD927, (q15_t)0x79F6, - (q15_t)0xD8F8, (q15_t)0x79E7, (q15_t)0xD8C8, (q15_t)0x79D8, - (q15_t)0xD898, (q15_t)0x79C8, (q15_t)0xD868, (q15_t)0x79B9, - (q15_t)0xD838, (q15_t)0x79A9, (q15_t)0xD809, (q15_t)0x7999, - (q15_t)0xD7D9, (q15_t)0x798A, (q15_t)0xD7A9, (q15_t)0x797A, - (q15_t)0xD779, (q15_t)0x796A, (q15_t)0xD74A, (q15_t)0x795A, - (q15_t)0xD71A, (q15_t)0x794A, (q15_t)0xD6EA, (q15_t)0x793A, - (q15_t)0xD6BB, (q15_t)0x792A, (q15_t)0xD68B, (q15_t)0x7919, - (q15_t)0xD65C, (q15_t)0x7909, (q15_t)0xD62C, (q15_t)0x78F9, - (q15_t)0xD5FD, (q15_t)0x78E8, (q15_t)0xD5CD, (q15_t)0x78D8, - (q15_t)0xD59E, (q15_t)0x78C7, (q15_t)0xD56E, (q15_t)0x78B6, - (q15_t)0xD53F, (q15_t)0x78A6, (q15_t)0xD510, (q15_t)0x7895, - (q15_t)0xD4E0, (q15_t)0x7884, (q15_t)0xD4B1, (q15_t)0x7873, - (q15_t)0xD482, (q15_t)0x7862, (q15_t)0xD452, (q15_t)0x7851, - (q15_t)0xD423, (q15_t)0x7840, (q15_t)0xD3F4, (q15_t)0x782E, - (q15_t)0xD3C5, (q15_t)0x781D, (q15_t)0xD396, (q15_t)0x780C, - (q15_t)0xD367, (q15_t)0x77FA, (q15_t)0xD337, (q15_t)0x77E9, - (q15_t)0xD308, (q15_t)0x77D7, (q15_t)0xD2D9, (q15_t)0x77C5, - (q15_t)0xD2AA, (q15_t)0x77B4, (q15_t)0xD27B, (q15_t)0x77A2, - (q15_t)0xD24C, (q15_t)0x7790, (q15_t)0xD21D, (q15_t)0x777E, - (q15_t)0xD1EE, (q15_t)0x776C, (q15_t)0xD1C0, (q15_t)0x775A, - (q15_t)0xD191, (q15_t)0x7747, (q15_t)0xD162, (q15_t)0x7735, - (q15_t)0xD133, (q15_t)0x7723, (q15_t)0xD104, (q15_t)0x7710, - (q15_t)0xD0D6, (q15_t)0x76FE, (q15_t)0xD0A7, (q15_t)0x76EB, - (q15_t)0xD078, (q15_t)0x76D9, (q15_t)0xD04A, (q15_t)0x76C6, - (q15_t)0xD01B, (q15_t)0x76B3, (q15_t)0xCFEC, (q15_t)0x76A0, - (q15_t)0xCFBE, (q15_t)0x768E, (q15_t)0xCF8F, (q15_t)0x767B, - (q15_t)0xCF61, (q15_t)0x7668, (q15_t)0xCF32, (q15_t)0x7654, - (q15_t)0xCF04, (q15_t)0x7641, (q15_t)0xCED5, (q15_t)0x762E, - (q15_t)0xCEA7, (q15_t)0x761B, (q15_t)0xCE79, (q15_t)0x7607, - (q15_t)0xCE4A, (q15_t)0x75F4, (q15_t)0xCE1C, (q15_t)0x75E0, - (q15_t)0xCDEE, (q15_t)0x75CC, (q15_t)0xCDBF, (q15_t)0x75B9, - (q15_t)0xCD91, (q15_t)0x75A5, (q15_t)0xCD63, (q15_t)0x7591, - (q15_t)0xCD35, (q15_t)0x757D, (q15_t)0xCD07, (q15_t)0x7569, - (q15_t)0xCCD9, (q15_t)0x7555, (q15_t)0xCCAB, (q15_t)0x7541, - (q15_t)0xCC7D, (q15_t)0x752D, (q15_t)0xCC4F, (q15_t)0x7519, - (q15_t)0xCC21, (q15_t)0x7504, (q15_t)0xCBF3, (q15_t)0x74F0, - (q15_t)0xCBC5, (q15_t)0x74DB, (q15_t)0xCB97, (q15_t)0x74C7, - (q15_t)0xCB69, (q15_t)0x74B2, (q15_t)0xCB3B, (q15_t)0x749E, - (q15_t)0xCB0D, (q15_t)0x7489, (q15_t)0xCAE0, (q15_t)0x7474, - (q15_t)0xCAB2, (q15_t)0x745F, (q15_t)0xCA84, (q15_t)0x744A, - (q15_t)0xCA57, (q15_t)0x7435, (q15_t)0xCA29, (q15_t)0x7420, - (q15_t)0xC9FB, (q15_t)0x740B, (q15_t)0xC9CE, (q15_t)0x73F6, - (q15_t)0xC9A0, (q15_t)0x73E0, (q15_t)0xC973, (q15_t)0x73CB, - (q15_t)0xC945, (q15_t)0x73B5, (q15_t)0xC918, (q15_t)0x73A0, - (q15_t)0xC8EB, (q15_t)0x738A, (q15_t)0xC8BD, (q15_t)0x7375, - (q15_t)0xC890, (q15_t)0x735F, (q15_t)0xC863, (q15_t)0x7349, - (q15_t)0xC835, (q15_t)0x7333, (q15_t)0xC808, (q15_t)0x731D, - (q15_t)0xC7DB, (q15_t)0x7307, (q15_t)0xC7AE, (q15_t)0x72F1, - (q15_t)0xC781, (q15_t)0x72DB, (q15_t)0xC754, (q15_t)0x72C5, - (q15_t)0xC727, (q15_t)0x72AF, (q15_t)0xC6F9, (q15_t)0x7298, - (q15_t)0xC6CD, (q15_t)0x7282, (q15_t)0xC6A0, (q15_t)0x726B, - (q15_t)0xC673, (q15_t)0x7255, (q15_t)0xC646, (q15_t)0x723E, - (q15_t)0xC619, (q15_t)0x7227, (q15_t)0xC5EC, (q15_t)0x7211, - (q15_t)0xC5BF, (q15_t)0x71FA, (q15_t)0xC593, (q15_t)0x71E3, - (q15_t)0xC566, (q15_t)0x71CC, (q15_t)0xC539, (q15_t)0x71B5, - (q15_t)0xC50D, (q15_t)0x719E, (q15_t)0xC4E0, (q15_t)0x7186, - (q15_t)0xC4B3, (q15_t)0x716F, (q15_t)0xC487, (q15_t)0x7158, - (q15_t)0xC45A, (q15_t)0x7141, (q15_t)0xC42E, (q15_t)0x7129, - (q15_t)0xC402, (q15_t)0x7112, (q15_t)0xC3D5, (q15_t)0x70FA, - (q15_t)0xC3A9, (q15_t)0x70E2, (q15_t)0xC37C, (q15_t)0x70CB, - (q15_t)0xC350, (q15_t)0x70B3, (q15_t)0xC324, (q15_t)0x709B, - (q15_t)0xC2F8, (q15_t)0x7083, (q15_t)0xC2CC, (q15_t)0x706B, - (q15_t)0xC29F, (q15_t)0x7053, (q15_t)0xC273, (q15_t)0x703B, - (q15_t)0xC247, (q15_t)0x7023, (q15_t)0xC21B, (q15_t)0x700A, - (q15_t)0xC1EF, (q15_t)0x6FF2, (q15_t)0xC1C3, (q15_t)0x6FDA, - (q15_t)0xC197, (q15_t)0x6FC1, (q15_t)0xC16C, (q15_t)0x6FA9, - (q15_t)0xC140, (q15_t)0x6F90, (q15_t)0xC114, (q15_t)0x6F77, - (q15_t)0xC0E8, (q15_t)0x6F5F, (q15_t)0xC0BC, (q15_t)0x6F46, - (q15_t)0xC091, (q15_t)0x6F2D, (q15_t)0xC065, (q15_t)0x6F14, - (q15_t)0xC03A, (q15_t)0x6EFB, (q15_t)0xC00E, (q15_t)0x6EE2, - (q15_t)0xBFE2, (q15_t)0x6EC9, (q15_t)0xBFB7, (q15_t)0x6EAF, - (q15_t)0xBF8C, (q15_t)0x6E96, (q15_t)0xBF60, (q15_t)0x6E7D, - (q15_t)0xBF35, (q15_t)0x6E63, (q15_t)0xBF09, (q15_t)0x6E4A, - (q15_t)0xBEDE, (q15_t)0x6E30, (q15_t)0xBEB3, (q15_t)0x6E17, - (q15_t)0xBE88, (q15_t)0x6DFD, (q15_t)0xBE5D, (q15_t)0x6DE3, - (q15_t)0xBE31, (q15_t)0x6DCA, (q15_t)0xBE06, (q15_t)0x6DB0, - (q15_t)0xBDDB, (q15_t)0x6D96, (q15_t)0xBDB0, (q15_t)0x6D7C, - (q15_t)0xBD85, (q15_t)0x6D62, (q15_t)0xBD5A, (q15_t)0x6D48, - (q15_t)0xBD2F, (q15_t)0x6D2D, (q15_t)0xBD05, (q15_t)0x6D13, - (q15_t)0xBCDA, (q15_t)0x6CF9, (q15_t)0xBCAF, (q15_t)0x6CDE, - (q15_t)0xBC84, (q15_t)0x6CC4, (q15_t)0xBC5A, (q15_t)0x6CA9, - (q15_t)0xBC2F, (q15_t)0x6C8F, (q15_t)0xBC04, (q15_t)0x6C74, - (q15_t)0xBBDA, (q15_t)0x6C59, (q15_t)0xBBAF, (q15_t)0x6C3F, - (q15_t)0xBB85, (q15_t)0x6C24, (q15_t)0xBB5A, (q15_t)0x6C09, - (q15_t)0xBB30, (q15_t)0x6BEE, (q15_t)0xBB05, (q15_t)0x6BD3, - (q15_t)0xBADB, (q15_t)0x6BB8, (q15_t)0xBAB1, (q15_t)0x6B9C, - (q15_t)0xBA87, (q15_t)0x6B81, (q15_t)0xBA5C, (q15_t)0x6B66, - (q15_t)0xBA32, (q15_t)0x6B4A, (q15_t)0xBA08, (q15_t)0x6B2F, - (q15_t)0xB9DE, (q15_t)0x6B13, (q15_t)0xB9B4, (q15_t)0x6AF8, - (q15_t)0xB98A, (q15_t)0x6ADC, (q15_t)0xB960, (q15_t)0x6AC1, - (q15_t)0xB936, (q15_t)0x6AA5, (q15_t)0xB90C, (q15_t)0x6A89, - (q15_t)0xB8E3, (q15_t)0x6A6D, (q15_t)0xB8B9, (q15_t)0x6A51, - (q15_t)0xB88F, (q15_t)0x6A35, (q15_t)0xB865, (q15_t)0x6A19, - (q15_t)0xB83C, (q15_t)0x69FD, (q15_t)0xB812, (q15_t)0x69E1, - (q15_t)0xB7E9, (q15_t)0x69C4, (q15_t)0xB7BF, (q15_t)0x69A8, - (q15_t)0xB796, (q15_t)0x698C, (q15_t)0xB76C, (q15_t)0x696F, - (q15_t)0xB743, (q15_t)0x6953, (q15_t)0xB719, (q15_t)0x6936, - (q15_t)0xB6F0, (q15_t)0x6919, (q15_t)0xB6C7, (q15_t)0x68FD, - (q15_t)0xB69E, (q15_t)0x68E0, (q15_t)0xB675, (q15_t)0x68C3, - (q15_t)0xB64B, (q15_t)0x68A6, (q15_t)0xB622, (q15_t)0x6889, - (q15_t)0xB5F9, (q15_t)0x686C, (q15_t)0xB5D0, (q15_t)0x684F, - (q15_t)0xB5A7, (q15_t)0x6832, (q15_t)0xB57E, (q15_t)0x6815, - (q15_t)0xB556, (q15_t)0x67F7, (q15_t)0xB52D, (q15_t)0x67DA, - (q15_t)0xB504, (q15_t)0x67BD, (q15_t)0xB4DB, (q15_t)0x679F, - (q15_t)0xB4B3, (q15_t)0x6782, (q15_t)0xB48A, (q15_t)0x6764, - (q15_t)0xB461, (q15_t)0x6746, (q15_t)0xB439, (q15_t)0x6729, - (q15_t)0xB410, (q15_t)0x670B, (q15_t)0xB3E8, (q15_t)0x66ED, - (q15_t)0xB3C0, (q15_t)0x66CF, (q15_t)0xB397, (q15_t)0x66B1, - (q15_t)0xB36F, (q15_t)0x6693, (q15_t)0xB347, (q15_t)0x6675, - (q15_t)0xB31E, (q15_t)0x6657, (q15_t)0xB2F6, (q15_t)0x6639, - (q15_t)0xB2CE, (q15_t)0x661A, (q15_t)0xB2A6, (q15_t)0x65FC, - (q15_t)0xB27E, (q15_t)0x65DD, (q15_t)0xB256, (q15_t)0x65BF, - (q15_t)0xB22E, (q15_t)0x65A0, (q15_t)0xB206, (q15_t)0x6582, - (q15_t)0xB1DE, (q15_t)0x6563, (q15_t)0xB1B7, (q15_t)0x6545, - (q15_t)0xB18F, (q15_t)0x6526, (q15_t)0xB167, (q15_t)0x6507, - (q15_t)0xB140, (q15_t)0x64E8, (q15_t)0xB118, (q15_t)0x64C9, - (q15_t)0xB0F0, (q15_t)0x64AA, (q15_t)0xB0C9, (q15_t)0x648B, - (q15_t)0xB0A1, (q15_t)0x646C, (q15_t)0xB07A, (q15_t)0x644D, - (q15_t)0xB053, (q15_t)0x642D, (q15_t)0xB02B, (q15_t)0x640E, - (q15_t)0xB004, (q15_t)0x63EF, (q15_t)0xAFDD, (q15_t)0x63CF, - (q15_t)0xAFB6, (q15_t)0x63B0, (q15_t)0xAF8F, (q15_t)0x6390, - (q15_t)0xAF68, (q15_t)0x6371, (q15_t)0xAF40, (q15_t)0x6351, - (q15_t)0xAF1A, (q15_t)0x6331, (q15_t)0xAEF3, (q15_t)0x6311, - (q15_t)0xAECC, (q15_t)0x62F2, (q15_t)0xAEA5, (q15_t)0x62D2, - (q15_t)0xAE7E, (q15_t)0x62B2, (q15_t)0xAE57, (q15_t)0x6292, - (q15_t)0xAE31, (q15_t)0x6271, (q15_t)0xAE0A, (q15_t)0x6251, - (q15_t)0xADE3, (q15_t)0x6231, (q15_t)0xADBD, (q15_t)0x6211, - (q15_t)0xAD96, (q15_t)0x61F1, (q15_t)0xAD70, (q15_t)0x61D0, - (q15_t)0xAD4A, (q15_t)0x61B0, (q15_t)0xAD23, (q15_t)0x618F, - (q15_t)0xACFD, (q15_t)0x616F, (q15_t)0xACD7, (q15_t)0x614E, - (q15_t)0xACB1, (q15_t)0x612D, (q15_t)0xAC8A, (q15_t)0x610D, - (q15_t)0xAC64, (q15_t)0x60EC, (q15_t)0xAC3E, (q15_t)0x60CB, - (q15_t)0xAC18, (q15_t)0x60AA, (q15_t)0xABF2, (q15_t)0x6089, - (q15_t)0xABCC, (q15_t)0x6068, (q15_t)0xABA7, (q15_t)0x6047, - (q15_t)0xAB81, (q15_t)0x6026, (q15_t)0xAB5B, (q15_t)0x6004, - (q15_t)0xAB35, (q15_t)0x5FE3, (q15_t)0xAB10, (q15_t)0x5FC2, - (q15_t)0xAAEA, (q15_t)0x5FA0, (q15_t)0xAAC5, (q15_t)0x5F7F, - (q15_t)0xAA9F, (q15_t)0x5F5E, (q15_t)0xAA7A, (q15_t)0x5F3C, - (q15_t)0xAA54, (q15_t)0x5F1A, (q15_t)0xAA2F, (q15_t)0x5EF9, - (q15_t)0xAA0A, (q15_t)0x5ED7, (q15_t)0xA9E5, (q15_t)0x5EB5, - (q15_t)0xA9BF, (q15_t)0x5E93, (q15_t)0xA99A, (q15_t)0x5E71, - (q15_t)0xA975, (q15_t)0x5E50, (q15_t)0xA950, (q15_t)0x5E2D, - (q15_t)0xA92B, (q15_t)0x5E0B, (q15_t)0xA906, (q15_t)0x5DE9, - (q15_t)0xA8E2, (q15_t)0x5DC7, (q15_t)0xA8BD, (q15_t)0x5DA5, - (q15_t)0xA898, (q15_t)0x5D83, (q15_t)0xA873, (q15_t)0x5D60, - (q15_t)0xA84F, (q15_t)0x5D3E, (q15_t)0xA82A, (q15_t)0x5D1B, - (q15_t)0xA806, (q15_t)0x5CF9, (q15_t)0xA7E1, (q15_t)0x5CD6, - (q15_t)0xA7BD, (q15_t)0x5CB4, (q15_t)0xA798, (q15_t)0x5C91, - (q15_t)0xA774, (q15_t)0x5C6E, (q15_t)0xA750, (q15_t)0x5C4B, - (q15_t)0xA72B, (q15_t)0x5C29, (q15_t)0xA707, (q15_t)0x5C06, - (q15_t)0xA6E3, (q15_t)0x5BE3, (q15_t)0xA6BF, (q15_t)0x5BC0, - (q15_t)0xA69B, (q15_t)0x5B9D, (q15_t)0xA677, (q15_t)0x5B79, - (q15_t)0xA653, (q15_t)0x5B56, (q15_t)0xA62F, (q15_t)0x5B33, - (q15_t)0xA60C, (q15_t)0x5B10, (q15_t)0xA5E8, (q15_t)0x5AEC, - (q15_t)0xA5C4, (q15_t)0x5AC9, (q15_t)0xA5A1, (q15_t)0x5AA5, - (q15_t)0xA57D, (q15_t)0x5A82, (q15_t)0xA55A, (q15_t)0x5A5E, - (q15_t)0xA536, (q15_t)0x5A3B, (q15_t)0xA513, (q15_t)0x5A17, - (q15_t)0xA4EF, (q15_t)0x59F3, (q15_t)0xA4CC, (q15_t)0x59D0, - (q15_t)0xA4A9, (q15_t)0x59AC, (q15_t)0xA486, (q15_t)0x5988, - (q15_t)0xA462, (q15_t)0x5964, (q15_t)0xA43F, (q15_t)0x5940, - (q15_t)0xA41C, (q15_t)0x591C, (q15_t)0xA3F9, (q15_t)0x58F8, - (q15_t)0xA3D6, (q15_t)0x58D4, (q15_t)0xA3B4, (q15_t)0x58AF, - (q15_t)0xA391, (q15_t)0x588B, (q15_t)0xA36E, (q15_t)0x5867, - (q15_t)0xA34B, (q15_t)0x5842, (q15_t)0xA329, (q15_t)0x581E, - (q15_t)0xA306, (q15_t)0x57F9, (q15_t)0xA2E4, (q15_t)0x57D5, - (q15_t)0xA2C1, (q15_t)0x57B0, (q15_t)0xA29F, (q15_t)0x578C, - (q15_t)0xA27C, (q15_t)0x5767, (q15_t)0xA25A, (q15_t)0x5742, - (q15_t)0xA238, (q15_t)0x571D, (q15_t)0xA216, (q15_t)0x56F9, - (q15_t)0xA1F4, (q15_t)0x56D4, (q15_t)0xA1D2, (q15_t)0x56AF, - (q15_t)0xA1AF, (q15_t)0x568A, (q15_t)0xA18E, (q15_t)0x5665, - (q15_t)0xA16C, (q15_t)0x5640, (q15_t)0xA14A, (q15_t)0x561A, - (q15_t)0xA128, (q15_t)0x55F5, (q15_t)0xA106, (q15_t)0x55D0, - (q15_t)0xA0E5, (q15_t)0x55AB, (q15_t)0xA0C3, (q15_t)0x5585, - (q15_t)0xA0A1, (q15_t)0x5560, (q15_t)0xA080, (q15_t)0x553A, - (q15_t)0xA05F, (q15_t)0x5515, (q15_t)0xA03D, (q15_t)0x54EF, - (q15_t)0xA01C, (q15_t)0x54CA, (q15_t)0x9FFB, (q15_t)0x54A4, - (q15_t)0x9FD9, (q15_t)0x547E, (q15_t)0x9FB8, (q15_t)0x5458, - (q15_t)0x9F97, (q15_t)0x5433, (q15_t)0x9F76, (q15_t)0x540D, - (q15_t)0x9F55, (q15_t)0x53E7, (q15_t)0x9F34, (q15_t)0x53C1, - (q15_t)0x9F13, (q15_t)0x539B, (q15_t)0x9EF2, (q15_t)0x5375, - (q15_t)0x9ED2, (q15_t)0x534E, (q15_t)0x9EB1, (q15_t)0x5328, - (q15_t)0x9E90, (q15_t)0x5302, (q15_t)0x9E70, (q15_t)0x52DC, - (q15_t)0x9E4F, (q15_t)0x52B5, (q15_t)0x9E2F, (q15_t)0x528F, - (q15_t)0x9E0E, (q15_t)0x5269, (q15_t)0x9DEE, (q15_t)0x5242, - (q15_t)0x9DCE, (q15_t)0x521C, (q15_t)0x9DAE, (q15_t)0x51F5, - (q15_t)0x9D8E, (q15_t)0x51CE, (q15_t)0x9D6D, (q15_t)0x51A8, - (q15_t)0x9D4D, (q15_t)0x5181, (q15_t)0x9D2D, (q15_t)0x515A, - (q15_t)0x9D0D, (q15_t)0x5133, (q15_t)0x9CEE, (q15_t)0x510C, - (q15_t)0x9CCE, (q15_t)0x50E5, (q15_t)0x9CAE, (q15_t)0x50BF, - (q15_t)0x9C8E, (q15_t)0x5097, (q15_t)0x9C6F, (q15_t)0x5070, - (q15_t)0x9C4F, (q15_t)0x5049, (q15_t)0x9C30, (q15_t)0x5022, - (q15_t)0x9C10, (q15_t)0x4FFB, (q15_t)0x9BF1, (q15_t)0x4FD4, - (q15_t)0x9BD2, (q15_t)0x4FAC, (q15_t)0x9BB2, (q15_t)0x4F85, - (q15_t)0x9B93, (q15_t)0x4F5E, (q15_t)0x9B74, (q15_t)0x4F36, - (q15_t)0x9B55, (q15_t)0x4F0F, (q15_t)0x9B36, (q15_t)0x4EE7, - (q15_t)0x9B17, (q15_t)0x4EBF, (q15_t)0x9AF8, (q15_t)0x4E98, - (q15_t)0x9AD9, (q15_t)0x4E70, (q15_t)0x9ABA, (q15_t)0x4E48, - (q15_t)0x9A9C, (q15_t)0x4E21, (q15_t)0x9A7D, (q15_t)0x4DF9, - (q15_t)0x9A5F, (q15_t)0x4DD1, (q15_t)0x9A40, (q15_t)0x4DA9, - (q15_t)0x9A22, (q15_t)0x4D81, (q15_t)0x9A03, (q15_t)0x4D59, - (q15_t)0x99E5, (q15_t)0x4D31, (q15_t)0x99C6, (q15_t)0x4D09, - (q15_t)0x99A8, (q15_t)0x4CE1, (q15_t)0x998A, (q15_t)0x4CB8, - (q15_t)0x996C, (q15_t)0x4C90, (q15_t)0x994E, (q15_t)0x4C68, - (q15_t)0x9930, (q15_t)0x4C3F, (q15_t)0x9912, (q15_t)0x4C17, - (q15_t)0x98F4, (q15_t)0x4BEF, (q15_t)0x98D6, (q15_t)0x4BC6, - (q15_t)0x98B9, (q15_t)0x4B9E, (q15_t)0x989B, (q15_t)0x4B75, - (q15_t)0x987D, (q15_t)0x4B4C, (q15_t)0x9860, (q15_t)0x4B24, - (q15_t)0x9842, (q15_t)0x4AFB, (q15_t)0x9825, (q15_t)0x4AD2, - (q15_t)0x9808, (q15_t)0x4AA9, (q15_t)0x97EA, (q15_t)0x4A81, - (q15_t)0x97CD, (q15_t)0x4A58, (q15_t)0x97B0, (q15_t)0x4A2F, - (q15_t)0x9793, (q15_t)0x4A06, (q15_t)0x9776, (q15_t)0x49DD, - (q15_t)0x9759, (q15_t)0x49B4, (q15_t)0x973C, (q15_t)0x498A, - (q15_t)0x971F, (q15_t)0x4961, (q15_t)0x9702, (q15_t)0x4938, - (q15_t)0x96E6, (q15_t)0x490F, (q15_t)0x96C9, (q15_t)0x48E6, - (q15_t)0x96AC, (q15_t)0x48BC, (q15_t)0x9690, (q15_t)0x4893, - (q15_t)0x9673, (q15_t)0x4869, (q15_t)0x9657, (q15_t)0x4840, - (q15_t)0x963B, (q15_t)0x4816, (q15_t)0x961E, (q15_t)0x47ED, - (q15_t)0x9602, (q15_t)0x47C3, (q15_t)0x95E6, (q15_t)0x479A, - (q15_t)0x95CA, (q15_t)0x4770, (q15_t)0x95AE, (q15_t)0x4746, - (q15_t)0x9592, (q15_t)0x471C, (q15_t)0x9576, (q15_t)0x46F3, - (q15_t)0x955A, (q15_t)0x46C9, (q15_t)0x953E, (q15_t)0x469F, - (q15_t)0x9523, (q15_t)0x4675, (q15_t)0x9507, (q15_t)0x464B, - (q15_t)0x94EC, (q15_t)0x4621, (q15_t)0x94D0, (q15_t)0x45F7, - (q15_t)0x94B5, (q15_t)0x45CD, (q15_t)0x9499, (q15_t)0x45A3, - (q15_t)0x947E, (q15_t)0x4578, (q15_t)0x9463, (q15_t)0x454E, - (q15_t)0x9447, (q15_t)0x4524, (q15_t)0x942C, (q15_t)0x44FA, - (q15_t)0x9411, (q15_t)0x44CF, (q15_t)0x93F6, (q15_t)0x44A5, - (q15_t)0x93DB, (q15_t)0x447A, (q15_t)0x93C0, (q15_t)0x4450, - (q15_t)0x93A6, (q15_t)0x4425, (q15_t)0x938B, (q15_t)0x43FB, - (q15_t)0x9370, (q15_t)0x43D0, (q15_t)0x9356, (q15_t)0x43A5, - (q15_t)0x933B, (q15_t)0x437B, (q15_t)0x9321, (q15_t)0x4350, - (q15_t)0x9306, (q15_t)0x4325, (q15_t)0x92EC, (q15_t)0x42FA, - (q15_t)0x92D2, (q15_t)0x42D0, (q15_t)0x92B7, (q15_t)0x42A5, - (q15_t)0x929D, (q15_t)0x427A, (q15_t)0x9283, (q15_t)0x424F, - (q15_t)0x9269, (q15_t)0x4224, (q15_t)0x924F, (q15_t)0x41F9, - (q15_t)0x9235, (q15_t)0x41CE, (q15_t)0x921C, (q15_t)0x41A2, - (q15_t)0x9202, (q15_t)0x4177, (q15_t)0x91E8, (q15_t)0x414C, - (q15_t)0x91CF, (q15_t)0x4121, (q15_t)0x91B5, (q15_t)0x40F6, - (q15_t)0x919C, (q15_t)0x40CA, (q15_t)0x9182, (q15_t)0x409F, - (q15_t)0x9169, (q15_t)0x4073, (q15_t)0x9150, (q15_t)0x4048, - (q15_t)0x9136, (q15_t)0x401D, (q15_t)0x911D, (q15_t)0x3FF1, - (q15_t)0x9104, (q15_t)0x3FC5, (q15_t)0x90EB, (q15_t)0x3F9A, - (q15_t)0x90D2, (q15_t)0x3F6E, (q15_t)0x90B9, (q15_t)0x3F43, - (q15_t)0x90A0, (q15_t)0x3F17, (q15_t)0x9088, (q15_t)0x3EEB, - (q15_t)0x906F, (q15_t)0x3EBF, (q15_t)0x9056, (q15_t)0x3E93, - (q15_t)0x903E, (q15_t)0x3E68, (q15_t)0x9025, (q15_t)0x3E3C, - (q15_t)0x900D, (q15_t)0x3E10, (q15_t)0x8FF5, (q15_t)0x3DE4, - (q15_t)0x8FDC, (q15_t)0x3DB8, (q15_t)0x8FC4, (q15_t)0x3D8C, - (q15_t)0x8FAC, (q15_t)0x3D60, (q15_t)0x8F94, (q15_t)0x3D33, - (q15_t)0x8F7C, (q15_t)0x3D07, (q15_t)0x8F64, (q15_t)0x3CDB, - (q15_t)0x8F4C, (q15_t)0x3CAF, (q15_t)0x8F34, (q15_t)0x3C83, - (q15_t)0x8F1D, (q15_t)0x3C56, (q15_t)0x8F05, (q15_t)0x3C2A, - (q15_t)0x8EED, (q15_t)0x3BFD, (q15_t)0x8ED6, (q15_t)0x3BD1, - (q15_t)0x8EBE, (q15_t)0x3BA5, (q15_t)0x8EA7, (q15_t)0x3B78, - (q15_t)0x8E90, (q15_t)0x3B4C, (q15_t)0x8E79, (q15_t)0x3B1F, - (q15_t)0x8E61, (q15_t)0x3AF2, (q15_t)0x8E4A, (q15_t)0x3AC6, - (q15_t)0x8E33, (q15_t)0x3A99, (q15_t)0x8E1C, (q15_t)0x3A6C, - (q15_t)0x8E05, (q15_t)0x3A40, (q15_t)0x8DEE, (q15_t)0x3A13, - (q15_t)0x8DD8, (q15_t)0x39E6, (q15_t)0x8DC1, (q15_t)0x39B9, - (q15_t)0x8DAA, (q15_t)0x398C, (q15_t)0x8D94, (q15_t)0x395F, - (q15_t)0x8D7D, (q15_t)0x3932, (q15_t)0x8D67, (q15_t)0x3906, - (q15_t)0x8D50, (q15_t)0x38D8, (q15_t)0x8D3A, (q15_t)0x38AB, - (q15_t)0x8D24, (q15_t)0x387E, (q15_t)0x8D0E, (q15_t)0x3851, - (q15_t)0x8CF8, (q15_t)0x3824, (q15_t)0x8CE2, (q15_t)0x37F7, - (q15_t)0x8CCC, (q15_t)0x37CA, (q15_t)0x8CB6, (q15_t)0x379C, - (q15_t)0x8CA0, (q15_t)0x376F, (q15_t)0x8C8A, (q15_t)0x3742, - (q15_t)0x8C75, (q15_t)0x3714, (q15_t)0x8C5F, (q15_t)0x36E7, - (q15_t)0x8C4A, (q15_t)0x36BA, (q15_t)0x8C34, (q15_t)0x368C, - (q15_t)0x8C1F, (q15_t)0x365F, (q15_t)0x8C09, (q15_t)0x3631, - (q15_t)0x8BF4, (q15_t)0x3604, (q15_t)0x8BDF, (q15_t)0x35D6, - (q15_t)0x8BCA, (q15_t)0x35A8, (q15_t)0x8BB5, (q15_t)0x357B, - (q15_t)0x8BA0, (q15_t)0x354D, (q15_t)0x8B8B, (q15_t)0x351F, - (q15_t)0x8B76, (q15_t)0x34F2, (q15_t)0x8B61, (q15_t)0x34C4, - (q15_t)0x8B4D, (q15_t)0x3496, (q15_t)0x8B38, (q15_t)0x3468, - (q15_t)0x8B24, (q15_t)0x343A, (q15_t)0x8B0F, (q15_t)0x340C, - (q15_t)0x8AFB, (q15_t)0x33DE, (q15_t)0x8AE6, (q15_t)0x33B0, - (q15_t)0x8AD2, (q15_t)0x3382, (q15_t)0x8ABE, (q15_t)0x3354, - (q15_t)0x8AAA, (q15_t)0x3326, (q15_t)0x8A96, (q15_t)0x32F8, - (q15_t)0x8A82, (q15_t)0x32CA, (q15_t)0x8A6E, (q15_t)0x329C, - (q15_t)0x8A5A, (q15_t)0x326E, (q15_t)0x8A46, (q15_t)0x3240, - (q15_t)0x8A33, (q15_t)0x3211, (q15_t)0x8A1F, (q15_t)0x31E3, - (q15_t)0x8A0B, (q15_t)0x31B5, (q15_t)0x89F8, (q15_t)0x3186, - (q15_t)0x89E4, (q15_t)0x3158, (q15_t)0x89D1, (q15_t)0x312A, - (q15_t)0x89BE, (q15_t)0x30FB, (q15_t)0x89AB, (q15_t)0x30CD, - (q15_t)0x8997, (q15_t)0x309E, (q15_t)0x8984, (q15_t)0x3070, - (q15_t)0x8971, (q15_t)0x3041, (q15_t)0x895F, (q15_t)0x3013, - (q15_t)0x894C, (q15_t)0x2FE4, (q15_t)0x8939, (q15_t)0x2FB5, - (q15_t)0x8926, (q15_t)0x2F87, (q15_t)0x8914, (q15_t)0x2F58, - (q15_t)0x8901, (q15_t)0x2F29, (q15_t)0x88EF, (q15_t)0x2EFB, - (q15_t)0x88DC, (q15_t)0x2ECC, (q15_t)0x88CA, (q15_t)0x2E9D, - (q15_t)0x88B8, (q15_t)0x2E6E, (q15_t)0x88A5, (q15_t)0x2E3F, - (q15_t)0x8893, (q15_t)0x2E11, (q15_t)0x8881, (q15_t)0x2DE2, - (q15_t)0x886F, (q15_t)0x2DB3, (q15_t)0x885D, (q15_t)0x2D84, - (q15_t)0x884B, (q15_t)0x2D55, (q15_t)0x883A, (q15_t)0x2D26, - (q15_t)0x8828, (q15_t)0x2CF7, (q15_t)0x8816, (q15_t)0x2CC8, - (q15_t)0x8805, (q15_t)0x2C98, (q15_t)0x87F3, (q15_t)0x2C69, - (q15_t)0x87E2, (q15_t)0x2C3A, (q15_t)0x87D1, (q15_t)0x2C0B, - (q15_t)0x87BF, (q15_t)0x2BDC, (q15_t)0x87AE, (q15_t)0x2BAD, - (q15_t)0x879D, (q15_t)0x2B7D, (q15_t)0x878C, (q15_t)0x2B4E, - (q15_t)0x877B, (q15_t)0x2B1F, (q15_t)0x876A, (q15_t)0x2AEF, - (q15_t)0x8759, (q15_t)0x2AC0, (q15_t)0x8749, (q15_t)0x2A91, - (q15_t)0x8738, (q15_t)0x2A61, (q15_t)0x8727, (q15_t)0x2A32, - (q15_t)0x8717, (q15_t)0x2A02, (q15_t)0x8706, (q15_t)0x29D3, - (q15_t)0x86F6, (q15_t)0x29A3, (q15_t)0x86E6, (q15_t)0x2974, - (q15_t)0x86D5, (q15_t)0x2944, (q15_t)0x86C5, (q15_t)0x2915, - (q15_t)0x86B5, (q15_t)0x28E5, (q15_t)0x86A5, (q15_t)0x28B5, - (q15_t)0x8695, (q15_t)0x2886, (q15_t)0x8685, (q15_t)0x2856, - (q15_t)0x8675, (q15_t)0x2826, (q15_t)0x8666, (q15_t)0x27F6, - (q15_t)0x8656, (q15_t)0x27C7, (q15_t)0x8646, (q15_t)0x2797, - (q15_t)0x8637, (q15_t)0x2767, (q15_t)0x8627, (q15_t)0x2737, - (q15_t)0x8618, (q15_t)0x2707, (q15_t)0x8609, (q15_t)0x26D8, - (q15_t)0x85FA, (q15_t)0x26A8, (q15_t)0x85EA, (q15_t)0x2678, - (q15_t)0x85DB, (q15_t)0x2648, (q15_t)0x85CC, (q15_t)0x2618, - (q15_t)0x85BD, (q15_t)0x25E8, (q15_t)0x85AF, (q15_t)0x25B8, - (q15_t)0x85A0, (q15_t)0x2588, (q15_t)0x8591, (q15_t)0x2558, - (q15_t)0x8582, (q15_t)0x2528, (q15_t)0x8574, (q15_t)0x24F7, - (q15_t)0x8565, (q15_t)0x24C7, (q15_t)0x8557, (q15_t)0x2497, - (q15_t)0x8549, (q15_t)0x2467, (q15_t)0x853A, (q15_t)0x2437, - (q15_t)0x852C, (q15_t)0x2407, (q15_t)0x851E, (q15_t)0x23D6, - (q15_t)0x8510, (q15_t)0x23A6, (q15_t)0x8502, (q15_t)0x2376, - (q15_t)0x84F4, (q15_t)0x2345, (q15_t)0x84E6, (q15_t)0x2315, - (q15_t)0x84D9, (q15_t)0x22E5, (q15_t)0x84CB, (q15_t)0x22B4, - (q15_t)0x84BD, (q15_t)0x2284, (q15_t)0x84B0, (q15_t)0x2254, - (q15_t)0x84A2, (q15_t)0x2223, (q15_t)0x8495, (q15_t)0x21F3, - (q15_t)0x8488, (q15_t)0x21C2, (q15_t)0x847B, (q15_t)0x2192, - (q15_t)0x846D, (q15_t)0x2161, (q15_t)0x8460, (q15_t)0x2131, - (q15_t)0x8453, (q15_t)0x2100, (q15_t)0x8446, (q15_t)0x20D0, - (q15_t)0x843A, (q15_t)0x209F, (q15_t)0x842D, (q15_t)0x206E, - (q15_t)0x8420, (q15_t)0x203E, (q15_t)0x8414, (q15_t)0x200D, - (q15_t)0x8407, (q15_t)0x1FDC, (q15_t)0x83FA, (q15_t)0x1FAC, - (q15_t)0x83EE, (q15_t)0x1F7B, (q15_t)0x83E2, (q15_t)0x1F4A, - (q15_t)0x83D6, (q15_t)0x1F19, (q15_t)0x83C9, (q15_t)0x1EE9, - (q15_t)0x83BD, (q15_t)0x1EB8, (q15_t)0x83B1, (q15_t)0x1E87, - (q15_t)0x83A5, (q15_t)0x1E56, (q15_t)0x8399, (q15_t)0x1E25, - (q15_t)0x838E, (q15_t)0x1DF5, (q15_t)0x8382, (q15_t)0x1DC4, - (q15_t)0x8376, (q15_t)0x1D93, (q15_t)0x836B, (q15_t)0x1D62, - (q15_t)0x835F, (q15_t)0x1D31, (q15_t)0x8354, (q15_t)0x1D00, - (q15_t)0x8348, (q15_t)0x1CCF, (q15_t)0x833D, (q15_t)0x1C9E, - (q15_t)0x8332, (q15_t)0x1C6D, (q15_t)0x8327, (q15_t)0x1C3C, - (q15_t)0x831C, (q15_t)0x1C0B, (q15_t)0x8311, (q15_t)0x1BDA, - (q15_t)0x8306, (q15_t)0x1BA9, (q15_t)0x82FB, (q15_t)0x1B78, - (q15_t)0x82F0, (q15_t)0x1B47, (q15_t)0x82E6, (q15_t)0x1B16, - (q15_t)0x82DB, (q15_t)0x1AE4, (q15_t)0x82D0, (q15_t)0x1AB3, - (q15_t)0x82C6, (q15_t)0x1A82, (q15_t)0x82BC, (q15_t)0x1A51, - (q15_t)0x82B1, (q15_t)0x1A20, (q15_t)0x82A7, (q15_t)0x19EF, - (q15_t)0x829D, (q15_t)0x19BD, (q15_t)0x8293, (q15_t)0x198C, - (q15_t)0x8289, (q15_t)0x195B, (q15_t)0x827F, (q15_t)0x192A, - (q15_t)0x8275, (q15_t)0x18F8, (q15_t)0x826B, (q15_t)0x18C7, - (q15_t)0x8262, (q15_t)0x1896, (q15_t)0x8258, (q15_t)0x1864, - (q15_t)0x824F, (q15_t)0x1833, (q15_t)0x8245, (q15_t)0x1802, - (q15_t)0x823C, (q15_t)0x17D0, (q15_t)0x8232, (q15_t)0x179F, - (q15_t)0x8229, (q15_t)0x176D, (q15_t)0x8220, (q15_t)0x173C, - (q15_t)0x8217, (q15_t)0x170A, (q15_t)0x820E, (q15_t)0x16D9, - (q15_t)0x8205, (q15_t)0x16A8, (q15_t)0x81FC, (q15_t)0x1676, - (q15_t)0x81F3, (q15_t)0x1645, (q15_t)0x81EB, (q15_t)0x1613, - (q15_t)0x81E2, (q15_t)0x15E2, (q15_t)0x81D9, (q15_t)0x15B0, - (q15_t)0x81D1, (q15_t)0x157F, (q15_t)0x81C8, (q15_t)0x154D, - (q15_t)0x81C0, (q15_t)0x151B, (q15_t)0x81B8, (q15_t)0x14EA, - (q15_t)0x81B0, (q15_t)0x14B8, (q15_t)0x81A8, (q15_t)0x1487, - (q15_t)0x81A0, (q15_t)0x1455, (q15_t)0x8198, (q15_t)0x1423, - (q15_t)0x8190, (q15_t)0x13F2, (q15_t)0x8188, (q15_t)0x13C0, - (q15_t)0x8180, (q15_t)0x138E, (q15_t)0x8179, (q15_t)0x135D, - (q15_t)0x8171, (q15_t)0x132B, (q15_t)0x816A, (q15_t)0x12F9, - (q15_t)0x8162, (q15_t)0x12C8, (q15_t)0x815B, (q15_t)0x1296, - (q15_t)0x8154, (q15_t)0x1264, (q15_t)0x814C, (q15_t)0x1232, - (q15_t)0x8145, (q15_t)0x1201, (q15_t)0x813E, (q15_t)0x11CF, - (q15_t)0x8137, (q15_t)0x119D, (q15_t)0x8130, (q15_t)0x116B, - (q15_t)0x812A, (q15_t)0x1139, (q15_t)0x8123, (q15_t)0x1108, - (q15_t)0x811C, (q15_t)0x10D6, (q15_t)0x8116, (q15_t)0x10A4, - (q15_t)0x810F, (q15_t)0x1072, (q15_t)0x8109, (q15_t)0x1040, - (q15_t)0x8102, (q15_t)0x100E, (q15_t)0x80FC, (q15_t)0x0FDD, - (q15_t)0x80F6, (q15_t)0x0FAB, (q15_t)0x80F0, (q15_t)0x0F79, - (q15_t)0x80EA, (q15_t)0x0F47, (q15_t)0x80E4, (q15_t)0x0F15, - (q15_t)0x80DE, (q15_t)0x0EE3, (q15_t)0x80D8, (q15_t)0x0EB1, - (q15_t)0x80D2, (q15_t)0x0E7F, (q15_t)0x80CD, (q15_t)0x0E4D, - (q15_t)0x80C7, (q15_t)0x0E1B, (q15_t)0x80C2, (q15_t)0x0DE9, - (q15_t)0x80BC, (q15_t)0x0DB7, (q15_t)0x80B7, (q15_t)0x0D85, - (q15_t)0x80B2, (q15_t)0x0D53, (q15_t)0x80AC, (q15_t)0x0D21, - (q15_t)0x80A7, (q15_t)0x0CEF, (q15_t)0x80A2, (q15_t)0x0CBD, - (q15_t)0x809D, (q15_t)0x0C8B, (q15_t)0x8098, (q15_t)0x0C59, - (q15_t)0x8094, (q15_t)0x0C27, (q15_t)0x808F, (q15_t)0x0BF5, - (q15_t)0x808A, (q15_t)0x0BC3, (q15_t)0x8086, (q15_t)0x0B91, - (q15_t)0x8081, (q15_t)0x0B5F, (q15_t)0x807D, (q15_t)0x0B2D, - (q15_t)0x8078, (q15_t)0x0AFB, (q15_t)0x8074, (q15_t)0x0AC9, - (q15_t)0x8070, (q15_t)0x0A97, (q15_t)0x806C, (q15_t)0x0A65, - (q15_t)0x8068, (q15_t)0x0A33, (q15_t)0x8064, (q15_t)0x0A00, - (q15_t)0x8060, (q15_t)0x09CE, (q15_t)0x805C, (q15_t)0x099C, - (q15_t)0x8058, (q15_t)0x096A, (q15_t)0x8055, (q15_t)0x0938, - (q15_t)0x8051, (q15_t)0x0906, (q15_t)0x804E, (q15_t)0x08D4, - (q15_t)0x804A, (q15_t)0x08A2, (q15_t)0x8047, (q15_t)0x086F, - (q15_t)0x8043, (q15_t)0x083D, (q15_t)0x8040, (q15_t)0x080B, - (q15_t)0x803D, (q15_t)0x07D9, (q15_t)0x803A, (q15_t)0x07A7, - (q15_t)0x8037, (q15_t)0x0775, (q15_t)0x8034, (q15_t)0x0742, - (q15_t)0x8031, (q15_t)0x0710, (q15_t)0x802F, (q15_t)0x06DE, - (q15_t)0x802C, (q15_t)0x06AC, (q15_t)0x8029, (q15_t)0x067A, - (q15_t)0x8027, (q15_t)0x0647, (q15_t)0x8025, (q15_t)0x0615, - (q15_t)0x8022, (q15_t)0x05E3, (q15_t)0x8020, (q15_t)0x05B1, - (q15_t)0x801E, (q15_t)0x057F, (q15_t)0x801C, (q15_t)0x054C, - (q15_t)0x801A, (q15_t)0x051A, (q15_t)0x8018, (q15_t)0x04E8, - (q15_t)0x8016, (q15_t)0x04B6, (q15_t)0x8014, (q15_t)0x0483, - (q15_t)0x8012, (q15_t)0x0451, (q15_t)0x8011, (q15_t)0x041F, - (q15_t)0x800F, (q15_t)0x03ED, (q15_t)0x800D, (q15_t)0x03BA, - (q15_t)0x800C, (q15_t)0x0388, (q15_t)0x800B, (q15_t)0x0356, - (q15_t)0x8009, (q15_t)0x0324, (q15_t)0x8008, (q15_t)0x02F1, - (q15_t)0x8007, (q15_t)0x02BF, (q15_t)0x8006, (q15_t)0x028D, - (q15_t)0x8005, (q15_t)0x025B, (q15_t)0x8004, (q15_t)0x0228, - (q15_t)0x8003, (q15_t)0x01F6, (q15_t)0x8003, (q15_t)0x01C4, - (q15_t)0x8002, (q15_t)0x0192, (q15_t)0x8001, (q15_t)0x015F, - (q15_t)0x8001, (q15_t)0x012D, (q15_t)0x8000, (q15_t)0x00FB, - (q15_t)0x8000, (q15_t)0x00C9, (q15_t)0x8000, (q15_t)0x0096, - (q15_t)0x8000, (q15_t)0x0064, (q15_t)0x8000, (q15_t)0x0032, - (q15_t)0x8000, (q15_t)0x0000, (q15_t)0x8000, (q15_t)0xFFCD, - (q15_t)0x8000, (q15_t)0xFF9B, (q15_t)0x8000, (q15_t)0xFF69, - (q15_t)0x8000, (q15_t)0xFF36, (q15_t)0x8000, (q15_t)0xFF04, - (q15_t)0x8001, (q15_t)0xFED2, (q15_t)0x8001, (q15_t)0xFEA0, - (q15_t)0x8002, (q15_t)0xFE6D, (q15_t)0x8003, (q15_t)0xFE3B, - (q15_t)0x8003, (q15_t)0xFE09, (q15_t)0x8004, (q15_t)0xFDD7, - (q15_t)0x8005, (q15_t)0xFDA4, (q15_t)0x8006, (q15_t)0xFD72, - (q15_t)0x8007, (q15_t)0xFD40, (q15_t)0x8008, (q15_t)0xFD0E, - (q15_t)0x8009, (q15_t)0xFCDB, (q15_t)0x800B, (q15_t)0xFCA9, - (q15_t)0x800C, (q15_t)0xFC77, (q15_t)0x800D, (q15_t)0xFC45, - (q15_t)0x800F, (q15_t)0xFC12, (q15_t)0x8011, (q15_t)0xFBE0, - (q15_t)0x8012, (q15_t)0xFBAE, (q15_t)0x8014, (q15_t)0xFB7C, - (q15_t)0x8016, (q15_t)0xFB49, (q15_t)0x8018, (q15_t)0xFB17, - (q15_t)0x801A, (q15_t)0xFAE5, (q15_t)0x801C, (q15_t)0xFAB3, - (q15_t)0x801E, (q15_t)0xFA80, (q15_t)0x8020, (q15_t)0xFA4E, - (q15_t)0x8022, (q15_t)0xFA1C, (q15_t)0x8025, (q15_t)0xF9EA, - (q15_t)0x8027, (q15_t)0xF9B8, (q15_t)0x8029, (q15_t)0xF985, - (q15_t)0x802C, (q15_t)0xF953, (q15_t)0x802F, (q15_t)0xF921, - (q15_t)0x8031, (q15_t)0xF8EF, (q15_t)0x8034, (q15_t)0xF8BD, - (q15_t)0x8037, (q15_t)0xF88A, (q15_t)0x803A, (q15_t)0xF858, - (q15_t)0x803D, (q15_t)0xF826, (q15_t)0x8040, (q15_t)0xF7F4, - (q15_t)0x8043, (q15_t)0xF7C2, (q15_t)0x8047, (q15_t)0xF790, - (q15_t)0x804A, (q15_t)0xF75D, (q15_t)0x804E, (q15_t)0xF72B, - (q15_t)0x8051, (q15_t)0xF6F9, (q15_t)0x8055, (q15_t)0xF6C7, - (q15_t)0x8058, (q15_t)0xF695, (q15_t)0x805C, (q15_t)0xF663, - (q15_t)0x8060, (q15_t)0xF631, (q15_t)0x8064, (q15_t)0xF5FF, - (q15_t)0x8068, (q15_t)0xF5CC, (q15_t)0x806C, (q15_t)0xF59A, - (q15_t)0x8070, (q15_t)0xF568, (q15_t)0x8074, (q15_t)0xF536, - (q15_t)0x8078, (q15_t)0xF504, (q15_t)0x807D, (q15_t)0xF4D2, - (q15_t)0x8081, (q15_t)0xF4A0, (q15_t)0x8086, (q15_t)0xF46E, - (q15_t)0x808A, (q15_t)0xF43C, (q15_t)0x808F, (q15_t)0xF40A, - (q15_t)0x8094, (q15_t)0xF3D8, (q15_t)0x8098, (q15_t)0xF3A6, - (q15_t)0x809D, (q15_t)0xF374, (q15_t)0x80A2, (q15_t)0xF342, - (q15_t)0x80A7, (q15_t)0xF310, (q15_t)0x80AC, (q15_t)0xF2DE, - (q15_t)0x80B2, (q15_t)0xF2AC, (q15_t)0x80B7, (q15_t)0xF27A, - (q15_t)0x80BC, (q15_t)0xF248, (q15_t)0x80C2, (q15_t)0xF216, - (q15_t)0x80C7, (q15_t)0xF1E4, (q15_t)0x80CD, (q15_t)0xF1B2, - (q15_t)0x80D2, (q15_t)0xF180, (q15_t)0x80D8, (q15_t)0xF14E, - (q15_t)0x80DE, (q15_t)0xF11C, (q15_t)0x80E4, (q15_t)0xF0EA, - (q15_t)0x80EA, (q15_t)0xF0B8, (q15_t)0x80F0, (q15_t)0xF086, - (q15_t)0x80F6, (q15_t)0xF054, (q15_t)0x80FC, (q15_t)0xF022, - (q15_t)0x8102, (q15_t)0xEFF1, (q15_t)0x8109, (q15_t)0xEFBF, - (q15_t)0x810F, (q15_t)0xEF8D, (q15_t)0x8116, (q15_t)0xEF5B, - (q15_t)0x811C, (q15_t)0xEF29, (q15_t)0x8123, (q15_t)0xEEF7, - (q15_t)0x812A, (q15_t)0xEEC6, (q15_t)0x8130, (q15_t)0xEE94, - (q15_t)0x8137, (q15_t)0xEE62, (q15_t)0x813E, (q15_t)0xEE30, - (q15_t)0x8145, (q15_t)0xEDFE, (q15_t)0x814C, (q15_t)0xEDCD, - (q15_t)0x8154, (q15_t)0xED9B, (q15_t)0x815B, (q15_t)0xED69, - (q15_t)0x8162, (q15_t)0xED37, (q15_t)0x816A, (q15_t)0xED06, - (q15_t)0x8171, (q15_t)0xECD4, (q15_t)0x8179, (q15_t)0xECA2, - (q15_t)0x8180, (q15_t)0xEC71, (q15_t)0x8188, (q15_t)0xEC3F, - (q15_t)0x8190, (q15_t)0xEC0D, (q15_t)0x8198, (q15_t)0xEBDC, - (q15_t)0x81A0, (q15_t)0xEBAA, (q15_t)0x81A8, (q15_t)0xEB78, - (q15_t)0x81B0, (q15_t)0xEB47, (q15_t)0x81B8, (q15_t)0xEB15, - (q15_t)0x81C0, (q15_t)0xEAE4, (q15_t)0x81C8, (q15_t)0xEAB2, - (q15_t)0x81D1, (q15_t)0xEA80, (q15_t)0x81D9, (q15_t)0xEA4F, - (q15_t)0x81E2, (q15_t)0xEA1D, (q15_t)0x81EB, (q15_t)0xE9EC, - (q15_t)0x81F3, (q15_t)0xE9BA, (q15_t)0x81FC, (q15_t)0xE989, - (q15_t)0x8205, (q15_t)0xE957, (q15_t)0x820E, (q15_t)0xE926, - (q15_t)0x8217, (q15_t)0xE8F5, (q15_t)0x8220, (q15_t)0xE8C3, - (q15_t)0x8229, (q15_t)0xE892, (q15_t)0x8232, (q15_t)0xE860, - (q15_t)0x823C, (q15_t)0xE82F, (q15_t)0x8245, (q15_t)0xE7FD, - (q15_t)0x824F, (q15_t)0xE7CC, (q15_t)0x8258, (q15_t)0xE79B, - (q15_t)0x8262, (q15_t)0xE769, (q15_t)0x826B, (q15_t)0xE738, - (q15_t)0x8275, (q15_t)0xE707, (q15_t)0x827F, (q15_t)0xE6D5, - (q15_t)0x8289, (q15_t)0xE6A4, (q15_t)0x8293, (q15_t)0xE673, - (q15_t)0x829D, (q15_t)0xE642, (q15_t)0x82A7, (q15_t)0xE610, - (q15_t)0x82B1, (q15_t)0xE5DF, (q15_t)0x82BC, (q15_t)0xE5AE, - (q15_t)0x82C6, (q15_t)0xE57D, (q15_t)0x82D0, (q15_t)0xE54C, - (q15_t)0x82DB, (q15_t)0xE51B, (q15_t)0x82E6, (q15_t)0xE4E9, - (q15_t)0x82F0, (q15_t)0xE4B8, (q15_t)0x82FB, (q15_t)0xE487, - (q15_t)0x8306, (q15_t)0xE456, (q15_t)0x8311, (q15_t)0xE425, - (q15_t)0x831C, (q15_t)0xE3F4, (q15_t)0x8327, (q15_t)0xE3C3, - (q15_t)0x8332, (q15_t)0xE392, (q15_t)0x833D, (q15_t)0xE361, - (q15_t)0x8348, (q15_t)0xE330, (q15_t)0x8354, (q15_t)0xE2FF, - (q15_t)0x835F, (q15_t)0xE2CE, (q15_t)0x836B, (q15_t)0xE29D, - (q15_t)0x8376, (q15_t)0xE26C, (q15_t)0x8382, (q15_t)0xE23B, - (q15_t)0x838E, (q15_t)0xE20A, (q15_t)0x8399, (q15_t)0xE1DA, - (q15_t)0x83A5, (q15_t)0xE1A9, (q15_t)0x83B1, (q15_t)0xE178, - (q15_t)0x83BD, (q15_t)0xE147, (q15_t)0x83C9, (q15_t)0xE116, - (q15_t)0x83D6, (q15_t)0xE0E6, (q15_t)0x83E2, (q15_t)0xE0B5, - (q15_t)0x83EE, (q15_t)0xE084, (q15_t)0x83FA, (q15_t)0xE053, - (q15_t)0x8407, (q15_t)0xE023, (q15_t)0x8414, (q15_t)0xDFF2, - (q15_t)0x8420, (q15_t)0xDFC1, (q15_t)0x842D, (q15_t)0xDF91, - (q15_t)0x843A, (q15_t)0xDF60, (q15_t)0x8446, (q15_t)0xDF2F, - (q15_t)0x8453, (q15_t)0xDEFF, (q15_t)0x8460, (q15_t)0xDECE, - (q15_t)0x846D, (q15_t)0xDE9E, (q15_t)0x847B, (q15_t)0xDE6D, - (q15_t)0x8488, (q15_t)0xDE3D, (q15_t)0x8495, (q15_t)0xDE0C, - (q15_t)0x84A2, (q15_t)0xDDDC, (q15_t)0x84B0, (q15_t)0xDDAB, - (q15_t)0x84BD, (q15_t)0xDD7B, (q15_t)0x84CB, (q15_t)0xDD4B, - (q15_t)0x84D9, (q15_t)0xDD1A, (q15_t)0x84E6, (q15_t)0xDCEA, - (q15_t)0x84F4, (q15_t)0xDCBA, (q15_t)0x8502, (q15_t)0xDC89, - (q15_t)0x8510, (q15_t)0xDC59, (q15_t)0x851E, (q15_t)0xDC29, - (q15_t)0x852C, (q15_t)0xDBF8, (q15_t)0x853A, (q15_t)0xDBC8, - (q15_t)0x8549, (q15_t)0xDB98, (q15_t)0x8557, (q15_t)0xDB68, - (q15_t)0x8565, (q15_t)0xDB38, (q15_t)0x8574, (q15_t)0xDB08, - (q15_t)0x8582, (q15_t)0xDAD7, (q15_t)0x8591, (q15_t)0xDAA7, - (q15_t)0x85A0, (q15_t)0xDA77, (q15_t)0x85AF, (q15_t)0xDA47, - (q15_t)0x85BD, (q15_t)0xDA17, (q15_t)0x85CC, (q15_t)0xD9E7, - (q15_t)0x85DB, (q15_t)0xD9B7, (q15_t)0x85EA, (q15_t)0xD987, - (q15_t)0x85FA, (q15_t)0xD957, (q15_t)0x8609, (q15_t)0xD927, - (q15_t)0x8618, (q15_t)0xD8F8, (q15_t)0x8627, (q15_t)0xD8C8, - (q15_t)0x8637, (q15_t)0xD898, (q15_t)0x8646, (q15_t)0xD868, - (q15_t)0x8656, (q15_t)0xD838, (q15_t)0x8666, (q15_t)0xD809, - (q15_t)0x8675, (q15_t)0xD7D9, (q15_t)0x8685, (q15_t)0xD7A9, - (q15_t)0x8695, (q15_t)0xD779, (q15_t)0x86A5, (q15_t)0xD74A, - (q15_t)0x86B5, (q15_t)0xD71A, (q15_t)0x86C5, (q15_t)0xD6EA, - (q15_t)0x86D5, (q15_t)0xD6BB, (q15_t)0x86E6, (q15_t)0xD68B, - (q15_t)0x86F6, (q15_t)0xD65C, (q15_t)0x8706, (q15_t)0xD62C, - (q15_t)0x8717, (q15_t)0xD5FD, (q15_t)0x8727, (q15_t)0xD5CD, - (q15_t)0x8738, (q15_t)0xD59E, (q15_t)0x8749, (q15_t)0xD56E, - (q15_t)0x8759, (q15_t)0xD53F, (q15_t)0x876A, (q15_t)0xD510, - (q15_t)0x877B, (q15_t)0xD4E0, (q15_t)0x878C, (q15_t)0xD4B1, - (q15_t)0x879D, (q15_t)0xD482, (q15_t)0x87AE, (q15_t)0xD452, - (q15_t)0x87BF, (q15_t)0xD423, (q15_t)0x87D1, (q15_t)0xD3F4, - (q15_t)0x87E2, (q15_t)0xD3C5, (q15_t)0x87F3, (q15_t)0xD396, - (q15_t)0x8805, (q15_t)0xD367, (q15_t)0x8816, (q15_t)0xD337, - (q15_t)0x8828, (q15_t)0xD308, (q15_t)0x883A, (q15_t)0xD2D9, - (q15_t)0x884B, (q15_t)0xD2AA, (q15_t)0x885D, (q15_t)0xD27B, - (q15_t)0x886F, (q15_t)0xD24C, (q15_t)0x8881, (q15_t)0xD21D, - (q15_t)0x8893, (q15_t)0xD1EE, (q15_t)0x88A5, (q15_t)0xD1C0, - (q15_t)0x88B8, (q15_t)0xD191, (q15_t)0x88CA, (q15_t)0xD162, - (q15_t)0x88DC, (q15_t)0xD133, (q15_t)0x88EF, (q15_t)0xD104, - (q15_t)0x8901, (q15_t)0xD0D6, (q15_t)0x8914, (q15_t)0xD0A7, - (q15_t)0x8926, (q15_t)0xD078, (q15_t)0x8939, (q15_t)0xD04A, - (q15_t)0x894C, (q15_t)0xD01B, (q15_t)0x895F, (q15_t)0xCFEC, - (q15_t)0x8971, (q15_t)0xCFBE, (q15_t)0x8984, (q15_t)0xCF8F, - (q15_t)0x8997, (q15_t)0xCF61, (q15_t)0x89AB, (q15_t)0xCF32, - (q15_t)0x89BE, (q15_t)0xCF04, (q15_t)0x89D1, (q15_t)0xCED5, - (q15_t)0x89E4, (q15_t)0xCEA7, (q15_t)0x89F8, (q15_t)0xCE79, - (q15_t)0x8A0B, (q15_t)0xCE4A, (q15_t)0x8A1F, (q15_t)0xCE1C, - (q15_t)0x8A33, (q15_t)0xCDEE, (q15_t)0x8A46, (q15_t)0xCDBF, - (q15_t)0x8A5A, (q15_t)0xCD91, (q15_t)0x8A6E, (q15_t)0xCD63, - (q15_t)0x8A82, (q15_t)0xCD35, (q15_t)0x8A96, (q15_t)0xCD07, - (q15_t)0x8AAA, (q15_t)0xCCD9, (q15_t)0x8ABE, (q15_t)0xCCAB, - (q15_t)0x8AD2, (q15_t)0xCC7D, (q15_t)0x8AE6, (q15_t)0xCC4F, - (q15_t)0x8AFB, (q15_t)0xCC21, (q15_t)0x8B0F, (q15_t)0xCBF3, - (q15_t)0x8B24, (q15_t)0xCBC5, (q15_t)0x8B38, (q15_t)0xCB97, - (q15_t)0x8B4D, (q15_t)0xCB69, (q15_t)0x8B61, (q15_t)0xCB3B, - (q15_t)0x8B76, (q15_t)0xCB0D, (q15_t)0x8B8B, (q15_t)0xCAE0, - (q15_t)0x8BA0, (q15_t)0xCAB2, (q15_t)0x8BB5, (q15_t)0xCA84, - (q15_t)0x8BCA, (q15_t)0xCA57, (q15_t)0x8BDF, (q15_t)0xCA29, - (q15_t)0x8BF4, (q15_t)0xC9FB, (q15_t)0x8C09, (q15_t)0xC9CE, - (q15_t)0x8C1F, (q15_t)0xC9A0, (q15_t)0x8C34, (q15_t)0xC973, - (q15_t)0x8C4A, (q15_t)0xC945, (q15_t)0x8C5F, (q15_t)0xC918, - (q15_t)0x8C75, (q15_t)0xC8EB, (q15_t)0x8C8A, (q15_t)0xC8BD, - (q15_t)0x8CA0, (q15_t)0xC890, (q15_t)0x8CB6, (q15_t)0xC863, - (q15_t)0x8CCC, (q15_t)0xC835, (q15_t)0x8CE2, (q15_t)0xC808, - (q15_t)0x8CF8, (q15_t)0xC7DB, (q15_t)0x8D0E, (q15_t)0xC7AE, - (q15_t)0x8D24, (q15_t)0xC781, (q15_t)0x8D3A, (q15_t)0xC754, - (q15_t)0x8D50, (q15_t)0xC727, (q15_t)0x8D67, (q15_t)0xC6F9, - (q15_t)0x8D7D, (q15_t)0xC6CD, (q15_t)0x8D94, (q15_t)0xC6A0, - (q15_t)0x8DAA, (q15_t)0xC673, (q15_t)0x8DC1, (q15_t)0xC646, - (q15_t)0x8DD8, (q15_t)0xC619, (q15_t)0x8DEE, (q15_t)0xC5EC, - (q15_t)0x8E05, (q15_t)0xC5BF, (q15_t)0x8E1C, (q15_t)0xC593, - (q15_t)0x8E33, (q15_t)0xC566, (q15_t)0x8E4A, (q15_t)0xC539, - (q15_t)0x8E61, (q15_t)0xC50D, (q15_t)0x8E79, (q15_t)0xC4E0, - (q15_t)0x8E90, (q15_t)0xC4B3, (q15_t)0x8EA7, (q15_t)0xC487, - (q15_t)0x8EBE, (q15_t)0xC45A, (q15_t)0x8ED6, (q15_t)0xC42E, - (q15_t)0x8EED, (q15_t)0xC402, (q15_t)0x8F05, (q15_t)0xC3D5, - (q15_t)0x8F1D, (q15_t)0xC3A9, (q15_t)0x8F34, (q15_t)0xC37C, - (q15_t)0x8F4C, (q15_t)0xC350, (q15_t)0x8F64, (q15_t)0xC324, - (q15_t)0x8F7C, (q15_t)0xC2F8, (q15_t)0x8F94, (q15_t)0xC2CC, - (q15_t)0x8FAC, (q15_t)0xC29F, (q15_t)0x8FC4, (q15_t)0xC273, - (q15_t)0x8FDC, (q15_t)0xC247, (q15_t)0x8FF5, (q15_t)0xC21B, - (q15_t)0x900D, (q15_t)0xC1EF, (q15_t)0x9025, (q15_t)0xC1C3, - (q15_t)0x903E, (q15_t)0xC197, (q15_t)0x9056, (q15_t)0xC16C, - (q15_t)0x906F, (q15_t)0xC140, (q15_t)0x9088, (q15_t)0xC114, - (q15_t)0x90A0, (q15_t)0xC0E8, (q15_t)0x90B9, (q15_t)0xC0BC, - (q15_t)0x90D2, (q15_t)0xC091, (q15_t)0x90EB, (q15_t)0xC065, - (q15_t)0x9104, (q15_t)0xC03A, (q15_t)0x911D, (q15_t)0xC00E, - (q15_t)0x9136, (q15_t)0xBFE2, (q15_t)0x9150, (q15_t)0xBFB7, - (q15_t)0x9169, (q15_t)0xBF8C, (q15_t)0x9182, (q15_t)0xBF60, - (q15_t)0x919C, (q15_t)0xBF35, (q15_t)0x91B5, (q15_t)0xBF09, - (q15_t)0x91CF, (q15_t)0xBEDE, (q15_t)0x91E8, (q15_t)0xBEB3, - (q15_t)0x9202, (q15_t)0xBE88, (q15_t)0x921C, (q15_t)0xBE5D, - (q15_t)0x9235, (q15_t)0xBE31, (q15_t)0x924F, (q15_t)0xBE06, - (q15_t)0x9269, (q15_t)0xBDDB, (q15_t)0x9283, (q15_t)0xBDB0, - (q15_t)0x929D, (q15_t)0xBD85, (q15_t)0x92B7, (q15_t)0xBD5A, - (q15_t)0x92D2, (q15_t)0xBD2F, (q15_t)0x92EC, (q15_t)0xBD05, - (q15_t)0x9306, (q15_t)0xBCDA, (q15_t)0x9321, (q15_t)0xBCAF, - (q15_t)0x933B, (q15_t)0xBC84, (q15_t)0x9356, (q15_t)0xBC5A, - (q15_t)0x9370, (q15_t)0xBC2F, (q15_t)0x938B, (q15_t)0xBC04, - (q15_t)0x93A6, (q15_t)0xBBDA, (q15_t)0x93C0, (q15_t)0xBBAF, - (q15_t)0x93DB, (q15_t)0xBB85, (q15_t)0x93F6, (q15_t)0xBB5A, - (q15_t)0x9411, (q15_t)0xBB30, (q15_t)0x942C, (q15_t)0xBB05, - (q15_t)0x9447, (q15_t)0xBADB, (q15_t)0x9463, (q15_t)0xBAB1, - (q15_t)0x947E, (q15_t)0xBA87, (q15_t)0x9499, (q15_t)0xBA5C, - (q15_t)0x94B5, (q15_t)0xBA32, (q15_t)0x94D0, (q15_t)0xBA08, - (q15_t)0x94EC, (q15_t)0xB9DE, (q15_t)0x9507, (q15_t)0xB9B4, - (q15_t)0x9523, (q15_t)0xB98A, (q15_t)0x953E, (q15_t)0xB960, - (q15_t)0x955A, (q15_t)0xB936, (q15_t)0x9576, (q15_t)0xB90C, - (q15_t)0x9592, (q15_t)0xB8E3, (q15_t)0x95AE, (q15_t)0xB8B9, - (q15_t)0x95CA, (q15_t)0xB88F, (q15_t)0x95E6, (q15_t)0xB865, - (q15_t)0x9602, (q15_t)0xB83C, (q15_t)0x961E, (q15_t)0xB812, - (q15_t)0x963B, (q15_t)0xB7E9, (q15_t)0x9657, (q15_t)0xB7BF, - (q15_t)0x9673, (q15_t)0xB796, (q15_t)0x9690, (q15_t)0xB76C, - (q15_t)0x96AC, (q15_t)0xB743, (q15_t)0x96C9, (q15_t)0xB719, - (q15_t)0x96E6, (q15_t)0xB6F0, (q15_t)0x9702, (q15_t)0xB6C7, - (q15_t)0x971F, (q15_t)0xB69E, (q15_t)0x973C, (q15_t)0xB675, - (q15_t)0x9759, (q15_t)0xB64B, (q15_t)0x9776, (q15_t)0xB622, - (q15_t)0x9793, (q15_t)0xB5F9, (q15_t)0x97B0, (q15_t)0xB5D0, - (q15_t)0x97CD, (q15_t)0xB5A7, (q15_t)0x97EA, (q15_t)0xB57E, - (q15_t)0x9808, (q15_t)0xB556, (q15_t)0x9825, (q15_t)0xB52D, - (q15_t)0x9842, (q15_t)0xB504, (q15_t)0x9860, (q15_t)0xB4DB, - (q15_t)0x987D, (q15_t)0xB4B3, (q15_t)0x989B, (q15_t)0xB48A, - (q15_t)0x98B9, (q15_t)0xB461, (q15_t)0x98D6, (q15_t)0xB439, - (q15_t)0x98F4, (q15_t)0xB410, (q15_t)0x9912, (q15_t)0xB3E8, - (q15_t)0x9930, (q15_t)0xB3C0, (q15_t)0x994E, (q15_t)0xB397, - (q15_t)0x996C, (q15_t)0xB36F, (q15_t)0x998A, (q15_t)0xB347, - (q15_t)0x99A8, (q15_t)0xB31E, (q15_t)0x99C6, (q15_t)0xB2F6, - (q15_t)0x99E5, (q15_t)0xB2CE, (q15_t)0x9A03, (q15_t)0xB2A6, - (q15_t)0x9A22, (q15_t)0xB27E, (q15_t)0x9A40, (q15_t)0xB256, - (q15_t)0x9A5F, (q15_t)0xB22E, (q15_t)0x9A7D, (q15_t)0xB206, - (q15_t)0x9A9C, (q15_t)0xB1DE, (q15_t)0x9ABA, (q15_t)0xB1B7, - (q15_t)0x9AD9, (q15_t)0xB18F, (q15_t)0x9AF8, (q15_t)0xB167, - (q15_t)0x9B17, (q15_t)0xB140, (q15_t)0x9B36, (q15_t)0xB118, - (q15_t)0x9B55, (q15_t)0xB0F0, (q15_t)0x9B74, (q15_t)0xB0C9, - (q15_t)0x9B93, (q15_t)0xB0A1, (q15_t)0x9BB2, (q15_t)0xB07A, - (q15_t)0x9BD2, (q15_t)0xB053, (q15_t)0x9BF1, (q15_t)0xB02B, - (q15_t)0x9C10, (q15_t)0xB004, (q15_t)0x9C30, (q15_t)0xAFDD, - (q15_t)0x9C4F, (q15_t)0xAFB6, (q15_t)0x9C6F, (q15_t)0xAF8F, - (q15_t)0x9C8E, (q15_t)0xAF68, (q15_t)0x9CAE, (q15_t)0xAF40, - (q15_t)0x9CCE, (q15_t)0xAF1A, (q15_t)0x9CEE, (q15_t)0xAEF3, - (q15_t)0x9D0D, (q15_t)0xAECC, (q15_t)0x9D2D, (q15_t)0xAEA5, - (q15_t)0x9D4D, (q15_t)0xAE7E, (q15_t)0x9D6D, (q15_t)0xAE57, - (q15_t)0x9D8E, (q15_t)0xAE31, (q15_t)0x9DAE, (q15_t)0xAE0A, - (q15_t)0x9DCE, (q15_t)0xADE3, (q15_t)0x9DEE, (q15_t)0xADBD, - (q15_t)0x9E0E, (q15_t)0xAD96, (q15_t)0x9E2F, (q15_t)0xAD70, - (q15_t)0x9E4F, (q15_t)0xAD4A, (q15_t)0x9E70, (q15_t)0xAD23, - (q15_t)0x9E90, (q15_t)0xACFD, (q15_t)0x9EB1, (q15_t)0xACD7, - (q15_t)0x9ED2, (q15_t)0xACB1, (q15_t)0x9EF2, (q15_t)0xAC8A, - (q15_t)0x9F13, (q15_t)0xAC64, (q15_t)0x9F34, (q15_t)0xAC3E, - (q15_t)0x9F55, (q15_t)0xAC18, (q15_t)0x9F76, (q15_t)0xABF2, - (q15_t)0x9F97, (q15_t)0xABCC, (q15_t)0x9FB8, (q15_t)0xABA7, - (q15_t)0x9FD9, (q15_t)0xAB81, (q15_t)0x9FFB, (q15_t)0xAB5B, - (q15_t)0xA01C, (q15_t)0xAB35, (q15_t)0xA03D, (q15_t)0xAB10, - (q15_t)0xA05F, (q15_t)0xAAEA, (q15_t)0xA080, (q15_t)0xAAC5, - (q15_t)0xA0A1, (q15_t)0xAA9F, (q15_t)0xA0C3, (q15_t)0xAA7A, - (q15_t)0xA0E5, (q15_t)0xAA54, (q15_t)0xA106, (q15_t)0xAA2F, - (q15_t)0xA128, (q15_t)0xAA0A, (q15_t)0xA14A, (q15_t)0xA9E5, - (q15_t)0xA16C, (q15_t)0xA9BF, (q15_t)0xA18E, (q15_t)0xA99A, - (q15_t)0xA1AF, (q15_t)0xA975, (q15_t)0xA1D2, (q15_t)0xA950, - (q15_t)0xA1F4, (q15_t)0xA92B, (q15_t)0xA216, (q15_t)0xA906, - (q15_t)0xA238, (q15_t)0xA8E2, (q15_t)0xA25A, (q15_t)0xA8BD, - (q15_t)0xA27C, (q15_t)0xA898, (q15_t)0xA29F, (q15_t)0xA873, - (q15_t)0xA2C1, (q15_t)0xA84F, (q15_t)0xA2E4, (q15_t)0xA82A, - (q15_t)0xA306, (q15_t)0xA806, (q15_t)0xA329, (q15_t)0xA7E1, - (q15_t)0xA34B, (q15_t)0xA7BD, (q15_t)0xA36E, (q15_t)0xA798, - (q15_t)0xA391, (q15_t)0xA774, (q15_t)0xA3B4, (q15_t)0xA750, - (q15_t)0xA3D6, (q15_t)0xA72B, (q15_t)0xA3F9, (q15_t)0xA707, - (q15_t)0xA41C, (q15_t)0xA6E3, (q15_t)0xA43F, (q15_t)0xA6BF, - (q15_t)0xA462, (q15_t)0xA69B, (q15_t)0xA486, (q15_t)0xA677, - (q15_t)0xA4A9, (q15_t)0xA653, (q15_t)0xA4CC, (q15_t)0xA62F, - (q15_t)0xA4EF, (q15_t)0xA60C, (q15_t)0xA513, (q15_t)0xA5E8, - (q15_t)0xA536, (q15_t)0xA5C4, (q15_t)0xA55A, (q15_t)0xA5A1, - (q15_t)0xA57D, (q15_t)0xA57D, (q15_t)0xA5A1, (q15_t)0xA55A, - (q15_t)0xA5C4, (q15_t)0xA536, (q15_t)0xA5E8, (q15_t)0xA513, - (q15_t)0xA60C, (q15_t)0xA4EF, (q15_t)0xA62F, (q15_t)0xA4CC, - (q15_t)0xA653, (q15_t)0xA4A9, (q15_t)0xA677, (q15_t)0xA486, - (q15_t)0xA69B, (q15_t)0xA462, (q15_t)0xA6BF, (q15_t)0xA43F, - (q15_t)0xA6E3, (q15_t)0xA41C, (q15_t)0xA707, (q15_t)0xA3F9, - (q15_t)0xA72B, (q15_t)0xA3D6, (q15_t)0xA750, (q15_t)0xA3B4, - (q15_t)0xA774, (q15_t)0xA391, (q15_t)0xA798, (q15_t)0xA36E, - (q15_t)0xA7BD, (q15_t)0xA34B, (q15_t)0xA7E1, (q15_t)0xA329, - (q15_t)0xA806, (q15_t)0xA306, (q15_t)0xA82A, (q15_t)0xA2E4, - (q15_t)0xA84F, (q15_t)0xA2C1, (q15_t)0xA873, (q15_t)0xA29F, - (q15_t)0xA898, (q15_t)0xA27C, (q15_t)0xA8BD, (q15_t)0xA25A, - (q15_t)0xA8E2, (q15_t)0xA238, (q15_t)0xA906, (q15_t)0xA216, - (q15_t)0xA92B, (q15_t)0xA1F4, (q15_t)0xA950, (q15_t)0xA1D2, - (q15_t)0xA975, (q15_t)0xA1AF, (q15_t)0xA99A, (q15_t)0xA18E, - (q15_t)0xA9BF, (q15_t)0xA16C, (q15_t)0xA9E5, (q15_t)0xA14A, - (q15_t)0xAA0A, (q15_t)0xA128, (q15_t)0xAA2F, (q15_t)0xA106, - (q15_t)0xAA54, (q15_t)0xA0E5, (q15_t)0xAA7A, (q15_t)0xA0C3, - (q15_t)0xAA9F, (q15_t)0xA0A1, (q15_t)0xAAC5, (q15_t)0xA080, - (q15_t)0xAAEA, (q15_t)0xA05F, (q15_t)0xAB10, (q15_t)0xA03D, - (q15_t)0xAB35, (q15_t)0xA01C, (q15_t)0xAB5B, (q15_t)0x9FFB, - (q15_t)0xAB81, (q15_t)0x9FD9, (q15_t)0xABA7, (q15_t)0x9FB8, - (q15_t)0xABCC, (q15_t)0x9F97, (q15_t)0xABF2, (q15_t)0x9F76, - (q15_t)0xAC18, (q15_t)0x9F55, (q15_t)0xAC3E, (q15_t)0x9F34, - (q15_t)0xAC64, (q15_t)0x9F13, (q15_t)0xAC8A, (q15_t)0x9EF2, - (q15_t)0xACB1, (q15_t)0x9ED2, (q15_t)0xACD7, (q15_t)0x9EB1, - (q15_t)0xACFD, (q15_t)0x9E90, (q15_t)0xAD23, (q15_t)0x9E70, - (q15_t)0xAD4A, (q15_t)0x9E4F, (q15_t)0xAD70, (q15_t)0x9E2F, - (q15_t)0xAD96, (q15_t)0x9E0E, (q15_t)0xADBD, (q15_t)0x9DEE, - (q15_t)0xADE3, (q15_t)0x9DCE, (q15_t)0xAE0A, (q15_t)0x9DAE, - (q15_t)0xAE31, (q15_t)0x9D8E, (q15_t)0xAE57, (q15_t)0x9D6D, - (q15_t)0xAE7E, (q15_t)0x9D4D, (q15_t)0xAEA5, (q15_t)0x9D2D, - (q15_t)0xAECC, (q15_t)0x9D0D, (q15_t)0xAEF3, (q15_t)0x9CEE, - (q15_t)0xAF1A, (q15_t)0x9CCE, (q15_t)0xAF40, (q15_t)0x9CAE, - (q15_t)0xAF68, (q15_t)0x9C8E, (q15_t)0xAF8F, (q15_t)0x9C6F, - (q15_t)0xAFB6, (q15_t)0x9C4F, (q15_t)0xAFDD, (q15_t)0x9C30, - (q15_t)0xB004, (q15_t)0x9C10, (q15_t)0xB02B, (q15_t)0x9BF1, - (q15_t)0xB053, (q15_t)0x9BD2, (q15_t)0xB07A, (q15_t)0x9BB2, - (q15_t)0xB0A1, (q15_t)0x9B93, (q15_t)0xB0C9, (q15_t)0x9B74, - (q15_t)0xB0F0, (q15_t)0x9B55, (q15_t)0xB118, (q15_t)0x9B36, - (q15_t)0xB140, (q15_t)0x9B17, (q15_t)0xB167, (q15_t)0x9AF8, - (q15_t)0xB18F, (q15_t)0x9AD9, (q15_t)0xB1B7, (q15_t)0x9ABA, - (q15_t)0xB1DE, (q15_t)0x9A9C, (q15_t)0xB206, (q15_t)0x9A7D, - (q15_t)0xB22E, (q15_t)0x9A5F, (q15_t)0xB256, (q15_t)0x9A40, - (q15_t)0xB27E, (q15_t)0x9A22, (q15_t)0xB2A6, (q15_t)0x9A03, - (q15_t)0xB2CE, (q15_t)0x99E5, (q15_t)0xB2F6, (q15_t)0x99C6, - (q15_t)0xB31E, (q15_t)0x99A8, (q15_t)0xB347, (q15_t)0x998A, - (q15_t)0xB36F, (q15_t)0x996C, (q15_t)0xB397, (q15_t)0x994E, - (q15_t)0xB3C0, (q15_t)0x9930, (q15_t)0xB3E8, (q15_t)0x9912, - (q15_t)0xB410, (q15_t)0x98F4, (q15_t)0xB439, (q15_t)0x98D6, - (q15_t)0xB461, (q15_t)0x98B9, (q15_t)0xB48A, (q15_t)0x989B, - (q15_t)0xB4B3, (q15_t)0x987D, (q15_t)0xB4DB, (q15_t)0x9860, - (q15_t)0xB504, (q15_t)0x9842, (q15_t)0xB52D, (q15_t)0x9825, - (q15_t)0xB556, (q15_t)0x9808, (q15_t)0xB57E, (q15_t)0x97EA, - (q15_t)0xB5A7, (q15_t)0x97CD, (q15_t)0xB5D0, (q15_t)0x97B0, - (q15_t)0xB5F9, (q15_t)0x9793, (q15_t)0xB622, (q15_t)0x9776, - (q15_t)0xB64B, (q15_t)0x9759, (q15_t)0xB675, (q15_t)0x973C, - (q15_t)0xB69E, (q15_t)0x971F, (q15_t)0xB6C7, (q15_t)0x9702, - (q15_t)0xB6F0, (q15_t)0x96E6, (q15_t)0xB719, (q15_t)0x96C9, - (q15_t)0xB743, (q15_t)0x96AC, (q15_t)0xB76C, (q15_t)0x9690, - (q15_t)0xB796, (q15_t)0x9673, (q15_t)0xB7BF, (q15_t)0x9657, - (q15_t)0xB7E9, (q15_t)0x963B, (q15_t)0xB812, (q15_t)0x961E, - (q15_t)0xB83C, (q15_t)0x9602, (q15_t)0xB865, (q15_t)0x95E6, - (q15_t)0xB88F, (q15_t)0x95CA, (q15_t)0xB8B9, (q15_t)0x95AE, - (q15_t)0xB8E3, (q15_t)0x9592, (q15_t)0xB90C, (q15_t)0x9576, - (q15_t)0xB936, (q15_t)0x955A, (q15_t)0xB960, (q15_t)0x953E, - (q15_t)0xB98A, (q15_t)0x9523, (q15_t)0xB9B4, (q15_t)0x9507, - (q15_t)0xB9DE, (q15_t)0x94EC, (q15_t)0xBA08, (q15_t)0x94D0, - (q15_t)0xBA32, (q15_t)0x94B5, (q15_t)0xBA5C, (q15_t)0x9499, - (q15_t)0xBA87, (q15_t)0x947E, (q15_t)0xBAB1, (q15_t)0x9463, - (q15_t)0xBADB, (q15_t)0x9447, (q15_t)0xBB05, (q15_t)0x942C, - (q15_t)0xBB30, (q15_t)0x9411, (q15_t)0xBB5A, (q15_t)0x93F6, - (q15_t)0xBB85, (q15_t)0x93DB, (q15_t)0xBBAF, (q15_t)0x93C0, - (q15_t)0xBBDA, (q15_t)0x93A6, (q15_t)0xBC04, (q15_t)0x938B, - (q15_t)0xBC2F, (q15_t)0x9370, (q15_t)0xBC5A, (q15_t)0x9356, - (q15_t)0xBC84, (q15_t)0x933B, (q15_t)0xBCAF, (q15_t)0x9321, - (q15_t)0xBCDA, (q15_t)0x9306, (q15_t)0xBD05, (q15_t)0x92EC, - (q15_t)0xBD2F, (q15_t)0x92D2, (q15_t)0xBD5A, (q15_t)0x92B7, - (q15_t)0xBD85, (q15_t)0x929D, (q15_t)0xBDB0, (q15_t)0x9283, - (q15_t)0xBDDB, (q15_t)0x9269, (q15_t)0xBE06, (q15_t)0x924F, - (q15_t)0xBE31, (q15_t)0x9235, (q15_t)0xBE5D, (q15_t)0x921C, - (q15_t)0xBE88, (q15_t)0x9202, (q15_t)0xBEB3, (q15_t)0x91E8, - (q15_t)0xBEDE, (q15_t)0x91CF, (q15_t)0xBF09, (q15_t)0x91B5, - (q15_t)0xBF35, (q15_t)0x919C, (q15_t)0xBF60, (q15_t)0x9182, - (q15_t)0xBF8C, (q15_t)0x9169, (q15_t)0xBFB7, (q15_t)0x9150, - (q15_t)0xBFE2, (q15_t)0x9136, (q15_t)0xC00E, (q15_t)0x911D, - (q15_t)0xC03A, (q15_t)0x9104, (q15_t)0xC065, (q15_t)0x90EB, - (q15_t)0xC091, (q15_t)0x90D2, (q15_t)0xC0BC, (q15_t)0x90B9, - (q15_t)0xC0E8, (q15_t)0x90A0, (q15_t)0xC114, (q15_t)0x9088, - (q15_t)0xC140, (q15_t)0x906F, (q15_t)0xC16C, (q15_t)0x9056, - (q15_t)0xC197, (q15_t)0x903E, (q15_t)0xC1C3, (q15_t)0x9025, - (q15_t)0xC1EF, (q15_t)0x900D, (q15_t)0xC21B, (q15_t)0x8FF5, - (q15_t)0xC247, (q15_t)0x8FDC, (q15_t)0xC273, (q15_t)0x8FC4, - (q15_t)0xC29F, (q15_t)0x8FAC, (q15_t)0xC2CC, (q15_t)0x8F94, - (q15_t)0xC2F8, (q15_t)0x8F7C, (q15_t)0xC324, (q15_t)0x8F64, - (q15_t)0xC350, (q15_t)0x8F4C, (q15_t)0xC37C, (q15_t)0x8F34, - (q15_t)0xC3A9, (q15_t)0x8F1D, (q15_t)0xC3D5, (q15_t)0x8F05, - (q15_t)0xC402, (q15_t)0x8EED, (q15_t)0xC42E, (q15_t)0x8ED6, - (q15_t)0xC45A, (q15_t)0x8EBE, (q15_t)0xC487, (q15_t)0x8EA7, - (q15_t)0xC4B3, (q15_t)0x8E90, (q15_t)0xC4E0, (q15_t)0x8E79, - (q15_t)0xC50D, (q15_t)0x8E61, (q15_t)0xC539, (q15_t)0x8E4A, - (q15_t)0xC566, (q15_t)0x8E33, (q15_t)0xC593, (q15_t)0x8E1C, - (q15_t)0xC5BF, (q15_t)0x8E05, (q15_t)0xC5EC, (q15_t)0x8DEE, - (q15_t)0xC619, (q15_t)0x8DD8, (q15_t)0xC646, (q15_t)0x8DC1, - (q15_t)0xC673, (q15_t)0x8DAA, (q15_t)0xC6A0, (q15_t)0x8D94, - (q15_t)0xC6CD, (q15_t)0x8D7D, (q15_t)0xC6F9, (q15_t)0x8D67, - (q15_t)0xC727, (q15_t)0x8D50, (q15_t)0xC754, (q15_t)0x8D3A, - (q15_t)0xC781, (q15_t)0x8D24, (q15_t)0xC7AE, (q15_t)0x8D0E, - (q15_t)0xC7DB, (q15_t)0x8CF8, (q15_t)0xC808, (q15_t)0x8CE2, - (q15_t)0xC835, (q15_t)0x8CCC, (q15_t)0xC863, (q15_t)0x8CB6, - (q15_t)0xC890, (q15_t)0x8CA0, (q15_t)0xC8BD, (q15_t)0x8C8A, - (q15_t)0xC8EB, (q15_t)0x8C75, (q15_t)0xC918, (q15_t)0x8C5F, - (q15_t)0xC945, (q15_t)0x8C4A, (q15_t)0xC973, (q15_t)0x8C34, - (q15_t)0xC9A0, (q15_t)0x8C1F, (q15_t)0xC9CE, (q15_t)0x8C09, - (q15_t)0xC9FB, (q15_t)0x8BF4, (q15_t)0xCA29, (q15_t)0x8BDF, - (q15_t)0xCA57, (q15_t)0x8BCA, (q15_t)0xCA84, (q15_t)0x8BB5, - (q15_t)0xCAB2, (q15_t)0x8BA0, (q15_t)0xCAE0, (q15_t)0x8B8B, - (q15_t)0xCB0D, (q15_t)0x8B76, (q15_t)0xCB3B, (q15_t)0x8B61, - (q15_t)0xCB69, (q15_t)0x8B4D, (q15_t)0xCB97, (q15_t)0x8B38, - (q15_t)0xCBC5, (q15_t)0x8B24, (q15_t)0xCBF3, (q15_t)0x8B0F, - (q15_t)0xCC21, (q15_t)0x8AFB, (q15_t)0xCC4F, (q15_t)0x8AE6, - (q15_t)0xCC7D, (q15_t)0x8AD2, (q15_t)0xCCAB, (q15_t)0x8ABE, - (q15_t)0xCCD9, (q15_t)0x8AAA, (q15_t)0xCD07, (q15_t)0x8A96, - (q15_t)0xCD35, (q15_t)0x8A82, (q15_t)0xCD63, (q15_t)0x8A6E, - (q15_t)0xCD91, (q15_t)0x8A5A, (q15_t)0xCDBF, (q15_t)0x8A46, - (q15_t)0xCDEE, (q15_t)0x8A33, (q15_t)0xCE1C, (q15_t)0x8A1F, - (q15_t)0xCE4A, (q15_t)0x8A0B, (q15_t)0xCE79, (q15_t)0x89F8, - (q15_t)0xCEA7, (q15_t)0x89E4, (q15_t)0xCED5, (q15_t)0x89D1, - (q15_t)0xCF04, (q15_t)0x89BE, (q15_t)0xCF32, (q15_t)0x89AB, - (q15_t)0xCF61, (q15_t)0x8997, (q15_t)0xCF8F, (q15_t)0x8984, - (q15_t)0xCFBE, (q15_t)0x8971, (q15_t)0xCFEC, (q15_t)0x895F, - (q15_t)0xD01B, (q15_t)0x894C, (q15_t)0xD04A, (q15_t)0x8939, - (q15_t)0xD078, (q15_t)0x8926, (q15_t)0xD0A7, (q15_t)0x8914, - (q15_t)0xD0D6, (q15_t)0x8901, (q15_t)0xD104, (q15_t)0x88EF, - (q15_t)0xD133, (q15_t)0x88DC, (q15_t)0xD162, (q15_t)0x88CA, - (q15_t)0xD191, (q15_t)0x88B8, (q15_t)0xD1C0, (q15_t)0x88A5, - (q15_t)0xD1EE, (q15_t)0x8893, (q15_t)0xD21D, (q15_t)0x8881, - (q15_t)0xD24C, (q15_t)0x886F, (q15_t)0xD27B, (q15_t)0x885D, - (q15_t)0xD2AA, (q15_t)0x884B, (q15_t)0xD2D9, (q15_t)0x883A, - (q15_t)0xD308, (q15_t)0x8828, (q15_t)0xD337, (q15_t)0x8816, - (q15_t)0xD367, (q15_t)0x8805, (q15_t)0xD396, (q15_t)0x87F3, - (q15_t)0xD3C5, (q15_t)0x87E2, (q15_t)0xD3F4, (q15_t)0x87D1, - (q15_t)0xD423, (q15_t)0x87BF, (q15_t)0xD452, (q15_t)0x87AE, - (q15_t)0xD482, (q15_t)0x879D, (q15_t)0xD4B1, (q15_t)0x878C, - (q15_t)0xD4E0, (q15_t)0x877B, (q15_t)0xD510, (q15_t)0x876A, - (q15_t)0xD53F, (q15_t)0x8759, (q15_t)0xD56E, (q15_t)0x8749, - (q15_t)0xD59E, (q15_t)0x8738, (q15_t)0xD5CD, (q15_t)0x8727, - (q15_t)0xD5FD, (q15_t)0x8717, (q15_t)0xD62C, (q15_t)0x8706, - (q15_t)0xD65C, (q15_t)0x86F6, (q15_t)0xD68B, (q15_t)0x86E6, - (q15_t)0xD6BB, (q15_t)0x86D5, (q15_t)0xD6EA, (q15_t)0x86C5, - (q15_t)0xD71A, (q15_t)0x86B5, (q15_t)0xD74A, (q15_t)0x86A5, - (q15_t)0xD779, (q15_t)0x8695, (q15_t)0xD7A9, (q15_t)0x8685, - (q15_t)0xD7D9, (q15_t)0x8675, (q15_t)0xD809, (q15_t)0x8666, - (q15_t)0xD838, (q15_t)0x8656, (q15_t)0xD868, (q15_t)0x8646, - (q15_t)0xD898, (q15_t)0x8637, (q15_t)0xD8C8, (q15_t)0x8627, - (q15_t)0xD8F8, (q15_t)0x8618, (q15_t)0xD927, (q15_t)0x8609, - (q15_t)0xD957, (q15_t)0x85FA, (q15_t)0xD987, (q15_t)0x85EA, - (q15_t)0xD9B7, (q15_t)0x85DB, (q15_t)0xD9E7, (q15_t)0x85CC, - (q15_t)0xDA17, (q15_t)0x85BD, (q15_t)0xDA47, (q15_t)0x85AF, - (q15_t)0xDA77, (q15_t)0x85A0, (q15_t)0xDAA7, (q15_t)0x8591, - (q15_t)0xDAD7, (q15_t)0x8582, (q15_t)0xDB08, (q15_t)0x8574, - (q15_t)0xDB38, (q15_t)0x8565, (q15_t)0xDB68, (q15_t)0x8557, - (q15_t)0xDB98, (q15_t)0x8549, (q15_t)0xDBC8, (q15_t)0x853A, - (q15_t)0xDBF8, (q15_t)0x852C, (q15_t)0xDC29, (q15_t)0x851E, - (q15_t)0xDC59, (q15_t)0x8510, (q15_t)0xDC89, (q15_t)0x8502, - (q15_t)0xDCBA, (q15_t)0x84F4, (q15_t)0xDCEA, (q15_t)0x84E6, - (q15_t)0xDD1A, (q15_t)0x84D9, (q15_t)0xDD4B, (q15_t)0x84CB, - (q15_t)0xDD7B, (q15_t)0x84BD, (q15_t)0xDDAB, (q15_t)0x84B0, - (q15_t)0xDDDC, (q15_t)0x84A2, (q15_t)0xDE0C, (q15_t)0x8495, - (q15_t)0xDE3D, (q15_t)0x8488, (q15_t)0xDE6D, (q15_t)0x847B, - (q15_t)0xDE9E, (q15_t)0x846D, (q15_t)0xDECE, (q15_t)0x8460, - (q15_t)0xDEFF, (q15_t)0x8453, (q15_t)0xDF2F, (q15_t)0x8446, - (q15_t)0xDF60, (q15_t)0x843A, (q15_t)0xDF91, (q15_t)0x842D, - (q15_t)0xDFC1, (q15_t)0x8420, (q15_t)0xDFF2, (q15_t)0x8414, - (q15_t)0xE023, (q15_t)0x8407, (q15_t)0xE053, (q15_t)0x83FA, - (q15_t)0xE084, (q15_t)0x83EE, (q15_t)0xE0B5, (q15_t)0x83E2, - (q15_t)0xE0E6, (q15_t)0x83D6, (q15_t)0xE116, (q15_t)0x83C9, - (q15_t)0xE147, (q15_t)0x83BD, (q15_t)0xE178, (q15_t)0x83B1, - (q15_t)0xE1A9, (q15_t)0x83A5, (q15_t)0xE1DA, (q15_t)0x8399, - (q15_t)0xE20A, (q15_t)0x838E, (q15_t)0xE23B, (q15_t)0x8382, - (q15_t)0xE26C, (q15_t)0x8376, (q15_t)0xE29D, (q15_t)0x836B, - (q15_t)0xE2CE, (q15_t)0x835F, (q15_t)0xE2FF, (q15_t)0x8354, - (q15_t)0xE330, (q15_t)0x8348, (q15_t)0xE361, (q15_t)0x833D, - (q15_t)0xE392, (q15_t)0x8332, (q15_t)0xE3C3, (q15_t)0x8327, - (q15_t)0xE3F4, (q15_t)0x831C, (q15_t)0xE425, (q15_t)0x8311, - (q15_t)0xE456, (q15_t)0x8306, (q15_t)0xE487, (q15_t)0x82FB, - (q15_t)0xE4B8, (q15_t)0x82F0, (q15_t)0xE4E9, (q15_t)0x82E6, - (q15_t)0xE51B, (q15_t)0x82DB, (q15_t)0xE54C, (q15_t)0x82D0, - (q15_t)0xE57D, (q15_t)0x82C6, (q15_t)0xE5AE, (q15_t)0x82BC, - (q15_t)0xE5DF, (q15_t)0x82B1, (q15_t)0xE610, (q15_t)0x82A7, - (q15_t)0xE642, (q15_t)0x829D, (q15_t)0xE673, (q15_t)0x8293, - (q15_t)0xE6A4, (q15_t)0x8289, (q15_t)0xE6D5, (q15_t)0x827F, - (q15_t)0xE707, (q15_t)0x8275, (q15_t)0xE738, (q15_t)0x826B, - (q15_t)0xE769, (q15_t)0x8262, (q15_t)0xE79B, (q15_t)0x8258, - (q15_t)0xE7CC, (q15_t)0x824F, (q15_t)0xE7FD, (q15_t)0x8245, - (q15_t)0xE82F, (q15_t)0x823C, (q15_t)0xE860, (q15_t)0x8232, - (q15_t)0xE892, (q15_t)0x8229, (q15_t)0xE8C3, (q15_t)0x8220, - (q15_t)0xE8F5, (q15_t)0x8217, (q15_t)0xE926, (q15_t)0x820E, - (q15_t)0xE957, (q15_t)0x8205, (q15_t)0xE989, (q15_t)0x81FC, - (q15_t)0xE9BA, (q15_t)0x81F3, (q15_t)0xE9EC, (q15_t)0x81EB, - (q15_t)0xEA1D, (q15_t)0x81E2, (q15_t)0xEA4F, (q15_t)0x81D9, - (q15_t)0xEA80, (q15_t)0x81D1, (q15_t)0xEAB2, (q15_t)0x81C8, - (q15_t)0xEAE4, (q15_t)0x81C0, (q15_t)0xEB15, (q15_t)0x81B8, - (q15_t)0xEB47, (q15_t)0x81B0, (q15_t)0xEB78, (q15_t)0x81A8, - (q15_t)0xEBAA, (q15_t)0x81A0, (q15_t)0xEBDC, (q15_t)0x8198, - (q15_t)0xEC0D, (q15_t)0x8190, (q15_t)0xEC3F, (q15_t)0x8188, - (q15_t)0xEC71, (q15_t)0x8180, (q15_t)0xECA2, (q15_t)0x8179, - (q15_t)0xECD4, (q15_t)0x8171, (q15_t)0xED06, (q15_t)0x816A, - (q15_t)0xED37, (q15_t)0x8162, (q15_t)0xED69, (q15_t)0x815B, - (q15_t)0xED9B, (q15_t)0x8154, (q15_t)0xEDCD, (q15_t)0x814C, - (q15_t)0xEDFE, (q15_t)0x8145, (q15_t)0xEE30, (q15_t)0x813E, - (q15_t)0xEE62, (q15_t)0x8137, (q15_t)0xEE94, (q15_t)0x8130, - (q15_t)0xEEC6, (q15_t)0x812A, (q15_t)0xEEF7, (q15_t)0x8123, - (q15_t)0xEF29, (q15_t)0x811C, (q15_t)0xEF5B, (q15_t)0x8116, - (q15_t)0xEF8D, (q15_t)0x810F, (q15_t)0xEFBF, (q15_t)0x8109, - (q15_t)0xEFF1, (q15_t)0x8102, (q15_t)0xF022, (q15_t)0x80FC, - (q15_t)0xF054, (q15_t)0x80F6, (q15_t)0xF086, (q15_t)0x80F0, - (q15_t)0xF0B8, (q15_t)0x80EA, (q15_t)0xF0EA, (q15_t)0x80E4, - (q15_t)0xF11C, (q15_t)0x80DE, (q15_t)0xF14E, (q15_t)0x80D8, - (q15_t)0xF180, (q15_t)0x80D2, (q15_t)0xF1B2, (q15_t)0x80CD, - (q15_t)0xF1E4, (q15_t)0x80C7, (q15_t)0xF216, (q15_t)0x80C2, - (q15_t)0xF248, (q15_t)0x80BC, (q15_t)0xF27A, (q15_t)0x80B7, - (q15_t)0xF2AC, (q15_t)0x80B2, (q15_t)0xF2DE, (q15_t)0x80AC, - (q15_t)0xF310, (q15_t)0x80A7, (q15_t)0xF342, (q15_t)0x80A2, - (q15_t)0xF374, (q15_t)0x809D, (q15_t)0xF3A6, (q15_t)0x8098, - (q15_t)0xF3D8, (q15_t)0x8094, (q15_t)0xF40A, (q15_t)0x808F, - (q15_t)0xF43C, (q15_t)0x808A, (q15_t)0xF46E, (q15_t)0x8086, - (q15_t)0xF4A0, (q15_t)0x8081, (q15_t)0xF4D2, (q15_t)0x807D, - (q15_t)0xF504, (q15_t)0x8078, (q15_t)0xF536, (q15_t)0x8074, - (q15_t)0xF568, (q15_t)0x8070, (q15_t)0xF59A, (q15_t)0x806C, - (q15_t)0xF5CC, (q15_t)0x8068, (q15_t)0xF5FF, (q15_t)0x8064, - (q15_t)0xF631, (q15_t)0x8060, (q15_t)0xF663, (q15_t)0x805C, - (q15_t)0xF695, (q15_t)0x8058, (q15_t)0xF6C7, (q15_t)0x8055, - (q15_t)0xF6F9, (q15_t)0x8051, (q15_t)0xF72B, (q15_t)0x804E, - (q15_t)0xF75D, (q15_t)0x804A, (q15_t)0xF790, (q15_t)0x8047, - (q15_t)0xF7C2, (q15_t)0x8043, (q15_t)0xF7F4, (q15_t)0x8040, - (q15_t)0xF826, (q15_t)0x803D, (q15_t)0xF858, (q15_t)0x803A, - (q15_t)0xF88A, (q15_t)0x8037, (q15_t)0xF8BD, (q15_t)0x8034, - (q15_t)0xF8EF, (q15_t)0x8031, (q15_t)0xF921, (q15_t)0x802F, - (q15_t)0xF953, (q15_t)0x802C, (q15_t)0xF985, (q15_t)0x8029, - (q15_t)0xF9B8, (q15_t)0x8027, (q15_t)0xF9EA, (q15_t)0x8025, - (q15_t)0xFA1C, (q15_t)0x8022, (q15_t)0xFA4E, (q15_t)0x8020, - (q15_t)0xFA80, (q15_t)0x801E, (q15_t)0xFAB3, (q15_t)0x801C, - (q15_t)0xFAE5, (q15_t)0x801A, (q15_t)0xFB17, (q15_t)0x8018, - (q15_t)0xFB49, (q15_t)0x8016, (q15_t)0xFB7C, (q15_t)0x8014, - (q15_t)0xFBAE, (q15_t)0x8012, (q15_t)0xFBE0, (q15_t)0x8011, - (q15_t)0xFC12, (q15_t)0x800F, (q15_t)0xFC45, (q15_t)0x800D, - (q15_t)0xFC77, (q15_t)0x800C, (q15_t)0xFCA9, (q15_t)0x800B, - (q15_t)0xFCDB, (q15_t)0x8009, (q15_t)0xFD0E, (q15_t)0x8008, - (q15_t)0xFD40, (q15_t)0x8007, (q15_t)0xFD72, (q15_t)0x8006, - (q15_t)0xFDA4, (q15_t)0x8005, (q15_t)0xFDD7, (q15_t)0x8004, - (q15_t)0xFE09, (q15_t)0x8003, (q15_t)0xFE3B, (q15_t)0x8003, - (q15_t)0xFE6D, (q15_t)0x8002, (q15_t)0xFEA0, (q15_t)0x8001, - (q15_t)0xFED2, (q15_t)0x8001, (q15_t)0xFF04, (q15_t)0x8000, - (q15_t)0xFF36, (q15_t)0x8000, (q15_t)0xFF69, (q15_t)0x8000, - (q15_t)0xFF9B, (q15_t)0x8000, (q15_t)0xFFCD, (q15_t)0x8000 -}; - - -/** -* @} end of CFFT_CIFFT group -*/ - -/* -* @brief Q15 table for reciprocal -*/ -const q15_t ALIGN4 armRecipTableQ15[64] = { - 0x7F03, 0x7D13, 0x7B31, 0x795E, 0x7798, 0x75E0, - 0x7434, 0x7294, 0x70FF, 0x6F76, 0x6DF6, 0x6C82, - 0x6B16, 0x69B5, 0x685C, 0x670C, 0x65C4, 0x6484, - 0x634C, 0x621C, 0x60F3, 0x5FD0, 0x5EB5, 0x5DA0, - 0x5C91, 0x5B88, 0x5A85, 0x5988, 0x5890, 0x579E, - 0x56B0, 0x55C8, 0x54E4, 0x5405, 0x532B, 0x5255, - 0x5183, 0x50B6, 0x4FEC, 0x4F26, 0x4E64, 0x4DA6, - 0x4CEC, 0x4C34, 0x4B81, 0x4AD0, 0x4A23, 0x4978, - 0x48D1, 0x482D, 0x478C, 0x46ED, 0x4651, 0x45B8, - 0x4521, 0x448D, 0x43FC, 0x436C, 0x42DF, 0x4255, - 0x41CC, 0x4146, 0x40C2, 0x4040 -}; - -/* -* @brief Q31 table for reciprocal -*/ -const q31_t armRecipTableQ31[64] = { - 0x7F03F03F, 0x7D137420, 0x7B31E739, 0x795E9F94, 0x7798FD29, 0x75E06928, - 0x7434554D, 0x72943B4B, 0x70FF9C40, 0x6F760031, 0x6DF6F593, 0x6C8210E3, - 0x6B16EC3A, 0x69B526F6, 0x685C655F, 0x670C505D, 0x65C4952D, 0x6484E519, - 0x634CF53E, 0x621C7E4F, 0x60F33C61, 0x5FD0EEB3, 0x5EB55785, 0x5DA03BEB, - 0x5C9163A1, 0x5B8898E6, 0x5A85A85A, 0x598860DF, 0x58909373, 0x579E1318, - 0x56B0B4B8, 0x55C84F0B, 0x54E4BA80, 0x5405D124, 0x532B6E8F, 0x52556FD0, - 0x5183B35A, 0x50B618F3, 0x4FEC81A2, 0x4F26CFA2, 0x4E64E64E, 0x4DA6AA1D, - 0x4CEC008B, 0x4C34D010, 0x4B810016, 0x4AD078EF, 0x4A2323C4, 0x4978EA96, - 0x48D1B827, 0x482D77FE, 0x478C1657, 0x46ED801D, 0x4651A2E5, 0x45B86CE2, - 0x4521CCE1, 0x448DB244, 0x43FC0CFA, 0x436CCD78, 0x42DFE4B4, 0x42554426, - 0x41CCDDB6, 0x4146A3C6, 0x40C28923, 0x40408102 -}; - -const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE_16_TABLE_LENGTH] = -{ - /* 8x2, size 20 */ - 8,64, 24,72, 16,64, 40,80, 32,64, 56,88, 48,72, 88,104, 72,96, 104,112 -}; - -const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE_32_TABLE_LENGTH] = -{ - /* 8x4, size 48 */ - 8,64, 16,128, 24,192, 32,64, 40,72, 48,136, 56,200, 64,128, 72,80, 88,208, - 80,144, 96,192, 104,208, 112,152, 120,216, 136,192, 144,160, 168,208, - 152,224, 176,208, 184,232, 216,240, 200,224, 232,240 -}; - -const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE_64_TABLE_LENGTH] = -{ - /* radix 8, size 56 */ - 8,64, 16,128, 24,192, 32,256, 40,320, 48,384, 56,448, 80,136, 88,200, - 96,264, 104,328, 112,392, 120,456, 152,208, 160,272, 168,336, 176,400, - 184,464, 224,280, 232,344, 240,408, 248,472, 296,352, 304,416, 312,480, - 368,424, 376,488, 440,496 -}; - -const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH] = -{ - /* 8x2, size 208 */ - 8,512, 16,64, 24,576, 32,128, 40,640, 48,192, 56,704, 64,256, 72,768, - 80,320, 88,832, 96,384, 104,896, 112,448, 120,960, 128,512, 136,520, - 144,768, 152,584, 160,520, 168,648, 176,200, 184,712, 192,264, 200,776, - 208,328, 216,840, 224,392, 232,904, 240,456, 248,968, 264,528, 272,320, - 280,592, 288,768, 296,656, 304,328, 312,720, 328,784, 344,848, 352,400, - 360,912, 368,464, 376,976, 384,576, 392,536, 400,832, 408,600, 416,584, - 424,664, 432,840, 440,728, 448,592, 456,792, 464,848, 472,856, 480,600, - 488,920, 496,856, 504,984, 520,544, 528,576, 536,608, 552,672, 560,608, - 568,736, 576,768, 584,800, 592,832, 600,864, 608,800, 616,928, 624,864, - 632,992, 648,672, 656,896, 664,928, 688,904, 696,744, 704,896, 712,808, - 720,912, 728,872, 736,928, 744,936, 752,920, 760,1000, 776,800, 784,832, - 792,864, 808,904, 816,864, 824,920, 840,864, 856,880, 872,944, 888,1008, - 904,928, 912,960, 920,992, 944,968, 952,1000, 968,992, 984,1008 -}; - -const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH] = -{ - /* 8x4, size 440 */ - 8,512, 16,1024, 24,1536, 32,64, 40,576, 48,1088, 56,1600, 64,128, 72,640, - 80,1152, 88,1664, 96,192, 104,704, 112,1216, 120,1728, 128,256, 136,768, - 144,1280, 152,1792, 160,320, 168,832, 176,1344, 184,1856, 192,384, - 200,896, 208,1408, 216,1920, 224,448, 232,960, 240,1472, 248,1984, - 256,512, 264,520, 272,1032, 280,1544, 288,640, 296,584, 304,1096, 312,1608, - 320,768, 328,648, 336,1160, 344,1672, 352,896, 360,712, 368,1224, 376,1736, - 384,520, 392,776, 400,1288, 408,1800, 416,648, 424,840, 432,1352, 440,1864, - 448,776, 456,904, 464,1416, 472,1928, 480,904, 488,968, 496,1480, 504,1992, - 520,528, 512,1024, 528,1040, 536,1552, 544,1152, 552,592, 560,1104, - 568,1616, 576,1280, 584,656, 592,1168, 600,1680, 608,1408, 616,720, - 624,1232, 632,1744, 640,1032, 648,784, 656,1296, 664,1808, 672,1160, - 680,848, 688,1360, 696,1872, 704,1288, 712,912, 720,1424, 728,1936, - 736,1416, 744,976, 752,1488, 760,2000, 768,1536, 776,1552, 784,1048, - 792,1560, 800,1664, 808,1680, 816,1112, 824,1624, 832,1792, 840,1808, - 848,1176, 856,1688, 864,1920, 872,1936, 880,1240, 888,1752, 896,1544, - 904,1560, 912,1304, 920,1816, 928,1672, 936,1688, 944,1368, 952,1880, - 960,1800, 968,1816, 976,1432, 984,1944, 992,1928, 1000,1944, 1008,1496, - 1016,2008, 1032,1152, 1040,1056, 1048,1568, 1064,1408, 1072,1120, - 1080,1632, 1088,1536, 1096,1160, 1104,1184, 1112,1696, 1120,1552, - 1128,1416, 1136,1248, 1144,1760, 1160,1664, 1168,1312, 1176,1824, - 1184,1544, 1192,1920, 1200,1376, 1208,1888, 1216,1568, 1224,1672, - 1232,1440, 1240,1952, 1248,1560, 1256,1928, 1264,1504, 1272,2016, - 1288,1312, 1296,1408, 1304,1576, 1320,1424, 1328,1416, 1336,1640, - 1344,1792, 1352,1824, 1360,1920, 1368,1704, 1376,1800, 1384,1432, - 1392,1928, 1400,1768, 1416,1680, 1432,1832, 1440,1576, 1448,1936, - 1456,1832, 1464,1896, 1472,1808, 1480,1688, 1488,1936, 1496,1960, - 1504,1816, 1512,1944, 1520,1944, 1528,2024, 1560,1584, 1592,1648, - 1600,1792, 1608,1920, 1616,1800, 1624,1712, 1632,1808, 1640,1936, - 1648,1816, 1656,1776, 1672,1696, 1688,1840, 1704,1952, 1712,1928, - 1720,1904, 1728,1824, 1736,1952, 1744,1832, 1752,1968, 1760,1840, - 1768,1960, 1776,1944, 1784,2032, 1864,1872, 1848,1944, 1872,1888, - 1880,1904, 1888,1984, 1896,2000, 1912,2032, 1904,2016, 1976,2032, - 1960,1968, 2008,2032, 1992,2016, 2024,2032 -}; - -const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH] = -{ - /* radix 8, size 448 */ - 8,512, 16,1024, 24,1536, 32,2048, 40,2560, 48,3072, 56,3584, 72,576, - 80,1088, 88,1600, 96,2112, 104,2624, 112,3136, 120,3648, 136,640, 144,1152, - 152,1664, 160,2176, 168,2688, 176,3200, 184,3712, 200,704, 208,1216, - 216,1728, 224,2240, 232,2752, 240,3264, 248,3776, 264,768, 272,1280, - 280,1792, 288,2304, 296,2816, 304,3328, 312,3840, 328,832, 336,1344, - 344,1856, 352,2368, 360,2880, 368,3392, 376,3904, 392,896, 400,1408, - 408,1920, 416,2432, 424,2944, 432,3456, 440,3968, 456,960, 464,1472, - 472,1984, 480,2496, 488,3008, 496,3520, 504,4032, 528,1032, 536,1544, - 544,2056, 552,2568, 560,3080, 568,3592, 592,1096, 600,1608, 608,2120, - 616,2632, 624,3144, 632,3656, 656,1160, 664,1672, 672,2184, 680,2696, - 688,3208, 696,3720, 720,1224, 728,1736, 736,2248, 744,2760, 752,3272, - 760,3784, 784,1288, 792,1800, 800,2312, 808,2824, 816,3336, 824,3848, - 848,1352, 856,1864, 864,2376, 872,2888, 880,3400, 888,3912, 912,1416, - 920,1928, 928,2440, 936,2952, 944,3464, 952,3976, 976,1480, 984,1992, - 992,2504, 1000,3016, 1008,3528, 1016,4040, 1048,1552, 1056,2064, 1064,2576, - 1072,3088, 1080,3600, 1112,1616, 1120,2128, 1128,2640, 1136,3152, - 1144,3664, 1176,1680, 1184,2192, 1192,2704, 1200,3216, 1208,3728, - 1240,1744, 1248,2256, 1256,2768, 1264,3280, 1272,3792, 1304,1808, - 1312,2320, 1320,2832, 1328,3344, 1336,3856, 1368,1872, 1376,2384, - 1384,2896, 1392,3408, 1400,3920, 1432,1936, 1440,2448, 1448,2960, - 1456,3472, 1464,3984, 1496,2000, 1504,2512, 1512,3024, 1520,3536, - 1528,4048, 1568,2072, 1576,2584, 1584,3096, 1592,3608, 1632,2136, - 1640,2648, 1648,3160, 1656,3672, 1696,2200, 1704,2712, 1712,3224, - 1720,3736, 1760,2264, 1768,2776, 1776,3288, 1784,3800, 1824,2328, - 1832,2840, 1840,3352, 1848,3864, 1888,2392, 1896,2904, 1904,3416, - 1912,3928, 1952,2456, 1960,2968, 1968,3480, 1976,3992, 2016,2520, - 2024,3032, 2032,3544, 2040,4056, 2088,2592, 2096,3104, 2104,3616, - 2152,2656, 2160,3168, 2168,3680, 2216,2720, 2224,3232, 2232,3744, - 2280,2784, 2288,3296, 2296,3808, 2344,2848, 2352,3360, 2360,3872, - 2408,2912, 2416,3424, 2424,3936, 2472,2976, 2480,3488, 2488,4000, - 2536,3040, 2544,3552, 2552,4064, 2608,3112, 2616,3624, 2672,3176, - 2680,3688, 2736,3240, 2744,3752, 2800,3304, 2808,3816, 2864,3368, - 2872,3880, 2928,3432, 2936,3944, 2992,3496, 3000,4008, 3056,3560, - 3064,4072, 3128,3632, 3192,3696, 3256,3760, 3320,3824, 3384,3888, - 3448,3952, 3512,4016, 3576,4080 -}; - -const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE_1024_TABLE_LENGTH] = -{ - /* 8x2, size 1800 */ - 8,4096, 16,512, 24,4608, 32,1024, 40,5120, 48,1536, 56,5632, 64,2048, - 72,6144, 80,2560, 88,6656, 96,3072, 104,7168, 112,3584, 120,7680, 128,2048, - 136,4160, 144,576, 152,4672, 160,1088, 168,5184, 176,1600, 184,5696, - 192,2112, 200,6208, 208,2624, 216,6720, 224,3136, 232,7232, 240,3648, - 248,7744, 256,2048, 264,4224, 272,640, 280,4736, 288,1152, 296,5248, - 304,1664, 312,5760, 320,2176, 328,6272, 336,2688, 344,6784, 352,3200, - 360,7296, 368,3712, 376,7808, 384,2112, 392,4288, 400,704, 408,4800, - 416,1216, 424,5312, 432,1728, 440,5824, 448,2240, 456,6336, 464,2752, - 472,6848, 480,3264, 488,7360, 496,3776, 504,7872, 512,2048, 520,4352, - 528,768, 536,4864, 544,1280, 552,5376, 560,1792, 568,5888, 576,2304, - 584,6400, 592,2816, 600,6912, 608,3328, 616,7424, 624,3840, 632,7936, - 640,2176, 648,4416, 656,832, 664,4928, 672,1344, 680,5440, 688,1856, - 696,5952, 704,2368, 712,6464, 720,2880, 728,6976, 736,3392, 744,7488, - 752,3904, 760,8000, 768,2112, 776,4480, 784,896, 792,4992, 800,1408, - 808,5504, 816,1920, 824,6016, 832,2432, 840,6528, 848,2944, 856,7040, - 864,3456, 872,7552, 880,3968, 888,8064, 896,2240, 904,4544, 912,960, - 920,5056, 928,1472, 936,5568, 944,1984, 952,6080, 960,2496, 968,6592, - 976,3008, 984,7104, 992,3520, 1000,7616, 1008,4032, 1016,8128, 1024,4096, - 1032,4104, 1040,4352, 1048,4616, 1056,4104, 1064,5128, 1072,1544, - 1080,5640, 1088,2056, 1096,6152, 1104,2568, 1112,6664, 1120,3080, - 1128,7176, 1136,3592, 1144,7688, 1152,6144, 1160,4168, 1168,6400, - 1176,4680, 1184,6152, 1192,5192, 1200,1608, 1208,5704, 1216,2120, - 1224,6216, 1232,2632, 1240,6728, 1248,3144, 1256,7240, 1264,3656, - 1272,7752, 1280,4160, 1288,4232, 1296,4416, 1304,4744, 1312,4168, - 1320,5256, 1328,1672, 1336,5768, 1344,2184, 1352,6280, 1360,2696, - 1368,6792, 1376,3208, 1384,7304, 1392,3720, 1400,7816, 1408,6208, - 1416,4296, 1424,6464, 1432,4808, 1440,6216, 1448,5320, 1456,1736, - 1464,5832, 1472,2248, 1480,6344, 1488,2760, 1496,6856, 1504,3272, - 1512,7368, 1520,3784, 1528,7880, 1536,4224, 1544,4360, 1552,4480, - 1560,4872, 1568,4232, 1576,5384, 1584,1800, 1592,5896, 1600,2312, - 1608,6408, 1616,2824, 1624,6920, 1632,3336, 1640,7432, 1648,3848, - 1656,7944, 1664,6272, 1672,4424, 1680,6528, 1688,4936, 1696,6280, - 1704,5448, 1712,1864, 1720,5960, 1728,2376, 1736,6472, 1744,2888, - 1752,6984, 1760,3400, 1768,7496, 1776,3912, 1784,8008, 1792,4288, - 1800,4488, 1808,4544, 1816,5000, 1824,4296, 1832,5512, 1840,1928, - 1848,6024, 1856,2440, 1864,6536, 1872,2952, 1880,7048, 1888,3464, - 1896,7560, 1904,3976, 1912,8072, 1920,6336, 1928,4552, 1936,6592, - 1944,5064, 1952,6344, 1960,5576, 1968,1992, 1976,6088, 1984,2504, - 1992,6600, 2000,3016, 2008,7112, 2016,3528, 2024,7624, 2032,4040, - 2040,8136, 2056,4112, 2064,2112, 2072,4624, 2080,4352, 2088,5136, - 2096,4480, 2104,5648, 2120,6160, 2128,2576, 2136,6672, 2144,3088, - 2152,7184, 2160,3600, 2168,7696, 2176,2560, 2184,4176, 2192,2816, - 2200,4688, 2208,2568, 2216,5200, 2224,2824, 2232,5712, 2240,2576, - 2248,6224, 2256,2640, 2264,6736, 2272,3152, 2280,7248, 2288,3664, - 2296,7760, 2312,4240, 2320,2432, 2328,4752, 2336,6400, 2344,5264, - 2352,6528, 2360,5776, 2368,2816, 2376,6288, 2384,2704, 2392,6800, - 2400,3216, 2408,7312, 2416,3728, 2424,7824, 2432,2624, 2440,4304, - 2448,2880, 2456,4816, 2464,2632, 2472,5328, 2480,2888, 2488,5840, - 2496,2640, 2504,6352, 2512,2768, 2520,6864, 2528,3280, 2536,7376, - 2544,3792, 2552,7888, 2568,4368, 2584,4880, 2592,4416, 2600,5392, - 2608,4544, 2616,5904, 2632,6416, 2640,2832, 2648,6928, 2656,3344, - 2664,7440, 2672,3856, 2680,7952, 2696,4432, 2704,2944, 2712,4944, - 2720,4432, 2728,5456, 2736,2952, 2744,5968, 2752,2944, 2760,6480, - 2768,2896, 2776,6992, 2784,3408, 2792,7504, 2800,3920, 2808,8016, - 2824,4496, 2840,5008, 2848,6464, 2856,5520, 2864,6592, 2872,6032, - 2888,6544, 2896,2960, 2904,7056, 2912,3472, 2920,7568, 2928,3984, - 2936,8080, 2952,4560, 2960,3008, 2968,5072, 2976,6480, 2984,5584, - 2992,3016, 3000,6096, 3016,6608, 3032,7120, 3040,3536, 3048,7632, - 3056,4048, 3064,8144, 3072,4608, 3080,4120, 3088,4864, 3096,4632, - 3104,4616, 3112,5144, 3120,4872, 3128,5656, 3136,4624, 3144,6168, - 3152,4880, 3160,6680, 3168,4632, 3176,7192, 3184,3608, 3192,7704, - 3200,6656, 3208,4184, 3216,6912, 3224,4696, 3232,6664, 3240,5208, - 3248,6920, 3256,5720, 3264,6672, 3272,6232, 3280,6928, 3288,6744, - 3296,6680, 3304,7256, 3312,3672, 3320,7768, 3328,4672, 3336,4248, - 3344,4928, 3352,4760, 3360,4680, 3368,5272, 3376,4936, 3384,5784, - 3392,4688, 3400,6296, 3408,4944, 3416,6808, 3424,4696, 3432,7320, - 3440,3736, 3448,7832, 3456,6720, 3464,4312, 3472,6976, 3480,4824, - 3488,6728, 3496,5336, 3504,6984, 3512,5848, 3520,6736, 3528,6360, - 3536,6992, 3544,6872, 3552,6744, 3560,7384, 3568,3800, 3576,7896, - 3584,4736, 3592,4376, 3600,4992, 3608,4888, 3616,4744, 3624,5400, - 3632,5000, 3640,5912, 3648,4752, 3656,6424, 3664,5008, 3672,6936, - 3680,4760, 3688,7448, 3696,3864, 3704,7960, 3712,6784, 3720,4440, - 3728,7040, 3736,4952, 3744,6792, 3752,5464, 3760,7048, 3768,5976, - 3776,6800, 3784,6488, 3792,7056, 3800,7000, 3808,6808, 3816,7512, - 3824,3928, 3832,8024, 3840,4800, 3848,4504, 3856,5056, 3864,5016, - 3872,4808, 3880,5528, 3888,5064, 3896,6040, 3904,4816, 3912,6552, - 3920,5072, 3928,7064, 3936,4824, 3944,7576, 3952,3992, 3960,8088, - 3968,6848, 3976,4568, 3984,7104, 3992,5080, 4000,6856, 4008,5592, - 4016,7112, 4024,6104, 4032,6864, 4040,6616, 4048,7120, 4056,7128, - 4064,6872, 4072,7640, 4080,7128, 4088,8152, 4104,4128, 4112,4160, - 4120,4640, 4136,5152, 4144,4232, 4152,5664, 4160,4352, 4168,6176, - 4176,4416, 4184,6688, 4192,4616, 4200,7200, 4208,4744, 4216,7712, - 4224,4608, 4232,4616, 4240,4672, 4248,4704, 4256,4640, 4264,5216, - 4272,4704, 4280,5728, 4288,4864, 4296,6240, 4304,4928, 4312,6752, - 4320,4632, 4328,7264, 4336,4760, 4344,7776, 4360,4640, 4368,4416, - 4376,4768, 4384,6152, 4392,5280, 4400,6280, 4408,5792, 4424,6304, - 4440,6816, 4448,6664, 4456,7328, 4464,6792, 4472,7840, 4480,4624, - 4488,4632, 4496,4688, 4504,4832, 4512,6168, 4520,5344, 4528,6296, - 4536,5856, 4544,4880, 4552,6368, 4560,4944, 4568,6880, 4576,6680, - 4584,7392, 4592,6808, 4600,7904, 4608,6144, 4616,6152, 4624,6208, - 4632,4896, 4640,6176, 4648,5408, 4656,6240, 4664,5920, 4672,6400, - 4680,6432, 4688,6464, 4696,6944, 4704,6432, 4712,7456, 4720,4808, - 4728,7968, 4736,6656, 4744,6664, 4752,6720, 4760,4960, 4768,6688, - 4776,5472, 4784,6752, 4792,5984, 4800,6912, 4808,6496, 4816,6976, - 4824,7008, 4832,6944, 4840,7520, 4848,7008, 4856,8032, 4864,6160, - 4872,6168, 4880,6224, 4888,5024, 4896,6216, 4904,5536, 4912,6344, - 4920,6048, 4928,6416, 4936,6560, 4944,6480, 4952,7072, 4960,6728, - 4968,7584, 4976,6856, 4984,8096, 4992,6672, 5000,6680, 5008,6736, - 5016,5088, 5024,6232, 5032,5600, 5040,6360, 5048,6112, 5056,6928, - 5064,6624, 5072,6992, 5080,7136, 5088,6744, 5096,7648, 5104,6872, - 5112,8160, 5128,5152, 5136,5376, 5144,5408, 5168,5384, 5176,5672, - 5184,5376, 5192,6184, 5200,5392, 5208,6696, 5216,5408, 5224,7208, - 5232,5400, 5240,7720, 5248,7168, 5256,7200, 5264,7424, 5272,7456, - 5280,7176, 5288,7208, 5296,7432, 5304,5736, 5312,7184, 5320,6248, - 5328,7440, 5336,6760, 5344,7192, 5352,7272, 5360,7448, 5368,7784, - 5384,5408, 5392,5440, 5400,5472, 5408,6184, 5416,7208, 5424,5448, - 5432,5800, 5448,6312, 5464,6824, 5472,6696, 5480,7336, 5488,6824, - 5496,7848, 5504,7232, 5512,7264, 5520,7488, 5528,7520, 5536,7240, - 5544,7272, 5552,7496, 5560,5864, 5568,7248, 5576,6376, 5584,7504, - 5592,6888, 5600,7256, 5608,7400, 5616,7512, 5624,7912, 5632,7168, - 5640,7176, 5648,7232, 5656,7240, 5664,7200, 5672,7208, 5680,7264, - 5688,5928, 5696,7424, 5704,6440, 5712,7488, 5720,6952, 5728,7456, - 5736,7464, 5744,7520, 5752,7976, 5760,7296, 5768,7328, 5776,7552, - 5784,7584, 5792,7304, 5800,7336, 5808,7560, 5816,5992, 5824,7312, - 5832,6504, 5840,7568, 5848,7016, 5856,7320, 5864,7528, 5872,7576, - 5880,8040, 5888,7184, 5896,7192, 5904,7248, 5912,7256, 5920,6248, - 5928,7272, 5936,6376, 5944,6056, 5952,7440, 5960,6568, 5968,7504, - 5976,7080, 5984,6760, 5992,7592, 6000,6888, 6008,8104, 6016,7360, - 6024,7392, 6032,7616, 6040,7648, 6048,7368, 6056,7400, 6064,7624, - 6072,6120, 6080,7376, 6088,6632, 6096,7632, 6104,7144, 6112,7384, - 6120,7656, 6128,7640, 6136,8168, 6168,6240, 6192,6216, 6200,7264, - 6232,6704, 6248,7216, 6256,6680, 6264,7728, 6272,6656, 6280,6664, - 6288,6912, 6296,6496, 6304,6688, 6312,6696, 6320,6944, 6328,7520, - 6336,6672, 6344,6680, 6352,6928, 6360,6768, 6368,6704, 6376,7280, - 6384,6744, 6392,7792, 6408,6432, 6424,6752, 6440,7432, 6448,6536, - 6456,7560, 6472,6944, 6488,6832, 6496,6920, 6504,7344, 6512,7048, - 6520,7856, 6528,6720, 6536,6728, 6544,6976, 6552,7008, 6560,6752, - 6568,7448, 6576,7008, 6584,7576, 6592,6736, 6600,6744, 6608,6992, - 6616,6896, 6624,6936, 6632,7408, 6640,7064, 6648,7920, 6712,7280, - 6744,6960, 6760,7472, 6768,6936, 6776,7984, 6800,6848, 6808,6856, - 6832,6880, 6840,6888, 6848,7040, 6856,7048, 6864,7104, 6872,7024, - 6880,7072, 6888,7536, 6896,7136, 6904,8048, 6952,7496, 6968,7624, - 6984,7008, 7000,7088, 7016,7600, 7024,7112, 7032,8112, 7056,7104, - 7064,7112, 7080,7512, 7088,7136, 7096,7640, 7128,7152, 7144,7664, - 7160,8176, 7176,7200, 7192,7216, 7224,7272, 7240,7264, 7256,7280, - 7288,7736, 7296,7680, 7304,7712, 7312,7936, 7320,7968, 7328,7688, - 7336,7720, 7344,7944, 7352,7976, 7360,7696, 7368,7728, 7376,7952, - 7384,7984, 7392,7704, 7400,7736, 7408,7960, 7416,7800, 7432,7456, - 7448,7472, 7480,7592, 7496,7520, 7512,7536, 7528,7976, 7544,7864, - 7552,7744, 7560,7776, 7568,8000, 7576,8032, 7584,7752, 7592,7784, - 7600,8008, 7608,8040, 7616,7760, 7624,7792, 7632,8016, 7640,8048, - 7648,7768, 7656,7800, 7664,8024, 7672,7928, 7688,7712, 7704,7728, - 7752,7776, 7768,7792, 7800,7992, 7816,7840, 7824,8064, 7832,8096, - 7856,8072, 7864,8104, 7872,8064, 7880,8072, 7888,8080, 7896,8112, - 7904,8096, 7912,8104, 7920,8088, 7928,8056, 7944,7968, 7960,7984, - 8008,8032, 8024,8048, 8056,8120, 8072,8096, 8080,8128, 8088,8160, - 8112,8136, 8120,8168, 8136,8160, 8152,8176 -}; - -const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE_2048_TABLE_LENGTH] = -{ - /* 8x2, size 3808 */ - 8,4096, 16,8192, 24,12288, 32,512, 40,4608, 48,8704, 56,12800, 64,1024, - 72,5120, 80,9216, 88,13312, 96,1536, 104,5632, 112,9728, 120,13824, - 128,2048, 136,6144, 144,10240, 152,14336, 160,2560, 168,6656, 176,10752, - 184,14848, 192,3072, 200,7168, 208,11264, 216,15360, 224,3584, 232,7680, - 240,11776, 248,15872, 256,1024, 264,4160, 272,8256, 280,12352, 288,576, - 296,4672, 304,8768, 312,12864, 320,1088, 328,5184, 336,9280, 344,13376, - 352,1600, 360,5696, 368,9792, 376,13888, 384,2112, 392,6208, 400,10304, - 408,14400, 416,2624, 424,6720, 432,10816, 440,14912, 448,3136, 456,7232, - 464,11328, 472,15424, 480,3648, 488,7744, 496,11840, 504,15936, 512,2048, - 520,4224, 528,8320, 536,12416, 544,640, 552,4736, 560,8832, 568,12928, - 576,1152, 584,5248, 592,9344, 600,13440, 608,1664, 616,5760, 624,9856, - 632,13952, 640,2176, 648,6272, 656,10368, 664,14464, 672,2688, 680,6784, - 688,10880, 696,14976, 704,3200, 712,7296, 720,11392, 728,15488, 736,3712, - 744,7808, 752,11904, 760,16000, 768,3072, 776,4288, 784,8384, 792,12480, - 800,3200, 808,4800, 816,8896, 824,12992, 832,1216, 840,5312, 848,9408, - 856,13504, 864,1728, 872,5824, 880,9920, 888,14016, 896,2240, 904,6336, - 912,10432, 920,14528, 928,2752, 936,6848, 944,10944, 952,15040, 960,3264, - 968,7360, 976,11456, 984,15552, 992,3776, 1000,7872, 1008,11968, 1016,16064, - 1032,4352, 1040,8448, 1048,12544, 1056,3072, 1064,4864, 1072,8960, - 1080,13056, 1088,1280, 1096,5376, 1104,9472, 1112,13568, 1120,1792, - 1128,5888, 1136,9984, 1144,14080, 1152,2304, 1160,6400, 1168,10496, - 1176,14592, 1184,2816, 1192,6912, 1200,11008, 1208,15104, 1216,3328, - 1224,7424, 1232,11520, 1240,15616, 1248,3840, 1256,7936, 1264,12032, - 1272,16128, 1288,4416, 1296,8512, 1304,12608, 1312,3328, 1320,4928, - 1328,9024, 1336,13120, 1352,5440, 1360,9536, 1368,13632, 1376,1856, - 1384,5952, 1392,10048, 1400,14144, 1408,2368, 1416,6464, 1424,10560, - 1432,14656, 1440,2880, 1448,6976, 1456,11072, 1464,15168, 1472,3392, - 1480,7488, 1488,11584, 1496,15680, 1504,3904, 1512,8000, 1520,12096, - 1528,16192, 1536,2112, 1544,4480, 1552,8576, 1560,12672, 1568,2240, - 1576,4992, 1584,9088, 1592,13184, 1600,2368, 1608,5504, 1616,9600, - 1624,13696, 1632,1920, 1640,6016, 1648,10112, 1656,14208, 1664,2432, - 1672,6528, 1680,10624, 1688,14720, 1696,2944, 1704,7040, 1712,11136, - 1720,15232, 1728,3456, 1736,7552, 1744,11648, 1752,15744, 1760,3968, - 1768,8064, 1776,12160, 1784,16256, 1792,3136, 1800,4544, 1808,8640, - 1816,12736, 1824,3264, 1832,5056, 1840,9152, 1848,13248, 1856,3392, - 1864,5568, 1872,9664, 1880,13760, 1888,1984, 1896,6080, 1904,10176, - 1912,14272, 1920,2496, 1928,6592, 1936,10688, 1944,14784, 1952,3008, - 1960,7104, 1968,11200, 1976,15296, 1984,3520, 1992,7616, 2000,11712, - 2008,15808, 2016,4032, 2024,8128, 2032,12224, 2040,16320, 2048,4096, - 2056,4104, 2064,8200, 2072,12296, 2080,4224, 2088,4616, 2096,8712, - 2104,12808, 2112,4352, 2120,5128, 2128,9224, 2136,13320, 2144,4480, - 2152,5640, 2160,9736, 2168,13832, 2176,4104, 2184,6152, 2192,10248, - 2200,14344, 2208,2568, 2216,6664, 2224,10760, 2232,14856, 2240,3080, - 2248,7176, 2256,11272, 2264,15368, 2272,3592, 2280,7688, 2288,11784, - 2296,15880, 2304,5120, 2312,4168, 2320,8264, 2328,12360, 2336,5248, - 2344,4680, 2352,8776, 2360,12872, 2368,5376, 2376,5192, 2384,9288, - 2392,13384, 2400,5504, 2408,5704, 2416,9800, 2424,13896, 2432,5128, - 2440,6216, 2448,10312, 2456,14408, 2464,2632, 2472,6728, 2480,10824, - 2488,14920, 2496,3144, 2504,7240, 2512,11336, 2520,15432, 2528,3656, - 2536,7752, 2544,11848, 2552,15944, 2560,6144, 2568,4232, 2576,8328, - 2584,12424, 2592,6272, 2600,4744, 2608,8840, 2616,12936, 2624,6400, - 2632,5256, 2640,9352, 2648,13448, 2656,6528, 2664,5768, 2672,9864, - 2680,13960, 2688,6152, 2696,6280, 2704,10376, 2712,14472, 2720,6280, - 2728,6792, 2736,10888, 2744,14984, 2752,3208, 2760,7304, 2768,11400, - 2776,15496, 2784,3720, 2792,7816, 2800,11912, 2808,16008, 2816,7168, - 2824,4296, 2832,8392, 2840,12488, 2848,7296, 2856,4808, 2864,8904, - 2872,13000, 2880,7424, 2888,5320, 2896,9416, 2904,13512, 2912,7552, - 2920,5832, 2928,9928, 2936,14024, 2944,7176, 2952,6344, 2960,10440, - 2968,14536, 2976,7304, 2984,6856, 2992,10952, 3000,15048, 3008,3272, - 3016,7368, 3024,11464, 3032,15560, 3040,3784, 3048,7880, 3056,11976, - 3064,16072, 3072,4160, 3080,4360, 3088,8456, 3096,12552, 3104,4288, - 3112,4872, 3120,8968, 3128,13064, 3136,4416, 3144,5384, 3152,9480, - 3160,13576, 3168,4544, 3176,5896, 3184,9992, 3192,14088, 3200,4168, - 3208,6408, 3216,10504, 3224,14600, 3232,4296, 3240,6920, 3248,11016, - 3256,15112, 3264,3336, 3272,7432, 3280,11528, 3288,15624, 3296,3848, - 3304,7944, 3312,12040, 3320,16136, 3328,5184, 3336,4424, 3344,8520, - 3352,12616, 3360,5312, 3368,4936, 3376,9032, 3384,13128, 3392,5440, - 3400,5448, 3408,9544, 3416,13640, 3424,5568, 3432,5960, 3440,10056, - 3448,14152, 3456,5192, 3464,6472, 3472,10568, 3480,14664, 3488,5320, - 3496,6984, 3504,11080, 3512,15176, 3520,5448, 3528,7496, 3536,11592, - 3544,15688, 3552,3912, 3560,8008, 3568,12104, 3576,16200, 3584,6208, - 3592,4488, 3600,8584, 3608,12680, 3616,6336, 3624,5000, 3632,9096, - 3640,13192, 3648,6464, 3656,5512, 3664,9608, 3672,13704, 3680,6592, - 3688,6024, 3696,10120, 3704,14216, 3712,6216, 3720,6536, 3728,10632, - 3736,14728, 3744,6344, 3752,7048, 3760,11144, 3768,15240, 3776,6472, - 3784,7560, 3792,11656, 3800,15752, 3808,3976, 3816,8072, 3824,12168, - 3832,16264, 3840,7232, 3848,4552, 3856,8648, 3864,12744, 3872,7360, - 3880,5064, 3888,9160, 3896,13256, 3904,7488, 3912,5576, 3920,9672, - 3928,13768, 3936,7616, 3944,6088, 3952,10184, 3960,14280, 3968,7240, - 3976,6600, 3984,10696, 3992,14792, 4000,7368, 4008,7112, 4016,11208, - 4024,15304, 4032,7496, 4040,7624, 4048,11720, 4056,15816, 4064,7624, - 4072,8136, 4080,12232, 4088,16328, 4096,8192, 4104,4112, 4112,8208, - 4120,12304, 4128,8320, 4136,4624, 4144,8720, 4152,12816, 4160,8448, - 4168,5136, 4176,9232, 4184,13328, 4192,8576, 4200,5648, 4208,9744, - 4216,13840, 4224,8200, 4232,6160, 4240,10256, 4248,14352, 4256,8328, - 4264,6672, 4272,10768, 4280,14864, 4288,8456, 4296,7184, 4304,11280, - 4312,15376, 4320,8584, 4328,7696, 4336,11792, 4344,15888, 4352,9216, - 4360,9232, 4368,8272, 4376,12368, 4384,9344, 4392,4688, 4400,8784, - 4408,12880, 4416,9472, 4424,5200, 4432,9296, 4440,13392, 4448,9600, - 4456,5712, 4464,9808, 4472,13904, 4480,9224, 4488,6224, 4496,10320, - 4504,14416, 4512,9352, 4520,6736, 4528,10832, 4536,14928, 4544,9480, - 4552,7248, 4560,11344, 4568,15440, 4576,9608, 4584,7760, 4592,11856, - 4600,15952, 4608,10240, 4616,10256, 4624,8336, 4632,12432, 4640,10368, - 4648,4752, 4656,8848, 4664,12944, 4672,10496, 4680,5264, 4688,9360, - 4696,13456, 4704,10624, 4712,5776, 4720,9872, 4728,13968, 4736,10248, - 4744,6288, 4752,10384, 4760,14480, 4768,10376, 4776,6800, 4784,10896, - 4792,14992, 4800,10504, 4808,7312, 4816,11408, 4824,15504, 4832,10632, - 4840,7824, 4848,11920, 4856,16016, 4864,11264, 4872,11280, 4880,8400, - 4888,12496, 4896,11392, 4904,11408, 4912,8912, 4920,13008, 4928,11520, - 4936,5328, 4944,9424, 4952,13520, 4960,11648, 4968,5840, 4976,9936, - 4984,14032, 4992,11272, 5000,6352, 5008,10448, 5016,14544, 5024,11400, - 5032,6864, 5040,10960, 5048,15056, 5056,11528, 5064,7376, 5072,11472, - 5080,15568, 5088,11656, 5096,7888, 5104,11984, 5112,16080, 5120,8256, - 5128,8272, 5136,8464, 5144,12560, 5152,8384, 5160,8400, 5168,8976, - 5176,13072, 5184,8512, 5192,5392, 5200,9488, 5208,13584, 5216,8640, - 5224,5904, 5232,10000, 5240,14096, 5248,8264, 5256,6416, 5264,10512, - 5272,14608, 5280,8392, 5288,6928, 5296,11024, 5304,15120, 5312,8520, - 5320,7440, 5328,11536, 5336,15632, 5344,8648, 5352,7952, 5360,12048, - 5368,16144, 5376,9280, 5384,9296, 5392,8528, 5400,12624, 5408,9408, - 5416,9424, 5424,9040, 5432,13136, 5440,9536, 5448,5456, 5456,9552, - 5464,13648, 5472,9664, 5480,5968, 5488,10064, 5496,14160, 5504,9288, - 5512,6480, 5520,10576, 5528,14672, 5536,9416, 5544,6992, 5552,11088, - 5560,15184, 5568,9544, 5576,7504, 5584,11600, 5592,15696, 5600,9672, - 5608,8016, 5616,12112, 5624,16208, 5632,10304, 5640,10320, 5648,8592, - 5656,12688, 5664,10432, 5672,10448, 5680,9104, 5688,13200, 5696,10560, - 5704,10576, 5712,9616, 5720,13712, 5728,10688, 5736,6032, 5744,10128, - 5752,14224, 5760,10312, 5768,6544, 5776,10640, 5784,14736, 5792,10440, - 5800,7056, 5808,11152, 5816,15248, 5824,10568, 5832,7568, 5840,11664, - 5848,15760, 5856,10696, 5864,8080, 5872,12176, 5880,16272, 5888,11328, - 5896,11344, 5904,8656, 5912,12752, 5920,11456, 5928,11472, 5936,9168, - 5944,13264, 5952,11584, 5960,11600, 5968,9680, 5976,13776, 5984,11712, - 5992,6096, 6000,10192, 6008,14288, 6016,11336, 6024,6608, 6032,10704, - 6040,14800, 6048,11464, 6056,7120, 6064,11216, 6072,15312, 6080,11592, - 6088,7632, 6096,11728, 6104,15824, 6112,11720, 6120,8144, 6128,12240, - 6136,16336, 6144,12288, 6152,12304, 6160,8216, 6168,12312, 6176,12416, - 6184,12432, 6192,8728, 6200,12824, 6208,12544, 6216,12560, 6224,9240, - 6232,13336, 6240,12672, 6248,12688, 6256,9752, 6264,13848, 6272,12296, - 6280,12312, 6288,10264, 6296,14360, 6304,12424, 6312,6680, 6320,10776, - 6328,14872, 6336,12552, 6344,7192, 6352,11288, 6360,15384, 6368,12680, - 6376,7704, 6384,11800, 6392,15896, 6400,13312, 6408,13328, 6416,8280, - 6424,12376, 6432,13440, 6440,13456, 6448,8792, 6456,12888, 6464,13568, - 6472,13584, 6480,9304, 6488,13400, 6496,13696, 6504,13712, 6512,9816, - 6520,13912, 6528,13320, 6536,13336, 6544,10328, 6552,14424, 6560,13448, - 6568,6744, 6576,10840, 6584,14936, 6592,13576, 6600,7256, 6608,11352, - 6616,15448, 6624,13704, 6632,7768, 6640,11864, 6648,15960, 6656,14336, - 6664,14352, 6672,8344, 6680,12440, 6688,14464, 6696,14480, 6704,8856, - 6712,12952, 6720,14592, 6728,14608, 6736,9368, 6744,13464, 6752,14720, - 6760,14736, 6768,9880, 6776,13976, 6784,14344, 6792,14360, 6800,10392, - 6808,14488, 6816,14472, 6824,14488, 6832,10904, 6840,15000, 6848,14600, - 6856,7320, 6864,11416, 6872,15512, 6880,14728, 6888,7832, 6896,11928, - 6904,16024, 6912,15360, 6920,15376, 6928,8408, 6936,12504, 6944,15488, - 6952,15504, 6960,8920, 6968,13016, 6976,15616, 6984,15632, 6992,9432, - 7000,13528, 7008,15744, 7016,15760, 7024,9944, 7032,14040, 7040,15368, - 7048,15384, 7056,10456, 7064,14552, 7072,15496, 7080,15512, 7088,10968, - 7096,15064, 7104,15624, 7112,7384, 7120,11480, 7128,15576, 7136,15752, - 7144,7896, 7152,11992, 7160,16088, 7168,12352, 7176,12368, 7184,8472, - 7192,12568, 7200,12480, 7208,12496, 7216,8984, 7224,13080, 7232,12608, - 7240,12624, 7248,9496, 7256,13592, 7264,12736, 7272,12752, 7280,10008, - 7288,14104, 7296,12360, 7304,12376, 7312,10520, 7320,14616, 7328,12488, - 7336,12504, 7344,11032, 7352,15128, 7360,12616, 7368,7448, 7376,11544, - 7384,15640, 7392,12744, 7400,7960, 7408,12056, 7416,16152, 7424,13376, - 7432,13392, 7440,8536, 7448,12632, 7456,13504, 7464,13520, 7472,9048, - 7480,13144, 7488,13632, 7496,13648, 7504,9560, 7512,13656, 7520,13760, - 7528,13776, 7536,10072, 7544,14168, 7552,13384, 7560,13400, 7568,10584, - 7576,14680, 7584,13512, 7592,13528, 7600,11096, 7608,15192, 7616,13640, - 7624,13656, 7632,11608, 7640,15704, 7648,13768, 7656,8024, 7664,12120, - 7672,16216, 7680,14400, 7688,14416, 7696,8600, 7704,12696, 7712,14528, - 7720,14544, 7728,9112, 7736,13208, 7744,14656, 7752,14672, 7760,9624, - 7768,13720, 7776,14784, 7784,14800, 7792,10136, 7800,14232, 7808,14408, - 7816,14424, 7824,10648, 7832,14744, 7840,14536, 7848,14552, 7856,11160, - 7864,15256, 7872,14664, 7880,14680, 7888,11672, 7896,15768, 7904,14792, - 7912,8088, 7920,12184, 7928,16280, 7936,15424, 7944,15440, 7952,8664, - 7960,12760, 7968,15552, 7976,15568, 7984,9176, 7992,13272, 8000,15680, - 8008,15696, 8016,9688, 8024,13784, 8032,15808, 8040,15824, 8048,10200, - 8056,14296, 8064,15432, 8072,15448, 8080,10712, 8088,14808, 8096,15560, - 8104,15576, 8112,11224, 8120,15320, 8128,15688, 8136,15704, 8144,11736, - 8152,15832, 8160,15816, 8168,15832, 8176,12248, 8184,16344, 8200,8320, - 8208,8224, 8216,12320, 8232,10368, 8240,8736, 8248,12832, 8256,8448, - 8264,8384, 8272,9248, 8280,13344, 8288,9232, 8296,10432, 8304,9760, - 8312,13856, 8328,12416, 8336,10272, 8344,14368, 8352,12296, 8360,14464, - 8368,10784, 8376,14880, 8384,8456, 8392,12480, 8400,11296, 8408,15392, - 8416,12552, 8424,14528, 8432,11808, 8440,15904, 8448,9216, 8456,8576, - 8464,9232, 8472,12384, 8480,9248, 8488,10624, 8496,8800, 8504,12896, - 8512,9472, 8520,8640, 8528,9312, 8536,13408, 8544,9296, 8552,10688, - 8560,9824, 8568,13920, 8576,9224, 8584,12672, 8592,10336, 8600,14432, - 8608,13320, 8616,14720, 8624,10848, 8632,14944, 8640,9480, 8648,12736, - 8656,11360, 8664,15456, 8672,13576, 8680,14784, 8688,11872, 8696,15968, - 8704,12288, 8712,12416, 8720,12296, 8728,12448, 8736,12304, 8744,10376, - 8752,8864, 8760,12960, 8768,12352, 8776,12480, 8784,9376, 8792,13472, - 8800,12368, 8808,10440, 8816,9888, 8824,13984, 8832,12320, 8840,12424, - 8848,10400, 8856,14496, 8864,12312, 8872,14472, 8880,10912, 8888,15008, - 8896,12384, 8904,12488, 8912,11424, 8920,15520, 8928,12568, 8936,14536, - 8944,11936, 8952,16032, 8960,12544, 8968,12672, 8976,12552, 8984,12512, - 8992,12560, 9000,10632, 9008,12568, 9016,13024, 9024,12608, 9032,12736, - 9040,9440, 9048,13536, 9056,12624, 9064,10696, 9072,9952, 9080,14048, - 9088,9240, 9096,12680, 9104,10464, 9112,14560, 9120,13336, 9128,14728, - 9136,10976, 9144,15072, 9152,9496, 9160,12744, 9168,11488, 9176,15584, - 9184,13592, 9192,14792, 9200,12000, 9208,16096, 9224,9344, 9232,9248, - 9240,12576, 9256,11392, 9264,12560, 9272,13088, 9280,9472, 9288,9408, - 9296,9504, 9304,13600, 9312,9488, 9320,11456, 9328,10016, 9336,14112, - 9352,13440, 9360,10528, 9368,14624, 9376,12360, 9384,15488, 9392,11040, - 9400,15136, 9408,9480, 9416,13504, 9424,11552, 9432,15648, 9440,12616, - 9448,15552, 9456,12064, 9464,16160, 9480,9600, 9488,9504, 9496,12640, - 9512,11648, 9520,12624, 9528,13152, 9544,9664, 9552,9568, 9560,13664, - 9576,11712, 9584,10080, 9592,14176, 9608,13696, 9616,10592, 9624,14688, - 9632,13384, 9640,15744, 9648,11104, 9656,15200, 9672,13760, 9680,11616, - 9688,15712, 9696,13640, 9704,15808, 9712,12128, 9720,16224, 9728,13312, - 9736,13440, 9744,13320, 9752,12704, 9760,13328, 9768,11400, 9776,13336, - 9784,13216, 9792,13376, 9800,13504, 9808,13384, 9816,13728, 9824,13392, - 9832,11464, 9840,10144, 9848,14240, 9856,13344, 9864,13448, 9872,10656, - 9880,14752, 9888,12376, 9896,15496, 9904,11168, 9912,15264, 9920,13408, - 9928,13512, 9936,11680, 9944,15776, 9952,12632, 9960,15560, 9968,12192, - 9976,16288, 9984,13568, 9992,13696, 10000,13576, 10008,12768, 10016,13584, - 10024,11656, 10032,13592, 10040,13280, 10048,13632, 10056,13760, - 10064,13640, 10072,13792, 10080,13648, 10088,11720, 10096,10208, - 10104,14304, 10112,13600, 10120,13704, 10128,10720, 10136,14816, - 10144,13400, 10152,15752, 10160,11232, 10168,15328, 10176,13664, - 10184,13768, 10192,11744, 10200,15840, 10208,13656, 10216,15816, - 10224,12256, 10232,16352, 10248,10272, 10256,10368, 10264,12328, - 10280,10384, 10288,10376, 10296,12840, 10304,11264, 10312,11296, - 10320,11392, 10328,13352, 10336,11272, 10344,10448, 10352,11400, - 10360,13864, 10376,12432, 10392,14376, 10400,12328, 10408,14480, - 10416,10792, 10424,14888, 10432,11280, 10440,12496, 10448,11304, - 10456,15400, 10464,11288, 10472,14544, 10480,11816, 10488,15912, - 10496,11264, 10504,11272, 10512,11280, 10520,12392, 10528,11296, - 10536,10640, 10544,12496, 10552,12904, 10560,11328, 10568,11360, - 10576,11456, 10584,13416, 10592,11336, 10600,10704, 10608,11464, - 10616,13928, 10624,11392, 10632,12688, 10640,11304, 10648,14440, - 10656,13352, 10664,14736, 10672,10856, 10680,14952, 10688,11344, - 10696,12752, 10704,11368, 10712,15464, 10720,11352, 10728,14800, - 10736,11880, 10744,15976, 10752,14336, 10760,14368, 10768,14464, - 10776,12456, 10784,14344, 10792,14376, 10800,14472, 10808,12968, - 10816,15360, 10824,15392, 10832,15488, 10840,13480, 10848,15368, - 10856,15400, 10864,15496, 10872,13992, 10880,14352, 10888,12440, - 10896,14480, 10904,14504, 10912,14360, 10920,14488, 10928,14488, - 10936,15016, 10944,15376, 10952,12504, 10960,11432, 10968,15528, - 10976,15384, 10984,14552, 10992,11944, 11000,16040, 11008,14400, - 11016,14432, 11024,14528, 11032,12520, 11040,14408, 11048,14440, - 11056,14536, 11064,13032, 11072,15424, 11080,15456, 11088,15552, - 11096,13544, 11104,15432, 11112,15464, 11120,15560, 11128,14056, - 11136,14416, 11144,12696, 11152,14544, 11160,14568, 11168,14424, - 11176,14744, 11184,14552, 11192,15080, 11200,15440, 11208,12760, - 11216,11496, 11224,15592, 11232,15448, 11240,14808, 11248,12008, - 11256,16104, 11272,11296, 11280,11392, 11288,12584, 11304,11408, - 11312,12688, 11320,13096, 11328,11520, 11336,11552, 11344,11648, - 11352,13608, 11360,11528, 11368,11472, 11376,11656, 11384,14120, - 11400,13456, 11416,14632, 11424,12392, 11432,15504, 11440,14440, - 11448,15144, 11456,11536, 11464,13520, 11472,11560, 11480,15656, - 11488,11544, 11496,15568, 11504,12072, 11512,16168, 11528,11552, - 11536,11648, 11544,12648, 11560,11664, 11568,12752, 11576,13160, - 11592,11616, 11600,11712, 11608,13672, 11624,11728, 11632,11720, - 11640,14184, 11656,13712, 11672,14696, 11680,13416, 11688,15760, - 11696,15464, 11704,15208, 11720,13776, 11736,15720, 11744,13672, - 11752,15824, 11760,12136, 11768,16232, 11776,14592, 11784,14624, - 11792,14720, 11800,12712, 11808,14600, 11816,14632, 11824,14728, - 11832,13224, 11840,15616, 11848,15648, 11856,15744, 11864,13736, - 11872,15624, 11880,15656, 11888,15752, 11896,14248, 11904,14608, - 11912,13464, 11920,14736, 11928,14760, 11936,14616, 11944,15512, - 11952,14744, 11960,15272, 11968,15632, 11976,13528, 11984,15760, - 11992,15784, 12000,15640, 12008,15576, 12016,12200, 12024,16296, - 12032,14656, 12040,14688, 12048,14784, 12056,12776, 12064,14664, - 12072,14696, 12080,14792, 12088,13288, 12096,15680, 12104,15712, - 12112,15808, 12120,13800, 12128,15688, 12136,15720, 12144,15816, - 12152,14312, 12160,14672, 12168,13720, 12176,14800, 12184,14824, - 12192,14680, 12200,15768, 12208,14808, 12216,15336, 12224,15696, - 12232,13784, 12240,15824, 12248,15848, 12256,15704, 12264,15832, - 12272,15832, 12280,16360, 12312,12336, 12344,12848, 12352,12544, - 12360,12552, 12368,12560, 12376,13360, 12384,12576, 12392,12584, - 12400,13336, 12408,13872, 12424,12448, 12440,14384, 12456,14496, - 12464,14472, 12472,14896, 12480,12672, 12488,12512, 12496,12688, - 12504,15408, 12512,12680, 12520,14560, 12528,14728, 12536,15920, - 12544,13312, 12552,13320, 12560,13328, 12568,13336, 12576,13344, - 12584,13352, 12592,13360, 12600,12912, 12608,13568, 12616,13576, - 12624,13584, 12632,13424, 12640,13600, 12648,13608, 12656,13400, - 12664,13936, 12672,13440, 12680,12704, 12688,13456, 12696,14448, - 12704,13448, 12712,14752, 12720,15496, 12728,14960, 12736,13696, - 12744,12768, 12752,13712, 12760,15472, 12768,13704, 12776,14816, - 12784,15752, 12792,15984, 12800,14336, 12808,14464, 12816,14344, - 12824,14472, 12832,14352, 12840,14480, 12848,14360, 12856,12976, - 12864,14400, 12872,14528, 12880,14408, 12888,13488, 12896,14416, - 12904,14544, 12912,14424, 12920,14000, 12928,14368, 12936,14496, - 12944,14376, 12952,14512, 12960,14384, 12968,14504, 12976,14488, - 12984,15024, 12992,14432, 13000,14560, 13008,14440, 13016,15536, - 13024,14448, 13032,14568, 13040,14744, 13048,16048, 13056,14592, - 13064,14720, 13072,14600, 13080,14728, 13088,14608, 13096,14736, - 13104,14616, 13112,14744, 13120,14656, 13128,14784, 13136,14664, - 13144,13552, 13152,14672, 13160,14800, 13168,14680, 13176,14064, - 13184,14624, 13192,14752, 13200,14632, 13208,14576, 13216,13464, - 13224,14760, 13232,15512, 13240,15088, 13248,14688, 13256,14816, - 13264,14696, 13272,15600, 13280,13720, 13288,14824, 13296,15768, - 13304,16112, 13336,13360, 13368,14616, 13376,13568, 13384,13576, - 13392,13584, 13400,13616, 13408,13600, 13416,13608, 13424,13592, - 13432,14128, 13448,13472, 13464,14640, 13480,15520, 13488,14536, - 13496,15152, 13504,13696, 13512,13536, 13520,13712, 13528,15664, - 13536,13704, 13544,15584, 13552,14792, 13560,16176, 13592,13616, - 13624,14680, 13656,13680, 13688,14192, 13704,13728, 13720,14704, - 13736,15776, 13744,15560, 13752,15216, 13768,13792, 13784,15728, - 13800,15840, 13808,15816, 13816,16240, 13824,15360, 13832,15488, - 13840,15368, 13848,15496, 13856,15376, 13864,15504, 13872,15384, - 13880,15512, 13888,15424, 13896,15552, 13904,15432, 13912,15560, - 13920,15440, 13928,15568, 13936,15448, 13944,14256, 13952,15392, - 13960,15520, 13968,15400, 13976,14768, 13984,15408, 13992,15528, - 14000,14552, 14008,15280, 14016,15456, 14024,15584, 14032,15464, - 14040,15792, 14048,15472, 14056,15592, 14064,14808, 14072,16304, - 14080,15616, 14088,15744, 14096,15624, 14104,15752, 14112,15632, - 14120,15760, 14128,15640, 14136,15768, 14144,15680, 14152,15808, - 14160,15688, 14168,15816, 14176,15696, 14184,15824, 14192,15704, - 14200,14320, 14208,15648, 14216,15776, 14224,15656, 14232,14832, - 14240,15664, 14248,15784, 14256,15576, 14264,15344, 14272,15712, - 14280,15840, 14288,15720, 14296,15856, 14304,15728, 14312,15848, - 14320,15832, 14328,16368, 14392,14488, 14400,14592, 14408,14600, - 14416,14608, 14424,14616, 14432,14624, 14440,14632, 14448,14640, - 14456,15512, 14504,14512, 14520,14904, 14528,14720, 14536,14728, - 14544,14736, 14552,15416, 14560,14752, 14568,14576, 14584,15928, - 14576,14760, 14592,15360, 14600,15368, 14608,15376, 14616,15384, - 14624,15392, 14632,15400, 14640,15408, 14648,15416, 14656,15616, - 14664,15624, 14672,15632, 14680,15640, 14688,15648, 14696,15656, - 14704,15664, 14712,15576, 14720,15488, 14728,15496, 14736,15504, - 14744,15512, 14752,15520, 14760,14768, 14776,14968, 14768,15528, - 14784,15744, 14792,15752, 14800,15760, 14808,15480, 14816,15776, - 14824,14832, 14840,15992, 14832,15784, 14856,14864, 14864,14880, - 14872,14896, 14880,14976, 14888,14992, 14896,15008, 14904,15024, - 14912,15104, 14920,15120, 14928,15136, 14936,15152, 14944,15232, - 14952,15248, 14960,15264, 14968,15280, 14984,15008, 15000,15024, - 15016,15024, 15040,15112, 15048,15128, 15056,15144, 15064,15544, - 15072,15240, 15080,15256, 15088,15272, 15096,16056, 15104,15872, - 15112,15888, 15120,15904, 15128,15920, 15136,16000, 15144,16016, - 15152,16032, 15160,16048, 15168,16128, 15176,16144, 15184,16160, - 15192,16176, 15200,16256, 15208,16272, 15216,16288, 15224,16304, - 15232,15880, 15240,15896, 15248,15912, 15256,15928, 15264,16008, - 15272,16024, 15280,16040, 15288,16056, 15296,16136, 15304,16152, - 15312,16168, 15320,15608, 15328,16264, 15336,16280, 15344,16296, - 15352,16120, 15416,15512, 15424,15616, 15432,15624, 15440,15632, - 15448,15640, 15456,15648, 15464,15656, 15472,15664, 15480,15768, - 15528,15536, 15544,16048, 15552,15744, 15560,15752, 15568,15760, - 15576,15672, 15584,15776, 15592,15600, 15600,15784, 15608,16184, - 15672,15768, 15736,15832, 15784,15792, 15800,16304, 15848,15856, - 15880,16000, 15864,16248, 15888,16000, 15896,16008, 15904,16000, - 15912,16016, 15920,16008, 15928,16024, 15936,16128, 15944,16160, - 15952,16256, 15960,16288, 15968,16136, 15976,16168, 15984,16264, - 15992,16296, 16008,16032, 16024,16040, 16064,16144, 16040,16048, - 16072,16176, 16080,16272, 16088,16304, 16096,16152, 16104,16184, - 16112,16280, 16136,16256, 16120,16312, 16144,16256, 16152,16264, - 16160,16256, 16168,16272, 16176,16264, 16184,16280, 16200,16208, - 16208,16224, 16216,16240, 16224,16320, 16232,16336, 16240,16352, - 16248,16368, 16264,16288, 16280,16296, 16296,16304, 16344,16368, - 16328,16352, 16360,16368 -}; - -const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE_4096_TABLE_LENGTH] = -{ - /* radix 8, size 4032 */ - 8,4096, 16,8192, 24,12288, 32,16384, 40,20480, 48,24576, 56,28672, 64,512, - 72,4608, 80,8704, 88,12800, 96,16896, 104,20992, 112,25088, 120,29184, - 128,1024, 136,5120, 144,9216, 152,13312, 160,17408, 168,21504, 176,25600, - 184,29696, 192,1536, 200,5632, 208,9728, 216,13824, 224,17920, 232,22016, - 240,26112, 248,30208, 256,2048, 264,6144, 272,10240, 280,14336, 288,18432, - 296,22528, 304,26624, 312,30720, 320,2560, 328,6656, 336,10752, 344,14848, - 352,18944, 360,23040, 368,27136, 376,31232, 384,3072, 392,7168, 400,11264, - 408,15360, 416,19456, 424,23552, 432,27648, 440,31744, 448,3584, 456,7680, - 464,11776, 472,15872, 480,19968, 488,24064, 496,28160, 504,32256, 520,4160, - 528,8256, 536,12352, 544,16448, 552,20544, 560,24640, 568,28736, 584,4672, - 592,8768, 600,12864, 608,16960, 616,21056, 624,25152, 632,29248, 640,1088, - 648,5184, 656,9280, 664,13376, 672,17472, 680,21568, 688,25664, 696,29760, - 704,1600, 712,5696, 720,9792, 728,13888, 736,17984, 744,22080, 752,26176, - 760,30272, 768,2112, 776,6208, 784,10304, 792,14400, 800,18496, 808,22592, - 816,26688, 824,30784, 832,2624, 840,6720, 848,10816, 856,14912, 864,19008, - 872,23104, 880,27200, 888,31296, 896,3136, 904,7232, 912,11328, 920,15424, - 928,19520, 936,23616, 944,27712, 952,31808, 960,3648, 968,7744, 976,11840, - 984,15936, 992,20032, 1000,24128, 1008,28224, 1016,32320, 1032,4224, - 1040,8320, 1048,12416, 1056,16512, 1064,20608, 1072,24704, 1080,28800, - 1096,4736, 1104,8832, 1112,12928, 1120,17024, 1128,21120, 1136,25216, - 1144,29312, 1160,5248, 1168,9344, 1176,13440, 1184,17536, 1192,21632, - 1200,25728, 1208,29824, 1216,1664, 1224,5760, 1232,9856, 1240,13952, - 1248,18048, 1256,22144, 1264,26240, 1272,30336, 1280,2176, 1288,6272, - 1296,10368, 1304,14464, 1312,18560, 1320,22656, 1328,26752, 1336,30848, - 1344,2688, 1352,6784, 1360,10880, 1368,14976, 1376,19072, 1384,23168, - 1392,27264, 1400,31360, 1408,3200, 1416,7296, 1424,11392, 1432,15488, - 1440,19584, 1448,23680, 1456,27776, 1464,31872, 1472,3712, 1480,7808, - 1488,11904, 1496,16000, 1504,20096, 1512,24192, 1520,28288, 1528,32384, - 1544,4288, 1552,8384, 1560,12480, 1568,16576, 1576,20672, 1584,24768, - 1592,28864, 1608,4800, 1616,8896, 1624,12992, 1632,17088, 1640,21184, - 1648,25280, 1656,29376, 1672,5312, 1680,9408, 1688,13504, 1696,17600, - 1704,21696, 1712,25792, 1720,29888, 1736,5824, 1744,9920, 1752,14016, - 1760,18112, 1768,22208, 1776,26304, 1784,30400, 1792,2240, 1800,6336, - 1808,10432, 1816,14528, 1824,18624, 1832,22720, 1840,26816, 1848,30912, - 1856,2752, 1864,6848, 1872,10944, 1880,15040, 1888,19136, 1896,23232, - 1904,27328, 1912,31424, 1920,3264, 1928,7360, 1936,11456, 1944,15552, - 1952,19648, 1960,23744, 1968,27840, 1976,31936, 1984,3776, 1992,7872, - 2000,11968, 2008,16064, 2016,20160, 2024,24256, 2032,28352, 2040,32448, - 2056,4352, 2064,8448, 2072,12544, 2080,16640, 2088,20736, 2096,24832, - 2104,28928, 2120,4864, 2128,8960, 2136,13056, 2144,17152, 2152,21248, - 2160,25344, 2168,29440, 2184,5376, 2192,9472, 2200,13568, 2208,17664, - 2216,21760, 2224,25856, 2232,29952, 2248,5888, 2256,9984, 2264,14080, - 2272,18176, 2280,22272, 2288,26368, 2296,30464, 2312,6400, 2320,10496, - 2328,14592, 2336,18688, 2344,22784, 2352,26880, 2360,30976, 2368,2816, - 2376,6912, 2384,11008, 2392,15104, 2400,19200, 2408,23296, 2416,27392, - 2424,31488, 2432,3328, 2440,7424, 2448,11520, 2456,15616, 2464,19712, - 2472,23808, 2480,27904, 2488,32000, 2496,3840, 2504,7936, 2512,12032, - 2520,16128, 2528,20224, 2536,24320, 2544,28416, 2552,32512, 2568,4416, - 2576,8512, 2584,12608, 2592,16704, 2600,20800, 2608,24896, 2616,28992, - 2632,4928, 2640,9024, 2648,13120, 2656,17216, 2664,21312, 2672,25408, - 2680,29504, 2696,5440, 2704,9536, 2712,13632, 2720,17728, 2728,21824, - 2736,25920, 2744,30016, 2760,5952, 2768,10048, 2776,14144, 2784,18240, - 2792,22336, 2800,26432, 2808,30528, 2824,6464, 2832,10560, 2840,14656, - 2848,18752, 2856,22848, 2864,26944, 2872,31040, 2888,6976, 2896,11072, - 2904,15168, 2912,19264, 2920,23360, 2928,27456, 2936,31552, 2944,3392, - 2952,7488, 2960,11584, 2968,15680, 2976,19776, 2984,23872, 2992,27968, - 3000,32064, 3008,3904, 3016,8000, 3024,12096, 3032,16192, 3040,20288, - 3048,24384, 3056,28480, 3064,32576, 3080,4480, 3088,8576, 3096,12672, - 3104,16768, 3112,20864, 3120,24960, 3128,29056, 3144,4992, 3152,9088, - 3160,13184, 3168,17280, 3176,21376, 3184,25472, 3192,29568, 3208,5504, - 3216,9600, 3224,13696, 3232,17792, 3240,21888, 3248,25984, 3256,30080, - 3272,6016, 3280,10112, 3288,14208, 3296,18304, 3304,22400, 3312,26496, - 3320,30592, 3336,6528, 3344,10624, 3352,14720, 3360,18816, 3368,22912, - 3376,27008, 3384,31104, 3400,7040, 3408,11136, 3416,15232, 3424,19328, - 3432,23424, 3440,27520, 3448,31616, 3464,7552, 3472,11648, 3480,15744, - 3488,19840, 3496,23936, 3504,28032, 3512,32128, 3520,3968, 3528,8064, - 3536,12160, 3544,16256, 3552,20352, 3560,24448, 3568,28544, 3576,32640, - 3592,4544, 3600,8640, 3608,12736, 3616,16832, 3624,20928, 3632,25024, - 3640,29120, 3656,5056, 3664,9152, 3672,13248, 3680,17344, 3688,21440, - 3696,25536, 3704,29632, 3720,5568, 3728,9664, 3736,13760, 3744,17856, - 3752,21952, 3760,26048, 3768,30144, 3784,6080, 3792,10176, 3800,14272, - 3808,18368, 3816,22464, 3824,26560, 3832,30656, 3848,6592, 3856,10688, - 3864,14784, 3872,18880, 3880,22976, 3888,27072, 3896,31168, 3912,7104, - 3920,11200, 3928,15296, 3936,19392, 3944,23488, 3952,27584, 3960,31680, - 3976,7616, 3984,11712, 3992,15808, 4000,19904, 4008,24000, 4016,28096, - 4024,32192, 4040,8128, 4048,12224, 4056,16320, 4064,20416, 4072,24512, - 4080,28608, 4088,32704, 4112,8200, 4120,12296, 4128,16392, 4136,20488, - 4144,24584, 4152,28680, 4168,4616, 4176,8712, 4184,12808, 4192,16904, - 4200,21000, 4208,25096, 4216,29192, 4232,5128, 4240,9224, 4248,13320, - 4256,17416, 4264,21512, 4272,25608, 4280,29704, 4296,5640, 4304,9736, - 4312,13832, 4320,17928, 4328,22024, 4336,26120, 4344,30216, 4360,6152, - 4368,10248, 4376,14344, 4384,18440, 4392,22536, 4400,26632, 4408,30728, - 4424,6664, 4432,10760, 4440,14856, 4448,18952, 4456,23048, 4464,27144, - 4472,31240, 4488,7176, 4496,11272, 4504,15368, 4512,19464, 4520,23560, - 4528,27656, 4536,31752, 4552,7688, 4560,11784, 4568,15880, 4576,19976, - 4584,24072, 4592,28168, 4600,32264, 4624,8264, 4632,12360, 4640,16456, - 4648,20552, 4656,24648, 4664,28744, 4688,8776, 4696,12872, 4704,16968, - 4712,21064, 4720,25160, 4728,29256, 4744,5192, 4752,9288, 4760,13384, - 4768,17480, 4776,21576, 4784,25672, 4792,29768, 4808,5704, 4816,9800, - 4824,13896, 4832,17992, 4840,22088, 4848,26184, 4856,30280, 4872,6216, - 4880,10312, 4888,14408, 4896,18504, 4904,22600, 4912,26696, 4920,30792, - 4936,6728, 4944,10824, 4952,14920, 4960,19016, 4968,23112, 4976,27208, - 4984,31304, 5000,7240, 5008,11336, 5016,15432, 5024,19528, 5032,23624, - 5040,27720, 5048,31816, 5064,7752, 5072,11848, 5080,15944, 5088,20040, - 5096,24136, 5104,28232, 5112,32328, 5136,8328, 5144,12424, 5152,16520, - 5160,20616, 5168,24712, 5176,28808, 5200,8840, 5208,12936, 5216,17032, - 5224,21128, 5232,25224, 5240,29320, 5264,9352, 5272,13448, 5280,17544, - 5288,21640, 5296,25736, 5304,29832, 5320,5768, 5328,9864, 5336,13960, - 5344,18056, 5352,22152, 5360,26248, 5368,30344, 5384,6280, 5392,10376, - 5400,14472, 5408,18568, 5416,22664, 5424,26760, 5432,30856, 5448,6792, - 5456,10888, 5464,14984, 5472,19080, 5480,23176, 5488,27272, 5496,31368, - 5512,7304, 5520,11400, 5528,15496, 5536,19592, 5544,23688, 5552,27784, - 5560,31880, 5576,7816, 5584,11912, 5592,16008, 5600,20104, 5608,24200, - 5616,28296, 5624,32392, 5648,8392, 5656,12488, 5664,16584, 5672,20680, - 5680,24776, 5688,28872, 5712,8904, 5720,13000, 5728,17096, 5736,21192, - 5744,25288, 5752,29384, 5776,9416, 5784,13512, 5792,17608, 5800,21704, - 5808,25800, 5816,29896, 5840,9928, 5848,14024, 5856,18120, 5864,22216, - 5872,26312, 5880,30408, 5896,6344, 5904,10440, 5912,14536, 5920,18632, - 5928,22728, 5936,26824, 5944,30920, 5960,6856, 5968,10952, 5976,15048, - 5984,19144, 5992,23240, 6000,27336, 6008,31432, 6024,7368, 6032,11464, - 6040,15560, 6048,19656, 6056,23752, 6064,27848, 6072,31944, 6088,7880, - 6096,11976, 6104,16072, 6112,20168, 6120,24264, 6128,28360, 6136,32456, - 6160,8456, 6168,12552, 6176,16648, 6184,20744, 6192,24840, 6200,28936, - 6224,8968, 6232,13064, 6240,17160, 6248,21256, 6256,25352, 6264,29448, - 6288,9480, 6296,13576, 6304,17672, 6312,21768, 6320,25864, 6328,29960, - 6352,9992, 6360,14088, 6368,18184, 6376,22280, 6384,26376, 6392,30472, - 6416,10504, 6424,14600, 6432,18696, 6440,22792, 6448,26888, 6456,30984, - 6472,6920, 6480,11016, 6488,15112, 6496,19208, 6504,23304, 6512,27400, - 6520,31496, 6536,7432, 6544,11528, 6552,15624, 6560,19720, 6568,23816, - 6576,27912, 6584,32008, 6600,7944, 6608,12040, 6616,16136, 6624,20232, - 6632,24328, 6640,28424, 6648,32520, 6672,8520, 6680,12616, 6688,16712, - 6696,20808, 6704,24904, 6712,29000, 6736,9032, 6744,13128, 6752,17224, - 6760,21320, 6768,25416, 6776,29512, 6800,9544, 6808,13640, 6816,17736, - 6824,21832, 6832,25928, 6840,30024, 6864,10056, 6872,14152, 6880,18248, - 6888,22344, 6896,26440, 6904,30536, 6928,10568, 6936,14664, 6944,18760, - 6952,22856, 6960,26952, 6968,31048, 6992,11080, 7000,15176, 7008,19272, - 7016,23368, 7024,27464, 7032,31560, 7048,7496, 7056,11592, 7064,15688, - 7072,19784, 7080,23880, 7088,27976, 7096,32072, 7112,8008, 7120,12104, - 7128,16200, 7136,20296, 7144,24392, 7152,28488, 7160,32584, 7184,8584, - 7192,12680, 7200,16776, 7208,20872, 7216,24968, 7224,29064, 7248,9096, - 7256,13192, 7264,17288, 7272,21384, 7280,25480, 7288,29576, 7312,9608, - 7320,13704, 7328,17800, 7336,21896, 7344,25992, 7352,30088, 7376,10120, - 7384,14216, 7392,18312, 7400,22408, 7408,26504, 7416,30600, 7440,10632, - 7448,14728, 7456,18824, 7464,22920, 7472,27016, 7480,31112, 7504,11144, - 7512,15240, 7520,19336, 7528,23432, 7536,27528, 7544,31624, 7568,11656, - 7576,15752, 7584,19848, 7592,23944, 7600,28040, 7608,32136, 7624,8072, - 7632,12168, 7640,16264, 7648,20360, 7656,24456, 7664,28552, 7672,32648, - 7696,8648, 7704,12744, 7712,16840, 7720,20936, 7728,25032, 7736,29128, - 7760,9160, 7768,13256, 7776,17352, 7784,21448, 7792,25544, 7800,29640, - 7824,9672, 7832,13768, 7840,17864, 7848,21960, 7856,26056, 7864,30152, - 7888,10184, 7896,14280, 7904,18376, 7912,22472, 7920,26568, 7928,30664, - 7952,10696, 7960,14792, 7968,18888, 7976,22984, 7984,27080, 7992,31176, - 8016,11208, 8024,15304, 8032,19400, 8040,23496, 8048,27592, 8056,31688, - 8080,11720, 8088,15816, 8096,19912, 8104,24008, 8112,28104, 8120,32200, - 8144,12232, 8152,16328, 8160,20424, 8168,24520, 8176,28616, 8184,32712, - 8216,12304, 8224,16400, 8232,20496, 8240,24592, 8248,28688, 8272,8720, - 8280,12816, 8288,16912, 8296,21008, 8304,25104, 8312,29200, 8336,9232, - 8344,13328, 8352,17424, 8360,21520, 8368,25616, 8376,29712, 8400,9744, - 8408,13840, 8416,17936, 8424,22032, 8432,26128, 8440,30224, 8464,10256, - 8472,14352, 8480,18448, 8488,22544, 8496,26640, 8504,30736, 8528,10768, - 8536,14864, 8544,18960, 8552,23056, 8560,27152, 8568,31248, 8592,11280, - 8600,15376, 8608,19472, 8616,23568, 8624,27664, 8632,31760, 8656,11792, - 8664,15888, 8672,19984, 8680,24080, 8688,28176, 8696,32272, 8728,12368, - 8736,16464, 8744,20560, 8752,24656, 8760,28752, 8792,12880, 8800,16976, - 8808,21072, 8816,25168, 8824,29264, 8848,9296, 8856,13392, 8864,17488, - 8872,21584, 8880,25680, 8888,29776, 8912,9808, 8920,13904, 8928,18000, - 8936,22096, 8944,26192, 8952,30288, 8976,10320, 8984,14416, 8992,18512, - 9000,22608, 9008,26704, 9016,30800, 9040,10832, 9048,14928, 9056,19024, - 9064,23120, 9072,27216, 9080,31312, 9104,11344, 9112,15440, 9120,19536, - 9128,23632, 9136,27728, 9144,31824, 9168,11856, 9176,15952, 9184,20048, - 9192,24144, 9200,28240, 9208,32336, 9240,12432, 9248,16528, 9256,20624, - 9264,24720, 9272,28816, 9304,12944, 9312,17040, 9320,21136, 9328,25232, - 9336,29328, 9368,13456, 9376,17552, 9384,21648, 9392,25744, 9400,29840, - 9424,9872, 9432,13968, 9440,18064, 9448,22160, 9456,26256, 9464,30352, - 9488,10384, 9496,14480, 9504,18576, 9512,22672, 9520,26768, 9528,30864, - 9552,10896, 9560,14992, 9568,19088, 9576,23184, 9584,27280, 9592,31376, - 9616,11408, 9624,15504, 9632,19600, 9640,23696, 9648,27792, 9656,31888, - 9680,11920, 9688,16016, 9696,20112, 9704,24208, 9712,28304, 9720,32400, - 9752,12496, 9760,16592, 9768,20688, 9776,24784, 9784,28880, 9816,13008, - 9824,17104, 9832,21200, 9840,25296, 9848,29392, 9880,13520, 9888,17616, - 9896,21712, 9904,25808, 9912,29904, 9944,14032, 9952,18128, 9960,22224, - 9968,26320, 9976,30416, 10000,10448, 10008,14544, 10016,18640, 10024,22736, - 10032,26832, 10040,30928, 10064,10960, 10072,15056, 10080,19152, - 10088,23248, 10096,27344, 10104,31440, 10128,11472, 10136,15568, - 10144,19664, 10152,23760, 10160,27856, 10168,31952, 10192,11984, - 10200,16080, 10208,20176, 10216,24272, 10224,28368, 10232,32464, - 10264,12560, 10272,16656, 10280,20752, 10288,24848, 10296,28944, - 10328,13072, 10336,17168, 10344,21264, 10352,25360, 10360,29456, - 10392,13584, 10400,17680, 10408,21776, 10416,25872, 10424,29968, - 10456,14096, 10464,18192, 10472,22288, 10480,26384, 10488,30480, - 10520,14608, 10528,18704, 10536,22800, 10544,26896, 10552,30992, - 10576,11024, 10584,15120, 10592,19216, 10600,23312, 10608,27408, - 10616,31504, 10640,11536, 10648,15632, 10656,19728, 10664,23824, - 10672,27920, 10680,32016, 10704,12048, 10712,16144, 10720,20240, - 10728,24336, 10736,28432, 10744,32528, 10776,12624, 10784,16720, - 10792,20816, 10800,24912, 10808,29008, 10840,13136, 10848,17232, - 10856,21328, 10864,25424, 10872,29520, 10904,13648, 10912,17744, - 10920,21840, 10928,25936, 10936,30032, 10968,14160, 10976,18256, - 10984,22352, 10992,26448, 11000,30544, 11032,14672, 11040,18768, - 11048,22864, 11056,26960, 11064,31056, 11096,15184, 11104,19280, - 11112,23376, 11120,27472, 11128,31568, 11152,11600, 11160,15696, - 11168,19792, 11176,23888, 11184,27984, 11192,32080, 11216,12112, - 11224,16208, 11232,20304, 11240,24400, 11248,28496, 11256,32592, - 11288,12688, 11296,16784, 11304,20880, 11312,24976, 11320,29072, - 11352,13200, 11360,17296, 11368,21392, 11376,25488, 11384,29584, - 11416,13712, 11424,17808, 11432,21904, 11440,26000, 11448,30096, - 11480,14224, 11488,18320, 11496,22416, 11504,26512, 11512,30608, - 11544,14736, 11552,18832, 11560,22928, 11568,27024, 11576,31120, - 11608,15248, 11616,19344, 11624,23440, 11632,27536, 11640,31632, - 11672,15760, 11680,19856, 11688,23952, 11696,28048, 11704,32144, - 11728,12176, 11736,16272, 11744,20368, 11752,24464, 11760,28560, - 11768,32656, 11800,12752, 11808,16848, 11816,20944, 11824,25040, - 11832,29136, 11864,13264, 11872,17360, 11880,21456, 11888,25552, - 11896,29648, 11928,13776, 11936,17872, 11944,21968, 11952,26064, - 11960,30160, 11992,14288, 12000,18384, 12008,22480, 12016,26576, - 12024,30672, 12056,14800, 12064,18896, 12072,22992, 12080,27088, - 12088,31184, 12120,15312, 12128,19408, 12136,23504, 12144,27600, - 12152,31696, 12184,15824, 12192,19920, 12200,24016, 12208,28112, - 12216,32208, 12248,16336, 12256,20432, 12264,24528, 12272,28624, - 12280,32720, 12320,16408, 12328,20504, 12336,24600, 12344,28696, - 12376,12824, 12384,16920, 12392,21016, 12400,25112, 12408,29208, - 12440,13336, 12448,17432, 12456,21528, 12464,25624, 12472,29720, - 12504,13848, 12512,17944, 12520,22040, 12528,26136, 12536,30232, - 12568,14360, 12576,18456, 12584,22552, 12592,26648, 12600,30744, - 12632,14872, 12640,18968, 12648,23064, 12656,27160, 12664,31256, - 12696,15384, 12704,19480, 12712,23576, 12720,27672, 12728,31768, - 12760,15896, 12768,19992, 12776,24088, 12784,28184, 12792,32280, - 12832,16472, 12840,20568, 12848,24664, 12856,28760, 12896,16984, - 12904,21080, 12912,25176, 12920,29272, 12952,13400, 12960,17496, - 12968,21592, 12976,25688, 12984,29784, 13016,13912, 13024,18008, - 13032,22104, 13040,26200, 13048,30296, 13080,14424, 13088,18520, - 13096,22616, 13104,26712, 13112,30808, 13144,14936, 13152,19032, - 13160,23128, 13168,27224, 13176,31320, 13208,15448, 13216,19544, - 13224,23640, 13232,27736, 13240,31832, 13272,15960, 13280,20056, - 13288,24152, 13296,28248, 13304,32344, 13344,16536, 13352,20632, - 13360,24728, 13368,28824, 13408,17048, 13416,21144, 13424,25240, - 13432,29336, 13472,17560, 13480,21656, 13488,25752, 13496,29848, - 13528,13976, 13536,18072, 13544,22168, 13552,26264, 13560,30360, - 13592,14488, 13600,18584, 13608,22680, 13616,26776, 13624,30872, - 13656,15000, 13664,19096, 13672,23192, 13680,27288, 13688,31384, - 13720,15512, 13728,19608, 13736,23704, 13744,27800, 13752,31896, - 13784,16024, 13792,20120, 13800,24216, 13808,28312, 13816,32408, - 13856,16600, 13864,20696, 13872,24792, 13880,28888, 13920,17112, - 13928,21208, 13936,25304, 13944,29400, 13984,17624, 13992,21720, - 14000,25816, 14008,29912, 14048,18136, 14056,22232, 14064,26328, - 14072,30424, 14104,14552, 14112,18648, 14120,22744, 14128,26840, - 14136,30936, 14168,15064, 14176,19160, 14184,23256, 14192,27352, - 14200,31448, 14232,15576, 14240,19672, 14248,23768, 14256,27864, - 14264,31960, 14296,16088, 14304,20184, 14312,24280, 14320,28376, - 14328,32472, 14368,16664, 14376,20760, 14384,24856, 14392,28952, - 14432,17176, 14440,21272, 14448,25368, 14456,29464, 14496,17688, - 14504,21784, 14512,25880, 14520,29976, 14560,18200, 14568,22296, - 14576,26392, 14584,30488, 14624,18712, 14632,22808, 14640,26904, - 14648,31000, 14680,15128, 14688,19224, 14696,23320, 14704,27416, - 14712,31512, 14744,15640, 14752,19736, 14760,23832, 14768,27928, - 14776,32024, 14808,16152, 14816,20248, 14824,24344, 14832,28440, - 14840,32536, 14880,16728, 14888,20824, 14896,24920, 14904,29016, - 14944,17240, 14952,21336, 14960,25432, 14968,29528, 15008,17752, - 15016,21848, 15024,25944, 15032,30040, 15072,18264, 15080,22360, - 15088,26456, 15096,30552, 15136,18776, 15144,22872, 15152,26968, - 15160,31064, 15200,19288, 15208,23384, 15216,27480, 15224,31576, - 15256,15704, 15264,19800, 15272,23896, 15280,27992, 15288,32088, - 15320,16216, 15328,20312, 15336,24408, 15344,28504, 15352,32600, - 15392,16792, 15400,20888, 15408,24984, 15416,29080, 15456,17304, - 15464,21400, 15472,25496, 15480,29592, 15520,17816, 15528,21912, - 15536,26008, 15544,30104, 15584,18328, 15592,22424, 15600,26520, - 15608,30616, 15648,18840, 15656,22936, 15664,27032, 15672,31128, - 15712,19352, 15720,23448, 15728,27544, 15736,31640, 15776,19864, - 15784,23960, 15792,28056, 15800,32152, 15832,16280, 15840,20376, - 15848,24472, 15856,28568, 15864,32664, 15904,16856, 15912,20952, - 15920,25048, 15928,29144, 15968,17368, 15976,21464, 15984,25560, - 15992,29656, 16032,17880, 16040,21976, 16048,26072, 16056,30168, - 16096,18392, 16104,22488, 16112,26584, 16120,30680, 16160,18904, - 16168,23000, 16176,27096, 16184,31192, 16224,19416, 16232,23512, - 16240,27608, 16248,31704, 16288,19928, 16296,24024, 16304,28120, - 16312,32216, 16352,20440, 16360,24536, 16368,28632, 16376,32728, - 16424,20512, 16432,24608, 16440,28704, 16480,16928, 16488,21024, - 16496,25120, 16504,29216, 16544,17440, 16552,21536, 16560,25632, - 16568,29728, 16608,17952, 16616,22048, 16624,26144, 16632,30240, - 16672,18464, 16680,22560, 16688,26656, 16696,30752, 16736,18976, - 16744,23072, 16752,27168, 16760,31264, 16800,19488, 16808,23584, - 16816,27680, 16824,31776, 16864,20000, 16872,24096, 16880,28192, - 16888,32288, 16936,20576, 16944,24672, 16952,28768, 17000,21088, - 17008,25184, 17016,29280, 17056,17504, 17064,21600, 17072,25696, - 17080,29792, 17120,18016, 17128,22112, 17136,26208, 17144,30304, - 17184,18528, 17192,22624, 17200,26720, 17208,30816, 17248,19040, - 17256,23136, 17264,27232, 17272,31328, 17312,19552, 17320,23648, - 17328,27744, 17336,31840, 17376,20064, 17384,24160, 17392,28256, - 17400,32352, 17448,20640, 17456,24736, 17464,28832, 17512,21152, - 17520,25248, 17528,29344, 17576,21664, 17584,25760, 17592,29856, - 17632,18080, 17640,22176, 17648,26272, 17656,30368, 17696,18592, - 17704,22688, 17712,26784, 17720,30880, 17760,19104, 17768,23200, - 17776,27296, 17784,31392, 17824,19616, 17832,23712, 17840,27808, - 17848,31904, 17888,20128, 17896,24224, 17904,28320, 17912,32416, - 17960,20704, 17968,24800, 17976,28896, 18024,21216, 18032,25312, - 18040,29408, 18088,21728, 18096,25824, 18104,29920, 18152,22240, - 18160,26336, 18168,30432, 18208,18656, 18216,22752, 18224,26848, - 18232,30944, 18272,19168, 18280,23264, 18288,27360, 18296,31456, - 18336,19680, 18344,23776, 18352,27872, 18360,31968, 18400,20192, - 18408,24288, 18416,28384, 18424,32480, 18472,20768, 18480,24864, - 18488,28960, 18536,21280, 18544,25376, 18552,29472, 18600,21792, - 18608,25888, 18616,29984, 18664,22304, 18672,26400, 18680,30496, - 18728,22816, 18736,26912, 18744,31008, 18784,19232, 18792,23328, - 18800,27424, 18808,31520, 18848,19744, 18856,23840, 18864,27936, - 18872,32032, 18912,20256, 18920,24352, 18928,28448, 18936,32544, - 18984,20832, 18992,24928, 19000,29024, 19048,21344, 19056,25440, - 19064,29536, 19112,21856, 19120,25952, 19128,30048, 19176,22368, - 19184,26464, 19192,30560, 19240,22880, 19248,26976, 19256,31072, - 19304,23392, 19312,27488, 19320,31584, 19360,19808, 19368,23904, - 19376,28000, 19384,32096, 19424,20320, 19432,24416, 19440,28512, - 19448,32608, 19496,20896, 19504,24992, 19512,29088, 19560,21408, - 19568,25504, 19576,29600, 19624,21920, 19632,26016, 19640,30112, - 19688,22432, 19696,26528, 19704,30624, 19752,22944, 19760,27040, - 19768,31136, 19816,23456, 19824,27552, 19832,31648, 19880,23968, - 19888,28064, 19896,32160, 19936,20384, 19944,24480, 19952,28576, - 19960,32672, 20008,20960, 20016,25056, 20024,29152, 20072,21472, - 20080,25568, 20088,29664, 20136,21984, 20144,26080, 20152,30176, - 20200,22496, 20208,26592, 20216,30688, 20264,23008, 20272,27104, - 20280,31200, 20328,23520, 20336,27616, 20344,31712, 20392,24032, - 20400,28128, 20408,32224, 20456,24544, 20464,28640, 20472,32736, - 20528,24616, 20536,28712, 20584,21032, 20592,25128, 20600,29224, - 20648,21544, 20656,25640, 20664,29736, 20712,22056, 20720,26152, - 20728,30248, 20776,22568, 20784,26664, 20792,30760, 20840,23080, - 20848,27176, 20856,31272, 20904,23592, 20912,27688, 20920,31784, - 20968,24104, 20976,28200, 20984,32296, 21040,24680, 21048,28776, - 21104,25192, 21112,29288, 21160,21608, 21168,25704, 21176,29800, - 21224,22120, 21232,26216, 21240,30312, 21288,22632, 21296,26728, - 21304,30824, 21352,23144, 21360,27240, 21368,31336, 21416,23656, - 21424,27752, 21432,31848, 21480,24168, 21488,28264, 21496,32360, - 21552,24744, 21560,28840, 21616,25256, 21624,29352, 21680,25768, - 21688,29864, 21736,22184, 21744,26280, 21752,30376, 21800,22696, - 21808,26792, 21816,30888, 21864,23208, 21872,27304, 21880,31400, - 21928,23720, 21936,27816, 21944,31912, 21992,24232, 22000,28328, - 22008,32424, 22064,24808, 22072,28904, 22128,25320, 22136,29416, - 22192,25832, 22200,29928, 22256,26344, 22264,30440, 22312,22760, - 22320,26856, 22328,30952, 22376,23272, 22384,27368, 22392,31464, - 22440,23784, 22448,27880, 22456,31976, 22504,24296, 22512,28392, - 22520,32488, 22576,24872, 22584,28968, 22640,25384, 22648,29480, - 22704,25896, 22712,29992, 22768,26408, 22776,30504, 22832,26920, - 22840,31016, 22888,23336, 22896,27432, 22904,31528, 22952,23848, - 22960,27944, 22968,32040, 23016,24360, 23024,28456, 23032,32552, - 23088,24936, 23096,29032, 23152,25448, 23160,29544, 23216,25960, - 23224,30056, 23280,26472, 23288,30568, 23344,26984, 23352,31080, - 23408,27496, 23416,31592, 23464,23912, 23472,28008, 23480,32104, - 23528,24424, 23536,28520, 23544,32616, 23600,25000, 23608,29096, - 23664,25512, 23672,29608, 23728,26024, 23736,30120, 23792,26536, - 23800,30632, 23856,27048, 23864,31144, 23920,27560, 23928,31656, - 23984,28072, 23992,32168, 24040,24488, 24048,28584, 24056,32680, - 24112,25064, 24120,29160, 24176,25576, 24184,29672, 24240,26088, - 24248,30184, 24304,26600, 24312,30696, 24368,27112, 24376,31208, - 24432,27624, 24440,31720, 24496,28136, 24504,32232, 24560,28648, - 24568,32744, 24632,28720, 24688,25136, 24696,29232, 24752,25648, - 24760,29744, 24816,26160, 24824,30256, 24880,26672, 24888,30768, - 24944,27184, 24952,31280, 25008,27696, 25016,31792, 25072,28208, - 25080,32304, 25144,28784, 25208,29296, 25264,25712, 25272,29808, - 25328,26224, 25336,30320, 25392,26736, 25400,30832, 25456,27248, - 25464,31344, 25520,27760, 25528,31856, 25584,28272, 25592,32368, - 25656,28848, 25720,29360, 25784,29872, 25840,26288, 25848,30384, - 25904,26800, 25912,30896, 25968,27312, 25976,31408, 26032,27824, - 26040,31920, 26096,28336, 26104,32432, 26168,28912, 26232,29424, - 26296,29936, 26360,30448, 26416,26864, 26424,30960, 26480,27376, - 26488,31472, 26544,27888, 26552,31984, 26608,28400, 26616,32496, - 26680,28976, 26744,29488, 26808,30000, 26872,30512, 26936,31024, - 26992,27440, 27000,31536, 27056,27952, 27064,32048, 27120,28464, - 27128,32560, 27192,29040, 27256,29552, 27320,30064, 27384,30576, - 27448,31088, 27512,31600, 27568,28016, 27576,32112, 27632,28528, - 27640,32624, 27704,29104, 27768,29616, 27832,30128, 27896,30640, - 27960,31152, 28024,31664, 28088,32176, 28144,28592, 28152,32688, - 28216,29168, 28280,29680, 28344,30192, 28408,30704, 28472,31216, - 28536,31728, 28600,32240, 28664,32752, 28792,29240, 28856,29752, - 28920,30264, 28984,30776, 29048,31288, 29112,31800, 29176,32312, - 29368,29816, 29432,30328, 29496,30840, 29560,31352, 29624,31864, - 29688,32376, 29944,30392, 30008,30904, 30072,31416, 30136,31928, - 30200,32440, 30520,30968, 30584,31480, 30648,31992, 30712,32504, - 31096,31544, 31160,32056, 31224,32568, 31672,32120, 31736,32632, - 32248,32696 -}; - - -const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH] = -{ - /* radix 4, size 12 */ - 8,64, 16,32, 24,96, 40,80, 56,112, 88,104 -}; - -const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH] = -{ - /* 4x2, size 24 */ - 8,128, 16,64, 24,192, 40,160, 48,96, 56,224, 72,144, - 88,208, 104,176, 120,240, 152,200, 184,232 -}; - -const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH] = -{ - /* radix 4, size 56 */ - 8,256, 16,128, 24,384, 32,64, 40,320, 48,192, 56,448, 72,288, 80,160, 88,416, 104,352, - 112,224, 120,480, 136,272, 152,400, 168,336, 176,208, 184,464, 200,304, 216,432, - 232,368, 248,496, 280,392, 296,328, 312,456, 344,424, 376,488, 440,472 -}; - -const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH] = -{ - /* 4x2, size 112 */ - 8,512, 16,256, 24,768, 32,128, 40,640, 48,384, 56,896, 72,576, 80,320, 88,832, 96,192, - 104,704, 112,448, 120,960, 136,544, 144,288, 152,800, 168,672, 176,416, 184,928, 200,608, - 208,352, 216,864, 232,736, 240,480, 248,992, 264,528, 280,784, 296,656, 304,400, 312,912, - 328,592, 344,848, 360,720, 368,464, 376,976, 392,560, 408,816, 424,688, 440,944, 456,624, - 472,880, 488,752, 504,1008, 536,776, 552,648, 568,904, 600,840, 616,712, 632,968, - 664,808, 696,936, 728,872, 760,1000, 824,920, 888,984 -}; - -const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH] = -{ - /* radix 4, size 240 */ - 8,1024, 16,512, 24,1536, 32,256, 40,1280, 48,768, 56,1792, 64,128, 72,1152, 80,640, - 88,1664, 96,384, 104,1408, 112,896, 120,1920, 136,1088, 144,576, 152,1600, 160,320, - 168,1344, 176,832, 184,1856, 200,1216, 208,704, 216,1728, 224,448, 232,1472, 240,960, - 248,1984, 264,1056, 272,544, 280,1568, 296,1312, 304,800, 312,1824, 328,1184, 336,672, - 344,1696, 352,416, 360,1440, 368,928, 376,1952, 392,1120, 400,608, 408,1632, 424,1376, - 432,864, 440,1888, 456,1248, 464,736, 472,1760, 488,1504, 496,992, 504,2016, 520,1040, - 536,1552, 552,1296, 560,784, 568,1808, 584,1168, 592,656, 600,1680, 616,1424, 624,912, - 632,1936, 648,1104, 664,1616, 680,1360, 688,848, 696,1872, 712,1232, 728,1744, 744,1488, - 752,976, 760,2000, 776,1072, 792,1584, 808,1328, 824,1840, 840,1200, 856,1712, 872,1456, - 880,944, 888,1968, 904,1136, 920,1648, 936,1392, 952,1904, 968,1264, 984,1776, 1000,1520, - 1016,2032, 1048,1544, 1064,1288, 1080,1800, 1096,1160, 1112,1672, 1128,1416, 1144,1928, - 1176,1608, 1192,1352, 1208,1864, 1240,1736, 1256,1480, 1272,1992, 1304,1576, 1336,1832, - 1368,1704, 1384,1448, 1400,1960, 1432,1640, 1464,1896, 1496,1768, 1528,2024, 1592,1816, - 1624,1688, 1656,1944, 1720,1880, 1784,2008, 1912,1976 -}; - -const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH] = -{ - /* 4x2, size 480 */ - 8,2048, 16,1024, 24,3072, 32,512, 40,2560, 48,1536, 56,3584, 64,256, 72,2304, 80,1280, - 88,3328, 96,768, 104,2816, 112,1792, 120,3840, 136,2176, 144,1152, 152,3200, 160,640, - 168,2688, 176,1664, 184,3712, 192,384, 200,2432, 208,1408, 216,3456, 224,896, 232,2944, - 240,1920, 248,3968, 264,2112, 272,1088, 280,3136, 288,576, 296,2624, 304,1600, 312,3648, - 328,2368, 336,1344, 344,3392, 352,832, 360,2880, 368,1856, 376,3904, 392,2240, 400,1216, - 408,3264, 416,704, 424,2752, 432,1728, 440,3776, 456,2496, 464,1472, 472,3520, 480,960, - 488,3008, 496,1984, 504,4032, 520,2080, 528,1056, 536,3104, 552,2592, 560,1568, 568,3616, - 584,2336, 592,1312, 600,3360, 608,800, 616,2848, 624,1824, 632,3872, 648,2208, 656,1184, - 664,3232, 680,2720, 688,1696, 696,3744, 712,2464, 720,1440, 728,3488, 736,928, 744,2976, - 752,1952, 760,4000, 776,2144, 784,1120, 792,3168, 808,2656, 816,1632, 824,3680, 840,2400, - 848,1376, 856,3424, 872,2912, 880,1888, 888,3936, 904,2272, 912,1248, 920,3296, 936,2784, - 944,1760, 952,3808, 968,2528, 976,1504, 984,3552, 1000,3040, 1008,2016, 1016,4064, - 1032,2064, 1048,3088, 1064,2576, 1072,1552, 1080,3600, 1096,2320, 1104,1296, 1112,3344, - 1128,2832, 1136,1808, 1144,3856, 1160,2192, 1176,3216, 1192,2704, 1200,1680, 1208,3728, - 1224,2448, 1232,1424, 1240,3472, 1256,2960, 1264,1936, 1272,3984, 1288,2128, 1304,3152, - 1320,2640, 1328,1616, 1336,3664, 1352,2384, 1368,3408, 1384,2896, 1392,1872, 1400,3920, - 1416,2256, 1432,3280, 1448,2768, 1456,1744, 1464,3792, 1480,2512, 1496,3536, 1512,3024, - 1520,2000, 1528,4048, 1544,2096, 1560,3120, 1576,2608, 1592,3632, 1608,2352, 1624,3376, - 1640,2864, 1648,1840, 1656,3888, 1672,2224, 1688,3248, 1704,2736, 1720,3760, 1736,2480, - 1752,3504, 1768,2992, 1776,1968, 1784,4016, 1800,2160, 1816,3184, 1832,2672, 1848,3696, - 1864,2416, 1880,3440, 1896,2928, 1912,3952, 1928,2288, 1944,3312, 1960,2800, 1976,3824, - 1992,2544, 2008,3568, 2024,3056, 2040,4080, 2072,3080, 2088,2568, 2104,3592, 2120,2312, - 2136,3336, 2152,2824, 2168,3848, 2200,3208, 2216,2696, 2232,3720, 2248,2440, 2264,3464, - 2280,2952, 2296,3976, 2328,3144, 2344,2632, 2360,3656, 2392,3400, 2408,2888, 2424,3912, - 2456,3272, 2472,2760, 2488,3784, 2520,3528, 2536,3016, 2552,4040, 2584,3112, 2616,3624, - 2648,3368, 2664,2856, 2680,3880, 2712,3240, 2744,3752, 2776,3496, 2792,2984, 2808,4008, - 2840,3176, 2872,3688, 2904,3432, 2936,3944, 2968,3304, 3000,3816, 3032,3560, 3064,4072, - 3128,3608, 3160,3352, 3192,3864, 3256,3736, 3288,3480, 3320,3992, 3384,3672, 3448,3928, - 3512,3800, 3576,4056, 3704,3896, 3832,4024 -}; - -const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH] = -{ - /* radix 4, size 992 */ - 8,4096, 16,2048, 24,6144, 32,1024, 40,5120, 48,3072, 56,7168, 64,512, 72,4608, - 80,2560, 88,6656, 96,1536, 104,5632, 112,3584, 120,7680, 128,256, 136,4352, - 144,2304, 152,6400, 160,1280, 168,5376, 176,3328, 184,7424, 192,768, 200,4864, - 208,2816, 216,6912, 224,1792, 232,5888, 240,3840, 248,7936, 264,4224, 272,2176, - 280,6272, 288,1152, 296,5248, 304,3200, 312,7296, 320,640, 328,4736, 336,2688, - 344,6784, 352,1664, 360,5760, 368,3712, 376,7808, 392,4480, 400,2432, 408,6528, - 416,1408, 424,5504, 432,3456, 440,7552, 448,896, 456,4992, 464,2944, 472,7040, - 480,1920, 488,6016, 496,3968, 504,8064, 520,4160, 528,2112, 536,6208, 544,1088, - 552,5184, 560,3136, 568,7232, 584,4672, 592,2624, 600,6720, 608,1600, 616,5696, - 624,3648, 632,7744, 648,4416, 656,2368, 664,6464, 672,1344, 680,5440, 688,3392, - 696,7488, 704,832, 712,4928, 720,2880, 728,6976, 736,1856, 744,5952, 752,3904, - 760,8000, 776,4288, 784,2240, 792,6336, 800,1216, 808,5312, 816,3264, 824,7360, - 840,4800, 848,2752, 856,6848, 864,1728, 872,5824, 880,3776, 888,7872, 904,4544, - 912,2496, 920,6592, 928,1472, 936,5568, 944,3520, 952,7616, 968,5056, 976,3008, - 984,7104, 992,1984, 1000,6080, 1008,4032, 1016,8128, 1032,4128, 1040,2080, - 1048,6176, 1064,5152, 1072,3104, 1080,7200, 1096,4640, 1104,2592, 1112,6688, - 1120,1568, 1128,5664, 1136,3616, 1144,7712, 1160,4384, 1168,2336, 1176,6432, - 1184,1312, 1192,5408, 1200,3360, 1208,7456, 1224,4896, 1232,2848, 1240,6944, - 1248,1824, 1256,5920, 1264,3872, 1272,7968, 1288,4256, 1296,2208, 1304,6304, - 1320,5280, 1328,3232, 1336,7328, 1352,4768, 1360,2720, 1368,6816, 1376,1696, - 1384,5792, 1392,3744, 1400,7840, 1416,4512, 1424,2464, 1432,6560, 1448,5536, - 1456,3488, 1464,7584, 1480,5024, 1488,2976, 1496,7072, 1504,1952, 1512,6048, - 1520,4000, 1528,8096, 1544,4192, 1552,2144, 1560,6240, 1576,5216, 1584,3168, - 1592,7264, 1608,4704, 1616,2656, 1624,6752, 1640,5728, 1648,3680, 1656,7776, - 1672,4448, 1680,2400, 1688,6496, 1704,5472, 1712,3424, 1720,7520, 1736,4960, - 1744,2912, 1752,7008, 1760,1888, 1768,5984, 1776,3936, 1784,8032, 1800,4320, - 1808,2272, 1816,6368, 1832,5344, 1840,3296, 1848,7392, 1864,4832, 1872,2784, - 1880,6880, 1896,5856, 1904,3808, 1912,7904, 1928,4576, 1936,2528, 1944,6624, - 1960,5600, 1968,3552, 1976,7648, 1992,5088, 2000,3040, 2008,7136, 2024,6112, - 2032,4064, 2040,8160, 2056,4112, 2072,6160, 2088,5136, 2096,3088, 2104,7184, - 2120,4624, 2128,2576, 2136,6672, 2152,5648, 2160,3600, 2168,7696, 2184,4368, - 2192,2320, 2200,6416, 2216,5392, 2224,3344, 2232,7440, 2248,4880, 2256,2832, - 2264,6928, 2280,5904, 2288,3856, 2296,7952, 2312,4240, 2328,6288, 2344,5264, - 2352,3216, 2360,7312, 2376,4752, 2384,2704, 2392,6800, 2408,5776, 2416,3728, - 2424,7824, 2440,4496, 2456,6544, 2472,5520, 2480,3472, 2488,7568, 2504,5008, - 2512,2960, 2520,7056, 2536,6032, 2544,3984, 2552,8080, 2568,4176, 2584,6224, - 2600,5200, 2608,3152, 2616,7248, 2632,4688, 2648,6736, 2664,5712, 2672,3664, - 2680,7760, 2696,4432, 2712,6480, 2728,5456, 2736,3408, 2744,7504, 2760,4944, - 2768,2896, 2776,6992, 2792,5968, 2800,3920, 2808,8016, 2824,4304, 2840,6352, - 2856,5328, 2864,3280, 2872,7376, 2888,4816, 2904,6864, 2920,5840, 2928,3792, - 2936,7888, 2952,4560, 2968,6608, 2984,5584, 2992,3536, 3000,7632, 3016,5072, - 3032,7120, 3048,6096, 3056,4048, 3064,8144, 3080,4144, 3096,6192, 3112,5168, - 3128,7216, 3144,4656, 3160,6704, 3176,5680, 3184,3632, 3192,7728, 3208,4400, - 3224,6448, 3240,5424, 3248,3376, 3256,7472, 3272,4912, 3288,6960, 3304,5936, - 3312,3888, 3320,7984, 3336,4272, 3352,6320, 3368,5296, 3384,7344, 3400,4784, - 3416,6832, 3432,5808, 3440,3760, 3448,7856, 3464,4528, 3480,6576, 3496,5552, - 3512,7600, 3528,5040, 3544,7088, 3560,6064, 3568,4016, 3576,8112, 3592,4208, - 3608,6256, 3624,5232, 3640,7280, 3656,4720, 3672,6768, 3688,5744, 3704,7792, - 3720,4464, 3736,6512, 3752,5488, 3768,7536, 3784,4976, 3800,7024, 3816,6000, - 3824,3952, 3832,8048, 3848,4336, 3864,6384, 3880,5360, 3896,7408, 3912,4848, - 3928,6896, 3944,5872, 3960,7920, 3976,4592, 3992,6640, 4008,5616, 4024,7664, - 4040,5104, 4056,7152, 4072,6128, 4088,8176, 4120,6152, 4136,5128, 4152,7176, - 4168,4616, 4184,6664, 4200,5640, 4216,7688, 4232,4360, 4248,6408, 4264,5384, - 4280,7432, 4296,4872, 4312,6920, 4328,5896, 4344,7944, 4376,6280, 4392,5256, - 4408,7304, 4424,4744, 4440,6792, 4456,5768, 4472,7816, 4504,6536, 4520,5512, - 4536,7560, 4552,5000, 4568,7048, 4584,6024, 4600,8072, 4632,6216, 4648,5192, - 4664,7240, 4696,6728, 4712,5704, 4728,7752, 4760,6472, 4776,5448, 4792,7496, - 4808,4936, 4824,6984, 4840,5960, 4856,8008, 4888,6344, 4904,5320, 4920,7368, - 4952,6856, 4968,5832, 4984,7880, 5016,6600, 5032,5576, 5048,7624, 5080,7112, - 5096,6088, 5112,8136, 5144,6184, 5176,7208, 5208,6696, 5224,5672, 5240,7720, - 5272,6440, 5288,5416, 5304,7464, 5336,6952, 5352,5928, 5368,7976, 5400,6312, - 5432,7336, 5464,6824, 5480,5800, 5496,7848, 5528,6568, 5560,7592, 5592,7080, - 5608,6056, 5624,8104, 5656,6248, 5688,7272, 5720,6760, 5752,7784, 5784,6504, - 5816,7528, 5848,7016, 5864,5992, 5880,8040, 5912,6376, 5944,7400, 5976,6888, - 6008,7912, 6040,6632, 6072,7656, 6104,7144, 6136,8168, 6200,7192, 6232,6680, - 6264,7704, 6296,6424, 6328,7448, 6360,6936, 6392,7960, 6456,7320, 6488,6808, - 6520,7832, 6584,7576, 6616,7064, 6648,8088, 6712,7256, 6776,7768, 6840,7512, - 6872,7000, 6904,8024, 6968,7384, 7032,7896, 7096,7640, 7160,8152, 7288,7736, - 7352,7480, 7416,7992, 7544,7864, 7672,8120, 7928,8056 -}; - -const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH] = -{ - /* 4x2, size 1984 */ - 8,8192, 16,4096, 24,12288, 32,2048, 40,10240, 48,6144, 56,14336, 64,1024, - 72,9216, 80,5120, 88,13312, 96,3072, 104,11264, 112,7168, 120,15360, 128,512, - 136,8704, 144,4608, 152,12800, 160,2560, 168,10752, 176,6656, 184,14848, - 192,1536, 200,9728, 208,5632, 216,13824, 224,3584, 232,11776, 240,7680, - 248,15872, 264,8448, 272,4352, 280,12544, 288,2304, 296,10496, 304,6400, - 312,14592, 320,1280, 328,9472, 336,5376, 344,13568, 352,3328, 360,11520, - 368,7424, 376,15616, 384,768, 392,8960, 400,4864, 408,13056, 416,2816, - 424,11008, 432,6912, 440,15104, 448,1792, 456,9984, 464,5888, 472,14080, - 480,3840, 488,12032, 496,7936, 504,16128, 520,8320, 528,4224, 536,12416, - 544,2176, 552,10368, 560,6272, 568,14464, 576,1152, 584,9344, 592,5248, - 600,13440, 608,3200, 616,11392, 624,7296, 632,15488, 648,8832, 656,4736, - 664,12928, 672,2688, 680,10880, 688,6784, 696,14976, 704,1664, 712,9856, - 720,5760, 728,13952, 736,3712, 744,11904, 752,7808, 760,16000, 776,8576, - 784,4480, 792,12672, 800,2432, 808,10624, 816,6528, 824,14720, 832,1408, - 840,9600, 848,5504, 856,13696, 864,3456, 872,11648, 880,7552, 888,15744, - 904,9088, 912,4992, 920,13184, 928,2944, 936,11136, 944,7040, 952,15232, - 960,1920, 968,10112, 976,6016, 984,14208, 992,3968, 1000,12160, 1008,8064, - 1016,16256, 1032,8256, 1040,4160, 1048,12352, 1056,2112, 1064,10304, 1072,6208, - 1080,14400, 1096,9280, 1104,5184, 1112,13376, 1120,3136, 1128,11328, 1136,7232, - 1144,15424, 1160,8768, 1168,4672, 1176,12864, 1184,2624, 1192,10816, 1200,6720, - 1208,14912, 1216,1600, 1224,9792, 1232,5696, 1240,13888, 1248,3648, 1256,11840, - 1264,7744, 1272,15936, 1288,8512, 1296,4416, 1304,12608, 1312,2368, 1320,10560, - 1328,6464, 1336,14656, 1352,9536, 1360,5440, 1368,13632, 1376,3392, 1384,11584, - 1392,7488, 1400,15680, 1416,9024, 1424,4928, 1432,13120, 1440,2880, 1448,11072, - 1456,6976, 1464,15168, 1472,1856, 1480,10048, 1488,5952, 1496,14144, 1504,3904, - 1512,12096, 1520,8000, 1528,16192, 1544,8384, 1552,4288, 1560,12480, 1568,2240, - 1576,10432, 1584,6336, 1592,14528, 1608,9408, 1616,5312, 1624,13504, 1632,3264, - 1640,11456, 1648,7360, 1656,15552, 1672,8896, 1680,4800, 1688,12992, 1696,2752, - 1704,10944, 1712,6848, 1720,15040, 1736,9920, 1744,5824, 1752,14016, 1760,3776, - 1768,11968, 1776,7872, 1784,16064, 1800,8640, 1808,4544, 1816,12736, 1824,2496, - 1832,10688, 1840,6592, 1848,14784, 1864,9664, 1872,5568, 1880,13760, 1888,3520, - 1896,11712, 1904,7616, 1912,15808, 1928,9152, 1936,5056, 1944,13248, 1952,3008, - 1960,11200, 1968,7104, 1976,15296, 1992,10176, 2000,6080, 2008,14272, 2016,4032, - 2024,12224, 2032,8128, 2040,16320, 2056,8224, 2064,4128, 2072,12320, 2088,10272, - 2096,6176, 2104,14368, 2120,9248, 2128,5152, 2136,13344, 2144,3104, 2152,11296, - 2160,7200, 2168,15392, 2184,8736, 2192,4640, 2200,12832, 2208,2592, 2216,10784, - 2224,6688, 2232,14880, 2248,9760, 2256,5664, 2264,13856, 2272,3616, 2280,11808, - 2288,7712, 2296,15904, 2312,8480, 2320,4384, 2328,12576, 2344,10528, 2352,6432, - 2360,14624, 2376,9504, 2384,5408, 2392,13600, 2400,3360, 2408,11552, 2416,7456, - 2424,15648, 2440,8992, 2448,4896, 2456,13088, 2464,2848, 2472,11040, 2480,6944, - 2488,15136, 2504,10016, 2512,5920, 2520,14112, 2528,3872, 2536,12064, 2544,7968, - 2552,16160, 2568,8352, 2576,4256, 2584,12448, 2600,10400, 2608,6304, 2616,14496, - 2632,9376, 2640,5280, 2648,13472, 2656,3232, 2664,11424, 2672,7328, 2680,15520, - 2696,8864, 2704,4768, 2712,12960, 2728,10912, 2736,6816, 2744,15008, 2760,9888, - 2768,5792, 2776,13984, 2784,3744, 2792,11936, 2800,7840, 2808,16032, 2824,8608, - 2832,4512, 2840,12704, 2856,10656, 2864,6560, 2872,14752, 2888,9632, 2896,5536, - 2904,13728, 2912,3488, 2920,11680, 2928,7584, 2936,15776, 2952,9120, 2960,5024, - 2968,13216, 2984,11168, 2992,7072, 3000,15264, 3016,10144, 3024,6048, - 3032,14240, 3040,4000, 3048,12192, 3056,8096, 3064,16288, 3080,8288, 3088,4192, - 3096,12384, 3112,10336, 3120,6240, 3128,14432, 3144,9312, 3152,5216, 3160,13408, - 3176,11360, 3184,7264, 3192,15456, 3208,8800, 3216,4704, 3224,12896, 3240,10848, - 3248,6752, 3256,14944, 3272,9824, 3280,5728, 3288,13920, 3296,3680, 3304,11872, - 3312,7776, 3320,15968, 3336,8544, 3344,4448, 3352,12640, 3368,10592, 3376,6496, - 3384,14688, 3400,9568, 3408,5472, 3416,13664, 3432,11616, 3440,7520, 3448,15712, - 3464,9056, 3472,4960, 3480,13152, 3496,11104, 3504,7008, 3512,15200, 3528,10080, - 3536,5984, 3544,14176, 3552,3936, 3560,12128, 3568,8032, 3576,16224, 3592,8416, - 3600,4320, 3608,12512, 3624,10464, 3632,6368, 3640,14560, 3656,9440, 3664,5344, - 3672,13536, 3688,11488, 3696,7392, 3704,15584, 3720,8928, 3728,4832, 3736,13024, - 3752,10976, 3760,6880, 3768,15072, 3784,9952, 3792,5856, 3800,14048, 3816,12000, - 3824,7904, 3832,16096, 3848,8672, 3856,4576, 3864,12768, 3880,10720, 3888,6624, - 3896,14816, 3912,9696, 3920,5600, 3928,13792, 3944,11744, 3952,7648, 3960,15840, - 3976,9184, 3984,5088, 3992,13280, 4008,11232, 4016,7136, 4024,15328, 4040,10208, - 4048,6112, 4056,14304, 4072,12256, 4080,8160, 4088,16352, 4104,8208, 4120,12304, - 4136,10256, 4144,6160, 4152,14352, 4168,9232, 4176,5136, 4184,13328, 4200,11280, - 4208,7184, 4216,15376, 4232,8720, 4240,4624, 4248,12816, 4264,10768, 4272,6672, - 4280,14864, 4296,9744, 4304,5648, 4312,13840, 4328,11792, 4336,7696, 4344,15888, - 4360,8464, 4376,12560, 4392,10512, 4400,6416, 4408,14608, 4424,9488, 4432,5392, - 4440,13584, 4456,11536, 4464,7440, 4472,15632, 4488,8976, 4496,4880, 4504,13072, - 4520,11024, 4528,6928, 4536,15120, 4552,10000, 4560,5904, 4568,14096, - 4584,12048, 4592,7952, 4600,16144, 4616,8336, 4632,12432, 4648,10384, 4656,6288, - 4664,14480, 4680,9360, 4688,5264, 4696,13456, 4712,11408, 4720,7312, 4728,15504, - 4744,8848, 4760,12944, 4776,10896, 4784,6800, 4792,14992, 4808,9872, 4816,5776, - 4824,13968, 4840,11920, 4848,7824, 4856,16016, 4872,8592, 4888,12688, - 4904,10640, 4912,6544, 4920,14736, 4936,9616, 4944,5520, 4952,13712, 4968,11664, - 4976,7568, 4984,15760, 5000,9104, 5016,13200, 5032,11152, 5040,7056, 5048,15248, - 5064,10128, 5072,6032, 5080,14224, 5096,12176, 5104,8080, 5112,16272, 5128,8272, - 5144,12368, 5160,10320, 5168,6224, 5176,14416, 5192,9296, 5208,13392, - 5224,11344, 5232,7248, 5240,15440, 5256,8784, 5272,12880, 5288,10832, 5296,6736, - 5304,14928, 5320,9808, 5328,5712, 5336,13904, 5352,11856, 5360,7760, 5368,15952, - 5384,8528, 5400,12624, 5416,10576, 5424,6480, 5432,14672, 5448,9552, 5464,13648, - 5480,11600, 5488,7504, 5496,15696, 5512,9040, 5528,13136, 5544,11088, 5552,6992, - 5560,15184, 5576,10064, 5584,5968, 5592,14160, 5608,12112, 5616,8016, - 5624,16208, 5640,8400, 5656,12496, 5672,10448, 5680,6352, 5688,14544, 5704,9424, - 5720,13520, 5736,11472, 5744,7376, 5752,15568, 5768,8912, 5784,13008, - 5800,10960, 5808,6864, 5816,15056, 5832,9936, 5848,14032, 5864,11984, 5872,7888, - 5880,16080, 5896,8656, 5912,12752, 5928,10704, 5936,6608, 5944,14800, 5960,9680, - 5976,13776, 5992,11728, 6000,7632, 6008,15824, 6024,9168, 6040,13264, - 6056,11216, 6064,7120, 6072,15312, 6088,10192, 6104,14288, 6120,12240, - 6128,8144, 6136,16336, 6152,8240, 6168,12336, 6184,10288, 6200,14384, 6216,9264, - 6232,13360, 6248,11312, 6256,7216, 6264,15408, 6280,8752, 6296,12848, - 6312,10800, 6320,6704, 6328,14896, 6344,9776, 6360,13872, 6376,11824, 6384,7728, - 6392,15920, 6408,8496, 6424,12592, 6440,10544, 6456,14640, 6472,9520, - 6488,13616, 6504,11568, 6512,7472, 6520,15664, 6536,9008, 6552,13104, - 6568,11056, 6576,6960, 6584,15152, 6600,10032, 6616,14128, 6632,12080, - 6640,7984, 6648,16176, 6664,8368, 6680,12464, 6696,10416, 6712,14512, 6728,9392, - 6744,13488, 6760,11440, 6768,7344, 6776,15536, 6792,8880, 6808,12976, - 6824,10928, 6840,15024, 6856,9904, 6872,14000, 6888,11952, 6896,7856, - 6904,16048, 6920,8624, 6936,12720, 6952,10672, 6968,14768, 6984,9648, - 7000,13744, 7016,11696, 7024,7600, 7032,15792, 7048,9136, 7064,13232, - 7080,11184, 7096,15280, 7112,10160, 7128,14256, 7144,12208, 7152,8112, - 7160,16304, 7176,8304, 7192,12400, 7208,10352, 7224,14448, 7240,9328, - 7256,13424, 7272,11376, 7288,15472, 7304,8816, 7320,12912, 7336,10864, - 7352,14960, 7368,9840, 7384,13936, 7400,11888, 7408,7792, 7416,15984, 7432,8560, - 7448,12656, 7464,10608, 7480,14704, 7496,9584, 7512,13680, 7528,11632, - 7544,15728, 7560,9072, 7576,13168, 7592,11120, 7608,15216, 7624,10096, - 7640,14192, 7656,12144, 7664,8048, 7672,16240, 7688,8432, 7704,12528, - 7720,10480, 7736,14576, 7752,9456, 7768,13552, 7784,11504, 7800,15600, - 7816,8944, 7832,13040, 7848,10992, 7864,15088, 7880,9968, 7896,14064, - 7912,12016, 7928,16112, 7944,8688, 7960,12784, 7976,10736, 7992,14832, - 8008,9712, 8024,13808, 8040,11760, 8056,15856, 8072,9200, 8088,13296, - 8104,11248, 8120,15344, 8136,10224, 8152,14320, 8168,12272, 8184,16368, - 8216,12296, 8232,10248, 8248,14344, 8264,9224, 8280,13320, 8296,11272, - 8312,15368, 8328,8712, 8344,12808, 8360,10760, 8376,14856, 8392,9736, - 8408,13832, 8424,11784, 8440,15880, 8472,12552, 8488,10504, 8504,14600, - 8520,9480, 8536,13576, 8552,11528, 8568,15624, 8584,8968, 8600,13064, - 8616,11016, 8632,15112, 8648,9992, 8664,14088, 8680,12040, 8696,16136, - 8728,12424, 8744,10376, 8760,14472, 8776,9352, 8792,13448, 8808,11400, - 8824,15496, 8856,12936, 8872,10888, 8888,14984, 8904,9864, 8920,13960, - 8936,11912, 8952,16008, 8984,12680, 9000,10632, 9016,14728, 9032,9608, - 9048,13704, 9064,11656, 9080,15752, 9112,13192, 9128,11144, 9144,15240, - 9160,10120, 9176,14216, 9192,12168, 9208,16264, 9240,12360, 9256,10312, - 9272,14408, 9304,13384, 9320,11336, 9336,15432, 9368,12872, 9384,10824, - 9400,14920, 9416,9800, 9432,13896, 9448,11848, 9464,15944, 9496,12616, - 9512,10568, 9528,14664, 9560,13640, 9576,11592, 9592,15688, 9624,13128, - 9640,11080, 9656,15176, 9672,10056, 9688,14152, 9704,12104, 9720,16200, - 9752,12488, 9768,10440, 9784,14536, 9816,13512, 9832,11464, 9848,15560, - 9880,13000, 9896,10952, 9912,15048, 9944,14024, 9960,11976, 9976,16072, - 10008,12744, 10024,10696, 10040,14792, 10072,13768, 10088,11720, 10104,15816, - 10136,13256, 10152,11208, 10168,15304, 10200,14280, 10216,12232, 10232,16328, - 10264,12328, 10296,14376, 10328,13352, 10344,11304, 10360,15400, 10392,12840, - 10408,10792, 10424,14888, 10456,13864, 10472,11816, 10488,15912, 10520,12584, - 10552,14632, 10584,13608, 10600,11560, 10616,15656, 10648,13096, 10664,11048, - 10680,15144, 10712,14120, 10728,12072, 10744,16168, 10776,12456, 10808,14504, - 10840,13480, 10856,11432, 10872,15528, 10904,12968, 10936,15016, 10968,13992, - 10984,11944, 11000,16040, 11032,12712, 11064,14760, 11096,13736, 11112,11688, - 11128,15784, 11160,13224, 11192,15272, 11224,14248, 11240,12200, 11256,16296, - 11288,12392, 11320,14440, 11352,13416, 11384,15464, 11416,12904, 11448,14952, - 11480,13928, 11496,11880, 11512,15976, 11544,12648, 11576,14696, 11608,13672, - 11640,15720, 11672,13160, 11704,15208, 11736,14184, 11752,12136, 11768,16232, - 11800,12520, 11832,14568, 11864,13544, 11896,15592, 11928,13032, 11960,15080, - 11992,14056, 12024,16104, 12056,12776, 12088,14824, 12120,13800, 12152,15848, - 12184,13288, 12216,15336, 12248,14312, 12280,16360, 12344,14360, 12376,13336, - 12408,15384, 12440,12824, 12472,14872, 12504,13848, 12536,15896, 12600,14616, - 12632,13592, 12664,15640, 12696,13080, 12728,15128, 12760,14104, 12792,16152, - 12856,14488, 12888,13464, 12920,15512, 12984,15000, 13016,13976, 13048,16024, - 13112,14744, 13144,13720, 13176,15768, 13240,15256, 13272,14232, 13304,16280, - 13368,14424, 13432,15448, 13496,14936, 13528,13912, 13560,15960, 13624,14680, - 13688,15704, 13752,15192, 13784,14168, 13816,16216, 13880,14552, 13944,15576, - 14008,15064, 14072,16088, 14136,14808, 14200,15832, 14264,15320, 14328,16344, - 14456,15416, 14520,14904, 14584,15928, 14712,15672, 14776,15160, 14840,16184, - 14968,15544, 15096,16056, 15224,15800, 15352,16312, 15608,15992, 15864,16248 -}; - -const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH] = -{ - /* radix 4, size 4032 */ - 8,16384, 16,8192, 24,24576, 32,4096, 40,20480, 48,12288, 56,28672, 64,2048, - 72,18432, 80,10240, 88,26624, 96,6144, 104,22528, 112,14336, 120,30720, - 128,1024, 136,17408, 144,9216, 152,25600, 160,5120, 168,21504, 176,13312, - 184,29696, 192,3072, 200,19456, 208,11264, 216,27648, 224,7168, 232,23552, - 240,15360, 248,31744, 256,512, 264,16896, 272,8704, 280,25088, 288,4608, - 296,20992, 304,12800, 312,29184, 320,2560, 328,18944, 336,10752, 344,27136, - 352,6656, 360,23040, 368,14848, 376,31232, 384,1536, 392,17920, 400,9728, - 408,26112, 416,5632, 424,22016, 432,13824, 440,30208, 448,3584, 456,19968, - 464,11776, 472,28160, 480,7680, 488,24064, 496,15872, 504,32256, 520,16640, - 528,8448, 536,24832, 544,4352, 552,20736, 560,12544, 568,28928, 576,2304, - 584,18688, 592,10496, 600,26880, 608,6400, 616,22784, 624,14592, 632,30976, - 640,1280, 648,17664, 656,9472, 664,25856, 672,5376, 680,21760, 688,13568, - 696,29952, 704,3328, 712,19712, 720,11520, 728,27904, 736,7424, 744,23808, - 752,15616, 760,32000, 776,17152, 784,8960, 792,25344, 800,4864, 808,21248, - 816,13056, 824,29440, 832,2816, 840,19200, 848,11008, 856,27392, 864,6912, - 872,23296, 880,15104, 888,31488, 896,1792, 904,18176, 912,9984, 920,26368, - 928,5888, 936,22272, 944,14080, 952,30464, 960,3840, 968,20224, 976,12032, - 984,28416, 992,7936, 1000,24320, 1008,16128, 1016,32512, 1032,16512, 1040,8320, - 1048,24704, 1056,4224, 1064,20608, 1072,12416, 1080,28800, 1088,2176, - 1096,18560, 1104,10368, 1112,26752, 1120,6272, 1128,22656, 1136,14464, - 1144,30848, 1160,17536, 1168,9344, 1176,25728, 1184,5248, 1192,21632, - 1200,13440, 1208,29824, 1216,3200, 1224,19584, 1232,11392, 1240,27776, - 1248,7296, 1256,23680, 1264,15488, 1272,31872, 1288,17024, 1296,8832, - 1304,25216, 1312,4736, 1320,21120, 1328,12928, 1336,29312, 1344,2688, - 1352,19072, 1360,10880, 1368,27264, 1376,6784, 1384,23168, 1392,14976, - 1400,31360, 1408,1664, 1416,18048, 1424,9856, 1432,26240, 1440,5760, 1448,22144, - 1456,13952, 1464,30336, 1472,3712, 1480,20096, 1488,11904, 1496,28288, - 1504,7808, 1512,24192, 1520,16000, 1528,32384, 1544,16768, 1552,8576, - 1560,24960, 1568,4480, 1576,20864, 1584,12672, 1592,29056, 1600,2432, - 1608,18816, 1616,10624, 1624,27008, 1632,6528, 1640,22912, 1648,14720, - 1656,31104, 1672,17792, 1680,9600, 1688,25984, 1696,5504, 1704,21888, - 1712,13696, 1720,30080, 1728,3456, 1736,19840, 1744,11648, 1752,28032, - 1760,7552, 1768,23936, 1776,15744, 1784,32128, 1800,17280, 1808,9088, - 1816,25472, 1824,4992, 1832,21376, 1840,13184, 1848,29568, 1856,2944, - 1864,19328, 1872,11136, 1880,27520, 1888,7040, 1896,23424, 1904,15232, - 1912,31616, 1928,18304, 1936,10112, 1944,26496, 1952,6016, 1960,22400, - 1968,14208, 1976,30592, 1984,3968, 1992,20352, 2000,12160, 2008,28544, - 2016,8064, 2024,24448, 2032,16256, 2040,32640, 2056,16448, 2064,8256, - 2072,24640, 2080,4160, 2088,20544, 2096,12352, 2104,28736, 2120,18496, - 2128,10304, 2136,26688, 2144,6208, 2152,22592, 2160,14400, 2168,30784, - 2184,17472, 2192,9280, 2200,25664, 2208,5184, 2216,21568, 2224,13376, - 2232,29760, 2240,3136, 2248,19520, 2256,11328, 2264,27712, 2272,7232, - 2280,23616, 2288,15424, 2296,31808, 2312,16960, 2320,8768, 2328,25152, - 2336,4672, 2344,21056, 2352,12864, 2360,29248, 2368,2624, 2376,19008, - 2384,10816, 2392,27200, 2400,6720, 2408,23104, 2416,14912, 2424,31296, - 2440,17984, 2448,9792, 2456,26176, 2464,5696, 2472,22080, 2480,13888, - 2488,30272, 2496,3648, 2504,20032, 2512,11840, 2520,28224, 2528,7744, - 2536,24128, 2544,15936, 2552,32320, 2568,16704, 2576,8512, 2584,24896, - 2592,4416, 2600,20800, 2608,12608, 2616,28992, 2632,18752, 2640,10560, - 2648,26944, 2656,6464, 2664,22848, 2672,14656, 2680,31040, 2696,17728, - 2704,9536, 2712,25920, 2720,5440, 2728,21824, 2736,13632, 2744,30016, 2752,3392, - 2760,19776, 2768,11584, 2776,27968, 2784,7488, 2792,23872, 2800,15680, - 2808,32064, 2824,17216, 2832,9024, 2840,25408, 2848,4928, 2856,21312, - 2864,13120, 2872,29504, 2888,19264, 2896,11072, 2904,27456, 2912,6976, - 2920,23360, 2928,15168, 2936,31552, 2952,18240, 2960,10048, 2968,26432, - 2976,5952, 2984,22336, 2992,14144, 3000,30528, 3008,3904, 3016,20288, - 3024,12096, 3032,28480, 3040,8000, 3048,24384, 3056,16192, 3064,32576, - 3080,16576, 3088,8384, 3096,24768, 3104,4288, 3112,20672, 3120,12480, - 3128,28864, 3144,18624, 3152,10432, 3160,26816, 3168,6336, 3176,22720, - 3184,14528, 3192,30912, 3208,17600, 3216,9408, 3224,25792, 3232,5312, - 3240,21696, 3248,13504, 3256,29888, 3272,19648, 3280,11456, 3288,27840, - 3296,7360, 3304,23744, 3312,15552, 3320,31936, 3336,17088, 3344,8896, - 3352,25280, 3360,4800, 3368,21184, 3376,12992, 3384,29376, 3400,19136, - 3408,10944, 3416,27328, 3424,6848, 3432,23232, 3440,15040, 3448,31424, - 3464,18112, 3472,9920, 3480,26304, 3488,5824, 3496,22208, 3504,14016, - 3512,30400, 3520,3776, 3528,20160, 3536,11968, 3544,28352, 3552,7872, - 3560,24256, 3568,16064, 3576,32448, 3592,16832, 3600,8640, 3608,25024, - 3616,4544, 3624,20928, 3632,12736, 3640,29120, 3656,18880, 3664,10688, - 3672,27072, 3680,6592, 3688,22976, 3696,14784, 3704,31168, 3720,17856, - 3728,9664, 3736,26048, 3744,5568, 3752,21952, 3760,13760, 3768,30144, - 3784,19904, 3792,11712, 3800,28096, 3808,7616, 3816,24000, 3824,15808, - 3832,32192, 3848,17344, 3856,9152, 3864,25536, 3872,5056, 3880,21440, - 3888,13248, 3896,29632, 3912,19392, 3920,11200, 3928,27584, 3936,7104, - 3944,23488, 3952,15296, 3960,31680, 3976,18368, 3984,10176, 3992,26560, - 4000,6080, 4008,22464, 4016,14272, 4024,30656, 4040,20416, 4048,12224, - 4056,28608, 4064,8128, 4072,24512, 4080,16320, 4088,32704, 4104,16416, - 4112,8224, 4120,24608, 4136,20512, 4144,12320, 4152,28704, 4168,18464, - 4176,10272, 4184,26656, 4192,6176, 4200,22560, 4208,14368, 4216,30752, - 4232,17440, 4240,9248, 4248,25632, 4256,5152, 4264,21536, 4272,13344, - 4280,29728, 4296,19488, 4304,11296, 4312,27680, 4320,7200, 4328,23584, - 4336,15392, 4344,31776, 4360,16928, 4368,8736, 4376,25120, 4384,4640, - 4392,21024, 4400,12832, 4408,29216, 4424,18976, 4432,10784, 4440,27168, - 4448,6688, 4456,23072, 4464,14880, 4472,31264, 4488,17952, 4496,9760, - 4504,26144, 4512,5664, 4520,22048, 4528,13856, 4536,30240, 4552,20000, - 4560,11808, 4568,28192, 4576,7712, 4584,24096, 4592,15904, 4600,32288, - 4616,16672, 4624,8480, 4632,24864, 4648,20768, 4656,12576, 4664,28960, - 4680,18720, 4688,10528, 4696,26912, 4704,6432, 4712,22816, 4720,14624, - 4728,31008, 4744,17696, 4752,9504, 4760,25888, 4768,5408, 4776,21792, - 4784,13600, 4792,29984, 4808,19744, 4816,11552, 4824,27936, 4832,7456, - 4840,23840, 4848,15648, 4856,32032, 4872,17184, 4880,8992, 4888,25376, - 4904,21280, 4912,13088, 4920,29472, 4936,19232, 4944,11040, 4952,27424, - 4960,6944, 4968,23328, 4976,15136, 4984,31520, 5000,18208, 5008,10016, - 5016,26400, 5024,5920, 5032,22304, 5040,14112, 5048,30496, 5064,20256, - 5072,12064, 5080,28448, 5088,7968, 5096,24352, 5104,16160, 5112,32544, - 5128,16544, 5136,8352, 5144,24736, 5160,20640, 5168,12448, 5176,28832, - 5192,18592, 5200,10400, 5208,26784, 5216,6304, 5224,22688, 5232,14496, - 5240,30880, 5256,17568, 5264,9376, 5272,25760, 5288,21664, 5296,13472, - 5304,29856, 5320,19616, 5328,11424, 5336,27808, 5344,7328, 5352,23712, - 5360,15520, 5368,31904, 5384,17056, 5392,8864, 5400,25248, 5416,21152, - 5424,12960, 5432,29344, 5448,19104, 5456,10912, 5464,27296, 5472,6816, - 5480,23200, 5488,15008, 5496,31392, 5512,18080, 5520,9888, 5528,26272, - 5536,5792, 5544,22176, 5552,13984, 5560,30368, 5576,20128, 5584,11936, - 5592,28320, 5600,7840, 5608,24224, 5616,16032, 5624,32416, 5640,16800, - 5648,8608, 5656,24992, 5672,20896, 5680,12704, 5688,29088, 5704,18848, - 5712,10656, 5720,27040, 5728,6560, 5736,22944, 5744,14752, 5752,31136, - 5768,17824, 5776,9632, 5784,26016, 5800,21920, 5808,13728, 5816,30112, - 5832,19872, 5840,11680, 5848,28064, 5856,7584, 5864,23968, 5872,15776, - 5880,32160, 5896,17312, 5904,9120, 5912,25504, 5928,21408, 5936,13216, - 5944,29600, 5960,19360, 5968,11168, 5976,27552, 5984,7072, 5992,23456, - 6000,15264, 6008,31648, 6024,18336, 6032,10144, 6040,26528, 6056,22432, - 6064,14240, 6072,30624, 6088,20384, 6096,12192, 6104,28576, 6112,8096, - 6120,24480, 6128,16288, 6136,32672, 6152,16480, 6160,8288, 6168,24672, - 6184,20576, 6192,12384, 6200,28768, 6216,18528, 6224,10336, 6232,26720, - 6248,22624, 6256,14432, 6264,30816, 6280,17504, 6288,9312, 6296,25696, - 6312,21600, 6320,13408, 6328,29792, 6344,19552, 6352,11360, 6360,27744, - 6368,7264, 6376,23648, 6384,15456, 6392,31840, 6408,16992, 6416,8800, - 6424,25184, 6440,21088, 6448,12896, 6456,29280, 6472,19040, 6480,10848, - 6488,27232, 6496,6752, 6504,23136, 6512,14944, 6520,31328, 6536,18016, - 6544,9824, 6552,26208, 6568,22112, 6576,13920, 6584,30304, 6600,20064, - 6608,11872, 6616,28256, 6624,7776, 6632,24160, 6640,15968, 6648,32352, - 6664,16736, 6672,8544, 6680,24928, 6696,20832, 6704,12640, 6712,29024, - 6728,18784, 6736,10592, 6744,26976, 6760,22880, 6768,14688, 6776,31072, - 6792,17760, 6800,9568, 6808,25952, 6824,21856, 6832,13664, 6840,30048, - 6856,19808, 6864,11616, 6872,28000, 6880,7520, 6888,23904, 6896,15712, - 6904,32096, 6920,17248, 6928,9056, 6936,25440, 6952,21344, 6960,13152, - 6968,29536, 6984,19296, 6992,11104, 7000,27488, 7016,23392, 7024,15200, - 7032,31584, 7048,18272, 7056,10080, 7064,26464, 7080,22368, 7088,14176, - 7096,30560, 7112,20320, 7120,12128, 7128,28512, 7136,8032, 7144,24416, - 7152,16224, 7160,32608, 7176,16608, 7184,8416, 7192,24800, 7208,20704, - 7216,12512, 7224,28896, 7240,18656, 7248,10464, 7256,26848, 7272,22752, - 7280,14560, 7288,30944, 7304,17632, 7312,9440, 7320,25824, 7336,21728, - 7344,13536, 7352,29920, 7368,19680, 7376,11488, 7384,27872, 7400,23776, - 7408,15584, 7416,31968, 7432,17120, 7440,8928, 7448,25312, 7464,21216, - 7472,13024, 7480,29408, 7496,19168, 7504,10976, 7512,27360, 7528,23264, - 7536,15072, 7544,31456, 7560,18144, 7568,9952, 7576,26336, 7592,22240, - 7600,14048, 7608,30432, 7624,20192, 7632,12000, 7640,28384, 7648,7904, - 7656,24288, 7664,16096, 7672,32480, 7688,16864, 7696,8672, 7704,25056, - 7720,20960, 7728,12768, 7736,29152, 7752,18912, 7760,10720, 7768,27104, - 7784,23008, 7792,14816, 7800,31200, 7816,17888, 7824,9696, 7832,26080, - 7848,21984, 7856,13792, 7864,30176, 7880,19936, 7888,11744, 7896,28128, - 7912,24032, 7920,15840, 7928,32224, 7944,17376, 7952,9184, 7960,25568, - 7976,21472, 7984,13280, 7992,29664, 8008,19424, 8016,11232, 8024,27616, - 8040,23520, 8048,15328, 8056,31712, 8072,18400, 8080,10208, 8088,26592, - 8104,22496, 8112,14304, 8120,30688, 8136,20448, 8144,12256, 8152,28640, - 8168,24544, 8176,16352, 8184,32736, 8200,16400, 8216,24592, 8232,20496, - 8240,12304, 8248,28688, 8264,18448, 8272,10256, 8280,26640, 8296,22544, - 8304,14352, 8312,30736, 8328,17424, 8336,9232, 8344,25616, 8360,21520, - 8368,13328, 8376,29712, 8392,19472, 8400,11280, 8408,27664, 8424,23568, - 8432,15376, 8440,31760, 8456,16912, 8464,8720, 8472,25104, 8488,21008, - 8496,12816, 8504,29200, 8520,18960, 8528,10768, 8536,27152, 8552,23056, - 8560,14864, 8568,31248, 8584,17936, 8592,9744, 8600,26128, 8616,22032, - 8624,13840, 8632,30224, 8648,19984, 8656,11792, 8664,28176, 8680,24080, - 8688,15888, 8696,32272, 8712,16656, 8728,24848, 8744,20752, 8752,12560, - 8760,28944, 8776,18704, 8784,10512, 8792,26896, 8808,22800, 8816,14608, - 8824,30992, 8840,17680, 8848,9488, 8856,25872, 8872,21776, 8880,13584, - 8888,29968, 8904,19728, 8912,11536, 8920,27920, 8936,23824, 8944,15632, - 8952,32016, 8968,17168, 8984,25360, 9000,21264, 9008,13072, 9016,29456, - 9032,19216, 9040,11024, 9048,27408, 9064,23312, 9072,15120, 9080,31504, - 9096,18192, 9104,10000, 9112,26384, 9128,22288, 9136,14096, 9144,30480, - 9160,20240, 9168,12048, 9176,28432, 9192,24336, 9200,16144, 9208,32528, - 9224,16528, 9240,24720, 9256,20624, 9264,12432, 9272,28816, 9288,18576, - 9296,10384, 9304,26768, 9320,22672, 9328,14480, 9336,30864, 9352,17552, - 9368,25744, 9384,21648, 9392,13456, 9400,29840, 9416,19600, 9424,11408, - 9432,27792, 9448,23696, 9456,15504, 9464,31888, 9480,17040, 9496,25232, - 9512,21136, 9520,12944, 9528,29328, 9544,19088, 9552,10896, 9560,27280, - 9576,23184, 9584,14992, 9592,31376, 9608,18064, 9616,9872, 9624,26256, - 9640,22160, 9648,13968, 9656,30352, 9672,20112, 9680,11920, 9688,28304, - 9704,24208, 9712,16016, 9720,32400, 9736,16784, 9752,24976, 9768,20880, - 9776,12688, 9784,29072, 9800,18832, 9808,10640, 9816,27024, 9832,22928, - 9840,14736, 9848,31120, 9864,17808, 9880,26000, 9896,21904, 9904,13712, - 9912,30096, 9928,19856, 9936,11664, 9944,28048, 9960,23952, 9968,15760, - 9976,32144, 9992,17296, 10008,25488, 10024,21392, 10032,13200, 10040,29584, - 10056,19344, 10064,11152, 10072,27536, 10088,23440, 10096,15248, 10104,31632, - 10120,18320, 10136,26512, 10152,22416, 10160,14224, 10168,30608, 10184,20368, - 10192,12176, 10200,28560, 10216,24464, 10224,16272, 10232,32656, 10248,16464, - 10264,24656, 10280,20560, 10288,12368, 10296,28752, 10312,18512, 10328,26704, - 10344,22608, 10352,14416, 10360,30800, 10376,17488, 10392,25680, 10408,21584, - 10416,13392, 10424,29776, 10440,19536, 10448,11344, 10456,27728, 10472,23632, - 10480,15440, 10488,31824, 10504,16976, 10520,25168, 10536,21072, 10544,12880, - 10552,29264, 10568,19024, 10576,10832, 10584,27216, 10600,23120, 10608,14928, - 10616,31312, 10632,18000, 10648,26192, 10664,22096, 10672,13904, 10680,30288, - 10696,20048, 10704,11856, 10712,28240, 10728,24144, 10736,15952, 10744,32336, - 10760,16720, 10776,24912, 10792,20816, 10800,12624, 10808,29008, 10824,18768, - 10840,26960, 10856,22864, 10864,14672, 10872,31056, 10888,17744, 10904,25936, - 10920,21840, 10928,13648, 10936,30032, 10952,19792, 10960,11600, 10968,27984, - 10984,23888, 10992,15696, 11000,32080, 11016,17232, 11032,25424, 11048,21328, - 11056,13136, 11064,29520, 11080,19280, 11096,27472, 11112,23376, 11120,15184, - 11128,31568, 11144,18256, 11160,26448, 11176,22352, 11184,14160, 11192,30544, - 11208,20304, 11216,12112, 11224,28496, 11240,24400, 11248,16208, 11256,32592, - 11272,16592, 11288,24784, 11304,20688, 11312,12496, 11320,28880, 11336,18640, - 11352,26832, 11368,22736, 11376,14544, 11384,30928, 11400,17616, 11416,25808, - 11432,21712, 11440,13520, 11448,29904, 11464,19664, 11480,27856, 11496,23760, - 11504,15568, 11512,31952, 11528,17104, 11544,25296, 11560,21200, 11568,13008, - 11576,29392, 11592,19152, 11608,27344, 11624,23248, 11632,15056, 11640,31440, - 11656,18128, 11672,26320, 11688,22224, 11696,14032, 11704,30416, 11720,20176, - 11728,11984, 11736,28368, 11752,24272, 11760,16080, 11768,32464, 11784,16848, - 11800,25040, 11816,20944, 11824,12752, 11832,29136, 11848,18896, 11864,27088, - 11880,22992, 11888,14800, 11896,31184, 11912,17872, 11928,26064, 11944,21968, - 11952,13776, 11960,30160, 11976,19920, 11992,28112, 12008,24016, 12016,15824, - 12024,32208, 12040,17360, 12056,25552, 12072,21456, 12080,13264, 12088,29648, - 12104,19408, 12120,27600, 12136,23504, 12144,15312, 12152,31696, 12168,18384, - 12184,26576, 12200,22480, 12208,14288, 12216,30672, 12232,20432, 12248,28624, - 12264,24528, 12272,16336, 12280,32720, 12296,16432, 12312,24624, 12328,20528, - 12344,28720, 12360,18480, 12376,26672, 12392,22576, 12400,14384, 12408,30768, - 12424,17456, 12440,25648, 12456,21552, 12464,13360, 12472,29744, 12488,19504, - 12504,27696, 12520,23600, 12528,15408, 12536,31792, 12552,16944, 12568,25136, - 12584,21040, 12592,12848, 12600,29232, 12616,18992, 12632,27184, 12648,23088, - 12656,14896, 12664,31280, 12680,17968, 12696,26160, 12712,22064, 12720,13872, - 12728,30256, 12744,20016, 12760,28208, 12776,24112, 12784,15920, 12792,32304, - 12808,16688, 12824,24880, 12840,20784, 12856,28976, 12872,18736, 12888,26928, - 12904,22832, 12912,14640, 12920,31024, 12936,17712, 12952,25904, 12968,21808, - 12976,13616, 12984,30000, 13000,19760, 13016,27952, 13032,23856, 13040,15664, - 13048,32048, 13064,17200, 13080,25392, 13096,21296, 13112,29488, 13128,19248, - 13144,27440, 13160,23344, 13168,15152, 13176,31536, 13192,18224, 13208,26416, - 13224,22320, 13232,14128, 13240,30512, 13256,20272, 13272,28464, 13288,24368, - 13296,16176, 13304,32560, 13320,16560, 13336,24752, 13352,20656, 13368,28848, - 13384,18608, 13400,26800, 13416,22704, 13424,14512, 13432,30896, 13448,17584, - 13464,25776, 13480,21680, 13496,29872, 13512,19632, 13528,27824, 13544,23728, - 13552,15536, 13560,31920, 13576,17072, 13592,25264, 13608,21168, 13624,29360, - 13640,19120, 13656,27312, 13672,23216, 13680,15024, 13688,31408, 13704,18096, - 13720,26288, 13736,22192, 13744,14000, 13752,30384, 13768,20144, 13784,28336, - 13800,24240, 13808,16048, 13816,32432, 13832,16816, 13848,25008, 13864,20912, - 13880,29104, 13896,18864, 13912,27056, 13928,22960, 13936,14768, 13944,31152, - 13960,17840, 13976,26032, 13992,21936, 14008,30128, 14024,19888, 14040,28080, - 14056,23984, 14064,15792, 14072,32176, 14088,17328, 14104,25520, 14120,21424, - 14136,29616, 14152,19376, 14168,27568, 14184,23472, 14192,15280, 14200,31664, - 14216,18352, 14232,26544, 14248,22448, 14264,30640, 14280,20400, 14296,28592, - 14312,24496, 14320,16304, 14328,32688, 14344,16496, 14360,24688, 14376,20592, - 14392,28784, 14408,18544, 14424,26736, 14440,22640, 14456,30832, 14472,17520, - 14488,25712, 14504,21616, 14520,29808, 14536,19568, 14552,27760, 14568,23664, - 14576,15472, 14584,31856, 14600,17008, 14616,25200, 14632,21104, 14648,29296, - 14664,19056, 14680,27248, 14696,23152, 14704,14960, 14712,31344, 14728,18032, - 14744,26224, 14760,22128, 14776,30320, 14792,20080, 14808,28272, 14824,24176, - 14832,15984, 14840,32368, 14856,16752, 14872,24944, 14888,20848, 14904,29040, - 14920,18800, 14936,26992, 14952,22896, 14968,31088, 14984,17776, 15000,25968, - 15016,21872, 15032,30064, 15048,19824, 15064,28016, 15080,23920, 15088,15728, - 15096,32112, 15112,17264, 15128,25456, 15144,21360, 15160,29552, 15176,19312, - 15192,27504, 15208,23408, 15224,31600, 15240,18288, 15256,26480, 15272,22384, - 15288,30576, 15304,20336, 15320,28528, 15336,24432, 15344,16240, 15352,32624, - 15368,16624, 15384,24816, 15400,20720, 15416,28912, 15432,18672, 15448,26864, - 15464,22768, 15480,30960, 15496,17648, 15512,25840, 15528,21744, 15544,29936, - 15560,19696, 15576,27888, 15592,23792, 15608,31984, 15624,17136, 15640,25328, - 15656,21232, 15672,29424, 15688,19184, 15704,27376, 15720,23280, 15736,31472, - 15752,18160, 15768,26352, 15784,22256, 15800,30448, 15816,20208, 15832,28400, - 15848,24304, 15856,16112, 15864,32496, 15880,16880, 15896,25072, 15912,20976, - 15928,29168, 15944,18928, 15960,27120, 15976,23024, 15992,31216, 16008,17904, - 16024,26096, 16040,22000, 16056,30192, 16072,19952, 16088,28144, 16104,24048, - 16120,32240, 16136,17392, 16152,25584, 16168,21488, 16184,29680, 16200,19440, - 16216,27632, 16232,23536, 16248,31728, 16264,18416, 16280,26608, 16296,22512, - 16312,30704, 16328,20464, 16344,28656, 16360,24560, 16376,32752, 16408,24584, - 16424,20488, 16440,28680, 16456,18440, 16472,26632, 16488,22536, 16504,30728, - 16520,17416, 16536,25608, 16552,21512, 16568,29704, 16584,19464, 16600,27656, - 16616,23560, 16632,31752, 16648,16904, 16664,25096, 16680,21000, 16696,29192, - 16712,18952, 16728,27144, 16744,23048, 16760,31240, 16776,17928, 16792,26120, - 16808,22024, 16824,30216, 16840,19976, 16856,28168, 16872,24072, 16888,32264, - 16920,24840, 16936,20744, 16952,28936, 16968,18696, 16984,26888, 17000,22792, - 17016,30984, 17032,17672, 17048,25864, 17064,21768, 17080,29960, 17096,19720, - 17112,27912, 17128,23816, 17144,32008, 17176,25352, 17192,21256, 17208,29448, - 17224,19208, 17240,27400, 17256,23304, 17272,31496, 17288,18184, 17304,26376, - 17320,22280, 17336,30472, 17352,20232, 17368,28424, 17384,24328, 17400,32520, - 17432,24712, 17448,20616, 17464,28808, 17480,18568, 17496,26760, 17512,22664, - 17528,30856, 17560,25736, 17576,21640, 17592,29832, 17608,19592, 17624,27784, - 17640,23688, 17656,31880, 17688,25224, 17704,21128, 17720,29320, 17736,19080, - 17752,27272, 17768,23176, 17784,31368, 17800,18056, 17816,26248, 17832,22152, - 17848,30344, 17864,20104, 17880,28296, 17896,24200, 17912,32392, 17944,24968, - 17960,20872, 17976,29064, 17992,18824, 18008,27016, 18024,22920, 18040,31112, - 18072,25992, 18088,21896, 18104,30088, 18120,19848, 18136,28040, 18152,23944, - 18168,32136, 18200,25480, 18216,21384, 18232,29576, 18248,19336, 18264,27528, - 18280,23432, 18296,31624, 18328,26504, 18344,22408, 18360,30600, 18376,20360, - 18392,28552, 18408,24456, 18424,32648, 18456,24648, 18472,20552, 18488,28744, - 18520,26696, 18536,22600, 18552,30792, 18584,25672, 18600,21576, 18616,29768, - 18632,19528, 18648,27720, 18664,23624, 18680,31816, 18712,25160, 18728,21064, - 18744,29256, 18760,19016, 18776,27208, 18792,23112, 18808,31304, 18840,26184, - 18856,22088, 18872,30280, 18888,20040, 18904,28232, 18920,24136, 18936,32328, - 18968,24904, 18984,20808, 19000,29000, 19032,26952, 19048,22856, 19064,31048, - 19096,25928, 19112,21832, 19128,30024, 19144,19784, 19160,27976, 19176,23880, - 19192,32072, 19224,25416, 19240,21320, 19256,29512, 19288,27464, 19304,23368, - 19320,31560, 19352,26440, 19368,22344, 19384,30536, 19400,20296, 19416,28488, - 19432,24392, 19448,32584, 19480,24776, 19496,20680, 19512,28872, 19544,26824, - 19560,22728, 19576,30920, 19608,25800, 19624,21704, 19640,29896, 19672,27848, - 19688,23752, 19704,31944, 19736,25288, 19752,21192, 19768,29384, 19800,27336, - 19816,23240, 19832,31432, 19864,26312, 19880,22216, 19896,30408, 19912,20168, - 19928,28360, 19944,24264, 19960,32456, 19992,25032, 20008,20936, 20024,29128, - 20056,27080, 20072,22984, 20088,31176, 20120,26056, 20136,21960, 20152,30152, - 20184,28104, 20200,24008, 20216,32200, 20248,25544, 20264,21448, 20280,29640, - 20312,27592, 20328,23496, 20344,31688, 20376,26568, 20392,22472, 20408,30664, - 20440,28616, 20456,24520, 20472,32712, 20504,24616, 20536,28712, 20568,26664, - 20584,22568, 20600,30760, 20632,25640, 20648,21544, 20664,29736, 20696,27688, - 20712,23592, 20728,31784, 20760,25128, 20776,21032, 20792,29224, 20824,27176, - 20840,23080, 20856,31272, 20888,26152, 20904,22056, 20920,30248, 20952,28200, - 20968,24104, 20984,32296, 21016,24872, 21048,28968, 21080,26920, 21096,22824, - 21112,31016, 21144,25896, 21160,21800, 21176,29992, 21208,27944, 21224,23848, - 21240,32040, 21272,25384, 21304,29480, 21336,27432, 21352,23336, 21368,31528, - 21400,26408, 21416,22312, 21432,30504, 21464,28456, 21480,24360, 21496,32552, - 21528,24744, 21560,28840, 21592,26792, 21608,22696, 21624,30888, 21656,25768, - 21688,29864, 21720,27816, 21736,23720, 21752,31912, 21784,25256, 21816,29352, - 21848,27304, 21864,23208, 21880,31400, 21912,26280, 21928,22184, 21944,30376, - 21976,28328, 21992,24232, 22008,32424, 22040,25000, 22072,29096, 22104,27048, - 22120,22952, 22136,31144, 22168,26024, 22200,30120, 22232,28072, 22248,23976, - 22264,32168, 22296,25512, 22328,29608, 22360,27560, 22376,23464, 22392,31656, - 22424,26536, 22456,30632, 22488,28584, 22504,24488, 22520,32680, 22552,24680, - 22584,28776, 22616,26728, 22648,30824, 22680,25704, 22712,29800, 22744,27752, - 22760,23656, 22776,31848, 22808,25192, 22840,29288, 22872,27240, 22888,23144, - 22904,31336, 22936,26216, 22968,30312, 23000,28264, 23016,24168, 23032,32360, - 23064,24936, 23096,29032, 23128,26984, 23160,31080, 23192,25960, 23224,30056, - 23256,28008, 23272,23912, 23288,32104, 23320,25448, 23352,29544, 23384,27496, - 23416,31592, 23448,26472, 23480,30568, 23512,28520, 23528,24424, 23544,32616, - 23576,24808, 23608,28904, 23640,26856, 23672,30952, 23704,25832, 23736,29928, - 23768,27880, 23800,31976, 23832,25320, 23864,29416, 23896,27368, 23928,31464, - 23960,26344, 23992,30440, 24024,28392, 24040,24296, 24056,32488, 24088,25064, - 24120,29160, 24152,27112, 24184,31208, 24216,26088, 24248,30184, 24280,28136, - 24312,32232, 24344,25576, 24376,29672, 24408,27624, 24440,31720, 24472,26600, - 24504,30696, 24536,28648, 24568,32744, 24632,28696, 24664,26648, 24696,30744, - 24728,25624, 24760,29720, 24792,27672, 24824,31768, 24856,25112, 24888,29208, - 24920,27160, 24952,31256, 24984,26136, 25016,30232, 25048,28184, 25080,32280, - 25144,28952, 25176,26904, 25208,31000, 25240,25880, 25272,29976, 25304,27928, - 25336,32024, 25400,29464, 25432,27416, 25464,31512, 25496,26392, 25528,30488, - 25560,28440, 25592,32536, 25656,28824, 25688,26776, 25720,30872, 25784,29848, - 25816,27800, 25848,31896, 25912,29336, 25944,27288, 25976,31384, 26008,26264, - 26040,30360, 26072,28312, 26104,32408, 26168,29080, 26200,27032, 26232,31128, - 26296,30104, 26328,28056, 26360,32152, 26424,29592, 26456,27544, 26488,31640, - 26552,30616, 26584,28568, 26616,32664, 26680,28760, 26744,30808, 26808,29784, - 26840,27736, 26872,31832, 26936,29272, 26968,27224, 27000,31320, 27064,30296, - 27096,28248, 27128,32344, 27192,29016, 27256,31064, 27320,30040, 27352,27992, - 27384,32088, 27448,29528, 27512,31576, 27576,30552, 27608,28504, 27640,32600, - 27704,28888, 27768,30936, 27832,29912, 27896,31960, 27960,29400, 28024,31448, - 28088,30424, 28120,28376, 28152,32472, 28216,29144, 28280,31192, 28344,30168, - 28408,32216, 28472,29656, 28536,31704, 28600,30680, 28664,32728, 28792,30776, - 28856,29752, 28920,31800, 28984,29240, 29048,31288, 29112,30264, 29176,32312, - 29304,31032, 29368,30008, 29432,32056, 29560,31544, 29624,30520, 29688,32568, - 29816,30904, 29944,31928, 30072,31416, 30136,30392, 30200,32440, 30328,31160, - 30456,32184, 30584,31672, 30712,32696, 30968,31864, 31096,31352, 31224,32376, - 31480,32120, 31736,32632, 32248,32504 -}; - -/** -* \par -* Example code for Floating-point RFFT Twiddle factors Generation: -* \par -*
TW = exp(2*pi*i*[0:L/2-1]/L - pi/2*i).' 
-* \par -* Real and Imag values are in interleaved fashion -*/ -const float32_t twiddleCoef_rfft_32[32] = { - 0.000000000f, 1.000000000f, - 0.195090322f, 0.980785280f, - 0.382683432f, 0.923879533f, - 0.555570233f, 0.831469612f, - 0.707106781f, 0.707106781f, - 0.831469612f, 0.555570233f, - 0.923879533f, 0.382683432f, - 0.980785280f, 0.195090322f, - 1.000000000f, 0.000000000f, - 0.980785280f, -0.195090322f, - 0.923879533f, -0.382683432f, - 0.831469612f, -0.555570233f, - 0.707106781f, -0.707106781f, - 0.555570233f, -0.831469612f, - 0.382683432f, -0.923879533f, - 0.195090322f, -0.980785280f -}; - -const float32_t twiddleCoef_rfft_64[64] = { - 0.000000000000000f, 1.000000000000000f, - 0.098017140329561f, 0.995184726672197f, - 0.195090322016128f, 0.980785280403230f, - 0.290284677254462f, 0.956940335732209f, - 0.382683432365090f, 0.923879532511287f, - 0.471396736825998f, 0.881921264348355f, - 0.555570233019602f, 0.831469612302545f, - 0.634393284163645f, 0.773010453362737f, - 0.707106781186547f, 0.707106781186548f, - 0.773010453362737f, 0.634393284163645f, - 0.831469612302545f, 0.555570233019602f, - 0.881921264348355f, 0.471396736825998f, - 0.923879532511287f, 0.382683432365090f, - 0.956940335732209f, 0.290284677254462f, - 0.980785280403230f, 0.195090322016128f, - 0.995184726672197f, 0.098017140329561f, - 1.000000000000000f, 0.000000000000000f, - 0.995184726672197f, -0.098017140329561f, - 0.980785280403230f, -0.195090322016128f, - 0.956940335732209f, -0.290284677254462f, - 0.923879532511287f, -0.382683432365090f, - 0.881921264348355f, -0.471396736825998f, - 0.831469612302545f, -0.555570233019602f, - 0.773010453362737f, -0.634393284163645f, - 0.707106781186548f, -0.707106781186547f, - 0.634393284163645f, -0.773010453362737f, - 0.555570233019602f, -0.831469612302545f, - 0.471396736825998f, -0.881921264348355f, - 0.382683432365090f, -0.923879532511287f, - 0.290284677254462f, -0.956940335732209f, - 0.195090322016129f, -0.980785280403230f, - 0.098017140329561f, -0.995184726672197f -}; - -const float32_t twiddleCoef_rfft_128[128] = { - 0.000000000f, 1.000000000f, - 0.049067674f, 0.998795456f, - 0.098017140f, 0.995184727f, - 0.146730474f, 0.989176510f, - 0.195090322f, 0.980785280f, - 0.242980180f, 0.970031253f, - 0.290284677f, 0.956940336f, - 0.336889853f, 0.941544065f, - 0.382683432f, 0.923879533f, - 0.427555093f, 0.903989293f, - 0.471396737f, 0.881921264f, - 0.514102744f, 0.857728610f, - 0.555570233f, 0.831469612f, - 0.595699304f, 0.803207531f, - 0.634393284f, 0.773010453f, - 0.671558955f, 0.740951125f, - 0.707106781f, 0.707106781f, - 0.740951125f, 0.671558955f, - 0.773010453f, 0.634393284f, - 0.803207531f, 0.595699304f, - 0.831469612f, 0.555570233f, - 0.857728610f, 0.514102744f, - 0.881921264f, 0.471396737f, - 0.903989293f, 0.427555093f, - 0.923879533f, 0.382683432f, - 0.941544065f, 0.336889853f, - 0.956940336f, 0.290284677f, - 0.970031253f, 0.242980180f, - 0.980785280f, 0.195090322f, - 0.989176510f, 0.146730474f, - 0.995184727f, 0.098017140f, - 0.998795456f, 0.049067674f, - 1.000000000f, 0.000000000f, - 0.998795456f, -0.049067674f, - 0.995184727f, -0.098017140f, - 0.989176510f, -0.146730474f, - 0.980785280f, -0.195090322f, - 0.970031253f, -0.242980180f, - 0.956940336f, -0.290284677f, - 0.941544065f, -0.336889853f, - 0.923879533f, -0.382683432f, - 0.903989293f, -0.427555093f, - 0.881921264f, -0.471396737f, - 0.857728610f, -0.514102744f, - 0.831469612f, -0.555570233f, - 0.803207531f, -0.595699304f, - 0.773010453f, -0.634393284f, - 0.740951125f, -0.671558955f, - 0.707106781f, -0.707106781f, - 0.671558955f, -0.740951125f, - 0.634393284f, -0.773010453f, - 0.595699304f, -0.803207531f, - 0.555570233f, -0.831469612f, - 0.514102744f, -0.857728610f, - 0.471396737f, -0.881921264f, - 0.427555093f, -0.903989293f, - 0.382683432f, -0.923879533f, - 0.336889853f, -0.941544065f, - 0.290284677f, -0.956940336f, - 0.242980180f, -0.970031253f, - 0.195090322f, -0.980785280f, - 0.146730474f, -0.989176510f, - 0.098017140f, -0.995184727f, - 0.049067674f, -0.998795456f -}; - -const float32_t twiddleCoef_rfft_256[256] = { - 0.000000000f, 1.000000000f, - 0.024541229f, 0.999698819f, - 0.049067674f, 0.998795456f, - 0.073564564f, 0.997290457f, - 0.098017140f, 0.995184727f, - 0.122410675f, 0.992479535f, - 0.146730474f, 0.989176510f, - 0.170961889f, 0.985277642f, - 0.195090322f, 0.980785280f, - 0.219101240f, 0.975702130f, - 0.242980180f, 0.970031253f, - 0.266712757f, 0.963776066f, - 0.290284677f, 0.956940336f, - 0.313681740f, 0.949528181f, - 0.336889853f, 0.941544065f, - 0.359895037f, 0.932992799f, - 0.382683432f, 0.923879533f, - 0.405241314f, 0.914209756f, - 0.427555093f, 0.903989293f, - 0.449611330f, 0.893224301f, - 0.471396737f, 0.881921264f, - 0.492898192f, 0.870086991f, - 0.514102744f, 0.857728610f, - 0.534997620f, 0.844853565f, - 0.555570233f, 0.831469612f, - 0.575808191f, 0.817584813f, - 0.595699304f, 0.803207531f, - 0.615231591f, 0.788346428f, - 0.634393284f, 0.773010453f, - 0.653172843f, 0.757208847f, - 0.671558955f, 0.740951125f, - 0.689540545f, 0.724247083f, - 0.707106781f, 0.707106781f, - 0.724247083f, 0.689540545f, - 0.740951125f, 0.671558955f, - 0.757208847f, 0.653172843f, - 0.773010453f, 0.634393284f, - 0.788346428f, 0.615231591f, - 0.803207531f, 0.595699304f, - 0.817584813f, 0.575808191f, - 0.831469612f, 0.555570233f, - 0.844853565f, 0.534997620f, - 0.857728610f, 0.514102744f, - 0.870086991f, 0.492898192f, - 0.881921264f, 0.471396737f, - 0.893224301f, 0.449611330f, - 0.903989293f, 0.427555093f, - 0.914209756f, 0.405241314f, - 0.923879533f, 0.382683432f, - 0.932992799f, 0.359895037f, - 0.941544065f, 0.336889853f, - 0.949528181f, 0.313681740f, - 0.956940336f, 0.290284677f, - 0.963776066f, 0.266712757f, - 0.970031253f, 0.242980180f, - 0.975702130f, 0.219101240f, - 0.980785280f, 0.195090322f, - 0.985277642f, 0.170961889f, - 0.989176510f, 0.146730474f, - 0.992479535f, 0.122410675f, - 0.995184727f, 0.098017140f, - 0.997290457f, 0.073564564f, - 0.998795456f, 0.049067674f, - 0.999698819f, 0.024541229f, - 1.000000000f, 0.000000000f, - 0.999698819f, -0.024541229f, - 0.998795456f, -0.049067674f, - 0.997290457f, -0.073564564f, - 0.995184727f, -0.098017140f, - 0.992479535f, -0.122410675f, - 0.989176510f, -0.146730474f, - 0.985277642f, -0.170961889f, - 0.980785280f, -0.195090322f, - 0.975702130f, -0.219101240f, - 0.970031253f, -0.242980180f, - 0.963776066f, -0.266712757f, - 0.956940336f, -0.290284677f, - 0.949528181f, -0.313681740f, - 0.941544065f, -0.336889853f, - 0.932992799f, -0.359895037f, - 0.923879533f, -0.382683432f, - 0.914209756f, -0.405241314f, - 0.903989293f, -0.427555093f, - 0.893224301f, -0.449611330f, - 0.881921264f, -0.471396737f, - 0.870086991f, -0.492898192f, - 0.857728610f, -0.514102744f, - 0.844853565f, -0.534997620f, - 0.831469612f, -0.555570233f, - 0.817584813f, -0.575808191f, - 0.803207531f, -0.595699304f, - 0.788346428f, -0.615231591f, - 0.773010453f, -0.634393284f, - 0.757208847f, -0.653172843f, - 0.740951125f, -0.671558955f, - 0.724247083f, -0.689540545f, - 0.707106781f, -0.707106781f, - 0.689540545f, -0.724247083f, - 0.671558955f, -0.740951125f, - 0.653172843f, -0.757208847f, - 0.634393284f, -0.773010453f, - 0.615231591f, -0.788346428f, - 0.595699304f, -0.803207531f, - 0.575808191f, -0.817584813f, - 0.555570233f, -0.831469612f, - 0.534997620f, -0.844853565f, - 0.514102744f, -0.857728610f, - 0.492898192f, -0.870086991f, - 0.471396737f, -0.881921264f, - 0.449611330f, -0.893224301f, - 0.427555093f, -0.903989293f, - 0.405241314f, -0.914209756f, - 0.382683432f, -0.923879533f, - 0.359895037f, -0.932992799f, - 0.336889853f, -0.941544065f, - 0.313681740f, -0.949528181f, - 0.290284677f, -0.956940336f, - 0.266712757f, -0.963776066f, - 0.242980180f, -0.970031253f, - 0.219101240f, -0.975702130f, - 0.195090322f, -0.980785280f, - 0.170961889f, -0.985277642f, - 0.146730474f, -0.989176510f, - 0.122410675f, -0.992479535f, - 0.098017140f, -0.995184727f, - 0.073564564f, -0.997290457f, - 0.049067674f, -0.998795456f, - 0.024541229f, -0.999698819f -}; - -const float32_t twiddleCoef_rfft_512[512] = { - 0.000000000f, 1.000000000f, - 0.012271538f, 0.999924702f, - 0.024541229f, 0.999698819f, - 0.036807223f, 0.999322385f, - 0.049067674f, 0.998795456f, - 0.061320736f, 0.998118113f, - 0.073564564f, 0.997290457f, - 0.085797312f, 0.996312612f, - 0.098017140f, 0.995184727f, - 0.110222207f, 0.993906970f, - 0.122410675f, 0.992479535f, - 0.134580709f, 0.990902635f, - 0.146730474f, 0.989176510f, - 0.158858143f, 0.987301418f, - 0.170961889f, 0.985277642f, - 0.183039888f, 0.983105487f, - 0.195090322f, 0.980785280f, - 0.207111376f, 0.978317371f, - 0.219101240f, 0.975702130f, - 0.231058108f, 0.972939952f, - 0.242980180f, 0.970031253f, - 0.254865660f, 0.966976471f, - 0.266712757f, 0.963776066f, - 0.278519689f, 0.960430519f, - 0.290284677f, 0.956940336f, - 0.302005949f, 0.953306040f, - 0.313681740f, 0.949528181f, - 0.325310292f, 0.945607325f, - 0.336889853f, 0.941544065f, - 0.348418680f, 0.937339012f, - 0.359895037f, 0.932992799f, - 0.371317194f, 0.928506080f, - 0.382683432f, 0.923879533f, - 0.393992040f, 0.919113852f, - 0.405241314f, 0.914209756f, - 0.416429560f, 0.909167983f, - 0.427555093f, 0.903989293f, - 0.438616239f, 0.898674466f, - 0.449611330f, 0.893224301f, - 0.460538711f, 0.887639620f, - 0.471396737f, 0.881921264f, - 0.482183772f, 0.876070094f, - 0.492898192f, 0.870086991f, - 0.503538384f, 0.863972856f, - 0.514102744f, 0.857728610f, - 0.524589683f, 0.851355193f, - 0.534997620f, 0.844853565f, - 0.545324988f, 0.838224706f, - 0.555570233f, 0.831469612f, - 0.565731811f, 0.824589303f, - 0.575808191f, 0.817584813f, - 0.585797857f, 0.810457198f, - 0.595699304f, 0.803207531f, - 0.605511041f, 0.795836905f, - 0.615231591f, 0.788346428f, - 0.624859488f, 0.780737229f, - 0.634393284f, 0.773010453f, - 0.643831543f, 0.765167266f, - 0.653172843f, 0.757208847f, - 0.662415778f, 0.749136395f, - 0.671558955f, 0.740951125f, - 0.680600998f, 0.732654272f, - 0.689540545f, 0.724247083f, - 0.698376249f, 0.715730825f, - 0.707106781f, 0.707106781f, - 0.715730825f, 0.698376249f, - 0.724247083f, 0.689540545f, - 0.732654272f, 0.680600998f, - 0.740951125f, 0.671558955f, - 0.749136395f, 0.662415778f, - 0.757208847f, 0.653172843f, - 0.765167266f, 0.643831543f, - 0.773010453f, 0.634393284f, - 0.780737229f, 0.624859488f, - 0.788346428f, 0.615231591f, - 0.795836905f, 0.605511041f, - 0.803207531f, 0.595699304f, - 0.810457198f, 0.585797857f, - 0.817584813f, 0.575808191f, - 0.824589303f, 0.565731811f, - 0.831469612f, 0.555570233f, - 0.838224706f, 0.545324988f, - 0.844853565f, 0.534997620f, - 0.851355193f, 0.524589683f, - 0.857728610f, 0.514102744f, - 0.863972856f, 0.503538384f, - 0.870086991f, 0.492898192f, - 0.876070094f, 0.482183772f, - 0.881921264f, 0.471396737f, - 0.887639620f, 0.460538711f, - 0.893224301f, 0.449611330f, - 0.898674466f, 0.438616239f, - 0.903989293f, 0.427555093f, - 0.909167983f, 0.416429560f, - 0.914209756f, 0.405241314f, - 0.919113852f, 0.393992040f, - 0.923879533f, 0.382683432f, - 0.928506080f, 0.371317194f, - 0.932992799f, 0.359895037f, - 0.937339012f, 0.348418680f, - 0.941544065f, 0.336889853f, - 0.945607325f, 0.325310292f, - 0.949528181f, 0.313681740f, - 0.953306040f, 0.302005949f, - 0.956940336f, 0.290284677f, - 0.960430519f, 0.278519689f, - 0.963776066f, 0.266712757f, - 0.966976471f, 0.254865660f, - 0.970031253f, 0.242980180f, - 0.972939952f, 0.231058108f, - 0.975702130f, 0.219101240f, - 0.978317371f, 0.207111376f, - 0.980785280f, 0.195090322f, - 0.983105487f, 0.183039888f, - 0.985277642f, 0.170961889f, - 0.987301418f, 0.158858143f, - 0.989176510f, 0.146730474f, - 0.990902635f, 0.134580709f, - 0.992479535f, 0.122410675f, - 0.993906970f, 0.110222207f, - 0.995184727f, 0.098017140f, - 0.996312612f, 0.085797312f, - 0.997290457f, 0.073564564f, - 0.998118113f, 0.061320736f, - 0.998795456f, 0.049067674f, - 0.999322385f, 0.036807223f, - 0.999698819f, 0.024541229f, - 0.999924702f, 0.012271538f, - 1.000000000f, 0.000000000f, - 0.999924702f, -0.012271538f, - 0.999698819f, -0.024541229f, - 0.999322385f, -0.036807223f, - 0.998795456f, -0.049067674f, - 0.998118113f, -0.061320736f, - 0.997290457f, -0.073564564f, - 0.996312612f, -0.085797312f, - 0.995184727f, -0.098017140f, - 0.993906970f, -0.110222207f, - 0.992479535f, -0.122410675f, - 0.990902635f, -0.134580709f, - 0.989176510f, -0.146730474f, - 0.987301418f, -0.158858143f, - 0.985277642f, -0.170961889f, - 0.983105487f, -0.183039888f, - 0.980785280f, -0.195090322f, - 0.978317371f, -0.207111376f, - 0.975702130f, -0.219101240f, - 0.972939952f, -0.231058108f, - 0.970031253f, -0.242980180f, - 0.966976471f, -0.254865660f, - 0.963776066f, -0.266712757f, - 0.960430519f, -0.278519689f, - 0.956940336f, -0.290284677f, - 0.953306040f, -0.302005949f, - 0.949528181f, -0.313681740f, - 0.945607325f, -0.325310292f, - 0.941544065f, -0.336889853f, - 0.937339012f, -0.348418680f, - 0.932992799f, -0.359895037f, - 0.928506080f, -0.371317194f, - 0.923879533f, -0.382683432f, - 0.919113852f, -0.393992040f, - 0.914209756f, -0.405241314f, - 0.909167983f, -0.416429560f, - 0.903989293f, -0.427555093f, - 0.898674466f, -0.438616239f, - 0.893224301f, -0.449611330f, - 0.887639620f, -0.460538711f, - 0.881921264f, -0.471396737f, - 0.876070094f, -0.482183772f, - 0.870086991f, -0.492898192f, - 0.863972856f, -0.503538384f, - 0.857728610f, -0.514102744f, - 0.851355193f, -0.524589683f, - 0.844853565f, -0.534997620f, - 0.838224706f, -0.545324988f, - 0.831469612f, -0.555570233f, - 0.824589303f, -0.565731811f, - 0.817584813f, -0.575808191f, - 0.810457198f, -0.585797857f, - 0.803207531f, -0.595699304f, - 0.795836905f, -0.605511041f, - 0.788346428f, -0.615231591f, - 0.780737229f, -0.624859488f, - 0.773010453f, -0.634393284f, - 0.765167266f, -0.643831543f, - 0.757208847f, -0.653172843f, - 0.749136395f, -0.662415778f, - 0.740951125f, -0.671558955f, - 0.732654272f, -0.680600998f, - 0.724247083f, -0.689540545f, - 0.715730825f, -0.698376249f, - 0.707106781f, -0.707106781f, - 0.698376249f, -0.715730825f, - 0.689540545f, -0.724247083f, - 0.680600998f, -0.732654272f, - 0.671558955f, -0.740951125f, - 0.662415778f, -0.749136395f, - 0.653172843f, -0.757208847f, - 0.643831543f, -0.765167266f, - 0.634393284f, -0.773010453f, - 0.624859488f, -0.780737229f, - 0.615231591f, -0.788346428f, - 0.605511041f, -0.795836905f, - 0.595699304f, -0.803207531f, - 0.585797857f, -0.810457198f, - 0.575808191f, -0.817584813f, - 0.565731811f, -0.824589303f, - 0.555570233f, -0.831469612f, - 0.545324988f, -0.838224706f, - 0.534997620f, -0.844853565f, - 0.524589683f, -0.851355193f, - 0.514102744f, -0.857728610f, - 0.503538384f, -0.863972856f, - 0.492898192f, -0.870086991f, - 0.482183772f, -0.876070094f, - 0.471396737f, -0.881921264f, - 0.460538711f, -0.887639620f, - 0.449611330f, -0.893224301f, - 0.438616239f, -0.898674466f, - 0.427555093f, -0.903989293f, - 0.416429560f, -0.909167983f, - 0.405241314f, -0.914209756f, - 0.393992040f, -0.919113852f, - 0.382683432f, -0.923879533f, - 0.371317194f, -0.928506080f, - 0.359895037f, -0.932992799f, - 0.348418680f, -0.937339012f, - 0.336889853f, -0.941544065f, - 0.325310292f, -0.945607325f, - 0.313681740f, -0.949528181f, - 0.302005949f, -0.953306040f, - 0.290284677f, -0.956940336f, - 0.278519689f, -0.960430519f, - 0.266712757f, -0.963776066f, - 0.254865660f, -0.966976471f, - 0.242980180f, -0.970031253f, - 0.231058108f, -0.972939952f, - 0.219101240f, -0.975702130f, - 0.207111376f, -0.978317371f, - 0.195090322f, -0.980785280f, - 0.183039888f, -0.983105487f, - 0.170961889f, -0.985277642f, - 0.158858143f, -0.987301418f, - 0.146730474f, -0.989176510f, - 0.134580709f, -0.990902635f, - 0.122410675f, -0.992479535f, - 0.110222207f, -0.993906970f, - 0.098017140f, -0.995184727f, - 0.085797312f, -0.996312612f, - 0.073564564f, -0.997290457f, - 0.061320736f, -0.998118113f, - 0.049067674f, -0.998795456f, - 0.036807223f, -0.999322385f, - 0.024541229f, -0.999698819f, - 0.012271538f, -0.999924702f -}; - -const float32_t twiddleCoef_rfft_1024[1024] = { - 0.000000000f, 1.000000000f, - 0.006135885f, 0.999981175f, - 0.012271538f, 0.999924702f, - 0.018406730f, 0.999830582f, - 0.024541229f, 0.999698819f, - 0.030674803f, 0.999529418f, - 0.036807223f, 0.999322385f, - 0.042938257f, 0.999077728f, - 0.049067674f, 0.998795456f, - 0.055195244f, 0.998475581f, - 0.061320736f, 0.998118113f, - 0.067443920f, 0.997723067f, - 0.073564564f, 0.997290457f, - 0.079682438f, 0.996820299f, - 0.085797312f, 0.996312612f, - 0.091908956f, 0.995767414f, - 0.098017140f, 0.995184727f, - 0.104121634f, 0.994564571f, - 0.110222207f, 0.993906970f, - 0.116318631f, 0.993211949f, - 0.122410675f, 0.992479535f, - 0.128498111f, 0.991709754f, - 0.134580709f, 0.990902635f, - 0.140658239f, 0.990058210f, - 0.146730474f, 0.989176510f, - 0.152797185f, 0.988257568f, - 0.158858143f, 0.987301418f, - 0.164913120f, 0.986308097f, - 0.170961889f, 0.985277642f, - 0.177004220f, 0.984210092f, - 0.183039888f, 0.983105487f, - 0.189068664f, 0.981963869f, - 0.195090322f, 0.980785280f, - 0.201104635f, 0.979569766f, - 0.207111376f, 0.978317371f, - 0.213110320f, 0.977028143f, - 0.219101240f, 0.975702130f, - 0.225083911f, 0.974339383f, - 0.231058108f, 0.972939952f, - 0.237023606f, 0.971503891f, - 0.242980180f, 0.970031253f, - 0.248927606f, 0.968522094f, - 0.254865660f, 0.966976471f, - 0.260794118f, 0.965394442f, - 0.266712757f, 0.963776066f, - 0.272621355f, 0.962121404f, - 0.278519689f, 0.960430519f, - 0.284407537f, 0.958703475f, - 0.290284677f, 0.956940336f, - 0.296150888f, 0.955141168f, - 0.302005949f, 0.953306040f, - 0.307849640f, 0.951435021f, - 0.313681740f, 0.949528181f, - 0.319502031f, 0.947585591f, - 0.325310292f, 0.945607325f, - 0.331106306f, 0.943593458f, - 0.336889853f, 0.941544065f, - 0.342660717f, 0.939459224f, - 0.348418680f, 0.937339012f, - 0.354163525f, 0.935183510f, - 0.359895037f, 0.932992799f, - 0.365612998f, 0.930766961f, - 0.371317194f, 0.928506080f, - 0.377007410f, 0.926210242f, - 0.382683432f, 0.923879533f, - 0.388345047f, 0.921514039f, - 0.393992040f, 0.919113852f, - 0.399624200f, 0.916679060f, - 0.405241314f, 0.914209756f, - 0.410843171f, 0.911706032f, - 0.416429560f, 0.909167983f, - 0.422000271f, 0.906595705f, - 0.427555093f, 0.903989293f, - 0.433093819f, 0.901348847f, - 0.438616239f, 0.898674466f, - 0.444122145f, 0.895966250f, - 0.449611330f, 0.893224301f, - 0.455083587f, 0.890448723f, - 0.460538711f, 0.887639620f, - 0.465976496f, 0.884797098f, - 0.471396737f, 0.881921264f, - 0.476799230f, 0.879012226f, - 0.482183772f, 0.876070094f, - 0.487550160f, 0.873094978f, - 0.492898192f, 0.870086991f, - 0.498227667f, 0.867046246f, - 0.503538384f, 0.863972856f, - 0.508830143f, 0.860866939f, - 0.514102744f, 0.857728610f, - 0.519355990f, 0.854557988f, - 0.524589683f, 0.851355193f, - 0.529803625f, 0.848120345f, - 0.534997620f, 0.844853565f, - 0.540171473f, 0.841554977f, - 0.545324988f, 0.838224706f, - 0.550457973f, 0.834862875f, - 0.555570233f, 0.831469612f, - 0.560661576f, 0.828045045f, - 0.565731811f, 0.824589303f, - 0.570780746f, 0.821102515f, - 0.575808191f, 0.817584813f, - 0.580813958f, 0.814036330f, - 0.585797857f, 0.810457198f, - 0.590759702f, 0.806847554f, - 0.595699304f, 0.803207531f, - 0.600616479f, 0.799537269f, - 0.605511041f, 0.795836905f, - 0.610382806f, 0.792106577f, - 0.615231591f, 0.788346428f, - 0.620057212f, 0.784556597f, - 0.624859488f, 0.780737229f, - 0.629638239f, 0.776888466f, - 0.634393284f, 0.773010453f, - 0.639124445f, 0.769103338f, - 0.643831543f, 0.765167266f, - 0.648514401f, 0.761202385f, - 0.653172843f, 0.757208847f, - 0.657806693f, 0.753186799f, - 0.662415778f, 0.749136395f, - 0.666999922f, 0.745057785f, - 0.671558955f, 0.740951125f, - 0.676092704f, 0.736816569f, - 0.680600998f, 0.732654272f, - 0.685083668f, 0.728464390f, - 0.689540545f, 0.724247083f, - 0.693971461f, 0.720002508f, - 0.698376249f, 0.715730825f, - 0.702754744f, 0.711432196f, - 0.707106781f, 0.707106781f, - 0.711432196f, 0.702754744f, - 0.715730825f, 0.698376249f, - 0.720002508f, 0.693971461f, - 0.724247083f, 0.689540545f, - 0.728464390f, 0.685083668f, - 0.732654272f, 0.680600998f, - 0.736816569f, 0.676092704f, - 0.740951125f, 0.671558955f, - 0.745057785f, 0.666999922f, - 0.749136395f, 0.662415778f, - 0.753186799f, 0.657806693f, - 0.757208847f, 0.653172843f, - 0.761202385f, 0.648514401f, - 0.765167266f, 0.643831543f, - 0.769103338f, 0.639124445f, - 0.773010453f, 0.634393284f, - 0.776888466f, 0.629638239f, - 0.780737229f, 0.624859488f, - 0.784556597f, 0.620057212f, - 0.788346428f, 0.615231591f, - 0.792106577f, 0.610382806f, - 0.795836905f, 0.605511041f, - 0.799537269f, 0.600616479f, - 0.803207531f, 0.595699304f, - 0.806847554f, 0.590759702f, - 0.810457198f, 0.585797857f, - 0.814036330f, 0.580813958f, - 0.817584813f, 0.575808191f, - 0.821102515f, 0.570780746f, - 0.824589303f, 0.565731811f, - 0.828045045f, 0.560661576f, - 0.831469612f, 0.555570233f, - 0.834862875f, 0.550457973f, - 0.838224706f, 0.545324988f, - 0.841554977f, 0.540171473f, - 0.844853565f, 0.534997620f, - 0.848120345f, 0.529803625f, - 0.851355193f, 0.524589683f, - 0.854557988f, 0.519355990f, - 0.857728610f, 0.514102744f, - 0.860866939f, 0.508830143f, - 0.863972856f, 0.503538384f, - 0.867046246f, 0.498227667f, - 0.870086991f, 0.492898192f, - 0.873094978f, 0.487550160f, - 0.876070094f, 0.482183772f, - 0.879012226f, 0.476799230f, - 0.881921264f, 0.471396737f, - 0.884797098f, 0.465976496f, - 0.887639620f, 0.460538711f, - 0.890448723f, 0.455083587f, - 0.893224301f, 0.449611330f, - 0.895966250f, 0.444122145f, - 0.898674466f, 0.438616239f, - 0.901348847f, 0.433093819f, - 0.903989293f, 0.427555093f, - 0.906595705f, 0.422000271f, - 0.909167983f, 0.416429560f, - 0.911706032f, 0.410843171f, - 0.914209756f, 0.405241314f, - 0.916679060f, 0.399624200f, - 0.919113852f, 0.393992040f, - 0.921514039f, 0.388345047f, - 0.923879533f, 0.382683432f, - 0.926210242f, 0.377007410f, - 0.928506080f, 0.371317194f, - 0.930766961f, 0.365612998f, - 0.932992799f, 0.359895037f, - 0.935183510f, 0.354163525f, - 0.937339012f, 0.348418680f, - 0.939459224f, 0.342660717f, - 0.941544065f, 0.336889853f, - 0.943593458f, 0.331106306f, - 0.945607325f, 0.325310292f, - 0.947585591f, 0.319502031f, - 0.949528181f, 0.313681740f, - 0.951435021f, 0.307849640f, - 0.953306040f, 0.302005949f, - 0.955141168f, 0.296150888f, - 0.956940336f, 0.290284677f, - 0.958703475f, 0.284407537f, - 0.960430519f, 0.278519689f, - 0.962121404f, 0.272621355f, - 0.963776066f, 0.266712757f, - 0.965394442f, 0.260794118f, - 0.966976471f, 0.254865660f, - 0.968522094f, 0.248927606f, - 0.970031253f, 0.242980180f, - 0.971503891f, 0.237023606f, - 0.972939952f, 0.231058108f, - 0.974339383f, 0.225083911f, - 0.975702130f, 0.219101240f, - 0.977028143f, 0.213110320f, - 0.978317371f, 0.207111376f, - 0.979569766f, 0.201104635f, - 0.980785280f, 0.195090322f, - 0.981963869f, 0.189068664f, - 0.983105487f, 0.183039888f, - 0.984210092f, 0.177004220f, - 0.985277642f, 0.170961889f, - 0.986308097f, 0.164913120f, - 0.987301418f, 0.158858143f, - 0.988257568f, 0.152797185f, - 0.989176510f, 0.146730474f, - 0.990058210f, 0.140658239f, - 0.990902635f, 0.134580709f, - 0.991709754f, 0.128498111f, - 0.992479535f, 0.122410675f, - 0.993211949f, 0.116318631f, - 0.993906970f, 0.110222207f, - 0.994564571f, 0.104121634f, - 0.995184727f, 0.098017140f, - 0.995767414f, 0.091908956f, - 0.996312612f, 0.085797312f, - 0.996820299f, 0.079682438f, - 0.997290457f, 0.073564564f, - 0.997723067f, 0.067443920f, - 0.998118113f, 0.061320736f, - 0.998475581f, 0.055195244f, - 0.998795456f, 0.049067674f, - 0.999077728f, 0.042938257f, - 0.999322385f, 0.036807223f, - 0.999529418f, 0.030674803f, - 0.999698819f, 0.024541229f, - 0.999830582f, 0.018406730f, - 0.999924702f, 0.012271538f, - 0.999981175f, 0.006135885f, - 1.000000000f, 0.000000000f, - 0.999981175f, -0.006135885f, - 0.999924702f, -0.012271538f, - 0.999830582f, -0.018406730f, - 0.999698819f, -0.024541229f, - 0.999529418f, -0.030674803f, - 0.999322385f, -0.036807223f, - 0.999077728f, -0.042938257f, - 0.998795456f, -0.049067674f, - 0.998475581f, -0.055195244f, - 0.998118113f, -0.061320736f, - 0.997723067f, -0.067443920f, - 0.997290457f, -0.073564564f, - 0.996820299f, -0.079682438f, - 0.996312612f, -0.085797312f, - 0.995767414f, -0.091908956f, - 0.995184727f, -0.098017140f, - 0.994564571f, -0.104121634f, - 0.993906970f, -0.110222207f, - 0.993211949f, -0.116318631f, - 0.992479535f, -0.122410675f, - 0.991709754f, -0.128498111f, - 0.990902635f, -0.134580709f, - 0.990058210f, -0.140658239f, - 0.989176510f, -0.146730474f, - 0.988257568f, -0.152797185f, - 0.987301418f, -0.158858143f, - 0.986308097f, -0.164913120f, - 0.985277642f, -0.170961889f, - 0.984210092f, -0.177004220f, - 0.983105487f, -0.183039888f, - 0.981963869f, -0.189068664f, - 0.980785280f, -0.195090322f, - 0.979569766f, -0.201104635f, - 0.978317371f, -0.207111376f, - 0.977028143f, -0.213110320f, - 0.975702130f, -0.219101240f, - 0.974339383f, -0.225083911f, - 0.972939952f, -0.231058108f, - 0.971503891f, -0.237023606f, - 0.970031253f, -0.242980180f, - 0.968522094f, -0.248927606f, - 0.966976471f, -0.254865660f, - 0.965394442f, -0.260794118f, - 0.963776066f, -0.266712757f, - 0.962121404f, -0.272621355f, - 0.960430519f, -0.278519689f, - 0.958703475f, -0.284407537f, - 0.956940336f, -0.290284677f, - 0.955141168f, -0.296150888f, - 0.953306040f, -0.302005949f, - 0.951435021f, -0.307849640f, - 0.949528181f, -0.313681740f, - 0.947585591f, -0.319502031f, - 0.945607325f, -0.325310292f, - 0.943593458f, -0.331106306f, - 0.941544065f, -0.336889853f, - 0.939459224f, -0.342660717f, - 0.937339012f, -0.348418680f, - 0.935183510f, -0.354163525f, - 0.932992799f, -0.359895037f, - 0.930766961f, -0.365612998f, - 0.928506080f, -0.371317194f, - 0.926210242f, -0.377007410f, - 0.923879533f, -0.382683432f, - 0.921514039f, -0.388345047f, - 0.919113852f, -0.393992040f, - 0.916679060f, -0.399624200f, - 0.914209756f, -0.405241314f, - 0.911706032f, -0.410843171f, - 0.909167983f, -0.416429560f, - 0.906595705f, -0.422000271f, - 0.903989293f, -0.427555093f, - 0.901348847f, -0.433093819f, - 0.898674466f, -0.438616239f, - 0.895966250f, -0.444122145f, - 0.893224301f, -0.449611330f, - 0.890448723f, -0.455083587f, - 0.887639620f, -0.460538711f, - 0.884797098f, -0.465976496f, - 0.881921264f, -0.471396737f, - 0.879012226f, -0.476799230f, - 0.876070094f, -0.482183772f, - 0.873094978f, -0.487550160f, - 0.870086991f, -0.492898192f, - 0.867046246f, -0.498227667f, - 0.863972856f, -0.503538384f, - 0.860866939f, -0.508830143f, - 0.857728610f, -0.514102744f, - 0.854557988f, -0.519355990f, - 0.851355193f, -0.524589683f, - 0.848120345f, -0.529803625f, - 0.844853565f, -0.534997620f, - 0.841554977f, -0.540171473f, - 0.838224706f, -0.545324988f, - 0.834862875f, -0.550457973f, - 0.831469612f, -0.555570233f, - 0.828045045f, -0.560661576f, - 0.824589303f, -0.565731811f, - 0.821102515f, -0.570780746f, - 0.817584813f, -0.575808191f, - 0.814036330f, -0.580813958f, - 0.810457198f, -0.585797857f, - 0.806847554f, -0.590759702f, - 0.803207531f, -0.595699304f, - 0.799537269f, -0.600616479f, - 0.795836905f, -0.605511041f, - 0.792106577f, -0.610382806f, - 0.788346428f, -0.615231591f, - 0.784556597f, -0.620057212f, - 0.780737229f, -0.624859488f, - 0.776888466f, -0.629638239f, - 0.773010453f, -0.634393284f, - 0.769103338f, -0.639124445f, - 0.765167266f, -0.643831543f, - 0.761202385f, -0.648514401f, - 0.757208847f, -0.653172843f, - 0.753186799f, -0.657806693f, - 0.749136395f, -0.662415778f, - 0.745057785f, -0.666999922f, - 0.740951125f, -0.671558955f, - 0.736816569f, -0.676092704f, - 0.732654272f, -0.680600998f, - 0.728464390f, -0.685083668f, - 0.724247083f, -0.689540545f, - 0.720002508f, -0.693971461f, - 0.715730825f, -0.698376249f, - 0.711432196f, -0.702754744f, - 0.707106781f, -0.707106781f, - 0.702754744f, -0.711432196f, - 0.698376249f, -0.715730825f, - 0.693971461f, -0.720002508f, - 0.689540545f, -0.724247083f, - 0.685083668f, -0.728464390f, - 0.680600998f, -0.732654272f, - 0.676092704f, -0.736816569f, - 0.671558955f, -0.740951125f, - 0.666999922f, -0.745057785f, - 0.662415778f, -0.749136395f, - 0.657806693f, -0.753186799f, - 0.653172843f, -0.757208847f, - 0.648514401f, -0.761202385f, - 0.643831543f, -0.765167266f, - 0.639124445f, -0.769103338f, - 0.634393284f, -0.773010453f, - 0.629638239f, -0.776888466f, - 0.624859488f, -0.780737229f, - 0.620057212f, -0.784556597f, - 0.615231591f, -0.788346428f, - 0.610382806f, -0.792106577f, - 0.605511041f, -0.795836905f, - 0.600616479f, -0.799537269f, - 0.595699304f, -0.803207531f, - 0.590759702f, -0.806847554f, - 0.585797857f, -0.810457198f, - 0.580813958f, -0.814036330f, - 0.575808191f, -0.817584813f, - 0.570780746f, -0.821102515f, - 0.565731811f, -0.824589303f, - 0.560661576f, -0.828045045f, - 0.555570233f, -0.831469612f, - 0.550457973f, -0.834862875f, - 0.545324988f, -0.838224706f, - 0.540171473f, -0.841554977f, - 0.534997620f, -0.844853565f, - 0.529803625f, -0.848120345f, - 0.524589683f, -0.851355193f, - 0.519355990f, -0.854557988f, - 0.514102744f, -0.857728610f, - 0.508830143f, -0.860866939f, - 0.503538384f, -0.863972856f, - 0.498227667f, -0.867046246f, - 0.492898192f, -0.870086991f, - 0.487550160f, -0.873094978f, - 0.482183772f, -0.876070094f, - 0.476799230f, -0.879012226f, - 0.471396737f, -0.881921264f, - 0.465976496f, -0.884797098f, - 0.460538711f, -0.887639620f, - 0.455083587f, -0.890448723f, - 0.449611330f, -0.893224301f, - 0.444122145f, -0.895966250f, - 0.438616239f, -0.898674466f, - 0.433093819f, -0.901348847f, - 0.427555093f, -0.903989293f, - 0.422000271f, -0.906595705f, - 0.416429560f, -0.909167983f, - 0.410843171f, -0.911706032f, - 0.405241314f, -0.914209756f, - 0.399624200f, -0.916679060f, - 0.393992040f, -0.919113852f, - 0.388345047f, -0.921514039f, - 0.382683432f, -0.923879533f, - 0.377007410f, -0.926210242f, - 0.371317194f, -0.928506080f, - 0.365612998f, -0.930766961f, - 0.359895037f, -0.932992799f, - 0.354163525f, -0.935183510f, - 0.348418680f, -0.937339012f, - 0.342660717f, -0.939459224f, - 0.336889853f, -0.941544065f, - 0.331106306f, -0.943593458f, - 0.325310292f, -0.945607325f, - 0.319502031f, -0.947585591f, - 0.313681740f, -0.949528181f, - 0.307849640f, -0.951435021f, - 0.302005949f, -0.953306040f, - 0.296150888f, -0.955141168f, - 0.290284677f, -0.956940336f, - 0.284407537f, -0.958703475f, - 0.278519689f, -0.960430519f, - 0.272621355f, -0.962121404f, - 0.266712757f, -0.963776066f, - 0.260794118f, -0.965394442f, - 0.254865660f, -0.966976471f, - 0.248927606f, -0.968522094f, - 0.242980180f, -0.970031253f, - 0.237023606f, -0.971503891f, - 0.231058108f, -0.972939952f, - 0.225083911f, -0.974339383f, - 0.219101240f, -0.975702130f, - 0.213110320f, -0.977028143f, - 0.207111376f, -0.978317371f, - 0.201104635f, -0.979569766f, - 0.195090322f, -0.980785280f, - 0.189068664f, -0.981963869f, - 0.183039888f, -0.983105487f, - 0.177004220f, -0.984210092f, - 0.170961889f, -0.985277642f, - 0.164913120f, -0.986308097f, - 0.158858143f, -0.987301418f, - 0.152797185f, -0.988257568f, - 0.146730474f, -0.989176510f, - 0.140658239f, -0.990058210f, - 0.134580709f, -0.990902635f, - 0.128498111f, -0.991709754f, - 0.122410675f, -0.992479535f, - 0.116318631f, -0.993211949f, - 0.110222207f, -0.993906970f, - 0.104121634f, -0.994564571f, - 0.098017140f, -0.995184727f, - 0.091908956f, -0.995767414f, - 0.085797312f, -0.996312612f, - 0.079682438f, -0.996820299f, - 0.073564564f, -0.997290457f, - 0.067443920f, -0.997723067f, - 0.061320736f, -0.998118113f, - 0.055195244f, -0.998475581f, - 0.049067674f, -0.998795456f, - 0.042938257f, -0.999077728f, - 0.036807223f, -0.999322385f, - 0.030674803f, -0.999529418f, - 0.024541229f, -0.999698819f, - 0.018406730f, -0.999830582f, - 0.012271538f, -0.999924702f, - 0.006135885f, -0.999981175f -}; - -const float32_t twiddleCoef_rfft_2048[2048] = { - 0.000000000f, 1.000000000f, - 0.003067957f, 0.999995294f, - 0.006135885f, 0.999981175f, - 0.009203755f, 0.999957645f, - 0.012271538f, 0.999924702f, - 0.015339206f, 0.999882347f, - 0.018406730f, 0.999830582f, - 0.021474080f, 0.999769405f, - 0.024541229f, 0.999698819f, - 0.027608146f, 0.999618822f, - 0.030674803f, 0.999529418f, - 0.033741172f, 0.999430605f, - 0.036807223f, 0.999322385f, - 0.039872928f, 0.999204759f, - 0.042938257f, 0.999077728f, - 0.046003182f, 0.998941293f, - 0.049067674f, 0.998795456f, - 0.052131705f, 0.998640218f, - 0.055195244f, 0.998475581f, - 0.058258265f, 0.998301545f, - 0.061320736f, 0.998118113f, - 0.064382631f, 0.997925286f, - 0.067443920f, 0.997723067f, - 0.070504573f, 0.997511456f, - 0.073564564f, 0.997290457f, - 0.076623861f, 0.997060070f, - 0.079682438f, 0.996820299f, - 0.082740265f, 0.996571146f, - 0.085797312f, 0.996312612f, - 0.088853553f, 0.996044701f, - 0.091908956f, 0.995767414f, - 0.094963495f, 0.995480755f, - 0.098017140f, 0.995184727f, - 0.101069863f, 0.994879331f, - 0.104121634f, 0.994564571f, - 0.107172425f, 0.994240449f, - 0.110222207f, 0.993906970f, - 0.113270952f, 0.993564136f, - 0.116318631f, 0.993211949f, - 0.119365215f, 0.992850414f, - 0.122410675f, 0.992479535f, - 0.125454983f, 0.992099313f, - 0.128498111f, 0.991709754f, - 0.131540029f, 0.991310860f, - 0.134580709f, 0.990902635f, - 0.137620122f, 0.990485084f, - 0.140658239f, 0.990058210f, - 0.143695033f, 0.989622017f, - 0.146730474f, 0.989176510f, - 0.149764535f, 0.988721692f, - 0.152797185f, 0.988257568f, - 0.155828398f, 0.987784142f, - 0.158858143f, 0.987301418f, - 0.161886394f, 0.986809402f, - 0.164913120f, 0.986308097f, - 0.167938295f, 0.985797509f, - 0.170961889f, 0.985277642f, - 0.173983873f, 0.984748502f, - 0.177004220f, 0.984210092f, - 0.180022901f, 0.983662419f, - 0.183039888f, 0.983105487f, - 0.186055152f, 0.982539302f, - 0.189068664f, 0.981963869f, - 0.192080397f, 0.981379193f, - 0.195090322f, 0.980785280f, - 0.198098411f, 0.980182136f, - 0.201104635f, 0.979569766f, - 0.204108966f, 0.978948175f, - 0.207111376f, 0.978317371f, - 0.210111837f, 0.977677358f, - 0.213110320f, 0.977028143f, - 0.216106797f, 0.976369731f, - 0.219101240f, 0.975702130f, - 0.222093621f, 0.975025345f, - 0.225083911f, 0.974339383f, - 0.228072083f, 0.973644250f, - 0.231058108f, 0.972939952f, - 0.234041959f, 0.972226497f, - 0.237023606f, 0.971503891f, - 0.240003022f, 0.970772141f, - 0.242980180f, 0.970031253f, - 0.245955050f, 0.969281235f, - 0.248927606f, 0.968522094f, - 0.251897818f, 0.967753837f, - 0.254865660f, 0.966976471f, - 0.257831102f, 0.966190003f, - 0.260794118f, 0.965394442f, - 0.263754679f, 0.964589793f, - 0.266712757f, 0.963776066f, - 0.269668326f, 0.962953267f, - 0.272621355f, 0.962121404f, - 0.275571819f, 0.961280486f, - 0.278519689f, 0.960430519f, - 0.281464938f, 0.959571513f, - 0.284407537f, 0.958703475f, - 0.287347460f, 0.957826413f, - 0.290284677f, 0.956940336f, - 0.293219163f, 0.956045251f, - 0.296150888f, 0.955141168f, - 0.299079826f, 0.954228095f, - 0.302005949f, 0.953306040f, - 0.304929230f, 0.952375013f, - 0.307849640f, 0.951435021f, - 0.310767153f, 0.950486074f, - 0.313681740f, 0.949528181f, - 0.316593376f, 0.948561350f, - 0.319502031f, 0.947585591f, - 0.322407679f, 0.946600913f, - 0.325310292f, 0.945607325f, - 0.328209844f, 0.944604837f, - 0.331106306f, 0.943593458f, - 0.333999651f, 0.942573198f, - 0.336889853f, 0.941544065f, - 0.339776884f, 0.940506071f, - 0.342660717f, 0.939459224f, - 0.345541325f, 0.938403534f, - 0.348418680f, 0.937339012f, - 0.351292756f, 0.936265667f, - 0.354163525f, 0.935183510f, - 0.357030961f, 0.934092550f, - 0.359895037f, 0.932992799f, - 0.362755724f, 0.931884266f, - 0.365612998f, 0.930766961f, - 0.368466830f, 0.929640896f, - 0.371317194f, 0.928506080f, - 0.374164063f, 0.927362526f, - 0.377007410f, 0.926210242f, - 0.379847209f, 0.925049241f, - 0.382683432f, 0.923879533f, - 0.385516054f, 0.922701128f, - 0.388345047f, 0.921514039f, - 0.391170384f, 0.920318277f, - 0.393992040f, 0.919113852f, - 0.396809987f, 0.917900776f, - 0.399624200f, 0.916679060f, - 0.402434651f, 0.915448716f, - 0.405241314f, 0.914209756f, - 0.408044163f, 0.912962190f, - 0.410843171f, 0.911706032f, - 0.413638312f, 0.910441292f, - 0.416429560f, 0.909167983f, - 0.419216888f, 0.907886116f, - 0.422000271f, 0.906595705f, - 0.424779681f, 0.905296759f, - 0.427555093f, 0.903989293f, - 0.430326481f, 0.902673318f, - 0.433093819f, 0.901348847f, - 0.435857080f, 0.900015892f, - 0.438616239f, 0.898674466f, - 0.441371269f, 0.897324581f, - 0.444122145f, 0.895966250f, - 0.446868840f, 0.894599486f, - 0.449611330f, 0.893224301f, - 0.452349587f, 0.891840709f, - 0.455083587f, 0.890448723f, - 0.457813304f, 0.889048356f, - 0.460538711f, 0.887639620f, - 0.463259784f, 0.886222530f, - 0.465976496f, 0.884797098f, - 0.468688822f, 0.883363339f, - 0.471396737f, 0.881921264f, - 0.474100215f, 0.880470889f, - 0.476799230f, 0.879012226f, - 0.479493758f, 0.877545290f, - 0.482183772f, 0.876070094f, - 0.484869248f, 0.874586652f, - 0.487550160f, 0.873094978f, - 0.490226483f, 0.871595087f, - 0.492898192f, 0.870086991f, - 0.495565262f, 0.868570706f, - 0.498227667f, 0.867046246f, - 0.500885383f, 0.865513624f, - 0.503538384f, 0.863972856f, - 0.506186645f, 0.862423956f, - 0.508830143f, 0.860866939f, - 0.511468850f, 0.859301818f, - 0.514102744f, 0.857728610f, - 0.516731799f, 0.856147328f, - 0.519355990f, 0.854557988f, - 0.521975293f, 0.852960605f, - 0.524589683f, 0.851355193f, - 0.527199135f, 0.849741768f, - 0.529803625f, 0.848120345f, - 0.532403128f, 0.846490939f, - 0.534997620f, 0.844853565f, - 0.537587076f, 0.843208240f, - 0.540171473f, 0.841554977f, - 0.542750785f, 0.839893794f, - 0.545324988f, 0.838224706f, - 0.547894059f, 0.836547727f, - 0.550457973f, 0.834862875f, - 0.553016706f, 0.833170165f, - 0.555570233f, 0.831469612f, - 0.558118531f, 0.829761234f, - 0.560661576f, 0.828045045f, - 0.563199344f, 0.826321063f, - 0.565731811f, 0.824589303f, - 0.568258953f, 0.822849781f, - 0.570780746f, 0.821102515f, - 0.573297167f, 0.819347520f, - 0.575808191f, 0.817584813f, - 0.578313796f, 0.815814411f, - 0.580813958f, 0.814036330f, - 0.583308653f, 0.812250587f, - 0.585797857f, 0.810457198f, - 0.588281548f, 0.808656182f, - 0.590759702f, 0.806847554f, - 0.593232295f, 0.805031331f, - 0.595699304f, 0.803207531f, - 0.598160707f, 0.801376172f, - 0.600616479f, 0.799537269f, - 0.603066599f, 0.797690841f, - 0.605511041f, 0.795836905f, - 0.607949785f, 0.793975478f, - 0.610382806f, 0.792106577f, - 0.612810082f, 0.790230221f, - 0.615231591f, 0.788346428f, - 0.617647308f, 0.786455214f, - 0.620057212f, 0.784556597f, - 0.622461279f, 0.782650596f, - 0.624859488f, 0.780737229f, - 0.627251815f, 0.778816512f, - 0.629638239f, 0.776888466f, - 0.632018736f, 0.774953107f, - 0.634393284f, 0.773010453f, - 0.636761861f, 0.771060524f, - 0.639124445f, 0.769103338f, - 0.641481013f, 0.767138912f, - 0.643831543f, 0.765167266f, - 0.646176013f, 0.763188417f, - 0.648514401f, 0.761202385f, - 0.650846685f, 0.759209189f, - 0.653172843f, 0.757208847f, - 0.655492853f, 0.755201377f, - 0.657806693f, 0.753186799f, - 0.660114342f, 0.751165132f, - 0.662415778f, 0.749136395f, - 0.664710978f, 0.747100606f, - 0.666999922f, 0.745057785f, - 0.669282588f, 0.743007952f, - 0.671558955f, 0.740951125f, - 0.673829000f, 0.738887324f, - 0.676092704f, 0.736816569f, - 0.678350043f, 0.734738878f, - 0.680600998f, 0.732654272f, - 0.682845546f, 0.730562769f, - 0.685083668f, 0.728464390f, - 0.687315341f, 0.726359155f, - 0.689540545f, 0.724247083f, - 0.691759258f, 0.722128194f, - 0.693971461f, 0.720002508f, - 0.696177131f, 0.717870045f, - 0.698376249f, 0.715730825f, - 0.700568794f, 0.713584869f, - 0.702754744f, 0.711432196f, - 0.704934080f, 0.709272826f, - 0.707106781f, 0.707106781f, - 0.709272826f, 0.704934080f, - 0.711432196f, 0.702754744f, - 0.713584869f, 0.700568794f, - 0.715730825f, 0.698376249f, - 0.717870045f, 0.696177131f, - 0.720002508f, 0.693971461f, - 0.722128194f, 0.691759258f, - 0.724247083f, 0.689540545f, - 0.726359155f, 0.687315341f, - 0.728464390f, 0.685083668f, - 0.730562769f, 0.682845546f, - 0.732654272f, 0.680600998f, - 0.734738878f, 0.678350043f, - 0.736816569f, 0.676092704f, - 0.738887324f, 0.673829000f, - 0.740951125f, 0.671558955f, - 0.743007952f, 0.669282588f, - 0.745057785f, 0.666999922f, - 0.747100606f, 0.664710978f, - 0.749136395f, 0.662415778f, - 0.751165132f, 0.660114342f, - 0.753186799f, 0.657806693f, - 0.755201377f, 0.655492853f, - 0.757208847f, 0.653172843f, - 0.759209189f, 0.650846685f, - 0.761202385f, 0.648514401f, - 0.763188417f, 0.646176013f, - 0.765167266f, 0.643831543f, - 0.767138912f, 0.641481013f, - 0.769103338f, 0.639124445f, - 0.771060524f, 0.636761861f, - 0.773010453f, 0.634393284f, - 0.774953107f, 0.632018736f, - 0.776888466f, 0.629638239f, - 0.778816512f, 0.627251815f, - 0.780737229f, 0.624859488f, - 0.782650596f, 0.622461279f, - 0.784556597f, 0.620057212f, - 0.786455214f, 0.617647308f, - 0.788346428f, 0.615231591f, - 0.790230221f, 0.612810082f, - 0.792106577f, 0.610382806f, - 0.793975478f, 0.607949785f, - 0.795836905f, 0.605511041f, - 0.797690841f, 0.603066599f, - 0.799537269f, 0.600616479f, - 0.801376172f, 0.598160707f, - 0.803207531f, 0.595699304f, - 0.805031331f, 0.593232295f, - 0.806847554f, 0.590759702f, - 0.808656182f, 0.588281548f, - 0.810457198f, 0.585797857f, - 0.812250587f, 0.583308653f, - 0.814036330f, 0.580813958f, - 0.815814411f, 0.578313796f, - 0.817584813f, 0.575808191f, - 0.819347520f, 0.573297167f, - 0.821102515f, 0.570780746f, - 0.822849781f, 0.568258953f, - 0.824589303f, 0.565731811f, - 0.826321063f, 0.563199344f, - 0.828045045f, 0.560661576f, - 0.829761234f, 0.558118531f, - 0.831469612f, 0.555570233f, - 0.833170165f, 0.553016706f, - 0.834862875f, 0.550457973f, - 0.836547727f, 0.547894059f, - 0.838224706f, 0.545324988f, - 0.839893794f, 0.542750785f, - 0.841554977f, 0.540171473f, - 0.843208240f, 0.537587076f, - 0.844853565f, 0.534997620f, - 0.846490939f, 0.532403128f, - 0.848120345f, 0.529803625f, - 0.849741768f, 0.527199135f, - 0.851355193f, 0.524589683f, - 0.852960605f, 0.521975293f, - 0.854557988f, 0.519355990f, - 0.856147328f, 0.516731799f, - 0.857728610f, 0.514102744f, - 0.859301818f, 0.511468850f, - 0.860866939f, 0.508830143f, - 0.862423956f, 0.506186645f, - 0.863972856f, 0.503538384f, - 0.865513624f, 0.500885383f, - 0.867046246f, 0.498227667f, - 0.868570706f, 0.495565262f, - 0.870086991f, 0.492898192f, - 0.871595087f, 0.490226483f, - 0.873094978f, 0.487550160f, - 0.874586652f, 0.484869248f, - 0.876070094f, 0.482183772f, - 0.877545290f, 0.479493758f, - 0.879012226f, 0.476799230f, - 0.880470889f, 0.474100215f, - 0.881921264f, 0.471396737f, - 0.883363339f, 0.468688822f, - 0.884797098f, 0.465976496f, - 0.886222530f, 0.463259784f, - 0.887639620f, 0.460538711f, - 0.889048356f, 0.457813304f, - 0.890448723f, 0.455083587f, - 0.891840709f, 0.452349587f, - 0.893224301f, 0.449611330f, - 0.894599486f, 0.446868840f, - 0.895966250f, 0.444122145f, - 0.897324581f, 0.441371269f, - 0.898674466f, 0.438616239f, - 0.900015892f, 0.435857080f, - 0.901348847f, 0.433093819f, - 0.902673318f, 0.430326481f, - 0.903989293f, 0.427555093f, - 0.905296759f, 0.424779681f, - 0.906595705f, 0.422000271f, - 0.907886116f, 0.419216888f, - 0.909167983f, 0.416429560f, - 0.910441292f, 0.413638312f, - 0.911706032f, 0.410843171f, - 0.912962190f, 0.408044163f, - 0.914209756f, 0.405241314f, - 0.915448716f, 0.402434651f, - 0.916679060f, 0.399624200f, - 0.917900776f, 0.396809987f, - 0.919113852f, 0.393992040f, - 0.920318277f, 0.391170384f, - 0.921514039f, 0.388345047f, - 0.922701128f, 0.385516054f, - 0.923879533f, 0.382683432f, - 0.925049241f, 0.379847209f, - 0.926210242f, 0.377007410f, - 0.927362526f, 0.374164063f, - 0.928506080f, 0.371317194f, - 0.929640896f, 0.368466830f, - 0.930766961f, 0.365612998f, - 0.931884266f, 0.362755724f, - 0.932992799f, 0.359895037f, - 0.934092550f, 0.357030961f, - 0.935183510f, 0.354163525f, - 0.936265667f, 0.351292756f, - 0.937339012f, 0.348418680f, - 0.938403534f, 0.345541325f, - 0.939459224f, 0.342660717f, - 0.940506071f, 0.339776884f, - 0.941544065f, 0.336889853f, - 0.942573198f, 0.333999651f, - 0.943593458f, 0.331106306f, - 0.944604837f, 0.328209844f, - 0.945607325f, 0.325310292f, - 0.946600913f, 0.322407679f, - 0.947585591f, 0.319502031f, - 0.948561350f, 0.316593376f, - 0.949528181f, 0.313681740f, - 0.950486074f, 0.310767153f, - 0.951435021f, 0.307849640f, - 0.952375013f, 0.304929230f, - 0.953306040f, 0.302005949f, - 0.954228095f, 0.299079826f, - 0.955141168f, 0.296150888f, - 0.956045251f, 0.293219163f, - 0.956940336f, 0.290284677f, - 0.957826413f, 0.287347460f, - 0.958703475f, 0.284407537f, - 0.959571513f, 0.281464938f, - 0.960430519f, 0.278519689f, - 0.961280486f, 0.275571819f, - 0.962121404f, 0.272621355f, - 0.962953267f, 0.269668326f, - 0.963776066f, 0.266712757f, - 0.964589793f, 0.263754679f, - 0.965394442f, 0.260794118f, - 0.966190003f, 0.257831102f, - 0.966976471f, 0.254865660f, - 0.967753837f, 0.251897818f, - 0.968522094f, 0.248927606f, - 0.969281235f, 0.245955050f, - 0.970031253f, 0.242980180f, - 0.970772141f, 0.240003022f, - 0.971503891f, 0.237023606f, - 0.972226497f, 0.234041959f, - 0.972939952f, 0.231058108f, - 0.973644250f, 0.228072083f, - 0.974339383f, 0.225083911f, - 0.975025345f, 0.222093621f, - 0.975702130f, 0.219101240f, - 0.976369731f, 0.216106797f, - 0.977028143f, 0.213110320f, - 0.977677358f, 0.210111837f, - 0.978317371f, 0.207111376f, - 0.978948175f, 0.204108966f, - 0.979569766f, 0.201104635f, - 0.980182136f, 0.198098411f, - 0.980785280f, 0.195090322f, - 0.981379193f, 0.192080397f, - 0.981963869f, 0.189068664f, - 0.982539302f, 0.186055152f, - 0.983105487f, 0.183039888f, - 0.983662419f, 0.180022901f, - 0.984210092f, 0.177004220f, - 0.984748502f, 0.173983873f, - 0.985277642f, 0.170961889f, - 0.985797509f, 0.167938295f, - 0.986308097f, 0.164913120f, - 0.986809402f, 0.161886394f, - 0.987301418f, 0.158858143f, - 0.987784142f, 0.155828398f, - 0.988257568f, 0.152797185f, - 0.988721692f, 0.149764535f, - 0.989176510f, 0.146730474f, - 0.989622017f, 0.143695033f, - 0.990058210f, 0.140658239f, - 0.990485084f, 0.137620122f, - 0.990902635f, 0.134580709f, - 0.991310860f, 0.131540029f, - 0.991709754f, 0.128498111f, - 0.992099313f, 0.125454983f, - 0.992479535f, 0.122410675f, - 0.992850414f, 0.119365215f, - 0.993211949f, 0.116318631f, - 0.993564136f, 0.113270952f, - 0.993906970f, 0.110222207f, - 0.994240449f, 0.107172425f, - 0.994564571f, 0.104121634f, - 0.994879331f, 0.101069863f, - 0.995184727f, 0.098017140f, - 0.995480755f, 0.094963495f, - 0.995767414f, 0.091908956f, - 0.996044701f, 0.088853553f, - 0.996312612f, 0.085797312f, - 0.996571146f, 0.082740265f, - 0.996820299f, 0.079682438f, - 0.997060070f, 0.076623861f, - 0.997290457f, 0.073564564f, - 0.997511456f, 0.070504573f, - 0.997723067f, 0.067443920f, - 0.997925286f, 0.064382631f, - 0.998118113f, 0.061320736f, - 0.998301545f, 0.058258265f, - 0.998475581f, 0.055195244f, - 0.998640218f, 0.052131705f, - 0.998795456f, 0.049067674f, - 0.998941293f, 0.046003182f, - 0.999077728f, 0.042938257f, - 0.999204759f, 0.039872928f, - 0.999322385f, 0.036807223f, - 0.999430605f, 0.033741172f, - 0.999529418f, 0.030674803f, - 0.999618822f, 0.027608146f, - 0.999698819f, 0.024541229f, - 0.999769405f, 0.021474080f, - 0.999830582f, 0.018406730f, - 0.999882347f, 0.015339206f, - 0.999924702f, 0.012271538f, - 0.999957645f, 0.009203755f, - 0.999981175f, 0.006135885f, - 0.999995294f, 0.003067957f, - 1.000000000f, 0.000000000f, - 0.999995294f, -0.003067957f, - 0.999981175f, -0.006135885f, - 0.999957645f, -0.009203755f, - 0.999924702f, -0.012271538f, - 0.999882347f, -0.015339206f, - 0.999830582f, -0.018406730f, - 0.999769405f, -0.021474080f, - 0.999698819f, -0.024541229f, - 0.999618822f, -0.027608146f, - 0.999529418f, -0.030674803f, - 0.999430605f, -0.033741172f, - 0.999322385f, -0.036807223f, - 0.999204759f, -0.039872928f, - 0.999077728f, -0.042938257f, - 0.998941293f, -0.046003182f, - 0.998795456f, -0.049067674f, - 0.998640218f, -0.052131705f, - 0.998475581f, -0.055195244f, - 0.998301545f, -0.058258265f, - 0.998118113f, -0.061320736f, - 0.997925286f, -0.064382631f, - 0.997723067f, -0.067443920f, - 0.997511456f, -0.070504573f, - 0.997290457f, -0.073564564f, - 0.997060070f, -0.076623861f, - 0.996820299f, -0.079682438f, - 0.996571146f, -0.082740265f, - 0.996312612f, -0.085797312f, - 0.996044701f, -0.088853553f, - 0.995767414f, -0.091908956f, - 0.995480755f, -0.094963495f, - 0.995184727f, -0.098017140f, - 0.994879331f, -0.101069863f, - 0.994564571f, -0.104121634f, - 0.994240449f, -0.107172425f, - 0.993906970f, -0.110222207f, - 0.993564136f, -0.113270952f, - 0.993211949f, -0.116318631f, - 0.992850414f, -0.119365215f, - 0.992479535f, -0.122410675f, - 0.992099313f, -0.125454983f, - 0.991709754f, -0.128498111f, - 0.991310860f, -0.131540029f, - 0.990902635f, -0.134580709f, - 0.990485084f, -0.137620122f, - 0.990058210f, -0.140658239f, - 0.989622017f, -0.143695033f, - 0.989176510f, -0.146730474f, - 0.988721692f, -0.149764535f, - 0.988257568f, -0.152797185f, - 0.987784142f, -0.155828398f, - 0.987301418f, -0.158858143f, - 0.986809402f, -0.161886394f, - 0.986308097f, -0.164913120f, - 0.985797509f, -0.167938295f, - 0.985277642f, -0.170961889f, - 0.984748502f, -0.173983873f, - 0.984210092f, -0.177004220f, - 0.983662419f, -0.180022901f, - 0.983105487f, -0.183039888f, - 0.982539302f, -0.186055152f, - 0.981963869f, -0.189068664f, - 0.981379193f, -0.192080397f, - 0.980785280f, -0.195090322f, - 0.980182136f, -0.198098411f, - 0.979569766f, -0.201104635f, - 0.978948175f, -0.204108966f, - 0.978317371f, -0.207111376f, - 0.977677358f, -0.210111837f, - 0.977028143f, -0.213110320f, - 0.976369731f, -0.216106797f, - 0.975702130f, -0.219101240f, - 0.975025345f, -0.222093621f, - 0.974339383f, -0.225083911f, - 0.973644250f, -0.228072083f, - 0.972939952f, -0.231058108f, - 0.972226497f, -0.234041959f, - 0.971503891f, -0.237023606f, - 0.970772141f, -0.240003022f, - 0.970031253f, -0.242980180f, - 0.969281235f, -0.245955050f, - 0.968522094f, -0.248927606f, - 0.967753837f, -0.251897818f, - 0.966976471f, -0.254865660f, - 0.966190003f, -0.257831102f, - 0.965394442f, -0.260794118f, - 0.964589793f, -0.263754679f, - 0.963776066f, -0.266712757f, - 0.962953267f, -0.269668326f, - 0.962121404f, -0.272621355f, - 0.961280486f, -0.275571819f, - 0.960430519f, -0.278519689f, - 0.959571513f, -0.281464938f, - 0.958703475f, -0.284407537f, - 0.957826413f, -0.287347460f, - 0.956940336f, -0.290284677f, - 0.956045251f, -0.293219163f, - 0.955141168f, -0.296150888f, - 0.954228095f, -0.299079826f, - 0.953306040f, -0.302005949f, - 0.952375013f, -0.304929230f, - 0.951435021f, -0.307849640f, - 0.950486074f, -0.310767153f, - 0.949528181f, -0.313681740f, - 0.948561350f, -0.316593376f, - 0.947585591f, -0.319502031f, - 0.946600913f, -0.322407679f, - 0.945607325f, -0.325310292f, - 0.944604837f, -0.328209844f, - 0.943593458f, -0.331106306f, - 0.942573198f, -0.333999651f, - 0.941544065f, -0.336889853f, - 0.940506071f, -0.339776884f, - 0.939459224f, -0.342660717f, - 0.938403534f, -0.345541325f, - 0.937339012f, -0.348418680f, - 0.936265667f, -0.351292756f, - 0.935183510f, -0.354163525f, - 0.934092550f, -0.357030961f, - 0.932992799f, -0.359895037f, - 0.931884266f, -0.362755724f, - 0.930766961f, -0.365612998f, - 0.929640896f, -0.368466830f, - 0.928506080f, -0.371317194f, - 0.927362526f, -0.374164063f, - 0.926210242f, -0.377007410f, - 0.925049241f, -0.379847209f, - 0.923879533f, -0.382683432f, - 0.922701128f, -0.385516054f, - 0.921514039f, -0.388345047f, - 0.920318277f, -0.391170384f, - 0.919113852f, -0.393992040f, - 0.917900776f, -0.396809987f, - 0.916679060f, -0.399624200f, - 0.915448716f, -0.402434651f, - 0.914209756f, -0.405241314f, - 0.912962190f, -0.408044163f, - 0.911706032f, -0.410843171f, - 0.910441292f, -0.413638312f, - 0.909167983f, -0.416429560f, - 0.907886116f, -0.419216888f, - 0.906595705f, -0.422000271f, - 0.905296759f, -0.424779681f, - 0.903989293f, -0.427555093f, - 0.902673318f, -0.430326481f, - 0.901348847f, -0.433093819f, - 0.900015892f, -0.435857080f, - 0.898674466f, -0.438616239f, - 0.897324581f, -0.441371269f, - 0.895966250f, -0.444122145f, - 0.894599486f, -0.446868840f, - 0.893224301f, -0.449611330f, - 0.891840709f, -0.452349587f, - 0.890448723f, -0.455083587f, - 0.889048356f, -0.457813304f, - 0.887639620f, -0.460538711f, - 0.886222530f, -0.463259784f, - 0.884797098f, -0.465976496f, - 0.883363339f, -0.468688822f, - 0.881921264f, -0.471396737f, - 0.880470889f, -0.474100215f, - 0.879012226f, -0.476799230f, - 0.877545290f, -0.479493758f, - 0.876070094f, -0.482183772f, - 0.874586652f, -0.484869248f, - 0.873094978f, -0.487550160f, - 0.871595087f, -0.490226483f, - 0.870086991f, -0.492898192f, - 0.868570706f, -0.495565262f, - 0.867046246f, -0.498227667f, - 0.865513624f, -0.500885383f, - 0.863972856f, -0.503538384f, - 0.862423956f, -0.506186645f, - 0.860866939f, -0.508830143f, - 0.859301818f, -0.511468850f, - 0.857728610f, -0.514102744f, - 0.856147328f, -0.516731799f, - 0.854557988f, -0.519355990f, - 0.852960605f, -0.521975293f, - 0.851355193f, -0.524589683f, - 0.849741768f, -0.527199135f, - 0.848120345f, -0.529803625f, - 0.846490939f, -0.532403128f, - 0.844853565f, -0.534997620f, - 0.843208240f, -0.537587076f, - 0.841554977f, -0.540171473f, - 0.839893794f, -0.542750785f, - 0.838224706f, -0.545324988f, - 0.836547727f, -0.547894059f, - 0.834862875f, -0.550457973f, - 0.833170165f, -0.553016706f, - 0.831469612f, -0.555570233f, - 0.829761234f, -0.558118531f, - 0.828045045f, -0.560661576f, - 0.826321063f, -0.563199344f, - 0.824589303f, -0.565731811f, - 0.822849781f, -0.568258953f, - 0.821102515f, -0.570780746f, - 0.819347520f, -0.573297167f, - 0.817584813f, -0.575808191f, - 0.815814411f, -0.578313796f, - 0.814036330f, -0.580813958f, - 0.812250587f, -0.583308653f, - 0.810457198f, -0.585797857f, - 0.808656182f, -0.588281548f, - 0.806847554f, -0.590759702f, - 0.805031331f, -0.593232295f, - 0.803207531f, -0.595699304f, - 0.801376172f, -0.598160707f, - 0.799537269f, -0.600616479f, - 0.797690841f, -0.603066599f, - 0.795836905f, -0.605511041f, - 0.793975478f, -0.607949785f, - 0.792106577f, -0.610382806f, - 0.790230221f, -0.612810082f, - 0.788346428f, -0.615231591f, - 0.786455214f, -0.617647308f, - 0.784556597f, -0.620057212f, - 0.782650596f, -0.622461279f, - 0.780737229f, -0.624859488f, - 0.778816512f, -0.627251815f, - 0.776888466f, -0.629638239f, - 0.774953107f, -0.632018736f, - 0.773010453f, -0.634393284f, - 0.771060524f, -0.636761861f, - 0.769103338f, -0.639124445f, - 0.767138912f, -0.641481013f, - 0.765167266f, -0.643831543f, - 0.763188417f, -0.646176013f, - 0.761202385f, -0.648514401f, - 0.759209189f, -0.650846685f, - 0.757208847f, -0.653172843f, - 0.755201377f, -0.655492853f, - 0.753186799f, -0.657806693f, - 0.751165132f, -0.660114342f, - 0.749136395f, -0.662415778f, - 0.747100606f, -0.664710978f, - 0.745057785f, -0.666999922f, - 0.743007952f, -0.669282588f, - 0.740951125f, -0.671558955f, - 0.738887324f, -0.673829000f, - 0.736816569f, -0.676092704f, - 0.734738878f, -0.678350043f, - 0.732654272f, -0.680600998f, - 0.730562769f, -0.682845546f, - 0.728464390f, -0.685083668f, - 0.726359155f, -0.687315341f, - 0.724247083f, -0.689540545f, - 0.722128194f, -0.691759258f, - 0.720002508f, -0.693971461f, - 0.717870045f, -0.696177131f, - 0.715730825f, -0.698376249f, - 0.713584869f, -0.700568794f, - 0.711432196f, -0.702754744f, - 0.709272826f, -0.704934080f, - 0.707106781f, -0.707106781f, - 0.704934080f, -0.709272826f, - 0.702754744f, -0.711432196f, - 0.700568794f, -0.713584869f, - 0.698376249f, -0.715730825f, - 0.696177131f, -0.717870045f, - 0.693971461f, -0.720002508f, - 0.691759258f, -0.722128194f, - 0.689540545f, -0.724247083f, - 0.687315341f, -0.726359155f, - 0.685083668f, -0.728464390f, - 0.682845546f, -0.730562769f, - 0.680600998f, -0.732654272f, - 0.678350043f, -0.734738878f, - 0.676092704f, -0.736816569f, - 0.673829000f, -0.738887324f, - 0.671558955f, -0.740951125f, - 0.669282588f, -0.743007952f, - 0.666999922f, -0.745057785f, - 0.664710978f, -0.747100606f, - 0.662415778f, -0.749136395f, - 0.660114342f, -0.751165132f, - 0.657806693f, -0.753186799f, - 0.655492853f, -0.755201377f, - 0.653172843f, -0.757208847f, - 0.650846685f, -0.759209189f, - 0.648514401f, -0.761202385f, - 0.646176013f, -0.763188417f, - 0.643831543f, -0.765167266f, - 0.641481013f, -0.767138912f, - 0.639124445f, -0.769103338f, - 0.636761861f, -0.771060524f, - 0.634393284f, -0.773010453f, - 0.632018736f, -0.774953107f, - 0.629638239f, -0.776888466f, - 0.627251815f, -0.778816512f, - 0.624859488f, -0.780737229f, - 0.622461279f, -0.782650596f, - 0.620057212f, -0.784556597f, - 0.617647308f, -0.786455214f, - 0.615231591f, -0.788346428f, - 0.612810082f, -0.790230221f, - 0.610382806f, -0.792106577f, - 0.607949785f, -0.793975478f, - 0.605511041f, -0.795836905f, - 0.603066599f, -0.797690841f, - 0.600616479f, -0.799537269f, - 0.598160707f, -0.801376172f, - 0.595699304f, -0.803207531f, - 0.593232295f, -0.805031331f, - 0.590759702f, -0.806847554f, - 0.588281548f, -0.808656182f, - 0.585797857f, -0.810457198f, - 0.583308653f, -0.812250587f, - 0.580813958f, -0.814036330f, - 0.578313796f, -0.815814411f, - 0.575808191f, -0.817584813f, - 0.573297167f, -0.819347520f, - 0.570780746f, -0.821102515f, - 0.568258953f, -0.822849781f, - 0.565731811f, -0.824589303f, - 0.563199344f, -0.826321063f, - 0.560661576f, -0.828045045f, - 0.558118531f, -0.829761234f, - 0.555570233f, -0.831469612f, - 0.553016706f, -0.833170165f, - 0.550457973f, -0.834862875f, - 0.547894059f, -0.836547727f, - 0.545324988f, -0.838224706f, - 0.542750785f, -0.839893794f, - 0.540171473f, -0.841554977f, - 0.537587076f, -0.843208240f, - 0.534997620f, -0.844853565f, - 0.532403128f, -0.846490939f, - 0.529803625f, -0.848120345f, - 0.527199135f, -0.849741768f, - 0.524589683f, -0.851355193f, - 0.521975293f, -0.852960605f, - 0.519355990f, -0.854557988f, - 0.516731799f, -0.856147328f, - 0.514102744f, -0.857728610f, - 0.511468850f, -0.859301818f, - 0.508830143f, -0.860866939f, - 0.506186645f, -0.862423956f, - 0.503538384f, -0.863972856f, - 0.500885383f, -0.865513624f, - 0.498227667f, -0.867046246f, - 0.495565262f, -0.868570706f, - 0.492898192f, -0.870086991f, - 0.490226483f, -0.871595087f, - 0.487550160f, -0.873094978f, - 0.484869248f, -0.874586652f, - 0.482183772f, -0.876070094f, - 0.479493758f, -0.877545290f, - 0.476799230f, -0.879012226f, - 0.474100215f, -0.880470889f, - 0.471396737f, -0.881921264f, - 0.468688822f, -0.883363339f, - 0.465976496f, -0.884797098f, - 0.463259784f, -0.886222530f, - 0.460538711f, -0.887639620f, - 0.457813304f, -0.889048356f, - 0.455083587f, -0.890448723f, - 0.452349587f, -0.891840709f, - 0.449611330f, -0.893224301f, - 0.446868840f, -0.894599486f, - 0.444122145f, -0.895966250f, - 0.441371269f, -0.897324581f, - 0.438616239f, -0.898674466f, - 0.435857080f, -0.900015892f, - 0.433093819f, -0.901348847f, - 0.430326481f, -0.902673318f, - 0.427555093f, -0.903989293f, - 0.424779681f, -0.905296759f, - 0.422000271f, -0.906595705f, - 0.419216888f, -0.907886116f, - 0.416429560f, -0.909167983f, - 0.413638312f, -0.910441292f, - 0.410843171f, -0.911706032f, - 0.408044163f, -0.912962190f, - 0.405241314f, -0.914209756f, - 0.402434651f, -0.915448716f, - 0.399624200f, -0.916679060f, - 0.396809987f, -0.917900776f, - 0.393992040f, -0.919113852f, - 0.391170384f, -0.920318277f, - 0.388345047f, -0.921514039f, - 0.385516054f, -0.922701128f, - 0.382683432f, -0.923879533f, - 0.379847209f, -0.925049241f, - 0.377007410f, -0.926210242f, - 0.374164063f, -0.927362526f, - 0.371317194f, -0.928506080f, - 0.368466830f, -0.929640896f, - 0.365612998f, -0.930766961f, - 0.362755724f, -0.931884266f, - 0.359895037f, -0.932992799f, - 0.357030961f, -0.934092550f, - 0.354163525f, -0.935183510f, - 0.351292756f, -0.936265667f, - 0.348418680f, -0.937339012f, - 0.345541325f, -0.938403534f, - 0.342660717f, -0.939459224f, - 0.339776884f, -0.940506071f, - 0.336889853f, -0.941544065f, - 0.333999651f, -0.942573198f, - 0.331106306f, -0.943593458f, - 0.328209844f, -0.944604837f, - 0.325310292f, -0.945607325f, - 0.322407679f, -0.946600913f, - 0.319502031f, -0.947585591f, - 0.316593376f, -0.948561350f, - 0.313681740f, -0.949528181f, - 0.310767153f, -0.950486074f, - 0.307849640f, -0.951435021f, - 0.304929230f, -0.952375013f, - 0.302005949f, -0.953306040f, - 0.299079826f, -0.954228095f, - 0.296150888f, -0.955141168f, - 0.293219163f, -0.956045251f, - 0.290284677f, -0.956940336f, - 0.287347460f, -0.957826413f, - 0.284407537f, -0.958703475f, - 0.281464938f, -0.959571513f, - 0.278519689f, -0.960430519f, - 0.275571819f, -0.961280486f, - 0.272621355f, -0.962121404f, - 0.269668326f, -0.962953267f, - 0.266712757f, -0.963776066f, - 0.263754679f, -0.964589793f, - 0.260794118f, -0.965394442f, - 0.257831102f, -0.966190003f, - 0.254865660f, -0.966976471f, - 0.251897818f, -0.967753837f, - 0.248927606f, -0.968522094f, - 0.245955050f, -0.969281235f, - 0.242980180f, -0.970031253f, - 0.240003022f, -0.970772141f, - 0.237023606f, -0.971503891f, - 0.234041959f, -0.972226497f, - 0.231058108f, -0.972939952f, - 0.228072083f, -0.973644250f, - 0.225083911f, -0.974339383f, - 0.222093621f, -0.975025345f, - 0.219101240f, -0.975702130f, - 0.216106797f, -0.976369731f, - 0.213110320f, -0.977028143f, - 0.210111837f, -0.977677358f, - 0.207111376f, -0.978317371f, - 0.204108966f, -0.978948175f, - 0.201104635f, -0.979569766f, - 0.198098411f, -0.980182136f, - 0.195090322f, -0.980785280f, - 0.192080397f, -0.981379193f, - 0.189068664f, -0.981963869f, - 0.186055152f, -0.982539302f, - 0.183039888f, -0.983105487f, - 0.180022901f, -0.983662419f, - 0.177004220f, -0.984210092f, - 0.173983873f, -0.984748502f, - 0.170961889f, -0.985277642f, - 0.167938295f, -0.985797509f, - 0.164913120f, -0.986308097f, - 0.161886394f, -0.986809402f, - 0.158858143f, -0.987301418f, - 0.155828398f, -0.987784142f, - 0.152797185f, -0.988257568f, - 0.149764535f, -0.988721692f, - 0.146730474f, -0.989176510f, - 0.143695033f, -0.989622017f, - 0.140658239f, -0.990058210f, - 0.137620122f, -0.990485084f, - 0.134580709f, -0.990902635f, - 0.131540029f, -0.991310860f, - 0.128498111f, -0.991709754f, - 0.125454983f, -0.992099313f, - 0.122410675f, -0.992479535f, - 0.119365215f, -0.992850414f, - 0.116318631f, -0.993211949f, - 0.113270952f, -0.993564136f, - 0.110222207f, -0.993906970f, - 0.107172425f, -0.994240449f, - 0.104121634f, -0.994564571f, - 0.101069863f, -0.994879331f, - 0.098017140f, -0.995184727f, - 0.094963495f, -0.995480755f, - 0.091908956f, -0.995767414f, - 0.088853553f, -0.996044701f, - 0.085797312f, -0.996312612f, - 0.082740265f, -0.996571146f, - 0.079682438f, -0.996820299f, - 0.076623861f, -0.997060070f, - 0.073564564f, -0.997290457f, - 0.070504573f, -0.997511456f, - 0.067443920f, -0.997723067f, - 0.064382631f, -0.997925286f, - 0.061320736f, -0.998118113f, - 0.058258265f, -0.998301545f, - 0.055195244f, -0.998475581f, - 0.052131705f, -0.998640218f, - 0.049067674f, -0.998795456f, - 0.046003182f, -0.998941293f, - 0.042938257f, -0.999077728f, - 0.039872928f, -0.999204759f, - 0.036807223f, -0.999322385f, - 0.033741172f, -0.999430605f, - 0.030674803f, -0.999529418f, - 0.027608146f, -0.999618822f, - 0.024541229f, -0.999698819f, - 0.021474080f, -0.999769405f, - 0.018406730f, -0.999830582f, - 0.015339206f, -0.999882347f, - 0.012271538f, -0.999924702f, - 0.009203755f, -0.999957645f, - 0.006135885f, -0.999981175f, - 0.003067957f, -0.999995294f -}; - -const float32_t twiddleCoef_rfft_4096[4096] = { - 0.000000000f, 1.000000000f, - 0.001533980f, 0.999998823f, - 0.003067957f, 0.999995294f, - 0.004601926f, 0.999989411f, - 0.006135885f, 0.999981175f, - 0.007669829f, 0.999970586f, - 0.009203755f, 0.999957645f, - 0.010737659f, 0.999942350f, - 0.012271538f, 0.999924702f, - 0.013805389f, 0.999904701f, - 0.015339206f, 0.999882347f, - 0.016872988f, 0.999857641f, - 0.018406730f, 0.999830582f, - 0.019940429f, 0.999801170f, - 0.021474080f, 0.999769405f, - 0.023007681f, 0.999735288f, - 0.024541229f, 0.999698819f, - 0.026074718f, 0.999659997f, - 0.027608146f, 0.999618822f, - 0.029141509f, 0.999575296f, - 0.030674803f, 0.999529418f, - 0.032208025f, 0.999481187f, - 0.033741172f, 0.999430605f, - 0.035274239f, 0.999377670f, - 0.036807223f, 0.999322385f, - 0.038340120f, 0.999264747f, - 0.039872928f, 0.999204759f, - 0.041405641f, 0.999142419f, - 0.042938257f, 0.999077728f, - 0.044470772f, 0.999010686f, - 0.046003182f, 0.998941293f, - 0.047535484f, 0.998869550f, - 0.049067674f, 0.998795456f, - 0.050599749f, 0.998719012f, - 0.052131705f, 0.998640218f, - 0.053663538f, 0.998559074f, - 0.055195244f, 0.998475581f, - 0.056726821f, 0.998389737f, - 0.058258265f, 0.998301545f, - 0.059789571f, 0.998211003f, - 0.061320736f, 0.998118113f, - 0.062851758f, 0.998022874f, - 0.064382631f, 0.997925286f, - 0.065913353f, 0.997825350f, - 0.067443920f, 0.997723067f, - 0.068974328f, 0.997618435f, - 0.070504573f, 0.997511456f, - 0.072034653f, 0.997402130f, - 0.073564564f, 0.997290457f, - 0.075094301f, 0.997176437f, - 0.076623861f, 0.997060070f, - 0.078153242f, 0.996941358f, - 0.079682438f, 0.996820299f, - 0.081211447f, 0.996696895f, - 0.082740265f, 0.996571146f, - 0.084268888f, 0.996443051f, - 0.085797312f, 0.996312612f, - 0.087325535f, 0.996179829f, - 0.088853553f, 0.996044701f, - 0.090381361f, 0.995907229f, - 0.091908956f, 0.995767414f, - 0.093436336f, 0.995625256f, - 0.094963495f, 0.995480755f, - 0.096490431f, 0.995333912f, - 0.098017140f, 0.995184727f, - 0.099543619f, 0.995033199f, - 0.101069863f, 0.994879331f, - 0.102595869f, 0.994723121f, - 0.104121634f, 0.994564571f, - 0.105647154f, 0.994403680f, - 0.107172425f, 0.994240449f, - 0.108697444f, 0.994074879f, - 0.110222207f, 0.993906970f, - 0.111746711f, 0.993736722f, - 0.113270952f, 0.993564136f, - 0.114794927f, 0.993389211f, - 0.116318631f, 0.993211949f, - 0.117842062f, 0.993032350f, - 0.119365215f, 0.992850414f, - 0.120888087f, 0.992666142f, - 0.122410675f, 0.992479535f, - 0.123932975f, 0.992290591f, - 0.125454983f, 0.992099313f, - 0.126976696f, 0.991905700f, - 0.128498111f, 0.991709754f, - 0.130019223f, 0.991511473f, - 0.131540029f, 0.991310860f, - 0.133060525f, 0.991107914f, - 0.134580709f, 0.990902635f, - 0.136100575f, 0.990695025f, - 0.137620122f, 0.990485084f, - 0.139139344f, 0.990272812f, - 0.140658239f, 0.990058210f, - 0.142176804f, 0.989841278f, - 0.143695033f, 0.989622017f, - 0.145212925f, 0.989400428f, - 0.146730474f, 0.989176510f, - 0.148247679f, 0.988950265f, - 0.149764535f, 0.988721692f, - 0.151281038f, 0.988490793f, - 0.152797185f, 0.988257568f, - 0.154312973f, 0.988022017f, - 0.155828398f, 0.987784142f, - 0.157343456f, 0.987543942f, - 0.158858143f, 0.987301418f, - 0.160372457f, 0.987056571f, - 0.161886394f, 0.986809402f, - 0.163399949f, 0.986559910f, - 0.164913120f, 0.986308097f, - 0.166425904f, 0.986053963f, - 0.167938295f, 0.985797509f, - 0.169450291f, 0.985538735f, - 0.170961889f, 0.985277642f, - 0.172473084f, 0.985014231f, - 0.173983873f, 0.984748502f, - 0.175494253f, 0.984480455f, - 0.177004220f, 0.984210092f, - 0.178513771f, 0.983937413f, - 0.180022901f, 0.983662419f, - 0.181531608f, 0.983385110f, - 0.183039888f, 0.983105487f, - 0.184547737f, 0.982823551f, - 0.186055152f, 0.982539302f, - 0.187562129f, 0.982252741f, - 0.189068664f, 0.981963869f, - 0.190574755f, 0.981672686f, - 0.192080397f, 0.981379193f, - 0.193585587f, 0.981083391f, - 0.195090322f, 0.980785280f, - 0.196594598f, 0.980484862f, - 0.198098411f, 0.980182136f, - 0.199601758f, 0.979877104f, - 0.201104635f, 0.979569766f, - 0.202607039f, 0.979260123f, - 0.204108966f, 0.978948175f, - 0.205610413f, 0.978633924f, - 0.207111376f, 0.978317371f, - 0.208611852f, 0.977998515f, - 0.210111837f, 0.977677358f, - 0.211611327f, 0.977353900f, - 0.213110320f, 0.977028143f, - 0.214608811f, 0.976700086f, - 0.216106797f, 0.976369731f, - 0.217604275f, 0.976037079f, - 0.219101240f, 0.975702130f, - 0.220597690f, 0.975364885f, - 0.222093621f, 0.975025345f, - 0.223589029f, 0.974683511f, - 0.225083911f, 0.974339383f, - 0.226578264f, 0.973992962f, - 0.228072083f, 0.973644250f, - 0.229565366f, 0.973293246f, - 0.231058108f, 0.972939952f, - 0.232550307f, 0.972584369f, - 0.234041959f, 0.972226497f, - 0.235533059f, 0.971866337f, - 0.237023606f, 0.971503891f, - 0.238513595f, 0.971139158f, - 0.240003022f, 0.970772141f, - 0.241491885f, 0.970402839f, - 0.242980180f, 0.970031253f, - 0.244467903f, 0.969657385f, - 0.245955050f, 0.969281235f, - 0.247441619f, 0.968902805f, - 0.248927606f, 0.968522094f, - 0.250413007f, 0.968139105f, - 0.251897818f, 0.967753837f, - 0.253382037f, 0.967366292f, - 0.254865660f, 0.966976471f, - 0.256348682f, 0.966584374f, - 0.257831102f, 0.966190003f, - 0.259312915f, 0.965793359f, - 0.260794118f, 0.965394442f, - 0.262274707f, 0.964993253f, - 0.263754679f, 0.964589793f, - 0.265234030f, 0.964184064f, - 0.266712757f, 0.963776066f, - 0.268190857f, 0.963365800f, - 0.269668326f, 0.962953267f, - 0.271145160f, 0.962538468f, - 0.272621355f, 0.962121404f, - 0.274096910f, 0.961702077f, - 0.275571819f, 0.961280486f, - 0.277046080f, 0.960856633f, - 0.278519689f, 0.960430519f, - 0.279992643f, 0.960002146f, - 0.281464938f, 0.959571513f, - 0.282936570f, 0.959138622f, - 0.284407537f, 0.958703475f, - 0.285877835f, 0.958266071f, - 0.287347460f, 0.957826413f, - 0.288816408f, 0.957384501f, - 0.290284677f, 0.956940336f, - 0.291752263f, 0.956493919f, - 0.293219163f, 0.956045251f, - 0.294685372f, 0.955594334f, - 0.296150888f, 0.955141168f, - 0.297615707f, 0.954685755f, - 0.299079826f, 0.954228095f, - 0.300543241f, 0.953768190f, - 0.302005949f, 0.953306040f, - 0.303467947f, 0.952841648f, - 0.304929230f, 0.952375013f, - 0.306389795f, 0.951906137f, - 0.307849640f, 0.951435021f, - 0.309308760f, 0.950961666f, - 0.310767153f, 0.950486074f, - 0.312224814f, 0.950008245f, - 0.313681740f, 0.949528181f, - 0.315137929f, 0.949045882f, - 0.316593376f, 0.948561350f, - 0.318048077f, 0.948074586f, - 0.319502031f, 0.947585591f, - 0.320955232f, 0.947094366f, - 0.322407679f, 0.946600913f, - 0.323859367f, 0.946105232f, - 0.325310292f, 0.945607325f, - 0.326760452f, 0.945107193f, - 0.328209844f, 0.944604837f, - 0.329658463f, 0.944100258f, - 0.331106306f, 0.943593458f, - 0.332553370f, 0.943084437f, - 0.333999651f, 0.942573198f, - 0.335445147f, 0.942059740f, - 0.336889853f, 0.941544065f, - 0.338333767f, 0.941026175f, - 0.339776884f, 0.940506071f, - 0.341219202f, 0.939983753f, - 0.342660717f, 0.939459224f, - 0.344101426f, 0.938932484f, - 0.345541325f, 0.938403534f, - 0.346980411f, 0.937872376f, - 0.348418680f, 0.937339012f, - 0.349856130f, 0.936803442f, - 0.351292756f, 0.936265667f, - 0.352728556f, 0.935725689f, - 0.354163525f, 0.935183510f, - 0.355597662f, 0.934639130f, - 0.357030961f, 0.934092550f, - 0.358463421f, 0.933543773f, - 0.359895037f, 0.932992799f, - 0.361325806f, 0.932439629f, - 0.362755724f, 0.931884266f, - 0.364184790f, 0.931326709f, - 0.365612998f, 0.930766961f, - 0.367040346f, 0.930205023f, - 0.368466830f, 0.929640896f, - 0.369892447f, 0.929074581f, - 0.371317194f, 0.928506080f, - 0.372741067f, 0.927935395f, - 0.374164063f, 0.927362526f, - 0.375586178f, 0.926787474f, - 0.377007410f, 0.926210242f, - 0.378427755f, 0.925630831f, - 0.379847209f, 0.925049241f, - 0.381265769f, 0.924465474f, - 0.382683432f, 0.923879533f, - 0.384100195f, 0.923291417f, - 0.385516054f, 0.922701128f, - 0.386931006f, 0.922108669f, - 0.388345047f, 0.921514039f, - 0.389758174f, 0.920917242f, - 0.391170384f, 0.920318277f, - 0.392581674f, 0.919717146f, - 0.393992040f, 0.919113852f, - 0.395401479f, 0.918508394f, - 0.396809987f, 0.917900776f, - 0.398217562f, 0.917290997f, - 0.399624200f, 0.916679060f, - 0.401029897f, 0.916064966f, - 0.402434651f, 0.915448716f, - 0.403838458f, 0.914830312f, - 0.405241314f, 0.914209756f, - 0.406643217f, 0.913587048f, - 0.408044163f, 0.912962190f, - 0.409444149f, 0.912335185f, - 0.410843171f, 0.911706032f, - 0.412241227f, 0.911074734f, - 0.413638312f, 0.910441292f, - 0.415034424f, 0.909805708f, - 0.416429560f, 0.909167983f, - 0.417823716f, 0.908528119f, - 0.419216888f, 0.907886116f, - 0.420609074f, 0.907241978f, - 0.422000271f, 0.906595705f, - 0.423390474f, 0.905947298f, - 0.424779681f, 0.905296759f, - 0.426167889f, 0.904644091f, - 0.427555093f, 0.903989293f, - 0.428941292f, 0.903332368f, - 0.430326481f, 0.902673318f, - 0.431710658f, 0.902012144f, - 0.433093819f, 0.901348847f, - 0.434475961f, 0.900683429f, - 0.435857080f, 0.900015892f, - 0.437237174f, 0.899346237f, - 0.438616239f, 0.898674466f, - 0.439994271f, 0.898000580f, - 0.441371269f, 0.897324581f, - 0.442747228f, 0.896646470f, - 0.444122145f, 0.895966250f, - 0.445496017f, 0.895283921f, - 0.446868840f, 0.894599486f, - 0.448240612f, 0.893912945f, - 0.449611330f, 0.893224301f, - 0.450980989f, 0.892533555f, - 0.452349587f, 0.891840709f, - 0.453717121f, 0.891145765f, - 0.455083587f, 0.890448723f, - 0.456448982f, 0.889749586f, - 0.457813304f, 0.889048356f, - 0.459176548f, 0.888345033f, - 0.460538711f, 0.887639620f, - 0.461899791f, 0.886932119f, - 0.463259784f, 0.886222530f, - 0.464618686f, 0.885510856f, - 0.465976496f, 0.884797098f, - 0.467333209f, 0.884081259f, - 0.468688822f, 0.883363339f, - 0.470043332f, 0.882643340f, - 0.471396737f, 0.881921264f, - 0.472749032f, 0.881197113f, - 0.474100215f, 0.880470889f, - 0.475450282f, 0.879742593f, - 0.476799230f, 0.879012226f, - 0.478147056f, 0.878279792f, - 0.479493758f, 0.877545290f, - 0.480839331f, 0.876808724f, - 0.482183772f, 0.876070094f, - 0.483527079f, 0.875329403f, - 0.484869248f, 0.874586652f, - 0.486210276f, 0.873841843f, - 0.487550160f, 0.873094978f, - 0.488888897f, 0.872346059f, - 0.490226483f, 0.871595087f, - 0.491562916f, 0.870842063f, - 0.492898192f, 0.870086991f, - 0.494232309f, 0.869329871f, - 0.495565262f, 0.868570706f, - 0.496897049f, 0.867809497f, - 0.498227667f, 0.867046246f, - 0.499557113f, 0.866280954f, - 0.500885383f, 0.865513624f, - 0.502212474f, 0.864744258f, - 0.503538384f, 0.863972856f, - 0.504863109f, 0.863199422f, - 0.506186645f, 0.862423956f, - 0.507508991f, 0.861646461f, - 0.508830143f, 0.860866939f, - 0.510150097f, 0.860085390f, - 0.511468850f, 0.859301818f, - 0.512786401f, 0.858516224f, - 0.514102744f, 0.857728610f, - 0.515417878f, 0.856938977f, - 0.516731799f, 0.856147328f, - 0.518044504f, 0.855353665f, - 0.519355990f, 0.854557988f, - 0.520666254f, 0.853760301f, - 0.521975293f, 0.852960605f, - 0.523283103f, 0.852158902f, - 0.524589683f, 0.851355193f, - 0.525895027f, 0.850549481f, - 0.527199135f, 0.849741768f, - 0.528502002f, 0.848932055f, - 0.529803625f, 0.848120345f, - 0.531104001f, 0.847306639f, - 0.532403128f, 0.846490939f, - 0.533701002f, 0.845673247f, - 0.534997620f, 0.844853565f, - 0.536292979f, 0.844031895f, - 0.537587076f, 0.843208240f, - 0.538879909f, 0.842382600f, - 0.540171473f, 0.841554977f, - 0.541461766f, 0.840725375f, - 0.542750785f, 0.839893794f, - 0.544038527f, 0.839060237f, - 0.545324988f, 0.838224706f, - 0.546610167f, 0.837387202f, - 0.547894059f, 0.836547727f, - 0.549176662f, 0.835706284f, - 0.550457973f, 0.834862875f, - 0.551737988f, 0.834017501f, - 0.553016706f, 0.833170165f, - 0.554294121f, 0.832320868f, - 0.555570233f, 0.831469612f, - 0.556845037f, 0.830616400f, - 0.558118531f, 0.829761234f, - 0.559390712f, 0.828904115f, - 0.560661576f, 0.828045045f, - 0.561931121f, 0.827184027f, - 0.563199344f, 0.826321063f, - 0.564466242f, 0.825456154f, - 0.565731811f, 0.824589303f, - 0.566996049f, 0.823720511f, - 0.568258953f, 0.822849781f, - 0.569520519f, 0.821977115f, - 0.570780746f, 0.821102515f, - 0.572039629f, 0.820225983f, - 0.573297167f, 0.819347520f, - 0.574553355f, 0.818467130f, - 0.575808191f, 0.817584813f, - 0.577061673f, 0.816700573f, - 0.578313796f, 0.815814411f, - 0.579564559f, 0.814926329f, - 0.580813958f, 0.814036330f, - 0.582061990f, 0.813144415f, - 0.583308653f, 0.812250587f, - 0.584553943f, 0.811354847f, - 0.585797857f, 0.810457198f, - 0.587040394f, 0.809557642f, - 0.588281548f, 0.808656182f, - 0.589521319f, 0.807752818f, - 0.590759702f, 0.806847554f, - 0.591996695f, 0.805940391f, - 0.593232295f, 0.805031331f, - 0.594466499f, 0.804120377f, - 0.595699304f, 0.803207531f, - 0.596930708f, 0.802292796f, - 0.598160707f, 0.801376172f, - 0.599389298f, 0.800457662f, - 0.600616479f, 0.799537269f, - 0.601842247f, 0.798614995f, - 0.603066599f, 0.797690841f, - 0.604289531f, 0.796764810f, - 0.605511041f, 0.795836905f, - 0.606731127f, 0.794907126f, - 0.607949785f, 0.793975478f, - 0.609167012f, 0.793041960f, - 0.610382806f, 0.792106577f, - 0.611597164f, 0.791169330f, - 0.612810082f, 0.790230221f, - 0.614021559f, 0.789289253f, - 0.615231591f, 0.788346428f, - 0.616440175f, 0.787401747f, - 0.617647308f, 0.786455214f, - 0.618852988f, 0.785506830f, - 0.620057212f, 0.784556597f, - 0.621259977f, 0.783604519f, - 0.622461279f, 0.782650596f, - 0.623661118f, 0.781694832f, - 0.624859488f, 0.780737229f, - 0.626056388f, 0.779777788f, - 0.627251815f, 0.778816512f, - 0.628445767f, 0.777853404f, - 0.629638239f, 0.776888466f, - 0.630829230f, 0.775921699f, - 0.632018736f, 0.774953107f, - 0.633206755f, 0.773982691f, - 0.634393284f, 0.773010453f, - 0.635578320f, 0.772036397f, - 0.636761861f, 0.771060524f, - 0.637943904f, 0.770082837f, - 0.639124445f, 0.769103338f, - 0.640303482f, 0.768122029f, - 0.641481013f, 0.767138912f, - 0.642657034f, 0.766153990f, - 0.643831543f, 0.765167266f, - 0.645004537f, 0.764178741f, - 0.646176013f, 0.763188417f, - 0.647345969f, 0.762196298f, - 0.648514401f, 0.761202385f, - 0.649681307f, 0.760206682f, - 0.650846685f, 0.759209189f, - 0.652010531f, 0.758209910f, - 0.653172843f, 0.757208847f, - 0.654333618f, 0.756206001f, - 0.655492853f, 0.755201377f, - 0.656650546f, 0.754194975f, - 0.657806693f, 0.753186799f, - 0.658961293f, 0.752176850f, - 0.660114342f, 0.751165132f, - 0.661265838f, 0.750151646f, - 0.662415778f, 0.749136395f, - 0.663564159f, 0.748119380f, - 0.664710978f, 0.747100606f, - 0.665856234f, 0.746080074f, - 0.666999922f, 0.745057785f, - 0.668142041f, 0.744033744f, - 0.669282588f, 0.743007952f, - 0.670421560f, 0.741980412f, - 0.671558955f, 0.740951125f, - 0.672694769f, 0.739920095f, - 0.673829000f, 0.738887324f, - 0.674961646f, 0.737852815f, - 0.676092704f, 0.736816569f, - 0.677222170f, 0.735778589f, - 0.678350043f, 0.734738878f, - 0.679476320f, 0.733697438f, - 0.680600998f, 0.732654272f, - 0.681724074f, 0.731609381f, - 0.682845546f, 0.730562769f, - 0.683965412f, 0.729514438f, - 0.685083668f, 0.728464390f, - 0.686200312f, 0.727412629f, - 0.687315341f, 0.726359155f, - 0.688428753f, 0.725303972f, - 0.689540545f, 0.724247083f, - 0.690650714f, 0.723188489f, - 0.691759258f, 0.722128194f, - 0.692866175f, 0.721066199f, - 0.693971461f, 0.720002508f, - 0.695075114f, 0.718937122f, - 0.696177131f, 0.717870045f, - 0.697277511f, 0.716801279f, - 0.698376249f, 0.715730825f, - 0.699473345f, 0.714658688f, - 0.700568794f, 0.713584869f, - 0.701662595f, 0.712509371f, - 0.702754744f, 0.711432196f, - 0.703845241f, 0.710353347f, - 0.704934080f, 0.709272826f, - 0.706021261f, 0.708190637f, - 0.707106781f, 0.707106781f, - 0.708190637f, 0.706021261f, - 0.709272826f, 0.704934080f, - 0.710353347f, 0.703845241f, - 0.711432196f, 0.702754744f, - 0.712509371f, 0.701662595f, - 0.713584869f, 0.700568794f, - 0.714658688f, 0.699473345f, - 0.715730825f, 0.698376249f, - 0.716801279f, 0.697277511f, - 0.717870045f, 0.696177131f, - 0.718937122f, 0.695075114f, - 0.720002508f, 0.693971461f, - 0.721066199f, 0.692866175f, - 0.722128194f, 0.691759258f, - 0.723188489f, 0.690650714f, - 0.724247083f, 0.689540545f, - 0.725303972f, 0.688428753f, - 0.726359155f, 0.687315341f, - 0.727412629f, 0.686200312f, - 0.728464390f, 0.685083668f, - 0.729514438f, 0.683965412f, - 0.730562769f, 0.682845546f, - 0.731609381f, 0.681724074f, - 0.732654272f, 0.680600998f, - 0.733697438f, 0.679476320f, - 0.734738878f, 0.678350043f, - 0.735778589f, 0.677222170f, - 0.736816569f, 0.676092704f, - 0.737852815f, 0.674961646f, - 0.738887324f, 0.673829000f, - 0.739920095f, 0.672694769f, - 0.740951125f, 0.671558955f, - 0.741980412f, 0.670421560f, - 0.743007952f, 0.669282588f, - 0.744033744f, 0.668142041f, - 0.745057785f, 0.666999922f, - 0.746080074f, 0.665856234f, - 0.747100606f, 0.664710978f, - 0.748119380f, 0.663564159f, - 0.749136395f, 0.662415778f, - 0.750151646f, 0.661265838f, - 0.751165132f, 0.660114342f, - 0.752176850f, 0.658961293f, - 0.753186799f, 0.657806693f, - 0.754194975f, 0.656650546f, - 0.755201377f, 0.655492853f, - 0.756206001f, 0.654333618f, - 0.757208847f, 0.653172843f, - 0.758209910f, 0.652010531f, - 0.759209189f, 0.650846685f, - 0.760206682f, 0.649681307f, - 0.761202385f, 0.648514401f, - 0.762196298f, 0.647345969f, - 0.763188417f, 0.646176013f, - 0.764178741f, 0.645004537f, - 0.765167266f, 0.643831543f, - 0.766153990f, 0.642657034f, - 0.767138912f, 0.641481013f, - 0.768122029f, 0.640303482f, - 0.769103338f, 0.639124445f, - 0.770082837f, 0.637943904f, - 0.771060524f, 0.636761861f, - 0.772036397f, 0.635578320f, - 0.773010453f, 0.634393284f, - 0.773982691f, 0.633206755f, - 0.774953107f, 0.632018736f, - 0.775921699f, 0.630829230f, - 0.776888466f, 0.629638239f, - 0.777853404f, 0.628445767f, - 0.778816512f, 0.627251815f, - 0.779777788f, 0.626056388f, - 0.780737229f, 0.624859488f, - 0.781694832f, 0.623661118f, - 0.782650596f, 0.622461279f, - 0.783604519f, 0.621259977f, - 0.784556597f, 0.620057212f, - 0.785506830f, 0.618852988f, - 0.786455214f, 0.617647308f, - 0.787401747f, 0.616440175f, - 0.788346428f, 0.615231591f, - 0.789289253f, 0.614021559f, - 0.790230221f, 0.612810082f, - 0.791169330f, 0.611597164f, - 0.792106577f, 0.610382806f, - 0.793041960f, 0.609167012f, - 0.793975478f, 0.607949785f, - 0.794907126f, 0.606731127f, - 0.795836905f, 0.605511041f, - 0.796764810f, 0.604289531f, - 0.797690841f, 0.603066599f, - 0.798614995f, 0.601842247f, - 0.799537269f, 0.600616479f, - 0.800457662f, 0.599389298f, - 0.801376172f, 0.598160707f, - 0.802292796f, 0.596930708f, - 0.803207531f, 0.595699304f, - 0.804120377f, 0.594466499f, - 0.805031331f, 0.593232295f, - 0.805940391f, 0.591996695f, - 0.806847554f, 0.590759702f, - 0.807752818f, 0.589521319f, - 0.808656182f, 0.588281548f, - 0.809557642f, 0.587040394f, - 0.810457198f, 0.585797857f, - 0.811354847f, 0.584553943f, - 0.812250587f, 0.583308653f, - 0.813144415f, 0.582061990f, - 0.814036330f, 0.580813958f, - 0.814926329f, 0.579564559f, - 0.815814411f, 0.578313796f, - 0.816700573f, 0.577061673f, - 0.817584813f, 0.575808191f, - 0.818467130f, 0.574553355f, - 0.819347520f, 0.573297167f, - 0.820225983f, 0.572039629f, - 0.821102515f, 0.570780746f, - 0.821977115f, 0.569520519f, - 0.822849781f, 0.568258953f, - 0.823720511f, 0.566996049f, - 0.824589303f, 0.565731811f, - 0.825456154f, 0.564466242f, - 0.826321063f, 0.563199344f, - 0.827184027f, 0.561931121f, - 0.828045045f, 0.560661576f, - 0.828904115f, 0.559390712f, - 0.829761234f, 0.558118531f, - 0.830616400f, 0.556845037f, - 0.831469612f, 0.555570233f, - 0.832320868f, 0.554294121f, - 0.833170165f, 0.553016706f, - 0.834017501f, 0.551737988f, - 0.834862875f, 0.550457973f, - 0.835706284f, 0.549176662f, - 0.836547727f, 0.547894059f, - 0.837387202f, 0.546610167f, - 0.838224706f, 0.545324988f, - 0.839060237f, 0.544038527f, - 0.839893794f, 0.542750785f, - 0.840725375f, 0.541461766f, - 0.841554977f, 0.540171473f, - 0.842382600f, 0.538879909f, - 0.843208240f, 0.537587076f, - 0.844031895f, 0.536292979f, - 0.844853565f, 0.534997620f, - 0.845673247f, 0.533701002f, - 0.846490939f, 0.532403128f, - 0.847306639f, 0.531104001f, - 0.848120345f, 0.529803625f, - 0.848932055f, 0.528502002f, - 0.849741768f, 0.527199135f, - 0.850549481f, 0.525895027f, - 0.851355193f, 0.524589683f, - 0.852158902f, 0.523283103f, - 0.852960605f, 0.521975293f, - 0.853760301f, 0.520666254f, - 0.854557988f, 0.519355990f, - 0.855353665f, 0.518044504f, - 0.856147328f, 0.516731799f, - 0.856938977f, 0.515417878f, - 0.857728610f, 0.514102744f, - 0.858516224f, 0.512786401f, - 0.859301818f, 0.511468850f, - 0.860085390f, 0.510150097f, - 0.860866939f, 0.508830143f, - 0.861646461f, 0.507508991f, - 0.862423956f, 0.506186645f, - 0.863199422f, 0.504863109f, - 0.863972856f, 0.503538384f, - 0.864744258f, 0.502212474f, - 0.865513624f, 0.500885383f, - 0.866280954f, 0.499557113f, - 0.867046246f, 0.498227667f, - 0.867809497f, 0.496897049f, - 0.868570706f, 0.495565262f, - 0.869329871f, 0.494232309f, - 0.870086991f, 0.492898192f, - 0.870842063f, 0.491562916f, - 0.871595087f, 0.490226483f, - 0.872346059f, 0.488888897f, - 0.873094978f, 0.487550160f, - 0.873841843f, 0.486210276f, - 0.874586652f, 0.484869248f, - 0.875329403f, 0.483527079f, - 0.876070094f, 0.482183772f, - 0.876808724f, 0.480839331f, - 0.877545290f, 0.479493758f, - 0.878279792f, 0.478147056f, - 0.879012226f, 0.476799230f, - 0.879742593f, 0.475450282f, - 0.880470889f, 0.474100215f, - 0.881197113f, 0.472749032f, - 0.881921264f, 0.471396737f, - 0.882643340f, 0.470043332f, - 0.883363339f, 0.468688822f, - 0.884081259f, 0.467333209f, - 0.884797098f, 0.465976496f, - 0.885510856f, 0.464618686f, - 0.886222530f, 0.463259784f, - 0.886932119f, 0.461899791f, - 0.887639620f, 0.460538711f, - 0.888345033f, 0.459176548f, - 0.889048356f, 0.457813304f, - 0.889749586f, 0.456448982f, - 0.890448723f, 0.455083587f, - 0.891145765f, 0.453717121f, - 0.891840709f, 0.452349587f, - 0.892533555f, 0.450980989f, - 0.893224301f, 0.449611330f, - 0.893912945f, 0.448240612f, - 0.894599486f, 0.446868840f, - 0.895283921f, 0.445496017f, - 0.895966250f, 0.444122145f, - 0.896646470f, 0.442747228f, - 0.897324581f, 0.441371269f, - 0.898000580f, 0.439994271f, - 0.898674466f, 0.438616239f, - 0.899346237f, 0.437237174f, - 0.900015892f, 0.435857080f, - 0.900683429f, 0.434475961f, - 0.901348847f, 0.433093819f, - 0.902012144f, 0.431710658f, - 0.902673318f, 0.430326481f, - 0.903332368f, 0.428941292f, - 0.903989293f, 0.427555093f, - 0.904644091f, 0.426167889f, - 0.905296759f, 0.424779681f, - 0.905947298f, 0.423390474f, - 0.906595705f, 0.422000271f, - 0.907241978f, 0.420609074f, - 0.907886116f, 0.419216888f, - 0.908528119f, 0.417823716f, - 0.909167983f, 0.416429560f, - 0.909805708f, 0.415034424f, - 0.910441292f, 0.413638312f, - 0.911074734f, 0.412241227f, - 0.911706032f, 0.410843171f, - 0.912335185f, 0.409444149f, - 0.912962190f, 0.408044163f, - 0.913587048f, 0.406643217f, - 0.914209756f, 0.405241314f, - 0.914830312f, 0.403838458f, - 0.915448716f, 0.402434651f, - 0.916064966f, 0.401029897f, - 0.916679060f, 0.399624200f, - 0.917290997f, 0.398217562f, - 0.917900776f, 0.396809987f, - 0.918508394f, 0.395401479f, - 0.919113852f, 0.393992040f, - 0.919717146f, 0.392581674f, - 0.920318277f, 0.391170384f, - 0.920917242f, 0.389758174f, - 0.921514039f, 0.388345047f, - 0.922108669f, 0.386931006f, - 0.922701128f, 0.385516054f, - 0.923291417f, 0.384100195f, - 0.923879533f, 0.382683432f, - 0.924465474f, 0.381265769f, - 0.925049241f, 0.379847209f, - 0.925630831f, 0.378427755f, - 0.926210242f, 0.377007410f, - 0.926787474f, 0.375586178f, - 0.927362526f, 0.374164063f, - 0.927935395f, 0.372741067f, - 0.928506080f, 0.371317194f, - 0.929074581f, 0.369892447f, - 0.929640896f, 0.368466830f, - 0.930205023f, 0.367040346f, - 0.930766961f, 0.365612998f, - 0.931326709f, 0.364184790f, - 0.931884266f, 0.362755724f, - 0.932439629f, 0.361325806f, - 0.932992799f, 0.359895037f, - 0.933543773f, 0.358463421f, - 0.934092550f, 0.357030961f, - 0.934639130f, 0.355597662f, - 0.935183510f, 0.354163525f, - 0.935725689f, 0.352728556f, - 0.936265667f, 0.351292756f, - 0.936803442f, 0.349856130f, - 0.937339012f, 0.348418680f, - 0.937872376f, 0.346980411f, - 0.938403534f, 0.345541325f, - 0.938932484f, 0.344101426f, - 0.939459224f, 0.342660717f, - 0.939983753f, 0.341219202f, - 0.940506071f, 0.339776884f, - 0.941026175f, 0.338333767f, - 0.941544065f, 0.336889853f, - 0.942059740f, 0.335445147f, - 0.942573198f, 0.333999651f, - 0.943084437f, 0.332553370f, - 0.943593458f, 0.331106306f, - 0.944100258f, 0.329658463f, - 0.944604837f, 0.328209844f, - 0.945107193f, 0.326760452f, - 0.945607325f, 0.325310292f, - 0.946105232f, 0.323859367f, - 0.946600913f, 0.322407679f, - 0.947094366f, 0.320955232f, - 0.947585591f, 0.319502031f, - 0.948074586f, 0.318048077f, - 0.948561350f, 0.316593376f, - 0.949045882f, 0.315137929f, - 0.949528181f, 0.313681740f, - 0.950008245f, 0.312224814f, - 0.950486074f, 0.310767153f, - 0.950961666f, 0.309308760f, - 0.951435021f, 0.307849640f, - 0.951906137f, 0.306389795f, - 0.952375013f, 0.304929230f, - 0.952841648f, 0.303467947f, - 0.953306040f, 0.302005949f, - 0.953768190f, 0.300543241f, - 0.954228095f, 0.299079826f, - 0.954685755f, 0.297615707f, - 0.955141168f, 0.296150888f, - 0.955594334f, 0.294685372f, - 0.956045251f, 0.293219163f, - 0.956493919f, 0.291752263f, - 0.956940336f, 0.290284677f, - 0.957384501f, 0.288816408f, - 0.957826413f, 0.287347460f, - 0.958266071f, 0.285877835f, - 0.958703475f, 0.284407537f, - 0.959138622f, 0.282936570f, - 0.959571513f, 0.281464938f, - 0.960002146f, 0.279992643f, - 0.960430519f, 0.278519689f, - 0.960856633f, 0.277046080f, - 0.961280486f, 0.275571819f, - 0.961702077f, 0.274096910f, - 0.962121404f, 0.272621355f, - 0.962538468f, 0.271145160f, - 0.962953267f, 0.269668326f, - 0.963365800f, 0.268190857f, - 0.963776066f, 0.266712757f, - 0.964184064f, 0.265234030f, - 0.964589793f, 0.263754679f, - 0.964993253f, 0.262274707f, - 0.965394442f, 0.260794118f, - 0.965793359f, 0.259312915f, - 0.966190003f, 0.257831102f, - 0.966584374f, 0.256348682f, - 0.966976471f, 0.254865660f, - 0.967366292f, 0.253382037f, - 0.967753837f, 0.251897818f, - 0.968139105f, 0.250413007f, - 0.968522094f, 0.248927606f, - 0.968902805f, 0.247441619f, - 0.969281235f, 0.245955050f, - 0.969657385f, 0.244467903f, - 0.970031253f, 0.242980180f, - 0.970402839f, 0.241491885f, - 0.970772141f, 0.240003022f, - 0.971139158f, 0.238513595f, - 0.971503891f, 0.237023606f, - 0.971866337f, 0.235533059f, - 0.972226497f, 0.234041959f, - 0.972584369f, 0.232550307f, - 0.972939952f, 0.231058108f, - 0.973293246f, 0.229565366f, - 0.973644250f, 0.228072083f, - 0.973992962f, 0.226578264f, - 0.974339383f, 0.225083911f, - 0.974683511f, 0.223589029f, - 0.975025345f, 0.222093621f, - 0.975364885f, 0.220597690f, - 0.975702130f, 0.219101240f, - 0.976037079f, 0.217604275f, - 0.976369731f, 0.216106797f, - 0.976700086f, 0.214608811f, - 0.977028143f, 0.213110320f, - 0.977353900f, 0.211611327f, - 0.977677358f, 0.210111837f, - 0.977998515f, 0.208611852f, - 0.978317371f, 0.207111376f, - 0.978633924f, 0.205610413f, - 0.978948175f, 0.204108966f, - 0.979260123f, 0.202607039f, - 0.979569766f, 0.201104635f, - 0.979877104f, 0.199601758f, - 0.980182136f, 0.198098411f, - 0.980484862f, 0.196594598f, - 0.980785280f, 0.195090322f, - 0.981083391f, 0.193585587f, - 0.981379193f, 0.192080397f, - 0.981672686f, 0.190574755f, - 0.981963869f, 0.189068664f, - 0.982252741f, 0.187562129f, - 0.982539302f, 0.186055152f, - 0.982823551f, 0.184547737f, - 0.983105487f, 0.183039888f, - 0.983385110f, 0.181531608f, - 0.983662419f, 0.180022901f, - 0.983937413f, 0.178513771f, - 0.984210092f, 0.177004220f, - 0.984480455f, 0.175494253f, - 0.984748502f, 0.173983873f, - 0.985014231f, 0.172473084f, - 0.985277642f, 0.170961889f, - 0.985538735f, 0.169450291f, - 0.985797509f, 0.167938295f, - 0.986053963f, 0.166425904f, - 0.986308097f, 0.164913120f, - 0.986559910f, 0.163399949f, - 0.986809402f, 0.161886394f, - 0.987056571f, 0.160372457f, - 0.987301418f, 0.158858143f, - 0.987543942f, 0.157343456f, - 0.987784142f, 0.155828398f, - 0.988022017f, 0.154312973f, - 0.988257568f, 0.152797185f, - 0.988490793f, 0.151281038f, - 0.988721692f, 0.149764535f, - 0.988950265f, 0.148247679f, - 0.989176510f, 0.146730474f, - 0.989400428f, 0.145212925f, - 0.989622017f, 0.143695033f, - 0.989841278f, 0.142176804f, - 0.990058210f, 0.140658239f, - 0.990272812f, 0.139139344f, - 0.990485084f, 0.137620122f, - 0.990695025f, 0.136100575f, - 0.990902635f, 0.134580709f, - 0.991107914f, 0.133060525f, - 0.991310860f, 0.131540029f, - 0.991511473f, 0.130019223f, - 0.991709754f, 0.128498111f, - 0.991905700f, 0.126976696f, - 0.992099313f, 0.125454983f, - 0.992290591f, 0.123932975f, - 0.992479535f, 0.122410675f, - 0.992666142f, 0.120888087f, - 0.992850414f, 0.119365215f, - 0.993032350f, 0.117842062f, - 0.993211949f, 0.116318631f, - 0.993389211f, 0.114794927f, - 0.993564136f, 0.113270952f, - 0.993736722f, 0.111746711f, - 0.993906970f, 0.110222207f, - 0.994074879f, 0.108697444f, - 0.994240449f, 0.107172425f, - 0.994403680f, 0.105647154f, - 0.994564571f, 0.104121634f, - 0.994723121f, 0.102595869f, - 0.994879331f, 0.101069863f, - 0.995033199f, 0.099543619f, - 0.995184727f, 0.098017140f, - 0.995333912f, 0.096490431f, - 0.995480755f, 0.094963495f, - 0.995625256f, 0.093436336f, - 0.995767414f, 0.091908956f, - 0.995907229f, 0.090381361f, - 0.996044701f, 0.088853553f, - 0.996179829f, 0.087325535f, - 0.996312612f, 0.085797312f, - 0.996443051f, 0.084268888f, - 0.996571146f, 0.082740265f, - 0.996696895f, 0.081211447f, - 0.996820299f, 0.079682438f, - 0.996941358f, 0.078153242f, - 0.997060070f, 0.076623861f, - 0.997176437f, 0.075094301f, - 0.997290457f, 0.073564564f, - 0.997402130f, 0.072034653f, - 0.997511456f, 0.070504573f, - 0.997618435f, 0.068974328f, - 0.997723067f, 0.067443920f, - 0.997825350f, 0.065913353f, - 0.997925286f, 0.064382631f, - 0.998022874f, 0.062851758f, - 0.998118113f, 0.061320736f, - 0.998211003f, 0.059789571f, - 0.998301545f, 0.058258265f, - 0.998389737f, 0.056726821f, - 0.998475581f, 0.055195244f, - 0.998559074f, 0.053663538f, - 0.998640218f, 0.052131705f, - 0.998719012f, 0.050599749f, - 0.998795456f, 0.049067674f, - 0.998869550f, 0.047535484f, - 0.998941293f, 0.046003182f, - 0.999010686f, 0.044470772f, - 0.999077728f, 0.042938257f, - 0.999142419f, 0.041405641f, - 0.999204759f, 0.039872928f, - 0.999264747f, 0.038340120f, - 0.999322385f, 0.036807223f, - 0.999377670f, 0.035274239f, - 0.999430605f, 0.033741172f, - 0.999481187f, 0.032208025f, - 0.999529418f, 0.030674803f, - 0.999575296f, 0.029141509f, - 0.999618822f, 0.027608146f, - 0.999659997f, 0.026074718f, - 0.999698819f, 0.024541229f, - 0.999735288f, 0.023007681f, - 0.999769405f, 0.021474080f, - 0.999801170f, 0.019940429f, - 0.999830582f, 0.018406730f, - 0.999857641f, 0.016872988f, - 0.999882347f, 0.015339206f, - 0.999904701f, 0.013805389f, - 0.999924702f, 0.012271538f, - 0.999942350f, 0.010737659f, - 0.999957645f, 0.009203755f, - 0.999970586f, 0.007669829f, - 0.999981175f, 0.006135885f, - 0.999989411f, 0.004601926f, - 0.999995294f, 0.003067957f, - 0.999998823f, 0.001533980f, - 1.000000000f, 0.000000000f, - 0.999998823f, -0.001533980f, - 0.999995294f, -0.003067957f, - 0.999989411f, -0.004601926f, - 0.999981175f, -0.006135885f, - 0.999970586f, -0.007669829f, - 0.999957645f, -0.009203755f, - 0.999942350f, -0.010737659f, - 0.999924702f, -0.012271538f, - 0.999904701f, -0.013805389f, - 0.999882347f, -0.015339206f, - 0.999857641f, -0.016872988f, - 0.999830582f, -0.018406730f, - 0.999801170f, -0.019940429f, - 0.999769405f, -0.021474080f, - 0.999735288f, -0.023007681f, - 0.999698819f, -0.024541229f, - 0.999659997f, -0.026074718f, - 0.999618822f, -0.027608146f, - 0.999575296f, -0.029141509f, - 0.999529418f, -0.030674803f, - 0.999481187f, -0.032208025f, - 0.999430605f, -0.033741172f, - 0.999377670f, -0.035274239f, - 0.999322385f, -0.036807223f, - 0.999264747f, -0.038340120f, - 0.999204759f, -0.039872928f, - 0.999142419f, -0.041405641f, - 0.999077728f, -0.042938257f, - 0.999010686f, -0.044470772f, - 0.998941293f, -0.046003182f, - 0.998869550f, -0.047535484f, - 0.998795456f, -0.049067674f, - 0.998719012f, -0.050599749f, - 0.998640218f, -0.052131705f, - 0.998559074f, -0.053663538f, - 0.998475581f, -0.055195244f, - 0.998389737f, -0.056726821f, - 0.998301545f, -0.058258265f, - 0.998211003f, -0.059789571f, - 0.998118113f, -0.061320736f, - 0.998022874f, -0.062851758f, - 0.997925286f, -0.064382631f, - 0.997825350f, -0.065913353f, - 0.997723067f, -0.067443920f, - 0.997618435f, -0.068974328f, - 0.997511456f, -0.070504573f, - 0.997402130f, -0.072034653f, - 0.997290457f, -0.073564564f, - 0.997176437f, -0.075094301f, - 0.997060070f, -0.076623861f, - 0.996941358f, -0.078153242f, - 0.996820299f, -0.079682438f, - 0.996696895f, -0.081211447f, - 0.996571146f, -0.082740265f, - 0.996443051f, -0.084268888f, - 0.996312612f, -0.085797312f, - 0.996179829f, -0.087325535f, - 0.996044701f, -0.088853553f, - 0.995907229f, -0.090381361f, - 0.995767414f, -0.091908956f, - 0.995625256f, -0.093436336f, - 0.995480755f, -0.094963495f, - 0.995333912f, -0.096490431f, - 0.995184727f, -0.098017140f, - 0.995033199f, -0.099543619f, - 0.994879331f, -0.101069863f, - 0.994723121f, -0.102595869f, - 0.994564571f, -0.104121634f, - 0.994403680f, -0.105647154f, - 0.994240449f, -0.107172425f, - 0.994074879f, -0.108697444f, - 0.993906970f, -0.110222207f, - 0.993736722f, -0.111746711f, - 0.993564136f, -0.113270952f, - 0.993389211f, -0.114794927f, - 0.993211949f, -0.116318631f, - 0.993032350f, -0.117842062f, - 0.992850414f, -0.119365215f, - 0.992666142f, -0.120888087f, - 0.992479535f, -0.122410675f, - 0.992290591f, -0.123932975f, - 0.992099313f, -0.125454983f, - 0.991905700f, -0.126976696f, - 0.991709754f, -0.128498111f, - 0.991511473f, -0.130019223f, - 0.991310860f, -0.131540029f, - 0.991107914f, -0.133060525f, - 0.990902635f, -0.134580709f, - 0.990695025f, -0.136100575f, - 0.990485084f, -0.137620122f, - 0.990272812f, -0.139139344f, - 0.990058210f, -0.140658239f, - 0.989841278f, -0.142176804f, - 0.989622017f, -0.143695033f, - 0.989400428f, -0.145212925f, - 0.989176510f, -0.146730474f, - 0.988950265f, -0.148247679f, - 0.988721692f, -0.149764535f, - 0.988490793f, -0.151281038f, - 0.988257568f, -0.152797185f, - 0.988022017f, -0.154312973f, - 0.987784142f, -0.155828398f, - 0.987543942f, -0.157343456f, - 0.987301418f, -0.158858143f, - 0.987056571f, -0.160372457f, - 0.986809402f, -0.161886394f, - 0.986559910f, -0.163399949f, - 0.986308097f, -0.164913120f, - 0.986053963f, -0.166425904f, - 0.985797509f, -0.167938295f, - 0.985538735f, -0.169450291f, - 0.985277642f, -0.170961889f, - 0.985014231f, -0.172473084f, - 0.984748502f, -0.173983873f, - 0.984480455f, -0.175494253f, - 0.984210092f, -0.177004220f, - 0.983937413f, -0.178513771f, - 0.983662419f, -0.180022901f, - 0.983385110f, -0.181531608f, - 0.983105487f, -0.183039888f, - 0.982823551f, -0.184547737f, - 0.982539302f, -0.186055152f, - 0.982252741f, -0.187562129f, - 0.981963869f, -0.189068664f, - 0.981672686f, -0.190574755f, - 0.981379193f, -0.192080397f, - 0.981083391f, -0.193585587f, - 0.980785280f, -0.195090322f, - 0.980484862f, -0.196594598f, - 0.980182136f, -0.198098411f, - 0.979877104f, -0.199601758f, - 0.979569766f, -0.201104635f, - 0.979260123f, -0.202607039f, - 0.978948175f, -0.204108966f, - 0.978633924f, -0.205610413f, - 0.978317371f, -0.207111376f, - 0.977998515f, -0.208611852f, - 0.977677358f, -0.210111837f, - 0.977353900f, -0.211611327f, - 0.977028143f, -0.213110320f, - 0.976700086f, -0.214608811f, - 0.976369731f, -0.216106797f, - 0.976037079f, -0.217604275f, - 0.975702130f, -0.219101240f, - 0.975364885f, -0.220597690f, - 0.975025345f, -0.222093621f, - 0.974683511f, -0.223589029f, - 0.974339383f, -0.225083911f, - 0.973992962f, -0.226578264f, - 0.973644250f, -0.228072083f, - 0.973293246f, -0.229565366f, - 0.972939952f, -0.231058108f, - 0.972584369f, -0.232550307f, - 0.972226497f, -0.234041959f, - 0.971866337f, -0.235533059f, - 0.971503891f, -0.237023606f, - 0.971139158f, -0.238513595f, - 0.970772141f, -0.240003022f, - 0.970402839f, -0.241491885f, - 0.970031253f, -0.242980180f, - 0.969657385f, -0.244467903f, - 0.969281235f, -0.245955050f, - 0.968902805f, -0.247441619f, - 0.968522094f, -0.248927606f, - 0.968139105f, -0.250413007f, - 0.967753837f, -0.251897818f, - 0.967366292f, -0.253382037f, - 0.966976471f, -0.254865660f, - 0.966584374f, -0.256348682f, - 0.966190003f, -0.257831102f, - 0.965793359f, -0.259312915f, - 0.965394442f, -0.260794118f, - 0.964993253f, -0.262274707f, - 0.964589793f, -0.263754679f, - 0.964184064f, -0.265234030f, - 0.963776066f, -0.266712757f, - 0.963365800f, -0.268190857f, - 0.962953267f, -0.269668326f, - 0.962538468f, -0.271145160f, - 0.962121404f, -0.272621355f, - 0.961702077f, -0.274096910f, - 0.961280486f, -0.275571819f, - 0.960856633f, -0.277046080f, - 0.960430519f, -0.278519689f, - 0.960002146f, -0.279992643f, - 0.959571513f, -0.281464938f, - 0.959138622f, -0.282936570f, - 0.958703475f, -0.284407537f, - 0.958266071f, -0.285877835f, - 0.957826413f, -0.287347460f, - 0.957384501f, -0.288816408f, - 0.956940336f, -0.290284677f, - 0.956493919f, -0.291752263f, - 0.956045251f, -0.293219163f, - 0.955594334f, -0.294685372f, - 0.955141168f, -0.296150888f, - 0.954685755f, -0.297615707f, - 0.954228095f, -0.299079826f, - 0.953768190f, -0.300543241f, - 0.953306040f, -0.302005949f, - 0.952841648f, -0.303467947f, - 0.952375013f, -0.304929230f, - 0.951906137f, -0.306389795f, - 0.951435021f, -0.307849640f, - 0.950961666f, -0.309308760f, - 0.950486074f, -0.310767153f, - 0.950008245f, -0.312224814f, - 0.949528181f, -0.313681740f, - 0.949045882f, -0.315137929f, - 0.948561350f, -0.316593376f, - 0.948074586f, -0.318048077f, - 0.947585591f, -0.319502031f, - 0.947094366f, -0.320955232f, - 0.946600913f, -0.322407679f, - 0.946105232f, -0.323859367f, - 0.945607325f, -0.325310292f, - 0.945107193f, -0.326760452f, - 0.944604837f, -0.328209844f, - 0.944100258f, -0.329658463f, - 0.943593458f, -0.331106306f, - 0.943084437f, -0.332553370f, - 0.942573198f, -0.333999651f, - 0.942059740f, -0.335445147f, - 0.941544065f, -0.336889853f, - 0.941026175f, -0.338333767f, - 0.940506071f, -0.339776884f, - 0.939983753f, -0.341219202f, - 0.939459224f, -0.342660717f, - 0.938932484f, -0.344101426f, - 0.938403534f, -0.345541325f, - 0.937872376f, -0.346980411f, - 0.937339012f, -0.348418680f, - 0.936803442f, -0.349856130f, - 0.936265667f, -0.351292756f, - 0.935725689f, -0.352728556f, - 0.935183510f, -0.354163525f, - 0.934639130f, -0.355597662f, - 0.934092550f, -0.357030961f, - 0.933543773f, -0.358463421f, - 0.932992799f, -0.359895037f, - 0.932439629f, -0.361325806f, - 0.931884266f, -0.362755724f, - 0.931326709f, -0.364184790f, - 0.930766961f, -0.365612998f, - 0.930205023f, -0.367040346f, - 0.929640896f, -0.368466830f, - 0.929074581f, -0.369892447f, - 0.928506080f, -0.371317194f, - 0.927935395f, -0.372741067f, - 0.927362526f, -0.374164063f, - 0.926787474f, -0.375586178f, - 0.926210242f, -0.377007410f, - 0.925630831f, -0.378427755f, - 0.925049241f, -0.379847209f, - 0.924465474f, -0.381265769f, - 0.923879533f, -0.382683432f, - 0.923291417f, -0.384100195f, - 0.922701128f, -0.385516054f, - 0.922108669f, -0.386931006f, - 0.921514039f, -0.388345047f, - 0.920917242f, -0.389758174f, - 0.920318277f, -0.391170384f, - 0.919717146f, -0.392581674f, - 0.919113852f, -0.393992040f, - 0.918508394f, -0.395401479f, - 0.917900776f, -0.396809987f, - 0.917290997f, -0.398217562f, - 0.916679060f, -0.399624200f, - 0.916064966f, -0.401029897f, - 0.915448716f, -0.402434651f, - 0.914830312f, -0.403838458f, - 0.914209756f, -0.405241314f, - 0.913587048f, -0.406643217f, - 0.912962190f, -0.408044163f, - 0.912335185f, -0.409444149f, - 0.911706032f, -0.410843171f, - 0.911074734f, -0.412241227f, - 0.910441292f, -0.413638312f, - 0.909805708f, -0.415034424f, - 0.909167983f, -0.416429560f, - 0.908528119f, -0.417823716f, - 0.907886116f, -0.419216888f, - 0.907241978f, -0.420609074f, - 0.906595705f, -0.422000271f, - 0.905947298f, -0.423390474f, - 0.905296759f, -0.424779681f, - 0.904644091f, -0.426167889f, - 0.903989293f, -0.427555093f, - 0.903332368f, -0.428941292f, - 0.902673318f, -0.430326481f, - 0.902012144f, -0.431710658f, - 0.901348847f, -0.433093819f, - 0.900683429f, -0.434475961f, - 0.900015892f, -0.435857080f, - 0.899346237f, -0.437237174f, - 0.898674466f, -0.438616239f, - 0.898000580f, -0.439994271f, - 0.897324581f, -0.441371269f, - 0.896646470f, -0.442747228f, - 0.895966250f, -0.444122145f, - 0.895283921f, -0.445496017f, - 0.894599486f, -0.446868840f, - 0.893912945f, -0.448240612f, - 0.893224301f, -0.449611330f, - 0.892533555f, -0.450980989f, - 0.891840709f, -0.452349587f, - 0.891145765f, -0.453717121f, - 0.890448723f, -0.455083587f, - 0.889749586f, -0.456448982f, - 0.889048356f, -0.457813304f, - 0.888345033f, -0.459176548f, - 0.887639620f, -0.460538711f, - 0.886932119f, -0.461899791f, - 0.886222530f, -0.463259784f, - 0.885510856f, -0.464618686f, - 0.884797098f, -0.465976496f, - 0.884081259f, -0.467333209f, - 0.883363339f, -0.468688822f, - 0.882643340f, -0.470043332f, - 0.881921264f, -0.471396737f, - 0.881197113f, -0.472749032f, - 0.880470889f, -0.474100215f, - 0.879742593f, -0.475450282f, - 0.879012226f, -0.476799230f, - 0.878279792f, -0.478147056f, - 0.877545290f, -0.479493758f, - 0.876808724f, -0.480839331f, - 0.876070094f, -0.482183772f, - 0.875329403f, -0.483527079f, - 0.874586652f, -0.484869248f, - 0.873841843f, -0.486210276f, - 0.873094978f, -0.487550160f, - 0.872346059f, -0.488888897f, - 0.871595087f, -0.490226483f, - 0.870842063f, -0.491562916f, - 0.870086991f, -0.492898192f, - 0.869329871f, -0.494232309f, - 0.868570706f, -0.495565262f, - 0.867809497f, -0.496897049f, - 0.867046246f, -0.498227667f, - 0.866280954f, -0.499557113f, - 0.865513624f, -0.500885383f, - 0.864744258f, -0.502212474f, - 0.863972856f, -0.503538384f, - 0.863199422f, -0.504863109f, - 0.862423956f, -0.506186645f, - 0.861646461f, -0.507508991f, - 0.860866939f, -0.508830143f, - 0.860085390f, -0.510150097f, - 0.859301818f, -0.511468850f, - 0.858516224f, -0.512786401f, - 0.857728610f, -0.514102744f, - 0.856938977f, -0.515417878f, - 0.856147328f, -0.516731799f, - 0.855353665f, -0.518044504f, - 0.854557988f, -0.519355990f, - 0.853760301f, -0.520666254f, - 0.852960605f, -0.521975293f, - 0.852158902f, -0.523283103f, - 0.851355193f, -0.524589683f, - 0.850549481f, -0.525895027f, - 0.849741768f, -0.527199135f, - 0.848932055f, -0.528502002f, - 0.848120345f, -0.529803625f, - 0.847306639f, -0.531104001f, - 0.846490939f, -0.532403128f, - 0.845673247f, -0.533701002f, - 0.844853565f, -0.534997620f, - 0.844031895f, -0.536292979f, - 0.843208240f, -0.537587076f, - 0.842382600f, -0.538879909f, - 0.841554977f, -0.540171473f, - 0.840725375f, -0.541461766f, - 0.839893794f, -0.542750785f, - 0.839060237f, -0.544038527f, - 0.838224706f, -0.545324988f, - 0.837387202f, -0.546610167f, - 0.836547727f, -0.547894059f, - 0.835706284f, -0.549176662f, - 0.834862875f, -0.550457973f, - 0.834017501f, -0.551737988f, - 0.833170165f, -0.553016706f, - 0.832320868f, -0.554294121f, - 0.831469612f, -0.555570233f, - 0.830616400f, -0.556845037f, - 0.829761234f, -0.558118531f, - 0.828904115f, -0.559390712f, - 0.828045045f, -0.560661576f, - 0.827184027f, -0.561931121f, - 0.826321063f, -0.563199344f, - 0.825456154f, -0.564466242f, - 0.824589303f, -0.565731811f, - 0.823720511f, -0.566996049f, - 0.822849781f, -0.568258953f, - 0.821977115f, -0.569520519f, - 0.821102515f, -0.570780746f, - 0.820225983f, -0.572039629f, - 0.819347520f, -0.573297167f, - 0.818467130f, -0.574553355f, - 0.817584813f, -0.575808191f, - 0.816700573f, -0.577061673f, - 0.815814411f, -0.578313796f, - 0.814926329f, -0.579564559f, - 0.814036330f, -0.580813958f, - 0.813144415f, -0.582061990f, - 0.812250587f, -0.583308653f, - 0.811354847f, -0.584553943f, - 0.810457198f, -0.585797857f, - 0.809557642f, -0.587040394f, - 0.808656182f, -0.588281548f, - 0.807752818f, -0.589521319f, - 0.806847554f, -0.590759702f, - 0.805940391f, -0.591996695f, - 0.805031331f, -0.593232295f, - 0.804120377f, -0.594466499f, - 0.803207531f, -0.595699304f, - 0.802292796f, -0.596930708f, - 0.801376172f, -0.598160707f, - 0.800457662f, -0.599389298f, - 0.799537269f, -0.600616479f, - 0.798614995f, -0.601842247f, - 0.797690841f, -0.603066599f, - 0.796764810f, -0.604289531f, - 0.795836905f, -0.605511041f, - 0.794907126f, -0.606731127f, - 0.793975478f, -0.607949785f, - 0.793041960f, -0.609167012f, - 0.792106577f, -0.610382806f, - 0.791169330f, -0.611597164f, - 0.790230221f, -0.612810082f, - 0.789289253f, -0.614021559f, - 0.788346428f, -0.615231591f, - 0.787401747f, -0.616440175f, - 0.786455214f, -0.617647308f, - 0.785506830f, -0.618852988f, - 0.784556597f, -0.620057212f, - 0.783604519f, -0.621259977f, - 0.782650596f, -0.622461279f, - 0.781694832f, -0.623661118f, - 0.780737229f, -0.624859488f, - 0.779777788f, -0.626056388f, - 0.778816512f, -0.627251815f, - 0.777853404f, -0.628445767f, - 0.776888466f, -0.629638239f, - 0.775921699f, -0.630829230f, - 0.774953107f, -0.632018736f, - 0.773982691f, -0.633206755f, - 0.773010453f, -0.634393284f, - 0.772036397f, -0.635578320f, - 0.771060524f, -0.636761861f, - 0.770082837f, -0.637943904f, - 0.769103338f, -0.639124445f, - 0.768122029f, -0.640303482f, - 0.767138912f, -0.641481013f, - 0.766153990f, -0.642657034f, - 0.765167266f, -0.643831543f, - 0.764178741f, -0.645004537f, - 0.763188417f, -0.646176013f, - 0.762196298f, -0.647345969f, - 0.761202385f, -0.648514401f, - 0.760206682f, -0.649681307f, - 0.759209189f, -0.650846685f, - 0.758209910f, -0.652010531f, - 0.757208847f, -0.653172843f, - 0.756206001f, -0.654333618f, - 0.755201377f, -0.655492853f, - 0.754194975f, -0.656650546f, - 0.753186799f, -0.657806693f, - 0.752176850f, -0.658961293f, - 0.751165132f, -0.660114342f, - 0.750151646f, -0.661265838f, - 0.749136395f, -0.662415778f, - 0.748119380f, -0.663564159f, - 0.747100606f, -0.664710978f, - 0.746080074f, -0.665856234f, - 0.745057785f, -0.666999922f, - 0.744033744f, -0.668142041f, - 0.743007952f, -0.669282588f, - 0.741980412f, -0.670421560f, - 0.740951125f, -0.671558955f, - 0.739920095f, -0.672694769f, - 0.738887324f, -0.673829000f, - 0.737852815f, -0.674961646f, - 0.736816569f, -0.676092704f, - 0.735778589f, -0.677222170f, - 0.734738878f, -0.678350043f, - 0.733697438f, -0.679476320f, - 0.732654272f, -0.680600998f, - 0.731609381f, -0.681724074f, - 0.730562769f, -0.682845546f, - 0.729514438f, -0.683965412f, - 0.728464390f, -0.685083668f, - 0.727412629f, -0.686200312f, - 0.726359155f, -0.687315341f, - 0.725303972f, -0.688428753f, - 0.724247083f, -0.689540545f, - 0.723188489f, -0.690650714f, - 0.722128194f, -0.691759258f, - 0.721066199f, -0.692866175f, - 0.720002508f, -0.693971461f, - 0.718937122f, -0.695075114f, - 0.717870045f, -0.696177131f, - 0.716801279f, -0.697277511f, - 0.715730825f, -0.698376249f, - 0.714658688f, -0.699473345f, - 0.713584869f, -0.700568794f, - 0.712509371f, -0.701662595f, - 0.711432196f, -0.702754744f, - 0.710353347f, -0.703845241f, - 0.709272826f, -0.704934080f, - 0.708190637f, -0.706021261f, - 0.707106781f, -0.707106781f, - 0.706021261f, -0.708190637f, - 0.704934080f, -0.709272826f, - 0.703845241f, -0.710353347f, - 0.702754744f, -0.711432196f, - 0.701662595f, -0.712509371f, - 0.700568794f, -0.713584869f, - 0.699473345f, -0.714658688f, - 0.698376249f, -0.715730825f, - 0.697277511f, -0.716801279f, - 0.696177131f, -0.717870045f, - 0.695075114f, -0.718937122f, - 0.693971461f, -0.720002508f, - 0.692866175f, -0.721066199f, - 0.691759258f, -0.722128194f, - 0.690650714f, -0.723188489f, - 0.689540545f, -0.724247083f, - 0.688428753f, -0.725303972f, - 0.687315341f, -0.726359155f, - 0.686200312f, -0.727412629f, - 0.685083668f, -0.728464390f, - 0.683965412f, -0.729514438f, - 0.682845546f, -0.730562769f, - 0.681724074f, -0.731609381f, - 0.680600998f, -0.732654272f, - 0.679476320f, -0.733697438f, - 0.678350043f, -0.734738878f, - 0.677222170f, -0.735778589f, - 0.676092704f, -0.736816569f, - 0.674961646f, -0.737852815f, - 0.673829000f, -0.738887324f, - 0.672694769f, -0.739920095f, - 0.671558955f, -0.740951125f, - 0.670421560f, -0.741980412f, - 0.669282588f, -0.743007952f, - 0.668142041f, -0.744033744f, - 0.666999922f, -0.745057785f, - 0.665856234f, -0.746080074f, - 0.664710978f, -0.747100606f, - 0.663564159f, -0.748119380f, - 0.662415778f, -0.749136395f, - 0.661265838f, -0.750151646f, - 0.660114342f, -0.751165132f, - 0.658961293f, -0.752176850f, - 0.657806693f, -0.753186799f, - 0.656650546f, -0.754194975f, - 0.655492853f, -0.755201377f, - 0.654333618f, -0.756206001f, - 0.653172843f, -0.757208847f, - 0.652010531f, -0.758209910f, - 0.650846685f, -0.759209189f, - 0.649681307f, -0.760206682f, - 0.648514401f, -0.761202385f, - 0.647345969f, -0.762196298f, - 0.646176013f, -0.763188417f, - 0.645004537f, -0.764178741f, - 0.643831543f, -0.765167266f, - 0.642657034f, -0.766153990f, - 0.641481013f, -0.767138912f, - 0.640303482f, -0.768122029f, - 0.639124445f, -0.769103338f, - 0.637943904f, -0.770082837f, - 0.636761861f, -0.771060524f, - 0.635578320f, -0.772036397f, - 0.634393284f, -0.773010453f, - 0.633206755f, -0.773982691f, - 0.632018736f, -0.774953107f, - 0.630829230f, -0.775921699f, - 0.629638239f, -0.776888466f, - 0.628445767f, -0.777853404f, - 0.627251815f, -0.778816512f, - 0.626056388f, -0.779777788f, - 0.624859488f, -0.780737229f, - 0.623661118f, -0.781694832f, - 0.622461279f, -0.782650596f, - 0.621259977f, -0.783604519f, - 0.620057212f, -0.784556597f, - 0.618852988f, -0.785506830f, - 0.617647308f, -0.786455214f, - 0.616440175f, -0.787401747f, - 0.615231591f, -0.788346428f, - 0.614021559f, -0.789289253f, - 0.612810082f, -0.790230221f, - 0.611597164f, -0.791169330f, - 0.610382806f, -0.792106577f, - 0.609167012f, -0.793041960f, - 0.607949785f, -0.793975478f, - 0.606731127f, -0.794907126f, - 0.605511041f, -0.795836905f, - 0.604289531f, -0.796764810f, - 0.603066599f, -0.797690841f, - 0.601842247f, -0.798614995f, - 0.600616479f, -0.799537269f, - 0.599389298f, -0.800457662f, - 0.598160707f, -0.801376172f, - 0.596930708f, -0.802292796f, - 0.595699304f, -0.803207531f, - 0.594466499f, -0.804120377f, - 0.593232295f, -0.805031331f, - 0.591996695f, -0.805940391f, - 0.590759702f, -0.806847554f, - 0.589521319f, -0.807752818f, - 0.588281548f, -0.808656182f, - 0.587040394f, -0.809557642f, - 0.585797857f, -0.810457198f, - 0.584553943f, -0.811354847f, - 0.583308653f, -0.812250587f, - 0.582061990f, -0.813144415f, - 0.580813958f, -0.814036330f, - 0.579564559f, -0.814926329f, - 0.578313796f, -0.815814411f, - 0.577061673f, -0.816700573f, - 0.575808191f, -0.817584813f, - 0.574553355f, -0.818467130f, - 0.573297167f, -0.819347520f, - 0.572039629f, -0.820225983f, - 0.570780746f, -0.821102515f, - 0.569520519f, -0.821977115f, - 0.568258953f, -0.822849781f, - 0.566996049f, -0.823720511f, - 0.565731811f, -0.824589303f, - 0.564466242f, -0.825456154f, - 0.563199344f, -0.826321063f, - 0.561931121f, -0.827184027f, - 0.560661576f, -0.828045045f, - 0.559390712f, -0.828904115f, - 0.558118531f, -0.829761234f, - 0.556845037f, -0.830616400f, - 0.555570233f, -0.831469612f, - 0.554294121f, -0.832320868f, - 0.553016706f, -0.833170165f, - 0.551737988f, -0.834017501f, - 0.550457973f, -0.834862875f, - 0.549176662f, -0.835706284f, - 0.547894059f, -0.836547727f, - 0.546610167f, -0.837387202f, - 0.545324988f, -0.838224706f, - 0.544038527f, -0.839060237f, - 0.542750785f, -0.839893794f, - 0.541461766f, -0.840725375f, - 0.540171473f, -0.841554977f, - 0.538879909f, -0.842382600f, - 0.537587076f, -0.843208240f, - 0.536292979f, -0.844031895f, - 0.534997620f, -0.844853565f, - 0.533701002f, -0.845673247f, - 0.532403128f, -0.846490939f, - 0.531104001f, -0.847306639f, - 0.529803625f, -0.848120345f, - 0.528502002f, -0.848932055f, - 0.527199135f, -0.849741768f, - 0.525895027f, -0.850549481f, - 0.524589683f, -0.851355193f, - 0.523283103f, -0.852158902f, - 0.521975293f, -0.852960605f, - 0.520666254f, -0.853760301f, - 0.519355990f, -0.854557988f, - 0.518044504f, -0.855353665f, - 0.516731799f, -0.856147328f, - 0.515417878f, -0.856938977f, - 0.514102744f, -0.857728610f, - 0.512786401f, -0.858516224f, - 0.511468850f, -0.859301818f, - 0.510150097f, -0.860085390f, - 0.508830143f, -0.860866939f, - 0.507508991f, -0.861646461f, - 0.506186645f, -0.862423956f, - 0.504863109f, -0.863199422f, - 0.503538384f, -0.863972856f, - 0.502212474f, -0.864744258f, - 0.500885383f, -0.865513624f, - 0.499557113f, -0.866280954f, - 0.498227667f, -0.867046246f, - 0.496897049f, -0.867809497f, - 0.495565262f, -0.868570706f, - 0.494232309f, -0.869329871f, - 0.492898192f, -0.870086991f, - 0.491562916f, -0.870842063f, - 0.490226483f, -0.871595087f, - 0.488888897f, -0.872346059f, - 0.487550160f, -0.873094978f, - 0.486210276f, -0.873841843f, - 0.484869248f, -0.874586652f, - 0.483527079f, -0.875329403f, - 0.482183772f, -0.876070094f, - 0.480839331f, -0.876808724f, - 0.479493758f, -0.877545290f, - 0.478147056f, -0.878279792f, - 0.476799230f, -0.879012226f, - 0.475450282f, -0.879742593f, - 0.474100215f, -0.880470889f, - 0.472749032f, -0.881197113f, - 0.471396737f, -0.881921264f, - 0.470043332f, -0.882643340f, - 0.468688822f, -0.883363339f, - 0.467333209f, -0.884081259f, - 0.465976496f, -0.884797098f, - 0.464618686f, -0.885510856f, - 0.463259784f, -0.886222530f, - 0.461899791f, -0.886932119f, - 0.460538711f, -0.887639620f, - 0.459176548f, -0.888345033f, - 0.457813304f, -0.889048356f, - 0.456448982f, -0.889749586f, - 0.455083587f, -0.890448723f, - 0.453717121f, -0.891145765f, - 0.452349587f, -0.891840709f, - 0.450980989f, -0.892533555f, - 0.449611330f, -0.893224301f, - 0.448240612f, -0.893912945f, - 0.446868840f, -0.894599486f, - 0.445496017f, -0.895283921f, - 0.444122145f, -0.895966250f, - 0.442747228f, -0.896646470f, - 0.441371269f, -0.897324581f, - 0.439994271f, -0.898000580f, - 0.438616239f, -0.898674466f, - 0.437237174f, -0.899346237f, - 0.435857080f, -0.900015892f, - 0.434475961f, -0.900683429f, - 0.433093819f, -0.901348847f, - 0.431710658f, -0.902012144f, - 0.430326481f, -0.902673318f, - 0.428941292f, -0.903332368f, - 0.427555093f, -0.903989293f, - 0.426167889f, -0.904644091f, - 0.424779681f, -0.905296759f, - 0.423390474f, -0.905947298f, - 0.422000271f, -0.906595705f, - 0.420609074f, -0.907241978f, - 0.419216888f, -0.907886116f, - 0.417823716f, -0.908528119f, - 0.416429560f, -0.909167983f, - 0.415034424f, -0.909805708f, - 0.413638312f, -0.910441292f, - 0.412241227f, -0.911074734f, - 0.410843171f, -0.911706032f, - 0.409444149f, -0.912335185f, - 0.408044163f, -0.912962190f, - 0.406643217f, -0.913587048f, - 0.405241314f, -0.914209756f, - 0.403838458f, -0.914830312f, - 0.402434651f, -0.915448716f, - 0.401029897f, -0.916064966f, - 0.399624200f, -0.916679060f, - 0.398217562f, -0.917290997f, - 0.396809987f, -0.917900776f, - 0.395401479f, -0.918508394f, - 0.393992040f, -0.919113852f, - 0.392581674f, -0.919717146f, - 0.391170384f, -0.920318277f, - 0.389758174f, -0.920917242f, - 0.388345047f, -0.921514039f, - 0.386931006f, -0.922108669f, - 0.385516054f, -0.922701128f, - 0.384100195f, -0.923291417f, - 0.382683432f, -0.923879533f, - 0.381265769f, -0.924465474f, - 0.379847209f, -0.925049241f, - 0.378427755f, -0.925630831f, - 0.377007410f, -0.926210242f, - 0.375586178f, -0.926787474f, - 0.374164063f, -0.927362526f, - 0.372741067f, -0.927935395f, - 0.371317194f, -0.928506080f, - 0.369892447f, -0.929074581f, - 0.368466830f, -0.929640896f, - 0.367040346f, -0.930205023f, - 0.365612998f, -0.930766961f, - 0.364184790f, -0.931326709f, - 0.362755724f, -0.931884266f, - 0.361325806f, -0.932439629f, - 0.359895037f, -0.932992799f, - 0.358463421f, -0.933543773f, - 0.357030961f, -0.934092550f, - 0.355597662f, -0.934639130f, - 0.354163525f, -0.935183510f, - 0.352728556f, -0.935725689f, - 0.351292756f, -0.936265667f, - 0.349856130f, -0.936803442f, - 0.348418680f, -0.937339012f, - 0.346980411f, -0.937872376f, - 0.345541325f, -0.938403534f, - 0.344101426f, -0.938932484f, - 0.342660717f, -0.939459224f, - 0.341219202f, -0.939983753f, - 0.339776884f, -0.940506071f, - 0.338333767f, -0.941026175f, - 0.336889853f, -0.941544065f, - 0.335445147f, -0.942059740f, - 0.333999651f, -0.942573198f, - 0.332553370f, -0.943084437f, - 0.331106306f, -0.943593458f, - 0.329658463f, -0.944100258f, - 0.328209844f, -0.944604837f, - 0.326760452f, -0.945107193f, - 0.325310292f, -0.945607325f, - 0.323859367f, -0.946105232f, - 0.322407679f, -0.946600913f, - 0.320955232f, -0.947094366f, - 0.319502031f, -0.947585591f, - 0.318048077f, -0.948074586f, - 0.316593376f, -0.948561350f, - 0.315137929f, -0.949045882f, - 0.313681740f, -0.949528181f, - 0.312224814f, -0.950008245f, - 0.310767153f, -0.950486074f, - 0.309308760f, -0.950961666f, - 0.307849640f, -0.951435021f, - 0.306389795f, -0.951906137f, - 0.304929230f, -0.952375013f, - 0.303467947f, -0.952841648f, - 0.302005949f, -0.953306040f, - 0.300543241f, -0.953768190f, - 0.299079826f, -0.954228095f, - 0.297615707f, -0.954685755f, - 0.296150888f, -0.955141168f, - 0.294685372f, -0.955594334f, - 0.293219163f, -0.956045251f, - 0.291752263f, -0.956493919f, - 0.290284677f, -0.956940336f, - 0.288816408f, -0.957384501f, - 0.287347460f, -0.957826413f, - 0.285877835f, -0.958266071f, - 0.284407537f, -0.958703475f, - 0.282936570f, -0.959138622f, - 0.281464938f, -0.959571513f, - 0.279992643f, -0.960002146f, - 0.278519689f, -0.960430519f, - 0.277046080f, -0.960856633f, - 0.275571819f, -0.961280486f, - 0.274096910f, -0.961702077f, - 0.272621355f, -0.962121404f, - 0.271145160f, -0.962538468f, - 0.269668326f, -0.962953267f, - 0.268190857f, -0.963365800f, - 0.266712757f, -0.963776066f, - 0.265234030f, -0.964184064f, - 0.263754679f, -0.964589793f, - 0.262274707f, -0.964993253f, - 0.260794118f, -0.965394442f, - 0.259312915f, -0.965793359f, - 0.257831102f, -0.966190003f, - 0.256348682f, -0.966584374f, - 0.254865660f, -0.966976471f, - 0.253382037f, -0.967366292f, - 0.251897818f, -0.967753837f, - 0.250413007f, -0.968139105f, - 0.248927606f, -0.968522094f, - 0.247441619f, -0.968902805f, - 0.245955050f, -0.969281235f, - 0.244467903f, -0.969657385f, - 0.242980180f, -0.970031253f, - 0.241491885f, -0.970402839f, - 0.240003022f, -0.970772141f, - 0.238513595f, -0.971139158f, - 0.237023606f, -0.971503891f, - 0.235533059f, -0.971866337f, - 0.234041959f, -0.972226497f, - 0.232550307f, -0.972584369f, - 0.231058108f, -0.972939952f, - 0.229565366f, -0.973293246f, - 0.228072083f, -0.973644250f, - 0.226578264f, -0.973992962f, - 0.225083911f, -0.974339383f, - 0.223589029f, -0.974683511f, - 0.222093621f, -0.975025345f, - 0.220597690f, -0.975364885f, - 0.219101240f, -0.975702130f, - 0.217604275f, -0.976037079f, - 0.216106797f, -0.976369731f, - 0.214608811f, -0.976700086f, - 0.213110320f, -0.977028143f, - 0.211611327f, -0.977353900f, - 0.210111837f, -0.977677358f, - 0.208611852f, -0.977998515f, - 0.207111376f, -0.978317371f, - 0.205610413f, -0.978633924f, - 0.204108966f, -0.978948175f, - 0.202607039f, -0.979260123f, - 0.201104635f, -0.979569766f, - 0.199601758f, -0.979877104f, - 0.198098411f, -0.980182136f, - 0.196594598f, -0.980484862f, - 0.195090322f, -0.980785280f, - 0.193585587f, -0.981083391f, - 0.192080397f, -0.981379193f, - 0.190574755f, -0.981672686f, - 0.189068664f, -0.981963869f, - 0.187562129f, -0.982252741f, - 0.186055152f, -0.982539302f, - 0.184547737f, -0.982823551f, - 0.183039888f, -0.983105487f, - 0.181531608f, -0.983385110f, - 0.180022901f, -0.983662419f, - 0.178513771f, -0.983937413f, - 0.177004220f, -0.984210092f, - 0.175494253f, -0.984480455f, - 0.173983873f, -0.984748502f, - 0.172473084f, -0.985014231f, - 0.170961889f, -0.985277642f, - 0.169450291f, -0.985538735f, - 0.167938295f, -0.985797509f, - 0.166425904f, -0.986053963f, - 0.164913120f, -0.986308097f, - 0.163399949f, -0.986559910f, - 0.161886394f, -0.986809402f, - 0.160372457f, -0.987056571f, - 0.158858143f, -0.987301418f, - 0.157343456f, -0.987543942f, - 0.155828398f, -0.987784142f, - 0.154312973f, -0.988022017f, - 0.152797185f, -0.988257568f, - 0.151281038f, -0.988490793f, - 0.149764535f, -0.988721692f, - 0.148247679f, -0.988950265f, - 0.146730474f, -0.989176510f, - 0.145212925f, -0.989400428f, - 0.143695033f, -0.989622017f, - 0.142176804f, -0.989841278f, - 0.140658239f, -0.990058210f, - 0.139139344f, -0.990272812f, - 0.137620122f, -0.990485084f, - 0.136100575f, -0.990695025f, - 0.134580709f, -0.990902635f, - 0.133060525f, -0.991107914f, - 0.131540029f, -0.991310860f, - 0.130019223f, -0.991511473f, - 0.128498111f, -0.991709754f, - 0.126976696f, -0.991905700f, - 0.125454983f, -0.992099313f, - 0.123932975f, -0.992290591f, - 0.122410675f, -0.992479535f, - 0.120888087f, -0.992666142f, - 0.119365215f, -0.992850414f, - 0.117842062f, -0.993032350f, - 0.116318631f, -0.993211949f, - 0.114794927f, -0.993389211f, - 0.113270952f, -0.993564136f, - 0.111746711f, -0.993736722f, - 0.110222207f, -0.993906970f, - 0.108697444f, -0.994074879f, - 0.107172425f, -0.994240449f, - 0.105647154f, -0.994403680f, - 0.104121634f, -0.994564571f, - 0.102595869f, -0.994723121f, - 0.101069863f, -0.994879331f, - 0.099543619f, -0.995033199f, - 0.098017140f, -0.995184727f, - 0.096490431f, -0.995333912f, - 0.094963495f, -0.995480755f, - 0.093436336f, -0.995625256f, - 0.091908956f, -0.995767414f, - 0.090381361f, -0.995907229f, - 0.088853553f, -0.996044701f, - 0.087325535f, -0.996179829f, - 0.085797312f, -0.996312612f, - 0.084268888f, -0.996443051f, - 0.082740265f, -0.996571146f, - 0.081211447f, -0.996696895f, - 0.079682438f, -0.996820299f, - 0.078153242f, -0.996941358f, - 0.076623861f, -0.997060070f, - 0.075094301f, -0.997176437f, - 0.073564564f, -0.997290457f, - 0.072034653f, -0.997402130f, - 0.070504573f, -0.997511456f, - 0.068974328f, -0.997618435f, - 0.067443920f, -0.997723067f, - 0.065913353f, -0.997825350f, - 0.064382631f, -0.997925286f, - 0.062851758f, -0.998022874f, - 0.061320736f, -0.998118113f, - 0.059789571f, -0.998211003f, - 0.058258265f, -0.998301545f, - 0.056726821f, -0.998389737f, - 0.055195244f, -0.998475581f, - 0.053663538f, -0.998559074f, - 0.052131705f, -0.998640218f, - 0.050599749f, -0.998719012f, - 0.049067674f, -0.998795456f, - 0.047535484f, -0.998869550f, - 0.046003182f, -0.998941293f, - 0.044470772f, -0.999010686f, - 0.042938257f, -0.999077728f, - 0.041405641f, -0.999142419f, - 0.039872928f, -0.999204759f, - 0.038340120f, -0.999264747f, - 0.036807223f, -0.999322385f, - 0.035274239f, -0.999377670f, - 0.033741172f, -0.999430605f, - 0.032208025f, -0.999481187f, - 0.030674803f, -0.999529418f, - 0.029141509f, -0.999575296f, - 0.027608146f, -0.999618822f, - 0.026074718f, -0.999659997f, - 0.024541229f, -0.999698819f, - 0.023007681f, -0.999735288f, - 0.021474080f, -0.999769405f, - 0.019940429f, -0.999801170f, - 0.018406730f, -0.999830582f, - 0.016872988f, -0.999857641f, - 0.015339206f, -0.999882347f, - 0.013805389f, -0.999904701f, - 0.012271538f, -0.999924702f, - 0.010737659f, -0.999942350f, - 0.009203755f, -0.999957645f, - 0.007669829f, -0.999970586f, - 0.006135885f, -0.999981175f, - 0.004601926f, -0.999989411f, - 0.003067957f, -0.999995294f, - 0.001533980f, -0.999998823f -}; - - -/** - * \par - * Example code for the generation of the floating-point sine table: - *
- * tableSize = 512;
- * for(n = 0; n < (tableSize + 1); n++)
- * {
- *	sinTable[n]=sin(2*pi*n/tableSize);
- * }
- * \par - * where pi value is 3.14159265358979 - */ - -const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1] = { - 0.00000000f, 0.01227154f, 0.02454123f, 0.03680722f, 0.04906767f, 0.06132074f, - 0.07356456f, 0.08579731f, 0.09801714f, 0.11022221f, 0.12241068f, 0.13458071f, - 0.14673047f, 0.15885814f, 0.17096189f, 0.18303989f, 0.19509032f, 0.20711138f, - 0.21910124f, 0.23105811f, 0.24298018f, 0.25486566f, 0.26671276f, 0.27851969f, - 0.29028468f, 0.30200595f, 0.31368174f, 0.32531029f, 0.33688985f, 0.34841868f, - 0.35989504f, 0.37131719f, 0.38268343f, 0.39399204f, 0.40524131f, 0.41642956f, - 0.42755509f, 0.43861624f, 0.44961133f, 0.46053871f, 0.47139674f, 0.48218377f, - 0.49289819f, 0.50353838f, 0.51410274f, 0.52458968f, 0.53499762f, 0.54532499f, - 0.55557023f, 0.56573181f, 0.57580819f, 0.58579786f, 0.59569930f, 0.60551104f, - 0.61523159f, 0.62485949f, 0.63439328f, 0.64383154f, 0.65317284f, 0.66241578f, - 0.67155895f, 0.68060100f, 0.68954054f, 0.69837625f, 0.70710678f, 0.71573083f, - 0.72424708f, 0.73265427f, 0.74095113f, 0.74913639f, 0.75720885f, 0.76516727f, - 0.77301045f, 0.78073723f, 0.78834643f, 0.79583690f, 0.80320753f, 0.81045720f, - 0.81758481f, 0.82458930f, 0.83146961f, 0.83822471f, 0.84485357f, 0.85135519f, - 0.85772861f, 0.86397286f, 0.87008699f, 0.87607009f, 0.88192126f, 0.88763962f, - 0.89322430f, 0.89867447f, 0.90398929f, 0.90916798f, 0.91420976f, 0.91911385f, - 0.92387953f, 0.92850608f, 0.93299280f, 0.93733901f, 0.94154407f, 0.94560733f, - 0.94952818f, 0.95330604f, 0.95694034f, 0.96043052f, 0.96377607f, 0.96697647f, - 0.97003125f, 0.97293995f, 0.97570213f, 0.97831737f, 0.98078528f, 0.98310549f, - 0.98527764f, 0.98730142f, 0.98917651f, 0.99090264f, 0.99247953f, 0.99390697f, - 0.99518473f, 0.99631261f, 0.99729046f, 0.99811811f, 0.99879546f, 0.99932238f, - 0.99969882f, 0.99992470f, 1.00000000f, 0.99992470f, 0.99969882f, 0.99932238f, - 0.99879546f, 0.99811811f, 0.99729046f, 0.99631261f, 0.99518473f, 0.99390697f, - 0.99247953f, 0.99090264f, 0.98917651f, 0.98730142f, 0.98527764f, 0.98310549f, - 0.98078528f, 0.97831737f, 0.97570213f, 0.97293995f, 0.97003125f, 0.96697647f, - 0.96377607f, 0.96043052f, 0.95694034f, 0.95330604f, 0.94952818f, 0.94560733f, - 0.94154407f, 0.93733901f, 0.93299280f, 0.92850608f, 0.92387953f, 0.91911385f, - 0.91420976f, 0.90916798f, 0.90398929f, 0.89867447f, 0.89322430f, 0.88763962f, - 0.88192126f, 0.87607009f, 0.87008699f, 0.86397286f, 0.85772861f, 0.85135519f, - 0.84485357f, 0.83822471f, 0.83146961f, 0.82458930f, 0.81758481f, 0.81045720f, - 0.80320753f, 0.79583690f, 0.78834643f, 0.78073723f, 0.77301045f, 0.76516727f, - 0.75720885f, 0.74913639f, 0.74095113f, 0.73265427f, 0.72424708f, 0.71573083f, - 0.70710678f, 0.69837625f, 0.68954054f, 0.68060100f, 0.67155895f, 0.66241578f, - 0.65317284f, 0.64383154f, 0.63439328f, 0.62485949f, 0.61523159f, 0.60551104f, - 0.59569930f, 0.58579786f, 0.57580819f, 0.56573181f, 0.55557023f, 0.54532499f, - 0.53499762f, 0.52458968f, 0.51410274f, 0.50353838f, 0.49289819f, 0.48218377f, - 0.47139674f, 0.46053871f, 0.44961133f, 0.43861624f, 0.42755509f, 0.41642956f, - 0.40524131f, 0.39399204f, 0.38268343f, 0.37131719f, 0.35989504f, 0.34841868f, - 0.33688985f, 0.32531029f, 0.31368174f, 0.30200595f, 0.29028468f, 0.27851969f, - 0.26671276f, 0.25486566f, 0.24298018f, 0.23105811f, 0.21910124f, 0.20711138f, - 0.19509032f, 0.18303989f, 0.17096189f, 0.15885814f, 0.14673047f, 0.13458071f, - 0.12241068f, 0.11022221f, 0.09801714f, 0.08579731f, 0.07356456f, 0.06132074f, - 0.04906767f, 0.03680722f, 0.02454123f, 0.01227154f, 0.00000000f, -0.01227154f, - -0.02454123f, -0.03680722f, -0.04906767f, -0.06132074f, -0.07356456f, - -0.08579731f, -0.09801714f, -0.11022221f, -0.12241068f, -0.13458071f, - -0.14673047f, -0.15885814f, -0.17096189f, -0.18303989f, -0.19509032f, - -0.20711138f, -0.21910124f, -0.23105811f, -0.24298018f, -0.25486566f, - -0.26671276f, -0.27851969f, -0.29028468f, -0.30200595f, -0.31368174f, - -0.32531029f, -0.33688985f, -0.34841868f, -0.35989504f, -0.37131719f, - -0.38268343f, -0.39399204f, -0.40524131f, -0.41642956f, -0.42755509f, - -0.43861624f, -0.44961133f, -0.46053871f, -0.47139674f, -0.48218377f, - -0.49289819f, -0.50353838f, -0.51410274f, -0.52458968f, -0.53499762f, - -0.54532499f, -0.55557023f, -0.56573181f, -0.57580819f, -0.58579786f, - -0.59569930f, -0.60551104f, -0.61523159f, -0.62485949f, -0.63439328f, - -0.64383154f, -0.65317284f, -0.66241578f, -0.67155895f, -0.68060100f, - -0.68954054f, -0.69837625f, -0.70710678f, -0.71573083f, -0.72424708f, - -0.73265427f, -0.74095113f, -0.74913639f, -0.75720885f, -0.76516727f, - -0.77301045f, -0.78073723f, -0.78834643f, -0.79583690f, -0.80320753f, - -0.81045720f, -0.81758481f, -0.82458930f, -0.83146961f, -0.83822471f, - -0.84485357f, -0.85135519f, -0.85772861f, -0.86397286f, -0.87008699f, - -0.87607009f, -0.88192126f, -0.88763962f, -0.89322430f, -0.89867447f, - -0.90398929f, -0.90916798f, -0.91420976f, -0.91911385f, -0.92387953f, - -0.92850608f, -0.93299280f, -0.93733901f, -0.94154407f, -0.94560733f, - -0.94952818f, -0.95330604f, -0.95694034f, -0.96043052f, -0.96377607f, - -0.96697647f, -0.97003125f, -0.97293995f, -0.97570213f, -0.97831737f, - -0.98078528f, -0.98310549f, -0.98527764f, -0.98730142f, -0.98917651f, - -0.99090264f, -0.99247953f, -0.99390697f, -0.99518473f, -0.99631261f, - -0.99729046f, -0.99811811f, -0.99879546f, -0.99932238f, -0.99969882f, - -0.99992470f, -1.00000000f, -0.99992470f, -0.99969882f, -0.99932238f, - -0.99879546f, -0.99811811f, -0.99729046f, -0.99631261f, -0.99518473f, - -0.99390697f, -0.99247953f, -0.99090264f, -0.98917651f, -0.98730142f, - -0.98527764f, -0.98310549f, -0.98078528f, -0.97831737f, -0.97570213f, - -0.97293995f, -0.97003125f, -0.96697647f, -0.96377607f, -0.96043052f, - -0.95694034f, -0.95330604f, -0.94952818f, -0.94560733f, -0.94154407f, - -0.93733901f, -0.93299280f, -0.92850608f, -0.92387953f, -0.91911385f, - -0.91420976f, -0.90916798f, -0.90398929f, -0.89867447f, -0.89322430f, - -0.88763962f, -0.88192126f, -0.87607009f, -0.87008699f, -0.86397286f, - -0.85772861f, -0.85135519f, -0.84485357f, -0.83822471f, -0.83146961f, - -0.82458930f, -0.81758481f, -0.81045720f, -0.80320753f, -0.79583690f, - -0.78834643f, -0.78073723f, -0.77301045f, -0.76516727f, -0.75720885f, - -0.74913639f, -0.74095113f, -0.73265427f, -0.72424708f, -0.71573083f, - -0.70710678f, -0.69837625f, -0.68954054f, -0.68060100f, -0.67155895f, - -0.66241578f, -0.65317284f, -0.64383154f, -0.63439328f, -0.62485949f, - -0.61523159f, -0.60551104f, -0.59569930f, -0.58579786f, -0.57580819f, - -0.56573181f, -0.55557023f, -0.54532499f, -0.53499762f, -0.52458968f, - -0.51410274f, -0.50353838f, -0.49289819f, -0.48218377f, -0.47139674f, - -0.46053871f, -0.44961133f, -0.43861624f, -0.42755509f, -0.41642956f, - -0.40524131f, -0.39399204f, -0.38268343f, -0.37131719f, -0.35989504f, - -0.34841868f, -0.33688985f, -0.32531029f, -0.31368174f, -0.30200595f, - -0.29028468f, -0.27851969f, -0.26671276f, -0.25486566f, -0.24298018f, - -0.23105811f, -0.21910124f, -0.20711138f, -0.19509032f, -0.18303989f, - -0.17096189f, -0.15885814f, -0.14673047f, -0.13458071f, -0.12241068f, - -0.11022221f, -0.09801714f, -0.08579731f, -0.07356456f, -0.06132074f, - -0.04906767f, -0.03680722f, -0.02454123f, -0.01227154f, -0.00000000f -}; - -/** - * \par - * Table values are in Q31 (1.31 fixed-point format) and generation is done in - * three steps. First, generate sin values in floating point: - *
- * tableSize = 512;
- * for(n = 0; n < (tableSize + 1); n++)
- * {
- *	sinTable[n]= sin(2*pi*n/tableSize);
- * } 
- * where pi value is 3.14159265358979 - * \par - * Second, convert floating-point to Q31 (Fixed point): - * (sinTable[i] * pow(2, 31)) - * \par - * Finally, round to the nearest integer value: - * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); - */ -const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1] = { - 0L, 26352928L, 52701887L, 79042909L, 105372028L, 131685278L, 157978697L, - 184248325L, 210490206L, 236700388L, 262874923L, 289009871L, 315101295L, - 341145265L, 367137861L, 393075166L, 418953276L, 444768294L, 470516330L, - 496193509L, 521795963L, 547319836L, 572761285L, 598116479L, 623381598L, - 648552838L, 673626408L, 698598533L, 723465451L, 748223418L, 772868706L, - 797397602L, 821806413L, 846091463L, 870249095L, 894275671L, 918167572L, - 941921200L, 965532978L, 988999351L, 1012316784L, 1035481766L, 1058490808L, - 1081340445L, 1104027237L, 1126547765L, 1148898640L, 1171076495L, 1193077991L, - 1214899813L, 1236538675L, 1257991320L, 1279254516L, 1300325060L, 1321199781L, - 1341875533L, 1362349204L, 1382617710L, 1402678000L, 1422527051L, 1442161874L, - 1461579514L, 1480777044L, 1499751576L, 1518500250L, 1537020244L, 1555308768L, - 1573363068L, 1591180426L, 1608758157L, 1626093616L, 1643184191L, 1660027308L, - 1676620432L, 1692961062L, 1709046739L, 1724875040L, 1740443581L, 1755750017L, - 1770792044L, 1785567396L, 1800073849L, 1814309216L, 1828271356L, 1841958164L, - 1855367581L, 1868497586L, 1881346202L, 1893911494L, 1906191570L, 1918184581L, - 1929888720L, 1941302225L, 1952423377L, 1963250501L, 1973781967L, 1984016189L, - 1993951625L, 2003586779L, 2012920201L, 2021950484L, 2030676269L, 2039096241L, - 2047209133L, 2055013723L, 2062508835L, 2069693342L, 2076566160L, 2083126254L, - 2089372638L, 2095304370L, 2100920556L, 2106220352L, 2111202959L, 2115867626L, - 2120213651L, 2124240380L, 2127947206L, 2131333572L, 2134398966L, 2137142927L, - 2139565043L, 2141664948L, 2143442326L, 2144896910L, 2146028480L, 2146836866L, - 2147321946L, 2147483647L, 2147321946L, 2146836866L, 2146028480L, 2144896910L, - 2143442326L, 2141664948L, 2139565043L, 2137142927L, 2134398966L, 2131333572L, - 2127947206L, 2124240380L, 2120213651L, 2115867626L, 2111202959L, 2106220352L, - 2100920556L, 2095304370L, 2089372638L, 2083126254L, 2076566160L, 2069693342L, - 2062508835L, 2055013723L, 2047209133L, 2039096241L, 2030676269L, 2021950484L, - 2012920201L, 2003586779L, 1993951625L, 1984016189L, 1973781967L, 1963250501L, - 1952423377L, 1941302225L, 1929888720L, 1918184581L, 1906191570L, 1893911494L, - 1881346202L, 1868497586L, 1855367581L, 1841958164L, 1828271356L, 1814309216L, - 1800073849L, 1785567396L, 1770792044L, 1755750017L, 1740443581L, 1724875040L, - 1709046739L, 1692961062L, 1676620432L, 1660027308L, 1643184191L, 1626093616L, - 1608758157L, 1591180426L, 1573363068L, 1555308768L, 1537020244L, 1518500250L, - 1499751576L, 1480777044L, 1461579514L, 1442161874L, 1422527051L, 1402678000L, - 1382617710L, 1362349204L, 1341875533L, 1321199781L, 1300325060L, 1279254516L, - 1257991320L, 1236538675L, 1214899813L, 1193077991L, 1171076495L, 1148898640L, - 1126547765L, 1104027237L, 1081340445L, 1058490808L, 1035481766L, 1012316784L, - 988999351L, 965532978L, 941921200L, 918167572L, 894275671L, 870249095L, - 846091463L, 821806413L, 797397602L, 772868706L, 748223418L, 723465451L, - 698598533L, 673626408L, 648552838L, 623381598L, 598116479L, 572761285L, - 547319836L, 521795963L, 496193509L, 470516330L, 444768294L, 418953276L, - 393075166L, 367137861L, 341145265L, 315101295L, 289009871L, 262874923L, - 236700388L, 210490206L, 184248325L, 157978697L, 131685278L, 105372028L, - 79042909L, 52701887L, 26352928L, 0L, -26352928L, -52701887L, -79042909L, - -105372028L, -131685278L, -157978697L, -184248325L, -210490206L, -236700388L, - -262874923L, -289009871L, -315101295L, -341145265L, -367137861L, -393075166L, - -418953276L, -444768294L, -470516330L, -496193509L, -521795963L, -547319836L, - -572761285L, -598116479L, -623381598L, -648552838L, -673626408L, -698598533L, - -723465451L, -748223418L, -772868706L, -797397602L, -821806413L, -846091463L, - -870249095L, -894275671L, -918167572L, -941921200L, -965532978L, -988999351L, - -1012316784L, -1035481766L, -1058490808L, -1081340445L, -1104027237L, - -1126547765L, -1148898640L, -1171076495L, -1193077991L, -1214899813L, - -1236538675L, -1257991320L, -1279254516L, -1300325060L, -1321199781L, - -1341875533L, -1362349204L, -1382617710L, -1402678000L, -1422527051L, - -1442161874L, -1461579514L, -1480777044L, -1499751576L, -1518500250L, - -1537020244L, -1555308768L, -1573363068L, -1591180426L, -1608758157L, - -1626093616L, -1643184191L, -1660027308L, -1676620432L, -1692961062L, - -1709046739L, -1724875040L, -1740443581L, -1755750017L, -1770792044L, - -1785567396L, -1800073849L, -1814309216L, -1828271356L, -1841958164L, - -1855367581L, -1868497586L, -1881346202L, -1893911494L, -1906191570L, - -1918184581L, -1929888720L, -1941302225L, -1952423377L, -1963250501L, - -1973781967L, -1984016189L, -1993951625L, -2003586779L, -2012920201L, - -2021950484L, -2030676269L, -2039096241L, -2047209133L, -2055013723L, - -2062508835L, -2069693342L, -2076566160L, -2083126254L, -2089372638L, - -2095304370L, -2100920556L, -2106220352L, -2111202959L, -2115867626L, - -2120213651L, -2124240380L, -2127947206L, -2131333572L, -2134398966L, - -2137142927L, -2139565043L, -2141664948L, -2143442326L, -2144896910L, - -2146028480L, -2146836866L, -2147321946L, (q31_t)0x80000000, -2147321946L, - -2146836866L, -2146028480L, -2144896910L, -2143442326L, -2141664948L, - -2139565043L, -2137142927L, -2134398966L, -2131333572L, -2127947206L, - -2124240380L, -2120213651L, -2115867626L, -2111202959L, -2106220352L, - -2100920556L, -2095304370L, -2089372638L, -2083126254L, -2076566160L, - -2069693342L, -2062508835L, -2055013723L, -2047209133L, -2039096241L, - -2030676269L, -2021950484L, -2012920201L, -2003586779L, -1993951625L, - -1984016189L, -1973781967L, -1963250501L, -1952423377L, -1941302225L, - -1929888720L, -1918184581L, -1906191570L, -1893911494L, -1881346202L, - -1868497586L, -1855367581L, -1841958164L, -1828271356L, -1814309216L, - -1800073849L, -1785567396L, -1770792044L, -1755750017L, -1740443581L, - -1724875040L, -1709046739L, -1692961062L, -1676620432L, -1660027308L, - -1643184191L, -1626093616L, -1608758157L, -1591180426L, -1573363068L, - -1555308768L, -1537020244L, -1518500250L, -1499751576L, -1480777044L, - -1461579514L, -1442161874L, -1422527051L, -1402678000L, -1382617710L, - -1362349204L, -1341875533L, -1321199781L, -1300325060L, -1279254516L, - -1257991320L, -1236538675L, -1214899813L, -1193077991L, -1171076495L, - -1148898640L, -1126547765L, -1104027237L, -1081340445L, -1058490808L, - -1035481766L, -1012316784L, -988999351L, -965532978L, -941921200L, - -918167572L, -894275671L, -870249095L, -846091463L, -821806413L, -797397602L, - -772868706L, -748223418L, -723465451L, -698598533L, -673626408L, -648552838L, - -623381598L, -598116479L, -572761285L, -547319836L, -521795963L, -496193509L, - -470516330L, -444768294L, -418953276L, -393075166L, -367137861L, -341145265L, - -315101295L, -289009871L, -262874923L, -236700388L, -210490206L, -184248325L, - -157978697L, -131685278L, -105372028L, -79042909L, -52701887L, -26352928L, 0 -}; - -/** - * \par - * Table values are in Q15 (1.15 fixed-point format) and generation is done in - * three steps. First, generate sin values in floating point: - *
- * tableSize = 512;
- * for(n = 0; n < (tableSize + 1); n++)
- * {
- *	sinTable[n]= sin(2*pi*n/tableSize);
- * } 
- * where pi value is 3.14159265358979 - * \par - * Second, convert floating-point to Q15 (Fixed point): - * (sinTable[i] * pow(2, 15)) - * \par - * Finally, round to the nearest integer value: - * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); - */ -const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1] = { - 0, 402, 804, 1206, 1608, 2009, 2411, 2811, 3212, 3612, 4011, 4410, 4808, - 5205, 5602, 5998, 6393, 6787, 7180, 7571, 7962, 8351, 8740, 9127, 9512, - 9896, 10279, 10660, 11039, 11417, 11793, 12167, 12540, 12910, 13279, - 13646, 14010, 14373, 14733, 15091, 15447, 15800, 16151, 16500, 16846, - 17190, 17531, 17869, 18205, 18538, 18868, 19195, 19520, 19841, 20160, - 20475, 20788, 21097, 21403, 21706, 22006, 22302, 22595, 22884, 23170, - 23453, 23732, 24008, 24279, 24548, 24812, 25073, 25330, 25583, 25833, - 26078, 26320, 26557, 26791, 27020, 27246, 27467, 27684, 27897, 28106, - 28311, 28511, 28707, 28899, 29086, 29269, 29448, 29622, 29792, 29957, - 30118, 30274, 30425, 30572, 30715, 30853, 30986, 31114, 31238, 31357, - 31471, 31581, 31686, 31786, 31881, 31972, 32058, 32138, 32214, 32286, - 32352, 32413, 32470, 32522, 32568, 32610, 32647, 32679, 32706, 32729, - 32746, 32758, 32766, 32767, 32766, 32758, 32746, 32729, 32706, 32679, - 32647, 32610, 32568, 32522, 32470, 32413, 32352, 32286, 32214, 32138, - 32058, 31972, 31881, 31786, 31686, 31581, 31471, 31357, 31238, 31114, - 30986, 30853, 30715, 30572, 30425, 30274, 30118, 29957, 29792, 29622, - 29448, 29269, 29086, 28899, 28707, 28511, 28311, 28106, 27897, 27684, - 27467, 27246, 27020, 26791, 26557, 26320, 26078, 25833, 25583, 25330, - 25073, 24812, 24548, 24279, 24008, 23732, 23453, 23170, 22884, 22595, - 22302, 22006, 21706, 21403, 21097, 20788, 20475, 20160, 19841, 19520, - 19195, 18868, 18538, 18205, 17869, 17531, 17190, 16846, 16500, 16151, - 15800, 15447, 15091, 14733, 14373, 14010, 13646, 13279, 12910, 12540, - 12167, 11793, 11417, 11039, 10660, 10279, 9896, 9512, 9127, 8740, 8351, - 7962, 7571, 7180, 6787, 6393, 5998, 5602, 5205, 4808, 4410, 4011, 3612, - 3212, 2811, 2411, 2009, 1608, 1206, 804, 402, 0, -402, -804, -1206, - -1608, -2009, -2411, -2811, -3212, -3612, -4011, -4410, -4808, -5205, - -5602, -5998, -6393, -6787, -7180, -7571, -7962, -8351, -8740, -9127, - -9512, -9896, -10279, -10660, -11039, -11417, -11793, -12167, -12540, - -12910, -13279, -13646, -14010, -14373, -14733, -15091, -15447, -15800, - -16151, -16500, -16846, -17190, -17531, -17869, -18205, -18538, -18868, - -19195, -19520, -19841, -20160, -20475, -20788, -21097, -21403, -21706, - -22006, -22302, -22595, -22884, -23170, -23453, -23732, -24008, -24279, - -24548, -24812, -25073, -25330, -25583, -25833, -26078, -26320, -26557, - -26791, -27020, -27246, -27467, -27684, -27897, -28106, -28311, -28511, - -28707, -28899, -29086, -29269, -29448, -29622, -29792, -29957, -30118, - -30274, -30425, -30572, -30715, -30853, -30986, -31114, -31238, -31357, - -31471, -31581, -31686, -31786, -31881, -31972, -32058, -32138, -32214, - -32286, -32352, -32413, -32470, -32522, -32568, -32610, -32647, -32679, - -32706, -32729, -32746, -32758, -32766, -32768, -32766, -32758, -32746, - -32729, -32706, -32679, -32647, -32610, -32568, -32522, -32470, -32413, - -32352, -32286, -32214, -32138, -32058, -31972, -31881, -31786, -31686, - -31581, -31471, -31357, -31238, -31114, -30986, -30853, -30715, -30572, - -30425, -30274, -30118, -29957, -29792, -29622, -29448, -29269, -29086, - -28899, -28707, -28511, -28311, -28106, -27897, -27684, -27467, -27246, - -27020, -26791, -26557, -26320, -26078, -25833, -25583, -25330, -25073, - -24812, -24548, -24279, -24008, -23732, -23453, -23170, -22884, -22595, - -22302, -22006, -21706, -21403, -21097, -20788, -20475, -20160, -19841, - -19520, -19195, -18868, -18538, -18205, -17869, -17531, -17190, -16846, - -16500, -16151, -15800, -15447, -15091, -14733, -14373, -14010, -13646, - -13279, -12910, -12540, -12167, -11793, -11417, -11039, -10660, -10279, - -9896, -9512, -9127, -8740, -8351, -7962, -7571, -7180, -6787, -6393, - -5998, -5602, -5205, -4808, -4410, -4011, -3612, -3212, -2811, -2411, - -2009, -1608, -1206, -804, -402, 0 -}; diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_const_structs.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_const_structs.c deleted file mode 100644 index 4f41262..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/CommonTables/arm_const_structs.c +++ /dev/null @@ -1,379 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_const_structs.c - * Description: Constant structs that are initialized for user convenience. - * For example, some can be given as arguments to the arm_cfft_f32() or arm_rfft_f32() functions. - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_const_structs.h" - -/* Floating-point structs */ -const arm_cfft_instance_f32 arm_cfft_sR_f32_len16 = { - 16, twiddleCoef_16, armBitRevIndexTable16, ARMBITREVINDEXTABLE_16_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len32 = { - 32, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE_32_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len64 = { - 64, twiddleCoef_64, armBitRevIndexTable64, ARMBITREVINDEXTABLE_64_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len128 = { - 128, twiddleCoef_128, armBitRevIndexTable128, ARMBITREVINDEXTABLE_128_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len256 = { - 256, twiddleCoef_256, armBitRevIndexTable256, ARMBITREVINDEXTABLE_256_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len512 = { - 512, twiddleCoef_512, armBitRevIndexTable512, ARMBITREVINDEXTABLE_512_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024 = { - 1024, twiddleCoef_1024, armBitRevIndexTable1024, ARMBITREVINDEXTABLE_1024_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048 = { - 2048, twiddleCoef_2048, armBitRevIndexTable2048, ARMBITREVINDEXTABLE_2048_TABLE_LENGTH -}; - -const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096 = { - 4096, twiddleCoef_4096, armBitRevIndexTable4096, ARMBITREVINDEXTABLE_4096_TABLE_LENGTH -}; - -/* Fixed-point structs */ -const arm_cfft_instance_q31 arm_cfft_sR_q31_len16 = { - 16, twiddleCoef_16_q31, armBitRevIndexTable_fixed_16, ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len32 = { - 32, twiddleCoef_32_q31, armBitRevIndexTable_fixed_32, ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len64 = { - 64, twiddleCoef_64_q31, armBitRevIndexTable_fixed_64, ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len128 = { - 128, twiddleCoef_128_q31, armBitRevIndexTable_fixed_128, ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len256 = { - 256, twiddleCoef_256_q31, armBitRevIndexTable_fixed_256, ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len512 = { - 512, twiddleCoef_512_q31, armBitRevIndexTable_fixed_512, ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024 = { - 1024, twiddleCoef_1024_q31, armBitRevIndexTable_fixed_1024, ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048 = { - 2048, twiddleCoef_2048_q31, armBitRevIndexTable_fixed_2048, ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH -}; - -const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096 = { - 4096, twiddleCoef_4096_q31, armBitRevIndexTable_fixed_4096, ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len16 = { - 16, twiddleCoef_16_q15, armBitRevIndexTable_fixed_16, ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len32 = { - 32, twiddleCoef_32_q15, armBitRevIndexTable_fixed_32, ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len64 = { - 64, twiddleCoef_64_q15, armBitRevIndexTable_fixed_64, ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len128 = { - 128, twiddleCoef_128_q15, armBitRevIndexTable_fixed_128, ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len256 = { - 256, twiddleCoef_256_q15, armBitRevIndexTable_fixed_256, ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len512 = { - 512, twiddleCoef_512_q15, armBitRevIndexTable_fixed_512, ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024 = { - 1024, twiddleCoef_1024_q15, armBitRevIndexTable_fixed_1024, ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048 = { - 2048, twiddleCoef_2048_q15, armBitRevIndexTable_fixed_2048, ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH -}; - -const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096 = { - 4096, twiddleCoef_4096_q15, armBitRevIndexTable_fixed_4096, ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH -}; - -/* Structure for real-value inputs */ -/* Floating-point structs */ -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len32 = { - { 16, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE_16_TABLE_LENGTH }, - 32U, - (float32_t *)twiddleCoef_rfft_32 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len64 = { - { 32, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE_32_TABLE_LENGTH }, - 64U, - (float32_t *)twiddleCoef_rfft_64 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len128 = { - { 64, twiddleCoef_64, armBitRevIndexTable64, ARMBITREVINDEXTABLE_64_TABLE_LENGTH }, - 128U, - (float32_t *)twiddleCoef_rfft_128 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len256 = { - { 128, twiddleCoef_128, armBitRevIndexTable128, ARMBITREVINDEXTABLE_128_TABLE_LENGTH }, - 256U, - (float32_t *)twiddleCoef_rfft_256 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len512 = { - { 256, twiddleCoef_256, armBitRevIndexTable256, ARMBITREVINDEXTABLE_256_TABLE_LENGTH }, - 512U, - (float32_t *)twiddleCoef_rfft_512 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len1024 = { - { 512, twiddleCoef_512, armBitRevIndexTable512, ARMBITREVINDEXTABLE_512_TABLE_LENGTH }, - 1024U, - (float32_t *)twiddleCoef_rfft_1024 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len2048 = { - { 1024, twiddleCoef_1024, armBitRevIndexTable1024, ARMBITREVINDEXTABLE_1024_TABLE_LENGTH }, - 2048U, - (float32_t *)twiddleCoef_rfft_2048 -}; - -const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len4096 = { - { 2048, twiddleCoef_2048, armBitRevIndexTable2048, ARMBITREVINDEXTABLE_2048_TABLE_LENGTH }, - 4096U, - (float32_t *)twiddleCoef_rfft_4096 -}; - -/* Fixed-point structs */ -/* q31_t */ -extern const q31_t realCoefAQ31[8192]; -extern const q31_t realCoefBQ31[8192]; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len32 = { - 32U, - 0, - 1, - 256U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len16 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len64 = { - 64U, - 0, - 1, - 128U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len32 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len128 = { - 128U, - 0, - 1, - 64U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len64 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len256 = { - 256U, - 0, - 1, - 32U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len128 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len512 = { - 512U, - 0, - 1, - 16U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len256 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len1024 = { - 1024U, - 0, - 1, - 8U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len512 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len2048 = { - 2048U, - 0, - 1, - 4U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len1024 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len4096 = { - 4096U, - 0, - 1, - 2U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len2048 -}; - -const arm_rfft_instance_q31 arm_rfft_sR_q31_len8192 = { - 8192U, - 0, - 1, - 1U, - (q31_t*)realCoefAQ31, - (q31_t*)realCoefBQ31, - &arm_cfft_sR_q31_len4096 -}; - -/* q15_t */ -extern const q15_t realCoefAQ15[8192]; -extern const q15_t realCoefBQ15[8192]; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len32 = { - 32U, - 0, - 1, - 256U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len16 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len64 = { - 64U, - 0, - 1, - 128U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len32 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len128 = { - 128U, - 0, - 1, - 64U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len64 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len256 = { - 256U, - 0, - 1, - 32U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len128 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len512 = { - 512U, - 0, - 1, - 16U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len256 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len1024 = { - 1024U, - 0, - 1, - 8U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len512 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len2048 = { - 2048U, - 0, - 1, - 4U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len1024 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len4096 = { - 4096U, - 0, - 1, - 2U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len2048 -}; - -const arm_rfft_instance_q15 arm_rfft_sR_q15_len8192 = { - 8192U, - 0, - 1, - 1U, - (q15_t*)realCoefAQ15, - (q15_t*)realCoefBQ15, - &arm_cfft_sR_q15_len4096 -}; diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c deleted file mode 100644 index cfb6f1f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c +++ /dev/null @@ -1,171 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cmplx_conj_f32.c - * Description: Floating-point complex conjugate - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupCmplxMath - */ - -/** - * @defgroup cmplx_conj Complex Conjugate - * - * Conjugates the elements of a complex data vector. - * - * The pSrc points to the source data and - * pDst points to the where the result should be written. - * numSamples specifies the number of complex samples - * and the data in each array is stored in an interleaved fashion - * (real, imag, real, imag, ...). - * Each array has a total of 2*numSamples values. - * The underlying algorithm is used: - * - *
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup cmplx_conj
- * @{
- */
-
-/**
- * @brief  Floating-point complex conjugate.
- * @param  *pSrc points to the input vector
- * @param  *pDst points to the output vector
- * @param  numSamples number of complex samples in each vector
- * @return none.
- */
-
-void arm_cmplx_conj_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  uint32_t blkCnt;                               /* loop counter */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t inR1, inR2, inR3, inR4;
-  float32_t inI1, inI2, inI3, inI4;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* read real input samples */
-    inR1 = pSrc[0];
-    /* store real samples to destination */
-    pDst[0] = inR1;
-    inR2 = pSrc[2];
-    pDst[2] = inR2;
-    inR3 = pSrc[4];
-    pDst[4] = inR3;
-    inR4 = pSrc[6];
-    pDst[6] = inR4;
-
-    /* read imaginary input samples */
-    inI1 = pSrc[1];
-    inI2 = pSrc[3];
-
-    /* conjugate input */
-    inI1 = -inI1;
-
-    /* read imaginary input samples */
-    inI3 = pSrc[5];
-
-    /* conjugate input */
-    inI2 = -inI2;
-
-    /* read imaginary input samples */
-    inI4 = pSrc[7];
-
-    /* conjugate input */
-    inI3 = -inI3;
-
-    /* store imaginary samples to destination */
-    pDst[1] = inI1;
-    pDst[3] = inI2;
-
-    /* conjugate input */
-    inI4 = -inI4;
-
-    /* store imaginary samples to destination */
-    pDst[5] = inI3;
-
-    /* increment source pointer by 8 to process next sampels */
-    pSrc += 8U;
-
-    /* store imaginary sample to destination */
-    pDst[7] = inI4;
-
-    /* increment destination pointer by 8 to store next samples */
-    pDst += 8U;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* realOut + j (imagOut) = realIn + j (-1) imagIn */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    *pDst++ = -*pSrc++;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of cmplx_conj group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c
deleted file mode 100644
index 7950229..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_conj_q15.c
- * Description:  Q15 complex conjugate
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_conj
- * @{
- */
-
-/**
- * @brief  Q15 complex conjugate.
- * @param  *pSrc points to the input vector
- * @param  *pDst points to the output vector
- * @param  numSamples number of complex samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function uses saturating arithmetic.
- * The Q15 value -1 (0x8000) will be saturated to the maximum allowable positive value 0x7FFF.
- */
-
-void arm_cmplx_conj_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t zero = 0;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    in1 = __QASX(zero, in1);
-    in2 = __QASX(zero, in2);
-    in3 = __QASX(zero, in3);
-    in4 = __QASX(zero, in4);
-
-#else
-
-    in1 = __QSAX(zero, in1);
-    in2 = __QSAX(zero, in2);
-    in3 = __QSAX(zero, in3);
-    in4 = __QSAX(zero, in4);
-
-#endif /* #ifndef ARM_MATH_BIG_ENDIAN */
-
-    in1 = ((uint32_t) in1 >> 16) | ((uint32_t) in1 << 16);
-    in2 = ((uint32_t) in2 >> 16) | ((uint32_t) in2 << 16);
-    in3 = ((uint32_t) in3 >> 16) | ((uint32_t) in3 << 16);
-    in4 = ((uint32_t) in4 >> 16) | ((uint32_t) in4 << 16);
-
-    *__SIMD32(pDst)++ = in1;
-    *__SIMD32(pDst)++ = in2;
-    *__SIMD32(pDst)++ = in3;
-    *__SIMD32(pDst)++ = in4;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    *pDst++ = __SSAT(-*pSrc++, 16);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  q15_t in;
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* realOut + j (imagOut) = realIn+ j (-1) imagIn */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    *pDst++ = *pSrc++;
-    in = *pSrc++;
-    *pDst++ = (in == (q15_t) 0x8000) ? 0x7fff : -in;
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of cmplx_conj group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c
deleted file mode 100644
index 709ce0e..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_conj_q31.c
- * Description:  Q31 complex conjugate
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_conj
- * @{
- */
-
-/**
- * @brief  Q31 complex conjugate.
- * @param  *pSrc points to the input vector
- * @param  *pDst points to the output vector
- * @param  numSamples number of complex samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function uses saturating arithmetic.
- * The Q31 value -1 (0x80000000) will be saturated to the maximum allowable positive value 0x7FFFFFFF.
- */
-
-void arm_cmplx_conj_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in;                                      /* Input value */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  q31_t inR1, inR2, inR3, inR4;                  /* Temporary real variables */
-  q31_t inI1, inI2, inI3, inI4;                  /* Temporary imaginary variables */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* Saturated to 0x7fffffff if the input is -1(0x80000000) */
-    /* read real input sample */
-    inR1 = pSrc[0];
-    /* store real input sample */
-    pDst[0] = inR1;
-
-    /* read imaginary input sample */
-    inI1 = pSrc[1];
-
-    /* read real input sample */
-    inR2 = pSrc[2];
-    /* store real input sample */
-    pDst[2] = inR2;
-
-    /* read imaginary input sample */
-    inI2 = pSrc[3];
-
-    /* negate imaginary input sample */
-    inI1 = __QSUB(0, inI1);
-
-    /* read real input sample */
-    inR3 = pSrc[4];
-    /* store real input sample */
-    pDst[4] = inR3;
-
-    /* read imaginary input sample */
-    inI3 = pSrc[5];
-
-    /* negate imaginary input sample */
-    inI2 = __QSUB(0, inI2);
-
-    /* read real input sample */
-    inR4 = pSrc[6];
-    /* store real input sample */
-    pDst[6] = inR4;
-
-    /* negate imaginary input sample */
-    inI3 = __QSUB(0, inI3);
-
-    /* store imaginary input sample */
-    inI4 = pSrc[7];
-
-    /* store imaginary input samples */
-    pDst[1] = inI1;
-
-    /* negate imaginary input sample */
-    inI4 = __QSUB(0, inI4);
-
-    /* store imaginary input samples */
-    pDst[3] = inI2;
-
-    /* increment source pointer by 8 to proecess next samples */
-    pSrc += 8U;
-
-    /* store imaginary input samples */
-    pDst[5] = inI3;
-    pDst[7] = inI4;
-
-    /* increment destination pointer by 8 to process next samples */
-    pDst += 8U;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* C[0]+jC[1] = A[0]+ j (-1) A[1] */
-    /* Calculate Complex Conjugate and then store the results in the destination buffer. */
-    /* Saturated to 0x7fffffff if the input is -1(0x80000000) */
-    *pDst++ = *pSrc++;
-    in = *pSrc++;
-    *pDst++ = (in == INT32_MIN) ? INT32_MAX : -in;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of cmplx_conj group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c
deleted file mode 100644
index bfc352b..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_dot_prod_f32.c
- * Description:  Floating-point complex dot product
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @defgroup cmplx_dot_prod Complex Dot Product
- *
- * Computes the dot product of two complex vectors.
- * The vectors are multiplied element-by-element and then summed.
- *
- * The pSrcA points to the first complex input vector and
- * pSrcB points to the second complex input vector.
- * numSamples specifies the number of complex samples
- * and the data in each array is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * Each array has a total of 2*numSamples values.
- *
- * The underlying algorithm is used:
- * 
- * realResult=0;
- * imagResult=0;
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup cmplx_dot_prod
- * @{
- */
-
-/**
- * @brief  Floating-point complex dot product
- * @param  *pSrcA points to the first input vector
- * @param  *pSrcB points to the second input vector
- * @param  numSamples number of complex samples in each vector
- * @param  *realResult real part of the result returned here
- * @param  *imagResult imaginary part of the result returned here
- * @return none.
- */
-
-void arm_cmplx_dot_prod_f32(
-  float32_t * pSrcA,
-  float32_t * pSrcB,
-  uint32_t numSamples,
-  float32_t * realResult,
-  float32_t * imagResult)
-{
-  float32_t real_sum = 0.0f, imag_sum = 0.0f;    /* Temporary result storage */
-  float32_t a0,b0,c0,d0;
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples & 0x3U;
-
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-      /* Decrement the loop counter */
-      numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  /* Store the real and imaginary results in the destination buffers */
-  *realResult = real_sum;
-  *imagResult = imag_sum;
-}
-
-/**
- * @} end of cmplx_dot_prod group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c
deleted file mode 100644
index 9e23a01..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_dot_prod_q15.c
- * Description:  Processing function for the Q15 Complex Dot product
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_dot_prod
- * @{
- */
-
-/**
- * @brief  Q15 complex dot product
- * @param  *pSrcA points to the first input vector
- * @param  *pSrcB points to the second input vector
- * @param  numSamples number of complex samples in each vector
- * @param  *realResult real part of the result returned here
- * @param  *imagResult imaginary part of the result returned here
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 64-bit accumulator.
- * The intermediate 1.15 by 1.15 multiplications are performed with full precision and yield a 2.30 result.
- * These are accumulated in a 64-bit accumulator with 34.30 precision.
- * As a final step, the accumulators are converted to 8.24 format.
- * The return results realResult and imagResult are in 8.24 format.
- */
-
-void arm_cmplx_dot_prod_q15(
-  q15_t * pSrcA,
-  q15_t * pSrcB,
-  uint32_t numSamples,
-  q31_t * realResult,
-  q31_t * imagResult)
-{
-  q63_t real_sum = 0, imag_sum = 0;              /* Temporary result storage */
-  q15_t a0,b0,c0,d0;
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += (q31_t)a0 * c0;
-      imag_sum += (q31_t)a0 * d0;
-      real_sum -= (q31_t)b0 * d0;
-      imag_sum += (q31_t)b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += (q31_t)a0 * c0;
-      imag_sum += (q31_t)a0 * d0;
-      real_sum -= (q31_t)b0 * d0;
-      imag_sum += (q31_t)b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += (q31_t)a0 * c0;
-      imag_sum += (q31_t)a0 * d0;
-      real_sum -= (q31_t)b0 * d0;
-      imag_sum += (q31_t)b0 * c0;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += (q31_t)a0 * c0;
-      imag_sum += (q31_t)a0 * d0;
-      real_sum -= (q31_t)b0 * d0;
-      imag_sum += (q31_t)b0 * c0;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += (q31_t)a0 * c0;
-      imag_sum += (q31_t)a0 * d0;
-      real_sum -= (q31_t)b0 * d0;
-      imag_sum += (q31_t)b0 * c0;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += a0 * c0;
-      imag_sum += a0 * d0;
-      real_sum -= b0 * d0;
-      imag_sum += b0 * c0;
-
-
-      /* Decrement the loop counter */
-      numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  /* Store the real and imaginary results in 8.24 format  */
-  /* Convert real data in 34.30 to 8.24 by 6 right shifts */
-  *realResult = (q31_t) (real_sum >> 6);
-  /* Convert imaginary data in 34.30 to 8.24 by 6 right shifts */
-  *imagResult = (q31_t) (imag_sum >> 6);
-}
-
-/**
- * @} end of cmplx_dot_prod group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c
deleted file mode 100644
index 6eb5b6e..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_dot_prod_q31.c
- * Description:  Q31 complex dot product
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_dot_prod
- * @{
- */
-
-/**
- * @brief  Q31 complex dot product
- * @param  *pSrcA points to the first input vector
- * @param  *pSrcB points to the second input vector
- * @param  numSamples number of complex samples in each vector
- * @param  *realResult real part of the result returned here
- * @param  *imagResult imaginary part of the result returned here
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 64-bit accumulator.
- * The intermediate 1.31 by 1.31 multiplications are performed with 64-bit precision and then shifted to 16.48 format.
- * The internal real and imaginary accumulators are in 16.48 format and provide 15 guard bits.
- * Additions are nonsaturating and no overflow will occur as long as numSamples is less than 32768.
- * The return results realResult and imagResult are in 16.48 format.
- * Input down scaling is not required.
- */
-
-void arm_cmplx_dot_prod_q31(
-  q31_t * pSrcA,
-  q31_t * pSrcB,
-  uint32_t numSamples,
-  q63_t * realResult,
-  q63_t * imagResult)
-{
-  q63_t real_sum = 0, imag_sum = 0;              /* Temporary result storage */
-  q31_t a0,b0,c0,d0;
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-  /* If the numSamples  is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      /* Decrement the loop counter */
-      blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-      a0 = *pSrcA++;
-      b0 = *pSrcA++;
-      c0 = *pSrcB++;
-      d0 = *pSrcB++;
-
-      real_sum += ((q63_t)a0 * c0) >> 14;
-      imag_sum += ((q63_t)a0 * d0) >> 14;
-      real_sum -= ((q63_t)b0 * d0) >> 14;
-      imag_sum += ((q63_t)b0 * c0) >> 14;
-
-      /* Decrement the loop counter */
-      numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  /* Store the real and imaginary results in 16.48 format  */
-  *realResult = real_sum;
-  *imagResult = imag_sum;
-}
-
-/**
- * @} end of cmplx_dot_prod group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c
deleted file mode 100644
index 95aaf1e..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_f32.c
- * Description:  Floating-point complex magnitude
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @defgroup cmplx_mag Complex Magnitude
- *
- * Computes the magnitude of the elements of a complex data vector.
- *
- * The pSrc points to the source data and
- * pDst points to the where the result should be written.
- * numSamples specifies the number of complex samples
- * in the input array and the data is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * The input array has a total of 2*numSamples values;
- * the output array has a total of numSamples values.
- * The underlying algorithm is used:
- *
- * 
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup cmplx_mag
- * @{
- */
-/**
- * @brief Floating-point complex magnitude.
- * @param[in]       *pSrc points to complex input buffer
- * @param[out]      *pDst points to real output buffer
- * @param[in]       numSamples number of complex samples in the input vector
- * @return none.
- *
- */
-
-
-void arm_cmplx_mag_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t realIn, imagIn;                      /* Temporary variables to hold input values */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* out = sqrt((real * real) + (imag * imag)) */
-    realIn = *pSrc++;
-    imagIn = *pSrc++;
-    /* store the result in the destination buffer. */
-    arm_sqrt_f32((realIn * realIn) + (imagIn * imagIn), pDst++);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of cmplx_mag group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c
deleted file mode 100644
index 03d9b2a..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_q15.c
- * Description:  Q15 complex magnitude
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_mag
- * @{
- */
-
-
-/**
- * @brief  Q15 complex magnitude
- * @param  *pSrc points to the complex input vector
- * @param  *pDst points to the real output vector
- * @param  numSamples number of complex samples in the input vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 2.14 format.
- */
-
-void arm_cmplx_mag_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t acc2, acc3;
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-    acc0 = __SMUAD(in1, in1);
-    acc1 = __SMUAD(in2, in2);
-    acc2 = __SMUAD(in3, in3);
-    acc3 = __SMUAD(in4, in4);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) ((acc0) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc1) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc2) >> 17), pDst++);
-    arm_sqrt_q15((q15_t) ((acc3) >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    acc0 = __SMUAD(in1, in1);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) (acc0 >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  q15_t real, imag;                              /* Temporary variables to hold input values */
-
-  while (numSamples > 0U)
-  {
-    /* out = sqrt(real * real + imag * imag) */
-    real = *pSrc++;
-    imag = *pSrc++;
-
-    acc0 = (real * real);
-    acc1 = (imag * imag);
-
-    /* store the result in 2.14 format in the destination buffer. */
-    arm_sqrt_q15((q15_t) (((q63_t) acc0 + acc1) >> 17), pDst++);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of cmplx_mag group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c
deleted file mode 100644
index 830ecb9..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_q31.c
- * Description:  Q31 complex magnitude
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_mag
- * @{
- */
-
-/**
- * @brief  Q31 complex magnitude
- * @param  *pSrc points to the complex input vector
- * @param  *pDst points to the real output vector
- * @param  numSamples number of complex samples in the input vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 2.30 format.
- * Input down scaling is not required.
- */
-
-void arm_cmplx_mag_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t real, imag;                              /* Temporary variables to hold input values */
-  q31_t acc0, acc1;                              /* Accumulators */
-  uint32_t blkCnt;                               /* loop counter */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  q31_t real1, real2, imag1, imag2;              /* Temporary variables to hold input values */
-  q31_t out1, out2, out3, out4;                  /* Accumulators */
-  q63_t mul1, mul2, mul3, mul4;                  /* Temporary variables */
-
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* read complex input from source buffer */
-    real1 = pSrc[0];
-    imag1 = pSrc[1];
-    real2 = pSrc[2];
-    imag2 = pSrc[3];
-
-    /* calculate power of input values */
-    mul1 = (q63_t) real1 *real1;
-    mul2 = (q63_t) imag1 *imag1;
-    mul3 = (q63_t) real2 *real2;
-    mul4 = (q63_t) imag2 *imag2;
-
-    /* get the result to 3.29 format */
-    out1 = (q31_t) (mul1 >> 33);
-    out2 = (q31_t) (mul2 >> 33);
-    out3 = (q31_t) (mul3 >> 33);
-    out4 = (q31_t) (mul4 >> 33);
-
-    /* add real and imaginary accumulators */
-    out1 = out1 + out2;
-    out3 = out3 + out4;
-
-    /* read complex input from source buffer */
-    real1 = pSrc[4];
-    imag1 = pSrc[5];
-    real2 = pSrc[6];
-    imag2 = pSrc[7];
-
-    /* calculate square root */
-    arm_sqrt_q31(out1, &pDst[0]);
-
-    /* calculate power of input values */
-    mul1 = (q63_t) real1 *real1;
-
-    /* calculate square root */
-    arm_sqrt_q31(out3, &pDst[1]);
-
-    /* calculate power of input values */
-    mul2 = (q63_t) imag1 *imag1;
-    mul3 = (q63_t) real2 *real2;
-    mul4 = (q63_t) imag2 *imag2;
-
-    /* get the result to 3.29 format */
-    out1 = (q31_t) (mul1 >> 33);
-    out2 = (q31_t) (mul2 >> 33);
-    out3 = (q31_t) (mul3 >> 33);
-    out4 = (q31_t) (mul4 >> 33);
-
-    /* add real and imaginary accumulators */
-    out1 = out1 + out2;
-    out3 = out3 + out4;
-
-    /* calculate square root */
-    arm_sqrt_q31(out1, &pDst[2]);
-
-    /* increment destination by 8 to process next samples */
-    pSrc += 8U;
-
-    /* calculate square root */
-    arm_sqrt_q31(out3, &pDst[3]);
-
-    /* increment destination by 4 to process next samples */
-    pDst += 4U;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = sqrt(A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 2.30 format in the destination buffer. */
-    arm_sqrt_q31(acc0 + acc1, pDst++);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of cmplx_mag group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c
deleted file mode 100644
index 59127a2..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_squared_f32.c
- * Description:  Floating-point complex magnitude squared
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @defgroup cmplx_mag_squared Complex Magnitude Squared
- *
- * Computes the magnitude squared of the elements of a complex data vector.
- *
- * The pSrc points to the source data and
- * pDst points to the where the result should be written.
- * numSamples specifies the number of complex samples
- * in the input array and the data is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * The input array has a total of 2*numSamples values;
- * the output array has a total of numSamples values.
- *
- * The underlying algorithm is used:
- *
- * 
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup cmplx_mag_squared
- * @{
- */
-
-
-/**
- * @brief  Floating-point complex magnitude squared
- * @param[in]  *pSrc points to the complex input vector
- * @param[out]  *pDst points to the real output vector
- * @param[in]  numSamples number of complex samples in the input vector
- * @return none.
- */
-
-void arm_cmplx_mag_squared_f32(
-  float32_t * pSrc,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t real, imag;                          /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counter */
-
-#if defined (ARM_MATH_DSP)
-  float32_t real1, real2, real3, real4;          /* Temporary variables to hold real values */
-  float32_t imag1, imag2, imag3, imag4;          /* Temporary variables to hold imaginary values */
-  float32_t mul1, mul2, mul3, mul4;              /* Temporary variables */
-  float32_t mul5, mul6, mul7, mul8;              /* Temporary variables */
-  float32_t out1, out2, out3, out4;              /* Temporary variables to hold output values */
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    /* read real input sample from source buffer */
-    real1 = pSrc[0];
-    /* read imaginary input sample from source buffer */
-    imag1 = pSrc[1];
-
-    /* calculate power of real value */
-    mul1 = real1 * real1;
-
-    /* read real input sample from source buffer */
-    real2 = pSrc[2];
-
-    /* calculate power of imaginary value */
-    mul2 = imag1 * imag1;
-
-    /* read imaginary input sample from source buffer */
-    imag2 = pSrc[3];
-
-    /* calculate power of real value */
-    mul3 = real2 * real2;
-
-    /* read real input sample from source buffer */
-    real3 = pSrc[4];
-
-    /* calculate power of imaginary value */
-    mul4 = imag2 * imag2;
-
-    /* read imaginary input sample from source buffer */
-    imag3 = pSrc[5];
-
-    /* calculate power of real value */
-    mul5 = real3 * real3;
-    /* calculate power of imaginary value */
-    mul6 = imag3 * imag3;
-
-    /* read real input sample from source buffer */
-    real4 = pSrc[6];
-
-    /* accumulate real and imaginary powers */
-    out1 = mul1 + mul2;
-
-    /* read imaginary input sample from source buffer */
-    imag4 = pSrc[7];
-
-    /* accumulate real and imaginary powers */
-    out2 = mul3 + mul4;
-
-    /* calculate power of real value */
-    mul7 = real4 * real4;
-    /* calculate power of imaginary value */
-    mul8 = imag4 * imag4;
-
-    /* store output to destination */
-    pDst[0] = out1;
-
-    /* accumulate real and imaginary powers */
-    out3 = mul5 + mul6;
-
-    /* store output to destination */
-    pDst[1] = out2;
-
-    /* accumulate real and imaginary powers */
-    out4 = mul7 + mul8;
-
-    /* store output to destination */
-    pDst[2] = out3;
-
-    /* increment destination pointer by 8 to process next samples */
-    pSrc += 8U;
-
-    /* store output to destination */
-    pDst[3] = out4;
-
-    /* increment destination pointer by 4 to process next samples */
-    pDst += 4U;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  blkCnt = numSamples;
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-
-    /* out = (real * real) + (imag * imag) */
-    /* store the result in the destination buffer. */
-    *pDst++ = (real * real) + (imag * imag);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of cmplx_mag_squared group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c
deleted file mode 100644
index 3f740c3..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_squared_q15.c
- * Description:  Q15 complex magnitude squared
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_mag_squared
- * @{
- */
-
-/**
- * @brief  Q15 complex magnitude squared
- * @param  *pSrc points to the complex input vector
- * @param  *pDst points to the real output vector
- * @param  numSamples number of complex samples in the input vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 3.13 format.
- */
-
-void arm_cmplx_mag_squared_q15(
-  q15_t * pSrc,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-  q31_t in1, in2, in3, in4;
-  q31_t acc2, acc3;
-
-  /*loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    in2 = *__SIMD32(pSrc)++;
-    in3 = *__SIMD32(pSrc)++;
-    in4 = *__SIMD32(pSrc)++;
-
-    acc0 = __SMUAD(in1, in1);
-    acc1 = __SMUAD(in2, in2);
-    acc2 = __SMUAD(in3, in3);
-    acc3 = __SMUAD(in4, in4);
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (acc0 >> 17);
-    *pDst++ = (q15_t) (acc1 >> 17);
-    *pDst++ = (q15_t) (acc2 >> 17);
-    *pDst++ = (q15_t) (acc3 >> 17);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    in1 = *__SIMD32(pSrc)++;
-    acc0 = __SMUAD(in1, in1);
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (acc0 >> 17);
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  q15_t real, imag;                              /* Temporary variables to store real and imaginary values */
-
-  while (numSamples > 0U)
-  {
-    /* out = ((real * real) + (imag * imag)) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (real * real);
-    acc1 = (imag * imag);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ = (q15_t) (((q63_t) acc0 + acc1) >> 17);
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of cmplx_mag_squared group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c
deleted file mode 100644
index c2b2c50..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mag_squared_q31.c
- * Description:  Q31 complex magnitude squared
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup cmplx_mag_squared
- * @{
- */
-
-
-/**
- * @brief  Q31 complex magnitude squared
- * @param  *pSrc points to the complex input vector
- * @param  *pDst points to the real output vector
- * @param  numSamples number of complex samples in the input vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 3.29 format.
- * Input down scaling is not required.
- */
-
-void arm_cmplx_mag_squared_q31(
-  q31_t * pSrc,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t real, imag;                              /* Temporary variables to store real and imaginary values */
-  q31_t acc0, acc1;                              /* Accumulators */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counter */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[0] = (A[0] * A[0] + A[1] * A[1]) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* out = ((real * real) + (imag * imag)) */
-    real = *pSrc++;
-    imag = *pSrc++;
-    acc0 = (q31_t) (((q63_t) real * real) >> 33);
-    acc1 = (q31_t) (((q63_t) imag * imag) >> 33);
-    /* store the result in 3.29 format in the destination buffer. */
-    *pDst++ = acc0 + acc1;
-
-    /* Decrement the loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of cmplx_mag_squared group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c
deleted file mode 100644
index 3717591..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_cmplx_f32.c
- * Description:  Floating-point complex-by-complex multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @defgroup CmplxByCmplxMult Complex-by-Complex Multiplication
- *
- * Multiplies a complex vector by another complex vector and generates a complex result.
- * The data in the complex arrays is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * The parameter numSamples represents the number of complex
- * samples processed.  The complex arrays have a total of 2*numSamples
- * real values.
- *
- * The underlying algorithm is used:
- *
- * 
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup CmplxByCmplxMult
- * @{
- */
-
-
-/**
- * @brief  Floating-point complex-by-complex multiplication
- * @param[in]  *pSrcA points to the first input vector
- * @param[in]  *pSrcB points to the second input vector
- * @param[out]  *pDst  points to the output vector
- * @param[in]  numSamples number of complex samples in each vector
- * @return none.
- */
-
-void arm_cmplx_mult_cmplx_f32(
-  float32_t * pSrcA,
-  float32_t * pSrcB,
-  float32_t * pDst,
-  uint32_t numSamples)
-{
-  float32_t a1, b1, c1, d1;                      /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counters */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t a2, b2, c2, d2;                      /* Temporary variables to store real and imaginary values */
-  float32_t acc1, acc2, acc3, acc4;
-
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a1 = *pSrcA;                /* A[2 * i] */
-    c1 = *pSrcB;                /* B[2 * i] */
-
-    b1 = *(pSrcA + 1);          /* A[2 * i + 1] */
-    acc1 = a1 * c1;             /* acc1 = A[2 * i] * B[2 * i] */
-
-    a2 = *(pSrcA + 2);          /* A[2 * i + 2] */
-    acc2 = (b1 * c1);           /* acc2 = A[2 * i + 1] * B[2 * i] */
-
-    d1 = *(pSrcB + 1);          /* B[2 * i + 1] */
-    c2 = *(pSrcB + 2);          /* B[2 * i + 2] */
-    acc1 -= b1 * d1;            /* acc1 =      A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1] */
-
-    d2 = *(pSrcB + 3);          /* B[2 * i + 3] */
-    acc3 = a2 * c2;             /* acc3 =       A[2 * i + 2] * B[2 * i + 2] */
-
-    b2 = *(pSrcA + 3);          /* A[2 * i + 3] */
-    acc2 += (a1 * d1);          /* acc2 =      A[2 * i + 1] * B[2 * i] + A[2 * i] * B[2 * i + 1] */
-
-    a1 = *(pSrcA + 4);          /* A[2 * i + 4] */
-    acc4 = (a2 * d2);           /* acc4 =   A[2 * i + 2] * B[2 * i + 3] */
-
-    c1 = *(pSrcB + 4);          /* B[2 * i + 4] */
-    acc3 -= (b2 * d2);          /* acc3 =       A[2 * i + 2] * B[2 * i + 2] - A[2 * i + 3] * B[2 * i + 3] */
-    *pDst = acc1;               /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1] */
-
-    b1 = *(pSrcA + 5);          /* A[2 * i + 5] */
-    acc4 += b2 * c2;            /* acc4 =   A[2 * i + 2] * B[2 * i + 3] + A[2 * i + 3] * B[2 * i + 2] */
-
-    *(pDst + 1) = acc2;         /* C[2 * i + 1] = A[2 * i + 1] * B[2 * i] + A[2 * i] * B[2 * i + 1]  */
-    acc1 = (a1 * c1);
-
-    d1 = *(pSrcB + 5);
-    acc2 = (b1 * c1);
-
-    *(pDst + 2) = acc3;
-    *(pDst + 3) = acc4;
-
-    a2 = *(pSrcA + 6);
-    acc1 -= (b1 * d1);
-
-    c2 = *(pSrcB + 6);
-    acc2 += (a1 * d1);
-
-    b2 = *(pSrcA + 7);
-    acc3 = (a2 * c2);
-
-    d2 = *(pSrcB + 7);
-    acc4 = (b2 * c2);
-
-    *(pDst + 4) = acc1;
-    pSrcA += 8U;
-
-    acc3 -= (b2 * d2);
-    acc4 += (a2 * d2);
-
-    *(pDst + 5) = acc2;
-    pSrcB += 8U;
-
-    *(pDst + 6) = acc3;
-    *(pDst + 7) = acc4;
-
-    pDst += 8U;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a1 = *pSrcA++;
-    b1 = *pSrcA++;
-    c1 = *pSrcB++;
-    d1 = *pSrcB++;
-
-    /* store the result in the destination buffer. */
-    *pDst++ = (a1 * c1) - (b1 * d1);
-    *pDst++ = (a1 * d1) + (b1 * c1);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of CmplxByCmplxMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c
deleted file mode 100644
index 2869837..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_cmplx_q15.c
- * Description:  Q15 complex-by-complex multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup CmplxByCmplxMult
- * @{
- */
-
-/**
- * @brief  Q15 complex-by-complex multiplication
- * @param[in]  *pSrcA points to the first input vector
- * @param[in]  *pSrcB points to the second input vector
- * @param[out]  *pDst  points to the output vector
- * @param[in]  numSamples number of complex samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.15 by 1.15 multiplications and finally output is converted into 3.13 format.
- */
-
-void arm_cmplx_mult_cmplx_q15(
-  q15_t * pSrcA,
-  q15_t * pSrcB,
-  q15_t * pDst,
-  uint32_t numSamples)
-{
-  q15_t a, b, c, d;                              /* Temporary variables to store real and imaginary values */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * c) >> 17) - (((q31_t) b * d) >> 17);
-    /* store the result in 3.13 format in the destination buffer. */
-    *pDst++ =
-      (q15_t) (q31_t) (((q31_t) a * d) >> 17) + (((q31_t) b * c) >> 17);
-
-    /* Decrement the blockSize loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of CmplxByCmplxMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c
deleted file mode 100644
index b01c4f6..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_cmplx_q31.c
- * Description:  Q31 complex-by-complex multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup CmplxByCmplxMult
- * @{
- */
-
-
-/**
- * @brief  Q31 complex-by-complex multiplication
- * @param[in]  *pSrcA points to the first input vector
- * @param[in]  *pSrcB points to the second input vector
- * @param[out]  *pDst  points to the output vector
- * @param[in]  numSamples number of complex samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function implements 1.31 by 1.31 multiplications and finally output is converted into 3.29 format.
- * Input down scaling is not required.
- */
-
-void arm_cmplx_mult_cmplx_q31(
-  q31_t * pSrcA,
-  q31_t * pSrcB,
-  q31_t * pDst,
-  uint32_t numSamples)
-{
-  q31_t a, b, c, d;                              /* Temporary variables to store real and imaginary values */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t mul1, mul2, mul3, mul4;
-  q31_t out1, out2;
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 1U;
-
-  /* First part of the processing with loop unrolling.  Compute 2 outputs at a time.
-   ** a second loop below computes the remaining 1 sample. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-  /* If the blockSize is not a multiple of 2, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x2U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[2 * i] - A[2 * i + 1] * B[2 * i + 1].  */
-    /* C[2 * i + 1] = A[2 * i] * B[2 * i + 1] + A[2 * i + 1] * B[2 * i].  */
-    a = *pSrcA++;
-    b = *pSrcA++;
-    c = *pSrcB++;
-    d = *pSrcB++;
-
-    mul1 = (q31_t) (((q63_t) a * c) >> 32);
-    mul2 = (q31_t) (((q63_t) b * d) >> 32);
-    mul3 = (q31_t) (((q63_t) a * d) >> 32);
-    mul4 = (q31_t) (((q63_t) b * c) >> 32);
-
-    mul1 = (mul1 >> 1);
-    mul2 = (mul2 >> 1);
-    mul3 = (mul3 >> 1);
-    mul4 = (mul4 >> 1);
-
-    out1 = mul1 - mul2;
-    out2 = mul3 + mul4;
-
-    /* store the real result in 3.29 format in the destination buffer. */
-    *pDst++ = out1;
-    /* store the imag result in 3.29 format in the destination buffer. */
-    *pDst++ = out2;
-
-    /* Decrement the blockSize loop counter */
-    blkCnt--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of CmplxByCmplxMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c
deleted file mode 100644
index 8c7ca31..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_real_f32.c
- * Description:  Floating-point complex by real multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @defgroup CmplxByRealMult Complex-by-Real Multiplication
- *
- * Multiplies a complex vector by a real vector and generates a complex result.
- * The data in the complex arrays is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * The parameter numSamples represents the number of complex
- * samples processed.  The complex arrays have a total of 2*numSamples
- * real values while the real array has a total of numSamples
- * real values.
- *
- * The underlying algorithm is used:
- *
- * 
- * for(n=0; n
- *
- * There are separate functions for floating-point, Q15, and Q31 data types.
- */
-
-/**
- * @addtogroup CmplxByRealMult
- * @{
- */
-
-
-/**
- * @brief  Floating-point complex-by-real multiplication
- * @param[in]  *pSrcCmplx points to the complex input vector
- * @param[in]  *pSrcReal points to the real input vector
- * @param[out]  *pCmplxDst points to the complex output vector
- * @param[in]  numSamples number of samples in each vector
- * @return none.
- */
-
-void arm_cmplx_mult_real_f32(
-  float32_t * pSrcCmplx,
-  float32_t * pSrcReal,
-  float32_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  float32_t in;                                  /* Temporary variable to store input value */
-  uint32_t blkCnt;                               /* loop counters */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  float32_t inA1, inA2, inA3, inA4;              /* Temporary variables to hold input data */
-  float32_t inA5, inA6, inA7, inA8;              /* Temporary variables to hold input data */
-  float32_t inB1, inB2, inB3, inB4;              /* Temporary variables to hold input data */
-  float32_t out1, out2, out3, out4;              /* Temporary variables to hold output data */
-  float32_t out5, out6, out7, out8;              /* Temporary variables to hold output data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read input from complex input buffer */
-    inA1 = pSrcCmplx[0];
-    inA2 = pSrcCmplx[1];
-    /* read input from real input buffer */
-    inB1 = pSrcReal[0];
-
-    /* read input from complex input buffer */
-    inA3 = pSrcCmplx[2];
-
-    /* multiply complex buffer real input with real buffer input */
-    out1 = inA1 * inB1;
-
-    /* read input from complex input buffer */
-    inA4 = pSrcCmplx[3];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out2 = inA2 * inB1;
-
-    /* read input from real input buffer */
-    inB2 = pSrcReal[1];
-    /* read input from complex input buffer */
-    inA5 = pSrcCmplx[4];
-
-    /* multiply complex buffer real input with real buffer input */
-    out3 = inA3 * inB2;
-
-    /* read input from complex input buffer */
-    inA6 = pSrcCmplx[5];
-    /* read input from real input buffer */
-    inB3 = pSrcReal[2];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out4 = inA4 * inB2;
-
-    /* read input from complex input buffer */
-    inA7 = pSrcCmplx[6];
-
-    /* multiply complex buffer real input with real buffer input */
-    out5 = inA5 * inB3;
-
-    /* read input from complex input buffer */
-    inA8 = pSrcCmplx[7];
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out6 = inA6 * inB3;
-
-    /* read input from real input buffer */
-    inB4 = pSrcReal[3];
-
-    /* store result to destination bufer */
-    pCmplxDst[0] = out1;
-
-    /* multiply complex buffer real input with real buffer input */
-    out7 = inA7 * inB4;
-
-    /* store result to destination bufer */
-    pCmplxDst[1] = out2;
-
-    /* multiply complex buffer imaginary input with real buffer input */
-    out8 = inA8 * inB4;
-
-    /* store result to destination bufer */
-    pCmplxDst[2] = out3;
-    pCmplxDst[3] = out4;
-    pCmplxDst[4] = out5;
-
-    /* incremnet complex input buffer by 8 to process next samples */
-    pSrcCmplx += 8U;
-
-    /* store result to destination bufer */
-    pCmplxDst[5] = out6;
-
-    /* increment real input buffer by 4 to process next samples */
-    pSrcReal += 4U;
-
-    /* store result to destination bufer */
-    pCmplxDst[6] = out7;
-    pCmplxDst[7] = out8;
-
-    /* increment destination buffer by 8 to process next sampels */
-    pCmplxDst += 8U;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-  blkCnt = numSamples;
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ = (*pSrcCmplx++) * (in);
-    *pCmplxDst++ = (*pSrcCmplx++) * (in);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-}
-
-/**
- * @} end of CmplxByRealMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c
deleted file mode 100644
index 340d852..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_real_q15.c
- * Description:  Q15 complex by real multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup CmplxByRealMult
- * @{
- */
-
-
-/**
- * @brief  Q15 complex-by-real multiplication
- * @param[in]  *pSrcCmplx points to the complex input vector
- * @param[in]  *pSrcReal points to the real input vector
- * @param[out]  *pCmplxDst points to the complex output vector
- * @param[in]  numSamples number of samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function uses saturating arithmetic.
- * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated.
- */
-
-void arm_cmplx_mult_real_q15(
-  q15_t * pSrcCmplx,
-  q15_t * pSrcReal,
-  q15_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  q15_t in;                                      /* Temporary variable to store input value */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t inA1, inA2;                              /* Temporary variables to hold input data */
-  q31_t inB1;                                    /* Temporary variables to hold input data */
-  q15_t out1, out2, out3, out4;                  /* Temporary variables to hold output data */
-  q31_t mul1, mul2, mul3, mul4;                  /* Temporary variables to hold intermediate data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read complex number both real and imaginary from complex input buffer */
-    inA1 = *__SIMD32(pSrcCmplx)++;
-    /* read two real values at a time from real input buffer */
-    inB1 = *__SIMD32(pSrcReal)++;
-    /* read complex number both real and imaginary from complex input buffer */
-    inA2 = *__SIMD32(pSrcCmplx)++;
-
-    /* multiply complex number with real numbers */
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    mul1 = (q31_t) ((q15_t) (inA1) * (q15_t) (inB1));
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1));
-    mul3 = (q31_t) ((q15_t) (inA2) * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB1 >> 16));
-
-#else
-
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16));
-    mul1 = (q31_t) ((q15_t) inA1 * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) inB1);
-    mul3 = (q31_t) ((q15_t) inA2 * (q15_t) inB1);
-
-#endif /* #ifndef ARM_MATH_BIG_ENDIAN */
-
-    /* saturate the result */
-    out1 = (q15_t) __SSAT(mul1 >> 15U, 16);
-    out2 = (q15_t) __SSAT(mul2 >> 15U, 16);
-    out3 = (q15_t) __SSAT(mul3 >> 15U, 16);
-    out4 = (q15_t) __SSAT(mul4 >> 15U, 16);
-
-    /* pack real and imaginary outputs and store them to destination */
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out1, out2, 16);
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out3, out4, 16);
-
-    inA1 = *__SIMD32(pSrcCmplx)++;
-    inB1 = *__SIMD32(pSrcReal)++;
-    inA2 = *__SIMD32(pSrcCmplx)++;
-
-#ifndef ARM_MATH_BIG_ENDIAN
-
-    mul1 = (q31_t) ((q15_t) (inA1) * (q15_t) (inB1));
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1));
-    mul3 = (q31_t) ((q15_t) (inA2) * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) (inB1 >> 16));
-
-#else
-
-    mul2 = (q31_t) ((q15_t) (inA1 >> 16) * (q15_t) (inB1 >> 16));
-    mul1 = (q31_t) ((q15_t) inA1 * (q15_t) (inB1 >> 16));
-    mul4 = (q31_t) ((q15_t) (inA2 >> 16) * (q15_t) inB1);
-    mul3 = (q31_t) ((q15_t) inA2 * (q15_t) inB1);
-
-#endif /* #ifndef ARM_MATH_BIG_ENDIAN */
-
-    out1 = (q15_t) __SSAT(mul1 >> 15U, 16);
-    out2 = (q15_t) __SSAT(mul2 >> 15U, 16);
-    out3 = (q15_t) __SSAT(mul3 >> 15U, 16);
-    out4 = (q15_t) __SSAT(mul4 >> 15U, 16);
-
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out1, out2, 16);
-    *__SIMD32(pCmplxDst)++ = __PKHBT(out3, out4, 16);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* realOut = realA * realB.            */
-    /* imagOut = imagA * realB.                */
-    in = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-    *pCmplxDst++ =
-      (q15_t) __SSAT((((q31_t) (*pSrcCmplx++) * (in)) >> 15), 16);
-
-    /* Decrement the numSamples loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of CmplxByRealMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c
deleted file mode 100644
index 19fc55b..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cmplx_mult_real_q31.c
- * Description:  Q31 complex by real multiplication
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
-/**
- * @ingroup groupCmplxMath
- */
-
-/**
- * @addtogroup CmplxByRealMult
- * @{
- */
-
-
-/**
- * @brief  Q31 complex-by-real multiplication
- * @param[in]  *pSrcCmplx points to the complex input vector
- * @param[in]  *pSrcReal points to the real input vector
- * @param[out]  *pCmplxDst points to the complex output vector
- * @param[in]  numSamples number of samples in each vector
- * @return none.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function uses saturating arithmetic.
- * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated.
- */
-
-void arm_cmplx_mult_real_q31(
-  q31_t * pSrcCmplx,
-  q31_t * pSrcReal,
-  q31_t * pCmplxDst,
-  uint32_t numSamples)
-{
-  q31_t inA1;                                    /* Temporary variable to store input value */
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-  uint32_t blkCnt;                               /* loop counters */
-  q31_t inA2, inA3, inA4;                        /* Temporary variables to hold input data */
-  q31_t inB1, inB2;                              /* Temporary variabels to hold input data */
-  q31_t out1, out2, out3, out4;                  /* Temporary variables to hold output data */
-
-  /* loop Unrolling */
-  blkCnt = numSamples >> 2U;
-
-  /* First part of the processing with loop unrolling.  Compute 4 outputs at a time.
-   ** a second loop below computes the remaining 1 to 3 samples. */
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-    inB2 = *pSrcReal++;
-    /* read imaginary input from complex input buffer */
-    inA3 = *pSrcCmplx++;
-    inA4 = *pSrcCmplx++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-    out3 = ((q63_t) inA3 * inB2) >> 32;
-    out4 = ((q63_t) inA4 * inB2) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-    out3 = __SSAT(out3, 31);
-    out4 = __SSAT(out4, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-    out3 = out3 << 1;
-    out4 = out4 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-    *pCmplxDst++ = out3;
-    *pCmplxDst++ = out4;
-
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-    inB2 = *pSrcReal++;
-    /* read imaginary input from complex input buffer */
-    inA3 = *pSrcCmplx++;
-    inA4 = *pSrcCmplx++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-    out3 = ((q63_t) inA3 * inB2) >> 32;
-    out4 = ((q63_t) inA4 * inB2) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-    out3 = __SSAT(out3, 31);
-    out4 = __SSAT(out4, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-    out3 = out3 << 1;
-    out4 = out4 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-    *pCmplxDst++ = out3;
-    *pCmplxDst++ = out4;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-  /* If the numSamples is not a multiple of 4, compute any remaining output samples here.
-   ** No loop unrolling is used. */
-  blkCnt = numSamples % 0x4U;
-
-  while (blkCnt > 0U)
-  {
-    /* C[2 * i] = A[2 * i] * B[i].            */
-    /* C[2 * i + 1] = A[2 * i + 1] * B[i].        */
-    /* read real input from complex input buffer */
-    inA1 = *pSrcCmplx++;
-    inA2 = *pSrcCmplx++;
-    /* read input from real input bufer */
-    inB1 = *pSrcReal++;
-
-    /* multiply complex input with real input */
-    out1 = ((q63_t) inA1 * inB1) >> 32;
-    out2 = ((q63_t) inA2 * inB1) >> 32;
-
-    /* sature the result */
-    out1 = __SSAT(out1, 31);
-    out2 = __SSAT(out2, 31);
-
-    /* get result in 1.31 format */
-    out1 = out1 << 1;
-    out2 = out2 << 1;
-
-    /* store the result to destination buffer */
-    *pCmplxDst++ = out1;
-    *pCmplxDst++ = out2;
-
-    /* Decrement the numSamples loop counter */
-    blkCnt--;
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  while (numSamples > 0U)
-  {
-    /* realOut = realA * realB.            */
-    /* imagReal = imagA * realB.               */
-    inA1 = *pSrcReal++;
-    /* store the result in the destination buffer. */
-    *pCmplxDst++ =
-      (q31_t) clip_q63_to_q31(((q63_t) * pSrcCmplx++ * inA1) >> 31);
-    *pCmplxDst++ =
-      (q31_t) clip_q63_to_q31(((q63_t) * pSrcCmplx++ * inA1) >> 31);
-
-    /* Decrement the numSamples loop counter */
-    numSamples--;
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of CmplxByRealMult group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_f32.c
deleted file mode 100644
index f75d61f..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_f32.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_init_f32.c
- * Description:  Floating-point PID Control initialization function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
- * @brief  Initialization function for the floating-point PID Control.
- * @param[in,out] *S points to an instance of the PID structure.
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state & 1 = reset the state.
- * @return none.
- * \par Description:
- * \par
- * The resetStateFlag specifies whether to set state to zero or not. \n
- * The function computes the structure fields: A0, A1 A2
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)
- * also sets the state variables to all zeros.
- */
-
-void arm_pid_init_f32(
-  arm_pid_instance_f32 * S,
-  int32_t resetStateFlag)
-{
-
-  /* Derived coefficient A0 */
-  S->A0 = S->Kp + S->Ki + S->Kd;
-
-  /* Derived coefficient A1 */
-  S->A1 = (-S->Kp) - ((float32_t) 2.0 * S->Kd);
-
-  /* Derived coefficient A2 */
-  S->A2 = S->Kd;
-
-  /* Check whether state needs reset or not */
-  if (resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3U * sizeof(float32_t));
-  }
-
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q15.c
deleted file mode 100644
index 61049cf..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q15.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_init_q15.c
- * Description:  Q15 PID Control initialization function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
- * @details
- * @param[in,out] *S points to an instance of the Q15 PID structure.
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
- * @return none.
- * \par Description:
- * \par
- * The resetStateFlag specifies whether to set state to zero or not. \n
- * The function computes the structure fields: A0, A1 A2
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)
- * also sets the state variables to all zeros.
- */
-
-void arm_pid_init_q15(
-  arm_pid_instance_q15 * S,
-  int32_t resetStateFlag)
-{
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* Derived coefficient A0 */
-  S->A0 = __QADD16(__QADD16(S->Kp, S->Ki), S->Kd);
-
-  /* Derived coefficients and pack into A1 */
-
-#ifndef  ARM_MATH_BIG_ENDIAN
-
-  S->A1 = __PKHBT(-__QADD16(__QADD16(S->Kd, S->Kd), S->Kp), S->Kd, 16);
-
-#else
-
-  S->A1 = __PKHBT(S->Kd, -__QADD16(__QADD16(S->Kd, S->Kd), S->Kp), 16);
-
-#endif /*      #ifndef  ARM_MATH_BIG_ENDIAN    */
-
-  /* Check whether state needs reset or not */
-  if (resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3U * sizeof(q15_t));
-  }
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  q31_t temp;                                    /*to store the sum */
-
-  /* Derived coefficient A0 */
-  temp = S->Kp + S->Ki + S->Kd;
-  S->A0 = (q15_t) __SSAT(temp, 16);
-
-  /* Derived coefficients and pack into A1 */
-  temp = -(S->Kd + S->Kd + S->Kp);
-  S->A1 = (q15_t) __SSAT(temp, 16);
-  S->A2 = S->Kd;
-
-
-
-  /* Check whether state needs reset or not */
-  if (resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3U * sizeof(q15_t));
-  }
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q31.c
deleted file mode 100644
index 17b3b09..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_init_q31.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_init_q31.c
- * Description:  Q31 PID Control initialization function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
- * @brief  Initialization function for the Q31 PID Control.
- * @param[in,out] *S points to an instance of the Q31 PID structure.
- * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
- * @return none.
- * \par Description:
- * \par
- * The resetStateFlag specifies whether to set state to zero or not. \n
- * The function computes the structure fields: A0, A1 A2
- * using the proportional gain( \c Kp), integral gain( \c Ki) and derivative gain( \c Kd)
- * also sets the state variables to all zeros.
- */
-
-void arm_pid_init_q31(
-  arm_pid_instance_q31 * S,
-  int32_t resetStateFlag)
-{
-
-#if defined (ARM_MATH_DSP)
-
-  /* Run the below code for Cortex-M4 and Cortex-M3 */
-
-  /* Derived coefficient A0 */
-  S->A0 = __QADD(__QADD(S->Kp, S->Ki), S->Kd);
-
-  /* Derived coefficient A1 */
-  S->A1 = -__QADD(__QADD(S->Kd, S->Kd), S->Kp);
-
-
-#else
-
-  /* Run the below code for Cortex-M0 */
-
-  q31_t temp;
-
-  /* Derived coefficient A0 */
-  temp = clip_q63_to_q31((q63_t) S->Kp + S->Ki);
-  S->A0 = clip_q63_to_q31((q63_t) temp + S->Kd);
-
-  /* Derived coefficient A1 */
-  temp = clip_q63_to_q31((q63_t) S->Kd + S->Kd);
-  S->A1 = -clip_q63_to_q31((q63_t) temp + S->Kp);
-
-#endif /* #if defined (ARM_MATH_DSP) */
-
-  /* Derived coefficient A2 */
-  S->A2 = S->Kd;
-
-  /* Check whether state needs reset or not */
-  if (resetStateFlag)
-  {
-    /* Clear the state buffer.  The size will be always 3 samples */
-    memset(S->state, 0, 3U * sizeof(q31_t));
-  }
-
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_f32.c
deleted file mode 100644
index 318ec89..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_f32.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_reset_f32.c
- * Description:  Floating-point PID Control reset function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
-* @brief  Reset function for the floating-point PID Control.
-* @param[in] *S	Instance pointer of PID control data structure.
-* @return none.
-* \par Description:
-* The function resets the state buffer to zeros.
-*/
-void arm_pid_reset_f32(
-  arm_pid_instance_f32 * S)
-{
-
-  /* Clear the state buffer.  The size will be always 3 samples */
-  memset(S->state, 0, 3U * sizeof(float32_t));
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q15.c
deleted file mode 100644
index 93c0e7c..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q15.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_reset_q15.c
- * Description:  Q15 PID Control reset function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
-* @brief  Reset function for the Q15 PID Control.
-* @param[in] *S		Instance pointer of PID control data structure.
-* @return none.
-* \par Description:
-* The function resets the state buffer to zeros.
-*/
-void arm_pid_reset_q15(
-  arm_pid_instance_q15 * S)
-{
-  /* Reset state to zero, The size will be always 3 samples */
-  memset(S->state, 0, 3U * sizeof(q15_t));
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q31.c
deleted file mode 100644
index 4c5b14e..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_pid_reset_q31.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_pid_reset_q31.c
- * Description:  Q31 PID Control reset function
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-
- /**
- * @addtogroup PID
- * @{
- */
-
-/**
-* @brief  Reset function for the Q31 PID Control.
-* @param[in] *S	Instance pointer of PID control data structure.
-* @return none.
-* \par Description:
-* The function resets the state buffer to zeros.
-*/
-void arm_pid_reset_q31(
-  arm_pid_instance_q31 * S)
-{
-
-  /* Clear the state buffer.  The size will be always 3 samples */
-  memset(S->state, 0, 3U * sizeof(q31_t));
-}
-
-/**
- * @} end of PID group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_f32.c
deleted file mode 100644
index 7ec1b53..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_f32.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_sin_cos_f32.c
- * Description:  Sine and Cosine calculation for floating-point values
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-#include "arm_common_tables.h"
-
-/**
- * @ingroup groupController
- */
-
-/**
- * @defgroup SinCos Sine Cosine
- *
- * Computes the trigonometric sine and cosine values using a combination of table lookup
- * and linear interpolation.
- * There are separate functions for Q31 and floating-point data types.
- * The input to the floating-point version is in degrees while the
- * fixed-point Q31 have a scaled input with the range
- * [-1 0.9999] mapping to [-180 +180] degrees.
- *
- * The floating point function also allows values that are out of the usual range. When this happens, the function will
- * take extra time to adjust the input value to the range of [-180 180].
- *
- * The result is accurate to 5 digits after the decimal point.
- *
- * The implementation is based on table lookup using 360 values together with linear interpolation.
- * The steps used are:
- *  -# Calculation of the nearest integer table index.
- *  -# Compute the fractional portion (fract) of the input.
- *  -# Fetch the value corresponding to \c index from sine table to \c y0 and also value from \c index+1 to \c y1.
- *  -# Sine value is computed as  *psinVal = y0 + (fract * (y1 - y0)).
- *  -# Fetch the value corresponding to \c index from cosine table to \c y0 and also value from \c index+1 to \c y1.
- *  -# Cosine value is computed as  *pcosVal = y0 + (fract * (y1 - y0)).
- */
-
- /**
- * @addtogroup SinCos
- * @{
- */
-
-/**
- * @brief  Floating-point sin_cos function.
- * @param[in]  theta    input value in degrees
- * @param[out] *pSinVal points to the processed sine output.
- * @param[out] *pCosVal points to the processed cos output.
- * @return none.
- */
-
-void arm_sin_cos_f32(
-                      float32_t theta,
-                      float32_t * pSinVal,
-                      float32_t * pCosVal)
-{
-    float32_t fract, in;                             /* Temporary variables for input, output */
-    uint16_t indexS, indexC;                         /* Index variable */
-    float32_t f1, f2, d1, d2;                        /* Two nearest output values */
-    float32_t findex, Dn, Df, temp;
-
-    /* input x is in degrees */
-    /* Scale the input, divide input by 360, for cosine add 0.25 (pi/2) to read sine table */
-    in = theta * 0.00277777777778f;
-
-    if (in < 0.0f)
-    {
-        in = -in;
-    }
-
-    in = in - (int32_t)in;
-
-    /* Calculation of index of the table */
-    findex = (float32_t) FAST_MATH_TABLE_SIZE * in;
-    indexS = ((uint16_t)findex) & 0x1ff;
-    indexC = (indexS + (FAST_MATH_TABLE_SIZE / 4)) & 0x1ff;
-
-    /* fractional value calculation */
-    fract = findex - (float32_t) indexS;
-
-    /* Read two nearest values of input value from the cos & sin tables */
-    f1 = sinTable_f32[indexC+0];
-    f2 = sinTable_f32[indexC+1];
-    d1 = -sinTable_f32[indexS+0];
-    d2 = -sinTable_f32[indexS+1];
-
-    temp = (1.0f - fract) * f1 + fract * f2;
-
-    Dn = 0.0122718463030f; // delta between the two points (fixed), in this case 2*pi/FAST_MATH_TABLE_SIZE
-    Df = f2 - f1;          // delta between the values of the functions
-
-    temp = Dn *(d1 + d2) - 2 * Df;
-    temp = fract * temp + (3 * Df - (d2 + 2 * d1) * Dn);
-    temp = fract * temp + d1 * Dn;
-
-    /* Calculation of cosine value */
-    *pCosVal = fract * temp + f1;
-
-    /* Read two nearest values of input value from the cos & sin tables */
-    f1 = sinTable_f32[indexS+0];
-    f2 = sinTable_f32[indexS+1];
-    d1 = sinTable_f32[indexC+0];
-    d2 = sinTable_f32[indexC+1];
-
-    temp = (1.0f - fract) * f1 + fract * f2;
-
-    Df = f2 - f1; // delta between the values of the functions
-    temp = Dn*(d1 + d2) - 2*Df;
-    temp = fract*temp + (3*Df - (d2 + 2*d1)*Dn);
-    temp = fract*temp + d1*Dn;
-
-    /* Calculation of sine value */
-    *pSinVal = fract*temp + f1;
-
-    if (theta < 0.0f)
-    {
-        *pSinVal = -*pSinVal;
-    }
-}
-/**
- * @} end of SinCos group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_q31.c
deleted file mode 100644
index d661830..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/ControllerFunctions/arm_sin_cos_q31.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_sin_cos_q31.c
- * Description:  Cosine & Sine calculation for Q31 values
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-#include "arm_common_tables.h"
-
-/**
- * @ingroup groupController
- */
-
- /**
- * @addtogroup SinCos
- * @{
- */
-
-/**
- * @brief  Q31 sin_cos function.
- * @param[in]  theta    scaled input value in degrees
- * @param[out] *pSinVal points to the processed sine output.
- * @param[out] *pCosVal points to the processed cosine output.
- * @return none.
- *
- * The Q31 input value is in the range [-1 0.999999] and is mapped to a degree value in the range [-180 179].
- *
- */
-
-void arm_sin_cos_q31(
-  q31_t theta,
-  q31_t * pSinVal,
-  q31_t * pCosVal)
-{
-  q31_t fract;                                 /* Temporary variables for input, output */
-  uint16_t indexS, indexC;                     /* Index variable */
-  q31_t f1, f2, d1, d2;                        /* Two nearest output values */
-  q31_t Dn, Df;
-  q63_t temp;
-
-  /* Calculate the nearest index */
-  indexS = (uint32_t)theta >> CONTROLLER_Q31_SHIFT;
-  indexC = (indexS + 128) & 0x1ff;
-
-  /* Calculation of fractional value */
-  fract = (theta - (indexS << CONTROLLER_Q31_SHIFT)) << 8;
-
-  /* Read two nearest values of input value from the cos & sin tables */
-  f1 = sinTable_q31[indexC+0];
-  f2 = sinTable_q31[indexC+1];
-  d1 = -sinTable_q31[indexS+0];
-  d2 = -sinTable_q31[indexS+1];
-
-  Dn = 0x1921FB5; // delta between the two points (fixed), in this case 2*pi/FAST_MATH_TABLE_SIZE
-  Df = f2 - f1; // delta between the values of the functions
-  temp = Dn*((q63_t)d1 + d2);
-  temp = temp - ((q63_t)Df << 32);
-  temp = (q63_t)fract*(temp >> 31);
-  temp = temp + ((3*(q63_t)Df << 31) - (d2 + ((q63_t)d1 << 1))*Dn);
-  temp = (q63_t)fract*(temp >> 31);
-  temp = temp + (q63_t)d1*Dn;
-  temp = (q63_t)fract*(temp >> 31);
-
-  /* Calculation of cosine value */
-  *pCosVal = clip_q63_to_q31((temp >> 31) + (q63_t)f1);
-
-  /* Read two nearest values of input value from the cos & sin tables */
-  f1 = sinTable_q31[indexS+0];
-  f2 = sinTable_q31[indexS+1];
-  d1 = sinTable_q31[indexC+0];
-  d2 = sinTable_q31[indexC+1];
-
-  Df = f2 - f1; // delta between the values of the functions
-  temp = Dn*((q63_t)d1 + d2);
-  temp = temp - ((q63_t)Df << 32);
-  temp = (q63_t)fract*(temp >> 31);
-  temp = temp + ((3*(q63_t)Df << 31) - (d2 + ((q63_t)d1 << 1))*Dn);
-  temp = (q63_t)fract*(temp >> 31);
-  temp = temp + (q63_t)d1*Dn;
-  temp = (q63_t)fract*(temp >> 31);
-
-  /* Calculation of sine value */
-  *pSinVal = clip_q63_to_q31((temp >> 31) + (q63_t)f1);
-}
-
-/**
- * @} end of SinCos group
- */
diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_f32.c
deleted file mode 100644
index e604b3c..0000000
--- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_f32.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project:      CMSIS DSP Library
- * Title:        arm_cos_f32.c
- * Description:  Fast cosine calculation for floating-point values
- *
- * $Date:        27. January 2017
- * $Revision:    V.1.5.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "arm_math.h"
-#include "arm_common_tables.h"
-/**
- * @ingroup groupFastMath
- */
-
-/**
- * @defgroup cos Cosine
- *
- * Computes the trigonometric cosine function using a combination of table lookup
- * and linear interpolation.  There are separate functions for
- * Q15, Q31, and floating-point data types.
- * The input to the floating-point version is in radians and in the range [0 2*pi) while the
- * fixed-point Q15 and Q31 have a scaled input with the range
- * [0 +0.9999] mapping to [0 2*pi).  The fixed-point range is chosen so that a
- * value of 2*pi wraps around to 0.
- *
- * The implementation is based on table lookup using 256 values together with linear interpolation.
- * The steps used are:
- *  -# Calculation of the nearest integer table index
- *  -# Compute the fractional portion (fract) of the table index.
- *  -# The final result equals (1.0f-fract)*a + fract*b;
- *
- * where
- * 
- *    b=Table[index+0];
- *    c=Table[index+1];
- * 
- */ - - /** - * @addtogroup cos - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric cosine function for floating-point data. - * @param[in] x input value in radians. - * @return cos(x). - */ - -float32_t arm_cos_f32( - float32_t x) -{ - float32_t cosVal, fract, in; /* Temporary variables for input, output */ - uint16_t index; /* Index variable */ - float32_t a, b; /* Two nearest output values */ - int32_t n; - float32_t findex; - - /* input x is in radians */ - /* Scale the input to [0 1] range from [0 2*PI] , divide input by 2*pi, add 0.25 (pi/2) to read sine table */ - in = x * 0.159154943092f + 0.25f; - - /* Calculation of floor value of input */ - n = (int32_t) in; - - /* Make negative values towards -infinity */ - if (in < 0.0f) - { - n--; - } - - /* Map input value to [0 1] */ - in = in - (float32_t) n; - - /* Calculation of index of the table */ - findex = (float32_t) FAST_MATH_TABLE_SIZE * in; - index = ((uint16_t)findex) & 0x1ff; - - /* fractional value calculation */ - fract = findex - (float32_t) index; - - /* Read two nearest values of input value from the cos table */ - a = sinTable_f32[index]; - b = sinTable_f32[index+1]; - - /* Linear interpolation process */ - cosVal = (1.0f-fract)*a + fract*b; - - /* Return the output value */ - return (cosVal); -} - -/** - * @} end of cos group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q15.c deleted file mode 100644 index 7fa2e18..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q15.c +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cos_q15.c - * Description: Fast cosine calculation for Q15 values - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup cos - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric cosine function for Q15 data. - * @param[in] x Scaled input value in radians. - * @return cos(x). - * - * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian - * value in the range [0 2*pi). - */ - -q15_t arm_cos_q15( - q15_t x) -{ - q15_t cosVal; /* Temporary variables for input, output */ - int32_t index; /* Index variables */ - q15_t a, b; /* Four nearest output values */ - q15_t fract; /* Temporary values for fractional values */ - - /* add 0.25 (pi/2) to read sine table */ - x = (uint16_t)x + 0x2000; - if (x < 0) - { /* convert negative numbers to corresponding positive ones */ - x = (uint16_t)x + 0x8000; - } - - /* Calculate the nearest index */ - index = (uint32_t)x >> FAST_MATH_Q15_SHIFT; - - /* Calculation of fractional value */ - fract = (x - (index << FAST_MATH_Q15_SHIFT)) << 9; - - /* Read two nearest values of input value from the sin table */ - a = sinTable_q15[index]; - b = sinTable_q15[index+1]; - - /* Linear interpolation process */ - cosVal = (q31_t)(0x8000-fract)*a >> 16; - cosVal = (q15_t)((((q31_t)cosVal << 16) + ((q31_t)fract*b)) >> 16); - - return cosVal << 1; -} - -/** - * @} end of cos group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q31.c deleted file mode 100644 index fde5368..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_cos_q31.c +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cos_q31.c - * Description: Fast cosine calculation for Q31 values - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup cos - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric cosine function for Q31 data. - * @param[in] x Scaled input value in radians. - * @return cos(x). - * - * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian - * value in the range [0 2*pi). - */ - -q31_t arm_cos_q31( - q31_t x) -{ - q31_t cosVal; /* Temporary variables for input, output */ - int32_t index; /* Index variables */ - q31_t a, b; /* Four nearest output values */ - q31_t fract; /* Temporary values for fractional values */ - - /* add 0.25 (pi/2) to read sine table */ - x = (uint32_t)x + 0x20000000; - if (x < 0) - { /* convert negative numbers to corresponding positive ones */ - x = (uint32_t)x + 0x80000000; - } - - /* Calculate the nearest index */ - index = (uint32_t)x >> FAST_MATH_Q31_SHIFT; - - /* Calculation of fractional value */ - fract = (x - (index << FAST_MATH_Q31_SHIFT)) << 9; - - /* Read two nearest values of input value from the sin table */ - a = sinTable_q31[index]; - b = sinTable_q31[index+1]; - - /* Linear interpolation process */ - cosVal = (q63_t)(0x80000000-fract)*a >> 32; - cosVal = (q31_t)((((q63_t)cosVal << 32) + ((q63_t)fract*b)) >> 32); - - return cosVal << 1; -} - -/** - * @} end of cos group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_f32.c deleted file mode 100644 index ce8b9b9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_f32.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sin_f32.c - * Description: Fast sine calculation for floating-point values - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" -#include - -/** - * @ingroup groupFastMath - */ - -/** - * @defgroup sin Sine - * - * Computes the trigonometric sine function using a combination of table lookup - * and linear interpolation. There are separate functions for - * Q15, Q31, and floating-point data types. - * The input to the floating-point version is in radians and in the range [0 2*pi) while the - * fixed-point Q15 and Q31 have a scaled input with the range - * [0 +0.9999] mapping to [0 2*pi). The fixed-point range is chosen so that a - * value of 2*pi wraps around to 0. - * - * The implementation is based on table lookup using 256 values together with linear interpolation. - * The steps used are: - * -# Calculation of the nearest integer table index - * -# Compute the fractional portion (fract) of the table index. - * -# The final result equals (1.0f-fract)*a + fract*b; - * - * where - *
- *    b=Table[index+0];
- *    c=Table[index+1];
- * 
- */ - -/** - * @addtogroup sin - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric sine function for floating-point data. - * @param[in] x input value in radians. - * @return sin(x). - */ - -float32_t arm_sin_f32( - float32_t x) -{ - float32_t sinVal, fract, in; /* Temporary variables for input, output */ - uint16_t index; /* Index variable */ - float32_t a, b; /* Two nearest output values */ - int32_t n; - float32_t findex; - - /* Special case for small negative inputs */ - if ((x < 0.0f) && (x >= -1.9e-7f)) { - return x; - } - - /* input x is in radians */ - /* Scale the input to [0 1] range from [0 2*PI] , divide input by 2*pi */ - in = x * 0.159154943092f; - - /* Calculation of floor value of input */ - n = (int32_t) in; - - /* Make negative values towards -infinity */ - if (x < 0.0f) - { - n--; - } - - /* Map input value to [0 1] */ - in = in - (float32_t) n; - - /* Calculation of index of the table */ - findex = (float32_t) FAST_MATH_TABLE_SIZE * in; - - index = ((uint16_t)findex) & 0x1ff; - - /* fractional value calculation */ - fract = findex - (float32_t) index; - - /* Read two nearest values of input value from the sin table */ - a = sinTable_f32[index]; - b = sinTable_f32[index+1]; - - /* Linear interpolation process */ - sinVal = (1.0f-fract)*a + fract*b; - - /* Return the output value */ - return (sinVal); -} - -/** - * @} end of sin group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q15.c deleted file mode 100644 index 7c8f627..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q15.c +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sin_q15.c - * Description: Fast sine calculation for Q15 values - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup sin - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric sine function for Q15 data. - * @param[in] x Scaled input value in radians. - * @return sin(x). - * - * The Q15 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi). - */ - -q15_t arm_sin_q15( - q15_t x) -{ - q15_t sinVal; /* Temporary variables for input, output */ - int32_t index; /* Index variables */ - q15_t a, b; /* Four nearest output values */ - q15_t fract; /* Temporary values for fractional values */ - - /* Calculate the nearest index */ - index = (uint32_t)x >> FAST_MATH_Q15_SHIFT; - - /* Calculation of fractional value */ - fract = (x - (index << FAST_MATH_Q15_SHIFT)) << 9; - - /* Read two nearest values of input value from the sin table */ - a = sinTable_q15[index]; - b = sinTable_q15[index+1]; - - /* Linear interpolation process */ - sinVal = (q31_t)(0x8000-fract)*a >> 16; - sinVal = (q15_t)((((q31_t)sinVal << 16) + ((q31_t)fract*b)) >> 16); - - return sinVal << 1; -} - -/** - * @} end of sin group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q31.c deleted file mode 100644 index 8d3c7ac..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_q31.c +++ /dev/null @@ -1,75 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sin_q31.c - * Description: Fast sine calculation for Q31 values - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - - /** - * @addtogroup sin - * @{ - */ - -/** - * @brief Fast approximation to the trigonometric sine function for Q31 data. - * @param[in] x Scaled input value in radians. - * @return sin(x). - * - * The Q31 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*pi). */ - -q31_t arm_sin_q31( - q31_t x) -{ - q31_t sinVal; /* Temporary variables for input, output */ - int32_t index; /* Index variables */ - q31_t a, b; /* Four nearest output values */ - q31_t fract; /* Temporary values for fractional values */ - - /* Calculate the nearest index */ - index = (uint32_t)x >> FAST_MATH_Q31_SHIFT; - - /* Calculation of fractional value */ - fract = (x - (index << FAST_MATH_Q31_SHIFT)) << 9; - - /* Read two nearest values of input value from the sin table */ - a = sinTable_q31[index]; - b = sinTable_q31[index+1]; - - /* Linear interpolation process */ - sinVal = (q63_t)(0x80000000-fract)*a >> 32; - sinVal = (q31_t)((((q63_t)sinVal << 32) + ((q63_t)fract*b)) >> 32); - - return sinVal << 1; -} - -/** - * @} end of sin group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q15.c deleted file mode 100644 index 8487ed3..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q15.c +++ /dev/null @@ -1,144 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sqrt_q15.c - * Description: Q15 square root function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - - -/** - * @ingroup groupFastMath - */ - -/** - * @addtogroup SQRT - * @{ - */ - - /** - * @brief Q15 square root function. - * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF. - * @param[out] *pOut square root of input value. - * @return The function returns ARM_MATH_SUCCESS if the input value is positive - * and ARM_MATH_ARGUMENT_ERROR if the input is negative. For - * negative inputs, the function returns *pOut = 0. - */ - -arm_status arm_sqrt_q15( - q15_t in, - q15_t * pOut) -{ - q15_t number, temp1, var1, signBits1, half; - q31_t bits_val1; - float32_t temp_float1; - union - { - q31_t fracval; - float32_t floatval; - } tempconv; - - number = in; - - /* If the input is a positive number then compute the signBits. */ - if (number > 0) - { - signBits1 = __CLZ(number) - 17; - - /* Shift by the number of signBits1 */ - if ((signBits1 % 2) == 0) - { - number = number << signBits1; - } - else - { - number = number << (signBits1 - 1); - } - - /* Calculate half value of the number */ - half = number >> 1; - /* Store the number for later use */ - temp1 = number; - - /* Convert to float */ - temp_float1 = number * 3.051757812500000e-005f; - /*Store as integer */ - tempconv.floatval = temp_float1; - bits_val1 = tempconv.fracval; - /* Subtract the shifted value from the magic number to give intial guess */ - bits_val1 = 0x5f3759df - (bits_val1 >> 1); /* gives initial guess */ - /* Store as float */ - tempconv.fracval = bits_val1; - temp_float1 = tempconv.floatval; - /* Convert to integer format */ - var1 = (q31_t) (temp_float1 * 16384); - - /* 1st iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - /* 2nd iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - /* 3rd iteration */ - var1 = ((q15_t) ((q31_t) var1 * (0x3000 - - ((q15_t) - ((((q15_t) - (((q31_t) var1 * var1) >> 15)) * - (q31_t) half) >> 15))) >> 15)) << 2; - - /* Multiply the inverse square root with the original value */ - var1 = ((q15_t) (((q31_t) temp1 * var1) >> 15)) << 1; - - /* Shift the output down accordingly */ - if ((signBits1 % 2) == 0) - { - var1 = var1 >> (signBits1 / 2); - } - else - { - var1 = var1 >> ((signBits1 - 1) / 2); - } - *pOut = var1; - - return (ARM_MATH_SUCCESS); - } - /* If the number is a negative number then store zero as its square root value */ - else - { - *pOut = 0; - return (ARM_MATH_ARGUMENT_ERROR); - } -} - -/** - * @} end of SQRT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q31.c deleted file mode 100644 index 0deea04..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sqrt_q31.c +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_sqrt_q31.c - * Description: Q31 square root function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupFastMath - */ - -/** - * @addtogroup SQRT - * @{ - */ - -/** - * @brief Q31 square root function. - * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF. - * @param[out] *pOut square root of input value. - * @return The function returns ARM_MATH_SUCCESS if the input value is positive - * and ARM_MATH_ARGUMENT_ERROR if the input is negative. For - * negative inputs, the function returns *pOut = 0. - */ - -arm_status arm_sqrt_q31( - q31_t in, - q31_t * pOut) -{ - q31_t number, temp1, bits_val1, var1, signBits1, half; - float32_t temp_float1; - union - { - q31_t fracval; - float32_t floatval; - } tempconv; - - number = in; - - /* If the input is a positive number then compute the signBits. */ - if (number > 0) - { - signBits1 = __CLZ(number) - 1; - - /* Shift by the number of signBits1 */ - if ((signBits1 % 2) == 0) - { - number = number << signBits1; - } - else - { - number = number << (signBits1 - 1); - } - - /* Calculate half value of the number */ - half = number >> 1; - /* Store the number for later use */ - temp1 = number; - - /*Convert to float */ - temp_float1 = number * 4.6566128731e-010f; - /*Store as integer */ - tempconv.floatval = temp_float1; - bits_val1 = tempconv.fracval; - /* Subtract the shifted value from the magic number to give intial guess */ - bits_val1 = 0x5f3759df - (bits_val1 >> 1); /* gives initial guess */ - /* Store as float */ - tempconv.fracval = bits_val1; - temp_float1 = tempconv.floatval; - /* Convert to integer format */ - var1 = (q31_t) (temp_float1 * 1073741824); - - /* 1st iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - /* 2nd iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - /* 3rd iteration */ - var1 = ((q31_t) ((q63_t) var1 * (0x30000000 - - ((q31_t) - ((((q31_t) - (((q63_t) var1 * var1) >> 31)) * - (q63_t) half) >> 31))) >> 31)) << 2; - - /* Multiply the inverse square root with the original value */ - var1 = ((q31_t) (((q63_t) temp1 * var1) >> 31)) << 1; - - /* Shift the output down accordingly */ - if ((signBits1 % 2) == 0) - { - var1 = var1 >> (signBits1 / 2); - } - else - { - var1 = var1 >> ((signBits1 - 1) / 2); - } - *pOut = var1; - - return (ARM_MATH_SUCCESS); - } - /* If the number is a negative number then store zero as its square root value */ - else - { - *pOut = 0; - return (ARM_MATH_ARGUMENT_ERROR); - } -} - -/** - * @} end of SQRT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c deleted file mode 100644 index 8f92496..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c +++ /dev/null @@ -1,98 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_32x64_init_q31.c - * Description: High precision Q31 Biquad cascade filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1_32x64 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filter structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied after the accumulator. Varies according to the coefficients format. - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState points to state variables array and size of each state variable is 1.63 format. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the state array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cas_df1_32x64_init_q31( - arm_biquad_cas_df1_32x64_ins_q31 * S, - uint8_t numStages, - q31_t * pCoeffs, - q63_t * pState, - uint8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4U * (uint32_t) numStages) * sizeof(q63_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1_32x64 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c deleted file mode 100644 index c77cc8e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c +++ /dev/null @@ -1,549 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_32x64_q31.c - * Description: High precision Q31 Biquad cascade filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup BiquadCascadeDF1_32x64 High Precision Q31 Biquad Cascade Filter - * - * This function implements a high precision Biquad cascade filter which operates on - * Q31 data values. The filter coefficients are in 1.31 format and the state variables - * are in 1.63 format. The double precision state variables reduce quantization noise - * in the filter and provide a cleaner output. - * These filters are particularly useful when implementing filters in which the - * singularities are close to the unit circle. This is common for low pass or high - * pass filters with very low cutoff frequencies. - * - * The function operates on blocks of input and output data - * and each call to the function processes blockSize samples through - * the filter. pSrc and pDst points to input and output arrays - * containing blockSize Q31 values. - * - * \par Algorithm - * Each Biquad stage implements a second order filter using the difference equation: - *
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]
- * 
- * A Direct Form I algorithm is used with 5 coefficients and 4 state variables per stage. - * \image html Biquad.gif "Single Biquad filter stage" - * Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. - * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. - * Pay careful attention to the sign of the feedback coefficients. - * Some design tools use the difference equation - *
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] - a1 * y[n-1] - a2 * y[n-2]
- * 
- * In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. - * - * \par - * Higher order filters are realized as a cascade of second order sections. - * numStages refers to the number of second order stages used. - * For example, an 8th order filter would be realized with numStages=4 second order stages. - * \image html BiquadCascade.gif "8th order filter using a cascade of Biquad stages" - * A 9th order filter would be realized with numStages=5 second order stages with the coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). - * - * \par - * The pState points to state variables array . - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2] and each state variable in 1.63 format to improve precision. - * The state variables are arranged in the array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * - * \par - * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values of data in 1.63 format. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * - * \par Init Function - * There is also an associated initialization function which performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numStages, pCoeffs, postShift, pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * For example, to statically initialize the filter instance structure use - *
- *     arm_biquad_cas_df1_32x64_ins_q31 S1 = {numStages, pState, pCoeffs, postShift};
- * 
- * where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; postShift shift to be applied which is described in detail below. - * \par Fixed-Point Behavior - * Care must be taken while using Biquad Cascade 32x64 filter function. - * Following issues must be considered: - * - Scaling of coefficients - * - Filter gain - * - Overflow and saturation - * - * \par - * Filter coefficients are represented as fractional values and - * restricted to lie in the range [-1 +1). - * The processing function has an additional scaling parameter postShift - * which allows the filter coefficients to exceed the range [+1 -1). - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * \image html BiquadPostshift.gif "Fixed-point Biquad with shift by postShift bits after accumulator" - * This essentially scales the filter coefficients by 2^postShift. - * For example, to realize the coefficients - *
- *    {1.5, -0.8, 1.2, 1.6, -0.9}
- * 
- * set the Coefficient array to: - *
- *    {0.75, -0.4, 0.6, 0.8, -0.45}
- * 
- * and set postShift=1 - * - * \par - * The second thing to keep in mind is the gain through the filter. - * The frequency response of a Biquad filter is a function of its coefficients. - * It is possible for the gain through the filter to exceed 1.0 meaning that the filter increases the amplitude of certain frequencies. - * This means that an input signal with amplitude < 1.0 may result in an output > 1.0 and these are saturated or overflowed based on the implementation of the filter. - * To avoid this behavior the filter needs to be scaled down such that its peak gain < 1.0 or the input signal must be scaled down so that the combination of input and filter are never overflowed. - * - * \par - * The third item to consider is the overflow and saturation behavior of the fixed-point Q31 version. - * This is described in the function specific documentation below. - */ - -/** - * @addtogroup BiquadCascadeDF1_32x64 - * @{ - */ - -/** - * @details - - * @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2 bits and lie in the range [-0.25 +0.25). - * After all 5 multiply-accumulates are performed, the 2.62 accumulator is shifted by postShift bits and the result truncated to - * 1.31 format by discarding the low 32 bits. - * - * \par - * Two related functions are provided in the CMSIS DSP library. - * arm_biquad_cascade_df1_q31() implements a Biquad cascade with 32-bit coefficients and state variables with a Q63 accumulator. - * arm_biquad_cascade_df1_fast_q31() implements a Biquad cascade with 32-bit coefficients and state variables with a Q31 accumulator. - */ - -void arm_biquad_cas_df1_32x64_q31( - const arm_biquad_cas_df1_32x64_ins_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q63_t *pState = S->pState; /* state pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q63_t acc; /* accumulator */ - q31_t Xn1, Xn2; /* Input Filter state variables */ - q63_t Yn1, Yn2; /* Output Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t Xn; /* temporary input */ - int32_t shift = (int32_t) S->postShift + 1; /* Shift to be applied to the output */ - uint32_t sample, stage = S->numStages; /* loop counters */ - q31_t acc_l, acc_h; /* temporary output */ - uint32_t uShift = ((uint32_t) S->postShift + 1U); - uint32_t lShift = 32U - uShift; /* Shift to be applied to the output */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = (q31_t) (pState[0]); - Xn2 = (q31_t) (pState[1]); - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output value that is being computed and - * stored in the destination buffer - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* The result is converted to 1.63 , Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut = acc_h; - - /* Read the second input into Xn2, to reuse the value */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc += b1 * x[n-1] */ - acc = (q63_t) Xn *b1; - - /* acc = b0 * x[n] */ - acc += (q63_t) Xn2 *b0; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn1 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn2, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn1, a2); - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Read the third input into Xn1, to reuse the value */ - Xn1 = *pIn++; - - /* The result is converted to 1.31 */ - /* Store the output in the destination buffer. */ - *(pOut + 1U) = acc_h; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn1 *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn2 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* The result is converted to 1.63, Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *(pOut + 2U) = acc_h; - - /* Read the fourth input into Xn, to reuse the value */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn2, a1); - - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn1, a2); - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *(pOut + 3U) = acc_h; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* update output pointer */ - pOut += 4U; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3U); - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut++ = acc_h; - /* Yn1 = acc << shift; */ - - /* Store the output in the destination buffer in 1.31 format. */ -/* *pOut++ = (q31_t) (acc >> (32 - shift)); */ - - /* decrement the loop counter */ - sample--; - } - - /* The first stage output is given as input to the second stage. */ - pIn = pDst; - - /* Reset to destination buffer working pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - /* Store the updated state variables back into the pState array */ - *pState++ = (q63_t) Xn1; - *pState++ = (q63_t) Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variable acc hold output value that is being computed and - * stored in the destination buffer - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) Xn *b0; - /* acc += b1 * x[n-1] */ - acc += (q63_t) Xn1 *b1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) Xn2 *b2; - /* acc += a1 * y[n-1] */ - acc += mult32x64(Yn1, a1); - /* acc += a2 * y[n-2] */ - acc += mult32x64(Yn2, a2); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - - /* The result is converted to 1.63, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc_h = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer in 1.31 format. */ - *pOut++ = acc_h; - - /* Yn1 = acc << shift; */ - - /* Store the output in the destination buffer in 1.31 format. */ - /* *pOut++ = (q31_t) (acc >> (32 - shift)); */ - - /* decrement the loop counter */ - sample--; - } - - /* The first stage output is given as input to the second stage. */ - pIn = pDst; - - /* Reset to destination buffer working pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = (q63_t) Xn1; - *pState++ = (q63_t) Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); - -#endif /* #if defined (ARM_MATH_DSP) */ -} - - /** - * @} end of BiquadCascadeDF1_32x64 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c deleted file mode 100644 index 0ffb29e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c +++ /dev/null @@ -1,412 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_f32.c - * Description: Processing function for the floating-point Biquad cascade DirectFormI(DF1) filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup BiquadCascadeDF1 Biquad Cascade IIR Filters Using Direct Form I Structure - * - * This set of functions implements arbitrary order recursive (IIR) filters. - * The filters are implemented as a cascade of second order Biquad sections. - * The functions support Q15, Q31 and floating-point data types. - * Fast version of Q15 and Q31 also supported on CortexM4 and Cortex-M3. - * - * The functions operate on blocks of input and output data and each call to the function - * processes blockSize samples through the filter. - * pSrc points to the array of input data and - * pDst points to the array of output data. - * Both arrays contain blockSize values. - * - * \par Algorithm - * Each Biquad stage implements a second order filter using the difference equation: - *
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]
- * 
- * A Direct Form I algorithm is used with 5 coefficients and 4 state variables per stage. - * \image html Biquad.gif "Single Biquad filter stage" - * Coefficients b0, b1 and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. - * Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. - * Pay careful attention to the sign of the feedback coefficients. - * Some design tools use the difference equation - *
- *     y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] - a1 * y[n-1] - a2 * y[n-2]
- * 
- * In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. - * - * \par - * Higher order filters are realized as a cascade of second order sections. - * numStages refers to the number of second order stages used. - * For example, an 8th order filter would be realized with numStages=4 second order stages. - * \image html BiquadCascade.gif "8th order filter using a cascade of Biquad stages" - * A 9th order filter would be realized with numStages=5 second order stages with the coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). - * - * \par - * The pState points to state variables array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * - * \par - * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Init Functions - * There is also an associated initialization function for each data type. - * The initialization function performs following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numStages, pCoeffs, pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 3 different data type filter instance structures - *
- *     arm_biquad_casd_df1_inst_f32 S1 = {numStages, pState, pCoeffs};
- *     arm_biquad_casd_df1_inst_q15 S2 = {numStages, pState, pCoeffs, postShift};
- *     arm_biquad_casd_df1_inst_q31 S3 = {numStages, pState, pCoeffs, postShift};
- * 
- * where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; postShift shift to be applied. - * - * \par Fixed-Point Behavior - * Care must be taken when using the Q15 and Q31 versions of the Biquad Cascade filter functions. - * Following issues must be considered: - * - Scaling of coefficients - * - Filter gain - * - Overflow and saturation - * - * \par - * Scaling of coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift - * which allow the filter coefficients to exceed the range [+1 -1). - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * \image html BiquadPostshift.gif "Fixed-point Biquad with shift by postShift bits after accumulator" - * This essentially scales the filter coefficients by 2^postShift. - * For example, to realize the coefficients - *
- *    {1.5, -0.8, 1.2, 1.6, -0.9}
- * 
- * set the pCoeffs array to: - *
- *    {0.75, -0.4, 0.6, 0.8, -0.45}
- * 
- * and set postShift=1 - * - * \par - * Filter gain: - * The frequency response of a Biquad filter is a function of its coefficients. - * It is possible for the gain through the filter to exceed 1.0 meaning that the filter increases the amplitude of certain frequencies. - * This means that an input signal with amplitude < 1.0 may result in an output > 1.0 and these are saturated or overflowed based on the implementation of the filter. - * To avoid this behavior the filter needs to be scaled down such that its peak gain < 1.0 or the input signal must be scaled down so that the combination of input and filter are never overflowed. - * - * \par - * Overflow and saturation: - * For Q15 and Q31 versions, it is described separately as part of the function specific documentation below. - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @param[in] *S points to an instance of the floating-point Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - */ - -void arm_biquad_cascade_df1_f32( - const arm_biquad_casd_df1_inst_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* source pointer */ - float32_t *pOut = pDst; /* destination pointer */ - float32_t *pState = S->pState; /* pState pointer */ - float32_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float32_t acc; /* Simulates the accumulator */ - float32_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float32_t Xn1, Xn2, Yn1, Yn2; /* Filter pState variables */ - float32_t Xn; /* temporary input */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the pState values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) - { - /* Read the first input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn2 = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn2; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the second input */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn1 = (b0 * Xn2) + (b1 * Xn) + (b2 * Xn1) + (a1 * Yn2) + (a2 * Yn1); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn1; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the third input */ - Xn1 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn2 = (b0 * Xn1) + (b1 * Xn2) + (b2 * Xn) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn2; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - - /* Read the forth input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - Yn1 = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn2) + (a2 * Yn1); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = Yn1; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = blockSize & 0x3U; - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - acc = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* decrement the loop counter */ - sample--; - - } - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent numStages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the pState values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - acc = (b0 * Xn) + (b1 * Xn1) + (b2 * Xn2) + (a1 * Yn1) + (a2 * Yn2); - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent numStages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - - /** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c deleted file mode 100644 index ab517d8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c +++ /dev/null @@ -1,273 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_fast_q15.c - * Description: Fast processing function for the Q15 Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * @param[in] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by two bits and lie in the range [-0.25 +0.25). - * The 2.30 accumulator is then shifted by postShift bits and the result truncated to 1.15 format by discarding the low 16 bits. - * - * \par - * Refer to the function arm_biquad_cascade_df1_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. Both the slow and the fast versions use the same instance structure. - * Use the function arm_biquad_cascade_df1_init_q15() to initialize the filter structure. - * - */ - -void arm_biquad_cascade_df1_fast_q15( - const arm_biquad_casd_df1_inst_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q31_t in; /* Temporary variable to hold input value */ - q31_t out; /* Temporary variable to hold output value */ - q31_t b0; /* Temporary variable to hold bo value */ - q31_t b1, a1; /* Filter coefficients */ - q31_t state_in, state_out; /* Filter state variables */ - q31_t acc; /* Accumulator */ - int32_t shift = (int32_t) (15 - S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = S->numStages; /* Stage loop counter */ - - - - do - { - - /* Read the b0 and 0 coefficients using SIMD */ - b0 = *__SIMD32(pCoeffs)++; - - /* Read the b1 and b2 coefficients using SIMD */ - b1 = *__SIMD32(pCoeffs)++; - - /* Read the a1 and a2 coefficients using SIMD */ - a1 = *__SIMD32(pCoeffs)++; - - /* Read the input state values from the state buffer: x[n-1], x[n-2] */ - state_in = *__SIMD32(pState)++; - - /* Read the output state values from the state buffer: y[n-1], y[n-2] */ - state_out = *__SIMD32(pState)--; - - /* Apply loop unrolling and compute 2 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - sample = blockSize >> 1U; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - ** a second loop below computes the remaining 1 sample. */ - while (sample > 0U) - { - - /* Read the input */ - in = *__SIMD32(pIn)++; - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUAD(b0, in); - /* acc = b1 * x[n-1] + acc += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, (in >> 16), 16); - state_out = __PKHBT(state_out >> 16, (out), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUADX(b0, in); - /* acc0 = b1 * x[n-1] , acc0 += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - - /* Store the output in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(state_out, out, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(out, state_out >> 16, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in >> 16, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - - if ((blockSize & 0x1U) != 0U) - { - /* Read the input */ - in = *pIn++; - - /* out = b0 * x[n] + 0 * 0 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out = __SMUAD(b0, in); - -#else - - out = __SMUADX(b0, in); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc = b1 * x[n-1], acc += b2 * x[n-2] + out */ - acc = __SMLAD(b1, state_in, out); - /* acc += a1 * y[n-1] + acc += a2 * y[n-2] */ - acc = __SMLAD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 and then saturation is applied */ - out = __SSAT((acc >> shift), 16); - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) out; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent (numStages - 1) occur in-place in the output buffer */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* Store the updated state variables back into the state array */ - *__SIMD32(pState)++ = state_in; - *__SIMD32(pState)++ = state_out; - - - /* Decrement the loop counter */ - stage--; - - } while (stage > 0U); -} - - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c deleted file mode 100644 index 00dbae1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c +++ /dev/null @@ -1,292 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_fast_q31.c - * Description: Processing function for the Q31 Fast Biquad cascade DirectFormI(DF1) filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by two bits and lie in the range [-0.25 +0.25). Use the intialization function - * arm_biquad_cascade_df1_init_q31() to initialize filter structure. - * - * \par - * Refer to the function arm_biquad_cascade_df1_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. Both the slow and the fast versions use the same instance structure. - * Use the function arm_biquad_cascade_df1_init_q31() to initialize the filter structure. - */ - -void arm_biquad_cascade_df1_fast_q31( - const arm_biquad_casd_df1_inst_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t acc = 0; /* accumulator */ - q31_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q31_t *pState = S->pState; /* pState pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q31_t Xn; /* temporary input */ - int32_t shift = (int32_t) S->postShift + 1; /* Shift to be applied to the output */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variables acc ... acc3 hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - /*acc = (q31_t) (((q63_t) b1 * Xn1) >> 32);*/ - mult_32x32_keep32_R(acc, b1, Xn1); - /* acc += b1 * x[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b0 * (Xn))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b0, Xn); - /* acc += b[2] * x[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b2, Xn2); - /* acc += a1 * y[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a1, Yn1); - /* acc += a2 * y[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a2, Yn2); - - /* The result is converted to 1.31 , Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Read the second input */ - Xn2 = *(pIn + 1U); - - /* Store the output in the destination buffer. */ - *pOut = Yn2; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - /*acc = (q31_t) (((q63_t) b0 * (Xn2)) >> 32);*/ - mult_32x32_keep32_R(acc, b0, Xn2); - /* acc += b1 * x[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b1, Xn); - /* acc += b[2] * x[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b2, Xn1); - /* acc += a1 * y[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a1, Yn2); - /* acc += a2 * y[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a2, Yn1); - - /* The result is converted to 1.31, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Read the third input */ - Xn1 = *(pIn + 2U); - - /* Store the output in the destination buffer. */ - *(pOut + 1U) = Yn1; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - /*acc = (q31_t) (((q63_t) b0 * (Xn1)) >> 32);*/ - mult_32x32_keep32_R(acc, b0, Xn1); - /* acc += b1 * x[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b1, Xn2); - /* acc += b[2] * x[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b2, Xn); - /* acc += a1 * y[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a1, Yn1); - /* acc += a2 * y[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a2, Yn2); - - /* The result is converted to 1.31, Yn2 variable is reused */ - Yn2 = acc << shift; - - /* Read the forth input */ - Xn = *(pIn + 3U); - - /* Store the output in the destination buffer. */ - *(pOut + 2U) = Yn2; - pIn += 4U; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - /*acc = (q31_t) (((q63_t) b0 * (Xn)) >> 32);*/ - mult_32x32_keep32_R(acc, b0, Xn); - /* acc += b1 * x[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b1, Xn1); - /* acc += b[2] * x[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b2, Xn2); - /* acc += a1 * y[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a1, Yn2); - /* acc += a2 * y[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a2, Yn1); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - Xn2 = Xn1; - - /* The result is converted to 1.31, Yn1 variable is reused */ - Yn1 = acc << shift; - - /* Xn1 = Xn */ - Xn1 = Xn; - - /* Store the output in the destination buffer. */ - *(pOut + 3U) = Yn1; - pOut += 4U; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3U); - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - /*acc = (q31_t) (((q63_t) b0 * (Xn)) >> 32);*/ - mult_32x32_keep32_R(acc, b0, Xn); - /* acc += b1 * x[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b1 * (Xn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b1, Xn1); - /* acc += b[2] * x[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) b2 * (Xn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, b2, Xn2); - /* acc += a1 * y[n-1] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a1 * (Yn1))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a1, Yn1); - /* acc += a2 * y[n-2] */ - /*acc = (q31_t) ((((q63_t) acc << 32) + ((q63_t) a2 * (Yn2))) >> 32);*/ - multAcc_32x32_keep32_R(acc, a2, Yn2); - - /* The result is converted to 1.31 */ - acc = acc << shift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = acc; - - /* Store the output in the destination buffer. */ - *pOut++ = acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c deleted file mode 100644 index 35ceed4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c +++ /dev/null @@ -1,97 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_init_f32.c - * Description: Floating-point Biquad cascade DirectFormI(DF1) filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * @brief Initialization function for the floating-point Biquad cascade filter. - * @param[in,out] *S points to an instance of the floating-point Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients array. - * @param[in] *pState points to the state array. - * @return none - * - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * - */ - -void arm_biquad_cascade_df1_init_f32( - arm_biquad_casd_df1_inst_f32 * S, - uint8_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4U * (uint32_t) numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c deleted file mode 100644 index 2b3243d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c +++ /dev/null @@ -1,99 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_init_q15.c - * Description: Q15 Biquad cascade DirectFormI(DF1) filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied to the accumulator result. Varies according to the coefficients format - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, 0, b11, b12, a11, a12, b20, 0, b21, b22, a21, a22, ...}
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 6*numStages values. - * The zero coefficient between b1 and b2 facilities use of 16-bit SIMD instructions on the Cortex-M4. - * - * \par - * The state variables are stored in the array pState. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df1_init_q15( - arm_biquad_casd_df1_inst_q15 * S, - uint8_t numStages, - q15_t * pCoeffs, - q15_t * pState, - int8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4U * (uint32_t) numStages) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c deleted file mode 100644 index 5c60e4a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c +++ /dev/null @@ -1,98 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_init_q31.c - * Description: Q31 Biquad cascade DirectFormI(DF1) filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] postShift Shift to be applied after the accumulator. Varies according to the coefficients format - * @return none - * - * Coefficient and State Ordering: - * - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState points to state variables array. - * Each Biquad stage has 4 state variables x[n-1], x[n-2], y[n-1], and y[n-2]. - * The state variables are arranged in the pState array as: - *
- *     {x[n-1], x[n-2], y[n-1], y[n-2]}
- * 
- * The 4 state variables for stage 1 are first, then the 4 state variables for stage 2, and so on. - * The state array has a total length of 4*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df1_init_q31( - arm_biquad_casd_df1_inst_q31 * S, - uint8_t numStages, - q31_t * pCoeffs, - q31_t * pState, - int8_t postShift) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign postShift to be applied to the output */ - S->postShift = postShift; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4U * (uint32_t) numStages) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c deleted file mode 100644 index 382b744..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c +++ /dev/null @@ -1,398 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_q15.c - * Description: Processing function for the Q15 Biquad cascade DirectFormI(DF1) filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @brief Processing function for the Q15 Biquad cascade filter. - * @param[in] *S points to an instance of the Q15 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is then shifted by postShift bits to truncate the result to 1.15 format by discarding the low 16 bits. - * Finally, the result is saturated to 1.15 format. - * - * \par - * Refer to the function arm_biquad_cascade_df1_fast_q15() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_biquad_cascade_df1_q15( - const arm_biquad_casd_df1_inst_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q31_t in; /* Temporary variable to hold input value */ - q31_t out; /* Temporary variable to hold output value */ - q31_t b0; /* Temporary variable to hold bo value */ - q31_t b1, a1; /* Filter coefficients */ - q31_t state_in, state_out; /* Filter state variables */ - q31_t acc_l, acc_h; - q63_t acc; /* Accumulator */ - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = (uint32_t) S->numStages; /* Stage loop counter */ - int32_t uShift = (32 - lShift); - - do - { - /* Read the b0 and 0 coefficients using SIMD */ - b0 = *__SIMD32(pCoeffs)++; - - /* Read the b1 and b2 coefficients using SIMD */ - b1 = *__SIMD32(pCoeffs)++; - - /* Read the a1 and a2 coefficients using SIMD */ - a1 = *__SIMD32(pCoeffs)++; - - /* Read the input state values from the state buffer: x[n-1], x[n-2] */ - state_in = *__SIMD32(pState)++; - - /* Read the output state values from the state buffer: y[n-1], y[n-2] */ - state_out = *__SIMD32(pState)--; - - /* Apply loop unrolling and compute 2 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - sample = blockSize >> 1U; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - ** a second loop below computes the remaining 1 sample. */ - while (sample > 0U) - { - - /* Read the input */ - in = *__SIMD32(pIn)++; - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUAD(b0, in); - - /* acc += b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, (in >> 16), 16); - state_out = __PKHBT(state_out >> 16, (out), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* out = b0 * x[n] + 0 * 0 */ - out = __SMUADX(b0, in); - /* acc += b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Store the output in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(state_out, out, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(out, state_out >> 16, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in >> 16, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Decrement the loop counter */ - sample--; - - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - - if ((blockSize & 0x1U) != 0U) - { - /* Read the input */ - in = *pIn++; - - /* out = b0 * x[n] + 0 * 0 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out = __SMUAD(b0, in); - -#else - - out = __SMUADX(b0, in); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc = b1 * x[n-1] + b2 * x[n-2] + out */ - acc = __SMLALD(b1, state_in, out); - /* acc += a1 * y[n-1] + a2 * y[n-2] */ - acc = __SMLALD(a1, state_out, acc); - - /* The result is converted from 3.29 to 1.31 if postShift = 1, and then saturation is applied */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - out = (uint32_t) acc_l >> lShift | acc_h << uShift; - - out = __SSAT(out, 16); - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) out; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - /* x[n-N], x[n-N-1] are packed together to make state_in of type q31 */ - /* y[n-N], y[n-N-1] are packed together to make state_out of type q31 */ - -#ifndef ARM_MATH_BIG_ENDIAN - - state_in = __PKHBT(in, state_in, 16); - state_out = __PKHBT(out, state_out, 16); - -#else - - state_in = __PKHBT(state_in >> 16, in, 16); - state_out = __PKHBT(state_out >> 16, out, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } - - /* The first stage goes from the input wire to the output wire. */ - /* Subsequent numStages occur in-place in the output wire */ - pIn = pDst; - - /* Reset the output pointer */ - pOut = pDst; - - /* Store the updated state variables back into the state array */ - *__SIMD32(pState)++ = state_in; - *__SIMD32(pState)++ = state_out; - - - /* Decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn = pSrc; /* Source pointer */ - q15_t *pOut = pDst; /* Destination pointer */ - q15_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q15_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q15_t Xn; /* temporary input */ - q63_t acc; /* Accumulator */ - int32_t shift = (15 - (int32_t) S->postShift); /* Post shift */ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - uint32_t sample, stage = (uint32_t) S->numStages; /* Stage loop counter */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - pCoeffs++; // skip the 0 coefficient - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q31_t) b0 *Xn; - - /* acc += b1 * x[n-1] */ - acc += (q31_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q31_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q31_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q31_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = __SSAT((acc >> shift), 16); - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q15_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c deleted file mode 100644 index 4ca3f85..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c +++ /dev/null @@ -1,392 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df1_q31.c - * Description: Processing function for the Q31 Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF1 - * @{ - */ - -/** - * @brief Processing function for the Q31 Biquad cascade filter. - * @param[in] *S points to an instance of the Q31 Biquad cascade structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2 bits and lie in the range [-0.25 +0.25). - * After all 5 multiply-accumulates are performed, the 2.62 accumulator is shifted by postShift bits and the result truncated to - * 1.31 format by discarding the low 32 bits. - * - * \par - * Refer to the function arm_biquad_cascade_df1_fast_q31() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_biquad_cascade_df1_q31( - const arm_biquad_casd_df1_inst_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q63_t acc; /* accumulator */ - uint32_t uShift = ((uint32_t) S->postShift + 1U); - uint32_t lShift = 32U - uShift; /* Shift to be applied to the output */ - q31_t *pIn = pSrc; /* input pointer initialization */ - q31_t *pOut = pDst; /* output pointer initialization */ - q31_t *pState = S->pState; /* pState pointer initialization */ - q31_t *pCoeffs = S->pCoeffs; /* coeff pointer initialization */ - q31_t Xn1, Xn2, Yn1, Yn2; /* Filter state variables */ - q31_t b0, b1, b2, a1, a2; /* Filter coefficients */ - q31_t Xn; /* temporary input */ - uint32_t sample, stage = S->numStages; /* loop counters */ - - -#if defined (ARM_MATH_DSP) - - q31_t acc_l, acc_h; /* temporary output variables */ - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - /* The variable acc hold output values that are being computed: - * - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 , Yn2 variable is reused */ - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - Yn2 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn2; - - /* Read the second input */ - Xn2 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn2; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn1; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn2; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn1; - - - /* The result is converted to 1.31, Yn1 variable is reused */ - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - - /* Apply shift for lower part of acc and upper part of acc */ - Yn1 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn1; - - /* Read the third input */ - Xn1 = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn1; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn2; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31, Yn2 variable is reused */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - - /* Apply shift for lower part of acc and upper part of acc */ - Yn2 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn2; - - /* Read the forth input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn2; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn1; - - /* The result is converted to 1.31, Yn1 variable is reused */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - Yn1 = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - - /* Store the output in the destination buffer. */ - *pOut++ = Yn1; - - /* decrement the loop counter */ - sample--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - sample = (blockSize & 0x3U); - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = acc >> lShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q31_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); - -#else - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /* Reading the state values */ - Xn1 = pState[0]; - Xn2 = pState[1]; - Yn1 = pState[2]; - Yn2 = pState[3]; - - /* The variables acc holds the output value that is computed: - * acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] - */ - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn = *pIn++; - - /* acc = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2] */ - /* acc = b0 * x[n] */ - acc = (q63_t) b0 *Xn; - - /* acc += b1 * x[n-1] */ - acc += (q63_t) b1 *Xn1; - /* acc += b[2] * x[n-2] */ - acc += (q63_t) b2 *Xn2; - /* acc += a1 * y[n-1] */ - acc += (q63_t) a1 *Yn1; - /* acc += a2 * y[n-2] */ - acc += (q63_t) a2 *Yn2; - - /* The result is converted to 1.31 */ - acc = acc >> lShift; - - /* Every time after the output is computed state should be updated. */ - /* The states should be updated as: */ - /* Xn2 = Xn1 */ - /* Xn1 = Xn */ - /* Yn2 = Yn1 */ - /* Yn1 = acc */ - Xn2 = Xn1; - Xn1 = Xn; - Yn2 = Yn1; - Yn1 = (q31_t) acc; - - /* Store the output in the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* decrement the loop counter */ - sample--; - } - - /* The first stage goes from the input buffer to the output buffer. */ - /* Subsequent stages occur in-place in the output buffer */ - pIn = pDst; - - /* Reset to destination pointer */ - pOut = pDst; - - /* Store the updated state variables back into the pState array */ - *pState++ = Xn1; - *pState++ = Xn2; - *pState++ = Yn1; - *pState++ = Yn2; - - } while (--stage); - -#endif /* #if defined (ARM_MATH_DSP) */ -} - - - - -/** - * @} end of BiquadCascadeDF1 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c deleted file mode 100644 index c5a81d4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c +++ /dev/null @@ -1,590 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df2T_f32.c - * Description: Processing function for floating-point transposed direct form II Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** -* @ingroup groupFilters -*/ - -/** -* @defgroup BiquadCascadeDF2T Biquad Cascade IIR Filters Using a Direct Form II Transposed Structure -* -* This set of functions implements arbitrary order recursive (IIR) filters using a transposed direct form II structure. -* The filters are implemented as a cascade of second order Biquad sections. -* These functions provide a slight memory savings as compared to the direct form I Biquad filter functions. -* Only floating-point data is supported. -* -* This function operate on blocks of input and output data and each call to the function -* processes blockSize samples through the filter. -* pSrc points to the array of input data and -* pDst points to the array of output data. -* Both arrays contain blockSize values. -* -* \par Algorithm -* Each Biquad stage implements a second order filter using the difference equation: -*
-*    y[n] = b0 * x[n] + d1
-*    d1 = b1 * x[n] + a1 * y[n] + d2
-*    d2 = b2 * x[n] + a2 * y[n]
-* 
-* where d1 and d2 represent the two state values. -* -* \par -* A Biquad filter using a transposed Direct Form II structure is shown below. -* \image html BiquadDF2Transposed.gif "Single transposed Direct Form II Biquad" -* Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. -* Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. -* Pay careful attention to the sign of the feedback coefficients. -* Some design tools flip the sign of the feedback coefficients: -*
-*    y[n] = b0 * x[n] + d1;
-*    d1 = b1 * x[n] - a1 * y[n] + d2;
-*    d2 = b2 * x[n] - a2 * y[n];
-* 
-* In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. -* -* \par -* Higher order filters are realized as a cascade of second order sections. -* numStages refers to the number of second order stages used. -* For example, an 8th order filter would be realized with numStages=4 second order stages. -* A 9th order filter would be realized with numStages=5 second order stages with the -* coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). -* -* \par -* pState points to the state variable array. -* Each Biquad stage has 2 state variables d1 and d2. -* The state variables are arranged in the pState array as: -*
-*     {d11, d12, d21, d22, ...}
-* 
-* where d1x refers to the state variables for the first Biquad and -* d2x refers to the state variables for the second Biquad. -* The state array has a total length of 2*numStages values. -* The state variables are updated after each block of data is processed; the coefficients are untouched. -* -* \par -* The CMSIS library contains Biquad filters in both Direct Form I and transposed Direct Form II. -* The advantage of the Direct Form I structure is that it is numerically more robust for fixed-point data types. -* That is why the Direct Form I structure supports Q15 and Q31 data types. -* The transposed Direct Form II structure, on the other hand, requires a wide dynamic range for the state variables d1 and d2. -* Because of this, the CMSIS library only has a floating-point version of the Direct Form II Biquad. -* The advantage of the Direct Form II Biquad is that it requires half the number of state variables, 2 rather than 4, per Biquad stage. -* -* \par Instance Structure -* The coefficients and state variables for a filter are stored together in an instance data structure. -* A separate instance structure must be defined for each filter. -* Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. -* -* \par Init Functions -* There is also an associated initialization function. -* The initialization function performs following operations: -* - Sets the values of the internal structure fields. -* - Zeros out the values in the state buffer. -* To do this manually without calling the init function, assign the follow subfields of the instance structure: -* numStages, pCoeffs, pState. Also set all of the values in pState to zero. -* -* \par -* Use of the initialization function is optional. -* However, if the initialization function is used, then the instance structure cannot be placed into a const data section. -* To place an instance structure into a const data section, the instance structure must be manually initialized. -* Set the values in the state buffer to zeros before static initialization. -* For example, to statically initialize the instance structure use -*
-*     arm_biquad_cascade_df2T_instance_f32 S1 = {numStages, pState, pCoeffs};
-* 
-* where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer. -* pCoeffs is the address of the coefficient buffer; -* -*/ - -/** -* @addtogroup BiquadCascadeDF2T -* @{ -*/ - -/** -* @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. -* @param[in] *S points to an instance of the filter data structure. -* @param[in] *pSrc points to the block of input data. -* @param[out] *pDst points to the block of output data -* @param[in] blockSize number of samples to process. -* @return none. -*/ - - -LOW_OPTIMIZATION_ENTER -void arm_biquad_cascade_df2T_f32( -const arm_biquad_cascade_df2T_instance_f32 * S, -float32_t * pSrc, -float32_t * pDst, -uint32_t blockSize) -{ - - float32_t *pIn = pSrc; /* source pointer */ - float32_t *pOut = pDst; /* destination pointer */ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float32_t acc1; /* accumulator */ - float32_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float32_t Xn1; /* temporary input */ - float32_t d1, d2; /* state variables */ - uint32_t sample, stage = S->numStages; /* loop counters */ - -#if defined(ARM_MATH_CM7) - - float32_t Xn2, Xn3, Xn4, Xn5, Xn6, Xn7, Xn8; /* Input State variables */ - float32_t Xn9, Xn10, Xn11, Xn12, Xn13, Xn14, Xn15, Xn16; - float32_t acc2, acc3, acc4, acc5, acc6, acc7; /* Simulates the accumulator */ - float32_t acc8, acc9, acc10, acc11, acc12, acc13, acc14, acc15, acc16; - - do - { - /* Reading the coefficients */ - b0 = pCoeffs[0]; - b1 = pCoeffs[1]; - b2 = pCoeffs[2]; - a1 = pCoeffs[3]; - /* Apply loop unrolling and compute 16 output values simultaneously. */ - sample = blockSize >> 4U; - a2 = pCoeffs[4]; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - pCoeffs += 5U; - - - /* First part of the processing with loop unrolling. Compute 16 outputs at a time. - ** a second loop below computes the remaining 1 to 15 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the first 2 inputs. 2 cycles */ - Xn1 = pIn[0 ]; - Xn2 = pIn[1 ]; - - /* Sample 1. 5 cycles */ - Xn3 = pIn[2 ]; - acc1 = b0 * Xn1 + d1; - - Xn4 = pIn[3 ]; - d1 = b1 * Xn1 + d2; - - Xn5 = pIn[4 ]; - d2 = b2 * Xn1; - - Xn6 = pIn[5 ]; - d1 += a1 * acc1; - - Xn7 = pIn[6 ]; - d2 += a2 * acc1; - - /* Sample 2. 5 cycles */ - Xn8 = pIn[7 ]; - acc2 = b0 * Xn2 + d1; - - Xn9 = pIn[8 ]; - d1 = b1 * Xn2 + d2; - - Xn10 = pIn[9 ]; - d2 = b2 * Xn2; - - Xn11 = pIn[10]; - d1 += a1 * acc2; - - Xn12 = pIn[11]; - d2 += a2 * acc2; - - /* Sample 3. 5 cycles */ - Xn13 = pIn[12]; - acc3 = b0 * Xn3 + d1; - - Xn14 = pIn[13]; - d1 = b1 * Xn3 + d2; - - Xn15 = pIn[14]; - d2 = b2 * Xn3; - - Xn16 = pIn[15]; - d1 += a1 * acc3; - - pIn += 16; - d2 += a2 * acc3; - - /* Sample 4. 5 cycles */ - acc4 = b0 * Xn4 + d1; - d1 = b1 * Xn4 + d2; - d2 = b2 * Xn4; - d1 += a1 * acc4; - d2 += a2 * acc4; - - /* Sample 5. 5 cycles */ - acc5 = b0 * Xn5 + d1; - d1 = b1 * Xn5 + d2; - d2 = b2 * Xn5; - d1 += a1 * acc5; - d2 += a2 * acc5; - - /* Sample 6. 5 cycles */ - acc6 = b0 * Xn6 + d1; - d1 = b1 * Xn6 + d2; - d2 = b2 * Xn6; - d1 += a1 * acc6; - d2 += a2 * acc6; - - /* Sample 7. 5 cycles */ - acc7 = b0 * Xn7 + d1; - d1 = b1 * Xn7 + d2; - d2 = b2 * Xn7; - d1 += a1 * acc7; - d2 += a2 * acc7; - - /* Sample 8. 5 cycles */ - acc8 = b0 * Xn8 + d1; - d1 = b1 * Xn8 + d2; - d2 = b2 * Xn8; - d1 += a1 * acc8; - d2 += a2 * acc8; - - /* Sample 9. 5 cycles */ - acc9 = b0 * Xn9 + d1; - d1 = b1 * Xn9 + d2; - d2 = b2 * Xn9; - d1 += a1 * acc9; - d2 += a2 * acc9; - - /* Sample 10. 5 cycles */ - acc10 = b0 * Xn10 + d1; - d1 = b1 * Xn10 + d2; - d2 = b2 * Xn10; - d1 += a1 * acc10; - d2 += a2 * acc10; - - /* Sample 11. 5 cycles */ - acc11 = b0 * Xn11 + d1; - d1 = b1 * Xn11 + d2; - d2 = b2 * Xn11; - d1 += a1 * acc11; - d2 += a2 * acc11; - - /* Sample 12. 5 cycles */ - acc12 = b0 * Xn12 + d1; - d1 = b1 * Xn12 + d2; - d2 = b2 * Xn12; - d1 += a1 * acc12; - d2 += a2 * acc12; - - /* Sample 13. 5 cycles */ - acc13 = b0 * Xn13 + d1; - d1 = b1 * Xn13 + d2; - d2 = b2 * Xn13; - - pOut[0 ] = acc1 ; - d1 += a1 * acc13; - - pOut[1 ] = acc2 ; - d2 += a2 * acc13; - - /* Sample 14. 5 cycles */ - pOut[2 ] = acc3 ; - acc14 = b0 * Xn14 + d1; - - pOut[3 ] = acc4 ; - d1 = b1 * Xn14 + d2; - - pOut[4 ] = acc5 ; - d2 = b2 * Xn14; - - pOut[5 ] = acc6 ; - d1 += a1 * acc14; - - pOut[6 ] = acc7 ; - d2 += a2 * acc14; - - /* Sample 15. 5 cycles */ - pOut[7 ] = acc8 ; - pOut[8 ] = acc9 ; - acc15 = b0 * Xn15 + d1; - - pOut[9 ] = acc10; - d1 = b1 * Xn15 + d2; - - pOut[10] = acc11; - d2 = b2 * Xn15; - - pOut[11] = acc12; - d1 += a1 * acc15; - - pOut[12] = acc13; - d2 += a2 * acc15; - - /* Sample 16. 5 cycles */ - pOut[13] = acc14; - acc16 = b0 * Xn16 + d1; - - pOut[14] = acc15; - d1 = b1 * Xn16 + d2; - - pOut[15] = acc16; - d2 = b2 * Xn16; - - sample--; - d1 += a1 * acc16; - - pOut += 16; - d2 += a2 * acc16; - } - - sample = blockSize & 0xFu; - while (sample > 0U) { - Xn1 = *pIn; - acc1 = b0 * Xn1 + d1; - - pIn++; - d1 = b1 * Xn1 + d2; - - *pOut = acc1; - d2 = b2 * Xn1; - - pOut++; - d1 += a1 * acc1; - - sample--; - d2 += a2 * acc1; - } - - /* Store the updated state variables back into the state array */ - pState[0] = d1; - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - pState[1] = d2; - /* decrement the loop counter */ - stage--; - - pState += 2U; - - /*Reset the output working pointer */ - pOut = pDst; - - } while (stage > 0U); - -#elif defined(ARM_MATH_CM0_FAMILY) - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn1 = *pIn++; - - /* y[n] = b0 * x[n] + d1 */ - acc1 = (b0 * Xn1) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1 = ((b1 * Xn1) + (a1 * acc1)) + d2; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2 = (b2 * Xn1) + (a2 * acc1); - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#else - - float32_t Xn2, Xn3, Xn4; /* Input State variables */ - float32_t acc2, acc3, acc4; /* accumulator */ - - - float32_t p0, p1, p2, p3, p4, A1; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the four inputs */ - Xn1 = pIn[0]; - Xn2 = pIn[1]; - Xn3 = pIn[2]; - Xn4 = pIn[3]; - pIn += 4; - - p0 = b0 * Xn1; - p1 = b1 * Xn1; - acc1 = p0 + d1; - p0 = b0 * Xn2; - p3 = a1 * acc1; - p2 = b2 * Xn1; - A1 = p1 + p3; - p4 = a2 * acc1; - d1 = A1 + d2; - d2 = p2 + p4; - - p1 = b1 * Xn2; - acc2 = p0 + d1; - p0 = b0 * Xn3; - p3 = a1 * acc2; - p2 = b2 * Xn2; - A1 = p1 + p3; - p4 = a2 * acc2; - d1 = A1 + d2; - d2 = p2 + p4; - - p1 = b1 * Xn3; - acc3 = p0 + d1; - p0 = b0 * Xn4; - p3 = a1 * acc3; - p2 = b2 * Xn3; - A1 = p1 + p3; - p4 = a2 * acc3; - d1 = A1 + d2; - d2 = p2 + p4; - - acc4 = p0 + d1; - p1 = b1 * Xn4; - p3 = a1 * acc4; - p2 = b2 * Xn4; - A1 = p1 + p3; - p4 = a2 * acc4; - d1 = A1 + d2; - d2 = p2 + p4; - - pOut[0] = acc1; - pOut[1] = acc2; - pOut[2] = acc3; - pOut[3] = acc4; - pOut += 4; - - sample--; - } - - sample = blockSize & 0x3U; - while (sample > 0U) { - Xn1 = *pIn++; - - p0 = b0 * Xn1; - p1 = b1 * Xn1; - acc1 = p0 + d1; - p3 = a1 * acc1; - p2 = b2 * Xn1; - A1 = p1 + p3; - p4 = a2 * acc1; - d1 = A1 + d2; - d2 = p2 + p4; - - *pOut++ = acc1; - - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#endif - -} -LOW_OPTIMIZATION_EXIT - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c deleted file mode 100644 index aad9fbb..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c +++ /dev/null @@ -1,590 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df2T_f64.c - * Description: Processing function for floating-point transposed direct form II Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** -* @ingroup groupFilters -*/ - -/** -* @defgroup BiquadCascadeDF2T Biquad Cascade IIR Filters Using a Direct Form II Transposed Structure -* -* This set of functions implements arbitrary order recursive (IIR) filters using a transposed direct form II structure. -* The filters are implemented as a cascade of second order Biquad sections. -* These functions provide a slight memory savings as compared to the direct form I Biquad filter functions. -* Only floating-point data is supported. -* -* This function operate on blocks of input and output data and each call to the function -* processes blockSize samples through the filter. -* pSrc points to the array of input data and -* pDst points to the array of output data. -* Both arrays contain blockSize values. -* -* \par Algorithm -* Each Biquad stage implements a second order filter using the difference equation: -*
-*    y[n] = b0 * x[n] + d1
-*    d1 = b1 * x[n] + a1 * y[n] + d2
-*    d2 = b2 * x[n] + a2 * y[n]
-* 
-* where d1 and d2 represent the two state values. -* -* \par -* A Biquad filter using a transposed Direct Form II structure is shown below. -* \image html BiquadDF2Transposed.gif "Single transposed Direct Form II Biquad" -* Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. -* Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. -* Pay careful attention to the sign of the feedback coefficients. -* Some design tools flip the sign of the feedback coefficients: -*
-*    y[n] = b0 * x[n] + d1;
-*    d1 = b1 * x[n] - a1 * y[n] + d2;
-*    d2 = b2 * x[n] - a2 * y[n];
-* 
-* In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. -* -* \par -* Higher order filters are realized as a cascade of second order sections. -* numStages refers to the number of second order stages used. -* For example, an 8th order filter would be realized with numStages=4 second order stages. -* A 9th order filter would be realized with numStages=5 second order stages with the -* coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). -* -* \par -* pState points to the state variable array. -* Each Biquad stage has 2 state variables d1 and d2. -* The state variables are arranged in the pState array as: -*
-*     {d11, d12, d21, d22, ...}
-* 
-* where d1x refers to the state variables for the first Biquad and -* d2x refers to the state variables for the second Biquad. -* The state array has a total length of 2*numStages values. -* The state variables are updated after each block of data is processed; the coefficients are untouched. -* -* \par -* The CMSIS library contains Biquad filters in both Direct Form I and transposed Direct Form II. -* The advantage of the Direct Form I structure is that it is numerically more robust for fixed-point data types. -* That is why the Direct Form I structure supports Q15 and Q31 data types. -* The transposed Direct Form II structure, on the other hand, requires a wide dynamic range for the state variables d1 and d2. -* Because of this, the CMSIS library only has a floating-point version of the Direct Form II Biquad. -* The advantage of the Direct Form II Biquad is that it requires half the number of state variables, 2 rather than 4, per Biquad stage. -* -* \par Instance Structure -* The coefficients and state variables for a filter are stored together in an instance data structure. -* A separate instance structure must be defined for each filter. -* Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. -* -* \par Init Functions -* There is also an associated initialization function. -* The initialization function performs following operations: -* - Sets the values of the internal structure fields. -* - Zeros out the values in the state buffer. -* To do this manually without calling the init function, assign the follow subfields of the instance structure: -* numStages, pCoeffs, pState. Also set all of the values in pState to zero. -* -* \par -* Use of the initialization function is optional. -* However, if the initialization function is used, then the instance structure cannot be placed into a const data section. -* To place an instance structure into a const data section, the instance structure must be manually initialized. -* Set the values in the state buffer to zeros before static initialization. -* For example, to statically initialize the instance structure use -*
-*     arm_biquad_cascade_df2T_instance_f64 S1 = {numStages, pState, pCoeffs};
-* 
-* where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer. -* pCoeffs is the address of the coefficient buffer; -* -*/ - -/** -* @addtogroup BiquadCascadeDF2T -* @{ -*/ - -/** -* @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. -* @param[in] *S points to an instance of the filter data structure. -* @param[in] *pSrc points to the block of input data. -* @param[out] *pDst points to the block of output data -* @param[in] blockSize number of samples to process. -* @return none. -*/ - - -LOW_OPTIMIZATION_ENTER -void arm_biquad_cascade_df2T_f64( -const arm_biquad_cascade_df2T_instance_f64 * S, -float64_t * pSrc, -float64_t * pDst, -uint32_t blockSize) -{ - - float64_t *pIn = pSrc; /* source pointer */ - float64_t *pOut = pDst; /* destination pointer */ - float64_t *pState = S->pState; /* State pointer */ - float64_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float64_t acc1; /* accumulator */ - float64_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float64_t Xn1; /* temporary input */ - float64_t d1, d2; /* state variables */ - uint32_t sample, stage = S->numStages; /* loop counters */ - -#if defined(ARM_MATH_CM7) - - float64_t Xn2, Xn3, Xn4, Xn5, Xn6, Xn7, Xn8; /* Input State variables */ - float64_t Xn9, Xn10, Xn11, Xn12, Xn13, Xn14, Xn15, Xn16; - float64_t acc2, acc3, acc4, acc5, acc6, acc7; /* Simulates the accumulator */ - float64_t acc8, acc9, acc10, acc11, acc12, acc13, acc14, acc15, acc16; - - do - { - /* Reading the coefficients */ - b0 = pCoeffs[0]; - b1 = pCoeffs[1]; - b2 = pCoeffs[2]; - a1 = pCoeffs[3]; - /* Apply loop unrolling and compute 16 output values simultaneously. */ - sample = blockSize >> 4U; - a2 = pCoeffs[4]; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - pCoeffs += 5U; - - - /* First part of the processing with loop unrolling. Compute 16 outputs at a time. - ** a second loop below computes the remaining 1 to 15 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the first 2 inputs. 2 cycles */ - Xn1 = pIn[0 ]; - Xn2 = pIn[1 ]; - - /* Sample 1. 5 cycles */ - Xn3 = pIn[2 ]; - acc1 = b0 * Xn1 + d1; - - Xn4 = pIn[3 ]; - d1 = b1 * Xn1 + d2; - - Xn5 = pIn[4 ]; - d2 = b2 * Xn1; - - Xn6 = pIn[5 ]; - d1 += a1 * acc1; - - Xn7 = pIn[6 ]; - d2 += a2 * acc1; - - /* Sample 2. 5 cycles */ - Xn8 = pIn[7 ]; - acc2 = b0 * Xn2 + d1; - - Xn9 = pIn[8 ]; - d1 = b1 * Xn2 + d2; - - Xn10 = pIn[9 ]; - d2 = b2 * Xn2; - - Xn11 = pIn[10]; - d1 += a1 * acc2; - - Xn12 = pIn[11]; - d2 += a2 * acc2; - - /* Sample 3. 5 cycles */ - Xn13 = pIn[12]; - acc3 = b0 * Xn3 + d1; - - Xn14 = pIn[13]; - d1 = b1 * Xn3 + d2; - - Xn15 = pIn[14]; - d2 = b2 * Xn3; - - Xn16 = pIn[15]; - d1 += a1 * acc3; - - pIn += 16; - d2 += a2 * acc3; - - /* Sample 4. 5 cycles */ - acc4 = b0 * Xn4 + d1; - d1 = b1 * Xn4 + d2; - d2 = b2 * Xn4; - d1 += a1 * acc4; - d2 += a2 * acc4; - - /* Sample 5. 5 cycles */ - acc5 = b0 * Xn5 + d1; - d1 = b1 * Xn5 + d2; - d2 = b2 * Xn5; - d1 += a1 * acc5; - d2 += a2 * acc5; - - /* Sample 6. 5 cycles */ - acc6 = b0 * Xn6 + d1; - d1 = b1 * Xn6 + d2; - d2 = b2 * Xn6; - d1 += a1 * acc6; - d2 += a2 * acc6; - - /* Sample 7. 5 cycles */ - acc7 = b0 * Xn7 + d1; - d1 = b1 * Xn7 + d2; - d2 = b2 * Xn7; - d1 += a1 * acc7; - d2 += a2 * acc7; - - /* Sample 8. 5 cycles */ - acc8 = b0 * Xn8 + d1; - d1 = b1 * Xn8 + d2; - d2 = b2 * Xn8; - d1 += a1 * acc8; - d2 += a2 * acc8; - - /* Sample 9. 5 cycles */ - acc9 = b0 * Xn9 + d1; - d1 = b1 * Xn9 + d2; - d2 = b2 * Xn9; - d1 += a1 * acc9; - d2 += a2 * acc9; - - /* Sample 10. 5 cycles */ - acc10 = b0 * Xn10 + d1; - d1 = b1 * Xn10 + d2; - d2 = b2 * Xn10; - d1 += a1 * acc10; - d2 += a2 * acc10; - - /* Sample 11. 5 cycles */ - acc11 = b0 * Xn11 + d1; - d1 = b1 * Xn11 + d2; - d2 = b2 * Xn11; - d1 += a1 * acc11; - d2 += a2 * acc11; - - /* Sample 12. 5 cycles */ - acc12 = b0 * Xn12 + d1; - d1 = b1 * Xn12 + d2; - d2 = b2 * Xn12; - d1 += a1 * acc12; - d2 += a2 * acc12; - - /* Sample 13. 5 cycles */ - acc13 = b0 * Xn13 + d1; - d1 = b1 * Xn13 + d2; - d2 = b2 * Xn13; - - pOut[0 ] = acc1 ; - d1 += a1 * acc13; - - pOut[1 ] = acc2 ; - d2 += a2 * acc13; - - /* Sample 14. 5 cycles */ - pOut[2 ] = acc3 ; - acc14 = b0 * Xn14 + d1; - - pOut[3 ] = acc4 ; - d1 = b1 * Xn14 + d2; - - pOut[4 ] = acc5 ; - d2 = b2 * Xn14; - - pOut[5 ] = acc6 ; - d1 += a1 * acc14; - - pOut[6 ] = acc7 ; - d2 += a2 * acc14; - - /* Sample 15. 5 cycles */ - pOut[7 ] = acc8 ; - pOut[8 ] = acc9 ; - acc15 = b0 * Xn15 + d1; - - pOut[9 ] = acc10; - d1 = b1 * Xn15 + d2; - - pOut[10] = acc11; - d2 = b2 * Xn15; - - pOut[11] = acc12; - d1 += a1 * acc15; - - pOut[12] = acc13; - d2 += a2 * acc15; - - /* Sample 16. 5 cycles */ - pOut[13] = acc14; - acc16 = b0 * Xn16 + d1; - - pOut[14] = acc15; - d1 = b1 * Xn16 + d2; - - pOut[15] = acc16; - d2 = b2 * Xn16; - - sample--; - d1 += a1 * acc16; - - pOut += 16; - d2 += a2 * acc16; - } - - sample = blockSize & 0xFu; - while (sample > 0U) { - Xn1 = *pIn; - acc1 = b0 * Xn1 + d1; - - pIn++; - d1 = b1 * Xn1 + d2; - - *pOut = acc1; - d2 = b2 * Xn1; - - pOut++; - d1 += a1 * acc1; - - sample--; - d2 += a2 * acc1; - } - - /* Store the updated state variables back into the state array */ - pState[0] = d1; - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - pState[1] = d2; - /* decrement the loop counter */ - stage--; - - pState += 2U; - - /*Reset the output working pointer */ - pOut = pDst; - - } while (stage > 0U); - -#elif defined(ARM_MATH_CM0_FAMILY) - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn1 = *pIn++; - - /* y[n] = b0 * x[n] + d1 */ - acc1 = (b0 * Xn1) + d1; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1 = ((b1 * Xn1) + (a1 * acc1)) + d2; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2 = (b2 * Xn1) + (a2 * acc1); - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#else - - float64_t Xn2, Xn3, Xn4; /* Input State variables */ - float64_t acc2, acc3, acc4; /* accumulator */ - - - float64_t p0, p1, p2, p3, p4, A1; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - - /*Reading the state values */ - d1 = pState[0]; - d2 = pState[1]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the four inputs */ - Xn1 = pIn[0]; - Xn2 = pIn[1]; - Xn3 = pIn[2]; - Xn4 = pIn[3]; - pIn += 4; - - p0 = b0 * Xn1; - p1 = b1 * Xn1; - acc1 = p0 + d1; - p0 = b0 * Xn2; - p3 = a1 * acc1; - p2 = b2 * Xn1; - A1 = p1 + p3; - p4 = a2 * acc1; - d1 = A1 + d2; - d2 = p2 + p4; - - p1 = b1 * Xn2; - acc2 = p0 + d1; - p0 = b0 * Xn3; - p3 = a1 * acc2; - p2 = b2 * Xn2; - A1 = p1 + p3; - p4 = a2 * acc2; - d1 = A1 + d2; - d2 = p2 + p4; - - p1 = b1 * Xn3; - acc3 = p0 + d1; - p0 = b0 * Xn4; - p3 = a1 * acc3; - p2 = b2 * Xn3; - A1 = p1 + p3; - p4 = a2 * acc3; - d1 = A1 + d2; - d2 = p2 + p4; - - acc4 = p0 + d1; - p1 = b1 * Xn4; - p3 = a1 * acc4; - p2 = b2 * Xn4; - A1 = p1 + p3; - p4 = a2 * acc4; - d1 = A1 + d2; - d2 = p2 + p4; - - pOut[0] = acc1; - pOut[1] = acc2; - pOut[2] = acc3; - pOut[3] = acc4; - pOut += 4; - - sample--; - } - - sample = blockSize & 0x3U; - while (sample > 0U) { - Xn1 = *pIn++; - - p0 = b0 * Xn1; - p1 = b1 * Xn1; - acc1 = p0 + d1; - p3 = a1 * acc1; - p2 = b2 * Xn1; - A1 = p1 + p3; - p4 = a2 * acc1; - d1 = A1 + d2; - d2 = p2 + p4; - - *pOut++ = acc1; - - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1; - *pState++ = d2; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#endif - -} -LOW_OPTIMIZATION_EXIT - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c deleted file mode 100644 index 1801799..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c +++ /dev/null @@ -1,89 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df2T_init_f32.c - * Description: Initialization function for floating-point transposed direct form II Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF2T - * @{ - */ - -/** - * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. - * @param[in,out] *S points to an instance of the filter data structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @return none - * - * Coefficient and State Ordering: - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 2 state variables d1, and d2. - * The 2 state variables for stage 1 are first, then the 2 state variables for stage 2, and so on. - * The state array has a total length of 2*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df2T_init_f32( - arm_biquad_cascade_df2T_instance_f32 * S, - uint8_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 2 * numStages */ - memset(pState, 0, (2U * (uint32_t) numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c deleted file mode 100644 index 3d0a508..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c +++ /dev/null @@ -1,89 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_df2T_init_f64.c - * Description: Initialization function for floating-point transposed direct form II Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF2T - * @{ - */ - -/** - * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. - * @param[in,out] *S points to an instance of the filter data structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @return none - * - * Coefficient and State Ordering: - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 2 state variables d1, and d2. - * The 2 state variables for stage 1 are first, then the 2 state variables for stage 2, and so on. - * The state array has a total length of 2*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_df2T_init_f64( - arm_biquad_cascade_df2T_instance_f64 * S, - uint8_t numStages, - float64_t * pCoeffs, - float64_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 2 * numStages */ - memset(pState, 0, (2U * (uint32_t) numStages) * sizeof(float64_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c deleted file mode 100644 index b7e9359..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c +++ /dev/null @@ -1,670 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_stereo_df2T_f32.c - * Description: Processing function for floating-point transposed direct form II Biquad cascade filter. 2 channels - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** -* @ingroup groupFilters -*/ - -/** -* @defgroup BiquadCascadeDF2T Biquad Cascade IIR Filters Using a Direct Form II Transposed Structure -* -* This set of functions implements arbitrary order recursive (IIR) filters using a transposed direct form II structure. -* The filters are implemented as a cascade of second order Biquad sections. -* These functions provide a slight memory savings as compared to the direct form I Biquad filter functions. -* Only floating-point data is supported. -* -* This function operate on blocks of input and output data and each call to the function -* processes blockSize samples through the filter. -* pSrc points to the array of input data and -* pDst points to the array of output data. -* Both arrays contain blockSize values. -* -* \par Algorithm -* Each Biquad stage implements a second order filter using the difference equation: -*
-*    y[n] = b0 * x[n] + d1
-*    d1 = b1 * x[n] + a1 * y[n] + d2
-*    d2 = b2 * x[n] + a2 * y[n]
-* 
-* where d1 and d2 represent the two state values. -* -* \par -* A Biquad filter using a transposed Direct Form II structure is shown below. -* \image html BiquadDF2Transposed.gif "Single transposed Direct Form II Biquad" -* Coefficients b0, b1, and b2 multiply the input signal x[n] and are referred to as the feedforward coefficients. -* Coefficients a1 and a2 multiply the output signal y[n] and are referred to as the feedback coefficients. -* Pay careful attention to the sign of the feedback coefficients. -* Some design tools flip the sign of the feedback coefficients: -*
-*    y[n] = b0 * x[n] + d1;
-*    d1 = b1 * x[n] - a1 * y[n] + d2;
-*    d2 = b2 * x[n] - a2 * y[n];
-* 
-* In this case the feedback coefficients a1 and a2 must be negated when used with the CMSIS DSP Library. -* -* \par -* Higher order filters are realized as a cascade of second order sections. -* numStages refers to the number of second order stages used. -* For example, an 8th order filter would be realized with numStages=4 second order stages. -* A 9th order filter would be realized with numStages=5 second order stages with the -* coefficients for one of the stages configured as a first order filter (b2=0 and a2=0). -* -* \par -* pState points to the state variable array. -* Each Biquad stage has 2 state variables d1 and d2. -* The state variables are arranged in the pState array as: -*
-*     {d11, d12, d21, d22, ...}
-* 
-* where d1x refers to the state variables for the first Biquad and -* d2x refers to the state variables for the second Biquad. -* The state array has a total length of 2*numStages values. -* The state variables are updated after each block of data is processed; the coefficients are untouched. -* -* \par -* The CMSIS library contains Biquad filters in both Direct Form I and transposed Direct Form II. -* The advantage of the Direct Form I structure is that it is numerically more robust for fixed-point data types. -* That is why the Direct Form I structure supports Q15 and Q31 data types. -* The transposed Direct Form II structure, on the other hand, requires a wide dynamic range for the state variables d1 and d2. -* Because of this, the CMSIS library only has a floating-point version of the Direct Form II Biquad. -* The advantage of the Direct Form II Biquad is that it requires half the number of state variables, 2 rather than 4, per Biquad stage. -* -* \par Instance Structure -* The coefficients and state variables for a filter are stored together in an instance data structure. -* A separate instance structure must be defined for each filter. -* Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. -* -* \par Init Functions -* There is also an associated initialization function. -* The initialization function performs following operations: -* - Sets the values of the internal structure fields. -* - Zeros out the values in the state buffer. -* To do this manually without calling the init function, assign the follow subfields of the instance structure: -* numStages, pCoeffs, pState. Also set all of the values in pState to zero. -* -* \par -* Use of the initialization function is optional. -* However, if the initialization function is used, then the instance structure cannot be placed into a const data section. -* To place an instance structure into a const data section, the instance structure must be manually initialized. -* Set the values in the state buffer to zeros before static initialization. -* For example, to statically initialize the instance structure use -*
-*     arm_biquad_cascade_df2T_instance_f32 S1 = {numStages, pState, pCoeffs};
-* 
-* where numStages is the number of Biquad stages in the filter; pState is the address of the state buffer. -* pCoeffs is the address of the coefficient buffer; -* -*/ - -/** -* @addtogroup BiquadCascadeDF2T -* @{ -*/ - -/** -* @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. -* @param[in] *S points to an instance of the filter data structure. -* @param[in] *pSrc points to the block of input data. -* @param[out] *pDst points to the block of output data -* @param[in] blockSize number of samples to process. -* @return none. -*/ - - -LOW_OPTIMIZATION_ENTER -void arm_biquad_cascade_stereo_df2T_f32( -const arm_biquad_cascade_stereo_df2T_instance_f32 * S, -float32_t * pSrc, -float32_t * pDst, -uint32_t blockSize) -{ - - float32_t *pIn = pSrc; /* source pointer */ - float32_t *pOut = pDst; /* destination pointer */ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* coefficient pointer */ - float32_t acc1a, acc1b; /* accumulator */ - float32_t b0, b1, b2, a1, a2; /* Filter coefficients */ - float32_t Xn1a, Xn1b; /* temporary input */ - float32_t d1a, d2a, d1b, d2b; /* state variables */ - uint32_t sample, stage = S->numStages; /* loop counters */ - -#if defined(ARM_MATH_CM7) - - float32_t Xn2a, Xn3a, Xn4a, Xn5a, Xn6a, Xn7a, Xn8a; /* Input State variables */ - float32_t Xn2b, Xn3b, Xn4b, Xn5b, Xn6b, Xn7b, Xn8b; /* Input State variables */ - float32_t acc2a, acc3a, acc4a, acc5a, acc6a, acc7a, acc8a; /* Simulates the accumulator */ - float32_t acc2b, acc3b, acc4b, acc5b, acc6b, acc7b, acc8b; /* Simulates the accumulator */ - - do - { - /* Reading the coefficients */ - b0 = pCoeffs[0]; - b1 = pCoeffs[1]; - b2 = pCoeffs[2]; - a1 = pCoeffs[3]; - /* Apply loop unrolling and compute 8 output values simultaneously. */ - sample = blockSize >> 3U; - a2 = pCoeffs[4]; - - /*Reading the state values */ - d1a = pState[0]; - d2a = pState[1]; - d1b = pState[2]; - d2b = pState[3]; - - pCoeffs += 5U; - - /* First part of the processing with loop unrolling. Compute 8 outputs at a time. - ** a second loop below computes the remaining 1 to 7 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the first 2 inputs. 2 cycles */ - Xn1a = pIn[0 ]; - Xn1b = pIn[1 ]; - - /* Sample 1. 5 cycles */ - Xn2a = pIn[2 ]; - acc1a = b0 * Xn1a + d1a; - - Xn2b = pIn[3 ]; - d1a = b1 * Xn1a + d2a; - - Xn3a = pIn[4 ]; - d2a = b2 * Xn1a; - - Xn3b = pIn[5 ]; - d1a += a1 * acc1a; - - Xn4a = pIn[6 ]; - d2a += a2 * acc1a; - - /* Sample 2. 5 cycles */ - Xn4b = pIn[7 ]; - acc1b = b0 * Xn1b + d1b; - - Xn5a = pIn[8 ]; - d1b = b1 * Xn1b + d2b; - - Xn5b = pIn[9 ]; - d2b = b2 * Xn1b; - - Xn6a = pIn[10]; - d1b += a1 * acc1b; - - Xn6b = pIn[11]; - d2b += a2 * acc1b; - - /* Sample 3. 5 cycles */ - Xn7a = pIn[12]; - acc2a = b0 * Xn2a + d1a; - - Xn7b = pIn[13]; - d1a = b1 * Xn2a + d2a; - - Xn8a = pIn[14]; - d2a = b2 * Xn2a; - - Xn8b = pIn[15]; - d1a += a1 * acc2a; - - pIn += 16; - d2a += a2 * acc2a; - - /* Sample 4. 5 cycles */ - acc2b = b0 * Xn2b + d1b; - d1b = b1 * Xn2b + d2b; - d2b = b2 * Xn2b; - d1b += a1 * acc2b; - d2b += a2 * acc2b; - - /* Sample 5. 5 cycles */ - acc3a = b0 * Xn3a + d1a; - d1a = b1 * Xn3a + d2a; - d2a = b2 * Xn3a; - d1a += a1 * acc3a; - d2a += a2 * acc3a; - - /* Sample 6. 5 cycles */ - acc3b = b0 * Xn3b + d1b; - d1b = b1 * Xn3b + d2b; - d2b = b2 * Xn3b; - d1b += a1 * acc3b; - d2b += a2 * acc3b; - - /* Sample 7. 5 cycles */ - acc4a = b0 * Xn4a + d1a; - d1a = b1 * Xn4a + d2a; - d2a = b2 * Xn4a; - d1a += a1 * acc4a; - d2a += a2 * acc4a; - - /* Sample 8. 5 cycles */ - acc4b = b0 * Xn4b + d1b; - d1b = b1 * Xn4b + d2b; - d2b = b2 * Xn4b; - d1b += a1 * acc4b; - d2b += a2 * acc4b; - - /* Sample 9. 5 cycles */ - acc5a = b0 * Xn5a + d1a; - d1a = b1 * Xn5a + d2a; - d2a = b2 * Xn5a; - d1a += a1 * acc5a; - d2a += a2 * acc5a; - - /* Sample 10. 5 cycles */ - acc5b = b0 * Xn5b + d1b; - d1b = b1 * Xn5b + d2b; - d2b = b2 * Xn5b; - d1b += a1 * acc5b; - d2b += a2 * acc5b; - - /* Sample 11. 5 cycles */ - acc6a = b0 * Xn6a + d1a; - d1a = b1 * Xn6a + d2a; - d2a = b2 * Xn6a; - d1a += a1 * acc6a; - d2a += a2 * acc6a; - - /* Sample 12. 5 cycles */ - acc6b = b0 * Xn6b + d1b; - d1b = b1 * Xn6b + d2b; - d2b = b2 * Xn6b; - d1b += a1 * acc6b; - d2b += a2 * acc6b; - - /* Sample 13. 5 cycles */ - acc7a = b0 * Xn7a + d1a; - d1a = b1 * Xn7a + d2a; - - pOut[0 ] = acc1a ; - d2a = b2 * Xn7a; - - pOut[1 ] = acc1b ; - d1a += a1 * acc7a; - - pOut[2 ] = acc2a ; - d2a += a2 * acc7a; - - /* Sample 14. 5 cycles */ - pOut[3 ] = acc2b ; - acc7b = b0 * Xn7b + d1b; - - pOut[4 ] = acc3a ; - d1b = b1 * Xn7b + d2b; - - pOut[5 ] = acc3b ; - d2b = b2 * Xn7b; - - pOut[6 ] = acc4a ; - d1b += a1 * acc7b; - - pOut[7 ] = acc4b ; - d2b += a2 * acc7b; - - /* Sample 15. 5 cycles */ - pOut[8 ] = acc5a ; - acc8a = b0 * Xn8a + d1a; - - pOut[9 ] = acc5b; - d1a = b1 * Xn8a + d2a; - - pOut[10] = acc6a; - d2a = b2 * Xn8a; - - pOut[11] = acc6b; - d1a += a1 * acc8a; - - pOut[12] = acc7a; - d2a += a2 * acc8a; - - /* Sample 16. 5 cycles */ - pOut[13] = acc7b; - acc8b = b0 * Xn8b + d1b; - - pOut[14] = acc8a; - d1b = b1 * Xn8b + d2b; - - pOut[15] = acc8b; - d2b = b2 * Xn8b; - - sample--; - d1b += a1 * acc8b; - - pOut += 16; - d2b += a2 * acc8b; - } - - sample = blockSize & 0x7U; - while (sample > 0U) { - /* Read the input */ - Xn1a = *pIn++; //Channel a - Xn1b = *pIn++; //Channel b - - /* y[n] = b0 * x[n] + d1 */ - acc1a = (b0 * Xn1a) + d1a; - acc1b = (b0 * Xn1b) + d1b; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1a; - *pOut++ = acc1b; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1a = ((b1 * Xn1a) + (a1 * acc1a)) + d2a; - d1b = ((b1 * Xn1b) + (a1 * acc1b)) + d2b; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2a = (b2 * Xn1a) + (a2 * acc1a); - d2b = (b2 * Xn1b) + (a2 * acc1b); - - sample--; - } - - /* Store the updated state variables back into the state array */ - pState[0] = d1a; - pState[1] = d2a; - - pState[2] = d1b; - pState[3] = d2b; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - /* decrement the loop counter */ - stage--; - - pState += 4U; - /*Reset the output working pointer */ - pOut = pDst; - - } while (stage > 0U); - -#elif defined(ARM_MATH_CM0_FAMILY) - - /* Run the below code for Cortex-M0 */ - - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1a = pState[0]; - d2a = pState[1]; - d1b = pState[2]; - d2b = pState[3]; - - - sample = blockSize; - - while (sample > 0U) - { - /* Read the input */ - Xn1a = *pIn++; //Channel a - Xn1b = *pIn++; //Channel b - - /* y[n] = b0 * x[n] + d1 */ - acc1a = (b0 * Xn1a) + d1a; - acc1b = (b0 * Xn1b) + d1b; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc1a; - *pOut++ = acc1b; - - /* Every time after the output is computed state should be updated. */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - d1a = ((b1 * Xn1a) + (a1 * acc1a)) + d2a; - d1b = ((b1 * Xn1b) + (a1 * acc1b)) + d2b; - - /* d2 = b2 * x[n] + a2 * y[n] */ - d2a = (b2 * Xn1a) + (a2 * acc1a); - d2b = (b2 * Xn1b) + (a2 * acc1b); - - /* decrement the loop counter */ - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1a; - *pState++ = d2a; - *pState++ = d1b; - *pState++ = d2b; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#else - - float32_t Xn2a, Xn3a, Xn4a; /* Input State variables */ - float32_t Xn2b, Xn3b, Xn4b; /* Input State variables */ - float32_t acc2a, acc3a, acc4a; /* accumulator */ - float32_t acc2b, acc3b, acc4b; /* accumulator */ - float32_t p0a, p1a, p2a, p3a, p4a, A1a; - float32_t p0b, p1b, p2b, p3b, p4b, A1b; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - do - { - /* Reading the coefficients */ - b0 = *pCoeffs++; - b1 = *pCoeffs++; - b2 = *pCoeffs++; - a1 = *pCoeffs++; - a2 = *pCoeffs++; - - /*Reading the state values */ - d1a = pState[0]; - d2a = pState[1]; - d1b = pState[2]; - d2b = pState[3]; - - /* Apply loop unrolling and compute 4 output values simultaneously. */ - sample = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (sample > 0U) { - - /* y[n] = b0 * x[n] + d1 */ - /* d1 = b1 * x[n] + a1 * y[n] + d2 */ - /* d2 = b2 * x[n] + a2 * y[n] */ - - /* Read the four inputs */ - Xn1a = pIn[0]; - Xn1b = pIn[1]; - Xn2a = pIn[2]; - Xn2b = pIn[3]; - Xn3a = pIn[4]; - Xn3b = pIn[5]; - Xn4a = pIn[6]; - Xn4b = pIn[7]; - pIn += 8; - - p0a = b0 * Xn1a; - p0b = b0 * Xn1b; - p1a = b1 * Xn1a; - p1b = b1 * Xn1b; - acc1a = p0a + d1a; - acc1b = p0b + d1b; - p0a = b0 * Xn2a; - p0b = b0 * Xn2b; - p3a = a1 * acc1a; - p3b = a1 * acc1b; - p2a = b2 * Xn1a; - p2b = b2 * Xn1b; - A1a = p1a + p3a; - A1b = p1b + p3b; - p4a = a2 * acc1a; - p4b = a2 * acc1b; - d1a = A1a + d2a; - d1b = A1b + d2b; - d2a = p2a + p4a; - d2b = p2b + p4b; - - p1a = b1 * Xn2a; - p1b = b1 * Xn2b; - acc2a = p0a + d1a; - acc2b = p0b + d1b; - p0a = b0 * Xn3a; - p0b = b0 * Xn3b; - p3a = a1 * acc2a; - p3b = a1 * acc2b; - p2a = b2 * Xn2a; - p2b = b2 * Xn2b; - A1a = p1a + p3a; - A1b = p1b + p3b; - p4a = a2 * acc2a; - p4b = a2 * acc2b; - d1a = A1a + d2a; - d1b = A1b + d2b; - d2a = p2a + p4a; - d2b = p2b + p4b; - - p1a = b1 * Xn3a; - p1b = b1 * Xn3b; - acc3a = p0a + d1a; - acc3b = p0b + d1b; - p0a = b0 * Xn4a; - p0b = b0 * Xn4b; - p3a = a1 * acc3a; - p3b = a1 * acc3b; - p2a = b2 * Xn3a; - p2b = b2 * Xn3b; - A1a = p1a + p3a; - A1b = p1b + p3b; - p4a = a2 * acc3a; - p4b = a2 * acc3b; - d1a = A1a + d2a; - d1b = A1b + d2b; - d2a = p2a + p4a; - d2b = p2b + p4b; - - acc4a = p0a + d1a; - acc4b = p0b + d1b; - p1a = b1 * Xn4a; - p1b = b1 * Xn4b; - p3a = a1 * acc4a; - p3b = a1 * acc4b; - p2a = b2 * Xn4a; - p2b = b2 * Xn4b; - A1a = p1a + p3a; - A1b = p1b + p3b; - p4a = a2 * acc4a; - p4b = a2 * acc4b; - d1a = A1a + d2a; - d1b = A1b + d2b; - d2a = p2a + p4a; - d2b = p2b + p4b; - - pOut[0] = acc1a; - pOut[1] = acc1b; - pOut[2] = acc2a; - pOut[3] = acc2b; - pOut[4] = acc3a; - pOut[5] = acc3b; - pOut[6] = acc4a; - pOut[7] = acc4b; - pOut += 8; - - sample--; - } - - sample = blockSize & 0x3U; - while (sample > 0U) { - Xn1a = *pIn++; - Xn1b = *pIn++; - - p0a = b0 * Xn1a; - p0b = b0 * Xn1b; - p1a = b1 * Xn1a; - p1b = b1 * Xn1b; - acc1a = p0a + d1a; - acc1b = p0b + d1b; - p3a = a1 * acc1a; - p3b = a1 * acc1b; - p2a = b2 * Xn1a; - p2b = b2 * Xn1b; - A1a = p1a + p3a; - A1b = p1b + p3b; - p4a = a2 * acc1a; - p4b = a2 * acc1b; - d1a = A1a + d2a; - d1b = A1b + d2b; - d2a = p2a + p4a; - d2b = p2b + p4b; - - *pOut++ = acc1a; - *pOut++ = acc1b; - - sample--; - } - - /* Store the updated state variables back into the state array */ - *pState++ = d1a; - *pState++ = d2a; - *pState++ = d1b; - *pState++ = d2b; - - /* The current stage input is given as the output to the next stage */ - pIn = pDst; - - /*Reset the output working pointer */ - pOut = pDst; - - /* decrement the loop counter */ - stage--; - - } while (stage > 0U); - -#endif - -} -LOW_OPTIMIZATION_EXIT - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c deleted file mode 100644 index 4940ec9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c +++ /dev/null @@ -1,89 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_biquad_cascade_stereo_df2T_init_f32.c - * Description: Initialization function for floating-point transposed direct form II Biquad cascade filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup BiquadCascadeDF2T - * @{ - */ - -/** - * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. - * @param[in,out] *S points to an instance of the filter data structure. - * @param[in] numStages number of 2nd order stages in the filter. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @return none - * - * Coefficient and State Ordering: - * \par - * The coefficients are stored in the array pCoeffs in the following order: - *
- *     {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...}
- * 
- * - * \par - * where b1x and a1x are the coefficients for the first stage, - * b2x and a2x are the coefficients for the second stage, - * and so on. The pCoeffs array contains a total of 5*numStages values. - * - * \par - * The pState is a pointer to state array. - * Each Biquad stage has 2 state variables d1, and d2 for each channel. - * The 2 state variables for stage 1 are first, then the 2 state variables for stage 2, and so on. - * The state array has a total length of 2*numStages values. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - */ - -void arm_biquad_cascade_stereo_df2T_init_f32( - arm_biquad_cascade_stereo_df2T_instance_f32 * S, - uint8_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter stages */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always 4 * numStages */ - memset(pState, 0, (4U * (uint32_t) numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; -} - -/** - * @} end of BiquadCascadeDF2T group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_f32.c deleted file mode 100644 index 9ce5bf0..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_f32.c +++ /dev/null @@ -1,635 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_f32.c - * Description: Convolution of floating-point sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup Conv Convolution - * - * Convolution is a mathematical operation that operates on two finite length vectors to generate a finite length output vector. - * Convolution is similar to correlation and is frequently used in filtering and data analysis. - * The CMSIS DSP library contains functions for convolving Q7, Q15, Q31, and floating-point data types. - * The library also provides fast versions of the Q15 and Q31 functions on Cortex-M4 and Cortex-M3. - * - * \par Algorithm - * Let a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. - * Then the convolution - * - *
- *                   c[n] = a[n] * b[n]
- * 
- * - * \par - * is defined as - * \image html ConvolutionEquation.gif - * \par - * Note that c[n] is of length srcALen + srcBLen - 1 and is defined over the interval n=0, 1, 2, ..., srcALen + srcBLen - 2. - * pSrcA points to the first input vector of length srcALen and - * pSrcB points to the second input vector of length srcBLen. - * The output result is written to pDst and the calling function must allocate srcALen+srcBLen-1 words for the result. - * - * \par - * Conceptually, when two signals a[n] and b[n] are convolved, - * the signal b[n] slides over a[n]. - * For each offset \c n, the overlapping portions of a[n] and b[n] are multiplied and summed together. - * - * \par - * Note that convolution is a commutative operation: - * - *
- *                   a[n] * b[n] = b[n] * a[n].
- * 
- * - * \par - * This means that switching the A and B arguments to the convolution functions has no effect. - * - * Fixed-Point Behavior - * - * \par - * Convolution requires summing up a large number of intermediate products. - * As such, the Q7, Q15, and Q31 functions run a risk of overflow and saturation. - * Refer to the function specific documentation below for further details of the particular algorithm used. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15. Cycles for Fast versions are less compared to Q31 and Q15 of conv and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - */ - -void arm_conv_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1; /* inputA pointer */ - float32_t *pIn2; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1, *pSrc2; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - float32_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counters */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* x[1] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* x[2] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* x[3] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += x0 * c0; - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += x1 * c0; - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += x2 * c0; - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 += x3 * c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 += x0 * c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 += x1 * c0; - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px + 3U); - px += 4U; - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 += x2 * c0; - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - *pOut++ = acc1; - *pOut++ = acc2; - *pOut++ = acc3; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - - /* Loop to calculate convolution for output length number of times */ - for (i = 0U; i < ((srcALen + srcBLen) - 1U); i++) - { - /* Initialize sum with zero to carry out MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[i - j]; - } - } - /* Store the output in the destination buffer */ - pDst[i] = sum; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_opt_q15.c deleted file mode 100644 index c6e05b8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_opt_q15.c +++ /dev/null @@ -1,531 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_fast_opt_q15.c - * Description: Fast Q15 Convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results - * but provides only a single guard bit. There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_conv_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - */ - -void arm_conv_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - uint32_t tapCnt; /* loop count */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifdef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1U) zeros in scratch1 buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLAD(x2, y2, acc0); - acc2 = __SMLAD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - a = *pScr1; - b = *(pScr1 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - a = *(pScr1 + 2); - b = *(pScr1 + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* update scratch pointers */ - pIn2 += 4U; - pScr1 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - acc0 += (*pScr1++ * *pIn2++); - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q15.c deleted file mode 100644 index 9625ae5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q15.c +++ /dev/null @@ -1,1398 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_fast_q15.c - * Description: Fast Q15 Convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results - * but provides only a single guard bit. There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_conv_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - */ - -void arm_conv_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1U); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2U; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT((acc0 >> 15), (acc1 >> 15), 16); - *__SIMD32(pOut)++ = __PKHBT((acc2 >> 15), (acc3 >> 15), 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT((acc1 >> 15), (acc0 >> 15), 16); - *__SIMD32(pOut)++ = __PKHBT((acc3 >> 15), (acc2 >> 15), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2U; - - while ((j > 0U) && (blockSize3 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - q15_t a, b; - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1U); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - a = *px++; - b = *px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *px; - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *px; - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px+1); - px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - a = *(px+2); - b = *(px+3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q15_t)(acc0 >> 15); - *pOut++ = (q15_t)(acc1 >> 15); - *pOut++ = (q15_t)(acc2 >> 15); - *pOut++ = (q15_t)(acc3 >> 15); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2U; - - while ((j > 0U) && (blockSize3 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while (k > 0U) - { - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q31.c deleted file mode 100644 index ce3e334..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_fast_q31.c +++ /dev/null @@ -1,565 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_fast_q31.c - * Description: Fast Q31 Convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are accumulated in a 32-bit register in 2.30 format. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * - * \par - * See arm_conv_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. - */ - -void arm_conv_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[1] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[2] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[3] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[srcBLen - 3] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[srcBLen - 3] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[srcBLen - 3] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q31_t) (acc0 << 1); - *pOut++ = (q31_t) (acc1 << 1); - *pOut++ = (q31_t) (acc2 << 1); - *pOut++ = (q31_t) (acc3 << 1); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q15.c deleted file mode 100644 index 1b20399..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q15.c +++ /dev/null @@ -1,533 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_opt_q15.c - * Description: Convolution of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * - * \par - * Refer to arm_conv_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - -void arm_conv_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - uint32_t tapCnt; /* loop count */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - -#endif - - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - /* multiply and accumlate */ - acc0 = __SMLALD(x1, y1, acc0); - acc2 = __SMLALD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLALDX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLALD(x2, y2, acc0); - acc2 = __SMLALD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - a = *pScr1; - b = *(pScr1 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - a = *(pScr1 + 2); - b = *(pScr1 + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4U; - pScr1 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - acc0 += (*pScr1++ * *pIn2++); - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - -} - - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q7.c deleted file mode 100644 index 24d378b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_opt_q7.c +++ /dev/null @@ -1,423 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_opt_q7.c - * Description: Convolution of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format. - * - */ - -void arm_conv_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - q7_t *pOut = pDst; /* output pointer */ - q7_t out0, out1, out2, out3; /* temporary variables */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - /* Actual convolution process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2U); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - out0 = (q7_t) (__SSAT(acc0 >> 7U, 8)); - out1 = (q7_t) (__SSAT(acc1 >> 7U, 8)); - out2 = (q7_t) (__SSAT(acc2 >> 7U, 8)); - out3 = (q7_t) (__SSAT(acc3 >> 7U, 8)); - - *__SIMD32(pOut)++ = __PACKq7(out0, out1, out2, out3); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - acc0 += (*pScr1++ * *pScr2++); - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7U, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1U; - - } - -} - - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_f32.c deleted file mode 100644 index f3b15b4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_f32.c +++ /dev/null @@ -1,678 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_f32.c - * Description: Partial convolution of floating-point sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup PartialConv Partial Convolution - * - * Partial Convolution is equivalent to Convolution except that a subset of the output samples is generated. - * Each function has two additional arguments. - * firstIndex specifies the starting index of the subset of output samples. - * numPoints is the number of output samples to compute. - * The function computes the output in the range - * [firstIndex, ..., firstIndex+numPoints-1]. - * The output array pDst contains numPoints values. - * - * The allowable range of output indices is [0 srcALen+srcBLen-2]. - * If the requested subset does not fall in this range then the functions return ARM_MATH_ARGUMENT_ERROR. - * Otherwise the functions return ARM_MATH_SUCCESS. - * \note Refer arm_conv_f32() for details on fixed point behavior. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15 of partial convolution. Cycles for Fast versions are less compared to Q31 and Q15 of partial conv and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions of partial convolution - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - */ - -arm_status arm_conv_partial_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1, *pSrc2; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - float32_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count = 0U, blkCnt, check; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = ((int32_t) srcBLen - 1) - (int32_t) firstIndex; - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = ((int32_t) check - blockSize3) - - (blockSize1 + (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + firstIndex; - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* x[1] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* x[2] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* x[3] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc1; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2U); - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += x0 * c0; - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += x1 * c0; - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += x2 * c0; - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 += x3 * c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 += x0 * c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 += x1 * c0; - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 += x2 * c0; - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = acc0; - *pOut++ = acc1; - *pOut++ = acc2; - *pOut++ = acc3; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += *px++ * *py--; - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += *px++ * *py--; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB; /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations for inputs */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[i - j]; - } - } - /* Store the output in the destination buffer */ - pDst[i] = sum; - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c deleted file mode 100644 index cf2d711..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c +++ /dev/null @@ -1,756 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_fast_opt_q15.c - * Description: Fast Q15 Partial convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; - - uint32_t tapCnt; /* loop count */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - - /* Copy smaller length input sequence in reverse order into second scratch buffer */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Assuming scratch1 buffer is aligned by 32-bit */ - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* First part of the processing with loop unrolling process 4 data points at a time. - ** a second loop below process for the remaining 1 to 3 samples. */ - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - - /* update scratch pointers */ - pIn2 += 4U; - pScr1 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pIn2)++; - - acc0 = __SMLAD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -#else - -arm_status arm_conv_partial_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - q15_t x10, x11, x20, x21; /* Temporary variables to hold srcA buffer */ - q15_t y10, y11; /* Temporary variables to hold srcB buffer */ - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read two samples from smaller buffer */ - y10 = *pIn2; - y11 = *(pIn2 + 1U); - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - acc2 += (q31_t) x20 *y10; - acc2 += (q31_t) x21 *y11; - - /* multiply and accumlate */ - acc1 += (q31_t) x11 *y10; - acc1 += (q31_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1U); - - /* multiply and accumlate */ - acc3 += (q31_t) x21 *y10; - acc3 += (q31_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pIn2 + 2U); - y11 = *(pIn2 + 3U); - - /* multiply and accumlate */ - acc0 += (q31_t) x20 *y10; - acc0 += (q31_t) x21 *y11; - acc2 += (q31_t) x10 *y10; - acc2 += (q31_t) x11 *y11; - acc1 += (q31_t) x21 *y10; - acc1 += (q31_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q31_t) x11 *y10; - acc3 += (q31_t) x20 *y11; - - /* update scratch pointers */ - pIn2 += 4U; - pScr1 += 4U; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = __SSAT((acc0 >> 15), 16); - *pOut++ = __SSAT((acc1 >> 15), 16); - *pOut++ = __SSAT((acc2 >> 15), 16); - *pOut++ = __SSAT((acc3 >> 15), 16); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pIn2++; - y11 = *pIn2++; - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q15.c deleted file mode 100644 index bd43a98..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q15.c +++ /dev/null @@ -1,1494 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_fast_q15.c - * Description: Fast Q15 Partial convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - - -arm_status arm_conv_partial_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >=srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1U; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2U); - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2U; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = __PKHBT(acc0 >> 15, acc1 >> 15, 16); - *__SIMD32(pOut)++ = __PKHBT(acc2 >> 15, acc3 >> 15, 16); - -#else - - *__SIMD32(pOut)++ = __PKHBT(acc1 >> 15, acc0 >> 15, 16); - *__SIMD32(pOut)++ = __PKHBT(acc3 >> 15, acc2 >> 15, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2U; - - while ((j > 0U) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLADX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLAD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - q15_t a, b; - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >=srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = ((int32_t) srcBLen - 1) - (int32_t) firstIndex; - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = ((int32_t) check - blockSize3) - - (blockSize1 + (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1U; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2U); - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - a = *px++; - b = *px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *px; - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *px; - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLADX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLADX(x1, c0, acc1); - - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLADX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLADX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - a = *py; - b = *(py+1); - py -= 2; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLADX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLADX(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLADX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLADX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px+1); - px++; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - a = *py; - b = *(py+1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x0, c0, acc0); - acc1 = __SMLADX(x1, c0, acc1); - acc2 = __SMLADX(x3, c0, acc2); - acc3 = __SMLADX(x2, c0, acc3); - - /* Read y[srcBLen - 7] */ - c0 = *(py-1); -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - a = *(px+2); - b = *(px+3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16);; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q15_t)(acc0 >> 15); - *pOut++ = (q15_t)(acc1 >> 15); - *pOut++ = (q15_t)(acc2 >> 15); - *pOut++ = (q15_t)(acc3 >> 15); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2U; - - while ((j > 0U) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - py++; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - sum += ((q31_t) * px++ * *py--); - /* Decrement the loop counter */ - k--; - } - - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (sum >> 15); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q31.c deleted file mode 100644 index af3724d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_fast_q31.c +++ /dev/null @@ -1,620 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_fast_q31.c - * Description: Fast Q31 Partial convolution - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par - * See arm_conv_partial_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. - */ - -arm_status arm_conv_partial_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x0, x1, x2, x3, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[1] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[2] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* x[3] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2 */ - blkCnt = ((uint32_t) blockSize2 >> 2U); - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - - /* acc3 += x[3] * y[srcBLen - 1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py--); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[srcBLen - 2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[srcBLen - 4] sample */ - c0 = *(py--); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[srcBLen - 4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[srcBLen - 4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[srcBLen - 4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[srcBLen - 4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (acc0 << 1); - *pOut++ = (q31_t) (acc1 << 1); - *pOut++ = (q31_t) (acc2 << 1); - *pOut++ = (q31_t) (acc3 << 1); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py--))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = sum << 1; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q15.c deleted file mode 100644 index 44e368e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q15.c +++ /dev/null @@ -1,753 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_opt_q15.c - * Description: Partial convolution of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Refer to arm_conv_partial_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3; /* Temporary variables to hold state and coefficient values */ - q31_t y1, y2; /* State variables */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr1, srcALen); - - /* Update pointers */ - pScr1 += srcALen; - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - /* multiply and accumlate */ - acc0 = __SMLALD(x1, y1, acc0); - acc2 = __SMLALD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLALDX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = _SIMD32_OFFSET(pScr1); - - /* multiply and accumlate */ - acc0 = __SMLALD(x2, y2, acc0); - acc2 = __SMLALD(x1, y2, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr1 + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - - /* update scratch pointers */ - pIn2 += 4U; - pScr1 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pIn2)++; - - acc0 = __SMLALD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#else - -arm_status arm_conv_partial_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch1 */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch1 */ - q63_t acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - uint32_t j, k, blkCnt; /* loop counter */ - arm_status status; /* Status variable */ - uint32_t tapCnt; /* loop count */ - q15_t x10, x11, x20, x21; /* Temporary variables to hold srcA buffer */ - q15_t y10, y11; /* Temporary variables to hold srcB buffer */ - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2 + srcBLen - 1; - - /* points to smaller length sequence */ - px = pIn2; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr2-- = *px++; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy bigger length sequence(srcALen) samples in scratch1 buffer */ - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = *pIn1++; - - /* Decrement the loop counter */ - k--; - } - - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Initialization of pIn2 pointer */ - pIn2 = py; - - pScratch1 += firstIndex; - - pOut = pDst + firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read two samples from smaller buffer */ - y10 = *pIn2; - y11 = *(pIn2 + 1U); - - /* multiply and accumlate */ - acc0 += (q63_t) x10 *y10; - acc0 += (q63_t) x11 *y11; - acc2 += (q63_t) x20 *y10; - acc2 += (q63_t) x21 *y11; - - /* multiply and accumlate */ - acc1 += (q63_t) x11 *y10; - acc1 += (q63_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1U); - - /* multiply and accumlate */ - acc3 += (q63_t) x21 *y10; - acc3 += (q63_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pIn2 + 2U); - y11 = *(pIn2 + 3U); - - /* multiply and accumlate */ - acc0 += (q63_t) x20 *y10; - acc0 += (q63_t) x21 *y11; - acc2 += (q63_t) x10 *y10; - acc2 += (q63_t) x11 *y11; - acc1 += (q63_t) x21 *y10; - acc1 += (q63_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q63_t) x11 *y10; - acc3 += (q63_t) x20 *y11; - - /* update scratch pointers */ - pIn2 += 4U; - pScr1 += 4U; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2); - acc1 += (*pScr1++ * *pIn2); - acc2 += (*pScr1++ * *pIn2); - acc3 += (*pScr1++ * *pIn2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = __SSAT((acc0 >> 15), 16); - *pOut++ = __SSAT((acc1 >> 15), 16); - *pOut++ = __SSAT((acc2 >> 15), 16); - *pOut++ = __SSAT((acc3 >> 15), 16); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = numPoints & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pIn2++; - y11 = *pIn2++; - - /* multiply and accumlate */ - acc0 += (q63_t) x10 *y10; - acc0 += (q63_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch1 += 1U; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q7.c deleted file mode 100644 index 00dbef1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_opt_q7.c +++ /dev/null @@ -1,791 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_opt_q7.c - * Description: Partial convolution of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * - * - */ - - -#ifndef UNALIGNED_SUPPORT_DISABLE - -arm_status arm_conv_partial_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - arm_status status; - q7_t *pOut = pDst; /* output pointer */ - q7_t out0, out1, out2, out3; /* temporary variables */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - pOut = pDst + firstIndex; - - pScratch1 += firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2U); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - out0 = (q7_t) (__SSAT(acc0 >> 7U, 8)); - out1 = (q7_t) (__SSAT(acc1 >> 7U, 8)); - out2 = (q7_t) (__SSAT(acc2 >> 7U, 8)); - out3 = (q7_t) (__SSAT(acc3 >> 7U, 8)); - - *__SIMD32(pOut)++ = __PACKq7(out0, out1, out2, out3); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4U; - - } - - blkCnt = (numPoints) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read two samples from smaller buffer */ - y1 = *__SIMD32(pScr2)++; - - acc0 = __SMLAD(x1, y1, acc0); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7U, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1U; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - - } - - return (status); - -} - -#else - -arm_status arm_conv_partial_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints, - q15_t * pScratch1, - q15_t * pScratch2) -{ - - q15_t *pScr2, *pScr1; /* Intermediate pointers for scratch pointers */ - q15_t x4; /* Temporary input variable */ - q7_t *pIn1, *pIn2; /* inputA and inputB pointer */ - uint32_t j, k, blkCnt, tapCnt; /* loop counter */ - q7_t *px; /* Temporary input1 pointer */ - q15_t *py; /* Temporary input2 pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulator */ - arm_status status; - q7_t *pOut = pDst; /* output pointer */ - q15_t x10, x11, x20, x21; /* Temporary input variables */ - q15_t y10, y11; /* Temporary input variables */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* pointer to take end of scratch2 buffer */ - pScr2 = pScratch2; - - /* points to smaller length sequence */ - px = pIn2 + srcBLen - 1; - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * px--; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Initialze temporary scratch pointer */ - pScr1 = pScratch1; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy (srcALen) samples in scratch buffer */ - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - - /* Temporary pointer for scratch2 */ - py = pScratch2; - - /* Initialization of pIn2 pointer */ - pIn2 = (q7_t *) py; - - pScr2 = py; - - pOut = pDst + firstIndex; - - pScratch1 += firstIndex; - - /* Actual convolution process starts here */ - blkCnt = (numPoints) >> 2; - - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read next two samples from scratch1 buffer */ - x20 = *pScr1++; - x21 = *pScr1++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y10 = *pScr2; - y11 = *(pScr2 + 1U); - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - acc2 += (q31_t) x20 *y10; - acc2 += (q31_t) x21 *y11; - - - acc1 += (q31_t) x11 *y10; - acc1 += (q31_t) x20 *y11; - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1; - x11 = *(pScr1 + 1U); - - /* multiply and accumlate */ - acc3 += (q31_t) x21 *y10; - acc3 += (q31_t) x10 *y11; - - /* Read next two samples from scratch2 buffer */ - y10 = *(pScr2 + 2U); - y11 = *(pScr2 + 3U); - - /* multiply and accumlate */ - acc0 += (q31_t) x20 *y10; - acc0 += (q31_t) x21 *y11; - acc2 += (q31_t) x10 *y10; - acc2 += (q31_t) x11 *y11; - acc1 += (q31_t) x21 *y10; - acc1 += (q31_t) x10 *y11; - - /* Read next two samples from scratch1 buffer */ - x20 = *(pScr1 + 2); - x21 = *(pScr1 + 3); - - /* multiply and accumlate */ - acc3 += (q31_t) x11 *y10; - acc3 += (q31_t) x20 *y11; - - /* update scratch pointers */ - - pScr1 += 4U; - pScr2 += 4U; - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc1 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc2 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc3 >> 7U, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4U; - - } - - blkCnt = (numPoints) & 0x3; - - /* Calculate convolution for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - /* Read next two samples from scratch1 buffer */ - x10 = *pScr1++; - x11 = *pScr1++; - - /* Read two samples from smaller buffer */ - y10 = *pScr2++; - y11 = *pScr2++; - - /* multiply and accumlate */ - acc0 += (q31_t) x10 *y10; - acc0 += (q31_t) x11 *y11; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7U, 8)); - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1U; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - return (status); - -} - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q15.c deleted file mode 100644 index 93864b7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q15.c +++ /dev/null @@ -1,795 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_q15.c - * Description: Partial convolution of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * Refer to arm_conv_partial_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_conv_partial_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - -arm_status arm_conv_partial_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary input variables */ - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2 - 1U; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2U; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLALDX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLALDX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLALDX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLALDX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLALDX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLALDX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - - c0 = *(py-1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = count >> 2U; - - while ((j > 0U) && (blockSize3 > 0)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* inputA pointer */ - q15_t *pIn2 = pSrcB; /* inputB pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q31_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q15_t) __SSAT((sum >> 15U), 16U); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q31.c deleted file mode 100644 index 94999b9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q31.c +++ /dev/null @@ -1,616 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_q31.c - * Description: Partial convolution of Q31 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * See arm_conv_partial_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -arm_status arm_conv_partial_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q63_t sum, acc0, acc1, acc2; /* Accumulator */ - q31_t x0, x1, x2, c0; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; /* status of Partial convolution */ - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* x[1] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* x[2] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* x[3] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blkCnt */ - - blkCnt = blockSize2 / 3; - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py); - - /* Read x[2] sample */ - x2 = *(px); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += (q63_t) x0 *c0; - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += (q63_t) x1 *c0; - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += (q63_t) x2 *c0; - - /* Read y[srcBLen - 2] sample */ - c0 = *(py - 1U); - - /* Read x[3] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += (q63_t) x1 *c0; - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += (q63_t) x2 *c0; - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += (q63_t) x0 *c0; - - /* Read y[srcBLen - 3] sample */ - c0 = *(py - 2U); - - /* Read x[4] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += (q63_t) x2 *c0; - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += (q63_t) x0 *c0; - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += (q63_t) x1 *c0; - - - px += 3U; - - py -= 3U; - - } while (--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += (q63_t) x0 *c0; - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += (q63_t) x1 *c0; - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += (q63_t) x2 *c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (acc0 >> 31); - *pOut++ = (q31_t) (acc1 >> 31); - *pOut++ = (q31_t) (acc2 >> 31); - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* inputA pointer */ - q31_t *pIn2 = pSrcB; /* inputB pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q31_t) (sum >> 31U); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q7.c deleted file mode 100644 index d4e0679..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_partial_q7.c +++ /dev/null @@ -1,750 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_partial_q7.c - * Description: Partial convolution of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup PartialConv - * @{ - */ - -/** - * @brief Partial convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] firstIndex is the first output sample to start with. - * @param[in] numPoints is the number of output points to be computed. - * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. - * - * \par - * Refer the function arm_conv_partial_opt_q7() for a faster implementation of this function. - * - */ - -arm_status arm_conv_partial_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - uint32_t firstIndex, - uint32_t numPoints) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t input1, input2; - q15_t in1, in2; - q7_t x0, x1, x2, x3, c0, c1; - uint32_t j, k, count, check, blkCnt; - int32_t blockSize1, blockSize2, blockSize3; /* loop counter */ - arm_status status; - - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_MATH_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* Conditions to check which loopCounter holds - * the first and last indices of the output samples to be calculated. */ - check = firstIndex + numPoints; - blockSize3 = ((int32_t)check > (int32_t)srcALen) ? (int32_t)check - (int32_t)srcALen : 0; - blockSize3 = ((int32_t)firstIndex > (int32_t)srcALen - 1) ? blockSize3 - (int32_t)firstIndex + (int32_t)srcALen : blockSize3; - blockSize1 = (((int32_t) srcBLen - 1) - (int32_t) firstIndex); - blockSize1 = (blockSize1 > 0) ? ((check > (srcBLen - 1U)) ? blockSize1 : - (int32_t) numPoints) : 0; - blockSize2 = (int32_t) check - ((blockSize3 + blockSize1) + - (int32_t) firstIndex); - blockSize2 = (blockSize2 > 0) ? blockSize2 : 0; - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* Set the output pointer to point to the firstIndex - * of the output sample to be calculated. */ - pOut = pDst + firstIndex; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed. - Since the partial convolution starts from from firstIndex - Number of Macs to be performed is firstIndex + 1 */ - count = 1U + firstIndex; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + firstIndex; - py = pSrc2; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 1] , y[srcBLen - 2] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[0] * y[srcBLen - 1] */ - /* x[1] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 3] , y[srcBLen - 4] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[2] * y[srcBLen - 3] */ - /* x[3] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = ++pSrc2; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1; - } - else - { - px = pIn1; - } - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = ((uint32_t) blockSize2 >> 2U); - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - /* Read y[srcBLen - 2] sample */ - c1 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 1] and y[srcBLen - 2] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - /* Read y[srcBLen - 4] sample */ - c1 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 3] and y[srcBLen - 4] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *(px++); - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q31_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q31_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q31_t) x2 * c0); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += ((q31_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc1 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc2 >> 7, 8)); - *pOut++ = (q7_t) (__SSAT(acc3 >> 7, 8)); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = (uint32_t) blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) - { - px = pIn1 + firstIndex - srcBLen + 1 + count; - } - else - { - px = pIn1 + count; - } - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Reading two inputs, x[srcALen - srcBLen + 1] and x[srcALen - srcBLen + 2] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs, y[srcBLen - 1] and y[srcBLen - 2] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs, x[srcALen - srcBLen + 3] and x[srcALen - srcBLen + 4] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs, y[srcBLen - 3] and y[srcBLen - 4] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum += ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* inputA pointer */ - q7_t *pIn2 = pSrcB; /* inputB pointer */ - q31_t sum; /* Accumulator */ - uint32_t i, j; /* loop counters */ - arm_status status; /* status of Partial convolution */ - - /* Check for range of output samples to be calculated */ - if ((firstIndex + numPoints) > ((srcALen + (srcBLen - 1U)))) - { - /* Set status as ARM_ARGUMENT_ERROR */ - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Loop to calculate convolution for output length number of values */ - for (i = firstIndex; i <= (firstIndex + numPoints - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q15_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q7_t) __SSAT((sum >> 7U), 8U); - } - /* set status as ARM_SUCCESS as there are no argument errors */ - status = ARM_MATH_SUCCESS; - } - return (status); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of PartialConv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q15.c deleted file mode 100644 index 29513fd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q15.c +++ /dev/null @@ -1,722 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_q15.c - * Description: Convolution of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_conv_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_conv_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - -void arm_conv_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ - -#if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t blockSize1, blockSize2, blockSize3, j, k, count, blkCnt; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations less than 4 */ - /* Second part of this stage computes the MAC operations greater than or equal to 4 */ - - /* The first part of the stage starts here */ - while ((count < 4U) && (blockSize1 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over number of MAC operations between - * inputA samples and inputB samples */ - k = count; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* The second part of the stage starts here */ - /* The internal loop, over count, is unrolled by 4 */ - /* To, read the last two inputB samples using SIMD: - * y[srcBLen] and y[srcBLen-1] coefficients, py is decremented by 1 */ - py = py - 1; - - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0], x[1] are multiplied with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[2], x[3] are multiplied with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + (count - 1U); - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is the index by which the pointer pIn1 to be incremented */ - count = 0U; - - - /* -------------------- - * Stage2 process - * -------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - py = py - 1U; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px+1); - px+= 2U; - - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the last two inputB samples using SIMD: - * y[srcBLen - 1] and y[srcBLen - 2] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLALDX(x0, c0, acc0); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px+1); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLALDX(x2, c0, acc2); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLALDX(x3, c0, acc3); - - /* Read y[srcBLen - 3] and y[srcBLen - 4] */ - c0 = *__SIMD32(py)--; - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLALDX(x2, c0, acc0); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLALDX(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px+2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px+3); - px += 4U; - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLALDX(x0, c0, acc2); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[srcBLen - 5] */ - c0 = *(py+1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[srcBLen - 5], y[srcBLen - 6] */ - c0 = _SIMD32_OFFSET(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px+1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x0, c0, acc0); - acc1 = __SMLALDX(x1, c0, acc1); - acc2 = __SMLALDX(x3, c0, acc2); - acc3 = __SMLALDX(x2, c0, acc3); - - c0 = *(py-1); - -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px+2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - - /* Store the results in the accumulators in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pOut)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) ((q31_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT(sum >> 15, 16)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - blockSize3 = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - pIn2 = pSrc2 - 1U; - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - /* For loop unrolling by 4, this stage is divided into two. */ - /* First part of this stage computes the MAC operations greater than 4 */ - /* Second part of this stage computes the MAC operations less than or equal to 4 */ - - /* The first part of the stage starts here */ - j = blockSize3 >> 2U; - - while ((j > 0U) && (blockSize3 > 0U)) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[srcALen - srcBLen + 1], x[srcALen - srcBLen + 2] are multiplied - * with y[srcBLen - 1], y[srcBLen - 2] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - /* x[srcALen - srcBLen + 3], x[srcALen - srcBLen + 4] are multiplied - * with y[srcBLen - 3], y[srcBLen - 4] respectively */ - sum = __SMLALDX(*__SIMD32(px)++, *__SIMD32(py)--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* For the next MAC operations, the pointer py is used without SIMD - * So, py is incremented by 1 */ - py = py + 1U; - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 5] * y[srcBLen - 5] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the loop counter */ - blockSize3--; - - j--; - } - - /* The second part of the stage starts here */ - /* SIMD is not used for the next MAC operations, - * so pointer py is updated to read only one sample at a time */ - py = py + 1U; - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen-1] * y[srcBLen-1] */ - sum = __SMLALD(*px++, *py--, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* input pointer */ - q15_t *pIn2 = pSrcB; /* coefficient pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += (q31_t) pIn1[j] * (pIn2[i - j]); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q15_t) __SSAT((sum >> 15U), 16U); - } - -#endif /* #if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) */ - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q31.c deleted file mode 100644 index 78e50f0..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q31.c +++ /dev/null @@ -1,553 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_q31.c - * Description: Convolution of Q31 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down the inputs by log2(min(srcALen, srcBLen)) (log2 is read as log to the base 2) times to avoid overflows, - * as maximum of min(srcALen, srcBLen) number of additions are carried internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_conv_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_conv_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q63_t sum; /* Accumulator */ - q63_t acc0, acc1, acc2; /* Accumulator */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (q31_t *) pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = (q31_t *) pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* x[1] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* x[2] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* x[3] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll by 3 */ - blkCnt = blockSize2 / 3; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py); - - /* Read x[3] sample */ - x2 = *(px); - - /* Perform the multiply-accumulates */ - /* acc0 += x[0] * y[srcBLen - 1] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[1] * y[srcBLen - 1] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[2] * y[srcBLen - 1] */ - acc2 += ((q63_t) x2 * c0); - - /* Read y[srcBLen - 2] sample */ - c0 = *(py - 1U); - - /* Read x[4] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[srcBLen - 2] */ - acc0 += ((q63_t) x1 * c0); - /* acc1 += x[2] * y[srcBLen - 2] */ - acc1 += ((q63_t) x2 * c0); - /* acc2 += x[3] * y[srcBLen - 2] */ - acc2 += ((q63_t) x0 * c0); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py - 2U); - - /* Read x[5] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[srcBLen - 3] */ - acc0 += ((q63_t) x2 * c0); - /* acc1 += x[3] * y[srcBLen - 2] */ - acc1 += ((q63_t) x0 * c0); - /* acc2 += x[4] * y[srcBLen - 2] */ - acc2 += ((q63_t) x1 * c0); - - /* update scratch pointers */ - px += 3U; - py -= 3U; - - } while (--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the results in the accumulators in the destination buffer. */ - *pOut++ = (q31_t) (acc0 >> 31); - *pOut++ = (q31_t) (acc1 >> 31); - *pOut++ = (q31_t) (acc2 >> 31); - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py--); - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q31_t) (sum >> 31); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* input pointer */ - q31_t *pIn2 = pSrcB; /* coefficient pointer */ - q63_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * (pIn2[i - j])); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q31_t) (sum >> 31U); - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q7.c deleted file mode 100644 index 9e5a79b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_conv_q7.c +++ /dev/null @@ -1,678 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_conv_q7.c - * Description: Convolution of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Conv - * @{ - */ - -/** - * @brief Convolution of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format. - * - * \par - * Refer the function arm_conv_opt_q7() for a faster implementation of this function. - * - */ - -void arm_conv_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1, *pSrc2; /* Intermediate pointers */ - q7_t x0, x1, x2, x3, c0, c1; /* Temporary variables to hold state and coefficient values */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulator */ - q31_t input1, input2; /* Temporary input variables */ - q15_t in1, in2; /* Temporary input variables */ - uint32_t j, k, count, blkCnt, blockSize1, blockSize2, blockSize3; /* loop counter */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - } - - /* conv(x,y) at n = x[n] * y[0] + x[n-1] * y[1] + x[n-2] * y[2] + ...+ x[n-N+1] * y[N -1] */ - /* The function is internally - * divided into three stages according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first stage of the - * algorithm, the multiplications increase by one for every iteration. - * In the second stage of the algorithm, srcBLen number of multiplications are done. - * In the third stage of the algorithm, the multiplications decrease by one - * for every iteration. */ - - /* The algorithm is implemented in three stages. - The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = (srcALen - srcBLen) + 1U; - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[0] - * sum = x[0] * y[1] + x[1] * y[0] - * .... - * sum = x[0] * y[srcBlen - 1] + x[1] * y[srcBlen - 2] +...+ x[srcBLen - 1] * y[0] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* y[srcBLen - 1] , y[srcBLen - 2] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* x[0] * y[srcBLen - 1] */ - /* x[1] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* y[srcBLen - 3] , y[srcBLen - 4] */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* x[2] * y[srcBLen - 3] */ - /* x[3] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7U, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pIn2 + count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[srcBLen-1] + x[1] * y[srcBLen-2] +...+ x[srcBLen-1] * y[0] - * sum = x[1] * y[srcBLen-1] + x[2] * y[srcBLen-2] +...+ x[srcBLen] * y[0] - * .... - * sum = x[srcALen-srcBLen-2] * y[srcBLen-1] + x[srcALen] * y[srcBLen-2] +...+ x[srcALen-1] * y[0] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[srcBLen - 1] sample */ - c0 = *(py--); - /* Read y[srcBLen - 2] sample */ - c1 = *(py--); - - /* Read x[3] sample */ - x3 = *(px++); - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* y[srcBLen - 1] and y[srcBLen - 2] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc0 += x[0] * y[srcBLen - 1] + x[1] * y[srcBLen - 2] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc1 += x[1] * y[srcBLen - 1] + x[2] * y[srcBLen - 2] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc2 += x[2] * y[srcBLen - 1] + x[3] * y[srcBLen - 2] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc3 += x[3] * y[srcBLen - 1] + x[4] * y[srcBLen - 2] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[srcBLen - 3] sample */ - c0 = *(py--); - /* Read y[srcBLen - 4] sample */ - c1 = *(py--); - - /* Read x[5] sample */ - x1 = *(px++); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* y[srcBLen - 3] and y[srcBLen - 4] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc0 += x[2] * y[srcBLen - 3] + x[3] * y[srcBLen - 4] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc1 += x[3] * y[srcBLen - 3] + x[4] * y[srcBLen - 4] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc2 += x[4] * y[srcBLen - 3] + x[5] * y[srcBLen - 4] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *(px++); - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* acc3 += x[5] * y[srcBLen - 3] + x[6] * y[srcBLen - 4] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[srcBLen - 5] sample */ - c0 = *(py--); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[srcBLen - 5] */ - acc0 += ((q15_t) x0 * c0); - /* acc1 += x[5] * y[srcBLen - 5] */ - acc1 += ((q15_t) x1 * c0); - /* acc2 += x[6] * y[srcBLen - 5] */ - acc2 += ((q15_t) x2 * c0); - /* acc3 += x[7] * y[srcBLen - 5] */ - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(acc0 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc1 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc2 >> 7U, 8)); - *pOut++ = (q7_t) (__SSAT(acc3 >> 7U, 8)); - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7U, 8)); - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* srcBLen number of MACS should be performed */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7U, 8)); - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pSrc2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[srcBLen-1] + x[srcALen-srcBLen+2] * y[srcBLen-2] +...+ x[srcALen-1] * y[1] - * sum += x[srcALen-srcBLen+2] * y[srcBLen-1] + x[srcALen-srcBLen+3] * y[srcBLen-2] +...+ x[srcALen-1] * y[2] - * .... - * sum += x[srcALen-2] * y[srcBLen-1] + x[srcALen-1] * y[srcBLen-2] - * sum += x[srcALen-1] * y[srcBLen-1] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The blockSize3 variable holds the number of MAC operations performed */ - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1U)); - px = pSrc1; - - /* Working pointer of inputB */ - pSrc2 = pIn2 + (srcBLen - 1U); - py = pSrc2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = blockSize3 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Reading two inputs, x[srcALen - srcBLen + 1] and x[srcALen - srcBLen + 2] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Reading two inputs, y[srcBLen - 1] and y[srcBLen - 2] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* sum += x[srcALen - srcBLen + 1] * y[srcBLen - 1] */ - /* sum += x[srcALen - srcBLen + 2] * y[srcBLen - 2] */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs, x[srcALen - srcBLen + 3] and x[srcALen - srcBLen + 4] of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* Reading two inputs, y[srcBLen - 3] and y[srcBLen - 4] of SrcB buffer and packing */ - in1 = (q15_t) * py--; - in2 = (q15_t) * py--; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16U); - - /* sum += x[srcALen - srcBLen + 3] * y[srcBLen - 3] */ - /* sum += x[srcALen - srcBLen + 4] * y[srcBLen - 4] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the blockSize3 is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = blockSize3 % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py--); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut++ = (q7_t) (__SSAT(sum >> 7U, 8)); - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pSrc2; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* input pointer */ - q7_t *pIn2 = pSrcB; /* coefficient pointer */ - q31_t sum; /* Accumulator */ - uint32_t i, j; /* loop counter */ - - /* Loop to calculate output of convolution for output length number of times */ - for (i = 0; i < (srcALen + srcBLen - 1); i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0; j <= i; j++) - { - /* Check the array limitations */ - if (((i - j) < srcBLen) && (j < srcALen)) - { - /* z[i] += x[i-j] * y[j] */ - sum += (q15_t) pIn1[j] * (pIn2[i - j]); - } - } - - /* Store the output in the destination buffer */ - pDst[i] = (q7_t) __SSAT((sum >> 7U), 8U); - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Conv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_f32.c deleted file mode 100644 index 12031f1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_f32.c +++ /dev/null @@ -1,727 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_f32.c - * Description: Correlation of floating-point sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup Corr Correlation - * - * Correlation is a mathematical operation that is similar to convolution. - * As with convolution, correlation uses two signals to produce a third signal. - * The underlying algorithms in correlation and convolution are identical except that one of the inputs is flipped in convolution. - * Correlation is commonly used to measure the similarity between two signals. - * It has applications in pattern recognition, cryptanalysis, and searching. - * The CMSIS library provides correlation functions for Q7, Q15, Q31 and floating-point data types. - * Fast versions of the Q15 and Q31 functions are also provided. - * - * \par Algorithm - * Let a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. - * The convolution of the two signals is denoted by - *
- *                   c[n] = a[n] * b[n]
- * 
- * In correlation, one of the signals is flipped in time - *
- *                   c[n] = a[n] * b[-n]
- * 
- * - * \par - * and this is mathematically defined as - * \image html CorrelateEquation.gif - * \par - * The pSrcA points to the first input vector of length srcALen and pSrcB points to the second input vector of length srcBLen. - * The result c[n] is of length 2 * max(srcALen, srcBLen) - 1 and is defined over the interval n=0, 1, 2, ..., (2 * max(srcALen, srcBLen) - 2). - * The output result is written to pDst and the calling function must allocate 2 * max(srcALen, srcBLen) - 1 words for the result. - * - * Note - * \par - * The pDst should be initialized to all zeros before being used. - * - * Fixed-Point Behavior - * \par - * Correlation requires summing up a large number of intermediate products. - * As such, the Q7, Q15, and Q31 functions run a risk of overflow and saturation. - * Refer to the function specific documentation below for further details of the particular algorithm used. - * - * - * Fast Versions - * - * \par - * Fast versions are supported for Q31 and Q15. Cycles for Fast versions are less compared to Q31 and Q15 of correlate and the design requires - * the input signals should be scaled down to avoid intermediate overflows. - * - * - * Opt Versions - * - * \par - * Opt versions are supported for Q15 and Q7. Design uses internal scratch buffer for getting good optimisation. - * These versions are optimised in cycles and consumes more memory(Scratch memory) compared to Q15 and Q7 versions of correlate - */ - -/** - * @addtogroup Corr - * @{ - */ -/** - * @brief Correlation of floating-point sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - */ - -void arm_correlate_f32( - float32_t * pSrcA, - uint32_t srcALen, - float32_t * pSrcB, - uint32_t srcBLen, - float32_t * pDst) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t *pIn1; /* inputA pointer */ - float32_t *pIn2; /* inputB pointer */ - float32_t *pOut = pDst; /* output pointer */ - float32_t *px; /* Intermediate inputA pointer */ - float32_t *py; /* Intermediate inputB pointer */ - float32_t *pSrc1; /* Intermediate pointers */ - float32_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - float32_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counters */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we assume zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = pSrcA; - - /* Initialization of inputB pointer */ - pIn2 = pSrcB; - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding has to be done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - //while (j > 0U) - //{ - // /* Zero is stored in the destination buffer */ - // *pOut++ = 0.0f; - - // /* Decrement the loop counter */ - // j--; - //} - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = pSrcB; - - /* Initialization of inputB pointer */ - pIn2 = pSrcA; - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen-2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] */ - sum += *px++ * *py++; - /* x[1] * y[srcBLen - 3] */ - sum += *px++ * *py++; - /* x[2] * y[srcBLen - 2] */ - sum += *px++ * *py++; - /* x[3] * y[srcBLen - 1] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - /* x[0] * y[srcBLen - 1] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py++); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 += x0 * c0; - /* acc1 += x[1] * y[0] */ - acc1 += x1 * c0; - /* acc2 += x[2] * y[0] */ - acc2 += x2 * c0; - /* acc3 += x[3] * y[0] */ - acc3 += x3 * c0; - - /* Read y[1] sample */ - c0 = *(py++); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[1] * y[1] */ - acc0 += x1 * c0; - /* acc1 += x[2] * y[1] */ - acc1 += x2 * c0; - /* acc2 += x[3] * y[1] */ - acc2 += x3 * c0; - /* acc3 += x[4] * y[1] */ - acc3 += x0 * c0; - - /* Read y[2] sample */ - c0 = *(py++); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 += x2 * c0; - /* acc1 += x[3] * y[2] */ - acc1 += x3 * c0; - /* acc2 += x[4] * y[2] */ - acc2 += x0 * c0; - /* acc3 += x[5] * y[2] */ - acc3 += x1 * c0; - - /* Read y[3] sample */ - c0 = *(py++); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[3] */ - acc0 += x3 * c0; - /* acc1 += x[4] * y[3] */ - acc1 += x0 * c0; - /* acc2 += x[5] * y[3] */ - acc2 += x1 * c0; - /* acc3 += x[6] * y[3] */ - acc3 += x2 * c0; - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += x0 * c0; - /* acc1 += x[5] * y[4] */ - acc1 += x1 * c0; - /* acc2 += x[6] * y[4] */ - acc2 += x2 * c0; - /* acc3 += x[7] * y[4] */ - acc3 += x3 * c0; - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = acc0; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = acc1; - pOut += inc; - - *pOut = acc2; - pOut += inc; - - *pOut = acc3; - pOut += inc; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py++; - sum += *px++ * *py++; - sum += *px++ * *py++; - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1U)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0.0f; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum += *px++ * *py++; - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += *px++ * *py++; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pIn1 = pSrcA; /* inputA pointer */ - float32_t *pIn2 = pSrcB + (srcBLen - 1U); /* inputB pointer */ - float32_t sum; /* Accumulator */ - uint32_t i = 0U, j; /* loop counters */ - uint32_t inv = 0U; /* Reverse order flag */ - uint32_t tot = 0U; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we assume zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2U); - - if (srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if (srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1U); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0U; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0.0f; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += pIn1[j] * pIn2[-((int32_t) i - j)]; - } - } - /* Store the output in the destination buffer */ - if (inv == 1) - *pDst-- = sum; - else - *pDst++ = sum; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c deleted file mode 100644 index a1b0dbd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c +++ /dev/null @@ -1,500 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_fast_opt_q15.c - * Description: Fast Q15 Correlation - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch buffers should be aligned by 32-bit - * - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen) to avoid overflow since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_correlate_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - -void arm_correlate_fast_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch) -{ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t x1, x2, x3; /* temporary variables for holding input and coefficient values */ - uint32_t j, blkCnt, outBlockSize; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - uint32_t tapCnt; - q31_t y1, y2; - q15_t *pScr; /* Intermediate pointers */ - q15_t *pOut = pDst; /* output pointer */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - pScr = pScratch; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr += (srcBLen - 1U); - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr, srcALen); - - /* Update pointers */ - pScr += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - j = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (j > 0U) - { - /* copy second buffer in reversal manner */ - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = srcALen % 0x4U; - - while (j > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1U)); - - /* Update pointer */ - pScr += (srcBLen - 1U); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - j = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (j > 0U) - { - /* copy second buffer in reversal manner */ - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = (srcBLen - 1U) % 0x4U; - - while (j > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pIn2; - - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read four samples from scratch1 buffer */ - x1 = *__SIMD32(pScr)++; - - /* Read next four samples from scratch1 buffer */ - x2 = *__SIMD32(pScr)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - x1 = _SIMD32_OFFSET(pScr); - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x1, y1, acc0); - - acc2 = __SMLAD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLADX(x3, y1, acc1); - - a = *pScr; - b = *(pScr + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLAD(x2, y2, acc0); - - acc2 = __SMLAD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - acc1 = __SMLADX(x3, y2, acc1); - - a = *(pScr + 2); - b = *(pScr + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4U; - - pScr += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2); - acc1 += (*pScr++ * *pIn2); - acc2 += (*pScr++ * *pIn2); - acc3 += (*pScr++ * *pIn2++); - - pScr -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut = (__SSAT(acc0 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc1 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc2 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc3 >> 15U, 16)); - pOut += inc; - - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - acc0 += (*pScr++ * *pIn2++); - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - - *pOut = (q15_t) (__SSAT((acc0 >> 15), 16)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 1U; - - } -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q15.c deleted file mode 100644 index 383949d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q15.c +++ /dev/null @@ -1,1307 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_fast_q15.c - * Description: Fast Q15 Correlation - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen) to avoid overflow since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.30 accumulator is right shifted by 15 bits and then saturated to 1.15 format to yield the final result. - * - * \par - * See arm_correlate_q15() for a slower implementation of this function which uses a 64-bit accumulator to avoid wrap around distortion. - */ - -void arm_correlate_fast_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* x[3] * y[srcBLen - 1] , x[2] * y[srcBLen - 2] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = __SMLAD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px + 1); - px += 2U; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px + 1); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px + 2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px + 3); - px += 4U; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py)++; - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - - c0 = (*py); - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px + 2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (acc0 >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (acc1 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc2 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc3 >> 15); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] , sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* sum += x[srcALen - srcBLen + 2] * y[1] , sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = __SMLAD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLAD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - q15_t a, b; - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 2); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 2); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 2U; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(x1, c0, acc1); - - /* Read x[2], x[3], x[4] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x2 = __PKHBT(a, b, 16); - a = *(px + 2); - x3 = __PKHBT(b, a, 16); - -#else - - x2 = __PKHBT(b, a, 16); - a = *(px + 2); - x3 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - a = *(py + 2); - b = *(py + 3); - - py += 4U; - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(x3, c0, acc1); - - /* Read x[4], x[5], x[6] */ - a = *(px + 2); - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x0 = __PKHBT(a, b, 16); - a = *(px + 4); - x1 = __PKHBT(b, a, 16); - -#else - - x0 = __PKHBT(b, a, 16); - a = *(px + 4); - x1 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 4U; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(x1, c0, acc3); - - } while (--k); - - /* For the next MAC operations, SIMD is not used - * So, the 16 bit pointer if inputB, py is updated */ - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7] */ - a = *px; - b = *(px + 1); - - px++;; - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLADX(x1, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[4], y[5] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[4], y[5] */ - a = *py; - b = *(py + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - c0 = __PKHBT(a, b, 16); - -#else - - c0 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - py += 2U; - - /* Read x[7], x[8], x[9] */ - a = *px; - b = *(px + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - a = *(px + 2); - x2 = __PKHBT(b, a, 16); - -#else - - x3 = __PKHBT(b, a, 16); - a = *(px + 2); - x2 = __PKHBT(a, b, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - acc2 = __SMLAD(x3, c0, acc2); - acc3 = __SMLAD(x2, c0, acc3); - - c0 = (*py); - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - - /* Read x[10] */ - b = *(px + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - - x3 = __PKHBT(a, b, 16); - -#else - - x3 = __PKHBT(b, a, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLADX(x1, c0, acc0); - acc1 = __SMLAD(x2, c0, acc1); - acc2 = __SMLADX(x2, c0, acc2); - acc3 = __SMLADX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (acc0 >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (acc1 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc2 >> 15); - pOut += inc; - - *pOut = (q15_t) (acc3 >> 15); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q31_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (sum >> 15); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q31.c deleted file mode 100644 index 4a006aa..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_fast_q31.c +++ /dev/null @@ -1,600 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_fast_q31.c - * Description: Fast Q31 Correlation - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are accumulated in a 32-bit register in 2.30 format. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen)to avoid overflows since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * - * \par - * See arm_correlate_q31() for a slower implementation of this function which uses 64-bit accumulation to provide higher precision. - */ - -void arm_correlate_fast_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[1] * y[srcBLen - 3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[2] * y[srcBLen - 2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* x[3] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py++); - - /* Read x[3] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[1] * y[0] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[2] * y[0] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[3] * y[0] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Read y[1] sample */ - c0 = *(py++); - - /* Read x[4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[1] * y[1] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc1 += x[2] * y[1] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc2 += x[3] * y[1] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc3 += x[4] * y[1] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read y[2] sample */ - c0 = *(py++); - - /* Read x[5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc1 += x[3] * y[2] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc2 += x[4] * y[2] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc3 += x[5] * y[2] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read y[3] sample */ - c0 = *(py++); - - /* Read x[6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[3] * y[3] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x3 * c0)) >> 32); - /* acc1 += x[4] * y[3] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc2 += x[5] * y[3] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc3 += x[6] * y[3] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x2 * c0)) >> 32); - - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - /* acc1 += x[5] * y[4] */ - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - /* acc2 += x[6] * y[4] */ - acc2 = (q31_t) ((((q63_t) acc2 << 32) + ((q63_t) x2 * c0)) >> 32); - /* acc3 += x[7] * y[4] */ - acc3 = (q31_t) ((((q63_t) acc3 << 32) + ((q63_t) x3 * c0)) >> 32); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (acc0 << 1); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q31_t) (acc1 << 1); - pOut += inc; - - *pOut = (q31_t) (acc2 << 1); - pOut += inc; - - *pOut = (q31_t) (acc3 << 1); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 4 */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = ((pIn1 + srcALen) - srcBLen) + 1U; - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = (q31_t) ((((q63_t) sum << 32) + - ((q63_t) * px++ * (*py++))) >> 32); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = sum << 1; - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q15.c deleted file mode 100644 index 1eda719..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q15.c +++ /dev/null @@ -1,501 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_opt_q15.c - * Description: Correlation of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @return none. - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_correlate_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * - */ - - -void arm_correlate_opt_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst, - q15_t * pScratch) -{ - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t x1, x2, x3; /* temporary variables for holding input1 and input2 values */ - uint32_t j, blkCnt, outBlockSize; /* loop counter */ - int32_t inc = 1; /* output pointer increment */ - uint32_t tapCnt; - q31_t y1, y2; - q15_t *pScr; /* Intermediate pointers */ - q15_t *pOut = pDst; /* output pointer */ -#ifdef UNALIGNED_SUPPORT_DISABLE - - q15_t a, b; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - pScr = pScratch; - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr += (srcBLen - 1U); - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Copy (srcALen) samples in scratch buffer */ - arm_copy_q15(pIn1, pScr, srcALen); - - /* Update pointers */ - //pIn1 += srcALen; - pScr += srcALen; - -#else - - /* Apply loop unrolling and do 4 Copies simultaneously. */ - j = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (j > 0U) - { - /* copy second buffer in reversal manner */ - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = srcALen % 0x4U; - - while (j > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = *pIn1++; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr, (srcBLen - 1U)); - - /* Update pointer */ - pScr += (srcBLen - 1U); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - j = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (j > 0U) - { - /* copy second buffer in reversal manner */ - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - j = (srcBLen - 1U) % 0x4U; - - while (j > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr++ = 0; - - /* Decrement the loop counter */ - j--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for scratch2 */ - py = pIn2; - - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read four samples from scratch1 buffer */ - x1 = *__SIMD32(pScr)++; - - /* Read next four samples from scratch1 buffer */ - x2 = *__SIMD32(pScr)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pIn2); - y2 = _SIMD32_OFFSET(pIn2 + 2U); - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - x1 = _SIMD32_OFFSET(pScr); - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - x2 = _SIMD32_OFFSET(pScr + 2U); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#else - - /* Read four samples from smaller buffer */ - a = *pIn2; - b = *(pIn2 + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - y1 = __PKHBT(a, b, 16); -#else - y1 = __PKHBT(b, a, 16); -#endif - - a = *(pIn2 + 2); - b = *(pIn2 + 3); -#ifndef ARM_MATH_BIG_ENDIAN - y2 = __PKHBT(a, b, 16); -#else - y2 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x1, y1, acc0); - - acc2 = __SMLALD(x2, y1, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc1 = __SMLALDX(x3, y1, acc1); - - a = *pScr; - b = *(pScr + 1); - -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(a, b, 16); -#else - x1 = __PKHBT(b, a, 16); -#endif - - acc0 = __SMLALD(x2, y2, acc0); - - acc2 = __SMLALD(x1, y2, acc2); - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLALDX(x3, y1, acc3); - - acc1 = __SMLALDX(x3, y2, acc1); - - a = *(pScr + 2); - b = *(pScr + 3); - -#ifndef ARM_MATH_BIG_ENDIAN - x2 = __PKHBT(a, b, 16); -#else - x2 = __PKHBT(b, a, 16); -#endif - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLALDX(x3, y2, acc3); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - pIn2 += 4U; - - pScr += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2); - acc1 += (*pScr++ * *pIn2); - acc2 += (*pScr++ * *pIn2); - acc3 += (*pScr++ * *pIn2++); - - pScr -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - - /* Store the results in the accumulators in the destination buffer. */ - *pOut = (__SSAT(acc0 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc1 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc2 >> 15U, 16)); - pOut += inc; - *pOut = (__SSAT(acc3 >> 15U, 16)); - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr = pScratch; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - - acc0 += (*pScr++ * *pIn2++); - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr++ * *pIn2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((acc0 >> 15), 16)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pIn2 = py; - - pScratch += 1U; - - } - - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q7.c deleted file mode 100644 index d4ff45e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_opt_q7.c +++ /dev/null @@ -1,452 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_opt_q7.c - * Description: Correlation of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. - * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch1 and scratch2 buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and saturated to 1.7 format. - * - * - */ - - - -void arm_correlate_opt_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst, - q15_t * pScratch1, - q15_t * pScratch2) -{ - q7_t *pOut = pDst; /* output pointer */ - q15_t *pScr1 = pScratch1; /* Temporary pointer for scratch */ - q15_t *pScr2 = pScratch2; /* Temporary pointer for scratch */ - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t j, k = 0U, blkCnt; /* loop counter */ - int32_t inc = 1; /* output pointer increment */ - uint32_t outBlockSize; /* loop counter */ - q15_t x4; /* Temporary input variable */ - uint32_t tapCnt; /* loop counter */ - q31_t x1, x2, x3, y1; /* Temporary input variables */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - - /* Copy (srcBLen) samples in scratch buffer */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn2++; - *pScr2++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* Fill (srcBLen - 1U) zeros in scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update temporary scratch pointer */ - pScr1 += (srcBLen - 1U); - - /* Copy (srcALen) samples in scratch buffer */ - k = srcALen >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = srcALen % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - x4 = (q15_t) * pIn1++; - *pScr1++ = x4; - - /* Decrement the loop counter */ - k--; - } - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Fill (srcBLen - 1U) zeros at end of scratch buffer */ - arm_fill_q15(0, pScr1, (srcBLen - 1U)); - - /* Update pointer */ - pScr1 += (srcBLen - 1U); - -#else - -/* Apply loop unrolling and do 4 Copies simultaneously. */ - k = (srcBLen - 1U) >> 2U; - - /* First part of the processing with loop unrolling copies 4 data points at a time. - ** a second loop below copies for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* copy second buffer in reversal manner */ - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, copy remaining samples here. - ** No loop unrolling is used. */ - k = (srcBLen - 1U) % 0x4U; - - while (k > 0U) - { - /* copy second buffer in reversal manner for remaining samples */ - *pScr1++ = 0; - - /* Decrement the loop counter */ - k--; - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Temporary pointer for second sequence */ - py = pScratch2; - - /* Initialization of pScr2 pointer */ - pScr2 = pScratch2; - - /* Actual correlation process starts here */ - blkCnt = (srcALen + srcBLen - 1U) >> 2; - - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Read two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* Read next two samples from scratch1 buffer */ - x2 = *__SIMD32(pScr1)++; - - tapCnt = (srcBLen) >> 2U; - - while (tapCnt > 0U) - { - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2); - - /* multiply and accumlate */ - acc0 = __SMLAD(x1, y1, acc0); - acc2 = __SMLAD(x2, y1, acc2); - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - /* multiply and accumlate */ - acc1 = __SMLADX(x3, y1, acc1); - - /* Read next two samples from scratch1 buffer */ - x1 = *__SIMD32(pScr1)++; - - /* pack input data */ -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x1, x2, 0); -#else - x3 = __PKHBT(x2, x1, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - /* Read four samples from smaller buffer */ - y1 = _SIMD32_OFFSET(pScr2 + 2U); - - acc0 = __SMLAD(x2, y1, acc0); - - acc2 = __SMLAD(x1, y1, acc2); - - acc1 = __SMLADX(x3, y1, acc1); - - x2 = *__SIMD32(pScr1)++; - -#ifndef ARM_MATH_BIG_ENDIAN - x3 = __PKHBT(x2, x1, 0); -#else - x3 = __PKHBT(x1, x2, 0); -#endif - - acc3 = __SMLADX(x3, y1, acc3); - - pScr2 += 4U; - - - /* Decrement the loop counter */ - tapCnt--; - } - - - - /* Update scratch pointer for remaining samples of smaller length sequence */ - pScr1 -= 4U; - - - /* apply same above for remaining samples of smaller length sequence */ - tapCnt = (srcBLen) & 3U; - - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2); - acc1 += (*pScr1++ * *pScr2); - acc2 += (*pScr1++ * *pScr2); - acc3 += (*pScr1++ * *pScr2++); - - pScr1 -= 3U; - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7U, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc1 >> 7U, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc2 >> 7U, 8)); - pOut += inc; - *pOut = (q7_t) (__SSAT(acc3 >> 7U, 8)); - pOut += inc; - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 4U; - - } - - - blkCnt = (srcALen + srcBLen - 1U) & 0x3; - - /* Calculate correlation for remaining samples of Bigger length sequence */ - while (blkCnt > 0) - { - /* Initialze temporary scratch pointer as scratch1 */ - pScr1 = pScratch1; - - /* Clear Accumlators */ - acc0 = 0; - - tapCnt = (srcBLen) >> 1U; - - while (tapCnt > 0U) - { - acc0 += (*pScr1++ * *pScr2++); - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (srcBLen) & 1U; - - /* apply same above for remaining samples of smaller length sequence */ - while (tapCnt > 0U) - { - - /* accumlate the results */ - acc0 += (*pScr1++ * *pScr2++); - - /* Decrement the loop counter */ - tapCnt--; - } - - blkCnt--; - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7U, 8)); - - pOut += inc; - - /* Initialization of inputB pointer */ - pScr2 = py; - - pScratch1 += 1U; - - } - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q15.c deleted file mode 100644 index ce86db4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q15.c +++ /dev/null @@ -1,707 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_q15.c - * Description: Correlation of Q15 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q15 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both inputs are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * This approach provides 33 guard bits and there is no risk of overflow. - * The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format. - * - * \par - * Refer to arm_correlate_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - * \par - * Refer the function arm_correlate_opt_q15() for a faster implementation of this function using scratch buffers. - * - */ - -void arm_correlate_q15( - q15_t * pSrcA, - uint32_t srcALen, - q15_t * pSrcB, - uint32_t srcBLen, - q15_t * pDst) -{ - -#if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pIn1; /* inputA pointer */ - q15_t *pIn2; /* inputB pointer */ - q15_t *pOut = pDst; /* output pointer */ - q63_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *px; /* Intermediate inputA pointer */ - q15_t *py; /* Intermediate inputB pointer */ - q15_t *pSrc1; /* Intermediate pointers */ - q31_t x0, x1, x2, x3, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first loop starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] , x[1] * y[srcBLen - 3] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* x[3] * y[srcBLen - 1] , x[2] * y[srcBLen - 2] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum = __SMLALD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((sum >> 15), 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4, to loop unroll the srcBLen loop */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1] samples */ - x0 = *__SIMD32(px); - /* read x[1], x[2] samples */ - x1 = _SIMD32_OFFSET(px + 1); - px += 2U; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read the first two inputB samples using SIMD: - * y[0] and y[1] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLALD(x1, c0, acc1); - - /* Read x[2], x[3] */ - x2 = *__SIMD32(px); - - /* Read x[3], x[4] */ - x3 = _SIMD32_OFFSET(px + 1); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLALD(x3, c0, acc3); - - /* Read y[2] and y[3] */ - c0 = *__SIMD32(py)++; - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLALD(x3, c0, acc1); - - /* Read x[4], x[5] */ - x0 = _SIMD32_OFFSET(px + 2); - - /* Read x[5], x[6] */ - x1 = _SIMD32_OFFSET(px + 3); - - px += 4U; - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLALD(x1, c0, acc3); - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - if (k == 1U) - { - /* Read y[4] */ - c0 = *py; -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; - -#else - - c0 = c0 & 0x0000FFFF; - -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[7] */ - x3 = *__SIMD32(px); - px++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALDX(x1, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - if (k == 2U) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py); - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - px += 2U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x3, c0, acc2); - acc3 = __SMLALD(x2, c0, acc3); - } - - if (k == 3U) - { - /* Read y[4], y[5] */ - c0 = *__SIMD32(py)++; - - /* Read x[7], x[8] */ - x3 = *__SIMD32(px); - - /* Read x[9] */ - x2 = _SIMD32_OFFSET(px + 1); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x3, c0, acc2); - acc3 = __SMLALD(x2, c0, acc3); - - c0 = (*py); - - /* Read y[6] */ -#ifdef ARM_MATH_BIG_ENDIAN - - c0 = c0 << 16U; -#else - - c0 = c0 & 0x0000FFFF; -#endif /* #ifdef ARM_MATH_BIG_ENDIAN */ - /* Read x[10] */ - x3 = _SIMD32_OFFSET(px + 2); - px += 3U; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALDX(x1, c0, acc0); - acc1 = __SMLALD(x2, c0, acc1); - acc2 = __SMLALDX(x2, c0, acc2); - acc3 = __SMLALDX(x3, c0, acc3); - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(acc0 >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc1 >> 15, 16)); - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc2 >> 15, 16)); - pOut += inc; - - *pOut = (q15_t) (__SSAT(acc3 >> 15, 16)); - pOut += inc; - - /* Increment the count by 4 as 4 output values are computed */ - count += 4U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(sum >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment count by 1, as one output value is computed */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q63_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT(sum >> 15, 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = (pIn1 + srcALen) - (srcBLen - 1U); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] , sum += x[srcALen - srcBLen + 3] * y[2] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - /* sum += x[srcALen - srcBLen + 2] * y[1] , sum += x[srcALen - srcBLen + 1] * y[0] */ - sum = __SMLALD(*__SIMD32(px)++, *__SIMD32(py)++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum = __SMLALD(*px++, *py++, sum); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q15_t) (__SSAT((sum >> 15), 16)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA; /* inputA pointer */ - q15_t *pIn2 = pSrcB + (srcBLen - 1U); /* inputB pointer */ - q63_t sum; /* Accumulators */ - uint32_t i = 0U, j; /* loop counters */ - uint32_t inv = 0U; /* Reverse order flag */ - uint32_t tot = 0U; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2U); - - if (srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if (srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1U); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0U; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q31_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if (inv == 1) - *pDst-- = (q15_t) __SSAT((sum >> 15U), 16U); - else - *pDst++ = (q15_t) __SSAT((sum >> 15U), 16U); - } - -#endif /* #if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3)) && !defined(UNALIGNED_SUPPORT_DISABLE) */ - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q31.c deleted file mode 100644 index 3d7d3d0..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q31.c +++ /dev/null @@ -1,653 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_q31.c - * Description: Correlation of Q31 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q31 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * There is no saturation on intermediate additions. - * Thus, if the accumulator overflows it wraps around and distorts the result. - * The input signals should be scaled down to avoid intermediate overflows. - * Scale down one of the inputs by 1/min(srcALen, srcBLen)to avoid overflows since a - * maximum of min(srcALen, srcBLen) number of additions is carried internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_correlate_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_correlate_q31( - q31_t * pSrcA, - uint32_t srcALen, - q31_t * pSrcB, - uint32_t srcBLen, - q31_t * pDst) -{ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t *pIn1; /* inputA pointer */ - q31_t *pIn2; /* inputB pointer */ - q31_t *pOut = pDst; /* output pointer */ - q31_t *px; /* Intermediate inputA pointer */ - q31_t *py; /* Intermediate inputB pointer */ - q31_t *pSrc1; /* Intermediate pointers */ - q63_t sum, acc0, acc1, acc2; /* Accumulators */ - q31_t x0, x1, x2, c0; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; /* Destination address modifier */ - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] * y[srcBLen - 4] */ - sum += (q63_t) * px++ * (*py++); - /* x[1] * y[srcBLen - 3] */ - sum += (q63_t) * px++ * (*py++); - /* x[2] * y[srcBLen - 2] */ - sum += (q63_t) * px++ * (*py++); - /* x[3] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll by 3 */ - blkCnt = blockSize2 / 3; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* read x[0], x[1] samples */ - x0 = *(px++); - x1 = *(px++); - - /* Apply loop unrolling and compute 3 MACs simultaneously. */ - k = srcBLen / 3; - - /* First part of the processing with loop unrolling. Compute 3 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 2 samples. */ - do - { - /* Read y[0] sample */ - c0 = *(py); - - /* Read x[2] sample */ - x2 = *(px); - - /* Perform the multiply-accumulate */ - /* acc0 += x[0] * y[0] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[1] * y[0] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[2] * y[0] */ - acc2 += ((q63_t) x2 * c0); - - /* Read y[1] sample */ - c0 = *(py + 1U); - - /* Read x[3] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulates */ - /* acc0 += x[1] * y[1] */ - acc0 += ((q63_t) x1 * c0); - /* acc1 += x[2] * y[1] */ - acc1 += ((q63_t) x2 * c0); - /* acc2 += x[3] * y[1] */ - acc2 += ((q63_t) x0 * c0); - - /* Read y[2] sample */ - c0 = *(py + 2U); - - /* Read x[4] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - /* acc0 += x[2] * y[2] */ - acc0 += ((q63_t) x2 * c0); - /* acc1 += x[3] * y[2] */ - acc1 += ((q63_t) x0 * c0); - /* acc2 += x[4] * y[2] */ - acc2 += ((q63_t) x1 * c0); - - /* update scratch pointers */ - px += 3U; - py += 3U; - - } while (--k); - - /* If the srcBLen is not a multiple of 3, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen - (3 * (srcBLen / 3)); - - while (k > 0U) - { - /* Read y[4] sample */ - c0 = *(py++); - - /* Read x[7] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += ((q63_t) x0 * c0); - /* acc1 += x[5] * y[4] */ - acc1 += ((q63_t) x1 * c0); - /* acc2 += x[6] * y[4] */ - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (acc0 >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q31_t) (acc1 >> 31); - pOut += inc; - - *pOut = (q31_t) (acc2 >> 31); - pOut += inc; - - /* Increment the pointer pIn1 index, count by 3 */ - count += 3U; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 - 3 * (blockSize2 / 3); - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1U)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum += (q63_t) * px++ * (*py++); - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += (q63_t) * px++ * (*py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q31_t) (sum >> 31); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pIn1 = pSrcA; /* inputA pointer */ - q31_t *pIn2 = pSrcB + (srcBLen - 1U); /* inputB pointer */ - q63_t sum; /* Accumulators */ - uint32_t i = 0U, j; /* loop counters */ - uint32_t inv = 0U; /* Reverse order flag */ - uint32_t tot = 0U; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using correlation but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2U); - - if (srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if (srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1U); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate correlation for output length number of times */ - for (i = 0U; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to correlation equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q63_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if (inv == 1) - *pDst-- = (q31_t) (sum >> 31U); - else - *pDst++ = (q31_t) (sum >> 31U); - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q7.c deleted file mode 100644 index dc5247f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_correlate_q7.c +++ /dev/null @@ -1,778 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_correlate_q7.c - * Description: Correlation of Q7 sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup Corr - * @{ - */ - -/** - * @brief Correlation of Q7 sequences. - * @param[in] *pSrcA points to the first input sequence. - * @param[in] srcALen length of the first input sequence. - * @param[in] *pSrcB points to the second input sequence. - * @param[in] srcBLen length of the second input sequence. - * @param[out] *pDst points to the location where the output result is written. Length 2 * max(srcALen, srcBLen) - 1. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both the inputs are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * This approach provides 17 guard bits and there is no risk of overflow as long as max(srcALen, srcBLen)<131072. - * The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and saturated to 1.7 format. - * - * \par - * Refer the function arm_correlate_opt_q7() for a faster implementation of this function. - * - */ - -void arm_correlate_q7( - q7_t * pSrcA, - uint32_t srcALen, - q7_t * pSrcB, - uint32_t srcBLen, - q7_t * pDst) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pIn1; /* inputA pointer */ - q7_t *pIn2; /* inputB pointer */ - q7_t *pOut = pDst; /* output pointer */ - q7_t *px; /* Intermediate inputA pointer */ - q7_t *py; /* Intermediate inputB pointer */ - q7_t *pSrc1; /* Intermediate pointers */ - q31_t sum, acc0, acc1, acc2, acc3; /* Accumulators */ - q31_t input1, input2; /* temporary variables */ - q15_t in1, in2; /* temporary variables */ - q7_t x0, x1, x2, x3, c0, c1; /* temporary variables for holding input and coefficient values */ - uint32_t j, k = 0U, count, blkCnt, outBlockSize, blockSize1, blockSize2, blockSize3; /* loop counter */ - int32_t inc = 1; - - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and the destination pointer modifier, inc is set to -1 */ - /* If srcALen > srcBLen, zero pad has to be done to srcB to make the two inputs of same length */ - /* But to improve the performance, - * we include zeroes in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, - * (srcALen - srcBLen) zeroes has to included in the starting of the output buffer */ - /* If srcALen < srcBLen, - * (srcALen - srcBLen) zeroes has to included in the ending of the output buffer */ - if (srcALen >= srcBLen) - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcA); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcB); - - /* Number of output samples is calculated */ - outBlockSize = (2U * srcALen) - 1U; - - /* When srcALen > srcBLen, zero padding is done to srcB - * to make their lengths equal. - * Instead, (outBlockSize - (srcALen + srcBLen - 1)) - * number of output samples are made zero */ - j = outBlockSize - (srcALen + (srcBLen - 1U)); - - /* Updating the pointer position to non zero value */ - pOut += j; - - } - else - { - /* Initialization of inputA pointer */ - pIn1 = (pSrcB); - - /* Initialization of inputB pointer */ - pIn2 = (pSrcA); - - /* srcBLen is always considered as shorter or equal to srcALen */ - j = srcBLen; - srcBLen = srcALen; - srcALen = j; - - /* CORR(x, y) = Reverse order(CORR(y, x)) */ - /* Hence set the destination pointer to point to the last output sample */ - pOut = pDst + ((srcALen + srcBLen) - 2U); - - /* Destination address modifier is set to -1 */ - inc = -1; - - } - - /* The function is internally - * divided into three parts according to the number of multiplications that has to be - * taken place between inputA samples and inputB samples. In the first part of the - * algorithm, the multiplications increase by one for every iteration. - * In the second part of the algorithm, srcBLen number of multiplications are done. - * In the third part of the algorithm, the multiplications decrease by one - * for every iteration.*/ - /* The algorithm is implemented in three stages. - * The loop counters of each stage is initiated here. */ - blockSize1 = srcBLen - 1U; - blockSize2 = srcALen - (srcBLen - 1U); - blockSize3 = blockSize1; - - /* -------------------------- - * Initializations of stage1 - * -------------------------*/ - - /* sum = x[0] * y[srcBlen - 1] - * sum = x[0] * y[srcBlen - 2] + x[1] * y[srcBlen - 1] - * .... - * sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen - 1] * y[srcBLen - 1] - */ - - /* In this stage the MAC operations are increased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = 1U; - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - pSrc1 = pIn2 + (srcBLen - 1U); - py = pSrc1; - - /* ------------------------ - * Stage1 process - * ----------------------*/ - - /* The first stage starts here */ - while (blockSize1 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[0] , x[1] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 4] , y[srcBLen - 3] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[0] * y[srcBLen - 4] */ - /* x[1] * y[srcBLen - 3] */ - sum = __SMLAD(input1, input2, sum); - - /* x[2] , x[3] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[srcBLen - 2] , y[srcBLen - 1] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* x[2] * y[srcBLen - 2] */ - /* x[3] * y[srcBLen - 1] */ - sum = __SMLAD(input1, input2, sum); - - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - /* x[0] * y[srcBLen - 1] */ - sum += (q31_t) ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - py = pSrc1 - count; - px = pIn1; - - /* Increment the MAC count */ - count++; - - /* Decrement the loop counter */ - blockSize1--; - } - - /* -------------------------- - * Initializations of stage2 - * ------------------------*/ - - /* sum = x[0] * y[0] + x[1] * y[1] +...+ x[srcBLen-1] * y[srcBLen-1] - * sum = x[1] * y[0] + x[2] * y[1] +...+ x[srcBLen] * y[srcBLen-1] - * .... - * sum = x[srcALen-srcBLen-2] * y[0] + x[srcALen-srcBLen-1] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - */ - - /* Working pointer of inputA */ - px = pIn1; - - /* Working pointer of inputB */ - py = pIn2; - - /* count is index by which the pointer pIn1 to be incremented */ - count = 0U; - - /* ------------------- - * Stage2 process - * ------------------*/ - - /* Stage2 depends on srcBLen as in this stage srcBLen number of MACS are performed. - * So, to loop unroll over blockSize2, - * srcBLen should be greater than or equal to 4 */ - if (srcBLen >= 4U) - { - /* Loop unroll over blockSize2, by 4 */ - blkCnt = blockSize2 >> 2U; - - while (blkCnt > 0U) - { - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* read x[0], x[1], x[2] samples */ - x0 = *px++; - x1 = *px++; - x2 = *px++; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - do - { - /* Read y[0] sample */ - c0 = *py++; - /* Read y[1] sample */ - c1 = *py++; - - /* Read x[3] sample */ - x3 = *px++; - - /* x[0] and x[1] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[0] and y[1] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[0] * y[0] + x[1] * y[1] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[1] and x[2] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[1] * y[0] + x[2] * y[1] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[2] * y[0] + x[3] * y[1] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[4] sample */ - x0 = *(px++); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[3] * y[0] + x[4] * y[1] */ - acc3 = __SMLAD(input1, input2, acc3); - - /* Read y[2] sample */ - c0 = *py++; - /* Read y[3] sample */ - c1 = *py++; - - /* Read x[5] sample */ - x1 = *px++; - - /* x[2] and x[3] are packed */ - in1 = (q15_t) x2; - in2 = (q15_t) x3; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[2] and y[3] are packed */ - in1 = (q15_t) c0; - in2 = (q15_t) c1; - - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc0 += x[2] * y[2] + x[3] * y[3] */ - acc0 = __SMLAD(input1, input2, acc0); - - /* x[3] and x[4] are packed */ - in1 = (q15_t) x3; - in2 = (q15_t) x0; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc1 += x[3] * y[2] + x[4] * y[3] */ - acc1 = __SMLAD(input1, input2, acc1); - - /* x[4] and x[5] are packed */ - in1 = (q15_t) x0; - in2 = (q15_t) x1; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc2 += x[4] * y[2] + x[5] * y[3] */ - acc2 = __SMLAD(input1, input2, acc2); - - /* Read x[6] sample */ - x2 = *px++; - - /* x[5] and x[6] are packed */ - in1 = (q15_t) x1; - in2 = (q15_t) x2; - - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* acc3 += x[5] * y[2] + x[6] * y[3] */ - acc3 = __SMLAD(input1, input2, acc3); - - } while (--k); - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Read y[4] sample */ - c0 = *py++; - - /* Read x[7] sample */ - x3 = *px++; - - /* Perform the multiply-accumulates */ - /* acc0 += x[4] * y[4] */ - acc0 += ((q15_t) x0 * c0); - /* acc1 += x[5] * y[4] */ - acc1 += ((q15_t) x1 * c0); - /* acc2 += x[6] * y[4] */ - acc2 += ((q15_t) x2 * c0); - /* acc3 += x[7] * y[4] */ - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present samples for the next MAC */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(acc0 >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc1 >> 7, 8)); - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc2 >> 7, 8)); - pOut += inc; - - *pOut = (q7_t) (__SSAT(acc3 >> 7, 8)); - pOut += inc; - - count += 4U; - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize2 is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize2 % 0x4U; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = srcBLen >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Reading two inputs of SrcA buffer and packing */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Reading two inputs of SrcB buffer and packing */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* Perform the multiply-accumulates */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the srcBLen is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = srcBLen % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the pointer pIn1 index, count by 1 */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - /* Decrement the loop counter */ - blkCnt--; - } - } - else - { - /* If the srcBLen is not a multiple of 4, - * the blockSize2 loop cannot be unrolled by 4 */ - blkCnt = blockSize2; - - while (blkCnt > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Loop over srcBLen */ - k = srcBLen; - - while (k > 0U) - { - /* Perform the multiply-accumulate */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Increment the MAC count */ - count++; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; - py = pIn2; - - - /* Decrement the loop counter */ - blkCnt--; - } - } - - /* -------------------------- - * Initializations of stage3 - * -------------------------*/ - - /* sum += x[srcALen-srcBLen+1] * y[0] + x[srcALen-srcBLen+2] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * sum += x[srcALen-srcBLen+2] * y[0] + x[srcALen-srcBLen+3] * y[1] +...+ x[srcALen-1] * y[srcBLen-1] - * .... - * sum += x[srcALen-2] * y[0] + x[srcALen-1] * y[1] - * sum += x[srcALen-1] * y[0] - */ - - /* In this stage the MAC operations are decreased by 1 for every iteration. - The count variable holds the number of MAC operations performed */ - count = srcBLen - 1U; - - /* Working pointer of inputA */ - pSrc1 = pIn1 + (srcALen - (srcBLen - 1U)); - px = pSrc1; - - /* Working pointer of inputB */ - py = pIn2; - - /* ------------------- - * Stage3 process - * ------------------*/ - - while (blockSize3 > 0U) - { - /* Accumulator is made zero for every iteration */ - sum = 0; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - k = count >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 MACs at a time. - ** a second loop below computes MACs for the remaining 1 to 3 samples. */ - while (k > 0U) - { - /* x[srcALen - srcBLen + 1] , x[srcALen - srcBLen + 2] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[0] , y[1] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 1] * y[0] */ - /* sum += x[srcALen - srcBLen + 2] * y[1] */ - sum = __SMLAD(input1, input2, sum); - - /* x[srcALen - srcBLen + 3] , x[srcALen - srcBLen + 4] */ - in1 = (q15_t) * px++; - in2 = (q15_t) * px++; - input1 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* y[2] , y[3] */ - in1 = (q15_t) * py++; - in2 = (q15_t) * py++; - input2 = ((q31_t) in1 & 0x0000FFFF) | ((q31_t) in2 << 16); - - /* sum += x[srcALen - srcBLen + 3] * y[2] */ - /* sum += x[srcALen - srcBLen + 4] * y[3] */ - sum = __SMLAD(input1, input2, sum); - - /* Decrement the loop counter */ - k--; - } - - /* If the count is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - k = count % 0x4U; - - while (k > 0U) - { - /* Perform the multiply-accumulates */ - sum += ((q15_t) * px++ * *py++); - - /* Decrement the loop counter */ - k--; - } - - /* Store the result in the accumulator in the destination buffer. */ - *pOut = (q7_t) (__SSAT(sum >> 7, 8)); - /* Destination pointer is updated according to the address modifier, inc */ - pOut += inc; - - /* Update the inputA and inputB pointers for next MAC calculation */ - px = ++pSrc1; - py = pIn2; - - /* Decrement the MAC count */ - count--; - - /* Decrement the loop counter */ - blockSize3--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q7_t *pIn1 = pSrcA; /* inputA pointer */ - q7_t *pIn2 = pSrcB + (srcBLen - 1U); /* inputB pointer */ - q31_t sum; /* Accumulator */ - uint32_t i = 0U, j; /* loop counters */ - uint32_t inv = 0U; /* Reverse order flag */ - uint32_t tot = 0U; /* Length */ - - /* The algorithm implementation is based on the lengths of the inputs. */ - /* srcB is always made to slide across srcA. */ - /* So srcBLen is always considered as shorter or equal to srcALen */ - /* But CORR(x, y) is reverse of CORR(y, x) */ - /* So, when srcBLen > srcALen, output pointer is made to point to the end of the output buffer */ - /* and a varaible, inv is set to 1 */ - /* If lengths are not equal then zero pad has to be done to make the two - * inputs of same length. But to improve the performance, we include zeroes - * in the output instead of zero padding either of the the inputs*/ - /* If srcALen > srcBLen, (srcALen - srcBLen) zeroes has to included in the - * starting of the output buffer */ - /* If srcALen < srcBLen, (srcALen - srcBLen) zeroes has to included in the - * ending of the output buffer */ - /* Once the zero padding is done the remaining of the output is calcualted - * using convolution but with the shorter signal time shifted. */ - - /* Calculate the length of the remaining sequence */ - tot = ((srcALen + srcBLen) - 2U); - - if (srcALen > srcBLen) - { - /* Calculating the number of zeros to be padded to the output */ - j = srcALen - srcBLen; - - /* Initialise the pointer after zero padding */ - pDst += j; - } - - else if (srcALen < srcBLen) - { - /* Initialization to inputB pointer */ - pIn1 = pSrcB; - - /* Initialization to the end of inputA pointer */ - pIn2 = pSrcA + (srcALen - 1U); - - /* Initialisation of the pointer after zero padding */ - pDst = pDst + tot; - - /* Swapping the lengths */ - j = srcALen; - srcALen = srcBLen; - srcBLen = j; - - /* Setting the reverse flag */ - inv = 1; - - } - - /* Loop to calculate convolution for output length number of times */ - for (i = 0U; i <= tot; i++) - { - /* Initialize sum with zero to carry on MAC operations */ - sum = 0; - - /* Loop to perform MAC operations according to convolution equation */ - for (j = 0U; j <= i; j++) - { - /* Check the array limitations */ - if ((((i - j) < srcBLen) && (j < srcALen))) - { - /* z[i] += x[i-j] * y[j] */ - sum += ((q15_t) pIn1[j] * pIn2[-((int32_t) i - j)]); - } - } - /* Store the output in the destination buffer */ - if (inv == 1) - *pDst-- = (q7_t) __SSAT((sum >> 7U), 8U); - else - *pDst++ = (q7_t) __SSAT((sum >> 7U), 8U); - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of Corr group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_f32.c deleted file mode 100644 index 160dc2a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_f32.c +++ /dev/null @@ -1,512 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_f32.c - * Description: FIR decimation for floating-point sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_decimate Finite Impulse Response (FIR) Decimator - * - * These functions combine an FIR filter together with a decimator. - * They are used in multirate systems for reducing the sample rate of a signal without introducing aliasing distortion. - * Conceptually, the functions are equivalent to the block diagram below: - * \image html FIRDecimator.gif "Components included in the FIR Decimator functions" - * When decimating by a factor of M, the signal should be prefiltered by a lowpass filter with a normalized - * cutoff frequency of 1/M in order to prevent aliasing distortion. - * The user of the function is responsible for providing the filter coefficients. - * - * The FIR decimator functions provided in the CMSIS DSP Library combine the FIR filter and the decimator in an efficient manner. - * Instead of calculating all of the FIR filter outputs and discarding M-1 out of every M, only the - * samples output by the decimator are computed. - * The functions operate on blocks of input and output data. - * pSrc points to an array of blockSize input values and - * pDst points to an array of blockSize/M output values. - * In order to have an integer number of output samples blockSize - * must always be a multiple of the decimation factor M. - * - * The library provides separate functions for Q15, Q31 and floating-point data types. - * - * \par Algorithm: - * The FIR portion of the algorithm uses the standard form filter: - *
- *    y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]
- * 
- * where, b[n] are the filter coefficients. - * \par - * The pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}
- * 
- * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable array should be allocated separately. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - Checks to make sure that the size of the input is a multiple of the decimation factor. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numTaps, pCoeffs, M (decimation factor), pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * The code below statically initializes each of the 3 different data type filter instance structures - *
- *arm_fir_decimate_instance_f32 S = {M, numTaps, pCoeffs, pState};
- *arm_fir_decimate_instance_q31 S = {M, numTaps, pCoeffs, pState};
- *arm_fir_decimate_instance_q15 S = {M, numTaps, pCoeffs, pState};
- * 
- * where M is the decimation factor; numTaps is the number of filter coefficients in the filter; - * pCoeffs is the address of the coefficient buffer; - * pState is the address of the state buffer. - * Be sure to set the values in the state buffer to zeros when doing static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR decimate filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - - /** - * @brief Processing function for the floating-point FIR decimator. - * @param[in] *S points to an instance of the floating-point FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ - -void arm_fir_decimate_f32( - const arm_fir_decimate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t sum0; /* Accumulator */ - float32_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - -#if defined (ARM_MATH_DSP) - - uint32_t blkCntN4; - float32_t *px0, *px1, *px2, *px3; - float32_t acc0, acc1, acc2, acc3; - float32_t x1, x2, x3; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 4; - blkCntN4 = outBlockSize - (4 * blkCnt); - - while (blkCnt > 0U) - { - /* Copy 4 * decimation factor number of new input samples into the state buffer */ - i = 4 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* Initialize state pointer for all the samples */ - px0 = pState; - px1 = pState + S->M; - px2 = pState + 2 * S->M; - px3 = pState + 3 * S->M; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample for acc0 */ - x0 = *(px0++); - /* Read x[n-numTaps-1] sample for acc1 */ - x1 = *(px1++); - /* Read x[n-numTaps-1] sample for acc2 */ - x2 = *(px2++); - /* Read x[n-numTaps-1] sample for acc3 */ - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample for acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch state variables for acc0, acc1, acc2, acc3 */ - x0 = *(px0++); - x1 = *(px1++); - x2 = *(px2++); - x3 = *(px3++); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + 4 * S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = acc0; - *pDst++ = acc1; - *pDst++ = acc2; - *pDst++ = acc3; - - /* Decrement the loop counter */ - blkCnt--; - } - - while (blkCntN4 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Decrement the loop counter */ - blkCntN4--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - i = (numTaps - 1U); - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c deleted file mode 100644 index 00b2790..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c +++ /dev/null @@ -1,586 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_fast_q15.c - * Description: Fast Q15 FIR Decimator - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. - * @param[in] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (log2 is read as log to the base 2). - * The 2.30 accumulator is then truncated to 2.15 format and saturated to yield the 1.15 result. - * - * \par - * Refer to the function arm_fir_decimate_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. - * Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_decimate_init_q15() to initialize the filter structure. - */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - -void arm_fir_decimate_fast_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, x1, c0, c1; /* Temporary variables to hold state and coefficient values */ - q31_t sum0; /* Accumulators */ - q31_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - - acc1 = __SMLAD(x1, c0, acc1); - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - - acc1 = __SMLAD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLAD(x0, c0, acc0); - acc1 = __SMLAD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - - - while (blkCntN3 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px)++; - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c1 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c0, sum0); - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c1, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLAD(x0, c0, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - -void arm_fir_decimate_fast_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q15_t x0, x1, c0; /* Temporary variables to hold state and coefficient values */ - q31_t sum0; /* Accumulators */ - q31_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] for sample 0 and for sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - - /* Decrement the loop counter */ - blkCnt--; - } - - while (blkCntN3 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c deleted file mode 100644 index 3b3d817..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c +++ /dev/null @@ -1,339 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_fast_q31.c - * Description: Fast Q31 FIR Decimator - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. - * @param[in] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (where log2 is read as log to the base 2). - * - * \par - * Refer to the function arm_fir_decimate_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. - * Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_decimate_init_q31() to initialize the filter structure. - */ - -void arm_fir_decimate_fast_q31( - arm_fir_decimate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q31_t *px; /* Temporary pointers for state buffer */ - q31_t *pb; /* Temporary pointers for coefficient buffer */ - q31_t sum0; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - uint32_t blkCntN2; - q31_t x1; - q31_t acc0, acc1; - q31_t *px0, *px1; - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - - blkCnt = outBlockSize / 2; - blkCntN2 = outBlockSize - (2 * blkCnt); - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - px1 = pState + S->M; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb); - - /* Read x[n-numTaps-1] for sample 0 sample 1 */ - x0 = *(px0); - x1 = *(px1); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb + 1U); - - /* Read x[n-numTaps-2] for sample 0 sample 1 */ - x0 = *(px0 + 1U); - x1 = *(px1 + 1U); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb + 2U); - - /* Read x[n-numTaps-3] for sample 0 sample 1 */ - x0 = *(px0 + 2U); - x1 = *(px1 + 2U); - pb += 4U; - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb - 1U); - - /* Read x[n-numTaps-4] for sample 0 sample 1 */ - x0 = *(px0 + 3U); - x1 = *(px1 + 3U); - - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* update state pointers */ - px0 += 4U; - px1 += 4U; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px0++); - x1 = *(px1++); - - /* Perform the multiply-accumulate */ - acc0 = (q31_t) ((((q63_t) acc0 << 32) + ((q63_t) x0 * c0)) >> 32); - acc1 = (q31_t) ((((q63_t) acc1 << 32) + ((q63_t) x1 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - *pDst++ = (q31_t) (acc1 << 1); - - /* Decrement the loop counter */ - blkCnt--; - } - - while (blkCntN2 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 = (q31_t) ((((q63_t) sum0 << 32) + ((q63_t) x0 * c0)) >> 32); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 << 1); - - /* Decrement the loop counter */ - blkCntN2--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_f32.c deleted file mode 100644 index 20eb959..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_f32.c +++ /dev/null @@ -1,105 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_init_f32.c - * Description: Floating-point FIR Decimator initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR decimator. - * @param[in,out] *S points to an instance of the floating-point FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples passed to arm_fir_decimate_f32(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_f32( - arm_fir_decimate_instance_f32 * S, - uint16_t numTaps, - uint8_t M, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if ((blockSize % M) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation Factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q15.c deleted file mode 100644 index 9094de5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q15.c +++ /dev/null @@ -1,107 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_init_q15.c - * Description: Initialization function for the Q15 FIR Decimator - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the Q15 FIR decimator. - * @param[in,out] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples - * to the call arm_fir_decimate_q15(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_q15( - arm_fir_decimate_instance_q15 * S, - uint16_t numTaps, - uint8_t M, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if ((blockSize % M) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size of buffer is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q31.c deleted file mode 100644 index a223a8e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_init_q31.c +++ /dev/null @@ -1,105 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_init_q31.c - * Description: Initialization function for Q31 FIR Decimation filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Initialization function for the Q31 FIR decimator. - * @param[in,out] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] numTaps number of coefficients in the filter. - * @param[in] M decimation factor. - * @param[in] *pCoeffs points to the filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * blockSize is not a multiple of M. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 words where blockSize is the number of input samples passed to arm_fir_decimate_q31(). - * M is the decimation factor. - */ - -arm_status arm_fir_decimate_init_q31( - arm_fir_decimate_instance_q31 * S, - uint16_t numTaps, - uint8_t M, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The size of the input block must be a multiple of the decimation factor */ - if ((blockSize % M) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Decimation factor */ - S->M = M; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q15.c deleted file mode 100644 index 345aa9c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q15.c +++ /dev/null @@ -1,684 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_q15.c - * Description: Q15 FIR Decimator - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR decimator. - * @param[in] *S points to an instance of the Q15 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the location where the output result is written. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * Refer to the function arm_fir_decimate_fast_q15() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -#if defined (ARM_MATH_DSP) - -#ifndef UNALIGNED_SUPPORT_DISABLE - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, x1, c0, c1; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - q63_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - - acc1 = __SMLALD(x1, c0, acc1); - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px0)++; - - x1 = *__SIMD32(px1)++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - - acc1 = __SMLALD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 = __SMLALD(x0, c0, acc0); - acc1 = __SMLALD(x1, c0, acc1); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - - - while (blkCntN3 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] and b[numTaps-2] coefficients */ - c0 = *__SIMD32(pb)++; - - /* Read x[n-numTaps-1] and x[n-numTaps-2]sample */ - x0 = *__SIMD32(px)++; - - /* Read the b[numTaps-3] and b[numTaps-4] coefficient */ - c1 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c0, sum0); - - /* Read x[n-numTaps-2] and x[n-numTaps-3] sample */ - x0 = *__SIMD32(px)++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c1, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 = __SMLALD(x0, c0, sum0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q15_t x0, x1, c0; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - q63_t acc0, acc1; - q15_t *px0, *px1; - uint32_t blkCntN3; - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize / 2; - blkCntN3 = outBlockSize - (2 * blkCnt); - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = 2 * S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - px0 = pState; - - px1 = pState + S->M; - - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] for sample 0 and for sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] for sample 0 and sample 1 */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px0++; - x1 = *px1++; - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M * 2; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - *pDst++ = (q15_t) (__SSAT((acc1 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - while (blkCntN3 > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the Read b[numTaps-1] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-1] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-2] and sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-3] coefficients */ - c0 = *pb++; - - /* Read x[n-numTaps-3] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *pb++; - - /* Read x[n-numTaps-4] sample */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* Store filter output, smlad returns the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCntN3--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#else - - -void arm_fir_decimate_q15( - const arm_fir_decimate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer coefficient buffer */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q63_t sum0; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /*Set sum to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += (q31_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /*Store filter output , smlad will return the values in 2.14 format */ - /* so downsacle by 15 to get output in 1.15 */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = numTaps - 1U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - -} -#endif /* #if defined (ARM_MATH_DSP) */ - - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q31.c deleted file mode 100644 index ed67442..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_decimate_q31.c +++ /dev/null @@ -1,299 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_decimate_q31.c - * Description: Q31 FIR Decimator - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_decimate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR decimator. - * @param[in] *S points to an instance of the Q31 FIR decimator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of input samples to process per call. - * @return none - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits (where log2 is read as log to the base 2). - * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. - * - * \par - * Refer to the function arm_fir_decimate_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - */ - -void arm_fir_decimate_q31( - const arm_fir_decimate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - q31_t *px; /* Temporary pointers for state buffer */ - q31_t *pb; /* Temporary pointers for coefficient buffer */ - q63_t sum0; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of taps */ - uint32_t i, tapCnt, blkCnt, outBlockSize = blockSize / S->M; /* Loop counters */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-1] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-2] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (numTaps - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - - i = (numTaps - 1U) % 0x04U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Total number of output samples to be computed */ - blkCnt = outBlockSize; - - while (blkCnt > 0U) - { - /* Copy decimation factor number of new input samples into the state buffer */ - i = S->M; - - do - { - *pStateCurnt++ = *pSrc++; - - } while (--i); - - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *pb++; - - /* Fetch 1 state variable */ - x0 = *px++; - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by the decimation factor - * to process the next group of decimation factor number samples */ - pState = pState + S->M; - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = numTaps - 1U; - - /* copy data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_decimate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c deleted file mode 100644 index 61ec80a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c +++ /dev/null @@ -1,985 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_f32.c - * Description: Floating-point FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** -* @ingroup groupFilters -*/ - -/** -* @defgroup FIR Finite Impulse Response (FIR) Filters -* -* This set of functions implements Finite Impulse Response (FIR) filters -* for Q7, Q15, Q31, and floating-point data types. Fast versions of Q15 and Q31 are also provided. -* The functions operate on blocks of input and output data and each call to the function processes -* blockSize samples through the filter. pSrc and -* pDst points to input and output arrays containing blockSize values. -* -* \par Algorithm: -* The FIR filter algorithm is based upon a sequence of multiply-accumulate (MAC) operations. -* Each filter coefficient b[n] is multiplied by a state variable which equals a previous input sample x[n]. -*
-*    y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]
-* 
-* \par -* \image html FIR.gif "Finite Impulse Response filter" -* \par -* pCoeffs points to a coefficient array of size numTaps. -* Coefficients are stored in time reversed order. -* \par -*
-*    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
-* 
-* \par -* pState points to a state array of size numTaps + blockSize - 1. -* Samples in the state buffer are stored in the following order. -* \par -*
-*    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}
-* 
-* \par -* Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1. -* The increased state buffer length allows circular addressing, which is traditionally used in the FIR filters, -* to be avoided and yields a significant speed improvement. -* The state variables are updated after each block of data is processed; the coefficients are untouched. -* \par Instance Structure -* The coefficients and state variables for a filter are stored together in an instance data structure. -* A separate instance structure must be defined for each filter. -* Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. -* There are separate instance structure declarations for each of the 4 supported data types. -* -* \par Initialization Functions -* There is also an associated initialization function for each data type. -* The initialization function performs the following operations: -* - Sets the values of the internal structure fields. -* - Zeros out the values in the state buffer. -* To do this manually without calling the init function, assign the follow subfields of the instance structure: -* numTaps, pCoeffs, pState. Also set all of the values in pState to zero. -* -* \par -* Use of the initialization function is optional. -* However, if the initialization function is used, then the instance structure cannot be placed into a const data section. -* To place an instance structure into a const data section, the instance structure must be manually initialized. -* Set the values in the state buffer to zeros before static initialization. -* The code below statically initializes each of the 4 different data type filter instance structures -*
-*arm_fir_instance_f32 S = {numTaps, pState, pCoeffs};
-*arm_fir_instance_q31 S = {numTaps, pState, pCoeffs};
-*arm_fir_instance_q15 S = {numTaps, pState, pCoeffs};
-*arm_fir_instance_q7 S =  {numTaps, pState, pCoeffs};
-* 
-* -* where numTaps is the number of filter coefficients in the filter; pState is the address of the state buffer; -* pCoeffs is the address of the coefficient buffer. -* -* \par Fixed-Point Behavior -* Care must be taken when using the fixed-point versions of the FIR filter functions. -* In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. -* Refer to the function specific documentation below for usage guidelines. -*/ - -/** -* @addtogroup FIR -* @{ -*/ - -/** -* -* @param[in] *S points to an instance of the floating-point FIR filter structure. -* @param[in] *pSrc points to the block of input data. -* @param[out] *pDst points to the block of output data. -* @param[in] blockSize number of samples to process per call. -* @return none. -* -*/ - -#if defined(ARM_MATH_CM7) - -void arm_fir_f32( -const arm_fir_instance_f32 * S, -float32_t * pSrc, -float32_t * pDst, -uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t acc0, acc1, acc2, acc3, acc4, acc5, acc6, acc7; /* Accumulators */ - float32_t x0, x1, x2, x3, x4, x5, x6, x7, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 8 output values simultaneously. - * The variables acc0 ... acc7 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 3; - - /* First part of the processing with loop unrolling. Compute 8 outputs at a time. - ** a second loop below computes the remaining 1 to 7 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - acc4 = 0.0f; - acc5 = 0.0f; - acc6 = 0.0f; - acc7 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* This is separated from the others to avoid - * a call to __aeabi_memmove which would be slower - */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Read the first seven samples from the state buffer: x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *px++; - x1 = *px++; - x2 = *px++; - x3 = *px++; - x4 = *px++; - x5 = *px++; - x6 = *px++; - - /* Loop unrolling. Process 8 taps at a time. */ - tapCnt = numTaps >> 3U; - - /* Loop over the number of taps. Unroll by a factor of 8. - ** Repeat until we've computed numTaps-8 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x7 = *(px++); - - /* acc0 += b[numTaps-1] * x[n-numTaps] */ - acc0 += x0 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-1] */ - acc1 += x1 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-2] */ - acc2 += x2 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-3] */ - acc3 += x3 * c0; - - /* acc4 += b[numTaps-1] * x[n-numTaps-4] */ - acc4 += x4 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-5] */ - acc5 += x5 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-6] */ - acc6 += x6 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-7] */ - acc7 += x7 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - /* Perform the multiply-accumulate */ - acc0 += x1 * c0; - acc1 += x2 * c0; - acc2 += x3 * c0; - acc3 += x4 * c0; - acc4 += x5 * c0; - acc5 += x6 * c0; - acc6 += x7 * c0; - acc7 += x0 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x2 * c0; - acc1 += x3 * c0; - acc2 += x4 * c0; - acc3 += x5 * c0; - acc4 += x6 * c0; - acc5 += x7 * c0; - acc6 += x0 * c0; - acc7 += x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x3 * c0; - acc1 += x4 * c0; - acc2 += x5 * c0; - acc3 += x6 * c0; - acc4 += x7 * c0; - acc5 += x0 * c0; - acc6 += x1 * c0; - acc7 += x2 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x3 = *(px++); - /* Perform the multiply-accumulates */ - acc0 += x4 * c0; - acc1 += x5 * c0; - acc2 += x6 * c0; - acc3 += x7 * c0; - acc4 += x0 * c0; - acc5 += x1 * c0; - acc6 += x2 * c0; - acc7 += x3 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x4 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x5 * c0; - acc1 += x6 * c0; - acc2 += x7 * c0; - acc3 += x0 * c0; - acc4 += x1 * c0; - acc5 += x2 * c0; - acc6 += x3 * c0; - acc7 += x4 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x5 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x6 * c0; - acc1 += x7 * c0; - acc2 += x0 * c0; - acc3 += x1 * c0; - acc4 += x2 * c0; - acc5 += x3 * c0; - acc6 += x4 * c0; - acc7 += x5 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x6 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x7 * c0; - acc1 += x0 * c0; - acc2 += x1 * c0; - acc3 += x2 * c0; - acc4 += x3 * c0; - acc5 += x4 * c0; - acc6 += x5 * c0; - acc7 += x6 * c0; - - tapCnt--; - } - - /* If the filter length is not a multiple of 8, compute the remaining filter taps */ - tapCnt = numTaps % 0x8U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x7 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - acc4 += x4 * c0; - acc5 += x5 * c0; - acc6 += x6 * c0; - acc7 += x7 * c0; - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - x3 = x4; - x4 = x5; - x5 = x6; - x6 = x7; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by 8 to process the next group of 8 samples */ - pState = pState + 8; - - /* The results in the 8 accumulators, store in the destination buffer. */ - *pDst++ = acc0; - *pDst++ = acc1; - *pDst++ = acc2; - *pDst++ = acc3; - *pDst++ = acc4; - *pDst++ = acc5; - *pDst++ = acc6; - *pDst++ = acc7; - - blkCnt--; - } - - /* If the blockSize is not a multiple of 8, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x8U; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += *px++ * *pb++; - i--; - - } while (i > 0U); - - /* The result is store in the destination buffer. */ - *pDst++ = acc0; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#elif defined(ARM_MATH_CM0_FAMILY) - -void arm_fir_f32( -const arm_fir_instance_f32 * S, -float32_t * pSrc, -float32_t * pDst, -uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* Run the below code for Cortex-M0 */ - - float32_t acc; - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += *px++ * *pb++; - i--; - - } while (i > 0U); - - /* The result is store in the destination buffer. */ - *pDst++ = acc; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the starting of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = numTaps - 1U; - - /* Copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#else - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_f32( -const arm_fir_instance_f32 * S, -float32_t * pSrc, -float32_t * pDst, -uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t acc0, acc1, acc2, acc3, acc4, acc5, acc6, acc7; /* Accumulators */ - float32_t x0, x1, x2, x3, x4, x5, x6, x7, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - float32_t p0,p1,p2,p3,p4,p5,p6,p7; /* Temporary product values */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 8 output values simultaneously. - * The variables acc0 ... acc7 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 3; - - /* First part of the processing with loop unrolling. Compute 8 outputs at a time. - ** a second loop below computes the remaining 1 to 7 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - acc4 = 0.0f; - acc5 = 0.0f; - acc6 = 0.0f; - acc7 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* This is separated from the others to avoid - * a call to __aeabi_memmove which would be slower - */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Read the first seven samples from the state buffer: x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *px++; - x1 = *px++; - x2 = *px++; - x3 = *px++; - x4 = *px++; - x5 = *px++; - x6 = *px++; - - /* Loop unrolling. Process 8 taps at a time. */ - tapCnt = numTaps >> 3U; - - /* Loop over the number of taps. Unroll by a factor of 8. - ** Repeat until we've computed numTaps-8 coefficients. */ - while (tapCnt > 0U) - { - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-3] sample */ - x7 = *(px++); - - /* acc0 += b[numTaps-1] * x[n-numTaps] */ - p0 = x0 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-1] */ - p1 = x1 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-2] */ - p2 = x2 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-3] */ - p3 = x3 * c0; - - /* acc4 += b[numTaps-1] * x[n-numTaps-4] */ - p4 = x4 * c0; - - /* acc1 += b[numTaps-1] * x[n-numTaps-5] */ - p5 = x5 * c0; - - /* acc2 += b[numTaps-1] * x[n-numTaps-6] */ - p6 = x6 * c0; - - /* acc3 += b[numTaps-1] * x[n-numTaps-7] */ - p7 = x7 * c0; - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - - /* Perform the multiply-accumulate */ - p0 = x1 * c0; - p1 = x2 * c0; - p2 = x3 * c0; - p3 = x4 * c0; - p4 = x5 * c0; - p5 = x6 * c0; - p6 = x7 * c0; - p7 = x0 * c0; - - /* Read the b[numTaps-3] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x2 * c0; - p1 = x3 * c0; - p2 = x4 * c0; - p3 = x5 * c0; - p4 = x6 * c0; - p5 = x7 * c0; - p6 = x0 * c0; - p7 = x1 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x3 * c0; - p1 = x4 * c0; - p2 = x5 * c0; - p3 = x6 * c0; - p4 = x7 * c0; - p5 = x0 * c0; - p6 = x1 * c0; - p7 = x2 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x3 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x4 * c0; - p1 = x5 * c0; - p2 = x6 * c0; - p3 = x7 * c0; - p4 = x0 * c0; - p5 = x1 * c0; - p6 = x2 * c0; - p7 = x3 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x4 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x5 * c0; - p1 = x6 * c0; - p2 = x7 * c0; - p3 = x0 * c0; - p4 = x1 * c0; - p5 = x2 * c0; - p6 = x3 * c0; - p7 = x4 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x5 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x6 * c0; - p1 = x7 * c0; - p2 = x0 * c0; - p3 = x1 * c0; - p4 = x2 * c0; - p5 = x3 * c0; - p6 = x4 * c0; - p7 = x5 * c0; - - /* Read the b[numTaps-4] coefficient */ - c0 = *(pb++); - - /* Read x[n-numTaps-6] sample */ - x6 = *(px++); - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Perform the multiply-accumulates */ - p0 = x7 * c0; - p1 = x0 * c0; - p2 = x1 * c0; - p3 = x2 * c0; - p4 = x3 * c0; - p5 = x4 * c0; - p6 = x5 * c0; - p7 = x6 * c0; - - tapCnt--; - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - } - - /* If the filter length is not a multiple of 8, compute the remaining filter taps */ - tapCnt = numTaps % 0x8U; - - while (tapCnt > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x7 = *(px++); - - /* Perform the multiply-accumulates */ - p0 = x0 * c0; - p1 = x1 * c0; - p2 = x2 * c0; - p3 = x3 * c0; - p4 = x4 * c0; - p5 = x5 * c0; - p6 = x6 * c0; - p7 = x7 * c0; - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - x3 = x4; - x4 = x5; - x5 = x6; - x6 = x7; - - acc0 += p0; - acc1 += p1; - acc2 += p2; - acc3 += p3; - acc4 += p4; - acc5 += p5; - acc6 += p6; - acc7 += p7; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance the state pointer by 8 to process the next group of 8 samples */ - pState = pState + 8; - - /* The results in the 8 accumulators, store in the destination buffer. */ - *pDst++ = acc0; - *pDst++ = acc1; - *pDst++ = acc2; - *pDst++ = acc3; - *pDst++ = acc4; - *pDst++ = acc5; - *pDst++ = acc6; - *pDst++ = acc7; - - blkCnt--; - } - - /* If the blockSize is not a multiple of 8, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x8U; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0.0f; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += *px++ * *pb++; - i--; - - } while (i > 0U); - - /* The result is store in the destination buffer. */ - *pDst++ = acc0; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#endif - -/** -* @} end of FIR group -*/ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q15.c deleted file mode 100644 index 212990c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q15.c +++ /dev/null @@ -1,333 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_fast_q15.c - * Description: Q15 Fast FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q15 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * This fast version uses a 32-bit accumulator with 2.30 format. - * The accumulator maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * The 2.30 accumulator is then truncated to 2.15 format and saturated to yield the 1.15 result. - * - * \par - * Refer to the function arm_fir_q15() for a slower implementation of this function which uses 64-bit accumulation to avoid wrap around distortion. Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_init_q15() to initialize the filter structure. - */ - -void arm_fir_fast_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q15_t *px; /* Temporary q31 pointer for SIMD state buffer accesses */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold SIMD state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Typecast q15_t pointer to q31_t pointer for state reading in q31_t */ - px = pState; - - /* Typecast q15_t pointer to q31_t pointer for coefficient reading in q31_t */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = *__SIMD32(px)++; - - /* Read the third and forth samples from the state buffer: x[n-N-2], x[n-N-3] */ - x2 = *__SIMD32(px)++; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(numTaps%4) coefficients. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLAD(x0, c0, acc0); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLAD(x2, c0, acc2); - - /* pack x[n-N-1] and x[n-N-2] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack x[n-N-3] and x[n-N-4] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLADX(x1, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLAD(x2, c0, acc0); - - /* Read state x[n-N-6], x[n-N-7] with offset */ - x2 = _SIMD32_OFFSET(px + 2U); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLAD(x0, c0, acc2); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack x[n-N-5] and x[n-N-6] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLADX(x1, c0, acc3); - - /* Update state pointer for next state reading */ - px += 4U; - - /* Decrement tap count */ - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if ((numTaps & 0x3U) != 0U) - { - - /* Read last two coefficients */ - c0 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLAD(x0, c0, acc0); - acc2 = __SMLAD(x2, c0, acc2); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read last state variables */ - x0 = *__SIMD32(px); - - /* Perform the multiply-accumulates */ - acc1 = __SMLADX(x1, c0, acc1); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* Perform the multiply-accumulates */ - acc3 = __SMLADX(x1, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - while (blkCnt > 0U) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Use SIMD to hold states and coefficients */ - px = pState; - pb = pCoeffs; - - tapCnt = numTaps >> 1U; - - do - { - - acc0 += (q31_t) * px++ * *pb++; - acc0 += (q31_t) * px++ * *pb++; - - tapCnt--; - } - while (tapCnt > 0U); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1U) >> 2; - - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* copy remaining data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q31.c deleted file mode 100644 index d37e13c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_fast_q31.c +++ /dev/null @@ -1,293 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_fast_q31.c - * Description: Processing function for the Q31 Fast FIR filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q31 structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * - * \par - * This function is optimized for speed at the expense of fixed-point precision and overflow protection. - * The result of each 1.31 x 1.31 multiplication is truncated to 2.30 format. - * These intermediate results are added to a 2.30 accumulator. - * Finally, the accumulator is saturated and converted to a 1.31 result. - * The fast version has the same overflow behavior as the standard version and provides less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * - * \par - * Refer to the function arm_fir_q31() for a slower implementation of this function which uses a 64-bit accumulator to provide higher precision. Both the slow and the fast versions use the same instance structure. - * Use the function arm_fir_init_q31() to initialize the filter structure. - */ - -IAR_ONLY_LOW_OPTIMIZATION_ENTER -void arm_fir_fast_q31( - const arm_fir_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t x0, x1, x2, x3; /* Temporary variables to hold state */ - q31_t c0; /* Temporary variable to hold coefficient value */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first three samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - i = tapCnt; - - while (i > 0U) - { - /* Read the b[numTaps] coefficient */ - c0 = *pb; - - /* Read x[n-numTaps-3] sample */ - x3 = *px; - - /* acc0 += b[numTaps] * x[n-numTaps] */ - multAcc_32x32_keep32_R(acc0, x0, c0); - - /* acc1 += b[numTaps] * x[n-numTaps-1] */ - multAcc_32x32_keep32_R(acc1, x1, c0); - - /* acc2 += b[numTaps] * x[n-numTaps-2] */ - multAcc_32x32_keep32_R(acc2, x2, c0); - - /* acc3 += b[numTaps] * x[n-numTaps-3] */ - multAcc_32x32_keep32_R(acc3, x3, c0); - - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb + 1U); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulates */ - multAcc_32x32_keep32_R(acc0, x1, c0); - multAcc_32x32_keep32_R(acc1, x2, c0); - multAcc_32x32_keep32_R(acc2, x3, c0); - multAcc_32x32_keep32_R(acc3, x0, c0); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb + 2U); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - multAcc_32x32_keep32_R(acc0, x2, c0); - multAcc_32x32_keep32_R(acc1, x3, c0); - multAcc_32x32_keep32_R(acc2, x0, c0); - multAcc_32x32_keep32_R(acc3, x1, c0); - - /* Read the b[numTaps-3] coefficients */ - c0 = *(pb + 3U); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px + 3U); - - /* Perform the multiply-accumulates */ - multAcc_32x32_keep32_R(acc0, x3, c0); - multAcc_32x32_keep32_R(acc1, x0, c0); - multAcc_32x32_keep32_R(acc2, x1, c0); - multAcc_32x32_keep32_R(acc3, x2, c0); - - /* update coefficient pointer */ - pb += 4U; - px += 4U; - - /* Decrement the loop counter */ - i--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - - i = numTaps - (tapCnt * 4U); - while (i > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - multAcc_32x32_keep32_R(acc0, x0, c0); - multAcc_32x32_keep32_R(acc1, x1, c0); - multAcc_32x32_keep32_R(acc2, x2, c0); - multAcc_32x32_keep32_R(acc3, x3, c0); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.31 - ** Then store the 4 outputs in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - *pDst++ = (q31_t) (acc1 << 1); - *pDst++ = (q31_t) (acc2 << 1); - *pDst++ = (q31_t) (acc3 << 1); - - /* Decrement the samples loop counter */ - blkCnt--; - } - - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 4U; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - multAcc_32x32_keep32_R(acc0, (*px++), (*(pb++))); - i--; - } while (i > 0U); - - /* The result is in 2.30 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc0 << 1); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U); - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - -} -IAR_ONLY_LOW_OPTIMIZATION_EXIT -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c deleted file mode 100644 index 8bcb736..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_init_f32.c - * Description: Floating-point FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the floating-point FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_f32(). - */ - -void arm_fir_init_f32( - arm_fir_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and the size of state buffer is (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q15.c deleted file mode 100644 index e4d6ef8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q15.c +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_init_q15.c - * Description: Q15 FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in,out] *S points to an instance of the Q15 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize is number of samples processed per call. - * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if - * numTaps is not greater than or equal to 4 and even. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * Note that numTaps must be even and greater than or equal to 4. - * To implement an odd length filter simply increase numTaps by 1 and set the last coefficient to zero. - * For example, to implement a filter with numTaps=3 and coefficients - *
- *     {0.3, -0.8, 0.3}
- * 
- * set numTaps=4 and use the coefficients: - *
- *     {0.3, -0.8, 0.3, 0}.
- * 
- * Similarly, to implement a two point filter - *
- *     {0.3, -0.3}
- * 
- * set numTaps=4 and use the coefficients: - *
- *     {0.3, -0.3, 0, 0}.
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize, when running on Cortex-M4 and Cortex-M3 and is of length numTaps+blockSize-1, when running on Cortex-M0 where blockSize is the number of input samples processed by each call to arm_fir_q15(). - */ - -arm_status arm_fir_init_q15( - arm_fir_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - arm_status status; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* The Number of filter coefficients in the filter must be even and at least 4 */ - if (numTaps & 0x1U) - { - status = ARM_MATH_ARGUMENT_ERROR; - } - else - { - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps ) */ - memset(pState, 0, (numTaps + (blockSize)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -#else - - /* Run the below code for Cortex-M0 */ - - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - - return (status); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q31.c deleted file mode 100644 index 3308438..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q31.c +++ /dev/null @@ -1,84 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_init_q31.c - * Description: Q31 FIR filter initialization function. - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @details - * - * @param[in,out] *S points to an instance of the Q31 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_q31(). - */ - -void arm_fir_init_q31( - arm_fir_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and state array size is (blockSize + numTaps - 1) */ - memset(pState, 0, (blockSize + ((uint32_t) numTaps - 1U)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q7.c deleted file mode 100644 index 38cc7b4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_q7.c +++ /dev/null @@ -1,82 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_init_q7.c - * Description: Q7 FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ -/** - * @param[in,out] *S points to an instance of the Q7 FIR filter structure. - * @param[in] numTaps Number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficients buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of samples that are processed per call. - * @return none - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to the array of state variables. - * pState is of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_fir_q7(). - */ - -void arm_fir_init_q7( - arm_fir_instance_q7 * S, - uint16_t numTaps, - q7_t * pCoeffs, - q7_t * pState, - uint32_t blockSize) -{ - - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear the state buffer. The size is always (blockSize + numTaps - 1) */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q7_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_f32.c deleted file mode 100644 index 66cfcf8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_f32.c +++ /dev/null @@ -1,569 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_f32.c - * Description: Floating-point FIR interpolation sequences - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @defgroup FIR_Interpolate Finite Impulse Response (FIR) Interpolator - * - * These functions combine an upsampler (zero stuffer) and an FIR filter. - * They are used in multirate systems for increasing the sample rate of a signal without introducing high frequency images. - * Conceptually, the functions are equivalent to the block diagram below: - * \image html FIRInterpolator.gif "Components included in the FIR Interpolator functions" - * After upsampling by a factor of L, the signal should be filtered by a lowpass filter with a normalized - * cutoff frequency of 1/L in order to eliminate high frequency copies of the spectrum. - * The user of the function is responsible for providing the filter coefficients. - * - * The FIR interpolator functions provided in the CMSIS DSP Library combine the upsampler and FIR filter in an efficient manner. - * The upsampler inserts L-1 zeros between each sample. - * Instead of multiplying by these zero values, the FIR filter is designed to skip them. - * This leads to an efficient implementation without any wasted effort. - * The functions operate on blocks of input and output data. - * pSrc points to an array of blockSize input values and - * pDst points to an array of blockSize*L output values. - * - * The library provides separate functions for Q15, Q31, and floating-point data types. - * - * \par Algorithm: - * The functions use a polyphase filter structure: - *
- *    y[n] = b[0] * x[n] + b[L]   * x[n-1] + ... + b[L*(phaseLength-1)] * x[n-phaseLength+1]
- *    y[n+1] = b[1] * x[n] + b[L+1] * x[n-1] + ... + b[L*(phaseLength-1)+1] * x[n-phaseLength+1]
- *    ...
- *    y[n+(L-1)] = b[L-1] * x[n] + b[2*L-1] * x[n-1] + ....+ b[L*(phaseLength-1)+(L-1)] * x[n-phaseLength+1]
- * 
- * This approach is more efficient than straightforward upsample-then-filter algorithms. - * With this method the computation is reduced by a factor of 1/L when compared to using a standard FIR filter. - * \par - * pCoeffs points to a coefficient array of size numTaps. - * numTaps must be a multiple of the interpolation factor L and this is checked by the - * initialization functions. - * Internally, the function divides the FIR filter's impulse response into shorter filters of length - * phaseLength=numTaps/L. - * Coefficients are stored in time reversed order. - * \par - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to a state array of size blockSize + phaseLength - 1. - * Samples in the state buffer are stored in the order: - * \par - *
- *    {x[n-phaseLength+1], x[n-phaseLength], x[n-phaseLength-1], x[n-phaseLength-2]....x[0], x[1], ..., x[blockSize-1]}
- * 
- * The state variables are updated after each block of data is processed, the coefficients are untouched. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable array should be allocated separately. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * - Checks to make sure that the length of the filter is a multiple of the interpolation factor. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * L (interpolation factor), pCoeffs, phaseLength (numTaps / L), pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * The code below statically initializes each of the 3 different data type filter instance structures - *
- * arm_fir_interpolate_instance_f32 S = {L, phaseLength, pCoeffs, pState};
- * arm_fir_interpolate_instance_q31 S = {L, phaseLength, pCoeffs, pState};
- * arm_fir_interpolate_instance_q15 S = {L, phaseLength, pCoeffs, pState};
- * 
- * where L is the interpolation factor; phaseLength=numTaps/L is the - * length of each of the shorter FIR filters used internally, - * pCoeffs is the address of the coefficient buffer; - * pState is the address of the state buffer. - * Be sure to set the values in the state buffer to zeros when doing static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR interpolate filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the floating-point FIR interpolator. - * @param[in] *S points to an instance of the floating-point FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_f32( - const arm_fir_interpolate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - float32_t sum0; /* Accumulators */ - float32_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - float32_t acc0, acc1, acc2, acc3; - float32_t x1, x2, x3; - uint32_t blkCntN4; - float32_t c1, c2, c3; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1U); - - /* Initialise blkCnt */ - blkCnt = blockSize / 4; - blkCntN4 = blockSize - (4 * blkCnt); - - /* Samples loop unrolled by 4 */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while (i > 0U) - { - /* Set accumulator to zero */ - acc0 = 0.0f; - acc1 = 0.0f; - acc2 = 0.0f; - acc3 = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2U; - - x0 = *(ptr1++); - x1 = *(ptr1++); - x2 = *(ptr1++); - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x3 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Read the coefficient */ - c1 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x1 * c1; - acc1 += x2 * c1; - acc2 += x3 * c1; - acc3 += x0 * c1; - - /* Read the coefficient */ - c2 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x2 * c2; - acc1 += x3 * c2; - acc2 += x0 * c2; - acc3 += x1 * c2; - - /* Read the coefficient */ - c3 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x2 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += x3 * c3; - acc1 += x0 * c3; - acc2 += x1 * c3; - acc3 += x2 * c3; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4U; - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x3 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += x0 * c0; - acc1 += x1 * c0; - acc2 += x2 * c0; - acc3 += x3 * c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = acc0; - *(pDst + S->L) = acc1; - *(pDst + 2 * S->L) = acc2; - *(pDst + 3 * S->L) = acc3; - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 4; - - pDst += S->L * 3; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - - while (blkCntN4 > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = S->L; - while (i > 0U) - { - /* Set accumulator to zero */ - sum0 = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2U; - while (tapCnt > 0U) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += x0 * c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum0 += *(ptr1++) * (*ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum0; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCntN4--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (phaseLen - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (phaseLen - 1U) % 0x04U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else - - /* Run the below code for Cortex-M0 */ - -void arm_fir_interpolate_f32( - const arm_fir_interpolate_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - - - float32_t sum; /* Accumulator */ - uint32_t i, blkCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1U); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while (i > 0U) - { - /* Set accumulator to zero */ - sum = 0.0f; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1U); - - /* Loop over the polyPhase length */ - tapCnt = phaseLen; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += *ptr1++ * *ptr2; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = sum; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = phaseLen - 1U; - - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c deleted file mode 100644 index 05fc370..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_init_f32.c - * Description: Floating-point FIR interpolator initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR interpolator. - * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_f32(). - */ - -arm_status arm_fir_interpolate_init_f32( - arm_fir_interpolate_instance_f32 * S, - uint8_t L, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if ((numTaps % L) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of state array is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + - ((uint32_t) S->phaseLength - 1U)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c deleted file mode 100644 index 3b3fb79..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c +++ /dev/null @@ -1,108 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_init_q15.c - * Description: Q15 FIR interpolator initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Initialization function for the Q15 FIR interpolator. - * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_q15(). - */ - -arm_status arm_fir_interpolate_init_q15( - arm_fir_interpolate_instance_q15 * S, - uint8_t L, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if ((numTaps % L) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of buffer is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + ((uint32_t) S->phaseLength - 1U)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c deleted file mode 100644 index 03959c0..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_init_q31.c - * Description: Q31 FIR interpolator initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - - -/** - * @brief Initialization function for the Q31 FIR interpolator. - * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure. - * @param[in] L upsample factor. - * @param[in] numTaps number of filter coefficients in the filter. - * @param[in] *pCoeffs points to the filter coefficient buffer. - * @param[in] *pState points to the state buffer. - * @param[in] blockSize number of input samples to process per call. - * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_LENGTH_ERROR if - * the filter length numTaps is not a multiple of the interpolation factor L. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[numTaps-2], ..., b[1], b[0]}
- * 
- * The length of the filter numTaps must be a multiple of the interpolation factor L. - * \par - * pState points to the array of state variables. - * pState is of length (numTaps/L)+blockSize-1 words - * where blockSize is the number of input samples processed by each call to arm_fir_interpolate_q31(). - */ - -arm_status arm_fir_interpolate_init_q31( - arm_fir_interpolate_instance_q31 * S, - uint8_t L, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - arm_status status; - - /* The filter length must be a multiple of the interpolation factor */ - if ((numTaps % L) != 0U) - { - /* Set status as ARM_MATH_LENGTH_ERROR */ - status = ARM_MATH_LENGTH_ERROR; - } - else - { - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign Interpolation factor */ - S->L = L; - - /* Assign polyPhaseLength */ - S->phaseLength = numTaps / L; - - /* Clear state buffer and size of buffer is always phaseLength + blockSize - 1 */ - memset(pState, 0, - (blockSize + ((uint32_t) S->phaseLength - 1U)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - status = ARM_MATH_SUCCESS; - } - - return (status); - -} - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q15.c deleted file mode 100644 index dc0cb4b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q15.c +++ /dev/null @@ -1,496 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_q15.c - * Description: Q15 FIR interpolation - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR interpolator. - * @param[in] *S points to an instance of the Q15 FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_q15( - const arm_fir_interpolate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum0; /* Accumulators */ - q15_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j, tapCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength; /* Length of each polyphase filter component */ - uint32_t blkCntN2; - q63_t acc0, acc1; - q15_t x1; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Initialise blkCnt */ - blkCnt = blockSize / 2; - blkCntN2 = blockSize - (2 * blkCnt); - - /* Samples loop unrolled by 2 */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while (i > 0U) - { - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2U; - - x0 = *(ptr1++); - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4U; - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = (q15_t) (__SSAT((acc0 >> 15), 16)); - *(pDst + S->L) = (q15_t) (__SSAT((acc1 >> 15), 16)); - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 2; - - pDst += S->L; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blkCntN2; - - /* Loop over the blockSize. */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = S->L; - while (i > 0U) - { - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2; - while (tapCnt > 0U) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen & 0x3U; - - while (tapCnt > 0U) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((sum0 >> 15), 16)); - - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = ((uint32_t) phaseLen - 1U) >> 2U; - - /* copy data */ - while (i > 0U) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - i--; - } - - i = ((uint32_t) phaseLen - 1U) % 0x04U; - - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } -} - -#else - - /* Run the below code for Cortex-M0 */ - -void arm_fir_interpolate_q15( - const arm_fir_interpolate_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum; /* Accumulator */ - q15_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, tapCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (phaseLen - 1U); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while (i > 0U) - { - /* Set accumulator to zero */ - sum = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1U); - - /* Loop over the polyPhase length */ - tapCnt = (uint32_t) phaseLen; - - while (tapCnt > 0U) - { - /* Read the coefficient */ - c0 = *ptr2; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *ptr1++; - - /* Perform the multiply-accumulate */ - sum += ((q31_t) x0 * c0); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Store the result after converting to 1.15 format in the destination buffer */ - *pDst++ = (q15_t) (__SSAT((sum >> 15), 16)); - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the start of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - i = (uint32_t) phaseLen - 1U; - - while (i > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - i--; - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q31.c deleted file mode 100644 index 2d23b37..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_interpolate_q31.c +++ /dev/null @@ -1,492 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_interpolate_q31.c - * Description: Q31 FIR interpolation - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Interpolate - * @{ - */ - -/** - * @brief Processing function for the Q31 FIR interpolator. - * @param[in] *S points to an instance of the Q31 FIR interpolator structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 1/(numTaps/L). - * since numTaps/L additions occur per output sample. - * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. - */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_interpolate_q31( - const arm_fir_interpolate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - q63_t sum0; /* Accumulators */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt, j; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - uint32_t blkCntN2; - q63_t acc0, acc1; - q31_t x1; - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Initialise blkCnt */ - blkCnt = blockSize / 2; - blkCntN2 = blockSize - (2 * blkCnt); - - /* Samples loop unrolled by 2 */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = (S->L); - - while (i > 0U) - { - /* Set accumulator to zero */ - acc0 = 0; - acc1 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2U; - - x0 = *(ptr1++); - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 2); - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Read the coefficient */ - c0 = *(ptr2 + S->L * 3); - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x1 *c0; - acc1 += (q63_t) x0 *c0; - - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += 4 * S->L; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen % 0x4U; - - while (tapCnt > 0U) - { - - /* Read the input sample */ - x1 = *(ptr1++); - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Perform the multiply-accumulate */ - acc0 += (q63_t) x0 *c0; - acc1 += (q63_t) x1 *c0; - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* update states for next sample processing */ - x0 = x1; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst = (q31_t) (acc0 >> 31); - *(pDst + S->L) = (q31_t) (acc1 >> 31); - - - pDst++; - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 2; - - pDst += S->L; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 2, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blkCntN2; - - /* Loop over the blockSize. */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Address modifier index of coefficient buffer */ - j = 1U; - - /* Loop over the Interpolation factor. */ - i = S->L; - while (i > 0U) - { - /* Set accumulator to zero */ - sum0 = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (S->L - j); - - /* Loop over the polyPhase length. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(4*S->L) coefficients. */ - tapCnt = phaseLen >> 2; - while (tapCnt > 0U) - { - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Upsampling is done by stuffing L-1 zeros between each sample. - * So instead of multiplying zeros with coefficients, - * Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the polyPhase length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = phaseLen & 0x3U; - - while (tapCnt > 0U) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *(ptr1++); - - /* Perform the multiply-accumulate */ - sum0 += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum0 >> 31); - - /* Increment the address modifier index of coefficient buffer */ - j++; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (phaseLen - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - tapCnt = (phaseLen - 1U) % 0x04U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - - -#else - -void arm_fir_interpolate_q31( - const arm_fir_interpolate_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *ptr1, *ptr2; /* Temporary pointers for state and coefficient buffers */ - - /* Run the below code for Cortex-M0 */ - - q63_t sum; /* Accumulator */ - q31_t x0, c0; /* Temporary variables to hold state and coefficient values */ - uint32_t i, blkCnt; /* Loop counters */ - uint16_t phaseLen = S->phaseLength, tapCnt; /* Length of each polyphase filter component */ - - - /* S->pState buffer contains previous frame (phaseLen - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + ((q31_t) phaseLen - 1); - - /* Total number of intput samples */ - blkCnt = blockSize; - - /* Loop over the blockSize. */ - while (blkCnt > 0U) - { - /* Copy new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Loop over the Interpolation factor. */ - i = S->L; - - while (i > 0U) - { - /* Set accumulator to zero */ - sum = 0; - - /* Initialize state pointer */ - ptr1 = pState; - - /* Initialize coefficient pointer */ - ptr2 = pCoeffs + (i - 1U); - - tapCnt = phaseLen; - - while (tapCnt > 0U) - { - /* Read the coefficient */ - c0 = *(ptr2); - - /* Increment the coefficient pointer by interpolation factor times. */ - ptr2 += S->L; - - /* Read the input sample */ - x0 = *ptr1++; - - /* Perform the multiply-accumulate */ - sum += (q63_t) x0 *c0; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is in the accumulator, store in the destination buffer. */ - *pDst++ = (q31_t) (sum >> 31); - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 1 - * to process the next group of interpolation factor number samples */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last phaseLen - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = phaseLen - 1U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - /** - * @} end of FIR_Interpolate group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_f32.c deleted file mode 100644 index 369c9e4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_f32.c +++ /dev/null @@ -1,494 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_f32.c - * Description: Processing function for the floating-point FIR Lattice filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_Lattice Finite Impulse Response (FIR) Lattice Filters - * - * This set of functions implements Finite Impulse Response (FIR) lattice filters - * for Q15, Q31 and floating-point data types. Lattice filters are used in a - * variety of adaptive filter applications. The filter structure is feedforward and - * the net impulse response is finite length. - * The functions operate on blocks - * of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst point to input and output arrays containing blockSize values. - * - * \par Algorithm: - * \image html FIRLattice.gif "Finite Impulse Response Lattice filter" - * The following difference equation is implemented: - *
- *    f0[n] = g0[n] = x[n]
- *    fm[n] = fm-1[n] + km * gm-1[n-1] for m = 1, 2, ...M
- *    gm[n] = km * fm-1[n] + gm-1[n-1] for m = 1, 2, ...M
- *    y[n] = fM[n]
- * 
- * \par - * pCoeffs points to tha array of reflection coefficients of size numStages. - * Reflection Coefficients are stored in the following order. - * \par - *
- *    {k1, k2, ..., kM}
- * 
- * where M is number of stages - * \par - * pState points to a state array of size numStages. - * The state variables (g values) hold previous inputs and are stored in the following order. - *
- *    {g0[n], g1[n], g2[n] ...gM-1[n]}
- * 
- * The state variables are updated after each block of data is processed; the coefficients are untouched. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numStages, pCoeffs, pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros and then manually initialize the instance structure as follows: - *
- *arm_fir_lattice_instance_f32 S = {numStages, pState, pCoeffs};
- *arm_fir_lattice_instance_q31 S = {numStages, pState, pCoeffs};
- *arm_fir_lattice_instance_q15 S = {numStages, pState, pCoeffs};
- * 
- * \par - * where numStages is the number of stages in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer. - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the FIR Lattice filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - - /** - * @brief Processing function for the floating-point FIR lattice filter. - * @param[in] *S points to an instance of the floating-point FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_fir_lattice_f32( - const arm_fir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t *pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *px; /* temporary state pointer */ - float32_t *pk; /* temporary coefficient pointer */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t fcurr1, fnext1, gcurr1, gnext1; /* temporary variables for first sample in loop unrolling */ - float32_t fcurr2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - float32_t fcurr3, fnext3, gnext3; /* temporary variables for third sample in loop unrolling */ - float32_t fcurr4, fnext4, gnext4; /* temporary variables for fourth sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Number of stages in the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - gcurr1 = 0.0f; - pState = &S->pState[0]; - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - - /* Read two samples from input buffer */ - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - fcurr2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* Read g0(n-1) from state */ - gcurr1 = *px; - - /* Process first sample for first tap */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (fcurr1 * (*pk)) + gcurr1; - - /* Process second sample for first tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * fcurr1); - gnext2 = (fcurr2 * (*pk)) + fcurr1; - - /* Read next two samples from input buffer */ - /* f0(n+2) = x(n+2) */ - fcurr3 = *pSrc++; - fcurr4 = *pSrc++; - - /* Copy only last input samples into the state buffer - which will be used for next four samples processing */ - *px++ = fcurr4; - - /* Process third sample for first tap */ - fnext3 = fcurr3 + ((*pk) * fcurr2); - gnext3 = (fcurr3 * (*pk)) + fcurr2; - - /* Process fourth sample for first tap */ - fnext4 = fcurr4 + ((*pk) * fcurr3); - gnext4 = (fcurr4 * (*pk++)) + fcurr3; - - /* Update of f values for next coefficient set processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - fcurr3 = fnext3; - fcurr4 = fnext4; - - /* Loop unrolling. Process 4 taps at a time . */ - stageCnt = (numStages - 1U) >> 2U; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numStages-3 coefficients. */ - - /* Process 2nd, 3rd, 4th and 5th taps ... here */ - while (stageCnt > 0U) - { - /* Read g1(n-1), g3(n-1) .... from state */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext4; - - /* Process first sample for 2nd, 6th .. tap */ - /* Sample processing for K2, K6.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* Process second sample for 2nd, 6th .. tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * gnext1); - /* Process third sample for 2nd, 6th .. tap */ - fnext3 = fcurr3 + ((*pk) * gnext2); - /* Process fourth sample for 2nd, 6th .. tap */ - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurr1 = *px; - - /* save g2(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K3, K7.... */ - /* Process first sample for 3rd, 7th .. tap */ - /* f3(n) = f2(n) + K3 * g2(n-1) */ - fcurr1 = fnext1 + ((*pk) * gcurr1); - /* Process second sample for 3rd, 7th .. tap */ - fcurr2 = fnext2 + ((*pk) * gnext1); - /* Process third sample for 3rd, 7th .. tap */ - fcurr3 = fnext3 + ((*pk) * gnext2); - /* Process fourth sample for 3rd, 7th .. tap */ - fcurr4 = fnext4 + ((*pk) * gnext3); - - /* Calculation of state values for next stage */ - /* g3(n) = f2(n) * K3 + g2(n-1) */ - gnext4 = (fnext4 * (*pk)) + gnext3; - gnext3 = (fnext3 * (*pk)) + gnext2; - gnext2 = (fnext2 * (*pk)) + gnext1; - gnext1 = (fnext1 * (*pk++)) + gcurr1; - - - /* Read g1(n-1), g3(n-1) .... from state */ - gcurr1 = *px; - - /* save g3(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K4, K8.... */ - /* Process first sample for 4th, 8th .. tap */ - /* f4(n) = f3(n) + K4 * g3(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* Process second sample for 4th, 8th .. tap */ - /* for sample 2 processing */ - fnext2 = fcurr2 + ((*pk) * gnext1); - /* Process third sample for 4th, 8th .. tap */ - fnext3 = fcurr3 + ((*pk) * gnext2); - /* Process fourth sample for 4th, 8th .. tap */ - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g4(n) = f3(n) * K4 + g3(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurr1 = *px; - - /* save g4(n) in state buffer */ - *px++ = gnext4; - - /* Sample processing for K5, K9.... */ - /* Process first sample for 5th, 9th .. tap */ - /* f5(n) = f4(n) + K5 * g4(n-1) */ - fcurr1 = fnext1 + ((*pk) * gcurr1); - /* Process second sample for 5th, 9th .. tap */ - fcurr2 = fnext2 + ((*pk) * gnext1); - /* Process third sample for 5th, 9th .. tap */ - fcurr3 = fnext3 + ((*pk) * gnext2); - /* Process fourth sample for 5th, 9th .. tap */ - fcurr4 = fnext4 + ((*pk) * gnext3); - - /* Calculation of state values for next stage */ - /* g5(n) = f4(n) * K5 + g4(n-1) */ - gnext4 = (fnext4 * (*pk)) + gnext3; - gnext3 = (fnext3 * (*pk)) + gnext2; - gnext2 = (fnext2 * (*pk)) + gnext1; - gnext1 = (fnext1 * (*pk++)) + gcurr1; - - stageCnt--; - } - - /* If the (filter length -1) is not a multiple of 4, compute the remaining filter taps */ - stageCnt = (numStages - 1U) % 0x4U; - - while (stageCnt > 0U) - { - gcurr1 = *px; - - /* save g value in state buffer */ - *px++ = gnext4; - - /* Process four samples for last three taps here */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - fnext2 = fcurr2 + ((*pk) * gnext1); - fnext3 = fcurr3 + ((*pk) * gnext2); - fnext4 = fcurr4 + ((*pk) * gnext3); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext4 = (fcurr4 * (*pk)) + gnext3; - gnext3 = (fcurr3 * (*pk)) + gnext2; - gnext2 = (fcurr2 * (*pk)) + gnext1; - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* Update of f values for next coefficient set processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - fcurr3 = fnext3; - fcurr4 = fnext4; - - stageCnt--; - - } - - /* The results in the 4 accumulators, store in the destination buffer. */ - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - *pDst++ = fcurr2; - *pDst++ = fcurr3; - *pDst++ = fcurr4; - - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* save g1(n) in state buffer */ - *px++ = fcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = fcurr1 + ((*pk) * gcurr1); - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (fcurr1 * (*pk++)) + gcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - - blkCnt--; - - } - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t fcurr, fnext, gcurr, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize coeff pointer */ - pk = pCoeffs; - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurr = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = fcurr + ((*pk) * gcurr); - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = (fcurr * (*pk++)) + gcurr; - - /* save f0(n) in state buffer */ - *px++ = fcurr; - - /* f1(n) is saved in fcurr - for next stage processing */ - fcurr = fnext; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* read g2(n) from state buffer */ - gcurr = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = fcurr + ((*pk) * gcurr); - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = (fcurr * (*pk++)) + gcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr; - - blkCnt--; - - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_f32.c deleted file mode 100644 index 2e31a15..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_f32.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_init_f32.c - * Description: Floating-point FIR Lattice filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - -/** - * @brief Initialization function for the floating-point FIR lattice filter. - * @param[in] *S points to an instance of the floating-point FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_f32( - arm_fir_lattice_instance_f32 * S, - uint16_t numStages, - float32_t * pCoeffs, - float32_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q15.c deleted file mode 100644 index ab5afd6..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q15.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_init_q15.c - * Description: Q15 FIR Lattice filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q15 FIR lattice filter. - * @param[in] *S points to an instance of the Q15 FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_q15( - arm_fir_lattice_instance_q15 * S, - uint16_t numStages, - q15_t * pCoeffs, - q15_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q31.c deleted file mode 100644 index 4dc30cc..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_init_q31.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_init_q31.c - * Description: Q31 FIR lattice filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q31 FIR lattice filter. - * @param[in] *S points to an instance of the Q31 FIR lattice structure. - * @param[in] numStages number of filter stages. - * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. - * @param[in] *pState points to the state buffer. The array is of length numStages. - * @return none. - */ - -void arm_fir_lattice_init_q31( - arm_fir_lattice_instance_q31 * S, - uint16_t numStages, - q31_t * pCoeffs, - q31_t * pState) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always numStages */ - memset(pState, 0, (numStages) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q15.c deleted file mode 100644 index 4c4e849..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q15.c +++ /dev/null @@ -1,524 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_q15.c - * Description: Q15 FIR lattice filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - -/** - * @brief Processing function for the Q15 FIR lattice filter. - * @param[in] *S points to an instance of the Q15 FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_fir_lattice_q15( - const arm_fir_lattice_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *px; /* temporary state pointer */ - q15_t *pk; /* temporary coefficient pointer */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t fcurnt1, fnext1, gcurnt1 = 0, gnext1; /* temporary variables for first sample in loop unrolling */ - q31_t fcurnt2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - q31_t fcurnt3, fnext3, gnext3; /* temporary variables for third sample in loop unrolling */ - q31_t fcurnt4, fnext4, gnext4; /* temporary variables for fourth sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Number of stages in the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - - /* Read two samples from input buffer */ - /* f0(n) = x(n) */ - fcurnt1 = *pSrc++; - fcurnt2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* Read g0(n-1) from state */ - gcurnt1 = *px; - - /* Process first sample for first tap */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) ((fcurnt1 * (*pk)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Process second sample for first tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((fcurnt1 * (*pk)) >> 15U) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15U) + fcurnt1; - gnext2 = __SSAT(gnext2, 16); - - - /* Read next two samples from input buffer */ - /* f0(n+2) = x(n+2) */ - fcurnt3 = *pSrc++; - fcurnt4 = *pSrc++; - - /* Copy only last input samples into the state buffer - which is used for next four samples processing */ - *px++ = (q15_t) fcurnt4; - - /* Process third sample for first tap */ - fnext3 = (q31_t) ((fcurnt2 * (*pk)) >> 15U) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15U) + fcurnt2; - gnext3 = __SSAT(gnext3, 16); - - /* Process fourth sample for first tap */ - fnext4 = (q31_t) ((fcurnt3 * (*pk)) >> 15U) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - gnext4 = (q31_t) ((fcurnt4 * (*pk++)) >> 15U) + fcurnt3; - gnext4 = __SSAT(gnext4, 16); - - /* Update of f values for next coefficient set processing */ - fcurnt1 = fnext1; - fcurnt2 = fnext2; - fcurnt3 = fnext3; - fcurnt4 = fnext4; - - - /* Loop unrolling. Process 4 taps at a time . */ - stageCnt = (numStages - 1U) >> 2; - - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numStages-3 coefficients. */ - - /* Process 2nd, 3rd, 4th and 5th taps ... here */ - while (stageCnt > 0U) - { - /* Read g1(n-1), g3(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Process first sample for 2nd, 6th .. tap */ - /* Sample processing for K2, K6.... */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - - /* Process second sample for 2nd, 6th .. tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15U) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - /* Process third sample for 2nd, 6th .. tap */ - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15U) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - /* Process fourth sample for 2nd, 6th .. tap */ - /* fnext4 = fcurnt4 + (*pk) * gnext3; */ - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15U) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15U) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15U) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15U) + gnext1; - gnext2 = __SSAT(gnext2, 16); - - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K3, K7.... */ - /* Process first sample for 3rd, 7th .. tap */ - /* f3(n) = f2(n) + K3 * g2(n-1) */ - fcurnt1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fnext1; - fcurnt1 = __SSAT(fcurnt1, 16); - - /* Process second sample for 3rd, 7th .. tap */ - fcurnt2 = (q31_t) ((gnext1 * (*pk)) >> 15U) + fnext2; - fcurnt2 = __SSAT(fcurnt2, 16); - - /* Process third sample for 3rd, 7th .. tap */ - fcurnt3 = (q31_t) ((gnext2 * (*pk)) >> 15U) + fnext3; - fcurnt3 = __SSAT(fcurnt3, 16); - - /* Process fourth sample for 3rd, 7th .. tap */ - fcurnt4 = (q31_t) ((gnext3 * (*pk)) >> 15U) + fnext4; - fcurnt4 = __SSAT(fcurnt4, 16); - - /* Calculation of state values for next stage */ - /* g3(n) = f2(n) * K3 + g2(n-1) */ - gnext4 = (q31_t) ((fnext4 * (*pk)) >> 15U) + gnext3; - gnext4 = __SSAT(gnext4, 16); - - gnext3 = (q31_t) ((fnext3 * (*pk)) >> 15U) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fnext2 * (*pk)) >> 15U) + gnext1; - gnext2 = __SSAT(gnext2, 16); - - gnext1 = (q31_t) ((fnext1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Read g1(n-1), g3(n-1) .... from state */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K4, K8.... */ - /* Process first sample for 4th, 8th .. tap */ - /* f4(n) = f3(n) + K4 * g3(n-1) */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* Process second sample for 4th, 8th .. tap */ - /* for sample 2 processing */ - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15U) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - /* Process third sample for 4th, 8th .. tap */ - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15U) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - - /* Process fourth sample for 4th, 8th .. tap */ - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15U) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g4(n) = f3(n) * K4 + g3(n-1) */ - /* Calculation of state values for next stage */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15U) + gnext3; - gnext4 = __SSAT(gnext4, 16); - - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15U) + gnext2; - gnext3 = __SSAT(gnext3, 16); - - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15U) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* Read g2(n-1), g4(n-1) .... from state */ - gcurnt1 = *px; - - /* save g4(n) in state buffer */ - *px++ = (q15_t) gnext4; - - /* Sample processing for K5, K9.... */ - /* Process first sample for 5th, 9th .. tap */ - /* f5(n) = f4(n) + K5 * g4(n-1) */ - fcurnt1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fnext1; - fcurnt1 = __SSAT(fcurnt1, 16); - - /* Process second sample for 5th, 9th .. tap */ - fcurnt2 = (q31_t) ((gnext1 * (*pk)) >> 15U) + fnext2; - fcurnt2 = __SSAT(fcurnt2, 16); - - /* Process third sample for 5th, 9th .. tap */ - fcurnt3 = (q31_t) ((gnext2 * (*pk)) >> 15U) + fnext3; - fcurnt3 = __SSAT(fcurnt3, 16); - - /* Process fourth sample for 5th, 9th .. tap */ - fcurnt4 = (q31_t) ((gnext3 * (*pk)) >> 15U) + fnext4; - fcurnt4 = __SSAT(fcurnt4, 16); - - /* Calculation of state values for next stage */ - /* g5(n) = f4(n) * K5 + g4(n-1) */ - gnext4 = (q31_t) ((fnext4 * (*pk)) >> 15U) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fnext3 * (*pk)) >> 15U) + gnext2; - gnext3 = __SSAT(gnext3, 16); - gnext2 = (q31_t) ((fnext2 * (*pk)) >> 15U) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fnext1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - stageCnt--; - } - - /* If the (filter length -1) is not a multiple of 4, compute the remaining filter taps */ - stageCnt = (numStages - 1U) % 0x4U; - - while (stageCnt > 0U) - { - gcurnt1 = *px; - - /* save g value in state buffer */ - *px++ = (q15_t) gnext4; - - /* Process four samples for last three taps here */ - fnext1 = (q31_t) ((gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - fnext2 = (q31_t) ((gnext1 * (*pk)) >> 15U) + fcurnt2; - fnext2 = __SSAT(fnext2, 16); - - fnext3 = (q31_t) ((gnext2 * (*pk)) >> 15U) + fcurnt3; - fnext3 = __SSAT(fnext3, 16); - - fnext4 = (q31_t) ((gnext3 * (*pk)) >> 15U) + fcurnt4; - fnext4 = __SSAT(fnext4, 16); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext4 = (q31_t) ((fcurnt4 * (*pk)) >> 15U) + gnext3; - gnext4 = __SSAT(gnext4, 16); - gnext3 = (q31_t) ((fcurnt3 * (*pk)) >> 15U) + gnext2; - gnext3 = __SSAT(gnext3, 16); - gnext2 = (q31_t) ((fcurnt2 * (*pk)) >> 15U) + gnext1; - gnext2 = __SSAT(gnext2, 16); - gnext1 = (q31_t) ((fcurnt1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* Update of f values for next coefficient set processing */ - fcurnt1 = fnext1; - fcurnt2 = fnext2; - fcurnt3 = fnext3; - fcurnt4 = fnext4; - - stageCnt--; - - } - - /* The results in the 4 accumulators, store in the destination buffer. */ - /* y(n) = fN(n) */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = __PKHBT(fcurnt1, fcurnt2, 16); - *__SIMD32(pDst)++ = __PKHBT(fcurnt3, fcurnt4, 16); - -#else - - *__SIMD32(pDst)++ = __PKHBT(fcurnt2, fcurnt1, 16); - *__SIMD32(pDst)++ = __PKHBT(fcurnt4, fcurnt3, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurnt1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g2(n) from state buffer */ - gcurnt1 = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (((q31_t) gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (((q31_t) fcurnt1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - /* save g1(n) in state buffer */ - *px++ = (q15_t) fcurnt1; - - /* f1(n) is saved in fcurnt1 - for next stage processing */ - fcurnt1 = fnext1; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* read g2(n) from state buffer */ - gcurnt1 = *px; - - /* save g1(n) in state buffer */ - *px++ = (q15_t) gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (((q31_t) gcurnt1 * (*pk)) >> 15U) + fcurnt1; - fnext1 = __SSAT(fnext1, 16); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (((q31_t) fcurnt1 * (*pk++)) >> 15U) + gcurnt1; - gnext1 = __SSAT(gnext1, 16); - - - /* f1(n) is saved in fcurnt1 - for next stage processing */ - fcurnt1 = fnext1; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = __SSAT(fcurnt1, 16); - - - blkCnt--; - - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t fcurnt, fnext, gcurnt, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurnt = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurnt = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = ((gcurnt * (*pk)) >> 15U) + fcurnt; - fnext = __SSAT(fnext, 16); - - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = ((fcurnt * (*pk++)) >> 15U) + gcurnt; - gnext = __SSAT(gnext, 16); - - /* save f0(n) in state buffer */ - *px++ = (q15_t) fcurnt; - - /* f1(n) is saved in fcurnt - for next stage processing */ - fcurnt = fnext; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* read g1(n-1) from state buffer */ - gcurnt = *px; - - /* save g0(n-1) in state buffer */ - *px++ = (q15_t) gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = ((gcurnt * (*pk)) >> 15U) + fcurnt; - fnext = __SSAT(fnext, 16); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = ((fcurnt * (*pk++)) >> 15U) + gcurnt; - gnext = __SSAT(gnext, 16); - - - /* f1(n) is saved in fcurnt - for next stage processing */ - fcurnt = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = __SSAT(fcurnt, 16); - - - blkCnt--; - - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q31.c deleted file mode 100644 index 8acfd34..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_lattice_q31.c +++ /dev/null @@ -1,341 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_lattice_q31.c - * Description: Q31 FIR lattice filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Lattice - * @{ - */ - - -/** - * @brief Processing function for the Q31 FIR lattice filter. - * @param[in] *S points to an instance of the Q31 FIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * In order to avoid overflows the input signal must be scaled down by 2*log2(numStages) bits. - */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_fir_lattice_q31( - const arm_fir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* temporary state pointer */ - q31_t *pk; /* temporary coefficient pointer */ - q31_t fcurr1, fnext1, gcurr1 = 0, gnext1; /* temporary variables for first sample in loop unrolling */ - q31_t fcurr2, fnext2, gnext2; /* temporary variables for second sample in loop unrolling */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - q31_t k; - - pState = &S->pState[0]; - - blkCnt = blockSize >> 1U; - - /* First part of the processing with loop unrolling. Compute 2 outputs at a time. - a second loop below computes the remaining 1 sample. */ - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* f0(n) = x(n) */ - fcurr2 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n - 1) from state buffer */ - gcurr1 = *px; - - /* Read the reflection coefficient */ - k = *pk++; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - fnext1 = fcurr1 + (fnext1 << 1U); - gnext1 = gcurr1 + (gnext1 << 1U); - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext2 = (q31_t) (((q63_t) fcurr1 * k) >> 32); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext2 = (q31_t) (((q63_t) fcurr2 * (k)) >> 32); - fnext2 = fcurr2 + (fnext2 << 1U); - gnext2 = fcurr1 + (gnext2 << 1U); - - /* save g1(n) in state buffer */ - *px++ = fcurr2; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - - /* Read the reflection coefficient */ - k = *pk++; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext2; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext2 = (q31_t) (((q63_t) gnext1 * k) >> 32); - - fnext1 = fcurr1 + (fnext1 << 1U); - fnext2 = fcurr2 + (fnext2 << 1U); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext2 = (q31_t) (((q63_t) fcurr2 * (k)) >> 32); - gnext2 = gnext1 + (gnext2 << 1U); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1U); - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - fcurr2 = fnext2; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - *pDst++ = fcurr2; - - blkCnt--; - - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x2U; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurr1 = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n - 1) from state buffer */ - gcurr1 = *px; - - /* Read the reflection coefficient */ - k = *pk++; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext1 = fcurr1 + (fnext1 << 1U); - - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1U); - - /* save g1(n) in state buffer */ - *px++ = fcurr1; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* Read the reflection coefficient */ - k = *pk++; - - /* read g2(n) from state buffer */ - gcurr1 = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext1; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext1 = (q31_t) (((q63_t) gcurr1 * k) >> 32); - fnext1 = fcurr1 + (fnext1 << 1U); - - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext1 = (q31_t) (((q63_t) fcurr1 * (k)) >> 32); - gnext1 = gcurr1 + (gnext1 << 1U); - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr1 = fnext1; - - stageCnt--; - - } - - - /* y(n) = fN(n) */ - *pDst++ = fcurr1; - - blkCnt--; - - } - - -} - - -#else - -/* Run the below code for Cortex-M0 */ - -void arm_fir_lattice_q31( - const arm_fir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* temporary state pointer */ - q31_t *pk; /* temporary coefficient pointer */ - q31_t fcurr, fnext, gcurr, gnext; /* temporary variables */ - uint32_t numStages = S->numStages; /* Length of the filter */ - uint32_t blkCnt, stageCnt; /* temporary variables for counts */ - - pState = &S->pState[0]; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* f0(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize coeff pointer */ - pk = (pCoeffs); - - /* Initialize state pointer */ - px = pState; - - /* read g0(n-1) from state buffer */ - gcurr = *px; - - /* for sample 1 processing */ - /* f1(n) = f0(n) + K1 * g0(n-1) */ - fnext = (q31_t) (((q63_t) gcurr * (*pk)) >> 31) + fcurr; - /* g1(n) = f0(n) * K1 + g0(n-1) */ - gnext = (q31_t) (((q63_t) fcurr * (*pk++)) >> 31) + gcurr; - /* save g1(n) in state buffer */ - *px++ = fcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt = (numStages - 1U); - - /* stage loop */ - while (stageCnt > 0U) - { - /* read g2(n) from state buffer */ - gcurr = *px; - - /* save g1(n) in state buffer */ - *px++ = gnext; - - /* Sample processing for K2, K3.... */ - /* f2(n) = f1(n) + K2 * g1(n-1) */ - fnext = (q31_t) (((q63_t) gcurr * (*pk)) >> 31) + fcurr; - /* g2(n) = f1(n) * K2 + g1(n-1) */ - gnext = (q31_t) (((q63_t) fcurr * (*pk++)) >> 31) + gcurr; - - /* f1(n) is saved in fcurr1 - for next stage processing */ - fcurr = fnext; - - stageCnt--; - - } - - /* y(n) = fN(n) */ - *pDst++ = fcurr; - - blkCnt--; - - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - -/** - * @} end of FIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c deleted file mode 100644 index e970a10..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c +++ /dev/null @@ -1,679 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_q15.c - * Description: Q15 FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @brief Processing function for the Q15 FIR filter. - * @param[in] *S points to an instance of the Q15 FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, state buffers should be aligned by 32-bit - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * Refer to the function arm_fir_fast_q15() for a faster but less precise implementation of this function. - */ - -#if defined (ARM_MATH_DSP) - -/* Run the below code for Cortex-M4 and Cortex-M3 */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px1; /* Temporary q15 pointer for state buffer */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t x0, x1, x2, x3, c0; /* Temporary variables to hold SIMD state and coefficient values */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *__SIMD32(pStateCurnt)++ = *__SIMD32(pSrc)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pSrc)++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer of type q15 */ - px1 = pState; - - /* Initialize coeff pointer of type q31 */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = _SIMD32_OFFSET(px1); - - /* Read the third and forth samples from the state buffer: x[n-N-1], x[n-N-2] */ - x1 = _SIMD32_OFFSET(px1 + 1U); - - px1 += 2U; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-4 coefficients. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLALD(x1, c0, acc1); - - /* Read state x[n-N-2], x[n-N-3] */ - x2 = _SIMD32_OFFSET(px1); - - /* Read state x[n-N-3], x[n-N-4] */ - x3 = _SIMD32_OFFSET(px1 + 1U); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLALD(x3, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLALD(x3, c0, acc1); - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px1 + 2U); - - /* Read state x[n-N-5], x[n-N-6] */ - x1 = _SIMD32_OFFSET(px1 + 3U); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLALD(x1, c0, acc3); - - px1 += 4U; - - tapCnt--; - - } - - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if ((numTaps & 0x3U) != 0U) - { - /* Read 2 coefficients */ - c0 = *__SIMD32(pb)++; - - /* Fetch 4 state variables */ - x2 = _SIMD32_OFFSET(px1); - - x3 = _SIMD32_OFFSET(px1 + 1U); - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - - px1 += 2U; - - acc1 = __SMLALD(x1, c0, acc1); - acc2 = __SMLALD(x2, c0, acc2); - acc3 = __SMLALD(x3, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - while (blkCnt > 0U) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer of type q15 */ - px1 = pState; - - /* Initialize coeff pointer of type q31 */ - pb = pCoeffs; - - tapCnt = numTaps >> 1; - - do - { - - c0 = *__SIMD32(pb)++; - x0 = *__SIMD32(px1)++; - - acc0 = __SMLALD(x0, c0, acc0); - tapCnt--; - } - while (tapCnt > 0U); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1U) >> 2; - - while (tapCnt > 0U) - { - - /* Copy state values to start of state buffer */ - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* copy remaining data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else /* UNALIGNED_SUPPORT_DISABLE */ - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q63_t acc0, acc1, acc2, acc3; /* Accumulators */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q15_t *px; /* Temporary q31 pointer for SIMD state buffer accesses */ - q31_t x0, x1, x2, c0; /* Temporary variables to hold SIMD state and coefficient values */ - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer. - ** Use 32-bit SIMD to move the 16-bit data. Only requires two copies. */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Typecast q15_t pointer to q31_t pointer for state reading in q31_t */ - px = pState; - - /* Typecast q15_t pointer to q31_t pointer for coefficient reading in q31_t */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: x[n-N], x[n-N-1] */ - x0 = *__SIMD32(px)++; - - /* Read the third and forth samples from the state buffer: x[n-N-2], x[n-N-3] */ - x2 = *__SIMD32(px)++; - - /* Loop over the number of taps. Unroll by a factor of 4. - ** Repeat until we've computed numTaps-(numTaps%4) coefficients. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0) - { - /* Read the first two coefficients using SIMD: b[N] and b[N-1] coefficients */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - acc0 = __SMLALD(x0, c0, acc0); - - /* acc2 += b[N] * x[n-N-2] + b[N-1] * x[n-N-3] */ - acc2 = __SMLALD(x2, c0, acc2); - - /* pack x[n-N-1] and x[n-N-2] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read state x[n-N-4], x[n-N-5] */ - x0 = _SIMD32_OFFSET(px); - - /* acc1 += b[N] * x[n-N-1] + b[N-1] * x[n-N-2] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack x[n-N-3] and x[n-N-4] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* acc3 += b[N] * x[n-N-3] + b[N-1] * x[n-N-4] */ - acc3 = __SMLALDX(x1, c0, acc3); - - /* Read coefficients b[N-2], b[N-3] */ - c0 = *__SIMD32(pb)++; - - /* acc0 += b[N-2] * x[n-N-2] + b[N-3] * x[n-N-3] */ - acc0 = __SMLALD(x2, c0, acc0); - - /* Read state x[n-N-6], x[n-N-7] with offset */ - x2 = _SIMD32_OFFSET(px + 2U); - - /* acc2 += b[N-2] * x[n-N-4] + b[N-3] * x[n-N-5] */ - acc2 = __SMLALD(x0, c0, acc2); - - /* acc1 += b[N-2] * x[n-N-3] + b[N-3] * x[n-N-4] */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack x[n-N-5] and x[n-N-6] */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* acc3 += b[N-2] * x[n-N-5] + b[N-3] * x[n-N-6] */ - acc3 = __SMLALDX(x1, c0, acc3); - - /* Update state pointer for next state reading */ - px += 4U; - - /* Decrement tap count */ - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps. - ** This is always be 2 taps since the filter length is even. */ - if ((numTaps & 0x3U) != 0U) - { - - /* Read last two coefficients */ - c0 = *__SIMD32(pb)++; - - /* Perform the multiply-accumulates */ - acc0 = __SMLALD(x0, c0, acc0); - acc2 = __SMLALD(x2, c0, acc2); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x2, x0, 0); -#else - x1 = __PKHBT(x0, x2, 0); -#endif - - /* Read last state variables */ - x0 = *__SIMD32(px); - - /* Perform the multiply-accumulates */ - acc1 = __SMLALDX(x1, c0, acc1); - - /* pack state variables */ -#ifndef ARM_MATH_BIG_ENDIAN - x1 = __PKHBT(x0, x2, 0); -#else - x1 = __PKHBT(x2, x0, 0); -#endif - - /* Perform the multiply-accumulates */ - acc3 = __SMLALDX(x1, c0, acc3); - } - - /* The results in the 4 accumulators are in 2.30 format. Convert to 1.15 with saturation. - ** Then store the 4 outputs in the destination buffer. */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc0 >> 15), 16), __SSAT((acc1 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc2 >> 15), 16), __SSAT((acc3 >> 15), 16), 16); - -#else - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc1 >> 15), 16), __SSAT((acc0 >> 15), 16), 16); - - *__SIMD32(pDst)++ = - __PKHBT(__SSAT((acc3 >> 15), 16), __SSAT((acc2 >> 15), 16), 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - while (blkCnt > 0U) - { - /* Copy two samples into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Use SIMD to hold states and coefficients */ - px = pState; - pb = pCoeffs; - - tapCnt = numTaps >> 1U; - - do - { - acc0 += (q31_t) * px++ * *pb++; - acc0 += (q31_t) * px++ * *pb++; - tapCnt--; - } - while (tapCnt > 0U); - - /* The result is in 2.30 format. Convert to 1.15 with saturation. - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) (__SSAT((acc0 >> 15), 16)); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1U) >> 2; - - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* copy remaining data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#else /* ARM_MATH_CM0_FAMILY */ - - -/* Run the below code for Cortex-M0 */ - -void arm_fir_q15( - const arm_fir_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - - - - q15_t *px; /* Temporary pointer for state buffer */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Number of nTaps in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - tapCnt = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q31_t) * px++ * *pb++; - tapCnt--; - } while (tapCnt > 0U); - - /* The result is in 2.30 format. Convert to 1.15 - ** Then store the output in the destination buffer. */ - *pDst++ = (q15_t) __SSAT((acc >> 15U), 16); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = (numTaps - 1U); - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - - - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c deleted file mode 100644 index 4ca8295..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c +++ /dev/null @@ -1,353 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_q31.c - * Description: Q31 FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q31 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by log2(numTaps) bits. - * After all multiply-accumulates are performed, the 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * Refer to the function arm_fir_fast_q31() for a faster but less precise implementation of this filter for Cortex-M3 and Cortex-M4. - */ - -void arm_fir_q31( - const arm_fir_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t x0, x1, x2; /* Temporary variables to hold state */ - q31_t c0; /* Temporary variable to hold coefficient value */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc0, acc1, acc2; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt, tapCntN3; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize / 3; - blockSize = blockSize - (3 * blkCnt); - - tapCnt = numTaps / 3; - tapCntN3 = numTaps - (3 * tapCnt); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy three new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first two samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1] */ - x0 = *(px++); - x1 = *(px++); - - /* Loop unrolling. Process 3 taps at a time. */ - i = tapCnt; - - while (i > 0U) - { - /* Read the b[numTaps] coefficient */ - c0 = *pb; - - /* Read x[n-numTaps-2] sample */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x0 * c0); - acc1 += ((q63_t) x1 * c0); - acc2 += ((q63_t) x2 * c0); - - /* Read the coefficient and state */ - c0 = *(pb + 1U); - x0 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x1 * c0); - acc1 += ((q63_t) x2 * c0); - acc2 += ((q63_t) x0 * c0); - - /* Read the coefficient and state */ - c0 = *(pb + 2U); - x1 = *(px++); - - /* update coefficient pointer */ - pb += 3U; - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x2 * c0); - acc1 += ((q63_t) x0 * c0); - acc2 += ((q63_t) x1 * c0); - - /* Decrement the loop counter */ - i--; - } - - /* If the filter length is not a multiple of 3, compute the remaining filter taps */ - - i = tapCntN3; - - while (i > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x2 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q63_t) x0 * c0); - acc1 += ((q63_t) x1 * c0); - acc2 += ((q63_t) x2 * c0); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 3 to process the next group of 3 samples */ - pState = pState + 3; - - /* The results in the 3 accumulators are in 2.30 format. Convert to 1.31 - ** Then store the 3 outputs in the destination buffer. */ - *pDst++ = (q31_t) (acc0 >> 31U); - *pDst++ = (q31_t) (acc1 >> 31U); - *pDst++ = (q31_t) (acc2 >> 31U); - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 3, compute any remaining output samples here. - ** No loop unrolling is used. */ - - while (blockSize > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += (q63_t) * (px++) * (*(pb++)); - i--; - } while (i > 0U); - - /* The result is in 2.62 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc0 >> 31U); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blockSize--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - q63_t acc; /* Accumulator */ - uint32_t numTaps = S->numTaps; /* Length of the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState buffer contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = pCoeffs; - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q63_t) * px++ * *pb++; - i--; - } while (i > 0U); - - /* The result is in 2.62 format. Convert to 1.31 - ** Then store the output in the destination buffer. */ - *pDst++ = (q31_t) (acc >> 31U); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the starting of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - /* Copy numTaps number of values */ - tapCnt = numTaps - 1U; - - /* Copy the data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c deleted file mode 100644 index 23e60ad..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c +++ /dev/null @@ -1,385 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_q7.c - * Description: Q7 FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR - * @{ - */ - -/** - * @param[in] *S points to an instance of the Q7 FIR filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both coefficients and state variables are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is converted to 18.7 format by discarding the low 7 bits. - * Finally, the result is truncated to 1.7 format. - */ - -void arm_fir_q7( - const arm_fir_instance_q7 * S, - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *pStateCurnt; /* Points to the current sample of the state */ - q7_t x0, x1, x2, x3; /* Temporary variables to hold state */ - q7_t c0; /* Temporary variable to hold coefficient value */ - q7_t *px; /* Temporary pointer for state */ - q7_t *pb; /* Temporary pointer for coefficient buffer */ - q31_t acc0, acc1, acc2, acc3; /* Accumulators */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t i, tapCnt, blkCnt; /* Loop counters */ - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Apply loop unrolling and compute 4 output values simultaneously. - * The variables acc0 ... acc3 hold output values that are being computed: - * - * acc0 = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] - * acc1 = b[numTaps-1] * x[n-numTaps] + b[numTaps-2] * x[n-numTaps-1] + b[numTaps-3] * x[n-numTaps-2] +...+ b[0] * x[1] - * acc2 = b[numTaps-1] * x[n-numTaps+1] + b[numTaps-2] * x[n-numTaps] + b[numTaps-3] * x[n-numTaps-1] +...+ b[0] * x[2] - * acc3 = b[numTaps-1] * x[n-numTaps+2] + b[numTaps-2] * x[n-numTaps+1] + b[numTaps-3] * x[n-numTaps] +...+ b[0] * x[3] - */ - blkCnt = blockSize >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Copy four new input samples into the state buffer */ - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - *pStateCurnt++ = *pSrc++; - - /* Set all accumulators to zero */ - acc0 = 0; - acc1 = 0; - acc2 = 0; - acc3 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Read the first three samples from the state buffer: - * x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2] */ - x0 = *(px++); - x1 = *(px++); - x2 = *(px++); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - i = tapCnt; - - while (i > 0U) - { - /* Read the b[numTaps] coefficient */ - c0 = *pb; - - /* Read x[n-numTaps-3] sample */ - x3 = *px; - - /* acc0 += b[numTaps] * x[n-numTaps] */ - acc0 += ((q15_t) x0 * c0); - - /* acc1 += b[numTaps] * x[n-numTaps-1] */ - acc1 += ((q15_t) x1 * c0); - - /* acc2 += b[numTaps] * x[n-numTaps-2] */ - acc2 += ((q15_t) x2 * c0); - - /* acc3 += b[numTaps] * x[n-numTaps-3] */ - acc3 += ((q15_t) x3 * c0); - - /* Read the b[numTaps-1] coefficient */ - c0 = *(pb + 1U); - - /* Read x[n-numTaps-4] sample */ - x0 = *(px + 1U); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x1 * c0); - acc1 += ((q15_t) x2 * c0); - acc2 += ((q15_t) x3 * c0); - acc3 += ((q15_t) x0 * c0); - - /* Read the b[numTaps-2] coefficient */ - c0 = *(pb + 2U); - - /* Read x[n-numTaps-5] sample */ - x1 = *(px + 2U); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x2 * c0); - acc1 += ((q15_t) x3 * c0); - acc2 += ((q15_t) x0 * c0); - acc3 += ((q15_t) x1 * c0); - - /* Read the b[numTaps-3] coefficients */ - c0 = *(pb + 3U); - - /* Read x[n-numTaps-6] sample */ - x2 = *(px + 3U); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x3 * c0); - acc1 += ((q15_t) x0 * c0); - acc2 += ((q15_t) x1 * c0); - acc3 += ((q15_t) x2 * c0); - - /* update coefficient pointer */ - pb += 4U; - px += 4U; - - /* Decrement the loop counter */ - i--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - - i = numTaps - (tapCnt * 4U); - while (i > 0U) - { - /* Read coefficients */ - c0 = *(pb++); - - /* Fetch 1 state variable */ - x3 = *(px++); - - /* Perform the multiply-accumulates */ - acc0 += ((q15_t) x0 * c0); - acc1 += ((q15_t) x1 * c0); - acc2 += ((q15_t) x2 * c0); - acc3 += ((q15_t) x3 * c0); - - /* Reuse the present sample states for next sample */ - x0 = x1; - x1 = x2; - x2 = x3; - - /* Decrement the loop counter */ - i--; - } - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 4; - - /* The results in the 4 accumulators are in 2.62 format. Convert to 1.31 - ** Then store the 4 outputs in the destination buffer. */ - acc0 = __SSAT((acc0 >> 7U), 8); - *pDst++ = acc0; - acc1 = __SSAT((acc1 >> 7U), 8); - *pDst++ = acc1; - acc2 = __SSAT((acc2 >> 7U), 8); - *pDst++ = acc2; - acc3 = __SSAT((acc3 >> 7U), 8); - *pDst++ = acc3; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 4U; - - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set the accumulator to zero */ - acc0 = 0; - - /* Initialize state pointer */ - px = pState; - - /* Initialize Coefficient pointer */ - pb = (pCoeffs); - - i = numTaps; - - /* Perform the multiply-accumulates */ - do - { - acc0 += (q15_t) * (px++) * (*(pb++)); - i--; - } while (i > 0U); - - /* The result is in 2.14 format. Convert to 1.7 - ** Then store the output in the destination buffer. */ - *pDst++ = __SSAT((acc0 >> 7U), 8); - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the samples loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - uint32_t numTaps = S->numTaps; /* Number of taps in the filter */ - uint32_t i, blkCnt; /* Loop counters */ - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *px, *pb; /* Temporary pointers to state and coeff */ - q31_t acc = 0; /* Accumlator */ - q7_t *pStateCurnt; /* Points to the current sample of the state */ - - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = S->pState + (numTaps - 1U); - - /* Initialize blkCnt with blockSize */ - blkCnt = blockSize; - - /* Perform filtering upto BlockSize - BlockSize%4 */ - while (blkCnt > 0U) - { - /* Copy one sample at a time into state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Set accumulator to zero */ - acc = 0; - - /* Initialize state pointer of type q7 */ - px = pState; - - /* Initialize coeff pointer of type q7 */ - pb = pCoeffs; - - - i = numTaps; - - while (i > 0U) - { - /* acc = b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */ - acc += (q15_t) * px++ * *pb++; - i--; - } - - /* Store the 1.7 format filter output in destination buffer */ - *pDst++ = (q7_t) __SSAT((acc >> 7), 8); - - /* Advance the state pointer by 1 to process the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. - ** Now copy the last numTaps - 1 samples to the satrt of the state buffer. - ** This prepares the state buffer for the next function call. */ - - - /* Points to the start of the state buffer */ - pStateCurnt = S->pState; - - - /* Copy numTaps number of values */ - i = (numTaps - 1U); - - /* Copy q7_t data */ - while (i > 0U) - { - *pStateCurnt++ = *pState++; - i--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_f32.c deleted file mode 100644 index bba2936..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_f32.c +++ /dev/null @@ -1,433 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_f32.c - * Description: Floating-point sparse FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup FIR_Sparse Finite Impulse Response (FIR) Sparse Filters - * - * This group of functions implements sparse FIR filters. - * Sparse FIR filters are equivalent to standard FIR filters except that most of the coefficients are equal to zero. - * Sparse filters are used for simulating reflections in communications and audio applications. - * - * There are separate functions for Q7, Q15, Q31, and floating-point data types. - * The functions operate on blocks of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst points to input and output arrays respectively containing blockSize values. - * - * \par Algorithm: - * The sparse filter instant structure contains an array of tap indices pTapDelay which specifies the locations of the non-zero coefficients. - * This is in addition to the coefficient array b. - * The implementation essentially skips the multiplications by zero and leads to an efficient realization. - *
- *     y[n] = b[0] * x[n-pTapDelay[0]] + b[1] * x[n-pTapDelay[1]] + b[2] * x[n-pTapDelay[2]] + ...+ b[numTaps-1] * x[n-pTapDelay[numTaps-1]]
- * 
- * \par - * \image html FIRSparse.gif "Sparse FIR filter. b[n] represents the filter coefficients" - * \par - * pCoeffs points to a coefficient array of size numTaps; - * pTapDelay points to an array of nonzero indices and is also of size numTaps; - * pState points to a state array of size maxDelay + blockSize, where - * maxDelay is the largest offset value that is ever used in the pTapDelay array. - * Some of the processing functions also require temporary working buffers. - * - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient and offset arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 4 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numTaps, pCoeffs, pTapDelay, maxDelay, stateIndex, pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 4 different data type filter instance structures - *
- *arm_fir_sparse_instance_f32 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};
- *arm_fir_sparse_instance_q31 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};
- *arm_fir_sparse_instance_q15 S = {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};
- *arm_fir_sparse_instance_q7 S =  {numTaps, 0, pState, pCoeffs, maxDelay, pTapDelay};
- * 
- * \par - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the sparse FIR filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the floating-point sparse FIR filter. - * @param[in] *S points to an instance of the floating-point sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - */ - -void arm_fir_sparse_f32( - arm_fir_sparse_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - float32_t * pScratchIn, - uint32_t blockSize) -{ - - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *px; /* Scratch buffer pointer */ - float32_t *py = pState; /* Temporary pointers for state buffer */ - float32_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - float32_t *pOut; /* Destination pointer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - float32_t coeff = *pCoeffs++; /* Read the first coefficient value */ - - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_f32((int32_t *) py, delaySize, &S->stateIndex, 1, - (int32_t *) pSrc, 1, blockSize); - - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 Multiplications at a time. */ - blkCnt = blockSize >> 2U; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - -/* Run the below code for Cortex-M0 */ - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in destination buffer */ - *pOut++ = *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = - ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer */ - px = pb; - - /* Working pointer for destination buffer */ - pOut = pDst; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pOut++ += *px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_f32.c deleted file mode 100644 index d663679..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_f32.c +++ /dev/null @@ -1,95 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_init_f32.c - * Description: Floating-point sparse FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the floating-point sparse FIR filter. - * @param[in,out] *S points to an instance of the floating-point sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of samples processed by the arm_fir_sparse_f32() function. - */ - -void arm_fir_sparse_init_f32( - arm_fir_sparse_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0U; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q15.c deleted file mode 100644 index 08c2d0e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q15.c +++ /dev/null @@ -1,95 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_init_q15.c - * Description: Q15 sparse FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q15 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q15 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of words processed by arm_fir_sparse_q15() function. - */ - -void arm_fir_sparse_init_q15( - arm_fir_sparse_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0U; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q31.c deleted file mode 100644 index 4a94232..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q31.c +++ /dev/null @@ -1,94 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_init_q31.c - * Description: Q31 sparse FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q31 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q31 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the number of words processed by arm_fir_sparse_q31() function. - */ - -void arm_fir_sparse_init_q31( - arm_fir_sparse_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0U; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q7.c deleted file mode 100644 index 58d6705..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_init_q7.c +++ /dev/null @@ -1,95 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_init_q7.c - * Description: Q7 sparse FIR filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Initialization function for the Q7 sparse FIR filter. - * @param[in,out] *S points to an instance of the Q7 sparse FIR structure. - * @param[in] numTaps number of nonzero coefficients in the filter. - * @param[in] *pCoeffs points to the array of filter coefficients. - * @param[in] *pState points to the state buffer. - * @param[in] *pTapDelay points to the array of offset times. - * @param[in] maxDelay maximum offset time supported. - * @param[in] blockSize number of samples that will be processed per block. - * @return none - * - * Description: - * \par - * pCoeffs holds the filter coefficients and has length numTaps. - * pState holds the filter's state variables and must be of length - * maxDelay + blockSize, where maxDelay - * is the maximum number of delay line values. - * blockSize is the - * number of samples processed by the arm_fir_sparse_q7() function. - */ - -void arm_fir_sparse_init_q7( - arm_fir_sparse_instance_q7 * S, - uint16_t numTaps, - q7_t * pCoeffs, - q7_t * pState, - int32_t * pTapDelay, - uint16_t maxDelay, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Assign TapDelay pointer */ - S->pTapDelay = pTapDelay; - - /* Assign MaxDelay */ - S->maxDelay = maxDelay; - - /* reset the stateIndex to 0 */ - S->stateIndex = 0U; - - /* Clear state buffer and size is always maxDelay + blockSize */ - memset(pState, 0, (maxDelay + blockSize) * sizeof(q7_t)); - - /* Assign state pointer */ - S->pState = pState; - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q15.c deleted file mode 100644 index e17f2bd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q15.c +++ /dev/null @@ -1,470 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_q15.c - * Description: Q15 sparse FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the Q15 sparse FIR filter. - * @param[in] *S points to an instance of the Q15 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] *pScratchOut points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 32-bit accumulator. - * The 1.15 x 1.15 multiplications yield a 2.30 result and these are added to a 2.30 accumulator. - * Thus the full precision of the multiplications is maintained but there is only a single guard bit in the accumulator. - * If the accumulator result overflows it will wrap around rather than saturate. - * After all multiply-accumulates are performed, the 2.30 accumulator is truncated to 2.15 format and then saturated to 1.15 format. - * In order to avoid overflows the input signal or coefficients must be scaled down by log2(numTaps) bits. - */ - - -void arm_fir_sparse_q15( - arm_fir_sparse_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - q15_t * pScratchIn, - q31_t * pScratchOut, - uint32_t blockSize) -{ - - q15_t *pState = S->pState; /* State pointer */ - q15_t *pIn = pSrc; /* Working pointer for input */ - q15_t *pOut = pDst; /* Working pointer for output */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *px; /* Temporary pointers for scratch buffer */ - q15_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q15_t *py = pState; /* Temporary pointers for state buffer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q15_t coeff = *pCoeffs++; /* Read the first coefficient value */ - q31_t *pScr2 = pScratchOut; /* Working pointer for pScratchOut */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2; /* Temporary variables */ - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q15(py, delaySize, &S->stateIndex, 1, pIn, 1, blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 multiplications at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - in1 = *pScr2++; - in2 = *pScr2++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in1 >> 15, 16), (q15_t) __SSAT(in2 >> 15, 16), - 16); - -#else - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in2 >> 15, 16), (q15_t) __SSAT(in1 >> 15, 16), - 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - in1 = *pScr2++; - - in2 = *pScr2++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in1 >> 15, 16), (q15_t) __SSAT(in2 >> 15, 16), - 16); - -#else - - *__SIMD32(pOut)++ = - __PKHBT((q15_t) __SSAT(in2 >> 15, 16), (q15_t) __SSAT(in1 >> 15, 16), - 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - - blkCnt--; - - } - - /* If the blockSize is not a multiple of 4, - remaining samples are processed in the below loop */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - *pOut++ = (q15_t) __SSAT(*pScr2++ >> 15, 16); - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q15(py, delaySize, &S->stateIndex, 1, pIn, 1, blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q15(py, delaySize, &readIndex, 1, - pb, pb, blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - *pScratchOut++ += (q31_t) * px++ * coeff; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - *pOut++ = (q15_t) __SSAT(*pScr2++ >> 15, 16); - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q31.c deleted file mode 100644 index e441716..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q31.c +++ /dev/null @@ -1,450 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_q31.c - * Description: Q31 sparse FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - - -/** - * @addtogroup FIR_Sparse - * @{ - */ - -/** - * @brief Processing function for the Q31 sparse FIR filter. - * @param[in] *S points to an instance of the Q31 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 32-bit accumulator. - * The 1.31 x 1.31 multiplications are truncated to 2.30 format. - * This leads to loss of precision on the intermediate multiplications and provides only a single guard bit. - * If the accumulator result overflows, it wraps around rather than saturate. - * In order to avoid overflows the input signal or coefficients must be scaled down by log2(numTaps) bits. - */ - -void arm_fir_sparse_q31( - arm_fir_sparse_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - q31_t * pScratchIn, - uint32_t blockSize) -{ - - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *px; /* Scratch buffer pointer */ - q31_t *py = pState; /* Temporary pointers for state buffer */ - q31_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q31_t *pOut; /* Destination pointer */ - q63_t out; /* Temporary output variable */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q31_t coeff = *pCoeffs++; /* Read the first coefficient value */ - q31_t in; - - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_f32((int32_t *) py, delaySize, &S->stateIndex, 1, - (int32_t *) pSrc, 1, blockSize); - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 Multiplications at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Working output pointer is updated */ - pOut = pDst; - - /* Output is converted into 1.31 format. */ - /* Loop over the blockSize. Unroll by a factor of 4. - * process 4 output samples at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * process the remaining output samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiplications and store in the destination buffer */ - *pOut++ = (q31_t) (((q63_t) * px++ * coeff) >> 32); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = (int32_t) (S->stateIndex - blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1, - (int32_t *) pb, (int32_t *) pb, blockSize, 1, - blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pOut = pDst; - - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - out = *pOut; - out += ((q63_t) * px++ * coeff) >> 32; - *pOut++ = (q31_t) (out); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Working output pointer is updated */ - pOut = pDst; - - /* Output is converted into 1.31 format. */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - in = *pOut << 1; - *pOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q7.c deleted file mode 100644 index c1b4ce3..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_fir_sparse_q7.c +++ /dev/null @@ -1,469 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fir_sparse_q7.c - * Description: Q7 sparse FIR filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup FIR_Sparse - * @{ - */ - - -/** - * @brief Processing function for the Q7 sparse FIR filter. - * @param[in] *S points to an instance of the Q7 sparse FIR structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data - * @param[in] *pScratchIn points to a temporary buffer of size blockSize. - * @param[in] *pScratchOut points to a temporary buffer of size blockSize. - * @param[in] blockSize number of input samples to process per call. - * @return none. - * - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * Both coefficients and state variables are represented in 1.7 format and multiplications yield a 2.14 result. - * The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * The accumulator is then converted to 18.7 format by discarding the low 7 bits. - * Finally, the result is truncated to 1.7 format. - */ - -void arm_fir_sparse_q7( - arm_fir_sparse_instance_q7 * S, - q7_t * pSrc, - q7_t * pDst, - q7_t * pScratchIn, - q31_t * pScratchOut, - uint32_t blockSize) -{ - - q7_t *pState = S->pState; /* State pointer */ - q7_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q7_t *px; /* Scratch buffer pointer */ - q7_t *py = pState; /* Temporary pointers for state buffer */ - q7_t *pb = pScratchIn; /* Temporary pointers for scratch buffer */ - q7_t *pOut = pDst; /* Destination pointer */ - int32_t *pTapDelay = S->pTapDelay; /* Pointer to the array containing offset of the non-zero tap values. */ - uint32_t delaySize = S->maxDelay + blockSize; /* state length */ - uint16_t numTaps = S->numTaps; /* Filter order */ - int32_t readIndex; /* Read index of the state buffer */ - uint32_t tapCnt, blkCnt; /* loop counters */ - q7_t coeff = *pCoeffs++; /* Read the coefficient value */ - q31_t *pScr2 = pScratchOut; /* Working pointer for scratch buffer of output values */ - q31_t in; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t in1, in2, in3, in4; - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q7(py, (int32_t) delaySize, &S->stateIndex, 1, pSrc, 1, - blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 multiplications at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize. Unroll by a factor of 4. - * Compute 4 MACS at a time. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - * compute the remaining samples */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize >> 2; - - while (blkCnt > 0U) - { - in1 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in2 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in3 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - in4 = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - *__SIMD32(pOut)++ = __PACKq7(in1, in2, in3, in4); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, - remaining samples are processed in the below loop */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - *pOut++ = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* BlockSize of Input samples are copied into the state buffer */ - /* StateIndex points to the starting position to write in the state buffer */ - arm_circularWrite_q7(py, (int32_t) delaySize, &S->stateIndex, 1, pSrc, 1, - blockSize); - - /* Loop over the number of taps. */ - tapCnt = numTaps; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform multiplication and store in the scratch buffer */ - *pScratchOut++ = ((q31_t) * px++ * coeff); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Loop over the number of taps. */ - tapCnt = (uint32_t) numTaps - 2U; - - while (tapCnt > 0U) - { - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Load the coefficient value and - * increment the coefficient buffer for the next set of state values */ - coeff = *pCoeffs++; - - /* Read Index, from where the state buffer should be read, is calculated. */ - readIndex = - ((int32_t) S->stateIndex - (int32_t) blockSize) - *pTapDelay++; - - /* Wraparound of readIndex */ - if (readIndex < 0) - { - readIndex += (int32_t) delaySize; - } - - /* Decrement the tap loop counter */ - tapCnt--; - } - - /* Compute last tap without the final read of pTapDelay */ - - /* Working pointer for state buffer is updated */ - py = pState; - - /* blockSize samples are read from the state buffer */ - arm_circularRead_q7(py, (int32_t) delaySize, &readIndex, 1, pb, pb, - (int32_t) blockSize, 1, blockSize); - - /* Working pointer for the scratch buffer of state values */ - px = pb; - - /* Working pointer for scratch buffer of output values */ - pScratchOut = pScr2; - - /* Loop over the blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Perform Multiply-Accumulate */ - in = *pScratchOut + ((q31_t) * px++ * coeff); - *pScratchOut++ = in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* All the output values are in pScratchOut buffer. - Convert them into 1.15 format, saturate and store in the destination buffer. */ - /* Loop over the blockSize. */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - *pOut++ = (q7_t) __SSAT(*pScr2++ >> 7, 8); - - /* Decrement the blockSize loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of FIR_Sparse group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_f32.c deleted file mode 100644 index 424be38..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_f32.c +++ /dev/null @@ -1,435 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_f32.c - * Description: Floating-point IIR Lattice filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup IIR_Lattice Infinite Impulse Response (IIR) Lattice Filters - * - * This set of functions implements lattice filters - * for Q15, Q31 and floating-point data types. Lattice filters are used in a - * variety of adaptive filter applications. The filter structure has feedforward and - * feedback components and the net impulse response is infinite length. - * The functions operate on blocks - * of input and output data and each call to the function processes - * blockSize samples through the filter. pSrc and - * pDst point to input and output arrays containing blockSize values. - - * \par Algorithm: - * \image html IIRLattice.gif "Infinite Impulse Response Lattice filter" - *
- *    fN(n)   =  x(n)
- *    fm-1(n) = fm(n) - km * gm-1(n-1)   for m = N, N-1, ...1
- *    gm(n)   = km * fm-1(n) + gm-1(n-1) for m = N, N-1, ...1
- *    y(n)    = vN * gN(n) + vN-1 * gN-1(n) + ...+ v0 * g0(n)
- * 
- * \par - * pkCoeffs points to array of reflection coefficients of size numStages. - * Reflection coefficients are stored in time-reversed order. - * \par - *
- *    {kN, kN-1, ....k1}
- * 
- * pvCoeffs points to the array of ladder coefficients of size (numStages+1). - * Ladder coefficients are stored in time-reversed order. - * \par - *
- *    {vN, vN-1, ...v0}
- * 
- * pState points to a state array of size numStages + blockSize. - * The state variables shown in the figure above (the g values) are stored in the pState array. - * The state variables are updated after each block of data is processed; the coefficients are untouched. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter. - * Coefficient arrays may be shared among several instances while state variable arrays cannot be shared. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numStages, pkCoeffs, pvCoeffs, pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros and then manually initialize the instance structure as follows: - *
- *arm_iir_lattice_instance_f32 S = {numStages, pState, pkCoeffs, pvCoeffs};
- *arm_iir_lattice_instance_q31 S = {numStages, pState, pkCoeffs, pvCoeffs};
- *arm_iir_lattice_instance_q15 S = {numStages, pState, pkCoeffs, pvCoeffs};
- * 
- * \par - * where numStages is the number of stages in the filter; pState points to the state buffer array; - * pkCoeffs points to array of the reflection coefficients; pvCoeffs points to the array of ladder coefficients. - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the IIR lattice filter functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the floating-point IIR lattice filter. - * @param[in] *S points to an instance of the floating-point IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - -void arm_iir_lattice_f32( - const arm_iir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t fnext1, gcurr1, gnext; /* Temporary variables for lattice stages */ - float32_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* temporary variables for counts */ - float32_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - float32_t *pState; /* State pointer */ - float32_t *pStateCurnt; /* State current pointer */ - float32_t k1, k2; - float32_t v1, v2, v3, v4; - float32_t gcurr2; - float32_t fnext2; - - /* initialise loop count */ - blkCnt = blockSize; - - /* initialise state pointer */ - pState = &S->pState[0]; - - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fnext2 = *pSrc++; - - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - - /* Set accumulator to zero */ - acc = 0.0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages) >> 2; - - while (tapCnt > 0U) - { - /* Read gN-1(n-1) from state buffer */ - gcurr1 = *px1; - - /* read reflection coefficient kN */ - k1 = *pk; - - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext1 = fnext2 - (k1 * gcurr1); - - /* read ladder coefficient vN */ - v1 = *pv; - - /* read next reflection coefficient kN-1 */ - k2 = *(pk + 1U); - - /* Read gN-2(n-1) from state buffer */ - gcurr2 = *(px1 + 1U); - - /* read next ladder coefficient vN-1 */ - v2 = *(pv + 1U); - - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext2 = fnext1 - (k2 * gcurr2); - - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = gcurr1 + (k1 * fnext1); - - /* read reflection coefficient kN-2 */ - k1 = *(pk + 2U); - - /* write gN(n) into state for next sample processing */ - *px2++ = gnext; - - /* Read gN-3(n-1) from state buffer */ - gcurr1 = *(px1 + 2U); - - /* y(n) += gN(n) * vN */ - acc += (gnext * v1); - - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fnext1 = fnext2 - (k1 * gcurr1); - - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = gcurr2 + (k2 * fnext2); - - /* Read gN-4(n-1) from state buffer */ - gcurr2 = *(px1 + 3U); - - /* y(n) += gN-1(n) * vN-1 */ - acc += (gnext * v2); - - /* read reflection coefficient kN-3 */ - k2 = *(pk + 3U); - - /* write gN-1(n) into state for next sample processing */ - *px2++ = gnext; - - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext2 = fnext1 - (k2 * gcurr2); - - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = gcurr1 + (k1 * fnext1); - - /* read ladder coefficient vN-2 */ - v3 = *(pv + 2U); - - /* y(n) += gN-2(n) * vN-2 */ - acc += (gnext * v3); - - /* write gN-2(n) into state for next sample processing */ - *px2++ = gnext; - - /* update pointer */ - pk += 4U; - - /* gN-3(n) = kN-3 * fN-4(n) + gN-4(n-1) */ - gnext = (fnext2 * k2) + gcurr2; - - /* read next ladder coefficient vN-3 */ - v4 = *(pv + 3U); - - /* y(n) += gN-4(n) * vN-4 */ - acc += (gnext * v4); - - /* write gN-3(n) into state for next sample processing */ - *px2++ = gnext; - - /* update pointers */ - px1 += 4U; - pv += 4U; - - tapCnt--; - - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages) % 0x4U; - - while (tapCnt > 0U) - { - gcurr1 = *px1++; - /* Process sample for last taps */ - fnext1 = fnext2 - ((*pk) * gcurr1); - gnext = (fnext1 * (*pk++)) + gcurr1; - /* Output samples for last taps */ - acc += (gnext * (*pv++)); - *px2++ = gnext; - fnext2 = fnext1; - - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (fnext2 * (*pv)); - - *px2++ = fnext2; - - /* write out into pDst */ - *pDst++ = acc; - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1U; - - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - - } - - /* Calculate remaining number of copies */ - tapCnt = (numStages) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } -} - -#else - -void arm_iir_lattice_f32( - const arm_iir_lattice_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - float32_t fcurr, fnext = 0, gcurr, gnext; /* Temporary variables for lattice stages */ - float32_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* temporary variables for counts */ - float32_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - float32_t *pState; /* State pointer */ - float32_t *pStateCurnt; /* State current pointer */ - - - /* Run the below code for Cortex-M0 */ - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0.0f; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for numStages */ - tapCnt = numStages; - - while (tapCnt > 0U) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = fcurr - ((*pk) * gcurr); - gnext = (fnext * (*pk++)) + gcurr; - - /* Output samples for last taps */ - acc += (gnext * (*pv++)); - *px2++ = gnext; - fcurr = fnext; - - /* Decrementing loop counter */ - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (fnext * (*pv)); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = acc; - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1U; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages; - - /* Copy the data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -} - -#endif /* #if defined (ARM_MATH_DSP) */ - - -/** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_f32.c deleted file mode 100644 index 530c7ff..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_f32.c +++ /dev/null @@ -1,79 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_init_f32.c - * Description: Floating-point IIR lattice filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Initialization function for the floating-point IIR lattice filter. - * @param[in] *S points to an instance of the floating-point IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_iir_lattice_init_f32( - arm_iir_lattice_instance_f32 * S, - uint16_t numStages, - float32_t * pkCoeffs, - float32_t * pvCoeffs, - float32_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - - /** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q15.c deleted file mode 100644 index 9b991f8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q15.c +++ /dev/null @@ -1,79 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_init_q15.c - * Description: Q15 IIR lattice filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q15 IIR lattice filter. - * @param[in] *S points to an instance of the Q15 IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process per call. - * @return none. - */ - -void arm_iir_lattice_init_q15( - arm_iir_lattice_instance_q15 * S, - uint16_t numStages, - q15_t * pkCoeffs, - q15_t * pvCoeffs, - q15_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - -/** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q31.c deleted file mode 100644 index 1543206..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_init_q31.c +++ /dev/null @@ -1,79 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_init_q31.c - * Description: Initialization function for the Q31 IIR lattice filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - - /** - * @brief Initialization function for the Q31 IIR lattice filter. - * @param[in] *S points to an instance of the Q31 IIR lattice structure. - * @param[in] numStages number of stages in the filter. - * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. - * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. - * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_iir_lattice_init_q31( - arm_iir_lattice_instance_q31 * S, - uint16_t numStages, - q31_t * pkCoeffs, - q31_t * pvCoeffs, - q31_t * pState, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numStages = numStages; - - /* Assign reflection coefficient pointer */ - S->pkCoeffs = pkCoeffs; - - /* Assign ladder coefficient pointer */ - S->pvCoeffs = pvCoeffs; - - /* Clear state buffer and size is always blockSize + numStages */ - memset(pState, 0, (numStages + blockSize) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - -} - -/** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q15.c deleted file mode 100644 index 8f68068..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q15.c +++ /dev/null @@ -1,452 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_q15.c - * Description: Q15 IIR lattice filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the Q15 IIR lattice filter. - * @param[in] *S points to an instance of the Q15 IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - */ - -void arm_iir_lattice_q15( - const arm_iir_lattice_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t fcurr, fnext, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - q15_t gnext1, gnext2; /* Temporary variables for lattice stages */ - uint32_t stgCnt; /* Temporary variables for counts */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q15_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q15_t *pState; /* State pointer */ - q15_t *pStateCurnt; /* State current pointer */ - q15_t out; /* Temporary variable for output */ - q31_t v; /* Temporary variable for ladder coefficient */ -#ifdef UNALIGNED_SUPPORT_DISABLE - q15_t v1, v2; -#endif - - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for first tap */ - gcurr = *px1++; - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* write gN(n) into state for next sample processing */ - *px2++ = (q15_t) gnext; - /* y(n) += gN(n) * vN */ - acc += (q31_t) ((gnext * (*pv++))); - - - /* Update f values for next coefficient processing */ - fcurr = fnext; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages - 1U) >> 2; - - while (tapCnt > 0U) - { - - /* Process sample for 2nd, 6th ...taps */ - /* Read gN-2(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 2nd, 6th .. taps */ - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext1 = (q15_t) __SSAT(gnext, 16); - /* write gN-1(n) into state */ - *px2++ = (q15_t) gnext1; - - - /* Process sample for 3nd, 7th ...taps */ - /* Read gN-3(n-1) from state */ - gcurr = *px1++; - /* Process sample for 3rd, 7th .. taps */ - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fcurr = fnext - (((q31_t) gcurr * (*pk)) >> 15); - fcurr = __SSAT(fcurr, 16); - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = (((q31_t) fcurr * (*pk++)) >> 15) + gcurr; - gnext2 = (q15_t) __SSAT(gnext, 16); - /* write gN-2(n) into state */ - *px2++ = (q15_t) gnext2; - - /* Read vN-1 and vN-2 at a time */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - v = *__SIMD32(pv)++; - -#else - - v1 = *pv++; - v2 = *pv++; - -#ifndef ARM_MATH_BIG_ENDIAN - - v = __PKHBT(v1, v2, 16); - -#else - - v = __PKHBT(v2, v1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - /* Pack gN-1(n) and gN-2(n) */ - -#ifndef ARM_MATH_BIG_ENDIAN - - gnext = __PKHBT(gnext1, gnext2, 16); - -#else - - gnext = __PKHBT(gnext2, gnext1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* y(n) += gN-1(n) * vN-1 */ - /* process for gN-5(n) * vN-5, gN-9(n) * vN-9 ... */ - /* y(n) += gN-2(n) * vN-2 */ - /* process for gN-6(n) * vN-6, gN-10(n) * vN-10 ... */ - acc = __SMLALD(gnext, v, acc); - - - /* Process sample for 4th, 8th ...taps */ - /* Read gN-4(n-1) from state */ - gcurr = *px1++; - /* Process sample for 4th, 8th .. taps */ - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN-3(n) = kN-3 * fN-1(n) + gN-1(n-1) */ - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext1 = (q15_t) __SSAT(gnext, 16); - /* write gN-3(n) for the next sample process */ - *px2++ = (q15_t) gnext1; - - - /* Process sample for 5th, 9th ...taps */ - /* Read gN-5(n-1) from state */ - gcurr = *px1++; - /* Process sample for 5th, 9th .. taps */ - /* fN-5(n) = fN-4(n) - kN-4 * gN-5(n-1) */ - fcurr = fnext - (((q31_t) gcurr * (*pk)) >> 15); - fcurr = __SSAT(fcurr, 16); - /* gN-4(n) = kN-4 * fN-5(n) + gN-5(n-1) */ - gnext = (((q31_t) fcurr * (*pk++)) >> 15) + gcurr; - gnext2 = (q15_t) __SSAT(gnext, 16); - /* write gN-4(n) for the next sample process */ - *px2++ = (q15_t) gnext2; - - /* Read vN-3 and vN-4 at a time */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - v = *__SIMD32(pv)++; - -#else - - v1 = *pv++; - v2 = *pv++; - -#ifndef ARM_MATH_BIG_ENDIAN - - v = __PKHBT(v1, v2, 16); - -#else - - v = __PKHBT(v2, v1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - - /* Pack gN-3(n) and gN-4(n) */ -#ifndef ARM_MATH_BIG_ENDIAN - - gnext = __PKHBT(gnext1, gnext2, 16); - -#else - - gnext = __PKHBT(gnext2, gnext1, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* y(n) += gN-4(n) * vN-4 */ - /* process for gN-8(n) * vN-8, gN-12(n) * vN-12 ... */ - /* y(n) += gN-3(n) * vN-3 */ - /* process for gN-7(n) * vN-7, gN-11(n) * vN-11 ... */ - acc = __SMLALD(gnext, v, acc); - - tapCnt--; - - } - - fnext = fcurr; - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages - 1U) % 0x4U; - - while (tapCnt > 0U) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = fcurr - (((q31_t) gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - gnext = (((q31_t) fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* Output samples for last taps */ - acc += (q31_t) (((q31_t) gnext * (*pv++))); - *px2++ = (q15_t) gnext; - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q31_t) (((q31_t) fnext * (*pv++))); - - out = (q15_t) __SSAT(acc >> 15, 16); - *px2++ = (q15_t) fnext; - - /* write out into pDst */ - *pDst++ = out; - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1U; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - stgCnt = (numStages >> 2U); - - /* copy data */ - while (stgCnt > 0U) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - stgCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - stgCnt = (numStages) % 0x4U; - - /* copy data */ - while (stgCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - stgCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t fcurr, fnext = 0, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - uint32_t stgCnt; /* Temporary variables for counts */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q15_t *px1, *px2, *pk, *pv; /* temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q15_t *pState; /* State pointer */ - q15_t *pStateCurnt; /* State current pointer */ - q15_t out; /* Temporary variable for output */ - - - blkCnt = blockSize; - - pState = &S->pState[0]; - - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - tapCnt = numStages; - - while (tapCnt > 0U) - { - gcurr = *px1++; - /* Process sample */ - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = fcurr - ((gcurr * (*pk)) >> 15); - fnext = __SSAT(fnext, 16); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = ((fnext * (*pk++)) >> 15) + gcurr; - gnext = __SSAT(gnext, 16); - /* Output samples */ - /* y(n) += gN(n) * vN */ - acc += (q31_t) ((gnext * (*pv++))); - /* write gN(n) into state for next sample processing */ - *px2++ = (q15_t) gnext; - /* Update f values for next coefficient processing */ - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q31_t) ((fnext * (*pv++))); - - out = (q15_t) __SSAT(acc >> 15, 16); - *px2++ = (q15_t) fnext; - - /* write out into pDst */ - *pDst++ = out; - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1U; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - stgCnt = numStages; - - /* copy data */ - while (stgCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - stgCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - - - -/** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q31.c deleted file mode 100644 index a14dd7a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_iir_lattice_q31.c +++ /dev/null @@ -1,338 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_iir_lattice_q31.c - * Description: Q31 IIR lattice filter processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup IIR_Lattice - * @{ - */ - -/** - * @brief Processing function for the Q31 IIR lattice filter. - * @param[in] *S points to an instance of the Q31 IIR lattice structure. - * @param[in] *pSrc points to the block of input data. - * @param[out] *pDst points to the block of output data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clip. - * In order to avoid overflows completely the input signal must be scaled down by 2*log2(numStages) bits. - * After all multiply-accumulates are performed, the 2.62 accumulator is saturated to 1.32 format and then truncated to 1.31 format. - */ - -void arm_iir_lattice_q31( - const arm_iir_lattice_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q31_t fcurr, fnext = 0, gcurr = 0, gnext; /* Temporary variables for lattice stages */ - q63_t acc; /* Accumlator */ - uint32_t blkCnt, tapCnt; /* Temporary variables for counts */ - q31_t *px1, *px2, *pk, *pv; /* Temporary pointers for state and coef */ - uint32_t numStages = S->numStages; /* number of stages */ - q31_t *pState; /* State pointer */ - q31_t *pStateCurnt; /* State current pointer */ - - blkCnt = blockSize; - - pState = &S->pState[0]; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - - /* Process sample for first tap */ - gcurr = *px1++; - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* write gN-1(n-1) into state for next sample processing */ - *px2++ = gnext; - /* y(n) += gN(n) * vN */ - acc += ((q63_t) gnext * *pv++); - - /* Update f values for next coefficient processing */ - fcurr = fnext; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = (numStages - 1U) >> 2; - - while (tapCnt > 0U) - { - - /* Process sample for 2nd, 6th .. taps */ - /* Read gN-2(n-1) from state buffer */ - gcurr = *px1++; - /* fN-2(n) = fN-1(n) - kN-1 * gN-2(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-1(n) = kN-1 * fN-2(n) + gN-2(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* y(n) += gN-1(n) * vN-1 */ - /* process for gN-5(n) * vN-5, gN-9(n) * vN-9 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-1(n) into state for next sample processing */ - *px2++ = gnext; - - /* Process sample for 3nd, 7th ...taps */ - /* Read gN-3(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 3rd, 7th .. taps */ - /* fN-3(n) = fN-2(n) - kN-2 * gN-3(n-1) */ - fcurr = __QSUB(fnext, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-2(n) = kN-2 * fN-3(n) + gN-3(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fcurr * (*pk++)) >> 31)); - /* y(n) += gN-2(n) * vN-2 */ - /* process for gN-6(n) * vN-6, gN-10(n) * vN-10 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-2(n) into state for next sample processing */ - *px2++ = gnext; - - - /* Process sample for 4th, 8th ...taps */ - /* Read gN-4(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 4th, 8th .. taps */ - /* fN-4(n) = fN-3(n) - kN-3 * gN-4(n-1) */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-3(n) = kN-3 * fN-4(n) + gN-4(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* y(n) += gN-3(n) * vN-3 */ - /* process for gN-7(n) * vN-7, gN-11(n) * vN-11 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-3(n) into state for next sample processing */ - *px2++ = gnext; - - - /* Process sample for 5th, 9th ...taps */ - /* Read gN-5(n-1) from state buffer */ - gcurr = *px1++; - /* Process sample for 5th, 9th .. taps */ - /* fN-5(n) = fN-4(n) - kN-4 * gN-1(n-1) */ - fcurr = __QSUB(fnext, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - /* gN-4(n) = kN-4 * fN-5(n) + gN-5(n-1) */ - gnext = __QADD(gcurr, (q31_t) (((q63_t) fcurr * (*pk++)) >> 31)); - /* y(n) += gN-4(n) * vN-4 */ - /* process for gN-8(n) * vN-8, gN-12(n) * vN-12 ... */ - acc += ((q63_t) gnext * *pv++); - /* write gN-4(n) into state for next sample processing */ - *px2++ = gnext; - - tapCnt--; - - } - - fnext = fcurr; - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = (numStages - 1U) % 0x4U; - - while (tapCnt > 0U) - { - gcurr = *px1++; - /* Process sample for last taps */ - fnext = __QSUB(fcurr, (q31_t) (((q63_t) gcurr * (*pk)) >> 31)); - gnext = __QADD(gcurr, (q31_t) (((q63_t) fnext * (*pk++)) >> 31)); - /* Output samples for last taps */ - acc += ((q63_t) gnext * *pv++); - *px2++ = gnext; - fcurr = fnext; - - tapCnt--; - - } - - /* y(n) += g0(n) * v0 */ - acc += (q63_t) fnext *( - *pv++); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = (q31_t) (acc >> 31U); - - /* Advance the state pointer by 4 to process the next group of 4 samples */ - pState = pState + 1U; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - - } - - /* Calculate remaining number of copies */ - tapCnt = (numStages) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - }; - -#else - - /* Run the below code for Cortex-M0 */ - /* Sample processing */ - while (blkCnt > 0U) - { - /* Read Sample from input buffer */ - /* fN(n) = x(n) */ - fcurr = *pSrc++; - - /* Initialize state read pointer */ - px1 = pState; - /* Initialize state write pointer */ - px2 = pState; - /* Set accumulator to zero */ - acc = 0; - /* Initialize Ladder coeff pointer */ - pv = &S->pvCoeffs[0]; - /* Initialize Reflection coeff pointer */ - pk = &S->pkCoeffs[0]; - - tapCnt = numStages; - - while (tapCnt > 0U) - { - gcurr = *px1++; - /* Process sample */ - /* fN-1(n) = fN(n) - kN * gN-1(n-1) */ - fnext = - clip_q63_to_q31(((q63_t) fcurr - - ((q31_t) (((q63_t) gcurr * (*pk)) >> 31)))); - /* gN(n) = kN * fN-1(n) + gN-1(n-1) */ - gnext = - clip_q63_to_q31(((q63_t) gcurr + - ((q31_t) (((q63_t) fnext * (*pk++)) >> 31)))); - /* Output samples */ - /* y(n) += gN(n) * vN */ - acc += ((q63_t) gnext * *pv++); - /* write gN-1(n-1) into state for next sample processing */ - *px2++ = gnext; - /* Update f values for next coefficient processing */ - fcurr = fnext; - - tapCnt--; - } - - /* y(n) += g0(n) * v0 */ - acc += (q63_t) fnext *( - *pv++); - - *px2++ = fnext; - - /* write out into pDst */ - *pDst++ = (q31_t) (acc >> 31U); - - /* Advance the state pointer by 1 to process the next group of samples */ - pState = pState + 1U; - blkCnt--; - - } - - /* Processing is complete. Now copy last S->numStages samples to start of the buffer - for the preperation of next frame process */ - - /* Points to the start of the state buffer */ - pStateCurnt = &S->pState[0]; - pState = &S->pState[blockSize]; - - tapCnt = numStages; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - - - -/** - * @} end of IIR_Lattice group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_f32.c deleted file mode 100644 index e5728b4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_f32.c +++ /dev/null @@ -1,430 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_f32.c - * Description: Processing function for the floating-point LMS filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup LMS Least Mean Square (LMS) Filters - * - * LMS filters are a class of adaptive filters that are able to "learn" an unknown transfer functions. - * LMS filters use a gradient descent method in which the filter coefficients are updated based on the instantaneous error signal. - * Adaptive filters are often used in communication systems, equalizers, and noise removal. - * The CMSIS DSP Library contains LMS filter functions that operate on Q15, Q31, and floating-point data types. - * The library also contains normalized LMS filters in which the filter coefficient adaptation is indepedent of the level of the input signal. - * - * An LMS filter consists of two components as shown below. - * The first component is a standard transversal or FIR filter. - * The second component is a coefficient update mechanism. - * The LMS filter has two input signals. - * The "input" feeds the FIR filter while the "reference input" corresponds to the desired output of the FIR filter. - * That is, the FIR filter coefficients are updated so that the output of the FIR filter matches the reference input. - * The filter coefficient update mechanism is based on the difference between the FIR filter output and the reference input. - * This "error signal" tends towards zero as the filter adapts. - * The LMS processing functions accept the input and reference input signals and generate the filter output and error signal. - * \image html LMS.gif "Internal structure of the Least Mean Square filter" - * - * The functions operate on blocks of data and each call to the function processes - * blockSize samples through the filter. - * pSrc points to input signal, pRef points to reference signal, - * pOut points to output signal and pErr points to error signal. - * All arrays contain blockSize values. - * - * The functions operate on a block-by-block basis. - * Internally, the filter coefficients b[n] are updated on a sample-by-sample basis. - * The convergence of the LMS filter is slower compared to the normalized LMS algorithm. - * - * \par Algorithm: - * The output signal y[n] is computed by a standard FIR filter: - *
- *     y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]
- * 
- * - * \par - * The error signal equals the difference between the reference signal d[n] and the filter output: - *
- *     e[n] = d[n] - y[n].
- * 
- * - * \par - * After each sample of the error signal is computed, the filter coefficients b[k] are updated on a sample-by-sample basis: - *
- *     b[k] = b[k] + e[n] * mu * x[n-k],  for k=0, 1, ..., numTaps-1
- * 
- * where mu is the step size and controls the rate of coefficient convergence. - *\par - * In the APIs, pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}
- * 
- * \par - * Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1 samples. - * The increased state buffer length allows circular addressing, which is traditionally used in FIR filters, - * to be avoided and yields a significant speed improvement. - * The state variables are updated after each block of data is processed. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter and - * coefficient and state arrays cannot be shared among instances. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numTaps, pCoeffs, mu, postShift (not for f32), pState. Also set all of the values in pState to zero. - * - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Set the values in the state buffer to zeros before static initialization. - * The code below statically initializes each of the 3 different data type filter instance structures - *
- *    arm_lms_instance_f32 S = {numTaps, pState, pCoeffs, mu};
- *    arm_lms_instance_q31 S = {numTaps, pState, pCoeffs, mu, postShift};
- *    arm_lms_instance_q15 S = {numTaps, pState, pCoeffs, mu, postShift};
- * 
- * where numTaps is the number of filter coefficients in the filter; pState is the address of the state buffer; - * pCoeffs is the address of the coefficient buffer; mu is the step size parameter; and postShift is the shift applied to coefficients. - * - * \par Fixed-Point Behavior: - * Care must be taken when using the Q15 and Q31 versions of the LMS filter. - * The following issues must be considered: - * - Scaling of coefficients - * - Overflow and saturation - * - * \par Scaling of Coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift. - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * This essentially scales the filter coefficients by 2^postShift and - * allows the filter coefficients to exceed the range [+1 -1). - * The value of postShift is set by the user based on the expected gain through the system being modeled. - * - * \par Overflow and Saturation: - * Overflow and saturation behavior of the fixed-point Q15 and Q31 versions are - * described separately as part of the function specific documentation below. - */ - -/** - * @addtogroup LMS - * @{ - */ - -/** - * @details - * This function operates on floating-point data types. - * - * @brief Processing function for floating-point LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_lms_f32( - const arm_lms_instance_f32 * S, - float32_t * pSrc, - float32_t * pRef, - float32_t * pOut, - float32_t * pErr, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - float32_t sum, e, d; /* accumulator, error, reference data sample */ - float32_t w = 0.0f; /* weight factor */ - - e = 0.0f; - d = 0.0f; - - /* S->pState points to state array which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - blkCnt = blockSize; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator, store in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for the updating filter coefficients */ - w = e * mu; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1U) samples copy */ - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result is stored in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Weighting factor for the LMS version */ - w = e * mu; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb = *pb + (w * (*px++)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - * start of the state buffer. This prepares the state buffer for the - * next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1U) samples */ - tapCnt = (numTaps - 1U); - - /* Copy the data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_f32.c deleted file mode 100644 index 9fc87f1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_f32.c +++ /dev/null @@ -1,83 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_init_f32.c - * Description: Floating-point LMS filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Initialization function for floating-point LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to the coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -/** - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, where blockSize is the number of input samples processed by each call to arm_lms_f32(). - */ - -void arm_lms_init_f32( - arm_lms_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - float32_t mu, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps */ - memset(pState, 0, (numTaps + (blockSize - 1)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q15.c deleted file mode 100644 index 3a13f26..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q15.c +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_init_q15.c - * Description: Q15 LMS filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - -/** -* @brief Initialization function for the Q15 LMS filter. -* @param[in] *S points to an instance of the Q15 LMS filter structure. -* @param[in] numTaps number of filter coefficients. -* @param[in] *pCoeffs points to the coefficient buffer. -* @param[in] *pState points to the state buffer. -* @param[in] mu step size that controls filter coefficient updates. -* @param[in] blockSize number of samples to process. -* @param[in] postShift bit shift applied to coefficients. -* @return none. -* -* \par Description: -* pCoeffs points to the array of filter coefficients stored in time reversed order: -*
-*    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
-* 
-* The initial filter coefficients serve as a starting point for the adaptive filter. -* pState points to the array of state variables and size of array is -* numTaps+blockSize-1 samples, where blockSize is the number of -* input samples processed by each call to arm_lms_q15(). -*/ - -void arm_lms_init_q15( - arm_lms_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - q15_t mu, - uint32_t blockSize, - uint32_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q15_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Assign postShift value to be applied */ - S->postShift = postShift; - -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q31.c deleted file mode 100644 index 5859c84..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_init_q31.c +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_init_q31.c - * Description: Q31 LMS filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Initialization function for Q31 LMS filter. - * @param[in] *S points to an instance of the Q31 LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to - * arm_lms_q31(). - */ - -void arm_lms_init_q31( - arm_lms_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - q31_t mu, - uint32_t blockSize, - uint32_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, ((uint32_t) numTaps + (blockSize - 1U)) * sizeof(q31_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Assign postShift value to be applied */ - S->postShift = postShift; - -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_f32.c deleted file mode 100644 index 3fdc5a1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_f32.c +++ /dev/null @@ -1,454 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_f32.c - * Description: Processing function for the floating-point Normalised LMS - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @defgroup LMS_NORM Normalized LMS Filters - * - * This set of functions implements a commonly used adaptive filter. - * It is related to the Least Mean Square (LMS) adaptive filter and includes an additional normalization - * factor which increases the adaptation rate of the filter. - * The CMSIS DSP Library contains normalized LMS filter functions that operate on Q15, Q31, and floating-point data types. - * - * A normalized least mean square (NLMS) filter consists of two components as shown below. - * The first component is a standard transversal or FIR filter. - * The second component is a coefficient update mechanism. - * The NLMS filter has two input signals. - * The "input" feeds the FIR filter while the "reference input" corresponds to the desired output of the FIR filter. - * That is, the FIR filter coefficients are updated so that the output of the FIR filter matches the reference input. - * The filter coefficient update mechanism is based on the difference between the FIR filter output and the reference input. - * This "error signal" tends towards zero as the filter adapts. - * The NLMS processing functions accept the input and reference input signals and generate the filter output and error signal. - * \image html LMS.gif "Internal structure of the NLMS adaptive filter" - * - * The functions operate on blocks of data and each call to the function processes - * blockSize samples through the filter. - * pSrc points to input signal, pRef points to reference signal, - * pOut points to output signal and pErr points to error signal. - * All arrays contain blockSize values. - * - * The functions operate on a block-by-block basis. - * Internally, the filter coefficients b[n] are updated on a sample-by-sample basis. - * The convergence of the LMS filter is slower compared to the normalized LMS algorithm. - * - * \par Algorithm: - * The output signal y[n] is computed by a standard FIR filter: - *
- *     y[n] = b[0] * x[n] + b[1] * x[n-1] + b[2] * x[n-2] + ...+ b[numTaps-1] * x[n-numTaps+1]
- * 
- * - * \par - * The error signal equals the difference between the reference signal d[n] and the filter output: - *
- *     e[n] = d[n] - y[n].
- * 
- * - * \par - * After each sample of the error signal is computed the instanteous energy of the filter state variables is calculated: - *
- *    E = x[n]^2 + x[n-1]^2 + ... + x[n-numTaps+1]^2.
- * 
- * The filter coefficients b[k] are then updated on a sample-by-sample basis: - *
- *     b[k] = b[k] + e[n] * (mu/E) * x[n-k],  for k=0, 1, ..., numTaps-1
- * 
- * where mu is the step size and controls the rate of coefficient convergence. - *\par - * In the APIs, pCoeffs points to a coefficient array of size numTaps. - * Coefficients are stored in time reversed order. - * \par - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * \par - * pState points to a state array of size numTaps + blockSize - 1. - * Samples in the state buffer are stored in the order: - * \par - *
- *    {x[n-numTaps+1], x[n-numTaps], x[n-numTaps-1], x[n-numTaps-2]....x[0], x[1], ..., x[blockSize-1]}
- * 
- * \par - * Note that the length of the state buffer exceeds the length of the coefficient array by blockSize-1 samples. - * The increased state buffer length allows circular addressing, which is traditionally used in FIR filters, - * to be avoided and yields a significant speed improvement. - * The state variables are updated after each block of data is processed. - * \par Instance Structure - * The coefficients and state variables for a filter are stored together in an instance data structure. - * A separate instance structure must be defined for each filter and - * coefficient and state arrays cannot be shared among instances. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Zeros out the values in the state buffer. - * To do this manually without calling the init function, assign the follow subfields of the instance structure: - * numTaps, pCoeffs, mu, energy, x0, pState. Also set all of the values in pState to zero. - * For Q7, Q15, and Q31 the following fields must also be initialized; - * recipTable, postShift - * - * \par - * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. - * \par Fixed-Point Behavior: - * Care must be taken when using the Q15 and Q31 versions of the normalised LMS filter. - * The following issues must be considered: - * - Scaling of coefficients - * - Overflow and saturation - * - * \par Scaling of Coefficients: - * Filter coefficients are represented as fractional values and - * coefficients are restricted to lie in the range [-1 +1). - * The fixed-point functions have an additional scaling parameter postShift. - * At the output of the filter's accumulator is a shift register which shifts the result by postShift bits. - * This essentially scales the filter coefficients by 2^postShift and - * allows the filter coefficients to exceed the range [+1 -1). - * The value of postShift is set by the user based on the expected gain through the system being modeled. - * - * \par Overflow and Saturation: - * Overflow and saturation behavior of the fixed-point Q15 and Q31 versions are - * described separately as part of the function specific documentation below. - */ - - -/** - * @addtogroup LMS_NORM - * @{ - */ - - - /** - * @brief Processing function for floating-point normalized LMS filter. - * @param[in] *S points to an instance of the floating-point normalized LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - */ - -void arm_lms_norm_f32( - arm_lms_norm_instance_f32 * S, - float32_t * pSrc, - float32_t * pRef, - float32_t * pOut, - float32_t * pErr, - uint32_t blockSize) -{ - float32_t *pState = S->pState; /* State pointer */ - float32_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - float32_t *pStateCurnt; /* Points to the current sample of the state */ - float32_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - float32_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - float32_t energy; /* Energy of the input */ - float32_t sum, e, d; /* accumulator, error, reference data sample */ - float32_t w, x0, in; /* weight factor, temporary variable to hold input sample and state */ - - /* Initializations of error, difference, Coefficient update */ - e = 0.0f; - d = 0.0f; - w = 0.0f; - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= x0 * x0; - energy += in * in; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator, store in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for updating filter coefficients */ - /* epsilon value 0.000000119209289f */ - w = (e * mu) / (energy + 0.000000119209289f); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - *pb += w * (*px++); - pb++; - - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - S->energy = energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1U)/4 samples copy */ - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= x0 * x0; - energy += in * in; - - /* Set the accumulator to zero */ - sum = 0.0f; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - sum += (*px++) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* The result in the accumulator is stored in the destination buffer. */ - *pOut++ = sum; - - /* Compute and store error */ - d = (float32_t) (*pRef++); - e = d - sum; - *pErr++ = e; - - /* Calculation of Weighting factor for updating filter coefficients */ - /* epsilon value 0.000000119209289f */ - w = (e * mu) / (energy + 0.000000119209289f); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCcoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - *pb += w * (*px++); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - S->energy = energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1U) samples */ - tapCnt = (numTaps - 1U); - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_f32.c deleted file mode 100644 index 820c5c8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_f32.c +++ /dev/null @@ -1,93 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_init_f32.c - * Description: Floating-point NLMS filter initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for floating-point normalized LMS filter. - * @param[in] *S points to an instance of the floating-point LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Description: - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to arm_lms_norm_f32(). - */ - -void arm_lms_norm_init_f32( - arm_lms_norm_instance_f32 * S, - uint16_t numTaps, - float32_t * pCoeffs, - float32_t * pState, - float32_t mu, - uint32_t blockSize) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(float32_t)); - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialise Energy to zero */ - S->energy = 0.0f; - - /* Initialise x0 to zero */ - S->x0 = 0.0f; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q15.c deleted file mode 100644 index 4bedbd9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q15.c +++ /dev/null @@ -1,100 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_init_q15.c - * Description: Q15 NLMS initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for Q15 normalized LMS filter. - * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to the array of state variables and size of array is - * numTaps+blockSize-1 samples, where blockSize is the number of input samples processed - * by each call to arm_lms_norm_q15(). - */ - -void arm_lms_norm_init_q15( - arm_lms_norm_instance_q15 * S, - uint16_t numTaps, - q15_t * pCoeffs, - q15_t * pState, - q15_t mu, - uint32_t blockSize, - uint8_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q15_t)); - - /* Assign post Shift value applied to coefficients */ - S->postShift = postShift; - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialize reciprocal pointer table */ - S->recipTable = (q15_t *) armRecipTableQ15; - - /* Initialise Energy to zero */ - S->energy = 0; - - /* Initialise x0 to zero */ - S->x0 = 0; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q31.c deleted file mode 100644 index a2402d1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_init_q31.c +++ /dev/null @@ -1,99 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_init_q31.c - * Description: Q31 NLMS initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @addtogroup LMS_NORM - * @{ - */ - - /** - * @brief Initialization function for Q31 normalized LMS filter. - * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. - * @param[in] numTaps number of filter coefficients. - * @param[in] *pCoeffs points to coefficient buffer. - * @param[in] *pState points to state buffer. - * @param[in] mu step size that controls filter coefficient updates. - * @param[in] blockSize number of samples to process. - * @param[in] postShift bit shift applied to coefficients. - * @return none. - * - * Description: - * \par - * pCoeffs points to the array of filter coefficients stored in time reversed order: - *
- *    {b[numTaps-1], b[numTaps-2], b[N-2], ..., b[1], b[0]}
- * 
- * The initial filter coefficients serve as a starting point for the adaptive filter. - * pState points to an array of length numTaps+blockSize-1 samples, - * where blockSize is the number of input samples processed by each call to arm_lms_norm_q31(). - */ - -void arm_lms_norm_init_q31( - arm_lms_norm_instance_q31 * S, - uint16_t numTaps, - q31_t * pCoeffs, - q31_t * pState, - q31_t mu, - uint32_t blockSize, - uint8_t postShift) -{ - /* Assign filter taps */ - S->numTaps = numTaps; - - /* Assign coefficient pointer */ - S->pCoeffs = pCoeffs; - - /* Clear state buffer and size is always blockSize + numTaps - 1 */ - memset(pState, 0, (numTaps + (blockSize - 1U)) * sizeof(q31_t)); - - /* Assign post Shift value applied to coefficients */ - S->postShift = postShift; - - /* Assign state pointer */ - S->pState = pState; - - /* Assign Step size value */ - S->mu = mu; - - /* Initialize reciprocal pointer table */ - S->recipTable = (q31_t *) armRecipTableQ31; - - /* Initialise Energy to zero */ - S->energy = 0; - - /* Initialise x0 to zero */ - S->x0 = 0; - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q15.c deleted file mode 100644 index 70012ea..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q15.c +++ /dev/null @@ -1,428 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_q15.c - * Description: Q15 NLMS filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - -/** -* @brief Processing function for Q15 normalized LMS filter. -* @param[in] *S points to an instance of the Q15 normalized LMS filter structure. -* @param[in] *pSrc points to the block of input data. -* @param[in] *pRef points to the block of reference data. -* @param[out] *pOut points to the block of output data. -* @param[out] *pErr points to the block of error data. -* @param[in] blockSize number of samples to process. -* @return none. -* -* Scaling and Overflow Behavior: -* \par -* The function is implemented using a 64-bit internal accumulator. -* Both coefficients and state variables are represented in 1.15 format and -* multiplications yield a 2.30 result. The 2.30 intermediate results are -* accumulated in a 64-bit accumulator in 34.30 format. -* There is no risk of internal overflow with this approach and the full -* precision of intermediate multiplications is preserved. After all additions -* have been performed, the accumulator is truncated to 34.15 format by -* discarding low 15 bits. Lastly, the accumulator is saturated to yield a -* result in 1.15 format. -* -* \par -* In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. -* - */ - -void arm_lms_norm_q15( - arm_lms_norm_instance_q15 * S, - q15_t * pSrc, - q15_t * pRef, - q15_t * pOut, - q15_t * pErr, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - q15_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q31_t energy; /* Energy of the input */ - q63_t acc; /* Accumulator */ - q15_t e = 0, d = 0; /* error, reference data sample */ - q15_t w = 0, in; /* weight factor and state */ - q15_t x0; /* temporary variable to hold input sample */ - //uint32_t shift = (uint32_t) S->postShift + 1U; /* Shift to be applied to the output */ - q15_t errorXmu, oneByEnergy; /* Temporary variables to store error and mu product and reciprocal of energy */ - q15_t postShift; /* Post shift to be applied to weight after reciprocal calculation */ - q31_t coef; /* Teporary variable for coefficient */ - q31_t acc_l, acc_h; - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - int32_t uShift = (32 - lShift); - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= (((q31_t) x0 * (x0)) >> 15); - energy += (((q31_t) in * (in)) >> 15); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - - /* Perform the multiply-accumulate */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - -#else - - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - acc += (((q31_t) * px++ * (*pb++))); - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += (((q31_t) * px++ * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16U); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q15_t) acc; - *pErr++ = e; - - /* Calculation of 1/energy */ - postShift = arm_recip_q15((q15_t) energy + DELTA_Q15, - &oneByEnergy, S->recipTable); - - /* Calculation of e * mu value */ - errorXmu = (q15_t) (((q31_t) e * mu) >> 15); - - /* Calculation of (e * mu) * (1/energy) value */ - acc = (((q31_t) errorXmu * oneByEnergy) >> (15 - postShift)); - - /* Weighting factor for the normalized version */ - w = (q15_t) __SSAT((q31_t) acc, 16); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q15_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1U) >> 2; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - -#else - - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - -#endif - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy -= (((q31_t) x0 * (x0)) >> 15); - energy += (((q31_t) in * (in)) >> 15); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += (((q31_t) * px++ * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16U); - - /* Converting the result to 1.15 format */ - //acc = __SSAT((acc >> (16U - shift)), 16U); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q15_t) acc; - *pErr++ = e; - - /* Calculation of 1/energy */ - postShift = arm_recip_q15((q15_t) energy + DELTA_Q15, - &oneByEnergy, S->recipTable); - - /* Calculation of e * mu value */ - errorXmu = (q15_t) (((q31_t) e * mu) >> 15); - - /* Calculation of (e * mu) * (1/energy) value */ - acc = (((q31_t) errorXmu * oneByEnergy) >> (15 - postShift)); - - /* Weighting factor for the normalized version */ - w = (q15_t) __SSAT((q31_t) acc, 16); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = *pb + (((q31_t) w * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q15_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* copy (numTaps - 1U) data */ - tapCnt = (numTaps - 1U); - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q31.c deleted file mode 100644 index 9711738..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_norm_q31.c +++ /dev/null @@ -1,419 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_norm_q31.c - * Description: Processing function for the Q31 NLMS filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS_NORM - * @{ - */ - -/** -* @brief Processing function for Q31 normalized LMS filter. -* @param[in] *S points to an instance of the Q31 normalized LMS filter structure. -* @param[in] *pSrc points to the block of input data. -* @param[in] *pRef points to the block of reference data. -* @param[out] *pOut points to the block of output data. -* @param[out] *pErr points to the block of error data. -* @param[in] blockSize number of samples to process. -* @return none. -* -* Scaling and Overflow Behavior: -* \par -* The function is implemented using an internal 64-bit accumulator. -* The accumulator has a 2.62 format and maintains full precision of the intermediate -* multiplication results but provides only a single guard bit. -* Thus, if the accumulator result overflows it wraps around rather than clip. -* In order to avoid overflows completely the input signal must be scaled down by -* log2(numTaps) bits. The reference signal should not be scaled down. -* After all multiply-accumulates are performed, the 2.62 accumulator is shifted -* and saturated to 1.31 format to yield the final result. -* The output signal and error signal are in 1.31 format. -* -* \par -* In this filter, filter coefficients are updated for each sample and the -* updation of filter cofficients are saturted. -* -*/ - -void arm_lms_norm_q31( - arm_lms_norm_instance_q31 * S, - q31_t * pSrc, - q31_t * pRef, - q31_t * pOut, - q31_t * pErr, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t *px, *pb; /* Temporary pointers for state and coefficient buffers */ - q31_t mu = S->mu; /* Adaptive factor */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t energy; /* Energy of the input */ - q63_t acc; /* Accumulator */ - q31_t e = 0, d = 0; /* error, reference data sample */ - q31_t w = 0, in; /* weight factor and state */ - q31_t x0; /* temporary variable to hold input sample */ -// uint32_t shift = 32U - ((uint32_t) S->postShift + 1U); /* Shift to be applied to the output */ - q31_t errorXmu, oneByEnergy; /* Temporary variables to store error and mu product and reciprocal of energy */ - q31_t postShift; /* Post shift to be applied to weight after reciprocal calculation */ - q31_t coef; /* Temporary variable for coef */ - q31_t acc_l, acc_h; /* temporary input */ - uint32_t uShift = ((uint32_t) S->postShift + 1U); - uint32_t lShift = 32U - uShift; /* Shift to be applied to the output */ - - energy = S->energy; - x0 = S->x0; - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while (blkCnt > 0U) - { - - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy = (q31_t) ((((q63_t) energy << 32) - - (((q63_t) x0 * x0) << 1)) >> 32); - energy = (q31_t) (((((q63_t) in * in) << 1) + (energy << 32)) >> 32); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q31_t) acc; - *pErr++ = e; - - /* Calculates the reciprocal of energy */ - postShift = arm_recip_q31(energy + DELTA_Q31, - &oneByEnergy, &S->recipTable[0]); - - /* Calculation of product of (e * mu) */ - errorXmu = (q31_t) (((q63_t) e * mu) >> 31); - - /* Weighting factor for the normalized version */ - w = clip_q63_to_q31(((q63_t) errorXmu * oneByEnergy) >> (31 - postShift)); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - /* update coefficient buffer to next coefficient */ - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q31_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1U) samples copy */ - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while (blkCnt > 0U) - { - - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Read the sample from input buffer */ - in = *pSrc++; - - /* Update the energy calculation */ - energy = - (q31_t) ((((q63_t) energy << 32) - (((q63_t) x0 * x0) << 1)) >> 32); - energy = (q31_t) (((((q63_t) in * in) << 1) + (energy << 32)) >> 32); - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - - //acc = (q31_t) (acc >> shift); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - d = *pRef++; - e = d - (q31_t) acc; - *pErr++ = e; - - /* Calculates the reciprocal of energy */ - postShift = - arm_recip_q31(energy + DELTA_Q31, &oneByEnergy, &S->recipTable[0]); - - /* Calculation of product of (e * mu) */ - errorXmu = (q31_t) (((q63_t) e * mu) >> 31); - - /* Weighting factor for the normalized version */ - w = clip_q63_to_q31(((q63_t) errorXmu * oneByEnergy) >> (31 - postShift)); - - /* Initialize pState pointer */ - px = pState; - - /* Initialize coeff pointer */ - pb = (pCoeffs); - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) w * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - /* update coefficient buffer to next coefficient */ - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Read the sample from state buffer */ - x0 = *pState; - - /* Advance state pointer by 1 for the next sample */ - pState = pState + 1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Save energy and x0 values for the next frame */ - S->energy = (q31_t) energy; - S->x0 = x0; - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop for (numTaps - 1U) samples copy */ - tapCnt = (numTaps - 1U); - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of LMS_NORM group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q15.c deleted file mode 100644 index 6690294..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q15.c +++ /dev/null @@ -1,368 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_q15.c - * Description: Processing function for the Q15 LMS filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Processing function for Q15 LMS filter. - * @param[in] *S points to an instance of the Q15 LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Scaling and Overflow Behavior: - * The function is implemented using a 64-bit internal accumulator. - * Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. - * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. - * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. - * Lastly, the accumulator is saturated to yield a result in 1.15 format. - * - * \par - * In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. - * - */ - -void arm_lms_q15( - const arm_lms_instance_q15 * S, - q15_t * pSrc, - q15_t * pRef, - q15_t * pOut, - q15_t * pErr, - uint32_t blockSize) -{ - q15_t *pState = S->pState; /* State pointer */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - q15_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q15_t *pStateCurnt; /* Points to the current sample of the state */ - q15_t mu = S->mu; /* Adaptive factor */ - q15_t *px; /* Temporary pointer for state */ - q15_t *pb; /* Temporary pointer for coefficient buffer */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t acc; /* Accumulator */ - q15_t e = 0; /* error of data sample */ - q15_t alpha; /* Intermediate constant for taps update */ - q31_t coef; /* Teporary variable for coefficient */ - q31_t acc_l, acc_h; - int32_t lShift = (15 - (int32_t) S->postShift); /* Post shift */ - int32_t uShift = (32 - lShift); - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Initializing blkCnt with blockSize */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2U; - - while (tapCnt > 0U) - { - /* acc += b[N] * x[n-N] + b[N-1] * x[n-N-1] */ - /* Perform the multiply-accumulate */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - acc = __SMLALD(*__SIMD32(px)++, (*__SIMD32(pb)++), acc); - -#else - - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += (q63_t) (((q31_t) (*px++) * (*pb++))); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q15_t) acc; - - *pErr++ = (q15_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q15_t) (((q31_t) e * (mu)) >> 15); - - /* Initialize state pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2U; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Calculation of count for copying integer writes */ - tapCnt = (numTaps - 1U) >> 2; - - while (tapCnt > 0U) - { - -#ifndef UNALIGNED_SUPPORT_DISABLE - - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; - *__SIMD32(pStateCurnt)++ = *__SIMD32(pState)++; -#else - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; -#endif - - tapCnt--; - - } - - /* Calculation of count for remaining q15_t data */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += (q63_t) ((q31_t) (*px++) * (*pb++)); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - /* Apply shift for lower part of acc and upper part of acc */ - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Converting the result to 1.15 format and saturate the output */ - acc = __SSAT(acc, 16); - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q15_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q15_t) acc; - - *pErr++ = (q15_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q15_t) (((q31_t) e * (mu)) >> 15); - - /* Initialize pState pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) * pb + (((q31_t) alpha * (*px++)) >> 15); - *pb++ = (q15_t) __SSAT((coef), 16); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1U) samples */ - tapCnt = (numTaps - 1U); - - /* Copy the data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q31.c deleted file mode 100644 index 816e589..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/FilteringFunctions/arm_lms_q31.c +++ /dev/null @@ -1,357 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_lms_q31.c - * Description: Processing function for the Q31 LMS filter - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -/** - * @ingroup groupFilters - */ - -/** - * @addtogroup LMS - * @{ - */ - - /** - * @brief Processing function for Q31 LMS filter. - * @param[in] *S points to an instance of the Q15 LMS filter structure. - * @param[in] *pSrc points to the block of input data. - * @param[in] *pRef points to the block of reference data. - * @param[out] *pOut points to the block of output data. - * @param[out] *pErr points to the block of error data. - * @param[in] blockSize number of samples to process. - * @return none. - * - * \par Scaling and Overflow Behavior: - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate - * multiplication results but provides only a single guard bit. - * Thus, if the accumulator result overflows it wraps around rather than clips. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(numTaps) bits. - * The reference signal should not be scaled down. - * After all multiply-accumulates are performed, the 2.62 accumulator is shifted - * and saturated to 1.31 format to yield the final result. - * The output signal and error signal are in 1.31 format. - * - * \par - * In this filter, filter coefficients are updated for each sample and the updation of filter cofficients are saturted. - */ - -void arm_lms_q31( - const arm_lms_instance_q31 * S, - q31_t * pSrc, - q31_t * pRef, - q31_t * pOut, - q31_t * pErr, - uint32_t blockSize) -{ - q31_t *pState = S->pState; /* State pointer */ - uint32_t numTaps = S->numTaps; /* Number of filter coefficients in the filter */ - q31_t *pCoeffs = S->pCoeffs; /* Coefficient pointer */ - q31_t *pStateCurnt; /* Points to the current sample of the state */ - q31_t mu = S->mu; /* Adaptive factor */ - q31_t *px; /* Temporary pointer for state */ - q31_t *pb; /* Temporary pointer for coefficient buffer */ - uint32_t tapCnt, blkCnt; /* Loop counters */ - q63_t acc; /* Accumulator */ - q31_t e = 0; /* error of data sample */ - q31_t alpha; /* Intermediate constant for taps update */ - q31_t coef; /* Temporary variable for coef */ - q31_t acc_l, acc_h; /* temporary input */ - uint32_t uShift = ((uint32_t) S->postShift + 1U); - uint32_t lShift = 32U - uShift; /* Shift to be applied to the output */ - - /* S->pState points to buffer which contains previous frame (numTaps - 1) samples */ - /* pStateCurnt points to the location where the new input data should be written */ - pStateCurnt = &(S->pState[(numTaps - 1U)]); - - /* Initializing blkCnt with blockSize */ - blkCnt = blockSize; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize state pointer */ - px = pState; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - /* acc += b[N] * x[n-N] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-1] * x[n-N-1] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-2] * x[n-N-2] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* acc += b[N-3] * x[n-N-3] */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - /* Store the result from accumulator into the destination buffer. */ - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q31_t) acc; - - *pErr++ = (q31_t) e; - - /* Compute alpha i.e. intermediate constant for taps update */ - alpha = (q31_t) (((q63_t) e * mu) >> 31); - - /* Initialize state pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize coefficient pointer */ - pb = pCoeffs; - - /* Loop unrolling. Process 4 taps at a time. */ - tapCnt = numTaps >> 2; - - /* Update filter coefficients */ - while (tapCnt > 0U) - { - /* coef is in 2.30 format */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - /* get coef in 1.31 format by left shifting */ - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - /* update coefficient buffer to next coefficient */ - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* If the filter length is not a multiple of 4, compute the remaining filter taps */ - tapCnt = numTaps % 0x4U; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - satrt of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Loop unrolling for (numTaps - 1U) samples copy */ - tapCnt = (numTaps - 1U) >> 2U; - - /* copy data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Calculate remaining number of copies */ - tapCnt = (numTaps - 1U) % 0x4U; - - /* Copy the remaining q31_t data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - while (blkCnt > 0U) - { - /* Copy the new input sample into the state buffer */ - *pStateCurnt++ = *pSrc++; - - /* Initialize pState pointer */ - px = pState; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Set the accumulator to zero */ - acc = 0; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - acc += ((q63_t) (*px++)) * (*pb++); - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Converting the result to 1.31 format */ - /* Store the result from accumulator into the destination buffer. */ - /* Calc lower part of acc */ - acc_l = acc & 0xffffffff; - - /* Calc upper part of acc */ - acc_h = (acc >> 32) & 0xffffffff; - - acc = (uint32_t) acc_l >> lShift | acc_h << uShift; - - *pOut++ = (q31_t) acc; - - /* Compute and store error */ - e = *pRef++ - (q31_t) acc; - - *pErr++ = (q31_t) e; - - /* Weighting factor for the LMS version */ - alpha = (q31_t) (((q63_t) e * mu) >> 31); - - /* Initialize pState pointer */ - /* Advance state pointer by 1 for the next sample */ - px = pState++; - - /* Initialize pCoeffs pointer */ - pb = pCoeffs; - - /* Loop over numTaps number of values */ - tapCnt = numTaps; - - while (tapCnt > 0U) - { - /* Perform the multiply-accumulate */ - coef = (q31_t) (((q63_t) alpha * (*px++)) >> (32)); - *pb = clip_q63_to_q31((q63_t) * pb + (coef << 1U)); - pb++; - - /* Decrement the loop counter */ - tapCnt--; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Processing is complete. Now copy the last numTaps - 1 samples to the - start of the state buffer. This prepares the state buffer for the - next function call. */ - - /* Points to the start of the pState buffer */ - pStateCurnt = S->pState; - - /* Copy (numTaps - 1U) samples */ - tapCnt = (numTaps - 1U); - - /* Copy the data */ - while (tapCnt > 0U) - { - *pStateCurnt++ = *pState++; - - /* Decrement the loop counter */ - tapCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of LMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_f32.c deleted file mode 100644 index 4a54049..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_f32.c +++ /dev/null @@ -1,196 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_add_f32.c - * Description: Floating-point matrix addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixAdd Matrix Addition - * - * Adds two matrices. - * \image html MatrixAddition.gif "Addition of two 3 x 3 matrices" - * - * The functions check to make sure that - * pSrcA, pSrcB, and pDst have the same - * number of rows and columns. - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - - -/** - * @brief Floating-point matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_add_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - -#if defined (ARM_MATH_DSP) - - float32_t inA1, inA2, inB1, inB2, out1, out2; /* temporary variables */ - -#endif // #if defined (ARM_MATH_DSP) - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#if defined (ARM_MATH_DSP) - - /* Loop unrolling */ - blkCnt = numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* out = sourceA + sourceB */ - out1 = inA1 + inB1; - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* out = sourceA + sourceB */ - out2 = inA2 + inB2; - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* out = sourceA + sourceB */ - out1 = inA1 + inB1; - - /* out = sourceA + sourceB */ - out2 = inA2 + inB2; - - /* Store result in destination */ - pOut[2] = out1; - - /* Store result in destination */ - pOut[3] = out2; - - - /* update pointers to process next sampels */ - pIn1 += 4U; - pIn2 += 4U; - pOut += 4U; - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add and then store the results in the destination buffer. */ - *pOut++ = (*pIn1++) + (*pIn2++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q15.c deleted file mode 100644 index 896e60c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q15.c +++ /dev/null @@ -1,151 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_add_q15.c - * Description: Q15 matrix addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - -/** - * @brief Q15 matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -arm_status arm_mat_add_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint16_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Total number of samples in the input matrix */ - numSamples = (uint16_t) (pSrcA->numRows * pSrcA->numCols); - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop unrolling */ - blkCnt = (uint32_t) numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *__SIMD32(pOut)++ = __QADD16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - *__SIMD32(pOut)++ = __QADD16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = (uint32_t) numSamples % 0x4U; - - /* q15 pointers of input and output are initialized */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __QADD16(*pInA++, *pInB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = (uint32_t) numSamples; - - - /* q15 pointers of input and output are initialized */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, Saturate and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __SSAT(((q31_t) * pInA++ + *pInB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q31.c deleted file mode 100644 index f230ad2..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_add_q31.c +++ /dev/null @@ -1,195 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_add_q31.c - * Description: Q31 matrix addition - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixAdd - * @{ - */ - -/** - * @brief Q31 matrix addition. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - -arm_status arm_mat_add_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t inA1, inB1; /* temporary variables */ - -#if defined (ARM_MATH_DSP) - - q31_t inA2, inB2; /* temporary variables */ - q31_t out1, out2; /* temporary variables */ - -#endif // #if defined (ARM_MATH_DSP) - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix addition */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2U; - - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, saturate and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* Add and saturate */ - out1 = __QADD(inA1, inB1); - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* Add and saturate */ - out2 = __QADD(inA2, inB2); - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* Add and saturate */ - out1 = __QADD(inA1, inB1); - out2 = __QADD(inA2, inB2); - - /* Store result in destination */ - pOut[2] = out1; - pOut[3] = out2; - - /* update pointers to process next sampels */ - pIn1 += 4U; - pIn2 += 4U; - pOut += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) + B(m,n) */ - /* Add, saturate and then store the results in the destination buffer. */ - inA1 = *pIn1++; - inB1 = *pIn2++; - - inA1 = __QADD(inA1, inB1); - - /* Decrement the loop counter */ - blkCnt--; - - *pOut++ = inA1; - - } - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixAdd group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c deleted file mode 100644 index bb8341e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c +++ /dev/null @@ -1,272 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_cmplx_mult_f32.c - * Description: Floating-point matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup CmplxMatrixMult Complex Matrix Multiplication - * - * Complex Matrix multiplication is only defined if the number of columns of the - * first matrix equals the number of rows of the second matrix. - * Multiplying an M x N matrix with an N x P matrix results - * in an M x P matrix. - * When matrix size checking is enabled, the functions check: (1) that the inner dimensions of - * pSrcA and pSrcB are equal; and (2) that the size of the output - * matrix equals the outer dimensions of pSrcA and pSrcB. - */ - - -/** - * @addtogroup CmplxMatrixMult - * @{ - */ - -/** - * @brief Floating-point Complex matrix multiplication. - * @param[in] *pSrcA points to the first input complex matrix structure - * @param[in] *pSrcB points to the second input complex matrix structure - * @param[out] *pDst points to output complex matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_cmplx_mult_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - float32_t sumReal1, sumImag1; /* accumulator */ - float32_t a0, b0, c0, d0; - float32_t a1, b1, c1, d1; - float32_t sumReal2, sumImag2; /* accumulator */ - - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t col, i = 0U, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + 2 * i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0U; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sumReal1 = 0.0f; - sumImag1 = 0.0f; - - sumReal2 = 0.0f; - sumImag2 = 0.0f; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - - /* Reading real part of complex matrix A */ - a0 = *pIn1; - - /* Reading real part of complex matrix B */ - c0 = *pIn2; - - /* Reading imaginary part of complex matrix A */ - b0 = *(pIn1 + 1U); - - /* Reading imaginary part of complex matrix B */ - d0 = *(pIn2 + 1U); - - sumReal1 += a0 * c0; - sumImag1 += b0 * c0; - - pIn1 += 2U; - pIn2 += 2 * numColsB; - - sumReal2 -= b0 * d0; - sumImag2 += a0 * d0; - - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - - a1 = *pIn1; - c1 = *pIn2; - - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - sumReal1 += a1 * c1; - sumImag1 += b1 * c1; - - pIn1 += 2U; - pIn2 += 2 * numColsB; - - sumReal2 -= b1 * d1; - sumImag2 += a1 * d1; - - a0 = *pIn1; - c0 = *pIn2; - - b0 = *(pIn1 + 1U); - d0 = *(pIn2 + 1U); - - sumReal1 += a0 * c0; - sumImag1 += b0 * c0; - - pIn1 += 2U; - pIn2 += 2 * numColsB; - - sumReal2 -= b0 * d0; - sumImag2 += a0 * d0; - - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - - a1 = *pIn1; - c1 = *pIn2; - - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - sumReal1 += a1 * c1; - sumImag1 += b1 * c1; - - pIn1 += 2U; - pIn2 += 2 * numColsB; - - sumReal2 -= b1 * d1; - sumImag2 += a1 * d1; - - /* Decrement the loop count */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - a1 = *pIn1; - c1 = *pIn2; - - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - sumReal1 += a1 * c1; - sumImag1 += b1 * c1; - - pIn1 += 2U; - pIn2 += 2 * numColsB; - - sumReal2 -= b1 * d1; - sumImag2 += a1 * d1; - - /* Decrement the loop counter */ - colCnt--; - } - - sumReal1 += sumReal2; - sumImag1 += sumImag2; - - /* Store the result in the destination buffer */ - *px++ = sumReal1; - *px++ = sumImag1; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = pSrcB->pData + 2U * j; - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + 2 * numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c deleted file mode 100644 index 5dee79c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c +++ /dev/null @@ -1,413 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cmplx_mat_mult_q15.c - * Description: Q15 complex matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup CmplxMatrixMult - * @{ - */ - - -/** - * @brief Q15 Complex matrix multiplication - * @param[in] *pSrcA points to the first input complex matrix structure - * @param[in] *pSrcB points to the second input complex matrix structure - * @param[out] *pDst points to output complex matrix structure - * @param[in] *pScratch points to the array for storing intermediate results - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * \par Conditions for optimum performance - * Input, output and state buffers should be aligned by 32-bit - * - * \par Restrictions - * If the silicon does not support unaligned memory access enable the macro UNALIGNED_SUPPORT_DISABLE - * In this case input, output, scratch buffers should be aligned by 32-bit - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. The inputs to the - * multiplications are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate - * results are accumulated in a 64-bit accumulator in 34.30 format. This approach - * provides 33 guard bits and there is no risk of overflow. The 34.30 result is then - * truncated to 34.15 format by discarding the low 15 bits and then saturated to - * 1.15 format. - * - * \par - * Refer to arm_mat_mult_fast_q15() for a faster but less precise version of this function. - * - */ - - - - -arm_status arm_mat_cmplx_mult_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst, - q15_t * pScratch) -{ - /* accumulator */ - q15_t *pSrcBT = pScratch; /* input data matrix pointer for transpose */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsB = pSrcB->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0U, row = numRowsB, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - q63_t sumReal, sumImag; - -#ifdef UNALIGNED_SUPPORT_DISABLE - q15_t in; /* Temporary variable to hold the input value */ - q15_t a, b, c, d; -#else - q31_t in; /* Temporary variable to hold the input value */ - q31_t prod1, prod2; - q31_t pSourceA, pSourceB; -#endif - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Matrix transpose */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - col = numColsB >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pSrcBT + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (col > 0U) - { -#ifdef UNALIGNED_SUPPORT_DISABLE - /* Read two elements from the row */ - in = *pInB++; - *px = in; - in = *pInB++; - px[1] = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Read two elements from the row */ - in = *pInB++; - *px = in; - in = *pInB++; - px[1] = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Read two elements from the row */ - in = *pInB++; - *px = in; - in = *pInB++; - px[1] = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Read two elements from the row */ - in = *pInB++; - *px = in; - in = *pInB++; - px[1] = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4U; - - while (col > 0U) - { - /* Read two elements from the row */ - in = *pInB++; - *px = in; - in = *pInB++; - px[1] = in; -#else - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - *__SIMD32(px) = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - *__SIMD32(px) = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - *__SIMD32(px) = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - *__SIMD32(px) = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4U; - - while (col > 0U) - { - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - *__SIMD32(px) = in; -#endif - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB * 2; - - /* Decrement the column loop counter */ - col--; - } - - i = i + 2U; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* Reset the variables for the usage in the following multiplication process */ - row = numRowsA; - i = 0U; - px = pDst->pData; - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the transposed pSrcB data */ - pInB = pSrcBT; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sumReal = 0; - sumImag = 0; - - /* Apply loop unrolling and compute 2 MACs simultaneously. */ - colCnt = numColsA >> 1; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pInA = pSrcA->pData + i * 2; - - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - -#ifdef UNALIGNED_SUPPORT_DISABLE - - /* read real and imag values from pSrcA buffer */ - a = *pInA; - b = *(pInA + 1U); - /* read real and imag values from pSrcB buffer */ - c = *pInB; - d = *(pInB + 1U); - - /* Multiply and Accumlates */ - sumReal += (q31_t) a *c; - sumImag += (q31_t) a *d; - sumReal -= (q31_t) b *d; - sumImag += (q31_t) b *c; - - /* read next real and imag values from pSrcA buffer */ - a = *(pInA + 2U); - b = *(pInA + 3U); - /* read next real and imag values from pSrcB buffer */ - c = *(pInB + 2U); - d = *(pInB + 3U); - - /* update pointer */ - pInA += 4U; - - /* Multiply and Accumlates */ - sumReal += (q31_t) a *c; - sumImag += (q31_t) a *d; - sumReal -= (q31_t) b *d; - sumImag += (q31_t) b *c; - /* update pointer */ - pInB += 4U; -#else - /* read real and imag values from pSrcA and pSrcB buffer */ - pSourceA = *__SIMD32(pInA)++; - pSourceB = *__SIMD32(pInB)++; - - /* Multiply and Accumlates */ -#ifdef ARM_MATH_BIG_ENDIAN - prod1 = -__SMUSD(pSourceA, pSourceB); -#else - prod1 = __SMUSD(pSourceA, pSourceB); -#endif - prod2 = __SMUADX(pSourceA, pSourceB); - sumReal += (q63_t) prod1; - sumImag += (q63_t) prod2; - - /* read real and imag values from pSrcA and pSrcB buffer */ - pSourceA = *__SIMD32(pInA)++; - pSourceB = *__SIMD32(pInB)++; - - /* Multiply and Accumlates */ -#ifdef ARM_MATH_BIG_ENDIAN - prod1 = -__SMUSD(pSourceA, pSourceB); -#else - prod1 = __SMUSD(pSourceA, pSourceB); -#endif - prod2 = __SMUADX(pSourceA, pSourceB); - sumReal += (q63_t) prod1; - sumImag += (q63_t) prod2; - -#endif /* #ifdef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - colCnt--; - } - - /* process odd column samples */ - if ((numColsA & 0x1U) > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - -#ifdef UNALIGNED_SUPPORT_DISABLE - - /* read real and imag values from pSrcA and pSrcB buffer */ - a = *pInA++; - b = *pInA++; - c = *pInB++; - d = *pInB++; - - /* Multiply and Accumlates */ - sumReal += (q31_t) a *c; - sumImag += (q31_t) a *d; - sumReal -= (q31_t) b *d; - sumImag += (q31_t) b *c; - -#else - /* read real and imag values from pSrcA and pSrcB buffer */ - pSourceA = *__SIMD32(pInA)++; - pSourceB = *__SIMD32(pInB)++; - - /* Multiply and Accumlates */ -#ifdef ARM_MATH_BIG_ENDIAN - prod1 = -__SMUSD(pSourceA, pSourceB); -#else - prod1 = __SMUSD(pSourceA, pSourceB); -#endif - prod2 = __SMUADX(pSourceA, pSourceB); - sumReal += (q63_t) prod1; - sumImag += (q63_t) prod2; - -#endif /* #ifdef UNALIGNED_SUPPORT_DISABLE */ - - } - - /* Saturate and store the result in the destination buffer */ - - *px++ = (q15_t) (__SSAT(sumReal >> 15, 16)); - *px++ = (q15_t) (__SSAT(sumImag >> 15, 16)); - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - - i = i + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c deleted file mode 100644 index 65cbb66..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c +++ /dev/null @@ -1,282 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_cmplx_mult_q31.c - * Description: Floating-point matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup CmplxMatrixMult - * @{ - */ - -/** - * @brief Q31 Complex matrix multiplication - * @param[in] *pSrcA points to the first input complex matrix structure - * @param[in] *pSrcB points to the second input complex matrix structure - * @param[out] *pDst points to output complex matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate - * multiplication results but provides only a single guard bit. There is no saturation - * on intermediate additions. Thus, if the accumulator overflows it wraps around and - * distorts the result. The input signals should be scaled down to avoid intermediate - * overflows. The input is thus scaled down by log2(numColsA) bits - * to avoid overflows, as a total of numColsA additions are performed internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * - */ - -arm_status arm_mat_cmplx_mult_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - q63_t sumReal1, sumImag1; /* accumulator */ - q31_t a0, b0, c0, d0; - q31_t a1, b1, c1, d1; - - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t col, i = 0U, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + 2 * i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0U; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sumReal1 = 0.0; - sumImag1 = 0.0; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - - /* Reading real part of complex matrix A */ - a0 = *pIn1; - - /* Reading real part of complex matrix B */ - c0 = *pIn2; - - /* Reading imaginary part of complex matrix A */ - b0 = *(pIn1 + 1U); - - /* Reading imaginary part of complex matrix B */ - d0 = *(pIn2 + 1U); - - /* Multiply and Accumlates */ - sumReal1 += (q63_t) a0 *c0; - sumImag1 += (q63_t) b0 *c0; - - /* update pointers */ - pIn1 += 2U; - pIn2 += 2 * numColsB; - - /* Multiply and Accumlates */ - sumReal1 -= (q63_t) b0 *d0; - sumImag1 += (q63_t) a0 *d0; - - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - - /* read real and imag values from pSrcA and pSrcB buffer */ - a1 = *pIn1; - c1 = *pIn2; - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - /* Multiply and Accumlates */ - sumReal1 += (q63_t) a1 *c1; - sumImag1 += (q63_t) b1 *c1; - - /* update pointers */ - pIn1 += 2U; - pIn2 += 2 * numColsB; - - /* Multiply and Accumlates */ - sumReal1 -= (q63_t) b1 *d1; - sumImag1 += (q63_t) a1 *d1; - - a0 = *pIn1; - c0 = *pIn2; - - b0 = *(pIn1 + 1U); - d0 = *(pIn2 + 1U); - - /* Multiply and Accumlates */ - sumReal1 += (q63_t) a0 *c0; - sumImag1 += (q63_t) b0 *c0; - - /* update pointers */ - pIn1 += 2U; - pIn2 += 2 * numColsB; - - /* Multiply and Accumlates */ - sumReal1 -= (q63_t) b0 *d0; - sumImag1 += (q63_t) a0 *d0; - - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - - a1 = *pIn1; - c1 = *pIn2; - - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - /* Multiply and Accumlates */ - sumReal1 += (q63_t) a1 *c1; - sumImag1 += (q63_t) b1 *c1; - - /* update pointers */ - pIn1 += 2U; - pIn2 += 2 * numColsB; - - /* Multiply and Accumlates */ - sumReal1 -= (q63_t) b1 *d1; - sumImag1 += (q63_t) a1 *d1; - - /* Decrement the loop count */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - a1 = *pIn1; - c1 = *pIn2; - - b1 = *(pIn1 + 1U); - d1 = *(pIn2 + 1U); - - /* Multiply and Accumlates */ - sumReal1 += (q63_t) a1 *c1; - sumImag1 += (q63_t) b1 *c1; - - /* update pointers */ - pIn1 += 2U; - pIn2 += 2 * numColsB; - - /* Multiply and Accumlates */ - sumReal1 -= (q63_t) b1 *d1; - sumImag1 += (q63_t) a1 *d1; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = (q31_t) clip_q63_to_q31(sumReal1 >> 31); - *px++ = (q31_t) clip_q63_to_q31(sumImag1 >> 31); - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = pSrcB->pData + 2U * j; - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + 2 * numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_f32.c deleted file mode 100644 index 783f7be..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_f32.c +++ /dev/null @@ -1,76 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_init_f32.c - * Description: Floating-point matrix initialization - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInit Matrix Initialization - * - * Initializes the underlying matrix data structure. - * The functions set the numRows, - * numCols, and pData fields - * of the matrix data structure. - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - -/** - * @brief Floating-point matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_f32( - arm_matrix_instance_f32 * S, - uint16_t nRows, - uint16_t nColumns, - float32_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q15.c deleted file mode 100644 index 08da19f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q15.c +++ /dev/null @@ -1,67 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_init_q15.c - * Description: Q15 matrix initialization - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - - /** - * @brief Q15 matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_q15( - arm_matrix_instance_q15 * S, - uint16_t nRows, - uint16_t nColumns, - q15_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q31.c deleted file mode 100644 index 22e6f6d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_init_q31.c +++ /dev/null @@ -1,72 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_init_q31.c - * Description: Q31 matrix initialization - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInit Matrix Initialization - * - */ - -/** - * @addtogroup MatrixInit - * @{ - */ - - /** - * @brief Q31 matrix initialization. - * @param[in,out] *S points to an instance of the floating-point matrix structure. - * @param[in] nRows number of rows in the matrix. - * @param[in] nColumns number of columns in the matrix. - * @param[in] *pData points to the matrix data array. - * @return none - */ - -void arm_mat_init_q31( - arm_matrix_instance_q31 * S, - uint16_t nRows, - uint16_t nColumns, - q31_t * pData) -{ - /* Assign Number of Rows */ - S->numRows = nRows; - - /* Assign Number of Columns */ - S->numCols = nColumns; - - /* Assign Data pointer */ - S->pData = pData; -} - -/** - * @} end of MatrixInit group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f32.c deleted file mode 100644 index b82373a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f32.c +++ /dev/null @@ -1,691 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_inverse_f32.c - * Description: Floating-point matrix inverse - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInv Matrix Inverse - * - * Computes the inverse of a matrix. - * - * The inverse is defined only if the input matrix is square and non-singular (the determinant - * is non-zero). The function checks that the input and output matrices are square and of the - * same size. - * - * Matrix inversion is numerically sensitive and the CMSIS DSP library only supports matrix - * inversion of floating-point matrices. - * - * \par Algorithm - * The Gauss-Jordan method is used to find the inverse. - * The algorithm performs a sequence of elementary row-operations until it - * reduces the input matrix to an identity matrix. Applying the same sequence - * of elementary row-operations to an identity matrix yields the inverse matrix. - * If the input matrix is singular, then the algorithm terminates and returns error status - * ARM_MATH_SINGULAR. - * \image html MatrixInverse.gif "Matrix Inverse of a 3 x 3 matrix using Gauss-Jordan Method" - */ - -/** - * @addtogroup MatrixInv - * @{ - */ - -/** - * @brief Floating-point matrix inverse. - * @param[in] *pSrc points to input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns - * ARM_MATH_SIZE_MISMATCH if the input matrix is not square or if the size - * of the output matrix does not match the size of the input matrix. - * If the input matrix is found to be singular (non-invertible), then the function returns - * ARM_MATH_SINGULAR. Otherwise, the function returns ARM_MATH_SUCCESS. - */ - -arm_status arm_mat_inverse_f32( - const arm_matrix_instance_f32 * pSrc, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *pInT1, *pInT2; /* Temporary input data matrix pointer */ - float32_t *pOutT1, *pOutT2; /* Temporary output data matrix pointer */ - float32_t *pPivotRowIn, *pPRT_in, *pPivotRowDst, *pPRT_pDst; /* Temporary input and output data matrix pointer */ - uint32_t numRows = pSrc->numRows; /* Number of rows in the matrix */ - uint32_t numCols = pSrc->numCols; /* Number of Cols in the matrix */ - -#if defined (ARM_MATH_DSP) - float32_t maxC; /* maximum value in the column */ - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t Xchg, in = 0.0f, in1; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0U, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ - * | a11 a12 | 1 0 | | X11 X12 | - * | | | = | | - * |_ a21 a22 | 0 1 _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for column i is the greatest of the column. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is not the most significant of the columns, exchange that row with a row - * below it that does contain the most significant value in column i. If the most - * significant value of the column is zero, then an inverse to that matrix does not exist. - * The most significant value of the column is the absolute maximum. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, pSrc). - * Therefore, the matrix to the right of the bar is our solution(pDst matrix, pDst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pOutT1 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while (rowCnt > 0U) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pOutT1++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1U; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0U; - - while (loopCnt > 0U) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pOutT1 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Grab the most significant value from column l */ - maxC = 0; - for (i = l; i < numRows; i++) - { - maxC = *pInT1 > 0 ? (*pInT1 > maxC ? *pInT1 : maxC) : (-*pInT1 > maxC ? -*pInT1 : maxC); - pInT1 += numCols; - } - - /* Update the status if the matrix is singular */ - if (maxC == 0.0f) - { - return ARM_MATH_SINGULAR; - } - - /* Restore pInT1 */ - pInT1 = pIn; - - /* Destination pointer modifier */ - k = 1U; - - /* Check if the pivot element is the most significant of the column */ - if ( (in > 0.0f ? in : -in) != maxC) - { - /* Loop over the number rows present below */ - i = numRows - (l + 1U); - - while (i > 0U) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pOutT2 = pOutT1 + (numCols * k); - - /* Look for the most significant element to - * replace in the rows below */ - if ((*pInT2 > 0.0f ? *pInT2: -*pInT2) == maxC) - { - /* Loop over number of columns - * to the right of the pilot element */ - j = numCols - l; - - while (j > 0U) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Exchange the row elements of the destination matrix */ - Xchg = *pOutT2; - *pOutT2++ = *pOutT1; - *pOutT1++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1U; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - - /* Decrement the loop counter */ - i--; - } - } - - /* Update the status if the matrix is singular */ - if ((flag != 1U) && (in == 0.0f)) - { - return ARM_MATH_SINGULAR; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pInT2 = pPivotRowDst; - - /* Pivot element of the row */ - in = *pPivotRowIn; - - /* Loop over number of columns - * to the right of the pilot element */ - j = (numCols - l); - - while (j > 0U) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - in1 = *pInT1; - *pInT1++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - in1 = *pInT2; - *pInT2++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pInT2 = pOut; - - /* index used to check for pivot element */ - i = 0U; - - /* Loop over number of rows */ - /* to be replaced by the sum of that row and a multiple of row i */ - k = numRows; - - while (k > 0U) - { - /* Check for the pivot element */ - if (i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - - pInT2 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - j = (numCols - l); - - while (j > 0U) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT1; - *pInT1++ = in1 - (in * *pPRT_in++); - - /* Decrement the loop counter */ - j--; - } - - /* Loop over the number of columns to - replace the elements in the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT2; - *pInT2++ = in1 - (in * *pPRT_pDst++); - - /* Decrement the loop counter */ - j--; - } - - } - - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - - /* Decrement the loop counter */ - k--; - - /* Increment the pivot index */ - i++; - } - - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - - /* Increment the index modifier */ - l++; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t Xchg, in = 0.0f; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0U, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ _ _ _ _ - * | | a11 a12 | | | 1 0 | | | X11 X12 | - * | | | | | | | = | | - * |_ |_ a21 a22 _| | |_0 1 _| _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for row i is zero. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is zero, exchange that row with a row below it that does not - * contain a zero in column i. If this is not possible, then an inverse - * to that matrix does not exist. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, src). - * Therefore, the matrix to the right of the bar is our solution(dst matrix, dst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pOutT1 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while (rowCnt > 0U) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pOutT1++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1U; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0U; - //for(loopCnt = 0U; loopCnt < numCols; loopCnt++) - while (loopCnt > 0U) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pOutT1 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Destination pointer modifier */ - k = 1U; - - /* Check if the pivot element is zero */ - if (*pInT1 == 0.0f) - { - /* Loop over the number rows present below */ - for (i = (l + 1U); i < numRows; i++) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pOutT2 = pOutT1 + (numCols * k); - - /* Check if there is a non zero pivot element to - * replace in the rows below */ - if (*pInT2 != 0.0f) - { - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0U; j < (numCols - l); j++) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - } - - for (j = 0U; j < numCols; j++) - { - Xchg = *pOutT2; - *pOutT2++ = *pOutT1; - *pOutT1++ = Xchg; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1U; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - } - } - - /* Update the status if the matrix is singular */ - if ((flag != 1U) && (in == 0.0f)) - { - return ARM_MATH_SINGULAR; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pOutT1 = pPivotRowDst; - - /* Pivot element of the row */ - in = *(pIn + (l * numCols)); - - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0U; j < (numCols - l); j++) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - *pInT1 = *pInT1 / in; - pInT1++; - } - for (j = 0U; j < numCols; j++) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - *pOutT1 = *pOutT1 / in; - pOutT1++; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pOutT1 = pOut; - - for (i = 0U; i < numRows; i++) - { - /* Check for the pivot element */ - if (i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - pOutT1 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - for (j = 0U; j < (numCols - l); j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pInT1 = *pInT1 - (in * *pPRT_in++); - pInT1++; - } - /* Loop over the number of columns to - replace the elements in the destination matrix */ - for (j = 0U; j < numCols; j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pOutT1 = *pOutT1 - (in * *pPRT_pDst++); - pOutT1++; - } - - } - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - } - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - /* Increment the index modifier */ - l++; - } - - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - if ((flag != 1U) && (in == 0.0f)) - { - pIn = pSrc->pData; - for (i = 0; i < numRows * numCols; i++) - { - if (pIn[i] != 0.0f) - break; - } - - if (i == numRows * numCols) - status = ARM_MATH_SINGULAR; - } - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixInv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f64.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f64.c deleted file mode 100644 index 54e5982..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_inverse_f64.c +++ /dev/null @@ -1,691 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_inverse_f64.c - * Description: Floating-point matrix inverse - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixInv Matrix Inverse - * - * Computes the inverse of a matrix. - * - * The inverse is defined only if the input matrix is square and non-singular (the determinant - * is non-zero). The function checks that the input and output matrices are square and of the - * same size. - * - * Matrix inversion is numerically sensitive and the CMSIS DSP library only supports matrix - * inversion of floating-point matrices. - * - * \par Algorithm - * The Gauss-Jordan method is used to find the inverse. - * The algorithm performs a sequence of elementary row-operations until it - * reduces the input matrix to an identity matrix. Applying the same sequence - * of elementary row-operations to an identity matrix yields the inverse matrix. - * If the input matrix is singular, then the algorithm terminates and returns error status - * ARM_MATH_SINGULAR. - * \image html MatrixInverse.gif "Matrix Inverse of a 3 x 3 matrix using Gauss-Jordan Method" - */ - -/** - * @addtogroup MatrixInv - * @{ - */ - -/** - * @brief Floating-point matrix inverse. - * @param[in] *pSrc points to input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns - * ARM_MATH_SIZE_MISMATCH if the input matrix is not square or if the size - * of the output matrix does not match the size of the input matrix. - * If the input matrix is found to be singular (non-invertible), then the function returns - * ARM_MATH_SINGULAR. Otherwise, the function returns ARM_MATH_SUCCESS. - */ - -arm_status arm_mat_inverse_f64( - const arm_matrix_instance_f64 * pSrc, - arm_matrix_instance_f64 * pDst) -{ - float64_t *pIn = pSrc->pData; /* input data matrix pointer */ - float64_t *pOut = pDst->pData; /* output data matrix pointer */ - float64_t *pInT1, *pInT2; /* Temporary input data matrix pointer */ - float64_t *pOutT1, *pOutT2; /* Temporary output data matrix pointer */ - float64_t *pPivotRowIn, *pPRT_in, *pPivotRowDst, *pPRT_pDst; /* Temporary input and output data matrix pointer */ - uint32_t numRows = pSrc->numRows; /* Number of rows in the matrix */ - uint32_t numCols = pSrc->numCols; /* Number of Cols in the matrix */ - -#if defined (ARM_MATH_DSP) - float64_t maxC; /* maximum value in the column */ - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float64_t Xchg, in = 0.0f, in1; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0U, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ - * | a11 a12 | 1 0 | | X11 X12 | - * | | | = | | - * |_ a21 a22 | 0 1 _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for column i is the greatest of the column. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is not the most significant of the columns, exchange that row with a row - * below it that does contain the most significant value in column i. If the most - * significant value of the column is zero, then an inverse to that matrix does not exist. - * The most significant value of the column is the absolute maximum. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, pSrc). - * Therefore, the matrix to the right of the bar is our solution(pDst matrix, pDst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pOutT1 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while (rowCnt > 0U) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pOutT1++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1U; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0U; - - while (loopCnt > 0U) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pOutT1 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Grab the most significant value from column l */ - maxC = 0; - for (i = l; i < numRows; i++) - { - maxC = *pInT1 > 0 ? (*pInT1 > maxC ? *pInT1 : maxC) : (-*pInT1 > maxC ? -*pInT1 : maxC); - pInT1 += numCols; - } - - /* Update the status if the matrix is singular */ - if (maxC == 0.0f) - { - return ARM_MATH_SINGULAR; - } - - /* Restore pInT1 */ - pInT1 = pIn; - - /* Destination pointer modifier */ - k = 1U; - - /* Check if the pivot element is the most significant of the column */ - if ( (in > 0.0f ? in : -in) != maxC) - { - /* Loop over the number rows present below */ - i = numRows - (l + 1U); - - while (i > 0U) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pOutT2 = pOutT1 + (numCols * k); - - /* Look for the most significant element to - * replace in the rows below */ - if ((*pInT2 > 0.0f ? *pInT2: -*pInT2) == maxC) - { - /* Loop over number of columns - * to the right of the pilot element */ - j = numCols - l; - - while (j > 0U) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Exchange the row elements of the destination matrix */ - Xchg = *pOutT2; - *pOutT2++ = *pOutT1; - *pOutT1++ = Xchg; - - /* Decrement the loop counter */ - j--; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1U; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - - /* Decrement the loop counter */ - i--; - } - } - - /* Update the status if the matrix is singular */ - if ((flag != 1U) && (in == 0.0f)) - { - return ARM_MATH_SINGULAR; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pInT2 = pPivotRowDst; - - /* Pivot element of the row */ - in = *pPivotRowIn; - - /* Loop over number of columns - * to the right of the pilot element */ - j = (numCols - l); - - while (j > 0U) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - in1 = *pInT1; - *pInT1++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Loop over number of columns of the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - in1 = *pInT2; - *pInT2++ = in1 / in; - - /* Decrement the loop counter */ - j--; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pInT2 = pOut; - - /* index used to check for pivot element */ - i = 0U; - - /* Loop over number of rows */ - /* to be replaced by the sum of that row and a multiple of row i */ - k = numRows; - - while (k > 0U) - { - /* Check for the pivot element */ - if (i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - - pInT2 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - j = (numCols - l); - - while (j > 0U) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT1; - *pInT1++ = in1 - (in * *pPRT_in++); - - /* Decrement the loop counter */ - j--; - } - - /* Loop over the number of columns to - replace the elements in the destination matrix */ - j = numCols; - - while (j > 0U) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - in1 = *pInT2; - *pInT2++ = in1 - (in * *pPRT_pDst++); - - /* Decrement the loop counter */ - j--; - } - - } - - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - - /* Decrement the loop counter */ - k--; - - /* Increment the pivot index */ - i++; - } - - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - - /* Increment the index modifier */ - l++; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - float64_t Xchg, in = 0.0f; /* Temporary input values */ - uint32_t i, rowCnt, flag = 0U, j, loopCnt, k, l; /* loop counters */ - arm_status status; /* status of matrix inverse */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pSrc->numCols) || (pDst->numRows != pDst->numCols) - || (pSrc->numRows != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - - /*-------------------------------------------------------------------------------------------------------------- - * Matrix Inverse can be solved using elementary row operations. - * - * Gauss-Jordan Method: - * - * 1. First combine the identity matrix and the input matrix separated by a bar to form an - * augmented matrix as follows: - * _ _ _ _ _ _ _ _ - * | | a11 a12 | | | 1 0 | | | X11 X12 | - * | | | | | | | = | | - * |_ |_ a21 a22 _| | |_0 1 _| _| |_ X21 X21 _| - * - * 2. In our implementation, pDst Matrix is used as identity matrix. - * - * 3. Begin with the first row. Let i = 1. - * - * 4. Check to see if the pivot for row i is zero. - * The pivot is the element of the main diagonal that is on the current row. - * For instance, if working with row i, then the pivot element is aii. - * If the pivot is zero, exchange that row with a row below it that does not - * contain a zero in column i. If this is not possible, then an inverse - * to that matrix does not exist. - * - * 5. Divide every element of row i by the pivot. - * - * 6. For every row below and row i, replace that row with the sum of that row and - * a multiple of row i so that each new element in column i below row i is zero. - * - * 7. Move to the next row and column and repeat steps 2 through 5 until you have zeros - * for every element below and above the main diagonal. - * - * 8. Now an identical matrix is formed to the left of the bar(input matrix, src). - * Therefore, the matrix to the right of the bar is our solution(dst matrix, dst). - *----------------------------------------------------------------------------------------------------------------*/ - - /* Working pointer for destination matrix */ - pOutT1 = pOut; - - /* Loop over the number of rows */ - rowCnt = numRows; - - /* Making the destination matrix as identity matrix */ - while (rowCnt > 0U) - { - /* Writing all zeroes in lower triangle of the destination matrix */ - j = numRows - rowCnt; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Writing all ones in the diagonal of the destination matrix */ - *pOutT1++ = 1.0f; - - /* Writing all zeroes in upper triangle of the destination matrix */ - j = rowCnt - 1U; - while (j > 0U) - { - *pOutT1++ = 0.0f; - j--; - } - - /* Decrement the loop counter */ - rowCnt--; - } - - /* Loop over the number of columns of the input matrix. - All the elements in each column are processed by the row operations */ - loopCnt = numCols; - - /* Index modifier to navigate through the columns */ - l = 0U; - //for(loopCnt = 0U; loopCnt < numCols; loopCnt++) - while (loopCnt > 0U) - { - /* Check if the pivot element is zero.. - * If it is zero then interchange the row with non zero row below. - * If there is no non zero element to replace in the rows below, - * then the matrix is Singular. */ - - /* Working pointer for the input matrix that points - * to the pivot element of the particular row */ - pInT1 = pIn + (l * numCols); - - /* Working pointer for the destination matrix that points - * to the pivot element of the particular row */ - pOutT1 = pOut + (l * numCols); - - /* Temporary variable to hold the pivot value */ - in = *pInT1; - - /* Destination pointer modifier */ - k = 1U; - - /* Check if the pivot element is zero */ - if (*pInT1 == 0.0f) - { - /* Loop over the number rows present below */ - for (i = (l + 1U); i < numRows; i++) - { - /* Update the input and destination pointers */ - pInT2 = pInT1 + (numCols * l); - pOutT2 = pOutT1 + (numCols * k); - - /* Check if there is a non zero pivot element to - * replace in the rows below */ - if (*pInT2 != 0.0f) - { - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0U; j < (numCols - l); j++) - { - /* Exchange the row elements of the input matrix */ - Xchg = *pInT2; - *pInT2++ = *pInT1; - *pInT1++ = Xchg; - } - - for (j = 0U; j < numCols; j++) - { - Xchg = *pOutT2; - *pOutT2++ = *pOutT1; - *pOutT1++ = Xchg; - } - - /* Flag to indicate whether exchange is done or not */ - flag = 1U; - - /* Break after exchange is done */ - break; - } - - /* Update the destination pointer modifier */ - k++; - } - } - - /* Update the status if the matrix is singular */ - if ((flag != 1U) && (in == 0.0f)) - { - return ARM_MATH_SINGULAR; - } - - /* Points to the pivot row of input and destination matrices */ - pPivotRowIn = pIn + (l * numCols); - pPivotRowDst = pOut + (l * numCols); - - /* Temporary pointers to the pivot row pointers */ - pInT1 = pPivotRowIn; - pOutT1 = pPivotRowDst; - - /* Pivot element of the row */ - in = *(pIn + (l * numCols)); - - /* Loop over number of columns - * to the right of the pilot element */ - for (j = 0U; j < (numCols - l); j++) - { - /* Divide each element of the row of the input matrix - * by the pivot element */ - *pInT1 = *pInT1 / in; - pInT1++; - } - for (j = 0U; j < numCols; j++) - { - /* Divide each element of the row of the destination matrix - * by the pivot element */ - *pOutT1 = *pOutT1 / in; - pOutT1++; - } - - /* Replace the rows with the sum of that row and a multiple of row i - * so that each new element in column i above row i is zero.*/ - - /* Temporary pointers for input and destination matrices */ - pInT1 = pIn; - pOutT1 = pOut; - - for (i = 0U; i < numRows; i++) - { - /* Check for the pivot element */ - if (i == l) - { - /* If the processing element is the pivot element, - only the columns to the right are to be processed */ - pInT1 += numCols - l; - pOutT1 += numCols; - } - else - { - /* Element of the reference row */ - in = *pInT1; - - /* Working pointers for input and destination pivot rows */ - pPRT_in = pPivotRowIn; - pPRT_pDst = pPivotRowDst; - - /* Loop over the number of columns to the right of the pivot element, - to replace the elements in the input matrix */ - for (j = 0U; j < (numCols - l); j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pInT1 = *pInT1 - (in * *pPRT_in++); - pInT1++; - } - /* Loop over the number of columns to - replace the elements in the destination matrix */ - for (j = 0U; j < numCols; j++) - { - /* Replace the element by the sum of that row - and a multiple of the reference row */ - *pOutT1 = *pOutT1 - (in * *pPRT_pDst++); - pOutT1++; - } - - } - /* Increment the temporary input pointer */ - pInT1 = pInT1 + l; - } - /* Increment the input pointer */ - pIn++; - - /* Decrement the loop counter */ - loopCnt--; - /* Increment the index modifier */ - l++; - } - - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - - if ((flag != 1U) && (in == 0.0f)) - { - pIn = pSrc->pData; - for (i = 0; i < numRows * numCols; i++) - { - if (pIn[i] != 0.0f) - break; - } - - if (i == numRows * numCols) - status = ARM_MATH_SINGULAR; - } - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixInv group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_f32.c deleted file mode 100644 index a038f2f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_f32.c +++ /dev/null @@ -1,274 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_mult_f32.c - * Description: Floating-point matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixMult Matrix Multiplication - * - * Multiplies two matrices. - * - * \image html MatrixMultiplication.gif "Multiplication of two 3 x 3 matrices" - - * Matrix multiplication is only defined if the number of columns of the - * first matrix equals the number of rows of the second matrix. - * Multiplying an M x N matrix with an N x P matrix results - * in an M x P matrix. - * When matrix size checking is enabled, the functions check: (1) that the inner dimensions of - * pSrcA and pSrcB are equal; and (2) that the size of the output - * matrix equals the outer dimensions of pSrcA and pSrcB. - */ - - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Floating-point matrix multiplication. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_mult_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *px; /* Temporary output data matrix pointer */ - float32_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t in1, in2, in3, in4; - uint16_t col, i = 0U, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0U; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0.0f; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2U; - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - in3 = *pIn2; - pIn2 += numColsB; - in1 = pIn1[0]; - in2 = pIn1[1]; - sum += in1 * in3; - in4 = *pIn2; - pIn2 += numColsB; - sum += in2 * in4; - - in3 = *pIn2; - pIn2 += numColsB; - in1 = pIn1[2]; - in2 = pIn1[3]; - sum += in1 * in3; - in4 = *pIn2; - pIn2 += numColsB; - sum += in2 * in4; - pIn1 += 4U; - - /* Decrement the loop count */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining MACs here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pIn1++ * (*pIn2); - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = sum; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = pSrcB->pData + j; - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - -#else - - /* Run the below code for Cortex-M0 */ - - float32_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - uint16_t col, i = 0U, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pInA with each column in pInB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0.0f; - - /* Initialize the pointer pIn1 to point to the starting address of the row being processed */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pIn1++ * (*pIn2); - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = sum; - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while (col > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q15.c deleted file mode 100644 index 8d720c7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q15.c +++ /dev/null @@ -1,525 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_mult_fast_q15.c - * Description: Q15 matrix multiplication (fast variant) - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - - -/** - * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @param[in] *pState points to the array for storing intermediate results - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The difference between the function arm_mat_mult_q15() and this fast variant is that - * the fast variant use a 32-bit rather than a 64-bit accumulator. - * The result of each 1.15 x 1.15 multiplication is truncated to - * 2.30 format. These intermediate results are accumulated in a 32-bit register in 2.30 - * format. Finally, the accumulator is saturated and converted to a 1.15 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides - * less precision since it discards the low 16 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down one of the input matrices by log2(numColsA) bits to - * avoid overflows, as a total of numColsA additions are computed internally for each - * output element. - * - * \par - * See arm_mat_mult_q15() for a slower implementation of this function - * which uses 64-bit accumulation to provide higher precision. - */ - -arm_status arm_mat_mult_fast_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst, - q15_t * pState) -{ - q31_t sum; /* accumulator */ - q15_t *pSrcBT = pState; /* input data matrix pointer for transpose */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsB = pSrcB->numRows; /* number of rows of input matrix A */ - uint32_t col, i = 0U, row = numRowsB, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* Temporary variable to hold the input value */ - q31_t inA1, inA2, inB1, inB2; - q31_t sum2, sum3, sum4; - q15_t *pInA2, *pInB2, *px2; - uint32_t j = 0; - -#else - - q15_t in; /* Temporary variable to hold the input value */ - q15_t inA1, inA2, inB1, inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Matrix transpose */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - col = numColsB >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pSrcBT + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (col > 0U) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#else - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4U; - - while (col > 0U) - { - /* Read and store the input element in the destination */ - *px = *pInB++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* Reset the variables for the usage in the following multiplication process */ - row = numRowsA; - i = 0U; - px = pDst->pData; - -#ifndef UNALIGNED_SUPPORT_DISABLE - /* Process two rows from matrix A at a time and output two rows at a time */ - row = row >> 1; - px2 = px + numColsB; -#endif - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - while (row > 0U) - { - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the transposed pSrcB data */ - pInB = pSrcBT; - -#ifndef UNALIGNED_SUPPORT_DISABLE - /* Process two (transposed) columns from matrix B at a time */ - col = col >> 1; - j = 0; -#endif - - /* column loop */ - while (col > 0U) - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pInA to point to the starting address of the column being processed */ - pInA = pSrcA->pData + i; - -#ifndef UNALIGNED_SUPPORT_DISABLE - sum2 = 0; - sum3 = 0; - sum4 = 0; - pInB = pSrcBT + j; - pInA2 = pInA + numColsA; - pInB2 = pInB + numRowsB; - - /* Read in two elements at once - alows dual MAC instruction */ - colCnt = numColsA >> 1; -#else - colCnt = numColsA >> 2; -#endif - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - inA1 = *__SIMD32(pInA)++; - inB1 = *__SIMD32(pInB)++; - inA2 = *__SIMD32(pInA2)++; - inB2 = *__SIMD32(pInB2)++; - - sum = __SMLAD(inA1, inB1, sum); - sum2 = __SMLAD(inA1, inB2, sum2); - sum3 = __SMLAD(inA2, inB1, sum3); - sum4 = __SMLAD(inA2, inB2, sum4); - -#else - - inA1 = *pInA; - inB1 = *pInB; - sum += inA1 * inB1; - - inA2 = pInA[1]; - inB2 = pInB[1]; - sum += inA2 * inB2; - - inA1 = pInA[2]; - inB1 = pInB[2]; - sum += inA1 * inB1; - - inA2 = pInA[3]; - inB2 = pInB[3]; - sum += inA2 * inB2; - - pInA += 4; - pInB += 4; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - colCnt--; - } - - /* process odd column samples */ -#ifndef UNALIGNED_SUPPORT_DISABLE - if (numColsA & 1U) { - inA1 = *pInA++; - inB1 = *pInB++; - inA2 = *pInA2++; - inB2 = *pInB2++; - sum += inA1 * inB1; - sum2 += inA1 * inB2; - sum3 += inA2 * inB1; - sum4 += inA2 * inB2; - } -#else - colCnt = numColsA % 0x4U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += (q31_t) (*pInA++) * (*pInB++); - - colCnt--; - } -#endif - - /* Saturate and store the result in the destination buffer */ - *px++ = (q15_t) (sum >> 15); - -#ifndef UNALIGNED_SUPPORT_DISABLE - *px++ = (q15_t) (sum2 >> 15); - *px2++ = (q15_t) (sum3 >> 15); - *px2++ = (q15_t) (sum4 >> 15); - j += numRowsB * 2; -#endif - - /* Decrement the column loop counter */ - col--; - - } - - i = i + numColsA; - -#ifndef UNALIGNED_SUPPORT_DISABLE - i = i + numColsA; - px = px2 + (numColsB & 1U); - px2 = px + numColsB; -#endif - - /* Decrement the row loop counter */ - row--; - - } - - /* Compute any remaining odd row/column below */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Compute remaining output column */ - if (numColsB & 1U) { - - /* Avoid redundant computation of last element */ - row = numRowsA & (~0x1); - - /* Point to remaining unfilled column in output matrix */ - px = pDst->pData+numColsB-1; - pInA = pSrcA->pData; - - /* row loop */ - while (row > 0) - { - - /* point to last column in matrix B */ - pInB = pSrcBT + numRowsB*(numColsB-1); - - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Compute 4 columns at once */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - inA1 = *__SIMD32(pInA)++; - inA2 = *__SIMD32(pInA)++; - inB1 = *__SIMD32(pInB)++; - inB2 = *__SIMD32(pInB)++; - - sum = __SMLAD(inA1, inB1, sum); - sum = __SMLAD(inA2, inB2, sum); - - /* Decrement the loop counter */ - colCnt--; - } - - colCnt = numColsA & 3U; - while (colCnt > 0U) { - sum += (q31_t) (*pInA++) * (*pInB++); - colCnt--; - } - - /* Store the result in the destination buffer */ - *px = (q15_t) (sum >> 15); - px += numColsB; - - /* Decrement the row loop counter */ - row--; - } - } - - /* Compute remaining output row */ - if (numRowsA & 1U) { - - /* point to last row in output matrix */ - px = pDst->pData+(numColsB)*(numRowsA-1); - - pInB = pSrcBT; - col = numColsB; - i = 0U; - - /* col loop */ - while (col > 0) - { - - /* point to last row in matrix A */ - pInA = pSrcA->pData + (numRowsA-1)*numColsA; - - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Compute 4 columns at once */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - inA1 = *__SIMD32(pInA)++; - inA2 = *__SIMD32(pInA)++; - inB1 = *__SIMD32(pInB)++; - inB2 = *__SIMD32(pInB)++; - - sum = __SMLAD(inA1, inB1, sum); - sum = __SMLAD(inA2, inB2, sum); - - /* Decrement the loop counter */ - colCnt--; - } - - colCnt = numColsA & 3U; - while (colCnt > 0U) { - sum += (q31_t) (*pInA++) * (*pInB++); - colCnt--; - } - - /* Store the result in the destination buffer */ - *px++ = (q15_t) (sum >> 15); - - /* Decrement the col loop counter */ - col--; - } - } - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q31.c deleted file mode 100644 index 78b33ef..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_fast_q31.c +++ /dev/null @@ -1,384 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_mult_fast_q31.c - * Description: Q31 matrix multiplication (fast variant) - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The difference between the function arm_mat_mult_q31() and this fast variant is that - * the fast variant use a 32-bit rather than a 64-bit accumulator. - * The result of each 1.31 x 1.31 multiplication is truncated to - * 2.30 format. These intermediate results are accumulated in a 32-bit register in 2.30 - * format. Finally, the accumulator is saturated and converted to a 1.31 result. - * - * \par - * The fast version has the same overflow behavior as the standard version but provides - * less precision since it discards the low 32 bits of each multiplication result. - * In order to avoid overflows completely the input signals must be scaled down. - * Scale down one of the input matrices by log2(numColsA) bits to - * avoid overflows, as a total of numColsA additions are computed internally for each - * output element. - * - * \par - * See arm_mat_mult_q31() for a slower implementation of this function - * which uses 64-bit accumulation to provide higher precision. - */ - -arm_status arm_mat_mult_fast_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - q31_t *px; /* Temporary output data matrix pointer */ - q31_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint32_t col, i = 0U, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - q31_t inA1, inB1; - -#if defined (ARM_MATH_DSP) - - q31_t sum2, sum3, sum4; - q31_t inA2, inB2; - q31_t *pInA2; - q31_t *px2; - -#endif - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - - px = pDst->pData; - -#if defined (ARM_MATH_DSP) - row = row >> 1; - px2 = px + numColsB; -#endif - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - while (row > 0U) - { - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pInB = pSrcB->pData; - - j = 0U; - -#if defined (ARM_MATH_DSP) - col = col >> 1; -#endif - - /* column loop */ - while (col > 0U) - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate data pointers */ - pInA = pSrcA->pData + i; - pInB = pSrcB->pData + j; - -#if defined (ARM_MATH_DSP) - sum2 = 0; - sum3 = 0; - sum4 = 0; - pInA2 = pInA + numColsA; - colCnt = numColsA; -#else - colCnt = numColsA >> 2; -#endif - - /* matrix multiplication */ - while (colCnt > 0U) - { - -#if defined (ARM_MATH_DSP) - inA1 = *pInA++; - inB1 = pInB[0]; - inA2 = *pInA2++; - inB2 = pInB[1]; - pInB += numColsB; - - sum = __SMMLA(inA1, inB1, sum); - sum2 = __SMMLA(inA1, inB2, sum2); - sum3 = __SMMLA(inA2, inB1, sum3); - sum4 = __SMMLA(inA2, inB2, sum4); -#else - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - inB1 = *pInB; - pInB += numColsB; - inA1 = pInA[0]; - sum = __SMMLA(inA1, inB1, sum); - - inB1 = *pInB; - pInB += numColsB; - inA1 = pInA[1]; - sum = __SMMLA(inA1, inB1, sum); - - inB1 = *pInB; - pInB += numColsB; - inA1 = pInA[2]; - sum = __SMMLA(inA1, inB1, sum); - - inB1 = *pInB; - pInB += numColsB; - inA1 = pInA[3]; - sum = __SMMLA(inA1, inB1, sum); - - pInA += 4U; -#endif - - /* Decrement the loop counter */ - colCnt--; - } - -#ifdef ARM_MATH_CM0_FAMILY - /* If the columns of pSrcA is not a multiple of 4, compute any remaining output samples here. */ - colCnt = numColsA % 0x4U; - while (colCnt > 0U) - { - sum = __SMMLA(*pInA++, *pInB, sum); - pInB += numColsB; - colCnt--; - } - j++; -#endif - - /* Convert the result from 2.30 to 1.31 format and store in destination buffer */ - *px++ = sum << 1; - -#if defined (ARM_MATH_DSP) - *px++ = sum2 << 1; - *px2++ = sum3 << 1; - *px2++ = sum4 << 1; - j += 2; -#endif - - /* Decrement the column loop counter */ - col--; - - } - - i = i + numColsA; - -#if defined (ARM_MATH_DSP) - i = i + numColsA; - px = px2 + (numColsB & 1U); - px2 = px + numColsB; -#endif - - /* Decrement the row loop counter */ - row--; - - } - - /* Compute any remaining odd row/column below */ - -#if defined (ARM_MATH_DSP) - - /* Compute remaining output column */ - if (numColsB & 1U) { - - /* Avoid redundant computation of last element */ - row = numRowsA & (~0x1); - - /* Point to remaining unfilled column in output matrix */ - px = pDst->pData+numColsB-1; - pInA = pSrcA->pData; - - /* row loop */ - while (row > 0) - { - - /* point to last column in matrix B */ - pInB = pSrcB->pData + numColsB-1; - - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Compute 4 columns at once */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - inA1 = *pInA++; - inA2 = *pInA++; - inB1 = *pInB; - pInB += numColsB; - inB2 = *pInB; - pInB += numColsB; - sum = __SMMLA(inA1, inB1, sum); - sum = __SMMLA(inA2, inB2, sum); - - inA1 = *pInA++; - inA2 = *pInA++; - inB1 = *pInB; - pInB += numColsB; - inB2 = *pInB; - pInB += numColsB; - sum = __SMMLA(inA1, inB1, sum); - sum = __SMMLA(inA2, inB2, sum); - - /* Decrement the loop counter */ - colCnt--; - } - - colCnt = numColsA & 3U; - while (colCnt > 0U) { - sum = __SMMLA(*pInA++, *pInB, sum); - pInB += numColsB; - colCnt--; - } - - /* Convert the result from 2.30 to 1.31 format and store in destination buffer */ - *px = sum << 1; - px += numColsB; - - /* Decrement the row loop counter */ - row--; - } - } - - /* Compute remaining output row */ - if (numRowsA & 1U) { - - /* point to last row in output matrix */ - px = pDst->pData+(numColsB)*(numRowsA-1); - - col = numColsB; - i = 0U; - - /* col loop */ - while (col > 0) - { - - /* point to last row in matrix A */ - pInA = pSrcA->pData + (numRowsA-1)*numColsA; - pInB = pSrcB->pData + i; - - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Compute 4 columns at once */ - colCnt = numColsA >> 2; - - /* matrix multiplication */ - while (colCnt > 0U) - { - inA1 = *pInA++; - inA2 = *pInA++; - inB1 = *pInB; - pInB += numColsB; - inB2 = *pInB; - pInB += numColsB; - sum = __SMMLA(inA1, inB1, sum); - sum = __SMMLA(inA2, inB2, sum); - - inA1 = *pInA++; - inA2 = *pInA++; - inB1 = *pInB; - pInB += numColsB; - inB2 = *pInB; - pInB += numColsB; - sum = __SMMLA(inA1, inB1, sum); - sum = __SMMLA(inA2, inB2, sum); - - /* Decrement the loop counter */ - colCnt--; - } - - colCnt = numColsA & 3U; - while (colCnt > 0U) { - sum = __SMMLA(*pInA++, *pInB, sum); - pInB += numColsB; - colCnt--; - } - - /* Saturate and store the result in the destination buffer */ - *px++ = sum << 1; - i++; - - /* Decrement the col loop counter */ - col--; - } - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q15.c deleted file mode 100644 index 3244f47..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q15.c +++ /dev/null @@ -1,457 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_mult_q15.c - * Description: Q15 matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - - -/** - * @brief Q15 matrix multiplication - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @param[in] *pState points to the array for storing intermediate results (Unused) - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. The inputs to the - * multiplications are in 1.15 format and multiplications yield a 2.30 result. - * The 2.30 intermediate - * results are accumulated in a 64-bit accumulator in 34.30 format. This approach - * provides 33 guard bits and there is no risk of overflow. The 34.30 result is then - * truncated to 34.15 format by discarding the low 15 bits and then saturated to - * 1.15 format. - * - * \par - * Refer to arm_mat_mult_fast_q15() for a faster but less precise version of this function for Cortex-M3 and Cortex-M4. - * - */ - -arm_status arm_mat_mult_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst, - q15_t * pState) -{ - q63_t sum; /* accumulator */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t *pSrcBT = pState; /* input data matrix pointer for transpose */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsB = pSrcB->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0U, row = numRowsB, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* Temporary variable to hold the input value */ - q31_t pSourceA1, pSourceB1, pSourceA2, pSourceB2; - -#else - - q15_t in; /* Temporary variable to hold the input value */ - q15_t inA1, inB1, inA2, inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Matrix transpose */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - col = numColsB >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pSrcBT + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (col > 0U) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read two elements from the row */ - in = *__SIMD32(pInB)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) in; - -#else - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *px = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *px = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - -#else - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Read one element from the row */ - in = *pInB++; - - /* Store one element in the destination */ - *px = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the column loop counter */ - col--; - } - - /* If the columns of pSrcB is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - col = numColsB % 0x4U; - - while (col > 0U) - { - /* Read and store the input element in the destination */ - *px = *pInB++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += numRowsB; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* Reset the variables for the usage in the following multiplication process */ - row = numRowsA; - i = 0U; - px = pDst->pData; - - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the transposed pSrcB data */ - pInB = pSrcBT; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Apply loop unrolling and compute 2 MACs simultaneously. */ - colCnt = numColsA >> 2; - - /* Initiate the pointer pIn1 to point to the starting address of the column being processed */ - pInA = pSrcA->pData + i; - - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* read real and imag values from pSrcA and pSrcB buffer */ - pSourceA1 = *__SIMD32(pInA)++; - pSourceB1 = *__SIMD32(pInB)++; - - pSourceA2 = *__SIMD32(pInA)++; - pSourceB2 = *__SIMD32(pInB)++; - - /* Multiply and Accumlates */ - sum = __SMLALD(pSourceA1, pSourceB1, sum); - sum = __SMLALD(pSourceA2, pSourceB2, sum); - -#else - /* read real and imag values from pSrcA and pSrcB buffer */ - inA1 = *pInA++; - inB1 = *pInB++; - inA2 = *pInA++; - /* Multiply and Accumlates */ - sum += inA1 * inB1; - inB2 = *pInB++; - - inA1 = *pInA++; - inB1 = *pInB++; - /* Multiply and Accumlates */ - sum += inA2 * inB2; - inA2 = *pInA++; - inB2 = *pInB++; - - /* Multiply and Accumlates */ - sum += inA1 * inB1; - sum += inA2 * inB2; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Decrement the loop counter */ - colCnt--; - } - - /* process remaining column samples */ - colCnt = numColsA & 3U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - sum += *pInA++ * *pInB++; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Saturate and store the result in the destination buffer */ - *px = (q15_t) (__SSAT((sum >> 15), 16)); - px++; - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - - i = i + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A of Q15 type */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B of Q15 type */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - q15_t *px; /* Temporary output data matrix pointer */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t col, i = 0U, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pSrcA */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q31_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 34.30 to 1.15 format and store the saturated value in destination buffer */ - /* Saturate and store the result in the destination buffer */ - *px++ = (q15_t) __SSAT((sum >> 15), 16); - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while (col > 0U); - - /* Update the pointer pSrcA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q31.c deleted file mode 100644 index 9bd2b97..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_mult_q31.c +++ /dev/null @@ -1,282 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_mult_q31.c - * Description: Q31 matrix multiplication - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixMult - * @{ - */ - -/** - * @brief Q31 matrix multiplication - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using an internal 64-bit accumulator. - * The accumulator has a 2.62 format and maintains full precision of the intermediate - * multiplication results but provides only a single guard bit. There is no saturation - * on intermediate additions. Thus, if the accumulator overflows it wraps around and - * distorts the result. The input signals should be scaled down to avoid intermediate - * overflows. The input is thus scaled down by log2(numColsA) bits - * to avoid overflows, as a total of numColsA additions are performed internally. - * The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 format to yield the final result. - * - * \par - * See arm_mat_mult_fast_q31() for a faster but less precise implementation of this function for Cortex-M3 and Cortex-M4. - * - */ - -arm_status arm_mat_mult_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - q63_t sum; /* Accumulator */ - uint16_t numRowsA = pSrcA->numRows; /* number of rows of input matrix A */ - uint16_t numColsB = pSrcB->numCols; /* number of columns of input matrix B */ - uint16_t numColsA = pSrcA->numCols; /* number of columns of input matrix A */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t col, i = 0U, j, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - q31_t a0, a1, a2, a3, b0, b1, b2, b3; - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - j = 0U; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pInA */ - pIn1 = pInA; - - /* Apply loop unrolling and compute 4 MACs simultaneously. */ - colCnt = numColsA >> 2; - - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - b0 = *pIn2; - pIn2 += numColsB; - - a0 = *pIn1++; - a1 = *pIn1++; - - b1 = *pIn2; - pIn2 += numColsB; - b2 = *pIn2; - pIn2 += numColsB; - - sum += (q63_t) a0 *b0; - sum += (q63_t) a1 *b1; - - a2 = *pIn1++; - a3 = *pIn1++; - - b3 = *pIn2; - pIn2 += numColsB; - - sum += (q63_t) a2 *b2; - sum += (q63_t) a3 *b3; - - /* Decrement the loop counter */ - colCnt--; - } - - /* If the columns of pSrcA is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - colCnt = numColsA % 0x4U; - - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q63_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 2.62 to 1.31 format and store in destination buffer */ - *px++ = (q31_t) (sum >> 31); - - /* Update the pointer pIn2 to point to the starting address of the next column */ - j++; - pIn2 = (pSrcB->pData) + j; - - /* Decrement the column loop counter */ - col--; - - } while (col > 0U); - -#else - - /* Run the below code for Cortex-M0 */ - - q31_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - uint16_t col, i = 0U, row = numRowsA, colCnt; /* loop counters */ - arm_status status; /* status of matrix multiplication */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrcA->numCols != pSrcB->numRows) || - (pSrcA->numRows != pDst->numRows) || (pSrcB->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* The following loop performs the dot-product of each row in pSrcA with each column in pSrcB */ - /* row loop */ - do - { - /* Output pointer is set to starting address of the row being processed */ - px = pOut + i; - - /* For every row wise process, the column loop counter is to be initiated */ - col = numColsB; - - /* For every row wise process, the pIn2 pointer is set - ** to the starting address of the pSrcB data */ - pIn2 = pSrcB->pData; - - /* column loop */ - do - { - /* Set the variable sum, that acts as accumulator, to zero */ - sum = 0; - - /* Initiate the pointer pIn1 to point to the starting address of pInA */ - pIn1 = pInA; - - /* Matrix A columns number of MAC operations are to be performed */ - colCnt = numColsA; - - /* matrix multiplication */ - while (colCnt > 0U) - { - /* c(m,n) = a(1,1)*b(1,1) + a(1,2) * b(2,1) + .... + a(m,p)*b(p,n) */ - /* Perform the multiply-accumulates */ - sum += (q63_t) * pIn1++ * *pIn2; - pIn2 += numColsB; - - /* Decrement the loop counter */ - colCnt--; - } - - /* Convert the result from 2.62 to 1.31 format and store in destination buffer */ - *px++ = (q31_t) clip_q63_to_q31(sum >> 31); - - /* Decrement the column loop counter */ - col--; - - /* Update the pointer pIn2 to point to the starting address of the next column */ - pIn2 = pInB + (numColsB - col); - - } while (col > 0U); - -#endif - - /* Update the pointer pInA to point to the starting address of the next row */ - i = i + numColsB; - pInA = pInA + numColsA; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixMult group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_f32.c deleted file mode 100644 index dbc385a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_f32.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_scale_f32.c - * Description: Multiplies a floating-point matrix by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixScale Matrix Scale - * - * Multiplies a matrix by a scalar. This is accomplished by multiplying each element in the - * matrix by the scalar. For example: - * \image html MatrixScale.gif "Matrix Scaling of a 3 x 3 matrix" - * - * The function checks to make sure that the input and output matrices are of the same size. - * - * In the fixed-point Q15 and Q31 functions, scale is represented by - * a fractional multiplication scaleFract and an arithmetic shift shift. - * The shift allows the gain of the scaling operation to exceed 1.0. - * The overall scale factor applied to the fixed-point data is - *
- *     scale = scaleFract * 2^shift.
- * 
- */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Floating-point matrix scaling. - * @param[in] *pSrc points to input matrix structure - * @param[in] scale scale factor to be applied - * @param[out] *pDst points to output matrix structure - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - * - */ - -arm_status arm_mat_scale_f32( - const arm_matrix_instance_f32 * pSrc, - float32_t scale, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - -#if defined (ARM_MATH_DSP) - - float32_t in1, in2, in3, in4; /* temporary variables */ - float32_t out1, out2, out3, out4; /* temporary variables */ - -#endif // #if defined (ARM_MATH_DSP) - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * scale */ - /* Scaling and results are stored in the destination buffer. */ - in1 = pIn[0]; - in2 = pIn[1]; - in3 = pIn[2]; - in4 = pIn[3]; - - out1 = in1 * scale; - out2 = in2 * scale; - out3 = in3 * scale; - out4 = in4 * scale; - - - pOut[0] = out1; - pOut[1] = out2; - pOut[2] = out3; - pOut[3] = out4; - - /* update pointers to process next sampels */ - pIn += 4U; - pOut += 4U; - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * scale */ - /* The results are stored in the destination buffer. */ - *pOut++ = (*pIn++) * scale; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q15.c deleted file mode 100644 index af664ca..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q15.c +++ /dev/null @@ -1,171 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_scale_q15.c - * Description: Multiplies a Q15 matrix by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Q15 matrix scaling. - * @param[in] *pSrc points to input matrix - * @param[in] scaleFract fractional portion of the scale factor - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.15 format. - * These are multiplied to yield a 2.30 intermediate result and this is shifted with saturation to 1.15 format. - */ - -arm_status arm_mat_scale_q15( - const arm_matrix_instance_q15 * pSrc, - q15_t scaleFract, - int32_t shift, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pIn = pSrc->pData; /* input data matrix pointer */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - int32_t totShift = 15 - shift; /* total shift to apply after scaling */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - -#if defined (ARM_MATH_DSP) - - q15_t in1, in2, in3, in4; - q31_t out1, out2, out3, out4; - q31_t inA1, inA2; - -#endif // #if defined (ARM_MATH_DSP) - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch */ - if ((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif // #ifdef ARM_MATH_MATRIX_CHECK - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - /* Loop Unrolling */ - blkCnt = numSamples >> 2; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - /* Reading 2 inputs from memory */ - inA1 = _SIMD32_OFFSET(pIn); - inA2 = _SIMD32_OFFSET(pIn + 2); - - /* C = A * scale */ - /* Scale the inputs and then store the 2 results in the destination buffer - * in single cycle by packing the outputs */ - out1 = (q31_t) ((q15_t) (inA1 >> 16) * scaleFract); - out2 = (q31_t) ((q15_t) inA1 * scaleFract); - out3 = (q31_t) ((q15_t) (inA2 >> 16) * scaleFract); - out4 = (q31_t) ((q15_t) inA2 * scaleFract); - - out1 = out1 >> totShift; - inA1 = _SIMD32_OFFSET(pIn + 4); - out2 = out2 >> totShift; - inA2 = _SIMD32_OFFSET(pIn + 6); - out3 = out3 >> totShift; - out4 = out4 >> totShift; - - in1 = (q15_t) (__SSAT(out1, 16)); - in2 = (q15_t) (__SSAT(out2, 16)); - in3 = (q15_t) (__SSAT(out3, 16)); - in4 = (q15_t) (__SSAT(out4, 16)); - - _SIMD32_OFFSET(pOut) = __PKHBT(in2, in1, 16); - _SIMD32_OFFSET(pOut + 2) = __PKHBT(in4, in3, 16); - - /* update pointers to process next sampels */ - pIn += 4U; - pOut += 4U; - - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - *pOut++ = - (q15_t) (__SSAT(((q31_t) (*pIn++) * scaleFract) >> totShift, 16)); - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q31.c deleted file mode 100644 index d190cf1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_scale_q31.c +++ /dev/null @@ -1,191 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_scale_q31.c - * Description: Multiplies a Q31 matrix by a scalar - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixScale - * @{ - */ - -/** - * @brief Q31 matrix scaling. - * @param[in] *pSrc points to input matrix - * @param[in] scaleFract fractional portion of the scale factor - * @param[in] shift number of bits to shift the result by - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The input data *pSrc and scaleFract are in 1.31 format. - * These are multiplied to yield a 2.62 intermediate result and this is shifted with saturation to 1.31 format. - */ - -arm_status arm_mat_scale_q31( - const arm_matrix_instance_q31 * pSrc, - q31_t scaleFract, - int32_t shift, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn = pSrc->pData; /* input data matrix pointer */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - int32_t totShift = shift + 1; /* shift to apply after scaling */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix scaling */ - q31_t in1, in2, out1; /* temporary variabels */ - -#if defined (ARM_MATH_DSP) - - q31_t in3, in4, out2, out3, out4; /* temporary variables */ - -#endif // #ifndef ARM_MAT_CM0 - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch */ - if ((pSrc->numRows != pDst->numRows) || (pSrc->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif // #ifdef ARM_MATH_MATRIX_CHECK - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrc->numRows * pSrc->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * k */ - /* Read values from input */ - in1 = *pIn; - in2 = *(pIn + 1); - in3 = *(pIn + 2); - in4 = *(pIn + 3); - - /* multiply input with scaler value */ - in1 = ((q63_t) in1 * scaleFract) >> 32; - in2 = ((q63_t) in2 * scaleFract) >> 32; - in3 = ((q63_t) in3 * scaleFract) >> 32; - in4 = ((q63_t) in4 * scaleFract) >> 32; - - /* apply shifting */ - out1 = in1 << totShift; - out2 = in2 << totShift; - - /* saturate the results. */ - if (in1 != (out1 >> totShift)) - out1 = 0x7FFFFFFF ^ (in1 >> 31); - - if (in2 != (out2 >> totShift)) - out2 = 0x7FFFFFFF ^ (in2 >> 31); - - out3 = in3 << totShift; - out4 = in4 << totShift; - - *pOut = out1; - *(pOut + 1) = out2; - - if (in3 != (out3 >> totShift)) - out3 = 0x7FFFFFFF ^ (in3 >> 31); - - if (in4 != (out4 >> totShift)) - out4 = 0x7FFFFFFF ^ (in4 >> 31); - - - *(pOut + 2) = out3; - *(pOut + 3) = out4; - - /* update pointers to process next sampels */ - pIn += 4U; - pOut += 4U; - - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) * k */ - /* Scale, saturate and then store the results in the destination buffer. */ - in1 = *pIn++; - - in2 = ((q63_t) in1 * scaleFract) >> 32; - - out1 = in2 << totShift; - - if (in2 != (out1 >> totShift)) - out1 = 0x7FFFFFFF ^ (in2 >> 31); - - *pOut++ = out1; - - /* Decrement the numSamples loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixScale group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_f32.c deleted file mode 100644 index 7c0b54e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_f32.c +++ /dev/null @@ -1,197 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_sub_f32.c - * Description: Floating-point matrix subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @defgroup MatrixSub Matrix Subtraction - * - * Subtract two matrices. - * \image html MatrixSubtraction.gif "Subraction of two 3 x 3 matrices" - * - * The functions check to make sure that - * pSrcA, pSrcB, and pDst have the same - * number of rows and columns. - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Floating-point matrix subtraction - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_sub_f32( - const arm_matrix_instance_f32 * pSrcA, - const arm_matrix_instance_f32 * pSrcB, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - float32_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - -#if defined (ARM_MATH_DSP) - - float32_t inA1, inA2, inB1, inB2, out1, out2; /* temporary variables */ - -#endif // #if defined (ARM_MATH_DSP) - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* out = sourceA - sourceB */ - out1 = inA1 - inB1; - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* out = sourceA - sourceB */ - out2 = inA2 - inB2; - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* out = sourceA - sourceB */ - out1 = inA1 - inB1; - - - /* out = sourceA - sourceB */ - out2 = inA2 - inB2; - - /* Store result in destination */ - pOut[2] = out1; - - /* Store result in destination */ - pOut[3] = out2; - - - /* update pointers to process next sampels */ - pIn1 += 4U; - pIn2 += 4U; - pOut += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (*pIn1++) - (*pIn2++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q15.c deleted file mode 100644 index 28e659f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q15.c +++ /dev/null @@ -1,148 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_sub_q15.c - * Description: Q15 Matrix subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Q15 matrix subtraction. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - */ - -arm_status arm_mat_sub_q15( - const arm_matrix_instance_q15 * pSrcA, - const arm_matrix_instance_q15 * pSrcB, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pInA = pSrcA->pData; /* input data matrix pointer A */ - q15_t *pInB = pSrcB->pData; /* input data matrix pointer B */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Apply loop unrolling */ - blkCnt = numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, Saturate and then store the results in the destination buffer. */ - *__SIMD32(pOut)++ = __QSUB16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - *__SIMD32(pOut)++ = __QSUB16(*__SIMD32(pInA)++, *__SIMD32(pInB)++); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __QSUB16(*pInA++, *pInB++); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract and then store the results in the destination buffer. */ - *pOut++ = (q15_t) __SSAT(((q31_t) * pInA++ - *pInB++), 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q31.c deleted file mode 100644 index 3bf5508..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_sub_q31.c +++ /dev/null @@ -1,196 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_sub_q31.c - * Description: Q31 matrix subtraction - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixSub - * @{ - */ - -/** - * @brief Q31 matrix subtraction. - * @param[in] *pSrcA points to the first input matrix structure - * @param[in] *pSrcB points to the second input matrix structure - * @param[out] *pDst points to output matrix structure - * @return The function returns either - * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. - * - * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] will be saturated. - */ - - -arm_status arm_mat_sub_q31( - const arm_matrix_instance_q31 * pSrcA, - const arm_matrix_instance_q31 * pSrcB, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn1 = pSrcA->pData; /* input data matrix pointer A */ - q31_t *pIn2 = pSrcB->pData; /* input data matrix pointer B */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t inA1, inB1; /* temporary variables */ - -#if defined (ARM_MATH_DSP) - - q31_t inA2, inB2; /* temporary variables */ - q31_t out1, out2; /* temporary variables */ - -#endif // #if defined (ARM_MATH_DSP) - - uint32_t numSamples; /* total number of elements in the matrix */ - uint32_t blkCnt; /* loop counters */ - arm_status status; /* status of matrix subtraction */ - - -#ifdef ARM_MATH_MATRIX_CHECK - /* Check for matrix mismatch condition */ - if ((pSrcA->numRows != pSrcB->numRows) || - (pSrcA->numCols != pSrcB->numCols) || - (pSrcA->numRows != pDst->numRows) || (pSrcA->numCols != pDst->numCols)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif - { - /* Total number of samples in the input matrix */ - numSamples = (uint32_t) pSrcA->numRows * pSrcA->numCols; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Loop Unrolling */ - blkCnt = numSamples >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, saturate and then store the results in the destination buffer. */ - /* Read values from source A */ - inA1 = pIn1[0]; - - /* Read values from source B */ - inB1 = pIn2[0]; - - /* Read values from source A */ - inA2 = pIn1[1]; - - /* Subtract and saturate */ - out1 = __QSUB(inA1, inB1); - - /* Read values from source B */ - inB2 = pIn2[1]; - - /* Read values from source A */ - inA1 = pIn1[2]; - - /* Subtract and saturate */ - out2 = __QSUB(inA2, inB2); - - /* Read values from source B */ - inB1 = pIn2[2]; - - /* Store result in destination */ - pOut[0] = out1; - pOut[1] = out2; - - /* Read values from source A */ - inA2 = pIn1[3]; - - /* Read values from source B */ - inB2 = pIn2[3]; - - /* Subtract and saturate */ - out1 = __QSUB(inA1, inB1); - - /* Subtract and saturate */ - out2 = __QSUB(inA2, inB2); - - /* Store result in destination */ - pOut[2] = out1; - pOut[3] = out2; - - /* update pointers to process next samples */ - pIn1 += 4U; - pIn2 += 4U; - pOut += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the numSamples is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = numSamples % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initialize blkCnt with number of samples */ - blkCnt = numSamples; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C(m,n) = A(m,n) - B(m,n) */ - /* Subtract, saturate and then store the results in the destination buffer. */ - inA1 = *pIn1++; - inB1 = *pIn2++; - - inA1 = __QSUB(inA1, inB1); - - *pOut++ = inA1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixSub group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_f32.c deleted file mode 100644 index 84165ce..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_f32.c +++ /dev/null @@ -1,206 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_trans_f32.c - * Description: Floating-point matrix transpose - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @defgroup MatrixTrans Matrix Transpose - * - * Tranposes a matrix. - * Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix. - * \image html MatrixTranspose.gif "Transpose of a 3 x 3 matrix" - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/** - * @brief Floating-point matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - - -arm_status arm_mat_trans_f32( - const arm_matrix_instance_f32 * pSrc, - arm_matrix_instance_f32 * pDst) -{ - float32_t *pIn = pSrc->pData; /* input data matrix pointer */ - float32_t *pOut = pDst->pData; /* output data matrix pointer */ - float32_t *px; /* Temporary output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of rows */ - uint16_t nColumns = pSrc->numCols; /* number of columns */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t blkCnt, i = 0U, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* Loop Unrolling */ - blkCnt = nColumns >> 2; - - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) /* column loop */ - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - - /* Perform matrix transpose for last 3 samples here. */ - blkCnt = nColumns % 0x4U; - - while (blkCnt > 0U) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - uint16_t col, i = 0U, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* Initialize column loop counter */ - col = nColumns; - - while (col > 0U) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - col--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - i++; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); /* row loop end */ - - /* Set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q15.c deleted file mode 100644 index 6ba0904..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q15.c +++ /dev/null @@ -1,272 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_trans_q15.c - * Description: Q15 matrix transpose - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/* - * @brief Q15 matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_trans_q15( - const arm_matrix_instance_q15 * pSrc, - arm_matrix_instance_q15 * pDst) -{ - q15_t *pSrcA = pSrc->pData; /* input data matrix pointer */ - q15_t *pOut = pDst->pData; /* output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of nRows */ - uint16_t nColumns = pSrc->numCols; /* number of nColumns */ - uint16_t col, row = nRows, i = 0U; /* row and column loop counters */ - arm_status status; /* status of matrix transpose */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ -#ifndef UNALIGNED_SUPPORT_DISABLE - - q31_t in; /* variable to hold temporary output */ - -#else - - q15_t in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - - /* Apply loop unrolling and exchange the columns with row elements */ - col = nColumns >> 2U; - - /* The pointer pOut is set to starting address of the column being processed */ - pOut = pDst->pData + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (col > 0U) - { -#ifndef UNALIGNED_SUPPORT_DISABLE - - /* Read two elements from the row */ - in = *__SIMD32(pSrcA)++; - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) in; - -#else - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Unpack and store the second element in the destination */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *pOut = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read two elements from the row */ -#ifndef ARM_MATH_BIG_ENDIAN - - in = *__SIMD32(pSrcA)++; - -#else - - in = *__SIMD32(pSrcA)++; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Unpack and store one element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) in; - -#else - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Unpack and store the second element in the destination */ -#ifndef ARM_MATH_BIG_ENDIAN - - *pOut = (q15_t) ((in & (q31_t) 0xffff0000) >> 16); - -#else - - *pOut = (q15_t) in; - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - -#else - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - - /* Update the pointer px to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Read one element from the row */ - in = *pSrcA++; - - /* Store one element in the destination */ - *pOut = in; - -#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Decrement the column loop counter */ - col--; - } - - /* Perform matrix transpose for last 3 samples here. */ - col = nColumns % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer pOut is set to starting address of the column being processed */ - pOut = pDst->pData + i; - - /* Initialize column loop counter */ - col = nColumns; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (col > 0U) - { - /* Read and store the input element in the destination */ - *pOut = *pSrcA++; - - /* Update the pointer pOut to point to the next row of the transposed matrix */ - pOut += nRows; - - /* Decrement the column loop counter */ - col--; - } - - i++; - - /* Decrement the row loop counter */ - row--; - - } while (row > 0U); - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q31.c deleted file mode 100644 index 6f698e0..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/MatrixFunctions/arm_mat_trans_q31.c +++ /dev/null @@ -1,198 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mat_trans_q31.c - * Description: Q31 matrix transpose - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupMatrix - */ - -/** - * @addtogroup MatrixTrans - * @{ - */ - -/* - * @brief Q31 matrix transpose. - * @param[in] *pSrc points to the input matrix - * @param[out] *pDst points to the output matrix - * @return The function returns either ARM_MATH_SIZE_MISMATCH - * or ARM_MATH_SUCCESS based on the outcome of size checking. - */ - -arm_status arm_mat_trans_q31( - const arm_matrix_instance_q31 * pSrc, - arm_matrix_instance_q31 * pDst) -{ - q31_t *pIn = pSrc->pData; /* input data matrix pointer */ - q31_t *pOut = pDst->pData; /* output data matrix pointer */ - q31_t *px; /* Temporary output data matrix pointer */ - uint16_t nRows = pSrc->numRows; /* number of nRows */ - uint16_t nColumns = pSrc->numCols; /* number of nColumns */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - uint16_t blkCnt, i = 0U, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* Apply loop unrolling and exchange the columns with row elements */ - blkCnt = nColumns >> 2U; - - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - - /* Perform matrix transpose for last 3 samples here. */ - blkCnt = nColumns % 0x4U; - - while (blkCnt > 0U) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - blkCnt--; - } - -#else - - /* Run the below code for Cortex-M0 */ - - uint16_t col, i = 0U, row = nRows; /* loop counters */ - arm_status status; /* status of matrix transpose */ - - -#ifdef ARM_MATH_MATRIX_CHECK - - /* Check for matrix mismatch condition */ - if ((pSrc->numRows != pDst->numCols) || (pSrc->numCols != pDst->numRows)) - { - /* Set status as ARM_MATH_SIZE_MISMATCH */ - status = ARM_MATH_SIZE_MISMATCH; - } - else -#endif /* #ifdef ARM_MATH_MATRIX_CHECK */ - - { - /* Matrix transpose by exchanging the rows with columns */ - /* row loop */ - do - { - /* The pointer px is set to starting address of the column being processed */ - px = pOut + i; - - /* Initialize column loop counter */ - col = nColumns; - - while (col > 0U) - { - /* Read and store the input element in the destination */ - *px = *pIn++; - - /* Update the pointer px to point to the next row of the transposed matrix */ - px += nRows; - - /* Decrement the column loop counter */ - col--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - i++; - - /* Decrement the row loop counter */ - row--; - - } - while (row > 0U); /* row loop end */ - - /* set status as ARM_MATH_SUCCESS */ - status = ARM_MATH_SUCCESS; - } - - /* Return to application */ - return (status); -} - -/** - * @} end of MatrixTrans group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_f32.c deleted file mode 100644 index a0a68ac..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_f32.c +++ /dev/null @@ -1,170 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_max_f32.c - * Description: Maximum value of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup Max Maximum - * - * Computes the maximum value of an array of data. - * The function returns both the maximum value and its position within the array. - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2U; - } - - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - float32_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the maximum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q15.c deleted file mode 100644 index 67d5e34..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q15.c +++ /dev/null @@ -1,162 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_max_q15.c - * Description: Maximum value of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2U; - } - - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q15_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the maximum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q31.c deleted file mode 100644 index 5d34bbd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q31.c +++ /dev/null @@ -1,162 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_max_q31.c - * Description: Maximum value of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2U; - } - - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q31_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the maximum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q7.c deleted file mode 100644 index 72f6e5e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_max_q7.c +++ /dev/null @@ -1,162 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_max_q7.c - * Description: Maximum value of a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup Max - * @{ - */ - - -/** - * @brief Maximum value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult maximum value returned here - * @param[out] *pIndex index of maximum value returned here - * @return none. - */ - -void arm_max_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t maxVal1, maxVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 1U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 2U; - } - - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - maxVal2 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and its index */ - out = maxVal1; - outIndex = count + 3U; - } - - /* compare for the maximum value */ - if (out < maxVal2) - { - /* Update the maximum value and its index */ - out = maxVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q7_t maxVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize maxVal to the next consecutive values one by one */ - maxVal1 = *pSrc++; - - /* compare for the maximum value */ - if (out < maxVal1) - { - /* Update the maximum value and it's index */ - out = maxVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the maximum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Max group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_f32.c deleted file mode 100644 index 85a3b16..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_f32.c +++ /dev/null @@ -1,125 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mean_f32.c - * Description: Mean value of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup mean Mean - * - * Calculates the mean of the input vector. Mean is defined as the average of the elements in the vector. - * The underlying algorithm is used: - * - *
- * 	Result = (pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]) / blockSize;
- * 
- * - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup mean - * @{ - */ - - -/** - * @brief Mean value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - */ - -void arm_mean_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - sum += in1; - sum += in2; - sum += in3; - sum += in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = sum / (float32_t) blockSize; -} - -/** - * @} end of mean group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q15.c deleted file mode 100644 index 7bf55c2..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q15.c +++ /dev/null @@ -1,120 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mean_q15.c - * Description: Mean value of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - - -/** - * @brief Mean value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.15 format and is accumulated in a 32-bit - * accumulator in 17.15 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is saturated and truncated to yield a result of 1.15 format. - * - */ - -void arm_mean_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q15_t) (sum / (q31_t)blockSize); -} - -/** - * @} end of mean group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q31.c deleted file mode 100644 index ea83ced..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q31.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mean_q31.c - * Description: Mean value of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - - -/** - * @brief Mean value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - *\par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.31 format and is accumulated in a 64-bit - * accumulator in 33.31 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is truncated to yield a result of 1.31 format. - * - */ - -void arm_mean_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - sum += in1; - sum += in2; - sum += in3; - sum += in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q31_t) (sum / (int32_t) blockSize); -} - -/** - * @} end of mean group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q7.c deleted file mode 100644 index a7bdfb8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_mean_q7.c +++ /dev/null @@ -1,120 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_mean_q7.c - * Description: Mean value of a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup mean - * @{ - */ - - -/** - * @brief Mean value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult mean value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.7 format and is accumulated in a 32-bit - * accumulator in 25.7 format. - * There is no risk of internal overflow with this approach, and the - * full precision of intermediate result is preserved. - * Finally, the accumulator is truncated to yield a result of 1.7 format. - * - */ - -void arm_mean_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in = *__SIMD32(pSrc)++; - - sum += ((in << 24U) >> 24U); - sum += ((in << 16U) >> 24U); - sum += ((in << 8U) >> 24U); - sum += (in >> 24U); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - /* Store the result to the destination */ - *pResult = (q7_t) (sum / (int32_t) blockSize); -} - -/** - * @} end of mean group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_f32.c deleted file mode 100644 index 858b0a2..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_f32.c +++ /dev/null @@ -1,170 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_min_f32.c - * Description: Minimum value of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup Min Minimum - * - * Computes the minimum value of an array of data. - * The function returns both the minimum value and its position within the array. - * There are separate functions for floating-point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - */ - -void arm_min_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2U; - } - - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - float32_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the minimum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q15.c deleted file mode 100644 index fdc32b7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q15.c +++ /dev/null @@ -1,163 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_min_q15.c - * Description: Minimum value of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - */ - -void arm_min_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q15_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2U; - } - - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q15_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the minimum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q31.c deleted file mode 100644 index fc4c155..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q31.c +++ /dev/null @@ -1,163 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_min_q31.c - * Description: Minimum value of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - */ - -void arm_min_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2U; - } - - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q31_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the minimum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q7.c deleted file mode 100644 index 50362e6..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_min_q7.c +++ /dev/null @@ -1,163 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_min_q7.c - * Description: Minimum value of a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - - -/** - * @addtogroup Min - * @{ - */ - - -/** - * @brief Minimum value of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult minimum value returned here - * @param[out] *pIndex index of minimum value returned here - * @return none. - */ - -void arm_min_q7( - q7_t * pSrc, - uint32_t blockSize, - q7_t * pResult, - uint32_t * pIndex) -{ -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q7_t minVal1, minVal2, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex, count; /* loop counter */ - - /* Initialise the count value. */ - count = 0U; - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - /* Loop unrolling */ - blkCnt = (blockSize - 1U) >> 2U; - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 1U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 2U; - } - - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - minVal2 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and its index */ - out = minVal1; - outIndex = count + 3U; - } - - /* compare for the minimum value */ - if (out > minVal2) - { - /* Update the minimum value and its index */ - out = minVal2; - outIndex = count + 4U; - } - - count += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* if (blockSize - 1U) is not multiple of 4 */ - blkCnt = (blockSize - 1U) % 4U; - -#else - /* Run the below code for Cortex-M0 */ - - q7_t minVal1, out; /* Temporary variables to store the output value. */ - uint32_t blkCnt, outIndex; /* loop counter */ - - /* Initialise the index value to zero. */ - outIndex = 0U; - /* Load first input value that act as reference value for comparision */ - out = *pSrc++; - - blkCnt = (blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* Initialize minVal to the next consecutive values one by one */ - minVal1 = *pSrc++; - - /* compare for the minimum value */ - if (out > minVal1) - { - /* Update the minimum value and it's index */ - out = minVal1; - outIndex = blockSize - blkCnt; - } - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the minimum value and it's index into destination pointers */ - *pResult = out; - *pIndex = outIndex; -} - -/** - * @} end of Min group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_f32.c deleted file mode 100644 index 1426735..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_f32.c +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_power_f32.c - * Description: Sum of the squares of the elements of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup power Power - * - * Calculates the sum of the squares of the elements in the input vector. - * The underlying algorithm is used: - * - *
- * 	Result = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + pSrc[2] * pSrc[2] + ... + pSrc[blockSize-1] * pSrc[blockSize-1];
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup power - * @{ - */ - - -/** - * @brief Sum of the squares of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - */ - - -void arm_power_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* accumulator */ - float32_t in; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* compute power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result to the destination */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q15.c deleted file mode 100644 index 6d95f4d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q15.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_power_q15.c - * Description: Sum of the squares of the elements of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 34.30 format. - * - */ - -void arm_power_q15( - q15_t * pSrc, - uint32_t blockSize, - q63_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in32; /* Temporary variable to store input value */ - q15_t in16; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in32 = *__SIMD32(pSrc)++; - sum = __SMLALD(in32, in32, sum); - in32 = *__SIMD32(pSrc)++; - sum = __SMLALD(in32, in32, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in16 = *pSrc++; - sum = __SMLALD(in16, in16, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - -#else - /* Run the below code for Cortex-M0 */ - - q15_t in; /* Temporary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q31_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Store the results in 34.30 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q31.c deleted file mode 100644 index 16be249..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q31.c +++ /dev/null @@ -1,129 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_power_q31.c - * Description: Sum of the squares of the elements of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.31 format. - * Intermediate multiplication yields a 2.62 format, and this - * result is truncated to 2.48 format by discarding the lower 14 bits. - * The 2.48 result is then added without saturation to a 64-bit accumulator in 16.48 format. - * With 15 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 16.48 format. - * - */ - -void arm_power_q31( - q31_t * pSrc, - uint32_t blockSize, - q63_t * pResult) -{ - q63_t sum = 0; /* Temporary result storage */ - q31_t in; - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power then shift intermediate results by 14 bits to maintain 16.48 format and then store the result in a temporary variable sum, providing 15 guard bits. */ - in = *pSrc++; - sum += ((q63_t) in * in) >> 14U; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14U; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14U; - - in = *pSrc++; - sum += ((q63_t) in * in) >> 14U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q63_t) in * in) >> 14U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the results in 16.48 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q7.c deleted file mode 100644 index 24306cd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_power_q7.c +++ /dev/null @@ -1,127 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_power_q7.c - * Description: Sum of the squares of the elements of a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup power - * @{ - */ - -/** - * @brief Sum of the squares of the elements of a Q7 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult sum of the squares value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 32-bit internal accumulator. - * The input is represented in 1.7 format. - * Intermediate multiplication yields a 2.14 format, and this - * result is added without saturation to an accumulator in 18.14 format. - * With 17 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the return result is in 18.14 format. - * - */ - -void arm_power_q7( - q7_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q31_t sum = 0; /* Temporary result storage */ - q7_t in; /* Temporary variable to store input */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t input1; /* Temporary variable to store packed input */ - q31_t in1, in2; /* Temporary variables to store input */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* Reading two inputs of pSrc vector and packing */ - input1 = *__SIMD32(pSrc)++; - - in1 = __SXTB16(__ROR(input1, 8)); - in2 = __SXTB16(input1); - - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* calculate power and accumulate to accumulator */ - sum = __SMLAD(in1, in1, sum); - sum = __SMLAD(in2, in2, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute Power and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += ((q15_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Store the result in 18.14 format */ - *pResult = sum; -} - -/** - * @} end of power group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_f32.c deleted file mode 100644 index 8d1b708..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_f32.c +++ /dev/null @@ -1,127 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rms_f32.c - * Description: Root mean square value of an array of F32 type - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup RMS Root mean square (RMS) - * - * - * Calculates the Root Mean Sqaure of the elements in the input vector. - * The underlying algorithm is used: - * - *
- * 	Result = sqrt(((pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]) / blockSize));
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup RMS - * @{ - */ - - -/** - * @brief Root Mean Square of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - */ - -void arm_rms_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Accumulator */ - float32_t in; /* Tempoprary variable to store input value */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the result in a temporary variable, sum */ - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Rms and store the result in the destination */ - arm_sqrt_f32(sum / (float32_t) blockSize, pResult); -} - -/** - * @} end of RMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q15.c deleted file mode 100644 index d0e61ca..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q15.c +++ /dev/null @@ -1,139 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rms_q15.c - * Description: Root Mean Square of the elements of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup RMS - * @{ - */ - -/** - * @brief Root Mean Square of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - * - */ - -void arm_rms_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q63_t sum = 0; /* accumulator */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in; /* temporary variable to store the input value */ - q15_t in1; /* temporary variable to store the input value */ - uint32_t blkCnt; /* loop counter */ - - /* loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *__SIMD32(pSrc)++; - sum = __SMLALD(in, in, sum); - in = *__SIMD32(pSrc)++; - sum = __SMLALD(in, in, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in1 = *pSrc++; - sum = __SMLALD(in1, in1, sum); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Truncating and saturating the accumulator to 1.15 format */ - /* Store the result in the destination */ - arm_sqrt_q15(__SSAT((sum / (q63_t)blockSize) >> 15, 16), pResult); - -#else - /* Run the below code for Cortex-M0 */ - - q15_t in; /* temporary variable to store the input value */ - uint32_t blkCnt; /* loop counter */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += ((q31_t) in * in); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Truncating and saturating the accumulator to 1.15 format */ - /* Store the result in the destination */ - arm_sqrt_q15(__SSAT((sum / (q63_t)blockSize) >> 15, 16), pResult); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of RMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q31.c deleted file mode 100644 index cb3c58e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_rms_q31.c +++ /dev/null @@ -1,137 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rms_q31.c - * Description: Root Mean Square of the elements of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup RMS - * @{ - */ - - -/** - * @brief Root Mean Square of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult rms value returned here - * @return none. - * - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, and intermediate multiplication - * yields a 2.62 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a single guard bit. - * There is no saturation on intermediate additions. - * If the accumulator overflows, it wraps around and distorts the result. - * In order to avoid overflows completely, the input signal must be scaled down by - * log2(blockSize) bits, as a total of blockSize additions are performed internally. - * Finally, the 2.62 accumulator is right shifted by 31 bits to yield a 1.31 format value. - * - */ - -void arm_rms_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* accumulator */ - q31_t in; /* Temporary variable to store the input */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t in1, in2, in3, in4; /* Temporary input variables */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 8 outputs at a time. - ** a second loop below computes the remaining 1 to 7 samples. */ - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the result in a temporary variable, sum */ - /* read two samples from source buffer */ - in1 = pSrc[0]; - in2 = pSrc[1]; - - /* calculate power and accumulate to accumulator */ - sum += (q63_t) in1 *in1; - sum += (q63_t) in2 *in2; - - /* read two samples from source buffer */ - in3 = pSrc[2]; - in4 = pSrc[3]; - - /* calculate power and accumulate to accumulator */ - sum += (q63_t) in3 *in3; - sum += (q63_t) in4 *in4; - - - /* update source buffer to process next samples */ - pSrc += 4U; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 8, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - /* Run the below code for Cortex-M0 */ - - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A[0] * A[0] + A[1] * A[1] + A[2] * A[2] + ... + A[blockSize-1] * A[blockSize-1] */ - /* Compute sum of the squares and then store the results in a temporary variable, sum */ - in = *pSrc++; - sum += (q63_t) in *in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Convert data in 2.62 to 1.31 by 31 right shifts and saturate */ - /* Compute Rms and store the result in the destination vector */ - arm_sqrt_q31(clip_q63_to_q31((sum / (q63_t) blockSize) >> 31), pResult); -} - -/** - * @} end of RMS group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_f32.c deleted file mode 100644 index 9750b88..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_f32.c +++ /dev/null @@ -1,186 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_std_f32.c - * Description: Standard deviation of the elements of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup STD Standard deviation - * - * Calculates the standard deviation of the elements in the input vector. - * The underlying algorithm is used: - * - *
- *   Result = sqrt((sumOfSquares - sum2 / blockSize) / (blockSize - 1))
- *
- *     where, sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] * pSrc[blockSize-1]
- *
- *                     sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup STD - * @{ - */ - - -/** - * @brief Standard deviation of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - */ - -void arm_std_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t sum = 0.0f; /* Temporary result storage */ - float32_t sumOfSquares = 0.0f; /* Sum of squares */ - float32_t in; /* input value */ - uint32_t blkCnt; /* loop counter */ -#if defined (ARM_MATH_DSP) - float32_t meanOfSquares, mean, squareOfMean; /* Temporary variables */ -#else - float32_t squareOfSum; /* Square of Sum */ - float32_t var; /* Temporary varaince storage */ -#endif - - if (blockSize == 1U) - { - *pResult = 0; - return; - } - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++; - sum += in; - sumOfSquares += in * in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / ((float32_t) blockSize - 1.0f); - - /* Compute mean of all input values */ - mean = sum / (float32_t) blockSize; - - /* Compute square of mean */ - squareOfMean = (mean * mean) * (((float32_t) blockSize) / - ((float32_t) blockSize - 1.0f)); - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_f32((meanOfSquares - squareOfMean), pResult); - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += in * in; - - /* C = (A[0] + A[1] + ... + A[blockSize-1]) */ - /* Compute Sum of the input samples - * and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute the square of sum */ - squareOfSum = ((sum * sum) / (float32_t) blockSize); - - /* Compute the variance */ - var = ((sumOfSquares - squareOfSum) / (float32_t) (blockSize - 1.0f)); - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_f32(var, pResult); - -#endif /* #if defined (ARM_MATH_DSP) */ -} - -/** - * @} end of STD group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q15.c deleted file mode 100644 index 2f2f52e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q15.c +++ /dev/null @@ -1,174 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_std_q15.c - * Description: Standard deviation of an array of Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup STD - * @{ - */ - -/** - * @brief Standard deviation of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - */ - -void arm_std_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q31_t sum = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - uint32_t blkCnt; /* loop counter */ - q63_t sumOfSquares = 0; /* Accumulator */ -#if defined (ARM_MATH_DSP) - q31_t in; /* input value */ - q15_t in1; /* input value */ -#else - q15_t in; /* input value */ -#endif - - if (blockSize == 1U) - { - *pResult = 0; - return; - } - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in1 = *pSrc++; - sumOfSquares = __SMLALD(in1, in1, sumOfSquares); - sum += in1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = (q31_t)(sumOfSquares / (q63_t)(blockSize - 1U)); - - /* Compute square of mean */ - squareOfMean = (q31_t)((q63_t)sum * sum / (q63_t)(blockSize * (blockSize - 1U))); - - /* mean of the squares minus the square of the mean. */ - /* Compute standard deviation and store the result to the destination */ - arm_sqrt_q15(__SSAT((meanOfSquares - squareOfMean) >> 15U, 16U), pResult); - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += (in * in); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = (q31_t)(sumOfSquares / (q63_t)(blockSize - 1U)); - - /* Compute square of mean */ - squareOfMean = (q31_t)((q63_t)sum * sum / (q63_t)(blockSize * (blockSize - 1U))); - - /* mean of the squares minus the square of the mean. */ - /* Compute standard deviation and store the result to the destination */ - arm_sqrt_q15(__SSAT((meanOfSquares - squareOfMean) >> 15U, 16U), pResult); - -#endif /* #if defined (ARM_MATH_DSP) */ -} - -/** - * @} end of STD group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q31.c deleted file mode 100644 index f02cbdd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_std_q31.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_std_q31.c - * Description: Standard deviation of an array of Q31 type. - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup STD - * @{ - */ - -/** - * @brief Standard deviation of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult standard deviation value returned here - * @return none. - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, which is then downshifted by 8 bits - * which yields 1.23, and intermediate multiplication yields a 2.46 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a 16 guard bits. - * There is no saturation on intermediate additions. - * If the accumulator overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(blockSize)-8 bits, as a total of blockSize additions are performed internally. - * After division, internal variables should be Q18.46 - * Finally, the 18.46 accumulator is right shifted by 15 bits to yield a 1.31 format value. - * - */ - -void arm_std_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* Accumulator */ - q63_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - q31_t in; /* input value */ - uint32_t blkCnt; /* loop counter */ - q63_t sumOfSquares = 0; /* Accumulator */ - - if (blockSize == 1U) - { - *pResult = 0; - return; - } - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / (q63_t)(blockSize - 1U); - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++ >> 8U; - sumOfSquares += ((q63_t) (in) * (in)); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / (q63_t)(blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Compute square of mean */ - squareOfMean = sum * sum / (q63_t)(blockSize * (blockSize - 1U)); - - /* Compute standard deviation and then store the result to the destination */ - arm_sqrt_q31((meanOfSquares - squareOfMean) >> 15U, pResult); -} - -/** - * @} end of STD group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_f32.c deleted file mode 100644 index c0f731d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_f32.c +++ /dev/null @@ -1,181 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_var_f32.c - * Description: Variance of the elements of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @defgroup variance Variance - * - * Calculates the variance of the elements in the input vector. - * The underlying algorithm used is the direct method sometimes referred to as the two-pass method: - * - *
- *   Result = sum(element - meanOfElements)^2) / numElement - 1
- *
- *     where, meanOfElements = ( pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] ) / blockSize
- *
- * 
- * - * There are separate functions for floating point, Q31, and Q15 data types. - */ - -/** - * @addtogroup variance - * @{ - */ - - -/** - * @brief Variance of the elements of a floating-point vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - */ - -void arm_var_f32( - float32_t * pSrc, - uint32_t blockSize, - float32_t * pResult) -{ - float32_t fMean, fValue; - uint32_t blkCnt; /* loop counter */ - float32_t * pInput = pSrc; - float32_t sum = 0.0f; - float32_t fSum = 0.0f; - #if defined(ARM_MATH_DSP) - float32_t in1, in2, in3, in4; - #endif - - if (blockSize <= 1U) - { - *pResult = 0; - return; - } - - #if defined(ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M7 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - in1 = *pInput++; - in2 = *pInput++; - in3 = *pInput++; - in4 = *pInput++; - - sum += in1; - sum += in2; - sum += in3; - sum += in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - #else - /* Run the below code for Cortex-M0 or Cortex-M3 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - #endif - - while (blkCnt > 0U) - { - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - sum += *pInput++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) / blockSize */ - fMean = sum / (float32_t) blockSize; - - pInput = pSrc; - - #if defined(ARM_MATH_DSP) - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - fValue = *pInput++ - fMean; - fSum += fValue * fValue; - fValue = *pInput++ - fMean; - fSum += fValue * fValue; - fValue = *pInput++ - fMean; - fSum += fValue * fValue; - fValue = *pInput++ - fMean; - fSum += fValue * fValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - blkCnt = blockSize % 0x4U; - #else - /* Run the below code for Cortex-M0 or Cortex-M3 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - #endif - - while (blkCnt > 0U) - { - fValue = *pInput++ - fMean; - fSum += fValue * fValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Variance */ - *pResult = fSum / (float32_t)(blockSize - 1.0f); -} - -/** - * @} end of variance group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q15.c deleted file mode 100644 index 5ba61f7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q15.c +++ /dev/null @@ -1,172 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_var_q15.c - * Description: Variance of an array of Q15 type - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup variance - * @{ - */ - -/** - * @brief Variance of the elements of a Q15 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - * @details - * Scaling and Overflow Behavior: - * - * \par - * The function is implemented using a 64-bit internal accumulator. - * The input is represented in 1.15 format. - * Intermediate multiplication yields a 2.30 format, and this - * result is added without saturation to a 64-bit accumulator in 34.30 format. - * With 33 guard bits in the accumulator, there is no risk of overflow, and the - * full precision of the intermediate multiplication is preserved. - * Finally, the 34.30 result is truncated to 34.15 format by discarding the lower - * 15 bits, and then saturated to yield a result in 1.15 format. - */ - -void arm_var_q15( - q15_t * pSrc, - uint32_t blockSize, - q15_t * pResult) -{ - q31_t sum = 0; /* Accumulator */ - q31_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - uint32_t blkCnt; /* loop counter */ - q63_t sumOfSquares = 0; /* Accumulator */ -#if defined (ARM_MATH_DSP) - q31_t in; /* input value */ - q15_t in1; /* input value */ -#else - q15_t in; /* input value */ -#endif - - if (blockSize == 1U) - { - *pResult = 0; - return; - } - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - in = *__SIMD32(pSrc)++; - sum += ((in << 16U) >> 16U); - sum += (in >> 16U); - sumOfSquares = __SMLALD(in, in, sumOfSquares); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in1 = *pSrc++; - sumOfSquares = __SMLALD(in1, in1, sumOfSquares); - sum += in1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = (q31_t)(sumOfSquares / (q63_t)(blockSize - 1U)); - - /* Compute square of mean */ - squareOfMean = (q31_t)((q63_t)sum * sum / (q63_t)(blockSize * (blockSize - 1U))); - - /* mean of the squares minus the square of the mean. */ - *pResult = (meanOfSquares - squareOfMean) >> 15U; - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++; - sumOfSquares += (in * in); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = (q31_t)(sumOfSquares / (q63_t)(blockSize - 1U)); - - /* Compute square of mean */ - squareOfMean = (q31_t)((q63_t)sum * sum / (q63_t)(blockSize * (blockSize - 1U))); - - /* mean of the squares minus the square of the mean. */ - *pResult = (meanOfSquares - squareOfMean) >> 15; - -#endif /* #if defined (ARM_MATH_DSP) */ -} - -/** - * @} end of variance group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q31.c deleted file mode 100644 index 526c6cd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/StatisticsFunctions/arm_var_q31.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_var_q31.c - * Description: Variance of an array of Q31 type - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupStats - */ - -/** - * @addtogroup variance - * @{ - */ - -/** - * @brief Variance of the elements of a Q31 vector. - * @param[in] *pSrc points to the input vector - * @param[in] blockSize length of the input vector - * @param[out] *pResult variance value returned here - * @return none. - * @details - * Scaling and Overflow Behavior: - * - *\par - * The function is implemented using an internal 64-bit accumulator. - * The input is represented in 1.31 format, which is then downshifted by 8 bits - * which yields 1.23, and intermediate multiplication yields a 2.46 format. - * The accumulator maintains full precision of the intermediate multiplication results, - * but provides only a 16 guard bits. - * There is no saturation on intermediate additions. - * If the accumulator overflows it wraps around and distorts the result. - * In order to avoid overflows completely the input signal must be scaled down by - * log2(blockSize)-8 bits, as a total of blockSize additions are performed internally. - * After division, internal variables should be Q18.46 - * Finally, the 18.46 accumulator is right shifted by 15 bits to yield a 1.31 format value. - * - */ - -void arm_var_q31( - q31_t * pSrc, - uint32_t blockSize, - q31_t * pResult) -{ - q63_t sum = 0; /* Accumulator */ - q63_t meanOfSquares, squareOfMean; /* square of mean and mean of square */ - q31_t in; /* input value */ - uint32_t blkCnt; /* loop counter */ - q63_t sumOfSquares = 0; /* Accumulator */ - - if (blockSize == 1U) - { - *pResult = 0; - return; - } - -#if defined (ARM_MATH_DSP) - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sum. */ - in = *pSrc++ >> 8U; - sum += in; - sumOfSquares += ((q63_t) (in) * (in)); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / (q63_t)(blockSize - 1U); - -#else - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - /* C = (A[0] * A[0] + A[1] * A[1] + ... + A[blockSize-1] * A[blockSize-1]) */ - /* Compute Sum of squares of the input samples - * and then store the result in a temporary variable, sumOfSquares. */ - in = *pSrc++ >> 8U; - sumOfSquares += ((q63_t) (in) * (in)); - - /* C = (A[0] + A[1] + A[2] + ... + A[blockSize-1]) */ - /* Compute sum of all input values and then store the result in a temporary variable, sum. */ - sum += in; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* Compute Mean of squares of the input samples - * and then store the result in a temporary variable, meanOfSquares. */ - meanOfSquares = sumOfSquares / (q63_t)(blockSize - 1U); - -#endif /* #if defined (ARM_MATH_DSP) */ - - /* Compute square of mean */ - squareOfMean = sum * sum / (q63_t)(blockSize * (blockSize - 1U)); - - /* Compute standard deviation and then store the result to the destination */ - *pResult = (meanOfSquares - squareOfMean) >> 15U; -} - -/** - * @} end of variance group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c deleted file mode 100644 index 1e2b5cf..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_f32.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_copy_f32.c - * Description: Copies the elements of a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup copy Vector Copy - * - * Copies sample by sample from source vector to destination vector. - * - *
- * 	pDst[n] = pSrc[n];   0 <= n < blockSize.
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a floating-point vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - - -void arm_copy_f32( - float32_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c deleted file mode 100644 index 0d2fffb..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q15.c +++ /dev/null @@ -1,102 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_copy_q15.c - * Description: Copies the elements of a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ -/** - * @brief Copies the elements of a Q15 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q15( - q15_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A */ - /* Read two inputs */ - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the value in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c deleted file mode 100644 index 5bf8934..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q31.c +++ /dev/null @@ -1,111 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_copy_q31.c - * Description: Copies the elements of a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a Q31 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q31( - q31_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the values in the destination buffer */ - in1 = *pSrc++; - in2 = *pSrc++; - in3 = *pSrc++; - in4 = *pSrc++; - - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the value in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c deleted file mode 100644 index 5c737cd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_copy_q7.c +++ /dev/null @@ -1,103 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_copy_q7.c - * Description: Copies the elements of a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup copy - * @{ - */ - -/** - * @brief Copies the elements of a Q7 vector. - * @param[in] *pSrc points to input vector - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the input vector - * @return none. - * - */ - -void arm_copy_q7( - q7_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - /* 4 samples are copied and stored at a time using SIMD */ - *__SIMD32(pDst)++ = *__SIMD32(pSrc)++; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = A */ - /* Copy and then store the results in the destination buffer */ - *pDst++ = *pSrc++; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of BasicCopy group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c deleted file mode 100644 index be749c8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_f32.c +++ /dev/null @@ -1,122 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fill_f32.c - * Description: Fills a constant value into a floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup Fill Vector Fill - * - * Fills the destination vector with a constant value. - * - *
- * 	pDst[n] = value;   0 <= n < blockSize.
- * 
- * - * There are separate functions for floating point, Q31, Q15, and Q7 data types. - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a floating-point vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - - -void arm_fill_f32( - float32_t value, - float32_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - float32_t in1 = value; - float32_t in2 = value; - float32_t in3 = value; - float32_t in4 = value; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c deleted file mode 100644 index 27eb42c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q15.c +++ /dev/null @@ -1,108 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fill_q15.c - * Description: Fills a constant value into a Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q15 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q15( - q15_t value, - q15_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t packedValue; /* value packed to 32 bits */ - - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Packing two 16 bit values to 32 bit value in order to use SIMD */ - packedValue = __PKHBT(value, value, 16U); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *__SIMD32(pDst)++ = packedValue; - *__SIMD32(pDst)++ = packedValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c deleted file mode 100644 index 397a7b5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q31.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fill_q31.c - * Description: Fills a constant value into a Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q31 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q31( - q31_t value, - q31_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1 = value; - q31_t in2 = value; - q31_t in3 = value; - q31_t in4 = value; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = in1; - *pDst++ = in2; - *pDst++ = in3; - *pDst++ = in4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c deleted file mode 100644 index dffdf97..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_fill_q7.c +++ /dev/null @@ -1,106 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_fill_q7.c - * Description: Fills a constant value into a Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup Fill - * @{ - */ - -/** - * @brief Fills a constant value into a Q7 vector. - * @param[in] value input value to be filled - * @param[out] *pDst points to output vector - * @param[in] blockSize length of the output vector - * @return none. - * - */ - -void arm_fill_q7( - q7_t value, - q7_t * pDst, - uint32_t blockSize) -{ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t packedValue; /* value packed to 32 bits */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* Packing four 8 bit values to 32 bit value in order to use SIMD */ - packedValue = __PACKq7(value, value, value, value); - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *__SIMD32(pDst)++ = packedValue; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = value */ - /* Fill the value in the destination buffer */ - *pDst++ = value; - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of Fill group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c deleted file mode 100644 index 0aa20f1..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q15.c +++ /dev/null @@ -1,192 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_float_to_q15.c - * Description: Converts the elements of the floating-point vector to Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q15 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * \par - * The equation used for the conversion process is: - *
- * 	pDst[n] = (q15_t)(pSrc[n] * 32768);   0 <= n < blockSize.
- * 
- * \par Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q15 range [0x8000 0x7FFF] will be saturated. - * \note - * In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - * - */ - - -void arm_float_to_q15( - float32_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - - in = *pIn++; - in = (in * 32768.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 32768.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16)); - -#else - - /* C = A * 32768 */ - /* convert from float to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c deleted file mode 100644 index d17cc3a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q31.c +++ /dev/null @@ -1,199 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_float_to_q31.c - * Description: Converts the elements of the floating-point vector to Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup float_to_x Convert 32-bit floating point value - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q31 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - *\par Description: - * \par - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q31_t)(pSrc[n] * 2147483648);   0 <= n < blockSize.
- * 
- * Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] will be saturated. - * - * \note In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - */ - - -void arm_float_to_q31( - float32_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 32768 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 2147483648.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = clip_q63_to_q31((q63_t) (in)); - -#else - - /* C = A * 2147483648 */ - /* convert from float to Q31 and then store the results in the destination buffer */ - *pDst++ = clip_q63_to_q31((q63_t) (*pIn++ * 2147483648.0f)); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c deleted file mode 100644 index 6629a69..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_float_to_q7.c +++ /dev/null @@ -1,191 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_float_to_q7.c - * Description: Converts the elements of the floating-point vector to Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup float_to_x - * @{ - */ - -/** - * @brief Converts the elements of the floating-point vector to Q7 vector. - * @param[in] *pSrc points to the floating-point input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - *\par Description: - * \par - * The equation used for the conversion process is: - *
- * 	pDst[n] = (q7_t)(pSrc[n] * 128);   0 <= n < blockSize.
- * 
- * \par Scaling and Overflow Behavior: - * \par - * The function uses saturating arithmetic. - * Results outside of the allowable Q7 range [0x80 0x7F] will be saturated. - * \note - * In order to apply rounding, the library should be rebuilt with the ROUNDING macro - * defined in the preprocessor section of project options. - */ - - -void arm_float_to_q7( - float32_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - float32_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#ifdef ARM_MATH_ROUNDING - - float32_t in; - -#endif /* #ifdef ARM_MATH_ROUNDING */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - - in = *pIn++; - in = (in * 128); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - - while (blkCnt > 0U) - { - -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128); - in += in > 0.0f ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q15_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - - -#else - - /* Run the below code for Cortex-M0 */ - - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - - while (blkCnt > 0U) - { -#ifdef ARM_MATH_ROUNDING - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - in = *pIn++; - in = (in * 128.0f); - in += in > 0 ? 0.5f : -0.5f; - *pDst++ = (q7_t) (__SSAT((q31_t) (in), 8)); - -#else - - /* C = A * 128 */ - /* convert from float to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) __SSAT((q31_t) (*pIn++ * 128.0f), 8); - -#endif /* #ifdef ARM_MATH_ROUNDING */ - - /* Decrement the loop counter */ - blkCnt--; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of float_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c deleted file mode 100644 index 48ef947..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_float.c +++ /dev/null @@ -1,122 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q15_to_float.c - * Description: Converts the elements of the Q15 vector to floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q15_to_x Convert 16-bit Integer value - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - - - - -/** - * @brief Converts the elements of the Q15 vector to floating-point vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (float32_t) pSrc[n] / 32768;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q15_to_float( - q15_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (float32_t) A / 32768 */ - /* convert from q15 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (float32_t) A / 32768 */ - /* convert from q15 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 32768.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q15_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c deleted file mode 100644 index bf139a8..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q31.c +++ /dev/null @@ -1,144 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q15_to_q31.c - * Description: Converts the elements of the Q15 vector to Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q15 vector to Q31 vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q31_t) pSrc[n] << 16;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q15_to_q31( - q15_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2; - q31_t out1, out2, out3, out4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q31_t)A << 16 */ - /* convert from q15 to q31 and then store the results in the destination buffer */ - in1 = *__SIMD32(pIn)++; - in2 = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - /* extract lower 16 bits to 32 bit result */ - out1 = in1 << 16U; - /* extract upper 16 bits to 32 bit result */ - out2 = in1 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out3 = in2 << 16U; - /* extract upper 16 bits to 32 bit result */ - out4 = in2 & 0xFFFF0000; - -#else - - /* extract upper 16 bits to 32 bit result */ - out1 = in1 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out2 = in1 << 16U; - /* extract upper 16 bits to 32 bit result */ - out3 = in2 & 0xFFFF0000; - /* extract lower 16 bits to 32 bit result */ - out4 = in2 << 16U; - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - *pDst++ = out1; - *pDst++ = out2; - *pDst++ = out3; - *pDst++ = out4; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q31_t)A << 16 */ - /* convert from q15 to q31 and then store the results in the destination buffer */ - *pDst++ = (q31_t) * pIn++ << 16; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q15_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c deleted file mode 100644 index 7a45e58..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q15_to_q7.c +++ /dev/null @@ -1,142 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q15_to_q7.c - * Description: Converts the elements of the Q15 vector to Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q15_to_x - * @{ - */ - - -/** - * @brief Converts the elements of the Q15 vector to Q7 vector. - * @param[in] *pSrc points to the Q15 input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q7_t) pSrc[n] >> 8;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q15_to_q7( - q15_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - q15_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2; - q31_t out1, out2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q7_t) A >> 8 */ - /* convert from q15 to q7 and then store the results in the destination buffer */ - in1 = *__SIMD32(pIn)++; - in2 = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __PKHTB(in2, in1, 16); - out2 = __PKHBT(in2, in1, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHBT(in1, in2, 16); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - /* rotate packed value by 24 */ - out2 = ((uint32_t) out2 << 8) | ((uint32_t) out2 >> 24); - - /* anding with 0xff00ff00 to get two 8 bit values */ - out1 = out1 & 0xFF00FF00; - /* anding with 0x00ff00ff to get two 8 bit values */ - out2 = out2 & 0x00FF00FF; - - /* oring two values(contains two 8 bit values) to get four packed 8 bit values */ - out1 = out1 | out2; - - /* store 4 samples at a time to destiantion buffer */ - *__SIMD32(pDst)++ = out1; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q7_t) A >> 8 */ - /* convert from q15 to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) (*pIn++ >> 8); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q15_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c deleted file mode 100644 index d2d7505..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_float.c +++ /dev/null @@ -1,119 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q31_to_float.c - * Description: Converts the elements of the Q31 vector to floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q31_to_x Convert 32-bit Integer value - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to floating-point vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (float32_t) pSrc[n] / 2147483648;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q31_to_float( - q31_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (float32_t) A / 2147483648 */ - /* convert from q31 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (float32_t) A / 2147483648 */ - /* convert from q31 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 2147483648.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q31_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c deleted file mode 100644 index c460fe7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q15.c +++ /dev/null @@ -1,133 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q31_to_q15.c - * Description: Converts the elements of the Q31 vector to Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to Q15 vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q15_t) pSrc[n] >> 16;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q31_to_q15( - q31_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - q31_t out1, out2; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q15_t) A >> 16 */ - /* convert from q31 to q15 and then store the results in the destination buffer */ - in1 = *pIn++; - in2 = *pIn++; - in3 = *pIn++; - in4 = *pIn++; - - /* pack two higher 16-bit values from two 32-bit values */ -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __PKHTB(in2, in1, 16); - out2 = __PKHTB(in4, in3, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHTB(in3, in4, 16); - -#endif // #ifdef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst)++ = out1; - *__SIMD32(pDst)++ = out2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q15_t) A >> 16 */ - /* convert from q31 to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) (*pIn++ >> 16); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q31_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c deleted file mode 100644 index f092bed..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q31_to_q7.c +++ /dev/null @@ -1,124 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q31_to_q7.c - * Description: Converts the elements of the Q31 vector to Q7 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q31_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q31 vector to Q7 vector. - * @param[in] *pSrc points to the Q31 input vector - * @param[out] *pDst points to the Q7 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q7_t) pSrc[n] >> 24;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q31_to_q7( - q31_t * pSrc, - q7_t * pDst, - uint32_t blockSize) -{ - q31_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - q31_t in1, in2, in3, in4; - q7_t out1, out2, out3, out4; - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q7_t) A >> 24 */ - /* convert from q31 to q7 and then store the results in the destination buffer */ - in1 = *pIn++; - in2 = *pIn++; - in3 = *pIn++; - in4 = *pIn++; - - out1 = (q7_t) (in1 >> 24); - out2 = (q7_t) (in2 >> 24); - out3 = (q7_t) (in3 >> 24); - out4 = (q7_t) (in4 >> 24); - - *__SIMD32(pDst)++ = __PACKq7(out1, out2, out3, out4); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q7_t) A >> 24 */ - /* convert from q31 to q7 and then store the results in the destination buffer */ - *pDst++ = (q7_t) (*pIn++ >> 24); - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q31_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c deleted file mode 100644 index ace437f..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_float.c +++ /dev/null @@ -1,119 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q7_to_float.c - * Description: Converts the elements of the Q7 vector to floating-point vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @defgroup q7_to_x Convert 8-bit Integer value - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q7 vector to floating-point vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the floating-point output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (float32_t) pSrc[n] / 128;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q7_to_float( - q7_t * pSrc, - float32_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (float32_t) A / 128 */ - /* convert from q7 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - *pDst++ = ((float32_t) * pIn++ / 128.0f); - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (float32_t) A / 128 */ - /* convert from q7 to float and then store the results in the destination buffer */ - *pDst++ = ((float32_t) * pIn++ / 128.0f); - - /* Decrement the loop counter */ - blkCnt--; - } -} - -/** - * @} end of q7_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c deleted file mode 100644 index 5348194..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q15.c +++ /dev/null @@ -1,145 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q7_to_q15.c - * Description: Converts the elements of the Q7 vector to Q15 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - - - - -/** - * @brief Converts the elements of the Q7 vector to Q15 vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the Q15 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q15_t) pSrc[n] << 8;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q7_to_q15( - q7_t * pSrc, - q15_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - q31_t in; - q31_t in1, in2; - q31_t out1, out2; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q15_t) A << 8 */ - /* convert from q7 to q15 and then store the results in the destination buffer */ - in = *__SIMD32(pIn)++; - - /* rotatate in by 8 and extend two q7_t values to q15_t values */ - in1 = __SXTB16(__ROR(in, 8)); - - /* extend remainig two q7_t values to q15_t values */ - in2 = __SXTB16(in); - - in1 = in1 << 8U; - in2 = in2 << 8U; - - in1 = in1 & 0xFF00FF00; - in2 = in2 & 0xFF00FF00; - -#ifndef ARM_MATH_BIG_ENDIAN - - out2 = __PKHTB(in1, in2, 16); - out1 = __PKHBT(in2, in1, 16); - -#else - - out1 = __PKHTB(in1, in2, 16); - out2 = __PKHBT(in2, in1, 16); - -#endif - - *__SIMD32(pDst)++ = out1; - *__SIMD32(pDst)++ = out2; - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q15_t) A << 8 */ - /* convert from q7 to q15 and then store the results in the destination buffer */ - *pDst++ = (q15_t) * pIn++ << 8; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q7_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c deleted file mode 100644 index 27d0952..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/SupportFunctions/arm_q7_to_q31.c +++ /dev/null @@ -1,130 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_q7_to_q31.c - * Description: Converts the elements of the Q7 vector to Q31 vector - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupSupport - */ - -/** - * @addtogroup q7_to_x - * @{ - */ - -/** - * @brief Converts the elements of the Q7 vector to Q31 vector. - * @param[in] *pSrc points to the Q7 input vector - * @param[out] *pDst points to the Q31 output vector - * @param[in] blockSize length of the input vector - * @return none. - * - * \par Description: - * - * The equation used for the conversion process is: - * - *
- * 	pDst[n] = (q31_t) pSrc[n] << 24;   0 <= n < blockSize.
- * 
- * - */ - - -void arm_q7_to_q31( - q7_t * pSrc, - q31_t * pDst, - uint32_t blockSize) -{ - q7_t *pIn = pSrc; /* Src pointer */ - uint32_t blkCnt; /* loop counter */ - -#if defined (ARM_MATH_DSP) - - q31_t in; - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /*loop Unrolling */ - blkCnt = blockSize >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - while (blkCnt > 0U) - { - /* C = (q31_t) A << 24 */ - /* convert from q7 to q31 and then store the results in the destination buffer */ - in = *__SIMD32(pIn)++; - -#ifndef ARM_MATH_BIG_ENDIAN - - *pDst++ = (__ROR(in, 8)) & 0xFF000000; - *pDst++ = (__ROR(in, 16)) & 0xFF000000; - *pDst++ = (__ROR(in, 24)) & 0xFF000000; - *pDst++ = (in & 0xFF000000); - -#else - - *pDst++ = (in & 0xFF000000); - *pDst++ = (__ROR(in, 24)) & 0xFF000000; - *pDst++ = (__ROR(in, 16)) & 0xFF000000; - *pDst++ = (__ROR(in, 8)) & 0xFF000000; - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - /* Decrement the loop counter */ - blkCnt--; - } - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - blkCnt = blockSize % 0x4U; - -#else - - /* Run the below code for Cortex-M0 */ - - /* Loop over blockSize number of values */ - blkCnt = blockSize; - -#endif /* #if defined (ARM_MATH_DSP) */ - - while (blkCnt > 0U) - { - /* C = (q31_t) A << 24 */ - /* convert from q7 to q31 and then store the results in the destination buffer */ - *pDst++ = (q31_t) * pIn++ << 24; - - /* Decrement the loop counter */ - blkCnt--; - } - -} - -/** - * @} end of q7_to_x group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal.c deleted file mode 100644 index cea4821..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal.c +++ /dev/null @@ -1,230 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_bitreversal.c - * Description: Bitreversal functions - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/* -* @brief In-place bit reversal function. -* @param[in, out] *pSrc points to the in-place buffer of floating-point data type. -* @param[in] fftSize length of the FFT. -* @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table. -* @param[in] *pBitRevTab points to the bit reversal table. -* @return none. -*/ - -void arm_bitreversal_f32( -float32_t * pSrc, -uint16_t fftSize, -uint16_t bitRevFactor, -uint16_t * pBitRevTab) -{ - uint16_t fftLenBy2, fftLenBy2p1; - uint16_t i, j; - float32_t in; - - /* Initializations */ - j = 0U; - fftLenBy2 = fftSize >> 1U; - fftLenBy2p1 = (fftSize >> 1U) + 1U; - - /* Bit Reversal Implementation */ - for (i = 0U; i <= (fftLenBy2 - 2U); i += 2U) - { - if (i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - in = pSrc[2U * i]; - pSrc[2U * i] = pSrc[2U * j]; - pSrc[2U * j] = in; - - /* pSrc[i+1U] <-> pSrc[j+1U] */ - in = pSrc[(2U * i) + 1U]; - pSrc[(2U * i) + 1U] = pSrc[(2U * j) + 1U]; - pSrc[(2U * j) + 1U] = in; - - /* pSrc[i+fftLenBy2p1] <-> pSrc[j+fftLenBy2p1] */ - in = pSrc[2U * (i + fftLenBy2p1)]; - pSrc[2U * (i + fftLenBy2p1)] = pSrc[2U * (j + fftLenBy2p1)]; - pSrc[2U * (j + fftLenBy2p1)] = in; - - /* pSrc[i+fftLenBy2p1+1U] <-> pSrc[j+fftLenBy2p1+1U] */ - in = pSrc[(2U * (i + fftLenBy2p1)) + 1U]; - pSrc[(2U * (i + fftLenBy2p1)) + 1U] = - pSrc[(2U * (j + fftLenBy2p1)) + 1U]; - pSrc[(2U * (j + fftLenBy2p1)) + 1U] = in; - - } - - /* pSrc[i+1U] <-> pSrc[j+1U] */ - in = pSrc[2U * (i + 1U)]; - pSrc[2U * (i + 1U)] = pSrc[2U * (j + fftLenBy2)]; - pSrc[2U * (j + fftLenBy2)] = in; - - /* pSrc[i+2U] <-> pSrc[j+2U] */ - in = pSrc[(2U * (i + 1U)) + 1U]; - pSrc[(2U * (i + 1U)) + 1U] = pSrc[(2U * (j + fftLenBy2)) + 1U]; - pSrc[(2U * (j + fftLenBy2)) + 1U] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTab; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTab += bitRevFactor; - } -} - - - -/* -* @brief In-place bit reversal function. -* @param[in, out] *pSrc points to the in-place buffer of Q31 data type. -* @param[in] fftLen length of the FFT. -* @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table -* @param[in] *pBitRevTab points to bit reversal table. -* @return none. -*/ - -void arm_bitreversal_q31( -q31_t * pSrc, -uint32_t fftLen, -uint16_t bitRevFactor, -uint16_t * pBitRevTable) -{ - uint32_t fftLenBy2, fftLenBy2p1, i, j; - q31_t in; - - /* Initializations */ - j = 0U; - fftLenBy2 = fftLen / 2U; - fftLenBy2p1 = (fftLen / 2U) + 1U; - - /* Bit Reversal Implementation */ - for (i = 0U; i <= (fftLenBy2 - 2U); i += 2U) - { - if (i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - in = pSrc[2U * i]; - pSrc[2U * i] = pSrc[2U * j]; - pSrc[2U * j] = in; - - /* pSrc[i+1U] <-> pSrc[j+1U] */ - in = pSrc[(2U * i) + 1U]; - pSrc[(2U * i) + 1U] = pSrc[(2U * j) + 1U]; - pSrc[(2U * j) + 1U] = in; - - /* pSrc[i+fftLenBy2p1] <-> pSrc[j+fftLenBy2p1] */ - in = pSrc[2U * (i + fftLenBy2p1)]; - pSrc[2U * (i + fftLenBy2p1)] = pSrc[2U * (j + fftLenBy2p1)]; - pSrc[2U * (j + fftLenBy2p1)] = in; - - /* pSrc[i+fftLenBy2p1+1U] <-> pSrc[j+fftLenBy2p1+1U] */ - in = pSrc[(2U * (i + fftLenBy2p1)) + 1U]; - pSrc[(2U * (i + fftLenBy2p1)) + 1U] = - pSrc[(2U * (j + fftLenBy2p1)) + 1U]; - pSrc[(2U * (j + fftLenBy2p1)) + 1U] = in; - - } - - /* pSrc[i+1U] <-> pSrc[j+1U] */ - in = pSrc[2U * (i + 1U)]; - pSrc[2U * (i + 1U)] = pSrc[2U * (j + fftLenBy2)]; - pSrc[2U * (j + fftLenBy2)] = in; - - /* pSrc[i+2U] <-> pSrc[j+2U] */ - in = pSrc[(2U * (i + 1U)) + 1U]; - pSrc[(2U * (i + 1U)) + 1U] = pSrc[(2U * (j + fftLenBy2)) + 1U]; - pSrc[(2U * (j + fftLenBy2)) + 1U] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTable; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTable += bitRevFactor; - } -} - - - -/* - * @brief In-place bit reversal function. - * @param[in, out] *pSrc points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] bitRevFactor bit reversal modifier that supports different size FFTs with the same bit reversal table - * @param[in] *pBitRevTab points to bit reversal table. - * @return none. -*/ - -void arm_bitreversal_q15( -q15_t * pSrc16, -uint32_t fftLen, -uint16_t bitRevFactor, -uint16_t * pBitRevTab) -{ - q31_t *pSrc = (q31_t *) pSrc16; - q31_t in; - uint32_t fftLenBy2, fftLenBy2p1; - uint32_t i, j; - - /* Initializations */ - j = 0U; - fftLenBy2 = fftLen / 2U; - fftLenBy2p1 = (fftLen / 2U) + 1U; - - /* Bit Reversal Implementation */ - for (i = 0U; i <= (fftLenBy2 - 2U); i += 2U) - { - if (i < j) - { - /* pSrc[i] <-> pSrc[j]; */ - /* pSrc[i+1U] <-> pSrc[j+1U] */ - in = pSrc[i]; - pSrc[i] = pSrc[j]; - pSrc[j] = in; - - /* pSrc[i + fftLenBy2p1] <-> pSrc[j + fftLenBy2p1]; */ - /* pSrc[i + fftLenBy2p1+1U] <-> pSrc[j + fftLenBy2p1+1U] */ - in = pSrc[i + fftLenBy2p1]; - pSrc[i + fftLenBy2p1] = pSrc[j + fftLenBy2p1]; - pSrc[j + fftLenBy2p1] = in; - } - - /* pSrc[i+1U] <-> pSrc[j+fftLenBy2]; */ - /* pSrc[i+2] <-> pSrc[j+fftLenBy2+1U] */ - in = pSrc[i + 1U]; - pSrc[i + 1U] = pSrc[j + fftLenBy2]; - pSrc[j + fftLenBy2] = in; - - /* Reading the index for the bit reversal */ - j = *pBitRevTab; - - /* Updating the bit reversal index depending on the fft length */ - pBitRevTab += bitRevFactor; - } -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal2.S b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal2.S deleted file mode 100644 index e0a82db..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal2.S +++ /dev/null @@ -1,216 +0,0 @@ -;/* ---------------------------------------------------------------------- -; * Project: CMSIS DSP Library -; * Title: arm_bitreversal2.S -; * Description: arm_bitreversal_32 function done in assembly for maximum speed. -; * Called after doing an fft to reorder the output. -; * The function is loop unrolled by 2. arm_bitreversal_16 as well. -; * -; * $Date: 27. January 2017 -; * $Revision: V.1.5.1 -; * -; * Target Processor: Cortex-M cores -; * -------------------------------------------------------------------- */ -;/* -; * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. -; * -; * SPDX-License-Identifier: Apache-2.0 -; * -; * Licensed under the Apache License, Version 2.0 (the License); you may -; * not use this file except in compliance with the License. -; * You may obtain a copy of the License at -; * -; * www.apache.org/licenses/LICENSE-2.0 -; * -; * Unless required by applicable law or agreed to in writing, software -; * distributed under the License is distributed on an AS IS BASIS, WITHOUT -; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -; * See the License for the specific language governing permissions and -; * limitations under the License. -; */ - -#if defined ( __CC_ARM ) /* Keil */ - #define CODESECT AREA ||.text||, CODE, READONLY, ALIGN=2 - #define LABEL -#elif defined ( __IASMARM__ ) /* IAR */ - #define CODESECT SECTION `.text`:CODE - #define PROC - #define LABEL - #define ENDP - #define EXPORT PUBLIC -#elif defined ( __CSMC__ ) /* Cosmic */ - #define CODESECT switch .text - #define THUMB - #define EXPORT xdef - #define PROC : - #define LABEL : - #define ENDP - #define arm_bitreversal_32 _arm_bitreversal_32 -#elif defined ( __TI_ARM__ ) /* TI ARM */ - #define THUMB .thumb - #define CODESECT .text - #define EXPORT .global - #define PROC : .asmfunc - #define LABEL : - #define ENDP .endasmfunc - #define END -#elif defined ( __GNUC__ ) /* GCC */ - #define THUMB .thumb - #define CODESECT .section .text - #define EXPORT .global - #define PROC : - #define LABEL : - #define ENDP - #define END - - .syntax unified -#endif - - CODESECT - THUMB - -;/* -;* @brief In-place bit reversal function. -;* @param[in, out] *pSrc points to the in-place buffer of unknown 32-bit data type. -;* @param[in] bitRevLen bit reversal table length -;* @param[in] *pBitRevTab points to bit reversal table. -;* @return none. -;*/ - EXPORT arm_bitreversal_32 - EXPORT arm_bitreversal_16 - -#if defined ( __CC_ARM ) /* Keil */ -#elif defined ( __IASMARM__ ) /* IAR */ -#elif defined ( __CSMC__ ) /* Cosmic */ -#elif defined ( __TI_ARM__ ) /* TI ARM */ -#elif defined ( __GNUC__ ) /* GCC */ - .type arm_bitreversal_16, %function - .type arm_bitreversal_32, %function -#endif - -#if defined(ARM_MATH_CM0) || defined(ARM_MATH_CM0PLUS) || defined(ARM_MATH_ARMV8MBL) - -arm_bitreversal_32 PROC - ADDS r3,r1,#1 - PUSH {r4-r6} - ADDS r1,r2,#0 - LSRS r3,r3,#1 -arm_bitreversal_32_0 LABEL - LDRH r2,[r1,#2] - LDRH r6,[r1,#0] - ADD r2,r0,r2 - ADD r6,r0,r6 - LDR r5,[r2,#0] - LDR r4,[r6,#0] - STR r5,[r6,#0] - STR r4,[r2,#0] - LDR r5,[r2,#4] - LDR r4,[r6,#4] - STR r5,[r6,#4] - STR r4,[r2,#4] - ADDS r1,r1,#4 - SUBS r3,r3,#1 - BNE arm_bitreversal_32_0 - POP {r4-r6} - BX lr - ENDP - -arm_bitreversal_16 PROC - ADDS r3,r1,#1 - PUSH {r4-r6} - ADDS r1,r2,#0 - LSRS r3,r3,#1 -arm_bitreversal_16_0 LABEL - LDRH r2,[r1,#2] - LDRH r6,[r1,#0] - LSRS r2,r2,#1 - LSRS r6,r6,#1 - ADD r2,r0,r2 - ADD r6,r0,r6 - LDR r5,[r2,#0] - LDR r4,[r6,#0] - STR r5,[r6,#0] - STR r4,[r2,#0] - ADDS r1,r1,#4 - SUBS r3,r3,#1 - BNE arm_bitreversal_16_0 - POP {r4-r6} - BX lr - ENDP - -#else - -arm_bitreversal_32 PROC - ADDS r3,r1,#1 - CMP r3,#1 - IT LS - BXLS lr - PUSH {r4-r9} - ADDS r1,r2,#2 - LSRS r3,r3,#2 -arm_bitreversal_32_0 LABEL ;/* loop unrolled by 2 */ - LDRH r8,[r1,#4] - LDRH r9,[r1,#2] - LDRH r2,[r1,#0] - LDRH r12,[r1,#-2] - ADD r8,r0,r8 - ADD r9,r0,r9 - ADD r2,r0,r2 - ADD r12,r0,r12 - LDR r7,[r9,#0] - LDR r6,[r8,#0] - LDR r5,[r2,#0] - LDR r4,[r12,#0] - STR r6,[r9,#0] - STR r7,[r8,#0] - STR r5,[r12,#0] - STR r4,[r2,#0] - LDR r7,[r9,#4] - LDR r6,[r8,#4] - LDR r5,[r2,#4] - LDR r4,[r12,#4] - STR r6,[r9,#4] - STR r7,[r8,#4] - STR r5,[r12,#4] - STR r4,[r2,#4] - ADDS r1,r1,#8 - SUBS r3,r3,#1 - BNE arm_bitreversal_32_0 - POP {r4-r9} - BX lr - ENDP - -arm_bitreversal_16 PROC - ADDS r3,r1,#1 - CMP r3,#1 - IT LS - BXLS lr - PUSH {r4-r9} - ADDS r1,r2,#2 - LSRS r3,r3,#2 -arm_bitreversal_16_0 LABEL ;/* loop unrolled by 2 */ - LDRH r8,[r1,#4] - LDRH r9,[r1,#2] - LDRH r2,[r1,#0] - LDRH r12,[r1,#-2] - ADD r8,r0,r8,LSR #1 - ADD r9,r0,r9,LSR #1 - ADD r2,r0,r2,LSR #1 - ADD r12,r0,r12,LSR #1 - LDR r7,[r9,#0] - LDR r6,[r8,#0] - LDR r5,[r2,#0] - LDR r4,[r12,#0] - STR r6,[r9,#0] - STR r7,[r8,#0] - STR r5,[r12,#0] - STR r4,[r2,#0] - ADDS r1,r1,#8 - SUBS r3,r3,#1 - BNE arm_bitreversal_16_0 - POP {r4-r9} - BX lr - ENDP - -#endif - - END diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c deleted file mode 100644 index 4abb6f5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c +++ /dev/null @@ -1,620 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_f32.c - * Description: Combined Radix Decimation in Frequency CFFT Floating point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -extern void arm_radix8_butterfly_f32( - float32_t * pSrc, - uint16_t fftLen, - const float32_t * pCoef, - uint16_t twidCoefModifier); - -extern void arm_bitreversal_32( - uint32_t * pSrc, - const uint16_t bitRevLen, - const uint16_t * pBitRevTable); - -/** -* @ingroup groupTransforms -*/ - -/** -* @defgroup ComplexFFT Complex FFT Functions -* -* \par -* The Fast Fourier Transform (FFT) is an efficient algorithm for computing the -* Discrete Fourier Transform (DFT). The FFT can be orders of magnitude faster -* than the DFT, especially for long lengths. -* The algorithms described in this section -* operate on complex data. A separate set of functions is devoted to handling -* of real sequences. -* \par -* There are separate algorithms for handling floating-point, Q15, and Q31 data -* types. The algorithms available for each data type are described next. -* \par -* The FFT functions operate in-place. That is, the array holding the input data -* will also be used to hold the corresponding result. The input data is complex -* and contains 2*fftLen interleaved values as shown below. -*
 {real[0], imag[0], real[1], imag[1],..} 
-* The FFT result will be contained in the same array and the frequency domain -* values will have the same interleaving. -* -* \par Floating-point -* The floating-point complex FFT uses a mixed-radix algorithm. Multiple radix-8 -* stages are performed along with a single radix-2 or radix-4 stage, as needed. -* The algorithm supports lengths of [16, 32, 64, ..., 4096] and each length uses -* a different twiddle factor table. -* \par -* The function uses the standard FFT definition and output values may grow by a -* factor of fftLen when computing the forward transform. The -* inverse transform includes a scale of 1/fftLen as part of the -* calculation and this matches the textbook definition of the inverse FFT. -* \par -* Pre-initialized data structures containing twiddle factors and bit reversal -* tables are provided and defined in arm_const_structs.h. Include -* this header in your function and then pass one of the constant structures as -* an argument to arm_cfft_f32. For example: -* \par -* arm_cfft_f32(arm_cfft_sR_f32_len64, pSrc, 1, 1) -* \par -* computes a 64-point inverse complex FFT including bit reversal. -* The data structures are treated as constant data and not modified during the -* calculation. The same data structure can be reused for multiple transforms -* including mixing forward and inverse transforms. -* \par -* Earlier releases of the library provided separate radix-2 and radix-4 -* algorithms that operated on floating-point data. These functions are still -* provided but are deprecated. The older functions are slower and less general -* than the new functions. -* \par -* An example of initialization of the constants for the arm_cfft_f32 function follows: -* \code -* const static arm_cfft_instance_f32 *S; -* ... -* switch (length) { -* case 16: -* S = &arm_cfft_sR_f32_len16; -* break; -* case 32: -* S = &arm_cfft_sR_f32_len32; -* break; -* case 64: -* S = &arm_cfft_sR_f32_len64; -* break; -* case 128: -* S = &arm_cfft_sR_f32_len128; -* break; -* case 256: -* S = &arm_cfft_sR_f32_len256; -* break; -* case 512: -* S = &arm_cfft_sR_f32_len512; -* break; -* case 1024: -* S = &arm_cfft_sR_f32_len1024; -* break; -* case 2048: -* S = &arm_cfft_sR_f32_len2048; -* break; -* case 4096: -* S = &arm_cfft_sR_f32_len4096; -* break; -* } -* \endcode -* \par Q15 and Q31 -* The floating-point complex FFT uses a mixed-radix algorithm. Multiple radix-4 -* stages are performed along with a single radix-2 stage, as needed. -* The algorithm supports lengths of [16, 32, 64, ..., 4096] and each length uses -* a different twiddle factor table. -* \par -* The function uses the standard FFT definition and output values may grow by a -* factor of fftLen when computing the forward transform. The -* inverse transform includes a scale of 1/fftLen as part of the -* calculation and this matches the textbook definition of the inverse FFT. -* \par -* Pre-initialized data structures containing twiddle factors and bit reversal -* tables are provided and defined in arm_const_structs.h. Include -* this header in your function and then pass one of the constant structures as -* an argument to arm_cfft_q31. For example: -* \par -* arm_cfft_q31(arm_cfft_sR_q31_len64, pSrc, 1, 1) -* \par -* computes a 64-point inverse complex FFT including bit reversal. -* The data structures are treated as constant data and not modified during the -* calculation. The same data structure can be reused for multiple transforms -* including mixing forward and inverse transforms. -* \par -* Earlier releases of the library provided separate radix-2 and radix-4 -* algorithms that operated on floating-point data. These functions are still -* provided but are deprecated. The older functions are slower and less general -* than the new functions. -* \par -* An example of initialization of the constants for the arm_cfft_q31 function follows: -* \code -* const static arm_cfft_instance_q31 *S; -* ... -* switch (length) { -* case 16: -* S = &arm_cfft_sR_q31_len16; -* break; -* case 32: -* S = &arm_cfft_sR_q31_len32; -* break; -* case 64: -* S = &arm_cfft_sR_q31_len64; -* break; -* case 128: -* S = &arm_cfft_sR_q31_len128; -* break; -* case 256: -* S = &arm_cfft_sR_q31_len256; -* break; -* case 512: -* S = &arm_cfft_sR_q31_len512; -* break; -* case 1024: -* S = &arm_cfft_sR_q31_len1024; -* break; -* case 2048: -* S = &arm_cfft_sR_q31_len2048; -* break; -* case 4096: -* S = &arm_cfft_sR_q31_len4096; -* break; -* } -* \endcode -* -*/ - -void arm_cfft_radix8by2_f32( arm_cfft_instance_f32 * S, float32_t * p1) -{ - uint32_t L = S->fftLen; - float32_t * pCol1, * pCol2, * pMid1, * pMid2; - float32_t * p2 = p1 + L; - const float32_t * tw = (float32_t *) S->pTwiddle; - float32_t t1[4], t2[4], t3[4], t4[4], twR, twI; - float32_t m0, m1, m2, m3; - uint32_t l; - - pCol1 = p1; - pCol2 = p2; - - // Define new length - L >>= 1; - // Initialize mid pointers - pMid1 = p1 + L; - pMid2 = p2 + L; - - // do two dot Fourier transform - for ( l = L >> 2; l > 0; l-- ) - { - t1[0] = p1[0]; - t1[1] = p1[1]; - t1[2] = p1[2]; - t1[3] = p1[3]; - - t2[0] = p2[0]; - t2[1] = p2[1]; - t2[2] = p2[2]; - t2[3] = p2[3]; - - t3[0] = pMid1[0]; - t3[1] = pMid1[1]; - t3[2] = pMid1[2]; - t3[3] = pMid1[3]; - - t4[0] = pMid2[0]; - t4[1] = pMid2[1]; - t4[2] = pMid2[2]; - t4[3] = pMid2[3]; - - *p1++ = t1[0] + t2[0]; - *p1++ = t1[1] + t2[1]; - *p1++ = t1[2] + t2[2]; - *p1++ = t1[3] + t2[3]; // col 1 - - t2[0] = t1[0] - t2[0]; - t2[1] = t1[1] - t2[1]; - t2[2] = t1[2] - t2[2]; - t2[3] = t1[3] - t2[3]; // for col 2 - - *pMid1++ = t3[0] + t4[0]; - *pMid1++ = t3[1] + t4[1]; - *pMid1++ = t3[2] + t4[2]; - *pMid1++ = t3[3] + t4[3]; // col 1 - - t4[0] = t4[0] - t3[0]; - t4[1] = t4[1] - t3[1]; - t4[2] = t4[2] - t3[2]; - t4[3] = t4[3] - t3[3]; // for col 2 - - twR = *tw++; - twI = *tw++; - - // multiply by twiddle factors - m0 = t2[0] * twR; - m1 = t2[1] * twI; - m2 = t2[1] * twR; - m3 = t2[0] * twI; - - // R = R * Tr - I * Ti - *p2++ = m0 + m1; - // I = I * Tr + R * Ti - *p2++ = m2 - m3; - - // use vertical symmetry - // 0.9988 - 0.0491i <==> -0.0491 - 0.9988i - m0 = t4[0] * twI; - m1 = t4[1] * twR; - m2 = t4[1] * twI; - m3 = t4[0] * twR; - - *pMid2++ = m0 - m1; - *pMid2++ = m2 + m3; - - twR = *tw++; - twI = *tw++; - - m0 = t2[2] * twR; - m1 = t2[3] * twI; - m2 = t2[3] * twR; - m3 = t2[2] * twI; - - *p2++ = m0 + m1; - *p2++ = m2 - m3; - - m0 = t4[2] * twI; - m1 = t4[3] * twR; - m2 = t4[3] * twI; - m3 = t4[2] * twR; - - *pMid2++ = m0 - m1; - *pMid2++ = m2 + m3; - } - - // first col - arm_radix8_butterfly_f32( pCol1, L, (float32_t *) S->pTwiddle, 2U); - // second col - arm_radix8_butterfly_f32( pCol2, L, (float32_t *) S->pTwiddle, 2U); -} - -void arm_cfft_radix8by4_f32( arm_cfft_instance_f32 * S, float32_t * p1) -{ - uint32_t L = S->fftLen >> 1; - float32_t * pCol1, *pCol2, *pCol3, *pCol4, *pEnd1, *pEnd2, *pEnd3, *pEnd4; - const float32_t *tw2, *tw3, *tw4; - float32_t * p2 = p1 + L; - float32_t * p3 = p2 + L; - float32_t * p4 = p3 + L; - float32_t t2[4], t3[4], t4[4], twR, twI; - float32_t p1ap3_0, p1sp3_0, p1ap3_1, p1sp3_1; - float32_t m0, m1, m2, m3; - uint32_t l, twMod2, twMod3, twMod4; - - pCol1 = p1; // points to real values by default - pCol2 = p2; - pCol3 = p3; - pCol4 = p4; - pEnd1 = p2 - 1; // points to imaginary values by default - pEnd2 = p3 - 1; - pEnd3 = p4 - 1; - pEnd4 = pEnd3 + L; - - tw2 = tw3 = tw4 = (float32_t *) S->pTwiddle; - - L >>= 1; - - // do four dot Fourier transform - - twMod2 = 2; - twMod3 = 4; - twMod4 = 6; - - // TOP - p1ap3_0 = p1[0] + p3[0]; - p1sp3_0 = p1[0] - p3[0]; - p1ap3_1 = p1[1] + p3[1]; - p1sp3_1 = p1[1] - p3[1]; - - // col 2 - t2[0] = p1sp3_0 + p2[1] - p4[1]; - t2[1] = p1sp3_1 - p2[0] + p4[0]; - // col 3 - t3[0] = p1ap3_0 - p2[0] - p4[0]; - t3[1] = p1ap3_1 - p2[1] - p4[1]; - // col 4 - t4[0] = p1sp3_0 - p2[1] + p4[1]; - t4[1] = p1sp3_1 + p2[0] - p4[0]; - // col 1 - *p1++ = p1ap3_0 + p2[0] + p4[0]; - *p1++ = p1ap3_1 + p2[1] + p4[1]; - - // Twiddle factors are ones - *p2++ = t2[0]; - *p2++ = t2[1]; - *p3++ = t3[0]; - *p3++ = t3[1]; - *p4++ = t4[0]; - *p4++ = t4[1]; - - tw2 += twMod2; - tw3 += twMod3; - tw4 += twMod4; - - for (l = (L - 2) >> 1; l > 0; l-- ) - { - // TOP - p1ap3_0 = p1[0] + p3[0]; - p1sp3_0 = p1[0] - p3[0]; - p1ap3_1 = p1[1] + p3[1]; - p1sp3_1 = p1[1] - p3[1]; - // col 2 - t2[0] = p1sp3_0 + p2[1] - p4[1]; - t2[1] = p1sp3_1 - p2[0] + p4[0]; - // col 3 - t3[0] = p1ap3_0 - p2[0] - p4[0]; - t3[1] = p1ap3_1 - p2[1] - p4[1]; - // col 4 - t4[0] = p1sp3_0 - p2[1] + p4[1]; - t4[1] = p1sp3_1 + p2[0] - p4[0]; - // col 1 - top - *p1++ = p1ap3_0 + p2[0] + p4[0]; - *p1++ = p1ap3_1 + p2[1] + p4[1]; - - // BOTTOM - p1ap3_1 = pEnd1[-1] + pEnd3[-1]; - p1sp3_1 = pEnd1[-1] - pEnd3[-1]; - p1ap3_0 = pEnd1[0] + pEnd3[0]; - p1sp3_0 = pEnd1[0] - pEnd3[0]; - // col 2 - t2[2] = pEnd2[0] - pEnd4[0] + p1sp3_1; - t2[3] = pEnd1[0] - pEnd3[0] - pEnd2[-1] + pEnd4[-1]; - // col 3 - t3[2] = p1ap3_1 - pEnd2[-1] - pEnd4[-1]; - t3[3] = p1ap3_0 - pEnd2[0] - pEnd4[0]; - // col 4 - t4[2] = pEnd2[0] - pEnd4[0] - p1sp3_1; - t4[3] = pEnd4[-1] - pEnd2[-1] - p1sp3_0; - // col 1 - Bottom - *pEnd1-- = p1ap3_0 + pEnd2[0] + pEnd4[0]; - *pEnd1-- = p1ap3_1 + pEnd2[-1] + pEnd4[-1]; - - // COL 2 - // read twiddle factors - twR = *tw2++; - twI = *tw2++; - // multiply by twiddle factors - // let Z1 = a + i(b), Z2 = c + i(d) - // => Z1 * Z2 = (a*c - b*d) + i(b*c + a*d) - - // Top - m0 = t2[0] * twR; - m1 = t2[1] * twI; - m2 = t2[1] * twR; - m3 = t2[0] * twI; - - *p2++ = m0 + m1; - *p2++ = m2 - m3; - // use vertical symmetry col 2 - // 0.9997 - 0.0245i <==> 0.0245 - 0.9997i - // Bottom - m0 = t2[3] * twI; - m1 = t2[2] * twR; - m2 = t2[2] * twI; - m3 = t2[3] * twR; - - *pEnd2-- = m0 - m1; - *pEnd2-- = m2 + m3; - - // COL 3 - twR = tw3[0]; - twI = tw3[1]; - tw3 += twMod3; - // Top - m0 = t3[0] * twR; - m1 = t3[1] * twI; - m2 = t3[1] * twR; - m3 = t3[0] * twI; - - *p3++ = m0 + m1; - *p3++ = m2 - m3; - // use vertical symmetry col 3 - // 0.9988 - 0.0491i <==> -0.9988 - 0.0491i - // Bottom - m0 = -t3[3] * twR; - m1 = t3[2] * twI; - m2 = t3[2] * twR; - m3 = t3[3] * twI; - - *pEnd3-- = m0 - m1; - *pEnd3-- = m3 - m2; - - // COL 4 - twR = tw4[0]; - twI = tw4[1]; - tw4 += twMod4; - // Top - m0 = t4[0] * twR; - m1 = t4[1] * twI; - m2 = t4[1] * twR; - m3 = t4[0] * twI; - - *p4++ = m0 + m1; - *p4++ = m2 - m3; - // use vertical symmetry col 4 - // 0.9973 - 0.0736i <==> -0.0736 + 0.9973i - // Bottom - m0 = t4[3] * twI; - m1 = t4[2] * twR; - m2 = t4[2] * twI; - m3 = t4[3] * twR; - - *pEnd4-- = m0 - m1; - *pEnd4-- = m2 + m3; - } - - //MIDDLE - // Twiddle factors are - // 1.0000 0.7071-0.7071i -1.0000i -0.7071-0.7071i - p1ap3_0 = p1[0] + p3[0]; - p1sp3_0 = p1[0] - p3[0]; - p1ap3_1 = p1[1] + p3[1]; - p1sp3_1 = p1[1] - p3[1]; - - // col 2 - t2[0] = p1sp3_0 + p2[1] - p4[1]; - t2[1] = p1sp3_1 - p2[0] + p4[0]; - // col 3 - t3[0] = p1ap3_0 - p2[0] - p4[0]; - t3[1] = p1ap3_1 - p2[1] - p4[1]; - // col 4 - t4[0] = p1sp3_0 - p2[1] + p4[1]; - t4[1] = p1sp3_1 + p2[0] - p4[0]; - // col 1 - Top - *p1++ = p1ap3_0 + p2[0] + p4[0]; - *p1++ = p1ap3_1 + p2[1] + p4[1]; - - // COL 2 - twR = tw2[0]; - twI = tw2[1]; - - m0 = t2[0] * twR; - m1 = t2[1] * twI; - m2 = t2[1] * twR; - m3 = t2[0] * twI; - - *p2++ = m0 + m1; - *p2++ = m2 - m3; - // COL 3 - twR = tw3[0]; - twI = tw3[1]; - - m0 = t3[0] * twR; - m1 = t3[1] * twI; - m2 = t3[1] * twR; - m3 = t3[0] * twI; - - *p3++ = m0 + m1; - *p3++ = m2 - m3; - // COL 4 - twR = tw4[0]; - twI = tw4[1]; - - m0 = t4[0] * twR; - m1 = t4[1] * twI; - m2 = t4[1] * twR; - m3 = t4[0] * twI; - - *p4++ = m0 + m1; - *p4++ = m2 - m3; - - // first col - arm_radix8_butterfly_f32( pCol1, L, (float32_t *) S->pTwiddle, 4U); - // second col - arm_radix8_butterfly_f32( pCol2, L, (float32_t *) S->pTwiddle, 4U); - // third col - arm_radix8_butterfly_f32( pCol3, L, (float32_t *) S->pTwiddle, 4U); - // fourth col - arm_radix8_butterfly_f32( pCol4, L, (float32_t *) S->pTwiddle, 4U); -} - -/** -* @addtogroup ComplexFFT -* @{ -*/ - -/** -* @details -* @brief Processing function for the floating-point complex FFT. -* @param[in] *S points to an instance of the floating-point CFFT structure. -* @param[in, out] *p1 points to the complex data buffer of size 2*fftLen. Processing occurs in-place. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return none. -*/ - -void arm_cfft_f32( - const arm_cfft_instance_f32 * S, - float32_t * p1, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - uint32_t L = S->fftLen, l; - float32_t invL, * pSrc; - - if (ifftFlag == 1U) - { - /* Conjugate input data */ - pSrc = p1 + 1; - for(l=0; lpTwiddle, 1); - break; - } - - if ( bitReverseFlag ) - arm_bitreversal_32((uint32_t*)p1,S->bitRevLength,S->pBitRevTable); - - if (ifftFlag == 1U) - { - invL = 1.0f/(float32_t)L; - /* Conjugate and scale output data */ - pSrc = p1; - for(l=0; l2*fftLen. Processing occurs in-place. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return none. -*/ - -void arm_cfft_q15( - const arm_cfft_instance_q15 * S, - q15_t * p1, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - uint32_t L = S->fftLen; - - if (ifftFlag == 1U) - { - switch (L) - { - case 16: - case 64: - case 256: - case 1024: - case 4096: - arm_radix4_butterfly_inverse_q15 ( p1, L, (q15_t*)S->pTwiddle, 1 ); - break; - - case 32: - case 128: - case 512: - case 2048: - arm_cfft_radix4by2_inverse_q15 ( p1, L, S->pTwiddle ); - break; - } - } - else - { - switch (L) - { - case 16: - case 64: - case 256: - case 1024: - case 4096: - arm_radix4_butterfly_q15 ( p1, L, (q15_t*)S->pTwiddle, 1 ); - break; - - case 32: - case 128: - case 512: - case 2048: - arm_cfft_radix4by2_q15 ( p1, L, S->pTwiddle ); - break; - } - } - - if ( bitReverseFlag ) - arm_bitreversal_16((uint16_t*)p1,S->bitRevLength,S->pBitRevTable); -} - -/** -* @} end of ComplexFFT group -*/ - -void arm_cfft_radix4by2_q15( - q15_t * pSrc, - uint32_t fftLen, - const q15_t * pCoef) -{ - uint32_t i; - uint32_t n2; - q15_t p0, p1, p2, p3; -#if defined (ARM_MATH_DSP) - q31_t T, S, R; - q31_t coeff, out1, out2; - const q15_t *pC = pCoef; - q15_t *pSi = pSrc; - q15_t *pSl = pSrc + fftLen; -#else - uint32_t ia, l; - q15_t xt, yt, cosVal, sinVal; -#endif - - n2 = fftLen >> 1; - -#if defined (ARM_MATH_DSP) - - for (i = n2; i > 0; i--) - { - coeff = _SIMD32_OFFSET(pC); - pC += 2; - - T = _SIMD32_OFFSET(pSi); - T = __SHADD16(T, 0); // this is just a SIMD arithmetic shift right by 1 - - S = _SIMD32_OFFSET(pSl); - S = __SHADD16(S, 0); // this is just a SIMD arithmetic shift right by 1 - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSi) = __SHADD16(T, S); - pSi += 2; - - #ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - - #else - - out1 = __SMUSDX(R, coeff) >> 16U; - out2 = __SMUAD(coeff, R); - - #endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSl) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSl += 2; - } - -#else // #if defined (ARM_MATH_DSP) - - ia = 0; - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia++; - - l = i + n2; - - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) + - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) - - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - } - -#endif // #if defined (ARM_MATH_DSP) - - // first col - arm_radix4_butterfly_q15( pSrc, n2, (q15_t*)pCoef, 2U); - // second col - arm_radix4_butterfly_q15( pSrc + fftLen, n2, (q15_t*)pCoef, 2U); - - for (i = 0; i < fftLen >> 1; i++) - { - p0 = pSrc[4*i+0]; - p1 = pSrc[4*i+1]; - p2 = pSrc[4*i+2]; - p3 = pSrc[4*i+3]; - - p0 <<= 1; - p1 <<= 1; - p2 <<= 1; - p3 <<= 1; - - pSrc[4*i+0] = p0; - pSrc[4*i+1] = p1; - pSrc[4*i+2] = p2; - pSrc[4*i+3] = p3; - } -} - -void arm_cfft_radix4by2_inverse_q15( - q15_t * pSrc, - uint32_t fftLen, - const q15_t * pCoef) -{ - uint32_t i; - uint32_t n2; - q15_t p0, p1, p2, p3; -#if defined (ARM_MATH_DSP) - q31_t T, S, R; - q31_t coeff, out1, out2; - const q15_t *pC = pCoef; - q15_t *pSi = pSrc; - q15_t *pSl = pSrc + fftLen; -#else - uint32_t ia, l; - q15_t xt, yt, cosVal, sinVal; -#endif - - n2 = fftLen >> 1; - -#if defined (ARM_MATH_DSP) - - for (i = n2; i > 0; i--) - { - coeff = _SIMD32_OFFSET(pC); - pC += 2; - - T = _SIMD32_OFFSET(pSi); - T = __SHADD16(T, 0); // this is just a SIMD arithmetic shift right by 1 - - S = _SIMD32_OFFSET(pSl); - S = __SHADD16(S, 0); // this is just a SIMD arithmetic shift right by 1 - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSi) = __SHADD16(T, S); - pSi += 2; - - #ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); - #else - - out1 = __SMUADX(R, coeff) >> 16U; - out2 = __SMUSD(__QSUB(0, coeff), R); - - #endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSl) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSl += 2; - } - -#else // #if defined (ARM_MATH_DSP) - - ia = 0; - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia++; - - l = i + n2; - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) - - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) + - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - } - -#endif // #if defined (ARM_MATH_DSP) - - // first col - arm_radix4_butterfly_inverse_q15( pSrc, n2, (q15_t*)pCoef, 2U); - // second col - arm_radix4_butterfly_inverse_q15( pSrc + fftLen, n2, (q15_t*)pCoef, 2U); - - for (i = 0; i < fftLen >> 1; i++) - { - p0 = pSrc[4*i+0]; - p1 = pSrc[4*i+1]; - p2 = pSrc[4*i+2]; - p3 = pSrc[4*i+3]; - - p0 <<= 1; - p1 <<= 1; - p2 <<= 1; - p3 <<= 1; - - pSrc[4*i+0] = p0; - pSrc[4*i+1] = p1; - pSrc[4*i+2] = p2; - pSrc[4*i+3] = p3; - } -} - diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_q31.c deleted file mode 100644 index ff4ff94..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_q31.c +++ /dev/null @@ -1,252 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_q31.c - * Description: Combined Radix Decimation in Frequency CFFT fixed point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -extern void arm_radix4_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier); - -extern void arm_radix4_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier); - -extern void arm_bitreversal_32( - uint32_t * pSrc, - const uint16_t bitRevLen, - const uint16_t * pBitRevTable); - -void arm_cfft_radix4by2_q31( - q31_t * pSrc, - uint32_t fftLen, - const q31_t * pCoef); - -void arm_cfft_radix4by2_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - const q31_t * pCoef); - -/** -* @ingroup groupTransforms -*/ - -/** -* @addtogroup ComplexFFT -* @{ -*/ - -/** -* @details -* @brief Processing function for the fixed-point complex FFT in Q31 format. -* @param[in] *S points to an instance of the fixed-point CFFT structure. -* @param[in, out] *p1 points to the complex data buffer of size 2*fftLen. Processing occurs in-place. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return none. -*/ - -void arm_cfft_q31( - const arm_cfft_instance_q31 * S, - q31_t * p1, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - uint32_t L = S->fftLen; - - if (ifftFlag == 1U) - { - switch (L) - { - case 16: - case 64: - case 256: - case 1024: - case 4096: - arm_radix4_butterfly_inverse_q31 ( p1, L, (q31_t*)S->pTwiddle, 1 ); - break; - - case 32: - case 128: - case 512: - case 2048: - arm_cfft_radix4by2_inverse_q31 ( p1, L, S->pTwiddle ); - break; - } - } - else - { - switch (L) - { - case 16: - case 64: - case 256: - case 1024: - case 4096: - arm_radix4_butterfly_q31 ( p1, L, (q31_t*)S->pTwiddle, 1 ); - break; - - case 32: - case 128: - case 512: - case 2048: - arm_cfft_radix4by2_q31 ( p1, L, S->pTwiddle ); - break; - } - } - - if ( bitReverseFlag ) - arm_bitreversal_32((uint32_t*)p1,S->bitRevLength,S->pBitRevTable); -} - -/** -* @} end of ComplexFFT group -*/ - -void arm_cfft_radix4by2_q31( - q31_t * pSrc, - uint32_t fftLen, - const q31_t * pCoef) -{ - uint32_t i, l; - uint32_t n2, ia; - q31_t xt, yt, cosVal, sinVal; - q31_t p0, p1; - - n2 = fftLen >> 1; - ia = 0; - for (i = 0; i < n2; i++) - { - cosVal = pCoef[2*ia]; - sinVal = pCoef[2*ia + 1]; - ia++; - - l = i + n2; - xt = (pSrc[2 * i] >> 2) - (pSrc[2 * l] >> 2); - pSrc[2 * i] = (pSrc[2 * i] >> 2) + (pSrc[2 * l] >> 2); - - yt = (pSrc[2 * i + 1] >> 2) - (pSrc[2 * l + 1] >> 2); - pSrc[2 * i + 1] = (pSrc[2 * l + 1] >> 2) + (pSrc[2 * i + 1] >> 2); - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multAcc_32x32_keep32_R(p0, yt, sinVal); - multSub_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0 << 1; - pSrc[2U * l + 1U] = p1 << 1; - - } - - // first col - arm_radix4_butterfly_q31( pSrc, n2, (q31_t*)pCoef, 2U); - // second col - arm_radix4_butterfly_q31( pSrc + fftLen, n2, (q31_t*)pCoef, 2U); - - for (i = 0; i < fftLen >> 1; i++) - { - p0 = pSrc[4*i+0]; - p1 = pSrc[4*i+1]; - xt = pSrc[4*i+2]; - yt = pSrc[4*i+3]; - - p0 <<= 1; - p1 <<= 1; - xt <<= 1; - yt <<= 1; - - pSrc[4*i+0] = p0; - pSrc[4*i+1] = p1; - pSrc[4*i+2] = xt; - pSrc[4*i+3] = yt; - } - -} - -void arm_cfft_radix4by2_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - const q31_t * pCoef) -{ - uint32_t i, l; - uint32_t n2, ia; - q31_t xt, yt, cosVal, sinVal; - q31_t p0, p1; - - n2 = fftLen >> 1; - ia = 0; - for (i = 0; i < n2; i++) - { - cosVal = pCoef[2*ia]; - sinVal = pCoef[2*ia + 1]; - ia++; - - l = i + n2; - xt = (pSrc[2 * i] >> 2) - (pSrc[2 * l] >> 2); - pSrc[2 * i] = (pSrc[2 * i] >> 2) + (pSrc[2 * l] >> 2); - - yt = (pSrc[2 * i + 1] >> 2) - (pSrc[2 * l + 1] >> 2); - pSrc[2 * i + 1] = (pSrc[2 * l + 1] >> 2) + (pSrc[2 * i + 1] >> 2); - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multSub_32x32_keep32_R(p0, yt, sinVal); - multAcc_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0 << 1; - pSrc[2U * l + 1U] = p1 << 1; - - } - - // first col - arm_radix4_butterfly_inverse_q31( pSrc, n2, (q31_t*)pCoef, 2U); - // second col - arm_radix4_butterfly_inverse_q31( pSrc + fftLen, n2, (q31_t*)pCoef, 2U); - - for (i = 0; i < fftLen >> 1; i++) - { - p0 = pSrc[4*i+0]; - p1 = pSrc[4*i+1]; - xt = pSrc[4*i+2]; - yt = pSrc[4*i+3]; - - p0 <<= 1; - p1 <<= 1; - xt <<= 1; - yt <<= 1; - - pSrc[4*i+0] = p0; - pSrc[4*i+1] = p1; - pSrc[4*i+2] = xt; - pSrc[4*i+3] = yt; - } -} - diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f32.c deleted file mode 100644 index d35988d..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f32.c +++ /dev/null @@ -1,472 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_f32.c - * Description: Radix-2 Decimation in Frequency CFFT & CIFFT Floating point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -void arm_radix2_butterfly_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier); - -void arm_radix2_butterfly_inverse_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen); - -extern void arm_bitreversal_f32( - float32_t * pSrc, - uint16_t fftSize, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - -/** -* @ingroup groupTransforms -*/ - -/** -* @addtogroup ComplexFFT -* @{ -*/ - -/** -* @details -* @brief Radix-2 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_f32 and will be removed -* in the future. -* @param[in] *S points to an instance of the floating-point Radix-2 CFFT/CIFFT structure. -* @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. -* @return none. -*/ - -void arm_cfft_radix2_f32( -const arm_cfft_radix2_instance_f32 * S, -float32_t * pSrc) -{ - - if (S->ifftFlag == 1U) - { - /* Complex IFFT radix-2 */ - arm_radix2_butterfly_inverse_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier, S->onebyfftLen); - } - else - { - /* Complex FFT radix-2 */ - arm_radix2_butterfly_f32(pSrc, S->fftLen, S->pTwiddle, - S->twidCoefModifier); - } - - if (S->bitReverseFlag == 1U) - { - /* Bit Reversal */ - arm_bitreversal_f32(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - - -/** -* @} end of ComplexFFT group -*/ - - - -/* ---------------------------------------------------------------------- -** Internal helper function used by the FFTs -** ------------------------------------------------------------------- */ - -/* -* @brief Core function for the floating-point CFFT butterfly process. -* @param[in, out] *pSrc points to the in-place buffer of floating-point data type. -* @param[in] fftLen length of the FFT. -* @param[in] *pCoef points to the twiddle coefficient buffer. -* @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -*/ - -void arm_radix2_butterfly_f32( -float32_t * pSrc, -uint32_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier) -{ - - uint32_t i, j, k, l; - uint32_t n1, n2, ia; - float32_t xt, yt, cosVal, sinVal; - float32_t p0, p1, p2, p3; - float32_t a0, a1; - -#if defined (ARM_MATH_DSP) - - /* Initializations for the first stage */ - n2 = fftLen >> 1; - ia = 0; - i = 0; - - // loop for groups - for (k = n2; k > 0; k--) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - /* Twiddle coefficients index modifier */ - ia += twidCoefModifier; - - /* index calculation for the input as, */ - /* pSrc[i + 0], pSrc[i + fftLen/1] */ - l = i + n2; - - /* Butterfly implementation */ - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 + p1; - pSrc[2 * l + 1] = p2 - p3; - - i++; - } // groups loop end - - twidCoefModifier <<= 1U; - - // loop for stage - for (k = n2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - j = 0; - do - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia += twidCoefModifier; - - // loop for butterfly - i = j; - do - { - l = i + n2; - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 + p1; - pSrc[2 * l + 1] = p2 - p3; - - i += n1; - } while ( i < fftLen ); // butterfly loop end - j++; - } while ( j < n2); // groups loop end - twidCoefModifier <<= 1U; - } // stages loop end - - // loop for butterfly - for (i = 0; i < fftLen; i += 2) - { - a0 = pSrc[2 * i] + pSrc[2 * i + 2]; - xt = pSrc[2 * i] - pSrc[2 * i + 2]; - - yt = pSrc[2 * i + 1] - pSrc[2 * i + 3]; - a1 = pSrc[2 * i + 3] + pSrc[2 * i + 1]; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - pSrc[2 * i + 2] = xt; - pSrc[2 * i + 3] = yt; - } // groups loop end - -#else - - n2 = fftLen; - - // loop for stage - for (k = fftLen; k > 1; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - j = 0; - do - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia += twidCoefModifier; - - // loop for butterfly - i = j; - do - { - l = i + n2; - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 + p1; - pSrc[2 * l + 1] = p2 - p3; - - i += n1; - } while (i < fftLen); - j++; - } while (j < n2); - twidCoefModifier <<= 1U; - } - -#endif // #if defined (ARM_MATH_DSP) - -} - - -void arm_radix2_butterfly_inverse_f32( -float32_t * pSrc, -uint32_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier, -float32_t onebyfftLen) -{ - - uint32_t i, j, k, l; - uint32_t n1, n2, ia; - float32_t xt, yt, cosVal, sinVal; - float32_t p0, p1, p2, p3; - float32_t a0, a1; - -#if defined (ARM_MATH_DSP) - - n2 = fftLen >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia += twidCoefModifier; - - l = i + n2; - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 - p1; - pSrc[2 * l + 1] = p2 + p3; - } // groups loop end - - twidCoefModifier <<= 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - j = 0; - do - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia += twidCoefModifier; - - // loop for butterfly - i = j; - do - { - l = i + n2; - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 - p1; - pSrc[2 * l + 1] = p2 + p3; - - i += n1; - } while ( i < fftLen ); // butterfly loop end - j++; - } while (j < n2); // groups loop end - - twidCoefModifier <<= 1U; - } // stages loop end - - // loop for butterfly - for (i = 0; i < fftLen; i += 2) - { - a0 = pSrc[2 * i] + pSrc[2 * i + 2]; - xt = pSrc[2 * i] - pSrc[2 * i + 2]; - - a1 = pSrc[2 * i + 3] + pSrc[2 * i + 1]; - yt = pSrc[2 * i + 1] - pSrc[2 * i + 3]; - - p0 = a0 * onebyfftLen; - p2 = xt * onebyfftLen; - p1 = a1 * onebyfftLen; - p3 = yt * onebyfftLen; - - pSrc[2 * i] = p0; - pSrc[2 * i + 1] = p1; - pSrc[2 * i + 2] = p2; - pSrc[2 * i + 3] = p3; - } // butterfly loop end - -#else - - n2 = fftLen; - - // loop for stage - for (k = fftLen; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - j = 0; - do - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - i = j; - do - { - l = i + n2; - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - - p0 = xt * cosVal; - p1 = yt * sinVal; - p2 = yt * cosVal; - p3 = xt * sinVal; - - pSrc[2 * i] = a0; - pSrc[2 * i + 1] = a1; - - pSrc[2 * l] = p0 - p1; - pSrc[2 * l + 1] = p2 + p3; - - i += n1; - } while ( i < fftLen ); // butterfly loop end - j++; - } while ( j < n2 ); // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - - a0 = pSrc[2 * i] + pSrc[2 * l]; - xt = pSrc[2 * i] - pSrc[2 * l]; - - a1 = pSrc[2 * l + 1] + pSrc[2 * i + 1]; - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - - p0 = a0 * onebyfftLen; - p2 = xt * onebyfftLen; - p1 = a1 * onebyfftLen; - p3 = yt * onebyfftLen; - - pSrc[2 * i] = p0; - pSrc[2U * l] = p2; - - pSrc[2 * i + 1] = p1; - pSrc[2U * l + 1U] = p3; - } // butterfly loop end - -#endif // #if defined (ARM_MATH_DSP) - -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_f32.c deleted file mode 100644 index fdfa63e..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_f32.c +++ /dev/null @@ -1,192 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_init_f32.c - * Description: Radix-2 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** -* @brief Initialization function for the floating-point CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_f32 and will be removed -* in the future. -* @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ -arm_status arm_cfft_radix2_init_f32( - arm_cfft_radix2_instance_f32 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (float32_t *) twiddleCoef; - - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - - case 4096U: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.000244140625; - break; - - case 2048U: - /* Initializations of structure parameters for 2048 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.00048828125; - break; - - case 1024U: - /* Initializations of structure parameters for 1024 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.0009765625f; - break; - - case 512U: - /* Initializations of structure parameters for 512 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 8U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 8U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.001953125; - break; - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - S->onebyfftLen = 0.00390625f; - break; - - case 128U: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32U; - S->bitRevFactor = 32U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - S->onebyfftLen = 0.0078125; - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - S->onebyfftLen = 0.015625f; - break; - - case 32U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 128U; - S->bitRevFactor = 128U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - S->onebyfftLen = 0.03125; - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - S->onebyfftLen = 0.0625f; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q15.c deleted file mode 100644 index 2646374..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q15.c +++ /dev/null @@ -1,177 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_init_q15.c - * Description: Radix-2 Decimation in Frequency Q15 FFT & IFFT initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** -* @brief Initialization function for the Q15 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q15 and will be removed -* @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix2_init_q15( - arm_cfft_radix2_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q15_t *) twiddleCoef_4096_q15; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - case 4096U: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - - break; - - case 2048U: - /* Initializations of structure parameters for 2048 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - - break; - - case 1024U: - /* Initializations of structure parameters for 1024 point FFT */ - S->twidCoefModifier = 4U; - S->bitRevFactor = 4U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - - break; - - case 512U: - /* Initializations of structure parameters for 512 point FFT */ - S->twidCoefModifier = 8U; - S->bitRevFactor = 8U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - - break; - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - - break; - - case 128U: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32U; - S->bitRevFactor = 32U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - - break; - - case 32U: - /* Initializations of structure parameters for 32 point FFT */ - S->twidCoefModifier = 128U; - S->bitRevFactor = 128U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q31.c deleted file mode 100644 index 56fff4b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_init_q31.c +++ /dev/null @@ -1,174 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_init_q31.c - * Description: Radix-2 Decimation in Frequency Fixed-point CFFT & CIFFT Initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - - -/** -* -* @brief Initialization function for the Q31 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q31 and will be removed -* @param[in,out] *S points to an instance of the Q31 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix2_init_q31( - arm_cfft_radix2_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q31_t *) twiddleCoef_4096_q31; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of Instance structure depending on the FFT length */ - switch (S->fftLen) - { - /* Initializations of structure parameters for 4096 point FFT */ - case 4096U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - break; - - /* Initializations of structure parameters for 2048 point FFT */ - case 2048U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 2U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 2U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[1]; - break; - - /* Initializations of structure parameters for 1024 point FFT */ - case 1024U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - break; - - /* Initializations of structure parameters for 512 point FFT */ - case 512U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 8U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 8U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[7]; - break; - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - break; - - case 128U: - /* Initializations of structure parameters for 128 point FFT */ - S->twidCoefModifier = 32U; - S->bitRevFactor = 32U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[31]; - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - break; - - case 32U: - /* Initializations of structure parameters for 32 point FFT */ - S->twidCoefModifier = 128U; - S->bitRevFactor = 128U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[127]; - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q15.c deleted file mode 100644 index 8880ab9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q15.c +++ /dev/null @@ -1,729 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_q15.c - * Description: Radix-2 Decimation in Frequency CFFT & CIFFT Fixed point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -void arm_radix2_butterfly_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier); - -void arm_radix2_butterfly_inverse_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier); - -void arm_bitreversal_q15( - q15_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the fixed-point CFFT/CIFFT. - * @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q15 and will be removed - * @param[in] *S points to an instance of the fixed-point CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - */ - -void arm_cfft_radix2_q15( - const arm_cfft_radix2_instance_q15 * S, - q15_t * pSrc) -{ - - if (S->ifftFlag == 1U) - { - arm_radix2_butterfly_inverse_q15(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - else - { - arm_radix2_butterfly_q15(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - - arm_bitreversal_q15(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); -} - -/** - * @} end of ComplexFFT group - */ - -void arm_radix2_butterfly_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier) -{ -#if defined (ARM_MATH_DSP) - - unsigned i, j, k, l; - unsigned n1, n2, ia; - q15_t in; - q31_t T, S, R; - q31_t coeff, out1, out2; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 1; - T = ((T >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 1; - S = ((S >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16U; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - i++; - l++; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 1; - T = ((T >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 1; - S = ((S >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16U; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16U; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - i += n1; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(coeff, R) >> 16; - out2 = __SMUSDX(coeff, R); - -#else - - out1 = __SMUSDX(R, coeff) >> 16U; - out2 = __SMUAD(coeff, R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2U * l)) = R; - - i += n1; - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2U * l)) = R; - - } // groups loop end - - -#else - - unsigned i, j, k, l; - unsigned n1, n2, ia; - q15_t xt, yt, cosVal, sinVal; - - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) + - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) - - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1U; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) + - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) - - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - -#endif // #if defined (ARM_MATH_DSP) - -} - - -void arm_radix2_butterfly_inverse_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pCoef, - uint16_t twidCoefModifier) -{ -#if defined (ARM_MATH_DSP) - - unsigned i, j, k, l; - unsigned n1, n2, ia; - q15_t in; - q31_t T, S, R; - q31_t coeff, out1, out2; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 1; - T = ((T >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 1; - S = ((S >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16U; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - i++; - l++; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - in = ((int16_t) (T & 0xFFFF)) >> 1; - T = ((T >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - in = ((int16_t) (S & 0xFFFF)) >> 1; - S = ((S >> 1) & 0xFFFF0000) | (in & 0xFFFF); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16U; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); - -#else - - out1 = __SMUADX(R, coeff) >> 16U; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - i += n1; - - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __SHADD16(T, S); - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(coeff, R) >> 16; - out2 = __SMUADX(coeff, R); -#else - - out1 = __SMUADX(R, coeff) >> 16U; - out2 = __SMUSD(__QSUB(0, coeff), R); - -#endif // #ifndef ARM_MATH_BIG_ENDIAN - - _SIMD32_OFFSET(pSrc + (2U * l)) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - coeff = _SIMD32_OFFSET(pCoef + (ia * 2U)); - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - - T = _SIMD32_OFFSET(pSrc + (2 * i)); - - S = _SIMD32_OFFSET(pSrc + (2 * l)); - - R = __QSUB16(T, S); - - _SIMD32_OFFSET(pSrc + (2 * i)) = __QADD16(T, S); - - _SIMD32_OFFSET(pSrc + (2U * l)) = R; - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - -#else - - - unsigned i, j, k, l; - unsigned n1, n2, ia; - q15_t xt, yt, cosVal, sinVal; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) - - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) + - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1U; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1U; - - pSrc[2U * l] = (((int16_t) (((q31_t) xt * cosVal) >> 16)) - - ((int16_t) (((q31_t) yt * sinVal) >> 16))); - - pSrc[2U * l + 1U] = (((int16_t) (((q31_t) yt * cosVal) >> 16)) + - ((int16_t) (((q31_t) xt * sinVal) >> 16))); - - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - } // groups loop end - - -#endif // #if defined (ARM_MATH_DSP) - -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q31.c deleted file mode 100644 index c9b1537..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_q31.c +++ /dev/null @@ -1,338 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix2_q31.c - * Description: Radix-2 Decimation in Frequency CFFT & CIFFT Fixed point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -void arm_radix2_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier); - -void arm_radix2_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint16_t twidCoefModifier); - -void arm_bitreversal_q31( - q31_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - -/** -* @ingroup groupTransforms -*/ - -/** -* @addtogroup ComplexFFT -* @{ -*/ - -/** -* @details -* @brief Processing function for the fixed-point CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q31 and will be removed -* @param[in] *S points to an instance of the fixed-point CFFT/CIFFT structure. -* @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. -* @return none. -*/ - -void arm_cfft_radix2_q31( -const arm_cfft_radix2_instance_q31 * S, -q31_t * pSrc) -{ - - if (S->ifftFlag == 1U) - { - arm_radix2_butterfly_inverse_q31(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - else - { - arm_radix2_butterfly_q31(pSrc, S->fftLen, - S->pTwiddle, S->twidCoefModifier); - } - - arm_bitreversal_q31(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); -} - -/** -* @} end of ComplexFFT group -*/ - -void arm_radix2_butterfly_q31( -q31_t * pSrc, -uint32_t fftLen, -q31_t * pCoef, -uint16_t twidCoefModifier) -{ - - unsigned i, j, k, l, m; - unsigned n1, n2, ia; - q31_t xt, yt, cosVal, sinVal; - q31_t p0, p1; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - l = i + n2; - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multAcc_32x32_keep32_R(p0, yt, sinVal); - multSub_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0; - pSrc[2U * l + 1U] = p1; - - } // groups loop end - - twidCoefModifier <<= 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - i = j; - m = fftLen / n1; - do - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1U; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1U; - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multAcc_32x32_keep32_R(p0, yt, sinVal); - multSub_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0; - pSrc[2U * l + 1U] = p1; - i += n1; - m--; - } while ( m > 0); // butterfly loop end - - } // groups loop end - - twidCoefModifier <<= 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - i += n1; - l = i + n2; - - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - } // butterfly loop end - -} - - -void arm_radix2_butterfly_inverse_q31( -q31_t * pSrc, -uint32_t fftLen, -q31_t * pCoef, -uint16_t twidCoefModifier) -{ - - unsigned i, j, k, l; - unsigned n1, n2, ia; - q31_t xt, yt, cosVal, sinVal; - q31_t p0, p1; - - //N = fftLen; - n2 = fftLen; - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (i = 0; i < n2; i++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - l = i + n2; - xt = (pSrc[2 * i] >> 1U) - (pSrc[2 * l] >> 1U); - pSrc[2 * i] = ((pSrc[2 * i] >> 1U) + (pSrc[2 * l] >> 1U)) >> 1U; - - yt = (pSrc[2 * i + 1] >> 1U) - (pSrc[2 * l + 1] >> 1U); - pSrc[2 * i + 1] = - ((pSrc[2 * l + 1] >> 1U) + (pSrc[2 * i + 1] >> 1U)) >> 1U; - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multSub_32x32_keep32_R(p0, yt, sinVal); - multAcc_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0; - pSrc[2U * l + 1U] = p1; - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - - // loop for stage - for (k = fftLen / 2; k > 2; k = k >> 1) - { - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - // loop for groups - for (j = 0; j < n2; j++) - { - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = j; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]) >> 1U; - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]) >> 1U; - - mult_32x32_keep32_R(p0, xt, cosVal); - mult_32x32_keep32_R(p1, yt, cosVal); - multSub_32x32_keep32_R(p0, yt, sinVal); - multAcc_32x32_keep32_R(p1, xt, sinVal); - - pSrc[2U * l] = p0; - pSrc[2U * l + 1U] = p1; - } // butterfly loop end - - } // groups loop end - - twidCoefModifier = twidCoefModifier << 1U; - } // stages loop end - - n1 = n2; - n2 = n2 >> 1; - ia = 0; - - cosVal = pCoef[ia * 2]; - sinVal = pCoef[(ia * 2) + 1]; - ia = ia + twidCoefModifier; - - // loop for butterfly - for (i = 0; i < fftLen; i += n1) - { - l = i + n2; - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - i += n1; - l = i + n2; - - xt = pSrc[2 * i] - pSrc[2 * l]; - pSrc[2 * i] = (pSrc[2 * i] + pSrc[2 * l]); - - yt = pSrc[2 * i + 1] - pSrc[2 * l + 1]; - pSrc[2 * i + 1] = (pSrc[2 * l + 1] + pSrc[2 * i + 1]); - - pSrc[2U * l] = xt; - - pSrc[2U * l + 1U] = yt; - - } // butterfly loop end - -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f32.c deleted file mode 100644 index d6f66ae..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f32.c +++ /dev/null @@ -1,1209 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_f32.c - * Description: Radix-4 Decimation in Frequency CFFT & CIFFT Floating point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -extern void arm_bitreversal_f32( -float32_t * pSrc, -uint16_t fftSize, -uint16_t bitRevFactor, -uint16_t * pBitRevTab); - -void arm_radix4_butterfly_f32( -float32_t * pSrc, -uint16_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier); - -void arm_radix4_butterfly_inverse_f32( -float32_t * pSrc, -uint16_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier, -float32_t onebyfftLen); - - -/** -* @ingroup groupTransforms -*/ - -/** -* @addtogroup ComplexFFT -* @{ -*/ - -/** -* @details -* @brief Processing function for the floating-point Radix-4 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_f32 and will be removed -* in the future. -* @param[in] *S points to an instance of the floating-point Radix-4 CFFT/CIFFT structure. -* @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. -* @return none. -*/ - -void arm_cfft_radix4_f32( - const arm_cfft_radix4_instance_f32 * S, - float32_t * pSrc) -{ - if (S->ifftFlag == 1U) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_f32(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier, S->onebyfftLen); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_f32(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); - } - - if (S->bitReverseFlag == 1U) - { - /* Bit Reversal */ - arm_bitreversal_f32(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - -/** -* @} end of ComplexFFT group -*/ - -/* ---------------------------------------------------------------------- - * Internal helper function used by the FFTs - * ---------------------------------------------------------------------- */ - -/* -* @brief Core function for the floating-point CFFT butterfly process. -* @param[in, out] *pSrc points to the in-place buffer of floating-point data type. -* @param[in] fftLen length of the FFT. -* @param[in] *pCoef points to the twiddle coefficient buffer. -* @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -*/ - -void arm_radix4_butterfly_f32( -float32_t * pSrc, -uint16_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier) -{ - - float32_t co1, co2, co3, si1, si2, si3; - uint32_t ia1, ia2, ia3; - uint32_t i0, i1, i2, i3; - uint32_t n1, n2, j, k; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - float32_t xaIn, yaIn, xbIn, ybIn, xcIn, ycIn, xdIn, ydIn; - float32_t Xaplusc, Xbplusd, Yaplusc, Ybplusd, Xaminusc, Xbminusd, Yaminusc, - Ybminusd; - float32_t Xb12C_out, Yb12C_out, Xc12C_out, Yc12C_out, Xd12C_out, Yd12C_out; - float32_t Xb12_out, Yb12_out, Xc12_out, Yc12_out, Xd12_out, Yd12_out; - float32_t *ptr1; - float32_t p0,p1,p2,p3,p4,p5; - float32_t a0,a1,a2,a3,a4,a5,a6,a7; - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - i0 = 0U; - ia1 = 0U; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2U * i0)]; - yaIn = pSrc[(2U * i0) + 1U]; - - xbIn = pSrc[(2U * i1)]; - ybIn = pSrc[(2U * i1) + 1U]; - - xcIn = pSrc[(2U * i2)]; - ycIn = pSrc[(2U * i2) + 1U]; - - xdIn = pSrc[(2U * i3)]; - ydIn = pSrc[(2U * i3) + 1U]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* xb - xd */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* yb - yd */ - Ybminusd = ybIn - ydIn; - - /* xa' = xa + xb + xc + xd */ - pSrc[(2U * i0)] = Xaplusc + Xbplusd; - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = Yaplusc + Ybplusd; - - /* (xa - xc) + (yb - yd) */ - Xb12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc - Xbminusd); - /* (xa + xc) - (xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) - (yb - yd) */ - Xd12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yd12C_out = (Xbminusd + Yaminusc); - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* index calculation for the coefficients */ - ia3 = ia2 + ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - //Xb12_out -= Yb12C_out * si1; - p0 = Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - //Yb12_out += Xb12C_out * si1; - p1 = Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - //Xc12_out -= Yc12C_out * si2; - p2 = Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - //Yc12_out += Xc12C_out * si2; - p3 = Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - //Xd12_out -= Yd12C_out * si3; - p4 = Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - //Yd12_out += Xd12C_out * si3; - p5 = Xd12C_out * si3; - - Xb12_out += p0; - Yb12_out -= p1; - Xc12_out += p2; - Yc12_out -= p3; - Xd12_out += p4; - Yd12_out -= p5; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = Yd12_out; - - /* Twiddle coefficients index modifier */ - ia1 += twidCoefModifier; - - /* Updating input index */ - i0++; - - } - while (--j); - - twidCoefModifier <<= 2U; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen >> 2U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* Calculation of first stage */ - j = 0; - do - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* Twiddle coefficients index modifier */ - ia1 += twidCoefModifier; - - i0 = j; - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2U * i0)]; - yaIn = pSrc[(2U * i0) + 1U]; - - xbIn = pSrc[(2U * i1)]; - ybIn = pSrc[(2U * i1) + 1U]; - - xcIn = pSrc[(2U * i2)]; - ycIn = pSrc[(2U * i2) + 1U]; - - xdIn = pSrc[(2U * i3)]; - ydIn = pSrc[(2U * i3) + 1U]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* (xb - xd) */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* (yb - yd) */ - Ybminusd = ybIn - ydIn; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xa - xc) + (yb - yd) */ - Xb12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yb12C_out = (Yaminusc - Xbminusd); - /* xa + xc -(xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) - (yb - yd) */ - Xd12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yd12C_out = (Xbminusd + Yaminusc); - - pSrc[(2U * i0)] = Xaplusc + Xbplusd; - pSrc[(2U * i0) + 1U] = Yaplusc + Ybplusd; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - //Xb12_out -= Yb12C_out * si1; - p0 = Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - //Yb12_out += Xb12C_out * si1; - p1 = Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - //Xc12_out -= Yc12C_out * si2; - p2 = Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - //Yc12_out += Xc12C_out * si2; - p3 = Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - //Xd12_out -= Yd12C_out * si3; - p4 = Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - //Yd12_out += Xd12C_out * si3; - p5 = Xd12C_out * si3; - - Xb12_out += p0; - Yb12_out -= p1; - Xc12_out += p2; - Yc12_out -= p3; - Xd12_out += p4; - Yd12_out -= p5; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = Yd12_out; - - i0 += n1; - } while (i0 < fftLen); - j++; - } while (j <= (n2 - 1U)); - twidCoefModifier <<= 2U; - } - - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - xaIn = ptr1[0]; - yaIn = ptr1[1]; - xbIn = ptr1[2]; - ybIn = ptr1[3]; - xcIn = ptr1[4]; - ycIn = ptr1[5]; - xdIn = ptr1[6]; - ydIn = ptr1[7]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - - /* ya + yc */ - Yaplusc = yaIn + ycIn; - - /* ya - yc */ - Yaminusc = yaIn - ycIn; - - /* xb + xd */ - Xbplusd = xbIn + xdIn; - - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xb-xd) */ - Xbminusd = xbIn - xdIn; - - /* (yb-yd) */ - Ybminusd = ybIn - ydIn; - - /* xa' = xa + xb + xc + xd */ - a0 = (Xaplusc + Xbplusd); - /* ya' = ya + yb + yc + yd */ - a1 = (Yaplusc + Ybplusd); - /* xc' = (xa-xb+xc-xd) */ - a2 = (Xaplusc - Xbplusd); - /* yc' = (ya-yb+yc-yd) */ - a3 = (Yaplusc - Ybplusd); - /* xb' = (xa+yb-xc-yd) */ - a4 = (Xaminusc + Ybminusd); - /* yb' = (ya-xb-yc+xd) */ - a5 = (Yaminusc - Xbminusd); - /* xd' = (xa-yb-xc+yd)) */ - a6 = (Xaminusc - Ybminusd); - /* yd' = (ya+xb-yc-xd) */ - a7 = (Xbminusd + Yaminusc); - - ptr1[0] = a0; - ptr1[1] = a1; - ptr1[2] = a2; - ptr1[3] = a3; - ptr1[4] = a4; - ptr1[5] = a5; - ptr1[6] = a6; - ptr1[7] = a7; - - /* increment pointer by 8 */ - ptr1 += 8U; - } while (--j); - -#else - - float32_t t1, t2, r1, r2, s1, s2; - - /* Run the below code for Cortex-M0 */ - - /* Initializations for the fft calculation */ - n2 = fftLen; - n1 = n2; - for (k = fftLen; k > 1U; k >>= 2U) - { - /* Initializations for the fft calculation */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* FFT Calculation */ - j = 0; - do - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - i0 = j; - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* xa + xc */ - r1 = pSrc[(2U * i0)] + pSrc[(2U * i2)]; - - /* xa - xc */ - r2 = pSrc[(2U * i0)] - pSrc[(2U * i2)]; - - /* ya + yc */ - s1 = pSrc[(2U * i0) + 1U] + pSrc[(2U * i2) + 1U]; - - /* ya - yc */ - s2 = pSrc[(2U * i0) + 1U] - pSrc[(2U * i2) + 1U]; - - /* xb + xd */ - t1 = pSrc[2U * i1] + pSrc[2U * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = r1 + t1; - - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2U * i1) + 1U] + pSrc[(2U * i3) + 1U]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = s1 + t2; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2U * i1) + 1U] - pSrc[(2U * i3) + 1U]; - - /* (xb - xd) */ - t2 = pSrc[2U * i1] - pSrc[2U * i3]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (r1 * co2) + (s1 * si2); - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = (s1 * co2) - (r1 * si2); - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (r1 * co1) + (s1 * si1); - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (s1 * co1) - (r1 * si1); - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = (r2 * co3) + (s2 * si3); - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (s2 * co3) - (r2 * si3); - - i0 += n1; - } while ( i0 < fftLen); - j++; - } while (j <= (n2 - 1U)); - twidCoefModifier <<= 2U; - } - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/* -* @brief Core function for the floating-point CIFFT butterfly process. -* @param[in, out] *pSrc points to the in-place buffer of floating-point data type. -* @param[in] fftLen length of the FFT. -* @param[in] *pCoef points to twiddle coefficient buffer. -* @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @param[in] onebyfftLen value of 1/fftLen. -* @return none. -*/ - -void arm_radix4_butterfly_inverse_f32( -float32_t * pSrc, -uint16_t fftLen, -float32_t * pCoef, -uint16_t twidCoefModifier, -float32_t onebyfftLen) -{ - float32_t co1, co2, co3, si1, si2, si3; - uint32_t ia1, ia2, ia3; - uint32_t i0, i1, i2, i3; - uint32_t n1, n2, j, k; - -#if defined (ARM_MATH_DSP) - - float32_t xaIn, yaIn, xbIn, ybIn, xcIn, ycIn, xdIn, ydIn; - float32_t Xaplusc, Xbplusd, Yaplusc, Ybplusd, Xaminusc, Xbminusd, Yaminusc, - Ybminusd; - float32_t Xb12C_out, Yb12C_out, Xc12C_out, Yc12C_out, Xd12C_out, Yd12C_out; - float32_t Xb12_out, Yb12_out, Xc12_out, Yc12_out, Xd12_out, Yd12_out; - float32_t *ptr1; - float32_t p0,p1,p2,p3,p4,p5,p6,p7; - float32_t a0,a1,a2,a3,a4,a5,a6,a7; - - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - i0 = 0U; - ia1 = 0U; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - xaIn = pSrc[(2U * i0)]; - yaIn = pSrc[(2U * i0) + 1U]; - - xcIn = pSrc[(2U * i2)]; - ycIn = pSrc[(2U * i2) + 1U]; - - xbIn = pSrc[(2U * i1)]; - ybIn = pSrc[(2U * i1) + 1U]; - - xdIn = pSrc[(2U * i3)]; - ydIn = pSrc[(2U * i3) + 1U]; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* xb - xd */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* yb - yd */ - Ybminusd = ybIn - ydIn; - - /* xa' = xa + xb + xc + xd */ - pSrc[(2U * i0)] = Xaplusc + Xbplusd; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = Yaplusc + Ybplusd; - - /* (xa - xc) - (yb - yd) */ - Xb12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc + Xbminusd); - /* (xa + xc) - (xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) + (yb - yd) */ - Xd12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yd12C_out = (Yaminusc - Xbminusd); - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* index calculation for the coefficients */ - ia3 = ia2 + ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - //Xb12_out -= Yb12C_out * si1; - p0 = Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - //Yb12_out += Xb12C_out * si1; - p1 = Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - //Xc12_out -= Yc12C_out * si2; - p2 = Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - //Yc12_out += Xc12C_out * si2; - p3 = Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - //Xd12_out -= Yd12C_out * si3; - p4 = Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - //Yd12_out += Xd12C_out * si3; - p5 = Xd12C_out * si3; - - Xb12_out -= p0; - Yb12_out += p1; - Xc12_out -= p2; - Yc12_out += p3; - Xd12_out -= p4; - Yd12_out += p5; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = Yd12_out; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1U; - - } while (--j); - - twidCoefModifier <<= 2U; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen >> 2U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* Calculation of first stage */ - j = 0; - do - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - i0 = j; - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - xaIn = pSrc[(2U * i0)]; - yaIn = pSrc[(2U * i0) + 1U]; - - xbIn = pSrc[(2U * i1)]; - ybIn = pSrc[(2U * i1) + 1U]; - - xcIn = pSrc[(2U * i2)]; - ycIn = pSrc[(2U * i2) + 1U]; - - xdIn = pSrc[(2U * i3)]; - ydIn = pSrc[(2U * i3) + 1U]; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - /* (xb - xd) */ - Xbminusd = xbIn - xdIn; - /* ya - yc */ - Yaminusc = yaIn - ycIn; - /* (yb - yd) */ - Ybminusd = ybIn - ydIn; - - /* xa + xc */ - Xaplusc = xaIn + xcIn; - /* xb + xd */ - Xbplusd = xbIn + xdIn; - /* ya + yc */ - Yaplusc = yaIn + ycIn; - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xa - xc) - (yb - yd) */ - Xb12C_out = (Xaminusc - Ybminusd); - /* (ya - yc) + (xb - xd) */ - Yb12C_out = (Yaminusc + Xbminusd); - /* xa + xc -(xb + xd) */ - Xc12C_out = (Xaplusc - Xbplusd); - /* (ya + yc) - (yb + yd) */ - Yc12C_out = (Yaplusc - Ybplusd); - /* (xa - xc) + (yb - yd) */ - Xd12C_out = (Xaminusc + Ybminusd); - /* (ya - yc) - (xb - xd) */ - Yd12C_out = (Yaminusc - Xbminusd); - - pSrc[(2U * i0)] = Xaplusc + Xbplusd; - pSrc[(2U * i0) + 1U] = Yaplusc + Ybplusd; - - Xb12_out = Xb12C_out * co1; - Yb12_out = Yb12C_out * co1; - Xc12_out = Xc12C_out * co2; - Yc12_out = Yc12C_out * co2; - Xd12_out = Xd12C_out * co3; - Yd12_out = Yd12C_out * co3; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - //Xb12_out -= Yb12C_out * si1; - p0 = Yb12C_out * si1; - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - //Yb12_out += Xb12C_out * si1; - p1 = Xb12C_out * si1; - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - //Xc12_out -= Yc12C_out * si2; - p2 = Yc12C_out * si2; - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - //Yc12_out += Xc12C_out * si2; - p3 = Xc12C_out * si2; - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - //Xd12_out -= Yd12C_out * si3; - p4 = Yd12C_out * si3; - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - //Yd12_out += Xd12C_out * si3; - p5 = Xd12C_out * si3; - - Xb12_out -= p0; - Yb12_out += p1; - Xc12_out -= p2; - Yc12_out += p3; - Xd12_out -= p4; - Yd12_out += p5; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = Xc12_out; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = Yc12_out; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = Xb12_out; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = Yb12_out; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = Xd12_out; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = Yd12_out; - - i0 += n1; - } while (i0 < fftLen); - j++; - } while (j <= (n2 - 1U)); - twidCoefModifier <<= 2U; - } - /* Initializations of last stage */ - - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - xaIn = ptr1[0]; - yaIn = ptr1[1]; - xbIn = ptr1[2]; - ybIn = ptr1[3]; - xcIn = ptr1[4]; - ycIn = ptr1[5]; - xdIn = ptr1[6]; - ydIn = ptr1[7]; - - /* Butterfly implementation */ - /* xa + xc */ - Xaplusc = xaIn + xcIn; - - /* xa - xc */ - Xaminusc = xaIn - xcIn; - - /* ya + yc */ - Yaplusc = yaIn + ycIn; - - /* ya - yc */ - Yaminusc = yaIn - ycIn; - - /* xb + xd */ - Xbplusd = xbIn + xdIn; - - /* yb + yd */ - Ybplusd = ybIn + ydIn; - - /* (xb-xd) */ - Xbminusd = xbIn - xdIn; - - /* (yb-yd) */ - Ybminusd = ybIn - ydIn; - - /* xa' = (xa+xb+xc+xd) * onebyfftLen */ - a0 = (Xaplusc + Xbplusd); - /* ya' = (ya+yb+yc+yd) * onebyfftLen */ - a1 = (Yaplusc + Ybplusd); - /* xc' = (xa-xb+xc-xd) * onebyfftLen */ - a2 = (Xaplusc - Xbplusd); - /* yc' = (ya-yb+yc-yd) * onebyfftLen */ - a3 = (Yaplusc - Ybplusd); - /* xb' = (xa-yb-xc+yd) * onebyfftLen */ - a4 = (Xaminusc - Ybminusd); - /* yb' = (ya+xb-yc-xd) * onebyfftLen */ - a5 = (Yaminusc + Xbminusd); - /* xd' = (xa-yb-xc+yd) * onebyfftLen */ - a6 = (Xaminusc + Ybminusd); - /* yd' = (ya-xb-yc+xd) * onebyfftLen */ - a7 = (Yaminusc - Xbminusd); - - p0 = a0 * onebyfftLen; - p1 = a1 * onebyfftLen; - p2 = a2 * onebyfftLen; - p3 = a3 * onebyfftLen; - p4 = a4 * onebyfftLen; - p5 = a5 * onebyfftLen; - p6 = a6 * onebyfftLen; - p7 = a7 * onebyfftLen; - - /* xa' = (xa+xb+xc+xd) * onebyfftLen */ - ptr1[0] = p0; - /* ya' = (ya+yb+yc+yd) * onebyfftLen */ - ptr1[1] = p1; - /* xc' = (xa-xb+xc-xd) * onebyfftLen */ - ptr1[2] = p2; - /* yc' = (ya-yb+yc-yd) * onebyfftLen */ - ptr1[3] = p3; - /* xb' = (xa-yb-xc+yd) * onebyfftLen */ - ptr1[4] = p4; - /* yb' = (ya+xb-yc-xd) * onebyfftLen */ - ptr1[5] = p5; - /* xd' = (xa-yb-xc+yd) * onebyfftLen */ - ptr1[6] = p6; - /* yd' = (ya-xb-yc+xd) * onebyfftLen */ - ptr1[7] = p7; - - /* increment source pointer by 8 for next calculations */ - ptr1 = ptr1 + 8U; - - } while (--j); - -#else - - float32_t t1, t2, r1, r2, s1, s2; - - /* Run the below code for Cortex-M0 */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* Calculation of first stage */ - for (k = fftLen; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* Calculation of first stage */ - j = 0; - do - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - i0 = j; - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* xa + xc */ - r1 = pSrc[(2U * i0)] + pSrc[(2U * i2)]; - - /* xa - xc */ - r2 = pSrc[(2U * i0)] - pSrc[(2U * i2)]; - - /* ya + yc */ - s1 = pSrc[(2U * i0) + 1U] + pSrc[(2U * i2) + 1U]; - - /* ya - yc */ - s2 = pSrc[(2U * i0) + 1U] - pSrc[(2U * i2) + 1U]; - - /* xb + xd */ - t1 = pSrc[2U * i1] + pSrc[2U * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = r1 + t1; - - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2U * i1) + 1U] + pSrc[(2U * i3) + 1U]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = s1 + t2; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2U * i1) + 1U] - pSrc[(2U * i3) + 1U]; - - /* (xb - xd) */ - t2 = pSrc[2U * i1] - pSrc[2U * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (r1 * co2) - (s1 * si2); - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = (s1 * co2) + (r1 * si2); - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (r1 * co1) - (s1 * si1); - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (s1 * co1) + (r1 * si1); - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = (r2 * co3) - (s2 * si3); - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (s2 * co3) + (r2 * si3); - - i0 += n1; - } while ( i0 < fftLen); - j++; - } while (j <= (n2 - 1U)); - twidCoefModifier <<= 2U; - } - /* Initializations of last stage */ - n1 = n2; - n2 >>= 2U; - - /* Calculations of last stage */ - for (i0 = 0U; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2U * i0] + pSrc[2U * i2]; - - /* xa - xc */ - r2 = pSrc[2U * i0] - pSrc[2U * i2]; - - /* ya + yc */ - s1 = pSrc[(2U * i0) + 1U] + pSrc[(2U * i2) + 1U]; - - /* ya - yc */ - s2 = pSrc[(2U * i0) + 1U] - pSrc[(2U * i2) + 1U]; - - /* xc + xd */ - t1 = pSrc[2U * i1] + pSrc[2U * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = (r1 + t1) * onebyfftLen; - - /* (xa + xb) - (xc + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2U * i1) + 1U] + pSrc[(2U * i3) + 1U]; - - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = (s1 + t2) * onebyfftLen; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb-yd) */ - t1 = pSrc[(2U * i1) + 1U] - pSrc[(2U * i3) + 1U]; - - /* (xb-xd) */ - t2 = pSrc[2U * i1] - pSrc[2U * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = r1 * onebyfftLen; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = s1 * onebyfftLen; - - /* (xa - xc) - (yb-yd) */ - r1 = r2 - t1; - - /* (xa - xc) + (yb-yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb-xd) */ - s1 = s2 + t2; - - /* (ya - yc) - (xb-xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = r1 * onebyfftLen; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = s1 * onebyfftLen; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = r2 * onebyfftLen; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = s2 * onebyfftLen; - } - -#endif /* #if defined (ARM_MATH_DSP) */ -} - - diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_f32.c deleted file mode 100644 index 14ea487..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_f32.c +++ /dev/null @@ -1,152 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_init_f32.c - * Description: Radix-4 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** -* @brief Initialization function for the floating-point CFFT/CIFFT. -* @deprecated Do not use this function. It has been superceded by \ref arm_cfft_f32 and will be removed -* in the future. -* @param[in,out] *S points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_f32( - arm_cfft_radix4_instance_f32 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialise the FFT length */ - S->fftLen = fftLen; - - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (float32_t *) twiddleCoef; - - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - - case 4096U: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.000244140625; - break; - - case 1024U: - /* Initializations of structure parameters for 1024 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - /* Initialise the 1/fftLen Value */ - S->onebyfftLen = 0.0009765625f; - break; - - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - S->onebyfftLen = 0.00390625f; - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - S->onebyfftLen = 0.015625f; - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - S->onebyfftLen = 0.0625f; - break; - - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q15.c deleted file mode 100644 index ed78236..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q15.c +++ /dev/null @@ -1,140 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_init_q15.c - * Description: Radix-4 Decimation in Frequency Q15 FFT & IFFT initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - - -/** - * @addtogroup ComplexFFT - * @{ - */ - - -/** -* @brief Initialization function for the Q15 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q15 and will be removed -* @param[in,out] *S points to an instance of the Q15 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_q15( - arm_cfft_radix4_instance_q15 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - /* Initialise the FFT length */ - S->fftLen = fftLen; - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q15_t *) twiddleCoef_4096_q15; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLen) - { - case 4096U: - /* Initializations of structure parameters for 4096 point FFT */ - - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - - break; - - case 1024U: - /* Initializations of structure parameters for 1024 point FFT */ - S->twidCoefModifier = 4U; - S->bitRevFactor = 4U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - - break; - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q31.c deleted file mode 100644 index 6f11763..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_init_q31.c +++ /dev/null @@ -1,136 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_init_q31.c - * Description: Radix-4 Decimation in Frequency Q31 FFT & IFFT initialization function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** -* -* @brief Initialization function for the Q31 CFFT/CIFFT. -* @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q31 and will be removed -* @param[in,out] *S points to an instance of the Q31 CFFT/CIFFT structure. -* @param[in] fftLen length of the FFT. -* @param[in] ifftFlag flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter ifftFlag controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT is calculated -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* The parameter fftLen Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ - -arm_status arm_cfft_radix4_init_q31( - arm_cfft_radix4_instance_q31 * S, - uint16_t fftLen, - uint8_t ifftFlag, - uint8_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - /* Initialise the FFT length */ - S->fftLen = fftLen; - /* Initialise the Twiddle coefficient pointer */ - S->pTwiddle = (q31_t *) twiddleCoef_4096_q31; - /* Initialise the Flag for selection of CFFT or CIFFT */ - S->ifftFlag = ifftFlag; - /* Initialise the Flag for calculation Bit reversal or not */ - S->bitReverseFlag = bitReverseFlag; - - /* Initializations of Instance structure depending on the FFT length */ - switch (S->fftLen) - { - /* Initializations of structure parameters for 4096 point FFT */ - case 4096U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 1U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 1U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) armBitRevTable; - break; - - /* Initializations of structure parameters for 1024 point FFT */ - case 1024U: - /* Initialise the twiddle coef modifier value */ - S->twidCoefModifier = 4U; - /* Initialise the bit reversal table modifier */ - S->bitRevFactor = 4U; - /* Initialise the bit reversal table pointer */ - S->pBitRevTable = (uint16_t *) & armBitRevTable[3]; - break; - - case 256U: - /* Initializations of structure parameters for 256 point FFT */ - S->twidCoefModifier = 16U; - S->bitRevFactor = 16U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[15]; - break; - - case 64U: - /* Initializations of structure parameters for 64 point FFT */ - S->twidCoefModifier = 64U; - S->bitRevFactor = 64U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[63]; - break; - - case 16U: - /* Initializations of structure parameters for 16 point FFT */ - S->twidCoefModifier = 256U; - S->bitRevFactor = 256U; - S->pBitRevTable = (uint16_t *) & armBitRevTable[255]; - break; - - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of ComplexFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q15.c deleted file mode 100644 index f3451f7..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q15.c +++ /dev/null @@ -1,1910 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_q15.c - * Description: This file has function definition of Radix-4 FFT & IFFT function and - * In-place bit reversal using bit reversal table - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - - -void arm_radix4_butterfly_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier); - -void arm_radix4_butterfly_inverse_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier); - -void arm_bitreversal_q15( - q15_t * pSrc, - uint32_t fftLen, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - - -/** - * @details - * @brief Processing function for the Q15 CFFT/CIFFT. - * @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q15 and will be removed - * @param[in] *S points to an instance of the Q15 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place. - * @return none. - * - * \par Input and output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different FFT sizes. - * The input and output formats for different FFT sizes and number of bits to upscale are mentioned in the tables below for CFFT and CIFFT: - * \par - * \image html CFFTQ15.gif "Input and Output Formats for Q15 CFFT" - * \image html CIFFTQ15.gif "Input and Output Formats for Q15 CIFFT" - */ - -void arm_cfft_radix4_q15( - const arm_cfft_radix4_instance_q15 * S, - q15_t * pSrc) -{ - if (S->ifftFlag == 1U) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_q15(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_q15(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); - } - - if (S->bitReverseFlag == 1U) - { - /* Bit Reversal */ - arm_bitreversal_q15(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - -/** - * @} end of ComplexFFT group - */ - -/* -* Radix-4 FFT algorithm used is : -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 FFT: -* Wn = co1 + j * (- si1) -* W2n = co2 + j * (- si2) -* W3n = co3 + j * (- si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) -* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) -* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) -* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) -* -*/ - -/** - * @brief Core function for the Q15 CFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix4_butterfly_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier) -{ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t R, S, T, U; - q31_t C1, C2, C3, out1, out2; - uint32_t n1, n2, ic, i0, j, k; - - q15_t *ptr1; - q15_t *pSi0; - q15_t *pSi1; - q15_t *pSi2; - q15_t *pSi3; - - q31_t xaya, xbyb, xcyc, xdyd; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - - /* Index for twiddle coefficient */ - ic = 0U; - - /* Index for input read and output write */ - j = n2; - - pSi0 = pSrc16; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSi0); - T = __SHADD16(T, 0); // this is just a SIMD arithmetic shift right by 1 - T = __SHADD16(T, 0); // it turns out doing this twice is 2 cycles, the alternative takes 3 cycles - //in = ((int16_t) (T & 0xFFFF)) >> 2; // alternative code that takes 3 cycles - //T = ((T >> 2) & 0xFFFF0000) | (in & 0xFFFF); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSi2); - S = __SHADD16(S, 0); - S = __SHADD16(S, 0); - - /* R = packed((ya + yc), (xa + xc) ) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc) ) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - T = __SHADD16(T, 0); - T = __SHADD16(T, 0); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - U = __SHADD16(U, 0); - U = __SHADD16(U, 0); - - /* T = packed((yb + yd), (xb + xd) ) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - _SIMD32_OFFSET(pSi0) = __SHADD16(R, T); - pSi0 += 2; - - /* R = packed((ya + yc) - (yb + yd), (xa + xc)- (xb + xd)) */ - R = __QSUB16(R, T); - - /* co2 & si2 are read from SIMD Coefficient pointer */ - C2 = _SIMD32_OFFSET(pCoef16 + (4U * ic)); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = __SMUAD(C2, R) >> 16U; - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUSDX(C2, R); - -#else - - /* xc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUSDX(R, C2) >> 16U; - /* yc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out2 = __SMUAD(C2, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+fftLen/4 */ - /* T = packed(yb, xb) */ - T = _SIMD32_OFFSET(pSi1); - T = __SHADD16(T, 0); - T = __SHADD16(T, 0); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - _SIMD32_OFFSET(pSi1) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi1 += 2; - - /* Butterfly calculations */ - /* U = packed(yd, xd) */ - U = _SIMD32_OFFSET(pSi3); - U = __SHADD16(U, 0); - U = __SHADD16(U, 0); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QASX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QSAX(S, T); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QSAX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QASX(S, T); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* co1 & si1 are read from SIMD Coefficient pointer */ - C1 = _SIMD32_OFFSET(pCoef16 + (2U * ic)); - /* Butterfly process for the i0+fftLen/2 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = __SMUAD(C1, S) >> 16U; - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = __SMUSDX(C1, S); - -#else - - /* xb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out1 = __SMUSDX(S, C1) >> 16U; - /* yb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out2 = __SMUAD(C1, S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xb', yb') in little endian format */ - _SIMD32_OFFSET(pSi2) = - ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF); - pSi2 += 2; - - - /* co3 & si3 are read from SIMD Coefficient pointer */ - C3 = _SIMD32_OFFSET(pCoef16 + (6U * ic)); - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out1 = __SMUAD(C3, R) >> 16U; - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out2 = __SMUSDX(C3, R); - -#else - - /* xd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out1 = __SMUSDX(R, C3) >> 16U; - /* yd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out2 = __SMUAD(C3, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xd', yd') in little endian format */ - _SIMD32_OFFSET(pSi3) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi3 += 2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - } while (--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - - /* Calculation of Middle stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2U; - ic = 0U; - - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - C1 = _SIMD32_OFFSET(pCoef16 + (2U * ic)); - C2 = _SIMD32_OFFSET(pCoef16 + (4U * ic)); - C3 = _SIMD32_OFFSET(pCoef16 + (6U * ic)); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - pSi0 = pSrc16 + 2 * j; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSi0); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSi2); - - /* R = packed( (ya + yc), (xa + xc)) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - - /* T = packed( (yb + yd), (xb + xd)) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = __SHADD16(R, T); - out1 = __SHADD16(out1, 0); - _SIMD32_OFFSET(pSi0) = out1; - pSi0 += 2 * n1; - - /* R = packed( (ya + yc) - (yb + yd), (xa + xc) - (xb + xd)) */ - R = __SHSUB16(R, T); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = __SMUAD(C2, R) >> 16U; - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUSDX(C2, R); - -#else - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUSDX(R, C2) >> 16U; - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out2 = __SMUAD(C2, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - _SIMD32_OFFSET(pSi1) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi1 += 2 * n1; - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHASX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHSAX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUAD(C1, S) >> 16U; - out2 = __SMUSDX(C1, S); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHSAX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHASX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUSDX(S, C1) >> 16U; - out2 = __SMUAD(C1, S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - _SIMD32_OFFSET(pSi2) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi2 += 2 * n1; - - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUAD(C3, R) >> 16U; - out2 = __SMUSDX(C3, R); - -#else - - out1 = __SMUSDX(R, C3) >> 16U; - out2 = __SMUAD(C3, R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - _SIMD32_OFFSET(pSi3) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi3 += 2 * n1; - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - } - /* end of middle stage process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - j = fftLen >> 2; - - ptr1 = &pSrc16[0]; - - /* start of last stage process */ - - /* Butterfly implementation */ - do - { - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD32(ptr1)++; - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD32(ptr1)++; - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD32(ptr1)++; - - /* Read xd (real), yd(imag) input */ - xdyd = *__SIMD32(ptr1)++; - - /* R = packed((ya + yc), (xa + xc)) */ - R = __QADD16(xaya, xcyc); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* pointer updation for writing */ - ptr1 = ptr1 - 8U; - - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - *__SIMD32(ptr1)++ = __SHADD16(R, T); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - *__SIMD32(ptr1)++ = __SHSUB16(R, T); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(xaya, xcyc); - - /* Read yd (real), xd(imag) input */ - /* T = packed( (yb - yd), (xb - xd)) */ - U = __QSUB16(xbyb, xdyd); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - -#else - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } while (--j); - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t R0, R1, S0, S1, T0, T1, U0, U1; - q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - - /* Index for twiddle coefficient */ - ic = 0U; - - /* Index for input read and output write */ - i0 = 0U; - j = n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - - /* input is down scale by 4 to avoid overflow */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U] >> 2U; - T1 = pSrc16[(i0 * 2U) + 1U] >> 2U; - - /* input is down scale by 4 to avoid overflow */ - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U] >> 2U; - S1 = pSrc16[(i2 * 2U) + 1U] >> 2U; - - /* R0 = (ya + yc) */ - R0 = __SSAT(T0 + S0, 16U); - /* R1 = (xa + xc) */ - R1 = __SSAT(T1 + S1, 16U); - - /* S0 = (ya - yc) */ - S0 = __SSAT(T0 - S0, 16); - /* S1 = (xa - xc) */ - S1 = __SSAT(T1 - S1, 16); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U] >> 2U; - T1 = pSrc16[(i1 * 2U) + 1U] >> 2U; - - /* input is down scale by 4 to avoid overflow */ - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U] >> 2U; - U1 = pSrc16[(i3 * 2U) + 1] >> 2U; - - /* T0 = (yb + yd) */ - T0 = __SSAT(T0 + U0, 16U); - /* T1 = (xb + xd) */ - T1 = __SSAT(T1 + U1, 16U); - - /* writing the butterfly processed i0 sample */ - /* ya' = ya + yb + yc + yd */ - /* xa' = xa + xb + xc + xd */ - pSrc16[i0 * 2U] = (R0 >> 1U) + (T0 >> 1U); - pSrc16[(i0 * 2U) + 1U] = (R1 >> 1U) + (T1 >> 1U); - - /* R0 = (ya + yc) - (yb + yd) */ - /* R1 = (xa + xc) - (xb + xd) */ - R0 = __SSAT(R0 - T0, 16U); - R1 = __SSAT(R1 - T1, 16U); - - /* co2 & si2 are read from Coefficient pointer */ - Co2 = pCoef16[2U * ic * 2U]; - Si2 = pCoef16[(2U * ic * 2U) + 1]; - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = (q15_t) ((Co2 * R0 + Si2 * R1) >> 16U); - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = (q15_t) ((-Si2 * R0 + Co2 * R1) >> 16U); - - /* Reading i0+fftLen/4 */ - /* input is down scale by 4 to avoid overflow */ - /* T0 = yb, T1 = xb */ - T0 = pSrc16[i1 * 2U] >> 2; - T1 = pSrc16[(i1 * 2U) + 1] >> 2; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - pSrc16[i1 * 2U] = out1; - pSrc16[(i1 * 2U) + 1] = out2; - - /* Butterfly calculations */ - /* input is down scale by 4 to avoid overflow */ - /* U0 = yd, U1 = xd */ - U0 = pSrc16[i3 * 2U] >> 2; - U1 = pSrc16[(i3 * 2U) + 1] >> 2; - /* T0 = yb-yd */ - T0 = __SSAT(T0 - U0, 16); - /* T1 = xb-xd */ - T1 = __SSAT(T1 - U1, 16); - - /* R1 = (ya-yc) + (xb- xd), R0 = (xa-xc) - (yb-yd)) */ - R0 = (q15_t) __SSAT((q31_t) (S0 - T1), 16); - R1 = (q15_t) __SSAT((q31_t) (S1 + T0), 16); - - /* S1 = (ya-yc) - (xb- xd), S0 = (xa-xc) + (yb-yd)) */ - S0 = (q15_t) __SSAT(((q31_t) S0 + T1), 16U); - S1 = (q15_t) __SSAT(((q31_t) S1 - T0), 16U); - - /* co1 & si1 are read from Coefficient pointer */ - Co1 = pCoef16[ic * 2U]; - Si1 = pCoef16[(ic * 2U) + 1]; - /* Butterfly process for the i0+fftLen/2 sample */ - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = (q15_t) ((Si1 * S1 + Co1 * S0) >> 16); - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = (q15_t) ((-Si1 * S0 + Co1 * S1) >> 16); - - /* writing output(xb', yb') in little endian format */ - pSrc16[i2 * 2U] = out1; - pSrc16[(i2 * 2U) + 1] = out2; - - /* Co3 & si3 are read from Coefficient pointer */ - Co3 = pCoef16[3U * (ic * 2U)]; - Si3 = pCoef16[(3U * (ic * 2U)) + 1]; - /* Butterfly process for the i0+3fftLen/4 sample */ - /* xd' = (xa-yb-xc+yd)* Co3 + (ya+xb-yc-xd)* (si3) */ - out1 = (q15_t) ((Si3 * R1 + Co3 * R0) >> 16U); - /* yd' = (ya+xb-yc-xd)* Co3 - (xa-yb-xc+yd)* (si3) */ - out2 = (q15_t) ((-Si3 * R0 + Co3 * R1) >> 16U); - /* writing output(xd', yd') in little endian format */ - pSrc16[i3 * 2U] = out1; - pSrc16[(i3 * 2U) + 1] = out2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1U; - - } while (--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - - /* Calculation of Middle stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2U; - ic = 0U; - - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - Co1 = pCoef16[ic * 2U]; - Si1 = pCoef16[(ic * 2U) + 1U]; - Co2 = pCoef16[2U * (ic * 2U)]; - Si2 = pCoef16[(2U * (ic * 2U)) + 1U]; - Co3 = pCoef16[3U * (ic * 2U)]; - Si3 = pCoef16[(3U * (ic * 2U)) + 1U]; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U]; - T1 = pSrc16[(i0 * 2U) + 1U]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U]; - S1 = pSrc16[(i2 * 2U) + 1U]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16); - R1 = __SSAT(T1 + S1, 16); - - /* S0 = (ya - yc), S1 =(xa - xc) */ - S0 = __SSAT(T0 - S0, 16); - S1 = __SSAT(T1 - S1, 16); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16); - T1 = __SSAT(T1 + U1, 16); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = ((R0 >> 1U) + (T0 >> 1U)) >> 1U; - out2 = ((R1 >> 1U) + (T1 >> 1U)) >> 1U; - - pSrc16[i0 * 2U] = out1; - pSrc16[(2U * i0) + 1U] = out2; - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1U) - (T0 >> 1U); - R1 = (R1 >> 1U) - (T1 >> 1U); - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = (q15_t) ((Co2 * R0 + Si2 * R1) >> 16U); - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = (q15_t) ((-Si2 * R0 + Co2 * R1) >> 16U); - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - pSrc16[i1 * 2U] = out1; - pSrc16[(i1 * 2U) + 1U] = out2; - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - /* T0 = yb-yd, T1 = xb-xd */ - T0 = __SSAT(T0 - U0, 16); - T1 = __SSAT(T1 - U1, 16); - - /* R0 = (ya-yc) + (xb- xd), R1 = (xa-xc) - (yb-yd)) */ - R0 = (S0 >> 1U) - (T1 >> 1U); - R1 = (S1 >> 1U) + (T0 >> 1U); - - /* S0 = (ya-yc) - (xb- xd), S1 = (xa-xc) + (yb-yd)) */ - S0 = (S0 >> 1U) + (T1 >> 1U); - S1 = (S1 >> 1U) - (T0 >> 1U); - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = (q15_t) ((Co1 * S0 + Si1 * S1) >> 16U); - - out2 = (q15_t) ((-Si1 * S0 + Co1 * S1) >> 16U); - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - pSrc16[i2 * 2U] = out1; - pSrc16[(i2 * 2U) + 1U] = out2; - - /* Butterfly process for the i0+3fftLen/4 sample */ - out1 = (q15_t) ((Si3 * R1 + Co3 * R0) >> 16U); - - out2 = (q15_t) ((-Si3 * R0 + Co3 * R1) >> 16U); - /* xd' = (xa-yb-xc+yd)* Co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* Co3 - (xa-yb-xc+yd)* (si3) */ - pSrc16[i3 * 2U] = out1; - pSrc16[(i3 * 2U) + 1U] = out2; - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - } - /* end of middle stage process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - n1 = n2; - n2 >>= 2U; - - /* start of last stage process */ - - /* Butterfly implementation */ - for (i0 = 0U; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U]; - T1 = pSrc16[(i0 * 2U) + 1U]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U]; - S1 = pSrc16[(i2 * 2U) + 1U]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16U); - R1 = __SSAT(T1 + S1, 16U); - - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16U); - S1 = __SSAT(T1 - S1, 16U); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - /* T0 = (yb + yd), T1 = (xb + xd)) */ - T0 = __SSAT(T0 + U0, 16U); - T1 = __SSAT(T1 + U1, 16U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2U] = (R0 >> 1U) + (T0 >> 1U); - pSrc16[(i0 * 2U) + 1U] = (R1 >> 1U) + (T1 >> 1U); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1U) - (T0 >> 1U); - R1 = (R1 >> 1U) - (T1 >> 1U); - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - pSrc16[i1 * 2U] = R0; - pSrc16[(i1 * 2U) + 1U] = R1; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - /* T0 = (yb - yd), T1 = (xb - xd) */ - T0 = __SSAT(T0 - U0, 16U); - T1 = __SSAT(T1 - U1, 16U); - - /* writing the butterfly processed i0 + fftLen/2 sample */ - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - pSrc16[i2 * 2U] = (S0 >> 1U) + (T1 >> 1U); - pSrc16[(i2 * 2U) + 1U] = (S1 >> 1U) - (T0 >> 1U); - - /* writing the butterfly processed i0 + 3fftLen/4 sample */ - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - pSrc16[i3 * 2U] = (S0 >> 1U) - (T1 >> 1U); - pSrc16[(i3 * 2U) + 1U] = (S1 >> 1U) + (T0 >> 1U); - - } - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - - -/** - * @brief Core function for the Q15 CIFFT butterfly process. - * @param[in, out] *pSrc16 points to the in-place buffer of Q15 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef16 points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -/* -* Radix-4 IFFT algorithm used is : -* -* CIFFT uses same twiddle coefficients as CFFT function -* x[k] = x[n] + (j)k * x[n + fftLen/4] + (-1)k * x[n+fftLen/2] + (-j)k * x[n+3*fftLen/4] -* -* -* IFFT is implemented with following changes in equations from FFT -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 IFFT: -* Wn = co1 + j * (si1) -* W2n = co2 + j * (si2) -* W3n = co3 + j * (si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) -* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) -* xd' = (xa+yb-xc-yd)* co3 - (ya-xb-yc+xd)* (si3) -* yd' = (ya-xb-yc+xd)* co3 + (xa+yb-xc-yd)* (si3) -* -*/ - -void arm_radix4_butterfly_inverse_q15( - q15_t * pSrc16, - uint32_t fftLen, - q15_t * pCoef16, - uint32_t twidCoefModifier) -{ - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - q31_t R, S, T, U; - q31_t C1, C2, C3, out1, out2; - uint32_t n1, n2, ic, i0, j, k; - - q15_t *ptr1; - q15_t *pSi0; - q15_t *pSi1; - q15_t *pSi2; - q15_t *pSi3; - - q31_t xaya, xbyb, xcyc, xdyd; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - - /* Index for twiddle coefficient */ - ic = 0U; - - /* Index for input read and output write */ - j = n2; - - pSi0 = pSrc16; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - /* Input is in 1.15(q15) format */ - - /* start of first stage process */ - do - { - /* Butterfly implementation */ - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSi0); - T = __SHADD16(T, 0); - T = __SHADD16(T, 0); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSi2); - S = __SHADD16(S, 0); - S = __SHADD16(S, 0); - - /* R = packed((ya + yc), (xa + xc) ) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc) ) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - T = __SHADD16(T, 0); - T = __SHADD16(T, 0); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - U = __SHADD16(U, 0); - U = __SHADD16(U, 0); - - /* T = packed((yb + yd), (xb + xd) ) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - _SIMD32_OFFSET(pSi0) = __SHADD16(R, T); - pSi0 += 2; - - /* R = packed((ya + yc) - (yb + yd), (xa + xc)- (xb + xd)) */ - R = __QSUB16(R, T); - - /* co2 & si2 are read from SIMD Coefficient pointer */ - C2 = _SIMD32_OFFSET(pCoef16 + (4U * ic)); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out1 = __SMUSD(C2, R) >> 16U; - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUADX(C2, R); - -#else - - /* xc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUADX(C2, R) >> 16U; - /* yc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - out2 = __SMUSD(__QSUB16(0, C2), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+fftLen/4 */ - /* T = packed(yb, xb) */ - T = _SIMD32_OFFSET(pSi1); - T = __SHADD16(T, 0); - T = __SHADD16(T, 0); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - _SIMD32_OFFSET(pSi1) = - (q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi1 += 2; - - /* Butterfly calculations */ - /* U = packed(yd, xd) */ - U = _SIMD32_OFFSET(pSi3); - U = __SHADD16(U, 0); - U = __SHADD16(U, 0); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QSAX(S, T); - /* S = packed((ya-yc) + (xb- xd), (xa-xc) - (yb-yd)) */ - S = __QASX(S, T); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __QASX(S, T); - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __QSAX(S, T); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* co1 & si1 are read from SIMD Coefficient pointer */ - C1 = _SIMD32_OFFSET(pCoef16 + (2U * ic)); - /* Butterfly process for the i0+fftLen/2 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out1 = __SMUSD(C1, S) >> 16U; - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out2 = __SMUADX(C1, S); - -#else - - /* xb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - out1 = __SMUADX(C1, S) >> 16U; - /* yb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - out2 = __SMUSD(__QSUB16(0, C1), S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xb', yb') in little endian format */ - _SIMD32_OFFSET(pSi2) = - ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF); - pSi2 += 2; - - - /* co3 & si3 are read from SIMD Coefficient pointer */ - C3 = _SIMD32_OFFSET(pCoef16 + (6U * ic)); - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out1 = __SMUSD(C3, R) >> 16U; - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out2 = __SMUADX(C3, R); - -#else - - /* xd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - out1 = __SMUADX(C3, R) >> 16U; - /* yd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - out2 = __SMUSD(__QSUB16(0, C3), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* writing output(xd', yd') in little endian format */ - _SIMD32_OFFSET(pSi3) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi3 += 2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - } while (--j); - /* data is in 4.11(q11) format */ - - /* end of first stage process */ - - - /* start of middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - - /* Calculation of Middle stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2U; - ic = 0U; - - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - C1 = _SIMD32_OFFSET(pCoef16 + (2U * ic)); - C2 = _SIMD32_OFFSET(pCoef16 + (4U * ic)); - C3 = _SIMD32_OFFSET(pCoef16 + (6U * ic)); - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - pSi0 = pSrc16 + 2 * j; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T = _SIMD32_OFFSET(pSi0); - - /* Read yc (real), xc(imag) input */ - S = _SIMD32_OFFSET(pSi2); - - /* R = packed( (ya + yc), (xa + xc)) */ - R = __QADD16(T, S); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(T, S); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - - /* T = packed( (yb + yd), (xb + xd)) */ - T = __QADD16(T, U); - - /* writing the butterfly processed i0 sample */ - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - out1 = __SHADD16(R, T); - out1 = __SHADD16(out1, 0); - _SIMD32_OFFSET(pSi0) = out1; - pSi0 += 2 * n1; - - /* R = packed( (ya + yc) - (yb + yd), (xa + xc) - (xb + xd)) */ - R = __SHSUB16(R, T); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out1 = __SMUSD(C2, R) >> 16U; - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out2 = __SMUADX(C2, R); - -#else - - /* (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - out1 = __SMUADX(R, C2) >> 16U; - - /* (ya-yb+yc-yd)* (si2) + (xa-xb+xc-xd)* co2 */ - out2 = __SMUSD(__QSUB16(0, C2), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T = _SIMD32_OFFSET(pSi1); - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) */ - _SIMD32_OFFSET(pSi1) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi1 += 2 * n1; - - /* Butterfly calculations */ - - /* Read yd (real), xd(imag) input */ - U = _SIMD32_OFFSET(pSi3); - - /* T = packed(yb-yd, xb-xd) */ - T = __QSUB16(T, U); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHSAX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHASX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUSD(C1, S) >> 16U; - out2 = __SMUADX(C1, S); - -#else - - /* R = packed((ya-yc) + (xb- xd) , (xa-xc) - (yb-yd)) */ - R = __SHASX(S, T); - - /* S = packed((ya-yc) - (xb- xd), (xa-xc) + (yb-yd)) */ - S = __SHSAX(S, T); - - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = __SMUADX(S, C1) >> 16U; - out2 = __SMUSD(__QSUB16(0, C1), S); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) */ - /* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) */ - _SIMD32_OFFSET(pSi2) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi2 += 2 * n1; - - /* Butterfly process for the i0+3fftLen/4 sample */ - -#ifndef ARM_MATH_BIG_ENDIAN - - out1 = __SMUSD(C3, R) >> 16U; - out2 = __SMUADX(C3, R); - -#else - - out1 = __SMUADX(C3, R) >> 16U; - out2 = __SMUSD(__QSUB16(0, C3), R); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) */ - /* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) */ - _SIMD32_OFFSET(pSi3) = - ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF); - pSi3 += 2 * n1; - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - } - /* end of middle stage process */ - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* Initializations for the last stage */ - j = fftLen >> 2; - - ptr1 = &pSrc16[0]; - - /* start of last stage process */ - - /* Butterfly implementation */ - do - { - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD32(ptr1)++; - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD32(ptr1)++; - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD32(ptr1)++; - - /* Read xd (real), yd(imag) input */ - xdyd = *__SIMD32(ptr1)++; - - /* R = packed((ya + yc), (xa + xc)) */ - R = __QADD16(xaya, xcyc); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* pointer updation for writing */ - ptr1 = ptr1 - 8U; - - - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - *__SIMD32(ptr1)++ = __SHADD16(R, T); - - /* T = packed((yb + yd), (xb + xd)) */ - T = __QADD16(xbyb, xdyd); - - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - *__SIMD32(ptr1)++ = __SHSUB16(R, T); - - /* S = packed((ya - yc), (xa - xc)) */ - S = __QSUB16(xaya, xcyc); - - /* Read yd (real), xd(imag) input */ - /* T = packed( (yb - yd), (xb - xd)) */ - U = __QSUB16(xbyb, xdyd); - -#ifndef ARM_MATH_BIG_ENDIAN - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - -#else - - /* xb' = (xa+yb-xc-yd) */ - /* yb' = (ya-xb-yc+xd) */ - *__SIMD32(ptr1)++ = __SHSAX(S, U); - - - /* xd' = (xa-yb-xc+yd) */ - /* yd' = (ya+xb-yc-xd) */ - *__SIMD32(ptr1)++ = __SHASX(S, U); - - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - } while (--j); - - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - - -#else - - /* Run the below code for Cortex-M0 */ - - q15_t R0, R1, S0, S1, T0, T1, U0, U1; - q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2; - uint32_t n1, n2, ic, i0, i1, i2, i3, j, k; - - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - - /* n2 = fftLen/4 */ - n2 >>= 2U; - - /* Index for twiddle coefficient */ - ic = 0U; - - /* Index for input read and output write */ - i0 = 0U; - - j = n2; - - /* Input is in 1.15(q15) format */ - - /* Start of first stage process */ - do - { - /* Butterfly implementation */ - - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U] >> 2U; - T1 = pSrc16[(i0 * 2U) + 1U] >> 2U; - /* input is down scale by 4 to avoid overflow */ - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U] >> 2U; - S1 = pSrc16[(i2 * 2U) + 1U] >> 2U; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16U); - R1 = __SSAT(T1 + S1, 16U); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16U); - S1 = __SSAT(T1 - S1, 16U); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* input is down scale by 4 to avoid overflow */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U] >> 2U; - T1 = pSrc16[(i1 * 2U) + 1U] >> 2U; - /* Read yd (real), xd(imag) input */ - /* input is down scale by 4 to avoid overflow */ - U0 = pSrc16[i3 * 2U] >> 2U; - U1 = pSrc16[(i3 * 2U) + 1U] >> 2U; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16U); - T1 = __SSAT(T1 + U1, 16U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2U] = (R0 >> 1U) + (T0 >> 1U); - pSrc16[(i0 * 2U) + 1U] = (R1 >> 1U) + (T1 >> 1U); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc)- (xb + xd) */ - R0 = __SSAT(R0 - T0, 16U); - R1 = __SSAT(R1 - T1, 16U); - /* co2 & si2 are read from Coefficient pointer */ - Co2 = pCoef16[2U * ic * 2U]; - Si2 = pCoef16[(2U * ic * 2U) + 1U]; - /* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) */ - out1 = (q15_t) ((Co2 * R0 - Si2 * R1) >> 16U); - /* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - out2 = (q15_t) ((Si2 * R0 + Co2 * R1) >> 16U); - - /* Reading i0+fftLen/4 */ - /* input is down scale by 4 to avoid overflow */ - /* T0 = yb, T1 = xb */ - T0 = pSrc16[i1 * 2U] >> 2U; - T1 = pSrc16[(i1 * 2U) + 1U] >> 2U; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* writing output(xc', yc') in little endian format */ - pSrc16[i1 * 2U] = out1; - pSrc16[(i1 * 2U) + 1U] = out2; - - /* Butterfly calculations */ - /* input is down scale by 4 to avoid overflow */ - /* U0 = yd, U1 = xd) */ - U0 = pSrc16[i3 * 2U] >> 2U; - U1 = pSrc16[(i3 * 2U) + 1U] >> 2U; - - /* T0 = yb-yd, T1 = xb-xd) */ - T0 = __SSAT(T0 - U0, 16U); - T1 = __SSAT(T1 - U1, 16U); - /* R0 = (ya-yc) - (xb- xd) , R1 = (xa-xc) + (yb-yd) */ - R0 = (q15_t) __SSAT((q31_t) (S0 + T1), 16); - R1 = (q15_t) __SSAT((q31_t) (S1 - T0), 16); - /* S = (ya-yc) + (xb- xd), S1 = (xa-xc) - (yb-yd) */ - S0 = (q15_t) __SSAT((q31_t) (S0 - T1), 16); - S1 = (q15_t) __SSAT((q31_t) (S1 + T0), 16); - - /* co1 & si1 are read from Coefficient pointer */ - Co1 = pCoef16[ic * 2U]; - Si1 = pCoef16[(ic * 2U) + 1U]; - /* Butterfly process for the i0+fftLen/2 sample */ - /* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) */ - out1 = (q15_t) ((Co1 * S0 - Si1 * S1) >> 16U); - /* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) */ - out2 = (q15_t) ((Si1 * S0 + Co1 * S1) >> 16U); - /* writing output(xb', yb') in little endian format */ - pSrc16[i2 * 2U] = out1; - pSrc16[(i2 * 2U) + 1U] = out2; - - /* Co3 & si3 are read from Coefficient pointer */ - Co3 = pCoef16[3U * ic * 2U]; - Si3 = pCoef16[(3U * ic * 2U) + 1U]; - /* Butterfly process for the i0+3fftLen/4 sample */ - /* xd' = (xa+yb-xc-yd)* Co3 - (ya-xb-yc+xd)* (si3) */ - out1 = (q15_t) ((Co3 * R0 - Si3 * R1) >> 16U); - /* yd' = (ya-xb-yc+xd)* Co3 + (xa+yb-xc-yd)* (si3) */ - out2 = (q15_t) ((Si3 * R0 + Co3 * R1) >> 16U); - /* writing output(xd', yd') in little endian format */ - pSrc16[i3 * 2U] = out1; - pSrc16[(i3 * 2U) + 1U] = out2; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1U; - - } while (--j); - - /* End of first stage process */ - - /* data is in 4.11(q11) format */ - - - /* Start of Middle stage process */ - - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - - /* Calculation of Middle stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the middle stage */ - n1 = n2; - n2 >>= 2U; - ic = 0U; - - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - Co1 = pCoef16[ic * 2U]; - Si1 = pCoef16[(ic * 2U) + 1U]; - Co2 = pCoef16[2U * ic * 2U]; - Si2 = pCoef16[2U * ic * 2U + 1U]; - Co3 = pCoef16[3U * ic * 2U]; - Si3 = pCoef16[(3U * ic * 2U) + 1U]; - - /* Twiddle coefficients index modifier */ - ic = ic + twidCoefModifier; - - /* Butterfly implementation */ - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U]; - T1 = pSrc16[(i0 * 2U) + 1U]; - - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U]; - S1 = pSrc16[(i2 * 2U) + 1U]; - - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16U); - R1 = __SSAT(T1 + S1, 16U); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16U); - S1 = __SSAT(T1 - S1, 16U); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16U); - T1 = __SSAT(T1 + U1, 16U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2U] = ((R0 >> 1U) + (T0 >> 1U)) >> 1U; - pSrc16[(i0 * 2U) + 1U] = ((R1 >> 1U) + (T1 >> 1U)) >> 1U; - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1U) - (T0 >> 1U); - R1 = (R1 >> 1U) - (T1 >> 1U); - - /* (ya-yb+yc-yd)* (si2) - (xa-xb+xc-xd)* co2 */ - out1 = (q15_t) ((Co2 * R0 - Si2 * R1) >> 16); - /* (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - out2 = (q15_t) ((Si2 * R0 + Co2 * R1) >> 16); - - /* Reading i0+3fftLen/4 */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) */ - /* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) */ - pSrc16[i1 * 2U] = out1; - pSrc16[(i1 * 2U) + 1U] = out2; - - /* Butterfly calculations */ - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - /* T0 = yb-yd, T1 = xb-xd) */ - T0 = __SSAT(T0 - U0, 16U); - T1 = __SSAT(T1 - U1, 16U); - - /* R0 = (ya-yc) - (xb- xd) , R1 = (xa-xc) + (yb-yd) */ - R0 = (S0 >> 1U) + (T1 >> 1U); - R1 = (S1 >> 1U) - (T0 >> 1U); - - /* S1 = (ya-yc) + (xb- xd), S1 = (xa-xc) - (yb-yd) */ - S0 = (S0 >> 1U) - (T1 >> 1U); - S1 = (S1 >> 1U) + (T0 >> 1U); - - /* Butterfly process for the i0+fftLen/2 sample */ - out1 = (q15_t) ((Co1 * S0 - Si1 * S1) >> 16U); - out2 = (q15_t) ((Si1 * S0 + Co1 * S1) >> 16U); - /* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) */ - /* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) */ - pSrc16[i2 * 2U] = out1; - pSrc16[(i2 * 2U) + 1U] = out2; - - /* Butterfly process for the i0+3fftLen/4 sample */ - out1 = (q15_t) ((Co3 * R0 - Si3 * R1) >> 16U); - - out2 = (q15_t) ((Si3 * R0 + Co3 * R1) >> 16U); - /* xd' = (xa+yb-xc-yd)* Co3 - (ya-xb-yc+xd)* (si3) */ - /* yd' = (ya-xb-yc+xd)* Co3 + (xa+yb-xc-yd)* (si3) */ - pSrc16[i3 * 2U] = out1; - pSrc16[(i3 * 2U) + 1U] = out2; - - - } - } - /* Twiddle coefficients index modifier */ - twidCoefModifier <<= 2U; - } - /* End of Middle stages process */ - - - /* data is in 10.6(q6) format for the 1024 point */ - /* data is in 8.8(q8) format for the 256 point */ - /* data is in 6.10(q10) format for the 64 point */ - /* data is in 4.12(q12) format for the 16 point */ - - /* start of last stage process */ - - - /* Initializations for the last stage */ - n1 = n2; - n2 >>= 2U; - - /* Butterfly implementation */ - for (i0 = 0U; i0 <= (fftLen - n1); i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc16[i0 + 0], pSrc16[i0 + fftLen/4], pSrc16[i0 + fftLen/2], pSrc16[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Reading i0, i0+fftLen/2 inputs */ - /* Read ya (real), xa(imag) input */ - T0 = pSrc16[i0 * 2U]; - T1 = pSrc16[(i0 * 2U) + 1U]; - /* Read yc (real), xc(imag) input */ - S0 = pSrc16[i2 * 2U]; - S1 = pSrc16[(i2 * 2U) + 1U]; - - /* R0 = (ya + yc), R1 = (xa + xc) */ - R0 = __SSAT(T0 + S0, 16U); - R1 = __SSAT(T1 + S1, 16U); - /* S0 = (ya - yc), S1 = (xa - xc) */ - S0 = __SSAT(T0 - S0, 16U); - S1 = __SSAT(T1 - S1, 16U); - - /* Reading i0+fftLen/4 , i0+3fftLen/4 inputs */ - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - - /* T0 = (yb + yd), T1 = (xb + xd) */ - T0 = __SSAT(T0 + U0, 16U); - T1 = __SSAT(T1 + U1, 16U); - - /* writing the butterfly processed i0 sample */ - /* xa' = xa + xb + xc + xd */ - /* ya' = ya + yb + yc + yd */ - pSrc16[i0 * 2U] = (R0 >> 1U) + (T0 >> 1U); - pSrc16[(i0 * 2U) + 1U] = (R1 >> 1U) + (T1 >> 1U); - - /* R0 = (ya + yc) - (yb + yd), R1 = (xa + xc) - (xb + xd) */ - R0 = (R0 >> 1U) - (T0 >> 1U); - R1 = (R1 >> 1U) - (T1 >> 1U); - - /* Read yb (real), xb(imag) input */ - T0 = pSrc16[i1 * 2U]; - T1 = pSrc16[(i1 * 2U) + 1U]; - - /* writing the butterfly processed i0 + fftLen/4 sample */ - /* xc' = (xa-xb+xc-xd) */ - /* yc' = (ya-yb+yc-yd) */ - pSrc16[i1 * 2U] = R0; - pSrc16[(i1 * 2U) + 1U] = R1; - - /* Read yd (real), xd(imag) input */ - U0 = pSrc16[i3 * 2U]; - U1 = pSrc16[(i3 * 2U) + 1U]; - /* T0 = (yb - yd), T1 = (xb - xd) */ - T0 = __SSAT(T0 - U0, 16U); - T1 = __SSAT(T1 - U1, 16U); - - /* writing the butterfly processed i0 + fftLen/2 sample */ - /* xb' = (xa-yb-xc+yd) */ - /* yb' = (ya+xb-yc-xd) */ - pSrc16[i2 * 2U] = (S0 >> 1U) - (T1 >> 1U); - pSrc16[(i2 * 2U) + 1U] = (S1 >> 1U) + (T0 >> 1U); - - - /* writing the butterfly processed i0 + 3fftLen/4 sample */ - /* xd' = (xa+yb-xc-yd) */ - /* yd' = (ya-xb-yc+xd) */ - pSrc16[i3 * 2U] = (S0 >> 1U) + (T1 >> 1U); - pSrc16[(i3 * 2U) + 1U] = (S1 >> 1U) - (T0 >> 1U); - } - /* end of last stage process */ - - /* output is in 11.5(q5) format for the 1024 point */ - /* output is in 9.7(q7) format for the 256 point */ - /* output is in 7.9(q9) format for the 64 point */ - /* output is in 5.11(q11) format for the 16 point */ - -#endif /* #if defined (ARM_MATH_DSP) */ - -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q31.c deleted file mode 100644 index 95292e4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_q31.c +++ /dev/null @@ -1,1389 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix4_q31.c - * Description: This file has function definition of Radix-4 FFT & IFFT function and - * In-place bit reversal using bit reversal table - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -void arm_radix4_butterfly_inverse_q31( -q31_t * pSrc, -uint32_t fftLen, -q31_t * pCoef, -uint32_t twidCoefModifier); - -void arm_radix4_butterfly_q31( -q31_t * pSrc, -uint32_t fftLen, -q31_t * pCoef, -uint32_t twidCoefModifier); - -void arm_bitreversal_q31( -q31_t * pSrc, -uint32_t fftLen, -uint16_t bitRevFactor, -uint16_t * pBitRevTab); - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup ComplexFFT - * @{ - */ - -/** - * @details - * @brief Processing function for the Q31 CFFT/CIFFT. - * @deprecated Do not use this function. It has been superseded by \ref arm_cfft_q31 and will be removed - * @param[in] *S points to an instance of the Q31 CFFT/CIFFT structure. - * @param[in, out] *pSrc points to the complex data buffer of size 2*fftLen. Processing occurs in-place. - * @return none. - * - * \par Input and output formats: - * \par - * Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. - * Hence the output format is different for different FFT sizes. - * The input and output formats for different FFT sizes and number of bits to upscale are mentioned in the tables below for CFFT and CIFFT: - * \par - * \image html CFFTQ31.gif "Input and Output Formats for Q31 CFFT" - * \image html CIFFTQ31.gif "Input and Output Formats for Q31 CIFFT" - * - */ - -void arm_cfft_radix4_q31( - const arm_cfft_radix4_instance_q31 * S, - q31_t * pSrc) -{ - if (S->ifftFlag == 1U) - { - /* Complex IFFT radix-4 */ - arm_radix4_butterfly_inverse_q31(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); - } - else - { - /* Complex FFT radix-4 */ - arm_radix4_butterfly_q31(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); - } - - if (S->bitReverseFlag == 1U) - { - /* Bit Reversal */ - arm_bitreversal_q31(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); - } - -} - -/** - * @} end of ComplexFFT group - */ - -/* -* Radix-4 FFT algorithm used is : -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 FFT: -* Wn = co1 + j * (- si1) -* W2n = co2 + j * (- si2) -* W3n = co3 + j * (- si3) -* -* Butterfly implementation: -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa+yb-xc-yd)* co1 + (ya-xb-yc+xd)* (si1) -* yb' = (ya-xb-yc+xd)* co1 - (xa+yb-xc-yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 + (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 - (xa-xb+xc-xd)* (si2) -* xd' = (xa-yb-xc+yd)* co3 + (ya+xb-yc-xd)* (si3) -* yd' = (ya+xb-yc-xd)* co3 - (xa-yb-xc+yd)* (si3) -* -*/ - -/** - * @brief Core function for the Q31 CFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_radix4_butterfly_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier) -{ -#if defined(ARM_MATH_CM7) - uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q63_t xaya, xbyb, xcyc, xdyd; - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - - /* start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2U; - i0 = 0U; - ia1 = 0U; - - j = n2; - - /* Calculation of first stage */ - do - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2U], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* input is in 1.31(q31) format and provide 4 guard bits for the input */ - - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSrc[(2U * i0)] >> 4U) + (pSrc[(2U * i2)] >> 4U); - /* xa - xc */ - r2 = (pSrc[2U * i0] >> 4U) - (pSrc[2U * i2] >> 4U); - - /* xb + xd */ - t1 = (pSrc[2U * i1] >> 4U) + (pSrc[2U * i3] >> 4U); - - /* ya + yc */ - s1 = (pSrc[(2U * i0) + 1U] >> 4U) + (pSrc[(2U * i2) + 1U] >> 4U); - /* ya - yc */ - s2 = (pSrc[(2U * i0) + 1U] >> 4U) - (pSrc[(2U * i2) + 1U] >> 4U); - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSrc[(2U * i1) + 1U] >> 4U) + (pSrc[(2U * i3) + 1U] >> 4U); - - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSrc[(2U * i1) + 1U] >> 4U) - (pSrc[(2U * i3) + 1U] >> 4U); - /* xb - xd */ - t2 = (pSrc[2U * i1] >> 4U) - (pSrc[2U * i3] >> 4U); - - /* index calculation for the coefficients */ - ia2 = 2U * ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1U; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1U; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1U; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1U; - - /* index calculation for the coefficients */ - ia3 = 3U * ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1U; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1U; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1U; - - } while (--j); - - /* end of first stage process */ - - /* data is in 5.27(q27) format */ - - - /* start of Middle stages process */ - - - /* each stage in middle stages provides two down scaling of the input */ - - twidCoefModifier <<= 2U; - - - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* Calculation of first stage */ - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2U], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2U * i0] + pSrc[2U * i2]; - /* xa - xc */ - r2 = pSrc[2U * i0] - pSrc[2U * i2]; - - /* ya + yc */ - s1 = pSrc[(2U * i0) + 1U] + pSrc[(2U * i2) + 1U]; - /* ya - yc */ - s2 = pSrc[(2U * i0) + 1U] - pSrc[(2U * i2) + 1U]; - - /* xb + xd */ - t1 = pSrc[2U * i1] + pSrc[2U * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = (r1 + t1) >> 2U; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSrc[(2U * i1) + 1U] + pSrc[(2U * i3) + 1U]; - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = (s1 + t2) >> 2U; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2U * i1) + 1U] - pSrc[(2U * i3) + 1U]; - /* (xb - xd) */ - t2 = pSrc[2U * i1] - pSrc[2U * i3]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) >> 1U; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) >> 1U; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1U; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1U; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1U; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1U; - } - } - twidCoefModifier <<= 2U; - } -#else - uint32_t n1, n2, ia1, ia2, ia3, i0, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q31_t *pSi0; - q31_t *pSi1; - q31_t *pSi2; - q31_t *pSi3; - q63_t xaya, xbyb, xcyc, xdyd; - /* Total process is divided into three stages */ - - /* process first stage, middle stages, & last stage */ - - - /* start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2U; - - ia1 = 0U; - - j = n2; - - pSi0 = pSrc; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - /* Calculation of first stage */ - do - { - /* input is in 1.31(q31) format and provide 4 guard bits for the input */ - - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSi0[0] >> 4U) + (pSi2[0] >> 4U); - /* xa - xc */ - r2 = (pSi0[0] >> 4U) - (pSi2[0] >> 4U); - - /* xb + xd */ - t1 = (pSi1[0] >> 4U) + (pSi3[0] >> 4U); - - /* ya + yc */ - s1 = (pSi0[1] >> 4U) + (pSi2[1] >> 4U); - /* ya - yc */ - s2 = (pSi0[1] >> 4U) - (pSi2[1] >> 4U); - - /* xa' = xa + xb + xc + xd */ - *pSi0++ = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSi1[1] >> 4U) + (pSi3[1] >> 4U); - - /* ya' = ya + yb + yc + yd */ - *pSi0++ = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSi1[1] >> 4U) - (pSi3[1] >> 4U); - /* xb - xd */ - t2 = (pSi1[0] >> 4U) - (pSi3[0] >> 4U); - - /* index calculation for the coefficients */ - ia2 = 2U * ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - *pSi1++ = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1U; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - *pSi1++ = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1U; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - *pSi2++ = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1U; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - *pSi2++ = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1U; - - /* index calculation for the coefficients */ - ia3 = 3U * ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - *pSi3++ = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1U; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - *pSi3++ = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1U; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - } while (--j); - - /* end of first stage process */ - - /* data is in 5.27(q27) format */ - - - /* start of Middle stages process */ - - - /* each stage in middle stages provides two down scaling of the input */ - - twidCoefModifier <<= 2U; - - - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - /* Calculation of first stage */ - for (j = 0U; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - pSi0 = pSrc + 2 * j; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSi0[0] + pSi2[0]; - - /* xa - xc */ - r2 = pSi0[0] - pSi2[0]; - - - /* ya + yc */ - s1 = pSi0[1] + pSi2[1]; - - /* ya - yc */ - s2 = pSi0[1] - pSi2[1]; - - - /* xb + xd */ - t1 = pSi1[0] + pSi3[0]; - - - /* xa' = xa + xb + xc + xd */ - pSi0[0] = (r1 + t1) >> 2U; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - - /* yb + yd */ - t2 = pSi1[1] + pSi3[1]; - - /* ya' = ya + yb + yc + yd */ - pSi0[1] = (s1 + t2) >> 2U; - pSi0 += 2 * n1; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSi1[1] - pSi3[1]; - - /* (xb - xd) */ - t2 = pSi1[0] - pSi3[0]; - - - /* xc' = (xa-xb+xc-xd)co2 + (ya-yb+yc-yd)(si2) */ - pSi1[0] = (((int32_t) (((q63_t) r1 * co2) >> 32)) + - ((int32_t) (((q63_t) s1 * si2) >> 32))) >> 1U; - - /* yc' = (ya-yb+yc-yd)co2 - (xa-xb+xc-xd)(si2) */ - pSi1[1] = (((int32_t) (((q63_t) s1 * co2) >> 32)) - - ((int32_t) (((q63_t) r1 * si2) >> 32))) >> 1U; - pSi1 += 2 * n1; - - /* (xa - xc) + (yb - yd) */ - r1 = r2 + t1; - /* (xa - xc) - (yb - yd) */ - r2 = r2 - t1; - - /* (ya - yc) - (xb - xd) */ - s1 = s2 - t2; - /* (ya - yc) + (xb - xd) */ - s2 = s2 + t2; - - /* xb' = (xa+yb-xc-yd)co1 + (ya-xb-yc+xd)(si1) */ - pSi2[0] = (((int32_t) (((q63_t) r1 * co1) >> 32)) + - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1U; - - /* yb' = (ya-xb-yc+xd)co1 - (xa+yb-xc-yd)(si1) */ - pSi2[1] = (((int32_t) (((q63_t) s1 * co1) >> 32)) - - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1U; - pSi2 += 2 * n1; - - /* xd' = (xa-yb-xc+yd)co3 + (ya+xb-yc-xd)(si3) */ - pSi3[0] = (((int32_t) (((q63_t) r2 * co3) >> 32)) + - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1U; - - /* yd' = (ya+xb-yc-xd)co3 - (xa-yb-xc+yd)(si3) */ - pSi3[1] = (((int32_t) (((q63_t) s2 * co3) >> 32)) - - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1U; - pSi3 += 2 * n1; - } - } - twidCoefModifier <<= 2U; - } -#endif - - /* End of Middle stages process */ - - /* data is in 11.21(q21) format for the 1024 point as there are 3 middle stages */ - /* data is in 9.23(q23) format for the 256 point as there are 2 middle stages */ - /* data is in 7.25(q25) format for the 64 point as there are 1 middle stage */ - /* data is in 5.27(q27) format for the 16 point as there are no middle stages */ - - - /* start of Last stage process */ - /* Initializations for the last stage */ - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { - -#ifndef ARM_MATH_BIG_ENDIAN - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - xa = (q31_t) xaya; - ya = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - xb = (q31_t) xbyb; - yb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - xc = (q31_t) xcyc; - yc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - xd = (q31_t) xdyd; - yd = (q31_t) (xdyd >> 32); - -#else - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - ya = (q31_t) xaya; - xa = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - yb = (q31_t) xbyb; - xb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - yc = (q31_t) xcyc; - xc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - yd = (q31_t) xdyd; - xd = (q31_t) (xdyd >> 32); - - -#endif - - /* xa' = xa + xb + xc + xd */ - xa_out = xa + xb + xc + xd; - - /* ya' = ya + yb + yc + yd */ - ya_out = ya + yb + yc + yd; - - /* pointer updation for writing */ - ptr1 = ptr1 - 8U; - - /* writing xa' and ya' */ - *ptr1++ = xa_out; - *ptr1++ = ya_out; - - xc_out = (xa - xb + xc - xd); - yc_out = (ya - yb + yc - yd); - - /* writing xc' and yc' */ - *ptr1++ = xc_out; - *ptr1++ = yc_out; - - xb_out = (xa + yb - xc - yd); - yb_out = (ya - xb - yc + xd); - - /* writing xb' and yb' */ - *ptr1++ = xb_out; - *ptr1++ = yb_out; - - xd_out = (xa - yb - xc + yd); - yd_out = (ya + xb - yc - xd); - - /* writing xd' and yd' */ - *ptr1++ = xd_out; - *ptr1++ = yd_out; - - - } while (--j); - - /* output is in 11.21(q21) format for the 1024 point */ - /* output is in 9.23(q23) format for the 256 point */ - /* output is in 7.25(q25) format for the 64 point */ - /* output is in 5.27(q27) format for the 16 point */ - - /* End of last stage process */ - -} - - -/** - * @brief Core function for the Q31 CIFFT butterfly process. - * @param[in, out] *pSrc points to the in-place buffer of Q31 data type. - * @param[in] fftLen length of the FFT. - * @param[in] *pCoef points to twiddle coefficient buffer. - * @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - - -/* -* Radix-4 IFFT algorithm used is : -* -* CIFFT uses same twiddle coefficients as CFFT Function -* x[k] = x[n] + (j)k * x[n + fftLen/4] + (-1)k * x[n+fftLen/2] + (-j)k * x[n+3*fftLen/4] -* -* -* IFFT is implemented with following changes in equations from FFT -* -* Input real and imaginary data: -* x(n) = xa + j * ya -* x(n+N/4 ) = xb + j * yb -* x(n+N/2 ) = xc + j * yc -* x(n+3N 4) = xd + j * yd -* -* -* Output real and imaginary data: -* x(4r) = xa'+ j * ya' -* x(4r+1) = xb'+ j * yb' -* x(4r+2) = xc'+ j * yc' -* x(4r+3) = xd'+ j * yd' -* -* -* Twiddle factors for radix-4 IFFT: -* Wn = co1 + j * (si1) -* W2n = co2 + j * (si2) -* W3n = co3 + j * (si3) - -* The real and imaginary output values for the radix-4 butterfly are -* xa' = xa + xb + xc + xd -* ya' = ya + yb + yc + yd -* xb' = (xa-yb-xc+yd)* co1 - (ya+xb-yc-xd)* (si1) -* yb' = (ya+xb-yc-xd)* co1 + (xa-yb-xc+yd)* (si1) -* xc' = (xa-xb+xc-xd)* co2 - (ya-yb+yc-yd)* (si2) -* yc' = (ya-yb+yc-yd)* co2 + (xa-xb+xc-xd)* (si2) -* xd' = (xa+yb-xc-yd)* co3 - (ya-xb-yc+xd)* (si3) -* yd' = (ya-xb-yc+xd)* co3 + (xa+yb-xc-yd)* (si3) -* -*/ - -void arm_radix4_butterfly_inverse_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pCoef, - uint32_t twidCoefModifier) -{ -#if defined(ARM_MATH_CM7) - uint32_t n1, n2, ia1, ia2, ia3, i0, i1, i2, i3, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q63_t xaya, xbyb, xcyc, xdyd; - - /* input is be 1.31(q31) format for all FFT sizes */ - /* Total process is divided into three stages */ - /* process first stage, middle stages, & last stage */ - - /* Start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2U; - i0 = 0U; - ia1 = 0U; - - j = n2; - - do - { - - /* input is in 1.31(q31) format and provide 4 guard bits for the input */ - - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2U], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSrc[2U * i0] >> 4U) + (pSrc[2U * i2] >> 4U); - /* xa - xc */ - r2 = (pSrc[2U * i0] >> 4U) - (pSrc[2U * i2] >> 4U); - - /* xb + xd */ - t1 = (pSrc[2U * i1] >> 4U) + (pSrc[2U * i3] >> 4U); - - /* ya + yc */ - s1 = (pSrc[(2U * i0) + 1U] >> 4U) + (pSrc[(2U * i2) + 1U] >> 4U); - /* ya - yc */ - s2 = (pSrc[(2U * i0) + 1U] >> 4U) - (pSrc[(2U * i2) + 1U] >> 4U); - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSrc[(2U * i1) + 1U] >> 4U) + (pSrc[(2U * i3) + 1U] >> 4U); - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSrc[(2U * i1) + 1U] >> 4U) - (pSrc[(2U * i3) + 1U] >> 4U); - /* xb - xd */ - t2 = (pSrc[2U * i1] >> 4U) - (pSrc[2U * i3] >> 4U); - - /* index calculation for the coefficients */ - ia2 = 2U * ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32)) - - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1U; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[2U * i1 + 1U] = (((int32_t) (((q63_t) s1 * co2) >> 32)) + - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1U; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1U; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1U; - - /* index calculation for the coefficients */ - ia3 = 3U * ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[2U * i3] = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1U; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1U; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - /* Updating input index */ - i0 = i0 + 1U; - - } while (--j); - - /* data is in 5.27(q27) format */ - /* each stage provides two down scaling of the input */ - - - /* Start of Middle stages process */ - - twidCoefModifier <<= 2U; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - for (j = 0; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* index calculation for the input as, */ - /* pSrc[i0 + 0], pSrc[i0 + fftLen/4], pSrc[i0 + fftLen/2U], pSrc[i0 + 3fftLen/4] */ - i1 = i0 + n2; - i2 = i1 + n2; - i3 = i2 + n2; - - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSrc[2U * i0] + pSrc[2U * i2]; - /* xa - xc */ - r2 = pSrc[2U * i0] - pSrc[2U * i2]; - - /* ya + yc */ - s1 = pSrc[(2U * i0) + 1U] + pSrc[(2U * i2) + 1U]; - /* ya - yc */ - s2 = pSrc[(2U * i0) + 1U] - pSrc[(2U * i2) + 1U]; - - /* xb + xd */ - t1 = pSrc[2U * i1] + pSrc[2U * i3]; - - /* xa' = xa + xb + xc + xd */ - pSrc[2U * i0] = (r1 + t1) >> 2U; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = pSrc[(2U * i1) + 1U] + pSrc[(2U * i3) + 1U]; - /* ya' = ya + yb + yc + yd */ - pSrc[(2U * i0) + 1U] = (s1 + t2) >> 2U; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSrc[(2U * i1) + 1U] - pSrc[(2U * i3) + 1U]; - /* (xb - xd) */ - t2 = pSrc[2U * i1] - pSrc[2U * i3]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSrc[2U * i1] = (((int32_t) (((q63_t) r1 * co2) >> 32U)) - - ((int32_t) (((q63_t) s1 * si2) >> 32U))) >> 1U; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSrc[(2U * i1) + 1U] = - (((int32_t) (((q63_t) s1 * co2) >> 32U)) + - ((int32_t) (((q63_t) r1 * si2) >> 32U))) >> 1U; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSrc[2U * i2] = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1U; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSrc[(2U * i2) + 1U] = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1U; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSrc[(2U * i3)] = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1U; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSrc[(2U * i3) + 1U] = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1U; - } - } - twidCoefModifier <<= 2U; - } -#else - uint32_t n1, n2, ia1, ia2, ia3, i0, j, k; - q31_t t1, t2, r1, r2, s1, s2, co1, co2, co3, si1, si2, si3; - q31_t xa, xb, xc, xd; - q31_t ya, yb, yc, yd; - q31_t xa_out, xb_out, xc_out, xd_out; - q31_t ya_out, yb_out, yc_out, yd_out; - - q31_t *ptr1; - q31_t *pSi0; - q31_t *pSi1; - q31_t *pSi2; - q31_t *pSi3; - q63_t xaya, xbyb, xcyc, xdyd; - - /* input is be 1.31(q31) format for all FFT sizes */ - /* Total process is divided into three stages */ - /* process first stage, middle stages, & last stage */ - - /* Start of first stage process */ - - /* Initializations for the first stage */ - n2 = fftLen; - n1 = n2; - /* n2 = fftLen/4 */ - n2 >>= 2U; - - ia1 = 0U; - - j = n2; - - pSi0 = pSrc; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - do - { - /* Butterfly implementation */ - /* xa + xc */ - r1 = (pSi0[0] >> 4U) + (pSi2[0] >> 4U); - /* xa - xc */ - r2 = (pSi0[0] >> 4U) - (pSi2[0] >> 4U); - - /* xb + xd */ - t1 = (pSi1[0] >> 4U) + (pSi3[0] >> 4U); - - /* ya + yc */ - s1 = (pSi0[1] >> 4U) + (pSi2[1] >> 4U); - /* ya - yc */ - s2 = (pSi0[1] >> 4U) - (pSi2[1] >> 4U); - - /* xa' = xa + xb + xc + xd */ - *pSi0++ = (r1 + t1); - /* (xa + xc) - (xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = (pSi1[1] >> 4U) + (pSi3[1] >> 4U); - /* ya' = ya + yb + yc + yd */ - *pSi0++ = (s1 + t2); - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* yb - yd */ - t1 = (pSi1[1] >> 4U) - (pSi3[1] >> 4U); - /* xb - xd */ - t2 = (pSi1[0] >> 4U) - (pSi3[0] >> 4U); - - /* index calculation for the coefficients */ - ia2 = 2U * ia1; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - *pSi1++ = (((int32_t) (((q63_t) r1 * co2) >> 32)) - - ((int32_t) (((q63_t) s1 * si2) >> 32))) << 1U; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - *pSi1++ = (((int32_t) (((q63_t) s1 * co2) >> 32)) + - ((int32_t) (((q63_t) r1 * si2) >> 32))) << 1U; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - *pSi2++ = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) << 1U; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - *pSi2++ = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) << 1U; - - /* index calculation for the coefficients */ - ia3 = 3U * ia1; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - *pSi3++ = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) << 1U; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - *pSi3++ = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) << 1U; - - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - } while (--j); - - /* data is in 5.27(q27) format */ - /* each stage provides two down scaling of the input */ - - - /* Start of Middle stages process */ - - twidCoefModifier <<= 2U; - - /* Calculation of second stage to excluding last stage */ - for (k = fftLen / 4U; k > 4U; k >>= 2U) - { - /* Initializations for the first stage */ - n1 = n2; - n2 >>= 2U; - ia1 = 0U; - - for (j = 0; j <= (n2 - 1U); j++) - { - /* index calculation for the coefficients */ - ia2 = ia1 + ia1; - ia3 = ia2 + ia1; - co1 = pCoef[ia1 * 2U]; - si1 = pCoef[(ia1 * 2U) + 1U]; - co2 = pCoef[ia2 * 2U]; - si2 = pCoef[(ia2 * 2U) + 1U]; - co3 = pCoef[ia3 * 2U]; - si3 = pCoef[(ia3 * 2U) + 1U]; - /* Twiddle coefficients index modifier */ - ia1 = ia1 + twidCoefModifier; - - pSi0 = pSrc + 2 * j; - pSi1 = pSi0 + 2 * n2; - pSi2 = pSi1 + 2 * n2; - pSi3 = pSi2 + 2 * n2; - - for (i0 = j; i0 < fftLen; i0 += n1) - { - /* Butterfly implementation */ - /* xa + xc */ - r1 = pSi0[0] + pSi2[0]; - - /* xa - xc */ - r2 = pSi0[0] - pSi2[0]; - - - /* ya + yc */ - s1 = pSi0[1] + pSi2[1]; - - /* ya - yc */ - s2 = pSi0[1] - pSi2[1]; - - - /* xb + xd */ - t1 = pSi1[0] + pSi3[0]; - - - /* xa' = xa + xb + xc + xd */ - pSi0[0] = (r1 + t1) >> 2U; - /* xa + xc -(xb + xd) */ - r1 = r1 - t1; - /* yb + yd */ - t2 = pSi1[1] + pSi3[1]; - - /* ya' = ya + yb + yc + yd */ - pSi0[1] = (s1 + t2) >> 2U; - pSi0 += 2 * n1; - - /* (ya + yc) - (yb + yd) */ - s1 = s1 - t2; - - /* (yb - yd) */ - t1 = pSi1[1] - pSi3[1]; - - /* (xb - xd) */ - t2 = pSi1[0] - pSi3[0]; - - - /* xc' = (xa-xb+xc-xd)co2 - (ya-yb+yc-yd)(si2) */ - pSi1[0] = (((int32_t) (((q63_t) r1 * co2) >> 32U)) - - ((int32_t) (((q63_t) s1 * si2) >> 32U))) >> 1U; - - /* yc' = (ya-yb+yc-yd)co2 + (xa-xb+xc-xd)(si2) */ - pSi1[1] = - - (((int32_t) (((q63_t) s1 * co2) >> 32U)) + - ((int32_t) (((q63_t) r1 * si2) >> 32U))) >> 1U; - pSi1 += 2 * n1; - - /* (xa - xc) - (yb - yd) */ - r1 = r2 - t1; - /* (xa - xc) + (yb - yd) */ - r2 = r2 + t1; - - /* (ya - yc) + (xb - xd) */ - s1 = s2 + t2; - /* (ya - yc) - (xb - xd) */ - s2 = s2 - t2; - - /* xb' = (xa+yb-xc-yd)co1 - (ya-xb-yc+xd)(si1) */ - pSi2[0] = (((int32_t) (((q63_t) r1 * co1) >> 32)) - - ((int32_t) (((q63_t) s1 * si1) >> 32))) >> 1U; - - /* yb' = (ya-xb-yc+xd)co1 + (xa+yb-xc-yd)(si1) */ - pSi2[1] = (((int32_t) (((q63_t) s1 * co1) >> 32)) + - ((int32_t) (((q63_t) r1 * si1) >> 32))) >> 1U; - pSi2 += 2 * n1; - - /* xd' = (xa-yb-xc+yd)co3 - (ya+xb-yc-xd)(si3) */ - pSi3[0] = (((int32_t) (((q63_t) r2 * co3) >> 32)) - - ((int32_t) (((q63_t) s2 * si3) >> 32))) >> 1U; - - /* yd' = (ya+xb-yc-xd)co3 + (xa-yb-xc+yd)(si3) */ - pSi3[1] = (((int32_t) (((q63_t) s2 * co3) >> 32)) + - ((int32_t) (((q63_t) r2 * si3) >> 32))) >> 1U; - pSi3 += 2 * n1; - } - } - twidCoefModifier <<= 2U; - } -#endif - - /* End of Middle stages process */ - - /* data is in 11.21(q21) format for the 1024 point as there are 3 middle stages */ - /* data is in 9.23(q23) format for the 256 point as there are 2 middle stages */ - /* data is in 7.25(q25) format for the 64 point as there are 1 middle stage */ - /* data is in 5.27(q27) format for the 16 point as there are no middle stages */ - - - /* Start of last stage process */ - - - /* Initializations for the last stage */ - j = fftLen >> 2; - ptr1 = &pSrc[0]; - - /* Calculations of last stage */ - do - { -#ifndef ARM_MATH_BIG_ENDIAN - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - xa = (q31_t) xaya; - ya = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - xb = (q31_t) xbyb; - yb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - xc = (q31_t) xcyc; - yc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - xd = (q31_t) xdyd; - yd = (q31_t) (xdyd >> 32); - -#else - - /* Read xa (real), ya(imag) input */ - xaya = *__SIMD64(ptr1)++; - ya = (q31_t) xaya; - xa = (q31_t) (xaya >> 32); - - /* Read xb (real), yb(imag) input */ - xbyb = *__SIMD64(ptr1)++; - yb = (q31_t) xbyb; - xb = (q31_t) (xbyb >> 32); - - /* Read xc (real), yc(imag) input */ - xcyc = *__SIMD64(ptr1)++; - yc = (q31_t) xcyc; - xc = (q31_t) (xcyc >> 32); - - /* Read xc (real), yc(imag) input */ - xdyd = *__SIMD64(ptr1)++; - yd = (q31_t) xdyd; - xd = (q31_t) (xdyd >> 32); - - -#endif - - /* xa' = xa + xb + xc + xd */ - xa_out = xa + xb + xc + xd; - - /* ya' = ya + yb + yc + yd */ - ya_out = ya + yb + yc + yd; - - /* pointer updation for writing */ - ptr1 = ptr1 - 8U; - - /* writing xa' and ya' */ - *ptr1++ = xa_out; - *ptr1++ = ya_out; - - xc_out = (xa - xb + xc - xd); - yc_out = (ya - yb + yc - yd); - - /* writing xc' and yc' */ - *ptr1++ = xc_out; - *ptr1++ = yc_out; - - xb_out = (xa - yb - xc + yd); - yb_out = (ya + xb - yc - xd); - - /* writing xb' and yb' */ - *ptr1++ = xb_out; - *ptr1++ = yb_out; - - xd_out = (xa + yb - xc - yd); - yd_out = (ya - xb - yc + xd); - - /* writing xd' and yd' */ - *ptr1++ = xd_out; - *ptr1++ = yd_out; - - } while (--j); - - /* output is in 11.21(q21) format for the 1024 point */ - /* output is in 9.23(q23) format for the 256 point */ - /* output is in 7.25(q25) format for the 64 point */ - /* output is in 5.27(q27) format for the 16 point */ - - /* End of last stage process */ -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix8_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix8_f32.c deleted file mode 100644 index b70ab38..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix8_f32.c +++ /dev/null @@ -1,285 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_radix8_f32.c - * Description: Radix-8 Decimation in Frequency CFFT & CIFFT Floating point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - - -/* ---------------------------------------------------------------------- - * Internal helper function used by the FFTs - * -------------------------------------------------------------------- */ - -/* -* @brief Core function for the floating-point CFFT butterfly process. -* @param[in, out] *pSrc points to the in-place buffer of floating-point data type. -* @param[in] fftLen length of the FFT. -* @param[in] *pCoef points to the twiddle coefficient buffer. -* @param[in] twidCoefModifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -*/ - -void arm_radix8_butterfly_f32( -float32_t * pSrc, -uint16_t fftLen, -const float32_t * pCoef, -uint16_t twidCoefModifier) -{ - uint32_t ia1, ia2, ia3, ia4, ia5, ia6, ia7; - uint32_t i1, i2, i3, i4, i5, i6, i7, i8; - uint32_t id; - uint32_t n1, n2, j; - - float32_t r1, r2, r3, r4, r5, r6, r7, r8; - float32_t t1, t2; - float32_t s1, s2, s3, s4, s5, s6, s7, s8; - float32_t p1, p2, p3, p4; - float32_t co2, co3, co4, co5, co6, co7, co8; - float32_t si2, si3, si4, si5, si6, si7, si8; - const float32_t C81 = 0.70710678118f; - - n2 = fftLen; - - do - { - n1 = n2; - n2 = n2 >> 3; - i1 = 0; - - do - { - i2 = i1 + n2; - i3 = i2 + n2; - i4 = i3 + n2; - i5 = i4 + n2; - i6 = i5 + n2; - i7 = i6 + n2; - i8 = i7 + n2; - r1 = pSrc[2 * i1] + pSrc[2 * i5]; - r5 = pSrc[2 * i1] - pSrc[2 * i5]; - r2 = pSrc[2 * i2] + pSrc[2 * i6]; - r6 = pSrc[2 * i2] - pSrc[2 * i6]; - r3 = pSrc[2 * i3] + pSrc[2 * i7]; - r7 = pSrc[2 * i3] - pSrc[2 * i7]; - r4 = pSrc[2 * i4] + pSrc[2 * i8]; - r8 = pSrc[2 * i4] - pSrc[2 * i8]; - t1 = r1 - r3; - r1 = r1 + r3; - r3 = r2 - r4; - r2 = r2 + r4; - pSrc[2 * i1] = r1 + r2; - pSrc[2 * i5] = r1 - r2; - r1 = pSrc[2 * i1 + 1] + pSrc[2 * i5 + 1]; - s5 = pSrc[2 * i1 + 1] - pSrc[2 * i5 + 1]; - r2 = pSrc[2 * i2 + 1] + pSrc[2 * i6 + 1]; - s6 = pSrc[2 * i2 + 1] - pSrc[2 * i6 + 1]; - s3 = pSrc[2 * i3 + 1] + pSrc[2 * i7 + 1]; - s7 = pSrc[2 * i3 + 1] - pSrc[2 * i7 + 1]; - r4 = pSrc[2 * i4 + 1] + pSrc[2 * i8 + 1]; - s8 = pSrc[2 * i4 + 1] - pSrc[2 * i8 + 1]; - t2 = r1 - s3; - r1 = r1 + s3; - s3 = r2 - r4; - r2 = r2 + r4; - pSrc[2 * i1 + 1] = r1 + r2; - pSrc[2 * i5 + 1] = r1 - r2; - pSrc[2 * i3] = t1 + s3; - pSrc[2 * i7] = t1 - s3; - pSrc[2 * i3 + 1] = t2 - r3; - pSrc[2 * i7 + 1] = t2 + r3; - r1 = (r6 - r8) * C81; - r6 = (r6 + r8) * C81; - r2 = (s6 - s8) * C81; - s6 = (s6 + s8) * C81; - t1 = r5 - r1; - r5 = r5 + r1; - r8 = r7 - r6; - r7 = r7 + r6; - t2 = s5 - r2; - s5 = s5 + r2; - s8 = s7 - s6; - s7 = s7 + s6; - pSrc[2 * i2] = r5 + s7; - pSrc[2 * i8] = r5 - s7; - pSrc[2 * i6] = t1 + s8; - pSrc[2 * i4] = t1 - s8; - pSrc[2 * i2 + 1] = s5 - r7; - pSrc[2 * i8 + 1] = s5 + r7; - pSrc[2 * i6 + 1] = t2 - r8; - pSrc[2 * i4 + 1] = t2 + r8; - - i1 += n1; - } while (i1 < fftLen); - - if (n2 < 8) - break; - - ia1 = 0; - j = 1; - - do - { - /* index calculation for the coefficients */ - id = ia1 + twidCoefModifier; - ia1 = id; - ia2 = ia1 + id; - ia3 = ia2 + id; - ia4 = ia3 + id; - ia5 = ia4 + id; - ia6 = ia5 + id; - ia7 = ia6 + id; - - co2 = pCoef[2 * ia1]; - co3 = pCoef[2 * ia2]; - co4 = pCoef[2 * ia3]; - co5 = pCoef[2 * ia4]; - co6 = pCoef[2 * ia5]; - co7 = pCoef[2 * ia6]; - co8 = pCoef[2 * ia7]; - si2 = pCoef[2 * ia1 + 1]; - si3 = pCoef[2 * ia2 + 1]; - si4 = pCoef[2 * ia3 + 1]; - si5 = pCoef[2 * ia4 + 1]; - si6 = pCoef[2 * ia5 + 1]; - si7 = pCoef[2 * ia6 + 1]; - si8 = pCoef[2 * ia7 + 1]; - - i1 = j; - - do - { - /* index calculation for the input */ - i2 = i1 + n2; - i3 = i2 + n2; - i4 = i3 + n2; - i5 = i4 + n2; - i6 = i5 + n2; - i7 = i6 + n2; - i8 = i7 + n2; - r1 = pSrc[2 * i1] + pSrc[2 * i5]; - r5 = pSrc[2 * i1] - pSrc[2 * i5]; - r2 = pSrc[2 * i2] + pSrc[2 * i6]; - r6 = pSrc[2 * i2] - pSrc[2 * i6]; - r3 = pSrc[2 * i3] + pSrc[2 * i7]; - r7 = pSrc[2 * i3] - pSrc[2 * i7]; - r4 = pSrc[2 * i4] + pSrc[2 * i8]; - r8 = pSrc[2 * i4] - pSrc[2 * i8]; - t1 = r1 - r3; - r1 = r1 + r3; - r3 = r2 - r4; - r2 = r2 + r4; - pSrc[2 * i1] = r1 + r2; - r2 = r1 - r2; - s1 = pSrc[2 * i1 + 1] + pSrc[2 * i5 + 1]; - s5 = pSrc[2 * i1 + 1] - pSrc[2 * i5 + 1]; - s2 = pSrc[2 * i2 + 1] + pSrc[2 * i6 + 1]; - s6 = pSrc[2 * i2 + 1] - pSrc[2 * i6 + 1]; - s3 = pSrc[2 * i3 + 1] + pSrc[2 * i7 + 1]; - s7 = pSrc[2 * i3 + 1] - pSrc[2 * i7 + 1]; - s4 = pSrc[2 * i4 + 1] + pSrc[2 * i8 + 1]; - s8 = pSrc[2 * i4 + 1] - pSrc[2 * i8 + 1]; - t2 = s1 - s3; - s1 = s1 + s3; - s3 = s2 - s4; - s2 = s2 + s4; - r1 = t1 + s3; - t1 = t1 - s3; - pSrc[2 * i1 + 1] = s1 + s2; - s2 = s1 - s2; - s1 = t2 - r3; - t2 = t2 + r3; - p1 = co5 * r2; - p2 = si5 * s2; - p3 = co5 * s2; - p4 = si5 * r2; - pSrc[2 * i5] = p1 + p2; - pSrc[2 * i5 + 1] = p3 - p4; - p1 = co3 * r1; - p2 = si3 * s1; - p3 = co3 * s1; - p4 = si3 * r1; - pSrc[2 * i3] = p1 + p2; - pSrc[2 * i3 + 1] = p3 - p4; - p1 = co7 * t1; - p2 = si7 * t2; - p3 = co7 * t2; - p4 = si7 * t1; - pSrc[2 * i7] = p1 + p2; - pSrc[2 * i7 + 1] = p3 - p4; - r1 = (r6 - r8) * C81; - r6 = (r6 + r8) * C81; - s1 = (s6 - s8) * C81; - s6 = (s6 + s8) * C81; - t1 = r5 - r1; - r5 = r5 + r1; - r8 = r7 - r6; - r7 = r7 + r6; - t2 = s5 - s1; - s5 = s5 + s1; - s8 = s7 - s6; - s7 = s7 + s6; - r1 = r5 + s7; - r5 = r5 - s7; - r6 = t1 + s8; - t1 = t1 - s8; - s1 = s5 - r7; - s5 = s5 + r7; - s6 = t2 - r8; - t2 = t2 + r8; - p1 = co2 * r1; - p2 = si2 * s1; - p3 = co2 * s1; - p4 = si2 * r1; - pSrc[2 * i2] = p1 + p2; - pSrc[2 * i2 + 1] = p3 - p4; - p1 = co8 * r5; - p2 = si8 * s5; - p3 = co8 * s5; - p4 = si8 * r5; - pSrc[2 * i8] = p1 + p2; - pSrc[2 * i8 + 1] = p3 - p4; - p1 = co6 * r6; - p2 = si6 * s6; - p3 = co6 * s6; - p4 = si6 * r6; - pSrc[2 * i6] = p1 + p2; - pSrc[2 * i6 + 1] = p3 - p4; - p1 = co4 * t1; - p2 = si4 * t2; - p3 = co4 * t2; - p4 = si4 * t1; - pSrc[2 * i4] = p1 + p2; - pSrc[2 * i4 + 1] = p3 - p4; - - i1 += n1; - } while (i1 < fftLen); - - j++; - } while (j < n2); - - twidCoefModifier <<= 3; - } while (n2 > 7); -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_f32.c deleted file mode 100644 index 231c79a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_f32.c +++ /dev/null @@ -1,449 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_f32.c - * Description: Processing function of DCT4 & IDCT4 F32 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @defgroup DCT4_IDCT4 DCT Type IV Functions - * Representation of signals by minimum number of values is important for storage and transmission. - * The possibility of large discontinuity between the beginning and end of a period of a signal - * in DFT can be avoided by extending the signal so that it is even-symmetric. - * Discrete Cosine Transform (DCT) is constructed such that its energy is heavily concentrated in the lower part of the - * spectrum and is very widely used in signal and image coding applications. - * The family of DCTs (DCT type- 1,2,3,4) is the outcome of different combinations of homogeneous boundary conditions. - * DCT has an excellent energy-packing capability, hence has many applications and in data compression in particular. - * - * DCT is essentially the Discrete Fourier Transform(DFT) of an even-extended real signal. - * Reordering of the input data makes the computation of DCT just a problem of - * computing the DFT of a real signal with a few additional operations. - * This approach provides regular, simple, and very efficient DCT algorithms for practical hardware and software implementations. - * - * DCT type-II can be implemented using Fast fourier transform (FFT) internally, as the transform is applied on real values, Real FFT can be used. - * DCT4 is implemented using DCT2 as their implementations are similar except with some added pre-processing and post-processing. - * DCT2 implementation can be described in the following steps: - * - Re-ordering input - * - Calculating Real FFT - * - Multiplication of weights and Real FFT output and getting real part from the product. - * - * This process is explained by the block diagram below: - * \image html DCT4.gif "Discrete Cosine Transform - type-IV" - * - * \par Algorithm: - * The N-point type-IV DCT is defined as a real, linear transformation by the formula: - * \image html DCT4Equation.gif - * where k = 0,1,2,.....N-1 - *\par - * Its inverse is defined as follows: - * \image html IDCT4Equation.gif - * where n = 0,1,2,.....N-1 - *\par - * The DCT4 matrices become involutory (i.e. they are self-inverse) by multiplying with an overall scale factor of sqrt(2/N). - * The symmetry of the transform matrix indicates that the fast algorithms for the forward - * and inverse transform computation are identical. - * Note that the implementation of Inverse DCT4 and DCT4 is same, hence same process function can be used for both. - * - * \par Lengths supported by the transform: - * As DCT4 internally uses Real FFT, it supports all the lengths 128, 512, 2048 and 8192. - * The library provides separate functions for Q15, Q31, and floating-point data types. - * \par Instance Structure - * The instances for Real FFT and FFT, cosine values table and twiddle factor table are stored in an instance data structure. - * A separate instance structure must be defined for each transform. - * There are separate instance structure declarations for each of the 3 supported data types. - * - * \par Initialization Functions - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes Real FFT as its process function is used internally in DCT4, by calling arm_rfft_init_f32(). - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure cannot be placed into a const data section. - * To place an instance structure into a const data section, the instance structure must be manually initialized. - * Manually initialize the instance structure as follows: - *
- *arm_dct4_instance_f32 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};
- *arm_dct4_instance_q31 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};
- *arm_dct4_instance_q15 S = {N, Nby2, normalize, pTwiddle, pCosFactor, pRfft, pCfft};
- * 
- * where \c N is the length of the DCT4; \c Nby2 is half of the length of the DCT4; - * \c normalize is normalizing factor used and is equal to sqrt(2/N); - * \c pTwiddle points to the twiddle factor table; - * \c pCosFactor points to the cosFactor table; - * \c pRfft points to the real FFT instance; - * \c pCfft points to the complex FFT instance; - * The CFFT and RFFT structures also needs to be initialized, refer to arm_cfft_radix4_f32() - * and arm_rfft_f32() respectively for details regarding static initialization. - * - * \par Fixed-Point Behavior - * Care must be taken when using the fixed-point versions of the DCT4 transform functions. - * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. - * Refer to the function specific documentation below for usage guidelines. - */ - - /** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the floating-point DCT4/IDCT4. - * @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - */ - -void arm_dct4_f32( - const arm_dct4_instance_f32 * S, - float32_t * pState, - float32_t * pInlineBuffer) -{ - uint32_t i; /* Loop counter */ - float32_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - float32_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - float32_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - float32_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_scale_f32(pInlineBuffer, 2.0f, pInlineBuffer, S->N); - arm_mult_f32(pInlineBuffer, cosFact, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as, - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = (uint32_t) S->Nby2 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2U; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_f32(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_f32(pState, weights, pState, S->N); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = ((uint32_t) S->N - 1U) >> 2U; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ * (float32_t) 0.5; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = ((uint32_t) S->N - 1U) % 0x4U; - - while (i > 0U) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2U; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - in = *pbuff; - *pbuff++ = in * S->normalize; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = (uint32_t) S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_f32(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_f32(pState, weights, pState, S->N); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ * (float32_t) 0.5; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* Initializing the loop counter */ - i = ((uint32_t) S->N - 1U); - - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = in * S->normalize; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_f32.c deleted file mode 100644 index 9b39cd4..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_f32.c +++ /dev/null @@ -1,16513 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_init_f32.c - * Description: Initialization function of DCT-4 & IDCT4 F32 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup DCT4_IDCT4 - */ - -/** - * @addtogroup DCT4_IDCT4_Table DCT Type IV Tables - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** - * \par - * Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
- * \par - * C command to generate the table - *
- * for(i = 0; i< N; i++)
- * {
- *    weights[2*i]= cos(i*c);
- *    weights[(2*i)+1]= -sin(i * c);
- * } 
- * \par - * Where N is the Number of weights to be calculated and c is pi/(2*N) - * \par - * In the tables below the real and imaginary values are placed alternatively, hence the - * array length is 2*N. - */ - -static const float32_t Weights_128[256] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999924701839144500f, - -0.012271538285719925f, - 0.999698818696204250f, -0.024541228522912288f, 0.999322384588349540f, - -0.036807222941358832f, - 0.998795456205172410f, -0.049067674327418015f, 0.998118112900149180f, - -0.061320736302208578f, - 0.997290456678690210f, -0.073564563599667426f, 0.996312612182778000f, - -0.085797312344439894f, - 0.995184726672196930f, -0.098017140329560604f, 0.993906970002356060f, - -0.110222207293883060f, - 0.992479534598709970f, -0.122410675199216200f, 0.990902635427780010f, - -0.134580708507126170f, - 0.989176509964781010f, -0.146730474455361750f, 0.987301418157858430f, - -0.158858143333861450f, - 0.985277642388941220f, -0.170961888760301220f, 0.983105487431216290f, - -0.183039887955140950f, - 0.980785280403230430f, -0.195090322016128250f, 0.978317370719627650f, - -0.207111376192218560f, - 0.975702130038528570f, -0.219101240156869800f, 0.972939952205560180f, - -0.231058108280671110f, - 0.970031253194543970f, -0.242980179903263870f, 0.966976471044852070f, - -0.254865659604514570f, - 0.963776065795439840f, -0.266712757474898370f, 0.960430519415565790f, - -0.278519689385053060f, - 0.956940335732208820f, -0.290284677254462330f, 0.953306040354193860f, - -0.302005949319228080f, - 0.949528180593036670f, -0.313681740398891520f, 0.945607325380521280f, - -0.325310292162262930f, - 0.941544065183020810f, -0.336889853392220050f, 0.937339011912574960f, - -0.348418680249434560f, - 0.932992798834738960f, -0.359895036534988110f, 0.928506080473215590f, - -0.371317193951837540f, - 0.923879532511286740f, -0.382683432365089780f, 0.919113851690057770f, - -0.393992040061048100f, - 0.914209755703530690f, -0.405241314004989860f, 0.909167983090522380f, - -0.416429560097637150f, - 0.903989293123443340f, -0.427555093430282080f, 0.898674465693953820f, - -0.438616238538527660f, - 0.893224301195515320f, -0.449611329654606540f, 0.887639620402853930f, - -0.460538710958240010f, - 0.881921264348355050f, -0.471396736825997640f, 0.876070094195406600f, - -0.482183772079122720f, - 0.870086991108711460f, -0.492898192229784040f, 0.863972856121586810f, - -0.503538383725717580f, - 0.857728610000272120f, -0.514102744193221660f, 0.851355193105265200f, - -0.524589682678468950f, - 0.844853565249707120f, -0.534997619887097150f, 0.838224705554838080f, - -0.545324988422046460f, - 0.831469612302545240f, -0.555570233019602180f, 0.824589302785025290f, - -0.565731810783613120f, - 0.817584813151583710f, -0.575808191417845340f, 0.810457198252594770f, - -0.585797857456438860f, - 0.803207531480644940f, -0.595699304492433360f, 0.795836904608883570f, - -0.605511041404325550f, - 0.788346427626606340f, -0.615231590580626820f, 0.780737228572094490f, - -0.624859488142386340f, - 0.773010453362736990f, -0.634393284163645490f, 0.765167265622458960f, - -0.643831542889791390f, - 0.757208846506484570f, -0.653172842953776760f, 0.749136394523459370f, - -0.662415777590171780f, - 0.740951125354959110f, -0.671558954847018330f, 0.732654271672412820f, - -0.680600997795453020f, - 0.724247082951467000f, -0.689540544737066830f, 0.715730825283818590f, - -0.698376249408972920f, - 0.707106781186547570f, -0.707106781186547460f, 0.698376249408972920f, - -0.715730825283818590f, - 0.689540544737066940f, -0.724247082951466890f, 0.680600997795453130f, - -0.732654271672412820f, - 0.671558954847018330f, -0.740951125354959110f, 0.662415777590171780f, - -0.749136394523459260f, - 0.653172842953776760f, -0.757208846506484460f, 0.643831542889791500f, - -0.765167265622458960f, - 0.634393284163645490f, -0.773010453362736990f, 0.624859488142386450f, - -0.780737228572094380f, - 0.615231590580626820f, -0.788346427626606230f, 0.605511041404325550f, - -0.795836904608883460f, - 0.595699304492433470f, -0.803207531480644830f, 0.585797857456438860f, - -0.810457198252594770f, - 0.575808191417845340f, -0.817584813151583710f, 0.565731810783613230f, - -0.824589302785025290f, - 0.555570233019602290f, -0.831469612302545240f, 0.545324988422046460f, - -0.838224705554837970f, - 0.534997619887097260f, -0.844853565249707010f, 0.524589682678468840f, - -0.851355193105265200f, - 0.514102744193221660f, -0.857728610000272120f, 0.503538383725717580f, - -0.863972856121586700f, - 0.492898192229784090f, -0.870086991108711350f, 0.482183772079122830f, - -0.876070094195406600f, - 0.471396736825997810f, -0.881921264348354940f, 0.460538710958240010f, - -0.887639620402853930f, - 0.449611329654606600f, -0.893224301195515320f, 0.438616238538527710f, - -0.898674465693953820f, - 0.427555093430282200f, -0.903989293123443340f, 0.416429560097637320f, - -0.909167983090522270f, - 0.405241314004989860f, -0.914209755703530690f, 0.393992040061048100f, - -0.919113851690057770f, - 0.382683432365089840f, -0.923879532511286740f, 0.371317193951837600f, - -0.928506080473215480f, - 0.359895036534988280f, -0.932992798834738850f, 0.348418680249434510f, - -0.937339011912574960f, - 0.336889853392220050f, -0.941544065183020810f, 0.325310292162262980f, - -0.945607325380521280f, - 0.313681740398891570f, -0.949528180593036670f, 0.302005949319228200f, - -0.953306040354193750f, - 0.290284677254462330f, -0.956940335732208940f, 0.278519689385053060f, - -0.960430519415565790f, - 0.266712757474898420f, -0.963776065795439840f, 0.254865659604514630f, - -0.966976471044852070f, - 0.242980179903263980f, -0.970031253194543970f, 0.231058108280671280f, - -0.972939952205560070f, - 0.219101240156869770f, -0.975702130038528570f, 0.207111376192218560f, - -0.978317370719627650f, - 0.195090322016128330f, -0.980785280403230430f, 0.183039887955141060f, - -0.983105487431216290f, - 0.170961888760301360f, -0.985277642388941220f, 0.158858143333861390f, - -0.987301418157858430f, - 0.146730474455361750f, -0.989176509964781010f, 0.134580708507126220f, - -0.990902635427780010f, - 0.122410675199216280f, -0.992479534598709970f, 0.110222207293883180f, - -0.993906970002356060f, - 0.098017140329560770f, -0.995184726672196820f, 0.085797312344439880f, - -0.996312612182778000f, - 0.073564563599667454f, -0.997290456678690210f, 0.061320736302208648f, - -0.998118112900149180f, - 0.049067674327418126f, -0.998795456205172410f, 0.036807222941358991f, - -0.999322384588349540f, - 0.024541228522912264f, -0.999698818696204250f, 0.012271538285719944f, - -0.999924701839144500f -}; - -static const float32_t Weights_512[1024] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999995293809576190f, - -0.003067956762965976f, - 0.999981175282601110f, -0.006135884649154475f, 0.999957644551963900f, - -0.009203754782059819f, - 0.999924701839144500f, -0.012271538285719925f, 0.999882347454212560f, - -0.015339206284988100f, - 0.999830581795823400f, -0.018406729905804820f, 0.999769405351215280f, - -0.021474080275469508f, - 0.999698818696204250f, -0.024541228522912288f, 0.999618822495178640f, - -0.027608145778965740f, - 0.999529417501093140f, -0.030674803176636626f, 0.999430604555461730f, - -0.033741171851377580f, - 0.999322384588349540f, -0.036807222941358832f, 0.999204758618363890f, - -0.039872927587739811f, - 0.999077727752645360f, -0.042938256934940820f, 0.998941293186856870f, - -0.046003182130914623f, - 0.998795456205172410f, -0.049067674327418015f, 0.998640218180265270f, - -0.052131704680283324f, - 0.998475580573294770f, -0.055195244349689934f, 0.998301544933892890f, - -0.058258264500435752f, - 0.998118112900149180f, -0.061320736302208578f, 0.997925286198596000f, - -0.064382630929857465f, - 0.997723066644191640f, -0.067443919563664051f, 0.997511456140303450f, - -0.070504573389613856f, - 0.997290456678690210f, -0.073564563599667426f, 0.997060070339482960f, - -0.076623861392031492f, - 0.996820299291165670f, -0.079682437971430126f, 0.996571145790554840f, - -0.082740264549375692f, - 0.996312612182778000f, -0.085797312344439894f, 0.996044700901251970f, - -0.088853552582524600f, - 0.995767414467659820f, -0.091908956497132724f, 0.995480755491926940f, - -0.094963495329638992f, - 0.995184726672196930f, -0.098017140329560604f, 0.994879330794805620f, - -0.101069862754827820f, - 0.994564570734255420f, -0.104121633872054590f, 0.994240449453187900f, - -0.107172424956808840f, - 0.993906970002356060f, -0.110222207293883060f, 0.993564135520595300f, - -0.113270952177564350f, - 0.993211949234794500f, -0.116318630911904750f, 0.992850414459865100f, - -0.119365214810991350f, - 0.992479534598709970f, -0.122410675199216200f, 0.992099313142191800f, - -0.125454983411546230f, - 0.991709753669099530f, -0.128498110793793170f, 0.991310859846115440f, - -0.131540028702883120f, - 0.990902635427780010f, -0.134580708507126170f, 0.990485084256457090f, - -0.137620121586486040f, - 0.990058210262297120f, -0.140658239332849210f, 0.989622017463200890f, - -0.143695033150294470f, - 0.989176509964781010f, -0.146730474455361750f, 0.988721691960323780f, - -0.149764534677321510f, - 0.988257567730749460f, -0.152797185258443440f, 0.987784141644572180f, - -0.155828397654265230f, - 0.987301418157858430f, -0.158858143333861450f, 0.986809401814185530f, - -0.161886393780111830f, - 0.986308097244598670f, -0.164913120489969890f, 0.985797509167567480f, - -0.167938294974731170f, - 0.985277642388941220f, -0.170961888760301220f, 0.984748501801904210f, - -0.173983873387463820f, - 0.984210092386929030f, -0.177004220412148750f, 0.983662419211730250f, - -0.180022901405699510f, - 0.983105487431216290f, -0.183039887955140950f, 0.982539302287441240f, - -0.186055151663446630f, - 0.981963869109555240f, -0.189068664149806190f, 0.981379193313754560f, - -0.192080397049892440f, - 0.980785280403230430f, -0.195090322016128250f, 0.980182135968117430f, - -0.198098410717953560f, - 0.979569765685440520f, -0.201104634842091900f, 0.978948175319062200f, - -0.204108966092816870f, - 0.978317370719627650f, -0.207111376192218560f, 0.977677357824509930f, - -0.210111836880469610f, - 0.977028142657754390f, -0.213110319916091360f, 0.976369731330021140f, - -0.216106797076219520f, - 0.975702130038528570f, -0.219101240156869800f, 0.975025345066994120f, - -0.222093620973203510f, - 0.974339382785575860f, -0.225083911359792830f, 0.973644249650811980f, - -0.228072083170885730f, - 0.972939952205560180f, -0.231058108280671110f, 0.972226497078936270f, - -0.234041958583543430f, - 0.971503890986251780f, -0.237023605994367200f, 0.970772140728950350f, - -0.240003022448741500f, - 0.970031253194543970f, -0.242980179903263870f, 0.969281235356548530f, - -0.245955050335794590f, - 0.968522094274417380f, -0.248927605745720150f, 0.967753837093475510f, - -0.251897818154216970f, - 0.966976471044852070f, -0.254865659604514570f, 0.966190003445412500f, - -0.257831102162158990f, - 0.965394441697689400f, -0.260794117915275510f, 0.964589793289812760f, - -0.263754678974831350f, - 0.963776065795439840f, -0.266712757474898370f, 0.962953266873683880f, - -0.269668325572915090f, - 0.962121404269041580f, -0.272621355449948980f, 0.961280485811320640f, - -0.275571819310958140f, - 0.960430519415565790f, -0.278519689385053060f, 0.959571513081984520f, - -0.281464937925757940f, - 0.958703474895871600f, -0.284407537211271880f, 0.957826413027532910f, - -0.287347459544729510f, - 0.956940335732208820f, -0.290284677254462330f, 0.956045251349996410f, - -0.293219162694258630f, - 0.955141168305770780f, -0.296150888243623790f, 0.954228095109105670f, - -0.299079826308040480f, - 0.953306040354193860f, -0.302005949319228080f, 0.952375012719765880f, - -0.304929229735402370f, - 0.951435020969008340f, -0.307849640041534870f, 0.950486073949481700f, - -0.310767152749611470f, - 0.949528180593036670f, -0.313681740398891520f, 0.948561349915730270f, - -0.316593375556165850f, - 0.947585591017741090f, -0.319502030816015690f, 0.946600913083283530f, - -0.322407678801069850f, - 0.945607325380521280f, -0.325310292162262930f, 0.944604837261480260f, - -0.328209843579092500f, - 0.943593458161960390f, -0.331106305759876430f, 0.942573197601446870f, - -0.333999651442009380f, - 0.941544065183020810f, -0.336889853392220050f, 0.940506070593268300f, - -0.339776884406826850f, - 0.939459223602189920f, -0.342660717311994380f, 0.938403534063108060f, - -0.345541324963989090f, - 0.937339011912574960f, -0.348418680249434560f, 0.936265667170278260f, - -0.351292756085567090f, - 0.935183509938947610f, -0.354163525420490340f, 0.934092550404258980f, - -0.357030961233429980f, - 0.932992798834738960f, -0.359895036534988110f, 0.931884265581668150f, - -0.362755724367397230f, - 0.930766961078983710f, -0.365612997804773850f, 0.929640895843181330f, - -0.368466829953372320f, - 0.928506080473215590f, -0.371317193951837540f, 0.927362525650401110f, - -0.374164062971457930f, - 0.926210242138311380f, -0.377007410216418260f, 0.925049240782677580f, - -0.379847208924051160f, - 0.923879532511286740f, -0.382683432365089780f, 0.922701128333878630f, - -0.385516053843918850f, - 0.921514039342042010f, -0.388345046698826250f, 0.920318276709110590f, - -0.391170384302253870f, - 0.919113851690057770f, -0.393992040061048100f, 0.917900775621390500f, - -0.396809987416710310f, - 0.916679059921042700f, -0.399624199845646790f, 0.915448716088267830f, - -0.402434650859418430f, - 0.914209755703530690f, -0.405241314004989860f, 0.912962190428398210f, - -0.408044162864978690f, - 0.911706032005429880f, -0.410843171057903910f, 0.910441292258067250f, - -0.413638312238434500f, - 0.909167983090522380f, -0.416429560097637150f, 0.907886116487666260f, - -0.419216888363223910f, - 0.906595704514915330f, -0.422000270799799680f, 0.905296759318118820f, - -0.424779681209108810f, - 0.903989293123443340f, -0.427555093430282080f, 0.902673318237258830f, - -0.430326481340082610f, - 0.901348847046022030f, -0.433093818853151960f, 0.900015892016160280f, - -0.435857079922255470f, - 0.898674465693953820f, -0.438616238538527660f, 0.897324580705418320f, - -0.441371268731716670f, - 0.895966249756185220f, -0.444122144570429200f, 0.894599485631382700f, - -0.446868840162374160f, - 0.893224301195515320f, -0.449611329654606540f, 0.891840709392342720f, - -0.452349587233770890f, - 0.890448723244757880f, -0.455083587126343840f, 0.889048355854664570f, - -0.457813303598877170f, - 0.887639620402853930f, -0.460538710958240010f, 0.886222530148880640f, - -0.463259783551860150f, - 0.884797098430937790f, -0.465976495767966180f, 0.883363338665731580f, - -0.468688822035827900f, - 0.881921264348355050f, -0.471396736825997640f, 0.880470889052160750f, - -0.474100214650549970f, - 0.879012226428633530f, -0.476799230063322090f, 0.877545290207261350f, - -0.479493757660153010f, - 0.876070094195406600f, -0.482183772079122720f, 0.874586652278176110f, - -0.484869248000791060f, - 0.873094978418290090f, -0.487550160148436000f, 0.871595086655950980f, - -0.490226483288291160f, - 0.870086991108711460f, -0.492898192229784040f, 0.868570705971340900f, - -0.495565261825772540f, - 0.867046245515692650f, -0.498227666972781870f, 0.865513624090569090f, - -0.500885382611240710f, - 0.863972856121586810f, -0.503538383725717580f, 0.862423956111040610f, - -0.506186645345155230f, - 0.860866938637767310f, -0.508830142543106990f, 0.859301818357008470f, - -0.511468850437970300f, - 0.857728610000272120f, -0.514102744193221660f, 0.856147328375194470f, - -0.516731799017649870f, - 0.854557988365400530f, -0.519355990165589640f, 0.852960604930363630f, - -0.521975292937154390f, - 0.851355193105265200f, -0.524589682678468950f, 0.849741768000852550f, - -0.527199134781901280f, - 0.848120344803297230f, -0.529803624686294610f, 0.846490938774052130f, - -0.532403127877197900f, - 0.844853565249707120f, -0.534997619887097150f, 0.843208239641845440f, - -0.537587076295645390f, - 0.841554977436898440f, -0.540171472729892850f, 0.839893794195999520f, - -0.542750784864515890f, - 0.838224705554838080f, -0.545324988422046460f, 0.836547727223512010f, - -0.547894059173100190f, - 0.834862874986380010f, -0.550457972936604810f, 0.833170164701913190f, - -0.553016705580027470f, - 0.831469612302545240f, -0.555570233019602180f, 0.829761233794523050f, - -0.558118531220556100f, - 0.828045045257755800f, -0.560661576197336030f, 0.826321062845663530f, - -0.563199344013834090f, - 0.824589302785025290f, -0.565731810783613120f, 0.822849781375826430f, - -0.568258952670131490f, - 0.821102514991104650f, -0.570780745886967260f, 0.819347520076796900f, - -0.573297166698042200f, - 0.817584813151583710f, -0.575808191417845340f, 0.815814410806733780f, - -0.578313796411655590f, - 0.814036329705948410f, -0.580813958095764530f, 0.812250586585203880f, - -0.583308652937698290f, - 0.810457198252594770f, -0.585797857456438860f, 0.808656181588174980f, - -0.588281548222645220f, - 0.806847553543799330f, -0.590759701858874160f, 0.805031331142963660f, - -0.593232295039799800f, - 0.803207531480644940f, -0.595699304492433360f, 0.801376171723140240f, - -0.598160706996342270f, - 0.799537269107905010f, -0.600616479383868970f, 0.797690840943391160f, - -0.603066598540348160f, - 0.795836904608883570f, -0.605511041404325550f, 0.793975477554337170f, - -0.607949784967773630f, - 0.792106577300212390f, -0.610382806276309480f, 0.790230221437310030f, - -0.612810082429409710f, - 0.788346427626606340f, -0.615231590580626820f, 0.786455213599085770f, - -0.617647307937803870f, - 0.784556597155575240f, -0.620057211763289100f, 0.782650596166575730f, - -0.622461279374149970f, - 0.780737228572094490f, -0.624859488142386340f, 0.778816512381475980f, - -0.627251815495144080f, - 0.776888465673232440f, -0.629638238914926980f, 0.774953106594873930f, - -0.632018735939809060f, - 0.773010453362736990f, -0.634393284163645490f, 0.771060524261813820f, - -0.636761861236284200f, - 0.769103337645579700f, -0.639124444863775730f, 0.767138911935820400f, - -0.641481012808583160f, - 0.765167265622458960f, -0.643831542889791390f, 0.763188417263381270f, - -0.646176012983316280f, - 0.761202385484261780f, -0.648514401022112440f, 0.759209188978388070f, - -0.650846684996380880f, - 0.757208846506484570f, -0.653172842953776760f, 0.755201376896536550f, - -0.655492852999615350f, - 0.753186799043612520f, -0.657806693297078640f, 0.751165131909686480f, - -0.660114342067420480f, - 0.749136394523459370f, -0.662415777590171780f, 0.747100605980180130f, - -0.664710978203344790f, - 0.745057785441466060f, -0.666999922303637470f, 0.743007952135121720f, - -0.669282588346636010f, - 0.740951125354959110f, -0.671558954847018330f, 0.738887324460615110f, - -0.673829000378756040f, - 0.736816568877369900f, -0.676092703575315920f, 0.734738878095963500f, - -0.678350043129861470f, - 0.732654271672412820f, -0.680600997795453020f, 0.730562769227827590f, - -0.682845546385248080f, - 0.728464390448225200f, -0.685083667772700360f, 0.726359155084346010f, - -0.687315340891759050f, - 0.724247082951467000f, -0.689540544737066830f, 0.722128193929215350f, - -0.691759258364157750f, - 0.720002507961381650f, -0.693971460889654000f, 0.717870045055731710f, - -0.696177131491462990f, - 0.715730825283818590f, -0.698376249408972920f, 0.713584868780793640f, - -0.700568793943248340f, - 0.711432195745216430f, -0.702754744457225300f, 0.709272826438865690f, - -0.704934080375904880f, - 0.707106781186547570f, -0.707106781186547460f, 0.704934080375904990f, - -0.709272826438865580f, - 0.702754744457225300f, -0.711432195745216430f, 0.700568793943248450f, - -0.713584868780793520f, - 0.698376249408972920f, -0.715730825283818590f, 0.696177131491462990f, - -0.717870045055731710f, - 0.693971460889654000f, -0.720002507961381650f, 0.691759258364157750f, - -0.722128193929215350f, - 0.689540544737066940f, -0.724247082951466890f, 0.687315340891759160f, - -0.726359155084346010f, - 0.685083667772700360f, -0.728464390448225200f, 0.682845546385248080f, - -0.730562769227827590f, - 0.680600997795453130f, -0.732654271672412820f, 0.678350043129861580f, - -0.734738878095963390f, - 0.676092703575316030f, -0.736816568877369790f, 0.673829000378756150f, - -0.738887324460615110f, - 0.671558954847018330f, -0.740951125354959110f, 0.669282588346636010f, - -0.743007952135121720f, - 0.666999922303637470f, -0.745057785441465950f, 0.664710978203344900f, - -0.747100605980180130f, - 0.662415777590171780f, -0.749136394523459260f, 0.660114342067420480f, - -0.751165131909686370f, - 0.657806693297078640f, -0.753186799043612410f, 0.655492852999615460f, - -0.755201376896536550f, - 0.653172842953776760f, -0.757208846506484460f, 0.650846684996380990f, - -0.759209188978387960f, - 0.648514401022112550f, -0.761202385484261780f, 0.646176012983316390f, - -0.763188417263381270f, - 0.643831542889791500f, -0.765167265622458960f, 0.641481012808583160f, - -0.767138911935820400f, - 0.639124444863775730f, -0.769103337645579590f, 0.636761861236284200f, - -0.771060524261813710f, - 0.634393284163645490f, -0.773010453362736990f, 0.632018735939809060f, - -0.774953106594873820f, - 0.629638238914927100f, -0.776888465673232440f, 0.627251815495144190f, - -0.778816512381475870f, - 0.624859488142386450f, -0.780737228572094380f, 0.622461279374150080f, - -0.782650596166575730f, - 0.620057211763289210f, -0.784556597155575240f, 0.617647307937803980f, - -0.786455213599085770f, - 0.615231590580626820f, -0.788346427626606230f, 0.612810082429409710f, - -0.790230221437310030f, - 0.610382806276309480f, -0.792106577300212390f, 0.607949784967773740f, - -0.793975477554337170f, - 0.605511041404325550f, -0.795836904608883460f, 0.603066598540348280f, - -0.797690840943391040f, - 0.600616479383868970f, -0.799537269107905010f, 0.598160706996342380f, - -0.801376171723140130f, - 0.595699304492433470f, -0.803207531480644830f, 0.593232295039799800f, - -0.805031331142963660f, - 0.590759701858874280f, -0.806847553543799220f, 0.588281548222645330f, - -0.808656181588174980f, - 0.585797857456438860f, -0.810457198252594770f, 0.583308652937698290f, - -0.812250586585203880f, - 0.580813958095764530f, -0.814036329705948300f, 0.578313796411655590f, - -0.815814410806733780f, - 0.575808191417845340f, -0.817584813151583710f, 0.573297166698042320f, - -0.819347520076796900f, - 0.570780745886967370f, -0.821102514991104650f, 0.568258952670131490f, - -0.822849781375826320f, - 0.565731810783613230f, -0.824589302785025290f, 0.563199344013834090f, - -0.826321062845663420f, - 0.560661576197336030f, -0.828045045257755800f, 0.558118531220556100f, - -0.829761233794523050f, - 0.555570233019602290f, -0.831469612302545240f, 0.553016705580027580f, - -0.833170164701913190f, - 0.550457972936604810f, -0.834862874986380010f, 0.547894059173100190f, - -0.836547727223511890f, - 0.545324988422046460f, -0.838224705554837970f, 0.542750784864516000f, - -0.839893794195999410f, - 0.540171472729892970f, -0.841554977436898330f, 0.537587076295645510f, - -0.843208239641845440f, - 0.534997619887097260f, -0.844853565249707010f, 0.532403127877198010f, - -0.846490938774052020f, - 0.529803624686294830f, -0.848120344803297120f, 0.527199134781901390f, - -0.849741768000852440f, - 0.524589682678468840f, -0.851355193105265200f, 0.521975292937154390f, - -0.852960604930363630f, - 0.519355990165589530f, -0.854557988365400530f, 0.516731799017649980f, - -0.856147328375194470f, - 0.514102744193221660f, -0.857728610000272120f, 0.511468850437970520f, - -0.859301818357008360f, - 0.508830142543106990f, -0.860866938637767310f, 0.506186645345155450f, - -0.862423956111040500f, - 0.503538383725717580f, -0.863972856121586700f, 0.500885382611240940f, - -0.865513624090568980f, - 0.498227666972781870f, -0.867046245515692650f, 0.495565261825772490f, - -0.868570705971340900f, - 0.492898192229784090f, -0.870086991108711350f, 0.490226483288291100f, - -0.871595086655951090f, - 0.487550160148436050f, -0.873094978418290090f, 0.484869248000791120f, - -0.874586652278176110f, - 0.482183772079122830f, -0.876070094195406600f, 0.479493757660153010f, - -0.877545290207261240f, - 0.476799230063322250f, -0.879012226428633410f, 0.474100214650550020f, - -0.880470889052160750f, - 0.471396736825997810f, -0.881921264348354940f, 0.468688822035827960f, - -0.883363338665731580f, - 0.465976495767966130f, -0.884797098430937790f, 0.463259783551860260f, - -0.886222530148880640f, - 0.460538710958240010f, -0.887639620402853930f, 0.457813303598877290f, - -0.889048355854664570f, - 0.455083587126343840f, -0.890448723244757880f, 0.452349587233771000f, - -0.891840709392342720f, - 0.449611329654606600f, -0.893224301195515320f, 0.446868840162374330f, - -0.894599485631382580f, - 0.444122144570429260f, -0.895966249756185110f, 0.441371268731716620f, - -0.897324580705418320f, - 0.438616238538527710f, -0.898674465693953820f, 0.435857079922255470f, - -0.900015892016160280f, - 0.433093818853152010f, -0.901348847046022030f, 0.430326481340082610f, - -0.902673318237258830f, - 0.427555093430282200f, -0.903989293123443340f, 0.424779681209108810f, - -0.905296759318118820f, - 0.422000270799799790f, -0.906595704514915330f, 0.419216888363223960f, - -0.907886116487666150f, - 0.416429560097637320f, -0.909167983090522270f, 0.413638312238434560f, - -0.910441292258067140f, - 0.410843171057903910f, -0.911706032005429880f, 0.408044162864978740f, - -0.912962190428398100f, - 0.405241314004989860f, -0.914209755703530690f, 0.402434650859418540f, - -0.915448716088267830f, - 0.399624199845646790f, -0.916679059921042700f, 0.396809987416710420f, - -0.917900775621390390f, - 0.393992040061048100f, -0.919113851690057770f, 0.391170384302253980f, - -0.920318276709110480f, - 0.388345046698826300f, -0.921514039342041900f, 0.385516053843919020f, - -0.922701128333878520f, - 0.382683432365089840f, -0.923879532511286740f, 0.379847208924051110f, - -0.925049240782677580f, - 0.377007410216418310f, -0.926210242138311270f, 0.374164062971457990f, - -0.927362525650401110f, - 0.371317193951837600f, -0.928506080473215480f, 0.368466829953372320f, - -0.929640895843181330f, - 0.365612997804773960f, -0.930766961078983710f, 0.362755724367397230f, - -0.931884265581668150f, - 0.359895036534988280f, -0.932992798834738850f, 0.357030961233430030f, - -0.934092550404258870f, - 0.354163525420490510f, -0.935183509938947500f, 0.351292756085567150f, - -0.936265667170278260f, - 0.348418680249434510f, -0.937339011912574960f, 0.345541324963989150f, - -0.938403534063108060f, - 0.342660717311994380f, -0.939459223602189920f, 0.339776884406826960f, - -0.940506070593268300f, - 0.336889853392220050f, -0.941544065183020810f, 0.333999651442009490f, - -0.942573197601446870f, - 0.331106305759876430f, -0.943593458161960390f, 0.328209843579092660f, - -0.944604837261480260f, - 0.325310292162262980f, -0.945607325380521280f, 0.322407678801070020f, - -0.946600913083283530f, - 0.319502030816015750f, -0.947585591017741090f, 0.316593375556165850f, - -0.948561349915730270f, - 0.313681740398891570f, -0.949528180593036670f, 0.310767152749611470f, - -0.950486073949481700f, - 0.307849640041534980f, -0.951435020969008340f, 0.304929229735402430f, - -0.952375012719765880f, - 0.302005949319228200f, -0.953306040354193750f, 0.299079826308040480f, - -0.954228095109105670f, - 0.296150888243623960f, -0.955141168305770670f, 0.293219162694258680f, - -0.956045251349996410f, - 0.290284677254462330f, -0.956940335732208940f, 0.287347459544729570f, - -0.957826413027532910f, - 0.284407537211271820f, -0.958703474895871600f, 0.281464937925758050f, - -0.959571513081984520f, - 0.278519689385053060f, -0.960430519415565790f, 0.275571819310958250f, - -0.961280485811320640f, - 0.272621355449948980f, -0.962121404269041580f, 0.269668325572915200f, - -0.962953266873683880f, - 0.266712757474898420f, -0.963776065795439840f, 0.263754678974831510f, - -0.964589793289812650f, - 0.260794117915275570f, -0.965394441697689400f, 0.257831102162158930f, - -0.966190003445412620f, - 0.254865659604514630f, -0.966976471044852070f, 0.251897818154216910f, - -0.967753837093475510f, - 0.248927605745720260f, -0.968522094274417270f, 0.245955050335794590f, - -0.969281235356548530f, - 0.242980179903263980f, -0.970031253194543970f, 0.240003022448741500f, - -0.970772140728950350f, - 0.237023605994367340f, -0.971503890986251780f, 0.234041958583543460f, - -0.972226497078936270f, - 0.231058108280671280f, -0.972939952205560070f, 0.228072083170885790f, - -0.973644249650811870f, - 0.225083911359792780f, -0.974339382785575860f, 0.222093620973203590f, - -0.975025345066994120f, - 0.219101240156869770f, -0.975702130038528570f, 0.216106797076219600f, - -0.976369731330021140f, - 0.213110319916091360f, -0.977028142657754390f, 0.210111836880469720f, - -0.977677357824509930f, - 0.207111376192218560f, -0.978317370719627650f, 0.204108966092817010f, - -0.978948175319062200f, - 0.201104634842091960f, -0.979569765685440520f, 0.198098410717953730f, - -0.980182135968117320f, - 0.195090322016128330f, -0.980785280403230430f, 0.192080397049892380f, - -0.981379193313754560f, - 0.189068664149806280f, -0.981963869109555240f, 0.186055151663446630f, - -0.982539302287441240f, - 0.183039887955141060f, -0.983105487431216290f, 0.180022901405699510f, - -0.983662419211730250f, - 0.177004220412148860f, -0.984210092386929030f, 0.173983873387463850f, - -0.984748501801904210f, - 0.170961888760301360f, -0.985277642388941220f, 0.167938294974731230f, - -0.985797509167567370f, - 0.164913120489970090f, -0.986308097244598670f, 0.161886393780111910f, - -0.986809401814185420f, - 0.158858143333861390f, -0.987301418157858430f, 0.155828397654265320f, - -0.987784141644572180f, - 0.152797185258443410f, -0.988257567730749460f, 0.149764534677321620f, - -0.988721691960323780f, - 0.146730474455361750f, -0.989176509964781010f, 0.143695033150294580f, - -0.989622017463200780f, - 0.140658239332849240f, -0.990058210262297120f, 0.137620121586486180f, - -0.990485084256456980f, - 0.134580708507126220f, -0.990902635427780010f, 0.131540028702883280f, - -0.991310859846115440f, - 0.128498110793793220f, -0.991709753669099530f, 0.125454983411546210f, - -0.992099313142191800f, - 0.122410675199216280f, -0.992479534598709970f, 0.119365214810991350f, - -0.992850414459865100f, - 0.116318630911904880f, -0.993211949234794500f, 0.113270952177564360f, - -0.993564135520595300f, - 0.110222207293883180f, -0.993906970002356060f, 0.107172424956808870f, - -0.994240449453187900f, - 0.104121633872054730f, -0.994564570734255420f, 0.101069862754827880f, - -0.994879330794805620f, - 0.098017140329560770f, -0.995184726672196820f, 0.094963495329639061f, - -0.995480755491926940f, - 0.091908956497132696f, -0.995767414467659820f, 0.088853552582524684f, - -0.996044700901251970f, - 0.085797312344439880f, -0.996312612182778000f, 0.082740264549375803f, - -0.996571145790554840f, - 0.079682437971430126f, -0.996820299291165670f, 0.076623861392031617f, - -0.997060070339482960f, - 0.073564563599667454f, -0.997290456678690210f, 0.070504573389614009f, - -0.997511456140303450f, - 0.067443919563664106f, -0.997723066644191640f, 0.064382630929857410f, - -0.997925286198596000f, - 0.061320736302208648f, -0.998118112900149180f, 0.058258264500435732f, - -0.998301544933892890f, - 0.055195244349690031f, -0.998475580573294770f, 0.052131704680283317f, - -0.998640218180265270f, - 0.049067674327418126f, -0.998795456205172410f, 0.046003182130914644f, - -0.998941293186856870f, - 0.042938256934940959f, -0.999077727752645360f, 0.039872927587739845f, - -0.999204758618363890f, - 0.036807222941358991f, -0.999322384588349540f, 0.033741171851377642f, - -0.999430604555461730f, - 0.030674803176636581f, -0.999529417501093140f, 0.027608145778965820f, - -0.999618822495178640f, - 0.024541228522912264f, -0.999698818696204250f, 0.021474080275469605f, - -0.999769405351215280f, - 0.018406729905804820f, -0.999830581795823400f, 0.015339206284988220f, - -0.999882347454212560f, - 0.012271538285719944f, -0.999924701839144500f, 0.009203754782059960f, - -0.999957644551963900f, - 0.006135884649154515f, -0.999981175282601110f, 0.003067956762966138f, - -0.999995293809576190f -}; - -static const float32_t Weights_2048[4096] = { - 1.000000000000000000f, 0.000000000000000000f, 0.999999705862882230f, - -0.000766990318742704f, - 0.999998823451701880f, -0.001533980186284766f, 0.999997352766978210f, - -0.002300969151425805f, - 0.999995293809576190f, -0.003067956762965976f, 0.999992646580707190f, - -0.003834942569706228f, - 0.999989411081928400f, -0.004601926120448571f, 0.999985587315143200f, - -0.005368906963996343f, - 0.999981175282601110f, -0.006135884649154475f, 0.999976174986897610f, - -0.006902858724729756f, - 0.999970586430974140f, -0.007669828739531097f, 0.999964409618118280f, - -0.008436794242369799f, - 0.999957644551963900f, -0.009203754782059819f, 0.999950291236490480f, - -0.009970709907418031f, - 0.999942349676023910f, -0.010737659167264491f, 0.999933819875236000f, - -0.011504602110422714f, - 0.999924701839144500f, -0.012271538285719925f, 0.999914995573113470f, - -0.013038467241987334f, - 0.999904701082852900f, -0.013805388528060391f, 0.999893818374418490f, - -0.014572301692779064f, - 0.999882347454212560f, -0.015339206284988100f, 0.999870288328982950f, - -0.016106101853537287f, - 0.999857641005823860f, -0.016872987947281710f, 0.999844405492175240f, - -0.017639864115082053f, - 0.999830581795823400f, -0.018406729905804820f, 0.999816169924900410f, - -0.019173584868322623f, - 0.999801169887884260f, -0.019940428551514441f, 0.999785581693599210f, - -0.020707260504265895f, - 0.999769405351215280f, -0.021474080275469508f, 0.999752640870248840f, - -0.022240887414024961f, - 0.999735288260561680f, -0.023007681468839369f, 0.999717347532362190f, - -0.023774461988827555f, - 0.999698818696204250f, -0.024541228522912288f, 0.999679701762987930f, - -0.025307980620024571f, - 0.999659996743959220f, -0.026074717829103901f, 0.999639703650710200f, - -0.026841439699098531f, - 0.999618822495178640f, -0.027608145778965740f, 0.999597353289648380f, - -0.028374835617672099f, - 0.999575296046749220f, -0.029141508764193722f, 0.999552650779456990f, - -0.029908164767516555f, - 0.999529417501093140f, -0.030674803176636626f, 0.999505596225325310f, - -0.031441423540560301f, - 0.999481186966166950f, -0.032208025408304586f, 0.999456189737977340f, - -0.032974608328897335f, - 0.999430604555461730f, -0.033741171851377580f, 0.999404431433671300f, - -0.034507715524795750f, - 0.999377670388002850f, -0.035274238898213947f, 0.999350321434199440f, - -0.036040741520706229f, - 0.999322384588349540f, -0.036807222941358832f, 0.999293859866887790f, - -0.037573682709270494f, - 0.999264747286594420f, -0.038340120373552694f, 0.999235046864595850f, - -0.039106535483329888f, - 0.999204758618363890f, -0.039872927587739811f, 0.999173882565716380f, - -0.040639296235933736f, - 0.999142418724816910f, -0.041405640977076739f, 0.999110367114174890f, - -0.042171961360347947f, - 0.999077727752645360f, -0.042938256934940820f, 0.999044500659429290f, - -0.043704527250063421f, - 0.999010685854073380f, -0.044470771854938668f, 0.998976283356469820f, - -0.045236990298804590f, - 0.998941293186856870f, -0.046003182130914623f, 0.998905715365818290f, - -0.046769346900537863f, - 0.998869549914283560f, -0.047535484156959303f, 0.998832796853527990f, - -0.048301593449480144f, - 0.998795456205172410f, -0.049067674327418015f, 0.998757527991183340f, - -0.049833726340107277f, - 0.998719012233872940f, -0.050599749036899282f, 0.998679908955899090f, - -0.051365741967162593f, - 0.998640218180265270f, -0.052131704680283324f, 0.998599939930320370f, - -0.052897636725665324f, - 0.998559074229759310f, -0.053663537652730520f, 0.998517621102622210f, - -0.054429407010919133f, - 0.998475580573294770f, -0.055195244349689934f, 0.998432952666508440f, - -0.055961049218520569f, - 0.998389737407340160f, -0.056726821166907748f, 0.998345934821212370f, - -0.057492559744367566f, - 0.998301544933892890f, -0.058258264500435752f, 0.998256567771495180f, - -0.059023934984667931f, - 0.998211003360478190f, -0.059789570746639868f, 0.998164851727646240f, - -0.060555171335947788f, - 0.998118112900149180f, -0.061320736302208578f, 0.998070786905482340f, - -0.062086265195060088f, - 0.998022873771486240f, -0.062851757564161406f, 0.997974373526346990f, - -0.063617212959193106f, - 0.997925286198596000f, -0.064382630929857465f, 0.997875611817110150f, - -0.065148011025878833f, - 0.997825350411111640f, -0.065913352797003805f, 0.997774502010167820f, - -0.066678655793001557f, - 0.997723066644191640f, -0.067443919563664051f, 0.997671044343441000f, - -0.068209143658806329f, - 0.997618435138519550f, -0.068974327628266746f, 0.997565239060375750f, - -0.069739471021907307f, - 0.997511456140303450f, -0.070504573389613856f, 0.997457086409941910f, - -0.071269634281296401f, - 0.997402129901275300f, -0.072034653246889332f, 0.997346586646633230f, - -0.072799629836351673f, - 0.997290456678690210f, -0.073564563599667426f, 0.997233740030466280f, - -0.074329454086845756f, - 0.997176436735326190f, -0.075094300847921305f, 0.997118546826979980f, - -0.075859103432954447f, - 0.997060070339482960f, -0.076623861392031492f, 0.997001007307235290f, - -0.077388574275265049f, - 0.996941357764982160f, -0.078153241632794232f, 0.996881121747813850f, - -0.078917863014784942f, - 0.996820299291165670f, -0.079682437971430126f, 0.996758890430818000f, - -0.080446966052950014f, - 0.996696895202896060f, -0.081211446809592441f, 0.996634313643869900f, - -0.081975879791633066f, - 0.996571145790554840f, -0.082740264549375692f, 0.996507391680110820f, - -0.083504600633152432f, - 0.996443051350042630f, -0.084268887593324071f, 0.996378124838200210f, - -0.085033124980280275f, - 0.996312612182778000f, -0.085797312344439894f, 0.996246513422315520f, - -0.086561449236251170f, - 0.996179828595696980f, -0.087325535206192059f, 0.996112557742151130f, - -0.088089569804770507f, - 0.996044700901251970f, -0.088853552582524600f, 0.995976258112917790f, - -0.089617483090022959f, - 0.995907229417411720f, -0.090381360877864983f, 0.995837614855341610f, - -0.091145185496681005f, - 0.995767414467659820f, -0.091908956497132724f, 0.995696628295663520f, - -0.092672673429913310f, - 0.995625256380994310f, -0.093436335845747787f, 0.995553298765638470f, - -0.094199943295393204f, - 0.995480755491926940f, -0.094963495329638992f, 0.995407626602534900f, - -0.095726991499307162f, - 0.995333912140482280f, -0.096490431355252593f, 0.995259612149133390f, - -0.097253814448363271f, - 0.995184726672196930f, -0.098017140329560604f, 0.995109255753726110f, - -0.098780408549799623f, - 0.995033199438118630f, -0.099543618660069319f, 0.994956557770116380f, - -0.100306770211392860f, - 0.994879330794805620f, -0.101069862754827820f, 0.994801518557617110f, - -0.101832895841466530f, - 0.994723121104325700f, -0.102595869022436280f, 0.994644138481050710f, - -0.103358781848899610f, - 0.994564570734255420f, -0.104121633872054590f, 0.994484417910747600f, - -0.104884424643134970f, - 0.994403680057679100f, -0.105647153713410620f, 0.994322357222545810f, - -0.106409820634187680f, - 0.994240449453187900f, -0.107172424956808840f, 0.994157956797789730f, - -0.107934966232653650f, - 0.994074879304879370f, -0.108697444013138720f, 0.993991217023329380f, - -0.109459857849717980f, - 0.993906970002356060f, -0.110222207293883060f, 0.993822138291519660f, - -0.110984491897163390f, - 0.993736721940724600f, -0.111746711211126590f, 0.993650721000219120f, - -0.112508864787378690f, - 0.993564135520595300f, -0.113270952177564350f, 0.993476965552789190f, - -0.114032972933367200f, - 0.993389211148080650f, -0.114794926606510080f, 0.993300872358093280f, - -0.115556812748755260f, - 0.993211949234794500f, -0.116318630911904750f, 0.993122441830495580f, - -0.117080380647800590f, - 0.993032350197851410f, -0.117842061508324980f, 0.992941674389860470f, - -0.118603673045400720f, - 0.992850414459865100f, -0.119365214810991350f, 0.992758570461551140f, - -0.120126686357101500f, - 0.992666142448948020f, -0.120888087235777080f, 0.992573130476428810f, - -0.121649416999105530f, - 0.992479534598709970f, -0.122410675199216200f, 0.992385354870851670f, - -0.123171861388280480f, - 0.992290591348257370f, -0.123932975118512160f, 0.992195244086673920f, - -0.124694015942167640f, - 0.992099313142191800f, -0.125454983411546230f, 0.992002798571244520f, - -0.126215877078990350f, - 0.991905700430609330f, -0.126976696496885870f, 0.991808018777406430f, - -0.127737441217662310f, - 0.991709753669099530f, -0.128498110793793170f, 0.991610905163495370f, - -0.129258704777796140f, - 0.991511473318743900f, -0.130019222722233350f, 0.991411458193338540f, - -0.130779664179711710f, - 0.991310859846115440f, -0.131540028702883120f, 0.991209678336254060f, - -0.132300315844444650f, - 0.991107913723276890f, -0.133060525157139060f, 0.991005566067049370f, - -0.133820656193754720f, - 0.990902635427780010f, -0.134580708507126170f, 0.990799121866020370f, - -0.135340681650134210f, - 0.990695025442664630f, -0.136100575175706200f, 0.990590346218950150f, - -0.136860388636816380f, - 0.990485084256457090f, -0.137620121586486040f, 0.990379239617108160f, - -0.138379773577783890f, - 0.990272812363169110f, -0.139139344163826200f, 0.990165802557248400f, - -0.139898832897777210f, - 0.990058210262297120f, -0.140658239332849210f, 0.989950035541608990f, - -0.141417563022303020f, - 0.989841278458820530f, -0.142176803519448030f, 0.989731939077910570f, - -0.142935960377642670f, - 0.989622017463200890f, -0.143695033150294470f, 0.989511513679355190f, - -0.144454021390860470f, - 0.989400427791380380f, -0.145212924652847460f, 0.989288759864625170f, - -0.145971742489812210f, - 0.989176509964781010f, -0.146730474455361750f, 0.989063678157881540f, - -0.147489120103153570f, - 0.988950264510302990f, -0.148247678986896030f, 0.988836269088763540f, - -0.149006150660348450f, - 0.988721691960323780f, -0.149764534677321510f, 0.988606533192386450f, - -0.150522830591677400f, - 0.988490792852696590f, -0.151281037957330220f, 0.988374471009341280f, - -0.152039156328246050f, - 0.988257567730749460f, -0.152797185258443440f, 0.988140083085692570f, - -0.153555124301993450f, - 0.988022017143283530f, -0.154312973013020100f, 0.987903369972977790f, - -0.155070730945700510f, - 0.987784141644572180f, -0.155828397654265230f, 0.987664332228205710f, - -0.156585972692998430f, - 0.987543941794359230f, -0.157343455616238250f, 0.987422970413855410f, - -0.158100845978376980f, - 0.987301418157858430f, -0.158858143333861450f, 0.987179285097874340f, - -0.159615347237193060f, - 0.987056571305750970f, -0.160372457242928280f, 0.986933276853677710f, - -0.161129472905678810f, - 0.986809401814185530f, -0.161886393780111830f, 0.986684946260146690f, - -0.162643219420950310f, - 0.986559910264775410f, -0.163399949382973230f, 0.986434293901627180f, - -0.164156583221015810f, - 0.986308097244598670f, -0.164913120489969890f, 0.986181320367928270f, - -0.165669560744784120f, - 0.986053963346195440f, -0.166425903540464100f, 0.985926026254321130f, - -0.167182148432072940f, - 0.985797509167567480f, -0.167938294974731170f, 0.985668412161537550f, - -0.168694342723617330f, - 0.985538735312176060f, -0.169450291233967960f, 0.985408478695768420f, - -0.170206140061078070f, - 0.985277642388941220f, -0.170961888760301220f, 0.985146226468662230f, - -0.171717536887049970f, - 0.985014231012239840f, -0.172473083996795950f, 0.984881656097323700f, - -0.173228529645070320f, - 0.984748501801904210f, -0.173983873387463820f, 0.984614768204312600f, - -0.174739114779627200f, - 0.984480455383220930f, -0.175494253377271430f, 0.984345563417641900f, - -0.176249288736167880f, - 0.984210092386929030f, -0.177004220412148750f, 0.984074042370776450f, - -0.177759047961107170f, - 0.983937413449218920f, -0.178513770938997510f, 0.983800205702631600f, - -0.179268388901835750f, - 0.983662419211730250f, -0.180022901405699510f, 0.983524054057571260f, - -0.180777308006728590f, - 0.983385110321551180f, -0.181531608261124970f, 0.983245588085407070f, - -0.182285801725153300f, - 0.983105487431216290f, -0.183039887955140950f, 0.982964808441396440f, - -0.183793866507478450f, - 0.982823551198705240f, -0.184547736938619620f, 0.982681715786240860f, - -0.185301498805081900f, - 0.982539302287441240f, -0.186055151663446630f, 0.982396310786084690f, - -0.186808695070359270f, - 0.982252741366289370f, -0.187562128582529600f, 0.982108594112513610f, - -0.188315451756732120f, - 0.981963869109555240f, -0.189068664149806190f, 0.981818566442552500f, - -0.189821765318656410f, - 0.981672686196983110f, -0.190574754820252740f, 0.981526228458664770f, - -0.191327632211630900f, - 0.981379193313754560f, -0.192080397049892440f, 0.981231580848749730f, - -0.192833048892205230f, - 0.981083391150486710f, -0.193585587295803610f, 0.980934624306141640f, - -0.194338011817988600f, - 0.980785280403230430f, -0.195090322016128250f, 0.980635359529608120f, - -0.195842517447657850f, - 0.980484861773469380f, -0.196594597670080220f, 0.980333787223347960f, - -0.197346562240965920f, - 0.980182135968117430f, -0.198098410717953560f, 0.980029908096990090f, - -0.198850142658750090f, - 0.979877103699517640f, -0.199601757621130970f, 0.979723722865591170f, - -0.200353255162940450f, - 0.979569765685440520f, -0.201104634842091900f, 0.979415232249634780f, - -0.201855896216568050f, - 0.979260122649082020f, -0.202607038844421130f, 0.979104436975029250f, - -0.203358062283773320f, - 0.978948175319062200f, -0.204108966092816870f, 0.978791337773105670f, - -0.204859749829814420f, - 0.978633924429423210f, -0.205610413053099240f, 0.978475935380616830f, - -0.206360955321075510f, - 0.978317370719627650f, -0.207111376192218560f, 0.978158230539735050f, - -0.207861675225075070f, - 0.977998514934557140f, -0.208611851978263490f, 0.977838223998050430f, - -0.209361906010474160f, - 0.977677357824509930f, -0.210111836880469610f, 0.977515916508569280f, - -0.210861644147084860f, - 0.977353900145199960f, -0.211611327369227550f, 0.977191308829712280f, - -0.212360886105878420f, - 0.977028142657754390f, -0.213110319916091360f, 0.976864401725312640f, - -0.213859628358993750f, - 0.976700086128711840f, -0.214608810993786760f, 0.976535195964614470f, - -0.215357867379745550f, - 0.976369731330021140f, -0.216106797076219520f, 0.976203692322270560f, - -0.216855599642632620f, - 0.976037079039039020f, -0.217604274638483640f, 0.975869891578341030f, - -0.218352821623346320f, - 0.975702130038528570f, -0.219101240156869800f, 0.975533794518291360f, - -0.219849529798778700f, - 0.975364885116656980f, -0.220597690108873510f, 0.975195401932990370f, - -0.221345720647030810f, - 0.975025345066994120f, -0.222093620973203510f, 0.974854714618708430f, - -0.222841390647421120f, - 0.974683510688510670f, -0.223589029229789990f, 0.974511733377115720f, - -0.224336536280493600f, - 0.974339382785575860f, -0.225083911359792830f, 0.974166459015280320f, - -0.225831154028026170f, - 0.973992962167955830f, -0.226578263845610000f, 0.973818892345666100f, - -0.227325240373038860f, - 0.973644249650811980f, -0.228072083170885730f, 0.973469034186131070f, - -0.228818791799802220f, - 0.973293246054698250f, -0.229565365820518870f, 0.973116885359925130f, - -0.230311804793845440f, - 0.972939952205560180f, -0.231058108280671110f, 0.972762446695688570f, - -0.231804275841964780f, - 0.972584368934732210f, -0.232550307038775240f, 0.972405719027449770f, - -0.233296201432231590f, - 0.972226497078936270f, -0.234041958583543430f, 0.972046703194623500f, - -0.234787578054000970f, - 0.971866337480279400f, -0.235533059404975490f, 0.971685400042008540f, - -0.236278402197919570f, - 0.971503890986251780f, -0.237023605994367200f, 0.971321810419786160f, - -0.237768670355934190f, - 0.971139158449725090f, -0.238513594844318420f, 0.970955935183517970f, - -0.239258379021299980f, - 0.970772140728950350f, -0.240003022448741500f, 0.970587775194143630f, - -0.240747524688588430f, - 0.970402838687555500f, -0.241491885302869330f, 0.970217331317979160f, - -0.242236103853696010f, - 0.970031253194543970f, -0.242980179903263870f, 0.969844604426714830f, - -0.243724113013852160f, - 0.969657385124292450f, -0.244467902747824150f, 0.969469595397413060f, - -0.245211548667627540f, - 0.969281235356548530f, -0.245955050335794590f, 0.969092305112506210f, - -0.246698407314942410f, - 0.968902804776428870f, -0.247441619167773270f, 0.968712734459794780f, - -0.248184685457074780f, - 0.968522094274417380f, -0.248927605745720150f, 0.968330884332445190f, - -0.249670379596668570f, - 0.968139104746362440f, -0.250413006572965220f, 0.967946755628987800f, - -0.251155486237741920f, - 0.967753837093475510f, -0.251897818154216970f, 0.967560349253314360f, - -0.252640001885695520f, - 0.967366292222328510f, -0.253382036995570160f, 0.967171666114676640f, - -0.254123923047320620f, - 0.966976471044852070f, -0.254865659604514570f, 0.966780707127683270f, - -0.255607246230807380f, - 0.966584374478333120f, -0.256348682489942910f, 0.966387473212298900f, - -0.257089967945753120f, - 0.966190003445412500f, -0.257831102162158990f, 0.965991965293840570f, - -0.258572084703170340f, - 0.965793358874083680f, -0.259312915132886230f, 0.965594184302976830f, - -0.260053593015495190f, - 0.965394441697689400f, -0.260794117915275510f, 0.965194131175724720f, - -0.261534489396595520f, - 0.964993252854920320f, -0.262274707023913590f, 0.964791806853447900f, - -0.263014770361779000f, - 0.964589793289812760f, -0.263754678974831350f, 0.964387212282854290f, - -0.264494432427801630f, - 0.964184063951745830f, -0.265234030285511790f, 0.963980348415994110f, - -0.265973472112875590f, - 0.963776065795439840f, -0.266712757474898370f, 0.963571216210257320f, - -0.267451885936677620f, - 0.963365799780954050f, -0.268190857063403180f, 0.963159816628371360f, - -0.268929670420357260f, - 0.962953266873683880f, -0.269668325572915090f, 0.962746150638399410f, - -0.270406822086544820f, - 0.962538468044359160f, -0.271145159526808010f, 0.962330219213737400f, - -0.271883337459359720f, - 0.962121404269041580f, -0.272621355449948980f, 0.961912023333112210f, - -0.273359213064418680f, - 0.961702076529122540f, -0.274096909868706380f, 0.961491563980579000f, - -0.274834445428843940f, - 0.961280485811320640f, -0.275571819310958140f, 0.961068842145519350f, - -0.276309031081271080f, - 0.960856633107679660f, -0.277046080306099900f, 0.960643858822638590f, - -0.277782966551857690f, - 0.960430519415565790f, -0.278519689385053060f, 0.960216615011963430f, - -0.279256248372291180f, - 0.960002145737665960f, -0.279992643080273220f, 0.959787111718839900f, - -0.280728873075797190f, - 0.959571513081984520f, -0.281464937925757940f, 0.959355349953930790f, - -0.282200837197147560f, - 0.959138622461841890f, -0.282936570457055390f, 0.958921330733213170f, - -0.283672137272668430f, - 0.958703474895871600f, -0.284407537211271880f, 0.958485055077976100f, - -0.285142769840248670f, - 0.958266071408017670f, -0.285877834727080620f, 0.958046524014818600f, - -0.286612731439347790f, - 0.957826413027532910f, -0.287347459544729510f, 0.957605738575646350f, - -0.288082018611004130f, - 0.957384500788975860f, -0.288816408206049480f, 0.957162699797670210f, - -0.289550627897843030f, - 0.956940335732208820f, -0.290284677254462330f, 0.956717408723403050f, - -0.291018555844085090f, - 0.956493918902395100f, -0.291752263234989260f, 0.956269866400658030f, - -0.292485798995553880f, - 0.956045251349996410f, -0.293219162694258630f, 0.955820073882545420f, - -0.293952353899684660f, - 0.955594334130771110f, -0.294685372180514330f, 0.955368032227470350f, - -0.295418217105532010f, - 0.955141168305770780f, -0.296150888243623790f, 0.954913742499130520f, - -0.296883385163778270f, - 0.954685754941338340f, -0.297615707435086200f, 0.954457205766513490f, - -0.298347854626741400f, - 0.954228095109105670f, -0.299079826308040480f, 0.953998423103894490f, - -0.299811622048383350f, - 0.953768189885990330f, -0.300543241417273450f, 0.953537395590833280f, - -0.301274683984317950f, - 0.953306040354193860f, -0.302005949319228080f, 0.953074124312172200f, - -0.302737036991819140f, - 0.952841647601198720f, -0.303467946572011320f, 0.952608610358033350f, - -0.304198677629829110f, - 0.952375012719765880f, -0.304929229735402370f, 0.952140854823815830f, - -0.305659602458966120f, - 0.951906136807932350f, -0.306389795370860920f, 0.951670858810193860f, - -0.307119808041533100f, - 0.951435020969008340f, -0.307849640041534870f, 0.951198623423113230f, - -0.308579290941525090f, - 0.950961666311575080f, -0.309308760312268730f, 0.950724149773789610f, - -0.310038047724637890f, - 0.950486073949481700f, -0.310767152749611470f, 0.950247438978705230f, - -0.311496074958275910f, - 0.950008245001843000f, -0.312224813921824880f, 0.949768492159606680f, - -0.312953369211560200f, - 0.949528180593036670f, -0.313681740398891520f, 0.949287310443502120f, - -0.314409927055336660f, - 0.949045881852700560f, -0.315137928752522440f, 0.948803894962658490f, - -0.315865745062183960f, - 0.948561349915730270f, -0.316593375556165850f, 0.948318246854599090f, - -0.317320819806421740f, - 0.948074585922276230f, -0.318048077385014950f, 0.947830367262101010f, - -0.318775147864118480f, - 0.947585591017741090f, -0.319502030816015690f, 0.947340257333192050f, - -0.320228725813099860f, - 0.947094366352777220f, -0.320955232427875210f, 0.946847918221148000f, - -0.321681550232956580f, - 0.946600913083283530f, -0.322407678801069850f, 0.946353351084490590f, - -0.323133617705052330f, - 0.946105232370403450f, -0.323859366517852850f, 0.945856557086983910f, - -0.324584924812532150f, - 0.945607325380521280f, -0.325310292162262930f, 0.945357537397632290f, - -0.326035468140330240f, - 0.945107193285260610f, -0.326760452320131730f, 0.944856293190677210f, - -0.327485244275178000f, - 0.944604837261480260f, -0.328209843579092500f, 0.944352825645594750f, - -0.328934249805612200f, - 0.944100258491272660f, -0.329658462528587490f, 0.943847135947092690f, - -0.330382481321982780f, - 0.943593458161960390f, -0.331106305759876430f, 0.943339225285107720f, - -0.331829935416461110f, - 0.943084437466093490f, -0.332553369866044220f, 0.942829094854802710f, - -0.333276608683047930f, - 0.942573197601446870f, -0.333999651442009380f, 0.942316745856563780f, - -0.334722497717581220f, - 0.942059739771017310f, -0.335445147084531600f, 0.941802179495997650f, - -0.336167599117744520f, - 0.941544065183020810f, -0.336889853392220050f, 0.941285396983928660f, - -0.337611909483074620f, - 0.941026175050889260f, -0.338333766965541130f, 0.940766399536396070f, - -0.339055425414969640f, - 0.940506070593268300f, -0.339776884406826850f, 0.940245188374650880f, - -0.340498143516697160f, - 0.939983753034014050f, -0.341219202320282360f, 0.939721764725153340f, - -0.341940060393402190f, - 0.939459223602189920f, -0.342660717311994380f, 0.939196129819569900f, - -0.343381172652115040f, - 0.938932483532064600f, -0.344101425989938810f, 0.938668284894770170f, - -0.344821476901759290f, - 0.938403534063108060f, -0.345541324963989090f, 0.938138231192824360f, - -0.346260969753160010f, - 0.937872376439989890f, -0.346980410845923680f, 0.937605969960999990f, - -0.347699647819051380f, - 0.937339011912574960f, -0.348418680249434560f, 0.937071502451759190f, - -0.349137507714084970f, - 0.936803441735921560f, -0.349856129790134920f, 0.936534829922755500f, - -0.350574546054837510f, - 0.936265667170278260f, -0.351292756085567090f, 0.935995953636831410f, - -0.352010759459819080f, - 0.935725689481080370f, -0.352728555755210730f, 0.935454874862014620f, - -0.353446144549480810f, - 0.935183509938947610f, -0.354163525420490340f, 0.934911594871516090f, - -0.354880697946222790f, - 0.934639129819680780f, -0.355597661704783850f, 0.934366114943725790f, - -0.356314416274402410f, - 0.934092550404258980f, -0.357030961233429980f, 0.933818436362210960f, - -0.357747296160341900f, - 0.933543772978836170f, -0.358463420633736540f, 0.933268560415712050f, - -0.359179334232336500f, - 0.932992798834738960f, -0.359895036534988110f, 0.932716488398140250f, - -0.360610527120662270f, - 0.932439629268462360f, -0.361325805568454280f, 0.932162221608574430f, - -0.362040871457584180f, - 0.931884265581668150f, -0.362755724367397230f, 0.931605761351257830f, - -0.363470363877363760f, - 0.931326709081180430f, -0.364184789567079890f, 0.931047108935595280f, - -0.364899001016267320f, - 0.930766961078983710f, -0.365612997804773850f, 0.930486265676149780f, - -0.366326779512573590f, - 0.930205022892219070f, -0.367040345719767180f, 0.929923232892639670f, - -0.367753696006581980f, - 0.929640895843181330f, -0.368466829953372320f, 0.929358011909935500f, - -0.369179747140620020f, - 0.929074581259315860f, -0.369892447148934100f, 0.928790604058057020f, - -0.370604929559051670f, - 0.928506080473215590f, -0.371317193951837540f, 0.928221010672169440f, - -0.372029239908285010f, - 0.927935394822617890f, -0.372741067009515760f, 0.927649233092581180f, - -0.373452674836780300f, - 0.927362525650401110f, -0.374164062971457930f, 0.927075272664740100f, - -0.374875230995057540f, - 0.926787474304581750f, -0.375586178489217220f, 0.926499130739230510f, - -0.376296905035704790f, - 0.926210242138311380f, -0.377007410216418260f, 0.925920808671770070f, - -0.377717693613385640f, - 0.925630830509872720f, -0.378427754808765560f, 0.925340307823206310f, - -0.379137593384847320f, - 0.925049240782677580f, -0.379847208924051160f, 0.924757629559513910f, - -0.380556601008928520f, - 0.924465474325262600f, -0.381265769222162380f, 0.924172775251791200f, - -0.381974713146567220f, - 0.923879532511286740f, -0.382683432365089780f, 0.923585746276256670f, - -0.383391926460808660f, - 0.923291416719527640f, -0.384100195016935040f, 0.922996544014246250f, - -0.384808237616812880f, - 0.922701128333878630f, -0.385516053843918850f, 0.922405169852209880f, - -0.386223643281862980f, - 0.922108668743345180f, -0.386931005514388580f, 0.921811625181708120f, - -0.387638140125372730f, - 0.921514039342042010f, -0.388345046698826250f, 0.921215911399408730f, - -0.389051724818894380f, - 0.920917241529189520f, -0.389758174069856410f, 0.920618029907083970f, - -0.390464394036126590f, - 0.920318276709110590f, -0.391170384302253870f, 0.920017982111606570f, - -0.391876144452922350f, - 0.919717146291227360f, -0.392581674072951470f, 0.919415769424947070f, - -0.393286972747296400f, - 0.919113851690057770f, -0.393992040061048100f, 0.918811393264170050f, - -0.394696875599433560f, - 0.918508394325212250f, -0.395401478947816350f, 0.918204855051430900f, - -0.396105849691696270f, - 0.917900775621390500f, -0.396809987416710310f, 0.917596156213972950f, - -0.397513891708632330f, - 0.917290997008377910f, -0.398217562153373560f, 0.916985298184123000f, - -0.398920998336982910f, - 0.916679059921042700f, -0.399624199845646790f, 0.916372282399289140f, - -0.400327166265690090f, - 0.916064965799331720f, -0.401029897183575620f, 0.915757110301956720f, - -0.401732392185905010f, - 0.915448716088267830f, -0.402434650859418430f, 0.915139783339685260f, - -0.403136672790995300f, - 0.914830312237946200f, -0.403838457567654070f, 0.914520302965104450f, - -0.404540004776553000f, - 0.914209755703530690f, -0.405241314004989860f, 0.913898670635911680f, - -0.405942384840402510f, - 0.913587047945250810f, -0.406643216870369030f, 0.913274887814867760f, - -0.407343809682607970f, - 0.912962190428398210f, -0.408044162864978690f, 0.912648955969793900f, - -0.408744276005481360f, - 0.912335184623322750f, -0.409444148692257590f, 0.912020876573568340f, - -0.410143780513590240f, - 0.911706032005429880f, -0.410843171057903910f, 0.911390651104122430f, - -0.411542319913765220f, - 0.911074734055176360f, -0.412241226669882890f, 0.910758281044437570f, - -0.412939890915108080f, - 0.910441292258067250f, -0.413638312238434500f, 0.910123767882541680f, - -0.414336490228999100f, - 0.909805708104652220f, -0.415034424476081630f, 0.909487113111505430f, - -0.415732114569105360f, - 0.909167983090522380f, -0.416429560097637150f, 0.908848318229439120f, - -0.417126760651387870f, - 0.908528118716306120f, -0.417823715820212270f, 0.908207384739488700f, - -0.418520425194109700f, - 0.907886116487666260f, -0.419216888363223910f, 0.907564314149832630f, - -0.419913104917843620f, - 0.907241977915295820f, -0.420609074448402510f, 0.906919107973678140f, - -0.421304796545479640f, - 0.906595704514915330f, -0.422000270799799680f, 0.906271767729257660f, - -0.422695496802232950f, - 0.905947297807268460f, -0.423390474143796050f, 0.905622294939825270f, - -0.424085202415651560f, - 0.905296759318118820f, -0.424779681209108810f, 0.904970691133653250f, - -0.425473910115623800f, - 0.904644090578246240f, -0.426167888726799620f, 0.904316957844028320f, - -0.426861616634386430f, - 0.903989293123443340f, -0.427555093430282080f, 0.903661096609247980f, - -0.428248318706531960f, - 0.903332368494511820f, -0.428941292055329490f, 0.903003108972617150f, - -0.429634013069016380f, - 0.902673318237258830f, -0.430326481340082610f, 0.902342996482444200f, - -0.431018696461167030f, - 0.902012143902493180f, -0.431710658025057260f, 0.901680760692037730f, - -0.432402365624690140f, - 0.901348847046022030f, -0.433093818853151960f, 0.901016403159702330f, - -0.433785017303678520f, - 0.900683429228646970f, -0.434475960569655650f, 0.900349925448735600f, - -0.435166648244619260f, - 0.900015892016160280f, -0.435857079922255470f, 0.899681329127423930f, - -0.436547255196401200f, - 0.899346236979341570f, -0.437237173661044090f, 0.899010615769039070f, - -0.437926834910322860f, - 0.898674465693953820f, -0.438616238538527660f, 0.898337786951834310f, - -0.439305384140099950f, - 0.898000579740739880f, -0.439994271309633260f, 0.897662844259040860f, - -0.440682899641872900f, - 0.897324580705418320f, -0.441371268731716670f, 0.896985789278863970f, - -0.442059378174214700f, - 0.896646470178680150f, -0.442747227564570020f, 0.896306623604479550f, - -0.443434816498138480f, - 0.895966249756185220f, -0.444122144570429200f, 0.895625348834030110f, - -0.444809211377104880f, - 0.895283921038557580f, -0.445496016513981740f, 0.894941966570620750f, - -0.446182559577030070f, - 0.894599485631382700f, -0.446868840162374160f, 0.894256478422316040f, - -0.447554857866293010f, - 0.893912945145203250f, -0.448240612285219890f, 0.893568886002135910f, - -0.448926103015743260f, - 0.893224301195515320f, -0.449611329654606540f, 0.892879190928051680f, - -0.450296291798708610f, - 0.892533555402764580f, -0.450980989045103860f, 0.892187394822982480f, - -0.451665420991002490f, - 0.891840709392342720f, -0.452349587233770890f, 0.891493499314791380f, - -0.453033487370931580f, - 0.891145764794583180f, -0.453717121000163870f, 0.890797506036281490f, - -0.454400487719303580f, - 0.890448723244757880f, -0.455083587126343840f, 0.890099416625192320f, - -0.455766418819434640f, - 0.889749586383072780f, -0.456448982396883920f, 0.889399232724195520f, - -0.457131277457156980f, - 0.889048355854664570f, -0.457813303598877170f, 0.888696955980891600f, - -0.458495060420826270f, - 0.888345033309596350f, -0.459176547521944090f, 0.887992588047805560f, - -0.459857764501329540f, - 0.887639620402853930f, -0.460538710958240010f, 0.887286130582383150f, - -0.461219386492092380f, - 0.886932118794342190f, -0.461899790702462730f, 0.886577585246987040f, - -0.462579923189086810f, - 0.886222530148880640f, -0.463259783551860150f, 0.885866953708892790f, - -0.463939371390838520f, - 0.885510856136199950f, -0.464618686306237820f, 0.885154237640285110f, - -0.465297727898434600f, - 0.884797098430937790f, -0.465976495767966180f, 0.884439438718253810f, - -0.466654989515530920f, - 0.884081258712634990f, -0.467333208741988420f, 0.883722558624789660f, - -0.468011153048359830f, - 0.883363338665731580f, -0.468688822035827900f, 0.883003599046780830f, - -0.469366215305737520f, - 0.882643339979562790f, -0.470043332459595620f, 0.882282561676008710f, - -0.470720173099071600f, - 0.881921264348355050f, -0.471396736825997640f, 0.881559448209143780f, - -0.472073023242368660f, - 0.881197113471222090f, -0.472749031950342790f, 0.880834260347742040f, - -0.473424762552241530f, - 0.880470889052160750f, -0.474100214650549970f, 0.880106999798240360f, - -0.474775387847917120f, - 0.879742592800047410f, -0.475450281747155870f, 0.879377668271953290f, - -0.476124895951243580f, - 0.879012226428633530f, -0.476799230063322090f, 0.878646267485068130f, - -0.477473283686698060f, - 0.878279791656541580f, -0.478147056424843010f, 0.877912799158641840f, - -0.478820547881393890f, - 0.877545290207261350f, -0.479493757660153010f, 0.877177265018595940f, - -0.480166685365088390f, - 0.876808723809145650f, -0.480839330600333960f, 0.876439666795713610f, - -0.481511692970189860f, - 0.876070094195406600f, -0.482183772079122720f, 0.875700006225634600f, - -0.482855567531765670f, - 0.875329403104110890f, -0.483527078932918740f, 0.874958285048851650f, - -0.484198305887549030f, - 0.874586652278176110f, -0.484869248000791060f, 0.874214505010706300f, - -0.485539904877946960f, - 0.873841843465366860f, -0.486210276124486420f, 0.873468667861384880f, - -0.486880361346047340f, - 0.873094978418290090f, -0.487550160148436000f, 0.872720775355914300f, - -0.488219672137626790f, - 0.872346058894391540f, -0.488888896919763170f, 0.871970829254157810f, - -0.489557834101157440f, - 0.871595086655950980f, -0.490226483288291160f, 0.871218831320811020f, - -0.490894844087815090f, - 0.870842063470078980f, -0.491562916106549900f, 0.870464783325397670f, - -0.492230698951486020f, - 0.870086991108711460f, -0.492898192229784040f, 0.869708687042265670f, - -0.493565395548774770f, - 0.869329871348606840f, -0.494232308515959670f, 0.868950544250582380f, - -0.494898930739011260f, - 0.868570705971340900f, -0.495565261825772540f, 0.868190356734331310f, - -0.496231301384258250f, - 0.867809496763303320f, -0.496897049022654470f, 0.867428126282306920f, - -0.497562504349319150f, - 0.867046245515692650f, -0.498227666972781870f, 0.866663854688111130f, - -0.498892536501744590f, - 0.866280954024512990f, -0.499557112545081840f, 0.865897543750148820f, - -0.500221394711840680f, - 0.865513624090569090f, -0.500885382611240710f, 0.865129195271623800f, - -0.501549075852675390f, - 0.864744257519462380f, -0.502212474045710790f, 0.864358811060534030f, - -0.502875576800086990f, - 0.863972856121586810f, -0.503538383725717580f, 0.863586392929668100f, - -0.504200894432690340f, - 0.863199421712124160f, -0.504863108531267590f, 0.862811942696600330f, - -0.505525025631885390f, - 0.862423956111040610f, -0.506186645345155230f, 0.862035462183687210f, - -0.506847967281863210f, - 0.861646461143081300f, -0.507508991052970870f, 0.861256953218062170f, - -0.508169716269614600f, - 0.860866938637767310f, -0.508830142543106990f, 0.860476417631632070f, - -0.509490269484936360f, - 0.860085390429390140f, -0.510150096706766810f, 0.859693857261072610f, - -0.510809623820439040f, - 0.859301818357008470f, -0.511468850437970300f, 0.858909273947823900f, - -0.512127776171554690f, - 0.858516224264442740f, -0.512786400633562960f, 0.858122669538086140f, - -0.513444723436543460f, - 0.857728610000272120f, -0.514102744193221660f, 0.857334045882815590f, - -0.514760462516501200f, - 0.856938977417828760f, -0.515417878019462930f, 0.856543404837719960f, - -0.516074990315366630f, - 0.856147328375194470f, -0.516731799017649870f, 0.855750748263253920f, - -0.517388303739929060f, - 0.855353664735196030f, -0.518044504095999340f, 0.854956078024614930f, - -0.518700399699834950f, - 0.854557988365400530f, -0.519355990165589640f, 0.854159395991738850f, - -0.520011275107596040f, - 0.853760301138111410f, -0.520666254140367160f, 0.853360704039295430f, - -0.521320926878595660f, - 0.852960604930363630f, -0.521975292937154390f, 0.852560004046684080f, - -0.522629351931096610f, - 0.852158901623919830f, -0.523283103475656430f, 0.851757297898029120f, - -0.523936547186248600f, - 0.851355193105265200f, -0.524589682678468950f, 0.850952587482175730f, - -0.525242509568094710f, - 0.850549481265603480f, -0.525895027471084630f, 0.850145874692685210f, - -0.526547236003579440f, - 0.849741768000852550f, -0.527199134781901280f, 0.849337161427830780f, - -0.527850723422555230f, - 0.848932055211639610f, -0.528502001542228480f, 0.848526449590592650f, - -0.529152968757790610f, - 0.848120344803297230f, -0.529803624686294610f, 0.847713741088654380f, - -0.530453968944976320f, - 0.847306638685858320f, -0.531104001151255000f, 0.846899037834397240f, - -0.531753720922733320f, - 0.846490938774052130f, -0.532403127877197900f, 0.846082341744897050f, - -0.533052221632619450f, - 0.845673246987299070f, -0.533701001807152960f, 0.845263654741918220f, - -0.534349468019137520f, - 0.844853565249707120f, -0.534997619887097150f, 0.844442978751910660f, - -0.535645457029741090f, - 0.844031895490066410f, -0.536292979065963180f, 0.843620315706004150f, - -0.536940185614842910f, - 0.843208239641845440f, -0.537587076295645390f, 0.842795667540004120f, - -0.538233650727821700f, - 0.842382599643185850f, -0.538879908531008420f, 0.841969036194387680f, - -0.539525849325028890f, - 0.841554977436898440f, -0.540171472729892850f, 0.841140423614298080f, - -0.540816778365796670f, - 0.840725374970458070f, -0.541461765853123440f, 0.840309831749540770f, - -0.542106434812443920f, - 0.839893794195999520f, -0.542750784864515890f, 0.839477262554578550f, - -0.543394815630284800f, - 0.839060237070312740f, -0.544038526730883820f, 0.838642717988527300f, - -0.544681917787634530f, - 0.838224705554838080f, -0.545324988422046460f, 0.837806200015150940f, - -0.545967738255817570f, - 0.837387201615661940f, -0.546610166910834860f, 0.836967710602857020f, - -0.547252274009174090f, - 0.836547727223512010f, -0.547894059173100190f, 0.836127251724692270f, - -0.548535522025067390f, - 0.835706284353752600f, -0.549176662187719660f, 0.835284825358337370f, - -0.549817479283890910f, - 0.834862874986380010f, -0.550457972936604810f, 0.834440433486103190f, - -0.551098142769075430f, - 0.834017501106018130f, -0.551737988404707340f, 0.833594078094925140f, - -0.552377509467096070f, - 0.833170164701913190f, -0.553016705580027470f, 0.832745761176359460f, - -0.553655576367479310f, - 0.832320867767929680f, -0.554294121453620000f, 0.831895484726577590f, - -0.554932340462810370f, - 0.831469612302545240f, -0.555570233019602180f, 0.831043250746362320f, - -0.556207798748739930f, - 0.830616400308846310f, -0.556845037275160100f, 0.830189061241102370f, - -0.557481948223991550f, - 0.829761233794523050f, -0.558118531220556100f, 0.829332918220788250f, - -0.558754785890368310f, - 0.828904114771864870f, -0.559390711859136140f, 0.828474823700007130f, - -0.560026308752760380f, - 0.828045045257755800f, -0.560661576197336030f, 0.827614779697938400f, - -0.561296513819151470f, - 0.827184027273669130f, -0.561931121244689470f, 0.826752788238348520f, - -0.562565398100626560f, - 0.826321062845663530f, -0.563199344013834090f, 0.825888851349586780f, - -0.563832958611378170f, - 0.825456154004377550f, -0.564466241520519500f, 0.825022971064580220f, - -0.565099192368713980f, - 0.824589302785025290f, -0.565731810783613120f, 0.824155149420828570f, - -0.566364096393063840f, - 0.823720511227391430f, -0.566996048825108680f, 0.823285388460400110f, - -0.567627667707986230f, - 0.822849781375826430f, -0.568258952670131490f, 0.822413690229926390f, - -0.568889903340175860f, - 0.821977115279241550f, -0.569520519346947140f, 0.821540056780597610f, - -0.570150800319470300f, - 0.821102514991104650f, -0.570780745886967260f, 0.820664490168157460f, - -0.571410355678857230f, - 0.820225982569434690f, -0.572039629324757050f, 0.819786992452898990f, - -0.572668566454481160f, - 0.819347520076796900f, -0.573297166698042200f, 0.818907565699658950f, - -0.573925429685650750f, - 0.818467129580298660f, -0.574553355047715760f, 0.818026211977813440f, - -0.575180942414845080f, - 0.817584813151583710f, -0.575808191417845340f, 0.817142933361272970f, - -0.576435101687721830f, - 0.816700572866827850f, -0.577061672855679440f, 0.816257731928477390f, - -0.577687904553122800f, - 0.815814410806733780f, -0.578313796411655590f, 0.815370609762391290f, - -0.578939348063081780f, - 0.814926329056526620f, -0.579564559139405630f, 0.814481568950498610f, - -0.580189429272831680f, - 0.814036329705948410f, -0.580813958095764530f, 0.813590611584798510f, - -0.581438145240810170f, - 0.813144414849253590f, -0.582061990340775440f, 0.812697739761799490f, - -0.582685493028668460f, - 0.812250586585203880f, -0.583308652937698290f, 0.811802955582515470f, - -0.583931469701276180f, - 0.811354847017063730f, -0.584553942953015330f, 0.810906261152459670f, - -0.585176072326730410f, - 0.810457198252594770f, -0.585797857456438860f, 0.810007658581641140f, - -0.586419297976360500f, - 0.809557642404051260f, -0.587040393520917970f, 0.809107149984558240f, - -0.587661143724736660f, - 0.808656181588174980f, -0.588281548222645220f, 0.808204737480194720f, - -0.588901606649675720f, - 0.807752817926190360f, -0.589521318641063940f, 0.807300423192014450f, - -0.590140683832248820f, - 0.806847553543799330f, -0.590759701858874160f, 0.806394209247956240f, - -0.591378372356787580f, - 0.805940390571176280f, -0.591996694962040990f, 0.805486097780429230f, - -0.592614669310891130f, - 0.805031331142963660f, -0.593232295039799800f, 0.804576090926307110f, - -0.593849571785433630f, - 0.804120377398265810f, -0.594466499184664430f, 0.803664190826924090f, - -0.595083076874569960f, - 0.803207531480644940f, -0.595699304492433360f, 0.802750399628069160f, - -0.596315181675743710f, - 0.802292795538115720f, -0.596930708062196500f, 0.801834719479981310f, - -0.597545883289693160f, - 0.801376171723140240f, -0.598160706996342270f, 0.800917152537344300f, - -0.598775178820458720f, - 0.800457662192622820f, -0.599389298400564540f, 0.799997700959281910f, - -0.600003065375388940f, - 0.799537269107905010f, -0.600616479383868970f, 0.799076366909352350f, - -0.601229540065148500f, - 0.798614994634760820f, -0.601842247058580030f, 0.798153152555543750f, - -0.602454600003723750f, - 0.797690840943391160f, -0.603066598540348160f, 0.797228060070268810f, - -0.603678242308430370f, - 0.796764810208418830f, -0.604289530948155960f, 0.796301091630359110f, - -0.604900464099919820f, - 0.795836904608883570f, -0.605511041404325550f, 0.795372249417061310f, - -0.606121262502186120f, - 0.794907126328237010f, -0.606731127034524480f, 0.794441535616030590f, - -0.607340634642572930f, - 0.793975477554337170f, -0.607949784967773630f, 0.793508952417326660f, - -0.608558577651779450f, - 0.793041960479443640f, -0.609167012336453210f, 0.792574502015407690f, - -0.609775088663868430f, - 0.792106577300212390f, -0.610382806276309480f, 0.791638186609125880f, - -0.610990164816271660f, - 0.791169330217690200f, -0.611597163926461910f, 0.790700008401721610f, - -0.612203803249797950f, - 0.790230221437310030f, -0.612810082429409710f, 0.789759969600819070f, - -0.613416001108638590f, - 0.789289253168885650f, -0.614021558931038380f, 0.788818072418420280f, - -0.614626755540375050f, - 0.788346427626606340f, -0.615231590580626820f, 0.787874319070900220f, - -0.615836063695985090f, - 0.787401747029031430f, -0.616440174530853650f, 0.786928711779001810f, - -0.617043922729849760f, - 0.786455213599085770f, -0.617647307937803870f, 0.785981252767830150f, - -0.618250329799760250f, - 0.785506829564053930f, -0.618852987960976320f, 0.785031944266848080f, - -0.619455282066924020f, - 0.784556597155575240f, -0.620057211763289100f, 0.784080788509869950f, - -0.620658776695972140f, - 0.783604518609638200f, -0.621259976511087550f, 0.783127787735057310f, - -0.621860810854965360f, - 0.782650596166575730f, -0.622461279374149970f, 0.782172944184913010f, - -0.623061381715401260f, - 0.781694832071059390f, -0.623661117525694530f, 0.781216260106276090f, - -0.624260486452220650f, - 0.780737228572094490f, -0.624859488142386340f, 0.780257737750316590f, - -0.625458122243814360f, - 0.779777787923014550f, -0.626056388404343520f, 0.779297379372530300f, - -0.626654286272029350f, - 0.778816512381475980f, -0.627251815495144080f, 0.778335187232733210f, - -0.627848975722176460f, - 0.777853404209453150f, -0.628445766601832710f, 0.777371163595056310f, - -0.629042187783036000f, - 0.776888465673232440f, -0.629638238914926980f, 0.776405310727940390f, - -0.630233919646864370f, - 0.775921699043407690f, -0.630829229628424470f, 0.775437630904130540f, - -0.631424168509401860f, - 0.774953106594873930f, -0.632018735939809060f, 0.774468126400670860f, - -0.632612931569877410f, - 0.773982690606822900f, -0.633206755050057190f, 0.773496799498899050f, - -0.633800206031017280f, - 0.773010453362736990f, -0.634393284163645490f, 0.772523652484441330f, - -0.634985989099049460f, - 0.772036397150384520f, -0.635578320488556110f, 0.771548687647206300f, - -0.636170277983712170f, - 0.771060524261813820f, -0.636761861236284200f, 0.770571907281380810f, - -0.637353069898259130f, - 0.770082836993347900f, -0.637943903621844060f, 0.769593313685422940f, - -0.638534362059466790f, - 0.769103337645579700f, -0.639124444863775730f, 0.768612909162058380f, - -0.639714151687640450f, - 0.768122028523365420f, -0.640303482184151670f, 0.767630696018273380f, - -0.640892436006621380f, - 0.767138911935820400f, -0.641481012808583160f, 0.766646676565310380f, - -0.642069212243792540f, - 0.766153990196312920f, -0.642657033966226860f, 0.765660853118662500f, - -0.643244477630085850f, - 0.765167265622458960f, -0.643831542889791390f, 0.764673227998067140f, - -0.644418229399988380f, - 0.764178740536116670f, -0.645004536815543930f, 0.763683803527501870f, - -0.645590464791548690f, - 0.763188417263381270f, -0.646176012983316280f, 0.762692582035177980f, - -0.646761181046383920f, - 0.762196298134578900f, -0.647345968636512060f, 0.761699565853535380f, - -0.647930375409685340f, - 0.761202385484261780f, -0.648514401022112440f, 0.760704757319236920f, - -0.649098045130225950f, - 0.760206681651202420f, -0.649681307390683190f, 0.759708158773163440f, - -0.650264187460365850f, - 0.759209188978388070f, -0.650846684996380880f, 0.758709772560407390f, - -0.651428799656059820f, - 0.758209909813015280f, -0.652010531096959500f, 0.757709601030268080f, - -0.652591878976862440f, - 0.757208846506484570f, -0.653172842953776760f, 0.756707646536245670f, - -0.653753422685936060f, - 0.756206001414394540f, -0.654333617831800440f, 0.755703911436035880f, - -0.654913428050056030f, - 0.755201376896536550f, -0.655492852999615350f, 0.754698398091524500f, - -0.656071892339617600f, - 0.754194975316889170f, -0.656650545729428940f, 0.753691108868781210f, - -0.657228812828642540f, - 0.753186799043612520f, -0.657806693297078640f, 0.752682046138055340f, - -0.658384186794785050f, - 0.752176850449042810f, -0.658961292982037320f, 0.751671212273768430f, - -0.659538011519338660f, - 0.751165131909686480f, -0.660114342067420480f, 0.750658609654510700f, - -0.660690284287242300f, - 0.750151645806215070f, -0.661265837839992270f, 0.749644240663033480f, - -0.661841002387086870f, - 0.749136394523459370f, -0.662415777590171780f, 0.748628107686245440f, - -0.662990163111121470f, - 0.748119380450403600f, -0.663564158612039770f, 0.747610213115205150f, - -0.664137763755260010f, - 0.747100605980180130f, -0.664710978203344790f, 0.746590559345117310f, - -0.665283801619087180f, - 0.746080073510063780f, -0.665856233665509720f, 0.745569148775325430f, - -0.666428274005865240f, - 0.745057785441466060f, -0.666999922303637470f, 0.744545983809307370f, - -0.667571178222540310f, - 0.744033744179929290f, -0.668142041426518450f, 0.743521066854669120f, - -0.668712511579747980f, - 0.743007952135121720f, -0.669282588346636010f, 0.742494400323139180f, - -0.669852271391821020f, - 0.741980411720831070f, -0.670421560380173090f, 0.741465986630563290f, - -0.670990454976794220f, - 0.740951125354959110f, -0.671558954847018330f, 0.740435828196898020f, - -0.672127059656411730f, - 0.739920095459516200f, -0.672694769070772860f, 0.739403927446205760f, - -0.673262082756132970f, - 0.738887324460615110f, -0.673829000378756040f, 0.738370286806648620f, - -0.674395521605139050f, - 0.737852814788465980f, -0.674961646102011930f, 0.737334908710482910f, - -0.675527373536338520f, - 0.736816568877369900f, -0.676092703575315920f, 0.736297795594053170f, - -0.676657635886374950f, - 0.735778589165713590f, -0.677222170137180330f, 0.735258949897786840f, - -0.677786305995631500f, - 0.734738878095963500f, -0.678350043129861470f, 0.734218374066188280f, - -0.678913381208238410f, - 0.733697438114660370f, -0.679476319899364970f, 0.733176070547832740f, - -0.680038858872078930f, - 0.732654271672412820f, -0.680600997795453020f, 0.732132041795361290f, - -0.681162736338795430f, - 0.731609381223892630f, -0.681724074171649710f, 0.731086290265474340f, - -0.682285010963795570f, - 0.730562769227827590f, -0.682845546385248080f, 0.730038818418926260f, - -0.683405680106258680f, - 0.729514438146997010f, -0.683965411797315400f, 0.728989628720519420f, - -0.684524741129142300f, - 0.728464390448225200f, -0.685083667772700360f, 0.727938723639098620f, - -0.685642191399187470f, - 0.727412628602375770f, -0.686200311680038590f, 0.726886105647544970f, - -0.686758028286925890f, - 0.726359155084346010f, -0.687315340891759050f, 0.725831777222770370f, - -0.687872249166685550f, - 0.725303972373060770f, -0.688428752784090440f, 0.724775740845711280f, - -0.688984851416597040f, - 0.724247082951467000f, -0.689540544737066830f, 0.723717999001323500f, - -0.690095832418599950f, - 0.723188489306527460f, -0.690650714134534600f, 0.722658554178575610f, - -0.691205189558448450f, - 0.722128193929215350f, -0.691759258364157750f, 0.721597408870443770f, - -0.692312920225718220f, - 0.721066199314508110f, -0.692866174817424630f, 0.720534565573905270f, - -0.693419021813811760f, - 0.720002507961381650f, -0.693971460889654000f, 0.719470026789932990f, - -0.694523491719965520f, - 0.718937122372804490f, -0.695075113980000880f, 0.718403795023489830f, - -0.695626327345254870f, - 0.717870045055731710f, -0.696177131491462990f, 0.717335872783521730f, - -0.696727526094601200f, - 0.716801278521099540f, -0.697277510830886520f, 0.716266262582953120f, - -0.697827085376777290f, - 0.715730825283818590f, -0.698376249408972920f, 0.715194966938680120f, - -0.698925002604414150f, - 0.714658687862769090f, -0.699473344640283770f, 0.714121988371564820f, - -0.700021275194006250f, - 0.713584868780793640f, -0.700568793943248340f, 0.713047329406429340f, - -0.701115900565918660f, - 0.712509370564692320f, -0.701662594740168450f, 0.711970992572050100f, - -0.702208876144391870f, - 0.711432195745216430f, -0.702754744457225300f, 0.710892980401151680f, - -0.703300199357548730f, - 0.710353346857062420f, -0.703845240524484940f, 0.709813295430400840f, - -0.704389867637400410f, - 0.709272826438865690f, -0.704934080375904880f, 0.708731940200400650f, - -0.705477878419852100f, - 0.708190637033195400f, -0.706021261449339740f, 0.707648917255684350f, - -0.706564229144709510f, - 0.707106781186547570f, -0.707106781186547460f, 0.706564229144709620f, - -0.707648917255684350f, - 0.706021261449339740f, -0.708190637033195290f, 0.705477878419852210f, - -0.708731940200400650f, - 0.704934080375904990f, -0.709272826438865580f, 0.704389867637400410f, - -0.709813295430400840f, - 0.703845240524484940f, -0.710353346857062310f, 0.703300199357548730f, - -0.710892980401151680f, - 0.702754744457225300f, -0.711432195745216430f, 0.702208876144391870f, - -0.711970992572049990f, - 0.701662594740168570f, -0.712509370564692320f, 0.701115900565918660f, - -0.713047329406429230f, - 0.700568793943248450f, -0.713584868780793520f, 0.700021275194006360f, - -0.714121988371564710f, - 0.699473344640283770f, -0.714658687862768980f, 0.698925002604414150f, - -0.715194966938680010f, - 0.698376249408972920f, -0.715730825283818590f, 0.697827085376777290f, - -0.716266262582953120f, - 0.697277510830886630f, -0.716801278521099540f, 0.696727526094601200f, - -0.717335872783521730f, - 0.696177131491462990f, -0.717870045055731710f, 0.695626327345254870f, - -0.718403795023489720f, - 0.695075113980000880f, -0.718937122372804380f, 0.694523491719965520f, - -0.719470026789932990f, - 0.693971460889654000f, -0.720002507961381650f, 0.693419021813811880f, - -0.720534565573905270f, - 0.692866174817424740f, -0.721066199314508110f, 0.692312920225718220f, - -0.721597408870443660f, - 0.691759258364157750f, -0.722128193929215350f, 0.691205189558448450f, - -0.722658554178575610f, - 0.690650714134534720f, -0.723188489306527350f, 0.690095832418599950f, - -0.723717999001323390f, - 0.689540544737066940f, -0.724247082951466890f, 0.688984851416597150f, - -0.724775740845711280f, - 0.688428752784090550f, -0.725303972373060660f, 0.687872249166685550f, - -0.725831777222770370f, - 0.687315340891759160f, -0.726359155084346010f, 0.686758028286925890f, - -0.726886105647544970f, - 0.686200311680038700f, -0.727412628602375770f, 0.685642191399187470f, - -0.727938723639098620f, - 0.685083667772700360f, -0.728464390448225200f, 0.684524741129142300f, - -0.728989628720519310f, - 0.683965411797315510f, -0.729514438146996900f, 0.683405680106258790f, - -0.730038818418926150f, - 0.682845546385248080f, -0.730562769227827590f, 0.682285010963795570f, - -0.731086290265474230f, - 0.681724074171649820f, -0.731609381223892520f, 0.681162736338795430f, - -0.732132041795361290f, - 0.680600997795453130f, -0.732654271672412820f, 0.680038858872079040f, - -0.733176070547832740f, - 0.679476319899365080f, -0.733697438114660260f, 0.678913381208238410f, - -0.734218374066188170f, - 0.678350043129861580f, -0.734738878095963390f, 0.677786305995631500f, - -0.735258949897786730f, - 0.677222170137180450f, -0.735778589165713480f, 0.676657635886374950f, - -0.736297795594053060f, - 0.676092703575316030f, -0.736816568877369790f, 0.675527373536338630f, - -0.737334908710482790f, - 0.674961646102012040f, -0.737852814788465980f, 0.674395521605139050f, - -0.738370286806648510f, - 0.673829000378756150f, -0.738887324460615110f, 0.673262082756132970f, - -0.739403927446205760f, - 0.672694769070772970f, -0.739920095459516090f, 0.672127059656411840f, - -0.740435828196898020f, - 0.671558954847018330f, -0.740951125354959110f, 0.670990454976794220f, - -0.741465986630563290f, - 0.670421560380173090f, -0.741980411720830960f, 0.669852271391821130f, - -0.742494400323139180f, - 0.669282588346636010f, -0.743007952135121720f, 0.668712511579748090f, - -0.743521066854669120f, - 0.668142041426518560f, -0.744033744179929180f, 0.667571178222540310f, - -0.744545983809307250f, - 0.666999922303637470f, -0.745057785441465950f, 0.666428274005865350f, - -0.745569148775325430f, - 0.665856233665509720f, -0.746080073510063780f, 0.665283801619087180f, - -0.746590559345117310f, - 0.664710978203344900f, -0.747100605980180130f, 0.664137763755260010f, - -0.747610213115205150f, - 0.663564158612039880f, -0.748119380450403490f, 0.662990163111121470f, - -0.748628107686245330f, - 0.662415777590171780f, -0.749136394523459260f, 0.661841002387086870f, - -0.749644240663033480f, - 0.661265837839992270f, -0.750151645806214960f, 0.660690284287242300f, - -0.750658609654510590f, - 0.660114342067420480f, -0.751165131909686370f, 0.659538011519338770f, - -0.751671212273768430f, - 0.658961292982037320f, -0.752176850449042700f, 0.658384186794785050f, - -0.752682046138055230f, - 0.657806693297078640f, -0.753186799043612410f, 0.657228812828642650f, - -0.753691108868781210f, - 0.656650545729429050f, -0.754194975316889170f, 0.656071892339617710f, - -0.754698398091524390f, - 0.655492852999615460f, -0.755201376896536550f, 0.654913428050056150f, - -0.755703911436035880f, - 0.654333617831800550f, -0.756206001414394540f, 0.653753422685936170f, - -0.756707646536245670f, - 0.653172842953776760f, -0.757208846506484460f, 0.652591878976862550f, - -0.757709601030268080f, - 0.652010531096959500f, -0.758209909813015280f, 0.651428799656059820f, - -0.758709772560407390f, - 0.650846684996380990f, -0.759209188978387960f, 0.650264187460365960f, - -0.759708158773163440f, - 0.649681307390683190f, -0.760206681651202420f, 0.649098045130226060f, - -0.760704757319236920f, - 0.648514401022112550f, -0.761202385484261780f, 0.647930375409685460f, - -0.761699565853535270f, - 0.647345968636512060f, -0.762196298134578900f, 0.646761181046383920f, - -0.762692582035177870f, - 0.646176012983316390f, -0.763188417263381270f, 0.645590464791548800f, - -0.763683803527501870f, - 0.645004536815544040f, -0.764178740536116670f, 0.644418229399988380f, - -0.764673227998067140f, - 0.643831542889791500f, -0.765167265622458960f, 0.643244477630085850f, - -0.765660853118662390f, - 0.642657033966226860f, -0.766153990196312810f, 0.642069212243792540f, - -0.766646676565310380f, - 0.641481012808583160f, -0.767138911935820400f, 0.640892436006621380f, - -0.767630696018273270f, - 0.640303482184151670f, -0.768122028523365310f, 0.639714151687640450f, - -0.768612909162058270f, - 0.639124444863775730f, -0.769103337645579590f, 0.638534362059466790f, - -0.769593313685422940f, - 0.637943903621844170f, -0.770082836993347900f, 0.637353069898259130f, - -0.770571907281380700f, - 0.636761861236284200f, -0.771060524261813710f, 0.636170277983712170f, - -0.771548687647206300f, - 0.635578320488556230f, -0.772036397150384410f, 0.634985989099049460f, - -0.772523652484441330f, - 0.634393284163645490f, -0.773010453362736990f, 0.633800206031017280f, - -0.773496799498899050f, - 0.633206755050057190f, -0.773982690606822790f, 0.632612931569877520f, - -0.774468126400670860f, - 0.632018735939809060f, -0.774953106594873820f, 0.631424168509401860f, - -0.775437630904130430f, - 0.630829229628424470f, -0.775921699043407580f, 0.630233919646864480f, - -0.776405310727940390f, - 0.629638238914927100f, -0.776888465673232440f, 0.629042187783036000f, - -0.777371163595056200f, - 0.628445766601832710f, -0.777853404209453040f, 0.627848975722176570f, - -0.778335187232733090f, - 0.627251815495144190f, -0.778816512381475870f, 0.626654286272029460f, - -0.779297379372530300f, - 0.626056388404343520f, -0.779777787923014440f, 0.625458122243814360f, - -0.780257737750316590f, - 0.624859488142386450f, -0.780737228572094380f, 0.624260486452220650f, - -0.781216260106276090f, - 0.623661117525694640f, -0.781694832071059390f, 0.623061381715401370f, - -0.782172944184912900f, - 0.622461279374150080f, -0.782650596166575730f, 0.621860810854965360f, - -0.783127787735057310f, - 0.621259976511087660f, -0.783604518609638200f, 0.620658776695972140f, - -0.784080788509869950f, - 0.620057211763289210f, -0.784556597155575240f, 0.619455282066924020f, - -0.785031944266848080f, - 0.618852987960976320f, -0.785506829564053930f, 0.618250329799760250f, - -0.785981252767830150f, - 0.617647307937803980f, -0.786455213599085770f, 0.617043922729849760f, - -0.786928711779001700f, - 0.616440174530853650f, -0.787401747029031320f, 0.615836063695985090f, - -0.787874319070900110f, - 0.615231590580626820f, -0.788346427626606230f, 0.614626755540375050f, - -0.788818072418420170f, - 0.614021558931038490f, -0.789289253168885650f, 0.613416001108638590f, - -0.789759969600819070f, - 0.612810082429409710f, -0.790230221437310030f, 0.612203803249798060f, - -0.790700008401721610f, - 0.611597163926462020f, -0.791169330217690090f, 0.610990164816271770f, - -0.791638186609125770f, - 0.610382806276309480f, -0.792106577300212390f, 0.609775088663868430f, - -0.792574502015407580f, - 0.609167012336453210f, -0.793041960479443640f, 0.608558577651779450f, - -0.793508952417326660f, - 0.607949784967773740f, -0.793975477554337170f, 0.607340634642572930f, - -0.794441535616030590f, - 0.606731127034524480f, -0.794907126328237010f, 0.606121262502186230f, - -0.795372249417061190f, - 0.605511041404325550f, -0.795836904608883460f, 0.604900464099919930f, - -0.796301091630359110f, - 0.604289530948156070f, -0.796764810208418720f, 0.603678242308430370f, - -0.797228060070268700f, - 0.603066598540348280f, -0.797690840943391040f, 0.602454600003723860f, - -0.798153152555543750f, - 0.601842247058580030f, -0.798614994634760820f, 0.601229540065148620f, - -0.799076366909352350f, - 0.600616479383868970f, -0.799537269107905010f, 0.600003065375389060f, - -0.799997700959281910f, - 0.599389298400564540f, -0.800457662192622710f, 0.598775178820458720f, - -0.800917152537344300f, - 0.598160706996342380f, -0.801376171723140130f, 0.597545883289693270f, - -0.801834719479981310f, - 0.596930708062196500f, -0.802292795538115720f, 0.596315181675743820f, - -0.802750399628069160f, - 0.595699304492433470f, -0.803207531480644830f, 0.595083076874569960f, - -0.803664190826924090f, - 0.594466499184664540f, -0.804120377398265700f, 0.593849571785433630f, - -0.804576090926307000f, - 0.593232295039799800f, -0.805031331142963660f, 0.592614669310891130f, - -0.805486097780429120f, - 0.591996694962040990f, -0.805940390571176280f, 0.591378372356787580f, - -0.806394209247956240f, - 0.590759701858874280f, -0.806847553543799220f, 0.590140683832248940f, - -0.807300423192014450f, - 0.589521318641063940f, -0.807752817926190360f, 0.588901606649675840f, - -0.808204737480194720f, - 0.588281548222645330f, -0.808656181588174980f, 0.587661143724736770f, - -0.809107149984558130f, - 0.587040393520918080f, -0.809557642404051260f, 0.586419297976360500f, - -0.810007658581641140f, - 0.585797857456438860f, -0.810457198252594770f, 0.585176072326730410f, - -0.810906261152459670f, - 0.584553942953015330f, -0.811354847017063730f, 0.583931469701276300f, - -0.811802955582515360f, - 0.583308652937698290f, -0.812250586585203880f, 0.582685493028668460f, - -0.812697739761799490f, - 0.582061990340775550f, -0.813144414849253590f, 0.581438145240810280f, - -0.813590611584798510f, - 0.580813958095764530f, -0.814036329705948300f, 0.580189429272831680f, - -0.814481568950498610f, - 0.579564559139405740f, -0.814926329056526620f, 0.578939348063081890f, - -0.815370609762391290f, - 0.578313796411655590f, -0.815814410806733780f, 0.577687904553122800f, - -0.816257731928477390f, - 0.577061672855679550f, -0.816700572866827850f, 0.576435101687721830f, - -0.817142933361272970f, - 0.575808191417845340f, -0.817584813151583710f, 0.575180942414845190f, - -0.818026211977813440f, - 0.574553355047715760f, -0.818467129580298660f, 0.573925429685650750f, - -0.818907565699658950f, - 0.573297166698042320f, -0.819347520076796900f, 0.572668566454481160f, - -0.819786992452898990f, - 0.572039629324757050f, -0.820225982569434690f, 0.571410355678857340f, - -0.820664490168157460f, - 0.570780745886967370f, -0.821102514991104650f, 0.570150800319470300f, - -0.821540056780597610f, - 0.569520519346947250f, -0.821977115279241550f, 0.568889903340175970f, - -0.822413690229926390f, - 0.568258952670131490f, -0.822849781375826320f, 0.567627667707986230f, - -0.823285388460400110f, - 0.566996048825108680f, -0.823720511227391320f, 0.566364096393063950f, - -0.824155149420828570f, - 0.565731810783613230f, -0.824589302785025290f, 0.565099192368714090f, - -0.825022971064580220f, - 0.564466241520519500f, -0.825456154004377440f, 0.563832958611378170f, - -0.825888851349586780f, - 0.563199344013834090f, -0.826321062845663420f, 0.562565398100626560f, - -0.826752788238348520f, - 0.561931121244689470f, -0.827184027273669020f, 0.561296513819151470f, - -0.827614779697938400f, - 0.560661576197336030f, -0.828045045257755800f, 0.560026308752760380f, - -0.828474823700007130f, - 0.559390711859136140f, -0.828904114771864870f, 0.558754785890368310f, - -0.829332918220788250f, - 0.558118531220556100f, -0.829761233794523050f, 0.557481948223991660f, - -0.830189061241102370f, - 0.556845037275160100f, -0.830616400308846200f, 0.556207798748739930f, - -0.831043250746362320f, - 0.555570233019602290f, -0.831469612302545240f, 0.554932340462810370f, - -0.831895484726577590f, - 0.554294121453620110f, -0.832320867767929680f, 0.553655576367479310f, - -0.832745761176359460f, - 0.553016705580027580f, -0.833170164701913190f, 0.552377509467096070f, - -0.833594078094925140f, - 0.551737988404707450f, -0.834017501106018130f, 0.551098142769075430f, - -0.834440433486103190f, - 0.550457972936604810f, -0.834862874986380010f, 0.549817479283891020f, - -0.835284825358337370f, - 0.549176662187719770f, -0.835706284353752600f, 0.548535522025067390f, - -0.836127251724692160f, - 0.547894059173100190f, -0.836547727223511890f, 0.547252274009174090f, - -0.836967710602857020f, - 0.546610166910834860f, -0.837387201615661940f, 0.545967738255817680f, - -0.837806200015150940f, - 0.545324988422046460f, -0.838224705554837970f, 0.544681917787634530f, - -0.838642717988527300f, - 0.544038526730883930f, -0.839060237070312630f, 0.543394815630284800f, - -0.839477262554578550f, - 0.542750784864516000f, -0.839893794195999410f, 0.542106434812444030f, - -0.840309831749540770f, - 0.541461765853123560f, -0.840725374970458070f, 0.540816778365796670f, - -0.841140423614298080f, - 0.540171472729892970f, -0.841554977436898330f, 0.539525849325029010f, - -0.841969036194387680f, - 0.538879908531008420f, -0.842382599643185960f, 0.538233650727821700f, - -0.842795667540004120f, - 0.537587076295645510f, -0.843208239641845440f, 0.536940185614843020f, - -0.843620315706004040f, - 0.536292979065963180f, -0.844031895490066410f, 0.535645457029741090f, - -0.844442978751910660f, - 0.534997619887097260f, -0.844853565249707010f, 0.534349468019137520f, - -0.845263654741918220f, - 0.533701001807152960f, -0.845673246987299070f, 0.533052221632619670f, - -0.846082341744896940f, - 0.532403127877198010f, -0.846490938774052020f, 0.531753720922733320f, - -0.846899037834397350f, - 0.531104001151255000f, -0.847306638685858320f, 0.530453968944976320f, - -0.847713741088654270f, - 0.529803624686294830f, -0.848120344803297120f, 0.529152968757790720f, - -0.848526449590592650f, - 0.528502001542228480f, -0.848932055211639610f, 0.527850723422555460f, - -0.849337161427830670f, - 0.527199134781901390f, -0.849741768000852440f, 0.526547236003579330f, - -0.850145874692685210f, - 0.525895027471084740f, -0.850549481265603370f, 0.525242509568094710f, - -0.850952587482175730f, - 0.524589682678468840f, -0.851355193105265200f, 0.523936547186248600f, - -0.851757297898029120f, - 0.523283103475656430f, -0.852158901623919830f, 0.522629351931096720f, - -0.852560004046683970f, - 0.521975292937154390f, -0.852960604930363630f, 0.521320926878595550f, - -0.853360704039295430f, - 0.520666254140367270f, -0.853760301138111300f, 0.520011275107596040f, - -0.854159395991738730f, - 0.519355990165589530f, -0.854557988365400530f, 0.518700399699835170f, - -0.854956078024614820f, - 0.518044504095999340f, -0.855353664735196030f, 0.517388303739929060f, - -0.855750748263253920f, - 0.516731799017649980f, -0.856147328375194470f, 0.516074990315366630f, - -0.856543404837719960f, - 0.515417878019463150f, -0.856938977417828650f, 0.514760462516501200f, - -0.857334045882815590f, - 0.514102744193221660f, -0.857728610000272120f, 0.513444723436543570f, - -0.858122669538086020f, - 0.512786400633563070f, -0.858516224264442740f, 0.512127776171554690f, - -0.858909273947823900f, - 0.511468850437970520f, -0.859301818357008360f, 0.510809623820439040f, - -0.859693857261072610f, - 0.510150096706766700f, -0.860085390429390140f, 0.509490269484936360f, - -0.860476417631632070f, - 0.508830142543106990f, -0.860866938637767310f, 0.508169716269614710f, - -0.861256953218062060f, - 0.507508991052970870f, -0.861646461143081300f, 0.506847967281863320f, - -0.862035462183687210f, - 0.506186645345155450f, -0.862423956111040500f, 0.505525025631885510f, - -0.862811942696600330f, - 0.504863108531267480f, -0.863199421712124160f, 0.504200894432690560f, - -0.863586392929667990f, - 0.503538383725717580f, -0.863972856121586700f, 0.502875576800086880f, - -0.864358811060534030f, - 0.502212474045710900f, -0.864744257519462380f, 0.501549075852675390f, - -0.865129195271623690f, - 0.500885382611240940f, -0.865513624090568980f, 0.500221394711840680f, - -0.865897543750148820f, - 0.499557112545081890f, -0.866280954024512990f, 0.498892536501744750f, - -0.866663854688111020f, - 0.498227666972781870f, -0.867046245515692650f, 0.497562504349319090f, - -0.867428126282306920f, - 0.496897049022654640f, -0.867809496763303210f, 0.496231301384258310f, - -0.868190356734331310f, - 0.495565261825772490f, -0.868570705971340900f, 0.494898930739011310f, - -0.868950544250582380f, - 0.494232308515959730f, -0.869329871348606730f, 0.493565395548774880f, - -0.869708687042265560f, - 0.492898192229784090f, -0.870086991108711350f, 0.492230698951486080f, - -0.870464783325397670f, - 0.491562916106550060f, -0.870842063470078860f, 0.490894844087815140f, - -0.871218831320810900f, - 0.490226483288291100f, -0.871595086655951090f, 0.489557834101157550f, - -0.871970829254157700f, - 0.488888896919763230f, -0.872346058894391540f, 0.488219672137626740f, - -0.872720775355914300f, - 0.487550160148436050f, -0.873094978418290090f, 0.486880361346047400f, - -0.873468667861384880f, - 0.486210276124486530f, -0.873841843465366750f, 0.485539904877947020f, - -0.874214505010706300f, - 0.484869248000791120f, -0.874586652278176110f, 0.484198305887549140f, - -0.874958285048851540f, - 0.483527078932918740f, -0.875329403104110780f, 0.482855567531765670f, - -0.875700006225634600f, - 0.482183772079122830f, -0.876070094195406600f, 0.481511692970189920f, - -0.876439666795713610f, - 0.480839330600333900f, -0.876808723809145760f, 0.480166685365088440f, - -0.877177265018595940f, - 0.479493757660153010f, -0.877545290207261240f, 0.478820547881394050f, - -0.877912799158641730f, - 0.478147056424843120f, -0.878279791656541460f, 0.477473283686698060f, - -0.878646267485068130f, - 0.476799230063322250f, -0.879012226428633410f, 0.476124895951243630f, - -0.879377668271953180f, - 0.475450281747155870f, -0.879742592800047410f, 0.474775387847917230f, - -0.880106999798240360f, - 0.474100214650550020f, -0.880470889052160750f, 0.473424762552241530f, - -0.880834260347742040f, - 0.472749031950342900f, -0.881197113471221980f, 0.472073023242368660f, - -0.881559448209143780f, - 0.471396736825997810f, -0.881921264348354940f, 0.470720173099071710f, - -0.882282561676008600f, - 0.470043332459595620f, -0.882643339979562790f, 0.469366215305737630f, - -0.883003599046780720f, - 0.468688822035827960f, -0.883363338665731580f, 0.468011153048359830f, - -0.883722558624789660f, - 0.467333208741988530f, -0.884081258712634990f, 0.466654989515530970f, - -0.884439438718253700f, - 0.465976495767966130f, -0.884797098430937790f, 0.465297727898434650f, - -0.885154237640285110f, - 0.464618686306237820f, -0.885510856136199950f, 0.463939371390838460f, - -0.885866953708892790f, - 0.463259783551860260f, -0.886222530148880640f, 0.462579923189086810f, - -0.886577585246987040f, - 0.461899790702462840f, -0.886932118794342080f, 0.461219386492092430f, - -0.887286130582383150f, - 0.460538710958240010f, -0.887639620402853930f, 0.459857764501329650f, - -0.887992588047805560f, - 0.459176547521944150f, -0.888345033309596240f, 0.458495060420826220f, - -0.888696955980891710f, - 0.457813303598877290f, -0.889048355854664570f, 0.457131277457156980f, - -0.889399232724195520f, - 0.456448982396883860f, -0.889749586383072890f, 0.455766418819434750f, - -0.890099416625192210f, - 0.455083587126343840f, -0.890448723244757880f, 0.454400487719303750f, - -0.890797506036281490f, - 0.453717121000163930f, -0.891145764794583180f, 0.453033487370931580f, - -0.891493499314791380f, - 0.452349587233771000f, -0.891840709392342720f, 0.451665420991002540f, - -0.892187394822982480f, - 0.450980989045103810f, -0.892533555402764690f, 0.450296291798708730f, - -0.892879190928051680f, - 0.449611329654606600f, -0.893224301195515320f, 0.448926103015743260f, - -0.893568886002136020f, - 0.448240612285220000f, -0.893912945145203250f, 0.447554857866293010f, - -0.894256478422316040f, - 0.446868840162374330f, -0.894599485631382580f, 0.446182559577030120f, - -0.894941966570620750f, - 0.445496016513981740f, -0.895283921038557580f, 0.444809211377105000f, - -0.895625348834030000f, - 0.444122144570429260f, -0.895966249756185110f, 0.443434816498138430f, - -0.896306623604479660f, - 0.442747227564570130f, -0.896646470178680150f, 0.442059378174214760f, - -0.896985789278863970f, - 0.441371268731716620f, -0.897324580705418320f, 0.440682899641873020f, - -0.897662844259040750f, - 0.439994271309633260f, -0.898000579740739880f, 0.439305384140100060f, - -0.898337786951834190f, - 0.438616238538527710f, -0.898674465693953820f, 0.437926834910322860f, - -0.899010615769039070f, - 0.437237173661044200f, -0.899346236979341460f, 0.436547255196401250f, - -0.899681329127423930f, - 0.435857079922255470f, -0.900015892016160280f, 0.435166648244619370f, - -0.900349925448735600f, - 0.434475960569655710f, -0.900683429228646860f, 0.433785017303678520f, - -0.901016403159702330f, - 0.433093818853152010f, -0.901348847046022030f, 0.432402365624690140f, - -0.901680760692037730f, - 0.431710658025057370f, -0.902012143902493070f, 0.431018696461167080f, - -0.902342996482444200f, - 0.430326481340082610f, -0.902673318237258830f, 0.429634013069016500f, - -0.903003108972617040f, - 0.428941292055329550f, -0.903332368494511820f, 0.428248318706531910f, - -0.903661096609247980f, - 0.427555093430282200f, -0.903989293123443340f, 0.426861616634386490f, - -0.904316957844028320f, - 0.426167888726799620f, -0.904644090578246240f, 0.425473910115623910f, - -0.904970691133653250f, - 0.424779681209108810f, -0.905296759318118820f, 0.424085202415651670f, - -0.905622294939825160f, - 0.423390474143796100f, -0.905947297807268460f, 0.422695496802232950f, - -0.906271767729257660f, - 0.422000270799799790f, -0.906595704514915330f, 0.421304796545479700f, - -0.906919107973678030f, - 0.420609074448402510f, -0.907241977915295930f, 0.419913104917843730f, - -0.907564314149832520f, - 0.419216888363223960f, -0.907886116487666150f, 0.418520425194109700f, - -0.908207384739488700f, - 0.417823715820212380f, -0.908528118716306120f, 0.417126760651387870f, - -0.908848318229439120f, - 0.416429560097637320f, -0.909167983090522270f, 0.415732114569105420f, - -0.909487113111505430f, - 0.415034424476081630f, -0.909805708104652220f, 0.414336490228999210f, - -0.910123767882541570f, - 0.413638312238434560f, -0.910441292258067140f, 0.412939890915108020f, - -0.910758281044437570f, - 0.412241226669883000f, -0.911074734055176250f, 0.411542319913765280f, - -0.911390651104122320f, - 0.410843171057903910f, -0.911706032005429880f, 0.410143780513590350f, - -0.912020876573568230f, - 0.409444148692257590f, -0.912335184623322750f, 0.408744276005481520f, - -0.912648955969793900f, - 0.408044162864978740f, -0.912962190428398100f, 0.407343809682607970f, - -0.913274887814867760f, - 0.406643216870369140f, -0.913587047945250810f, 0.405942384840402570f, - -0.913898670635911680f, - 0.405241314004989860f, -0.914209755703530690f, 0.404540004776553110f, - -0.914520302965104450f, - 0.403838457567654130f, -0.914830312237946090f, 0.403136672790995240f, - -0.915139783339685260f, - 0.402434650859418540f, -0.915448716088267830f, 0.401732392185905010f, - -0.915757110301956720f, - 0.401029897183575790f, -0.916064965799331610f, 0.400327166265690150f, - -0.916372282399289140f, - 0.399624199845646790f, -0.916679059921042700f, 0.398920998336983020f, - -0.916985298184122890f, - 0.398217562153373620f, -0.917290997008377910f, 0.397513891708632330f, - -0.917596156213972950f, - 0.396809987416710420f, -0.917900775621390390f, 0.396105849691696320f, - -0.918204855051430900f, - 0.395401478947816300f, -0.918508394325212250f, 0.394696875599433670f, - -0.918811393264169940f, - 0.393992040061048100f, -0.919113851690057770f, 0.393286972747296570f, - -0.919415769424946960f, - 0.392581674072951530f, -0.919717146291227360f, 0.391876144452922350f, - -0.920017982111606570f, - 0.391170384302253980f, -0.920318276709110480f, 0.390464394036126650f, - -0.920618029907083860f, - 0.389758174069856410f, -0.920917241529189520f, 0.389051724818894500f, - -0.921215911399408730f, - 0.388345046698826300f, -0.921514039342041900f, 0.387638140125372680f, - -0.921811625181708120f, - 0.386931005514388690f, -0.922108668743345070f, 0.386223643281862980f, - -0.922405169852209880f, - 0.385516053843919020f, -0.922701128333878520f, 0.384808237616812930f, - -0.922996544014246250f, - 0.384100195016935040f, -0.923291416719527640f, 0.383391926460808770f, - -0.923585746276256560f, - 0.382683432365089840f, -0.923879532511286740f, 0.381974713146567220f, - -0.924172775251791200f, - 0.381265769222162490f, -0.924465474325262600f, 0.380556601008928570f, - -0.924757629559513910f, - 0.379847208924051110f, -0.925049240782677580f, 0.379137593384847430f, - -0.925340307823206200f, - 0.378427754808765620f, -0.925630830509872720f, 0.377717693613385810f, - -0.925920808671769960f, - 0.377007410216418310f, -0.926210242138311270f, 0.376296905035704790f, - -0.926499130739230510f, - 0.375586178489217330f, -0.926787474304581750f, 0.374875230995057600f, - -0.927075272664740100f, - 0.374164062971457990f, -0.927362525650401110f, 0.373452674836780410f, - -0.927649233092581180f, - 0.372741067009515810f, -0.927935394822617890f, 0.372029239908284960f, - -0.928221010672169440f, - 0.371317193951837600f, -0.928506080473215480f, 0.370604929559051670f, - -0.928790604058057020f, - 0.369892447148934270f, -0.929074581259315750f, 0.369179747140620070f, - -0.929358011909935500f, - 0.368466829953372320f, -0.929640895843181330f, 0.367753696006582090f, - -0.929923232892639560f, - 0.367040345719767240f, -0.930205022892219070f, 0.366326779512573590f, - -0.930486265676149780f, - 0.365612997804773960f, -0.930766961078983710f, 0.364899001016267380f, - -0.931047108935595170f, - 0.364184789567079840f, -0.931326709081180430f, 0.363470363877363870f, - -0.931605761351257830f, - 0.362755724367397230f, -0.931884265581668150f, 0.362040871457584350f, - -0.932162221608574320f, - 0.361325805568454340f, -0.932439629268462360f, 0.360610527120662270f, - -0.932716488398140250f, - 0.359895036534988280f, -0.932992798834738850f, 0.359179334232336560f, - -0.933268560415712050f, - 0.358463420633736540f, -0.933543772978836170f, 0.357747296160342010f, - -0.933818436362210960f, - 0.357030961233430030f, -0.934092550404258870f, 0.356314416274402360f, - -0.934366114943725900f, - 0.355597661704783960f, -0.934639129819680780f, 0.354880697946222790f, - -0.934911594871516090f, - 0.354163525420490510f, -0.935183509938947500f, 0.353446144549480870f, - -0.935454874862014620f, - 0.352728555755210730f, -0.935725689481080370f, 0.352010759459819240f, - -0.935995953636831300f, - 0.351292756085567150f, -0.936265667170278260f, 0.350574546054837570f, - -0.936534829922755500f, - 0.349856129790135030f, -0.936803441735921560f, 0.349137507714085030f, - -0.937071502451759190f, - 0.348418680249434510f, -0.937339011912574960f, 0.347699647819051490f, - -0.937605969960999990f, - 0.346980410845923680f, -0.937872376439989890f, 0.346260969753160170f, - -0.938138231192824360f, - 0.345541324963989150f, -0.938403534063108060f, 0.344821476901759290f, - -0.938668284894770170f, - 0.344101425989938980f, -0.938932483532064490f, 0.343381172652115100f, - -0.939196129819569900f, - 0.342660717311994380f, -0.939459223602189920f, 0.341940060393402300f, - -0.939721764725153340f, - 0.341219202320282410f, -0.939983753034013940f, 0.340498143516697100f, - -0.940245188374650880f, - 0.339776884406826960f, -0.940506070593268300f, 0.339055425414969640f, - -0.940766399536396070f, - 0.338333766965541290f, -0.941026175050889260f, 0.337611909483074680f, - -0.941285396983928660f, - 0.336889853392220050f, -0.941544065183020810f, 0.336167599117744690f, - -0.941802179495997650f, - 0.335445147084531660f, -0.942059739771017310f, 0.334722497717581220f, - -0.942316745856563780f, - 0.333999651442009490f, -0.942573197601446870f, 0.333276608683047980f, - -0.942829094854802710f, - 0.332553369866044220f, -0.943084437466093490f, 0.331829935416461220f, - -0.943339225285107720f, - 0.331106305759876430f, -0.943593458161960390f, 0.330382481321982950f, - -0.943847135947092690f, - 0.329658462528587550f, -0.944100258491272660f, 0.328934249805612200f, - -0.944352825645594750f, - 0.328209843579092660f, -0.944604837261480260f, 0.327485244275178060f, - -0.944856293190677210f, - 0.326760452320131790f, -0.945107193285260610f, 0.326035468140330350f, - -0.945357537397632290f, - 0.325310292162262980f, -0.945607325380521280f, 0.324584924812532150f, - -0.945856557086983910f, - 0.323859366517852960f, -0.946105232370403340f, 0.323133617705052330f, - -0.946353351084490590f, - 0.322407678801070020f, -0.946600913083283530f, 0.321681550232956640f, - -0.946847918221148000f, - 0.320955232427875210f, -0.947094366352777220f, 0.320228725813100020f, - -0.947340257333191940f, - 0.319502030816015750f, -0.947585591017741090f, 0.318775147864118480f, - -0.947830367262101010f, - 0.318048077385015060f, -0.948074585922276230f, 0.317320819806421790f, - -0.948318246854599090f, - 0.316593375556165850f, -0.948561349915730270f, 0.315865745062184070f, - -0.948803894962658380f, - 0.315137928752522440f, -0.949045881852700560f, 0.314409927055336820f, - -0.949287310443502010f, - 0.313681740398891570f, -0.949528180593036670f, 0.312953369211560200f, - -0.949768492159606680f, - 0.312224813921825050f, -0.950008245001843000f, 0.311496074958275970f, - -0.950247438978705230f, - 0.310767152749611470f, -0.950486073949481700f, 0.310038047724638000f, - -0.950724149773789610f, - 0.309308760312268780f, -0.950961666311575080f, 0.308579290941525030f, - -0.951198623423113230f, - 0.307849640041534980f, -0.951435020969008340f, 0.307119808041533100f, - -0.951670858810193860f, - 0.306389795370861080f, -0.951906136807932230f, 0.305659602458966230f, - -0.952140854823815830f, - 0.304929229735402430f, -0.952375012719765880f, 0.304198677629829270f, - -0.952608610358033240f, - 0.303467946572011370f, -0.952841647601198720f, 0.302737036991819140f, - -0.953074124312172200f, - 0.302005949319228200f, -0.953306040354193750f, 0.301274683984318000f, - -0.953537395590833280f, - 0.300543241417273400f, -0.953768189885990330f, 0.299811622048383460f, - -0.953998423103894490f, - 0.299079826308040480f, -0.954228095109105670f, 0.298347854626741570f, - -0.954457205766513490f, - 0.297615707435086310f, -0.954685754941338340f, 0.296883385163778270f, - -0.954913742499130520f, - 0.296150888243623960f, -0.955141168305770670f, 0.295418217105532070f, - -0.955368032227470240f, - 0.294685372180514330f, -0.955594334130771110f, 0.293952353899684770f, - -0.955820073882545420f, - 0.293219162694258680f, -0.956045251349996410f, 0.292485798995553830f, - -0.956269866400658140f, - 0.291752263234989370f, -0.956493918902394990f, 0.291018555844085090f, - -0.956717408723403050f, - 0.290284677254462330f, -0.956940335732208940f, 0.289550627897843140f, - -0.957162699797670100f, - 0.288816408206049480f, -0.957384500788975860f, 0.288082018611004300f, - -0.957605738575646240f, - 0.287347459544729570f, -0.957826413027532910f, 0.286612731439347790f, - -0.958046524014818600f, - 0.285877834727080730f, -0.958266071408017670f, 0.285142769840248720f, - -0.958485055077976100f, - 0.284407537211271820f, -0.958703474895871600f, 0.283672137272668550f, - -0.958921330733213060f, - 0.282936570457055390f, -0.959138622461841890f, 0.282200837197147500f, - -0.959355349953930790f, - 0.281464937925758050f, -0.959571513081984520f, 0.280728873075797190f, - -0.959787111718839900f, - 0.279992643080273380f, -0.960002145737665850f, 0.279256248372291240f, - -0.960216615011963430f, - 0.278519689385053060f, -0.960430519415565790f, 0.277782966551857800f, - -0.960643858822638470f, - 0.277046080306099950f, -0.960856633107679660f, 0.276309031081271030f, - -0.961068842145519350f, - 0.275571819310958250f, -0.961280485811320640f, 0.274834445428843940f, - -0.961491563980579000f, - 0.274096909868706330f, -0.961702076529122540f, 0.273359213064418790f, - -0.961912023333112100f, - 0.272621355449948980f, -0.962121404269041580f, 0.271883337459359890f, - -0.962330219213737400f, - 0.271145159526808070f, -0.962538468044359160f, 0.270406822086544820f, - -0.962746150638399410f, - 0.269668325572915200f, -0.962953266873683880f, 0.268929670420357310f, - -0.963159816628371360f, - 0.268190857063403180f, -0.963365799780954050f, 0.267451885936677740f, - -0.963571216210257210f, - 0.266712757474898420f, -0.963776065795439840f, 0.265973472112875530f, - -0.963980348415994110f, - 0.265234030285511900f, -0.964184063951745720f, 0.264494432427801630f, - -0.964387212282854290f, - 0.263754678974831510f, -0.964589793289812650f, 0.263014770361779060f, - -0.964791806853447900f, - 0.262274707023913590f, -0.964993252854920320f, 0.261534489396595630f, - -0.965194131175724720f, - 0.260794117915275570f, -0.965394441697689400f, 0.260053593015495130f, - -0.965594184302976830f, - 0.259312915132886350f, -0.965793358874083570f, 0.258572084703170390f, - -0.965991965293840570f, - 0.257831102162158930f, -0.966190003445412620f, 0.257089967945753230f, - -0.966387473212298790f, - 0.256348682489942910f, -0.966584374478333120f, 0.255607246230807550f, - -0.966780707127683270f, - 0.254865659604514630f, -0.966976471044852070f, 0.254123923047320620f, - -0.967171666114676640f, - 0.253382036995570270f, -0.967366292222328510f, 0.252640001885695580f, - -0.967560349253314360f, - 0.251897818154216910f, -0.967753837093475510f, 0.251155486237742030f, - -0.967946755628987800f, - 0.250413006572965280f, -0.968139104746362330f, 0.249670379596668520f, - -0.968330884332445300f, - 0.248927605745720260f, -0.968522094274417270f, 0.248184685457074780f, - -0.968712734459794780f, - 0.247441619167773440f, -0.968902804776428870f, 0.246698407314942500f, - -0.969092305112506100f, - 0.245955050335794590f, -0.969281235356548530f, 0.245211548667627680f, - -0.969469595397412950f, - 0.244467902747824210f, -0.969657385124292450f, 0.243724113013852130f, - -0.969844604426714830f, - 0.242980179903263980f, -0.970031253194543970f, 0.242236103853696070f, - -0.970217331317979160f, - 0.241491885302869300f, -0.970402838687555500f, 0.240747524688588540f, - -0.970587775194143630f, - 0.240003022448741500f, -0.970772140728950350f, 0.239258379021300120f, - -0.970955935183517970f, - 0.238513594844318500f, -0.971139158449725090f, 0.237768670355934210f, - -0.971321810419786160f, - 0.237023605994367340f, -0.971503890986251780f, 0.236278402197919620f, - -0.971685400042008540f, - 0.235533059404975460f, -0.971866337480279400f, 0.234787578054001080f, - -0.972046703194623500f, - 0.234041958583543460f, -0.972226497078936270f, 0.233296201432231560f, - -0.972405719027449770f, - 0.232550307038775330f, -0.972584368934732210f, 0.231804275841964780f, - -0.972762446695688570f, - 0.231058108280671280f, -0.972939952205560070f, 0.230311804793845530f, - -0.973116885359925130f, - 0.229565365820518870f, -0.973293246054698250f, 0.228818791799802360f, - -0.973469034186130950f, - 0.228072083170885790f, -0.973644249650811870f, 0.227325240373038830f, - -0.973818892345666100f, - 0.226578263845610110f, -0.973992962167955830f, 0.225831154028026200f, - -0.974166459015280320f, - 0.225083911359792780f, -0.974339382785575860f, 0.224336536280493690f, - -0.974511733377115720f, - 0.223589029229790020f, -0.974683510688510670f, 0.222841390647421280f, - -0.974854714618708430f, - 0.222093620973203590f, -0.975025345066994120f, 0.221345720647030810f, - -0.975195401932990370f, - 0.220597690108873650f, -0.975364885116656870f, 0.219849529798778750f, - -0.975533794518291360f, - 0.219101240156869770f, -0.975702130038528570f, 0.218352821623346430f, - -0.975869891578341030f, - 0.217604274638483670f, -0.976037079039039020f, 0.216855599642632570f, - -0.976203692322270560f, - 0.216106797076219600f, -0.976369731330021140f, 0.215357867379745550f, - -0.976535195964614470f, - 0.214608810993786920f, -0.976700086128711840f, 0.213859628358993830f, - -0.976864401725312640f, - 0.213110319916091360f, -0.977028142657754390f, 0.212360886105878580f, - -0.977191308829712280f, - 0.211611327369227610f, -0.977353900145199960f, 0.210861644147084830f, - -0.977515916508569280f, - 0.210111836880469720f, -0.977677357824509930f, 0.209361906010474190f, - -0.977838223998050430f, - 0.208611851978263460f, -0.977998514934557140f, 0.207861675225075150f, - -0.978158230539735050f, - 0.207111376192218560f, -0.978317370719627650f, 0.206360955321075680f, - -0.978475935380616830f, - 0.205610413053099320f, -0.978633924429423100f, 0.204859749829814420f, - -0.978791337773105670f, - 0.204108966092817010f, -0.978948175319062200f, 0.203358062283773370f, - -0.979104436975029250f, - 0.202607038844421110f, -0.979260122649082020f, 0.201855896216568160f, - -0.979415232249634780f, - 0.201104634842091960f, -0.979569765685440520f, 0.200353255162940420f, - -0.979723722865591170f, - 0.199601757621131050f, -0.979877103699517640f, 0.198850142658750120f, - -0.980029908096989980f, - 0.198098410717953730f, -0.980182135968117320f, 0.197346562240966000f, - -0.980333787223347960f, - 0.196594597670080220f, -0.980484861773469380f, 0.195842517447657990f, - -0.980635359529608120f, - 0.195090322016128330f, -0.980785280403230430f, 0.194338011817988600f, - -0.980934624306141640f, - 0.193585587295803750f, -0.981083391150486590f, 0.192833048892205290f, - -0.981231580848749730f, - 0.192080397049892380f, -0.981379193313754560f, 0.191327632211630990f, - -0.981526228458664660f, - 0.190574754820252800f, -0.981672686196983110f, 0.189821765318656580f, - -0.981818566442552500f, - 0.189068664149806280f, -0.981963869109555240f, 0.188315451756732120f, - -0.982108594112513610f, - 0.187562128582529740f, -0.982252741366289370f, 0.186808695070359330f, - -0.982396310786084690f, - 0.186055151663446630f, -0.982539302287441240f, 0.185301498805082040f, - -0.982681715786240860f, - 0.184547736938619640f, -0.982823551198705240f, 0.183793866507478390f, - -0.982964808441396440f, - 0.183039887955141060f, -0.983105487431216290f, 0.182285801725153320f, - -0.983245588085407070f, - 0.181531608261125130f, -0.983385110321551180f, 0.180777308006728670f, - -0.983524054057571260f, - 0.180022901405699510f, -0.983662419211730250f, 0.179268388901835880f, - -0.983800205702631490f, - 0.178513770938997590f, -0.983937413449218920f, 0.177759047961107140f, - -0.984074042370776450f, - 0.177004220412148860f, -0.984210092386929030f, 0.176249288736167940f, - -0.984345563417641900f, - 0.175494253377271400f, -0.984480455383220930f, 0.174739114779627310f, - -0.984614768204312600f, - 0.173983873387463850f, -0.984748501801904210f, 0.173228529645070490f, - -0.984881656097323700f, - 0.172473083996796030f, -0.985014231012239840f, 0.171717536887049970f, - -0.985146226468662230f, - 0.170961888760301360f, -0.985277642388941220f, 0.170206140061078120f, - -0.985408478695768420f, - 0.169450291233967930f, -0.985538735312176060f, 0.168694342723617440f, - -0.985668412161537550f, - 0.167938294974731230f, -0.985797509167567370f, 0.167182148432072880f, - -0.985926026254321130f, - 0.166425903540464220f, -0.986053963346195440f, 0.165669560744784140f, - -0.986181320367928270f, - 0.164913120489970090f, -0.986308097244598670f, 0.164156583221015890f, - -0.986434293901627070f, - 0.163399949382973230f, -0.986559910264775410f, 0.162643219420950450f, - -0.986684946260146690f, - 0.161886393780111910f, -0.986809401814185420f, 0.161129472905678780f, - -0.986933276853677710f, - 0.160372457242928400f, -0.987056571305750970f, 0.159615347237193090f, - -0.987179285097874340f, - 0.158858143333861390f, -0.987301418157858430f, 0.158100845978377090f, - -0.987422970413855410f, - 0.157343455616238280f, -0.987543941794359230f, 0.156585972692998590f, - -0.987664332228205710f, - 0.155828397654265320f, -0.987784141644572180f, 0.155070730945700510f, - -0.987903369972977790f, - 0.154312973013020240f, -0.988022017143283530f, 0.153555124301993500f, - -0.988140083085692570f, - 0.152797185258443410f, -0.988257567730749460f, 0.152039156328246160f, - -0.988374471009341280f, - 0.151281037957330250f, -0.988490792852696590f, 0.150522830591677370f, - -0.988606533192386450f, - 0.149764534677321620f, -0.988721691960323780f, 0.149006150660348470f, - -0.988836269088763540f, - 0.148247678986896200f, -0.988950264510302990f, 0.147489120103153680f, - -0.989063678157881540f, - 0.146730474455361750f, -0.989176509964781010f, 0.145971742489812370f, - -0.989288759864625170f, - 0.145212924652847520f, -0.989400427791380380f, 0.144454021390860440f, - -0.989511513679355190f, - 0.143695033150294580f, -0.989622017463200780f, 0.142935960377642700f, - -0.989731939077910570f, - 0.142176803519448000f, -0.989841278458820530f, 0.141417563022303130f, - -0.989950035541608990f, - 0.140658239332849240f, -0.990058210262297120f, 0.139898832897777380f, - -0.990165802557248400f, - 0.139139344163826280f, -0.990272812363169110f, 0.138379773577783890f, - -0.990379239617108160f, - 0.137620121586486180f, -0.990485084256456980f, 0.136860388636816430f, - -0.990590346218950150f, - 0.136100575175706200f, -0.990695025442664630f, 0.135340681650134330f, - -0.990799121866020370f, - 0.134580708507126220f, -0.990902635427780010f, 0.133820656193754690f, - -0.991005566067049370f, - 0.133060525157139180f, -0.991107913723276780f, 0.132300315844444680f, - -0.991209678336254060f, - 0.131540028702883280f, -0.991310859846115440f, 0.130779664179711790f, - -0.991411458193338540f, - 0.130019222722233350f, -0.991511473318743900f, 0.129258704777796270f, - -0.991610905163495370f, - 0.128498110793793220f, -0.991709753669099530f, 0.127737441217662280f, - -0.991808018777406430f, - 0.126976696496885980f, -0.991905700430609330f, 0.126215877078990400f, - -0.992002798571244520f, - 0.125454983411546210f, -0.992099313142191800f, 0.124694015942167770f, - -0.992195244086673920f, - 0.123932975118512200f, -0.992290591348257370f, 0.123171861388280650f, - -0.992385354870851670f, - 0.122410675199216280f, -0.992479534598709970f, 0.121649416999105540f, - -0.992573130476428810f, - 0.120888087235777220f, -0.992666142448948020f, 0.120126686357101580f, - -0.992758570461551140f, - 0.119365214810991350f, -0.992850414459865100f, 0.118603673045400840f, - -0.992941674389860470f, - 0.117842061508325020f, -0.993032350197851410f, 0.117080380647800550f, - -0.993122441830495580f, - 0.116318630911904880f, -0.993211949234794500f, 0.115556812748755290f, - -0.993300872358093280f, - 0.114794926606510250f, -0.993389211148080650f, 0.114032972933367300f, - -0.993476965552789190f, - 0.113270952177564360f, -0.993564135520595300f, 0.112508864787378830f, - -0.993650721000219120f, - 0.111746711211126660f, -0.993736721940724600f, 0.110984491897163380f, - -0.993822138291519660f, - 0.110222207293883180f, -0.993906970002356060f, 0.109459857849718030f, - -0.993991217023329380f, - 0.108697444013138670f, -0.994074879304879370f, 0.107934966232653760f, - -0.994157956797789730f, - 0.107172424956808870f, -0.994240449453187900f, 0.106409820634187840f, - -0.994322357222545810f, - 0.105647153713410700f, -0.994403680057679100f, 0.104884424643134970f, - -0.994484417910747600f, - 0.104121633872054730f, -0.994564570734255420f, 0.103358781848899700f, - -0.994644138481050710f, - 0.102595869022436280f, -0.994723121104325700f, 0.101832895841466670f, - -0.994801518557617110f, - 0.101069862754827880f, -0.994879330794805620f, 0.100306770211392820f, - -0.994956557770116380f, - 0.099543618660069444f, -0.995033199438118630f, 0.098780408549799664f, - -0.995109255753726110f, - 0.098017140329560770f, -0.995184726672196820f, 0.097253814448363354f, - -0.995259612149133390f, - 0.096490431355252607f, -0.995333912140482280f, 0.095726991499307315f, - -0.995407626602534900f, - 0.094963495329639061f, -0.995480755491926940f, 0.094199943295393190f, - -0.995553298765638470f, - 0.093436335845747912f, -0.995625256380994310f, 0.092672673429913366f, - -0.995696628295663520f, - 0.091908956497132696f, -0.995767414467659820f, 0.091145185496681130f, - -0.995837614855341610f, - 0.090381360877865011f, -0.995907229417411720f, 0.089617483090022917f, - -0.995976258112917790f, - 0.088853552582524684f, -0.996044700901251970f, 0.088089569804770507f, - -0.996112557742151130f, - 0.087325535206192226f, -0.996179828595696870f, 0.086561449236251239f, - -0.996246513422315520f, - 0.085797312344439880f, -0.996312612182778000f, 0.085033124980280414f, - -0.996378124838200210f, - 0.084268887593324127f, -0.996443051350042630f, 0.083504600633152404f, - -0.996507391680110820f, - 0.082740264549375803f, -0.996571145790554840f, 0.081975879791633108f, - -0.996634313643869900f, - 0.081211446809592386f, -0.996696895202896060f, 0.080446966052950097f, - -0.996758890430818000f, - 0.079682437971430126f, -0.996820299291165670f, 0.078917863014785095f, - -0.996881121747813850f, - 0.078153241632794315f, -0.996941357764982160f, 0.077388574275265049f, - -0.997001007307235290f, - 0.076623861392031617f, -0.997060070339482960f, 0.075859103432954503f, - -0.997118546826979980f, - 0.075094300847921291f, -0.997176436735326190f, 0.074329454086845867f, - -0.997233740030466160f, - 0.073564563599667454f, -0.997290456678690210f, 0.072799629836351618f, - -0.997346586646633230f, - 0.072034653246889416f, -0.997402129901275300f, 0.071269634281296415f, - -0.997457086409941910f, - 0.070504573389614009f, -0.997511456140303450f, 0.069739471021907376f, - -0.997565239060375750f, - 0.068974327628266732f, -0.997618435138519550f, 0.068209143658806454f, - -0.997671044343441000f, - 0.067443919563664106f, -0.997723066644191640f, 0.066678655793001543f, - -0.997774502010167820f, - 0.065913352797003930f, -0.997825350411111640f, 0.065148011025878860f, - -0.997875611817110150f, - 0.064382630929857410f, -0.997925286198596000f, 0.063617212959193190f, - -0.997974373526346990f, - 0.062851757564161420f, -0.998022873771486240f, 0.062086265195060247f, - -0.998070786905482340f, - 0.061320736302208648f, -0.998118112900149180f, 0.060555171335947781f, - -0.998164851727646240f, - 0.059789570746640007f, -0.998211003360478190f, 0.059023934984667986f, - -0.998256567771495180f, - 0.058258264500435732f, -0.998301544933892890f, 0.057492559744367684f, - -0.998345934821212370f, - 0.056726821166907783f, -0.998389737407340160f, 0.055961049218520520f, - -0.998432952666508440f, - 0.055195244349690031f, -0.998475580573294770f, 0.054429407010919147f, - -0.998517621102622210f, - 0.053663537652730679f, -0.998559074229759310f, 0.052897636725665401f, - -0.998599939930320370f, - 0.052131704680283317f, -0.998640218180265270f, 0.051365741967162731f, - -0.998679908955899090f, - 0.050599749036899337f, -0.998719012233872940f, 0.049833726340107257f, - -0.998757527991183340f, - 0.049067674327418126f, -0.998795456205172410f, 0.048301593449480172f, - -0.998832796853527990f, - 0.047535484156959261f, -0.998869549914283560f, 0.046769346900537960f, - -0.998905715365818290f, - 0.046003182130914644f, -0.998941293186856870f, 0.045236990298804750f, - -0.998976283356469820f, - 0.044470771854938744f, -0.999010685854073380f, 0.043704527250063421f, - -0.999044500659429290f, - 0.042938256934940959f, -0.999077727752645360f, 0.042171961360348002f, - -0.999110367114174890f, - 0.041405640977076712f, -0.999142418724816910f, 0.040639296235933854f, - -0.999173882565716380f, - 0.039872927587739845f, -0.999204758618363890f, 0.039106535483329839f, - -0.999235046864595850f, - 0.038340120373552791f, -0.999264747286594420f, 0.037573682709270514f, - -0.999293859866887790f, - 0.036807222941358991f, -0.999322384588349540f, 0.036040741520706299f, - -0.999350321434199440f, - 0.035274238898213947f, -0.999377670388002850f, 0.034507715524795889f, - -0.999404431433671300f, - 0.033741171851377642f, -0.999430604555461730f, 0.032974608328897315f, - -0.999456189737977340f, - 0.032208025408304704f, -0.999481186966166950f, 0.031441423540560343f, - -0.999505596225325310f, - 0.030674803176636581f, -0.999529417501093140f, 0.029908164767516655f, - -0.999552650779456990f, - 0.029141508764193740f, -0.999575296046749220f, 0.028374835617672258f, - -0.999597353289648380f, - 0.027608145778965820f, -0.999618822495178640f, 0.026841439699098527f, - -0.999639703650710200f, - 0.026074717829104040f, -0.999659996743959220f, 0.025307980620024630f, - -0.999679701762987930f, - 0.024541228522912264f, -0.999698818696204250f, 0.023774461988827676f, - -0.999717347532362190f, - 0.023007681468839410f, -0.999735288260561680f, 0.022240887414024919f, - -0.999752640870248840f, - 0.021474080275469605f, -0.999769405351215280f, 0.020707260504265912f, - -0.999785581693599210f, - 0.019940428551514598f, -0.999801169887884260f, 0.019173584868322699f, - -0.999816169924900410f, - 0.018406729905804820f, -0.999830581795823400f, 0.017639864115082195f, - -0.999844405492175240f, - 0.016872987947281773f, -0.999857641005823860f, 0.016106101853537263f, - -0.999870288328982950f, - 0.015339206284988220f, -0.999882347454212560f, 0.014572301692779104f, - -0.999893818374418490f, - 0.013805388528060349f, -0.999904701082852900f, 0.013038467241987433f, - -0.999914995573113470f, - 0.012271538285719944f, -0.999924701839144500f, 0.011504602110422875f, - -0.999933819875236000f, - 0.010737659167264572f, -0.999942349676023910f, 0.009970709907418029f, - -0.999950291236490480f, - 0.009203754782059960f, -0.999957644551963900f, 0.008436794242369860f, - -0.999964409618118280f, - 0.007669828739531077f, -0.999970586430974140f, 0.006902858724729877f, - -0.999976174986897610f, - 0.006135884649154515f, -0.999981175282601110f, 0.005368906963996303f, - -0.999985587315143200f, - 0.004601926120448672f, -0.999989411081928400f, 0.003834942569706248f, - -0.999992646580707190f, - 0.003067956762966138f, -0.999995293809576190f, 0.002300969151425887f, - -0.999997352766978210f, - 0.001533980186284766f, -0.999998823451701880f, 0.000766990318742846f, - -0.999999705862882230f -}; - -static const float32_t Weights_8192[16384] = { - 1.000000000000000000f, -0.000000000000000000f, 0.999999981616429330f, - -0.000191747597310703f, - 0.999999926465717890f, -0.000383495187571396f, 0.999999834547867670f, - -0.000575242763732066f, - 0.999999705862882230f, -0.000766990318742704f, 0.999999540410766110f, - -0.000958737845553301f, - 0.999999338191525530f, -0.001150485337113849f, 0.999999099205167830f, - -0.001342232786374338f, - 0.999998823451701880f, -0.001533980186284766f, 0.999998510931137790f, - -0.001725727529795126f, - 0.999998161643486980f, -0.001917474809855419f, 0.999997775588762350f, - -0.002109222019415644f, - 0.999997352766978210f, -0.002300969151425805f, 0.999996893178149880f, - -0.002492716198835908f, - 0.999996396822294350f, -0.002684463154595962f, 0.999995863699429940f, - -0.002876210011655979f, - 0.999995293809576190f, -0.003067956762965976f, 0.999994687152754080f, - -0.003259703401475973f, - 0.999994043728985820f, -0.003451449920135994f, 0.999993363538295150f, - -0.003643196311896068f, - 0.999992646580707190f, -0.003834942569706228f, 0.999991892856248010f, - -0.004026688686516512f, - 0.999991102364945590f, -0.004218434655276963f, 0.999990275106828920f, - -0.004410180468937631f, - 0.999989411081928400f, -0.004601926120448571f, 0.999988510290275690f, - -0.004793671602759841f, - 0.999987572731904080f, -0.004985416908821511f, 0.999986598406848000f, - -0.005177162031583651f, - 0.999985587315143200f, -0.005368906963996343f, 0.999984539456826970f, - -0.005560651699009674f, - 0.999983454831937730f, -0.005752396229573736f, 0.999982333440515350f, - -0.005944140548638633f, - 0.999981175282601110f, -0.006135884649154475f, 0.999979980358237650f, - -0.006327628524071378f, - 0.999978748667468830f, -0.006519372166339468f, 0.999977480210339940f, - -0.006711115568908879f, - 0.999976174986897610f, -0.006902858724729756f, 0.999974832997189810f, - -0.007094601626752250f, - 0.999973454241265940f, -0.007286344267926521f, 0.999972038719176730f, - -0.007478086641202744f, - 0.999970586430974140f, -0.007669828739531097f, 0.999969097376711580f, - -0.007861570555861772f, - 0.999967571556443780f, -0.008053312083144972f, 0.999966008970226920f, - -0.008245053314330906f, - 0.999964409618118280f, -0.008436794242369799f, 0.999962773500176930f, - -0.008628534860211886f, - 0.999961100616462820f, -0.008820275160807412f, 0.999959390967037450f, - -0.009012015137106633f, - 0.999957644551963900f, -0.009203754782059819f, 0.999955861371306100f, - -0.009395494088617252f, - 0.999954041425129780f, -0.009587233049729225f, 0.999952184713501780f, - -0.009778971658346044f, - 0.999950291236490480f, -0.009970709907418031f, 0.999948360994165400f, - -0.010162447789895513f, - 0.999946393986597460f, -0.010354185298728842f, 0.999944390213859060f, - -0.010545922426868378f, - 0.999942349676023910f, -0.010737659167264491f, 0.999940272373166960f, - -0.010929395512867571f, - 0.999938158305364590f, -0.011121131456628021f, 0.999936007472694620f, - -0.011312866991496258f, - 0.999933819875236000f, -0.011504602110422714f, 0.999931595513069200f, - -0.011696336806357838f, - 0.999929334386276070f, -0.011888071072252092f, 0.999927036494939640f, - -0.012079804901055957f, - 0.999924701839144500f, -0.012271538285719925f, 0.999922330418976490f, - -0.012463271219194511f, - 0.999919922234522750f, -0.012655003694430242f, 0.999917477285871770f, - -0.012846735704377662f, - 0.999914995573113470f, -0.013038467241987334f, 0.999912477096339240f, - -0.013230198300209835f, - 0.999909921855641540f, -0.013421928871995765f, 0.999907329851114300f, - -0.013613658950295740f, - 0.999904701082852900f, -0.013805388528060391f, 0.999902035550953920f, - -0.013997117598240367f, - 0.999899333255515390f, -0.014188846153786345f, 0.999896594196636680f, - -0.014380574187649006f, - 0.999893818374418490f, -0.014572301692779064f, 0.999891005788962950f, - -0.014764028662127246f, - 0.999888156440373320f, -0.014955755088644296f, 0.999885270328754520f, - -0.015147480965280987f, - 0.999882347454212560f, -0.015339206284988100f, 0.999879387816854930f, - -0.015530931040716447f, - 0.999876391416790410f, -0.015722655225416857f, 0.999873358254129260f, - -0.015914378832040183f, - 0.999870288328982950f, -0.016106101853537287f, 0.999867181641464380f, - -0.016297824282859065f, - 0.999864038191687680f, -0.016489546112956437f, 0.999860857979768540f, - -0.016681267336780332f, - 0.999857641005823860f, -0.016872987947281710f, 0.999854387269971890f, - -0.017064707937411563f, - 0.999851096772332190f, -0.017256427300120877f, 0.999847769513025900f, - -0.017448146028360693f, - 0.999844405492175240f, -0.017639864115082053f, 0.999841004709904000f, - -0.017831581553236039f, - 0.999837567166337090f, -0.018023298335773746f, 0.999834092861600960f, - -0.018215014455646290f, - 0.999830581795823400f, -0.018406729905804820f, 0.999827033969133420f, - -0.018598444679200511f, - 0.999823449381661570f, -0.018790158768784555f, 0.999819828033539420f, - -0.018981872167508178f, - 0.999816169924900410f, -0.019173584868322623f, 0.999812475055878780f, - -0.019365296864179156f, - 0.999808743426610520f, -0.019557008148029083f, 0.999804975037232870f, - -0.019748718712823729f, - 0.999801169887884260f, -0.019940428551514441f, 0.999797327978704690f, - -0.020132137657052594f, - 0.999793449309835270f, -0.020323846022389593f, 0.999789533881418780f, - -0.020515553640476875f, - 0.999785581693599210f, -0.020707260504265895f, 0.999781592746521670f, - -0.020898966606708137f, - 0.999777567040332940f, -0.021090671940755121f, 0.999773504575180990f, - -0.021282376499358387f, - 0.999769405351215280f, -0.021474080275469508f, 0.999765269368586450f, - -0.021665783262040078f, - 0.999761096627446610f, -0.021857485452021735f, 0.999756887127949080f, - -0.022049186838366135f, - 0.999752640870248840f, -0.022240887414024961f, 0.999748357854501780f, - -0.022432587171949934f, - 0.999744038080865430f, -0.022624286105092803f, 0.999739681549498660f, - -0.022815984206405345f, - 0.999735288260561680f, -0.023007681468839369f, 0.999730858214216030f, - -0.023199377885346720f, - 0.999726391410624470f, -0.023391073448879258f, 0.999721887849951310f, - -0.023582768152388894f, - 0.999717347532362190f, -0.023774461988827555f, 0.999712770458023870f, - -0.023966154951147210f, - 0.999708156627104880f, -0.024157847032299864f, 0.999703506039774650f, - -0.024349538225237534f, - 0.999698818696204250f, -0.024541228522912288f, 0.999694094596566000f, - -0.024732917918276223f, - 0.999689333741033640f, -0.024924606404281468f, 0.999684536129782140f, - -0.025116293973880186f, - 0.999679701762987930f, -0.025307980620024571f, 0.999674830640828740f, - -0.025499666335666853f, - 0.999669922763483760f, -0.025691351113759295f, 0.999664978131133310f, - -0.025883034947254198f, - 0.999659996743959220f, -0.026074717829103901f, 0.999654978602144690f, - -0.026266399752260760f, - 0.999649923705874240f, -0.026458080709677187f, 0.999644832055333610f, - -0.026649760694305618f, - 0.999639703650710200f, -0.026841439699098531f, 0.999634538492192300f, - -0.027033117717008431f, - 0.999629336579970110f, -0.027224794740987875f, 0.999624097914234570f, - -0.027416470763989436f, - 0.999618822495178640f, -0.027608145778965740f, 0.999613510322995950f, - -0.027799819778869445f, - 0.999608161397882110f, -0.027991492756653243f, 0.999602775720033530f, - -0.028183164705269874f, - 0.999597353289648380f, -0.028374835617672099f, 0.999591894106925950f, - -0.028566505486812728f, - 0.999586398172067070f, -0.028758174305644615f, 0.999580865485273700f, - -0.028949842067120635f, - 0.999575296046749220f, -0.029141508764193722f, 0.999569689856698580f, - -0.029333174389816835f, - 0.999564046915327740f, -0.029524838936942976f, 0.999558367222844300f, - -0.029716502398525191f, - 0.999552650779456990f, -0.029908164767516555f, 0.999546897585375960f, - -0.030099826036870198f, - 0.999541107640812940f, -0.030291486199539284f, 0.999535280945980540f, - -0.030483145248477009f, - 0.999529417501093140f, -0.030674803176636626f, 0.999523517306366350f, - -0.030866459976971412f, - 0.999517580362016990f, -0.031058115642434700f, 0.999511606668263440f, - -0.031249770165979861f, - 0.999505596225325310f, -0.031441423540560301f, 0.999499549033423640f, - -0.031633075759129478f, - 0.999493465092780590f, -0.031824726814640887f, 0.999487344403620080f, - -0.032016376700048060f, - 0.999481186966166950f, -0.032208025408304586f, 0.999474992780647780f, - -0.032399672932364086f, - 0.999468761847290050f, -0.032591319265180226f, 0.999462494166323160f, - -0.032782964399706724f, - 0.999456189737977340f, -0.032974608328897335f, 0.999449848562484530f, - -0.033166251045705857f, - 0.999443470640077770f, -0.033357892543086139f, 0.999437055970991530f, - -0.033549532813992068f, - 0.999430604555461730f, -0.033741171851377580f, 0.999424116393725640f, - -0.033932809648196664f, - 0.999417591486021720f, -0.034124446197403326f, 0.999411029832589780f, - -0.034316081491951651f, - 0.999404431433671300f, -0.034507715524795750f, 0.999397796289508640f, - -0.034699348288889799f, - 0.999391124400346050f, -0.034890979777188004f, 0.999384415766428560f, - -0.035082609982644619f, - 0.999377670388002850f, -0.035274238898213947f, 0.999370888265317170f, - -0.035465866516850353f, - 0.999364069398620550f, -0.035657492831508222f, 0.999357213788164000f, - -0.035849117835142018f, - 0.999350321434199440f, -0.036040741520706229f, 0.999343392336980220f, - -0.036232363881155395f, - 0.999336426496761240f, -0.036423984909444110f, 0.999329423913798420f, - -0.036615604598527030f, - 0.999322384588349540f, -0.036807222941358832f, 0.999315308520673070f, - -0.036998839930894263f, - 0.999308195711029470f, -0.037190455560088119f, 0.999301046159680070f, - -0.037382069821895229f, - 0.999293859866887790f, -0.037573682709270494f, 0.999286636832916740f, - -0.037765294215168860f, - 0.999279377058032710f, -0.037956904332545310f, 0.999272080542502610f, - -0.038148513054354891f, - 0.999264747286594420f, -0.038340120373552694f, 0.999257377290578060f, - -0.038531726283093870f, - 0.999249970554724420f, -0.038723330775933623f, 0.999242527079305830f, - -0.038914933845027193f, - 0.999235046864595850f, -0.039106535483329888f, 0.999227529910869610f, - -0.039298135683797059f, - 0.999219976218403530f, -0.039489734439384118f, 0.999212385787475290f, - -0.039681331743046527f, - 0.999204758618363890f, -0.039872927587739811f, 0.999197094711349880f, - -0.040064521966419520f, - 0.999189394066714920f, -0.040256114872041282f, 0.999181656684742350f, - -0.040447706297560782f, - 0.999173882565716380f, -0.040639296235933736f, 0.999166071709923000f, - -0.040830884680115948f, - 0.999158224117649430f, -0.041022471623063238f, 0.999150339789184110f, - -0.041214057057731519f, - 0.999142418724816910f, -0.041405640977076739f, 0.999134460924839150f, - -0.041597223374054894f, - 0.999126466389543390f, -0.041788804241622061f, 0.999118435119223490f, - -0.041980383572734356f, - 0.999110367114174890f, -0.042171961360347947f, 0.999102262374694130f, - -0.042363537597419072f, - 0.999094120901079070f, -0.042555112276904020f, 0.999085942693629270f, - -0.042746685391759132f, - 0.999077727752645360f, -0.042938256934940820f, 0.999069476078429330f, - -0.043129826899405546f, - 0.999061187671284600f, -0.043321395278109825f, 0.999052862531515930f, - -0.043512962064010237f, - 0.999044500659429290f, -0.043704527250063421f, 0.999036102055332330f, - -0.043896090829226068f, - 0.999027666719533690f, -0.044087652794454944f, 0.999019194652343460f, - -0.044279213138706849f, - 0.999010685854073380f, -0.044470771854938668f, 0.999002140325035980f, - -0.044662328936107325f, - 0.998993558065545680f, -0.044853884375169815f, 0.998984939075918010f, - -0.045045438165083197f, - 0.998976283356469820f, -0.045236990298804590f, 0.998967590907519300f, - -0.045428540769291155f, - 0.998958861729386080f, -0.045620089569500144f, 0.998950095822391250f, - -0.045811636692388844f, - 0.998941293186856870f, -0.046003182130914623f, 0.998932453823106690f, - -0.046194725878034908f, - 0.998923577731465780f, -0.046386267926707157f, 0.998914664912260440f, - -0.046577808269888943f, - 0.998905715365818290f, -0.046769346900537863f, 0.998896729092468410f, - -0.046960883811611592f, - 0.998887706092541290f, -0.047152418996067869f, 0.998878646366368690f, - -0.047343952446864478f, - 0.998869549914283560f, -0.047535484156959303f, 0.998860416736620520f, - -0.047727014119310254f, - 0.998851246833715180f, -0.047918542326875327f, 0.998842040205904840f, - -0.048110068772612591f, - 0.998832796853527990f, -0.048301593449480144f, 0.998823516776924490f, - -0.048493116350436176f, - 0.998814199976435390f, -0.048684637468438943f, 0.998804846452403420f, - -0.048876156796446760f, - 0.998795456205172410f, -0.049067674327418015f, 0.998786029235087640f, - -0.049259190054311140f, - 0.998776565542495610f, -0.049450703970084664f, 0.998767065127744380f, - -0.049642216067697156f, - 0.998757527991183340f, -0.049833726340107277f, 0.998747954133162860f, - -0.050025234780273729f, - 0.998738343554035230f, -0.050216741381155311f, 0.998728696254153720f, - -0.050408246135710856f, - 0.998719012233872940f, -0.050599749036899282f, 0.998709291493549030f, - -0.050791250077679581f, - 0.998699534033539280f, -0.050982749251010803f, 0.998689739854202620f, - -0.051174246549852080f, - 0.998679908955899090f, -0.051365741967162593f, 0.998670041338990070f, - -0.051557235495901611f, - 0.998660137003838490f, -0.051748727129028456f, 0.998650195950808280f, - -0.051940216859502536f, - 0.998640218180265270f, -0.052131704680283324f, 0.998630203692576050f, - -0.052323190584330347f, - 0.998620152488108870f, -0.052514674564603223f, 0.998610064567233340f, - -0.052706156614061632f, - 0.998599939930320370f, -0.052897636725665324f, 0.998589778577742230f, - -0.053089114892374133f, - 0.998579580509872500f, -0.053280591107147945f, 0.998569345727086110f, - -0.053472065362946727f, - 0.998559074229759310f, -0.053663537652730520f, 0.998548766018269920f, - -0.053855007969459440f, - 0.998538421092996730f, -0.054046476306093660f, 0.998528039454320230f, - -0.054237942655593452f, - 0.998517621102622210f, -0.054429407010919133f, 0.998507166038285490f, - -0.054620869365031105f, - 0.998496674261694640f, -0.054812329710889854f, 0.998486145773235360f, - -0.055003788041455920f, - 0.998475580573294770f, -0.055195244349689934f, 0.998464978662261250f, - -0.055386698628552597f, - 0.998454340040524800f, -0.055578150871004678f, 0.998443664708476340f, - -0.055769601070007030f, - 0.998432952666508440f, -0.055961049218520569f, 0.998422203915015020f, - -0.056152495309506292f, - 0.998411418454391300f, -0.056343939335925290f, 0.998400596285033640f, - -0.056535381290738700f, - 0.998389737407340160f, -0.056726821166907748f, 0.998378841821709990f, - -0.056918258957393740f, - 0.998367909528543820f, -0.057109694655158062f, 0.998356940528243420f, - -0.057301128253162158f, - 0.998345934821212370f, -0.057492559744367566f, 0.998334892407855000f, - -0.057683989121735904f, - 0.998323813288577560f, -0.057875416378228857f, 0.998312697463787260f, - -0.058066841506808194f, - 0.998301544933892890f, -0.058258264500435752f, 0.998290355699304350f, - -0.058449685352073476f, - 0.998279129760433200f, -0.058641104054683341f, 0.998267867117692110f, - -0.058832520601227435f, - 0.998256567771495180f, -0.059023934984667931f, 0.998245231722257880f, - -0.059215347197967061f, - 0.998233858970396850f, -0.059406757234087150f, 0.998222449516330550f, - -0.059598165085990591f, - 0.998211003360478190f, -0.059789570746639868f, 0.998199520503260660f, - -0.059980974208997548f, - 0.998188000945100300f, -0.060172375466026259f, 0.998176444686420530f, - -0.060363774510688743f, - 0.998164851727646240f, -0.060555171335947788f, 0.998153222069203760f, - -0.060746565934766288f, - 0.998141555711520520f, -0.060937958300107203f, 0.998129852655025630f, - -0.061129348424933588f, - 0.998118112900149180f, -0.061320736302208578f, 0.998106336447323050f, - -0.061512121924895378f, - 0.998094523296980010f, -0.061703505285957298f, 0.998082673449554590f, - -0.061894886378357716f, - 0.998070786905482340f, -0.062086265195060088f, 0.998058863665200250f, - -0.062277641729027972f, - 0.998046903729146840f, -0.062469015973224996f, 0.998034907097761770f, - -0.062660387920614874f, - 0.998022873771486240f, -0.062851757564161406f, 0.998010803750762450f, - -0.063043124896828492f, - 0.997998697036034390f, -0.063234489911580066f, 0.997986553627747020f, - -0.063425852601380228f, - 0.997974373526346990f, -0.063617212959193106f, 0.997962156732281950f, - -0.063808570977982898f, - 0.997949903246001190f, -0.063999926650713940f, 0.997937613067955250f, - -0.064191279970350637f, - 0.997925286198596000f, -0.064382630929857465f, 0.997912922638376610f, - -0.064573979522198982f, - 0.997900522387751620f, -0.064765325740339885f, 0.997888085447177110f, - -0.064956669577244872f, - 0.997875611817110150f, -0.065148011025878833f, 0.997863101498009500f, - -0.065339350079206632f, - 0.997850554490335110f, -0.065530686730193327f, 0.997837970794548280f, - -0.065722020971803990f, - 0.997825350411111640f, -0.065913352797003805f, 0.997812693340489280f, - -0.066104682198758077f, - 0.997799999583146470f, -0.066296009170032130f, 0.997787269139549960f, - -0.066487333703791451f, - 0.997774502010167820f, -0.066678655793001557f, 0.997761698195469560f, - -0.066869975430628115f, - 0.997748857695925690f, -0.067061292609636822f, 0.997735980512008620f, - -0.067252607322993499f, - 0.997723066644191640f, -0.067443919563664051f, 0.997710116092949570f, - -0.067635229324614479f, - 0.997697128858758500f, -0.067826536598810869f, 0.997684104942096030f, - -0.068017841379219388f, - 0.997671044343441000f, -0.068209143658806329f, 0.997657947063273710f, - -0.068400443430538013f, - 0.997644813102075420f, -0.068591740687380942f, 0.997631642460329320f, - -0.068783035422301630f, - 0.997618435138519550f, -0.068974327628266746f, 0.997605191137131640f, - -0.069165617298242985f, - 0.997591910456652630f, -0.069356904425197208f, 0.997578593097570800f, - -0.069548189002096306f, - 0.997565239060375750f, -0.069739471021907307f, 0.997551848345558430f, - -0.069930750477597309f, - 0.997538420953611340f, -0.070122027362133521f, 0.997524956885027960f, - -0.070313301668483250f, - 0.997511456140303450f, -0.070504573389613856f, 0.997497918719934210f, - -0.070695842518492855f, - 0.997484344624417930f, -0.070887109048087801f, 0.997470733854253670f, - -0.071078372971366405f, - 0.997457086409941910f, -0.071269634281296401f, 0.997443402291984360f, - -0.071460892970845680f, - 0.997429681500884180f, -0.071652149032982212f, 0.997415924037145960f, - -0.071843402460674027f, - 0.997402129901275300f, -0.072034653246889332f, 0.997388299093779460f, - -0.072225901384596322f, - 0.997374431615167150f, -0.072417146866763413f, 0.997360527465947940f, - -0.072608389686358993f, - 0.997346586646633230f, -0.072799629836351673f, 0.997332609157735470f, - -0.072990867309710036f, - 0.997318594999768600f, -0.073182102099402888f, 0.997304544173247990f, - -0.073373334198399032f, - 0.997290456678690210f, -0.073564563599667426f, 0.997276332516613180f, - -0.073755790296177098f, - 0.997262171687536170f, -0.073947014280897200f, 0.997247974191979860f, - -0.074138235546796979f, - 0.997233740030466280f, -0.074329454086845756f, 0.997219469203518670f, - -0.074520669894013000f, - 0.997205161711661850f, -0.074711882961268211f, 0.997190817555421940f, - -0.074903093281581082f, - 0.997176436735326190f, -0.075094300847921305f, 0.997162019251903290f, - -0.075285505653258769f, - 0.997147565105683480f, -0.075476707690563388f, 0.997133074297198110f, - -0.075667906952805231f, - 0.997118546826979980f, -0.075859103432954447f, 0.997103982695563330f, - -0.076050297123981259f, - 0.997089381903483400f, -0.076241488018856066f, 0.997074744451277310f, - -0.076432676110549283f, - 0.997060070339482960f, -0.076623861392031492f, 0.997045359568640040f, - -0.076815043856273343f, - 0.997030612139289450f, -0.077006223496245640f, 0.997015828051973310f, - -0.077197400304919200f, - 0.997001007307235290f, -0.077388574275265049f, 0.996986149905620180f, - -0.077579745400254224f, - 0.996971255847674320f, -0.077770913672857947f, 0.996956325133945280f, - -0.077962079086047492f, - 0.996941357764982160f, -0.078153241632794232f, 0.996926353741335090f, - -0.078344401306069705f, - 0.996911313063555740f, -0.078535558098845479f, 0.996896235732197210f, - -0.078726712004093299f, - 0.996881121747813850f, -0.078917863014784942f, 0.996865971110961310f, - -0.079109011123892375f, - 0.996850783822196610f, -0.079300156324387597f, 0.996835559882078170f, - -0.079491298609242769f, - 0.996820299291165670f, -0.079682437971430126f, 0.996805002050020430f, - -0.079873574403921996f, - 0.996789668159204560f, -0.080064707899690890f, 0.996774297619282050f, - -0.080255838451709319f, - 0.996758890430818000f, -0.080446966052950014f, 0.996743446594378860f, - -0.080638090696385709f, - 0.996727966110532490f, -0.080829212374989329f, 0.996712448979848010f, - -0.081020331081733857f, - 0.996696895202896060f, -0.081211446809592441f, 0.996681304780248300f, - -0.081402559551538245f, - 0.996665677712478160f, -0.081593669300544652f, 0.996650014000160070f, - -0.081784776049585076f, - 0.996634313643869900f, -0.081975879791633066f, 0.996618576644185070f, - -0.082166980519662314f, - 0.996602803001684130f, -0.082358078226646536f, 0.996586992716946950f, - -0.082549172905559673f, - 0.996571145790554840f, -0.082740264549375692f, 0.996555262223090540f, - -0.082931353151068699f, - 0.996539342015137940f, -0.083122438703612911f, 0.996523385167282450f, - -0.083313521199982685f, - 0.996507391680110820f, -0.083504600633152432f, 0.996491361554210920f, - -0.083695676996096716f, - 0.996475294790172160f, -0.083886750281790226f, 0.996459191388585410f, - -0.084077820483207694f, - 0.996443051350042630f, -0.084268887593324071f, 0.996426874675137240f, - -0.084459951605114325f, - 0.996410661364464100f, -0.084651012511553617f, 0.996394411418619290f, - -0.084842070305617134f, - 0.996378124838200210f, -0.085033124980280275f, 0.996361801623805720f, - -0.085224176528518478f, - 0.996345441776035900f, -0.085415224943307333f, 0.996329045295492380f, - -0.085606270217622529f, - 0.996312612182778000f, -0.085797312344439894f, 0.996296142438496850f, - -0.085988351316735337f, - 0.996279636063254650f, -0.086179387127484894f, 0.996263093057658140f, - -0.086370419769664752f, - 0.996246513422315520f, -0.086561449236251170f, 0.996229897157836500f, - -0.086752475520220543f, - 0.996213244264832040f, -0.086943498614549378f, 0.996196554743914220f, - -0.087134518512214307f, - 0.996179828595696980f, -0.087325535206192059f, 0.996163065820794950f, - -0.087516548689459531f, - 0.996146266419824620f, -0.087707558954993659f, 0.996129430393403740f, - -0.087898565995771588f, - 0.996112557742151130f, -0.088089569804770507f, 0.996095648466687300f, - -0.088280570374967740f, - 0.996078702567633980f, -0.088471567699340767f, 0.996061720045614000f, - -0.088662561770867149f, - 0.996044700901251970f, -0.088853552582524600f, 0.996027645135173610f, - -0.089044540127290892f, - 0.996010552748005870f, -0.089235524398144014f, 0.995993423740377360f, - -0.089426505388061961f, - 0.995976258112917790f, -0.089617483090022959f, 0.995959055866258320f, - -0.089808457497005278f, - 0.995941817001031350f, -0.089999428601987341f, 0.995924541517870800f, - -0.090190396397947695f, - 0.995907229417411720f, -0.090381360877864983f, 0.995889880700290720f, - -0.090572322034717989f, - 0.995872495367145730f, -0.090763279861485621f, 0.995855073418615790f, - -0.090954234351146926f, - 0.995837614855341610f, -0.091145185496681005f, 0.995820119677964910f, - -0.091336133291067184f, - 0.995802587887129160f, -0.091527077727284828f, 0.995785019483478750f, - -0.091718018798313455f, - 0.995767414467659820f, -0.091908956497132724f, 0.995749772840319510f, - -0.092099890816722388f, - 0.995732094602106430f, -0.092290821750062355f, 0.995714379753670610f, - -0.092481749290132600f, - 0.995696628295663520f, -0.092672673429913310f, 0.995678840228737540f, - -0.092863594162384724f, - 0.995661015553546910f, -0.093054511480527249f, 0.995643154270746900f, - -0.093245425377321375f, - 0.995625256380994310f, -0.093436335845747787f, 0.995607321884947050f, - -0.093627242878787195f, - 0.995589350783264600f, -0.093818146469420549f, 0.995571343076607770f, - -0.094009046610628838f, - 0.995553298765638470f, -0.094199943295393204f, 0.995535217851020390f, - -0.094390836516694943f, - 0.995517100333418110f, -0.094581726267515445f, 0.995498946213497770f, - -0.094772612540836243f, - 0.995480755491926940f, -0.094963495329638992f, 0.995462528169374420f, - -0.095154374626905486f, - 0.995444264246510340f, -0.095345250425617617f, 0.995425963724006160f, - -0.095536122718757471f, - 0.995407626602534900f, -0.095726991499307162f, 0.995389252882770690f, - -0.095917856760249040f, - 0.995370842565388990f, -0.096108718494565509f, 0.995352395651066810f, - -0.096299576695239128f, - 0.995333912140482280f, -0.096490431355252593f, 0.995315392034315070f, - -0.096681282467588725f, - 0.995296835333246090f, -0.096872130025230471f, 0.995278242037957670f, - -0.097062974021160917f, - 0.995259612149133390f, -0.097253814448363271f, 0.995240945667458130f, - -0.097444651299820870f, - 0.995222242593618360f, -0.097635484568517200f, 0.995203502928301510f, - -0.097826314247435861f, - 0.995184726672196930f, -0.098017140329560604f, 0.995165913825994620f, - -0.098207962807875276f, - 0.995147064390386470f, -0.098398781675363881f, 0.995128178366065490f, - -0.098589596925010584f, - 0.995109255753726110f, -0.098780408549799623f, 0.995090296554064000f, - -0.098971216542715429f, - 0.995071300767776170f, -0.099162020896742503f, 0.995052268395561050f, - -0.099352821604865540f, - 0.995033199438118630f, -0.099543618660069319f, 0.995014093896149700f, - -0.099734412055338825f, - 0.994994951770357020f, -0.099925201783659073f, 0.994975773061444140f, - -0.100115987838015310f, - 0.994956557770116380f, -0.100306770211392860f, 0.994937305897080070f, - -0.100497548896777200f, - 0.994918017443043200f, -0.100688323887153960f, 0.994898692408714870f, - -0.100879095175508860f, - 0.994879330794805620f, -0.101069862754827820f, 0.994859932602027320f, - -0.101260626618096830f, - 0.994840497831093180f, -0.101451386758302080f, 0.994821026482717860f, - -0.101642143168429830f, - 0.994801518557617110f, -0.101832895841466530f, 0.994781974056508260f, - -0.102023644770398740f, - 0.994762392980109930f, -0.102214389948213210f, 0.994742775329142010f, - -0.102405131367896720f, - 0.994723121104325700f, -0.102595869022436280f, 0.994703430306383860f, - -0.102786602904819040f, - 0.994683702936040250f, -0.102977333008032220f, 0.994663938994020390f, - -0.103168059325063230f, - 0.994644138481050710f, -0.103358781848899610f, 0.994624301397859400f, - -0.103549500572529070f, - 0.994604427745175660f, -0.103740215488939370f, 0.994584517523730340f, - -0.103930926591118510f, - 0.994564570734255420f, -0.104121633872054590f, 0.994544587377484300f, - -0.104312337324735800f, - 0.994524567454151740f, -0.104503036942150570f, 0.994504510964993700f, - -0.104693732717287390f, - 0.994484417910747600f, -0.104884424643134970f, 0.994464288292152390f, - -0.105075112712682040f, - 0.994444122109948040f, -0.105265796918917600f, 0.994423919364875950f, - -0.105456477254830710f, - 0.994403680057679100f, -0.105647153713410620f, 0.994383404189101430f, - -0.105837826287646670f, - 0.994363091759888570f, -0.106028494970528410f, 0.994342742770787270f, - -0.106219159755045480f, - 0.994322357222545810f, -0.106409820634187680f, 0.994301935115913580f, - -0.106600477600944960f, - 0.994281476451641550f, -0.106791130648307390f, 0.994260981230481790f, - -0.106981779769265230f, - 0.994240449453187900f, -0.107172424956808840f, 0.994219881120514960f, - -0.107363066203928760f, - 0.994199276233218910f, -0.107553703503615620f, 0.994178634792057590f, - -0.107744336848860280f, - 0.994157956797789730f, -0.107934966232653650f, 0.994137242251175720f, - -0.108125591647986870f, - 0.994116491152977070f, -0.108316213087851170f, 0.994095703503956930f, - -0.108506830545237920f, - 0.994074879304879370f, -0.108697444013138720f, 0.994054018556510210f, - -0.108888053484545190f, - 0.994033121259616400f, -0.109078658952449240f, 0.994012187414966220f, - -0.109269260409842780f, - 0.993991217023329380f, -0.109459857849717980f, 0.993970210085476920f, - -0.109650451265067100f, - 0.993949166602181130f, -0.109841040648882600f, 0.993928086574215830f, - -0.110031625994157000f, - 0.993906970002356060f, -0.110222207293883060f, 0.993885816887378090f, - -0.110412784541053630f, - 0.993864627230059750f, -0.110603357728661730f, 0.993843401031180180f, - -0.110793926849700560f, - 0.993822138291519660f, -0.110984491897163390f, 0.993800839011860120f, - -0.111175052864043720f, - 0.993779503192984580f, -0.111365609743335160f, 0.993758130835677430f, - -0.111556162528031480f, - 0.993736721940724600f, -0.111746711211126590f, 0.993715276508913230f, - -0.111937255785614570f, - 0.993693794541031790f, -0.112127796244489640f, 0.993672276037870010f, - -0.112318332580746170f, - 0.993650721000219120f, -0.112508864787378690f, 0.993629129428871720f, - -0.112699392857381860f, - 0.993607501324621610f, -0.112889916783750520f, 0.993585836688263950f, - -0.113080436559479620f, - 0.993564135520595300f, -0.113270952177564350f, 0.993542397822413600f, - -0.113461463630999950f, - 0.993520623594518090f, -0.113651970912781870f, 0.993498812837709360f, - -0.113842474015905710f, - 0.993476965552789190f, -0.114032972933367200f, 0.993455081740560960f, - -0.114223467658162260f, - 0.993433161401829360f, -0.114413958183286920f, 0.993411204537400060f, - -0.114604444501737420f, - 0.993389211148080650f, -0.114794926606510080f, 0.993367181234679600f, - -0.114985404490601460f, - 0.993345114798006910f, -0.115175878147008190f, 0.993323011838873950f, - -0.115366347568727140f, - 0.993300872358093280f, -0.115556812748755260f, 0.993278696356479030f, - -0.115747273680089720f, - 0.993256483834846440f, -0.115937730355727780f, 0.993234234794012290f, - -0.116128182768666930f, - 0.993211949234794500f, -0.116318630911904750f, 0.993189627158012620f, - -0.116509074778439040f, - 0.993167268564487230f, -0.116699514361267690f, 0.993144873455040430f, - -0.116889949653388780f, - 0.993122441830495580f, -0.117080380647800590f, 0.993099973691677570f, - -0.117270807337501460f, - 0.993077469039412300f, -0.117461229715489990f, 0.993054927874527320f, - -0.117651647774764860f, - 0.993032350197851410f, -0.117842061508324980f, 0.993009736010214580f, - -0.118032470909169340f, - 0.992987085312448390f, -0.118222875970297170f, 0.992964398105385610f, - -0.118413276684707790f, - 0.992941674389860470f, -0.118603673045400720f, 0.992918914166708300f, - -0.118794065045375640f, - 0.992896117436765980f, -0.118984452677632340f, 0.992873284200871730f, - -0.119174835935170880f, - 0.992850414459865100f, -0.119365214810991350f, 0.992827508214586760f, - -0.119555589298094110f, - 0.992804565465879140f, -0.119745959389479600f, 0.992781586214585570f, - -0.119936325078148470f, - 0.992758570461551140f, -0.120126686357101500f, 0.992735518207621850f, - -0.120317043219339680f, - 0.992712429453645460f, -0.120507395657864130f, 0.992689304200470750f, - -0.120697743665676110f, - 0.992666142448948020f, -0.120888087235777080f, 0.992642944199928820f, - -0.121078426361168640f, - 0.992619709454266140f, -0.121268761034852600f, 0.992596438212814290f, - -0.121459091249830840f, - 0.992573130476428810f, -0.121649416999105530f, 0.992549786245966680f, - -0.121839738275678890f, - 0.992526405522286100f, -0.122030055072553360f, 0.992502988306246950f, - -0.122220367382731540f, - 0.992479534598709970f, -0.122410675199216200f, 0.992456044400537700f, - -0.122600978515010240f, - 0.992432517712593660f, -0.122791277323116770f, 0.992408954535742850f, - -0.122981571616539050f, - 0.992385354870851670f, -0.123171861388280480f, 0.992361718718787870f, - -0.123362146631344680f, - 0.992338046080420420f, -0.123552427338735370f, 0.992314336956619640f, - -0.123742703503456510f, - 0.992290591348257370f, -0.123932975118512160f, 0.992266809256206580f, - -0.124123242176906600f, - 0.992242990681341700f, -0.124313504671644230f, 0.992219135624538450f, - -0.124503762595729660f, - 0.992195244086673920f, -0.124694015942167640f, 0.992171316068626520f, - -0.124884264703963130f, - 0.992147351571276090f, -0.125074508874121170f, 0.992123350595503720f, - -0.125264748445647060f, - 0.992099313142191800f, -0.125454983411546230f, 0.992075239212224070f, - -0.125645213764824290f, - 0.992051128806485720f, -0.125835439498487000f, 0.992026981925863360f, - -0.126025660605540320f, - 0.992002798571244520f, -0.126215877078990350f, 0.991978578743518580f, - -0.126406088911843380f, - 0.991954322443575950f, -0.126596296097105850f, 0.991930029672308480f, - -0.126786498627784410f, - 0.991905700430609330f, -0.126976696496885870f, 0.991881334719373010f, - -0.127166889697417160f, - 0.991856932539495470f, -0.127357078222385400f, 0.991832493891873780f, - -0.127547262064797970f, - 0.991808018777406430f, -0.127737441217662310f, 0.991783507196993490f, - -0.127927615673986080f, - 0.991758959151536110f, -0.128117785426777130f, 0.991734374641936810f, - -0.128307950469043420f, - 0.991709753669099530f, -0.128498110793793170f, 0.991685096233929420f, - -0.128688266394034690f, - 0.991660402337333210f, -0.128878417262776550f, 0.991635671980218740f, - -0.129068563393027410f, - 0.991610905163495370f, -0.129258704777796140f, 0.991586101888073500f, - -0.129448841410091780f, - 0.991561262154865290f, -0.129638973282923560f, 0.991536385964783880f, - -0.129829100389300930f, - 0.991511473318743900f, -0.130019222722233350f, 0.991486524217661480f, - -0.130209340274730630f, - 0.991461538662453790f, -0.130399453039802690f, 0.991436516654039420f, - -0.130589561010459650f, - 0.991411458193338540f, -0.130779664179711710f, 0.991386363281272280f, - -0.130969762540569380f, - 0.991361231918763460f, -0.131159856086043270f, 0.991336064106736140f, - -0.131349944809144190f, - 0.991310859846115440f, -0.131540028702883120f, 0.991285619137828200f, - -0.131730107760271160f, - 0.991260341982802440f, -0.131920181974319790f, 0.991235028381967420f, - -0.132110251338040360f, - 0.991209678336254060f, -0.132300315844444650f, 0.991184291846594180f, - -0.132490375486544550f, - 0.991158868913921350f, -0.132680430257352070f, 0.991133409539170170f, - -0.132870480149879430f, - 0.991107913723276890f, -0.133060525157139060f, 0.991082381467178640f, - -0.133250565272143570f, - 0.991056812771814340f, -0.133440600487905680f, 0.991031207638124130f, - -0.133630630797438340f, - 0.991005566067049370f, -0.133820656193754720f, 0.990979888059532740f, - -0.134010676669868130f, - 0.990954173616518500f, -0.134200692218792020f, 0.990928422738951990f, - -0.134390702833540070f, - 0.990902635427780010f, -0.134580708507126170f, 0.990876811683950700f, - -0.134770709232564350f, - 0.990850951508413620f, -0.134960705002868750f, 0.990825054902119470f, - -0.135150695811053850f, - 0.990799121866020370f, -0.135340681650134210f, 0.990773152401069780f, - -0.135530662513124590f, - 0.990747146508222710f, -0.135720638393039910f, 0.990721104188435180f, - -0.135910609282895330f, - 0.990695025442664630f, -0.136100575175706200f, 0.990668910271870100f, - -0.136290536064487960f, - 0.990642758677011570f, -0.136480491942256280f, 0.990616570659050620f, - -0.136670442802027090f, - 0.990590346218950150f, -0.136860388636816380f, 0.990564085357674370f, - -0.137050329439640410f, - 0.990537788076188750f, -0.137240265203515590f, 0.990511454375460290f, - -0.137430195921458550f, - 0.990485084256457090f, -0.137620121586486040f, 0.990458677720148620f, - -0.137810042191615080f, - 0.990432234767505970f, -0.137999957729862790f, 0.990405755399501260f, - -0.138189868194246560f, - 0.990379239617108160f, -0.138379773577783890f, 0.990352687421301450f, - -0.138569673873492500f, - 0.990326098813057330f, -0.138759569074390350f, 0.990299473793353590f, - -0.138949459173495490f, - 0.990272812363169110f, -0.139139344163826200f, 0.990246114523483990f, - -0.139329224038400980f, - 0.990219380275280000f, -0.139519098790238490f, 0.990192609619540030f, - -0.139708968412357550f, - 0.990165802557248400f, -0.139898832897777210f, 0.990138959089390650f, - -0.140088692239516670f, - 0.990112079216953770f, -0.140278546430595420f, 0.990085162940925970f, - -0.140468395464033000f, - 0.990058210262297120f, -0.140658239332849210f, 0.990031221182058000f, - -0.140848078030064080f, - 0.990004195701200910f, -0.141037911548697710f, 0.989977133820719610f, - -0.141227739881770510f, - 0.989950035541608990f, -0.141417563022303020f, 0.989922900864865450f, - -0.141607380963316020f, - 0.989895729791486660f, -0.141797193697830390f, 0.989868522322471580f, - -0.141987001218867290f, - 0.989841278458820530f, -0.142176803519448030f, 0.989813998201535260f, - -0.142366600592594180f, - 0.989786681551618640f, -0.142556392431327340f, 0.989759328510075200f, - -0.142746179028669460f, - 0.989731939077910570f, -0.142935960377642670f, 0.989704513256131850f, - -0.143125736471269190f, - 0.989677051045747210f, -0.143315507302571500f, 0.989649552447766530f, - -0.143505272864572290f, - 0.989622017463200890f, -0.143695033150294470f, 0.989594446093062460f, - -0.143884788152760980f, - 0.989566838338365120f, -0.144074537864995160f, 0.989539194200123930f, - -0.144264282280020440f, - 0.989511513679355190f, -0.144454021390860470f, 0.989483796777076760f, - -0.144643755190539040f, - 0.989456043494307710f, -0.144833483672080210f, 0.989428253832068230f, - -0.145023206828508220f, - 0.989400427791380380f, -0.145212924652847460f, 0.989372565373267010f, - -0.145402637138122570f, - 0.989344666578752640f, -0.145592344277358340f, 0.989316731408863000f, - -0.145782046063579860f, - 0.989288759864625170f, -0.145971742489812210f, 0.989260751947067640f, - -0.146161433549080900f, - 0.989232707657220050f, -0.146351119234411460f, 0.989204626996113780f, - -0.146540799538829760f, - 0.989176509964781010f, -0.146730474455361750f, 0.989148356564255590f, - -0.146920143977033620f, - 0.989120166795572690f, -0.147109808096871820f, 0.989091940659768800f, - -0.147299466807902850f, - 0.989063678157881540f, -0.147489120103153570f, 0.989035379290950310f, - -0.147678767975650970f, - 0.989007044060015270f, -0.147868410418422220f, 0.988978672466118480f, - -0.148058047424494720f, - 0.988950264510302990f, -0.148247678986896030f, 0.988921820193613190f, - -0.148437305098653970f, - 0.988893339517095130f, -0.148626925752796540f, 0.988864822481795640f, - -0.148816540942351920f, - 0.988836269088763540f, -0.149006150660348450f, 0.988807679339048450f, - -0.149195754899814820f, - 0.988779053233701520f, -0.149385353653779720f, 0.988750390773775360f, - -0.149574946915272230f, - 0.988721691960323780f, -0.149764534677321510f, 0.988692956794401940f, - -0.149954116932956960f, - 0.988664185277066230f, -0.150143693675208190f, 0.988635377409374790f, - -0.150333264897105000f, - 0.988606533192386450f, -0.150522830591677400f, 0.988577652627162020f, - -0.150712390751955610f, - 0.988548735714763200f, -0.150901945370970040f, 0.988519782456253270f, - -0.151091494441751300f, - 0.988490792852696590f, -0.151281037957330220f, 0.988461766905159300f, - -0.151470575910737810f, - 0.988432704614708340f, -0.151660108295005310f, 0.988403605982412390f, - -0.151849635103164180f, - 0.988374471009341280f, -0.152039156328246050f, 0.988345299696566150f, - -0.152228671963282740f, - 0.988316092045159690f, -0.152418182001306330f, 0.988286848056195820f, - -0.152607686435349050f, - 0.988257567730749460f, -0.152797185258443440f, 0.988228251069897420f, - -0.152986678463622040f, - 0.988198898074717610f, -0.153176166043917840f, 0.988169508746289060f, - -0.153365647992363880f, - 0.988140083085692570f, -0.153555124301993450f, 0.988110621094009820f, - -0.153744594965840030f, - 0.988081122772324070f, -0.153934059976937350f, 0.988051588121720110f, - -0.154123519328319360f, - 0.988022017143283530f, -0.154312973013020100f, 0.987992409838101880f, - -0.154502421024073940f, - 0.987962766207263420f, -0.154691863354515430f, 0.987933086251858380f, - -0.154881299997379320f, - 0.987903369972977790f, -0.155070730945700510f, 0.987873617371714200f, - -0.155260156192514240f, - 0.987843828449161740f, -0.155449575730855850f, 0.987814003206415550f, - -0.155638989553760900f, - 0.987784141644572180f, -0.155828397654265230f, 0.987754243764729530f, - -0.156017800025404800f, - 0.987724309567986960f, -0.156207196660215900f, 0.987694339055445130f, - -0.156396587551734880f, - 0.987664332228205710f, -0.156585972692998430f, 0.987634289087372160f, - -0.156775352077043350f, - 0.987604209634049160f, -0.156964725696906780f, 0.987574093869342360f, - -0.157154093545625900f, - 0.987543941794359230f, -0.157343455616238250f, 0.987513753410208420f, - -0.157532811901781530f, - 0.987483528717999710f, -0.157722162395293630f, 0.987453267718844560f, - -0.157911507089812660f, - 0.987422970413855410f, -0.158100845978376980f, 0.987392636804146240f, - -0.158290179054025180f, - 0.987362266890832400f, -0.158479506309795960f, 0.987331860675030430f, - -0.158668827738728310f, - 0.987301418157858430f, -0.158858143333861450f, 0.987270939340435420f, - -0.159047453088234760f, - 0.987240424223882250f, -0.159236756994887850f, 0.987209872809320820f, - -0.159426055046860580f, - 0.987179285097874340f, -0.159615347237193060f, 0.987148661090667570f, - -0.159804633558925440f, - 0.987118000788826280f, -0.159993914005098270f, 0.987087304193477900f, - -0.160183188568752220f, - 0.987056571305750970f, -0.160372457242928280f, 0.987025802126775600f, - -0.160561720020667490f, - 0.986994996657682980f, -0.160750976895011220f, 0.986964154899605650f, - -0.160940227859001080f, - 0.986933276853677710f, -0.161129472905678810f, 0.986902362521034470f, - -0.161318712028086400f, - 0.986871411902812470f, -0.161507945219266120f, 0.986840425000149680f, - -0.161697172472260400f, - 0.986809401814185530f, -0.161886393780111830f, 0.986778342346060430f, - -0.162075609135863330f, - 0.986747246596916590f, -0.162264818532558000f, 0.986716114567897100f, - -0.162454021963239190f, - 0.986684946260146690f, -0.162643219420950310f, 0.986653741674811350f, - -0.162832410898735210f, - 0.986622500813038480f, -0.163021596389637840f, 0.986591223675976400f, - -0.163210775886702380f, - 0.986559910264775410f, -0.163399949382973230f, 0.986528560580586690f, - -0.163589116871495020f, - 0.986497174624562880f, -0.163778278345312670f, 0.986465752397857940f, - -0.163967433797471170f, - 0.986434293901627180f, -0.164156583221015810f, 0.986402799137027220f, - -0.164345726608992190f, - 0.986371268105216030f, -0.164534863954446000f, 0.986339700807353000f, - -0.164723995250423170f, - 0.986308097244598670f, -0.164913120489969890f, 0.986276457418115090f, - -0.165102239666132660f, - 0.986244781329065460f, -0.165291352771958000f, 0.986213068978614490f, - -0.165480459800492780f, - 0.986181320367928270f, -0.165669560744784120f, 0.986149535498173860f, - -0.165858655597879300f, - 0.986117714370520090f, -0.166047744352825790f, 0.986085856986136820f, - -0.166236827002671420f, - 0.986053963346195440f, -0.166425903540464100f, 0.986022033451868560f, - -0.166614973959252090f, - 0.985990067304330140f, -0.166804038252083730f, 0.985958064904755460f, - -0.166993096412007710f, - 0.985926026254321130f, -0.167182148432072940f, 0.985893951354205210f, - -0.167371194305328430f, - 0.985861840205586980f, -0.167560234024823560f, 0.985829692809647050f, - -0.167749267583607890f, - 0.985797509167567480f, -0.167938294974731170f, 0.985765289280531310f, - -0.168127316191243410f, - 0.985733033149723490f, -0.168316331226194830f, 0.985700740776329850f, - -0.168505340072635900f, - 0.985668412161537550f, -0.168694342723617330f, 0.985636047306535420f, - -0.168883339172189980f, - 0.985603646212513400f, -0.169072329411405010f, 0.985571208880662740f, - -0.169261313434313830f, - 0.985538735312176060f, -0.169450291233967960f, 0.985506225508247290f, - -0.169639262803419290f, - 0.985473679470071810f, -0.169828228135719850f, 0.985441097198846210f, - -0.170017187223921950f, - 0.985408478695768420f, -0.170206140061078070f, 0.985375823962037710f, - -0.170395086640240940f, - 0.985343132998854790f, -0.170584026954463590f, 0.985310405807421570f, - -0.170772960996799230f, - 0.985277642388941220f, -0.170961888760301220f, 0.985244842744618540f, - -0.171150810238023280f, - 0.985212006875659350f, -0.171339725423019310f, 0.985179134783271130f, - -0.171528634308343420f, - 0.985146226468662230f, -0.171717536887049970f, 0.985113281933042710f, - -0.171906433152193530f, - 0.985080301177623800f, -0.172095323096829010f, 0.985047284203618200f, - -0.172284206714011370f, - 0.985014231012239840f, -0.172473083996795950f, 0.984981141604703960f, - -0.172661954938238270f, - 0.984948015982227030f, -0.172850819531394080f, 0.984914854146027200f, - -0.173039677769319360f, - 0.984881656097323700f, -0.173228529645070320f, 0.984848421837337010f, - -0.173417375151703470f, - 0.984815151367289140f, -0.173606214282275410f, 0.984781844688403350f, - -0.173795047029843160f, - 0.984748501801904210f, -0.173983873387463820f, 0.984715122709017620f, - -0.174172693348194820f, - 0.984681707410970940f, -0.174361506905093750f, 0.984648255908992630f, - -0.174550314051218510f, - 0.984614768204312600f, -0.174739114779627200f, 0.984581244298162180f, - -0.174927909083378160f, - 0.984547684191773960f, -0.175116696955529920f, 0.984514087886381840f, - -0.175305478389141320f, - 0.984480455383220930f, -0.175494253377271430f, 0.984446786683527920f, - -0.175683021912979490f, - 0.984413081788540700f, -0.175871783989325040f, 0.984379340699498510f, - -0.176060539599367820f, - 0.984345563417641900f, -0.176249288736167880f, 0.984311749944212780f, - -0.176438031392785410f, - 0.984277900280454370f, -0.176626767562280880f, 0.984244014427611110f, - -0.176815497237715000f, - 0.984210092386929030f, -0.177004220412148750f, 0.984176134159655320f, - -0.177192937078643280f, - 0.984142139747038570f, -0.177381647230260040f, 0.984108109150328540f, - -0.177570350860060710f, - 0.984074042370776450f, -0.177759047961107170f, 0.984039939409634970f, - -0.177947738526461560f, - 0.984005800268157870f, -0.178136422549186300f, 0.983971624947600270f, - -0.178325100022344000f, - 0.983937413449218920f, -0.178513770938997510f, 0.983903165774271500f, - -0.178702435292209970f, - 0.983868881924017220f, -0.178891093075044720f, 0.983834561899716630f, - -0.179079744280565390f, - 0.983800205702631600f, -0.179268388901835750f, 0.983765813334025240f, - -0.179457026931919890f, - 0.983731384795162090f, -0.179645658363882160f, 0.983696920087308140f, - -0.179834283190787090f, - 0.983662419211730250f, -0.180022901405699510f, 0.983627882169697210f, - -0.180211513001684450f, - 0.983593308962478650f, -0.180400117971807240f, 0.983558699591345900f, - -0.180588716309133340f, - 0.983524054057571260f, -0.180777308006728590f, 0.983489372362428730f, - -0.180965893057658980f, - 0.983454654507193270f, -0.181154471454990810f, 0.983419900493141540f, - -0.181343043191790540f, - 0.983385110321551180f, -0.181531608261124970f, 0.983350283993701500f, - -0.181720166656061110f, - 0.983315421510872810f, -0.181908718369666160f, 0.983280522874346970f, - -0.182097263395007650f, - 0.983245588085407070f, -0.182285801725153300f, 0.983210617145337640f, - -0.182474333353171120f, - 0.983175610055424420f, -0.182662858272129270f, 0.983140566816954500f, - -0.182851376475096330f, - 0.983105487431216290f, -0.183039887955140950f, 0.983070371899499640f, - -0.183228392705332140f, - 0.983035220223095640f, -0.183416890718739100f, 0.983000032403296590f, - -0.183605381988431270f, - 0.982964808441396440f, -0.183793866507478450f, 0.982929548338690170f, - -0.183982344268950520f, - 0.982894252096474070f, -0.184170815265917720f, 0.982858919716046110f, - -0.184359279491450510f, - 0.982823551198705240f, -0.184547736938619620f, 0.982788146545751970f, - -0.184736187600495950f, - 0.982752705758487830f, -0.184924631470150790f, 0.982717228838215990f, - -0.185113068540655540f, - 0.982681715786240860f, -0.185301498805081900f, 0.982646166603868050f, - -0.185489922256501880f, - 0.982610581292404750f, -0.185678338887987630f, 0.982574959853159240f, - -0.185866748692611660f, - 0.982539302287441240f, -0.186055151663446630f, 0.982503608596561830f, - -0.186243547793565560f, - 0.982467878781833170f, -0.186431937076041610f, 0.982432112844569110f, - -0.186620319503948280f, - 0.982396310786084690f, -0.186808695070359270f, 0.982360472607696210f, - -0.186997063768348540f, - 0.982324598310721280f, -0.187185425590990330f, 0.982288687896478830f, - -0.187373780531359110f, - 0.982252741366289370f, -0.187562128582529600f, 0.982216758721474510f, - -0.187750469737576780f, - 0.982180739963357090f, -0.187938803989575910f, 0.982144685093261580f, - -0.188127131331602420f, - 0.982108594112513610f, -0.188315451756732120f, 0.982072467022440000f, - -0.188503765258040940f, - 0.982036303824369020f, -0.188692071828605230f, 0.982000104519630490f, - -0.188880371461501380f, - 0.981963869109555240f, -0.189068664149806190f, 0.981927597595475540f, - -0.189256949886596750f, - 0.981891289978725100f, -0.189445228664950230f, 0.981854946260638630f, - -0.189633500477944190f, - 0.981818566442552500f, -0.189821765318656410f, 0.981782150525804310f, - -0.190010023180164990f, - 0.981745698511732990f, -0.190198274055548150f, 0.981709210401678800f, - -0.190386517937884470f, - 0.981672686196983110f, -0.190574754820252740f, 0.981636125898989080f, - -0.190762984695732110f, - 0.981599529509040720f, -0.190951207557401800f, 0.981562897028483650f, - -0.191139423398341450f, - 0.981526228458664770f, -0.191327632211630900f, 0.981489523800932130f, - -0.191515833990350210f, - 0.981452783056635520f, -0.191704028727579800f, 0.981416006227125550f, - -0.191892216416400220f, - 0.981379193313754560f, -0.192080397049892440f, 0.981342344317876040f, - -0.192268570621137500f, - 0.981305459240844670f, -0.192456737123216840f, 0.981268538084016710f, - -0.192644896549212100f, - 0.981231580848749730f, -0.192833048892205230f, 0.981194587536402320f, - -0.193021194145278380f, - 0.981157558148334830f, -0.193209332301513960f, 0.981120492685908730f, - -0.193397463353994740f, - 0.981083391150486710f, -0.193585587295803610f, 0.981046253543432780f, - -0.193773704120023820f, - 0.981009079866112630f, -0.193961813819738840f, 0.980971870119892840f, - -0.194149916388032450f, - 0.980934624306141640f, -0.194338011817988600f, 0.980897342426228390f, - -0.194526100102691610f, - 0.980860024481523870f, -0.194714181235225960f, 0.980822670473400100f, - -0.194902255208676520f, - 0.980785280403230430f, -0.195090322016128250f, 0.980747854272389750f, - -0.195278381650666550f, - 0.980710392082253970f, -0.195466434105376980f, 0.980672893834200530f, - -0.195654479373345370f, - 0.980635359529608120f, -0.195842517447657850f, 0.980597789169856850f, - -0.196030548321400790f, - 0.980560182756327840f, -0.196218571987660880f, 0.980522540290404090f, - -0.196406588439524970f, - 0.980484861773469380f, -0.196594597670080220f, 0.980447147206909060f, - -0.196782599672414100f, - 0.980409396592109910f, -0.196970594439614340f, 0.980371609930459800f, - -0.197158581964768880f, - 0.980333787223347960f, -0.197346562240965920f, 0.980295928472165290f, - -0.197534535261294030f, - 0.980258033678303550f, -0.197722501018841920f, 0.980220102843156080f, - -0.197910459506698670f, - 0.980182135968117430f, -0.198098410717953560f, 0.980144133054583590f, - -0.198286354645696220f, - 0.980106094103951770f, -0.198474291283016390f, 0.980068019117620650f, - -0.198662220623004200f, - 0.980029908096990090f, -0.198850142658750090f, 0.979991761043461200f, - -0.199038057383344680f, - 0.979953577958436740f, -0.199225964789878830f, 0.979915358843320480f, - -0.199413864871443770f, - 0.979877103699517640f, -0.199601757621130970f, 0.979838812528434740f, - -0.199789643032032090f, - 0.979800485331479790f, -0.199977521097239150f, 0.979762122110061750f, - -0.200165391809844440f, - 0.979723722865591170f, -0.200353255162940450f, 0.979685287599479930f, - -0.200541111149619980f, - 0.979646816313141210f, -0.200728959762976140f, 0.979608309007989450f, - -0.200916800996102230f, - 0.979569765685440520f, -0.201104634842091900f, 0.979531186346911500f, - -0.201292461294039020f, - 0.979492570993820810f, -0.201480280345037730f, 0.979453919627588210f, - -0.201668091988182530f, - 0.979415232249634780f, -0.201855896216568050f, 0.979376508861383170f, - -0.202043693023289260f, - 0.979337749464256780f, -0.202231482401441450f, 0.979298954059681040f, - -0.202419264344120160f, - 0.979260122649082020f, -0.202607038844421130f, 0.979221255233887700f, - -0.202794805895440440f, - 0.979182351815526930f, -0.202982565490274440f, 0.979143412395430230f, - -0.203170317622019790f, - 0.979104436975029250f, -0.203358062283773320f, 0.979065425555756930f, - -0.203545799468632190f, - 0.979026378139047580f, -0.203733529169693920f, 0.978987294726337050f, - -0.203921251380056120f, - 0.978948175319062200f, -0.204108966092816870f, 0.978909019918661310f, - -0.204296673301074370f, - 0.978869828526574120f, -0.204484372997927240f, 0.978830601144241470f, - -0.204672065176474210f, - 0.978791337773105670f, -0.204859749829814420f, 0.978752038414610340f, - -0.205047426951047250f, - 0.978712703070200420f, -0.205235096533272350f, 0.978673331741322210f, - -0.205422758569589610f, - 0.978633924429423210f, -0.205610413053099240f, 0.978594481135952270f, - -0.205798059976901790f, - 0.978555001862359550f, -0.205985699334097910f, 0.978515486610096910f, - -0.206173331117788710f, - 0.978475935380616830f, -0.206360955321075510f, 0.978436348175373730f, - -0.206548571937059890f, - 0.978396724995823090f, -0.206736180958843690f, 0.978357065843421640f, - -0.206923782379529100f, - 0.978317370719627650f, -0.207111376192218560f, 0.978277639625900530f, - -0.207298962390014750f, - 0.978237872563701090f, -0.207486540966020650f, 0.978198069534491400f, - -0.207674111913339570f, - 0.978158230539735050f, -0.207861675225075070f, 0.978118355580896660f, - -0.208049230894330940f, - 0.978078444659442380f, -0.208236778914211330f, 0.978038497776839600f, - -0.208424319277820600f, - 0.977998514934557140f, -0.208611851978263490f, 0.977958496134064830f, - -0.208799377008644900f, - 0.977918441376834370f, -0.208986894362070070f, 0.977878350664338150f, - -0.209174404031644580f, - 0.977838223998050430f, -0.209361906010474160f, 0.977798061379446360f, - -0.209549400291664940f, - 0.977757862810002760f, -0.209736886868323290f, 0.977717628291197460f, - -0.209924365733555880f, - 0.977677357824509930f, -0.210111836880469610f, 0.977637051411420770f, - -0.210299300302171730f, - 0.977596709053411890f, -0.210486755991769720f, 0.977556330751966460f, - -0.210674203942371440f, - 0.977515916508569280f, -0.210861644147084860f, 0.977475466324706170f, - -0.211049076599018390f, - 0.977434980201864260f, -0.211236501291280710f, 0.977394458141532250f, - -0.211423918216980670f, - 0.977353900145199960f, -0.211611327369227550f, 0.977313306214358750f, - -0.211798728741130840f, - 0.977272676350500860f, -0.211986122325800330f, 0.977232010555120320f, - -0.212173508116346080f, - 0.977191308829712280f, -0.212360886105878420f, 0.977150571175773200f, - -0.212548256287508060f, - 0.977109797594800880f, -0.212735618654345930f, 0.977068988088294450f, - -0.212922973199503180f, - 0.977028142657754390f, -0.213110319916091360f, 0.976987261304682390f, - -0.213297658797222320f, - 0.976946344030581670f, -0.213484989836008050f, 0.976905390836956490f, - -0.213672313025560970f, - 0.976864401725312640f, -0.213859628358993750f, 0.976823376697157240f, - -0.214046935829419360f, - 0.976782315753998650f, -0.214234235429950990f, 0.976741218897346550f, - -0.214421527153702160f, - 0.976700086128711840f, -0.214608810993786760f, 0.976658917449606980f, - -0.214796086943318860f, - 0.976617712861545640f, -0.214983354995412820f, 0.976576472366042610f, - -0.215170615143183390f, - 0.976535195964614470f, -0.215357867379745550f, 0.976493883658778650f, - -0.215545111698214500f, - 0.976452535450054060f, -0.215732348091705880f, 0.976411151339961040f, - -0.215919576553335490f, - 0.976369731330021140f, -0.216106797076219520f, 0.976328275421757260f, - -0.216294009653474340f, - 0.976286783616693630f, -0.216481214278216730f, 0.976245255916355800f, - -0.216668410943563730f, - 0.976203692322270560f, -0.216855599642632620f, 0.976162092835966110f, - -0.217042780368540990f, - 0.976120457458971910f, -0.217229953114406790f, 0.976078786192818850f, - -0.217417117873348190f, - 0.976037079039039020f, -0.217604274638483640f, 0.975995335999165990f, - -0.217791423402931950f, - 0.975953557074734300f, -0.217978564159812200f, 0.975911742267280170f, - -0.218165696902243800f, - 0.975869891578341030f, -0.218352821623346320f, 0.975828005009455660f, - -0.218539938316239770f, - 0.975786082562163930f, -0.218727046974044440f, 0.975744124238007270f, - -0.218914147589880840f, - 0.975702130038528570f, -0.219101240156869800f, 0.975660099965271590f, - -0.219288324668132470f, - 0.975618034019781750f, -0.219475401116790310f, 0.975575932203605720f, - -0.219662469495965050f, - 0.975533794518291360f, -0.219849529798778700f, 0.975491620965388110f, - -0.220036582018353580f, - 0.975449411546446380f, -0.220223626147812380f, 0.975407166263018270f, - -0.220410662180277940f, - 0.975364885116656980f, -0.220597690108873510f, 0.975322568108916930f, - -0.220784709926722610f, - 0.975280215241354220f, -0.220971721626949110f, 0.975237826515525820f, - -0.221158725202677010f, - 0.975195401932990370f, -0.221345720647030810f, 0.975152941495307620f, - -0.221532707953135230f, - 0.975110445204038890f, -0.221719687114115220f, 0.975067913060746470f, - -0.221906658123096100f, - 0.975025345066994120f, -0.222093620973203510f, 0.974982741224347140f, - -0.222280575657563370f, - 0.974940101534371830f, -0.222467522169301880f, 0.974897425998635820f, - -0.222654460501545500f, - 0.974854714618708430f, -0.222841390647421120f, 0.974811967396159830f, - -0.223028312600055820f, - 0.974769184332561770f, -0.223215226352576980f, 0.974726365429487320f, - -0.223402131898112370f, - 0.974683510688510670f, -0.223589029229789990f, 0.974640620111207560f, - -0.223775918340738150f, - 0.974597693699155050f, -0.223962799224085460f, 0.974554731453931230f, - -0.224149671872960870f, - 0.974511733377115720f, -0.224336536280493600f, 0.974468699470289580f, - -0.224523392439813170f, - 0.974425629735034990f, -0.224710240344049430f, 0.974382524172935470f, - -0.224897079986332490f, - 0.974339382785575860f, -0.225083911359792830f, 0.974296205574542440f, - -0.225270734457561160f, - 0.974252992541422500f, -0.225457549272768540f, 0.974209743687805220f, - -0.225644355798546330f, - 0.974166459015280320f, -0.225831154028026170f, 0.974123138525439640f, - -0.226017943954340020f, - 0.974079782219875680f, -0.226204725570620190f, 0.974036390100182610f, - -0.226391498869999240f, - 0.973992962167955830f, -0.226578263845610000f, 0.973949498424792170f, - -0.226765020490585690f, - 0.973905998872289570f, -0.226951768798059810f, 0.973862463512047300f, - -0.227138508761166170f, - 0.973818892345666100f, -0.227325240373038860f, 0.973775285374748110f, - -0.227511963626812280f, - 0.973731642600896400f, -0.227698678515621170f, 0.973687964025715670f, - -0.227885385032600530f, - 0.973644249650811980f, -0.228072083170885730f, 0.973600499477792370f, - -0.228258772923612380f, - 0.973556713508265560f, -0.228445454283916470f, 0.973512891743841370f, - -0.228632127244934230f, - 0.973469034186131070f, -0.228818791799802220f, 0.973425140836747030f, - -0.229005447941657340f, - 0.973381211697303290f, -0.229192095663636770f, 0.973337246769414910f, - -0.229378734958878010f, - 0.973293246054698250f, -0.229565365820518870f, 0.973249209554771230f, - -0.229751988241697490f, - 0.973205137271252800f, -0.229938602215552210f, 0.973161029205763530f, - -0.230125207735221850f, - 0.973116885359925130f, -0.230311804793845440f, 0.973072705735360530f, - -0.230498393384562350f, - 0.973028490333694210f, -0.230684973500512200f, 0.972984239156551740f, - -0.230871545134835020f, - 0.972939952205560180f, -0.231058108280671110f, 0.972895629482347760f, - -0.231244662931161050f, - 0.972851270988544180f, -0.231431209079445750f, 0.972806876725780370f, - -0.231617746718666470f, - 0.972762446695688570f, -0.231804275841964780f, 0.972717980899902250f, - -0.231990796442482440f, - 0.972673479340056430f, -0.232177308513361710f, 0.972628942017787270f, - -0.232363812047745030f, - 0.972584368934732210f, -0.232550307038775240f, 0.972539760092530180f, - -0.232736793479595390f, - 0.972495115492821190f, -0.232923271363348980f, 0.972450435137246830f, - -0.233109740683179690f, - 0.972405719027449770f, -0.233296201432231590f, 0.972360967165074140f, - -0.233482653603649090f, - 0.972316179551765300f, -0.233669097190576820f, 0.972271356189170040f, - -0.233855532186159840f, - 0.972226497078936270f, -0.234041958583543430f, 0.972181602222713440f, - -0.234228376375873210f, - 0.972136671622152230f, -0.234414785556295160f, 0.972091705278904430f, - -0.234601186117955550f, - 0.972046703194623500f, -0.234787578054000970f, 0.972001665370963890f, - -0.234973961357578250f, - 0.971956591809581720f, -0.235160336021834730f, 0.971911482512134000f, - -0.235346702039917840f, - 0.971866337480279400f, -0.235533059404975490f, 0.971821156715677700f, - -0.235719408110155820f, - 0.971775940219990140f, -0.235905748148607370f, 0.971730687994879160f, - -0.236092079513478910f, - 0.971685400042008540f, -0.236278402197919570f, 0.971640076363043390f, - -0.236464716195078780f, - 0.971594716959650160f, -0.236651021498106380f, 0.971549321833496630f, - -0.236837318100152380f, - 0.971503890986251780f, -0.237023605994367200f, 0.971458424419585960f, - -0.237209885173901600f, - 0.971412922135170940f, -0.237396155631906610f, 0.971367384134679490f, - -0.237582417361533570f, - 0.971321810419786160f, -0.237768670355934190f, 0.971276200992166490f, - -0.237954914608260540f, - 0.971230555853497380f, -0.238141150111664840f, 0.971184875005457030f, - -0.238327376859299810f, - 0.971139158449725090f, -0.238513594844318420f, 0.971093406187982460f, - -0.238699804059873980f, - 0.971047618221911100f, -0.238886004499120040f, 0.971001794553194690f, - -0.239072196155210610f, - 0.970955935183517970f, -0.239258379021299980f, 0.970910040114567050f, - -0.239444553090542630f, - 0.970864109348029470f, -0.239630718356093560f, 0.970818142885593870f, - -0.239816874811108000f, - 0.970772140728950350f, -0.240003022448741500f, 0.970726102879790110f, - -0.240189161262149900f, - 0.970680029339806130f, -0.240375291244489450f, 0.970633920110692160f, - -0.240561412388916650f, - 0.970587775194143630f, -0.240747524688588430f, 0.970541594591857070f, - -0.240933628136661910f, - 0.970495378305530560f, -0.241119722726294590f, 0.970449126336863090f, - -0.241305808450644370f, - 0.970402838687555500f, -0.241491885302869330f, 0.970356515359309450f, - -0.241677953276128010f, - 0.970310156353828110f, -0.241864012363579180f, 0.970263761672816140f, - -0.242050062558382070f, - 0.970217331317979160f, -0.242236103853696010f, 0.970170865291024480f, - -0.242422136242680890f, - 0.970124363593660280f, -0.242608159718496810f, 0.970077826227596420f, - -0.242794174274304220f, - 0.970031253194543970f, -0.242980179903263870f, 0.969984644496215240f, - -0.243166176598536900f, - 0.969938000134323960f, -0.243352164353284740f, 0.969891320110585100f, - -0.243538143160669130f, - 0.969844604426714830f, -0.243724113013852160f, 0.969797853084430890f, - -0.243910073905996260f, - 0.969751066085452140f, -0.244096025830264210f, 0.969704243431498860f, - -0.244281968779819030f, - 0.969657385124292450f, -0.244467902747824150f, 0.969610491165555870f, - -0.244653827727443320f, - 0.969563561557013180f, -0.244839743711840670f, 0.969516596300390000f, - -0.245025650694180470f, - 0.969469595397413060f, -0.245211548667627540f, 0.969422558849810320f, - -0.245397437625346960f, - 0.969375486659311280f, -0.245583317560504060f, 0.969328378827646660f, - -0.245769188466264580f, - 0.969281235356548530f, -0.245955050335794590f, 0.969234056247750050f, - -0.246140903162260530f, - 0.969186841502985950f, -0.246326746938829030f, 0.969139591123992280f, - -0.246512581658667210f, - 0.969092305112506210f, -0.246698407314942410f, 0.969044983470266240f, - -0.246884223900822430f, - 0.968997626199012420f, -0.247070031409475250f, 0.968950233300485800f, - -0.247255829834069300f, - 0.968902804776428870f, -0.247441619167773270f, 0.968855340628585580f, - -0.247627399403756280f, - 0.968807840858700970f, -0.247813170535187670f, 0.968760305468521430f, - -0.247998932555237110f, - 0.968712734459794780f, -0.248184685457074780f, 0.968665127834270060f, - -0.248370429233870980f, - 0.968617485593697540f, -0.248556163878796560f, 0.968569807739828930f, - -0.248741889385022480f, - 0.968522094274417380f, -0.248927605745720150f, 0.968474345199216820f, - -0.249113312954061360f, - 0.968426560515983190f, -0.249299011003218190f, 0.968378740226473300f, - -0.249484699886362960f, - 0.968330884332445190f, -0.249670379596668550f, 0.968282992835658660f, - -0.249856050127307990f, - 0.968235065737874320f, -0.250041711471454650f, 0.968187103040854420f, - -0.250227363622282370f, - 0.968139104746362440f, -0.250413006572965220f, 0.968091070856162970f, - -0.250598640316677670f, - 0.968043001372022260f, -0.250784264846594500f, 0.967994896295707670f, - -0.250969880155890720f, - 0.967946755628987800f, -0.251155486237741920f, 0.967898579373632660f, - -0.251341083085323880f, - 0.967850367531413620f, -0.251526670691812610f, 0.967802120104103270f, - -0.251712249050384700f, - 0.967753837093475510f, -0.251897818154216970f, 0.967705518501305480f, - -0.252083377996486450f, - 0.967657164329369880f, -0.252268928570370810f, 0.967608774579446500f, - -0.252454469869047740f, - 0.967560349253314360f, -0.252640001885695520f, 0.967511888352754150f, - -0.252825524613492610f, - 0.967463391879547550f, -0.253011038045617860f, 0.967414859835477480f, - -0.253196542175250560f, - 0.967366292222328510f, -0.253382036995570160f, 0.967317689041886310f, - -0.253567522499756560f, - 0.967269050295937790f, -0.253752998680989990f, 0.967220375986271420f, - -0.253938465532451090f, - 0.967171666114676640f, -0.254123923047320620f, 0.967122920682944360f, - -0.254309371218780000f, - 0.967074139692867040f, -0.254494810040010730f, 0.967025323146238010f, - -0.254680239504194830f, - 0.966976471044852070f, -0.254865659604514570f, 0.966927583390505660f, - -0.255051070334152470f, - 0.966878660184995910f, -0.255236471686291710f, 0.966829701430121810f, - -0.255421863654115460f, - 0.966780707127683270f, -0.255607246230807380f, 0.966731677279481840f, - -0.255792619409551610f, - 0.966682611887320080f, -0.255977983183532430f, 0.966633510953002100f, - -0.256163337545934460f, - 0.966584374478333120f, -0.256348682489942910f, 0.966535202465119700f, - -0.256534018008743040f, - 0.966485994915169840f, -0.256719344095520660f, 0.966436751830292650f, - -0.256904660743461910f, - 0.966387473212298900f, -0.257089967945753120f, 0.966338159063000130f, - -0.257275265695581120f, - 0.966288809384209690f, -0.257460553986133100f, 0.966239424177741890f, - -0.257645832810596390f, - 0.966190003445412500f, -0.257831102162158990f, 0.966140547189038750f, - -0.258016362034009020f, - 0.966091055410438830f, -0.258201612419334870f, 0.966041528111432400f, - -0.258386853311325600f, - 0.965991965293840570f, -0.258572084703170340f, 0.965942366959485540f, - -0.258757306588058680f, - 0.965892733110190860f, -0.258942518959180520f, 0.965843063747781510f, - -0.259127721809726150f, - 0.965793358874083680f, -0.259312915132886230f, 0.965743618490924830f, - -0.259498098921851660f, - 0.965693842600133690f, -0.259683273169813770f, 0.965644031203540590f, - -0.259868437869964270f, - 0.965594184302976830f, -0.260053593015495190f, 0.965544301900275180f, - -0.260238738599598840f, - 0.965494383997269500f, -0.260423874615468010f, 0.965444430595795430f, - -0.260609001056295750f, - 0.965394441697689400f, -0.260794117915275510f, 0.965344417304789370f, - -0.260979225185601070f, - 0.965294357418934660f, -0.261164322860466480f, 0.965244262041965780f, - -0.261349410933066350f, - 0.965194131175724720f, -0.261534489396595520f, 0.965143964822054450f, - -0.261719558244249030f, - 0.965093762982799590f, -0.261904617469222610f, 0.965043525659805890f, - -0.262089667064712040f, - 0.964993252854920320f, -0.262274707023913590f, 0.964942944569991410f, - -0.262459737340023980f, - 0.964892600806868890f, -0.262644758006240040f, 0.964842221567403620f, - -0.262829769015759160f, - 0.964791806853447900f, -0.263014770361779000f, 0.964741356666855340f, - -0.263199762037497560f, - 0.964690871009481030f, -0.263384744036113280f, 0.964640349883180930f, - -0.263569716350824880f, - 0.964589793289812760f, -0.263754678974831350f, 0.964539201231235150f, - -0.263939631901332350f, - 0.964488573709308410f, -0.264124575123527550f, 0.964437910725893910f, - -0.264309508634617110f, - 0.964387212282854290f, -0.264494432427801630f, 0.964336478382053720f, - -0.264679346496281890f, - 0.964285709025357480f, -0.264864250833259260f, 0.964234904214632200f, - -0.265049145431935250f, - 0.964184063951745830f, -0.265234030285511790f, 0.964133188238567640f, - -0.265418905387191260f, - 0.964082277076968140f, -0.265603770730176330f, 0.964031330468819280f, - -0.265788626307669920f, - 0.963980348415994110f, -0.265973472112875590f, 0.963929330920367140f, - -0.266158308138996990f, - 0.963878277983814200f, -0.266343134379238180f, 0.963827189608212340f, - -0.266527950826803690f, - 0.963776065795439840f, -0.266712757474898370f, 0.963724906547376530f, - -0.266897554316727350f, - 0.963673711865903230f, -0.267082341345496300f, 0.963622481752902220f, - -0.267267118554410930f, - 0.963571216210257320f, -0.267451885936677620f, 0.963519915239853140f, - -0.267636643485503090f, - 0.963468578843575950f, -0.267821391194094150f, 0.963417207023313350f, - -0.268006129055658290f, - 0.963365799780954050f, -0.268190857063403180f, 0.963314357118388200f, - -0.268375575210536900f, - 0.963262879037507070f, -0.268560283490267890f, 0.963211365540203480f, - -0.268744981895804980f, - 0.963159816628371360f, -0.268929670420357260f, 0.963108232303906190f, - -0.269114349057134380f, - 0.963056612568704340f, -0.269299017799346120f, 0.963004957424663850f, - -0.269483676640202840f, - 0.962953266873683880f, -0.269668325572915090f, 0.962901540917665000f, - -0.269852964590693860f, - 0.962849779558509030f, -0.270037593686750570f, 0.962797982798119010f, - -0.270222212854296870f, - 0.962746150638399410f, -0.270406822086544820f, 0.962694283081255930f, - -0.270591421376706940f, - 0.962642380128595710f, -0.270776010717996010f, 0.962590441782326890f, - -0.270960590103625170f, - 0.962538468044359160f, -0.271145159526808010f, 0.962486458916603450f, - -0.271329718980758420f, - 0.962434414400972100f, -0.271514268458690700f, 0.962382334499378380f, - -0.271698807953819510f, - 0.962330219213737400f, -0.271883337459359720f, 0.962278068545965090f, - -0.272067856968526920f, - 0.962225882497979020f, -0.272252366474536710f, 0.962173661071697880f, - -0.272436865970605240f, - 0.962121404269041580f, -0.272621355449948980f, 0.962069112091931580f, - -0.272805834905784810f, - 0.962016784542290560f, -0.272990304331329920f, 0.961964421622042320f, - -0.273174763719801930f, - 0.961912023333112210f, -0.273359213064418680f, 0.961859589677426570f, - -0.273543652358398730f, - 0.961807120656913540f, -0.273728081594960540f, 0.961754616273502010f, - -0.273912500767323260f, - 0.961702076529122540f, -0.274096909868706380f, 0.961649501425706820f, - -0.274281308892329660f, - 0.961596890965187860f, -0.274465697831413220f, 0.961544245149499990f, - -0.274650076679177680f, - 0.961491563980579000f, -0.274834445428843940f, 0.961438847460361680f, - -0.275018804073633220f, - 0.961386095590786250f, -0.275203152606767310f, 0.961333308373792270f, - -0.275387491021468140f, - 0.961280485811320640f, -0.275571819310958140f, 0.961227627905313460f, - -0.275756137468460120f, - 0.961174734657714080f, -0.275940445487197150f, 0.961121806070467380f, - -0.276124743360392830f, - 0.961068842145519350f, -0.276309031081271080f, 0.961015842884817230f, - -0.276493308643055990f, - 0.960962808290309780f, -0.276677576038972420f, 0.960909738363946770f, - -0.276861833262245280f, - 0.960856633107679660f, -0.277046080306099900f, 0.960803492523460760f, - -0.277230317163762170f, - 0.960750316613243950f, -0.277414543828458090f, 0.960697105378984450f, - -0.277598760293414290f, - 0.960643858822638590f, -0.277782966551857690f, 0.960590576946164120f, - -0.277967162597015370f, - 0.960537259751520050f, -0.278151348422115090f, 0.960483907240666790f, - -0.278335524020384920f, - 0.960430519415565790f, -0.278519689385053060f, 0.960377096278180130f, - -0.278703844509348490f, - 0.960323637830473920f, -0.278887989386500280f, 0.960270144074412800f, - -0.279072124009737800f, - 0.960216615011963430f, -0.279256248372291180f, 0.960163050645094000f, - -0.279440362467390510f, - 0.960109450975773940f, -0.279624466288266590f, 0.960055816005973890f, - -0.279808559828150390f, - 0.960002145737665960f, -0.279992643080273220f, 0.959948440172823210f, - -0.280176716037866980f, - 0.959894699313420530f, -0.280360778694163810f, 0.959840923161433770f, - -0.280544831042396250f, - 0.959787111718839900f, -0.280728873075797190f, 0.959733264987617680f, - -0.280912904787600000f, - 0.959679382969746750f, -0.281096926171038260f, 0.959625465667208190f, - -0.281280937219346110f, - 0.959571513081984520f, -0.281464937925757940f, 0.959517525216059260f, - -0.281648928283508630f, - 0.959463502071417510f, -0.281832908285833350f, 0.959409443650045550f, - -0.282016877925967640f, - 0.959355349953930790f, -0.282200837197147560f, 0.959301220985062210f, - -0.282384786092609360f, - 0.959247056745430090f, -0.282568724605589740f, 0.959192857237025740f, - -0.282752652729325930f, - 0.959138622461841890f, -0.282936570457055390f, 0.959084352421872730f, - -0.283120477782015820f, - 0.959030047119113660f, -0.283304374697445740f, 0.958975706555561080f, - -0.283488261196583550f, - 0.958921330733213170f, -0.283672137272668430f, 0.958866919654069010f, - -0.283856002918939750f, - 0.958812473320129310f, -0.284039858128637190f, 0.958757991733395710f, - -0.284223702895001040f, - 0.958703474895871600f, -0.284407537211271880f, 0.958648922809561150f, - -0.284591361070690440f, - 0.958594335476470220f, -0.284775174466498300f, 0.958539712898605730f, - -0.284958977391937040f, - 0.958485055077976100f, -0.285142769840248670f, 0.958430362016590930f, - -0.285326551804675870f, - 0.958375633716461170f, -0.285510323278461260f, 0.958320870179598880f, - -0.285694084254848320f, - 0.958266071408017670f, -0.285877834727080620f, 0.958211237403732260f, - -0.286061574688402040f, - 0.958156368168758820f, -0.286245304132057120f, 0.958101463705114730f, - -0.286429023051290700f, - 0.958046524014818600f, -0.286612731439347790f, 0.957991549099890370f, - -0.286796429289474080f, - 0.957936538962351420f, -0.286980116594915570f, 0.957881493604224370f, - -0.287163793348918390f, - 0.957826413027532910f, -0.287347459544729510f, 0.957771297234302320f, - -0.287531115175595930f, - 0.957716146226558870f, -0.287714760234765170f, 0.957660960006330610f, - -0.287898394715485170f, - 0.957605738575646350f, -0.288082018611004130f, 0.957550481936536470f, - -0.288265631914570770f, - 0.957495190091032570f, -0.288449234619434220f, 0.957439863041167680f, - -0.288632826718843830f, - 0.957384500788975860f, -0.288816408206049480f, 0.957329103336492790f, - -0.288999979074301420f, - 0.957273670685755200f, -0.289183539316850200f, 0.957218202838801210f, - -0.289367088926947010f, - 0.957162699797670210f, -0.289550627897843030f, 0.957107161564402790f, - -0.289734156222790250f, - 0.957051588141040970f, -0.289917673895040750f, 0.956995979529628230f, - -0.290101180907847090f, - 0.956940335732208820f, -0.290284677254462330f, 0.956884656750828900f, - -0.290468162928139820f, - 0.956828942587535370f, -0.290651637922133220f, 0.956773193244376930f, - -0.290835102229696830f, - 0.956717408723403050f, -0.291018555844085090f, 0.956661589026665090f, - -0.291201998758552900f, - 0.956605734156215080f, -0.291385430966355660f, 0.956549844114106820f, - -0.291568852460749040f, - 0.956493918902395100f, -0.291752263234989260f, 0.956437958523136180f, - -0.291935663282332780f, - 0.956381962978387730f, -0.292119052596036380f, 0.956325932270208230f, - -0.292302431169357560f, - 0.956269866400658030f, -0.292485798995553880f, 0.956213765371798470f, - -0.292669156067883460f, - 0.956157629185692140f, -0.292852502379604810f, 0.956101457844403040f, - -0.293035837923976810f, - 0.956045251349996410f, -0.293219162694258630f, 0.955989009704538930f, - -0.293402476683710110f, - 0.955932732910098280f, -0.293585779885591200f, 0.955876420968743590f, - -0.293769072293162400f, - 0.955820073882545420f, -0.293952353899684660f, 0.955763691653575440f, - -0.294135624698419030f, - 0.955707274283906560f, -0.294318884682627400f, 0.955650821775613330f, - -0.294502133845571670f, - 0.955594334130771110f, -0.294685372180514330f, 0.955537811351456880f, - -0.294868599680718270f, - 0.955481253439748770f, -0.295051816339446720f, 0.955424660397726330f, - -0.295235022149963220f, - 0.955368032227470350f, -0.295418217105532010f, 0.955311368931062720f, - -0.295601401199417360f, - 0.955254670510586990f, -0.295784574424884260f, 0.955197936968127710f, - -0.295967736775197890f, - 0.955141168305770780f, -0.296150888243623790f, 0.955084364525603410f, - -0.296334028823428190f, - 0.955027525629714160f, -0.296517158507877470f, 0.954970651620192790f, - -0.296700277290238350f, - 0.954913742499130520f, -0.296883385163778270f, 0.954856798268619580f, - -0.297066482121764730f, - 0.954799818930753720f, -0.297249568157465840f, 0.954742804487627940f, - -0.297432643264150030f, - 0.954685754941338340f, -0.297615707435086200f, 0.954628670293982680f, - -0.297798760663543550f, - 0.954571550547659630f, -0.297981802942791810f, 0.954514395704469500f, - -0.298164834266100850f, - 0.954457205766513490f, -0.298347854626741400f, 0.954399980735894490f, - -0.298530864017984120f, - 0.954342720614716480f, -0.298713862433100330f, 0.954285425405084650f, - -0.298896849865361800f, - 0.954228095109105670f, -0.299079826308040480f, 0.954170729728887280f, - -0.299262791754408840f, - 0.954113329266538800f, -0.299445746197739890f, 0.954055893724170660f, - -0.299628689631306790f, - 0.953998423103894490f, -0.299811622048383350f, 0.953940917407823500f, - -0.299994543442243580f, - 0.953883376638071770f, -0.300177453806161950f, 0.953825800796755050f, - -0.300360353133413530f, - 0.953768189885990330f, -0.300543241417273450f, 0.953710543907895670f, - -0.300726118651017500f, - 0.953652862864590500f, -0.300908984827921890f, 0.953595146758195680f, - -0.301091839941263100f, - 0.953537395590833280f, -0.301274683984317950f, 0.953479609364626610f, - -0.301457516950363940f, - 0.953421788081700310f, -0.301640338832678770f, 0.953363931744180330f, - -0.301823149624540650f, - 0.953306040354193860f, -0.302005949319228080f, 0.953248113913869320f, - -0.302188737910019990f, - 0.953190152425336670f, -0.302371515390195970f, 0.953132155890726750f, - -0.302554281753035610f, - 0.953074124312172200f, -0.302737036991819140f, 0.953016057691806530f, - -0.302919781099827310f, - 0.952957956031764700f, -0.303102514070341060f, 0.952899819334182880f, - -0.303285235896641750f, - 0.952841647601198720f, -0.303467946572011320f, 0.952783440834950920f, - -0.303650646089731910f, - 0.952725199037579570f, -0.303833334443086360f, 0.952666922211226170f, - -0.304016011625357570f, - 0.952608610358033350f, -0.304198677629829110f, 0.952550263480144930f, - -0.304381332449784880f, - 0.952491881579706320f, -0.304563976078509100f, 0.952433464658864030f, - -0.304746608509286530f, - 0.952375012719765880f, -0.304929229735402370f, 0.952316525764560940f, - -0.305111839750142110f, - 0.952258003795399600f, -0.305294438546791670f, 0.952199446814433580f, - -0.305477026118637420f, - 0.952140854823815830f, -0.305659602458966120f, 0.952082227825700620f, - -0.305842167561065080f, - 0.952023565822243570f, -0.306024721418221790f, 0.951964868815601380f, - -0.306207264023724220f, - 0.951906136807932350f, -0.306389795370860920f, 0.951847369801395620f, - -0.306572315452920740f, - 0.951788567798152130f, -0.306754824263192780f, 0.951729730800363830f, - -0.306937321794966910f, - 0.951670858810193860f, -0.307119808041533100f, 0.951611951829806850f, - -0.307302282996181790f, - 0.951553009861368590f, -0.307484746652204100f, 0.951494032907046370f, - -0.307667199002891190f, - 0.951435020969008340f, -0.307849640041534870f, 0.951375974049424420f, - -0.308032069761427330f, - 0.951316892150465550f, -0.308214488155861050f, 0.951257775274304000f, - -0.308396895218129190f, - 0.951198623423113230f, -0.308579290941525090f, 0.951139436599068190f, - -0.308761675319342450f, - 0.951080214804345010f, -0.308944048344875710f, 0.951020958041121080f, - -0.309126410011419440f, - 0.950961666311575080f, -0.309308760312268730f, 0.950902339617887060f, - -0.309491099240719100f, - 0.950842977962238160f, -0.309673426790066380f, 0.950783581346811070f, - -0.309855742953607070f, - 0.950724149773789610f, -0.310038047724637890f, 0.950664683245358910f, - -0.310220341096455850f, - 0.950605181763705340f, -0.310402623062358720f, 0.950545645331016600f, - -0.310584893615644450f, - 0.950486073949481700f, -0.310767152749611470f, 0.950426467621290900f, - -0.310949400457558640f, - 0.950366826348635780f, -0.311131636732785270f, 0.950307150133709260f, - -0.311313861568590920f, - 0.950247438978705230f, -0.311496074958275910f, 0.950187692885819280f, - -0.311678276895140550f, - 0.950127911857248100f, -0.311860467372486020f, 0.950068095895189590f, - -0.312042646383613510f, - 0.950008245001843000f, -0.312224813921824880f, 0.949948359179409010f, - -0.312406969980422440f, - 0.949888438430089300f, -0.312589114552708710f, 0.949828482756087110f, - -0.312771247631986770f, - 0.949768492159606680f, -0.312953369211560200f, 0.949708466642853800f, - -0.313135479284732840f, - 0.949648406208035480f, -0.313317577844809010f, 0.949588310857359950f, - -0.313499664885093510f, - 0.949528180593036670f, -0.313681740398891520f, 0.949468015417276550f, - -0.313863804379508500f, - 0.949407815332291570f, -0.314045856820250710f, 0.949347580340295210f, - -0.314227897714424440f, - 0.949287310443502120f, -0.314409927055336660f, 0.949227005644128210f, - -0.314591944836294660f, - 0.949166665944390700f, -0.314773951050606070f, 0.949106291346508260f, - -0.314955945691579140f, - 0.949045881852700560f, -0.315137928752522440f, 0.948985437465188710f, - -0.315319900226744890f, - 0.948924958186195160f, -0.315501860107555990f, 0.948864444017943340f, - -0.315683808388265650f, - 0.948803894962658490f, -0.315865745062183960f, 0.948743311022566480f, - -0.316047670122621860f, - 0.948682692199895090f, -0.316229583562890330f, 0.948622038496872990f, - -0.316411485376300980f, - 0.948561349915730270f, -0.316593375556165850f, 0.948500626458698260f, - -0.316775254095797270f, - 0.948439868128009620f, -0.316957120988508150f, 0.948379074925898120f, - -0.317138976227611780f, - 0.948318246854599090f, -0.317320819806421740f, 0.948257383916349060f, - -0.317502651718252260f, - 0.948196486113385580f, -0.317684471956417970f, 0.948135553447947980f, - -0.317866280514233660f, - 0.948074585922276230f, -0.318048077385014950f, 0.948013583538612200f, - -0.318229862562077530f, - 0.947952546299198670f, -0.318411636038737790f, 0.947891474206279840f, - -0.318593397808312420f, - 0.947830367262101010f, -0.318775147864118480f, 0.947769225468909180f, - -0.318956886199473650f, - 0.947708048828952100f, -0.319138612807695900f, 0.947646837344479300f, - -0.319320327682103610f, - 0.947585591017741090f, -0.319502030816015690f, 0.947524309850989570f, - -0.319683722202751430f, - 0.947462993846477700f, -0.319865401835630500f, 0.947401643006459900f, - -0.320047069707973140f, - 0.947340257333192050f, -0.320228725813099860f, 0.947278836828930880f, - -0.320410370144331820f, - 0.947217381495934820f, -0.320592002694990330f, 0.947155891336463270f, - -0.320773623458397330f, - 0.947094366352777220f, -0.320955232427875210f, 0.947032806547138620f, - -0.321136829596746660f, - 0.946971211921810880f, -0.321318414958334850f, 0.946909582479058760f, - -0.321499988505963510f, - 0.946847918221148000f, -0.321681550232956580f, 0.946786219150346000f, - -0.321863100132638580f, - 0.946724485268921170f, -0.322044638198334510f, 0.946662716579143360f, - -0.322226164423369600f, - 0.946600913083283530f, -0.322407678801069850f, 0.946539074783614100f, - -0.322589181324761330f, - 0.946477201682408680f, -0.322770671987770710f, 0.946415293781942110f, - -0.322952150783425260f, - 0.946353351084490590f, -0.323133617705052330f, 0.946291373592331620f, - -0.323315072745979980f, - 0.946229361307743820f, -0.323496515899536710f, 0.946167314233007370f, - -0.323677947159051240f, - 0.946105232370403450f, -0.323859366517852850f, 0.946043115722214560f, - -0.324040773969271450f, - 0.945980964290724760f, -0.324222169506636960f, 0.945918778078219110f, - -0.324403553123280230f, - 0.945856557086983910f, -0.324584924812532150f, 0.945794301319306970f, - -0.324766284567724220f, - 0.945732010777477150f, -0.324947632382188430f, 0.945669685463784710f, - -0.325128968249257080f, - 0.945607325380521280f, -0.325310292162262930f, 0.945544930529979680f, - -0.325491604114539310f, - 0.945482500914453740f, -0.325672904099419850f, 0.945420036536239070f, - -0.325854192110238580f, - 0.945357537397632290f, -0.326035468140330240f, 0.945295003500931210f, - -0.326216732183029710f, - 0.945232434848435000f, -0.326397984231672490f, 0.945169831442444150f, - -0.326579224279594400f, - 0.945107193285260610f, -0.326760452320131730f, 0.945044520379187070f, - -0.326941668346621420f, - 0.944981812726528150f, -0.327122872352400510f, 0.944919070329589220f, - -0.327304064330806670f, - 0.944856293190677210f, -0.327485244275178000f, 0.944793481312100280f, - -0.327666412178853120f, - 0.944730634696167800f, -0.327847568035170840f, 0.944667753345190490f, - -0.328028711837470680f, - 0.944604837261480260f, -0.328209843579092500f, 0.944541886447350490f, - -0.328390963253376580f, - 0.944478900905115550f, -0.328572070853663740f, 0.944415880637091250f, - -0.328753166373294990f, - 0.944352825645594750f, -0.328934249805612200f, 0.944289735932944410f, - -0.329115321143957250f, - 0.944226611501459810f, -0.329296380381672750f, 0.944163452353461770f, - -0.329477427512101740f, - 0.944100258491272660f, -0.329658462528587490f, 0.944037029917215830f, - -0.329839485424473940f, - 0.943973766633615980f, -0.330020496193105420f, 0.943910468642799150f, - -0.330201494827826570f, - 0.943847135947092690f, -0.330382481321982780f, 0.943783768548825060f, - -0.330563455668919540f, - 0.943720366450326200f, -0.330744417861982890f, 0.943656929653927220f, - -0.330925367894519540f, - 0.943593458161960390f, -0.331106305759876430f, 0.943529951976759480f, - -0.331287231451400820f, - 0.943466411100659320f, -0.331468144962440870f, 0.943402835535996240f, - -0.331649046286344670f, - 0.943339225285107720f, -0.331829935416461110f, 0.943275580350332540f, - -0.332010812346139380f, - 0.943211900734010620f, -0.332191677068729150f, 0.943148186438483420f, - -0.332372529577580620f, - 0.943084437466093490f, -0.332553369866044220f, 0.943020653819184650f, - -0.332734197927471050f, - 0.942956835500102120f, -0.332915013755212650f, 0.942892982511192250f, - -0.333095817342620780f, - 0.942829094854802710f, -0.333276608683047930f, 0.942765172533282510f, - -0.333457387769846850f, - 0.942701215548981900f, -0.333638154596370860f, 0.942637223904252530f, - -0.333818909155973620f, - 0.942573197601446870f, -0.333999651442009380f, 0.942509136642919240f, - -0.334180381447832690f, - 0.942445041031024890f, -0.334361099166798740f, 0.942380910768120470f, - -0.334541804592262900f, - 0.942316745856563780f, -0.334722497717581220f, 0.942252546298714020f, - -0.334903178536110180f, - 0.942188312096931770f, -0.335083847041206580f, 0.942124043253578570f, - -0.335264503226227810f, - 0.942059739771017310f, -0.335445147084531600f, 0.941995401651612550f, - -0.335625778609476290f, - 0.941931028897729620f, -0.335806397794420450f, 0.941866621511735280f, - -0.335987004632723350f, - 0.941802179495997650f, -0.336167599117744520f, 0.941737702852886160f, - -0.336348181242844050f, - 0.941673191584771360f, -0.336528751001382410f, 0.941608645694025250f, - -0.336709308386720580f, - 0.941544065183020810f, -0.336889853392220050f, 0.941479450054132580f, - -0.337070386011242620f, - 0.941414800309736340f, -0.337250906237150590f, 0.941350115952208970f, - -0.337431414063306840f, - 0.941285396983928660f, -0.337611909483074620f, 0.941220643407275180f, - -0.337792392489817460f, - 0.941155855224629190f, -0.337972863076899720f, 0.941091032438372780f, - -0.338153321237685930f, - 0.941026175050889260f, -0.338333766965541130f, 0.940961283064563280f, - -0.338514200253830940f, - 0.940896356481780830f, -0.338694621095921190f, 0.940831395304928870f, - -0.338875029485178450f, - 0.940766399536396070f, -0.339055425414969640f, 0.940701369178571940f, - -0.339235808878661950f, - 0.940636304233847590f, -0.339416179869623360f, 0.940571204704615190f, - -0.339596538381222110f, - 0.940506070593268300f, -0.339776884406826850f, 0.940440901902201750f, - -0.339957217939806880f, - 0.940375698633811540f, -0.340137538973531720f, 0.940310460790495070f, - -0.340317847501371670f, - 0.940245188374650880f, -0.340498143516697160f, 0.940179881388678920f, - -0.340678427012879200f, - 0.940114539834980280f, -0.340858697983289440f, 0.940049163715957370f, - -0.341038956421299720f, - 0.939983753034014050f, -0.341219202320282360f, 0.939918307791555050f, - -0.341399435673610420f, - 0.939852827990986680f, -0.341579656474657160f, 0.939787313634716570f, - -0.341759864716796310f, - 0.939721764725153340f, -0.341940060393402190f, 0.939656181264707180f, - -0.342120243497849530f, - 0.939590563255789270f, -0.342300414023513520f, 0.939524910700812230f, - -0.342480571963769800f, - 0.939459223602189920f, -0.342660717311994380f, 0.939393501962337510f, - -0.342840850061563950f, - 0.939327745783671400f, -0.343020970205855540f, 0.939261955068609210f, - -0.343201077738246540f, - 0.939196129819569900f, -0.343381172652115040f, 0.939130270038973650f, - -0.343561254940839390f, - 0.939064375729241950f, -0.343741324597798490f, 0.938998446892797540f, - -0.343921381616371700f, - 0.938932483532064600f, -0.344101425989938810f, 0.938866485649468060f, - -0.344281457711880180f, - 0.938800453247434770f, -0.344461476775576540f, 0.938734386328392460f, - -0.344641483174408960f, - 0.938668284894770170f, -0.344821476901759290f, 0.938602148948998400f, - -0.345001457951009670f, - 0.938535978493508560f, -0.345181426315542550f, 0.938469773530733800f, - -0.345361381988741220f, - 0.938403534063108060f, -0.345541324963989090f, 0.938337260093066950f, - -0.345721255234670120f, - 0.938270951623047190f, -0.345901172794168990f, 0.938204608655486490f, - -0.346081077635870430f, - 0.938138231192824360f, -0.346260969753160010f, 0.938071819237501270f, - -0.346440849139423520f, - 0.938005372791958840f, -0.346620715788047320f, 0.937938891858640320f, - -0.346800569692418290f, - 0.937872376439989890f, -0.346980410845923680f, 0.937805826538453120f, - -0.347160239241951160f, - 0.937739242156476970f, -0.347340054873889140f, 0.937672623296509470f, - -0.347519857735126110f, - 0.937605969960999990f, -0.347699647819051380f, 0.937539282152399230f, - -0.347879425119054510f, - 0.937472559873159250f, -0.348059189628525610f, 0.937405803125732960f, - -0.348238941340855260f, - 0.937339011912574960f, -0.348418680249434560f, 0.937272186236140950f, - -0.348598406347654930f, - 0.937205326098887960f, -0.348778119628908420f, 0.937138431503274140f, - -0.348957820086587490f, - 0.937071502451759190f, -0.349137507714084970f, 0.937004538946803690f, - -0.349317182504794380f, - 0.936937540990869900f, -0.349496844452109550f, 0.936870508586420960f, - -0.349676493549424760f, - 0.936803441735921560f, -0.349856129790134920f, 0.936736340441837620f, - -0.350035753167635240f, - 0.936669204706636170f, -0.350215363675321580f, 0.936602034532785570f, - -0.350394961306590150f, - 0.936534829922755500f, -0.350574546054837510f, 0.936467590879016990f, - -0.350754117913461060f, - 0.936400317404042060f, -0.350933676875858360f, 0.936333009500304180f, - -0.351113222935427460f, - 0.936265667170278260f, -0.351292756085567090f, 0.936198290416440090f, - -0.351472276319676310f, - 0.936130879241267030f, -0.351651783631154570f, 0.936063433647237540f, - -0.351831278013402030f, - 0.935995953636831410f, -0.352010759459819080f, 0.935928439212529660f, - -0.352190227963806830f, - 0.935860890376814640f, -0.352369683518766630f, 0.935793307132169900f, - -0.352549126118100460f, - 0.935725689481080370f, -0.352728555755210730f, 0.935658037426032040f, - -0.352907972423500250f, - 0.935590350969512370f, -0.353087376116372480f, 0.935522630114009930f, - -0.353266766827231240f, - 0.935454874862014620f, -0.353446144549480810f, 0.935387085216017770f, - -0.353625509276525970f, - 0.935319261178511610f, -0.353804861001772050f, 0.935251402751989920f, - -0.353984199718624770f, - 0.935183509938947610f, -0.354163525420490340f, 0.935115582741880890f, - -0.354342838100775550f, - 0.935047621163287430f, -0.354522137752887430f, 0.934979625205665800f, - -0.354701424370233830f, - 0.934911594871516090f, -0.354880697946222790f, 0.934843530163339540f, - -0.355059958474262860f, - 0.934775431083638700f, -0.355239205947763310f, 0.934707297634917440f, - -0.355418440360133650f, - 0.934639129819680780f, -0.355597661704783850f, 0.934570927640435030f, - -0.355776869975124640f, - 0.934502691099687870f, -0.355956065164566850f, 0.934434420199948050f, - -0.356135247266522130f, - 0.934366114943725790f, -0.356314416274402410f, 0.934297775333532530f, - -0.356493572181620090f, - 0.934229401371880820f, -0.356672714981588260f, 0.934160993061284530f, - -0.356851844667720300f, - 0.934092550404258980f, -0.357030961233429980f, 0.934024073403320390f, - -0.357210064672131960f, - 0.933955562060986730f, -0.357389154977240940f, 0.933887016379776890f, - -0.357568232142172260f, - 0.933818436362210960f, -0.357747296160341900f, 0.933749822010810580f, - -0.357926347025166010f, - 0.933681173328098410f, -0.358105384730061590f, 0.933612490316598540f, - -0.358284409268445850f, - 0.933543772978836170f, -0.358463420633736540f, 0.933475021317337950f, - -0.358642418819351990f, - 0.933406235334631520f, -0.358821403818710860f, 0.933337415033246190f, - -0.359000375625232460f, - 0.933268560415712050f, -0.359179334232336500f, 0.933199671484560730f, - -0.359358279633443130f, - 0.933130748242325230f, -0.359537211821973070f, 0.933061790691539380f, - -0.359716130791347570f, - 0.932992798834738960f, -0.359895036534988110f, 0.932923772674460140f, - -0.360073929046317020f, - 0.932854712213241120f, -0.360252808318756890f, 0.932785617453621100f, - -0.360431674345730700f, - 0.932716488398140250f, -0.360610527120662270f, 0.932647325049340450f, - -0.360789366636975580f, - 0.932578127409764420f, -0.360968192888095230f, 0.932508895481956590f, - -0.361147005867446250f, - 0.932439629268462360f, -0.361325805568454280f, 0.932370328771828460f, - -0.361504591984545260f, - 0.932300993994602760f, -0.361683365109145840f, 0.932231624939334540f, - -0.361862124935682980f, - 0.932162221608574430f, -0.362040871457584180f, 0.932092784004874050f, - -0.362219604668277460f, - 0.932023312130786490f, -0.362398324561191310f, 0.931953805988866010f, - -0.362577031129754760f, - 0.931884265581668150f, -0.362755724367397230f, 0.931814690911749730f, - -0.362934404267548640f, - 0.931745081981668720f, -0.363113070823639470f, 0.931675438793984620f, - -0.363291724029100760f, - 0.931605761351257830f, -0.363470363877363760f, 0.931536049656050300f, - -0.363648990361860550f, - 0.931466303710925090f, -0.363827603476023500f, 0.931396523518446600f, - -0.364006203213285470f, - 0.931326709081180430f, -0.364184789567079890f, 0.931256860401693420f, - -0.364363362530840620f, - 0.931186977482553750f, -0.364541922098002120f, 0.931117060326330790f, - -0.364720468261999280f, - 0.931047108935595280f, -0.364899001016267320f, 0.930977123312918930f, - -0.365077520354242180f, - 0.930907103460875130f, -0.365256026269360320f, 0.930837049382038150f, - -0.365434518755058390f, - 0.930766961078983710f, -0.365612997804773850f, 0.930696838554288860f, - -0.365791463411944570f, - 0.930626681810531760f, -0.365969915570008740f, 0.930556490850291800f, - -0.366148354272405330f, - 0.930486265676149780f, -0.366326779512573590f, 0.930416006290687550f, - -0.366505191283953370f, - 0.930345712696488470f, -0.366683589579984930f, 0.930275384896137150f, - -0.366861974394109060f, - 0.930205022892219070f, -0.367040345719767180f, 0.930134626687321390f, - -0.367218703550400980f, - 0.930064196284032360f, -0.367397047879452710f, 0.929993731684941480f, - -0.367575378700365330f, - 0.929923232892639670f, -0.367753696006581980f, 0.929852699909718750f, - -0.367931999791546450f, - 0.929782132738772190f, -0.368110290048703050f, 0.929711531382394370f, - -0.368288566771496570f, - 0.929640895843181330f, -0.368466829953372320f, 0.929570226123729860f, - -0.368645079587776040f, - 0.929499522226638560f, -0.368823315668153910f, 0.929428784154506800f, - -0.369001538187952780f, - 0.929358011909935500f, -0.369179747140620020f, 0.929287205495526790f, - -0.369357942519603130f, - 0.929216364913884040f, -0.369536124318350650f, 0.929145490167611720f, - -0.369714292530311240f, - 0.929074581259315860f, -0.369892447148934100f, 0.929003638191603360f, - -0.370070588167669080f, - 0.928932660967082820f, -0.370248715579966360f, 0.928861649588363700f, - -0.370426829379276790f, - 0.928790604058057020f, -0.370604929559051670f, 0.928719524378774810f, - -0.370783016112742560f, - 0.928648410553130520f, -0.370961089033801980f, 0.928577262583738850f, - -0.371139148315682570f, - 0.928506080473215590f, -0.371317193951837540f, 0.928434864224177980f, - -0.371495225935720760f, - 0.928363613839244370f, -0.371673244260786520f, 0.928292329321034670f, - -0.371851248920489490f, - 0.928221010672169440f, -0.372029239908285010f, 0.928149657895271150f, - -0.372207217217628840f, - 0.928078270992963140f, -0.372385180841977360f, 0.928006849967869970f, - -0.372563130774787250f, - 0.927935394822617890f, -0.372741067009515760f, 0.927863905559833780f, - -0.372918989539620830f, - 0.927792382182146320f, -0.373096898358560640f, 0.927720824692185200f, - -0.373274793459793970f, - 0.927649233092581180f, -0.373452674836780300f, 0.927577607385966730f, - -0.373630542482979280f, - 0.927505947574975180f, -0.373808396391851210f, 0.927434253662241300f, - -0.373986236556857030f, - 0.927362525650401110f, -0.374164062971457930f, 0.927290763542091720f, - -0.374341875629115920f, - 0.927218967339951790f, -0.374519674523293210f, 0.927147137046620880f, - -0.374697459647452600f, - 0.927075272664740100f, -0.374875230995057540f, 0.927003374196951670f, - -0.375052988559571920f, - 0.926931441645899130f, -0.375230732334459920f, 0.926859475014227160f, - -0.375408462313186590f, - 0.926787474304581750f, -0.375586178489217220f, 0.926715439519610330f, - -0.375763880856017700f, - 0.926643370661961230f, -0.375941569407054420f, 0.926571267734284330f, - -0.376119244135794340f, - 0.926499130739230510f, -0.376296905035704790f, 0.926426959679452210f, - -0.376474552100253770f, - 0.926354754557602860f, -0.376652185322909560f, 0.926282515376337210f, - -0.376829804697141280f, - 0.926210242138311380f, -0.377007410216418260f, 0.926137934846182560f, - -0.377185001874210450f, - 0.926065593502609310f, -0.377362579663988340f, 0.925993218110251480f, - -0.377540143579222940f, - 0.925920808671770070f, -0.377717693613385640f, 0.925848365189827270f, - -0.377895229759948490f, - 0.925775887667086740f, -0.378072752012383990f, 0.925703376106213230f, - -0.378250260364165200f, - 0.925630830509872720f, -0.378427754808765560f, 0.925558250880732740f, - -0.378605235339659120f, - 0.925485637221461490f, -0.378782701950320540f, 0.925412989534729060f, - -0.378960154634224720f, - 0.925340307823206310f, -0.379137593384847320f, 0.925267592089565660f, - -0.379315018195664430f, - 0.925194842336480530f, -0.379492429060152630f, 0.925122058566625880f, - -0.379669825971788940f, - 0.925049240782677580f, -0.379847208924051160f, 0.924976388987313160f, - -0.380024577910417270f, - 0.924903503183210910f, -0.380201932924366050f, 0.924830583373050800f, - -0.380379273959376600f, - 0.924757629559513910f, -0.380556601008928520f, 0.924684641745282420f, - -0.380733914066502140f, - 0.924611619933039970f, -0.380911213125578070f, 0.924538564125471420f, - -0.381088498179637520f, - 0.924465474325262600f, -0.381265769222162380f, 0.924392350535101050f, - -0.381443026246634730f, - 0.924319192757675160f, -0.381620269246537360f, 0.924246000995674890f, - -0.381797498215353640f, - 0.924172775251791200f, -0.381974713146567220f, 0.924099515528716280f, - -0.382151914033662610f, - 0.924026221829143850f, -0.382329100870124510f, 0.923952894155768640f, - -0.382506273649438230f, - 0.923879532511286740f, -0.382683432365089780f, 0.923806136898395410f, - -0.382860577010565420f, - 0.923732707319793290f, -0.383037707579352020f, 0.923659243778179980f, - -0.383214824064937180f, - 0.923585746276256670f, -0.383391926460808660f, 0.923512214816725630f, - -0.383569014760454910f, - 0.923438649402290370f, -0.383746088957365010f, 0.923365050035655720f, - -0.383923149045028390f, - 0.923291416719527640f, -0.384100195016935040f, 0.923217749456613500f, - -0.384277226866575510f, - 0.923144048249621930f, -0.384454244587440820f, 0.923070313101262420f, - -0.384631248173022580f, - 0.922996544014246250f, -0.384808237616812880f, 0.922922740991285680f, - -0.384985212912304200f, - 0.922848904035094120f, -0.385162174052989860f, 0.922775033148386380f, - -0.385339121032363340f, - 0.922701128333878630f, -0.385516053843918850f, 0.922627189594287910f, - -0.385692972481151140f, - 0.922553216932332830f, -0.385869876937555310f, 0.922479210350733210f, - -0.386046767206627170f, - 0.922405169852209880f, -0.386223643281862980f, 0.922331095439485440f, - -0.386400505156759440f, - 0.922256987115283030f, -0.386577352824813920f, 0.922182844882327600f, - -0.386754186279524180f, - 0.922108668743345180f, -0.386931005514388580f, 0.922034458701062820f, - -0.387107810522905990f, - 0.921960214758209220f, -0.387284601298575840f, 0.921885936917513970f, - -0.387461377834897870f, - 0.921811625181708120f, -0.387638140125372730f, 0.921737279553523910f, - -0.387814888163501180f, - 0.921662900035694730f, -0.387991621942784860f, 0.921588486630955490f, - -0.388168341456725740f, - 0.921514039342042010f, -0.388345046698826250f, 0.921439558171691430f, - -0.388521737662589570f, - 0.921365043122642340f, -0.388698414341519190f, 0.921290494197634540f, - -0.388875076729119250f, - 0.921215911399408730f, -0.389051724818894380f, 0.921141294730707270f, - -0.389228358604349730f, - 0.921066644194273640f, -0.389404978078990940f, 0.920991959792852310f, - -0.389581583236324300f, - 0.920917241529189520f, -0.389758174069856410f, 0.920842489406032190f, - -0.389934750573094730f, - 0.920767703426128790f, -0.390111312739546910f, 0.920692883592229120f, - -0.390287860562721190f, - 0.920618029907083970f, -0.390464394036126590f, 0.920543142373445480f, - -0.390640913153272430f, - 0.920468220994067110f, -0.390817417907668500f, 0.920393265771703550f, - -0.390993908292825380f, - 0.920318276709110590f, -0.391170384302253870f, 0.920243253809045370f, - -0.391346845929465560f, - 0.920168197074266340f, -0.391523293167972410f, 0.920093106507533180f, - -0.391699726011286940f, - 0.920017982111606570f, -0.391876144452922350f, 0.919942823889248640f, - -0.392052548486392090f, - 0.919867631843222950f, -0.392228938105210310f, 0.919792405976293860f, - -0.392405313302891690f, - 0.919717146291227360f, -0.392581674072951470f, 0.919641852790790470f, - -0.392758020408905280f, - 0.919566525477751530f, -0.392934352304269490f, 0.919491164354880100f, - -0.393110669752560760f, - 0.919415769424947070f, -0.393286972747296400f, 0.919340340690724340f, - -0.393463261281994330f, - 0.919264878154985370f, -0.393639535350172880f, 0.919189381820504470f, - -0.393815794945351020f, - 0.919113851690057770f, -0.393992040061048100f, 0.919038287766422050f, - -0.394168270690784080f, - 0.918962690052375630f, -0.394344486828079600f, 0.918887058550697970f, - -0.394520688466455600f, - 0.918811393264170050f, -0.394696875599433560f, 0.918735694195573550f, - -0.394873048220535760f, - 0.918659961347691900f, -0.395049206323284770f, 0.918584194723309540f, - -0.395225349901203670f, - 0.918508394325212250f, -0.395401478947816350f, 0.918432560156186910f, - -0.395577593456646840f, - 0.918356692219021720f, -0.395753693421220080f, 0.918280790516506130f, - -0.395929778835061250f, - 0.918204855051430900f, -0.396105849691696270f, 0.918128885826588030f, - -0.396281905984651520f, - 0.918052882844770380f, -0.396457947707453910f, 0.917976846108772730f, - -0.396633974853630830f, - 0.917900775621390500f, -0.396809987416710310f, 0.917824671385420570f, - -0.396985985390220900f, - 0.917748533403661250f, -0.397161968767691610f, 0.917672361678911860f, - -0.397337937542652060f, - 0.917596156213972950f, -0.397513891708632330f, 0.917519917011646260f, - -0.397689831259163180f, - 0.917443644074735220f, -0.397865756187775750f, 0.917367337406043930f, - -0.398041666488001770f, - 0.917290997008377910f, -0.398217562153373560f, 0.917214622884544250f, - -0.398393443177423980f, - 0.917138215037350710f, -0.398569309553686300f, 0.917061773469606820f, - -0.398745161275694430f, - 0.916985298184123000f, -0.398920998336982910f, 0.916908789183710990f, - -0.399096820731086540f, - 0.916832246471183890f, -0.399272628451540990f, 0.916755670049355990f, - -0.399448421491882140f, - 0.916679059921042700f, -0.399624199845646790f, 0.916602416089060790f, - -0.399799963506371980f, - 0.916525738556228210f, -0.399975712467595330f, 0.916449027325364150f, - -0.400151446722855130f, - 0.916372282399289140f, -0.400327166265690090f, 0.916295503780824800f, - -0.400502871089639500f, - 0.916218691472794220f, -0.400678561188243240f, 0.916141845478021350f, - -0.400854236555041650f, - 0.916064965799331720f, -0.401029897183575620f, 0.915988052439551950f, - -0.401205543067386710f, - 0.915911105401509880f, -0.401381174200016790f, 0.915834124688034710f, - -0.401556790575008540f, - 0.915757110301956720f, -0.401732392185905010f, 0.915680062246107650f, - -0.401907979026249700f, - 0.915602980523320230f, -0.402083551089586990f, 0.915525865136428530f, - -0.402259108369461490f, - 0.915448716088267830f, -0.402434650859418430f, 0.915371533381674760f, - -0.402610178553003680f, - 0.915294317019487050f, -0.402785691443763530f, 0.915217067004543860f, - -0.402961189525244900f, - 0.915139783339685260f, -0.403136672790995300f, 0.915062466027752760f, - -0.403312141234562550f, - 0.914985115071589310f, -0.403487594849495310f, 0.914907730474038730f, - -0.403663033629342640f, - 0.914830312237946200f, -0.403838457567654070f, 0.914752860366158220f, - -0.404013866657979890f, - 0.914675374861522390f, -0.404189260893870690f, 0.914597855726887790f, - -0.404364640268877810f, - 0.914520302965104450f, -0.404540004776553000f, 0.914442716579023870f, - -0.404715354410448650f, - 0.914365096571498560f, -0.404890689164117580f, 0.914287442945382440f, - -0.405066009031113340f, - 0.914209755703530690f, -0.405241314004989860f, 0.914132034848799460f, - -0.405416604079301630f, - 0.914054280384046570f, -0.405591879247603870f, 0.913976492312130630f, - -0.405767139503452060f, - 0.913898670635911680f, -0.405942384840402510f, 0.913820815358251100f, - -0.406117615252011840f, - 0.913742926482011390f, -0.406292830731837360f, 0.913665004010056350f, - -0.406468031273437000f, - 0.913587047945250810f, -0.406643216870369030f, 0.913509058290461140f, - -0.406818387516192310f, - 0.913431035048554720f, -0.406993543204466510f, 0.913352978222400250f, - -0.407168683928751550f, - 0.913274887814867760f, -0.407343809682607970f, 0.913196763828828200f, - -0.407518920459596920f, - 0.913118606267154240f, -0.407694016253280110f, 0.913040415132719160f, - -0.407869097057219800f, - 0.912962190428398210f, -0.408044162864978690f, 0.912883932157067200f, - -0.408219213670120100f, - 0.912805640321603500f, -0.408394249466208000f, 0.912727314924885900f, - -0.408569270246806780f, - 0.912648955969793900f, -0.408744276005481360f, 0.912570563459208730f, - -0.408919266735797430f, - 0.912492137396012650f, -0.409094242431320980f, 0.912413677783089020f, - -0.409269203085618590f, - 0.912335184623322750f, -0.409444148692257590f, 0.912256657919599760f, - -0.409619079244805670f, - 0.912178097674807180f, -0.409793994736831150f, 0.912099503891833470f, - -0.409968895161902880f, - 0.912020876573568340f, -0.410143780513590240f, 0.911942215722902570f, - -0.410318650785463260f, - 0.911863521342728520f, -0.410493505971092410f, 0.911784793435939430f, - -0.410668346064048730f, - 0.911706032005429880f, -0.410843171057903910f, 0.911627237054095650f, - -0.411017980946230210f, - 0.911548408584833990f, -0.411192775722600160f, 0.911469546600543020f, - -0.411367555380587220f, - 0.911390651104122430f, -0.411542319913765220f, 0.911311722098472780f, - -0.411717069315708560f, - 0.911232759586496190f, -0.411891803579992170f, 0.911153763571095900f, - -0.412066522700191560f, - 0.911074734055176360f, -0.412241226669882890f, 0.910995671041643140f, - -0.412415915482642730f, - 0.910916574533403360f, -0.412590589132048210f, 0.910837444533365010f, - -0.412765247611677270f, - 0.910758281044437570f, -0.412939890915108080f, 0.910679084069531570f, - -0.413114519035919450f, - 0.910599853611558930f, -0.413289131967690960f, 0.910520589673432750f, - -0.413463729704002410f, - 0.910441292258067250f, -0.413638312238434500f, 0.910361961368377990f, - -0.413812879564568300f, - 0.910282597007281760f, -0.413987431675985400f, 0.910203199177696540f, - -0.414161968566268080f, - 0.910123767882541680f, -0.414336490228999100f, 0.910044303124737500f, - -0.414510996657761750f, - 0.909964804907205660f, -0.414685487846140010f, 0.909885273232869160f, - -0.414859963787718330f, - 0.909805708104652220f, -0.415034424476081630f, 0.909726109525480160f, - -0.415208869904815590f, - 0.909646477498279540f, -0.415383300067506230f, 0.909566812025978330f, - -0.415557714957740410f, - 0.909487113111505430f, -0.415732114569105360f, 0.909407380757791260f, - -0.415906498895188770f, - 0.909327614967767260f, -0.416080867929579210f, 0.909247815744366310f, - -0.416255221665865480f, - 0.909167983090522380f, -0.416429560097637150f, 0.909088117009170580f, - -0.416603883218484350f, - 0.909008217503247450f, -0.416778191021997650f, 0.908928284575690640f, - -0.416952483501768170f, - 0.908848318229439120f, -0.417126760651387870f, 0.908768318467432890f, - -0.417301022464448890f, - 0.908688285292613360f, -0.417475268934544290f, 0.908608218707923190f, - -0.417649500055267410f, - 0.908528118716306120f, -0.417823715820212270f, 0.908447985320707250f, - -0.417997916222973550f, - 0.908367818524072890f, -0.418172101257146320f, 0.908287618329350450f, - -0.418346270916326260f, - 0.908207384739488700f, -0.418520425194109700f, 0.908127117757437600f, - -0.418694564084093560f, - 0.908046817386148340f, -0.418868687579875050f, 0.907966483628573350f, - -0.419042795675052370f, - 0.907886116487666260f, -0.419216888363223910f, 0.907805715966381930f, - -0.419390965637988890f, - 0.907725282067676440f, -0.419565027492946880f, 0.907644814794507200f, - -0.419739073921698180f, - 0.907564314149832630f, -0.419913104917843620f, 0.907483780136612570f, - -0.420087120474984530f, - 0.907403212757808110f, -0.420261120586722880f, 0.907322612016381420f, - -0.420435105246661170f, - 0.907241977915295820f, -0.420609074448402510f, 0.907161310457516250f, - -0.420783028185550520f, - 0.907080609646008450f, -0.420956966451709440f, 0.906999875483739610f, - -0.421130889240483970f, - 0.906919107973678140f, -0.421304796545479640f, 0.906838307118793430f, - -0.421478688360302280f, - 0.906757472922056550f, -0.421652564678558330f, 0.906676605386439460f, - -0.421826425493854910f, - 0.906595704514915330f, -0.422000270799799680f, 0.906514770310458800f, - -0.422174100590000770f, - 0.906433802776045460f, -0.422347914858067050f, 0.906352801914652400f, - -0.422521713597607820f, - 0.906271767729257660f, -0.422695496802232950f, 0.906190700222840650f, - -0.422869264465553060f, - 0.906109599398381980f, -0.423043016581179040f, 0.906028465258863600f, - -0.423216753142722610f, - 0.905947297807268460f, -0.423390474143796050f, 0.905866097046580940f, - -0.423564179578011960f, - 0.905784862979786550f, -0.423737869438983840f, 0.905703595609872010f, - -0.423911543720325580f, - 0.905622294939825270f, -0.424085202415651560f, 0.905540960972635590f, - -0.424258845518576950f, - 0.905459593711293250f, -0.424432473022717420f, 0.905378193158790090f, - -0.424606084921689110f, - 0.905296759318118820f, -0.424779681209108810f, 0.905215292192273590f, - -0.424953261878593890f, - 0.905133791784249690f, -0.425126826923762360f, 0.905052258097043590f, - -0.425300376338232640f, - 0.904970691133653250f, -0.425473910115623800f, 0.904889090897077470f, - -0.425647428249555590f, - 0.904807457390316540f, -0.425820930733648240f, 0.904725790616371930f, - -0.425994417561522400f, - 0.904644090578246240f, -0.426167888726799620f, 0.904562357278943300f, - -0.426341344223101830f, - 0.904480590721468250f, -0.426514784044051520f, 0.904398790908827350f, - -0.426688208183271860f, - 0.904316957844028320f, -0.426861616634386430f, 0.904235091530079750f, - -0.427035009391019680f, - 0.904153191969991780f, -0.427208386446796320f, 0.904071259166775440f, - -0.427381747795341770f, - 0.903989293123443340f, -0.427555093430282080f, 0.903907293843009050f, - -0.427728423345243800f, - 0.903825261328487510f, -0.427901737533854080f, 0.903743195582894620f, - -0.428075035989740730f, - 0.903661096609247980f, -0.428248318706531960f, 0.903578964410566070f, - -0.428421585677856650f, - 0.903496798989868450f, -0.428594836897344400f, 0.903414600350176290f, - -0.428768072358625070f, - 0.903332368494511820f, -0.428941292055329490f, 0.903250103425898400f, - -0.429114495981088750f, - 0.903167805147360720f, -0.429287684129534610f, 0.903085473661924600f, - -0.429460856494299490f, - 0.903003108972617150f, -0.429634013069016380f, 0.902920711082466740f, - -0.429807153847318710f, - 0.902838279994502830f, -0.429980278822840620f, 0.902755815711756120f, - -0.430153387989216870f, - 0.902673318237258830f, -0.430326481340082610f, 0.902590787574043870f, - -0.430499558869073820f, - 0.902508223725145940f, -0.430672620569826800f, 0.902425626693600380f, - -0.430845666435978660f, - 0.902342996482444200f, -0.431018696461167030f, 0.902260333094715540f, - -0.431191710639029950f, - 0.902177636533453620f, -0.431364708963206330f, 0.902094906801698900f, - -0.431537691427335500f, - 0.902012143902493180f, -0.431710658025057260f, 0.901929347838879460f, - -0.431883608750012250f, - 0.901846518613901750f, -0.432056543595841500f, 0.901763656230605730f, - -0.432229462556186720f, - 0.901680760692037730f, -0.432402365624690140f, 0.901597832001245660f, - -0.432575252794994650f, - 0.901514870161278740f, -0.432748124060743700f, 0.901431875175186970f, - -0.432920979415581280f, - 0.901348847046022030f, -0.433093818853151960f, 0.901265785776836580f, - -0.433266642367100940f, - 0.901182691370684520f, -0.433439449951074090f, 0.901099563830620950f, - -0.433612241598717580f, - 0.901016403159702330f, -0.433785017303678520f, 0.900933209360986200f, - -0.433957777059604420f, - 0.900849982437531450f, -0.434130520860143310f, 0.900766722392397860f, - -0.434303248698943990f, - 0.900683429228646970f, -0.434475960569655650f, 0.900600102949340900f, - -0.434648656465928320f, - 0.900516743557543520f, -0.434821336381412290f, 0.900433351056319830f, - -0.434994000309758710f, - 0.900349925448735600f, -0.435166648244619260f, 0.900266466737858480f, - -0.435339280179646070f, - 0.900182974926756810f, -0.435511896108492000f, 0.900099450018500450f, - -0.435684496024810460f, - 0.900015892016160280f, -0.435857079922255470f, 0.899932300922808510f, - -0.436029647794481560f, - 0.899848676741518580f, -0.436202199635143950f, 0.899765019475365140f, - -0.436374735437898340f, - 0.899681329127423930f, -0.436547255196401200f, 0.899597605700772180f, - -0.436719758904309360f, - 0.899513849198487980f, -0.436892246555280360f, 0.899430059623650860f, - -0.437064718142972370f, - 0.899346236979341570f, -0.437237173661044090f, 0.899262381268642000f, - -0.437409613103154790f, - 0.899178492494635330f, -0.437582036462964400f, 0.899094570660405770f, - -0.437754443734133410f, - 0.899010615769039070f, -0.437926834910322860f, 0.898926627823621870f, - -0.438099209985194470f, - 0.898842606827242370f, -0.438271568952410430f, 0.898758552782989440f, - -0.438443911805633690f, - 0.898674465693953820f, -0.438616238538527660f, 0.898590345563227030f, - -0.438788549144756290f, - 0.898506192393901950f, -0.438960843617984320f, 0.898422006189072530f, - -0.439133121951876930f, - 0.898337786951834310f, -0.439305384140099950f, 0.898253534685283570f, - -0.439477630176319800f, - 0.898169249392518080f, -0.439649860054203480f, 0.898084931076636780f, - -0.439822073767418500f, - 0.898000579740739880f, -0.439994271309633260f, 0.897916195387928660f, - -0.440166452674516320f, - 0.897831778021305650f, -0.440338617855737250f, 0.897747327643974690f, - -0.440510766846965940f, - 0.897662844259040860f, -0.440682899641872900f, 0.897578327869610230f, - -0.440855016234129430f, - 0.897493778478790310f, -0.441027116617407230f, 0.897409196089689720f, - -0.441199200785378660f, - 0.897324580705418320f, -0.441371268731716670f, 0.897239932329087160f, - -0.441543320450094870f, - 0.897155250963808550f, -0.441715355934187310f, 0.897070536612695870f, - -0.441887375177668850f, - 0.896985789278863970f, -0.442059378174214700f, 0.896901008965428790f, - -0.442231364917500980f, - 0.896816195675507300f, -0.442403335401204080f, 0.896731349412217880f, - -0.442575289619001170f, - 0.896646470178680150f, -0.442747227564570020f, 0.896561557978014960f, - -0.442919149231588980f, - 0.896476612813344120f, -0.443091054613736880f, 0.896391634687790820f, - -0.443262943704693320f, - 0.896306623604479550f, -0.443434816498138480f, 0.896221579566536030f, - -0.443606672987752970f, - 0.896136502577086770f, -0.443778513167218220f, 0.896051392639260150f, - -0.443950337030216140f, - 0.895966249756185220f, -0.444122144570429200f, 0.895881073930992370f, - -0.444293935781540580f, - 0.895795865166813530f, -0.444465710657234000f, 0.895710623466781320f, - -0.444637469191193790f, - 0.895625348834030110f, -0.444809211377104880f, 0.895540041271694950f, - -0.444980937208652730f, - 0.895454700782912450f, -0.445152646679523640f, 0.895369327370820310f, - -0.445324339783404190f, - 0.895283921038557580f, -0.445496016513981740f, 0.895198481789264200f, - -0.445667676864944300f, - 0.895113009626081760f, -0.445839320829980290f, 0.895027504552152630f, - -0.446010948402778940f, - 0.894941966570620750f, -0.446182559577030070f, 0.894856395684631050f, - -0.446354154346423840f, - 0.894770791897329550f, -0.446525732704651350f, 0.894685155211863980f, - -0.446697294645404090f, - 0.894599485631382700f, -0.446868840162374160f, 0.894513783159035620f, - -0.447040369249254440f, - 0.894428047797973800f, -0.447211881899738320f, 0.894342279551349480f, - -0.447383378107519600f, - 0.894256478422316040f, -0.447554857866293010f, 0.894170644414028270f, - -0.447726321169753580f, - 0.894084777529641990f, -0.447897768011597310f, 0.893998877772314240f, - -0.448069198385520400f, - 0.893912945145203250f, -0.448240612285219890f, 0.893826979651468620f, - -0.448412009704393430f, - 0.893740981294271040f, -0.448583390636739240f, 0.893654950076772540f, - -0.448754755075955970f, - 0.893568886002135910f, -0.448926103015743260f, 0.893482789073525850f, - -0.449097434449801050f, - 0.893396659294107720f, -0.449268749371829920f, 0.893310496667048200f, - -0.449440047775531150f, - 0.893224301195515320f, -0.449611329654606540f, 0.893138072882678320f, - -0.449782595002758690f, - 0.893051811731707450f, -0.449953843813690520f, 0.892965517745774370f, - -0.450125076081105690f, - 0.892879190928051680f, -0.450296291798708610f, 0.892792831281713610f, - -0.450467490960204110f, - 0.892706438809935390f, -0.450638673559297600f, 0.892620013515893150f, - -0.450809839589695280f, - 0.892533555402764580f, -0.450980989045103860f, 0.892447064473728680f, - -0.451152121919230600f, - 0.892360540731965360f, -0.451323238205783520f, 0.892273984180655840f, - -0.451494337898471100f, - 0.892187394822982480f, -0.451665420991002490f, 0.892100772662129060f, - -0.451836487477087490f, - 0.892014117701280470f, -0.452007537350436420f, 0.891927429943622510f, - -0.452178570604760350f, - 0.891840709392342720f, -0.452349587233770890f, 0.891753956050629460f, - -0.452520587231180050f, - 0.891667169921672280f, -0.452691570590700920f, 0.891580351008662290f, - -0.452862537306046750f, - 0.891493499314791380f, -0.453033487370931580f, 0.891406614843252900f, - -0.453204420779070190f, - 0.891319697597241390f, -0.453375337524177750f, 0.891232747579952520f, - -0.453546237599970090f, - 0.891145764794583180f, -0.453717121000163870f, 0.891058749244331590f, - -0.453887987718476050f, - 0.890971700932396860f, -0.454058837748624430f, 0.890884619861979530f, - -0.454229671084327320f, - 0.890797506036281490f, -0.454400487719303580f, 0.890710359458505630f, - -0.454571287647272950f, - 0.890623180131855930f, -0.454742070861955450f, 0.890535968059537830f, - -0.454912837357071940f, - 0.890448723244757880f, -0.455083587126343840f, 0.890361445690723840f, - -0.455254320163493100f, - 0.890274135400644600f, -0.455425036462242360f, 0.890186792377730240f, - -0.455595736016314980f, - 0.890099416625192320f, -0.455766418819434640f, 0.890012008146243260f, - -0.455937084865326030f, - 0.889924566944096720f, -0.456107734147714110f, 0.889837093021967900f, - -0.456278366660324620f, - 0.889749586383072780f, -0.456448982396883920f, 0.889662047030628900f, - -0.456619581351118910f, - 0.889574474967854580f, -0.456790163516757160f, 0.889486870197969900f, - -0.456960728887526980f, - 0.889399232724195520f, -0.457131277457156980f, 0.889311562549753850f, - -0.457301809219376630f, - 0.889223859677868210f, -0.457472324167916060f, 0.889136124111763240f, - -0.457642822296505770f, - 0.889048355854664570f, -0.457813303598877170f, 0.888960554909799310f, - -0.457983768068762120f, - 0.888872721280395630f, -0.458154215699893060f, 0.888784854969682850f, - -0.458324646486003240f, - 0.888696955980891600f, -0.458495060420826270f, 0.888609024317253860f, - -0.458665457498096560f, - 0.888521059982002260f, -0.458835837711549120f, 0.888433062978371320f, - -0.459006201054919630f, - 0.888345033309596350f, -0.459176547521944090f, 0.888256970978913870f, - -0.459346877106359630f, - 0.888168875989561730f, -0.459517189801903480f, 0.888080748344778900f, - -0.459687485602313870f, - 0.887992588047805560f, -0.459857764501329540f, 0.887904395101883240f, - -0.460028026492689650f, - 0.887816169510254440f, -0.460198271570134320f, 0.887727911276163020f, - -0.460368499727404010f, - 0.887639620402853930f, -0.460538710958240010f, 0.887551296893573370f, - -0.460708905256384080f, - 0.887462940751568840f, -0.460879082615578690f, 0.887374551980088850f, - -0.461049243029566900f, - 0.887286130582383150f, -0.461219386492092380f, 0.887197676561702900f, - -0.461389512996899450f, - 0.887109189921300170f, -0.461559622537733080f, 0.887020670664428360f, - -0.461729715108338770f, - 0.886932118794342190f, -0.461899790702462730f, 0.886843534314297410f, - -0.462069849313851750f, - 0.886754917227550840f, -0.462239890936253340f, 0.886666267537361000f, - -0.462409915563415430f, - 0.886577585246987040f, -0.462579923189086810f, 0.886488870359689600f, - -0.462749913807016740f, - 0.886400122878730600f, -0.462919887410955080f, 0.886311342807372780f, - -0.463089843994652530f, - 0.886222530148880640f, -0.463259783551860150f, 0.886133684906519340f, - -0.463429706076329830f, - 0.886044807083555600f, -0.463599611561814010f, 0.885955896683257030f, - -0.463769500002065630f, - 0.885866953708892790f, -0.463939371390838520f, 0.885777978163732940f, - -0.464109225721886950f, - 0.885688970051048960f, -0.464279062988965760f, 0.885599929374113360f, - -0.464448883185830660f, - 0.885510856136199950f, -0.464618686306237820f, 0.885421750340583680f, - -0.464788472343943990f, - 0.885332611990540590f, -0.464958241292706690f, 0.885243441089348270f, - -0.465127993146283950f, - 0.885154237640285110f, -0.465297727898434600f, 0.885065001646630930f, - -0.465467445542917800f, - 0.884975733111666660f, -0.465637146073493660f, 0.884886432038674560f, - -0.465806829483922710f, - 0.884797098430937790f, -0.465976495767966180f, 0.884707732291741040f, - -0.466146144919385890f, - 0.884618333624369920f, -0.466315776931944430f, 0.884528902432111460f, - -0.466485391799404900f, - 0.884439438718253810f, -0.466654989515530920f, 0.884349942486086120f, - -0.466824570074086950f, - 0.884260413738899190f, -0.466994133468838000f, 0.884170852479984500f, - -0.467163679693549770f, - 0.884081258712634990f, -0.467333208741988420f, 0.883991632440144890f, - -0.467502720607920920f, - 0.883901973665809470f, -0.467672215285114770f, 0.883812282392925090f, - -0.467841692767338170f, - 0.883722558624789660f, -0.468011153048359830f, 0.883632802364701870f, - -0.468180596121949290f, - 0.883543013615961880f, -0.468350021981876530f, 0.883453192381870920f, - -0.468519430621912310f, - 0.883363338665731580f, -0.468688822035827900f, 0.883273452470847430f, - -0.468858196217395330f, - 0.883183533800523390f, -0.469027553160387130f, 0.883093582658065370f, - -0.469196892858576580f, - 0.883003599046780830f, -0.469366215305737520f, 0.882913582969978020f, - -0.469535520495644450f, - 0.882823534430966620f, -0.469704808422072460f, 0.882733453433057650f, - -0.469874079078797360f, - 0.882643339979562790f, -0.470043332459595620f, 0.882553194073795510f, - -0.470212568558244170f, - 0.882463015719070150f, -0.470381787368520650f, 0.882372804918702290f, - -0.470550988884203550f, - 0.882282561676008710f, -0.470720173099071600f, 0.882192285994307430f, - -0.470889340006904520f, - 0.882101977876917580f, -0.471058489601482500f, 0.882011637327159590f, - -0.471227621876586340f, - 0.881921264348355050f, -0.471396736825997640f, 0.881830858943826620f, - -0.471565834443498420f, - 0.881740421116898320f, -0.471734914722871430f, 0.881649950870895260f, - -0.471903977657900210f, - 0.881559448209143780f, -0.472073023242368660f, 0.881468913134971440f, - -0.472242051470061490f, - 0.881378345651706920f, -0.472411062334764040f, 0.881287745762680100f, - -0.472580055830262250f, - 0.881197113471222090f, -0.472749031950342790f, 0.881106448780665130f, - -0.472917990688792760f, - 0.881015751694342870f, -0.473086932039400050f, 0.880925022215589880f, - -0.473255855995953320f, - 0.880834260347742040f, -0.473424762552241530f, 0.880743466094136340f, - -0.473593651702054530f, - 0.880652639458111010f, -0.473762523439182850f, 0.880561780443005700f, - -0.473931377757417450f, - 0.880470889052160750f, -0.474100214650549970f, 0.880379965288918150f, - -0.474269034112372980f, - 0.880289009156621010f, -0.474437836136679230f, 0.880198020658613190f, - -0.474606620717262560f, - 0.880106999798240360f, -0.474775387847917120f, 0.880015946578849070f, - -0.474944137522437800f, - 0.879924861003786860f, -0.475112869734620300f, 0.879833743076402940f, - -0.475281584478260740f, - 0.879742592800047410f, -0.475450281747155870f, 0.879651410178071580f, - -0.475618961535103300f, - 0.879560195213827890f, -0.475787623835901120f, 0.879468947910670210f, - -0.475956268643348060f, - 0.879377668271953290f, -0.476124895951243580f, 0.879286356301033250f, - -0.476293505753387690f, - 0.879195012001267480f, -0.476462098043581190f, 0.879103635376014330f, - -0.476630672815625320f, - 0.879012226428633530f, -0.476799230063322090f, 0.878920785162485840f, - -0.476967769780474170f, - 0.878829311580933360f, -0.477136291960884810f, 0.878737805687339390f, - -0.477304796598357890f, - 0.878646267485068130f, -0.477473283686698060f, 0.878554696977485450f, - -0.477641753219710470f, - 0.878463094167957870f, -0.477810205191200990f, 0.878371459059853480f, - -0.477978639594976160f, - 0.878279791656541580f, -0.478147056424843010f, 0.878188091961392250f, - -0.478315455674609480f, - 0.878096359977777130f, -0.478483837338083970f, 0.878004595709069080f, - -0.478652201409075500f, - 0.877912799158641840f, -0.478820547881393890f, 0.877820970329870500f, - -0.478988876748849490f, - 0.877729109226131570f, -0.479157188005253310f, 0.877637215850802230f, - -0.479325481644417070f, - 0.877545290207261350f, -0.479493757660153010f, 0.877453332298888560f, - -0.479662016046274180f, - 0.877361342129065140f, -0.479830256796594190f, 0.877269319701173170f, - -0.479998479904927280f, - 0.877177265018595940f, -0.480166685365088390f, 0.877085178084718420f, - -0.480334873170893020f, - 0.876993058902925890f, -0.480503043316157510f, 0.876900907476605650f, - -0.480671195794698640f, - 0.876808723809145650f, -0.480839330600333960f, 0.876716507903935400f, - -0.481007447726881590f, - 0.876624259764365310f, -0.481175547168160300f, 0.876531979393827100f, - -0.481343628917989710f, - 0.876439666795713610f, -0.481511692970189860f, 0.876347321973419020f, - -0.481679739318581490f, - 0.876254944930338510f, -0.481847767956986030f, 0.876162535669868460f, - -0.482015778879225590f, - 0.876070094195406600f, -0.482183772079122720f, 0.875977620510351770f, - -0.482351747550500980f, - 0.875885114618103810f, -0.482519705287184350f, 0.875792576522063880f, - -0.482687645282997460f, - 0.875700006225634600f, -0.482855567531765670f, 0.875607403732219350f, - -0.483023472027314880f, - 0.875514769045222850f, -0.483191358763471860f, 0.875422102168050940f, - -0.483359227734063810f, - 0.875329403104110890f, -0.483527078932918740f, 0.875236671856810870f, - -0.483694912353865140f, - 0.875143908429560360f, -0.483862727990732270f, 0.875051112825769970f, - -0.484030525837350010f, - 0.874958285048851650f, -0.484198305887549030f, 0.874865425102218320f, - -0.484366068135160420f, - 0.874772532989284150f, -0.484533812574016180f, 0.874679608713464510f, - -0.484701539197948670f, - 0.874586652278176110f, -0.484869248000791060f, 0.874493663686836560f, - -0.485036938976377290f, - 0.874400642942864790f, -0.485204612118541820f, 0.874307590049680950f, - -0.485372267421119770f, - 0.874214505010706300f, -0.485539904877946960f, 0.874121387829363330f, - -0.485707524482859750f, - 0.874028238509075740f, -0.485875126229695250f, 0.873935057053268240f, - -0.486042710112291330f, - 0.873841843465366860f, -0.486210276124486420f, 0.873748597748798870f, - -0.486377824260119440f, - 0.873655319906992630f, -0.486545354513030270f, 0.873562009943377850f, - -0.486712866877059170f, - 0.873468667861384880f, -0.486880361346047340f, 0.873375293664446000f, - -0.487047837913836380f, - 0.873281887355994210f, -0.487215296574268760f, 0.873188448939463790f, - -0.487382737321187360f, - 0.873094978418290090f, -0.487550160148436000f, 0.873001475795909920f, - -0.487717565049858800f, - 0.872907941075761080f, -0.487884952019301040f, 0.872814374261282390f, - -0.488052321050608250f, - 0.872720775355914300f, -0.488219672137626790f, 0.872627144363097960f, - -0.488387005274203530f, - 0.872533481286276170f, -0.488554320454186180f, 0.872439786128892280f, - -0.488721617671423080f, - 0.872346058894391540f, -0.488888896919763170f, 0.872252299586219860f, - -0.489056158193056030f, - 0.872158508207824480f, -0.489223401485151980f, 0.872064684762653860f, - -0.489390626789901920f, - 0.871970829254157810f, -0.489557834101157440f, 0.871876941685786890f, - -0.489725023412770910f, - 0.871783022060993120f, -0.489892194718595190f, 0.871689070383229740f, - -0.490059348012483850f, - 0.871595086655950980f, -0.490226483288291160f, 0.871501070882612530f, - -0.490393600539871970f, - 0.871407023066670950f, -0.490560699761082020f, 0.871312943211584030f, - -0.490727780945777400f, - 0.871218831320811020f, -0.490894844087815090f, 0.871124687397811900f, - -0.491061889181052650f, - 0.871030511446048260f, -0.491228916219348280f, 0.870936303468982760f, - -0.491395925196560780f, - 0.870842063470078980f, -0.491562916106549900f, 0.870747791452801790f, - -0.491729888943175760f, - 0.870653487420617430f, -0.491896843700299290f, 0.870559151376993250f, - -0.492063780371782000f, - 0.870464783325397670f, -0.492230698951486020f, 0.870370383269300270f, - -0.492397599433274380f, - 0.870275951212171940f, -0.492564481811010590f, 0.870181487157484560f, - -0.492731346078558840f, - 0.870086991108711460f, -0.492898192229784040f, 0.869992463069326870f, - -0.493065020258551700f, - 0.869897903042806340f, -0.493231830158727900f, 0.869803311032626650f, - -0.493398621924179770f, - 0.869708687042265670f, -0.493565395548774770f, 0.869614031075202300f, - -0.493732151026381020f, - 0.869519343134916860f, -0.493898888350867480f, 0.869424623224890890f, - -0.494065607516103570f, - 0.869329871348606840f, -0.494232308515959670f, 0.869235087509548370f, - -0.494398991344306650f, - 0.869140271711200560f, -0.494565655995015950f, 0.869045423957049530f, - -0.494732302461959870f, - 0.868950544250582380f, -0.494898930739011260f, 0.868855632595287860f, - -0.495065540820043560f, - 0.868760688994655310f, -0.495232132698931180f, 0.868665713452175690f, - -0.495398706369549020f, - 0.868570705971340900f, -0.495565261825772540f, 0.868475666555644120f, - -0.495731799061477960f, - 0.868380595208579800f, -0.495898318070542190f, 0.868285491933643350f, - -0.496064818846842890f, - 0.868190356734331310f, -0.496231301384258250f, 0.868095189614141670f, - -0.496397765676667160f, - 0.867999990576573510f, -0.496564211717949290f, 0.867904759625126920f, - -0.496730639501984760f, - 0.867809496763303320f, -0.496897049022654470f, 0.867714201994605140f, - -0.497063440273840250f, - 0.867618875322536230f, -0.497229813249424220f, 0.867523516750601460f, - -0.497396167943289280f, - 0.867428126282306920f, -0.497562504349319150f, 0.867332703921159800f, - -0.497728822461397940f, - 0.867237249670668400f, -0.497895122273410870f, 0.867141763534342470f, - -0.498061403779243410f, - 0.867046245515692650f, -0.498227666972781870f, 0.866950695618230900f, - -0.498393911847913210f, - 0.866855113845470430f, -0.498560138398525140f, 0.866759500200925400f, - -0.498726346618505900f, - 0.866663854688111130f, -0.498892536501744590f, 0.866568177310544470f, - -0.499058708042130870f, - 0.866472468071743050f, -0.499224861233555080f, 0.866376726975225830f, - -0.499390996069908170f, - 0.866280954024512990f, -0.499557112545081840f, 0.866185149223125840f, - -0.499723210652968540f, - 0.866089312574586770f, -0.499889290387461330f, 0.865993444082419520f, - -0.500055351742453860f, - 0.865897543750148820f, -0.500221394711840680f, 0.865801611581300760f, - -0.500387419289516580f, - 0.865705647579402380f, -0.500553425469377420f, 0.865609651747981990f, - -0.500719413245319880f, - 0.865513624090569090f, -0.500885382611240710f, 0.865417564610694410f, - -0.501051333561038040f, - 0.865321473311889800f, -0.501217266088609950f, 0.865225350197688200f, - -0.501383180187855770f, - 0.865129195271623800f, -0.501549075852675390f, 0.865033008537231860f, - -0.501714953076969120f, - 0.864936789998049020f, -0.501880811854638290f, 0.864840539657612870f, - -0.502046652179584660f, - 0.864744257519462380f, -0.502212474045710790f, 0.864647943587137480f, - -0.502378277446919760f, - 0.864551597864179340f, -0.502544062377115690f, 0.864455220354130360f, - -0.502709828830202990f, - 0.864358811060534030f, -0.502875576800086990f, 0.864262369986934950f, - -0.503041306280673450f, - 0.864165897136879300f, -0.503207017265868920f, 0.864069392513913790f, - -0.503372709749581040f, - 0.863972856121586810f, -0.503538383725717580f, 0.863876287963447510f, - -0.503704039188187070f, - 0.863779688043046720f, -0.503869676130898950f, 0.863683056363935830f, - -0.504035294547763190f, - 0.863586392929668100f, -0.504200894432690340f, 0.863489697743797140f, - -0.504366475779592040f, - 0.863392970809878420f, -0.504532038582380270f, 0.863296212131468230f, - -0.504697582834967570f, - 0.863199421712124160f, -0.504863108531267590f, 0.863102599555404910f, - -0.505028615665194080f, - 0.863005745664870320f, -0.505194104230662240f, 0.862908860044081400f, - -0.505359574221587280f, - 0.862811942696600330f, -0.505525025631885390f, 0.862714993625990690f, - -0.505690458455473450f, - 0.862618012835816740f, -0.505855872686268860f, 0.862521000329644520f, - -0.506021268318189720f, - 0.862423956111040610f, -0.506186645345155230f, 0.862326880183573060f, - -0.506352003761084800f, - 0.862229772550811240f, -0.506517343559898530f, 0.862132633216325380f, - -0.506682664735517600f, - 0.862035462183687210f, -0.506847967281863210f, 0.861938259456469290f, - -0.507013251192858230f, - 0.861841025038245330f, -0.507178516462425180f, 0.861743758932590700f, - -0.507343763084487920f, - 0.861646461143081300f, -0.507508991052970870f, 0.861549131673294720f, - -0.507674200361798890f, - 0.861451770526809320f, -0.507839391004897720f, 0.861354377707204910f, - -0.508004562976194010f, - 0.861256953218062170f, -0.508169716269614600f, 0.861159497062963350f, - -0.508334850879087360f, - 0.861062009245491480f, -0.508499966798540930f, 0.860964489769231010f, - -0.508665064021904030f, - 0.860866938637767310f, -0.508830142543106990f, 0.860769355854687170f, - -0.508995202356080090f, - 0.860671741423578380f, -0.509160243454754640f, 0.860574095348029980f, - -0.509325265833062480f, - 0.860476417631632070f, -0.509490269484936360f, 0.860378708277976130f, - -0.509655254404309250f, - 0.860280967290654510f, -0.509820220585115450f, 0.860183194673260990f, - -0.509985168021289460f, - 0.860085390429390140f, -0.510150096706766810f, 0.859987554562638200f, - -0.510315006635483240f, - 0.859889687076602290f, -0.510479897801375700f, 0.859791787974880650f, - -0.510644770198381610f, - 0.859693857261072610f, -0.510809623820439040f, 0.859595894938779080f, - -0.510974458661486830f, - 0.859497901011601730f, -0.511139274715464390f, 0.859399875483143450f, - -0.511304071976312000f, - 0.859301818357008470f, -0.511468850437970300f, 0.859203729636801920f, - -0.511633610094381240f, - 0.859105609326130450f, -0.511798350939486890f, 0.859007457428601520f, - -0.511963072967230200f, - 0.858909273947823900f, -0.512127776171554690f, 0.858811058887407610f, - -0.512292460546404870f, - 0.858712812250963520f, -0.512457126085725690f, 0.858614534042104190f, - -0.512621772783462990f, - 0.858516224264442740f, -0.512786400633562960f, 0.858417882921593930f, - -0.512951009629972980f, - 0.858319510017173440f, -0.513115599766640560f, 0.858221105554798250f, - -0.513280171037514220f, - 0.858122669538086140f, -0.513444723436543460f, 0.858024201970656540f, - -0.513609256957677780f, - 0.857925702856129790f, -0.513773771594868030f, 0.857827172198127430f, - -0.513938267342065380f, - 0.857728610000272120f, -0.514102744193221660f, 0.857630016266187620f, - -0.514267202142289710f, - 0.857531390999499150f, -0.514431641183222820f, 0.857432734203832700f, - -0.514596061309975040f, - 0.857334045882815590f, -0.514760462516501200f, 0.857235326040076460f, - -0.514924844796756490f, - 0.857136574679244980f, -0.515089208144697160f, 0.857037791803951680f, - -0.515253552554280180f, - 0.856938977417828760f, -0.515417878019462930f, 0.856840131524509220f, - -0.515582184534203790f, - 0.856741254127627470f, -0.515746472092461380f, 0.856642345230818840f, - -0.515910740688195650f, - 0.856543404837719960f, -0.516074990315366630f, 0.856444432951968590f, - -0.516239220967935510f, - 0.856345429577203610f, -0.516403432639863990f, 0.856246394717065210f, - -0.516567625325114350f, - 0.856147328375194470f, -0.516731799017649870f, 0.856048230555233940f, - -0.516895953711434150f, - 0.855949101260826910f, -0.517060089400431910f, 0.855849940495618240f, - -0.517224206078608310f, - 0.855750748263253920f, -0.517388303739929060f, 0.855651524567380690f, - -0.517552382378360880f, - 0.855552269411646860f, -0.517716441987871150f, 0.855452982799701830f, - -0.517880482562427690f, - 0.855353664735196030f, -0.518044504095999340f, 0.855254315221780970f, - -0.518208506582555460f, - 0.855154934263109620f, -0.518372490016066110f, 0.855055521862835950f, - -0.518536454390502220f, - 0.854956078024614930f, -0.518700399699834950f, 0.854856602752102850f, - -0.518864325938036890f, - 0.854757096048957220f, -0.519028233099080860f, 0.854657557918836460f, - -0.519192121176940250f, - 0.854557988365400530f, -0.519355990165589640f, 0.854458387392310170f, - -0.519519840059003760f, - 0.854358755003227440f, -0.519683670851158410f, 0.854259091201815530f, - -0.519847482536030190f, - 0.854159395991738850f, -0.520011275107596040f, 0.854059669376662780f, - -0.520175048559833760f, - 0.853959911360254180f, -0.520338802886721960f, 0.853860121946180770f, - -0.520502538082239670f, - 0.853760301138111410f, -0.520666254140367160f, 0.853660448939716380f, - -0.520829951055084670f, - 0.853560565354666840f, -0.520993628820373920f, 0.853460650386635320f, - -0.521157287430216610f, - 0.853360704039295430f, -0.521320926878595660f, 0.853260726316321880f, - -0.521484547159494330f, - 0.853160717221390420f, -0.521648148266897090f, 0.853060676758178320f, - -0.521811730194788550f, - 0.852960604930363630f, -0.521975292937154390f, 0.852860501741625750f, - -0.522138836487980760f, - 0.852760367195645300f, -0.522302360841254590f, 0.852660201296103760f, - -0.522465865990963780f, - 0.852560004046684080f, -0.522629351931096610f, 0.852459775451070100f, - -0.522792818655642090f, - 0.852359515512947090f, -0.522956266158590140f, 0.852259224236001090f, - -0.523119694433931250f, - 0.852158901623919830f, -0.523283103475656430f, 0.852058547680391690f, - -0.523446493277757830f, - 0.851958162409106380f, -0.523609863834227920f, 0.851857745813754840f, - -0.523773215139060170f, - 0.851757297898029120f, -0.523936547186248600f, 0.851656818665622370f, - -0.524099859969787700f, - 0.851556308120228980f, -0.524263153483673360f, 0.851455766265544310f, - -0.524426427721901400f, - 0.851355193105265200f, -0.524589682678468950f, 0.851254588643089120f, - -0.524752918347373360f, - 0.851153952882715340f, -0.524916134722613000f, 0.851053285827843790f, - -0.525079331798186780f, - 0.850952587482175730f, -0.525242509568094710f, 0.850851857849413530f, - -0.525405668026336930f, - 0.850751096933260790f, -0.525568807166914680f, 0.850650304737422090f, - -0.525731926983829760f, - 0.850549481265603480f, -0.525895027471084630f, 0.850448626521511760f, - -0.526058108622682760f, - 0.850347740508854980f, -0.526221170432628060f, 0.850246823231342710f, - -0.526384212894925100f, - 0.850145874692685210f, -0.526547236003579440f, 0.850044894896594180f, - -0.526710239752597010f, - 0.849943883846782210f, -0.526873224135984590f, 0.849842841546963320f, - -0.527036189147750080f, - 0.849741768000852550f, -0.527199134781901280f, 0.849640663212165910f, - -0.527362061032447540f, - 0.849539527184620890f, -0.527524967893398200f, 0.849438359921936060f, - -0.527687855358763720f, - 0.849337161427830780f, -0.527850723422555230f, 0.849235931706025960f, - -0.528013572078784630f, - 0.849134670760243630f, -0.528176401321464370f, 0.849033378594206800f, - -0.528339211144607690f, - 0.848932055211639610f, -0.528502001542228480f, 0.848830700616267530f, - -0.528664772508341320f, - 0.848729314811817130f, -0.528827524036961870f, 0.848627897802015860f, - -0.528990256122106040f, - 0.848526449590592650f, -0.529152968757790610f, 0.848424970181277600f, - -0.529315661938033260f, - 0.848323459577801640f, -0.529478335656851980f, 0.848221917783896990f, - -0.529640989908265910f, - 0.848120344803297230f, -0.529803624686294610f, 0.848018740639736810f, - -0.529966239984958620f, - 0.847917105296951410f, -0.530128835798278960f, 0.847815438778677930f, - -0.530291412120277310f, - 0.847713741088654380f, -0.530453968944976320f, 0.847612012230619660f, - -0.530616506266399330f, - 0.847510252208314330f, -0.530779024078570140f, 0.847408461025479730f, - -0.530941522375513620f, - 0.847306638685858320f, -0.531104001151255000f, 0.847204785193194090f, - -0.531266460399820390f, - 0.847102900551231500f, -0.531428900115236800f, 0.847000984763716880f, - -0.531591320291531670f, - 0.846899037834397240f, -0.531753720922733320f, 0.846797059767020910f, - -0.531916102002870650f, - 0.846695050565337450f, -0.532078463525973540f, 0.846593010233097190f, - -0.532240805486072220f, - 0.846490938774052130f, -0.532403127877197900f, 0.846388836191954930f, - -0.532565430693382580f, - 0.846286702490559710f, -0.532727713928658810f, 0.846184537673621560f, - -0.532889977577059800f, - 0.846082341744897050f, -0.533052221632619450f, 0.845980114708143270f, - -0.533214446089372960f, - 0.845877856567119000f, -0.533376650941355330f, 0.845775567325584010f, - -0.533538836182603120f, - 0.845673246987299070f, -0.533701001807152960f, 0.845570895556026270f, - -0.533863147809042650f, - 0.845468513035528830f, -0.534025274182310380f, 0.845366099429570970f, - -0.534187380920995380f, - 0.845263654741918220f, -0.534349468019137520f, 0.845161178976337140f, - -0.534511535470777120f, - 0.845058672136595470f, -0.534673583269955510f, 0.844956134226462210f, - -0.534835611410714560f, - 0.844853565249707120f, -0.534997619887097150f, 0.844750965210101510f, - -0.535159608693146600f, - 0.844648334111417820f, -0.535321577822907120f, 0.844545671957429240f, - -0.535483527270423370f, - 0.844442978751910660f, -0.535645457029741090f, 0.844340254498637590f, - -0.535807367094906390f, - 0.844237499201387020f, -0.535969257459966710f, 0.844134712863936930f, - -0.536131128118969460f, - 0.844031895490066410f, -0.536292979065963180f, 0.843929047083555870f, - -0.536454810294997090f, - 0.843826167648186740f, -0.536616621800121040f, 0.843723257187741660f, - -0.536778413575385920f, - 0.843620315706004150f, -0.536940185614842910f, 0.843517343206759200f, - -0.537101937912544130f, - 0.843414339693792760f, -0.537263670462542530f, 0.843311305170892140f, - -0.537425383258891550f, - 0.843208239641845440f, -0.537587076295645390f, 0.843105143110442160f, - -0.537748749566859360f, - 0.843002015580472940f, -0.537910403066588880f, 0.842898857055729310f, - -0.538072036788890600f, - 0.842795667540004120f, -0.538233650727821700f, 0.842692447037091670f, - -0.538395244877439950f, - 0.842589195550786710f, -0.538556819231804100f, 0.842485913084885630f, - -0.538718373784973560f, - 0.842382599643185850f, -0.538879908531008420f, 0.842279255229485990f, - -0.539041423463969440f, - 0.842175879847585570f, -0.539202918577918240f, 0.842072473501285560f, - -0.539364393866917040f, - 0.841969036194387680f, -0.539525849325028890f, 0.841865567930695340f, - -0.539687284946317570f, - 0.841762068714012490f, -0.539848700724847590f, 0.841658538548144760f, - -0.540010096654684020f, - 0.841554977436898440f, -0.540171472729892850f, 0.841451385384081260f, - -0.540332828944540710f, - 0.841347762393501950f, -0.540494165292695230f, 0.841244108468970580f, - -0.540655481768424150f, - 0.841140423614298080f, -0.540816778365796670f, 0.841036707833296650f, - -0.540978055078882080f, - 0.840932961129779780f, -0.541139311901750800f, 0.840829183507561640f, - -0.541300548828474120f, - 0.840725374970458070f, -0.541461765853123440f, 0.840621535522285690f, - -0.541622962969771530f, - 0.840517665166862550f, -0.541784140172491550f, 0.840413763908007480f, - -0.541945297455357360f, - 0.840309831749540770f, -0.542106434812443920f, 0.840205868695283580f, - -0.542267552237826520f, - 0.840101874749058400f, -0.542428649725581250f, 0.839997849914688840f, - -0.542589727269785270f, - 0.839893794195999520f, -0.542750784864515890f, 0.839789707596816370f, - -0.542911822503851730f, - 0.839685590120966110f, -0.543072840181871740f, 0.839581441772277120f, - -0.543233837892655890f, - 0.839477262554578550f, -0.543394815630284800f, 0.839373052471700690f, - -0.543555773388839540f, - 0.839268811527475230f, -0.543716711162402280f, 0.839164539725734680f, - -0.543877628945055980f, - 0.839060237070312740f, -0.544038526730883820f, 0.838955903565044460f, - -0.544199404513970310f, - 0.838851539213765760f, -0.544360262288400400f, 0.838747144020313920f, - -0.544521100048259600f, - 0.838642717988527300f, -0.544681917787634530f, 0.838538261122245280f, - -0.544842715500612360f, - 0.838433773425308340f, -0.545003493181281160f, 0.838329254901558300f, - -0.545164250823729320f, - 0.838224705554838080f, -0.545324988422046460f, 0.838120125388991500f, - -0.545485705970322530f, - 0.838015514407863820f, -0.545646403462648590f, 0.837910872615301170f, - -0.545807080893116140f, - 0.837806200015150940f, -0.545967738255817570f, 0.837701496611261700f, - -0.546128375544845950f, - 0.837596762407483040f, -0.546288992754295210f, 0.837491997407665890f, - -0.546449589878259650f, - 0.837387201615661940f, -0.546610166910834860f, 0.837282375035324320f, - -0.546770723846116800f, - 0.837177517670507300f, -0.546931260678202190f, 0.837072629525066000f, - -0.547091777401188530f, - 0.836967710602857020f, -0.547252274009174090f, 0.836862760907737920f, - -0.547412750496257930f, - 0.836757780443567190f, -0.547573206856539760f, 0.836652769214204950f, - -0.547733643084120090f, - 0.836547727223512010f, -0.547894059173100190f, 0.836442654475350380f, - -0.548054455117581880f, - 0.836337550973583530f, -0.548214830911667780f, 0.836232416722075600f, - -0.548375186549461600f, - 0.836127251724692270f, -0.548535522025067390f, 0.836022055985299880f, - -0.548695837332590090f, - 0.835916829507766360f, -0.548856132466135290f, 0.835811572295960700f, - -0.549016407419809390f, - 0.835706284353752600f, -0.549176662187719660f, 0.835600965685013410f, - -0.549336896763974010f, - 0.835495616293615350f, -0.549497111142680960f, 0.835390236183431890f, - -0.549657305317949870f, - 0.835284825358337370f, -0.549817479283890910f, 0.835179383822207690f, - -0.549977633034614890f, - 0.835073911578919410f, -0.550137766564233630f, 0.834968408632350450f, - -0.550297879866859190f, - 0.834862874986380010f, -0.550457972936604810f, 0.834757310644888230f, - -0.550618045767584330f, - 0.834651715611756440f, -0.550778098353912120f, 0.834546089890866870f, - -0.550938130689703880f, - 0.834440433486103190f, -0.551098142769075430f, 0.834334746401350080f, - -0.551258134586143590f, - 0.834229028640493420f, -0.551418106135026060f, 0.834123280207420100f, - -0.551578057409841000f, - 0.834017501106018130f, -0.551737988404707340f, 0.833911691340176840f, - -0.551897899113745210f, - 0.833805850913786340f, -0.552057789531074980f, 0.833699979830738290f, - -0.552217659650817930f, - 0.833594078094925140f, -0.552377509467096070f, 0.833488145710240770f, - -0.552537338974032120f, - 0.833382182680579730f, -0.552697148165749770f, 0.833276189009838240f, - -0.552856937036373290f, - 0.833170164701913190f, -0.553016705580027470f, 0.833064109760702890f, - -0.553176453790838350f, - 0.832958024190106670f, -0.553336181662932300f, 0.832851907994025090f, - -0.553495889190436570f, - 0.832745761176359460f, -0.553655576367479310f, 0.832639583741012770f, - -0.553815243188189090f, - 0.832533375691888680f, -0.553974889646695500f, 0.832427137032892280f, - -0.554134515737128910f, - 0.832320867767929680f, -0.554294121453620000f, 0.832214567900907980f, - -0.554453706790300930f, - 0.832108237435735590f, -0.554613271741304040f, 0.832001876376321950f, - -0.554772816300762470f, - 0.831895484726577590f, -0.554932340462810370f, 0.831789062490414400f, - -0.555091844221582420f, - 0.831682609671745120f, -0.555251327571213980f, 0.831576126274483740f, - -0.555410790505841630f, - 0.831469612302545240f, -0.555570233019602180f, 0.831363067759845920f, - -0.555729655106633410f, - 0.831256492650303210f, -0.555889056761073810f, 0.831149886977835540f, - -0.556048437977062600f, - 0.831043250746362320f, -0.556207798748739930f, 0.830936583959804410f, - -0.556367139070246370f, - 0.830829886622083570f, -0.556526458935723610f, 0.830723158737122880f, - -0.556685758339313890f, - 0.830616400308846310f, -0.556845037275160100f, 0.830509611341179070f, - -0.557004295737405950f, - 0.830402791838047550f, -0.557163533720196220f, 0.830295941803379070f, - -0.557322751217676160f, - 0.830189061241102370f, -0.557481948223991550f, 0.830082150155146970f, - -0.557641124733289420f, - 0.829975208549443950f, -0.557800280739716990f, 0.829868236427924840f, - -0.557959416237422960f, - 0.829761233794523050f, -0.558118531220556100f, 0.829654200653172640f, - -0.558277625683266330f, - 0.829547137007808910f, -0.558436699619704100f, 0.829440042862368170f, - -0.558595753024020760f, - 0.829332918220788250f, -0.558754785890368310f, 0.829225763087007570f, - -0.558913798212899770f, - 0.829118577464965980f, -0.559072789985768480f, 0.829011361358604430f, - -0.559231761203128900f, - 0.828904114771864870f, -0.559390711859136140f, 0.828796837708690610f, - -0.559549641947945760f, - 0.828689530173025820f, -0.559708551463714680f, 0.828582192168815790f, - -0.559867440400600210f, - 0.828474823700007130f, -0.560026308752760380f, 0.828367424770547480f, - -0.560185156514354080f, - 0.828259995384385660f, -0.560343983679540860f, 0.828152535545471410f, - -0.560502790242481060f, - 0.828045045257755800f, -0.560661576197336030f, 0.827937524525190870f, - -0.560820341538267430f, - 0.827829973351729920f, -0.560979086259438150f, 0.827722391741327220f, - -0.561137810355011420f, - 0.827614779697938400f, -0.561296513819151470f, 0.827507137225519830f, - -0.561455196646023280f, - 0.827399464328029470f, -0.561613858829792420f, 0.827291761009425810f, - -0.561772500364625340f, - 0.827184027273669130f, -0.561931121244689470f, 0.827076263124720270f, - -0.562089721464152480f, - 0.826968468566541600f, -0.562248301017183150f, 0.826860643603096190f, - -0.562406859897951140f, - 0.826752788238348520f, -0.562565398100626560f, 0.826644902476264320f, - -0.562723915619380400f, - 0.826536986320809960f, -0.562882412448384440f, 0.826429039775953500f, - -0.563040888581811230f, - 0.826321062845663530f, -0.563199344013834090f, 0.826213055533910220f, - -0.563357778738627020f, - 0.826105017844664610f, -0.563516192750364800f, 0.825996949781899080f, - -0.563674586043223070f, - 0.825888851349586780f, -0.563832958611378170f, 0.825780722551702430f, - -0.563991310449006970f, - 0.825672563392221390f, -0.564149641550287680f, 0.825564373875120490f, - -0.564307951909398640f, - 0.825456154004377550f, -0.564466241520519500f, 0.825347903783971380f, - -0.564624510377830120f, - 0.825239623217882250f, -0.564782758475511400f, 0.825131312310091070f, - -0.564940985807745210f, - 0.825022971064580220f, -0.565099192368713980f, 0.824914599485333190f, - -0.565257378152600800f, - 0.824806197576334330f, -0.565415543153589660f, 0.824697765341569470f, - -0.565573687365865330f, - 0.824589302785025290f, -0.565731810783613120f, 0.824480809910689500f, - -0.565889913401019570f, - 0.824372286722551250f, -0.566047995212271450f, 0.824263733224600560f, - -0.566206056211556730f, - 0.824155149420828570f, -0.566364096393063840f, 0.824046535315227760f, - -0.566522115750982100f, - 0.823937890911791370f, -0.566680114279501600f, 0.823829216214513990f, - -0.566838091972813320f, - 0.823720511227391430f, -0.566996048825108680f, 0.823611775954420260f, - -0.567153984830580100f, - 0.823503010399598500f, -0.567311899983420800f, 0.823394214566925080f, - -0.567469794277824510f, - 0.823285388460400110f, -0.567627667707986230f, 0.823176532084024860f, - -0.567785520268101140f, - 0.823067645441801670f, -0.567943351952365560f, 0.822958728537734000f, - -0.568101162754976460f, - 0.822849781375826430f, -0.568258952670131490f, 0.822740803960084420f, - -0.568416721692029280f, - 0.822631796294514990f, -0.568574469814869140f, 0.822522758383125940f, - -0.568732197032851050f, - 0.822413690229926390f, -0.568889903340175860f, 0.822304591838926350f, - -0.569047588731045110f, - 0.822195463214137170f, -0.569205253199661200f, 0.822086304359571090f, - -0.569362896740227220f, - 0.821977115279241550f, -0.569520519346947140f, 0.821867895977163250f, - -0.569678121014025600f, - 0.821758646457351750f, -0.569835701735668000f, 0.821649366723823940f, - -0.569993261506080540f, - 0.821540056780597610f, -0.570150800319470300f, 0.821430716631691870f, - -0.570308318170044900f, - 0.821321346281126740f, -0.570465815052012990f, 0.821211945732923550f, - -0.570623290959583750f, - 0.821102514991104650f, -0.570780745886967260f, 0.820993054059693580f, - -0.570938179828374360f, - 0.820883562942714580f, -0.571095592778016690f, 0.820774041644193650f, - -0.571252984730106660f, - 0.820664490168157460f, -0.571410355678857230f, 0.820554908518633890f, - -0.571567705618482580f, - 0.820445296699652050f, -0.571725034543197120f, 0.820335654715241840f, - -0.571882342447216590f, - 0.820225982569434690f, -0.572039629324757050f, 0.820116280266262820f, - -0.572196895170035580f, - 0.820006547809759680f, -0.572354139977269920f, 0.819896785203959810f, - -0.572511363740678790f, - 0.819786992452898990f, -0.572668566454481160f, 0.819677169560613870f, - -0.572825748112897550f, - 0.819567316531142230f, -0.572982908710148560f, 0.819457433368523280f, - -0.573140048240455950f, - 0.819347520076796900f, -0.573297166698042200f, 0.819237576660004520f, - -0.573454264077130400f, - 0.819127603122188240f, -0.573611340371944610f, 0.819017599467391500f, - -0.573768395576709560f, - 0.818907565699658950f, -0.573925429685650750f, 0.818797501823036010f, - -0.574082442692994470f, - 0.818687407841569680f, -0.574239434592967890f, 0.818577283759307610f, - -0.574396405379798750f, - 0.818467129580298660f, -0.574553355047715760f, 0.818356945308593150f, - -0.574710283590948330f, - 0.818246730948242070f, -0.574867191003726740f, 0.818136486503297730f, - -0.575024077280281710f, - 0.818026211977813440f, -0.575180942414845080f, 0.817915907375843850f, - -0.575337786401649450f, - 0.817805572701444270f, -0.575494609234928120f, 0.817695207958671680f, - -0.575651410908915140f, - 0.817584813151583710f, -0.575808191417845340f, 0.817474388284239240f, - -0.575964950755954220f, - 0.817363933360698460f, -0.576121688917478280f, 0.817253448385022340f, - -0.576278405896654910f, - 0.817142933361272970f, -0.576435101687721830f, 0.817032388293513880f, - -0.576591776284917760f, - 0.816921813185809480f, -0.576748429682482410f, 0.816811208042225290f, - -0.576905061874655960f, - 0.816700572866827850f, -0.577061672855679440f, 0.816589907663684890f, - -0.577218262619794920f, - 0.816479212436865390f, -0.577374831161244880f, 0.816368487190439200f, - -0.577531378474272720f, - 0.816257731928477390f, -0.577687904553122800f, 0.816146946655052270f, - -0.577844409392039850f, - 0.816036131374236810f, -0.578000892985269910f, 0.815925286090105510f, - -0.578157355327059360f, - 0.815814410806733780f, -0.578313796411655590f, 0.815703505528198260f, - -0.578470216233306630f, - 0.815592570258576790f, -0.578626614786261430f, 0.815481605001947770f, - -0.578782992064769690f, - 0.815370609762391290f, -0.578939348063081780f, 0.815259584543988280f, - -0.579095682775449090f, - 0.815148529350820830f, -0.579251996196123550f, 0.815037444186972220f, - -0.579408288319357870f, - 0.814926329056526620f, -0.579564559139405630f, 0.814815183963569440f, - -0.579720808650521450f, - 0.814704008912187080f, -0.579877036846960350f, 0.814592803906467270f, - -0.580033243722978150f, - 0.814481568950498610f, -0.580189429272831680f, 0.814370304048371070f, - -0.580345593490778300f, - 0.814259009204175270f, -0.580501736371076490f, 0.814147684422003360f, - -0.580657857907985300f, - 0.814036329705948410f, -0.580813958095764530f, 0.813924945060104600f, - -0.580970036928674770f, - 0.813813530488567190f, -0.581126094400977620f, 0.813702085995432700f, - -0.581282130506935000f, - 0.813590611584798510f, -0.581438145240810170f, 0.813479107260763220f, - -0.581594138596866930f, - 0.813367573027426570f, -0.581750110569369650f, 0.813256008888889380f, - -0.581906061152583810f, - 0.813144414849253590f, -0.582061990340775440f, 0.813032790912622040f, - -0.582217898128211670f, - 0.812921137083098770f, -0.582373784509160110f, 0.812809453364789270f, - -0.582529649477889320f, - 0.812697739761799490f, -0.582685493028668460f, 0.812585996278237130f, - -0.582841315155767650f, - 0.812474222918210480f, -0.582997115853457700f, 0.812362419685829230f, - -0.583152895116010430f, - 0.812250586585203880f, -0.583308652937698290f, 0.812138723620446480f, - -0.583464389312794320f, - 0.812026830795669730f, -0.583620104235572760f, 0.811914908114987790f, - -0.583775797700308070f, - 0.811802955582515470f, -0.583931469701276180f, 0.811690973202369050f, - -0.584087120232753440f, - 0.811578960978665890f, -0.584242749289016980f, 0.811466918915524250f, - -0.584398356864344600f, - 0.811354847017063730f, -0.584553942953015330f, 0.811242745287404810f, - -0.584709507549308390f, - 0.811130613730669190f, -0.584865050647504490f, 0.811018452350979470f, - -0.585020572241884530f, - 0.810906261152459670f, -0.585176072326730410f, 0.810794040139234730f, - -0.585331550896324940f, - 0.810681789315430780f, -0.585487007944951340f, 0.810569508685174630f, - -0.585642443466894420f, - 0.810457198252594770f, -0.585797857456438860f, 0.810344858021820550f, - -0.585953249907870570f, - 0.810232487996982330f, -0.586108620815476430f, 0.810120088182211600f, - -0.586263970173543590f, - 0.810007658581641140f, -0.586419297976360500f, 0.809895199199404450f, - -0.586574604218216170f, - 0.809782710039636530f, -0.586729888893400390f, 0.809670191106473090f, - -0.586885151996203950f, - 0.809557642404051260f, -0.587040393520917970f, 0.809445063936509170f, - -0.587195613461834800f, - 0.809332455707985950f, -0.587350811813247660f, 0.809219817722621750f, - -0.587505988569450020f, - 0.809107149984558240f, -0.587661143724736660f, 0.808994452497937670f, - -0.587816277273402910f, - 0.808881725266903610f, -0.587971389209745010f, 0.808768968295600850f, - -0.588126479528059850f, - 0.808656181588174980f, -0.588281548222645220f, 0.808543365148773010f, - -0.588436595287799790f, - 0.808430518981542720f, -0.588591620717822890f, 0.808317643090633250f, - -0.588746624507014540f, - 0.808204737480194720f, -0.588901606649675720f, 0.808091802154378370f, - -0.589056567140108460f, - 0.807978837117336310f, -0.589211505972614960f, 0.807865842373222120f, - -0.589366423141498790f, - 0.807752817926190360f, -0.589521318641063940f, 0.807639763780396480f, - -0.589676192465615420f, - 0.807526679939997160f, -0.589831044609458790f, 0.807413566409150190f, - -0.589985875066900920f, - 0.807300423192014450f, -0.590140683832248820f, 0.807187250292749960f, - -0.590295470899810830f, - 0.807074047715517610f, -0.590450236263895810f, 0.806960815464479730f, - -0.590604979918813330f, - 0.806847553543799330f, -0.590759701858874160f, 0.806734261957640860f, - -0.590914402078389520f, - 0.806620940710169650f, -0.591069080571671400f, 0.806507589805552260f, - -0.591223737333032910f, - 0.806394209247956240f, -0.591378372356787580f, 0.806280799041550480f, - -0.591532985637249990f, - 0.806167359190504420f, -0.591687577168735430f, 0.806053889698989060f, - -0.591842146945560140f, - 0.805940390571176280f, -0.591996694962040990f, 0.805826861811239300f, - -0.592151221212495530f, - 0.805713303423352230f, -0.592305725691242290f, 0.805599715411690060f, - -0.592460208392600830f, - 0.805486097780429230f, -0.592614669310891130f, 0.805372450533747060f, - -0.592769108440434070f, - 0.805258773675822210f, -0.592923525775551300f, 0.805145067210834230f, - -0.593077921310565470f, - 0.805031331142963660f, -0.593232295039799800f, 0.804917565476392260f, - -0.593386646957578480f, - 0.804803770215302920f, -0.593540977058226390f, 0.804689945363879500f, - -0.593695285336069190f, - 0.804576090926307110f, -0.593849571785433630f, 0.804462206906771840f, - -0.594003836400646690f, - 0.804348293309460780f, -0.594158079176036800f, 0.804234350138562260f, - -0.594312300105932830f, - 0.804120377398265810f, -0.594466499184664430f, 0.804006375092761520f, - -0.594620676406562240f, - 0.803892343226241260f, -0.594774831765957580f, 0.803778281802897570f, - -0.594928965257182420f, - 0.803664190826924090f, -0.595083076874569960f, 0.803550070302515680f, - -0.595237166612453850f, - 0.803435920233868120f, -0.595391234465168730f, 0.803321740625178580f, - -0.595545280427049790f, - 0.803207531480644940f, -0.595699304492433360f, 0.803093292804466400f, - -0.595853306655656280f, - 0.802979024600843250f, -0.596007286911056530f, 0.802864726873976700f, - -0.596161245252972540f, - 0.802750399628069160f, -0.596315181675743710f, 0.802636042867324150f, - -0.596469096173710360f, - 0.802521656595946430f, -0.596622988741213220f, 0.802407240818141300f, - -0.596776859372594390f, - 0.802292795538115720f, -0.596930708062196500f, 0.802178320760077450f, - -0.597084534804362740f, - 0.802063816488235440f, -0.597238339593437420f, 0.801949282726799770f, - -0.597392122423765710f, - 0.801834719479981310f, -0.597545883289693160f, 0.801720126751992330f, - -0.597699622185566830f, - 0.801605504547046150f, -0.597853339105733910f, 0.801490852869356950f, - -0.598007034044542700f, - 0.801376171723140240f, -0.598160706996342270f, 0.801261461112612540f, - -0.598314357955482600f, - 0.801146721041991360f, -0.598467986916314310f, 0.801031951515495330f, - -0.598621593873188920f, - 0.800917152537344300f, -0.598775178820458720f, 0.800802324111759110f, - -0.598928741752476900f, - 0.800687466242961610f, -0.599082282663597310f, 0.800572578935174860f, - -0.599235801548174570f, - 0.800457662192622820f, -0.599389298400564540f, 0.800342716019530660f, - -0.599542773215123390f, - 0.800227740420124790f, -0.599696225986208310f, 0.800112735398632370f, - -0.599849656708177250f, - 0.799997700959281910f, -0.600003065375388940f, 0.799882637106302810f, - -0.600156451982203240f, - 0.799767543843925680f, -0.600309816522980430f, 0.799652421176382240f, - -0.600463158992081580f, - 0.799537269107905010f, -0.600616479383868970f, 0.799422087642728040f, - -0.600769777692705230f, - 0.799306876785086160f, -0.600923053912954090f, 0.799191636539215210f, - -0.601076308038980160f, - 0.799076366909352350f, -0.601229540065148500f, 0.798961067899735760f, - -0.601382749985825420f, - 0.798845739514604580f, -0.601535937795377730f, 0.798730381758199210f, - -0.601689103488172950f, - 0.798614994634760820f, -0.601842247058580030f, 0.798499578148532120f, - -0.601995368500968020f, - 0.798384132303756380f, -0.602148467809707210f, 0.798268657104678430f, - -0.602301544979168550f, - 0.798153152555543750f, -0.602454600003723750f, 0.798037618660599410f, - -0.602607632877745440f, - 0.797922055424093000f, -0.602760643595607220f, 0.797806462850273570f, - -0.602913632151683030f, - 0.797690840943391160f, -0.603066598540348160f, 0.797575189707696700f, - -0.603219542755978440f, - 0.797459509147442460f, -0.603372464792950260f, 0.797343799266881700f, - -0.603525364645641550f, - 0.797228060070268700f, -0.603678242308430370f, 0.797112291561858920f, - -0.603831097775695880f, - 0.796996493745908750f, -0.603983931041818020f, 0.796880666626675780f, - -0.604136742101177520f, - 0.796764810208418830f, -0.604289530948155960f, 0.796648924495397260f, - -0.604442297577135860f, - 0.796533009491872000f, -0.604595041982500360f, 0.796417065202104980f, - -0.604747764158633410f, - 0.796301091630359110f, -0.604900464099919820f, 0.796185088780898440f, - -0.605053141800745320f, - 0.796069056657987990f, -0.605205797255496500f, 0.795952995265893910f, - -0.605358430458560530f, - 0.795836904608883570f, -0.605511041404325550f, 0.795720784691225090f, - -0.605663630087180380f, - 0.795604635517188070f, -0.605816196501514970f, 0.795488457091042990f, - -0.605968740641719680f, - 0.795372249417061310f, -0.606121262502186120f, 0.795256012499515610f, - -0.606273762077306430f, - 0.795139746342679590f, -0.606426239361473550f, 0.795023450950828050f, - -0.606578694349081290f, - 0.794907126328237010f, -0.606731127034524480f, 0.794790772479183170f, - -0.606883537412198470f, - 0.794674389407944550f, -0.607035925476499650f, 0.794557977118800380f, - -0.607188291221825160f, - 0.794441535616030590f, -0.607340634642572930f, 0.794325064903916520f, - -0.607492955733141550f, - 0.794208564986740640f, -0.607645254487930830f, 0.794092035868785960f, - -0.607797530901341140f, - 0.793975477554337170f, -0.607949784967773630f, 0.793858890047679730f, - -0.608102016681630440f, - 0.793742273353100210f, -0.608254226037314490f, 0.793625627474886300f, - -0.608406413029229150f, - 0.793508952417326660f, -0.608558577651779450f, 0.793392248184711100f, - -0.608710719899370310f, - 0.793275514781330630f, -0.608862839766408200f, 0.793158752211477140f, - -0.609014937247299830f, - 0.793041960479443640f, -0.609167012336453210f, 0.792925139589524260f, - -0.609319065028276820f, - 0.792808289546014120f, -0.609471095317180240f, 0.792691410353209450f, - -0.609623103197573730f, - 0.792574502015407690f, -0.609775088663868430f, 0.792457564536907080f, - -0.609927051710476120f, - 0.792340597922007170f, -0.610078992331809620f, 0.792223602175008310f, - -0.610230910522282620f, - 0.792106577300212390f, -0.610382806276309480f, 0.791989523301921850f, - -0.610534679588305320f, - 0.791872440184440470f, -0.610686530452686280f, 0.791755327952073150f, - -0.610838358863869170f, - 0.791638186609125880f, -0.610990164816271660f, 0.791521016159905220f, - -0.611141948304312570f, - 0.791403816608719500f, -0.611293709322410890f, 0.791286587959877830f, - -0.611445447864987000f, - 0.791169330217690200f, -0.611597163926461910f, 0.791052043386467950f, - -0.611748857501257290f, - 0.790934727470523290f, -0.611900528583796070f, 0.790817382474169770f, - -0.612052177168501470f, - 0.790700008401721610f, -0.612203803249797950f, 0.790582605257494460f, - -0.612355406822110650f, - 0.790465173045804880f, -0.612506987879865570f, 0.790347711770970520f, - -0.612658546417489290f, - 0.790230221437310030f, -0.612810082429409710f, 0.790112702049143300f, - -0.612961595910055170f, - 0.789995153610791090f, -0.613113086853854910f, 0.789877576126575280f, - -0.613264555255239040f, - 0.789759969600819070f, -0.613416001108638590f, 0.789642334037846340f, - -0.613567424408485330f, - 0.789524669441982190f, -0.613718825149211720f, 0.789406975817552930f, - -0.613870203325251330f, - 0.789289253168885650f, -0.614021558931038380f, 0.789171501500308900f, - -0.614172891961007990f, - 0.789053720816151880f, -0.614324202409595950f, 0.788935911120745240f, - -0.614475490271239040f, - 0.788818072418420280f, -0.614626755540375050f, 0.788700204713509660f, - -0.614777998211442080f, - 0.788582308010347120f, -0.614929218278879590f, 0.788464382313267540f, - -0.615080415737127460f, - 0.788346427626606340f, -0.615231590580626820f, 0.788228443954700490f, - -0.615382742803819220f, - 0.788110431301888070f, -0.615533872401147320f, 0.787992389672507950f, - -0.615684979367054570f, - 0.787874319070900220f, -0.615836063695985090f, 0.787756219501406060f, - -0.615987125382383760f, - 0.787638090968367450f, -0.616138164420696910f, 0.787519933476127810f, - -0.616289180805370980f, - 0.787401747029031430f, -0.616440174530853650f, 0.787283531631423620f, - -0.616591145591593110f, - 0.787165287287651010f, -0.616742093982038720f, 0.787047014002060790f, - -0.616893019696640680f, - 0.786928711779001810f, -0.617043922729849760f, 0.786810380622823490f, - -0.617194803076117630f, - 0.786692020537876790f, -0.617345660729896830f, 0.786573631528513230f, - -0.617496495685640910f, - 0.786455213599085770f, -0.617647307937803870f, 0.786336766753948260f, - -0.617798097480841020f, - 0.786218290997455660f, -0.617948864309208150f, 0.786099786333963930f, - -0.618099608417362000f, - 0.785981252767830150f, -0.618250329799760250f, 0.785862690303412600f, - -0.618401028450860980f, - 0.785744098945070360f, -0.618551704365123740f, 0.785625478697163700f, - -0.618702357537008530f, - 0.785506829564053930f, -0.618852987960976320f, 0.785388151550103550f, - -0.619003595631488660f, - 0.785269444659675850f, -0.619154180543008410f, 0.785150708897135560f, - -0.619304742689998690f, - 0.785031944266848080f, -0.619455282066924020f, 0.784913150773180020f, - -0.619605798668249270f, - 0.784794328420499230f, -0.619756292488440660f, 0.784675477213174320f, - -0.619906763521964720f, - 0.784556597155575240f, -0.620057211763289100f, 0.784437688252072830f, - -0.620207637206882430f, - 0.784318750507038920f, -0.620358039847213720f, 0.784199783924846570f, - -0.620508419678753360f, - 0.784080788509869950f, -0.620658776695972140f, 0.783961764266484120f, - -0.620809110893341900f, - 0.783842711199065230f, -0.620959422265335180f, 0.783723629311990470f, - -0.621109710806425630f, - 0.783604518609638200f, -0.621259976511087550f, 0.783485379096387820f, - -0.621410219373796150f, - 0.783366210776619720f, -0.621560439389027160f, 0.783247013654715380f, - -0.621710636551257690f, - 0.783127787735057310f, -0.621860810854965360f, 0.783008533022029110f, - -0.622010962294628600f, - 0.782889249520015480f, -0.622161090864726820f, 0.782769937233402050f, - -0.622311196559740320f, - 0.782650596166575730f, -0.622461279374149970f, 0.782531226323924240f, - -0.622611339302437730f, - 0.782411827709836530f, -0.622761376339086350f, 0.782292400328702400f, - -0.622911390478579460f, - 0.782172944184913010f, -0.623061381715401260f, 0.782053459282860300f, - -0.623211350044037270f, - 0.781933945626937630f, -0.623361295458973230f, 0.781814403221538830f, - -0.623511217954696440f, - 0.781694832071059390f, -0.623661117525694530f, 0.781575232179895550f, - -0.623810994166456130f, - 0.781455603552444590f, -0.623960847871470660f, 0.781335946193104870f, - -0.624110678635228510f, - 0.781216260106276090f, -0.624260486452220650f, 0.781096545296358520f, - -0.624410271316939270f, - 0.780976801767753750f, -0.624560033223877210f, 0.780857029524864580f, - -0.624709772167528100f, - 0.780737228572094490f, -0.624859488142386340f, 0.780617398913848400f, - -0.625009181142947460f, - 0.780497540554531910f, -0.625158851163707620f, 0.780377653498552040f, - -0.625308498199164010f, - 0.780257737750316590f, -0.625458122243814360f, 0.780137793314234610f, - -0.625607723292157410f, - 0.780017820194715990f, -0.625757301338692900f, 0.779897818396172000f, - -0.625906856377921090f, - 0.779777787923014550f, -0.626056388404343520f, 0.779657728779656890f, - -0.626205897412462130f, - 0.779537640970513260f, -0.626355383396779990f, 0.779417524499998900f, - -0.626504846351800810f, - 0.779297379372530300f, -0.626654286272029350f, 0.779177205592524680f, - -0.626803703151971200f, - 0.779057003164400630f, -0.626953096986132660f, 0.778936772092577500f, - -0.627102467769020900f, - 0.778816512381475980f, -0.627251815495144080f, 0.778696224035517530f, - -0.627401140159011050f, - 0.778575907059125050f, -0.627550441755131530f, 0.778455561456721900f, - -0.627699720278016240f, - 0.778335187232733210f, -0.627848975722176460f, 0.778214784391584540f, - -0.627998208082124700f, - 0.778094352937702790f, -0.628147417352374000f, 0.777973892875516100f, - -0.628296603527438320f, - 0.777853404209453150f, -0.628445766601832710f, 0.777732886943944050f, - -0.628594906570072550f, - 0.777612341083420030f, -0.628744023426674680f, 0.777491766632313010f, - -0.628893117166156480f, - 0.777371163595056310f, -0.629042187783036000f, 0.777250531976084070f, - -0.629191235271832290f, - 0.777129871779831620f, -0.629340259627065630f, 0.777009183010735290f, - -0.629489260843256630f, - 0.776888465673232440f, -0.629638238914926980f, 0.776767719771761510f, - -0.629787193836599200f, - 0.776646945310762060f, -0.629936125602796440f, 0.776526142294674430f, - -0.630085034208043180f, - 0.776405310727940390f, -0.630233919646864370f, 0.776284450615002510f, - -0.630382781913785940f, - 0.776163561960304340f, -0.630531621003334600f, 0.776042644768290770f, - -0.630680436910037940f, - 0.775921699043407690f, -0.630829229628424470f, 0.775800724790101650f, - -0.630977999153023550f, - 0.775679722012820650f, -0.631126745478365340f, 0.775558690716013580f, - -0.631275468598980760f, - 0.775437630904130540f, -0.631424168509401860f, 0.775316542581622530f, - -0.631572845204161020f, - 0.775195425752941420f, -0.631721498677792260f, 0.775074280422540450f, - -0.631870128924829850f, - 0.774953106594873930f, -0.632018735939809060f, 0.774831904274396850f, - -0.632167319717265920f, - 0.774710673465565550f, -0.632315880251737570f, 0.774589414172837550f, - -0.632464417537761840f, - 0.774468126400670860f, -0.632612931569877410f, 0.774346810153525130f, - -0.632761422342624000f, - 0.774225465435860680f, -0.632909889850541750f, 0.774104092252139050f, - -0.633058334088172140f, - 0.773982690606822900f, -0.633206755050057190f, 0.773861260504375540f, - -0.633355152730739950f, - 0.773739801949261840f, -0.633503527124764320f, 0.773618314945947460f, - -0.633651878226674900f, - 0.773496799498899050f, -0.633800206031017280f, 0.773375255612584470f, - -0.633948510532337810f, - 0.773253683291472590f, -0.634096791725183740f, 0.773132082540033070f, - -0.634245049604103330f, - 0.773010453362736990f, -0.634393284163645490f, 0.772888795764056220f, - -0.634541495398360020f, - 0.772767109748463850f, -0.634689683302797740f, 0.772645395320433860f, - -0.634837847871509990f, - 0.772523652484441330f, -0.634985989099049460f, 0.772401881244962450f, - -0.635134106979969190f, - 0.772280081606474320f, -0.635282201508823420f, 0.772158253573455240f, - -0.635430272680167160f, - 0.772036397150384520f, -0.635578320488556110f, 0.771914512341742350f, - -0.635726344928547070f, - 0.771792599152010150f, -0.635874345994697720f, 0.771670657585670330f, - -0.636022323681566300f, - 0.771548687647206300f, -0.636170277983712170f, 0.771426689341102590f, - -0.636318208895695460f, - 0.771304662671844830f, -0.636466116412077180f, 0.771182607643919330f, - -0.636614000527419120f, - 0.771060524261813820f, -0.636761861236284200f, 0.770938412530016940f, - -0.636909698533235870f, - 0.770816272453018540f, -0.637057512412838590f, 0.770694104035309140f, - -0.637205302869657600f, - 0.770571907281380810f, -0.637353069898259130f, 0.770449682195725960f, - -0.637500813493210190f, - 0.770327428782838890f, -0.637648533649078810f, 0.770205147047214210f, - -0.637796230360433540f, - 0.770082836993347900f, -0.637943903621844060f, 0.769960498625737230f, - -0.638091553427880820f, - 0.769838131948879840f, -0.638239179773115280f, 0.769715736967275130f, - -0.638386782652119570f, - 0.769593313685422940f, -0.638534362059466790f, 0.769470862107824670f, - -0.638681917989730730f, - 0.769348382238982280f, -0.638829450437486290f, 0.769225874083399260f, - -0.638976959397309140f, - 0.769103337645579700f, -0.639124444863775730f, 0.768980772930028870f, - -0.639271906831463510f, - 0.768858179941253270f, -0.639419345294950700f, 0.768735558683760310f, - -0.639566760248816310f, - 0.768612909162058380f, -0.639714151687640450f, 0.768490231380656860f, - -0.639861519606003900f, - 0.768367525344066270f, -0.640008863998488440f, 0.768244791056798330f, - -0.640156184859676510f, - 0.768122028523365420f, -0.640303482184151670f, 0.767999237748281270f, - -0.640450755966498140f, - 0.767876418736060610f, -0.640598006201301030f, 0.767753571491219030f, - -0.640745232883146440f, - 0.767630696018273380f, -0.640892436006621380f, 0.767507792321741270f, - -0.641039615566313390f, - 0.767384860406141730f, -0.641186771556811250f, 0.767261900275994500f, - -0.641333903972704290f, - 0.767138911935820400f, -0.641481012808583160f, 0.767015895390141480f, - -0.641628098059038750f, - 0.766892850643480670f, -0.641775159718663500f, 0.766769777700361920f, - -0.641922197782050170f, - 0.766646676565310380f, -0.642069212243792540f, 0.766523547242852210f, - -0.642216203098485370f, - 0.766400389737514230f, -0.642363170340724320f, 0.766277204053824710f, - -0.642510113965105710f, - 0.766153990196312920f, -0.642657033966226860f, 0.766030748169509000f, - -0.642803930338685990f, - 0.765907477977944340f, -0.642950803077082080f, 0.765784179626150970f, - -0.643097652176015110f, - 0.765660853118662500f, -0.643244477630085850f, 0.765537498460013070f, - -0.643391279433895850f, - 0.765414115654738270f, -0.643538057582047740f, 0.765290704707374370f, - -0.643684812069144850f, - 0.765167265622458960f, -0.643831542889791390f, 0.765043798404530520f, - -0.643978250038592660f, - 0.764920303058128410f, -0.644124933510154540f, 0.764796779587793460f, - -0.644271593299083790f, - 0.764673227998067140f, -0.644418229399988380f, 0.764549648293492150f, - -0.644564841807476640f, - 0.764426040478612070f, -0.644711430516158310f, 0.764302404557971720f, - -0.644857995520643710f, - 0.764178740536116670f, -0.645004536815543930f, 0.764055048417593970f, - -0.645151054395471160f, - 0.763931328206951090f, -0.645297548255038380f, 0.763807579908737160f, - -0.645444018388859230f, - 0.763683803527501870f, -0.645590464791548690f, 0.763559999067796150f, - -0.645736887457722290f, - 0.763436166534172010f, -0.645883286381996320f, 0.763312305931182380f, - -0.646029661558988330f, - 0.763188417263381270f, -0.646176012983316280f, 0.763064500535323710f, - -0.646322340649599480f, - 0.762940555751565720f, -0.646468644552457780f, 0.762816582916664430f, - -0.646614924686512050f, - 0.762692582035177980f, -0.646761181046383920f, 0.762568553111665380f, - -0.646907413626696020f, - 0.762444496150687210f, -0.647053622422071540f, 0.762320411156804270f, - -0.647199807427135230f, - 0.762196298134578900f, -0.647345968636512060f, 0.762072157088574560f, - -0.647492106044828100f, - 0.761947988023355390f, -0.647638219646710310f, 0.761823790943486960f, - -0.647784309436786440f, - 0.761699565853535380f, -0.647930375409685340f, 0.761575312758068000f, - -0.648076417560036530f, - 0.761451031661653620f, -0.648222435882470420f, 0.761326722568861360f, - -0.648368430371618290f, - 0.761202385484261780f, -0.648514401022112440f, 0.761078020412426560f, - -0.648660347828585840f, - 0.760953627357928150f, -0.648806270785672550f, 0.760829206325340010f, - -0.648952169888007300f, - 0.760704757319236920f, -0.649098045130225950f, 0.760580280344194450f, - -0.649243896506964900f, - 0.760455775404789260f, -0.649389724012861660f, 0.760331242505599030f, - -0.649535527642554730f, - 0.760206681651202420f, -0.649681307390683190f, 0.760082092846179340f, - -0.649827063251887100f, - 0.759957476095110330f, -0.649972795220807530f, 0.759832831402577400f, - -0.650118503292086200f, - 0.759708158773163440f, -0.650264187460365850f, 0.759583458211452010f, - -0.650409847720290310f, - 0.759458729722028210f, -0.650555484066503880f, 0.759333973309477940f, - -0.650701096493652040f, - 0.759209188978388070f, -0.650846684996380880f, 0.759084376733346610f, - -0.650992249569337660f, - 0.758959536578942440f, -0.651137790207170330f, 0.758834668519765660f, - -0.651283306904527740f, - 0.758709772560407390f, -0.651428799656059820f, 0.758584848705459610f, - -0.651574268456416970f, - 0.758459896959515430f, -0.651719713300250910f, 0.758334917327168960f, - -0.651865134182213920f, - 0.758209909813015280f, -0.652010531096959500f, 0.758084874421650730f, - -0.652155904039141590f, - 0.757959811157672300f, -0.652301253003415460f, 0.757834720025678310f, - -0.652446577984436730f, - 0.757709601030268080f, -0.652591878976862440f, 0.757584454176041810f, - -0.652737155975350310f, - 0.757459279467600720f, -0.652882408974558850f, 0.757334076909547130f, - -0.653027637969147530f, - 0.757208846506484570f, -0.653172842953776760f, 0.757083588263017140f, - -0.653318023923107670f, - 0.756958302183750490f, -0.653463180871802330f, 0.756832988273290820f, - -0.653608313794523890f, - 0.756707646536245670f, -0.653753422685936060f, 0.756582276977223470f, - -0.653898507540703780f, - 0.756456879600833740f, -0.654043568353492640f, 0.756331454411686920f, - -0.654188605118969040f, - 0.756206001414394540f, -0.654333617831800440f, 0.756080520613569120f, - -0.654478606486655350f, - 0.755955012013824420f, -0.654623571078202680f, 0.755829475619774760f, - -0.654768511601112600f, - 0.755703911436035880f, -0.654913428050056030f, 0.755578319467224540f, - -0.655058320419704910f, - 0.755452699717958250f, -0.655203188704731820f, 0.755327052192855670f, - -0.655348032899810470f, - 0.755201376896536550f, -0.655492852999615350f, 0.755075673833621620f, - -0.655637648998821820f, - 0.754949943008732640f, -0.655782420892106030f, 0.754824184426492350f, - -0.655927168674145360f, - 0.754698398091524500f, -0.656071892339617600f, 0.754572584008453840f, - -0.656216591883201920f, - 0.754446742181906440f, -0.656361267299578000f, 0.754320872616508820f, - -0.656505918583426550f, - 0.754194975316889170f, -0.656650545729428940f, 0.754069050287676120f, - -0.656795148732268070f, - 0.753943097533499640f, -0.656939727586627110f, 0.753817117058990790f, - -0.657084282287190180f, - 0.753691108868781210f, -0.657228812828642540f, 0.753565072967504300f, - -0.657373319205670210f, - 0.753439009359793580f, -0.657517801412960120f, 0.753312918050284330f, - -0.657662259445200070f, - 0.753186799043612520f, -0.657806693297078640f, 0.753060652344415100f, - -0.657951102963285520f, - 0.752934477957330150f, -0.658095488438511180f, 0.752808275886996950f, - -0.658239849717446870f, - 0.752682046138055340f, -0.658384186794785050f, 0.752555788715146390f, - -0.658528499665218650f, - 0.752429503622912390f, -0.658672788323441890f, 0.752303190865996400f, - -0.658817052764149480f, - 0.752176850449042810f, -0.658961292982037320f, 0.752050482376696360f, - -0.659105508971802090f, - 0.751924086653603550f, -0.659249700728141490f, 0.751797663284411550f, - -0.659393868245753860f, - 0.751671212273768430f, -0.659538011519338660f, 0.751544733626323680f, - -0.659682130543596150f, - 0.751418227346727470f, -0.659826225313227320f, 0.751291693439630870f, - -0.659970295822934540f, - 0.751165131909686480f, -0.660114342067420480f, 0.751038542761547360f, - -0.660258364041389050f, - 0.750911925999867890f, -0.660402361739545030f, 0.750785281629303690f, - -0.660546335156593890f, - 0.750658609654510700f, -0.660690284287242300f, 0.750531910080146410f, - -0.660834209126197610f, - 0.750405182910869330f, -0.660978109668168060f, 0.750278428151338720f, - -0.661121985907862860f, - 0.750151645806215070f, -0.661265837839992270f, 0.750024835880159780f, - -0.661409665459266940f, - 0.749897998377835330f, -0.661553468760398890f, 0.749771133303905100f, - -0.661697247738101010f, - 0.749644240663033480f, -0.661841002387086870f, 0.749517320459886170f, - -0.661984732702070920f, - 0.749390372699129560f, -0.662128438677768720f, 0.749263397385431130f, - -0.662272120308896590f, - 0.749136394523459370f, -0.662415777590171780f, 0.749009364117883880f, - -0.662559410516312290f, - 0.748882306173375150f, -0.662703019082037440f, 0.748755220694604760f, - -0.662846603282066900f, - 0.748628107686245440f, -0.662990163111121470f, 0.748500967152970430f, - -0.663133698563923010f, - 0.748373799099454560f, -0.663277209635194100f, 0.748246603530373420f, - -0.663420696319658280f, - 0.748119380450403600f, -0.663564158612039770f, 0.747992129864222700f, - -0.663707596507064010f, - 0.747864851776509410f, -0.663851009999457340f, 0.747737546191943330f, - -0.663994399083946640f, - 0.747610213115205150f, -0.664137763755260010f, 0.747482852550976570f, - -0.664281104008126230f, - 0.747355464503940190f, -0.664424419837275180f, 0.747228048978779920f, - -0.664567711237437520f, - 0.747100605980180130f, -0.664710978203344790f, 0.746973135512826850f, - -0.664854220729729660f, - 0.746845637581406540f, -0.664997438811325340f, 0.746718112190607130f, - -0.665140632442866140f, - 0.746590559345117310f, -0.665283801619087180f, 0.746462979049626770f, - -0.665426946334724660f, - 0.746335371308826320f, -0.665570066584515450f, 0.746207736127407760f, - -0.665713162363197550f, - 0.746080073510063780f, -0.665856233665509720f, 0.745952383461488290f, - -0.665999280486191500f, - 0.745824665986376090f, -0.666142302819983540f, 0.745696921089422760f, - -0.666285300661627280f, - 0.745569148775325430f, -0.666428274005865240f, 0.745441349048781680f, - -0.666571222847440640f, - 0.745313521914490520f, -0.666714147181097670f, 0.745185667377151640f, - -0.666857047001581220f, - 0.745057785441466060f, -0.666999922303637470f, 0.744929876112135350f, - -0.667142773082013310f, - 0.744801939393862630f, -0.667285599331456370f, 0.744673975291351710f, - -0.667428401046715520f, - 0.744545983809307370f, -0.667571178222540310f, 0.744417964952435620f, - -0.667713930853681030f, - 0.744289918725443260f, -0.667856658934889320f, 0.744161845133038180f, - -0.667999362460917400f, - 0.744033744179929290f, -0.668142041426518450f, 0.743905615870826490f, - -0.668284695826446670f, - 0.743777460210440890f, -0.668427325655456820f, 0.743649277203484060f, - -0.668569930908304970f, - 0.743521066854669120f, -0.668712511579747980f, 0.743392829168709970f, - -0.668855067664543610f, - 0.743264564150321600f, -0.668997599157450270f, 0.743136271804219820f, - -0.669140106053227600f, - 0.743007952135121720f, -0.669282588346636010f, 0.742879605147745200f, - -0.669425046032436910f, - 0.742751230846809050f, -0.669567479105392490f, 0.742622829237033490f, - -0.669709887560265840f, - 0.742494400323139180f, -0.669852271391821020f, 0.742365944109848460f, - -0.669994630594823000f, - 0.742237460601884000f, -0.670136965164037650f, 0.742108949803969910f, - -0.670279275094231800f, - 0.741980411720831070f, -0.670421560380173090f, 0.741851846357193480f, - -0.670563821016630040f, - 0.741723253717784140f, -0.670706056998372160f, 0.741594633807331150f, - -0.670848268320169640f, - 0.741465986630563290f, -0.670990454976794220f, 0.741337312192210660f, - -0.671132616963017740f, - 0.741208610497004260f, -0.671274754273613490f, 0.741079881549676080f, - -0.671416866903355450f, - 0.740951125354959110f, -0.671558954847018330f, 0.740822341917587330f, - -0.671701018099378320f, - 0.740693531242295760f, -0.671843056655211930f, 0.740564693333820250f, - -0.671985070509296900f, - 0.740435828196898020f, -0.672127059656411730f, 0.740306935836266940f, - -0.672269024091335930f, - 0.740178016256666240f, -0.672410963808849790f, 0.740049069462835550f, - -0.672552878803734710f, - 0.739920095459516200f, -0.672694769070772860f, 0.739791094251449950f, - -0.672836634604747300f, - 0.739662065843380010f, -0.672978475400442090f, 0.739533010240050250f, - -0.673120291452642070f, - 0.739403927446205760f, -0.673262082756132970f, 0.739274817466592520f, - -0.673403849305701740f, - 0.739145680305957510f, -0.673545591096136100f, 0.739016515969048720f, - -0.673687308122224330f, - 0.738887324460615110f, -0.673829000378756040f, 0.738758105785406900f, - -0.673970667860521620f, - 0.738628859948174840f, -0.674112310562312360f, 0.738499586953671130f, - -0.674253928478920410f, - 0.738370286806648620f, -0.674395521605139050f, 0.738240959511861310f, - -0.674537089935762000f, - 0.738111605074064260f, -0.674678633465584540f, 0.737982223498013570f, - -0.674820152189402170f, - 0.737852814788465980f, -0.674961646102011930f, 0.737723378950179700f, - -0.675103115198211420f, - 0.737593915987913570f, -0.675244559472799270f, 0.737464425906427580f, - -0.675385978920574840f, - 0.737334908710482910f, -0.675527373536338520f, 0.737205364404841190f, - -0.675668743314891910f, - 0.737075792994265730f, -0.675810088251036940f, 0.736946194483520280f, - -0.675951408339577010f, - 0.736816568877369900f, -0.676092703575315920f, 0.736686916180580460f, - -0.676233973953058950f, - 0.736557236397919150f, -0.676375219467611590f, 0.736427529534153690f, - -0.676516440113781090f, - 0.736297795594053170f, -0.676657635886374950f, 0.736168034582387330f, - -0.676798806780201770f, - 0.736038246503927350f, -0.676939952790071130f, 0.735908431363445190f, - -0.677081073910793530f, - 0.735778589165713590f, -0.677222170137180330f, 0.735648719915506510f, - -0.677363241464043920f, - 0.735518823617598900f, -0.677504287886197430f, 0.735388900276766730f, - -0.677645309398454910f, - 0.735258949897786840f, -0.677786305995631500f, 0.735128972485437180f, - -0.677927277672543020f, - 0.734998968044496710f, -0.678068224424006600f, 0.734868936579745170f, - -0.678209146244839860f, - 0.734738878095963500f, -0.678350043129861470f, 0.734608792597933550f, - -0.678490915073891140f, - 0.734478680090438370f, -0.678631762071749360f, 0.734348540578261600f, - -0.678772584118257690f, - 0.734218374066188280f, -0.678913381208238410f, 0.734088180559004040f, - -0.679054153336514870f, - 0.733957960061495940f, -0.679194900497911200f, 0.733827712578451700f, - -0.679335622687252560f, - 0.733697438114660370f, -0.679476319899364970f, 0.733567136674911360f, - -0.679616992129075560f, - 0.733436808263995710f, -0.679757639371212030f, 0.733306452886705260f, - -0.679898261620603290f, - 0.733176070547832740f, -0.680038858872078930f, 0.733045661252172080f, - -0.680179431120469750f, - 0.732915225004517780f, -0.680319978360607200f, 0.732784761809665790f, - -0.680460500587323880f, - 0.732654271672412820f, -0.680600997795453020f, 0.732523754597556700f, - -0.680741469979829090f, - 0.732393210589896040f, -0.680881917135287230f, 0.732262639654230770f, - -0.681022339256663670f, - 0.732132041795361290f, -0.681162736338795430f, 0.732001417018089630f, - -0.681303108376520530f, - 0.731870765327218290f, -0.681443455364677870f, 0.731740086727550980f, - -0.681583777298107480f, - 0.731609381223892630f, -0.681724074171649710f, 0.731478648821048520f, - -0.681864345980146670f, - 0.731347889523825570f, -0.682004592718440830f, 0.731217103337031270f, - -0.682144814381375640f, - 0.731086290265474340f, -0.682285010963795570f, 0.730955450313964360f, - -0.682425182460546060f, - 0.730824583487312160f, -0.682565328866473250f, 0.730693689790329000f, - -0.682705450176424590f, - 0.730562769227827590f, -0.682845546385248080f, 0.730431821804621520f, - -0.682985617487792740f, - 0.730300847525525490f, -0.683125663478908680f, 0.730169846395354870f, - -0.683265684353446700f, - 0.730038818418926260f, -0.683405680106258680f, 0.729907763601057140f, - -0.683545650732197530f, - 0.729776681946566090f, -0.683685596226116580f, 0.729645573460272480f, - -0.683825516582870720f, - 0.729514438146997010f, -0.683965411797315400f, 0.729383276011561050f, - -0.684105281864307080f, - 0.729252087058786970f, -0.684245126778703080f, 0.729120871293498230f, - -0.684384946535361750f, - 0.728989628720519420f, -0.684524741129142300f, 0.728858359344675800f, - -0.684664510554904960f, - 0.728727063170793830f, -0.684804254807510620f, 0.728595740203700770f, - -0.684943973881821490f, - 0.728464390448225200f, -0.685083667772700360f, 0.728333013909196360f, - -0.685223336475011210f, - 0.728201610591444610f, -0.685362979983618730f, 0.728070180499801210f, - -0.685502598293388550f, - 0.727938723639098620f, -0.685642191399187470f, 0.727807240014169960f, - -0.685781759295883030f, - 0.727675729629849610f, -0.685921301978343560f, 0.727544192490972800f, - -0.686060819441438710f, - 0.727412628602375770f, -0.686200311680038590f, 0.727281037968895870f, - -0.686339778689014520f, - 0.727149420595371020f, -0.686479220463238950f, 0.727017776486640680f, - -0.686618636997584630f, - 0.726886105647544970f, -0.686758028286925890f, 0.726754408082925020f, - -0.686897394326137610f, - 0.726622683797622850f, -0.687036735110095660f, 0.726490932796481910f, - -0.687176050633676820f, - 0.726359155084346010f, -0.687315340891759050f, 0.726227350666060370f, - -0.687454605879221030f, - 0.726095519546471000f, -0.687593845590942170f, 0.725963661730424930f, - -0.687733060021803230f, - 0.725831777222770370f, -0.687872249166685550f, 0.725699866028356120f, - -0.688011413020471640f, - 0.725567928152032300f, -0.688150551578044830f, 0.725435963598649810f, - -0.688289664834289330f, - 0.725303972373060770f, -0.688428752784090440f, 0.725171954480117950f, - -0.688567815422334250f, - 0.725039909924675370f, -0.688706852743907750f, 0.724907838711587820f, - -0.688845864743699020f, - 0.724775740845711280f, -0.688984851416597040f, 0.724643616331902550f, - -0.689123812757491570f, - 0.724511465175019630f, -0.689262748761273470f, 0.724379287379921190f, - -0.689401659422834270f, - 0.724247082951467000f, -0.689540544737066830f, 0.724114851894517850f, - -0.689679404698864800f, - 0.723982594213935520f, -0.689818239303122470f, 0.723850309914582880f, - -0.689957048544735390f, - 0.723717999001323500f, -0.690095832418599950f, 0.723585661479022150f, - -0.690234590919613370f, - 0.723453297352544380f, -0.690373324042674040f, 0.723320906626756970f, - -0.690512031782681060f, - 0.723188489306527460f, -0.690650714134534600f, 0.723056045396724410f, - -0.690789371093135650f, - 0.722923574902217700f, -0.690928002653386160f, 0.722791077827877550f, - -0.691066608810189220f, - 0.722658554178575610f, -0.691205189558448450f, 0.722526003959184540f, - -0.691343744893068710f, - 0.722393427174577550f, -0.691482274808955850f, 0.722260823829629310f, - -0.691620779301016290f, - 0.722128193929215350f, -0.691759258364157750f, 0.721995537478211880f, - -0.691897711993288760f, - 0.721862854481496340f, -0.692036140183318720f, 0.721730144943947160f, - -0.692174542929158140f, - 0.721597408870443770f, -0.692312920225718220f, 0.721464646265866370f, - -0.692451272067911130f, - 0.721331857135096290f, -0.692589598450650380f, 0.721199041483015720f, - -0.692727899368849820f, - 0.721066199314508110f, -0.692866174817424630f, 0.720933330634457530f, - -0.693004424791290870f, - 0.720800435447749190f, -0.693142649285365400f, 0.720667513759269520f, - -0.693280848294566040f, - 0.720534565573905270f, -0.693419021813811760f, 0.720401590896544760f, - -0.693557169838022290f, - 0.720268589732077190f, -0.693695292362118240f, 0.720135562085392420f, - -0.693833389381021350f, - 0.720002507961381650f, -0.693971460889654000f, 0.719869427364936860f, - -0.694109506882939820f, - 0.719736320300951030f, -0.694247527355803310f, 0.719603186774318120f, - -0.694385522303169740f, - 0.719470026789932990f, -0.694523491719965520f, 0.719336840352691740f, - -0.694661435601117820f, - 0.719203627467491220f, -0.694799353941554900f, 0.719070388139229190f, - -0.694937246736205830f, - 0.718937122372804490f, -0.695075113980000880f, 0.718803830173116890f, - -0.695212955667870780f, - 0.718670511545067230f, -0.695350771794747690f, 0.718537166493557370f, - -0.695488562355564440f, - 0.718403795023489830f, -0.695626327345254870f, 0.718270397139768260f, - -0.695764066758753690f, - 0.718136972847297490f, -0.695901780590996830f, 0.718003522150983180f, - -0.696039468836920690f, - 0.717870045055731710f, -0.696177131491462990f, 0.717736541566450950f, - -0.696314768549562090f, - 0.717603011688049080f, -0.696452380006157830f, 0.717469455425435830f, - -0.696589965856190370f, - 0.717335872783521730f, -0.696727526094601200f, 0.717202263767218070f, - -0.696865060716332470f, - 0.717068628381437480f, -0.697002569716327460f, 0.716934966631093130f, - -0.697140053089530420f, - 0.716801278521099540f, -0.697277510830886520f, 0.716667564056371890f, - -0.697414942935341790f, - 0.716533823241826680f, -0.697552349397843160f, 0.716400056082381000f, - -0.697689730213338800f, - 0.716266262582953120f, -0.697827085376777290f, 0.716132442748462330f, - -0.697964414883108670f, - 0.715998596583828690f, -0.698101718727283770f, 0.715864724093973500f, - -0.698238996904254280f, - 0.715730825283818590f, -0.698376249408972920f, 0.715596900158287470f, - -0.698513476236393040f, - 0.715462948722303760f, -0.698650677381469460f, 0.715328970980792620f, - -0.698787852839157670f, - 0.715194966938680120f, -0.698925002604414150f, 0.715060936600893090f, - -0.699062126672196140f, - 0.714926879972359490f, -0.699199225037462120f, 0.714792797058008240f, - -0.699336297695171140f, - 0.714658687862769090f, -0.699473344640283770f, 0.714524552391572860f, - -0.699610365867761040f, - 0.714390390649351390f, -0.699747361372564990f, 0.714256202641037510f, - -0.699884331149658760f, - 0.714121988371564820f, -0.700021275194006250f, 0.713987747845867830f, - -0.700158193500572730f, - 0.713853481068882470f, -0.700295086064323780f, 0.713719188045545240f, - -0.700431952880226420f, - 0.713584868780793640f, -0.700568793943248340f, 0.713450523279566260f, - -0.700705609248358450f, - 0.713316151546802610f, -0.700842398790526120f, 0.713181753587443180f, - -0.700979162564722370f, - 0.713047329406429340f, -0.701115900565918660f, 0.712912879008703480f, - -0.701252612789087460f, - 0.712778402399208980f, -0.701389299229202230f, 0.712643899582890210f, - -0.701525959881237340f, - 0.712509370564692320f, -0.701662594740168450f, 0.712374815349561710f, - -0.701799203800971720f, - 0.712240233942445510f, -0.701935787058624360f, 0.712105626348291890f, - -0.702072344508104630f, - 0.711970992572050100f, -0.702208876144391870f, 0.711836332618670080f, - -0.702345381962465880f, - 0.711701646493102970f, -0.702481861957308000f, 0.711566934200300700f, - -0.702618316123900130f, - 0.711432195745216430f, -0.702754744457225300f, 0.711297431132803970f, - -0.702891146952267400f, - 0.711162640368018350f, -0.703027523604011220f, 0.711027823455815280f, - -0.703163874407442770f, - 0.710892980401151680f, -0.703300199357548730f, 0.710758111208985350f, - -0.703436498449316660f, - 0.710623215884275020f, -0.703572771677735580f, 0.710488294431980470f, - -0.703709019037794810f, - 0.710353346857062420f, -0.703845240524484940f, 0.710218373164482220f, - -0.703981436132797620f, - 0.710083373359202800f, -0.704117605857725310f, 0.709948347446187400f, - -0.704253749694261470f, - 0.709813295430400840f, -0.704389867637400410f, 0.709678217316808580f, - -0.704525959682137380f, - 0.709543113110376770f, -0.704662025823468820f, 0.709407982816072980f, - -0.704798066056391950f, - 0.709272826438865690f, -0.704934080375904880f, 0.709137643983724030f, - -0.705070068777006840f, - 0.709002435455618250f, -0.705206031254697830f, 0.708867200859519820f, - -0.705341967803978840f, - 0.708731940200400650f, -0.705477878419852100f, 0.708596653483234080f, - -0.705613763097320490f, - 0.708461340712994160f, -0.705749621831387790f, 0.708326001894655890f, - -0.705885454617058980f, - 0.708190637033195400f, -0.706021261449339740f, 0.708055246133589500f, - -0.706157042323237060f, - 0.707919829200816310f, -0.706292797233758480f, 0.707784386239854620f, - -0.706428526175912790f, - 0.707648917255684350f, -0.706564229144709510f, 0.707513422253286280f, - -0.706699906135159430f, - 0.707377901237642100f, -0.706835557142273750f, 0.707242354213734710f, - -0.706971182161065360f, - 0.707106781186547570f, -0.707106781186547460f, 0.706971182161065360f, - -0.707242354213734600f, - 0.706835557142273860f, -0.707377901237642100f, 0.706699906135159430f, - -0.707513422253286170f, - 0.706564229144709620f, -0.707648917255684350f, 0.706428526175912790f, - -0.707784386239854620f, - 0.706292797233758480f, -0.707919829200816310f, 0.706157042323237060f, - -0.708055246133589500f, - 0.706021261449339740f, -0.708190637033195290f, 0.705885454617058980f, - -0.708326001894655780f, - 0.705749621831387790f, -0.708461340712994050f, 0.705613763097320490f, - -0.708596653483234080f, - 0.705477878419852210f, -0.708731940200400650f, 0.705341967803978950f, - -0.708867200859519820f, - 0.705206031254697830f, -0.709002435455618250f, 0.705070068777006840f, - -0.709137643983723920f, - 0.704934080375904990f, -0.709272826438865580f, 0.704798066056391950f, - -0.709407982816072980f, - 0.704662025823468930f, -0.709543113110376770f, 0.704525959682137380f, - -0.709678217316808470f, - 0.704389867637400410f, -0.709813295430400840f, 0.704253749694261580f, - -0.709948347446187400f, - 0.704117605857725430f, -0.710083373359202690f, 0.703981436132797730f, - -0.710218373164482220f, - 0.703845240524484940f, -0.710353346857062310f, 0.703709019037794810f, - -0.710488294431980470f, - 0.703572771677735580f, -0.710623215884275020f, 0.703436498449316770f, - -0.710758111208985350f, - 0.703300199357548730f, -0.710892980401151680f, 0.703163874407442770f, - -0.711027823455815280f, - 0.703027523604011220f, -0.711162640368018350f, 0.702891146952267400f, - -0.711297431132803970f, - 0.702754744457225300f, -0.711432195745216430f, 0.702618316123900130f, - -0.711566934200300700f, - 0.702481861957308000f, -0.711701646493102970f, 0.702345381962465880f, - -0.711836332618670080f, - 0.702208876144391870f, -0.711970992572049990f, 0.702072344508104740f, - -0.712105626348291890f, - 0.701935787058624360f, -0.712240233942445510f, 0.701799203800971720f, - -0.712374815349561710f, - 0.701662594740168570f, -0.712509370564692320f, 0.701525959881237450f, - -0.712643899582890210f, - 0.701389299229202230f, -0.712778402399208870f, 0.701252612789087460f, - -0.712912879008703370f, - 0.701115900565918660f, -0.713047329406429230f, 0.700979162564722480f, - -0.713181753587443070f, - 0.700842398790526230f, -0.713316151546802610f, 0.700705609248358450f, - -0.713450523279566150f, - 0.700568793943248450f, -0.713584868780793520f, 0.700431952880226420f, - -0.713719188045545130f, - 0.700295086064323780f, -0.713853481068882470f, 0.700158193500572730f, - -0.713987747845867830f, - 0.700021275194006360f, -0.714121988371564710f, 0.699884331149658760f, - -0.714256202641037400f, - 0.699747361372564990f, -0.714390390649351390f, 0.699610365867761040f, - -0.714524552391572860f, - 0.699473344640283770f, -0.714658687862768980f, 0.699336297695171250f, - -0.714792797058008130f, - 0.699199225037462120f, -0.714926879972359370f, 0.699062126672196140f, - -0.715060936600892980f, - 0.698925002604414150f, -0.715194966938680010f, 0.698787852839157790f, - -0.715328970980792620f, - 0.698650677381469580f, -0.715462948722303650f, 0.698513476236393040f, - -0.715596900158287360f, - 0.698376249408972920f, -0.715730825283818590f, 0.698238996904254390f, - -0.715864724093973390f, - 0.698101718727283880f, -0.715998596583828690f, 0.697964414883108790f, - -0.716132442748462330f, - 0.697827085376777290f, -0.716266262582953120f, 0.697689730213338800f, - -0.716400056082380890f, - 0.697552349397843270f, -0.716533823241826570f, 0.697414942935341790f, - -0.716667564056371890f, - 0.697277510830886630f, -0.716801278521099540f, 0.697140053089530530f, - -0.716934966631093130f, - 0.697002569716327460f, -0.717068628381437480f, 0.696865060716332470f, - -0.717202263767218070f, - 0.696727526094601200f, -0.717335872783521730f, 0.696589965856190370f, - -0.717469455425435830f, - 0.696452380006157830f, -0.717603011688049080f, 0.696314768549562200f, - -0.717736541566450840f, - 0.696177131491462990f, -0.717870045055731710f, 0.696039468836920690f, - -0.718003522150983060f, - 0.695901780590996830f, -0.718136972847297490f, 0.695764066758753800f, - -0.718270397139768260f, - 0.695626327345254870f, -0.718403795023489720f, 0.695488562355564440f, - -0.718537166493557370f, - 0.695350771794747800f, -0.718670511545067230f, 0.695212955667870890f, - -0.718803830173116890f, - 0.695075113980000880f, -0.718937122372804380f, 0.694937246736205940f, - -0.719070388139229190f, - 0.694799353941554900f, -0.719203627467491220f, 0.694661435601117930f, - -0.719336840352691740f, - 0.694523491719965520f, -0.719470026789932990f, 0.694385522303169860f, - -0.719603186774318000f, - 0.694247527355803310f, -0.719736320300951030f, 0.694109506882939820f, - -0.719869427364936860f, - 0.693971460889654000f, -0.720002507961381650f, 0.693833389381021350f, - -0.720135562085392310f, - 0.693695292362118350f, -0.720268589732077080f, 0.693557169838022400f, - -0.720401590896544760f, - 0.693419021813811880f, -0.720534565573905270f, 0.693280848294566150f, - -0.720667513759269410f, - 0.693142649285365510f, -0.720800435447749190f, 0.693004424791290870f, - -0.720933330634457530f, - 0.692866174817424740f, -0.721066199314508110f, 0.692727899368849820f, - -0.721199041483015720f, - 0.692589598450650380f, -0.721331857135096180f, 0.692451272067911240f, - -0.721464646265866370f, - 0.692312920225718220f, -0.721597408870443660f, 0.692174542929158140f, - -0.721730144943947160f, - 0.692036140183318830f, -0.721862854481496340f, 0.691897711993288760f, - -0.721995537478211880f, - 0.691759258364157750f, -0.722128193929215350f, 0.691620779301016400f, - -0.722260823829629310f, - 0.691482274808955850f, -0.722393427174577550f, 0.691343744893068820f, - -0.722526003959184430f, - 0.691205189558448450f, -0.722658554178575610f, 0.691066608810189220f, - -0.722791077827877550f, - 0.690928002653386280f, -0.722923574902217700f, 0.690789371093135760f, - -0.723056045396724410f, - 0.690650714134534720f, -0.723188489306527350f, 0.690512031782681170f, - -0.723320906626756850f, - 0.690373324042674040f, -0.723453297352544380f, 0.690234590919613370f, - -0.723585661479022040f, - 0.690095832418599950f, -0.723717999001323390f, 0.689957048544735390f, - -0.723850309914582880f, - 0.689818239303122470f, -0.723982594213935520f, 0.689679404698864800f, - -0.724114851894517850f, - 0.689540544737066940f, -0.724247082951466890f, 0.689401659422834380f, - -0.724379287379921080f, - 0.689262748761273470f, -0.724511465175019520f, 0.689123812757491680f, - -0.724643616331902550f, - 0.688984851416597150f, -0.724775740845711280f, 0.688845864743699130f, - -0.724907838711587820f, - 0.688706852743907750f, -0.725039909924675370f, 0.688567815422334360f, - -0.725171954480117840f, - 0.688428752784090550f, -0.725303972373060660f, 0.688289664834289440f, - -0.725435963598649810f, - 0.688150551578044830f, -0.725567928152032300f, 0.688011413020471640f, - -0.725699866028356120f, - 0.687872249166685550f, -0.725831777222770370f, 0.687733060021803230f, - -0.725963661730424930f, - 0.687593845590942170f, -0.726095519546470890f, 0.687454605879221030f, - -0.726227350666060260f, - 0.687315340891759160f, -0.726359155084346010f, 0.687176050633676930f, - -0.726490932796481910f, - 0.687036735110095660f, -0.726622683797622850f, 0.686897394326137610f, - -0.726754408082924910f, - 0.686758028286925890f, -0.726886105647544970f, 0.686618636997584740f, - -0.727017776486640680f, - 0.686479220463238950f, -0.727149420595371020f, 0.686339778689014630f, - -0.727281037968895760f, - 0.686200311680038700f, -0.727412628602375770f, 0.686060819441438710f, - -0.727544192490972800f, - 0.685921301978343670f, -0.727675729629849610f, 0.685781759295883030f, - -0.727807240014169960f, - 0.685642191399187470f, -0.727938723639098620f, 0.685502598293388670f, - -0.728070180499801210f, - 0.685362979983618730f, -0.728201610591444500f, 0.685223336475011210f, - -0.728333013909196360f, - 0.685083667772700360f, -0.728464390448225200f, 0.684943973881821490f, - -0.728595740203700770f, - 0.684804254807510620f, -0.728727063170793720f, 0.684664510554904960f, - -0.728858359344675690f, - 0.684524741129142300f, -0.728989628720519310f, 0.684384946535361750f, - -0.729120871293498230f, - 0.684245126778703080f, -0.729252087058786970f, 0.684105281864307080f, - -0.729383276011561050f, - 0.683965411797315510f, -0.729514438146996900f, 0.683825516582870830f, - -0.729645573460272480f, - 0.683685596226116690f, -0.729776681946565970f, 0.683545650732197530f, - -0.729907763601057140f, - 0.683405680106258790f, -0.730038818418926150f, 0.683265684353446700f, - -0.730169846395354870f, - 0.683125663478908800f, -0.730300847525525380f, 0.682985617487792850f, - -0.730431821804621520f, - 0.682845546385248080f, -0.730562769227827590f, 0.682705450176424590f, - -0.730693689790328890f, - 0.682565328866473250f, -0.730824583487312050f, 0.682425182460546060f, - -0.730955450313964360f, - 0.682285010963795570f, -0.731086290265474230f, 0.682144814381375640f, - -0.731217103337031160f, - 0.682004592718440830f, -0.731347889523825460f, 0.681864345980146780f, - -0.731478648821048520f, - 0.681724074171649820f, -0.731609381223892520f, 0.681583777298107480f, - -0.731740086727550980f, - 0.681443455364677990f, -0.731870765327218290f, 0.681303108376520530f, - -0.732001417018089520f, - 0.681162736338795430f, -0.732132041795361290f, 0.681022339256663670f, - -0.732262639654230660f, - 0.680881917135287340f, -0.732393210589896040f, 0.680741469979829090f, - -0.732523754597556590f, - 0.680600997795453130f, -0.732654271672412820f, 0.680460500587323880f, - -0.732784761809665790f, - 0.680319978360607200f, -0.732915225004517780f, 0.680179431120469750f, - -0.733045661252171970f, - 0.680038858872079040f, -0.733176070547832740f, 0.679898261620603290f, - -0.733306452886705260f, - 0.679757639371212030f, -0.733436808263995710f, 0.679616992129075560f, - -0.733567136674911360f, - 0.679476319899365080f, -0.733697438114660260f, 0.679335622687252670f, - -0.733827712578451700f, - 0.679194900497911200f, -0.733957960061495940f, 0.679054153336514870f, - -0.734088180559004040f, - 0.678913381208238410f, -0.734218374066188170f, 0.678772584118257690f, - -0.734348540578261600f, - 0.678631762071749470f, -0.734478680090438370f, 0.678490915073891250f, - -0.734608792597933550f, - 0.678350043129861580f, -0.734738878095963390f, 0.678209146244839860f, - -0.734868936579745060f, - 0.678068224424006600f, -0.734998968044496600f, 0.677927277672543130f, - -0.735128972485437180f, - 0.677786305995631500f, -0.735258949897786730f, 0.677645309398454910f, - -0.735388900276766620f, - 0.677504287886197430f, -0.735518823617598900f, 0.677363241464044030f, - -0.735648719915506400f, - 0.677222170137180450f, -0.735778589165713480f, 0.677081073910793530f, - -0.735908431363445190f, - 0.676939952790071240f, -0.736038246503927350f, 0.676798806780201770f, - -0.736168034582387330f, - 0.676657635886374950f, -0.736297795594053060f, 0.676516440113781090f, - -0.736427529534153690f, - 0.676375219467611700f, -0.736557236397919150f, 0.676233973953058950f, - -0.736686916180580460f, - 0.676092703575316030f, -0.736816568877369790f, 0.675951408339577010f, - -0.736946194483520170f, - 0.675810088251037060f, -0.737075792994265620f, 0.675668743314891910f, - -0.737205364404841190f, - 0.675527373536338630f, -0.737334908710482790f, 0.675385978920574950f, - -0.737464425906427580f, - 0.675244559472799270f, -0.737593915987913460f, 0.675103115198211530f, - -0.737723378950179590f, - 0.674961646102012040f, -0.737852814788465980f, 0.674820152189402280f, - -0.737982223498013570f, - 0.674678633465584540f, -0.738111605074064260f, 0.674537089935762110f, - -0.738240959511861310f, - 0.674395521605139050f, -0.738370286806648510f, 0.674253928478920520f, - -0.738499586953671130f, - 0.674112310562312360f, -0.738628859948174840f, 0.673970667860521620f, - -0.738758105785406900f, - 0.673829000378756150f, -0.738887324460615110f, 0.673687308122224330f, - -0.739016515969048600f, - 0.673545591096136100f, -0.739145680305957400f, 0.673403849305701850f, - -0.739274817466592520f, - 0.673262082756132970f, -0.739403927446205760f, 0.673120291452642070f, - -0.739533010240050250f, - 0.672978475400442090f, -0.739662065843379900f, 0.672836634604747410f, - -0.739791094251449950f, - 0.672694769070772970f, -0.739920095459516090f, 0.672552878803734820f, - -0.740049069462835550f, - 0.672410963808849900f, -0.740178016256666240f, 0.672269024091336040f, - -0.740306935836266940f, - 0.672127059656411840f, -0.740435828196898020f, 0.671985070509296900f, - -0.740564693333820250f, - 0.671843056655211930f, -0.740693531242295640f, 0.671701018099378320f, - -0.740822341917587330f, - 0.671558954847018330f, -0.740951125354959110f, 0.671416866903355450f, - -0.741079881549676080f, - 0.671274754273613490f, -0.741208610497004260f, 0.671132616963017850f, - -0.741337312192210660f, - 0.670990454976794220f, -0.741465986630563290f, 0.670848268320169750f, - -0.741594633807331150f, - 0.670706056998372160f, -0.741723253717784140f, 0.670563821016630040f, - -0.741851846357193480f, - 0.670421560380173090f, -0.741980411720830960f, 0.670279275094231910f, - -0.742108949803969800f, - 0.670136965164037760f, -0.742237460601884000f, 0.669994630594823000f, - -0.742365944109848460f, - 0.669852271391821130f, -0.742494400323139180f, 0.669709887560265840f, - -0.742622829237033380f, - 0.669567479105392490f, -0.742751230846809050f, 0.669425046032436910f, - -0.742879605147745090f, - 0.669282588346636010f, -0.743007952135121720f, 0.669140106053227710f, - -0.743136271804219820f, - 0.668997599157450270f, -0.743264564150321490f, 0.668855067664543610f, - -0.743392829168709970f, - 0.668712511579748090f, -0.743521066854669120f, 0.668569930908305080f, - -0.743649277203484060f, - 0.668427325655456820f, -0.743777460210440780f, 0.668284695826446670f, - -0.743905615870826490f, - 0.668142041426518560f, -0.744033744179929180f, 0.667999362460917510f, - -0.744161845133038070f, - 0.667856658934889440f, -0.744289918725443140f, 0.667713930853681140f, - -0.744417964952435620f, - 0.667571178222540310f, -0.744545983809307250f, 0.667428401046715640f, - -0.744673975291351600f, - 0.667285599331456480f, -0.744801939393862630f, 0.667142773082013310f, - -0.744929876112135350f, - 0.666999922303637470f, -0.745057785441465950f, 0.666857047001581220f, - -0.745185667377151640f, - 0.666714147181097670f, -0.745313521914490410f, 0.666571222847440750f, - -0.745441349048781680f, - 0.666428274005865350f, -0.745569148775325430f, 0.666285300661627390f, - -0.745696921089422760f, - 0.666142302819983540f, -0.745824665986375980f, 0.665999280486191500f, - -0.745952383461488180f, - 0.665856233665509720f, -0.746080073510063780f, 0.665713162363197660f, - -0.746207736127407650f, - 0.665570066584515560f, -0.746335371308826320f, 0.665426946334724660f, - -0.746462979049626770f, - 0.665283801619087180f, -0.746590559345117310f, 0.665140632442866140f, - -0.746718112190607020f, - 0.664997438811325340f, -0.746845637581406540f, 0.664854220729729660f, - -0.746973135512826740f, - 0.664710978203344900f, -0.747100605980180130f, 0.664567711237437520f, - -0.747228048978779920f, - 0.664424419837275180f, -0.747355464503940190f, 0.664281104008126230f, - -0.747482852550976570f, - 0.664137763755260010f, -0.747610213115205150f, 0.663994399083946640f, - -0.747737546191943330f, - 0.663851009999457340f, -0.747864851776509410f, 0.663707596507064120f, - -0.747992129864222700f, - 0.663564158612039880f, -0.748119380450403490f, 0.663420696319658280f, - -0.748246603530373420f, - 0.663277209635194100f, -0.748373799099454560f, 0.663133698563923010f, - -0.748500967152970430f, - 0.662990163111121470f, -0.748628107686245330f, 0.662846603282066900f, - -0.748755220694604760f, - 0.662703019082037440f, -0.748882306173375030f, 0.662559410516312400f, - -0.749009364117883770f, - 0.662415777590171780f, -0.749136394523459260f, 0.662272120308896590f, - -0.749263397385431020f, - 0.662128438677768720f, -0.749390372699129560f, 0.661984732702071030f, - -0.749517320459886170f, - 0.661841002387086870f, -0.749644240663033480f, 0.661697247738101120f, - -0.749771133303904990f, - 0.661553468760399000f, -0.749897998377835220f, 0.661409665459266940f, - -0.750024835880159780f, - 0.661265837839992270f, -0.750151645806214960f, 0.661121985907862970f, - -0.750278428151338610f, - 0.660978109668168060f, -0.750405182910869220f, 0.660834209126197610f, - -0.750531910080146410f, - 0.660690284287242300f, -0.750658609654510590f, 0.660546335156593890f, - -0.750785281629303580f, - 0.660402361739545030f, -0.750911925999867890f, 0.660258364041389050f, - -0.751038542761547250f, - 0.660114342067420480f, -0.751165131909686370f, 0.659970295822934540f, - -0.751291693439630870f, - 0.659826225313227430f, -0.751418227346727360f, 0.659682130543596150f, - -0.751544733626323570f, - 0.659538011519338770f, -0.751671212273768430f, 0.659393868245753970f, - -0.751797663284411440f, - 0.659249700728141490f, -0.751924086653603550f, 0.659105508971802200f, - -0.752050482376696360f, - 0.658961292982037320f, -0.752176850449042700f, 0.658817052764149480f, - -0.752303190865996400f, - 0.658672788323441890f, -0.752429503622912390f, 0.658528499665218760f, - -0.752555788715146390f, - 0.658384186794785050f, -0.752682046138055230f, 0.658239849717446980f, - -0.752808275886996950f, - 0.658095488438511290f, -0.752934477957330150f, 0.657951102963285630f, - -0.753060652344415100f, - 0.657806693297078640f, -0.753186799043612410f, 0.657662259445200070f, - -0.753312918050284330f, - 0.657517801412960120f, -0.753439009359793580f, 0.657373319205670210f, - -0.753565072967504190f, - 0.657228812828642650f, -0.753691108868781210f, 0.657084282287190180f, - -0.753817117058990680f, - 0.656939727586627110f, -0.753943097533499640f, 0.656795148732268070f, - -0.754069050287676120f, - 0.656650545729429050f, -0.754194975316889170f, 0.656505918583426550f, - -0.754320872616508820f, - 0.656361267299578000f, -0.754446742181906330f, 0.656216591883202030f, - -0.754572584008453840f, - 0.656071892339617710f, -0.754698398091524390f, 0.655927168674145360f, - -0.754824184426492240f, - 0.655782420892106030f, -0.754949943008732640f, 0.655637648998821820f, - -0.755075673833621510f, - 0.655492852999615460f, -0.755201376896536550f, 0.655348032899810580f, - -0.755327052192855560f, - 0.655203188704731930f, -0.755452699717958140f, 0.655058320419704910f, - -0.755578319467224540f, - 0.654913428050056150f, -0.755703911436035880f, 0.654768511601112600f, - -0.755829475619774760f, - 0.654623571078202680f, -0.755955012013824310f, 0.654478606486655350f, - -0.756080520613569120f, - 0.654333617831800550f, -0.756206001414394540f, 0.654188605118969040f, - -0.756331454411686920f, - 0.654043568353492640f, -0.756456879600833630f, 0.653898507540703890f, - -0.756582276977223470f, - 0.653753422685936170f, -0.756707646536245670f, 0.653608313794523890f, - -0.756832988273290820f, - 0.653463180871802330f, -0.756958302183750490f, 0.653318023923107670f, - -0.757083588263017140f, - 0.653172842953776760f, -0.757208846506484460f, 0.653027637969147650f, - -0.757334076909547130f, - 0.652882408974558960f, -0.757459279467600720f, 0.652737155975350420f, - -0.757584454176041810f, - 0.652591878976862550f, -0.757709601030268080f, 0.652446577984436840f, - -0.757834720025678310f, - 0.652301253003415460f, -0.757959811157672300f, 0.652155904039141700f, - -0.758084874421650620f, - 0.652010531096959500f, -0.758209909813015280f, 0.651865134182214030f, - -0.758334917327168960f, - 0.651719713300251020f, -0.758459896959515320f, 0.651574268456417080f, - -0.758584848705459500f, - 0.651428799656059820f, -0.758709772560407390f, 0.651283306904527850f, - -0.758834668519765660f, - 0.651137790207170330f, -0.758959536578942440f, 0.650992249569337660f, - -0.759084376733346500f, - 0.650846684996380990f, -0.759209188978387960f, 0.650701096493652040f, - -0.759333973309477940f, - 0.650555484066503990f, -0.759458729722028210f, 0.650409847720290420f, - -0.759583458211452010f, - 0.650264187460365960f, -0.759708158773163440f, 0.650118503292086200f, - -0.759832831402577400f, - 0.649972795220807530f, -0.759957476095110330f, 0.649827063251887100f, - -0.760082092846179220f, - 0.649681307390683190f, -0.760206681651202420f, 0.649535527642554730f, - -0.760331242505599030f, - 0.649389724012861770f, -0.760455775404789260f, 0.649243896506965010f, - -0.760580280344194340f, - 0.649098045130226060f, -0.760704757319236920f, 0.648952169888007410f, - -0.760829206325340010f, - 0.648806270785672550f, -0.760953627357928040f, 0.648660347828585840f, - -0.761078020412426560f, - 0.648514401022112550f, -0.761202385484261780f, 0.648368430371618400f, - -0.761326722568861250f, - 0.648222435882470420f, -0.761451031661653510f, 0.648076417560036530f, - -0.761575312758068000f, - 0.647930375409685460f, -0.761699565853535270f, 0.647784309436786550f, - -0.761823790943486840f, - 0.647638219646710420f, -0.761947988023355390f, 0.647492106044828100f, - -0.762072157088574560f, - 0.647345968636512060f, -0.762196298134578900f, 0.647199807427135230f, - -0.762320411156804160f, - 0.647053622422071650f, -0.762444496150687100f, 0.646907413626696020f, - -0.762568553111665380f, - 0.646761181046383920f, -0.762692582035177870f, 0.646614924686512050f, - -0.762816582916664320f, - 0.646468644552457890f, -0.762940555751565720f, 0.646322340649599590f, - -0.763064500535323710f, - 0.646176012983316390f, -0.763188417263381270f, 0.646029661558988330f, - -0.763312305931182380f, - 0.645883286381996440f, -0.763436166534172010f, 0.645736887457722290f, - -0.763559999067796150f, - 0.645590464791548800f, -0.763683803527501870f, 0.645444018388859230f, - -0.763807579908737160f, - 0.645297548255038380f, -0.763931328206951090f, 0.645151054395471270f, - -0.764055048417593860f, - 0.645004536815544040f, -0.764178740536116670f, 0.644857995520643710f, - -0.764302404557971720f, - 0.644711430516158420f, -0.764426040478612070f, 0.644564841807476750f, - -0.764549648293492150f, - 0.644418229399988380f, -0.764673227998067140f, 0.644271593299083900f, - -0.764796779587793460f, - 0.644124933510154540f, -0.764920303058128410f, 0.643978250038592660f, - -0.765043798404530410f, - 0.643831542889791500f, -0.765167265622458960f, 0.643684812069144960f, - -0.765290704707374260f, - 0.643538057582047850f, -0.765414115654738160f, 0.643391279433895960f, - -0.765537498460013070f, - 0.643244477630085850f, -0.765660853118662390f, 0.643097652176015110f, - -0.765784179626150970f, - 0.642950803077082080f, -0.765907477977944230f, 0.642803930338686100f, - -0.766030748169509000f, - 0.642657033966226860f, -0.766153990196312810f, 0.642510113965105710f, - -0.766277204053824710f, - 0.642363170340724320f, -0.766400389737514120f, 0.642216203098485370f, - -0.766523547242852100f, - 0.642069212243792540f, -0.766646676565310380f, 0.641922197782050170f, - -0.766769777700361920f, - 0.641775159718663500f, -0.766892850643480670f, 0.641628098059038860f, - -0.767015895390141480f, - 0.641481012808583160f, -0.767138911935820400f, 0.641333903972704290f, - -0.767261900275994390f, - 0.641186771556811250f, -0.767384860406141620f, 0.641039615566313390f, - -0.767507792321741270f, - 0.640892436006621380f, -0.767630696018273270f, 0.640745232883146440f, - -0.767753571491219030f, - 0.640598006201301030f, -0.767876418736060610f, 0.640450755966498140f, - -0.767999237748281270f, - 0.640303482184151670f, -0.768122028523365310f, 0.640156184859676620f, - -0.768244791056798220f, - 0.640008863998488440f, -0.768367525344066270f, 0.639861519606004010f, - -0.768490231380656750f, - 0.639714151687640450f, -0.768612909162058270f, 0.639566760248816420f, - -0.768735558683760310f, - 0.639419345294950700f, -0.768858179941253270f, 0.639271906831463510f, - -0.768980772930028870f, - 0.639124444863775730f, -0.769103337645579590f, 0.638976959397309140f, - -0.769225874083399260f, - 0.638829450437486400f, -0.769348382238982280f, 0.638681917989730840f, - -0.769470862107824560f, - 0.638534362059466790f, -0.769593313685422940f, 0.638386782652119680f, - -0.769715736967275020f, - 0.638239179773115390f, -0.769838131948879840f, 0.638091553427880930f, - -0.769960498625737230f, - 0.637943903621844170f, -0.770082836993347900f, 0.637796230360433540f, - -0.770205147047214100f, - 0.637648533649078810f, -0.770327428782838770f, 0.637500813493210310f, - -0.770449682195725960f, - 0.637353069898259130f, -0.770571907281380700f, 0.637205302869657600f, - -0.770694104035309140f, - 0.637057512412838590f, -0.770816272453018430f, 0.636909698533235870f, - -0.770938412530016940f, - 0.636761861236284200f, -0.771060524261813710f, 0.636614000527419230f, - -0.771182607643919220f, - 0.636466116412077180f, -0.771304662671844720f, 0.636318208895695570f, - -0.771426689341102590f, - 0.636170277983712170f, -0.771548687647206300f, 0.636022323681566300f, - -0.771670657585670330f, - 0.635874345994697720f, -0.771792599152010150f, 0.635726344928547180f, - -0.771914512341742350f, - 0.635578320488556230f, -0.772036397150384410f, 0.635430272680167160f, - -0.772158253573455240f, - 0.635282201508823530f, -0.772280081606474320f, 0.635134106979969300f, - -0.772401881244962340f, - 0.634985989099049460f, -0.772523652484441330f, 0.634837847871510100f, - -0.772645395320433860f, - 0.634689683302797850f, -0.772767109748463740f, 0.634541495398360130f, - -0.772888795764056220f, - 0.634393284163645490f, -0.773010453362736990f, 0.634245049604103330f, - -0.773132082540033070f, - 0.634096791725183740f, -0.773253683291472590f, 0.633948510532337810f, - -0.773375255612584470f, - 0.633800206031017280f, -0.773496799498899050f, 0.633651878226674900f, - -0.773618314945947460f, - 0.633503527124764320f, -0.773739801949261840f, 0.633355152730740060f, - -0.773861260504375540f, - 0.633206755050057190f, -0.773982690606822790f, 0.633058334088172250f, - -0.774104092252138940f, - 0.632909889850541860f, -0.774225465435860570f, 0.632761422342624000f, - -0.774346810153525020f, - 0.632612931569877520f, -0.774468126400670860f, 0.632464417537761840f, - -0.774589414172837550f, - 0.632315880251737680f, -0.774710673465565550f, 0.632167319717266030f, - -0.774831904274396850f, - 0.632018735939809060f, -0.774953106594873820f, 0.631870128924829850f, - -0.775074280422540450f, - 0.631721498677792370f, -0.775195425752941310f, 0.631572845204161130f, - -0.775316542581622410f, - 0.631424168509401860f, -0.775437630904130430f, 0.631275468598980870f, - -0.775558690716013580f, - 0.631126745478365340f, -0.775679722012820540f, 0.630977999153023660f, - -0.775800724790101540f, - 0.630829229628424470f, -0.775921699043407580f, 0.630680436910038060f, - -0.776042644768290770f, - 0.630531621003334600f, -0.776163561960304340f, 0.630382781913785940f, - -0.776284450615002400f, - 0.630233919646864480f, -0.776405310727940390f, 0.630085034208043290f, - -0.776526142294674430f, - 0.629936125602796550f, -0.776646945310762060f, 0.629787193836599200f, - -0.776767719771761510f, - 0.629638238914927100f, -0.776888465673232440f, 0.629489260843256740f, - -0.777009183010735290f, - 0.629340259627065750f, -0.777129871779831620f, 0.629191235271832410f, - -0.777250531976084070f, - 0.629042187783036000f, -0.777371163595056200f, 0.628893117166156480f, - -0.777491766632312900f, - 0.628744023426674790f, -0.777612341083419920f, 0.628594906570072660f, - -0.777732886943944050f, - 0.628445766601832710f, -0.777853404209453040f, 0.628296603527438440f, - -0.777973892875515990f, - 0.628147417352374120f, -0.778094352937702790f, 0.627998208082124810f, - -0.778214784391584420f, - 0.627848975722176570f, -0.778335187232733090f, 0.627699720278016240f, - -0.778455561456721900f, - 0.627550441755131530f, -0.778575907059124940f, 0.627401140159011160f, - -0.778696224035517530f, - 0.627251815495144190f, -0.778816512381475870f, 0.627102467769021010f, - -0.778936772092577500f, - 0.626953096986132770f, -0.779057003164400630f, 0.626803703151971310f, - -0.779177205592524680f, - 0.626654286272029460f, -0.779297379372530300f, 0.626504846351800930f, - -0.779417524499998900f, - 0.626355383396779990f, -0.779537640970513150f, 0.626205897412462130f, - -0.779657728779656780f, - 0.626056388404343520f, -0.779777787923014440f, 0.625906856377921210f, - -0.779897818396171890f, - 0.625757301338692900f, -0.780017820194715990f, 0.625607723292157410f, - -0.780137793314234500f, - 0.625458122243814360f, -0.780257737750316590f, 0.625308498199164010f, - -0.780377653498552040f, - 0.625158851163707730f, -0.780497540554531910f, 0.625009181142947460f, - -0.780617398913848290f, - 0.624859488142386450f, -0.780737228572094380f, 0.624709772167528100f, - -0.780857029524864470f, - 0.624560033223877320f, -0.780976801767753750f, 0.624410271316939380f, - -0.781096545296358410f, - 0.624260486452220650f, -0.781216260106276090f, 0.624110678635228510f, - -0.781335946193104870f, - 0.623960847871470770f, -0.781455603552444480f, 0.623810994166456130f, - -0.781575232179895550f, - 0.623661117525694640f, -0.781694832071059390f, 0.623511217954696550f, - -0.781814403221538830f, - 0.623361295458973340f, -0.781933945626937630f, 0.623211350044037270f, - -0.782053459282860300f, - 0.623061381715401370f, -0.782172944184912900f, 0.622911390478579460f, - -0.782292400328702400f, - 0.622761376339086460f, -0.782411827709836420f, 0.622611339302437730f, - -0.782531226323924240f, - 0.622461279374150080f, -0.782650596166575730f, 0.622311196559740320f, - -0.782769937233402050f, - 0.622161090864726930f, -0.782889249520015480f, 0.622010962294628600f, - -0.783008533022029110f, - 0.621860810854965360f, -0.783127787735057310f, 0.621710636551257690f, - -0.783247013654715380f, - 0.621560439389027270f, -0.783366210776619720f, 0.621410219373796150f, - -0.783485379096387820f, - 0.621259976511087660f, -0.783604518609638200f, 0.621109710806425740f, - -0.783723629311990470f, - 0.620959422265335180f, -0.783842711199065230f, 0.620809110893341900f, - -0.783961764266484010f, - 0.620658776695972140f, -0.784080788509869950f, 0.620508419678753360f, - -0.784199783924846570f, - 0.620358039847213830f, -0.784318750507038920f, 0.620207637206882430f, - -0.784437688252072720f, - 0.620057211763289210f, -0.784556597155575240f, 0.619906763521964830f, - -0.784675477213174320f, - 0.619756292488440660f, -0.784794328420499230f, 0.619605798668249390f, - -0.784913150773180020f, - 0.619455282066924020f, -0.785031944266848080f, 0.619304742689998690f, - -0.785150708897135560f, - 0.619154180543008410f, -0.785269444659675850f, 0.619003595631488770f, - -0.785388151550103550f, - 0.618852987960976320f, -0.785506829564053930f, 0.618702357537008640f, - -0.785625478697163700f, - 0.618551704365123860f, -0.785744098945070360f, 0.618401028450860980f, - -0.785862690303412600f, - 0.618250329799760250f, -0.785981252767830150f, 0.618099608417362110f, - -0.786099786333963820f, - 0.617948864309208260f, -0.786218290997455550f, 0.617798097480841140f, - -0.786336766753948260f, - 0.617647307937803980f, -0.786455213599085770f, 0.617496495685640910f, - -0.786573631528513230f, - 0.617345660729896940f, -0.786692020537876680f, 0.617194803076117630f, - -0.786810380622823490f, - 0.617043922729849760f, -0.786928711779001700f, 0.616893019696640790f, - -0.787047014002060790f, - 0.616742093982038830f, -0.787165287287650890f, 0.616591145591593230f, - -0.787283531631423620f, - 0.616440174530853650f, -0.787401747029031320f, 0.616289180805370980f, - -0.787519933476127810f, - 0.616138164420696910f, -0.787638090968367450f, 0.615987125382383870f, - -0.787756219501405950f, - 0.615836063695985090f, -0.787874319070900110f, 0.615684979367054570f, - -0.787992389672507950f, - 0.615533872401147430f, -0.788110431301888070f, 0.615382742803819330f, - -0.788228443954700490f, - 0.615231590580626820f, -0.788346427626606230f, 0.615080415737127460f, - -0.788464382313267430f, - 0.614929218278879590f, -0.788582308010347120f, 0.614777998211442190f, - -0.788700204713509660f, - 0.614626755540375050f, -0.788818072418420170f, 0.614475490271239160f, - -0.788935911120745130f, - 0.614324202409595950f, -0.789053720816151880f, 0.614172891961007990f, - -0.789171501500308790f, - 0.614021558931038490f, -0.789289253168885650f, 0.613870203325251440f, - -0.789406975817552810f, - 0.613718825149211830f, -0.789524669441982190f, 0.613567424408485330f, - -0.789642334037846340f, - 0.613416001108638590f, -0.789759969600819070f, 0.613264555255239150f, - -0.789877576126575280f, - 0.613113086853854910f, -0.789995153610791090f, 0.612961595910055170f, - -0.790112702049143300f, - 0.612810082429409710f, -0.790230221437310030f, 0.612658546417489290f, - -0.790347711770970520f, - 0.612506987879865570f, -0.790465173045804880f, 0.612355406822110760f, - -0.790582605257494460f, - 0.612203803249798060f, -0.790700008401721610f, 0.612052177168501580f, - -0.790817382474169660f, - 0.611900528583796070f, -0.790934727470523290f, 0.611748857501257400f, - -0.791052043386467950f, - 0.611597163926462020f, -0.791169330217690090f, 0.611445447864987110f, - -0.791286587959877720f, - 0.611293709322411010f, -0.791403816608719500f, 0.611141948304312570f, - -0.791521016159905220f, - 0.610990164816271770f, -0.791638186609125770f, 0.610838358863869280f, - -0.791755327952073150f, - 0.610686530452686280f, -0.791872440184440470f, 0.610534679588305320f, - -0.791989523301921850f, - 0.610382806276309480f, -0.792106577300212390f, 0.610230910522282620f, - -0.792223602175008310f, - 0.610078992331809620f, -0.792340597922007060f, 0.609927051710476230f, - -0.792457564536906970f, - 0.609775088663868430f, -0.792574502015407580f, 0.609623103197573730f, - -0.792691410353209450f, - 0.609471095317180240f, -0.792808289546014120f, 0.609319065028276820f, - -0.792925139589524260f, - 0.609167012336453210f, -0.793041960479443640f, 0.609014937247299940f, - -0.793158752211477140f, - 0.608862839766408200f, -0.793275514781330630f, 0.608710719899370420f, - -0.793392248184711100f, - 0.608558577651779450f, -0.793508952417326660f, 0.608406413029229260f, - -0.793625627474886190f, - 0.608254226037314490f, -0.793742273353100100f, 0.608102016681630550f, - -0.793858890047679620f, - 0.607949784967773740f, -0.793975477554337170f, 0.607797530901341140f, - -0.794092035868785960f, - 0.607645254487930830f, -0.794208564986740640f, 0.607492955733141660f, - -0.794325064903916520f, - 0.607340634642572930f, -0.794441535616030590f, 0.607188291221825160f, - -0.794557977118800270f, - 0.607035925476499760f, -0.794674389407944550f, 0.606883537412198580f, - -0.794790772479183170f, - 0.606731127034524480f, -0.794907126328237010f, 0.606578694349081400f, - -0.795023450950828050f, - 0.606426239361473550f, -0.795139746342679590f, 0.606273762077306430f, - -0.795256012499515500f, - 0.606121262502186230f, -0.795372249417061190f, 0.605968740641719790f, - -0.795488457091042990f, - 0.605816196501515080f, -0.795604635517188070f, 0.605663630087180490f, - -0.795720784691225090f, - 0.605511041404325550f, -0.795836904608883460f, 0.605358430458560530f, - -0.795952995265893910f, - 0.605205797255496500f, -0.796069056657987990f, 0.605053141800745430f, - -0.796185088780898440f, - 0.604900464099919930f, -0.796301091630359110f, 0.604747764158633410f, - -0.796417065202104980f, - 0.604595041982500360f, -0.796533009491872000f, 0.604442297577135970f, - -0.796648924495397150f, - 0.604289530948156070f, -0.796764810208418720f, 0.604136742101177630f, - -0.796880666626675780f, - 0.603983931041818020f, -0.796996493745908750f, 0.603831097775695880f, - -0.797112291561858920f, - 0.603678242308430370f, -0.797228060070268700f, 0.603525364645641550f, - -0.797343799266881700f, - 0.603372464792950370f, -0.797459509147442460f, 0.603219542755978440f, - -0.797575189707696590f, - 0.603066598540348280f, -0.797690840943391040f, 0.602913632151683140f, - -0.797806462850273570f, - 0.602760643595607220f, -0.797922055424093000f, 0.602607632877745550f, - -0.798037618660599410f, - 0.602454600003723860f, -0.798153152555543750f, 0.602301544979168550f, - -0.798268657104678310f, - 0.602148467809707320f, -0.798384132303756380f, 0.601995368500968130f, - -0.798499578148532010f, - 0.601842247058580030f, -0.798614994634760820f, 0.601689103488173060f, - -0.798730381758199210f, - 0.601535937795377730f, -0.798845739514604580f, 0.601382749985825420f, - -0.798961067899735760f, - 0.601229540065148620f, -0.799076366909352350f, 0.601076308038980160f, - -0.799191636539215210f, - 0.600923053912954090f, -0.799306876785086160f, 0.600769777692705230f, - -0.799422087642728040f, - 0.600616479383868970f, -0.799537269107905010f, 0.600463158992081690f, - -0.799652421176382130f, - 0.600309816522980430f, -0.799767543843925680f, 0.600156451982203350f, - -0.799882637106302810f, - 0.600003065375389060f, -0.799997700959281910f, 0.599849656708177360f, - -0.800112735398632370f, - 0.599696225986208310f, -0.800227740420124790f, 0.599542773215123390f, - -0.800342716019530660f, - 0.599389298400564540f, -0.800457662192622710f, 0.599235801548174570f, - -0.800572578935174750f, - 0.599082282663597310f, -0.800687466242961500f, 0.598928741752476900f, - -0.800802324111759110f, - 0.598775178820458720f, -0.800917152537344300f, 0.598621593873188920f, - -0.801031951515495330f, - 0.598467986916314310f, -0.801146721041991250f, 0.598314357955482600f, - -0.801261461112612540f, - 0.598160706996342380f, -0.801376171723140130f, 0.598007034044542700f, - -0.801490852869356840f, - 0.597853339105733910f, -0.801605504547046040f, 0.597699622185566830f, - -0.801720126751992330f, - 0.597545883289693270f, -0.801834719479981310f, 0.597392122423765710f, - -0.801949282726799660f, - 0.597238339593437530f, -0.802063816488235440f, 0.597084534804362740f, - -0.802178320760077450f, - 0.596930708062196500f, -0.802292795538115720f, 0.596776859372594500f, - -0.802407240818141300f, - 0.596622988741213330f, -0.802521656595946320f, 0.596469096173710360f, - -0.802636042867324150f, - 0.596315181675743820f, -0.802750399628069160f, 0.596161245252972540f, - -0.802864726873976590f, - 0.596007286911056530f, -0.802979024600843140f, 0.595853306655656390f, - -0.803093292804466400f, - 0.595699304492433470f, -0.803207531480644830f, 0.595545280427049790f, - -0.803321740625178470f, - 0.595391234465168730f, -0.803435920233868120f, 0.595237166612453850f, - -0.803550070302515570f, - 0.595083076874569960f, -0.803664190826924090f, 0.594928965257182420f, - -0.803778281802897570f, - 0.594774831765957580f, -0.803892343226241260f, 0.594620676406562240f, - -0.804006375092761520f, - 0.594466499184664540f, -0.804120377398265700f, 0.594312300105932830f, - -0.804234350138562260f, - 0.594158079176036800f, -0.804348293309460780f, 0.594003836400646690f, - -0.804462206906771840f, - 0.593849571785433630f, -0.804576090926307000f, 0.593695285336069300f, - -0.804689945363879500f, - 0.593540977058226390f, -0.804803770215302810f, 0.593386646957578480f, - -0.804917565476392150f, - 0.593232295039799800f, -0.805031331142963660f, 0.593077921310565580f, - -0.805145067210834120f, - 0.592923525775551410f, -0.805258773675822210f, 0.592769108440434070f, - -0.805372450533747060f, - 0.592614669310891130f, -0.805486097780429120f, 0.592460208392600940f, - -0.805599715411689950f, - 0.592305725691242400f, -0.805713303423352120f, 0.592151221212495640f, - -0.805826861811239300f, - 0.591996694962040990f, -0.805940390571176280f, 0.591842146945560250f, - -0.806053889698988950f, - 0.591687577168735550f, -0.806167359190504310f, 0.591532985637249990f, - -0.806280799041550370f, - 0.591378372356787580f, -0.806394209247956240f, 0.591223737333032910f, - -0.806507589805552260f, - 0.591069080571671510f, -0.806620940710169650f, 0.590914402078389520f, - -0.806734261957640750f, - 0.590759701858874280f, -0.806847553543799220f, 0.590604979918813440f, - -0.806960815464479620f, - 0.590450236263895920f, -0.807074047715517610f, 0.590295470899810940f, - -0.807187250292749850f, - 0.590140683832248940f, -0.807300423192014450f, 0.589985875066900920f, - -0.807413566409150190f, - 0.589831044609458900f, -0.807526679939997160f, 0.589676192465615420f, - -0.807639763780396370f, - 0.589521318641063940f, -0.807752817926190360f, 0.589366423141498790f, - -0.807865842373222120f, - 0.589211505972615070f, -0.807978837117336310f, 0.589056567140108460f, - -0.808091802154378260f, - 0.588901606649675840f, -0.808204737480194720f, 0.588746624507014650f, - -0.808317643090633250f, - 0.588591620717822890f, -0.808430518981542720f, 0.588436595287799900f, - -0.808543365148773010f, - 0.588281548222645330f, -0.808656181588174980f, 0.588126479528059850f, - -0.808768968295600850f, - 0.587971389209745120f, -0.808881725266903610f, 0.587816277273403020f, - -0.808994452497937560f, - 0.587661143724736770f, -0.809107149984558130f, 0.587505988569450020f, - -0.809219817722621750f, - 0.587350811813247660f, -0.809332455707985840f, 0.587195613461834910f, - -0.809445063936509170f, - 0.587040393520918080f, -0.809557642404051260f, 0.586885151996203950f, - -0.809670191106473090f, - 0.586729888893400500f, -0.809782710039636420f, 0.586574604218216280f, - -0.809895199199404450f, - 0.586419297976360500f, -0.810007658581641140f, 0.586263970173543700f, - -0.810120088182211600f, - 0.586108620815476430f, -0.810232487996982330f, 0.585953249907870680f, - -0.810344858021820550f, - 0.585797857456438860f, -0.810457198252594770f, 0.585642443466894420f, - -0.810569508685174630f, - 0.585487007944951450f, -0.810681789315430670f, 0.585331550896324940f, - -0.810794040139234730f, - 0.585176072326730410f, -0.810906261152459670f, 0.585020572241884530f, - -0.811018452350979470f, - 0.584865050647504490f, -0.811130613730669190f, 0.584709507549308500f, - -0.811242745287404810f, - 0.584553942953015330f, -0.811354847017063730f, 0.584398356864344710f, - -0.811466918915524250f, - 0.584242749289016980f, -0.811578960978665890f, 0.584087120232753550f, - -0.811690973202369050f, - 0.583931469701276300f, -0.811802955582515360f, 0.583775797700308070f, - -0.811914908114987680f, - 0.583620104235572760f, -0.812026830795669730f, 0.583464389312794430f, - -0.812138723620446480f, - 0.583308652937698290f, -0.812250586585203880f, 0.583152895116010540f, - -0.812362419685829120f, - 0.582997115853457700f, -0.812474222918210480f, 0.582841315155767650f, - -0.812585996278237020f, - 0.582685493028668460f, -0.812697739761799490f, 0.582529649477889320f, - -0.812809453364789160f, - 0.582373784509160220f, -0.812921137083098770f, 0.582217898128211790f, - -0.813032790912621930f, - 0.582061990340775550f, -0.813144414849253590f, 0.581906061152583920f, - -0.813256008888889380f, - 0.581750110569369760f, -0.813367573027426570f, 0.581594138596866930f, - -0.813479107260763220f, - 0.581438145240810280f, -0.813590611584798510f, 0.581282130506935110f, - -0.813702085995432700f, - 0.581126094400977620f, -0.813813530488567190f, 0.580970036928674880f, - -0.813924945060104490f, - 0.580813958095764530f, -0.814036329705948300f, 0.580657857907985410f, - -0.814147684422003360f, - 0.580501736371076600f, -0.814259009204175270f, 0.580345593490778300f, - -0.814370304048371070f, - 0.580189429272831680f, -0.814481568950498610f, 0.580033243722978150f, - -0.814592803906467270f, - 0.579877036846960350f, -0.814704008912187080f, 0.579720808650521560f, - -0.814815183963569330f, - 0.579564559139405740f, -0.814926329056526620f, 0.579408288319357980f, - -0.815037444186972220f, - 0.579251996196123550f, -0.815148529350820830f, 0.579095682775449210f, - -0.815259584543988280f, - 0.578939348063081890f, -0.815370609762391290f, 0.578782992064769690f, - -0.815481605001947770f, - 0.578626614786261430f, -0.815592570258576680f, 0.578470216233306740f, - -0.815703505528198260f, - 0.578313796411655590f, -0.815814410806733780f, 0.578157355327059360f, - -0.815925286090105390f, - 0.578000892985269910f, -0.816036131374236700f, 0.577844409392039850f, - -0.816146946655052160f, - 0.577687904553122800f, -0.816257731928477390f, 0.577531378474272830f, - -0.816368487190439200f, - 0.577374831161244880f, -0.816479212436865390f, 0.577218262619794920f, - -0.816589907663684890f, - 0.577061672855679550f, -0.816700572866827850f, 0.576905061874655960f, - -0.816811208042225290f, - 0.576748429682482520f, -0.816921813185809480f, 0.576591776284917870f, - -0.817032388293513880f, - 0.576435101687721830f, -0.817142933361272970f, 0.576278405896654910f, - -0.817253448385022230f, - 0.576121688917478390f, -0.817363933360698460f, 0.575964950755954330f, - -0.817474388284239240f, - 0.575808191417845340f, -0.817584813151583710f, 0.575651410908915250f, - -0.817695207958671680f, - 0.575494609234928230f, -0.817805572701444270f, 0.575337786401649560f, - -0.817915907375843740f, - 0.575180942414845190f, -0.818026211977813440f, 0.575024077280281820f, - -0.818136486503297620f, - 0.574867191003726740f, -0.818246730948241960f, 0.574710283590948450f, - -0.818356945308593150f, - 0.574553355047715760f, -0.818467129580298660f, 0.574396405379798750f, - -0.818577283759307490f, - 0.574239434592967890f, -0.818687407841569570f, 0.574082442692994470f, - -0.818797501823036010f, - 0.573925429685650750f, -0.818907565699658950f, 0.573768395576709560f, - -0.819017599467391500f, - 0.573611340371944610f, -0.819127603122188240f, 0.573454264077130400f, - -0.819237576660004520f, - 0.573297166698042320f, -0.819347520076796900f, 0.573140048240456060f, - -0.819457433368523280f, - 0.572982908710148680f, -0.819567316531142230f, 0.572825748112897550f, - -0.819677169560613760f, - 0.572668566454481160f, -0.819786992452898990f, 0.572511363740678790f, - -0.819896785203959810f, - 0.572354139977270030f, -0.820006547809759680f, 0.572196895170035580f, - -0.820116280266262710f, - 0.572039629324757050f, -0.820225982569434690f, 0.571882342447216590f, - -0.820335654715241840f, - 0.571725034543197120f, -0.820445296699652050f, 0.571567705618482580f, - -0.820554908518633890f, - 0.571410355678857340f, -0.820664490168157460f, 0.571252984730106660f, - -0.820774041644193650f, - 0.571095592778016690f, -0.820883562942714580f, 0.570938179828374360f, - -0.820993054059693470f, - 0.570780745886967370f, -0.821102514991104650f, 0.570623290959583860f, - -0.821211945732923550f, - 0.570465815052012990f, -0.821321346281126740f, 0.570308318170045010f, - -0.821430716631691760f, - 0.570150800319470300f, -0.821540056780597610f, 0.569993261506080650f, - -0.821649366723823830f, - 0.569835701735668110f, -0.821758646457351640f, 0.569678121014025710f, - -0.821867895977163140f, - 0.569520519346947250f, -0.821977115279241550f, 0.569362896740227330f, - -0.822086304359571090f, - 0.569205253199661200f, -0.822195463214137170f, 0.569047588731045220f, - -0.822304591838926350f, - 0.568889903340175970f, -0.822413690229926390f, 0.568732197032851160f, - -0.822522758383125940f, - 0.568574469814869250f, -0.822631796294514990f, 0.568416721692029390f, - -0.822740803960084420f, - 0.568258952670131490f, -0.822849781375826320f, 0.568101162754976570f, - -0.822958728537734000f, - 0.567943351952365670f, -0.823067645441801670f, 0.567785520268101250f, - -0.823176532084024860f, - 0.567627667707986230f, -0.823285388460400110f, 0.567469794277824620f, - -0.823394214566925080f, - 0.567311899983420800f, -0.823503010399598390f, 0.567153984830580100f, - -0.823611775954420260f, - 0.566996048825108680f, -0.823720511227391320f, 0.566838091972813320f, - -0.823829216214513990f, - 0.566680114279501710f, -0.823937890911791370f, 0.566522115750982100f, - -0.824046535315227760f, - 0.566364096393063950f, -0.824155149420828570f, 0.566206056211556840f, - -0.824263733224600450f, - 0.566047995212271560f, -0.824372286722551250f, 0.565889913401019570f, - -0.824480809910689500f, - 0.565731810783613230f, -0.824589302785025290f, 0.565573687365865440f, - -0.824697765341569470f, - 0.565415543153589770f, -0.824806197576334330f, 0.565257378152600910f, - -0.824914599485333080f, - 0.565099192368714090f, -0.825022971064580220f, 0.564940985807745320f, - -0.825131312310090960f, - 0.564782758475511400f, -0.825239623217882130f, 0.564624510377830120f, - -0.825347903783971380f, - 0.564466241520519500f, -0.825456154004377440f, 0.564307951909398750f, - -0.825564373875120490f, - 0.564149641550287680f, -0.825672563392221390f, 0.563991310449007080f, - -0.825780722551702430f, - 0.563832958611378170f, -0.825888851349586780f, 0.563674586043223180f, - -0.825996949781898970f, - 0.563516192750364910f, -0.826105017844664610f, 0.563357778738627020f, - -0.826213055533910110f, - 0.563199344013834090f, -0.826321062845663420f, 0.563040888581811230f, - -0.826429039775953390f, - 0.562882412448384550f, -0.826536986320809960f, 0.562723915619380400f, - -0.826644902476264210f, - 0.562565398100626560f, -0.826752788238348520f, 0.562406859897951140f, - -0.826860643603096080f, - 0.562248301017183150f, -0.826968468566541490f, 0.562089721464152480f, - -0.827076263124720270f, - 0.561931121244689470f, -0.827184027273669020f, 0.561772500364625450f, - -0.827291761009425810f, - 0.561613858829792420f, -0.827399464328029350f, 0.561455196646023280f, - -0.827507137225519830f, - 0.561296513819151470f, -0.827614779697938400f, 0.561137810355011530f, - -0.827722391741327220f, - 0.560979086259438260f, -0.827829973351729810f, 0.560820341538267540f, - -0.827937524525190870f, - 0.560661576197336030f, -0.828045045257755800f, 0.560502790242481060f, - -0.828152535545471410f, - 0.560343983679540860f, -0.828259995384385550f, 0.560185156514354080f, - -0.828367424770547480f, - 0.560026308752760380f, -0.828474823700007130f, 0.559867440400600320f, - -0.828582192168815790f, - 0.559708551463714790f, -0.828689530173025710f, 0.559549641947945870f, - -0.828796837708690610f, - 0.559390711859136140f, -0.828904114771864870f, 0.559231761203129010f, - -0.829011361358604430f, - 0.559072789985768480f, -0.829118577464965980f, 0.558913798212899770f, - -0.829225763087007570f, - 0.558754785890368310f, -0.829332918220788250f, 0.558595753024020760f, - -0.829440042862368170f, - 0.558436699619704100f, -0.829547137007808800f, 0.558277625683266330f, - -0.829654200653172640f, - 0.558118531220556100f, -0.829761233794523050f, 0.557959416237422960f, - -0.829868236427924840f, - 0.557800280739717100f, -0.829975208549443840f, 0.557641124733289420f, - -0.830082150155146970f, - 0.557481948223991660f, -0.830189061241102370f, 0.557322751217676160f, - -0.830295941803379070f, - 0.557163533720196340f, -0.830402791838047550f, 0.557004295737406060f, - -0.830509611341179070f, - 0.556845037275160100f, -0.830616400308846200f, 0.556685758339313890f, - -0.830723158737122880f, - 0.556526458935723720f, -0.830829886622083570f, 0.556367139070246490f, - -0.830936583959804410f, - 0.556207798748739930f, -0.831043250746362320f, 0.556048437977062720f, - -0.831149886977835430f, - 0.555889056761073920f, -0.831256492650303210f, 0.555729655106633520f, - -0.831363067759845920f, - 0.555570233019602290f, -0.831469612302545240f, 0.555410790505841740f, - -0.831576126274483630f, - 0.555251327571214090f, -0.831682609671745120f, 0.555091844221582420f, - -0.831789062490414400f, - 0.554932340462810370f, -0.831895484726577590f, 0.554772816300762580f, - -0.832001876376321840f, - 0.554613271741304040f, -0.832108237435735480f, 0.554453706790301040f, - -0.832214567900907980f, - 0.554294121453620110f, -0.832320867767929680f, 0.554134515737128910f, - -0.832427137032892280f, - 0.553974889646695610f, -0.832533375691888680f, 0.553815243188189090f, - -0.832639583741012770f, - 0.553655576367479310f, -0.832745761176359460f, 0.553495889190436570f, - -0.832851907994024980f, - 0.553336181662932410f, -0.832958024190106670f, 0.553176453790838460f, - -0.833064109760702890f, - 0.553016705580027580f, -0.833170164701913190f, 0.552856937036373290f, - -0.833276189009838240f, - 0.552697148165749770f, -0.833382182680579730f, 0.552537338974032120f, - -0.833488145710240770f, - 0.552377509467096070f, -0.833594078094925140f, 0.552217659650817930f, - -0.833699979830738290f, - 0.552057789531074980f, -0.833805850913786340f, 0.551897899113745320f, - -0.833911691340176730f, - 0.551737988404707450f, -0.834017501106018130f, 0.551578057409841000f, - -0.834123280207419990f, - 0.551418106135026060f, -0.834229028640493420f, 0.551258134586143700f, - -0.834334746401350080f, - 0.551098142769075430f, -0.834440433486103190f, 0.550938130689703880f, - -0.834546089890866760f, - 0.550778098353912230f, -0.834651715611756330f, 0.550618045767584330f, - -0.834757310644888230f, - 0.550457972936604810f, -0.834862874986380010f, 0.550297879866859190f, - -0.834968408632350450f, - 0.550137766564233630f, -0.835073911578919300f, 0.549977633034615000f, - -0.835179383822207580f, - 0.549817479283891020f, -0.835284825358337370f, 0.549657305317949980f, - -0.835390236183431780f, - 0.549497111142680960f, -0.835495616293615350f, 0.549336896763974010f, - -0.835600965685013410f, - 0.549176662187719770f, -0.835706284353752600f, 0.549016407419809390f, - -0.835811572295960590f, - 0.548856132466135290f, -0.835916829507766360f, 0.548695837332590090f, - -0.836022055985299880f, - 0.548535522025067390f, -0.836127251724692160f, 0.548375186549461600f, - -0.836232416722075600f, - 0.548214830911667780f, -0.836337550973583530f, 0.548054455117581880f, - -0.836442654475350380f, - 0.547894059173100190f, -0.836547727223511890f, 0.547733643084120200f, - -0.836652769214204950f, - 0.547573206856539870f, -0.836757780443567190f, 0.547412750496257930f, - -0.836862760907737810f, - 0.547252274009174090f, -0.836967710602857020f, 0.547091777401188530f, - -0.837072629525066000f, - 0.546931260678202190f, -0.837177517670507190f, 0.546770723846116800f, - -0.837282375035324320f, - 0.546610166910834860f, -0.837387201615661940f, 0.546449589878259760f, - -0.837491997407665890f, - 0.546288992754295210f, -0.837596762407483040f, 0.546128375544846060f, - -0.837701496611261700f, - 0.545967738255817680f, -0.837806200015150940f, 0.545807080893116140f, - -0.837910872615301060f, - 0.545646403462648590f, -0.838015514407863700f, 0.545485705970322530f, - -0.838120125388991500f, - 0.545324988422046460f, -0.838224705554837970f, 0.545164250823729320f, - -0.838329254901558300f, - 0.545003493181281160f, -0.838433773425308340f, 0.544842715500612470f, - -0.838538261122245170f, - 0.544681917787634530f, -0.838642717988527300f, 0.544521100048259710f, - -0.838747144020313920f, - 0.544360262288400400f, -0.838851539213765760f, 0.544199404513970420f, - -0.838955903565044350f, - 0.544038526730883930f, -0.839060237070312630f, 0.543877628945055980f, - -0.839164539725734570f, - 0.543716711162402390f, -0.839268811527475230f, 0.543555773388839650f, - -0.839373052471700690f, - 0.543394815630284800f, -0.839477262554578550f, 0.543233837892656000f, - -0.839581441772277120f, - 0.543072840181871850f, -0.839685590120966110f, 0.542911822503851730f, - -0.839789707596816260f, - 0.542750784864516000f, -0.839893794195999410f, 0.542589727269785270f, - -0.839997849914688730f, - 0.542428649725581360f, -0.840101874749058400f, 0.542267552237826520f, - -0.840205868695283580f, - 0.542106434812444030f, -0.840309831749540770f, 0.541945297455357470f, - -0.840413763908007480f, - 0.541784140172491660f, -0.840517665166862440f, 0.541622962969771640f, - -0.840621535522285690f, - 0.541461765853123560f, -0.840725374970458070f, 0.541300548828474120f, - -0.840829183507561640f, - 0.541139311901750910f, -0.840932961129779670f, 0.540978055078882190f, - -0.841036707833296650f, - 0.540816778365796670f, -0.841140423614298080f, 0.540655481768424260f, - -0.841244108468970580f, - 0.540494165292695230f, -0.841347762393501950f, 0.540332828944540820f, - -0.841451385384081260f, - 0.540171472729892970f, -0.841554977436898330f, 0.540010096654684020f, - -0.841658538548144760f, - 0.539848700724847700f, -0.841762068714012490f, 0.539687284946317570f, - -0.841865567930695340f, - 0.539525849325029010f, -0.841969036194387680f, 0.539364393866917150f, - -0.842072473501285450f, - 0.539202918577918240f, -0.842175879847585570f, 0.539041423463969550f, - -0.842279255229485880f, - 0.538879908531008420f, -0.842382599643185960f, 0.538718373784973670f, - -0.842485913084885630f, - 0.538556819231804210f, -0.842589195550786600f, 0.538395244877439950f, - -0.842692447037091560f, - 0.538233650727821700f, -0.842795667540004120f, 0.538072036788890600f, - -0.842898857055729310f, - 0.537910403066588990f, -0.843002015580472830f, 0.537748749566859470f, - -0.843105143110442050f, - 0.537587076295645510f, -0.843208239641845440f, 0.537425383258891660f, - -0.843311305170892030f, - 0.537263670462542530f, -0.843414339693792760f, 0.537101937912544240f, - -0.843517343206759080f, - 0.536940185614843020f, -0.843620315706004040f, 0.536778413575385920f, - -0.843723257187741550f, - 0.536616621800121150f, -0.843826167648186740f, 0.536454810294997090f, - -0.843929047083555870f, - 0.536292979065963180f, -0.844031895490066410f, 0.536131128118969350f, - -0.844134712863936930f, - 0.535969257459966710f, -0.844237499201387020f, 0.535807367094906620f, - -0.844340254498637590f, - 0.535645457029741090f, -0.844442978751910660f, 0.535483527270423370f, - -0.844545671957429240f, - 0.535321577822907010f, -0.844648334111417820f, 0.535159608693146720f, - -0.844750965210101510f, - 0.534997619887097260f, -0.844853565249707010f, 0.534835611410714670f, - -0.844956134226462100f, - 0.534673583269955510f, -0.845058672136595470f, 0.534511535470777010f, - -0.845161178976337140f, - 0.534349468019137520f, -0.845263654741918220f, 0.534187380920995600f, - -0.845366099429570970f, - 0.534025274182310380f, -0.845468513035528830f, 0.533863147809042650f, - -0.845570895556026270f, - 0.533701001807152960f, -0.845673246987299070f, 0.533538836182603120f, - -0.845775567325583900f, - 0.533376650941355560f, -0.845877856567118890f, 0.533214446089372960f, - -0.845980114708143270f, - 0.533052221632619670f, -0.846082341744896940f, 0.532889977577059690f, - -0.846184537673621670f, - 0.532727713928658810f, -0.846286702490559710f, 0.532565430693382580f, - -0.846388836191954930f, - 0.532403127877198010f, -0.846490938774052020f, 0.532240805486072330f, - -0.846593010233097190f, - 0.532078463525973540f, -0.846695050565337450f, 0.531916102002870760f, - -0.846797059767020910f, - 0.531753720922733320f, -0.846899037834397350f, 0.531591320291531780f, - -0.847000984763716880f, - 0.531428900115236910f, -0.847102900551231500f, 0.531266460399820390f, - -0.847204785193193980f, - 0.531104001151255000f, -0.847306638685858320f, 0.530941522375513510f, - -0.847408461025479730f, - 0.530779024078570250f, -0.847510252208314330f, 0.530616506266399450f, - -0.847612012230619660f, - 0.530453968944976320f, -0.847713741088654270f, 0.530291412120277420f, - -0.847815438778677930f, - 0.530128835798278850f, -0.847917105296951410f, 0.529966239984958620f, - -0.848018740639736810f, - 0.529803624686294830f, -0.848120344803297120f, 0.529640989908265910f, - -0.848221917783896990f, - 0.529478335656852090f, -0.848323459577801530f, 0.529315661938033140f, - -0.848424970181277600f, - 0.529152968757790720f, -0.848526449590592650f, 0.528990256122106040f, - -0.848627897802015860f, - 0.528827524036961980f, -0.848729314811817010f, 0.528664772508341540f, - -0.848830700616267530f, - 0.528502001542228480f, -0.848932055211639610f, 0.528339211144607690f, - -0.849033378594206690f, - 0.528176401321464370f, -0.849134670760243630f, 0.528013572078784740f, - -0.849235931706025960f, - 0.527850723422555460f, -0.849337161427830670f, 0.527687855358763720f, - -0.849438359921935950f, - 0.527524967893398200f, -0.849539527184620890f, 0.527362061032447430f, - -0.849640663212165910f, - 0.527199134781901390f, -0.849741768000852440f, 0.527036189147750190f, - -0.849842841546963210f, - 0.526873224135984700f, -0.849943883846782210f, 0.526710239752597010f, - -0.850044894896594070f, - 0.526547236003579330f, -0.850145874692685210f, 0.526384212894925210f, - -0.850246823231342710f, - 0.526221170432628170f, -0.850347740508854980f, 0.526058108622682760f, - -0.850448626521511650f, - 0.525895027471084740f, -0.850549481265603370f, 0.525731926983829640f, - -0.850650304737422200f, - 0.525568807166914680f, -0.850751096933260790f, 0.525405668026336810f, - -0.850851857849413640f, - 0.525242509568094710f, -0.850952587482175730f, 0.525079331798186890f, - -0.851053285827843790f, - 0.524916134722612890f, -0.851153952882715340f, 0.524752918347373360f, - -0.851254588643089120f, - 0.524589682678468840f, -0.851355193105265200f, 0.524426427721901510f, - -0.851455766265544310f, - 0.524263153483673470f, -0.851556308120228870f, 0.524099859969787810f, - -0.851656818665622370f, - 0.523936547186248600f, -0.851757297898029120f, 0.523773215139060170f, - -0.851857745813754840f, - 0.523609863834228030f, -0.851958162409106380f, 0.523446493277757940f, - -0.852058547680391580f, - 0.523283103475656430f, -0.852158901623919830f, 0.523119694433931250f, - -0.852259224236001090f, - 0.522956266158590140f, -0.852359515512947090f, 0.522792818655642200f, - -0.852459775451070100f, - 0.522629351931096720f, -0.852560004046683970f, 0.522465865990963900f, - -0.852660201296103760f, - 0.522302360841254700f, -0.852760367195645300f, 0.522138836487980650f, - -0.852860501741625860f, - 0.521975292937154390f, -0.852960604930363630f, 0.521811730194788550f, - -0.853060676758178320f, - 0.521648148266897090f, -0.853160717221390420f, 0.521484547159494550f, - -0.853260726316321770f, - 0.521320926878595550f, -0.853360704039295430f, 0.521157287430216610f, - -0.853460650386635320f, - 0.520993628820373810f, -0.853560565354666840f, 0.520829951055084780f, - -0.853660448939716270f, - 0.520666254140367270f, -0.853760301138111300f, 0.520502538082239790f, - -0.853860121946180660f, - 0.520338802886721960f, -0.853959911360254060f, 0.520175048559833760f, - -0.854059669376662780f, - 0.520011275107596040f, -0.854159395991738730f, 0.519847482536030300f, - -0.854259091201815420f, - 0.519683670851158520f, -0.854358755003227440f, 0.519519840059003870f, - -0.854458387392310060f, - 0.519355990165589530f, -0.854557988365400530f, 0.519192121176940360f, - -0.854657557918836460f, - 0.519028233099080970f, -0.854757096048957110f, 0.518864325938037000f, - -0.854856602752102850f, - 0.518700399699835170f, -0.854956078024614820f, 0.518536454390502110f, - -0.855055521862835950f, - 0.518372490016066220f, -0.855154934263109620f, 0.518208506582555460f, - -0.855254315221781080f, - 0.518044504095999340f, -0.855353664735196030f, 0.517880482562427800f, - -0.855452982799701830f, - 0.517716441987871150f, -0.855552269411646970f, 0.517552382378360990f, - -0.855651524567380690f, - 0.517388303739929060f, -0.855750748263253920f, 0.517224206078608310f, - -0.855849940495618240f, - 0.517060089400432130f, -0.855949101260826790f, 0.516895953711434260f, - -0.856048230555233820f, - 0.516731799017649980f, -0.856147328375194470f, 0.516567625325114350f, - -0.856246394717065210f, - 0.516403432639863990f, -0.856345429577203610f, 0.516239220967935620f, - -0.856444432951968480f, - 0.516074990315366630f, -0.856543404837719960f, 0.515910740688195650f, - -0.856642345230818720f, - 0.515746472092461380f, -0.856741254127627470f, 0.515582184534203790f, - -0.856840131524509220f, - 0.515417878019463150f, -0.856938977417828650f, 0.515253552554280290f, - -0.857037791803951680f, - 0.515089208144697270f, -0.857136574679244870f, 0.514924844796756490f, - -0.857235326040076460f, - 0.514760462516501200f, -0.857334045882815590f, 0.514596061309975040f, - -0.857432734203832700f, - 0.514431641183222930f, -0.857531390999499040f, 0.514267202142289830f, - -0.857630016266187620f, - 0.514102744193221660f, -0.857728610000272120f, 0.513938267342065490f, - -0.857827172198127320f, - 0.513773771594868030f, -0.857925702856129790f, 0.513609256957677900f, - -0.858024201970656540f, - 0.513444723436543570f, -0.858122669538086020f, 0.513280171037514330f, - -0.858221105554798250f, - 0.513115599766640560f, -0.858319510017173440f, 0.512951009629972860f, - -0.858417882921594040f, - 0.512786400633563070f, -0.858516224264442740f, 0.512621772783463100f, - -0.858614534042104080f, - 0.512457126085725800f, -0.858712812250963520f, 0.512292460546404980f, - -0.858811058887407500f, - 0.512127776171554690f, -0.858909273947823900f, 0.511963072967230200f, - -0.859007457428601410f, - 0.511798350939487000f, -0.859105609326130340f, 0.511633610094381350f, - -0.859203729636801920f, - 0.511468850437970520f, -0.859301818357008360f, 0.511304071976311890f, - -0.859399875483143450f, - 0.511139274715464390f, -0.859497901011601620f, 0.510974458661486720f, - -0.859595894938779080f, - 0.510809623820439040f, -0.859693857261072610f, 0.510644770198381730f, - -0.859791787974880540f, - 0.510479897801375700f, -0.859889687076602290f, 0.510315006635483350f, - -0.859987554562638200f, - 0.510150096706766700f, -0.860085390429390140f, 0.509985168021289570f, - -0.860183194673260880f, - 0.509820220585115560f, -0.860280967290654510f, 0.509655254404309250f, - -0.860378708277976130f, - 0.509490269484936360f, -0.860476417631632070f, 0.509325265833062480f, - -0.860574095348029980f, - 0.509160243454754750f, -0.860671741423578380f, 0.508995202356080310f, - -0.860769355854687060f, - 0.508830142543106990f, -0.860866938637767310f, 0.508665064021904260f, - -0.860964489769230900f, - 0.508499966798540810f, -0.861062009245491480f, 0.508334850879087470f, - -0.861159497062963350f, - 0.508169716269614710f, -0.861256953218062060f, 0.508004562976194010f, - -0.861354377707204800f, - 0.507839391004897940f, -0.861451770526809210f, 0.507674200361798890f, - -0.861549131673294720f, - 0.507508991052970870f, -0.861646461143081300f, 0.507343763084487920f, - -0.861743758932590700f, - 0.507178516462425290f, -0.861841025038245330f, 0.507013251192858340f, - -0.861938259456469180f, - 0.506847967281863320f, -0.862035462183687210f, 0.506682664735517600f, - -0.862132633216325380f, - 0.506517343559898530f, -0.862229772550811240f, 0.506352003761084800f, - -0.862326880183573060f, - 0.506186645345155450f, -0.862423956111040500f, 0.506021268318189830f, - -0.862521000329644520f, - 0.505855872686268860f, -0.862618012835816740f, 0.505690458455473340f, - -0.862714993625990690f, - 0.505525025631885510f, -0.862811942696600330f, 0.505359574221587390f, - -0.862908860044081290f, - 0.505194104230662240f, -0.863005745664870210f, 0.505028615665194300f, - -0.863102599555404800f, - 0.504863108531267480f, -0.863199421712124160f, 0.504697582834967680f, - -0.863296212131468230f, - 0.504532038582380380f, -0.863392970809878310f, 0.504366475779592150f, - -0.863489697743797140f, - 0.504200894432690560f, -0.863586392929667990f, 0.504035294547763080f, - -0.863683056363935940f, - 0.503869676130898950f, -0.863779688043046610f, 0.503704039188186960f, - -0.863876287963447510f, - 0.503538383725717580f, -0.863972856121586700f, 0.503372709749581150f, - -0.864069392513913680f, - 0.503207017265869030f, -0.864165897136879300f, 0.503041306280673450f, - -0.864262369986934950f, - 0.502875576800086880f, -0.864358811060534030f, 0.502709828830203100f, - -0.864455220354130250f, - 0.502544062377115800f, -0.864551597864179230f, 0.502378277446919870f, - -0.864647943587137480f, - 0.502212474045710900f, -0.864744257519462380f, 0.502046652179584660f, - -0.864840539657612980f, - 0.501880811854638400f, -0.864936789998049020f, 0.501714953076969230f, - -0.865033008537231750f, - 0.501549075852675390f, -0.865129195271623690f, 0.501383180187855880f, - -0.865225350197688090f, - 0.501217266088609950f, -0.865321473311889800f, 0.501051333561038040f, - -0.865417564610694410f, - 0.500885382611240940f, -0.865513624090568980f, 0.500719413245319880f, - -0.865609651747981880f, - 0.500553425469377640f, -0.865705647579402270f, 0.500387419289516580f, - -0.865801611581300760f, - 0.500221394711840680f, -0.865897543750148820f, 0.500055351742453860f, - -0.865993444082419520f, - 0.499889290387461380f, -0.866089312574586770f, 0.499723210652968710f, - -0.866185149223125730f, - 0.499557112545081890f, -0.866280954024512990f, 0.499390996069908220f, - -0.866376726975225830f, - 0.499224861233555030f, -0.866472468071743050f, 0.499058708042130930f, - -0.866568177310544360f, - 0.498892536501744750f, -0.866663854688111020f, 0.498726346618505960f, - -0.866759500200925290f, - 0.498560138398525200f, -0.866855113845470320f, 0.498393911847913150f, - -0.866950695618231020f, - 0.498227666972781870f, -0.867046245515692650f, 0.498061403779243520f, - -0.867141763534342360f, - 0.497895122273410930f, -0.867237249670668400f, 0.497728822461398100f, - -0.867332703921159690f, - 0.497562504349319090f, -0.867428126282306920f, 0.497396167943289340f, - -0.867523516750601460f, - 0.497229813249424340f, -0.867618875322536230f, 0.497063440273840310f, - -0.867714201994605140f, - 0.496897049022654640f, -0.867809496763303210f, 0.496730639501984710f, - -0.867904759625126920f, - 0.496564211717949340f, -0.867999990576573400f, 0.496397765676667160f, - -0.868095189614141670f, - 0.496231301384258310f, -0.868190356734331310f, 0.496064818846843060f, - -0.868285491933643240f, - 0.495898318070542240f, -0.868380595208579800f, 0.495731799061478020f, - -0.868475666555644120f, - 0.495565261825772490f, -0.868570705971340900f, 0.495398706369549080f, - -0.868665713452175580f, - 0.495232132698931350f, -0.868760688994655190f, 0.495065540820043610f, - -0.868855632595287750f, - 0.494898930739011310f, -0.868950544250582380f, 0.494732302461959820f, - -0.869045423957049530f, - 0.494565655995016010f, -0.869140271711200560f, 0.494398991344306760f, - -0.869235087509548250f, - 0.494232308515959730f, -0.869329871348606730f, 0.494065607516103730f, - -0.869424623224890780f, - 0.493898888350867430f, -0.869519343134916970f, 0.493732151026381070f, - -0.869614031075202300f, - 0.493565395548774880f, -0.869708687042265560f, 0.493398621924179830f, - -0.869803311032626650f, - 0.493231830158728070f, -0.869897903042806340f, 0.493065020258551650f, - -0.869992463069326870f, - 0.492898192229784090f, -0.870086991108711350f, 0.492731346078558840f, - -0.870181487157484560f, - 0.492564481811010650f, -0.870275951212171830f, 0.492397599433274550f, - -0.870370383269300160f, - 0.492230698951486080f, -0.870464783325397670f, 0.492063780371782060f, - -0.870559151376993250f, - 0.491896843700299240f, -0.870653487420617540f, 0.491729888943175820f, - -0.870747791452801790f, - 0.491562916106550060f, -0.870842063470078860f, 0.491395925196560830f, - -0.870936303468982760f, - 0.491228916219348330f, -0.871030511446048260f, 0.491061889181052590f, - -0.871124687397811900f, - 0.490894844087815140f, -0.871218831320810900f, 0.490727780945777570f, - -0.871312943211583920f, - 0.490560699761082080f, -0.871407023066670950f, 0.490393600539872130f, - -0.871501070882612530f, - 0.490226483288291100f, -0.871595086655951090f, 0.490059348012483910f, - -0.871689070383229740f, - 0.489892194718595300f, -0.871783022060993010f, 0.489725023412770970f, - -0.871876941685786890f, - 0.489557834101157550f, -0.871970829254157700f, 0.489390626789901920f, - -0.872064684762653970f, - 0.489223401485152030f, -0.872158508207824480f, 0.489056158193055980f, - -0.872252299586219860f, - 0.488888896919763230f, -0.872346058894391540f, 0.488721617671423250f, - -0.872439786128892280f, - 0.488554320454186230f, -0.872533481286276060f, 0.488387005274203590f, - -0.872627144363097960f, - 0.488219672137626740f, -0.872720775355914300f, 0.488052321050608310f, - -0.872814374261282390f, - 0.487884952019301210f, -0.872907941075760970f, 0.487717565049858860f, - -0.873001475795909920f, - 0.487550160148436050f, -0.873094978418290090f, 0.487382737321187310f, - -0.873188448939463790f, - 0.487215296574268820f, -0.873281887355994210f, 0.487047837913836550f, - -0.873375293664446000f, - 0.486880361346047400f, -0.873468667861384880f, 0.486712866877059340f, - -0.873562009943377740f, - 0.486545354513030270f, -0.873655319906992630f, 0.486377824260119500f, - -0.873748597748798870f, - 0.486210276124486530f, -0.873841843465366750f, 0.486042710112291390f, - -0.873935057053268130f, - 0.485875126229695420f, -0.874028238509075630f, 0.485707524482859750f, - -0.874121387829363330f, - 0.485539904877947020f, -0.874214505010706300f, 0.485372267421119770f, - -0.874307590049680950f, - 0.485204612118541880f, -0.874400642942864790f, 0.485036938976377450f, - -0.874493663686836450f, - 0.484869248000791120f, -0.874586652278176110f, 0.484701539197948730f, - -0.874679608713464510f, - 0.484533812574016120f, -0.874772532989284150f, 0.484366068135160480f, - -0.874865425102218210f, - 0.484198305887549140f, -0.874958285048851540f, 0.484030525837350010f, - -0.875051112825769970f, - 0.483862727990732320f, -0.875143908429560250f, 0.483694912353865080f, - -0.875236671856810870f, - 0.483527078932918740f, -0.875329403104110780f, 0.483359227734063980f, - -0.875422102168050830f, - 0.483191358763471910f, -0.875514769045222740f, 0.483023472027315050f, - -0.875607403732219240f, - 0.482855567531765670f, -0.875700006225634600f, 0.482687645282997510f, - -0.875792576522063880f, - 0.482519705287184520f, -0.875885114618103700f, 0.482351747550501030f, - -0.875977620510351660f, - 0.482183772079122830f, -0.876070094195406600f, 0.482015778879225530f, - -0.876162535669868460f, - 0.481847767956986080f, -0.876254944930338400f, 0.481679739318581490f, - -0.876347321973419020f, - 0.481511692970189920f, -0.876439666795713610f, 0.481343628917989870f, - -0.876531979393827100f, - 0.481175547168160360f, -0.876624259764365310f, 0.481007447726881640f, - -0.876716507903935400f, - 0.480839330600333900f, -0.876808723809145760f, 0.480671195794698690f, - -0.876900907476605650f, - 0.480503043316157670f, -0.876993058902925780f, 0.480334873170893070f, - -0.877085178084718310f, - 0.480166685365088440f, -0.877177265018595940f, 0.479998479904927220f, - -0.877269319701173170f, - 0.479830256796594250f, -0.877361342129065140f, 0.479662016046274340f, - -0.877453332298888560f, - 0.479493757660153060f, -0.877545290207261240f, 0.479325481644417130f, - -0.877637215850802120f, - 0.479157188005253310f, -0.877729109226131570f, 0.478988876748849550f, - -0.877820970329870500f, - 0.478820547881394050f, -0.877912799158641730f, 0.478652201409075550f, - -0.878004595709069080f, - 0.478483837338084080f, -0.878096359977777130f, 0.478315455674609480f, - -0.878188091961392250f, - 0.478147056424843120f, -0.878279791656541460f, 0.477978639594976110f, - -0.878371459059853590f, - 0.477810205191201040f, -0.878463094167957870f, 0.477641753219710590f, - -0.878554696977485340f, - 0.477473283686698060f, -0.878646267485068130f, 0.477304796598358010f, - -0.878737805687339280f, - 0.477136291960884750f, -0.878829311580933360f, 0.476967769780474230f, - -0.878920785162485840f, - 0.476799230063322250f, -0.879012226428633410f, 0.476630672815625380f, - -0.879103635376014330f, - 0.476462098043581310f, -0.879195012001267370f, 0.476293505753387750f, - -0.879286356301033250f, - 0.476124895951243630f, -0.879377668271953180f, 0.475956268643348220f, - -0.879468947910670100f, - 0.475787623835901120f, -0.879560195213827890f, 0.475618961535103410f, - -0.879651410178071470f, - 0.475450281747155870f, -0.879742592800047410f, 0.475281584478260800f, - -0.879833743076402940f, - 0.475112869734620470f, -0.879924861003786860f, 0.474944137522437860f, - -0.880015946578848960f, - 0.474775387847917230f, -0.880106999798240360f, 0.474606620717262560f, - -0.880198020658613190f, - 0.474437836136679340f, -0.880289009156620890f, 0.474269034112372920f, - -0.880379965288918260f, - 0.474100214650550020f, -0.880470889052160750f, 0.473931377757417560f, - -0.880561780443005590f, - 0.473762523439182850f, -0.880652639458111010f, 0.473593651702054640f, - -0.880743466094136230f, - 0.473424762552241530f, -0.880834260347742040f, 0.473255855995953380f, - -0.880925022215589880f, - 0.473086932039400220f, -0.881015751694342760f, 0.472917990688792760f, - -0.881106448780665130f, - 0.472749031950342900f, -0.881197113471221980f, 0.472580055830262250f, - -0.881287745762680100f, - 0.472411062334764100f, -0.881378345651706810f, 0.472242051470061650f, - -0.881468913134971330f, - 0.472073023242368660f, -0.881559448209143780f, 0.471903977657900320f, - -0.881649950870895260f, - 0.471734914722871430f, -0.881740421116898320f, 0.471565834443498480f, - -0.881830858943826620f, - 0.471396736825997810f, -0.881921264348354940f, 0.471227621876586400f, - -0.882011637327159590f, - 0.471058489601482610f, -0.882101977876917580f, 0.470889340006904520f, - -0.882192285994307430f, - 0.470720173099071710f, -0.882282561676008600f, 0.470550988884203490f, - -0.882372804918702290f, - 0.470381787368520710f, -0.882463015719070040f, 0.470212568558244280f, - -0.882553194073795400f, - 0.470043332459595620f, -0.882643339979562790f, 0.469874079078797470f, - -0.882733453433057540f, - 0.469704808422072460f, -0.882823534430966730f, 0.469535520495644510f, - -0.882913582969978020f, - 0.469366215305737630f, -0.883003599046780720f, 0.469196892858576630f, - -0.883093582658065370f, - 0.469027553160387240f, -0.883183533800523280f, 0.468858196217395330f, - -0.883273452470847430f, - 0.468688822035827960f, -0.883363338665731580f, 0.468519430621912420f, - -0.883453192381870920f, - 0.468350021981876530f, -0.883543013615961880f, 0.468180596121949400f, - -0.883632802364701760f, - 0.468011153048359830f, -0.883722558624789660f, 0.467841692767338220f, - -0.883812282392925090f, - 0.467672215285114710f, -0.883901973665809470f, 0.467502720607920920f, - -0.883991632440144890f, - 0.467333208741988530f, -0.884081258712634990f, 0.467163679693549770f, - -0.884170852479984500f, - 0.466994133468838110f, -0.884260413738899080f, 0.466824570074086950f, - -0.884349942486086120f, - 0.466654989515530970f, -0.884439438718253700f, 0.466485391799405010f, - -0.884528902432111350f, - 0.466315776931944480f, -0.884618333624369920f, 0.466146144919386000f, - -0.884707732291740930f, - 0.465976495767966130f, -0.884797098430937790f, 0.465806829483922770f, - -0.884886432038674560f, - 0.465637146073493770f, -0.884975733111666660f, 0.465467445542917800f, - -0.885065001646630930f, - 0.465297727898434650f, -0.885154237640285110f, 0.465127993146283950f, - -0.885243441089348270f, - 0.464958241292706740f, -0.885332611990540590f, 0.464788472343944160f, - -0.885421750340583570f, - 0.464618686306237820f, -0.885510856136199950f, 0.464448883185830770f, - -0.885599929374113360f, - 0.464279062988965760f, -0.885688970051048960f, 0.464109225721887010f, - -0.885777978163732940f, - 0.463939371390838460f, -0.885866953708892790f, 0.463769500002065680f, - -0.885955896683257030f, - 0.463599611561814120f, -0.886044807083555490f, 0.463429706076329880f, - -0.886133684906519340f, - 0.463259783551860260f, -0.886222530148880640f, 0.463089843994652470f, - -0.886311342807372890f, - 0.462919887410955130f, -0.886400122878730490f, 0.462749913807016850f, - -0.886488870359689600f, - 0.462579923189086810f, -0.886577585246987040f, 0.462409915563415540f, - -0.886666267537360890f, - 0.462239890936253280f, -0.886754917227550950f, 0.462069849313851810f, - -0.886843534314297300f, - 0.461899790702462840f, -0.886932118794342080f, 0.461729715108338770f, - -0.887020670664428360f, - 0.461559622537733190f, -0.887109189921300060f, 0.461389512996899450f, - -0.887197676561702900f, - 0.461219386492092430f, -0.887286130582383150f, 0.461049243029567010f, - -0.887374551980088740f, - 0.460879082615578690f, -0.887462940751568840f, 0.460708905256384190f, - -0.887551296893573370f, - 0.460538710958240010f, -0.887639620402853930f, 0.460368499727404070f, - -0.887727911276163020f, - 0.460198271570134270f, -0.887816169510254550f, 0.460028026492689700f, - -0.887904395101883240f, - 0.459857764501329650f, -0.887992588047805560f, 0.459687485602313870f, - -0.888080748344778900f, - 0.459517189801903590f, -0.888168875989561620f, 0.459346877106359570f, - -0.888256970978913870f, - 0.459176547521944150f, -0.888345033309596240f, 0.459006201054919680f, - -0.888433062978371320f, - 0.458835837711549120f, -0.888521059982002260f, 0.458665457498096670f, - -0.888609024317253750f, - 0.458495060420826220f, -0.888696955980891710f, 0.458324646486003300f, - -0.888784854969682850f, - 0.458154215699893230f, -0.888872721280395520f, 0.457983768068762180f, - -0.888960554909799310f, - 0.457813303598877290f, -0.889048355854664570f, 0.457642822296505770f, - -0.889136124111763240f, - 0.457472324167916110f, -0.889223859677868210f, 0.457301809219376800f, - -0.889311562549753850f, - 0.457131277457156980f, -0.889399232724195520f, 0.456960728887527030f, - -0.889486870197969790f, - 0.456790163516757220f, -0.889574474967854580f, 0.456619581351118960f, - -0.889662047030628790f, - 0.456448982396883860f, -0.889749586383072890f, 0.456278366660324670f, - -0.889837093021967900f, - 0.456107734147714220f, -0.889924566944096720f, 0.455937084865326030f, - -0.890012008146243260f, - 0.455766418819434750f, -0.890099416625192210f, 0.455595736016314920f, - -0.890186792377730240f, - 0.455425036462242420f, -0.890274135400644480f, 0.455254320163493210f, - -0.890361445690723730f, - 0.455083587126343840f, -0.890448723244757880f, 0.454912837357072050f, - -0.890535968059537830f, - 0.454742070861955450f, -0.890623180131855930f, 0.454571287647273000f, - -0.890710359458505520f, - 0.454400487719303750f, -0.890797506036281490f, 0.454229671084327320f, - -0.890884619861979530f, - 0.454058837748624540f, -0.890971700932396750f, 0.453887987718476050f, - -0.891058749244331590f, - 0.453717121000163930f, -0.891145764794583180f, 0.453546237599970260f, - -0.891232747579952520f, - 0.453375337524177750f, -0.891319697597241390f, 0.453204420779070300f, - -0.891406614843252900f, - 0.453033487370931580f, -0.891493499314791380f, 0.452862537306046810f, - -0.891580351008662290f, - 0.452691570590700860f, -0.891667169921672390f, 0.452520587231180100f, - -0.891753956050629460f, - 0.452349587233771000f, -0.891840709392342720f, 0.452178570604760410f, - -0.891927429943622510f, - 0.452007537350436530f, -0.892014117701280360f, 0.451836487477087430f, - -0.892100772662129170f, - 0.451665420991002540f, -0.892187394822982480f, 0.451494337898471210f, - -0.892273984180655730f, - 0.451323238205783520f, -0.892360540731965360f, 0.451152121919230710f, - -0.892447064473728680f, - 0.450980989045103810f, -0.892533555402764690f, 0.450809839589695340f, - -0.892620013515893040f, - 0.450638673559297760f, -0.892706438809935280f, 0.450467490960204110f, - -0.892792831281713610f, - 0.450296291798708730f, -0.892879190928051680f, 0.450125076081105750f, - -0.892965517745774260f, - 0.449953843813690580f, -0.893051811731707450f, 0.449782595002758860f, - -0.893138072882678210f, - 0.449611329654606600f, -0.893224301195515320f, 0.449440047775531260f, - -0.893310496667048090f, - 0.449268749371829920f, -0.893396659294107610f, 0.449097434449801100f, - -0.893482789073525850f, - 0.448926103015743260f, -0.893568886002136020f, 0.448754755075956020f, - -0.893654950076772430f, - 0.448583390636739300f, -0.893740981294271040f, 0.448412009704393430f, - -0.893826979651468620f, - 0.448240612285220000f, -0.893912945145203250f, 0.448069198385520340f, - -0.893998877772314240f, - 0.447897768011597310f, -0.894084777529641990f, 0.447726321169753750f, - -0.894170644414028270f, - 0.447554857866293010f, -0.894256478422316040f, 0.447383378107519710f, - -0.894342279551349480f, - 0.447211881899738260f, -0.894428047797973800f, 0.447040369249254500f, - -0.894513783159035620f, - 0.446868840162374330f, -0.894599485631382580f, 0.446697294645404090f, - -0.894685155211863980f, - 0.446525732704651400f, -0.894770791897329550f, 0.446354154346423840f, - -0.894856395684630930f, - 0.446182559577030120f, -0.894941966570620750f, 0.446010948402779110f, - -0.895027504552152630f, - 0.445839320829980350f, -0.895113009626081760f, 0.445667676864944350f, - -0.895198481789264200f, - 0.445496016513981740f, -0.895283921038557580f, 0.445324339783404240f, - -0.895369327370820310f, - 0.445152646679523590f, -0.895454700782912450f, 0.444980937208652780f, - -0.895540041271694840f, - 0.444809211377105000f, -0.895625348834030000f, 0.444637469191193790f, - -0.895710623466781320f, - 0.444465710657234110f, -0.895795865166813420f, 0.444293935781540580f, - -0.895881073930992370f, - 0.444122144570429260f, -0.895966249756185110f, 0.443950337030216250f, - -0.896051392639260040f, - 0.443778513167218220f, -0.896136502577086770f, 0.443606672987753080f, - -0.896221579566535920f, - 0.443434816498138430f, -0.896306623604479660f, 0.443262943704693380f, - -0.896391634687790820f, - 0.443091054613736990f, -0.896476612813344010f, 0.442919149231588980f, - -0.896561557978014960f, - 0.442747227564570130f, -0.896646470178680150f, 0.442575289619001170f, - -0.896731349412217880f, - 0.442403335401204130f, -0.896816195675507190f, 0.442231364917501090f, - -0.896901008965428680f, - 0.442059378174214760f, -0.896985789278863970f, 0.441887375177668960f, - -0.897070536612695870f, - 0.441715355934187310f, -0.897155250963808550f, 0.441543320450094920f, - -0.897239932329087050f, - 0.441371268731716620f, -0.897324580705418320f, 0.441199200785378660f, - -0.897409196089689720f, - 0.441027116617407340f, -0.897493778478790190f, 0.440855016234129430f, - -0.897578327869610230f, - 0.440682899641873020f, -0.897662844259040750f, 0.440510766846965880f, - -0.897747327643974690f, - 0.440338617855737300f, -0.897831778021305650f, 0.440166452674516480f, - -0.897916195387928550f, - 0.439994271309633260f, -0.898000579740739880f, 0.439822073767418610f, - -0.898084931076636780f, - 0.439649860054203420f, -0.898169249392518080f, 0.439477630176319860f, - -0.898253534685283570f, - 0.439305384140100060f, -0.898337786951834190f, 0.439133121951876930f, - -0.898422006189072530f, - 0.438960843617984430f, -0.898506192393901840f, 0.438788549144756290f, - -0.898590345563227030f, - 0.438616238538527710f, -0.898674465693953820f, 0.438443911805633860f, - -0.898758552782989440f, - 0.438271568952410480f, -0.898842606827242260f, 0.438099209985194580f, - -0.898926627823621870f, - 0.437926834910322860f, -0.899010615769039070f, 0.437754443734133470f, - -0.899094570660405770f, - 0.437582036462964340f, -0.899178492494635330f, 0.437409613103154850f, - -0.899262381268642000f, - 0.437237173661044200f, -0.899346236979341460f, 0.437064718142972370f, - -0.899430059623650860f, - 0.436892246555280470f, -0.899513849198487870f, 0.436719758904309310f, - -0.899597605700772180f, - 0.436547255196401250f, -0.899681329127423930f, 0.436374735437898510f, - -0.899765019475365020f, - 0.436202199635143950f, -0.899848676741518580f, 0.436029647794481670f, - -0.899932300922808400f, - 0.435857079922255470f, -0.900015892016160280f, 0.435684496024810520f, - -0.900099450018500340f, - 0.435511896108492170f, -0.900182974926756700f, 0.435339280179646070f, - -0.900266466737858480f, - 0.435166648244619370f, -0.900349925448735600f, 0.434994000309758710f, - -0.900433351056319830f, - 0.434821336381412350f, -0.900516743557543520f, 0.434648656465928430f, - -0.900600102949340790f, - 0.434475960569655710f, -0.900683429228646860f, 0.434303248698944100f, - -0.900766722392397860f, - 0.434130520860143310f, -0.900849982437531450f, 0.433957777059604480f, - -0.900933209360986200f, - 0.433785017303678520f, -0.901016403159702330f, 0.433612241598717640f, - -0.901099563830620950f, - 0.433439449951074200f, -0.901182691370684410f, 0.433266642367100940f, - -0.901265785776836580f, - 0.433093818853152010f, -0.901348847046022030f, 0.432920979415581220f, - -0.901431875175186970f, - 0.432748124060743760f, -0.901514870161278630f, 0.432575252794994810f, - -0.901597832001245660f, - 0.432402365624690140f, -0.901680760692037730f, 0.432229462556186770f, - -0.901763656230605610f, - 0.432056543595841450f, -0.901846518613901860f, 0.431883608750012300f, - -0.901929347838879350f, - 0.431710658025057370f, -0.902012143902493070f, 0.431537691427335500f, - -0.902094906801698900f, - 0.431364708963206440f, -0.902177636533453510f, 0.431191710639030000f, - -0.902260333094715540f, - 0.431018696461167080f, -0.902342996482444200f, 0.430845666435978820f, - -0.902425626693600270f, - 0.430672620569826860f, -0.902508223725145830f, 0.430499558869073930f, - -0.902590787574043870f, - 0.430326481340082610f, -0.902673318237258830f, 0.430153387989216930f, - -0.902755815711756120f, - 0.429980278822840570f, -0.902838279994502830f, 0.429807153847318770f, - -0.902920711082466630f, - 0.429634013069016500f, -0.903003108972617040f, 0.429460856494299490f, - -0.903085473661924600f, - 0.429287684129534720f, -0.903167805147360610f, 0.429114495981088690f, - -0.903250103425898400f, - 0.428941292055329550f, -0.903332368494511820f, 0.428768072358625240f, - -0.903414600350176290f, - 0.428594836897344400f, -0.903496798989868450f, 0.428421585677856760f, - -0.903578964410565950f, - 0.428248318706531910f, -0.903661096609247980f, 0.428075035989740780f, - -0.903743195582894620f, - 0.427901737533854240f, -0.903825261328487390f, 0.427728423345243860f, - -0.903907293843009050f, - 0.427555093430282200f, -0.903989293123443340f, 0.427381747795341770f, - -0.904071259166775440f, - 0.427208386446796370f, -0.904153191969991670f, 0.427035009391019790f, - -0.904235091530079750f, - 0.426861616634386490f, -0.904316957844028320f, 0.426688208183271970f, - -0.904398790908827350f, - 0.426514784044051520f, -0.904480590721468250f, 0.426341344223101880f, - -0.904562357278943190f, - 0.426167888726799620f, -0.904644090578246240f, 0.425994417561522450f, - -0.904725790616371930f, - 0.425820930733648300f, -0.904807457390316540f, 0.425647428249555590f, - -0.904889090897077470f, - 0.425473910115623910f, -0.904970691133653250f, 0.425300376338232590f, - -0.905052258097043590f, - 0.425126826923762410f, -0.905133791784249580f, 0.424953261878594060f, - -0.905215292192273480f, - 0.424779681209108810f, -0.905296759318118820f, 0.424606084921689220f, - -0.905378193158789980f, - 0.424432473022717420f, -0.905459593711293250f, 0.424258845518577010f, - -0.905540960972635480f, - 0.424085202415651670f, -0.905622294939825160f, 0.423911543720325580f, - -0.905703595609872010f, - 0.423737869438983950f, -0.905784862979786440f, 0.423564179578011960f, - -0.905866097046580940f, - 0.423390474143796100f, -0.905947297807268460f, 0.423216753142722780f, - -0.906028465258863490f, - 0.423043016581179100f, -0.906109599398381980f, 0.422869264465553170f, - -0.906190700222840540f, - 0.422695496802232950f, -0.906271767729257660f, 0.422521713597607870f, - -0.906352801914652280f, - 0.422347914858067000f, -0.906433802776045460f, 0.422174100590000820f, - -0.906514770310458800f, - 0.422000270799799790f, -0.906595704514915330f, 0.421826425493854910f, - -0.906676605386439460f, - 0.421652564678558380f, -0.906757472922056550f, 0.421478688360302220f, - -0.906838307118793540f, - 0.421304796545479700f, -0.906919107973678030f, 0.421130889240484140f, - -0.906999875483739610f, - 0.420956966451709440f, -0.907080609646008450f, 0.420783028185550630f, - -0.907161310457516250f, - 0.420609074448402510f, -0.907241977915295930f, 0.420435105246661220f, - -0.907322612016381310f, - 0.420261120586723050f, -0.907403212757808000f, 0.420087120474984590f, - -0.907483780136612570f, - 0.419913104917843730f, -0.907564314149832520f, 0.419739073921698180f, - -0.907644814794507090f, - 0.419565027492946940f, -0.907725282067676330f, 0.419390965637989050f, - -0.907805715966381820f, - 0.419216888363223960f, -0.907886116487666150f, 0.419042795675052480f, - -0.907966483628573240f, - 0.418868687579875110f, -0.908046817386148340f, 0.418694564084093610f, - -0.908127117757437600f, - 0.418520425194109700f, -0.908207384739488700f, 0.418346270916326310f, - -0.908287618329350450f, - 0.418172101257146430f, -0.908367818524072780f, 0.417997916222973550f, - -0.908447985320707250f, - 0.417823715820212380f, -0.908528118716306120f, 0.417649500055267410f, - -0.908608218707923190f, - 0.417475268934544340f, -0.908688285292613360f, 0.417301022464449060f, - -0.908768318467432780f, - 0.417126760651387870f, -0.908848318229439120f, 0.416952483501768280f, - -0.908928284575690640f, - 0.416778191021997590f, -0.909008217503247450f, 0.416603883218484410f, - -0.909088117009170580f, - 0.416429560097637320f, -0.909167983090522270f, 0.416255221665865480f, - -0.909247815744366310f, - 0.416080867929579320f, -0.909327614967767260f, 0.415906498895188770f, - -0.909407380757791260f, - 0.415732114569105420f, -0.909487113111505430f, 0.415557714957740580f, - -0.909566812025978220f, - 0.415383300067506290f, -0.909646477498279540f, 0.415208869904815650f, - -0.909726109525480160f, - 0.415034424476081630f, -0.909805708104652220f, 0.414859963787718390f, - -0.909885273232869160f, - 0.414685487846140010f, -0.909964804907205660f, 0.414510996657761810f, - -0.910044303124737390f, - 0.414336490228999210f, -0.910123767882541570f, 0.414161968566268080f, - -0.910203199177696540f, - 0.413987431675985510f, -0.910282597007281760f, 0.413812879564568300f, - -0.910361961368377990f, - 0.413638312238434560f, -0.910441292258067140f, 0.413463729704002580f, - -0.910520589673432630f, - 0.413289131967690960f, -0.910599853611558930f, 0.413114519035919560f, - -0.910679084069531570f, - 0.412939890915108020f, -0.910758281044437570f, 0.412765247611677320f, - -0.910837444533365010f, - 0.412590589132048380f, -0.910916574533403240f, 0.412415915482642730f, - -0.910995671041643140f, - 0.412241226669883000f, -0.911074734055176250f, 0.412066522700191560f, - -0.911153763571095900f, - 0.411891803579992220f, -0.911232759586496190f, 0.411717069315708670f, - -0.911311722098472670f, - 0.411542319913765280f, -0.911390651104122320f, 0.411367555380587340f, - -0.911469546600543020f, - 0.411192775722600160f, -0.911548408584833990f, 0.411017980946230270f, - -0.911627237054095650f, - 0.410843171057903910f, -0.911706032005429880f, 0.410668346064048780f, - -0.911784793435939430f, - 0.410493505971092520f, -0.911863521342728520f, 0.410318650785463260f, - -0.911942215722902570f, - 0.410143780513590350f, -0.912020876573568230f, 0.409968895161902820f, - -0.912099503891833470f, - 0.409793994736831200f, -0.912178097674807060f, 0.409619079244805840f, - -0.912256657919599650f, - 0.409444148692257590f, -0.912335184623322750f, 0.409269203085618700f, - -0.912413677783089020f, - 0.409094242431320920f, -0.912492137396012650f, 0.408919266735797480f, - -0.912570563459208730f, - 0.408744276005481520f, -0.912648955969793900f, 0.408569270246806780f, - -0.912727314924885900f, - 0.408394249466208110f, -0.912805640321603500f, 0.408219213670120100f, - -0.912883932157067200f, - 0.408044162864978740f, -0.912962190428398100f, 0.407869097057219960f, - -0.913040415132719160f, - 0.407694016253280170f, -0.913118606267154130f, 0.407518920459597030f, - -0.913196763828828200f, - 0.407343809682607970f, -0.913274887814867760f, 0.407168683928751610f, - -0.913352978222400250f, - 0.406993543204466460f, -0.913431035048554720f, 0.406818387516192370f, - -0.913509058290461140f, - 0.406643216870369140f, -0.913587047945250810f, 0.406468031273437000f, - -0.913665004010056350f, - 0.406292830731837470f, -0.913742926482011390f, 0.406117615252011790f, - -0.913820815358251100f, - 0.405942384840402570f, -0.913898670635911680f, 0.405767139503452220f, - -0.913976492312130520f, - 0.405591879247603870f, -0.914054280384046460f, 0.405416604079301750f, - -0.914132034848799460f, - 0.405241314004989860f, -0.914209755703530690f, 0.405066009031113390f, - -0.914287442945382440f, - 0.404890689164117750f, -0.914365096571498450f, 0.404715354410448650f, - -0.914442716579023870f, - 0.404540004776553110f, -0.914520302965104450f, 0.404364640268877810f, - -0.914597855726887790f, - 0.404189260893870750f, -0.914675374861522390f, 0.404013866657980060f, - -0.914752860366158100f, - 0.403838457567654130f, -0.914830312237946090f, 0.403663033629342750f, - -0.914907730474038620f, - 0.403487594849495310f, -0.914985115071589310f, 0.403312141234562660f, - -0.915062466027752760f, - 0.403136672790995240f, -0.915139783339685260f, 0.402961189525244960f, - -0.915217067004543750f, - 0.402785691443763640f, -0.915294317019487050f, 0.402610178553003680f, - -0.915371533381674760f, - 0.402434650859418540f, -0.915448716088267830f, 0.402259108369461440f, - -0.915525865136428530f, - 0.402083551089587040f, -0.915602980523320230f, 0.401907979026249860f, - -0.915680062246107650f, - 0.401732392185905010f, -0.915757110301956720f, 0.401556790575008650f, - -0.915834124688034710f, - 0.401381174200016790f, -0.915911105401509880f, 0.401205543067386760f, - -0.915988052439551840f, - 0.401029897183575790f, -0.916064965799331610f, 0.400854236555041650f, - -0.916141845478021350f, - 0.400678561188243350f, -0.916218691472794110f, 0.400502871089639500f, - -0.916295503780824800f, - 0.400327166265690150f, -0.916372282399289140f, 0.400151446722855300f, - -0.916449027325364040f, - 0.399975712467595390f, -0.916525738556228100f, 0.399799963506372090f, - -0.916602416089060680f, - 0.399624199845646790f, -0.916679059921042700f, 0.399448421491882260f, - -0.916755670049355990f, - 0.399272628451540930f, -0.916832246471183890f, 0.399096820731086600f, - -0.916908789183710990f, - 0.398920998336983020f, -0.916985298184122890f, 0.398745161275694480f, - -0.917061773469606820f, - 0.398569309553686360f, -0.917138215037350710f, 0.398393443177423920f, - -0.917214622884544250f, - 0.398217562153373620f, -0.917290997008377910f, 0.398041666488001930f, - -0.917367337406043810f, - 0.397865756187775750f, -0.917443644074735220f, 0.397689831259163240f, - -0.917519917011646260f, - 0.397513891708632330f, -0.917596156213972950f, 0.397337937542652120f, - -0.917672361678911750f, - 0.397161968767691720f, -0.917748533403661250f, 0.396985985390220900f, - -0.917824671385420570f, - 0.396809987416710420f, -0.917900775621390390f, 0.396633974853630830f, - -0.917976846108772730f, - 0.396457947707453960f, -0.918052882844770380f, 0.396281905984651680f, - -0.918128885826587910f, - 0.396105849691696320f, -0.918204855051430900f, 0.395929778835061360f, - -0.918280790516506130f, - 0.395753693421220080f, -0.918356692219021720f, 0.395577593456646950f, - -0.918432560156186790f, - 0.395401478947816300f, -0.918508394325212250f, 0.395225349901203730f, - -0.918584194723309540f, - 0.395049206323284880f, -0.918659961347691900f, 0.394873048220535760f, - -0.918735694195573550f, - 0.394696875599433670f, -0.918811393264169940f, 0.394520688466455550f, - -0.918887058550697970f, - 0.394344486828079650f, -0.918962690052375630f, 0.394168270690784250f, - -0.919038287766421940f, - 0.393992040061048100f, -0.919113851690057770f, 0.393815794945351130f, - -0.919189381820504470f, - 0.393639535350172880f, -0.919264878154985250f, 0.393463261281994380f, - -0.919340340690724230f, - 0.393286972747296570f, -0.919415769424946960f, 0.393110669752560760f, - -0.919491164354880100f, - 0.392934352304269600f, -0.919566525477751530f, 0.392758020408905280f, - -0.919641852790790470f, - 0.392581674072951530f, -0.919717146291227360f, 0.392405313302891860f, - -0.919792405976293750f, - 0.392228938105210370f, -0.919867631843222950f, 0.392052548486392200f, - -0.919942823889248640f, - 0.391876144452922350f, -0.920017982111606570f, 0.391699726011287050f, - -0.920093106507533070f, - 0.391523293167972350f, -0.920168197074266450f, 0.391346845929465610f, - -0.920243253809045370f, - 0.391170384302253980f, -0.920318276709110480f, 0.390993908292825380f, - -0.920393265771703550f, - 0.390817417907668610f, -0.920468220994067110f, 0.390640913153272370f, - -0.920543142373445480f, - 0.390464394036126650f, -0.920618029907083860f, 0.390287860562721360f, - -0.920692883592229010f, - 0.390111312739546910f, -0.920767703426128790f, 0.389934750573094790f, - -0.920842489406032080f, - 0.389758174069856410f, -0.920917241529189520f, 0.389581583236324360f, - -0.920991959792852310f, - 0.389404978078991100f, -0.921066644194273530f, 0.389228358604349730f, - -0.921141294730707270f, - 0.389051724818894500f, -0.921215911399408730f, 0.388875076729119250f, - -0.921290494197634540f, - 0.388698414341519250f, -0.921365043122642340f, 0.388521737662589740f, - -0.921439558171691320f, - 0.388345046698826300f, -0.921514039342041900f, 0.388168341456725850f, - -0.921588486630955380f, - 0.387991621942784910f, -0.921662900035694730f, 0.387814888163501290f, - -0.921737279553523800f, - 0.387638140125372680f, -0.921811625181708120f, 0.387461377834897920f, - -0.921885936917513970f, - 0.387284601298575890f, -0.921960214758209110f, 0.387107810522905990f, - -0.922034458701062820f, - 0.386931005514388690f, -0.922108668743345070f, 0.386754186279524130f, - -0.922182844882327600f, - 0.386577352824813980f, -0.922256987115283030f, 0.386400505156759610f, - -0.922331095439485330f, - 0.386223643281862980f, -0.922405169852209880f, 0.386046767206627280f, - -0.922479210350733100f, - 0.385869876937555310f, -0.922553216932332830f, 0.385692972481151200f, - -0.922627189594287800f, - 0.385516053843919020f, -0.922701128333878520f, 0.385339121032363340f, - -0.922775033148386380f, - 0.385162174052989970f, -0.922848904035094120f, 0.384985212912304200f, - -0.922922740991285680f, - 0.384808237616812930f, -0.922996544014246250f, 0.384631248173022740f, - -0.923070313101262420f, - 0.384454244587440870f, -0.923144048249621820f, 0.384277226866575620f, - -0.923217749456613500f, - 0.384100195016935040f, -0.923291416719527640f, 0.383923149045028500f, - -0.923365050035655610f, - 0.383746088957365010f, -0.923438649402290370f, 0.383569014760454960f, - -0.923512214816725520f, - 0.383391926460808770f, -0.923585746276256560f, 0.383214824064937180f, - -0.923659243778179980f, - 0.383037707579352130f, -0.923732707319793180f, 0.382860577010565360f, - -0.923806136898395410f, - 0.382683432365089840f, -0.923879532511286740f, 0.382506273649438400f, - -0.923952894155768640f, - 0.382329100870124510f, -0.924026221829143850f, 0.382151914033662720f, - -0.924099515528716280f, - 0.381974713146567220f, -0.924172775251791200f, 0.381797498215353690f, - -0.924246000995674890f, - 0.381620269246537520f, -0.924319192757675160f, 0.381443026246634730f, - -0.924392350535101050f, - 0.381265769222162490f, -0.924465474325262600f, 0.381088498179637520f, - -0.924538564125471420f, - 0.380911213125578130f, -0.924611619933039970f, 0.380733914066502090f, - -0.924684641745282530f, - 0.380556601008928570f, -0.924757629559513910f, 0.380379273959376710f, - -0.924830583373050800f, - 0.380201932924366050f, -0.924903503183210910f, 0.380024577910417380f, - -0.924976388987313050f, - 0.379847208924051110f, -0.925049240782677580f, 0.379669825971789000f, - -0.925122058566625770f, - 0.379492429060152740f, -0.925194842336480420f, 0.379315018195664430f, - -0.925267592089565550f, - 0.379137593384847430f, -0.925340307823206200f, 0.378960154634224720f, - -0.925412989534729060f, - 0.378782701950320600f, -0.925485637221461490f, 0.378605235339659290f, - -0.925558250880732620f, - 0.378427754808765620f, -0.925630830509872720f, 0.378250260364165310f, - -0.925703376106213120f, - 0.378072752012383990f, -0.925775887667086740f, 0.377895229759948550f, - -0.925848365189827270f, - 0.377717693613385810f, -0.925920808671769960f, 0.377540143579222940f, - -0.925993218110251480f, - 0.377362579663988450f, -0.926065593502609310f, 0.377185001874210450f, - -0.926137934846182560f, - 0.377007410216418310f, -0.926210242138311270f, 0.376829804697141220f, - -0.926282515376337210f, - 0.376652185322909620f, -0.926354754557602860f, 0.376474552100253880f, - -0.926426959679452100f, - 0.376296905035704790f, -0.926499130739230510f, 0.376119244135794390f, - -0.926571267734284220f, - 0.375941569407054420f, -0.926643370661961230f, 0.375763880856017750f, - -0.926715439519610330f, - 0.375586178489217330f, -0.926787474304581750f, 0.375408462313186590f, - -0.926859475014227160f, - 0.375230732334460030f, -0.926931441645899130f, 0.375052988559571860f, - -0.927003374196951670f, - 0.374875230995057600f, -0.927075272664740100f, 0.374697459647452770f, - -0.927147137046620880f, - 0.374519674523293210f, -0.927218967339951790f, 0.374341875629116030f, - -0.927290763542091720f, - 0.374164062971457990f, -0.927362525650401110f, 0.373986236556857090f, - -0.927434253662241300f, - 0.373808396391851370f, -0.927505947574975180f, 0.373630542482979280f, - -0.927577607385966730f, - 0.373452674836780410f, -0.927649233092581180f, 0.373274793459794030f, - -0.927720824692185200f, - 0.373096898358560690f, -0.927792382182146320f, 0.372918989539620770f, - -0.927863905559833780f, - 0.372741067009515810f, -0.927935394822617890f, 0.372563130774787370f, - -0.928006849967869970f, - 0.372385180841977360f, -0.928078270992963140f, 0.372207217217628950f, - -0.928149657895271150f, - 0.372029239908284960f, -0.928221010672169440f, 0.371851248920489540f, - -0.928292329321034560f, - 0.371673244260786630f, -0.928363613839244370f, 0.371495225935720760f, - -0.928434864224177980f, - 0.371317193951837600f, -0.928506080473215480f, 0.371139148315682510f, - -0.928577262583738850f, - 0.370961089033802040f, -0.928648410553130520f, 0.370783016112742720f, - -0.928719524378774700f, - 0.370604929559051670f, -0.928790604058057020f, 0.370426829379276900f, - -0.928861649588363700f, - 0.370248715579966360f, -0.928932660967082820f, 0.370070588167669130f, - -0.929003638191603360f, - 0.369892447148934270f, -0.929074581259315750f, 0.369714292530311240f, - -0.929145490167611720f, - 0.369536124318350760f, -0.929216364913883930f, 0.369357942519603190f, - -0.929287205495526790f, - 0.369179747140620070f, -0.929358011909935500f, 0.369001538187952780f, - -0.929428784154506800f, - 0.368823315668153960f, -0.929499522226638560f, 0.368645079587776150f, - -0.929570226123729860f, - 0.368466829953372320f, -0.929640895843181330f, 0.368288566771496680f, - -0.929711531382394370f, - 0.368110290048703050f, -0.929782132738772190f, 0.367931999791546500f, - -0.929852699909718750f, - 0.367753696006582090f, -0.929923232892639560f, 0.367575378700365330f, - -0.929993731684941480f, - 0.367397047879452820f, -0.930064196284032360f, 0.367218703550400930f, - -0.930134626687321390f, - 0.367040345719767240f, -0.930205022892219070f, 0.366861974394109220f, - -0.930275384896137040f, - 0.366683589579984930f, -0.930345712696488470f, 0.366505191283953480f, - -0.930416006290687550f, - 0.366326779512573590f, -0.930486265676149780f, 0.366148354272405390f, - -0.930556490850291800f, - 0.365969915570008910f, -0.930626681810531650f, 0.365791463411944570f, - -0.930696838554288860f, - 0.365612997804773960f, -0.930766961078983710f, 0.365434518755058390f, - -0.930837049382038150f, - 0.365256026269360380f, -0.930907103460875020f, 0.365077520354242180f, - -0.930977123312918930f, - 0.364899001016267380f, -0.931047108935595170f, 0.364720468261999390f, - -0.931117060326330790f, - 0.364541922098002180f, -0.931186977482553750f, 0.364363362530840730f, - -0.931256860401693420f, - 0.364184789567079840f, -0.931326709081180430f, 0.364006203213285530f, - -0.931396523518446600f, - 0.363827603476023610f, -0.931466303710925090f, 0.363648990361860550f, - -0.931536049656050300f, - 0.363470363877363870f, -0.931605761351257830f, 0.363291724029100700f, - -0.931675438793984620f, - 0.363113070823639530f, -0.931745081981668720f, 0.362934404267548750f, - -0.931814690911749620f, - 0.362755724367397230f, -0.931884265581668150f, 0.362577031129754870f, - -0.931953805988865900f, - 0.362398324561191310f, -0.932023312130786490f, 0.362219604668277570f, - -0.932092784004874050f, - 0.362040871457584350f, -0.932162221608574320f, 0.361862124935682980f, - -0.932231624939334540f, - 0.361683365109145950f, -0.932300993994602640f, 0.361504591984545260f, - -0.932370328771828460f, - 0.361325805568454340f, -0.932439629268462360f, 0.361147005867446190f, - -0.932508895481956700f, - 0.360968192888095290f, -0.932578127409764420f, 0.360789366636975690f, - -0.932647325049340340f, - 0.360610527120662270f, -0.932716488398140250f, 0.360431674345730810f, - -0.932785617453620990f, - 0.360252808318756830f, -0.932854712213241230f, 0.360073929046317080f, - -0.932923772674460140f, - 0.359895036534988280f, -0.932992798834738850f, 0.359716130791347570f, - -0.933061790691539380f, - 0.359537211821973180f, -0.933130748242325110f, 0.359358279633443080f, - -0.933199671484560730f, - 0.359179334232336560f, -0.933268560415712050f, 0.359000375625232630f, - -0.933337415033246080f, - 0.358821403818710920f, -0.933406235334631520f, 0.358642418819352100f, - -0.933475021317337950f, - 0.358463420633736540f, -0.933543772978836170f, 0.358284409268445900f, - -0.933612490316598540f, - 0.358105384730061760f, -0.933681173328098300f, 0.357926347025166070f, - -0.933749822010810580f, - 0.357747296160342010f, -0.933818436362210960f, 0.357568232142172260f, - -0.933887016379776890f, - 0.357389154977241000f, -0.933955562060986730f, 0.357210064672131900f, - -0.934024073403320500f, - 0.357030961233430030f, -0.934092550404258870f, 0.356851844667720410f, - -0.934160993061284420f, - 0.356672714981588260f, -0.934229401371880820f, 0.356493572181620200f, - -0.934297775333532530f, - 0.356314416274402360f, -0.934366114943725900f, 0.356135247266522180f, - -0.934434420199948050f, - 0.355956065164567010f, -0.934502691099687870f, 0.355776869975124640f, - -0.934570927640435030f, - 0.355597661704783960f, -0.934639129819680780f, 0.355418440360133590f, - -0.934707297634917440f, - 0.355239205947763370f, -0.934775431083638700f, 0.355059958474263030f, - -0.934843530163339430f, - 0.354880697946222790f, -0.934911594871516090f, 0.354701424370233940f, - -0.934979625205665800f, - 0.354522137752887430f, -0.935047621163287430f, 0.354342838100775600f, - -0.935115582741880890f, - 0.354163525420490510f, -0.935183509938947500f, 0.353984199718624830f, - -0.935251402751989810f, - 0.353804861001772160f, -0.935319261178511500f, 0.353625509276525970f, - -0.935387085216017770f, - 0.353446144549480870f, -0.935454874862014620f, 0.353266766827231180f, - -0.935522630114009930f, - 0.353087376116372530f, -0.935590350969512370f, 0.352907972423500360f, - -0.935658037426032040f, - 0.352728555755210730f, -0.935725689481080370f, 0.352549126118100580f, - -0.935793307132169900f, - 0.352369683518766630f, -0.935860890376814640f, 0.352190227963806890f, - -0.935928439212529660f, - 0.352010759459819240f, -0.935995953636831300f, 0.351831278013402030f, - -0.936063433647237540f, - 0.351651783631154680f, -0.936130879241266920f, 0.351472276319676260f, - -0.936198290416440090f, - 0.351292756085567150f, -0.936265667170278260f, 0.351113222935427630f, - -0.936333009500304180f, - 0.350933676875858360f, -0.936400317404042060f, 0.350754117913461170f, - -0.936467590879016880f, - 0.350574546054837570f, -0.936534829922755500f, 0.350394961306590200f, - -0.936602034532785570f, - 0.350215363675321740f, -0.936669204706636060f, 0.350035753167635300f, - -0.936736340441837620f, - 0.349856129790135030f, -0.936803441735921560f, 0.349676493549424760f, - -0.936870508586420960f, - 0.349496844452109600f, -0.936937540990869900f, 0.349317182504794320f, - -0.937004538946803690f, - 0.349137507714085030f, -0.937071502451759190f, 0.348957820086587600f, - -0.937138431503274140f, - 0.348778119628908420f, -0.937205326098887960f, 0.348598406347655040f, - -0.937272186236140950f, - 0.348418680249434510f, -0.937339011912574960f, 0.348238941340855310f, - -0.937405803125732850f, - 0.348059189628525780f, -0.937472559873159140f, 0.347879425119054510f, - -0.937539282152399230f, - 0.347699647819051490f, -0.937605969960999990f, 0.347519857735126110f, - -0.937672623296509470f, - 0.347340054873889190f, -0.937739242156476970f, 0.347160239241951330f, - -0.937805826538453010f, - 0.346980410845923680f, -0.937872376439989890f, 0.346800569692418400f, - -0.937938891858640210f, - 0.346620715788047320f, -0.938005372791958840f, 0.346440849139423580f, - -0.938071819237501160f, - 0.346260969753160170f, -0.938138231192824360f, 0.346081077635870480f, - -0.938204608655486490f, - 0.345901172794169100f, -0.938270951623047080f, 0.345721255234670120f, - -0.938337260093066950f, - 0.345541324963989150f, -0.938403534063108060f, 0.345361381988741170f, - -0.938469773530733800f, - 0.345181426315542610f, -0.938535978493508560f, 0.345001457951009780f, - -0.938602148948998290f, - 0.344821476901759290f, -0.938668284894770170f, 0.344641483174409070f, - -0.938734386328392460f, - 0.344461476775576480f, -0.938800453247434770f, 0.344281457711880230f, - -0.938866485649468060f, - 0.344101425989938980f, -0.938932483532064490f, 0.343921381616371700f, - -0.938998446892797540f, - 0.343741324597798600f, -0.939064375729241950f, 0.343561254940839330f, - -0.939130270038973650f, - 0.343381172652115100f, -0.939196129819569900f, 0.343201077738246710f, - -0.939261955068609100f, - 0.343020970205855540f, -0.939327745783671400f, 0.342840850061564060f, - -0.939393501962337510f, - 0.342660717311994380f, -0.939459223602189920f, 0.342480571963769850f, - -0.939524910700812120f, - 0.342300414023513690f, -0.939590563255789160f, 0.342120243497849590f, - -0.939656181264707070f, - 0.341940060393402300f, -0.939721764725153340f, 0.341759864716796310f, - -0.939787313634716570f, - 0.341579656474657210f, -0.939852827990986680f, 0.341399435673610360f, - -0.939918307791555050f, - 0.341219202320282410f, -0.939983753034013940f, 0.341038956421299830f, - -0.940049163715957370f, - 0.340858697983289440f, -0.940114539834980280f, 0.340678427012879310f, - -0.940179881388678810f, - 0.340498143516697100f, -0.940245188374650880f, 0.340317847501371730f, - -0.940310460790495070f, - 0.340137538973531880f, -0.940375698633811540f, 0.339957217939806880f, - -0.940440901902201750f, - 0.339776884406826960f, -0.940506070593268300f, 0.339596538381222060f, - -0.940571204704615190f, - 0.339416179869623410f, -0.940636304233847590f, 0.339235808878662120f, - -0.940701369178571940f, - 0.339055425414969640f, -0.940766399536396070f, 0.338875029485178560f, - -0.940831395304928870f, - 0.338694621095921190f, -0.940896356481780830f, 0.338514200253831000f, - -0.940961283064563280f, - 0.338333766965541290f, -0.941026175050889260f, 0.338153321237685990f, - -0.941091032438372780f, - 0.337972863076899830f, -0.941155855224629190f, 0.337792392489817460f, - -0.941220643407275180f, - 0.337611909483074680f, -0.941285396983928660f, 0.337431414063306790f, - -0.941350115952208970f, - 0.337250906237150650f, -0.941414800309736230f, 0.337070386011242730f, - -0.941479450054132580f, - 0.336889853392220050f, -0.941544065183020810f, 0.336709308386720700f, - -0.941608645694025140f, - 0.336528751001382350f, -0.941673191584771360f, 0.336348181242844100f, - -0.941737702852886160f, - 0.336167599117744690f, -0.941802179495997650f, 0.335987004632723350f, - -0.941866621511735280f, - 0.335806397794420560f, -0.941931028897729510f, 0.335625778609476230f, - -0.941995401651612550f, - 0.335445147084531660f, -0.942059739771017310f, 0.335264503226227970f, - -0.942124043253578460f, - 0.335083847041206580f, -0.942188312096931770f, 0.334903178536110290f, - -0.942252546298714020f, - 0.334722497717581220f, -0.942316745856563780f, 0.334541804592262960f, - -0.942380910768120470f, - 0.334361099166798900f, -0.942445041031024890f, 0.334180381447832740f, - -0.942509136642919240f, - 0.333999651442009490f, -0.942573197601446870f, 0.333818909155973620f, - -0.942637223904252530f, - 0.333638154596370920f, -0.942701215548981900f, 0.333457387769846790f, - -0.942765172533282510f, - 0.333276608683047980f, -0.942829094854802710f, 0.333095817342620890f, - -0.942892982511192130f, - 0.332915013755212650f, -0.942956835500102120f, 0.332734197927471160f, - -0.943020653819184650f, - 0.332553369866044220f, -0.943084437466093490f, 0.332372529577580680f, - -0.943148186438483420f, - 0.332191677068729320f, -0.943211900734010620f, 0.332010812346139380f, - -0.943275580350332540f, - 0.331829935416461220f, -0.943339225285107720f, 0.331649046286344620f, - -0.943402835535996240f, - 0.331468144962440920f, -0.943466411100659320f, 0.331287231451400990f, - -0.943529951976759370f, - 0.331106305759876430f, -0.943593458161960390f, 0.330925367894519650f, - -0.943656929653927110f, - 0.330744417861982890f, -0.943720366450326200f, 0.330563455668919590f, - -0.943783768548825060f, - 0.330382481321982950f, -0.943847135947092690f, 0.330201494827826620f, - -0.943910468642799150f, - 0.330020496193105530f, -0.943973766633615980f, 0.329839485424473940f, - -0.944037029917215830f, - 0.329658462528587550f, -0.944100258491272660f, 0.329477427512101680f, - -0.944163452353461770f, - 0.329296380381672800f, -0.944226611501459810f, 0.329115321143957360f, - -0.944289735932944410f, - 0.328934249805612200f, -0.944352825645594750f, 0.328753166373295100f, - -0.944415880637091250f, - 0.328572070853663690f, -0.944478900905115550f, 0.328390963253376630f, - -0.944541886447350380f, - 0.328209843579092660f, -0.944604837261480260f, 0.328028711837470730f, - -0.944667753345190490f, - 0.327847568035170960f, -0.944730634696167800f, 0.327666412178853060f, - -0.944793481312100280f, - 0.327485244275178060f, -0.944856293190677210f, 0.327304064330806830f, - -0.944919070329589220f, - 0.327122872352400510f, -0.944981812726528150f, 0.326941668346621530f, - -0.945044520379187070f, - 0.326760452320131790f, -0.945107193285260610f, 0.326579224279594460f, - -0.945169831442444150f, - 0.326397984231672660f, -0.945232434848434890f, 0.326216732183029770f, - -0.945295003500931100f, - 0.326035468140330350f, -0.945357537397632290f, 0.325854192110238580f, - -0.945420036536239070f, - 0.325672904099419900f, -0.945482500914453740f, 0.325491604114539260f, - -0.945544930529979680f, - 0.325310292162262980f, -0.945607325380521280f, 0.325128968249257190f, - -0.945669685463784710f, - 0.324947632382188430f, -0.945732010777477150f, 0.324766284567724330f, - -0.945794301319306860f, - 0.324584924812532150f, -0.945856557086983910f, 0.324403553123280290f, - -0.945918778078219110f, - 0.324222169506637130f, -0.945980964290724760f, 0.324040773969271450f, - -0.946043115722214560f, - 0.323859366517852960f, -0.946105232370403340f, 0.323677947159051180f, - -0.946167314233007370f, - 0.323496515899536760f, -0.946229361307743820f, 0.323315072745980150f, - -0.946291373592331510f, - 0.323133617705052330f, -0.946353351084490590f, 0.322952150783425370f, - -0.946415293781942110f, - 0.322770671987770710f, -0.946477201682408680f, 0.322589181324761390f, - -0.946539074783614100f, - 0.322407678801070020f, -0.946600913083283530f, 0.322226164423369650f, - -0.946662716579143360f, - 0.322044638198334620f, -0.946724485268921170f, 0.321863100132638580f, - -0.946786219150346000f, - 0.321681550232956640f, -0.946847918221148000f, 0.321499988505963450f, - -0.946909582479058760f, - 0.321318414958334910f, -0.946971211921810880f, 0.321136829596746780f, - -0.947032806547138620f, - 0.320955232427875210f, -0.947094366352777220f, 0.320773623458397440f, - -0.947155891336463270f, - 0.320592002694990330f, -0.947217381495934820f, 0.320410370144331880f, - -0.947278836828930880f, - 0.320228725813100020f, -0.947340257333191940f, 0.320047069707973140f, - -0.947401643006459900f, - 0.319865401835630610f, -0.947462993846477700f, 0.319683722202751370f, - -0.947524309850989570f, - 0.319502030816015750f, -0.947585591017741090f, 0.319320327682103720f, - -0.947646837344479190f, - 0.319138612807695900f, -0.947708048828952100f, 0.318956886199473770f, - -0.947769225468909180f, - 0.318775147864118480f, -0.947830367262101010f, 0.318593397808312470f, - -0.947891474206279730f, - 0.318411636038737960f, -0.947952546299198560f, 0.318229862562077580f, - -0.948013583538612200f, - 0.318048077385015060f, -0.948074585922276230f, 0.317866280514233660f, - -0.948135553447947980f, - 0.317684471956418020f, -0.948196486113385580f, 0.317502651718252260f, - -0.948257383916349060f, - 0.317320819806421790f, -0.948318246854599090f, 0.317138976227611890f, - -0.948379074925898120f, - 0.316957120988508150f, -0.948439868128009620f, 0.316775254095797380f, - -0.948500626458698260f, - 0.316593375556165850f, -0.948561349915730270f, 0.316411485376301090f, - -0.948622038496872990f, - 0.316229583562890490f, -0.948682692199895090f, 0.316047670122621860f, - -0.948743311022566480f, - 0.315865745062184070f, -0.948803894962658380f, 0.315683808388265600f, - -0.948864444017943340f, - 0.315501860107556040f, -0.948924958186195160f, 0.315319900226745050f, - -0.948985437465188710f, - 0.315137928752522440f, -0.949045881852700560f, 0.314955945691579250f, - -0.949106291346508260f, - 0.314773951050606070f, -0.949166665944390700f, 0.314591944836294710f, - -0.949227005644128210f, - 0.314409927055336820f, -0.949287310443502010f, 0.314227897714424500f, - -0.949347580340295210f, - 0.314045856820250820f, -0.949407815332291460f, 0.313863804379508500f, - -0.949468015417276550f, - 0.313681740398891570f, -0.949528180593036670f, 0.313499664885093450f, - -0.949588310857359950f, - 0.313317577844809070f, -0.949648406208035480f, 0.313135479284732950f, - -0.949708466642853800f, - 0.312953369211560200f, -0.949768492159606680f, 0.312771247631986880f, - -0.949828482756087000f, - 0.312589114552708660f, -0.949888438430089300f, 0.312406969980422500f, - -0.949948359179409010f, - 0.312224813921825050f, -0.950008245001843000f, 0.312042646383613510f, - -0.950068095895189590f, - 0.311860467372486130f, -0.950127911857248100f, 0.311678276895140550f, - -0.950187692885819280f, - 0.311496074958275970f, -0.950247438978705230f, 0.311313861568591090f, - -0.950307150133709140f, - 0.311131636732785270f, -0.950366826348635780f, 0.310949400457558760f, - -0.950426467621290900f, - 0.310767152749611470f, -0.950486073949481700f, 0.310584893615644560f, - -0.950545645331016600f, - 0.310402623062358880f, -0.950605181763705230f, 0.310220341096455910f, - -0.950664683245358910f, - 0.310038047724638000f, -0.950724149773789610f, 0.309855742953607130f, - -0.950783581346811070f, - 0.309673426790066490f, -0.950842977962238160f, 0.309491099240719050f, - -0.950902339617887060f, - 0.309308760312268780f, -0.950961666311575080f, 0.309126410011419550f, - -0.951020958041121080f, - 0.308944048344875710f, -0.951080214804345010f, 0.308761675319342570f, - -0.951139436599068190f, - 0.308579290941525030f, -0.951198623423113230f, 0.308396895218129240f, - -0.951257775274304000f, - 0.308214488155861220f, -0.951316892150465550f, 0.308032069761427330f, - -0.951375974049424420f, - 0.307849640041534980f, -0.951435020969008340f, 0.307667199002891190f, - -0.951494032907046370f, - 0.307484746652204160f, -0.951553009861368590f, 0.307302282996181950f, - -0.951611951829806730f, - 0.307119808041533100f, -0.951670858810193860f, 0.306937321794967020f, - -0.951729730800363720f, - 0.306754824263192780f, -0.951788567798152130f, 0.306572315452920800f, - -0.951847369801395620f, - 0.306389795370861080f, -0.951906136807932230f, 0.306207264023724280f, - -0.951964868815601380f, - 0.306024721418221900f, -0.952023565822243570f, 0.305842167561065080f, - -0.952082227825700620f, - 0.305659602458966230f, -0.952140854823815830f, 0.305477026118637360f, - -0.952199446814433580f, - 0.305294438546791720f, -0.952258003795399600f, 0.305111839750142220f, - -0.952316525764560830f, - 0.304929229735402430f, -0.952375012719765880f, 0.304746608509286640f, - -0.952433464658864030f, - 0.304563976078509050f, -0.952491881579706320f, 0.304381332449784940f, - -0.952550263480144930f, - 0.304198677629829270f, -0.952608610358033240f, 0.304016011625357570f, - -0.952666922211226170f, - 0.303833334443086470f, -0.952725199037579570f, 0.303650646089731910f, - -0.952783440834950920f, - 0.303467946572011370f, -0.952841647601198720f, 0.303285235896641910f, - -0.952899819334182880f, - 0.303102514070341060f, -0.952957956031764700f, 0.302919781099827420f, - -0.953016057691806530f, - 0.302737036991819140f, -0.953074124312172200f, 0.302554281753035670f, - -0.953132155890726750f, - 0.302371515390196130f, -0.953190152425336560f, 0.302188737910020040f, - -0.953248113913869320f, - 0.302005949319228200f, -0.953306040354193750f, 0.301823149624540650f, - -0.953363931744180330f, - 0.301640338832678880f, -0.953421788081700310f, 0.301457516950363940f, - -0.953479609364626610f, - 0.301274683984318000f, -0.953537395590833280f, 0.301091839941263210f, - -0.953595146758195680f, - 0.300908984827921890f, -0.953652862864590500f, 0.300726118651017620f, - -0.953710543907895560f, - 0.300543241417273400f, -0.953768189885990330f, 0.300360353133413580f, - -0.953825800796755050f, - 0.300177453806162120f, -0.953883376638071770f, 0.299994543442243580f, - -0.953940917407823500f, - 0.299811622048383460f, -0.953998423103894490f, 0.299628689631306790f, - -0.954055893724170660f, - 0.299445746197739950f, -0.954113329266538800f, 0.299262791754409010f, - -0.954170729728887280f, - 0.299079826308040480f, -0.954228095109105670f, 0.298896849865361910f, - -0.954285425405084650f, - 0.298713862433100390f, -0.954342720614716480f, 0.298530864017984230f, - -0.954399980735894490f, - 0.298347854626741570f, -0.954457205766513490f, 0.298164834266100910f, - -0.954514395704469500f, - 0.297981802942791920f, -0.954571550547659630f, 0.297798760663543550f, - -0.954628670293982680f, - 0.297615707435086310f, -0.954685754941338340f, 0.297432643264150030f, - -0.954742804487627940f, - 0.297249568157465890f, -0.954799818930753720f, 0.297066482121764840f, - -0.954856798268619580f, - 0.296883385163778270f, -0.954913742499130520f, 0.296700277290238460f, - -0.954970651620192790f, - 0.296517158507877410f, -0.955027525629714160f, 0.296334028823428240f, - -0.955084364525603410f, - 0.296150888243623960f, -0.955141168305770670f, 0.295967736775197890f, - -0.955197936968127710f, - 0.295784574424884370f, -0.955254670510586990f, 0.295601401199417360f, - -0.955311368931062720f, - 0.295418217105532070f, -0.955368032227470240f, 0.295235022149963390f, - -0.955424660397726330f, - 0.295051816339446720f, -0.955481253439748770f, 0.294868599680718380f, - -0.955537811351456770f, - 0.294685372180514330f, -0.955594334130771110f, 0.294502133845571720f, - -0.955650821775613220f, - 0.294318884682627570f, -0.955707274283906560f, 0.294135624698419080f, - -0.955763691653575440f, - 0.293952353899684770f, -0.955820073882545420f, 0.293769072293162400f, - -0.955876420968743590f, - 0.293585779885591310f, -0.955932732910098170f, 0.293402476683710060f, - -0.955989009704538930f, - 0.293219162694258680f, -0.956045251349996410f, 0.293035837923976920f, - -0.956101457844403040f, - 0.292852502379604810f, -0.956157629185692140f, 0.292669156067883570f, - -0.956213765371798470f, - 0.292485798995553830f, -0.956269866400658140f, 0.292302431169357610f, - -0.956325932270208230f, - 0.292119052596036540f, -0.956381962978387620f, 0.291935663282332780f, - -0.956437958523136180f, - 0.291752263234989370f, -0.956493918902394990f, 0.291568852460749040f, - -0.956549844114106820f, - 0.291385430966355720f, -0.956605734156215080f, 0.291201998758553020f, - -0.956661589026664980f, - 0.291018555844085090f, -0.956717408723403050f, 0.290835102229696940f, - -0.956773193244376930f, - 0.290651637922133220f, -0.956828942587535370f, 0.290468162928139870f, - -0.956884656750828900f, - 0.290284677254462330f, -0.956940335732208940f, 0.290101180907847140f, - -0.956995979529628230f, - 0.289917673895040860f, -0.957051588141040970f, 0.289734156222790250f, - -0.957107161564402790f, - 0.289550627897843140f, -0.957162699797670100f, 0.289367088926946960f, - -0.957218202838801210f, - 0.289183539316850310f, -0.957273670685755200f, 0.288999979074301530f, - -0.957329103336492790f, - 0.288816408206049480f, -0.957384500788975860f, 0.288632826718843940f, - -0.957439863041167570f, - 0.288449234619434170f, -0.957495190091032570f, 0.288265631914570830f, - -0.957550481936536470f, - 0.288082018611004300f, -0.957605738575646240f, 0.287898394715485170f, - -0.957660960006330610f, - 0.287714760234765280f, -0.957716146226558870f, 0.287531115175595930f, - -0.957771297234302320f, - 0.287347459544729570f, -0.957826413027532910f, 0.287163793348918560f, - -0.957881493604224250f, - 0.286980116594915570f, -0.957936538962351420f, 0.286796429289474190f, - -0.957991549099890370f, - 0.286612731439347790f, -0.958046524014818600f, 0.286429023051290750f, - -0.958101463705114620f, - 0.286245304132057120f, -0.958156368168758820f, 0.286061574688402100f, - -0.958211237403732260f, - 0.285877834727080730f, -0.958266071408017670f, 0.285694084254848320f, - -0.958320870179598880f, - 0.285510323278461380f, -0.958375633716461170f, 0.285326551804675810f, - -0.958430362016591040f, - 0.285142769840248720f, -0.958485055077976100f, 0.284958977391937150f, - -0.958539712898605730f, - 0.284775174466498300f, -0.958594335476470220f, 0.284591361070690550f, - -0.958648922809561040f, - 0.284407537211271820f, -0.958703474895871600f, 0.284223702895001100f, - -0.958757991733395710f, - 0.284039858128637360f, -0.958812473320129200f, 0.283856002918939750f, - -0.958866919654069010f, - 0.283672137272668550f, -0.958921330733213060f, 0.283488261196583550f, - -0.958975706555561080f, - 0.283304374697445790f, -0.959030047119113550f, 0.283120477782015990f, - -0.959084352421872730f, - 0.282936570457055390f, -0.959138622461841890f, 0.282752652729326040f, - -0.959192857237025740f, - 0.282568724605589740f, -0.959247056745430090f, 0.282384786092609420f, - -0.959301220985062210f, - 0.282200837197147500f, -0.959355349953930790f, 0.282016877925967690f, - -0.959409443650045550f, - 0.281832908285833460f, -0.959463502071417510f, 0.281648928283508680f, - -0.959517525216059260f, - 0.281464937925758050f, -0.959571513081984520f, 0.281280937219346110f, - -0.959625465667208300f, - 0.281096926171038320f, -0.959679382969746750f, 0.280912904787600120f, - -0.959733264987617680f, - 0.280728873075797190f, -0.959787111718839900f, 0.280544831042396360f, - -0.959840923161433660f, - 0.280360778694163810f, -0.959894699313420530f, 0.280176716037867040f, - -0.959948440172823210f, - 0.279992643080273380f, -0.960002145737665850f, 0.279808559828150390f, - -0.960055816005973890f, - 0.279624466288266700f, -0.960109450975773940f, 0.279440362467390510f, - -0.960163050645094000f, - 0.279256248372291240f, -0.960216615011963430f, 0.279072124009737970f, - -0.960270144074412800f, - 0.278887989386500280f, -0.960323637830473920f, 0.278703844509348600f, - -0.960377096278180130f, - 0.278519689385053060f, -0.960430519415565790f, 0.278335524020384970f, - -0.960483907240666790f, - 0.278151348422115090f, -0.960537259751520050f, 0.277967162597015430f, - -0.960590576946164120f, - 0.277782966551857800f, -0.960643858822638470f, 0.277598760293414290f, - -0.960697105378984450f, - 0.277414543828458200f, -0.960750316613243950f, 0.277230317163762120f, - -0.960803492523460760f, - 0.277046080306099950f, -0.960856633107679660f, 0.276861833262245390f, - -0.960909738363946770f, - 0.276677576038972420f, -0.960962808290309780f, 0.276493308643056100f, - -0.961015842884817230f, - 0.276309031081271030f, -0.961068842145519350f, 0.276124743360392890f, - -0.961121806070467380f, - 0.275940445487197320f, -0.961174734657714080f, 0.275756137468460120f, - -0.961227627905313460f, - 0.275571819310958250f, -0.961280485811320640f, 0.275387491021468140f, - -0.961333308373792270f, - 0.275203152606767370f, -0.961386095590786250f, 0.275018804073633380f, - -0.961438847460361570f, - 0.274834445428843940f, -0.961491563980579000f, 0.274650076679177790f, - -0.961544245149499990f, - 0.274465697831413220f, -0.961596890965187860f, 0.274281308892329710f, - -0.961649501425706820f, - 0.274096909868706330f, -0.961702076529122540f, 0.273912500767323320f, - -0.961754616273502010f, - 0.273728081594960650f, -0.961807120656913540f, 0.273543652358398730f, - -0.961859589677426570f, - 0.273359213064418790f, -0.961912023333112100f, 0.273174763719801870f, - -0.961964421622042320f, - 0.272990304331329980f, -0.962016784542290560f, 0.272805834905784920f, - -0.962069112091931580f, - 0.272621355449948980f, -0.962121404269041580f, 0.272436865970605350f, - -0.962173661071697770f, - 0.272252366474536660f, -0.962225882497979020f, 0.272067856968526980f, - -0.962278068545965090f, - 0.271883337459359890f, -0.962330219213737400f, 0.271698807953819510f, - -0.962382334499378380f, - 0.271514268458690810f, -0.962434414400971990f, 0.271329718980758420f, - -0.962486458916603450f, - 0.271145159526808070f, -0.962538468044359160f, 0.270960590103625330f, - -0.962590441782326780f, - 0.270776010717996010f, -0.962642380128595710f, 0.270591421376707050f, - -0.962694283081255930f, - 0.270406822086544820f, -0.962746150638399410f, 0.270222212854296930f, - -0.962797982798119010f, - 0.270037593686750510f, -0.962849779558509030f, 0.269852964590693910f, - -0.962901540917665000f, - 0.269668325572915200f, -0.962953266873683880f, 0.269483676640202840f, - -0.963004957424663850f, - 0.269299017799346230f, -0.963056612568704340f, 0.269114349057134330f, - -0.963108232303906190f, - 0.268929670420357310f, -0.963159816628371360f, 0.268744981895805090f, - -0.963211365540203480f, - 0.268560283490267890f, -0.963262879037507070f, 0.268375575210537010f, - -0.963314357118388090f, - 0.268190857063403180f, -0.963365799780954050f, 0.268006129055658350f, - -0.963417207023313350f, - 0.267821391194094320f, -0.963468578843575950f, 0.267636643485503090f, - -0.963519915239853140f, - 0.267451885936677740f, -0.963571216210257210f, 0.267267118554410930f, - -0.963622481752902220f, - 0.267082341345496350f, -0.963673711865903230f, 0.266897554316727510f, - -0.963724906547376410f, - 0.266712757474898420f, -0.963776065795439840f, 0.266527950826803810f, - -0.963827189608212340f, - 0.266343134379238180f, -0.963878277983814200f, 0.266158308138997050f, - -0.963929330920367140f, - 0.265973472112875530f, -0.963980348415994110f, 0.265788626307669970f, - -0.964031330468819280f, - 0.265603770730176440f, -0.964082277076968140f, 0.265418905387191260f, - -0.964133188238567640f, - 0.265234030285511900f, -0.964184063951745720f, 0.265049145431935200f, - -0.964234904214632200f, - 0.264864250833259320f, -0.964285709025357370f, 0.264679346496282050f, - -0.964336478382053720f, - 0.264494432427801630f, -0.964387212282854290f, 0.264309508634617220f, - -0.964437910725893910f, - 0.264124575123527490f, -0.964488573709308410f, 0.263939631901332410f, - -0.964539201231235150f, - 0.263754678974831510f, -0.964589793289812650f, 0.263569716350824880f, - -0.964640349883180930f, - 0.263384744036113390f, -0.964690871009480920f, 0.263199762037497560f, - -0.964741356666855340f, - 0.263014770361779060f, -0.964791806853447900f, 0.262829769015759330f, - -0.964842221567403510f, - 0.262644758006240100f, -0.964892600806868890f, 0.262459737340024090f, - -0.964942944569991410f, - 0.262274707023913590f, -0.964993252854920320f, 0.262089667064712100f, - -0.965043525659805890f, - 0.261904617469222560f, -0.965093762982799590f, 0.261719558244249080f, - -0.965143964822054450f, - 0.261534489396595630f, -0.965194131175724720f, 0.261349410933066350f, - -0.965244262041965780f, - 0.261164322860466590f, -0.965294357418934660f, 0.260979225185601020f, - -0.965344417304789370f, - 0.260794117915275570f, -0.965394441697689400f, 0.260609001056295920f, - -0.965444430595795430f, - 0.260423874615468010f, -0.965494383997269500f, 0.260238738599598950f, - -0.965544301900275070f, - 0.260053593015495130f, -0.965594184302976830f, 0.259868437869964330f, - -0.965644031203540590f, - 0.259683273169813930f, -0.965693842600133690f, 0.259498098921851660f, - -0.965743618490924830f, - 0.259312915132886350f, -0.965793358874083570f, 0.259127721809726150f, - -0.965843063747781510f, - 0.258942518959180580f, -0.965892733110190860f, 0.258757306588058840f, - -0.965942366959485540f, - 0.258572084703170390f, -0.965991965293840570f, 0.258386853311325710f, - -0.966041528111432400f, - 0.258201612419334870f, -0.966091055410438830f, 0.258016362034009070f, - -0.966140547189038750f, - 0.257831102162158930f, -0.966190003445412620f, 0.257645832810596440f, - -0.966239424177741890f, - 0.257460553986133210f, -0.966288809384209580f, 0.257275265695581120f, - -0.966338159063000130f, - 0.257089967945753230f, -0.966387473212298790f, 0.256904660743461850f, - -0.966436751830292650f, - 0.256719344095520720f, -0.966485994915169840f, 0.256534018008743200f, - -0.966535202465119700f, - 0.256348682489942910f, -0.966584374478333120f, 0.256163337545934570f, - -0.966633510953002100f, - 0.255977983183532380f, -0.966682611887320190f, 0.255792619409551670f, - -0.966731677279481840f, - 0.255607246230807550f, -0.966780707127683270f, 0.255421863654115460f, - -0.966829701430121810f, - 0.255236471686291820f, -0.966878660184995910f, 0.255051070334152530f, - -0.966927583390505660f, - 0.254865659604514630f, -0.966976471044852070f, 0.254680239504194990f, - -0.967025323146237900f, - 0.254494810040010790f, -0.967074139692867040f, 0.254309371218780110f, - -0.967122920682944360f, - 0.254123923047320620f, -0.967171666114676640f, 0.253938465532451140f, - -0.967220375986271310f, - 0.253752998680989940f, -0.967269050295937790f, 0.253567522499756610f, - -0.967317689041886310f, - 0.253382036995570270f, -0.967366292222328510f, 0.253196542175250560f, - -0.967414859835477480f, - 0.253011038045617980f, -0.967463391879547440f, 0.252825524613492610f, - -0.967511888352754150f, - 0.252640001885695580f, -0.967560349253314360f, 0.252454469869047900f, - -0.967608774579446380f, - 0.252268928570370810f, -0.967657164329369880f, 0.252083377996486560f, - -0.967705518501305480f, - 0.251897818154216910f, -0.967753837093475510f, 0.251712249050384750f, - -0.967802120104103270f, - 0.251526670691812780f, -0.967850367531413620f, 0.251341083085323880f, - -0.967898579373632660f, - 0.251155486237742030f, -0.967946755628987800f, 0.250969880155890720f, - -0.967994896295707670f, - 0.250784264846594550f, -0.968043001372022260f, 0.250598640316677830f, - -0.968091070856162970f, - 0.250413006572965280f, -0.968139104746362330f, 0.250227363622282540f, - -0.968187103040854420f, - 0.250041711471454650f, -0.968235065737874320f, 0.249856050127308050f, - -0.968282992835658660f, - 0.249670379596668520f, -0.968330884332445300f, 0.249484699886363010f, - -0.968378740226473300f, - 0.249299011003218300f, -0.968426560515983190f, 0.249113312954061360f, - -0.968474345199216820f, - 0.248927605745720260f, -0.968522094274417270f, 0.248741889385022420f, - -0.968569807739828930f, - 0.248556163878796620f, -0.968617485593697540f, 0.248370429233871150f, - -0.968665127834269950f, - 0.248184685457074780f, -0.968712734459794780f, 0.247998932555237220f, - -0.968760305468521430f, - 0.247813170535187620f, -0.968807840858700970f, 0.247627399403756330f, - -0.968855340628585580f, - 0.247441619167773440f, -0.968902804776428870f, 0.247255829834069320f, - -0.968950233300485800f, - 0.247070031409475370f, -0.968997626199012310f, 0.246884223900822430f, - -0.969044983470266240f, - 0.246698407314942500f, -0.969092305112506100f, 0.246512581658667380f, - -0.969139591123992280f, - 0.246326746938829060f, -0.969186841502985950f, 0.246140903162260640f, - -0.969234056247750050f, - 0.245955050335794590f, -0.969281235356548530f, 0.245769188466264670f, - -0.969328378827646660f, - 0.245583317560504000f, -0.969375486659311280f, 0.245397437625346990f, - -0.969422558849810320f, - 0.245211548667627680f, -0.969469595397412950f, 0.245025650694180470f, - -0.969516596300390000f, - 0.244839743711840750f, -0.969563561557013180f, 0.244653827727443320f, - -0.969610491165555870f, - 0.244467902747824210f, -0.969657385124292450f, 0.244281968779819170f, - -0.969704243431498750f, - 0.244096025830264210f, -0.969751066085452140f, 0.243910073905996370f, - -0.969797853084430890f, - 0.243724113013852130f, -0.969844604426714830f, 0.243538143160669180f, - -0.969891320110585100f, - 0.243352164353284880f, -0.969938000134323960f, 0.243166176598536930f, - -0.969984644496215240f, - 0.242980179903263980f, -0.970031253194543970f, 0.242794174274304190f, - -0.970077826227596420f, - 0.242608159718496890f, -0.970124363593660280f, 0.242422136242681050f, - -0.970170865291024360f, - 0.242236103853696040f, -0.970217331317979160f, 0.242050062558382180f, - -0.970263761672816140f, - 0.241864012363579210f, -0.970310156353828110f, 0.241677953276128090f, - -0.970356515359309450f, - 0.241491885302869300f, -0.970402838687555500f, 0.241305808450644390f, - -0.970449126336863090f, - 0.241119722726294730f, -0.970495378305530450f, 0.240933628136661910f, - -0.970541594591857070f, - 0.240747524688588540f, -0.970587775194143630f, 0.240561412388916620f, - -0.970633920110692160f, - 0.240375291244489500f, -0.970680029339806130f, 0.240189161262150040f, - -0.970726102879790110f, - 0.240003022448741500f, -0.970772140728950350f, 0.239816874811108110f, - -0.970818142885593870f, - 0.239630718356093560f, -0.970864109348029470f, 0.239444553090542720f, - -0.970910040114567050f, - 0.239258379021300120f, -0.970955935183517970f, 0.239072196155210660f, - -0.971001794553194690f, - 0.238886004499120170f, -0.971047618221911100f, 0.238699804059873950f, - -0.971093406187982460f, - 0.238513594844318500f, -0.971139158449725090f, 0.238327376859299970f, - -0.971184875005457030f, - 0.238141150111664870f, -0.971230555853497380f, 0.237954914608260650f, - -0.971276200992166490f, - 0.237768670355934210f, -0.971321810419786160f, 0.237582417361533650f, - -0.971367384134679490f, - 0.237396155631906550f, -0.971412922135170940f, 0.237209885173901620f, - -0.971458424419585960f, - 0.237023605994367340f, -0.971503890986251780f, 0.236837318100152380f, - -0.971549321833496630f, - 0.236651021498106460f, -0.971594716959650160f, 0.236464716195078750f, - -0.971640076363043390f, - 0.236278402197919620f, -0.971685400042008540f, 0.236092079513479050f, - -0.971730687994879160f, - 0.235905748148607370f, -0.971775940219990140f, 0.235719408110155930f, - -0.971821156715677700f, - 0.235533059404975460f, -0.971866337480279400f, 0.235346702039917920f, - -0.971911482512134000f, - 0.235160336021834860f, -0.971956591809581600f, 0.234973961357578310f, - -0.972001665370963890f, - 0.234787578054001080f, -0.972046703194623380f, 0.234601186117955550f, - -0.972091705278904430f, - 0.234414785556295250f, -0.972136671622152120f, 0.234228376375873380f, - -0.972181602222713440f, - 0.234041958583543460f, -0.972226497078936270f, 0.233855532186159950f, - -0.972271356189170040f, - 0.233669097190576820f, -0.972316179551765300f, 0.233482653603649170f, - -0.972360967165074140f, - 0.233296201432231560f, -0.972405719027449770f, 0.233109740683179740f, - -0.972450435137246830f, - 0.232923271363349120f, -0.972495115492821190f, 0.232736793479595420f, - -0.972539760092530180f, - 0.232550307038775330f, -0.972584368934732210f, 0.232363812047745010f, - -0.972628942017787270f, - 0.232177308513361770f, -0.972673479340056430f, 0.231990796442482580f, - -0.972717980899902250f, - 0.231804275841964780f, -0.972762446695688570f, 0.231617746718666580f, - -0.972806876725780370f, - 0.231431209079445730f, -0.972851270988544180f, 0.231244662931161110f, - -0.972895629482347760f, - 0.231058108280671280f, -0.972939952205560070f, 0.230871545134835070f, - -0.972984239156551740f, - 0.230684973500512310f, -0.973028490333694100f, 0.230498393384562320f, - -0.973072705735360530f, - 0.230311804793845530f, -0.973116885359925130f, 0.230125207735222020f, - -0.973161029205763530f, - 0.229938602215552260f, -0.973205137271252800f, 0.229751988241697600f, - -0.973249209554771120f, - 0.229565365820518870f, -0.973293246054698250f, 0.229378734958878120f, - -0.973337246769414800f, - 0.229192095663636740f, -0.973381211697303290f, 0.229005447941657390f, - -0.973425140836747030f, - 0.228818791799802360f, -0.973469034186130950f, 0.228632127244934230f, - -0.973512891743841370f, - 0.228445454283916550f, -0.973556713508265560f, 0.228258772923612350f, - -0.973600499477792370f, - 0.228072083170885790f, -0.973644249650811870f, 0.227885385032600700f, - -0.973687964025715670f, - 0.227698678515621170f, -0.973731642600896400f, 0.227511963626812390f, - -0.973775285374748000f, - 0.227325240373038830f, -0.973818892345666100f, 0.227138508761166260f, - -0.973862463512047300f, - 0.226951768798059980f, -0.973905998872289460f, 0.226765020490585720f, - -0.973949498424792170f, - 0.226578263845610110f, -0.973992962167955830f, 0.226391498869999210f, - -0.974036390100182610f, - 0.226204725570620270f, -0.974079782219875680f, 0.226017943954340190f, - -0.974123138525439520f, - 0.225831154028026200f, -0.974166459015280320f, 0.225644355798546440f, - -0.974209743687805110f, - 0.225457549272768540f, -0.974252992541422500f, 0.225270734457561240f, - -0.974296205574542330f, - 0.225083911359792780f, -0.974339382785575860f, 0.224897079986332540f, - -0.974382524172935470f, - 0.224710240344049570f, -0.974425629735034990f, 0.224523392439813170f, - -0.974468699470289580f, - 0.224336536280493690f, -0.974511733377115720f, 0.224149671872960840f, - -0.974554731453931230f, - 0.223962799224085520f, -0.974597693699155050f, 0.223775918340738290f, - -0.974640620111207560f, - 0.223589029229790020f, -0.974683510688510670f, 0.223402131898112480f, - -0.974726365429487320f, - 0.223215226352576960f, -0.974769184332561770f, 0.223028312600055870f, - -0.974811967396159830f, - 0.222841390647421280f, -0.974854714618708430f, 0.222654460501545550f, - -0.974897425998635820f, - 0.222467522169301990f, -0.974940101534371720f, 0.222280575657563370f, - -0.974982741224347140f, - 0.222093620973203590f, -0.975025345066994120f, 0.221906658123096260f, - -0.975067913060746360f, - 0.221719687114115240f, -0.975110445204038890f, 0.221532707953135340f, - -0.975152941495307620f, - 0.221345720647030810f, -0.975195401932990370f, 0.221158725202677100f, - -0.975237826515525820f, - 0.220971721626949060f, -0.975280215241354220f, 0.220784709926722670f, - -0.975322568108916930f, - 0.220597690108873650f, -0.975364885116656870f, 0.220410662180277940f, - -0.975407166263018270f, - 0.220223626147812460f, -0.975449411546446380f, 0.220036582018353550f, - -0.975491620965388110f, - 0.219849529798778750f, -0.975533794518291360f, 0.219662469495965180f, - -0.975575932203605610f, - 0.219475401116790340f, -0.975618034019781750f, 0.219288324668132580f, - -0.975660099965271590f, - 0.219101240156869770f, -0.975702130038528570f, 0.218914147589880900f, - -0.975744124238007270f, - 0.218727046974044600f, -0.975786082562163930f, 0.218539938316239830f, - -0.975828005009455550f, - 0.218352821623346430f, -0.975869891578341030f, 0.218165696902243770f, - -0.975911742267280170f, - 0.217978564159812290f, -0.975953557074734300f, 0.217791423402932120f, - -0.975995335999165880f, - 0.217604274638483670f, -0.976037079039039020f, 0.217417117873348300f, - -0.976078786192818850f, - 0.217229953114406790f, -0.976120457458971910f, 0.217042780368541080f, - -0.976162092835966110f, - 0.216855599642632570f, -0.976203692322270560f, 0.216668410943563790f, - -0.976245255916355800f, - 0.216481214278216900f, -0.976286783616693630f, 0.216294009653474370f, - -0.976328275421757260f, - 0.216106797076219600f, -0.976369731330021140f, 0.215919576553335460f, - -0.976411151339961040f, - 0.215732348091705940f, -0.976452535450054060f, 0.215545111698214660f, - -0.976493883658778540f, - 0.215357867379745550f, -0.976535195964614470f, 0.215170615143183500f, - -0.976576472366042610f, - 0.214983354995412820f, -0.976617712861545640f, 0.214796086943318920f, - -0.976658917449606980f, - 0.214608810993786920f, -0.976700086128711840f, 0.214421527153702190f, - -0.976741218897346550f, - 0.214234235429951100f, -0.976782315753998650f, 0.214046935829419330f, - -0.976823376697157240f, - 0.213859628358993830f, -0.976864401725312640f, 0.213672313025561140f, - -0.976905390836956490f, - 0.213484989836008080f, -0.976946344030581560f, 0.213297658797222430f, - -0.976987261304682390f, - 0.213110319916091360f, -0.977028142657754390f, 0.212922973199503260f, - -0.977068988088294450f, - 0.212735618654345870f, -0.977109797594800880f, 0.212548256287508120f, - -0.977150571175773200f, - 0.212360886105878580f, -0.977191308829712280f, 0.212173508116346080f, - -0.977232010555120320f, - 0.211986122325800410f, -0.977272676350500860f, 0.211798728741130820f, - -0.977313306214358750f, - 0.211611327369227610f, -0.977353900145199960f, 0.211423918216980810f, - -0.977394458141532250f, - 0.211236501291280710f, -0.977434980201864260f, 0.211049076599018500f, - -0.977475466324706050f, - 0.210861644147084830f, -0.977515916508569280f, 0.210674203942371490f, - -0.977556330751966460f, - 0.210486755991769890f, -0.977596709053411780f, 0.210299300302171750f, - -0.977637051411420770f, - 0.210111836880469720f, -0.977677357824509930f, 0.209924365733555860f, - -0.977717628291197570f, - 0.209736886868323370f, -0.977757862810002760f, 0.209549400291665110f, - -0.977798061379446360f, - 0.209361906010474190f, -0.977838223998050430f, 0.209174404031644700f, - -0.977878350664338150f, - 0.208986894362070070f, -0.977918441376834370f, 0.208799377008644980f, - -0.977958496134064830f, - 0.208611851978263460f, -0.977998514934557140f, 0.208424319277820650f, - -0.978038497776839600f, - 0.208236778914211470f, -0.978078444659442380f, 0.208049230894330940f, - -0.978118355580896660f, - 0.207861675225075150f, -0.978158230539735050f, 0.207674111913339540f, - -0.978198069534491400f, - 0.207486540966020700f, -0.978237872563701090f, 0.207298962390014880f, - -0.978277639625900420f, - 0.207111376192218560f, -0.978317370719627650f, 0.206923782379529210f, - -0.978357065843421640f, - 0.206736180958843660f, -0.978396724995823090f, 0.206548571937059940f, - -0.978436348175373730f, - 0.206360955321075680f, -0.978475935380616830f, 0.206173331117788770f, - -0.978515486610096910f, - 0.205985699334098050f, -0.978555001862359550f, 0.205798059976901760f, - -0.978594481135952270f, - 0.205610413053099320f, -0.978633924429423100f, 0.205422758569589780f, - -0.978673331741322210f, - 0.205235096533272380f, -0.978712703070200420f, 0.205047426951047380f, - -0.978752038414610340f, - 0.204859749829814420f, -0.978791337773105670f, 0.204672065176474290f, - -0.978830601144241470f, - 0.204484372997927180f, -0.978869828526574120f, 0.204296673301074430f, - -0.978909019918661310f, - 0.204108966092817010f, -0.978948175319062200f, 0.203921251380056150f, - -0.978987294726337050f, - 0.203733529169694010f, -0.979026378139047580f, 0.203545799468632190f, - -0.979065425555756930f, - 0.203358062283773370f, -0.979104436975029250f, 0.203170317622019920f, - -0.979143412395430230f, - 0.202982565490274460f, -0.979182351815526930f, 0.202794805895440550f, - -0.979221255233887700f, - 0.202607038844421110f, -0.979260122649082020f, 0.202419264344120220f, - -0.979298954059681040f, - 0.202231482401441620f, -0.979337749464256780f, 0.202043693023289280f, - -0.979376508861383170f, - 0.201855896216568160f, -0.979415232249634780f, 0.201668091988182500f, - -0.979453919627588210f, - 0.201480280345037820f, -0.979492570993820700f, 0.201292461294039190f, - -0.979531186346911390f, - 0.201104634842091960f, -0.979569765685440520f, 0.200916800996102370f, - -0.979608309007989450f, - 0.200728959762976140f, -0.979646816313141210f, 0.200541111149620090f, - -0.979685287599479930f, - 0.200353255162940420f, -0.979723722865591170f, 0.200165391809844500f, - -0.979762122110061640f, - 0.199977521097239290f, -0.979800485331479680f, 0.199789643032032120f, - -0.979838812528434740f, - 0.199601757621131050f, -0.979877103699517640f, 0.199413864871443750f, - -0.979915358843320480f, - 0.199225964789878890f, -0.979953577958436740f, 0.199038057383344820f, - -0.979991761043461200f, - 0.198850142658750120f, -0.980029908096989980f, 0.198662220623004320f, - -0.980068019117620650f, - 0.198474291283016360f, -0.980106094103951770f, 0.198286354645696270f, - -0.980144133054583590f, - 0.198098410717953730f, -0.980182135968117320f, 0.197910459506698720f, - -0.980220102843155970f, - 0.197722501018842030f, -0.980258033678303550f, 0.197534535261294000f, - -0.980295928472165290f, - 0.197346562240966000f, -0.980333787223347960f, 0.197158581964769040f, - -0.980371609930459690f, - 0.196970594439614370f, -0.980409396592109910f, 0.196782599672414240f, - -0.980447147206909060f, - 0.196594597670080220f, -0.980484861773469380f, 0.196406588439525050f, - -0.980522540290404090f, - 0.196218571987660850f, -0.980560182756327950f, 0.196030548321400880f, - -0.980597789169856850f, - 0.195842517447657990f, -0.980635359529608120f, 0.195654479373345370f, - -0.980672893834200530f, - 0.195466434105377090f, -0.980710392082253970f, 0.195278381650666520f, - -0.980747854272389750f, - 0.195090322016128330f, -0.980785280403230430f, 0.194902255208676660f, - -0.980822670473399990f, - 0.194714181235225990f, -0.980860024481523870f, 0.194526100102691720f, - -0.980897342426228390f, - 0.194338011817988600f, -0.980934624306141640f, 0.194149916388032530f, - -0.980971870119892840f, - 0.193961813819739010f, -0.981009079866112630f, 0.193773704120023840f, - -0.981046253543432780f, - 0.193585587295803750f, -0.981083391150486590f, 0.193397463353994740f, - -0.981120492685908730f, - 0.193209332301514080f, -0.981157558148334830f, 0.193021194145278320f, - -0.981194587536402320f, - 0.192833048892205290f, -0.981231580848749730f, 0.192644896549212240f, - -0.981268538084016710f, - 0.192456737123216840f, -0.981305459240844670f, 0.192268570621137590f, - -0.981342344317875930f, - 0.192080397049892380f, -0.981379193313754560f, 0.191892216416400310f, - -0.981416006227125550f, - 0.191704028727579940f, -0.981452783056635520f, 0.191515833990350240f, - -0.981489523800932130f, - 0.191327632211630990f, -0.981526228458664660f, 0.191139423398341420f, - -0.981562897028483650f, - 0.190951207557401860f, -0.981599529509040720f, 0.190762984695732250f, - -0.981636125898989080f, - 0.190574754820252800f, -0.981672686196983110f, 0.190386517937884580f, - -0.981709210401678800f, - 0.190198274055548120f, -0.981745698511732990f, 0.190010023180165050f, - -0.981782150525804310f, - 0.189821765318656580f, -0.981818566442552500f, 0.189633500477944220f, - -0.981854946260638630f, - 0.189445228664950340f, -0.981891289978724990f, 0.189256949886596720f, - -0.981927597595475540f, - 0.189068664149806280f, -0.981963869109555240f, 0.188880371461501330f, - -0.982000104519630490f, - 0.188692071828605260f, -0.982036303824369020f, 0.188503765258041080f, - -0.982072467022439890f, - 0.188315451756732120f, -0.982108594112513610f, 0.188127131331602530f, - -0.982144685093261580f, - 0.187938803989575850f, -0.982180739963357200f, 0.187750469737576840f, - -0.982216758721474510f, - 0.187562128582529740f, -0.982252741366289370f, 0.187373780531359110f, - -0.982288687896478830f, - 0.187185425590990440f, -0.982324598310721160f, 0.186997063768348510f, - -0.982360472607696210f, - 0.186808695070359330f, -0.982396310786084690f, 0.186620319503948420f, - -0.982432112844569110f, - 0.186431937076041640f, -0.982467878781833170f, 0.186243547793565670f, - -0.982503608596561720f, - 0.186055151663446630f, -0.982539302287441240f, 0.185866748692611720f, - -0.982574959853159240f, - 0.185678338887987790f, -0.982610581292404750f, 0.185489922256501900f, - -0.982646166603868050f, - 0.185301498805082040f, -0.982681715786240860f, 0.185113068540655510f, - -0.982717228838215990f, - 0.184924631470150870f, -0.982752705758487830f, 0.184736187600495930f, - -0.982788146545751970f, - 0.184547736938619640f, -0.982823551198705240f, 0.184359279491450640f, - -0.982858919716046110f, - 0.184170815265917720f, -0.982894252096474070f, 0.183982344268950600f, - -0.982929548338690060f, - 0.183793866507478390f, -0.982964808441396440f, 0.183605381988431350f, - -0.983000032403296590f, - 0.183416890718739230f, -0.983035220223095640f, 0.183228392705332140f, - -0.983070371899499640f, - 0.183039887955141060f, -0.983105487431216290f, 0.182851376475096310f, - -0.983140566816954500f, - 0.182662858272129360f, -0.983175610055424420f, 0.182474333353171260f, - -0.983210617145337640f, - 0.182285801725153320f, -0.983245588085407070f, 0.182097263395007760f, - -0.983280522874346970f, - 0.181908718369666160f, -0.983315421510872810f, 0.181720166656061170f, - -0.983350283993701500f, - 0.181531608261125130f, -0.983385110321551180f, 0.181343043191790590f, - -0.983419900493141540f, - 0.181154471454990920f, -0.983454654507193270f, 0.180965893057658980f, - -0.983489372362428730f, - 0.180777308006728670f, -0.983524054057571260f, 0.180588716309133280f, - -0.983558699591345900f, - 0.180400117971807270f, -0.983593308962478650f, 0.180211513001684590f, - -0.983627882169697210f, - 0.180022901405699510f, -0.983662419211730250f, 0.179834283190787180f, - -0.983696920087308020f, - 0.179645658363882100f, -0.983731384795162090f, 0.179457026931919950f, - -0.983765813334025240f, - 0.179268388901835880f, -0.983800205702631490f, 0.179079744280565390f, - -0.983834561899716630f, - 0.178891093075044830f, -0.983868881924017220f, 0.178702435292209940f, - -0.983903165774271500f, - 0.178513770938997590f, -0.983937413449218920f, 0.178325100022344140f, - -0.983971624947600270f, - 0.178136422549186320f, -0.984005800268157870f, 0.177947738526461670f, - -0.984039939409634970f, - 0.177759047961107140f, -0.984074042370776450f, 0.177570350860060790f, - -0.984108109150328540f, - 0.177381647230260200f, -0.984142139747038570f, 0.177192937078643310f, - -0.984176134159655320f, - 0.177004220412148860f, -0.984210092386929030f, 0.176815497237715000f, - -0.984244014427611110f, - 0.176626767562280960f, -0.984277900280454370f, 0.176438031392785350f, - -0.984311749944212780f, - 0.176249288736167940f, -0.984345563417641900f, 0.176060539599367960f, - -0.984379340699498510f, - 0.175871783989325040f, -0.984413081788540700f, 0.175683021912979580f, - -0.984446786683527920f, - 0.175494253377271400f, -0.984480455383220930f, 0.175305478389141370f, - -0.984514087886381840f, - 0.175116696955530060f, -0.984547684191773960f, 0.174927909083378160f, - -0.984581244298162180f, - 0.174739114779627310f, -0.984614768204312600f, 0.174550314051218490f, - -0.984648255908992630f, - 0.174361506905093830f, -0.984681707410970940f, 0.174172693348194960f, - -0.984715122709017620f, - 0.173983873387463850f, -0.984748501801904210f, 0.173795047029843270f, - -0.984781844688403350f, - 0.173606214282275410f, -0.984815151367289140f, 0.173417375151703520f, - -0.984848421837337010f, - 0.173228529645070490f, -0.984881656097323700f, 0.173039677769319390f, - -0.984914854146027200f, - 0.172850819531394200f, -0.984948015982227030f, 0.172661954938238270f, - -0.984981141604703960f, - 0.172473083996796030f, -0.985014231012239840f, 0.172284206714011350f, - -0.985047284203618200f, - 0.172095323096829040f, -0.985080301177623800f, 0.171906433152193700f, - -0.985113281933042590f, - 0.171717536887049970f, -0.985146226468662230f, 0.171528634308343500f, - -0.985179134783271020f, - 0.171339725423019260f, -0.985212006875659460f, 0.171150810238023340f, - -0.985244842744618540f, - 0.170961888760301360f, -0.985277642388941220f, 0.170772960996799230f, - -0.985310405807421570f, - 0.170584026954463700f, -0.985343132998854790f, 0.170395086640240920f, - -0.985375823962037710f, - 0.170206140061078120f, -0.985408478695768420f, 0.170017187223922090f, - -0.985441097198846210f, - 0.169828228135719880f, -0.985473679470071810f, 0.169639262803419400f, - -0.985506225508247290f, - 0.169450291233967930f, -0.985538735312176060f, 0.169261313434313890f, - -0.985571208880662740f, - 0.169072329411405180f, -0.985603646212513400f, 0.168883339172190010f, - -0.985636047306535420f, - 0.168694342723617440f, -0.985668412161537550f, 0.168505340072635900f, - -0.985700740776329850f, - 0.168316331226194910f, -0.985733033149723490f, 0.168127316191243350f, - -0.985765289280531310f, - 0.167938294974731230f, -0.985797509167567370f, 0.167749267583608030f, - -0.985829692809647050f, - 0.167560234024823590f, -0.985861840205586980f, 0.167371194305328540f, - -0.985893951354205210f, - 0.167182148432072880f, -0.985926026254321130f, 0.166993096412007770f, - -0.985958064904755460f, - 0.166804038252083870f, -0.985990067304330030f, 0.166614973959252090f, - -0.986022033451868560f, - 0.166425903540464220f, -0.986053963346195440f, 0.166236827002671390f, - -0.986085856986136820f, - 0.166047744352825850f, -0.986117714370520090f, 0.165858655597879430f, - -0.986149535498173860f, - 0.165669560744784140f, -0.986181320367928270f, 0.165480459800492890f, - -0.986213068978614490f, - 0.165291352771957970f, -0.986244781329065460f, 0.165102239666132720f, - -0.986276457418114980f, - 0.164913120489970090f, -0.986308097244598670f, 0.164723995250423190f, - -0.986339700807353000f, - 0.164534863954446110f, -0.986371268105216030f, 0.164345726608992190f, - -0.986402799137027220f, - 0.164156583221015890f, -0.986434293901627070f, 0.163967433797471110f, - -0.986465752397857940f, - 0.163778278345312690f, -0.986497174624562880f, 0.163589116871495160f, - -0.986528560580586690f, - 0.163399949382973230f, -0.986559910264775410f, 0.163210775886702460f, - -0.986591223675976400f, - 0.163021596389637810f, -0.986622500813038480f, 0.162832410898735260f, - -0.986653741674811350f, - 0.162643219420950450f, -0.986684946260146690f, 0.162454021963239190f, - -0.986716114567897100f, - 0.162264818532558110f, -0.986747246596916480f, 0.162075609135863330f, - -0.986778342346060430f, - 0.161886393780111910f, -0.986809401814185420f, 0.161697172472260540f, - -0.986840425000149680f, - 0.161507945219266150f, -0.986871411902812470f, 0.161318712028086540f, - -0.986902362521034470f, - 0.161129472905678780f, -0.986933276853677710f, 0.160940227859001140f, - -0.986964154899605650f, - 0.160750976895011390f, -0.986994996657682870f, 0.160561720020667510f, - -0.987025802126775600f, - 0.160372457242928400f, -0.987056571305750970f, 0.160183188568752240f, - -0.987087304193477900f, - 0.159993914005098350f, -0.987118000788826280f, 0.159804633558925380f, - -0.987148661090667570f, - 0.159615347237193090f, -0.987179285097874340f, 0.159426055046860750f, - -0.987209872809320820f, - 0.159236756994887850f, -0.987240424223882250f, 0.159047453088234840f, - -0.987270939340435420f, - 0.158858143333861390f, -0.987301418157858430f, 0.158668827738728370f, - -0.987331860675030430f, - 0.158479506309796100f, -0.987362266890832400f, 0.158290179054025180f, - -0.987392636804146240f, - 0.158100845978377090f, -0.987422970413855410f, 0.157911507089812640f, - -0.987453267718844560f, - 0.157722162395293690f, -0.987483528717999710f, 0.157532811901781670f, - -0.987513753410208420f, - 0.157343455616238280f, -0.987543941794359230f, 0.157154093545626010f, - -0.987574093869342360f, - 0.156964725696906750f, -0.987604209634049160f, 0.156775352077043430f, - -0.987634289087372160f, - 0.156585972692998590f, -0.987664332228205710f, 0.156396587551734940f, - -0.987694339055445130f, - 0.156207196660216040f, -0.987724309567986960f, 0.156017800025404830f, - -0.987754243764729530f, - 0.155828397654265320f, -0.987784141644572180f, 0.155638989553760850f, - -0.987814003206415550f, - 0.155449575730855880f, -0.987843828449161740f, 0.155260156192514380f, - -0.987873617371714200f, - 0.155070730945700510f, -0.987903369972977790f, 0.154881299997379400f, - -0.987933086251858380f, - 0.154691863354515400f, -0.987962766207263420f, 0.154502421024073990f, - -0.987992409838101880f, - 0.154312973013020240f, -0.988022017143283530f, 0.154123519328319360f, - -0.988051588121720110f, - 0.153934059976937460f, -0.988081122772324070f, 0.153744594965840000f, - -0.988110621094009820f, - 0.153555124301993500f, -0.988140083085692570f, 0.153365647992364020f, - -0.988169508746289060f, - 0.153176166043917870f, -0.988198898074717610f, 0.152986678463622160f, - -0.988228251069897420f, - 0.152797185258443410f, -0.988257567730749460f, 0.152607686435349140f, - -0.988286848056195710f, - 0.152418182001306500f, -0.988316092045159690f, 0.152228671963282770f, - -0.988345299696566150f, - 0.152039156328246160f, -0.988374471009341280f, 0.151849635103164180f, - -0.988403605982412390f, - 0.151660108295005400f, -0.988432704614708340f, 0.151470575910737760f, - -0.988461766905159300f, - 0.151281037957330250f, -0.988490792852696590f, 0.151091494441751430f, - -0.988519782456253270f, - 0.150901945370970040f, -0.988548735714763200f, 0.150712390751955720f, - -0.988577652627162020f, - 0.150522830591677370f, -0.988606533192386450f, 0.150333264897105050f, - -0.988635377409374790f, - 0.150143693675208330f, -0.988664185277066230f, 0.149954116932956990f, - -0.988692956794401940f, - 0.149764534677321620f, -0.988721691960323780f, 0.149574946915272210f, - -0.988750390773775360f, - 0.149385353653779810f, -0.988779053233701520f, 0.149195754899814960f, - -0.988807679339048340f, - 0.149006150660348470f, -0.988836269088763540f, 0.148816540942352030f, - -0.988864822481795640f, - 0.148626925752796540f, -0.988893339517095130f, 0.148437305098654050f, - -0.988921820193613190f, - 0.148247678986896200f, -0.988950264510302990f, 0.148058047424494740f, - -0.988978672466118480f, - 0.147868410418422360f, -0.989007044060015270f, 0.147678767975650970f, - -0.989035379290950310f, - 0.147489120103153680f, -0.989063678157881540f, 0.147299466807902820f, - -0.989091940659768800f, - 0.147109808096871850f, -0.989120166795572690f, 0.146920143977033760f, - -0.989148356564255590f, - 0.146730474455361750f, -0.989176509964781010f, 0.146540799538829870f, - -0.989204626996113780f, - 0.146351119234411440f, -0.989232707657220050f, 0.146161433549080950f, - -0.989260751947067640f, - 0.145971742489812370f, -0.989288759864625170f, 0.145782046063579860f, - -0.989316731408863000f, - 0.145592344277358450f, -0.989344666578752640f, 0.145402637138122540f, - -0.989372565373267010f, - 0.145212924652847520f, -0.989400427791380380f, 0.145023206828508360f, - -0.989428253832068230f, - 0.144833483672080240f, -0.989456043494307710f, 0.144643755190539150f, - -0.989483796777076760f, - 0.144454021390860440f, -0.989511513679355190f, 0.144264282280020530f, - -0.989539194200123930f, - 0.144074537864995330f, -0.989566838338365120f, 0.143884788152761010f, - -0.989594446093062460f, - 0.143695033150294580f, -0.989622017463200780f, 0.143505272864572290f, - -0.989649552447766530f, - 0.143315507302571590f, -0.989677051045747210f, 0.143125736471269140f, - -0.989704513256131850f, - 0.142935960377642700f, -0.989731939077910570f, 0.142746179028669620f, - -0.989759328510075200f, - 0.142556392431327340f, -0.989786681551618640f, 0.142366600592594260f, - -0.989813998201535260f, - 0.142176803519448000f, -0.989841278458820530f, 0.141987001218867340f, - -0.989868522322471580f, - 0.141797193697830530f, -0.989895729791486660f, 0.141607380963316020f, - -0.989922900864865450f, - 0.141417563022303130f, -0.989950035541608990f, 0.141227739881770480f, - -0.989977133820719610f, - 0.141037911548697770f, -0.990004195701200910f, 0.140848078030064220f, - -0.990031221182058000f, - 0.140658239332849240f, -0.990058210262297120f, 0.140468395464033110f, - -0.990085162940925970f, - 0.140278546430595420f, -0.990112079216953770f, 0.140088692239516780f, - -0.990138959089390650f, - 0.139898832897777380f, -0.990165802557248400f, 0.139708968412357580f, - -0.990192609619540030f, - 0.139519098790238600f, -0.990219380275280000f, 0.139329224038400980f, - -0.990246114523483990f, - 0.139139344163826280f, -0.990272812363169110f, 0.138949459173495440f, - -0.990299473793353590f, - 0.138759569074390380f, -0.990326098813057330f, 0.138569673873492640f, - -0.990352687421301340f, - 0.138379773577783890f, -0.990379239617108160f, 0.138189868194246640f, - -0.990405755399501260f, - 0.137999957729862760f, -0.990432234767505970f, 0.137810042191615130f, - -0.990458677720148620f, - 0.137620121586486180f, -0.990485084256456980f, 0.137430195921458550f, - -0.990511454375460290f, - 0.137240265203515700f, -0.990537788076188750f, 0.137050329439640380f, - -0.990564085357674370f, - 0.136860388636816430f, -0.990590346218950150f, 0.136670442802027230f, - -0.990616570659050620f, - 0.136480491942256310f, -0.990642758677011570f, 0.136290536064488070f, - -0.990668910271869980f, - 0.136100575175706200f, -0.990695025442664630f, 0.135910609282895440f, - -0.990721104188435180f, - 0.135720638393040080f, -0.990747146508222710f, 0.135530662513124620f, - -0.990773152401069780f, - 0.135340681650134330f, -0.990799121866020370f, 0.135150695811053850f, - -0.990825054902119470f, - 0.134960705002868830f, -0.990850951508413620f, 0.134770709232564290f, - -0.990876811683950810f, - 0.134580708507126220f, -0.990902635427780010f, 0.134390702833540240f, - -0.990928422738951990f, - 0.134200692218792020f, -0.990954173616518500f, 0.134010676669868210f, - -0.990979888059532740f, - 0.133820656193754690f, -0.991005566067049370f, 0.133630630797438390f, - -0.991031207638124130f, - 0.133440600487905820f, -0.991056812771814340f, 0.133250565272143570f, - -0.991082381467178640f, - 0.133060525157139180f, -0.991107913723276780f, 0.132870480149879400f, - -0.991133409539170170f, - 0.132680430257352130f, -0.991158868913921350f, 0.132490375486544710f, - -0.991184291846594180f, - 0.132300315844444680f, -0.991209678336254060f, 0.132110251338040470f, - -0.991235028381967420f, - 0.131920181974319760f, -0.991260341982802440f, 0.131730107760271280f, - -0.991285619137828200f, - 0.131540028702883280f, -0.991310859846115440f, 0.131349944809144220f, - -0.991336064106736140f, - 0.131159856086043410f, -0.991361231918763460f, 0.130969762540569380f, - -0.991386363281272280f, - 0.130779664179711790f, -0.991411458193338540f, 0.130589561010459600f, - -0.991436516654039420f, - 0.130399453039802740f, -0.991461538662453790f, 0.130209340274730770f, - -0.991486524217661480f, - 0.130019222722233350f, -0.991511473318743900f, 0.129829100389301010f, - -0.991536385964783880f, - 0.129638973282923540f, -0.991561262154865290f, 0.129448841410091830f, - -0.991586101888073500f, - 0.129258704777796270f, -0.991610905163495370f, 0.129068563393027410f, - -0.991635671980218740f, - 0.128878417262776660f, -0.991660402337333210f, 0.128688266394034690f, - -0.991685096233929530f, - 0.128498110793793220f, -0.991709753669099530f, 0.128307950469043590f, - -0.991734374641936810f, - 0.128117785426777150f, -0.991758959151536110f, 0.127927615673986190f, - -0.991783507196993490f, - 0.127737441217662280f, -0.991808018777406430f, 0.127547262064798050f, - -0.991832493891873780f, - 0.127357078222385570f, -0.991856932539495360f, 0.127166889697417180f, - -0.991881334719373010f, - 0.126976696496885980f, -0.991905700430609330f, 0.126786498627784430f, - -0.991930029672308480f, - 0.126596296097105960f, -0.991954322443575950f, 0.126406088911843320f, - -0.991978578743518580f, - 0.126215877078990400f, -0.992002798571244520f, 0.126025660605540460f, - -0.992026981925863360f, - 0.125835439498487020f, -0.992051128806485720f, 0.125645213764824380f, - -0.992075239212224070f, - 0.125454983411546210f, -0.992099313142191800f, 0.125264748445647110f, - -0.992123350595503720f, - 0.125074508874121300f, -0.992147351571276090f, 0.124884264703963150f, - -0.992171316068626520f, - 0.124694015942167770f, -0.992195244086673920f, 0.124503762595729650f, - -0.992219135624538450f, - 0.124313504671644300f, -0.992242990681341700f, 0.124123242176906760f, - -0.992266809256206580f, - 0.123932975118512200f, -0.992290591348257370f, 0.123742703503456630f, - -0.992314336956619640f, - 0.123552427338735370f, -0.992338046080420420f, 0.123362146631344750f, - -0.992361718718787870f, - 0.123171861388280650f, -0.992385354870851670f, 0.122981571616539080f, - -0.992408954535742850f, - 0.122791277323116900f, -0.992432517712593550f, 0.122600978515010240f, - -0.992456044400537700f, - 0.122410675199216280f, -0.992479534598709970f, 0.122220367382731500f, - -0.992502988306246950f, - 0.122030055072553410f, -0.992526405522286100f, 0.121839738275679020f, - -0.992549786245966570f, - 0.121649416999105540f, -0.992573130476428810f, 0.121459091249830950f, - -0.992596438212814290f, - 0.121268761034852550f, -0.992619709454266140f, 0.121078426361168710f, - -0.992642944199928820f, - 0.120888087235777220f, -0.992666142448948020f, 0.120697743665676120f, - -0.992689304200470750f, - 0.120507395657864240f, -0.992712429453645460f, 0.120317043219339670f, - -0.992735518207621850f, - 0.120126686357101580f, -0.992758570461551140f, 0.119936325078148620f, - -0.992781586214585570f, - 0.119745959389479630f, -0.992804565465879140f, 0.119555589298094230f, - -0.992827508214586760f, - 0.119365214810991350f, -0.992850414459865100f, 0.119174835935170960f, - -0.992873284200871730f, - 0.118984452677632520f, -0.992896117436765980f, 0.118794065045375670f, - -0.992918914166708300f, - 0.118603673045400840f, -0.992941674389860470f, 0.118413276684707770f, - -0.992964398105385610f, - 0.118222875970297250f, -0.992987085312448390f, 0.118032470909169300f, - -0.993009736010214580f, - 0.117842061508325020f, -0.993032350197851410f, 0.117651647774765000f, - -0.993054927874527320f, - 0.117461229715489990f, -0.993077469039412300f, 0.117270807337501560f, - -0.993099973691677570f, - 0.117080380647800550f, -0.993122441830495580f, 0.116889949653388850f, - -0.993144873455040430f, - 0.116699514361267840f, -0.993167268564487230f, 0.116509074778439050f, - -0.993189627158012620f, - 0.116318630911904880f, -0.993211949234794500f, 0.116128182768666920f, - -0.993234234794012290f, - 0.115937730355727850f, -0.993256483834846440f, 0.115747273680089870f, - -0.993278696356479030f, - 0.115556812748755290f, -0.993300872358093280f, 0.115366347568727250f, - -0.993323011838873950f, - 0.115175878147008180f, -0.993345114798006910f, 0.114985404490601530f, - -0.993367181234679600f, - 0.114794926606510250f, -0.993389211148080650f, 0.114604444501737460f, - -0.993411204537400060f, - 0.114413958183287050f, -0.993433161401829360f, 0.114223467658162260f, - -0.993455081740560960f, - 0.114032972933367300f, -0.993476965552789190f, 0.113842474015905660f, - -0.993498812837709360f, - 0.113651970912781920f, -0.993520623594518090f, 0.113461463631000080f, - -0.993542397822413600f, - 0.113270952177564360f, -0.993564135520595300f, 0.113080436559479720f, - -0.993585836688263950f, - 0.112889916783750470f, -0.993607501324621610f, 0.112699392857381910f, - -0.993629129428871720f, - 0.112508864787378830f, -0.993650721000219120f, 0.112318332580746190f, - -0.993672276037870010f, - 0.112127796244489750f, -0.993693794541031680f, 0.111937255785614560f, - -0.993715276508913230f, - 0.111746711211126660f, -0.993736721940724600f, 0.111556162528031630f, - -0.993758130835677430f, - 0.111365609743335190f, -0.993779503192984580f, 0.111175052864043830f, - -0.993800839011860120f, - 0.110984491897163380f, -0.993822138291519660f, 0.110793926849700630f, - -0.993843401031180180f, - 0.110603357728661910f, -0.993864627230059750f, 0.110412784541053660f, - -0.993885816887378090f, - 0.110222207293883180f, -0.993906970002356060f, 0.110031625994157000f, - -0.993928086574215830f, - 0.109841040648882680f, -0.993949166602181130f, 0.109650451265067080f, - -0.993970210085476920f, - 0.109459857849718030f, -0.993991217023329380f, 0.109269260409842920f, - -0.994012187414966220f, - 0.109078658952449240f, -0.994033121259616400f, 0.108888053484545310f, - -0.994054018556510210f, - 0.108697444013138670f, -0.994074879304879370f, 0.108506830545237980f, - -0.994095703503956930f, - 0.108316213087851300f, -0.994116491152977070f, 0.108125591647986880f, - -0.994137242251175720f, - 0.107934966232653760f, -0.994157956797789730f, 0.107744336848860260f, - -0.994178634792057590f, - 0.107553703503615710f, -0.994199276233218910f, 0.107363066203928920f, - -0.994219881120514850f, - 0.107172424956808870f, -0.994240449453187900f, 0.106981779769265340f, - -0.994260981230481790f, - 0.106791130648307380f, -0.994281476451641550f, 0.106600477600945030f, - -0.994301935115913580f, - 0.106409820634187840f, -0.994322357222545810f, 0.106219159755045520f, - -0.994342742770787270f, - 0.106028494970528530f, -0.994363091759888570f, 0.105837826287646670f, - -0.994383404189101430f, - 0.105647153713410700f, -0.994403680057679100f, 0.105456477254830660f, - -0.994423919364875950f, - 0.105265796918917650f, -0.994444122109948040f, 0.105075112712682180f, - -0.994464288292152390f, - 0.104884424643134970f, -0.994484417910747600f, 0.104693732717287500f, - -0.994504510964993590f, - 0.104503036942150550f, -0.994524567454151740f, 0.104312337324735870f, - -0.994544587377484300f, - 0.104121633872054730f, -0.994564570734255420f, 0.103930926591118540f, - -0.994584517523730340f, - 0.103740215488939480f, -0.994604427745175660f, 0.103549500572529040f, - -0.994624301397859400f, - 0.103358781848899700f, -0.994644138481050710f, 0.103168059325063390f, - -0.994663938994020280f, - 0.102977333008032250f, -0.994683702936040250f, 0.102786602904819150f, - -0.994703430306383860f, - 0.102595869022436280f, -0.994723121104325700f, 0.102405131367896790f, - -0.994742775329142010f, - 0.102214389948213370f, -0.994762392980109930f, 0.102023644770398800f, - -0.994781974056508260f, - 0.101832895841466670f, -0.994801518557617110f, 0.101642143168429830f, - -0.994821026482717860f, - 0.101451386758302160f, -0.994840497831093180f, 0.101260626618096800f, - -0.994859932602027320f, - 0.101069862754827880f, -0.994879330794805620f, 0.100879095175509010f, - -0.994898692408714870f, - 0.100688323887153970f, -0.994918017443043200f, 0.100497548896777310f, - -0.994937305897080070f, - 0.100306770211392820f, -0.994956557770116380f, 0.100115987838015370f, - -0.994975773061444140f, - 0.099925201783659226f, -0.994994951770357020f, 0.099734412055338839f, - -0.995014093896149700f, - 0.099543618660069444f, -0.995033199438118630f, 0.099352821604865513f, - -0.995052268395561160f, - 0.099162020896742573f, -0.995071300767776170f, 0.098971216542715582f, - -0.995090296554063890f, - 0.098780408549799664f, -0.995109255753726110f, 0.098589596925010708f, - -0.995128178366065490f, - 0.098398781675363881f, -0.995147064390386470f, 0.098207962807875346f, - -0.995165913825994620f, - 0.098017140329560770f, -0.995184726672196820f, 0.097826314247435903f, - -0.995203502928301510f, - 0.097635484568517339f, -0.995222242593618240f, 0.097444651299820870f, - -0.995240945667458130f, - 0.097253814448363354f, -0.995259612149133390f, 0.097062974021160875f, - -0.995278242037957670f, - 0.096872130025230527f, -0.995296835333246090f, 0.096681282467588864f, - -0.995315392034315070f, - 0.096490431355252607f, -0.995333912140482280f, 0.096299576695239225f, - -0.995352395651066810f, - 0.096108718494565468f, -0.995370842565388990f, 0.095917856760249096f, - -0.995389252882770690f, - 0.095726991499307315f, -0.995407626602534900f, 0.095536122718757485f, - -0.995425963724006160f, - 0.095345250425617742f, -0.995444264246510340f, 0.095154374626905472f, - -0.995462528169374420f, - 0.094963495329639061f, -0.995480755491926940f, 0.094772612540836410f, - -0.995498946213497770f, - 0.094581726267515473f, -0.995517100333418110f, 0.094390836516695067f, - -0.995535217851020390f, - 0.094199943295393190f, -0.995553298765638470f, 0.094009046610628907f, - -0.995571343076607770f, - 0.093818146469420494f, -0.995589350783264600f, 0.093627242878787237f, - -0.995607321884947050f, - 0.093436335845747912f, -0.995625256380994310f, 0.093245425377321389f, - -0.995643154270746900f, - 0.093054511480527333f, -0.995661015553546910f, 0.092863594162384697f, - -0.995678840228737540f, - 0.092672673429913366f, -0.995696628295663520f, 0.092481749290132753f, - -0.995714379753670610f, - 0.092290821750062355f, -0.995732094602106430f, 0.092099890816722485f, - -0.995749772840319400f, - 0.091908956497132696f, -0.995767414467659820f, 0.091718018798313525f, - -0.995785019483478750f, - 0.091527077727284981f, -0.995802587887129160f, 0.091336133291067212f, - -0.995820119677964910f, - 0.091145185496681130f, -0.995837614855341610f, 0.090954234351146898f, - -0.995855073418615790f, - 0.090763279861485704f, -0.995872495367145730f, 0.090572322034718156f, - -0.995889880700290720f, - 0.090381360877865011f, -0.995907229417411720f, 0.090190396397947820f, - -0.995924541517870690f, - 0.089999428601987341f, -0.995941817001031350f, 0.089808457497005362f, - -0.995959055866258320f, - 0.089617483090022917f, -0.995976258112917790f, 0.089426505388062016f, - -0.995993423740377360f, - 0.089235524398144139f, -0.996010552748005870f, 0.089044540127290905f, - -0.996027645135173610f, - 0.088853552582524684f, -0.996044700901251970f, 0.088662561770867121f, - -0.996061720045614000f, - 0.088471567699340822f, -0.996078702567633980f, 0.088280570374967879f, - -0.996095648466687300f, - 0.088089569804770507f, -0.996112557742151130f, 0.087898565995771685f, - -0.996129430393403740f, - 0.087707558954993645f, -0.996146266419824620f, 0.087516548689459586f, - -0.996163065820794950f, - 0.087325535206192226f, -0.996179828595696870f, 0.087134518512214321f, - -0.996196554743914220f, - 0.086943498614549489f, -0.996213244264832040f, 0.086752475520220515f, - -0.996229897157836500f, - 0.086561449236251239f, -0.996246513422315520f, 0.086370419769664919f, - -0.996263093057658030f, - 0.086179387127484922f, -0.996279636063254650f, 0.085988351316735448f, - -0.996296142438496850f, - 0.085797312344439880f, -0.996312612182778000f, 0.085606270217622613f, - -0.996329045295492380f, - 0.085415224943307277f, -0.996345441776035900f, 0.085224176528518519f, - -0.996361801623805720f, - 0.085033124980280414f, -0.996378124838200210f, 0.084842070305617148f, - -0.996394411418619290f, - 0.084651012511553700f, -0.996410661364464100f, 0.084459951605114297f, - -0.996426874675137240f, - 0.084268887593324127f, -0.996443051350042630f, 0.084077820483207846f, - -0.996459191388585410f, - 0.083886750281790226f, -0.996475294790172160f, 0.083695676996096827f, - -0.996491361554210920f, - 0.083504600633152404f, -0.996507391680110820f, 0.083313521199982740f, - -0.996523385167282450f, - 0.083122438703613077f, -0.996539342015137940f, 0.082931353151068726f, - -0.996555262223090540f, - 0.082740264549375803f, -0.996571145790554840f, 0.082549172905559659f, - -0.996586992716946950f, - 0.082358078226646619f, -0.996602803001684130f, 0.082166980519662466f, - -0.996618576644185070f, - 0.081975879791633108f, -0.996634313643869900f, 0.081784776049585201f, - -0.996650014000160070f, - 0.081593669300544638f, -0.996665677712478160f, 0.081402559551538328f, - -0.996681304780248300f, - 0.081211446809592386f, -0.996696895202896060f, 0.081020331081733912f, - -0.996712448979848010f, - 0.080829212374989468f, -0.996727966110532490f, 0.080638090696385709f, - -0.996743446594378860f, - 0.080446966052950097f, -0.996758890430818000f, 0.080255838451709291f, - -0.996774297619282050f, - 0.080064707899690932f, -0.996789668159204560f, 0.079873574403922148f, - -0.996805002050020320f, - 0.079682437971430126f, -0.996820299291165670f, 0.079491298609242866f, - -0.996835559882078170f, - 0.079300156324387569f, -0.996850783822196610f, 0.079109011123892431f, - -0.996865971110961310f, - 0.078917863014785095f, -0.996881121747813850f, 0.078726712004093313f, - -0.996896235732197210f, - 0.078535558098845590f, -0.996911313063555740f, 0.078344401306069678f, - -0.996926353741335090f, - 0.078153241632794315f, -0.996941357764982160f, 0.077962079086047645f, - -0.996956325133945280f, - 0.077770913672857989f, -0.996971255847674320f, 0.077579745400254363f, - -0.996986149905620180f, - 0.077388574275265049f, -0.997001007307235290f, 0.077197400304919297f, - -0.997015828051973310f, - 0.077006223496245585f, -0.997030612139289450f, 0.076815043856273399f, - -0.997045359568640040f, - 0.076623861392031617f, -0.997060070339482960f, 0.076432676110549283f, - -0.997074744451277310f, - 0.076241488018856149f, -0.997089381903483400f, 0.076050297123981231f, - -0.997103982695563330f, - 0.075859103432954503f, -0.997118546826979980f, 0.075667906952805383f, - -0.997133074297198110f, - 0.075476707690563416f, -0.997147565105683480f, 0.075285505653258880f, - -0.997162019251903290f, - 0.075094300847921291f, -0.997176436735326190f, 0.074903093281581137f, - -0.997190817555421940f, - 0.074711882961268378f, -0.997205161711661850f, 0.074520669894013014f, - -0.997219469203518670f, - 0.074329454086845867f, -0.997233740030466160f, 0.074138235546796952f, - -0.997247974191979860f, - 0.073947014280897269f, -0.997262171687536170f, 0.073755790296177265f, - -0.997276332516613180f, - 0.073564563599667454f, -0.997290456678690210f, 0.073373334198399157f, - -0.997304544173247990f, - 0.073182102099402888f, -0.997318594999768600f, 0.072990867309710133f, - -0.997332609157735470f, - 0.072799629836351618f, -0.997346586646633230f, 0.072608389686359048f, - -0.997360527465947940f, - 0.072417146866763538f, -0.997374431615167030f, 0.072225901384596336f, - -0.997388299093779460f, - 0.072034653246889416f, -0.997402129901275300f, 0.071843402460674000f, - -0.997415924037145960f, - 0.071652149032982254f, -0.997429681500884180f, 0.071460892970845832f, - -0.997443402291984360f, - 0.071269634281296415f, -0.997457086409941910f, 0.071078372971366502f, - -0.997470733854253670f, - 0.070887109048087787f, -0.997484344624417930f, 0.070695842518492924f, - -0.997497918719934210f, - 0.070504573389614009f, -0.997511456140303450f, 0.070313301668483263f, - -0.997524956885027960f, - 0.070122027362133646f, -0.997538420953611230f, 0.069930750477597295f, - -0.997551848345558430f, - 0.069739471021907376f, -0.997565239060375750f, 0.069548189002096472f, - -0.997578593097570800f, - 0.069356904425197236f, -0.997591910456652630f, 0.069165617298243109f, - -0.997605191137131640f, - 0.068974327628266732f, -0.997618435138519550f, 0.068783035422301728f, - -0.997631642460329320f, - 0.068591740687380900f, -0.997644813102075420f, 0.068400443430538069f, - -0.997657947063273710f, - 0.068209143658806454f, -0.997671044343441000f, 0.068017841379219388f, - -0.997684104942096030f, - 0.067826536598810966f, -0.997697128858758500f, 0.067635229324614451f, - -0.997710116092949570f, - 0.067443919563664106f, -0.997723066644191640f, 0.067252607322993652f, - -0.997735980512008620f, - 0.067061292609636836f, -0.997748857695925690f, 0.066869975430628226f, - -0.997761698195469560f, - 0.066678655793001543f, -0.997774502010167820f, 0.066487333703791507f, - -0.997787269139549960f, - 0.066296009170032283f, -0.997799999583146470f, 0.066104682198758091f, - -0.997812693340489280f, - 0.065913352797003930f, -0.997825350411111640f, 0.065722020971803977f, - -0.997837970794548280f, - 0.065530686730193397f, -0.997850554490335110f, 0.065339350079206798f, - -0.997863101498009500f, - 0.065148011025878860f, -0.997875611817110150f, 0.064956669577245010f, - -0.997888085447177110f, - 0.064765325740339871f, -0.997900522387751620f, 0.064573979522199065f, - -0.997912922638376610f, - 0.064382630929857410f, -0.997925286198596000f, 0.064191279970350679f, - -0.997937613067955250f, - 0.063999926650714078f, -0.997949903246001190f, 0.063808570977982898f, - -0.997962156732281950f, - 0.063617212959193190f, -0.997974373526346990f, 0.063425852601380200f, - -0.997986553627747020f, - 0.063234489911580136f, -0.997998697036034390f, 0.063043124896828631f, - -0.998010803750762450f, - 0.062851757564161420f, -0.998022873771486240f, 0.062660387920614985f, - -0.998034907097761770f, - 0.062469015973224969f, -0.998046903729146840f, 0.062277641729028041f, - -0.998058863665200250f, - 0.062086265195060247f, -0.998070786905482340f, 0.061894886378357744f, - -0.998082673449554590f, - 0.061703505285957416f, -0.998094523296980010f, 0.061512121924895365f, - -0.998106336447323050f, - 0.061320736302208648f, -0.998118112900149180f, 0.061129348424933755f, - -0.998129852655025520f, - 0.060937958300107238f, -0.998141555711520520f, 0.060746565934766412f, - -0.998153222069203650f, - 0.060555171335947781f, -0.998164851727646240f, 0.060363774510688827f, - -0.998176444686420530f, - 0.060172375466026218f, -0.998188000945100300f, 0.059980974208997596f, - -0.998199520503260660f, - 0.059789570746640007f, -0.998211003360478190f, 0.059598165085990598f, - -0.998222449516330550f, - 0.059406757234087247f, -0.998233858970396850f, 0.059215347197967026f, - -0.998245231722257880f, - 0.059023934984667986f, -0.998256567771495180f, 0.058832520601227581f, - -0.998267867117692110f, - 0.058641104054683348f, -0.998279129760433200f, 0.058449685352073573f, - -0.998290355699304350f, - 0.058258264500435732f, -0.998301544933892890f, 0.058066841506808263f, - -0.998312697463787260f, - 0.057875416378229017f, -0.998323813288577560f, 0.057683989121735932f, - -0.998334892407855000f, - 0.057492559744367684f, -0.998345934821212370f, 0.057301128253162144f, - -0.998356940528243420f, - 0.057109694655158132f, -0.998367909528543820f, 0.056918258957393907f, - -0.998378841821709990f, - 0.056726821166907783f, -0.998389737407340160f, 0.056535381290738825f, - -0.998400596285033640f, - 0.056343939335925283f, -0.998411418454391300f, 0.056152495309506383f, - -0.998422203915015020f, - 0.055961049218520520f, -0.998432952666508440f, 0.055769601070007072f, - -0.998443664708476340f, - 0.055578150871004817f, -0.998454340040524800f, 0.055386698628552604f, - -0.998464978662261250f, - 0.055195244349690031f, -0.998475580573294770f, 0.055003788041455885f, - -0.998486145773235360f, - 0.054812329710889909f, -0.998496674261694640f, 0.054620869365031251f, - -0.998507166038285490f, - 0.054429407010919147f, -0.998517621102622210f, 0.054237942655593556f, - -0.998528039454320230f, - 0.054046476306093640f, -0.998538421092996730f, 0.053855007969459509f, - -0.998548766018269920f, - 0.053663537652730679f, -0.998559074229759310f, 0.053472065362946755f, - -0.998569345727086110f, - 0.053280591107148056f, -0.998579580509872500f, 0.053089114892374119f, - -0.998589778577742230f, - 0.052897636725665401f, -0.998599939930320370f, 0.052706156614061798f, - -0.998610064567233340f, - 0.052514674564603257f, -0.998620152488108870f, 0.052323190584330471f, - -0.998630203692576050f, - 0.052131704680283317f, -0.998640218180265270f, 0.051940216859502626f, - -0.998650195950808280f, - 0.051748727129028414f, -0.998660137003838490f, 0.051557235495901653f, - -0.998670041338990070f, - 0.051365741967162731f, -0.998679908955899090f, 0.051174246549852087f, - -0.998689739854202620f, - 0.050982749251010900f, -0.998699534033539280f, 0.050791250077679546f, - -0.998709291493549030f, - 0.050599749036899337f, -0.998719012233872940f, 0.050408246135710995f, - -0.998728696254153720f, - 0.050216741381155325f, -0.998738343554035230f, 0.050025234780273840f, - -0.998747954133162860f, - 0.049833726340107257f, -0.998757527991183340f, 0.049642216067697226f, - -0.998767065127744380f, - 0.049450703970084824f, -0.998776565542495610f, 0.049259190054311168f, - -0.998786029235087640f, - 0.049067674327418126f, -0.998795456205172410f, 0.048876156796446746f, - -0.998804846452403420f, - 0.048684637468439020f, -0.998814199976435390f, 0.048493116350436342f, - -0.998823516776924380f, - 0.048301593449480172f, -0.998832796853527990f, 0.048110068772612716f, - -0.998842040205904840f, - 0.047918542326875327f, -0.998851246833715180f, 0.047727014119310344f, - -0.998860416736620520f, - 0.047535484156959261f, -0.998869549914283560f, 0.047343952446864526f, - -0.998878646366368690f, - 0.047152418996068000f, -0.998887706092541290f, 0.046960883811611599f, - -0.998896729092468410f, - 0.046769346900537960f, -0.998905715365818290f, 0.046577808269888908f, - -0.998914664912260440f, - 0.046386267926707213f, -0.998923577731465780f, 0.046194725878035046f, - -0.998932453823106690f, - 0.046003182130914644f, -0.998941293186856870f, 0.045811636692388955f, - -0.998950095822391250f, - 0.045620089569500123f, -0.998958861729386080f, 0.045428540769291224f, - -0.998967590907519300f, - 0.045236990298804750f, -0.998976283356469820f, 0.045045438165083225f, - -0.998984939075918010f, - 0.044853884375169933f, -0.998993558065545680f, 0.044662328936107311f, - -0.999002140325035980f, - 0.044470771854938744f, -0.999010685854073380f, 0.044279213138707016f, - -0.999019194652343460f, - 0.044087652794454979f, -0.999027666719533690f, 0.043896090829226200f, - -0.999036102055332330f, - 0.043704527250063421f, -0.999044500659429290f, 0.043512962064010327f, - -0.999052862531515930f, - 0.043321395278109784f, -0.999061187671284600f, 0.043129826899405595f, - -0.999069476078429330f, - 0.042938256934940959f, -0.999077727752645360f, 0.042746685391759139f, - -0.999085942693629270f, - 0.042555112276904117f, -0.999094120901079070f, 0.042363537597419038f, - -0.999102262374694130f, - 0.042171961360348002f, -0.999110367114174890f, 0.041980383572734502f, - -0.999118435119223490f, - 0.041788804241622082f, -0.999126466389543390f, 0.041597223374055005f, - -0.999134460924839150f, - 0.041405640977076712f, -0.999142418724816910f, 0.041214057057731589f, - -0.999150339789184110f, - 0.041022471623063397f, -0.999158224117649430f, 0.040830884680115968f, - -0.999166071709923000f, - 0.040639296235933854f, -0.999173882565716380f, 0.040447706297560768f, - -0.999181656684742350f, - 0.040256114872041358f, -0.999189394066714920f, 0.040064521966419686f, - -0.999197094711349880f, - 0.039872927587739845f, -0.999204758618363890f, 0.039681331743046659f, - -0.999212385787475290f, - 0.039489734439384118f, -0.999219976218403530f, 0.039298135683797149f, - -0.999227529910869610f, - 0.039106535483329839f, -0.999235046864595850f, 0.038914933845027241f, - -0.999242527079305830f, - 0.038723330775933762f, -0.999249970554724420f, 0.038531726283093877f, - -0.999257377290578060f, - 0.038340120373552791f, -0.999264747286594420f, 0.038148513054354856f, - -0.999272080542502610f, - 0.037956904332545366f, -0.999279377058032710f, 0.037765294215169005f, - -0.999286636832916740f, - 0.037573682709270514f, -0.999293859866887790f, 0.037382069821895340f, - -0.999301046159680070f, - 0.037190455560088091f, -0.999308195711029470f, 0.036998839930894332f, - -0.999315308520673070f, - 0.036807222941358991f, -0.999322384588349540f, 0.036615604598527057f, - -0.999329423913798420f, - 0.036423984909444228f, -0.999336426496761240f, 0.036232363881155374f, - -0.999343392336980220f, - 0.036040741520706299f, -0.999350321434199440f, 0.035849117835142184f, - -0.999357213788164000f, - 0.035657492831508264f, -0.999364069398620550f, 0.035465866516850478f, - -0.999370888265317060f, - 0.035274238898213947f, -0.999377670388002850f, 0.035082609982644702f, - -0.999384415766428560f, - 0.034890979777187955f, -0.999391124400346050f, 0.034699348288889847f, - -0.999397796289508640f, - 0.034507715524795889f, -0.999404431433671300f, 0.034316081491951658f, - -0.999411029832589780f, - 0.034124446197403423f, -0.999417591486021720f, 0.033932809648196623f, - -0.999424116393725640f, - 0.033741171851377642f, -0.999430604555461730f, 0.033549532813992221f, - -0.999437055970991530f, - 0.033357892543086159f, -0.999443470640077770f, 0.033166251045705968f, - -0.999449848562484530f, - 0.032974608328897315f, -0.999456189737977340f, 0.032782964399706793f, - -0.999462494166323160f, - 0.032591319265180385f, -0.999468761847290050f, 0.032399672932364114f, - -0.999474992780647780f, - 0.032208025408304704f, -0.999481186966166950f, 0.032016376700048046f, - -0.999487344403620080f, - 0.031824726814640963f, -0.999493465092780590f, 0.031633075759129645f, - -0.999499549033423640f, - 0.031441423540560343f, -0.999505596225325310f, 0.031249770165979990f, - -0.999511606668263440f, - 0.031058115642434700f, -0.999517580362016990f, 0.030866459976971503f, - -0.999523517306366350f, - 0.030674803176636581f, -0.999529417501093140f, 0.030483145248477058f, - -0.999535280945980540f, - 0.030291486199539423f, -0.999541107640812940f, 0.030099826036870208f, - -0.999546897585375960f, - 0.029908164767516655f, -0.999552650779456990f, 0.029716502398525156f, - -0.999558367222844300f, - 0.029524838936943035f, -0.999564046915327740f, 0.029333174389816984f, - -0.999569689856698580f, - 0.029141508764193740f, -0.999575296046749220f, 0.028949842067120746f, - -0.999580865485273700f, - 0.028758174305644590f, -0.999586398172067070f, 0.028566505486812797f, - -0.999591894106925950f, - 0.028374835617672258f, -0.999597353289648380f, 0.028183164705269902f, - -0.999602775720033530f, - 0.027991492756653365f, -0.999608161397882110f, 0.027799819778869434f, - -0.999613510322995950f, - 0.027608145778965820f, -0.999618822495178640f, 0.027416470763989606f, - -0.999624097914234570f, - 0.027224794740987910f, -0.999629336579970110f, 0.027033117717008563f, - -0.999634538492192300f, - 0.026841439699098527f, -0.999639703650710200f, 0.026649760694305708f, - -0.999644832055333610f, - 0.026458080709677145f, -0.999649923705874240f, 0.026266399752260809f, - -0.999654978602144690f, - 0.026074717829104040f, -0.999659996743959220f, 0.025883034947254208f, - -0.999664978131133310f, - 0.025691351113759395f, -0.999669922763483760f, 0.025499666335666818f, - -0.999674830640828740f, - 0.025307980620024630f, -0.999679701762987930f, 0.025116293973880335f, - -0.999684536129782140f, - 0.024924606404281485f, -0.999689333741033640f, 0.024732917918276334f, - -0.999694094596566000f, - 0.024541228522912264f, -0.999698818696204250f, 0.024349538225237600f, - -0.999703506039774650f, - 0.024157847032300020f, -0.999708156627104880f, 0.023966154951147241f, - -0.999712770458023870f, - 0.023774461988827676f, -0.999717347532362190f, 0.023582768152388880f, - -0.999721887849951310f, - 0.023391073448879338f, -0.999726391410624470f, 0.023199377885346890f, - -0.999730858214216030f, - 0.023007681468839410f, -0.999735288260561680f, 0.022815984206405477f, - -0.999739681549498660f, - 0.022624286105092803f, -0.999744038080865430f, 0.022432587171950024f, - -0.999748357854501780f, - 0.022240887414024919f, -0.999752640870248840f, 0.022049186838366180f, - -0.999756887127949080f, - 0.021857485452021874f, -0.999761096627446610f, 0.021665783262040089f, - -0.999765269368586450f, - 0.021474080275469605f, -0.999769405351215280f, 0.021282376499358355f, - -0.999773504575180990f, - 0.021090671940755180f, -0.999777567040332940f, 0.020898966606708289f, - -0.999781592746521670f, - 0.020707260504265912f, -0.999785581693599210f, 0.020515553640476986f, - -0.999789533881418780f, - 0.020323846022389572f, -0.999793449309835270f, 0.020132137657052664f, - -0.999797327978704690f, - 0.019940428551514598f, -0.999801169887884260f, 0.019748718712823757f, - -0.999804975037232870f, - 0.019557008148029204f, -0.999808743426610520f, 0.019365296864179146f, - -0.999812475055878780f, - 0.019173584868322699f, -0.999816169924900410f, 0.018981872167508348f, - -0.999819828033539420f, - 0.018790158768784596f, -0.999823449381661570f, 0.018598444679200642f, - -0.999827033969133420f, - 0.018406729905804820f, -0.999830581795823400f, 0.018215014455646376f, - -0.999834092861600960f, - 0.018023298335773701f, -0.999837567166337090f, 0.017831581553236088f, - -0.999841004709904000f, - 0.017639864115082195f, -0.999844405492175240f, 0.017448146028360704f, - -0.999847769513025900f, - 0.017256427300120978f, -0.999851096772332190f, 0.017064707937411529f, - -0.999854387269971890f, - 0.016872987947281773f, -0.999857641005823860f, 0.016681267336780482f, - -0.999860857979768540f, - 0.016489546112956454f, -0.999864038191687680f, 0.016297824282859176f, - -0.999867181641464380f, - 0.016106101853537263f, -0.999870288328982950f, 0.015914378832040249f, - -0.999873358254129260f, - 0.015722655225417017f, -0.999876391416790410f, 0.015530931040716478f, - -0.999879387816854930f, - 0.015339206284988220f, -0.999882347454212560f, 0.015147480965280975f, - -0.999885270328754520f, - 0.014955755088644378f, -0.999888156440373320f, 0.014764028662127416f, - -0.999891005788962950f, - 0.014572301692779104f, -0.999893818374418490f, 0.014380574187649138f, - -0.999896594196636680f, - 0.014188846153786343f, -0.999899333255515390f, 0.013997117598240459f, - -0.999902035550953920f, - 0.013805388528060349f, -0.999904701082852900f, 0.013613658950295789f, - -0.999907329851114300f, - 0.013421928871995907f, -0.999909921855641540f, 0.013230198300209845f, - -0.999912477096339240f, - 0.013038467241987433f, -0.999914995573113470f, 0.012846735704377631f, - -0.999917477285871770f, - 0.012655003694430301f, -0.999919922234522750f, 0.012463271219194662f, - -0.999922330418976490f, - 0.012271538285719944f, -0.999924701839144500f, 0.012079804901056066f, - -0.999927036494939640f, - 0.011888071072252072f, -0.999929334386276070f, 0.011696336806357907f, - -0.999931595513069200f, - 0.011504602110422875f, -0.999933819875236000f, 0.011312866991496287f, - -0.999936007472694620f, - 0.011121131456628141f, -0.999938158305364590f, 0.010929395512867561f, - -0.999940272373166960f, - 0.010737659167264572f, -0.999942349676023910f, 0.010545922426868548f, - -0.999944390213859060f, - 0.010354185298728884f, -0.999946393986597460f, 0.010162447789895645f, - -0.999948360994165400f, - 0.009970709907418029f, -0.999950291236490480f, 0.009778971658346134f, - -0.999952184713501780f, - 0.009587233049729183f, -0.999954041425129780f, 0.009395494088617302f, - -0.999955861371306100f, - 0.009203754782059960f, -0.999957644551963900f, 0.009012015137106642f, - -0.999959390967037450f, - 0.008820275160807512f, -0.999961100616462820f, 0.008628534860211857f, - -0.999962773500176930f, - 0.008436794242369860f, -0.999964409618118280f, 0.008245053314331058f, - -0.999966008970226920f, - 0.008053312083144991f, -0.999967571556443780f, 0.007861570555861883f, - -0.999969097376711580f, - 0.007669828739531077f, -0.999970586430974140f, 0.007478086641202815f, - -0.999972038719176730f, - 0.007286344267926684f, -0.999973454241265940f, 0.007094601626752279f, - -0.999974832997189810f, - 0.006902858724729877f, -0.999976174986897610f, 0.006711115568908869f, - -0.999977480210339940f, - 0.006519372166339549f, -0.999978748667468830f, 0.006327628524071549f, - -0.999979980358237650f, - 0.006135884649154515f, -0.999981175282601110f, 0.005944140548638765f, - -0.999982333440515350f, - 0.005752396229573737f, -0.999983454831937730f, 0.005560651699009764f, - -0.999984539456826970f, - 0.005368906963996303f, -0.999985587315143200f, 0.005177162031583702f, - -0.999986598406848000f, - 0.004985416908821652f, -0.999987572731904080f, 0.004793671602759852f, - -0.999988510290275690f, - 0.004601926120448672f, -0.999989411081928400f, 0.004410180468937601f, - -0.999990275106828920f, - 0.004218434655277024f, -0.999991102364945590f, 0.004026688686516664f, - -0.999991892856248010f, - 0.003834942569706248f, -0.999992646580707190f, 0.003643196311896179f, - -0.999993363538295150f, - 0.003451449920135975f, -0.999994043728985820f, 0.003259703401476044f, - -0.999994687152754080f, - 0.003067956762966138f, -0.999995293809576190f, 0.002876210011656010f, - -0.999995863699429940f, - 0.002684463154596083f, -0.999996396822294350f, 0.002492716198835898f, - -0.999996893178149880f, - 0.002300969151425887f, -0.999997352766978210f, 0.002109222019415816f, - -0.999997775588762350f, - 0.001917474809855460f, -0.999998161643486980f, 0.001725727529795258f, - -0.999998510931137790f, - 0.001533980186284766f, -0.999998823451701880f, 0.001342232786374430f, - -0.999999099205167830f, - 0.001150485337113809f, -0.999999338191525530f, 0.000958737845553352f, - -0.999999540410766110f, - 0.000766990318742846f, -0.999999705862882230f, 0.000575242763732077f, - -0.999999834547867670f, - 0.000383495187571497f, -0.999999926465717890f, 0.000191747597310674f, - -0.999999981616429330f -}; - -/** -* \par -* cosFactor tables are generated using the formula :
cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))
-* \par -* C command to generate the table -* \par -*
 for(i = 0; i< N; i++)
-* {
-*    cos_factors[i]= 2 * cos((2*i+1)*c/2);
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -*/ -static const float32_t cos_factors_128[128] = { - 0.999981175282601110f, 0.999830581795823400f, 0.999529417501093140f, - 0.999077727752645360f, - 0.998475580573294770f, 0.997723066644191640f, 0.996820299291165670f, - 0.995767414467659820f, - 0.994564570734255420f, 0.993211949234794500f, 0.991709753669099530f, - 0.990058210262297120f, - 0.988257567730749460f, 0.986308097244598670f, 0.984210092386929030f, - 0.981963869109555240f, - 0.979569765685440520f, 0.977028142657754390f, 0.974339382785575860f, - 0.971503890986251780f, - 0.968522094274417380f, 0.965394441697689400f, 0.962121404269041580f, - 0.958703474895871600f, - 0.955141168305770780f, 0.951435020969008340f, 0.947585591017741090f, - 0.943593458161960390f, - 0.939459223602189920f, 0.935183509938947610f, 0.930766961078983710f, - 0.926210242138311380f, - 0.921514039342042010f, 0.916679059921042700f, 0.911706032005429880f, - 0.906595704514915330f, - 0.901348847046022030f, 0.895966249756185220f, 0.890448723244757880f, - 0.884797098430937790f, - 0.879012226428633530f, 0.873094978418290090f, 0.867046245515692650f, - 0.860866938637767310f, - 0.854557988365400530f, 0.848120344803297230f, 0.841554977436898440f, - 0.834862874986380010f, - 0.828045045257755800f, 0.821102514991104650f, 0.814036329705948410f, - 0.806847553543799330f, - 0.799537269107905010f, 0.792106577300212390f, 0.784556597155575240f, - 0.776888465673232440f, - 0.769103337645579700f, 0.761202385484261780f, 0.753186799043612520f, - 0.745057785441466060f, - 0.736816568877369900f, 0.728464390448225200f, 0.720002507961381650f, - 0.711432195745216430f, - 0.702754744457225300f, 0.693971460889654000f, 0.685083667772700360f, - 0.676092703575316030f, - 0.666999922303637470f, 0.657806693297078640f, 0.648514401022112550f, - 0.639124444863775730f, - 0.629638238914927100f, 0.620057211763289210f, 0.610382806276309480f, - 0.600616479383868970f, - 0.590759701858874280f, 0.580813958095764530f, 0.570780745886967370f, - 0.560661576197336030f, - 0.550457972936604810f, 0.540171472729892970f, 0.529803624686294830f, - 0.519355990165589530f, - 0.508830142543106990f, 0.498227666972781870f, 0.487550160148436050f, - 0.476799230063322250f, - 0.465976495767966130f, 0.455083587126343840f, 0.444122144570429260f, - 0.433093818853152010f, - 0.422000270799799790f, 0.410843171057903910f, 0.399624199845646790f, - 0.388345046698826300f, - 0.377007410216418310f, 0.365612997804773960f, 0.354163525420490510f, - 0.342660717311994380f, - 0.331106305759876430f, 0.319502030816015750f, 0.307849640041534980f, - 0.296150888243623960f, - 0.284407537211271820f, 0.272621355449948980f, 0.260794117915275570f, - 0.248927605745720260f, - 0.237023605994367340f, 0.225083911359792780f, 0.213110319916091360f, - 0.201104634842091960f, - 0.189068664149806280f, 0.177004220412148860f, 0.164913120489970090f, - 0.152797185258443410f, - 0.140658239332849240f, 0.128498110793793220f, 0.116318630911904880f, - 0.104121633872054730f, - 0.091908956497132696f, 0.079682437971430126f, 0.067443919563664106f, - 0.055195244349690031f, - 0.042938256934940959f, 0.030674803176636581f, 0.018406729905804820f, - 0.006135884649154515f -}; - -static const float32_t cos_factors_512[512] = { - 0.999998823451701880f, 0.999989411081928400f, 0.999970586430974140f, - 0.999942349676023910f, - 0.999904701082852900f, 0.999857641005823860f, 0.999801169887884260f, - 0.999735288260561680f, - 0.999659996743959220f, 0.999575296046749220f, 0.999481186966166950f, - 0.999377670388002850f, - 0.999264747286594420f, 0.999142418724816910f, 0.999010685854073380f, - 0.998869549914283560f, - 0.998719012233872940f, 0.998559074229759310f, 0.998389737407340160f, - 0.998211003360478190f, - 0.998022873771486240f, 0.997825350411111640f, 0.997618435138519550f, - 0.997402129901275300f, - 0.997176436735326190f, 0.996941357764982160f, 0.996696895202896060f, - 0.996443051350042630f, - 0.996179828595696980f, 0.995907229417411720f, 0.995625256380994310f, - 0.995333912140482280f, - 0.995033199438118630f, 0.994723121104325700f, 0.994403680057679100f, - 0.994074879304879370f, - 0.993736721940724600f, 0.993389211148080650f, 0.993032350197851410f, - 0.992666142448948020f, - 0.992290591348257370f, 0.991905700430609330f, 0.991511473318743900f, - 0.991107913723276890f, - 0.990695025442664630f, 0.990272812363169110f, 0.989841278458820530f, - 0.989400427791380380f, - 0.988950264510302990f, 0.988490792852696590f, 0.988022017143283530f, - 0.987543941794359230f, - 0.987056571305750970f, 0.986559910264775410f, 0.986053963346195440f, - 0.985538735312176060f, - 0.985014231012239840f, 0.984480455383220930f, 0.983937413449218920f, - 0.983385110321551180f, - 0.982823551198705240f, 0.982252741366289370f, 0.981672686196983110f, - 0.981083391150486710f, - 0.980484861773469380f, 0.979877103699517640f, 0.979260122649082020f, - 0.978633924429423210f, - 0.977998514934557140f, 0.977353900145199960f, 0.976700086128711840f, - 0.976037079039039020f, - 0.975364885116656980f, 0.974683510688510670f, 0.973992962167955830f, - 0.973293246054698250f, - 0.972584368934732210f, 0.971866337480279400f, 0.971139158449725090f, - 0.970402838687555500f, - 0.969657385124292450f, 0.968902804776428870f, 0.968139104746362440f, - 0.967366292222328510f, - 0.966584374478333120f, 0.965793358874083680f, 0.964993252854920320f, - 0.964184063951745830f, - 0.963365799780954050f, 0.962538468044359160f, 0.961702076529122540f, - 0.960856633107679660f, - 0.960002145737665960f, 0.959138622461841890f, 0.958266071408017670f, - 0.957384500788975860f, - 0.956493918902395100f, 0.955594334130771110f, 0.954685754941338340f, - 0.953768189885990330f, - 0.952841647601198720f, 0.951906136807932350f, 0.950961666311575080f, - 0.950008245001843000f, - 0.949045881852700560f, 0.948074585922276230f, 0.947094366352777220f, - 0.946105232370403450f, - 0.945107193285260610f, 0.944100258491272660f, 0.943084437466093490f, - 0.942059739771017310f, - 0.941026175050889260f, 0.939983753034014050f, 0.938932483532064600f, - 0.937872376439989890f, - 0.936803441735921560f, 0.935725689481080370f, 0.934639129819680780f, - 0.933543772978836170f, - 0.932439629268462360f, 0.931326709081180430f, 0.930205022892219070f, - 0.929074581259315860f, - 0.927935394822617890f, 0.926787474304581750f, 0.925630830509872720f, - 0.924465474325262600f, - 0.923291416719527640f, 0.922108668743345180f, 0.920917241529189520f, - 0.919717146291227360f, - 0.918508394325212250f, 0.917290997008377910f, 0.916064965799331720f, - 0.914830312237946200f, - 0.913587047945250810f, 0.912335184623322750f, 0.911074734055176360f, - 0.909805708104652220f, - 0.908528118716306120f, 0.907241977915295820f, 0.905947297807268460f, - 0.904644090578246240f, - 0.903332368494511820f, 0.902012143902493180f, 0.900683429228646970f, - 0.899346236979341570f, - 0.898000579740739880f, 0.896646470178680150f, 0.895283921038557580f, - 0.893912945145203250f, - 0.892533555402764580f, 0.891145764794583180f, 0.889749586383072780f, - 0.888345033309596350f, - 0.886932118794342190f, 0.885510856136199950f, 0.884081258712634990f, - 0.882643339979562790f, - 0.881197113471222090f, 0.879742592800047410f, 0.878279791656541580f, - 0.876808723809145650f, - 0.875329403104110890f, 0.873841843465366860f, 0.872346058894391540f, - 0.870842063470078980f, - 0.869329871348606840f, 0.867809496763303320f, 0.866280954024512990f, - 0.864744257519462380f, - 0.863199421712124160f, 0.861646461143081300f, 0.860085390429390140f, - 0.858516224264442740f, - 0.856938977417828760f, 0.855353664735196030f, 0.853760301138111410f, - 0.852158901623919830f, - 0.850549481265603480f, 0.848932055211639610f, 0.847306638685858320f, - 0.845673246987299070f, - 0.844031895490066410f, 0.842382599643185850f, 0.840725374970458070f, - 0.839060237070312740f, - 0.837387201615661940f, 0.835706284353752600f, 0.834017501106018130f, - 0.832320867767929680f, - 0.830616400308846310f, 0.828904114771864870f, 0.827184027273669130f, - 0.825456154004377550f, - 0.823720511227391430f, 0.821977115279241550f, 0.820225982569434690f, - 0.818467129580298660f, - 0.816700572866827850f, 0.814926329056526620f, 0.813144414849253590f, - 0.811354847017063730f, - 0.809557642404051260f, 0.807752817926190360f, 0.805940390571176280f, - 0.804120377398265810f, - 0.802292795538115720f, 0.800457662192622820f, 0.798614994634760820f, - 0.796764810208418830f, - 0.794907126328237010f, 0.793041960479443640f, 0.791169330217690200f, - 0.789289253168885650f, - 0.787401747029031430f, 0.785506829564053930f, 0.783604518609638200f, - 0.781694832071059390f, - 0.779777787923014550f, 0.777853404209453150f, 0.775921699043407690f, - 0.773982690606822900f, - 0.772036397150384520f, 0.770082836993347900f, 0.768122028523365420f, - 0.766153990196312920f, - 0.764178740536116670f, 0.762196298134578900f, 0.760206681651202420f, - 0.758209909813015280f, - 0.756206001414394540f, 0.754194975316889170f, 0.752176850449042810f, - 0.750151645806215070f, - 0.748119380450403600f, 0.746080073510063780f, 0.744033744179929290f, - 0.741980411720831070f, - 0.739920095459516200f, 0.737852814788465980f, 0.735778589165713590f, - 0.733697438114660370f, - 0.731609381223892630f, 0.729514438146997010f, 0.727412628602375770f, - 0.725303972373060770f, - 0.723188489306527460f, 0.721066199314508110f, 0.718937122372804490f, - 0.716801278521099540f, - 0.714658687862769090f, 0.712509370564692320f, 0.710353346857062420f, - 0.708190637033195400f, - 0.706021261449339740f, 0.703845240524484940f, 0.701662594740168570f, - 0.699473344640283770f, - 0.697277510830886630f, 0.695075113980000880f, 0.692866174817424740f, - 0.690650714134534720f, - 0.688428752784090550f, 0.686200311680038700f, 0.683965411797315510f, - 0.681724074171649820f, - 0.679476319899365080f, 0.677222170137180450f, 0.674961646102012040f, - 0.672694769070772970f, - 0.670421560380173090f, 0.668142041426518560f, 0.665856233665509720f, - 0.663564158612039880f, - 0.661265837839992270f, 0.658961292982037320f, 0.656650545729429050f, - 0.654333617831800550f, - 0.652010531096959500f, 0.649681307390683190f, 0.647345968636512060f, - 0.645004536815544040f, - 0.642657033966226860f, 0.640303482184151670f, 0.637943903621844170f, - 0.635578320488556230f, - 0.633206755050057190f, 0.630829229628424470f, 0.628445766601832710f, - 0.626056388404343520f, - 0.623661117525694640f, 0.621259976511087660f, 0.618852987960976320f, - 0.616440174530853650f, - 0.614021558931038490f, 0.611597163926462020f, 0.609167012336453210f, - 0.606731127034524480f, - 0.604289530948156070f, 0.601842247058580030f, 0.599389298400564540f, - 0.596930708062196500f, - 0.594466499184664540f, 0.591996694962040990f, 0.589521318641063940f, - 0.587040393520918080f, - 0.584553942953015330f, 0.582061990340775550f, 0.579564559139405740f, - 0.577061672855679550f, - 0.574553355047715760f, 0.572039629324757050f, 0.569520519346947250f, - 0.566996048825108680f, - 0.564466241520519500f, 0.561931121244689470f, 0.559390711859136140f, - 0.556845037275160100f, - 0.554294121453620110f, 0.551737988404707450f, 0.549176662187719770f, - 0.546610166910834860f, - 0.544038526730883930f, 0.541461765853123560f, 0.538879908531008420f, - 0.536292979065963180f, - 0.533701001807152960f, 0.531104001151255000f, 0.528502001542228480f, - 0.525895027471084740f, - 0.523283103475656430f, 0.520666254140367270f, 0.518044504095999340f, - 0.515417878019463150f, - 0.512786400633563070f, 0.510150096706766700f, 0.507508991052970870f, - 0.504863108531267480f, - 0.502212474045710900f, 0.499557112545081890f, 0.496897049022654640f, - 0.494232308515959730f, - 0.491562916106550060f, 0.488888896919763230f, 0.486210276124486530f, - 0.483527078932918740f, - 0.480839330600333900f, 0.478147056424843120f, 0.475450281747155870f, - 0.472749031950342900f, - 0.470043332459595620f, 0.467333208741988530f, 0.464618686306237820f, - 0.461899790702462840f, - 0.459176547521944150f, 0.456448982396883860f, 0.453717121000163930f, - 0.450980989045103810f, - 0.448240612285220000f, 0.445496016513981740f, 0.442747227564570130f, - 0.439994271309633260f, - 0.437237173661044200f, 0.434475960569655710f, 0.431710658025057370f, - 0.428941292055329550f, - 0.426167888726799620f, 0.423390474143796100f, 0.420609074448402510f, - 0.417823715820212380f, - 0.415034424476081630f, 0.412241226669883000f, 0.409444148692257590f, - 0.406643216870369140f, - 0.403838457567654130f, 0.401029897183575790f, 0.398217562153373620f, - 0.395401478947816300f, - 0.392581674072951530f, 0.389758174069856410f, 0.386931005514388690f, - 0.384100195016935040f, - 0.381265769222162490f, 0.378427754808765620f, 0.375586178489217330f, - 0.372741067009515810f, - 0.369892447148934270f, 0.367040345719767240f, 0.364184789567079840f, - 0.361325805568454340f, - 0.358463420633736540f, 0.355597661704783960f, 0.352728555755210730f, - 0.349856129790135030f, - 0.346980410845923680f, 0.344101425989938980f, 0.341219202320282410f, - 0.338333766965541290f, - 0.335445147084531660f, 0.332553369866044220f, 0.329658462528587550f, - 0.326760452320131790f, - 0.323859366517852960f, 0.320955232427875210f, 0.318048077385015060f, - 0.315137928752522440f, - 0.312224813921825050f, 0.309308760312268780f, 0.306389795370861080f, - 0.303467946572011370f, - 0.300543241417273400f, 0.297615707435086310f, 0.294685372180514330f, - 0.291752263234989370f, - 0.288816408206049480f, 0.285877834727080730f, 0.282936570457055390f, - 0.279992643080273380f, - 0.277046080306099950f, 0.274096909868706330f, 0.271145159526808070f, - 0.268190857063403180f, - 0.265234030285511900f, 0.262274707023913590f, 0.259312915132886350f, - 0.256348682489942910f, - 0.253382036995570270f, 0.250413006572965280f, 0.247441619167773440f, - 0.244467902747824210f, - 0.241491885302869300f, 0.238513594844318500f, 0.235533059404975460f, - 0.232550307038775330f, - 0.229565365820518870f, 0.226578263845610110f, 0.223589029229790020f, - 0.220597690108873650f, - 0.217604274638483670f, 0.214608810993786920f, 0.211611327369227610f, - 0.208611851978263460f, - 0.205610413053099320f, 0.202607038844421110f, 0.199601757621131050f, - 0.196594597670080220f, - 0.193585587295803750f, 0.190574754820252800f, 0.187562128582529740f, - 0.184547736938619640f, - 0.181531608261125130f, 0.178513770938997590f, 0.175494253377271400f, - 0.172473083996796030f, - 0.169450291233967930f, 0.166425903540464220f, 0.163399949382973230f, - 0.160372457242928400f, - 0.157343455616238280f, 0.154312973013020240f, 0.151281037957330250f, - 0.148247678986896200f, - 0.145212924652847520f, 0.142176803519448000f, 0.139139344163826280f, - 0.136100575175706200f, - 0.133060525157139180f, 0.130019222722233350f, 0.126976696496885980f, - 0.123932975118512200f, - 0.120888087235777220f, 0.117842061508325020f, 0.114794926606510250f, - 0.111746711211126660f, - 0.108697444013138670f, 0.105647153713410700f, 0.102595869022436280f, - 0.099543618660069444f, - 0.096490431355252607f, 0.093436335845747912f, 0.090381360877865011f, - 0.087325535206192226f, - 0.084268887593324127f, 0.081211446809592386f, 0.078153241632794315f, - 0.075094300847921291f, - 0.072034653246889416f, 0.068974327628266732f, 0.065913352797003930f, - 0.062851757564161420f, - 0.059789570746640007f, 0.056726821166907783f, 0.053663537652730679f, - 0.050599749036899337f, - 0.047535484156959261f, 0.044470771854938744f, 0.041405640977076712f, - 0.038340120373552791f, - 0.035274238898213947f, 0.032208025408304704f, 0.029141508764193740f, - 0.026074717829104040f, - 0.023007681468839410f, 0.019940428551514598f, 0.016872987947281773f, - 0.013805388528060349f, - 0.010737659167264572f, 0.007669828739531077f, 0.004601926120448672f, - 0.001533980186284766f -}; - -static const float32_t cos_factors_2048[2048] = { - 0.999999926465717890f, 0.999999338191525530f, 0.999998161643486980f, - 0.999996396822294350f, - 0.999994043728985820f, 0.999991102364945590f, 0.999987572731904080f, - 0.999983454831937730f, - 0.999978748667468830f, 0.999973454241265940f, 0.999967571556443780f, - 0.999961100616462820f, - 0.999954041425129780f, 0.999946393986597460f, 0.999938158305364590f, - 0.999929334386276070f, - 0.999919922234522750f, 0.999909921855641540f, 0.999899333255515390f, - 0.999888156440373320f, - 0.999876391416790410f, 0.999864038191687680f, 0.999851096772332190f, - 0.999837567166337090f, - 0.999823449381661570f, 0.999808743426610520f, 0.999793449309835270f, - 0.999777567040332940f, - 0.999761096627446610f, 0.999744038080865430f, 0.999726391410624470f, - 0.999708156627104880f, - 0.999689333741033640f, 0.999669922763483760f, 0.999649923705874240f, - 0.999629336579970110f, - 0.999608161397882110f, 0.999586398172067070f, 0.999564046915327740f, - 0.999541107640812940f, - 0.999517580362016990f, 0.999493465092780590f, 0.999468761847290050f, - 0.999443470640077770f, - 0.999417591486021720f, 0.999391124400346050f, 0.999364069398620550f, - 0.999336426496761240f, - 0.999308195711029470f, 0.999279377058032710f, 0.999249970554724420f, - 0.999219976218403530f, - 0.999189394066714920f, 0.999158224117649430f, 0.999126466389543390f, - 0.999094120901079070f, - 0.999061187671284600f, 0.999027666719533690f, 0.998993558065545680f, - 0.998958861729386080f, - 0.998923577731465780f, 0.998887706092541290f, 0.998851246833715180f, - 0.998814199976435390f, - 0.998776565542495610f, 0.998738343554035230f, 0.998699534033539280f, - 0.998660137003838490f, - 0.998620152488108870f, 0.998579580509872500f, 0.998538421092996730f, - 0.998496674261694640f, - 0.998454340040524800f, 0.998411418454391300f, 0.998367909528543820f, - 0.998323813288577560f, - 0.998279129760433200f, 0.998233858970396850f, 0.998188000945100300f, - 0.998141555711520520f, - 0.998094523296980010f, 0.998046903729146840f, 0.997998697036034390f, - 0.997949903246001190f, - 0.997900522387751620f, 0.997850554490335110f, 0.997799999583146470f, - 0.997748857695925690f, - 0.997697128858758500f, 0.997644813102075420f, 0.997591910456652630f, - 0.997538420953611340f, - 0.997484344624417930f, 0.997429681500884180f, 0.997374431615167150f, - 0.997318594999768600f, - 0.997262171687536170f, 0.997205161711661850f, 0.997147565105683480f, - 0.997089381903483400f, - 0.997030612139289450f, 0.996971255847674320f, 0.996911313063555740f, - 0.996850783822196610f, - 0.996789668159204560f, 0.996727966110532490f, 0.996665677712478160f, - 0.996602803001684130f, - 0.996539342015137940f, 0.996475294790172160f, 0.996410661364464100f, - 0.996345441776035900f, - 0.996279636063254650f, 0.996213244264832040f, 0.996146266419824620f, - 0.996078702567633980f, - 0.996010552748005870f, 0.995941817001031350f, 0.995872495367145730f, - 0.995802587887129160f, - 0.995732094602106430f, 0.995661015553546910f, 0.995589350783264600f, - 0.995517100333418110f, - 0.995444264246510340f, 0.995370842565388990f, 0.995296835333246090f, - 0.995222242593618360f, - 0.995147064390386470f, 0.995071300767776170f, 0.994994951770357020f, - 0.994918017443043200f, - 0.994840497831093180f, 0.994762392980109930f, 0.994683702936040250f, - 0.994604427745175660f, - 0.994524567454151740f, 0.994444122109948040f, 0.994363091759888570f, - 0.994281476451641550f, - 0.994199276233218910f, 0.994116491152977070f, 0.994033121259616400f, - 0.993949166602181130f, - 0.993864627230059750f, 0.993779503192984580f, 0.993693794541031790f, - 0.993607501324621610f, - 0.993520623594518090f, 0.993433161401829360f, 0.993345114798006910f, - 0.993256483834846440f, - 0.993167268564487230f, 0.993077469039412300f, 0.992987085312448390f, - 0.992896117436765980f, - 0.992804565465879140f, 0.992712429453645460f, 0.992619709454266140f, - 0.992526405522286100f, - 0.992432517712593660f, 0.992338046080420420f, 0.992242990681341700f, - 0.992147351571276090f, - 0.992051128806485720f, 0.991954322443575950f, 0.991856932539495470f, - 0.991758959151536110f, - 0.991660402337333210f, 0.991561262154865290f, 0.991461538662453790f, - 0.991361231918763460f, - 0.991260341982802440f, 0.991158868913921350f, 0.991056812771814340f, - 0.990954173616518500f, - 0.990850951508413620f, 0.990747146508222710f, 0.990642758677011570f, - 0.990537788076188750f, - 0.990432234767505970f, 0.990326098813057330f, 0.990219380275280000f, - 0.990112079216953770f, - 0.990004195701200910f, 0.989895729791486660f, 0.989786681551618640f, - 0.989677051045747210f, - 0.989566838338365120f, 0.989456043494307710f, 0.989344666578752640f, - 0.989232707657220050f, - 0.989120166795572690f, 0.989007044060015270f, 0.988893339517095130f, - 0.988779053233701520f, - 0.988664185277066230f, 0.988548735714763200f, 0.988432704614708340f, - 0.988316092045159690f, - 0.988198898074717610f, 0.988081122772324070f, 0.987962766207263420f, - 0.987843828449161740f, - 0.987724309567986960f, 0.987604209634049160f, 0.987483528717999710f, - 0.987362266890832400f, - 0.987240424223882250f, 0.987118000788826280f, 0.986994996657682980f, - 0.986871411902812470f, - 0.986747246596916590f, 0.986622500813038480f, 0.986497174624562880f, - 0.986371268105216030f, - 0.986244781329065460f, 0.986117714370520090f, 0.985990067304330140f, - 0.985861840205586980f, - 0.985733033149723490f, 0.985603646212513400f, 0.985473679470071810f, - 0.985343132998854790f, - 0.985212006875659350f, 0.985080301177623800f, 0.984948015982227030f, - 0.984815151367289140f, - 0.984681707410970940f, 0.984547684191773960f, 0.984413081788540700f, - 0.984277900280454370f, - 0.984142139747038570f, 0.984005800268157870f, 0.983868881924017220f, - 0.983731384795162090f, - 0.983593308962478650f, 0.983454654507193270f, 0.983315421510872810f, - 0.983175610055424420f, - 0.983035220223095640f, 0.982894252096474070f, 0.982752705758487830f, - 0.982610581292404750f, - 0.982467878781833170f, 0.982324598310721280f, 0.982180739963357090f, - 0.982036303824369020f, - 0.981891289978725100f, 0.981745698511732990f, 0.981599529509040720f, - 0.981452783056635520f, - 0.981305459240844670f, 0.981157558148334830f, 0.981009079866112630f, - 0.980860024481523870f, - 0.980710392082253970f, 0.980560182756327840f, 0.980409396592109910f, - 0.980258033678303550f, - 0.980106094103951770f, 0.979953577958436740f, 0.979800485331479790f, - 0.979646816313141210f, - 0.979492570993820810f, 0.979337749464256780f, 0.979182351815526930f, - 0.979026378139047580f, - 0.978869828526574120f, 0.978712703070200420f, 0.978555001862359550f, - 0.978396724995823090f, - 0.978237872563701090f, 0.978078444659442380f, 0.977918441376834370f, - 0.977757862810002760f, - 0.977596709053411890f, 0.977434980201864260f, 0.977272676350500860f, - 0.977109797594800880f, - 0.976946344030581670f, 0.976782315753998650f, 0.976617712861545640f, - 0.976452535450054060f, - 0.976286783616693630f, 0.976120457458971910f, 0.975953557074734300f, - 0.975786082562163930f, - 0.975618034019781750f, 0.975449411546446380f, 0.975280215241354220f, - 0.975110445204038890f, - 0.974940101534371830f, 0.974769184332561770f, 0.974597693699155050f, - 0.974425629735034990f, - 0.974252992541422500f, 0.974079782219875680f, 0.973905998872289570f, - 0.973731642600896400f, - 0.973556713508265560f, 0.973381211697303290f, 0.973205137271252800f, - 0.973028490333694210f, - 0.972851270988544180f, 0.972673479340056430f, 0.972495115492821190f, - 0.972316179551765300f, - 0.972136671622152230f, 0.971956591809581720f, 0.971775940219990140f, - 0.971594716959650160f, - 0.971412922135170940f, 0.971230555853497380f, 0.971047618221911100f, - 0.970864109348029470f, - 0.970680029339806130f, 0.970495378305530560f, 0.970310156353828110f, - 0.970124363593660280f, - 0.969938000134323960f, 0.969751066085452140f, 0.969563561557013180f, - 0.969375486659311280f, - 0.969186841502985950f, 0.968997626199012420f, 0.968807840858700970f, - 0.968617485593697540f, - 0.968426560515983190f, 0.968235065737874320f, 0.968043001372022260f, - 0.967850367531413620f, - 0.967657164329369880f, 0.967463391879547550f, 0.967269050295937790f, - 0.967074139692867040f, - 0.966878660184995910f, 0.966682611887320080f, 0.966485994915169840f, - 0.966288809384209690f, - 0.966091055410438830f, 0.965892733110190860f, 0.965693842600133690f, - 0.965494383997269500f, - 0.965294357418934660f, 0.965093762982799590f, 0.964892600806868890f, - 0.964690871009481030f, - 0.964488573709308410f, 0.964285709025357480f, 0.964082277076968140f, - 0.963878277983814200f, - 0.963673711865903230f, 0.963468578843575950f, 0.963262879037507070f, - 0.963056612568704340f, - 0.962849779558509030f, 0.962642380128595710f, 0.962434414400972100f, - 0.962225882497979020f, - 0.962016784542290560f, 0.961807120656913540f, 0.961596890965187860f, - 0.961386095590786250f, - 0.961174734657714080f, 0.960962808290309780f, 0.960750316613243950f, - 0.960537259751520050f, - 0.960323637830473920f, 0.960109450975773940f, 0.959894699313420530f, - 0.959679382969746750f, - 0.959463502071417510f, 0.959247056745430090f, 0.959030047119113660f, - 0.958812473320129310f, - 0.958594335476470220f, 0.958375633716461170f, 0.958156368168758820f, - 0.957936538962351420f, - 0.957716146226558870f, 0.957495190091032570f, 0.957273670685755200f, - 0.957051588141040970f, - 0.956828942587535370f, 0.956605734156215080f, 0.956381962978387730f, - 0.956157629185692140f, - 0.955932732910098280f, 0.955707274283906560f, 0.955481253439748770f, - 0.955254670510586990f, - 0.955027525629714160f, 0.954799818930753720f, 0.954571550547659630f, - 0.954342720614716480f, - 0.954113329266538800f, 0.953883376638071770f, 0.953652862864590500f, - 0.953421788081700310f, - 0.953190152425336670f, 0.952957956031764700f, 0.952725199037579570f, - 0.952491881579706320f, - 0.952258003795399600f, 0.952023565822243570f, 0.951788567798152130f, - 0.951553009861368590f, - 0.951316892150465550f, 0.951080214804345010f, 0.950842977962238160f, - 0.950605181763705340f, - 0.950366826348635780f, 0.950127911857248100f, 0.949888438430089300f, - 0.949648406208035480f, - 0.949407815332291570f, 0.949166665944390700f, 0.948924958186195160f, - 0.948682692199895090f, - 0.948439868128009620f, 0.948196486113385580f, 0.947952546299198670f, - 0.947708048828952100f, - 0.947462993846477700f, 0.947217381495934820f, 0.946971211921810880f, - 0.946724485268921170f, - 0.946477201682408680f, 0.946229361307743820f, 0.945980964290724760f, - 0.945732010777477150f, - 0.945482500914453740f, 0.945232434848435000f, 0.944981812726528150f, - 0.944730634696167800f, - 0.944478900905115550f, 0.944226611501459810f, 0.943973766633615980f, - 0.943720366450326200f, - 0.943466411100659320f, 0.943211900734010620f, 0.942956835500102120f, - 0.942701215548981900f, - 0.942445041031024890f, 0.942188312096931770f, 0.941931028897729620f, - 0.941673191584771360f, - 0.941414800309736340f, 0.941155855224629190f, 0.940896356481780830f, - 0.940636304233847590f, - 0.940375698633811540f, 0.940114539834980280f, 0.939852827990986680f, - 0.939590563255789270f, - 0.939327745783671400f, 0.939064375729241950f, 0.938800453247434770f, - 0.938535978493508560f, - 0.938270951623047190f, 0.938005372791958840f, 0.937739242156476970f, - 0.937472559873159250f, - 0.937205326098887960f, 0.936937540990869900f, 0.936669204706636170f, - 0.936400317404042060f, - 0.936130879241267030f, 0.935860890376814640f, 0.935590350969512370f, - 0.935319261178511610f, - 0.935047621163287430f, 0.934775431083638700f, 0.934502691099687870f, - 0.934229401371880820f, - 0.933955562060986730f, 0.933681173328098410f, 0.933406235334631520f, - 0.933130748242325230f, - 0.932854712213241120f, 0.932578127409764420f, 0.932300993994602760f, - 0.932023312130786490f, - 0.931745081981668720f, 0.931466303710925090f, 0.931186977482553750f, - 0.930907103460875130f, - 0.930626681810531760f, 0.930345712696488470f, 0.930064196284032360f, - 0.929782132738772190f, - 0.929499522226638560f, 0.929216364913884040f, 0.928932660967082820f, - 0.928648410553130520f, - 0.928363613839244370f, 0.928078270992963140f, 0.927792382182146320f, - 0.927505947574975180f, - 0.927218967339951790f, 0.926931441645899130f, 0.926643370661961230f, - 0.926354754557602860f, - 0.926065593502609310f, 0.925775887667086740f, 0.925485637221461490f, - 0.925194842336480530f, - 0.924903503183210910f, 0.924611619933039970f, 0.924319192757675160f, - 0.924026221829143850f, - 0.923732707319793290f, 0.923438649402290370f, 0.923144048249621930f, - 0.922848904035094120f, - 0.922553216932332830f, 0.922256987115283030f, 0.921960214758209220f, - 0.921662900035694730f, - 0.921365043122642340f, 0.921066644194273640f, 0.920767703426128790f, - 0.920468220994067110f, - 0.920168197074266340f, 0.919867631843222950f, 0.919566525477751530f, - 0.919264878154985370f, - 0.918962690052375630f, 0.918659961347691900f, 0.918356692219021720f, - 0.918052882844770380f, - 0.917748533403661250f, 0.917443644074735220f, 0.917138215037350710f, - 0.916832246471183890f, - 0.916525738556228210f, 0.916218691472794220f, 0.915911105401509880f, - 0.915602980523320230f, - 0.915294317019487050f, 0.914985115071589310f, 0.914675374861522390f, - 0.914365096571498560f, - 0.914054280384046570f, 0.913742926482011390f, 0.913431035048554720f, - 0.913118606267154240f, - 0.912805640321603500f, 0.912492137396012650f, 0.912178097674807180f, - 0.911863521342728520f, - 0.911548408584833990f, 0.911232759586496190f, 0.910916574533403360f, - 0.910599853611558930f, - 0.910282597007281760f, 0.909964804907205660f, 0.909646477498279540f, - 0.909327614967767260f, - 0.909008217503247450f, 0.908688285292613360f, 0.908367818524072890f, - 0.908046817386148340f, - 0.907725282067676440f, 0.907403212757808110f, 0.907080609646008450f, - 0.906757472922056550f, - 0.906433802776045460f, 0.906109599398381980f, 0.905784862979786550f, - 0.905459593711293250f, - 0.905133791784249690f, 0.904807457390316540f, 0.904480590721468250f, - 0.904153191969991780f, - 0.903825261328487510f, 0.903496798989868450f, 0.903167805147360720f, - 0.902838279994502830f, - 0.902508223725145940f, 0.902177636533453620f, 0.901846518613901750f, - 0.901514870161278740f, - 0.901182691370684520f, 0.900849982437531450f, 0.900516743557543520f, - 0.900182974926756810f, - 0.899848676741518580f, 0.899513849198487980f, 0.899178492494635330f, - 0.898842606827242370f, - 0.898506192393901950f, 0.898169249392518080f, 0.897831778021305650f, - 0.897493778478790310f, - 0.897155250963808550f, 0.896816195675507300f, 0.896476612813344120f, - 0.896136502577086770f, - 0.895795865166813530f, 0.895454700782912450f, 0.895113009626081760f, - 0.894770791897329550f, - 0.894428047797973800f, 0.894084777529641990f, 0.893740981294271040f, - 0.893396659294107720f, - 0.893051811731707450f, 0.892706438809935390f, 0.892360540731965360f, - 0.892014117701280470f, - 0.891667169921672280f, 0.891319697597241390f, 0.890971700932396860f, - 0.890623180131855930f, - 0.890274135400644600f, 0.889924566944096720f, 0.889574474967854580f, - 0.889223859677868210f, - 0.888872721280395630f, 0.888521059982002260f, 0.888168875989561730f, - 0.887816169510254440f, - 0.887462940751568840f, 0.887109189921300170f, 0.886754917227550840f, - 0.886400122878730600f, - 0.886044807083555600f, 0.885688970051048960f, 0.885332611990540590f, - 0.884975733111666660f, - 0.884618333624369920f, 0.884260413738899190f, 0.883901973665809470f, - 0.883543013615961880f, - 0.883183533800523390f, 0.882823534430966620f, 0.882463015719070150f, - 0.882101977876917580f, - 0.881740421116898320f, 0.881378345651706920f, 0.881015751694342870f, - 0.880652639458111010f, - 0.880289009156621010f, 0.879924861003786860f, 0.879560195213827890f, - 0.879195012001267480f, - 0.878829311580933360f, 0.878463094167957870f, 0.878096359977777130f, - 0.877729109226131570f, - 0.877361342129065140f, 0.876993058902925890f, 0.876624259764365310f, - 0.876254944930338510f, - 0.875885114618103810f, 0.875514769045222850f, 0.875143908429560360f, - 0.874772532989284150f, - 0.874400642942864790f, 0.874028238509075740f, 0.873655319906992630f, - 0.873281887355994210f, - 0.872907941075761080f, 0.872533481286276170f, 0.872158508207824480f, - 0.871783022060993120f, - 0.871407023066670950f, 0.871030511446048260f, 0.870653487420617430f, - 0.870275951212171940f, - 0.869897903042806340f, 0.869519343134916860f, 0.869140271711200560f, - 0.868760688994655310f, - 0.868380595208579800f, 0.867999990576573510f, 0.867618875322536230f, - 0.867237249670668400f, - 0.866855113845470430f, 0.866472468071743050f, 0.866089312574586770f, - 0.865705647579402380f, - 0.865321473311889800f, 0.864936789998049020f, 0.864551597864179340f, - 0.864165897136879300f, - 0.863779688043046720f, 0.863392970809878420f, 0.863005745664870320f, - 0.862618012835816740f, - 0.862229772550811240f, 0.861841025038245330f, 0.861451770526809320f, - 0.861062009245491480f, - 0.860671741423578380f, 0.860280967290654510f, 0.859889687076602290f, - 0.859497901011601730f, - 0.859105609326130450f, 0.858712812250963520f, 0.858319510017173440f, - 0.857925702856129790f, - 0.857531390999499150f, 0.857136574679244980f, 0.856741254127627470f, - 0.856345429577203610f, - 0.855949101260826910f, 0.855552269411646860f, 0.855154934263109620f, - 0.854757096048957220f, - 0.854358755003227440f, 0.853959911360254180f, 0.853560565354666840f, - 0.853160717221390420f, - 0.852760367195645300f, 0.852359515512947090f, 0.851958162409106380f, - 0.851556308120228980f, - 0.851153952882715340f, 0.850751096933260790f, 0.850347740508854980f, - 0.849943883846782210f, - 0.849539527184620890f, 0.849134670760243630f, 0.848729314811817130f, - 0.848323459577801640f, - 0.847917105296951410f, 0.847510252208314330f, 0.847102900551231500f, - 0.846695050565337450f, - 0.846286702490559710f, 0.845877856567119000f, 0.845468513035528830f, - 0.845058672136595470f, - 0.844648334111417820f, 0.844237499201387020f, 0.843826167648186740f, - 0.843414339693792760f, - 0.843002015580472940f, 0.842589195550786710f, 0.842175879847585570f, - 0.841762068714012490f, - 0.841347762393501950f, 0.840932961129779780f, 0.840517665166862550f, - 0.840101874749058400f, - 0.839685590120966110f, 0.839268811527475230f, 0.838851539213765760f, - 0.838433773425308340f, - 0.838015514407863820f, 0.837596762407483040f, 0.837177517670507300f, - 0.836757780443567190f, - 0.836337550973583530f, 0.835916829507766360f, 0.835495616293615350f, - 0.835073911578919410f, - 0.834651715611756440f, 0.834229028640493420f, 0.833805850913786340f, - 0.833382182680579730f, - 0.832958024190106670f, 0.832533375691888680f, 0.832108237435735590f, - 0.831682609671745120f, - 0.831256492650303210f, 0.830829886622083570f, 0.830402791838047550f, - 0.829975208549443950f, - 0.829547137007808910f, 0.829118577464965980f, 0.828689530173025820f, - 0.828259995384385660f, - 0.827829973351729920f, 0.827399464328029470f, 0.826968468566541600f, - 0.826536986320809960f, - 0.826105017844664610f, 0.825672563392221390f, 0.825239623217882250f, - 0.824806197576334330f, - 0.824372286722551250f, 0.823937890911791370f, 0.823503010399598500f, - 0.823067645441801670f, - 0.822631796294514990f, 0.822195463214137170f, 0.821758646457351750f, - 0.821321346281126740f, - 0.820883562942714580f, 0.820445296699652050f, 0.820006547809759680f, - 0.819567316531142230f, - 0.819127603122188240f, 0.818687407841569680f, 0.818246730948242070f, - 0.817805572701444270f, - 0.817363933360698460f, 0.816921813185809480f, 0.816479212436865390f, - 0.816036131374236810f, - 0.815592570258576790f, 0.815148529350820830f, 0.814704008912187080f, - 0.814259009204175270f, - 0.813813530488567190f, 0.813367573027426570f, 0.812921137083098770f, - 0.812474222918210480f, - 0.812026830795669730f, 0.811578960978665890f, 0.811130613730669190f, - 0.810681789315430780f, - 0.810232487996982330f, 0.809782710039636530f, 0.809332455707985950f, - 0.808881725266903610f, - 0.808430518981542720f, 0.807978837117336310f, 0.807526679939997160f, - 0.807074047715517610f, - 0.806620940710169650f, 0.806167359190504420f, 0.805713303423352230f, - 0.805258773675822210f, - 0.804803770215302920f, 0.804348293309460780f, 0.803892343226241260f, - 0.803435920233868120f, - 0.802979024600843250f, 0.802521656595946430f, 0.802063816488235440f, - 0.801605504547046150f, - 0.801146721041991360f, 0.800687466242961610f, 0.800227740420124790f, - 0.799767543843925680f, - 0.799306876785086160f, 0.798845739514604580f, 0.798384132303756380f, - 0.797922055424093000f, - 0.797459509147442460f, 0.796996493745908750f, 0.796533009491872000f, - 0.796069056657987990f, - 0.795604635517188070f, 0.795139746342679590f, 0.794674389407944550f, - 0.794208564986740640f, - 0.793742273353100210f, 0.793275514781330630f, 0.792808289546014120f, - 0.792340597922007170f, - 0.791872440184440470f, 0.791403816608719500f, 0.790934727470523290f, - 0.790465173045804880f, - 0.789995153610791090f, 0.789524669441982190f, 0.789053720816151880f, - 0.788582308010347120f, - 0.788110431301888070f, 0.787638090968367450f, 0.787165287287651010f, - 0.786692020537876790f, - 0.786218290997455660f, 0.785744098945070360f, 0.785269444659675850f, - 0.784794328420499230f, - 0.784318750507038920f, 0.783842711199065230f, 0.783366210776619720f, - 0.782889249520015480f, - 0.782411827709836530f, 0.781933945626937630f, 0.781455603552444590f, - 0.780976801767753750f, - 0.780497540554531910f, 0.780017820194715990f, 0.779537640970513260f, - 0.779057003164400630f, - 0.778575907059125050f, 0.778094352937702790f, 0.777612341083420030f, - 0.777129871779831620f, - 0.776646945310762060f, 0.776163561960304340f, 0.775679722012820650f, - 0.775195425752941420f, - 0.774710673465565550f, 0.774225465435860680f, 0.773739801949261840f, - 0.773253683291472590f, - 0.772767109748463850f, 0.772280081606474320f, 0.771792599152010150f, - 0.771304662671844830f, - 0.770816272453018540f, 0.770327428782838890f, 0.769838131948879840f, - 0.769348382238982280f, - 0.768858179941253270f, 0.768367525344066270f, 0.767876418736060610f, - 0.767384860406141730f, - 0.766892850643480670f, 0.766400389737514230f, 0.765907477977944340f, - 0.765414115654738270f, - 0.764920303058128410f, 0.764426040478612070f, 0.763931328206951090f, - 0.763436166534172010f, - 0.762940555751565720f, 0.762444496150687210f, 0.761947988023355390f, - 0.761451031661653620f, - 0.760953627357928150f, 0.760455775404789260f, 0.759957476095110330f, - 0.759458729722028210f, - 0.758959536578942440f, 0.758459896959515430f, 0.757959811157672300f, - 0.757459279467600720f, - 0.756958302183750490f, 0.756456879600833740f, 0.755955012013824420f, - 0.755452699717958250f, - 0.754949943008732640f, 0.754446742181906440f, 0.753943097533499640f, - 0.753439009359793580f, - 0.752934477957330150f, 0.752429503622912390f, 0.751924086653603550f, - 0.751418227346727470f, - 0.750911925999867890f, 0.750405182910869330f, 0.749897998377835330f, - 0.749390372699129560f, - 0.748882306173375150f, 0.748373799099454560f, 0.747864851776509410f, - 0.747355464503940190f, - 0.746845637581406540f, 0.746335371308826320f, 0.745824665986376090f, - 0.745313521914490520f, - 0.744801939393862630f, 0.744289918725443260f, 0.743777460210440890f, - 0.743264564150321600f, - 0.742751230846809050f, 0.742237460601884000f, 0.741723253717784140f, - 0.741208610497004260f, - 0.740693531242295760f, 0.740178016256666240f, 0.739662065843380010f, - 0.739145680305957510f, - 0.738628859948174840f, 0.738111605074064260f, 0.737593915987913570f, - 0.737075792994265730f, - 0.736557236397919150f, 0.736038246503927350f, 0.735518823617598900f, - 0.734998968044496710f, - 0.734478680090438370f, 0.733957960061495940f, 0.733436808263995710f, - 0.732915225004517780f, - 0.732393210589896040f, 0.731870765327218290f, 0.731347889523825570f, - 0.730824583487312160f, - 0.730300847525525490f, 0.729776681946566090f, 0.729252087058786970f, - 0.728727063170793830f, - 0.728201610591444610f, 0.727675729629849610f, 0.727149420595371020f, - 0.726622683797622850f, - 0.726095519546471000f, 0.725567928152032300f, 0.725039909924675370f, - 0.724511465175019630f, - 0.723982594213935520f, 0.723453297352544380f, 0.722923574902217700f, - 0.722393427174577550f, - 0.721862854481496340f, 0.721331857135096290f, 0.720800435447749190f, - 0.720268589732077190f, - 0.719736320300951030f, 0.719203627467491220f, 0.718670511545067230f, - 0.718136972847297490f, - 0.717603011688049080f, 0.717068628381437480f, 0.716533823241826680f, - 0.715998596583828690f, - 0.715462948722303760f, 0.714926879972359490f, 0.714390390649351390f, - 0.713853481068882470f, - 0.713316151546802610f, 0.712778402399208980f, 0.712240233942445510f, - 0.711701646493102970f, - 0.711162640368018350f, 0.710623215884275020f, 0.710083373359202800f, - 0.709543113110376770f, - 0.709002435455618250f, 0.708461340712994160f, 0.707919829200816310f, - 0.707377901237642100f, - 0.706835557142273860f, 0.706292797233758480f, 0.705749621831387790f, - 0.705206031254697830f, - 0.704662025823468930f, 0.704117605857725430f, 0.703572771677735580f, - 0.703027523604011220f, - 0.702481861957308000f, 0.701935787058624360f, 0.701389299229202230f, - 0.700842398790526230f, - 0.700295086064323780f, 0.699747361372564990f, 0.699199225037462120f, - 0.698650677381469580f, - 0.698101718727283880f, 0.697552349397843270f, 0.697002569716327460f, - 0.696452380006157830f, - 0.695901780590996830f, 0.695350771794747800f, 0.694799353941554900f, - 0.694247527355803310f, - 0.693695292362118350f, 0.693142649285365510f, 0.692589598450650380f, - 0.692036140183318830f, - 0.691482274808955850f, 0.690928002653386280f, 0.690373324042674040f, - 0.689818239303122470f, - 0.689262748761273470f, 0.688706852743907750f, 0.688150551578044830f, - 0.687593845590942170f, - 0.687036735110095660f, 0.686479220463238950f, 0.685921301978343670f, - 0.685362979983618730f, - 0.684804254807510620f, 0.684245126778703080f, 0.683685596226116690f, - 0.683125663478908800f, - 0.682565328866473250f, 0.682004592718440830f, 0.681443455364677990f, - 0.680881917135287340f, - 0.680319978360607200f, 0.679757639371212030f, 0.679194900497911200f, - 0.678631762071749470f, - 0.678068224424006600f, 0.677504287886197430f, 0.676939952790071240f, - 0.676375219467611700f, - 0.675810088251037060f, 0.675244559472799270f, 0.674678633465584540f, - 0.674112310562312360f, - 0.673545591096136100f, 0.672978475400442090f, 0.672410963808849900f, - 0.671843056655211930f, - 0.671274754273613490f, 0.670706056998372160f, 0.670136965164037760f, - 0.669567479105392490f, - 0.668997599157450270f, 0.668427325655456820f, 0.667856658934889440f, - 0.667285599331456480f, - 0.666714147181097670f, 0.666142302819983540f, 0.665570066584515560f, - 0.664997438811325340f, - 0.664424419837275180f, 0.663851009999457340f, 0.663277209635194100f, - 0.662703019082037440f, - 0.662128438677768720f, 0.661553468760399000f, 0.660978109668168060f, - 0.660402361739545030f, - 0.659826225313227430f, 0.659249700728141490f, 0.658672788323441890f, - 0.658095488438511290f, - 0.657517801412960120f, 0.656939727586627110f, 0.656361267299578000f, - 0.655782420892106030f, - 0.655203188704731930f, 0.654623571078202680f, 0.654043568353492640f, - 0.653463180871802330f, - 0.652882408974558960f, 0.652301253003415460f, 0.651719713300251020f, - 0.651137790207170330f, - 0.650555484066503990f, 0.649972795220807530f, 0.649389724012861770f, - 0.648806270785672550f, - 0.648222435882470420f, 0.647638219646710420f, 0.647053622422071650f, - 0.646468644552457890f, - 0.645883286381996440f, 0.645297548255038380f, 0.644711430516158420f, - 0.644124933510154540f, - 0.643538057582047850f, 0.642950803077082080f, 0.642363170340724320f, - 0.641775159718663500f, - 0.641186771556811250f, 0.640598006201301030f, 0.640008863998488440f, - 0.639419345294950700f, - 0.638829450437486400f, 0.638239179773115390f, 0.637648533649078810f, - 0.637057512412838590f, - 0.636466116412077180f, 0.635874345994697720f, 0.635282201508823530f, - 0.634689683302797850f, - 0.634096791725183740f, 0.633503527124764320f, 0.632909889850541860f, - 0.632315880251737680f, - 0.631721498677792370f, 0.631126745478365340f, 0.630531621003334600f, - 0.629936125602796550f, - 0.629340259627065750f, 0.628744023426674790f, 0.628147417352374120f, - 0.627550441755131530f, - 0.626953096986132770f, 0.626355383396779990f, 0.625757301338692900f, - 0.625158851163707730f, - 0.624560033223877320f, 0.623960847871470770f, 0.623361295458973340f, - 0.622761376339086460f, - 0.622161090864726930f, 0.621560439389027270f, 0.620959422265335180f, - 0.620358039847213830f, - 0.619756292488440660f, 0.619154180543008410f, 0.618551704365123860f, - 0.617948864309208260f, - 0.617345660729896940f, 0.616742093982038830f, 0.616138164420696910f, - 0.615533872401147430f, - 0.614929218278879590f, 0.614324202409595950f, 0.613718825149211830f, - 0.613113086853854910f, - 0.612506987879865570f, 0.611900528583796070f, 0.611293709322411010f, - 0.610686530452686280f, - 0.610078992331809620f, 0.609471095317180240f, 0.608862839766408200f, - 0.608254226037314490f, - 0.607645254487930830f, 0.607035925476499760f, 0.606426239361473550f, - 0.605816196501515080f, - 0.605205797255496500f, 0.604595041982500360f, 0.603983931041818020f, - 0.603372464792950370f, - 0.602760643595607220f, 0.602148467809707320f, 0.601535937795377730f, - 0.600923053912954090f, - 0.600309816522980430f, 0.599696225986208310f, 0.599082282663597310f, - 0.598467986916314310f, - 0.597853339105733910f, 0.597238339593437530f, 0.596622988741213330f, - 0.596007286911056530f, - 0.595391234465168730f, 0.594774831765957580f, 0.594158079176036800f, - 0.593540977058226390f, - 0.592923525775551410f, 0.592305725691242400f, 0.591687577168735550f, - 0.591069080571671510f, - 0.590450236263895920f, 0.589831044609458900f, 0.589211505972615070f, - 0.588591620717822890f, - 0.587971389209745120f, 0.587350811813247660f, 0.586729888893400500f, - 0.586108620815476430f, - 0.585487007944951450f, 0.584865050647504490f, 0.584242749289016980f, - 0.583620104235572760f, - 0.582997115853457700f, 0.582373784509160220f, 0.581750110569369760f, - 0.581126094400977620f, - 0.580501736371076600f, 0.579877036846960350f, 0.579251996196123550f, - 0.578626614786261430f, - 0.578000892985269910f, 0.577374831161244880f, 0.576748429682482520f, - 0.576121688917478390f, - 0.575494609234928230f, 0.574867191003726740f, 0.574239434592967890f, - 0.573611340371944610f, - 0.572982908710148680f, 0.572354139977270030f, 0.571725034543197120f, - 0.571095592778016690f, - 0.570465815052012990f, 0.569835701735668110f, 0.569205253199661200f, - 0.568574469814869250f, - 0.567943351952365670f, 0.567311899983420800f, 0.566680114279501710f, - 0.566047995212271560f, - 0.565415543153589770f, 0.564782758475511400f, 0.564149641550287680f, - 0.563516192750364910f, - 0.562882412448384550f, 0.562248301017183150f, 0.561613858829792420f, - 0.560979086259438260f, - 0.560343983679540860f, 0.559708551463714790f, 0.559072789985768480f, - 0.558436699619704100f, - 0.557800280739717100f, 0.557163533720196340f, 0.556526458935723720f, - 0.555889056761073920f, - 0.555251327571214090f, 0.554613271741304040f, 0.553974889646695610f, - 0.553336181662932410f, - 0.552697148165749770f, 0.552057789531074980f, 0.551418106135026060f, - 0.550778098353912230f, - 0.550137766564233630f, 0.549497111142680960f, 0.548856132466135290f, - 0.548214830911667780f, - 0.547573206856539870f, 0.546931260678202190f, 0.546288992754295210f, - 0.545646403462648590f, - 0.545003493181281160f, 0.544360262288400400f, 0.543716711162402390f, - 0.543072840181871850f, - 0.542428649725581360f, 0.541784140172491660f, 0.541139311901750910f, - 0.540494165292695230f, - 0.539848700724847700f, 0.539202918577918240f, 0.538556819231804210f, - 0.537910403066588990f, - 0.537263670462542530f, 0.536616621800121150f, 0.535969257459966710f, - 0.535321577822907010f, - 0.534673583269955510f, 0.534025274182310380f, 0.533376650941355560f, - 0.532727713928658810f, - 0.532078463525973540f, 0.531428900115236910f, 0.530779024078570250f, - 0.530128835798278850f, - 0.529478335656852090f, 0.528827524036961980f, 0.528176401321464370f, - 0.527524967893398200f, - 0.526873224135984700f, 0.526221170432628170f, 0.525568807166914680f, - 0.524916134722612890f, - 0.524263153483673470f, 0.523609863834228030f, 0.522956266158590140f, - 0.522302360841254700f, - 0.521648148266897090f, 0.520993628820373810f, 0.520338802886721960f, - 0.519683670851158520f, - 0.519028233099080970f, 0.518372490016066220f, 0.517716441987871150f, - 0.517060089400432130f, - 0.516403432639863990f, 0.515746472092461380f, 0.515089208144697270f, - 0.514431641183222930f, - 0.513773771594868030f, 0.513115599766640560f, 0.512457126085725800f, - 0.511798350939487000f, - 0.511139274715464390f, 0.510479897801375700f, 0.509820220585115560f, - 0.509160243454754750f, - 0.508499966798540810f, 0.507839391004897940f, 0.507178516462425290f, - 0.506517343559898530f, - 0.505855872686268860f, 0.505194104230662240f, 0.504532038582380380f, - 0.503869676130898950f, - 0.503207017265869030f, 0.502544062377115800f, 0.501880811854638400f, - 0.501217266088609950f, - 0.500553425469377640f, 0.499889290387461380f, 0.499224861233555030f, - 0.498560138398525200f, - 0.497895122273410930f, 0.497229813249424340f, 0.496564211717949340f, - 0.495898318070542240f, - 0.495232132698931350f, 0.494565655995016010f, 0.493898888350867430f, - 0.493231830158728070f, - 0.492564481811010650f, 0.491896843700299240f, 0.491228916219348330f, - 0.490560699761082080f, - 0.489892194718595300f, 0.489223401485152030f, 0.488554320454186230f, - 0.487884952019301210f, - 0.487215296574268820f, 0.486545354513030270f, 0.485875126229695420f, - 0.485204612118541880f, - 0.484533812574016120f, 0.483862727990732320f, 0.483191358763471910f, - 0.482519705287184520f, - 0.481847767956986080f, 0.481175547168160360f, 0.480503043316157670f, - 0.479830256796594250f, - 0.479157188005253310f, 0.478483837338084080f, 0.477810205191201040f, - 0.477136291960884750f, - 0.476462098043581310f, 0.475787623835901120f, 0.475112869734620470f, - 0.474437836136679340f, - 0.473762523439182850f, 0.473086932039400220f, 0.472411062334764100f, - 0.471734914722871430f, - 0.471058489601482610f, 0.470381787368520710f, 0.469704808422072460f, - 0.469027553160387240f, - 0.468350021981876530f, 0.467672215285114710f, 0.466994133468838110f, - 0.466315776931944480f, - 0.465637146073493770f, 0.464958241292706740f, 0.464279062988965760f, - 0.463599611561814120f, - 0.462919887410955130f, 0.462239890936253280f, 0.461559622537733190f, - 0.460879082615578690f, - 0.460198271570134270f, 0.459517189801903590f, 0.458835837711549120f, - 0.458154215699893230f, - 0.457472324167916110f, 0.456790163516757220f, 0.456107734147714220f, - 0.455425036462242420f, - 0.454742070861955450f, 0.454058837748624540f, 0.453375337524177750f, - 0.452691570590700860f, - 0.452007537350436530f, 0.451323238205783520f, 0.450638673559297760f, - 0.449953843813690580f, - 0.449268749371829920f, 0.448583390636739300f, 0.447897768011597360f, - 0.447211881899738260f, - 0.446525732704651400f, 0.445839320829980350f, 0.445152646679523590f, - 0.444465710657234110f, - 0.443778513167218280f, 0.443091054613736990f, 0.442403335401204130f, - 0.441715355934187310f, - 0.441027116617407340f, 0.440338617855737300f, 0.439649860054203420f, - 0.438960843617984430f, - 0.438271568952410480f, 0.437582036462964340f, 0.436892246555280470f, - 0.436202199635143950f, - 0.435511896108492170f, 0.434821336381412350f, 0.434130520860143310f, - 0.433439449951074200f, - 0.432748124060743760f, 0.432056543595841450f, 0.431364708963206440f, - 0.430672620569826860f, - 0.429980278822840570f, 0.429287684129534720f, 0.428594836897344400f, - 0.427901737533854240f, - 0.427208386446796370f, 0.426514784044051520f, 0.425820930733648350f, - 0.425126826923762410f, - 0.424432473022717420f, 0.423737869438983950f, 0.423043016581179100f, - 0.422347914858067000f, - 0.421652564678558380f, 0.420956966451709440f, 0.420261120586723050f, - 0.419565027492946940f, - 0.418868687579875110f, 0.418172101257146430f, 0.417475268934544340f, - 0.416778191021997590f, - 0.416080867929579320f, 0.415383300067506290f, 0.414685487846140010f, - 0.413987431675985510f, - 0.413289131967690960f, 0.412590589132048380f, 0.411891803579992220f, - 0.411192775722600160f, - 0.410493505971092520f, 0.409793994736831200f, 0.409094242431320920f, - 0.408394249466208110f, - 0.407694016253280170f, 0.406993543204466460f, 0.406292830731837470f, - 0.405591879247603870f, - 0.404890689164117750f, 0.404189260893870750f, 0.403487594849495310f, - 0.402785691443763640f, - 0.402083551089587040f, 0.401381174200016790f, 0.400678561188243350f, - 0.399975712467595390f, - 0.399272628451540930f, 0.398569309553686360f, 0.397865756187775750f, - 0.397161968767691720f, - 0.396457947707453960f, 0.395753693421220080f, 0.395049206323284880f, - 0.394344486828079650f, - 0.393639535350172880f, 0.392934352304269600f, 0.392228938105210370f, - 0.391523293167972350f, - 0.390817417907668610f, 0.390111312739546910f, 0.389404978078991100f, - 0.388698414341519250f, - 0.387991621942784910f, 0.387284601298575890f, 0.386577352824813980f, - 0.385869876937555310f, - 0.385162174052989970f, 0.384454244587440870f, 0.383746088957365010f, - 0.383037707579352130f, - 0.382329100870124510f, 0.381620269246537520f, 0.380911213125578130f, - 0.380201932924366050f, - 0.379492429060152740f, 0.378782701950320600f, 0.378072752012383990f, - 0.377362579663988450f, - 0.376652185322909620f, 0.375941569407054420f, 0.375230732334460030f, - 0.374519674523293210f, - 0.373808396391851370f, 0.373096898358560690f, 0.372385180841977360f, - 0.371673244260786630f, - 0.370961089033802040f, 0.370248715579966360f, 0.369536124318350760f, - 0.368823315668153960f, - 0.368110290048703050f, 0.367397047879452820f, 0.366683589579984930f, - 0.365969915570008910f, - 0.365256026269360380f, 0.364541922098002180f, 0.363827603476023610f, - 0.363113070823639530f, - 0.362398324561191310f, 0.361683365109145950f, 0.360968192888095290f, - 0.360252808318756830f, - 0.359537211821973180f, 0.358821403818710860f, 0.358105384730061760f, - 0.357389154977241000f, - 0.356672714981588260f, 0.355956065164567010f, 0.355239205947763370f, - 0.354522137752887430f, - 0.353804861001772160f, 0.353087376116372530f, 0.352369683518766630f, - 0.351651783631154680f, - 0.350933676875858360f, 0.350215363675321740f, 0.349496844452109600f, - 0.348778119628908420f, - 0.348059189628525780f, 0.347340054873889190f, 0.346620715788047320f, - 0.345901172794169100f, - 0.345181426315542610f, 0.344461476775576480f, 0.343741324597798600f, - 0.343020970205855540f, - 0.342300414023513690f, 0.341579656474657210f, 0.340858697983289440f, - 0.340137538973531880f, - 0.339416179869623410f, 0.338694621095921190f, 0.337972863076899830f, - 0.337250906237150650f, - 0.336528751001382350f, 0.335806397794420560f, 0.335083847041206580f, - 0.334361099166798900f, - 0.333638154596370920f, 0.332915013755212650f, 0.332191677068729320f, - 0.331468144962440920f, - 0.330744417861982890f, 0.330020496193105530f, 0.329296380381672800f, - 0.328572070853663690f, - 0.327847568035170960f, 0.327122872352400510f, 0.326397984231672660f, - 0.325672904099419900f, - 0.324947632382188430f, 0.324222169506637130f, 0.323496515899536760f, - 0.322770671987770710f, - 0.322044638198334620f, 0.321318414958334910f, 0.320592002694990330f, - 0.319865401835630610f, - 0.319138612807695900f, 0.318411636038737960f, 0.317684471956418020f, - 0.316957120988508150f, - 0.316229583562890490f, 0.315501860107556040f, 0.314773951050606070f, - 0.314045856820250820f, - 0.313317577844809070f, 0.312589114552708660f, 0.311860467372486130f, - 0.311131636732785270f, - 0.310402623062358880f, 0.309673426790066490f, 0.308944048344875710f, - 0.308214488155861220f, - 0.307484746652204160f, 0.306754824263192780f, 0.306024721418221900f, - 0.305294438546791720f, - 0.304563976078509050f, 0.303833334443086470f, 0.303102514070341060f, - 0.302371515390196130f, - 0.301640338832678880f, 0.300908984827921890f, 0.300177453806162120f, - 0.299445746197739950f, - 0.298713862433100390f, 0.297981802942791920f, 0.297249568157465890f, - 0.296517158507877410f, - 0.295784574424884370f, 0.295051816339446720f, 0.294318884682627570f, - 0.293585779885591310f, - 0.292852502379604810f, 0.292119052596036540f, 0.291385430966355720f, - 0.290651637922133220f, - 0.289917673895040860f, 0.289183539316850310f, 0.288449234619434170f, - 0.287714760234765280f, - 0.286980116594915570f, 0.286245304132057120f, 0.285510323278461380f, - 0.284775174466498300f, - 0.284039858128637360f, 0.283304374697445790f, 0.282568724605589740f, - 0.281832908285833460f, - 0.281096926171038320f, 0.280360778694163810f, 0.279624466288266700f, - 0.278887989386500280f, - 0.278151348422115090f, 0.277414543828458200f, 0.276677576038972420f, - 0.275940445487197320f, - 0.275203152606767370f, 0.274465697831413220f, 0.273728081594960650f, - 0.272990304331329980f, - 0.272252366474536660f, 0.271514268458690810f, 0.270776010717996010f, - 0.270037593686750510f, - 0.269299017799346230f, 0.268560283490267890f, 0.267821391194094320f, - 0.267082341345496350f, - 0.266343134379238180f, 0.265603770730176440f, 0.264864250833259320f, - 0.264124575123527490f, - 0.263384744036113390f, 0.262644758006240100f, 0.261904617469222560f, - 0.261164322860466590f, - 0.260423874615468010f, 0.259683273169813930f, 0.258942518959180580f, - 0.258201612419334870f, - 0.257460553986133210f, 0.256719344095520720f, 0.255977983183532380f, - 0.255236471686291820f, - 0.254494810040010790f, 0.253752998680989940f, 0.253011038045617980f, - 0.252268928570370810f, - 0.251526670691812780f, 0.250784264846594550f, 0.250041711471454650f, - 0.249299011003218300f, - 0.248556163878796620f, 0.247813170535187620f, 0.247070031409475370f, - 0.246326746938829060f, - 0.245583317560504000f, 0.244839743711840750f, 0.244096025830264210f, - 0.243352164353284880f, - 0.242608159718496890f, 0.241864012363579210f, 0.241119722726294730f, - 0.240375291244489500f, - 0.239630718356093560f, 0.238886004499120170f, 0.238141150111664870f, - 0.237396155631906550f, - 0.236651021498106460f, 0.235905748148607370f, 0.235160336021834860f, - 0.234414785556295250f, - 0.233669097190576820f, 0.232923271363349120f, 0.232177308513361770f, - 0.231431209079445730f, - 0.230684973500512310f, 0.229938602215552260f, 0.229192095663636740f, - 0.228445454283916550f, - 0.227698678515621170f, 0.226951768798059980f, 0.226204725570620270f, - 0.225457549272768540f, - 0.224710240344049570f, 0.223962799224085520f, 0.223215226352576960f, - 0.222467522169301990f, - 0.221719687114115240f, 0.220971721626949060f, 0.220223626147812460f, - 0.219475401116790340f, - 0.218727046974044600f, 0.217978564159812290f, 0.217229953114406790f, - 0.216481214278216900f, - 0.215732348091705940f, 0.214983354995412820f, 0.214234235429951100f, - 0.213484989836008080f, - 0.212735618654345870f, 0.211986122325800410f, 0.211236501291280710f, - 0.210486755991769890f, - 0.209736886868323370f, 0.208986894362070070f, 0.208236778914211470f, - 0.207486540966020700f, - 0.206736180958843660f, 0.205985699334098050f, 0.205235096533272380f, - 0.204484372997927180f, - 0.203733529169694010f, 0.202982565490274460f, 0.202231482401441620f, - 0.201480280345037820f, - 0.200728959762976140f, 0.199977521097239290f, 0.199225964789878890f, - 0.198474291283016360f, - 0.197722501018842030f, 0.196970594439614370f, 0.196218571987660850f, - 0.195466434105377090f, - 0.194714181235225990f, 0.193961813819739010f, 0.193209332301514080f, - 0.192456737123216840f, - 0.191704028727579940f, 0.190951207557401860f, 0.190198274055548120f, - 0.189445228664950340f, - 0.188692071828605260f, 0.187938803989575850f, 0.187185425590990440f, - 0.186431937076041640f, - 0.185678338887987790f, 0.184924631470150870f, 0.184170815265917720f, - 0.183416890718739230f, - 0.182662858272129360f, 0.181908718369666160f, 0.181154471454990920f, - 0.180400117971807270f, - 0.179645658363882100f, 0.178891093075044830f, 0.178136422549186320f, - 0.177381647230260200f, - 0.176626767562280960f, 0.175871783989325040f, 0.175116696955530060f, - 0.174361506905093830f, - 0.173606214282275410f, 0.172850819531394200f, 0.172095323096829040f, - 0.171339725423019260f, - 0.170584026954463700f, 0.169828228135719880f, 0.169072329411405180f, - 0.168316331226194910f, - 0.167560234024823590f, 0.166804038252083870f, 0.166047744352825850f, - 0.165291352771957970f, - 0.164534863954446110f, 0.163778278345312690f, 0.163021596389637810f, - 0.162264818532558110f, - 0.161507945219266150f, 0.160750976895011390f, 0.159993914005098350f, - 0.159236756994887850f, - 0.158479506309796100f, 0.157722162395293690f, 0.156964725696906750f, - 0.156207196660216040f, - 0.155449575730855880f, 0.154691863354515400f, 0.153934059976937460f, - 0.153176166043917870f, - 0.152418182001306500f, 0.151660108295005400f, 0.150901945370970040f, - 0.150143693675208330f, - 0.149385353653779810f, 0.148626925752796540f, 0.147868410418422360f, - 0.147109808096871850f, - 0.146351119234411440f, 0.145592344277358450f, 0.144833483672080240f, - 0.144074537864995330f, - 0.143315507302571590f, 0.142556392431327340f, 0.141797193697830530f, - 0.141037911548697770f, - 0.140278546430595420f, 0.139519098790238600f, 0.138759569074390380f, - 0.137999957729862760f, - 0.137240265203515700f, 0.136480491942256310f, 0.135720638393040080f, - 0.134960705002868830f, - 0.134200692218792020f, 0.133440600487905820f, 0.132680430257352130f, - 0.131920181974319760f, - 0.131159856086043410f, 0.130399453039802740f, 0.129638973282923540f, - 0.128878417262776660f, - 0.128117785426777150f, 0.127357078222385570f, 0.126596296097105960f, - 0.125835439498487020f, - 0.125074508874121300f, 0.124313504671644300f, 0.123552427338735370f, - 0.122791277323116900f, - 0.122030055072553410f, 0.121268761034852550f, 0.120507395657864240f, - 0.119745959389479630f, - 0.118984452677632520f, 0.118222875970297250f, 0.117461229715489990f, - 0.116699514361267840f, - 0.115937730355727850f, 0.115175878147008180f, 0.114413958183287050f, - 0.113651970912781920f, - 0.112889916783750470f, 0.112127796244489750f, 0.111365609743335190f, - 0.110603357728661910f, - 0.109841040648882680f, 0.109078658952449240f, 0.108316213087851300f, - 0.107553703503615710f, - 0.106791130648307380f, 0.106028494970528530f, 0.105265796918917650f, - 0.104503036942150550f, - 0.103740215488939480f, 0.102977333008032250f, 0.102214389948213370f, - 0.101451386758302160f, - 0.100688323887153970f, 0.099925201783659226f, 0.099162020896742573f, - 0.098398781675363881f, - 0.097635484568517339f, 0.096872130025230527f, 0.096108718494565468f, - 0.095345250425617742f, - 0.094581726267515473f, 0.093818146469420494f, 0.093054511480527333f, - 0.092290821750062355f, - 0.091527077727284981f, 0.090763279861485704f, 0.089999428601987341f, - 0.089235524398144139f, - 0.088471567699340822f, 0.087707558954993645f, 0.086943498614549489f, - 0.086179387127484922f, - 0.085415224943307277f, 0.084651012511553700f, 0.083886750281790226f, - 0.083122438703613077f, - 0.082358078226646619f, 0.081593669300544638f, 0.080829212374989468f, - 0.080064707899690932f, - 0.079300156324387569f, 0.078535558098845590f, 0.077770913672857989f, - 0.077006223496245585f, - 0.076241488018856149f, 0.075476707690563416f, 0.074711882961268378f, - 0.073947014280897269f, - 0.073182102099402888f, 0.072417146866763538f, 0.071652149032982254f, - 0.070887109048087787f, - 0.070122027362133646f, 0.069356904425197236f, 0.068591740687380900f, - 0.067826536598810966f, - 0.067061292609636836f, 0.066296009170032283f, 0.065530686730193397f, - 0.064765325740339871f, - 0.063999926650714078f, 0.063234489911580136f, 0.062469015973224969f, - 0.061703505285957416f, - 0.060937958300107238f, 0.060172375466026218f, 0.059406757234087247f, - 0.058641104054683348f, - 0.057875416378229017f, 0.057109694655158132f, 0.056343939335925283f, - 0.055578150871004817f, - 0.054812329710889909f, 0.054046476306093640f, 0.053280591107148056f, - 0.052514674564603257f, - 0.051748727129028414f, 0.050982749251010900f, 0.050216741381155325f, - 0.049450703970084824f, - 0.048684637468439020f, 0.047918542326875327f, 0.047152418996068000f, - 0.046386267926707213f, - 0.045620089569500123f, 0.044853884375169933f, 0.044087652794454979f, - 0.043321395278109784f, - 0.042555112276904117f, 0.041788804241622082f, 0.041022471623063397f, - 0.040256114872041358f, - 0.039489734439384118f, 0.038723330775933762f, 0.037956904332545366f, - 0.037190455560088091f, - 0.036423984909444228f, 0.035657492831508264f, 0.034890979777187955f, - 0.034124446197403423f, - 0.033357892543086159f, 0.032591319265180385f, 0.031824726814640963f, - 0.031058115642434700f, - 0.030291486199539423f, 0.029524838936943035f, 0.028758174305644590f, - 0.027991492756653365f, - 0.027224794740987910f, 0.026458080709677145f, 0.025691351113759395f, - 0.024924606404281485f, - 0.024157847032300020f, 0.023391073448879338f, 0.022624286105092803f, - 0.021857485452021874f, - 0.021090671940755180f, 0.020323846022389572f, 0.019557008148029204f, - 0.018790158768784596f, - 0.018023298335773701f, 0.017256427300120978f, 0.016489546112956454f, - 0.015722655225417017f, - 0.014955755088644378f, 0.014188846153786343f, 0.013421928871995907f, - 0.012655003694430301f, - 0.011888071072252072f, 0.011121131456628141f, 0.010354185298728884f, - 0.009587233049729183f, - 0.008820275160807512f, 0.008053312083144991f, 0.007286344267926684f, - 0.006519372166339549f, - 0.005752396229573737f, 0.004985416908821652f, 0.004218434655277024f, - 0.003451449920135975f, - 0.002684463154596083f, 0.001917474809855460f, 0.001150485337113809f, - 0.000383495187571497f -}; - -static const float32_t cos_factors_8192[8192] = { - 1.999999990808214700f, 1.999999917273932200f, 1.999999770205369800f, - 1.999999549602533100f, - 1.999999255465430200f, 1.999998887794072000f, 1.999998446588471700f, - 1.999997931848645600f, - 1.999997343574612800f, 1.999996681766395000f, 1.999995946424016200f, - 1.999995137547503600f, - 1.999994255136887000f, 1.999993299192198700f, 1.999992269713474200f, - 1.999991166700750800f, - 1.999989990154069600f, 1.999988740073473500f, 1.999987416459008600f, - 1.999986019310723500f, - 1.999984548628669600f, 1.999983004412901000f, 1.999981386663474400f, - 1.999979695380449400f, - 1.999977930563888100f, 1.999976092213855400f, 1.999974180330418700f, - 1.999972194913648900f, - 1.999970135963618400f, 1.999968003480403000f, 1.999965797464081200f, - 1.999963517914734100f, - 1.999961164832445800f, 1.999958738217302300f, 1.999956238069392900f, - 1.999953664388809800f, - 1.999951017175647600f, 1.999948296430003500f, 1.999945502151977600f, - 1.999942634341672600f, - 1.999939692999193900f, 1.999936678124649700f, 1.999933589718150700f, - 1.999930427779810900f, - 1.999927192309745900f, 1.999923883308075200f, 1.999920500774920300f, - 1.999917044710405500f, - 1.999913515114657900f, 1.999909911987807200f, 1.999906235329986100f, - 1.999902485141329400f, - 1.999898661421975400f, 1.999894764172064600f, 1.999890793391740000f, - 1.999886749081147800f, - 1.999882631240436700f, 1.999878439869758200f, 1.999874174969266300f, - 1.999869836539117700f, - 1.999865424579472000f, 1.999860939090491600f, 1.999856380072341000f, - 1.999851747525188200f, - 1.999847041449203300f, 1.999842261844559700f, 1.999837408711432600f, - 1.999832482050000900f, - 1.999827481860445300f, 1.999822408142949900f, 1.999817260897701400f, - 1.999812040124888700f, - 1.999806745824704000f, 1.999801377997341800f, 1.999795936642999600f, - 1.999790421761877400f, - 1.999784833354177900f, 1.999779171420106700f, 1.999773435959872000f, - 1.999767626973684400f, - 1.999761744461757700f, 1.999755788424308200f, 1.999749758861554900f, - 1.999743655773719400f, - 1.999737479161026100f, 1.999731229023702200f, 1.999724905361977200f, - 1.999718508176084000f, - 1.999712037466257600f, 1.999705493232735800f, 1.999698875475759600f, - 1.999692184195571900f, - 1.999685419392419000f, 1.999678581066549400f, 1.999671669218214600f, - 1.999664683847668800f, - 1.999657624955168700f, 1.999650492540973900f, 1.999643286605346800f, - 1.999636007148552400f, - 1.999628654170857900f, 1.999621227672533800f, 1.999613727653853500f, - 1.999606154115092500f, - 1.999598507056529000f, 1.999590786478444600f, 1.999582992381123000f, - 1.999575124764850800f, - 1.999567183629917100f, 1.999559168976613900f, 1.999551080805236100f, - 1.999542919116081000f, - 1.999534683909448600f, 1.999526375185641800f, 1.999517992944965800f, - 1.999509537187729200f, - 1.999501007914242600f, 1.999492405124819700f, 1.999483728819776900f, - 1.999474978999432800f, - 1.999466155664109600f, 1.999457258814131500f, 1.999448288449825500f, - 1.999439244571521700f, - 1.999430127179552500f, 1.999420936274252800f, 1.999411671855960900f, - 1.999402333925017300f, - 1.999392922481765500f, 1.999383437526551300f, 1.999373879059723500f, - 1.999364247081633500f, - 1.999354541592635500f, 1.999344762593086500f, 1.999334910083345700f, - 1.999324984063775700f, - 1.999314984534741100f, 1.999304911496609700f, 1.999294764949752100f, - 1.999284544894541100f, - 1.999274251331352400f, 1.999263884260564600f, 1.999253443682558900f, - 1.999242929597719200f, - 1.999232342006432000f, 1.999221680909086400f, 1.999210946306074500f, - 1.999200138197791100f, - 1.999189256584633600f, 1.999178301467001900f, 1.999167272845298900f, - 1.999156170719930100f, - 1.999144995091303600f, 1.999133745959830600f, 1.999122423325924200f, - 1.999111027190001000f, - 1.999099557552479900f, 1.999088014413782800f, 1.999076397774334000f, - 1.999064707634560700f, - 1.999052943994892300f, 1.999041106855761900f, 1.999029196217604100f, - 1.999017212080857400f, - 1.999005154445962200f, 1.998993023313361700f, 1.998980818683502100f, - 1.998968540556831800f, - 1.998956188933802800f, 1.998943763814868800f, 1.998931265200486900f, - 1.998918693091116200f, - 1.998906047487219600f, 1.998893328389261400f, 1.998880535797709700f, - 1.998867669713034500f, - 1.998854730135709400f, 1.998841717066209400f, 1.998828630505013400f, - 1.998815470452602400f, - 1.998802236909460500f, 1.998788929876074100f, 1.998775549352932400f, - 1.998762095340527400f, - 1.998748567839354000f, 1.998734966849909000f, 1.998721292372693100f, - 1.998707544408208700f, - 1.998693722956961500f, 1.998679828019459300f, 1.998665859596213500f, - 1.998651817687737300f, - 1.998637702294547000f, 1.998623513417161700f, 1.998609251056103100f, - 1.998594915211895600f, - 1.998580505885066100f, 1.998566023076144600f, 1.998551466785663400f, - 1.998536837014157900f, - 1.998522133762165900f, 1.998507357030227900f, 1.998492506818887200f, - 1.998477583128690100f, - 1.998462585960185000f, 1.998447515313923400f, 1.998432371190459500f, - 1.998417153590349900f, - 1.998401862514154200f, 1.998386497962434800f, 1.998371059935756300f, - 1.998355548434686400f, - 1.998339963459795400f, 1.998324305011656600f, 1.998308573090845200f, - 1.998292767697940100f, - 1.998276888833522300f, 1.998260936498175400f, 1.998244910692486000f, - 1.998228811417043700f, - 1.998212638672439900f, 1.998196392459269400f, 1.998180072778129600f, - 1.998163679629620500f, - 1.998147213014344900f, 1.998130672932908000f, 1.998114059385918400f, - 1.998097372373986300f, - 1.998080611897725700f, 1.998063777957752600f, 1.998046870554686100f, - 1.998029889689147700f, - 1.998012835361761900f, 1.997995707573155600f, 1.997978506323958600f, - 1.997961231614803200f, - 1.997943883446324800f, 1.997926461819161000f, 1.997908966733952500f, - 1.997891398191342400f, - 1.997873756191977000f, 1.997856040736504500f, 1.997838251825576400f, - 1.997820389459846700f, - 1.997802453639972300f, 1.997784444366612600f, 1.997766361640429800f, - 1.997748205462088500f, - 1.997729975832256600f, 1.997711672751604200f, 1.997693296220804000f, - 1.997674846240532000f, - 1.997656322811466500f, 1.997637725934288300f, 1.997619055609681600f, - 1.997600311838332500f, - 1.997581494620930300f, 1.997562603958166600f, 1.997543639850736200f, - 1.997524602299336500f, - 1.997505491304667000f, 1.997486306867430900f, 1.997467048988333000f, - 1.997447717668082000f, - 1.997428312907388200f, 1.997408834706965000f, 1.997389283067528800f, - 1.997369657989798400f, - 1.997349959474495200f, 1.997330187522343700f, 1.997310342134070800f, - 1.997290423310406100f, - 1.997270431052081900f, 1.997250365359833200f, 1.997230226234397900f, - 1.997210013676516700f, - 1.997189727686932400f, 1.997169368266390900f, 1.997148935415640600f, - 1.997128429135433400f, - 1.997107849426522600f, 1.997087196289665000f, 1.997066469725620200f, - 1.997045669735150000f, - 1.997024796319019300f, 1.997003849477995600f, 1.996982829212848900f, - 1.996961735524351900f, - 1.996940568413280600f, 1.996919327880412900f, 1.996898013926530000f, - 1.996876626552415400f, - 1.996855165758855600f, 1.996833631546639300f, 1.996812023916558800f, - 1.996790342869408000f, - 1.996768588405984300f, 1.996746760527087700f, 1.996724859233520500f, - 1.996702884526087900f, - 1.996680836405598100f, 1.996658714872861800f, 1.996636519928692000f, - 1.996614251573904900f, - 1.996591909809319400f, 1.996569494635756600f, 1.996547006054041100f, - 1.996524444064999400f, - 1.996501808669461000f, 1.996479099868258400f, 1.996456317662226300f, - 1.996433462052202600f, - 1.996410533039027400f, 1.996387530623543900f, 1.996364454806597500f, - 1.996341305589037100f, - 1.996318082971713500f, 1.996294786955480800f, 1.996271417541195300f, - 1.996247974729716200f, - 1.996224458521905600f, 1.996200868918628100f, 1.996177205920750800f, - 1.996153469529144100f, - 1.996129659744680300f, 1.996105776568235100f, 1.996081820000686500f, - 1.996057790042915500f, - 1.996033686695805300f, 1.996009509960242400f, 1.995985259837115500f, - 1.995960936327316300f, - 1.995936539431739000f, 1.995912069151280800f, 1.995887525486841300f, - 1.995862908439323100f, - 1.995838218009630800f, 1.995813454198672700f, 1.995788617007359100f, - 1.995763706436603200f, - 1.995738722487320600f, 1.995713665160430600f, 1.995688534456853800f, - 1.995663330377514400f, - 1.995638052923339300f, 1.995612702095257400f, 1.995587277894201400f, - 1.995561780321105600f, - 1.995536209376907600f, 1.995510565062547800f, 1.995484847378968600f, - 1.995459056327116000f, - 1.995433191907938000f, 1.995407254122385700f, 1.995381242971412600f, - 1.995355158455975200f, - 1.995329000577032800f, 1.995302769335546500f, 1.995276464732481200f, - 1.995250086768804100f, - 1.995223635445484900f, 1.995197110763496000f, 1.995170512723813100f, - 1.995143841327413400f, - 1.995117096575278200f, 1.995090278468390600f, 1.995063387007736600f, - 1.995036422194304700f, - 1.995009384029086800f, 1.994982272513076600f, 1.994955087647271000f, - 1.994927829432669800f, - 1.994900497870274900f, 1.994873092961091200f, 1.994845614706126400f, - 1.994818063106391000f, - 1.994790438162897600f, 1.994762739876662100f, 1.994734968248702800f, - 1.994707123280041100f, - 1.994679204971700100f, 1.994651213324707000f, 1.994623148340090700f, - 1.994595010018883000f, - 1.994566798362118300f, 1.994538513370834200f, 1.994510155046070700f, - 1.994481723388870100f, - 1.994453218400277900f, 1.994424640081342100f, 1.994395988433113700f, - 1.994367263456646100f, - 1.994338465152995000f, 1.994309593523219600f, 1.994280648568381500f, - 1.994251630289544600f, - 1.994222538687776100f, 1.994193373764145500f, 1.994164135519725000f, - 1.994134823955589800f, - 1.994105439072817700f, 1.994075980872488800f, 1.994046449355686200f, - 1.994016844523496000f, - 1.993987166377006600f, 1.993957414917308700f, 1.993927590145496900f, - 1.993897692062667200f, - 1.993867720669919400f, 1.993837675968354700f, 1.993807557959078600f, - 1.993777366643197900f, - 1.993747102021822900f, 1.993716764096066200f, 1.993686352867043200f, - 1.993655868335872300f, - 1.993625310503674100f, 1.993594679371572200f, 1.993563974940692800f, - 1.993533197212164800f, - 1.993502346187119700f, 1.993471421866692200f, 1.993440424252018900f, - 1.993409353344239600f, - 1.993378209144496700f, 1.993346991653935300f, 1.993315700873703200f, - 1.993284336804950900f, - 1.993252899448831400f, 1.993221388806500900f, 1.993189804879117500f, - 1.993158147667842800f, - 1.993126417173840500f, 1.993094613398277400f, 1.993062736342323000f, - 1.993030786007148800f, - 1.992998762393930000f, 1.992966665503844000f, 1.992934495338070800f, - 1.992902251897793000f, - 1.992869935184196300f, 1.992837545198469000f, 1.992805081941801700f, - 1.992772545415388200f, - 1.992739935620424700f, 1.992707252558110200f, 1.992674496229646500f, - 1.992641666636237700f, - 1.992608763779091000f, 1.992575787659416100f, 1.992542738278425300f, - 1.992509615637334100f, - 1.992476419737359900f, 1.992443150579723500f, 1.992409808165648100f, - 1.992376392496359300f, - 1.992342903573086000f, 1.992309341397059600f, 1.992275705969513800f, - 1.992241997291685400f, - 1.992208215364813700f, 1.992174360190140900f, 1.992140431768911500f, - 1.992106430102373400f, - 1.992072355191776300f, 1.992038207038373300f, 1.992003985643419700f, - 1.991969691008174100f, - 1.991935323133897000f, 1.991900882021852200f, 1.991866367673306200f, - 1.991831780089527500f, - 1.991797119271788300f, 1.991762385221362600f, 1.991727577939527600f, - 1.991692697427563300f, - 1.991657743686751700f, 1.991622716718378400f, 1.991587616523731000f, - 1.991552443104099800f, - 1.991517196460778500f, 1.991481876595062800f, 1.991446483508251500f, - 1.991411017201645500f, - 1.991375477676549100f, 1.991339864934268800f, 1.991304178976114100f, - 1.991268419803397200f, - 1.991232587417432600f, 1.991196681819537900f, 1.991160703011033200f, - 1.991124650993241400f, - 1.991088525767488200f, 1.991052327335101300f, 1.991016055697411900f, - 1.990979710855753900f, - 1.990943292811463000f, 1.990906801565878600f, 1.990870237120342400f, - 1.990833599476198800f, - 1.990796888634794400f, 1.990760104597479400f, 1.990723247365606200f, - 1.990686316940529800f, - 1.990649313323608100f, 1.990612236516201300f, 1.990575086519673200f, - 1.990537863335389400f, - 1.990500566964718400f, 1.990463197409031700f, 1.990425754669703100f, - 1.990388238748109100f, - 1.990350649645629600f, 1.990312987363646000f, 1.990275251903543600f, - 1.990237443266709400f, - 1.990199561454533600f, 1.990161606468409300f, 1.990123578309731700f, - 1.990085476979899000f, - 1.990047302480312300f, 1.990009054812374800f, 1.989970733977493000f, - 1.989932339977075900f, - 1.989893872812535000f, 1.989855332485284800f, 1.989816718996742200f, - 1.989778032348326700f, - 1.989739272541461100f, 1.989700439577570400f, 1.989661533458082100f, - 1.989622554184426800f, - 1.989583501758037700f, 1.989544376180350600f, 1.989505177452804100f, - 1.989465905576839600f, - 1.989426560553900500f, 1.989387142385433900f, 1.989347651072888900f, - 1.989308086617717500f, - 1.989268449021374300f, 1.989228738285316900f, 1.989188954411005100f, - 1.989149097399901500f, - 1.989109167253472000f, 1.989069163973184300f, 1.989029087560509700f, - 1.988988938016921000f, - 1.988948715343894900f, 1.988908419542910100f, 1.988868050615448100f, - 1.988827608562993200f, - 1.988787093387032600f, 1.988746505089055600f, 1.988705843670554500f, - 1.988665109133024500f, - 1.988624301477963200f, 1.988583420706871100f, 1.988542466821251000f, - 1.988501439822608900f, - 1.988460339712453200f, 1.988419166492295000f, 1.988377920163648000f, - 1.988336600728029000f, - 1.988295208186956700f, 1.988253742541953800f, 1.988212203794544000f, - 1.988170591946255100f, - 1.988128906998616800f, 1.988087148953161700f, 1.988045317811425700f, - 1.988003413574946000f, - 1.987961436245263800f, 1.987919385823922400f, 1.987877262312467600f, - 1.987835065712448600f, - 1.987792796025416500f, 1.987750453252925500f, 1.987708037396532800f, - 1.987665548457797400f, - 1.987622986438281700f, 1.987580351339550700f, 1.987537643163171700f, - 1.987494861910715100f, - 1.987452007583754100f, 1.987409080183863800f, 1.987366079712622900f, - 1.987323006171612500f, - 1.987279859562415900f, 1.987236639886619700f, 1.987193347145813000f, - 1.987149981341587400f, - 1.987106542475537400f, 1.987063030549260300f, 1.987019445564355700f, - 1.986975787522426100f, - 1.986932056425076800f, 1.986888252273915500f, 1.986844375070552900f, - 1.986800424816602200f, - 1.986756401513679400f, 1.986712305163403000f, 1.986668135767394300f, - 1.986623893327277500f, - 1.986579577844678900f, 1.986535189321228000f, 1.986490727758556800f, - 1.986446193158300400f, - 1.986401585522095600f, 1.986356904851583000f, 1.986312151148405200f, - 1.986267324414207500f, - 1.986222424650638400f, 1.986177451859348200f, 1.986132406041990900f, - 1.986087287200222700f, - 1.986042095335702300f, 1.985996830450091200f, 1.985951492545054100f, - 1.985906081622257300f, - 1.985860597683371000f, 1.985815040730067200f, 1.985769410764020900f, - 1.985723707786909900f, - 1.985677931800414500f, 1.985632082806217900f, 1.985586160806005700f, - 1.985540165801466200f, - 1.985494097794290800f, 1.985447956786173100f, 1.985401742778809500f, - 1.985355455773899500f, - 1.985309095773144500f, 1.985262662778249300f, 1.985216156790921000f, - 1.985169577812869500f, - 1.985122925845807400f, 1.985076200891450000f, 1.985029402951515200f, - 1.984982532027723700f, - 1.984935588121798700f, 1.984888571235466200f, 1.984841481370454900f, - 1.984794318528496200f, - 1.984747082711324100f, 1.984699773920675300f, 1.984652392158289500f, - 1.984604937425908300f, - 1.984557409725276700f, 1.984509809058142300f, 1.984462135426255000f, - 1.984414388831367900f, - 1.984366569275236400f, 1.984318676759618400f, 1.984270711286275200f, - 1.984222672856969800f, - 1.984174561473469200f, 1.984126377137541700f, 1.984078119850959200f, - 1.984029789615495900f, - 1.983981386432928800f, 1.983932910305037400f, 1.983884361233604100f, - 1.983835739220414000f, - 1.983787044267254700f, 1.983738276375916800f, 1.983689435548192900f, - 1.983640521785879200f, - 1.983591535090773800f, 1.983542475464678000f, 1.983493342909395500f, - 1.983444137426732600f, - 1.983394859018498900f, 1.983345507686505900f, 1.983296083432567900f, - 1.983246586258502700f, - 1.983197016166129400f, 1.983147373157271300f, 1.983097657233753100f, - 1.983047868397403100f, - 1.982998006650051400f, 1.982948071993531700f, 1.982898064429679900f, - 1.982847983960334600f, - 1.982797830587336800f, 1.982747604312531200f, 1.982697305137763700f, - 1.982646933064884200f, - 1.982596488095744300f, 1.982545970232199000f, 1.982495379476105800f, - 1.982444715829324600f, - 1.982393979293718200f, 1.982343169871152000f, 1.982292287563494300f, - 1.982241332372615600f, - 1.982190304300389400f, 1.982139203348692200f, 1.982088029519402300f, - 1.982036782814401900f, - 1.981985463235574700f, 1.981934070784807400f, 1.981882605463990200f, - 1.981831067275015000f, - 1.981779456219776600f, 1.981727772300172500f, 1.981676015518103500f, - 1.981624185875472000f, - 1.981572283374183800f, 1.981520308016147200f, 1.981468259803273300f, - 1.981416138737475800f, - 1.981363944820670800f, 1.981311678054777500f, 1.981259338441717400f, - 1.981206925983415300f, - 1.981154440681797800f, 1.981101882538794900f, 1.981049251556338900f, - 1.980996547736364900f, - 1.980943771080810700f, 1.980890921591616600f, 1.980837999270726100f, - 1.980785004120084700f, - 1.980731936141640900f, 1.980678795337345900f, 1.980625581709153600f, - 1.980572295259020600f, - 1.980518935988905700f, 1.980465503900771000f, 1.980411998996581200f, - 1.980358421278303200f, - 1.980304770747907300f, 1.980251047407365600f, 1.980197251258653900f, - 1.980143382303749500f, - 1.980089440544633600f, 1.980035425983289300f, 1.979981338621702200f, - 1.979927178461861500f, - 1.979872945505758000f, 1.979818639755386100f, 1.979764261212742400f, - 1.979709809879825800f, - 1.979655285758638900f, 1.979600688851186100f, 1.979546019159474900f, - 1.979491276685515300f, - 1.979436461431320000f, 1.979381573398904400f, 1.979326612590286400f, - 1.979271579007487100f, - 1.979216472652529900f, 1.979161293527440500f, 1.979106041634248100f, - 1.979050716974983800f, - 1.978995319551682100f, 1.978939849366379700f, 1.978884306421115900f, - 1.978828690717932900f, - 1.978773002258875600f, 1.978717241045991700f, 1.978661407081331100f, - 1.978605500366946700f, - 1.978549520904894000f, 1.978493468697231300f, 1.978437343746019600f, - 1.978381146053322000f, - 1.978324875621205300f, 1.978268532451738200f, 1.978212116546992100f, - 1.978155627909041300f, - 1.978099066539962900f, 1.978042432441836400f, 1.977985725616743900f, - 1.977928946066770600f, - 1.977872093794004200f, 1.977815168800534500f, 1.977758171088455100f, - 1.977701100659861300f, - 1.977643957516851400f, 1.977586741661526500f, 1.977529453095990200f, - 1.977472091822348700f, - 1.977414657842711200f, 1.977357151159189400f, 1.977299571773897700f, - 1.977241919688953000f, - 1.977184194906475000f, 1.977126397428586000f, 1.977068527257411300f, - 1.977010584395078300f, - 1.976952568843717700f, 1.976894480605462500f, 1.976836319682448300f, - 1.976778086076813600f, - 1.976719779790699500f, 1.976661400826249500f, 1.976602949185610500f, - 1.976544424870931400f, - 1.976485827884363800f, 1.976427158228062100f, 1.976368415904183900f, - 1.976309600914888400f, - 1.976250713262338600f, 1.976191752948699200f, 1.976132719976138000f, - 1.976073614346825800f, - 1.976014436062935700f, 1.975955185126643300f, 1.975895861540127200f, - 1.975836465305568400f, - 1.975776996425151000f, 1.975717454901061400f, 1.975657840735488800f, - 1.975598153930624900f, - 1.975538394488664200f, 1.975478562411804100f, 1.975418657702244300f, - 1.975358680362187400f, - 1.975298630393838500f, 1.975238507799405500f, 1.975178312581099100f, - 1.975118044741132300f, - 1.975057704281721000f, 1.974997291205083700f, 1.974936805513442000f, - 1.974876247209019100f, - 1.974815616294042200f, 1.974754912770740200f, 1.974694136641345300f, - 1.974633287908091500f, - 1.974572366573216400f, 1.974511372638960000f, 1.974450306107564900f, - 1.974389166981275900f, - 1.974327955262341400f, 1.974266670953011400f, 1.974205314055540000f, - 1.974143884572182400f, - 1.974082382505197400f, 1.974020807856846400f, 1.973959160629393100f, - 1.973897440825104200f, - 1.973835648446248900f, 1.973773783495099500f, 1.973711845973930000f, - 1.973649835885018100f, - 1.973587753230643400f, 1.973525598013088800f, 1.973463370234639600f, - 1.973401069897583200f, - 1.973338697004211100f, 1.973276251556815600f, 1.973213733557693400f, - 1.973151143009142800f, - 1.973088479913465100f, 1.973025744272964200f, 1.972962936089946800f, - 1.972900055366722000f, - 1.972837102105601900f, 1.972774076308901200f, 1.972710977978936900f, - 1.972647807118029300f, - 1.972584563728500700f, 1.972521247812676600f, 1.972457859372884500f, - 1.972394398411455800f, - 1.972330864930723200f, 1.972267258933022600f, 1.972203580420693000f, - 1.972139829396075200f, - 1.972076005861513700f, 1.972012109819354600f, 1.971948141271947500f, - 1.971884100221644300f, - 1.971819986670799500f, 1.971755800621770400f, 1.971691542076916800f, - 1.971627211038601500f, - 1.971562807509189800f, 1.971498331491049700f, 1.971433782986551400f, - 1.971369161998068400f, - 1.971304468527976800f, 1.971239702578655000f, 1.971174864152484400f, - 1.971109953251848600f, - 1.971044969879134600f, 1.970979914036731500f, 1.970914785727030800f, - 1.970849584952427900f, - 1.970784311715319400f, 1.970718966018105500f, 1.970653547863188600f, - 1.970588057252973900f, - 1.970522494189869800f, 1.970456858676286300f, 1.970391150714636800f, - 1.970325370307337100f, - 1.970259517456806100f, 1.970193592165464700f, 1.970127594435737000f, - 1.970061524270049400f, - 1.969995381670831100f, 1.969929166640514100f, 1.969862879181532700f, - 1.969796519296324300f, - 1.969730086987328900f, 1.969663582256988600f, 1.969597005107748900f, - 1.969530355542057800f, - 1.969463633562365400f, 1.969396839171125200f, 1.969329972370792700f, - 1.969263033163826800f, - 1.969196021552688500f, 1.969128937539841500f, 1.969061781127752400f, - 1.968994552318890300f, - 1.968927251115727200f, 1.968859877520737300f, 1.968792431536398000f, - 1.968724913165188900f, - 1.968657322409592500f, 1.968589659272094000f, 1.968521923755181000f, - 1.968454115861344000f, - 1.968386235593076300f, 1.968318282952873600f, 1.968250257943234200f, - 1.968182160566659000f, - 1.968113990825652200f, 1.968045748722719900f, 1.967977434260371300f, - 1.967909047441118100f, - 1.967840588267474500f, 1.967772056741957900f, 1.967703452867087800f, - 1.967634776645386600f, - 1.967566028079379200f, 1.967497207171593500f, 1.967428313924559600f, - 1.967359348340810700f, - 1.967290310422882700f, 1.967221200173313400f, 1.967152017594644200f, - 1.967082762689418500f, - 1.967013435460182700f, 1.966944035909485600f, 1.966874564039879300f, - 1.966805019853917500f, - 1.966735403354157500f, 1.966665714543159000f, 1.966595953423483800f, - 1.966526119997697100f, - 1.966456214268366600f, 1.966386236238062200f, 1.966316185909357200f, - 1.966246063284826700f, - 1.966175868367049400f, 1.966105601158605600f, 1.966035261662079300f, - 1.965964849880056600f, - 1.965894365815126000f, 1.965823809469879400f, 1.965753180846910900f, - 1.965682479948817100f, - 1.965611706778197700f, 1.965540861337654600f, 1.965469943629792700f, - 1.965398953657219600f, - 1.965327891422544900f, 1.965256756928382100f, 1.965185550177345900f, - 1.965114271172054800f, - 1.965042919915129400f, 1.964971496409193100f, 1.964900000656872000f, - 1.964828432660794500f, - 1.964756792423592200f, 1.964685079947899200f, 1.964613295236352000f, - 1.964541438291590000f, - 1.964469509116255000f, 1.964397507712991800f, 1.964325434084447600f, - 1.964253288233272400f, - 1.964181070162119000f, 1.964108779873642100f, 1.964036417370500300f, - 1.963963982655353400f, - 1.963891475730865400f, 1.963818896599701400f, 1.963746245264530700f, - 1.963673521728023900f, - 1.963600725992855200f, 1.963527858061700600f, 1.963454917937239800f, - 1.963381905622154400f, - 1.963308821119128700f, 1.963235664430850200f, 1.963162435560008100f, - 1.963089134509295300f, - 1.963015761281406800f, 1.962942315879040000f, 1.962868798304895400f, - 1.962795208561676200f, - 1.962721546652088200f, 1.962647812578839400f, 1.962574006344640900f, - 1.962500127952206300f, - 1.962426177404252200f, 1.962352154703497200f, 1.962278059852663000f, - 1.962203892854473800f, - 1.962129653711656800f, 1.962055342426941400f, 1.961980959003059500f, - 1.961906503442746300f, - 1.961831975748739200f, 1.961757375923778700f, 1.961682703970607100f, - 1.961607959891970200f, - 1.961533143690616000f, 1.961458255369295400f, 1.961383294930761700f, - 1.961308262377770900f, - 1.961233157713082200f, 1.961157980939456400f, 1.961082732059657800f, - 1.961007411076453000f, - 1.960932017992611500f, 1.960856552810905200f, 1.960781015534108800f, - 1.960705406164999300f, - 1.960629724706357100f, 1.960553971160964500f, 1.960478145531606700f, - 1.960402247821071900f, - 1.960326278032150200f, 1.960250236167635100f, 1.960174122230322400f, - 1.960097936223010400f, - 1.960021678148500500f, 1.959945348009596500f, 1.959868945809104500f, - 1.959792471549834000f, - 1.959715925234596600f, 1.959639306866206600f, 1.959562616447480900f, - 1.959485853981239600f, - 1.959409019470304700f, 1.959332112917501400f, 1.959255134325657000f, - 1.959178083697602300f, - 1.959100961036169800f, 1.959023766344195200f, 1.958946499624516700f, - 1.958869160879975500f, - 1.958791750113414700f, 1.958714267327680500f, 1.958636712525621900f, - 1.958559085710090500f, - 1.958481386883940100f, 1.958403616050027600f, 1.958325773211212300f, - 1.958247858370356400f, - 1.958169871530324600f, 1.958091812693984400f, 1.958013681864205500f, - 1.957935479043860600f, - 1.957857204235825100f, 1.957778857442976900f, 1.957700438668196700f, - 1.957621947914367500f, - 1.957543385184375300f, 1.957464750481108700f, 1.957386043807458800f, - 1.957307265166319500f, - 1.957228414560587200f, 1.957149491993160900f, 1.957070497466942400f, - 1.956991430984836400f, - 1.956912292549749500f, 1.956833082164591600f, 1.956753799832275300f, - 1.956674445555715000f, - 1.956595019337829000f, 1.956515521181537000f, 1.956435951089762200f, - 1.956356309065430100f, - 1.956276595111468900f, 1.956196809230809500f, 1.956116951426385600f, - 1.956037021701132900f, - 1.955957020057990500f, 1.955876946499899700f, 1.955796801029804800f, - 1.955716583650652000f, - 1.955636294365391300f, 1.955555933176974300f, 1.955475500088355900f, - 1.955394995102493100f, - 1.955314418222346100f, 1.955233769450877200f, 1.955153048791052000f, - 1.955072256245838000f, - 1.954991391818206000f, 1.954910455511129000f, 1.954829447327582900f, - 1.954748367270545900f, - 1.954667215342999600f, 1.954585991547927100f, 1.954504695888315000f, - 1.954423328367152600f, - 1.954341888987431100f, 1.954260377752145000f, 1.954178794664291200f, - 1.954097139726869600f, - 1.954015412942881900f, 1.953933614315333200f, 1.953851743847231100f, - 1.953769801541585400f, - 1.953687787401409400f, 1.953605701429718100f, 1.953523543629529700f, - 1.953441314003864900f, - 1.953359012555747200f, 1.953276639288202400f, 1.953194194204259200f, - 1.953111677306948800f, - 1.953029088599305100f, 1.952946428084364900f, 1.952863695765167100f, - 1.952780891644753500f, - 1.952698015726169100f, 1.952615068012460300f, 1.952532048506677300f, - 1.952448957211872200f, - 1.952365794131100300f, 1.952282559267419100f, 1.952199252623889200f, - 1.952115874203572900f, - 1.952032424009536600f, 1.951948902044847900f, 1.951865308312577900f, - 1.951781642815800100f, - 1.951697905557590700f, 1.951614096541028500f, 1.951530215769194700f, - 1.951446263245173500f, - 1.951362238972051500f, 1.951278142952918200f, 1.951193975190865600f, - 1.951109735688987900f, - 1.951025424450382900f, 1.950941041478150100f, 1.950856586775392200f, - 1.950772060345214300f, - 1.950687462190724200f, 1.950602792315032200f, 1.950518050721251600f, - 1.950433237412498000f, - 1.950348352391889600f, 1.950263395662547700f, 1.950178367227595900f, - 1.950093267090159800f, - 1.950008095253369200f, 1.949922851720355100f, 1.949837536494251700f, - 1.949752149578196000f, - 1.949666690975327100f, 1.949581160688787400f, 1.949495558721721500f, - 1.949409885077276500f, - 1.949324139758602700f, 1.949238322768852800f, 1.949152434111181700f, - 1.949066473788747300f, - 1.948980441804710300f, 1.948894338162233900f, 1.948808162864483600f, - 1.948721915914628100f, - 1.948635597315838200f, 1.948549207071288000f, 1.948462745184153400f, - 1.948376211657613500f, - 1.948289606494849800f, 1.948202929699046800f, 1.948116181273391100f, - 1.948029361221072400f, - 1.947942469545282500f, 1.947855506249216700f, 1.947768471336071700f, - 1.947681364809048100f, - 1.947594186671348000f, 1.947506936926177300f, 1.947419615576743600f, - 1.947332222626257500f, - 1.947244758077932200f, 1.947157221934983500f, 1.947069614200629900f, - 1.946981934878092300f, - 1.946894183970594900f, 1.946806361481363500f, 1.946718467413627300f, - 1.946630501770618000f, - 1.946542464555569800f, 1.946454355771719300f, 1.946366175422306500f, - 1.946277923510573200f, - 1.946189600039764300f, 1.946101205013127000f, 1.946012738433911600f, - 1.945924200305370700f, - 1.945835590630759400f, 1.945746909413335900f, 1.945658156656360700f, - 1.945569332363096700f, - 1.945480436536810100f, 1.945391469180769200f, 1.945302430298244900f, - 1.945213319892511200f, - 1.945124137966844200f, 1.945034884524523100f, 1.944945559568829200f, - 1.944856163103046800f, - 1.944766695130463000f, 1.944677155654366900f, 1.944587544678050900f, - 1.944497862204809900f, - 1.944408108237940700f, 1.944318282780743900f, 1.944228385836521700f, - 1.944138417408579400f, - 1.944048377500225100f, 1.943958266114769200f, 1.943868083255524800f, - 1.943777828925807600f, - 1.943687503128936200f, 1.943597105868231500f, 1.943506637147017300f, - 1.943416096968619400f, - 1.943325485336367300f, 1.943234802253592400f, 1.943144047723628400f, - 1.943053221749812400f, - 1.942962324335484100f, 1.942871355483985200f, 1.942780315198660200f, - 1.942689203482856900f, - 1.942598020339924700f, 1.942506765773216500f, 1.942415439786087300f, - 1.942324042381895000f, - 1.942232573564000000f, 1.942141033335765400f, 1.942049421700556600f, - 1.941957738661741900f, - 1.941865984222692900f, 1.941774158386782200f, 1.941682261157386700f, - 1.941590292537884700f, - 1.941498252531658200f, 1.941406141142090600f, 1.941313958372568900f, - 1.941221704226482500f, - 1.941129378707223000f, 1.941036981818185400f, 1.940944513562766300f, - 1.940851973944365900f, - 1.940759362966386600f, 1.940666680632233200f, 1.940573926945313700f, - 1.940481101909038200f, - 1.940388205526819600f, 1.940295237802073500f, 1.940202198738217900f, - 1.940109088338673600f, - 1.940015906606864300f, 1.939922653546215500f, 1.939829329160156500f, - 1.939735933452118000f, - 1.939642466425534300f, 1.939548928083841800f, 1.939455318430479500f, - 1.939361637468889100f, - 1.939267885202515400f, 1.939174061634805000f, 1.939080166769207700f, - 1.938986200609175600f, - 1.938892163158163700f, 1.938798054419629500f, 1.938703874397032800f, - 1.938609623093837000f, - 1.938515300513506700f, 1.938420906659510600f, 1.938326441535318500f, - 1.938231905144404400f, - 1.938137297490243500f, 1.938042618576314400f, 1.937947868406098500f, - 1.937853046983079300f, - 1.937758154310742900f, 1.937663190392578500f, 1.937568155232077600f, - 1.937473048832734500f, - 1.937377871198045600f, 1.937282622331510500f, 1.937187302236631500f, - 1.937091910916912900f, - 1.936996448375861900f, 1.936900914616988900f, 1.936805309643805800f, - 1.936709633459828200f, - 1.936613886068573500f, 1.936518067473562300f, 1.936422177678317300f, - 1.936326216686364400f, - 1.936230184501231500f, 1.936134081126449800f, 1.936037906565552400f, - 1.935941660822075600f, - 1.935845343899558000f, 1.935748955801540800f, 1.935652496531568000f, - 1.935555966093186300f, - 1.935459364489944500f, 1.935362691725394500f, 1.935265947803090900f, - 1.935169132726590500f, - 1.935072246499453000f, 1.934975289125240500f, 1.934878260607517900f, - 1.934781160949852600f, - 1.934683990155814800f, 1.934586748228977100f, 1.934489435172914900f, - 1.934392050991206300f, - 1.934294595687431300f, 1.934197069265173500f, 1.934099471728018700f, - 1.934001803079554700f, - 1.933904063323373300f, 1.933806252463067500f, 1.933708370502233800f, - 1.933610417444471000f, - 1.933512393293380600f, 1.933414298052566600f, 1.933316131725635800f, - 1.933217894316197300f, - 1.933119585827862900f, 1.933021206264247600f, 1.932922755628968100f, - 1.932824233925644300f, - 1.932725641157898600f, 1.932626977329356100f, 1.932528242443643900f, - 1.932429436504392800f, - 1.932330559515235100f, 1.932231611479806800f, 1.932132592401745400f, - 1.932033502284691700f, - 1.931934341132289100f, 1.931835108948183300f, 1.931735805736022800f, - 1.931636431499459000f, - 1.931536986242145200f, 1.931437469967737900f, 1.931337882679895900f, - 1.931238224382281000f, - 1.931138495078557300f, 1.931038694772391200f, 1.930938823467452500f, - 1.930838881167413100f, - 1.930738867875947400f, 1.930638783596732700f, 1.930538628333448900f, - 1.930438402089778200f, - 1.930338104869405900f, 1.930237736676019500f, 1.930137297513309300f, - 1.930036787384968200f, - 1.929936206294691400f, 1.929835554246177400f, 1.929734831243126600f, - 1.929634037289242400f, - 1.929533172388230700f, 1.929432236543799900f, 1.929331229759661200f, - 1.929230152039528500f, - 1.929129003387117800f, 1.929027783806148300f, 1.928926493300341400f, - 1.928825131873421500f, - 1.928723699529115000f, 1.928622196271151800f, 1.928520622103263400f, - 1.928418977029184600f, - 1.928317261052652700f, 1.928215474177407100f, 1.928113616407190600f, - 1.928011687745748300f, - 1.927909688196827400f, 1.927807617764178300f, 1.927705476451554000f, - 1.927603264262709900f, - 1.927500981201404100f, 1.927398627271397000f, 1.927296202476451900f, - 1.927193706820335100f, - 1.927091140306814500f, 1.926988502939661400f, 1.926885794722649600f, - 1.926783015659555300f, - 1.926680165754157500f, 1.926577245010237400f, 1.926474253431579500f, - 1.926371191021970100f, - 1.926268057785198700f, 1.926164853725057300f, 1.926061578845340600f, - 1.925958233149845000f, - 1.925854816642371000f, 1.925751329326720600f, 1.925647771206698600f, - 1.925544142286112800f, - 1.925440442568773000f, 1.925336672058492300f, 1.925232830759086000f, - 1.925128918674371900f, - 1.925024935808170600f, 1.924920882164305300f, 1.924816757746601800f, - 1.924712562558888100f, - 1.924608296604995800f, 1.924503959888757900f, 1.924399552414010700f, - 1.924295074184593000f, - 1.924190525204346300f, 1.924085905477114400f, 1.923981215006744100f, - 1.923876453797084300f, - 1.923771621851986700f, 1.923666719175306100f, 1.923561745770898900f, - 1.923456701642625200f, - 1.923351586794346900f, 1.923246401229928600f, 1.923141144953238300f, - 1.923035817968145300f, - 1.922930420278522500f, 1.922824951888245000f, 1.922719412801190600f, - 1.922613803021239600f, - 1.922508122552275100f, 1.922402371398182600f, 1.922296549562850100f, - 1.922190657050168800f, - 1.922084693864031700f, 1.921978660008334600f, 1.921872555486976700f, - 1.921766380303858500f, - 1.921660134462884100f, 1.921553817967959900f, 1.921447430822994500f, - 1.921340973031900000f, - 1.921234444598590100f, 1.921127845526981600f, 1.921021175820994100f, - 1.920914435484549100f, - 1.920807624521571700f, 1.920700742935988600f, 1.920593790731729600f, - 1.920486767912727300f, - 1.920379674482916500f, 1.920272510446234400f, 1.920165275806621400f, - 1.920057970568020100f, - 1.919950594734376000f, 1.919843148309637000f, 1.919735631297753400f, - 1.919628043702678300f, - 1.919520385528367300f, 1.919412656778779000f, 1.919304857457874200f, - 1.919196987569616200f, - 1.919089047117971100f, 1.918981036106907700f, 1.918872954540397300f, - 1.918764802422413500f, - 1.918656579756932800f, 1.918548286547934400f, 1.918439922799399800f, - 1.918331488515313300f, - 1.918222983699661600f, 1.918114408356434300f, 1.918005762489623400f, - 1.917897046103223200f, - 1.917788259201231200f, 1.917679401787647100f, 1.917570473866473200f, - 1.917461475441714500f, - 1.917352406517378600f, 1.917243267097475700f, 1.917134057186018300f, - 1.917024776787022100f, - 1.916915425904504700f, 1.916806004542486800f, 1.916696512704991500f, - 1.916586950396044400f, - 1.916477317619674100f, 1.916367614379911100f, 1.916257840680788900f, - 1.916147996526343700f, - 1.916038081920614400f, 1.915928096867641800f, 1.915818041371470000f, - 1.915707915436145200f, - 1.915597719065716700f, 1.915487452264236000f, 1.915377115035757200f, - 1.915266707384337200f, - 1.915156229314035200f, 1.915045680828913400f, 1.914935061933036300f, - 1.914824372630470800f, - 1.914713612925287100f, 1.914602782821557000f, 1.914491882323355700f, - 1.914380911434760500f, - 1.914269870159851700f, 1.914158758502712000f, 1.914047576467426500f, - 1.913936324058083100f, - 1.913825001278772100f, 1.913713608133586600f, 1.913602144626622500f, - 1.913490610761977600f, - 1.913379006543752800f, 1.913267331976051400f, 1.913155587062979500f, - 1.913043771808645700f, - 1.912931886217160900f, 1.912819930292639000f, 1.912707904039196300f, - 1.912595807460951500f, - 1.912483640562026200f, 1.912371403346544400f, 1.912259095818632700f, - 1.912146717982420500f, - 1.912034269842039600f, 1.911921751401624200f, 1.911809162665311500f, - 1.911696503637241100f, - 1.911583774321554700f, 1.911470974722397500f, 1.911358104843916500f, - 1.911245164690262000f, - 1.911132154265586100f, 1.911019073574044200f, 1.910905922619793800f, - 1.910792701406995000f, - 1.910679409939810600f, 1.910566048222406300f, 1.910452616258949900f, - 1.910339114053611900f, - 1.910225541610565800f, 1.910111898933986900f, 1.909998186028053700f, - 1.909884402896947100f, - 1.909770549544850500f, 1.909656625975950200f, 1.909542632194434700f, - 1.909428568204495100f, - 1.909314434010325400f, 1.909200229616121700f, 1.909085955026083200f, - 1.908971610244411600f, - 1.908857195275310800f, 1.908742710122987700f, 1.908628154791651300f, - 1.908513529285513500f, - 1.908398833608789100f, 1.908284067765694900f, 1.908169231760450400f, - 1.908054325597278200f, - 1.907939349280402400f, 1.907824302814050900f, 1.907709186202453600f, - 1.907593999449842800f, - 1.907478742560453600f, 1.907363415538523700f, 1.907248018388293400f, - 1.907132551114005600f, - 1.907017013719905600f, 1.906901406210241200f, 1.906785728589263300f, - 1.906669980861224900f, - 1.906554163030381500f, 1.906438275100991600f, 1.906322317077316300f, - 1.906206288963618700f, - 1.906090190764164700f, 1.905974022483223300f, 1.905857784125065500f, - 1.905741475693964800f, - 1.905625097194197900f, 1.905508648630043700f, 1.905392130005783400f, - 1.905275541325701400f, - 1.905158882594083900f, 1.905042153815220700f, 1.904925354993402900f, - 1.904808486132925300f, - 1.904691547238084800f, 1.904574538313180700f, 1.904457459362515200f, - 1.904340310390393100f, - 1.904223091401121600f, 1.904105802399010300f, 1.903988443388371600f, - 1.903871014373520700f, - 1.903753515358774800f, 1.903635946348454500f, 1.903518307346881800f, - 1.903400598358382600f, - 1.903282819387284200f, 1.903164970437917400f, 1.903047051514615000f, - 1.902929062621712600f, - 1.902811003763547900f, 1.902692874944462300f, 1.902574676168798700f, - 1.902456407440902700f, - 1.902338068765123200f, 1.902219660145810800f, 1.902101181587319000f, - 1.901982633094004200f, - 1.901864014670225000f, 1.901745326320342500f, 1.901626568048721000f, - 1.901507739859726200f, - 1.901388841757727600f, 1.901269873747096600f, 1.901150835832207100f, - 1.901031728017436300f, - 1.900912550307162700f, 1.900793302705768900f, 1.900673985217638900f, - 1.900554597847159400f, - 1.900435140598720500f, 1.900315613476714100f, 1.900196016485534700f, - 1.900076349629579600f, - 1.899956612913248800f, 1.899836806340944300f, 1.899716929917071500f, - 1.899596983646037600f, - 1.899476967532252900f, 1.899356881580129800f, 1.899236725794083600f, - 1.899116500178532200f, - 1.898996204737895900f, 1.898875839476597700f, 1.898755404399062900f, - 1.898634899509719500f, - 1.898514324812998300f, 1.898393680313332600f, 1.898272966015157800f, - 1.898152181922912600f, - 1.898031328041037700f, 1.897910404373976500f, 1.897789410926175000f, - 1.897668347702081900f, - 1.897547214706148300f, 1.897426011942827900f, 1.897304739416577200f, - 1.897183397131854600f, - 1.897061985093121800f, 1.896940503304842800f, 1.896818951771484000f, - 1.896697330497514800f, - 1.896575639487406300f, 1.896453878745633100f, 1.896332048276672100f, - 1.896210148085002400f, - 1.896088178175106200f, 1.895966138551467700f, 1.895844029218574100f, - 1.895721850180915000f, - 1.895599601442982600f, 1.895477283009271400f, 1.895354894884279100f, - 1.895232437072505300f, - 1.895109909578452500f, 1.894987312406625700f, 1.894864645561532100f, - 1.894741909047682500f, - 1.894619102869589100f, 1.894496227031767100f, 1.894373281538734400f, - 1.894250266395011600f, - 1.894127181605121100f, 1.894004027173588700f, 1.893880803104942600f, - 1.893757509403713100f, - 1.893634146074433500f, 1.893510713121639300f, 1.893387210549869000f, - 1.893263638363663400f, - 1.893139996567565900f, 1.893016285166122500f, 1.892892504163881600f, - 1.892768653565394300f, - 1.892644733375214300f, 1.892520743597897700f, 1.892396684238003300f, - 1.892272555300092300f, - 1.892148356788728700f, 1.892024088708479200f, 1.891899751063912200f, - 1.891775343859599400f, - 1.891650867100115300f, 1.891526320790036100f, 1.891401704933941100f, - 1.891277019536412400f, - 1.891152264602033800f, 1.891027440135392600f, 1.890902546141078000f, - 1.890777582623682300f, - 1.890652549587799700f, 1.890527447038027300f, 1.890402274978965100f, - 1.890277033415215200f, - 1.890151722351382200f, 1.890026341792073500f, 1.889900891741899100f, - 1.889775372205471300f, - 1.889649783187405100f, 1.889524124692318200f, 1.889398396724830500f, - 1.889272599289564900f, - 1.889146732391146400f, 1.889020796034202700f, 1.888894790223364600f, - 1.888768714963264400f, - 1.888642570258537700f, 1.888516356113822700f, 1.888390072533759700f, - 1.888263719522991900f, - 1.888137297086165000f, 1.888010805227927000f, 1.887884243952928600f, - 1.887757613265823400f, - 1.887630913171267000f, 1.887504143673917700f, 1.887377304778437000f, - 1.887250396489487800f, - 1.887123418811736500f, 1.886996371749851700f, 1.886869255308504200f, - 1.886742069492368000f, - 1.886614814306119400f, 1.886487489754437300f, 1.886360095842002600f, - 1.886232632573499700f, - 1.886105099953614900f, 1.885977497987037000f, 1.885849826678457800f, - 1.885722086032571200f, - 1.885594276054074300f, 1.885466396747665700f, 1.885338448118047700f, - 1.885210430169924200f, - 1.885082342908002400f, 1.884954186336991400f, 1.884825960461603100f, - 1.884697665286552400f, - 1.884569300816556000f, 1.884440867056333700f, 1.884312364010607600f, - 1.884183791684102400f, - 1.884055150081545200f, 1.883926439207665800f, 1.883797659067196800f, - 1.883668809664872600f, - 1.883539891005431100f, 1.883410903093611900f, 1.883281845934157800f, - 1.883152719531813800f, - 1.883023523891327300f, 1.882894259017448900f, 1.882764924914930700f, - 1.882635521588528400f, - 1.882506049042999700f, 1.882376507283104900f, 1.882246896313606800f, - 1.882117216139270700f, - 1.881987466764865100f, 1.881857648195159900f, 1.881727760434928500f, - 1.881597803488946500f, - 1.881467777361992100f, 1.881337682058845700f, 1.881207517584290600f, - 1.881077283943112900f, - 1.880946981140100500f, 1.880816609180044700f, 1.880686168067738500f, - 1.880555657807977800f, - 1.880425078405561600f, 1.880294429865290600f, 1.880163712191968300f, - 1.880032925390400900f, - 1.879902069465397200f, 1.879771144421768200f, 1.879640150264327600f, - 1.879509086997891900f, - 1.879377954627279700f, 1.879246753157312700f, 1.879115482592814500f, - 1.878984142938611600f, - 1.878852734199532900f, 1.878721256380410100f, 1.878589709486077300f, - 1.878458093521370800f, - 1.878326408491130200f, 1.878194654400196600f, 1.878062831253414900f, - 1.877930939055631100f, - 1.877798977811695200f, 1.877666947526458700f, 1.877534848204775800f, - 1.877402679851504000f, - 1.877270442471502100f, 1.877138136069632400f, 1.877005760650759500f, - 1.876873316219750200f, - 1.876740802781474500f, 1.876608220340804100f, 1.876475568902614000f, - 1.876342848471781200f, - 1.876210059053185600f, 1.876077200651709500f, 1.875944273272237800f, - 1.875811276919657500f, - 1.875678211598858800f, 1.875545077314734000f, 1.875411874072178100f, - 1.875278601876088700f, - 1.875145260731365700f, 1.875011850642911600f, 1.874878371615631900f, - 1.874744823654434000f, - 1.874611206764227800f, 1.874477520949926500f, 1.874343766216444800f, - 1.874209942568701100f, - 1.874076050011615400f, 1.873942088550110400f, 1.873808058189111700f, - 1.873673958933546900f, - 1.873539790788347100f, 1.873405553758444600f, 1.873271247848775400f, - 1.873136873064277000f, - 1.873002429409890600f, 1.872867916890558900f, 1.872733335511227700f, - 1.872598685276845000f, - 1.872463966192361900f, 1.872329178262731200f, 1.872194321492908700f, - 1.872059395887852900f, - 1.871924401452524700f, 1.871789338191887100f, 1.871654206110906500f, - 1.871519005214550700f, - 1.871383735507791100f, 1.871248396995601300f, 1.871112989682956800f, - 1.870977513574836500f, - 1.870841968676221400f, 1.870706354992095000f, 1.870570672527443600f, - 1.870434921287255700f, - 1.870299101276522400f, 1.870163212500237900f, 1.870027254963397800f, - 1.869891228671001200f, - 1.869755133628049600f, 1.869618969839546500f, 1.869482737310498100f, - 1.869346436045913800f, - 1.869210066050804600f, 1.869073627330184700f, 1.868937119889070300f, - 1.868800543732480600f, - 1.868663898865437200f, 1.868527185292963700f, 1.868390403020087100f, - 1.868253552051836200f, - 1.868116632393243000f, 1.867979644049341200f, 1.867842587025167800f, - 1.867705461325761800f, - 1.867568266956164800f, 1.867431003921421500f, 1.867293672226578300f, - 1.867156271876684500f, - 1.867018802876792200f, 1.866881265231955500f, 1.866743658947231300f, - 1.866605984027679000f, - 1.866468240478360600f, 1.866330428304340300f, 1.866192547510685300f, - 1.866054598102465000f, - 1.865916580084751500f, 1.865778493462619100f, 1.865640338241145100f, - 1.865502114425408900f, - 1.865363822020492700f, 1.865225461031480900f, 1.865087031463460900f, - 1.864948533321522300f, - 1.864809966610757400f, 1.864671331336260600f, 1.864532627503129100f, - 1.864393855116463200f, - 1.864255014181364500f, 1.864116104702938000f, 1.863977126686291200f, - 1.863838080136534000f, - 1.863698965058778300f, 1.863559781458139300f, 1.863420529339734100f, - 1.863281208708683000f, - 1.863141819570107900f, 1.863002361929134500f, 1.862862835790889400f, - 1.862723241160503300f, - 1.862583578043108100f, 1.862443846443839300f, 1.862304046367834200f, - 1.862164177820232700f, - 1.862024240806177800f, 1.861884235330814300f, 1.861744161399289600f, - 1.861604019016754200f, - 1.861463808188360500f, 1.861323528919263800f, 1.861183181214621600f, - 1.861042765079594200f, - 1.860902280519344500f, 1.860761727539037300f, 1.860621106143840500f, - 1.860480416338924600f, - 1.860339658129461800f, 1.860198831520627900f, 1.860057936517600700f, - 1.859916973125560000f, - 1.859775941349689000f, 1.859634841195173100f, 1.859493672667199800f, - 1.859352435770959900f, - 1.859211130511645900f, 1.859069756894453400f, 1.858928314924580300f, - 1.858786804607227100f, - 1.858645225947596300f, 1.858503578950893900f, 1.858361863622327400f, - 1.858220079967107600f, - 1.858078227990447300f, 1.857936307697561900f, 1.857794319093669900f, - 1.857652262183991000f, - 1.857510136973749000f, 1.857367943468169100f, 1.857225681672479300f, - 1.857083351591910300f, - 1.856940953231694900f, 1.856798486597069000f, 1.856655951693270600f, - 1.856513348525540300f, - 1.856370677099121100f, 1.856227937419258700f, 1.856085129491201100f, - 1.855942253320199200f, - 1.855799308911506100f, 1.855656296270377300f, 1.855513215402071000f, - 1.855370066311848000f, - 1.855226849004971500f, 1.855083563486706900f, 1.854940209762322700f, - 1.854796787837089500f, - 1.854653297716280400f, 1.854509739405171300f, 1.854366112909040300f, - 1.854222418233168400f, - 1.854078655382838300f, 1.853934824363336200f, 1.853790925179950500f, - 1.853646957837971500f, - 1.853502922342692600f, 1.853358818699409900f, 1.853214646913421200f, - 1.853070406990027500f, - 1.852926098934532200f, 1.852781722752241000f, 1.852637278448462200f, - 1.852492766028506400f, - 1.852348185497687300f, 1.852203536861320600f, 1.852058820124724300f, - 1.851914035293219700f, - 1.851769182372129600f, 1.851624261366780400f, 1.851479272282500000f, - 1.851334215124619300f, - 1.851189089898471800f, 1.851043896609393400f, 1.850898635262721900f, - 1.850753305863798800f, - 1.850607908417967200f, 1.850462442930572900f, 1.850316909406964200f, - 1.850171307852492200f, - 1.850025638272510000f, 1.849879900672373600f, 1.849734095057441200f, - 1.849588221433073700f, - 1.849442279804634600f, 1.849296270177489800f, 1.849150192557007300f, - 1.849004046948558200f, - 1.848857833357515900f, 1.848711551789256300f, 1.848565202249157400f, - 1.848418784742600400f, - 1.848272299274968500f, 1.848125745851647800f, 1.847979124478026100f, - 1.847832435159495000f, - 1.847685677901447200f, 1.847538852709279100f, 1.847391959588388300f, - 1.847244998544176300f, - 1.847097969582046200f, 1.846950872707404000f, 1.846803707925657600f, - 1.846656475242218300f, - 1.846509174662499300f, 1.846361806191916000f, 1.846214369835887500f, - 1.846066865599834000f, - 1.845919293489179000f, 1.845771653509348200f, 1.845623945665770100f, - 1.845476169963875500f, - 1.845328326409097400f, 1.845180415006871800f, 1.845032435762637100f, - 1.844884388681833800f, - 1.844736273769905300f, 1.844588091032297400f, 1.844439840474458200f, - 1.844291522101838800f, - 1.844143135919891900f, 1.843994681934073600f, 1.843846160149842200f, - 1.843697570572658200f, - 1.843548913207985000f, 1.843400188061288000f, 1.843251395138035800f, - 1.843102534443698900f, - 1.842953605983750400f, 1.842804609763666100f, 1.842655545788924000f, - 1.842506414065004900f, - 1.842357214597392100f, 1.842207947391570900f, 1.842058612453029600f, - 1.841909209787258900f, - 1.841759739399751800f, 1.841610201296003800f, 1.841460595481513100f, - 1.841310921961780500f, - 1.841161180742308500f, 1.841011371828603200f, 1.840861495226172600f, - 1.840711550940526700f, - 1.840561538977179200f, 1.840411459341645400f, 1.840261312039443100f, - 1.840111097076092800f, - 1.839960814457117600f, 1.839810464188043100f, 1.839660046274397100f, - 1.839509560721709800f, - 1.839359007535514400f, 1.839208386721346500f, 1.839057698284743500f, - 1.838906942231246100f, - 1.838756118566397200f, 1.838605227295741800f, 1.838454268424828400f, - 1.838303241959206700f, - 1.838152147904429800f, 1.838000986266052900f, 1.837849757049633900f, - 1.837698460260732900f, - 1.837547095904912700f, 1.837395663987738700f, 1.837244164514778600f, - 1.837092597491602100f, - 1.836940962923782700f, 1.836789260816895000f, 1.836637491176516600f, - 1.836485654008228200f, - 1.836333749317611700f, 1.836181777110252900f, 1.836029737391738700f, - 1.835877630167659800f, - 1.835725455443608200f, 1.835573213225179400f, 1.835420903517970500f, - 1.835268526327581900f, - 1.835116081659615700f, 1.834963569519677100f, 1.834810989913373500f, - 1.834658342846314800f, - 1.834505628324113200f, 1.834352846352383700f, 1.834199996936744000f, - 1.834047080082813300f, - 1.833894095796214400f, 1.833741044082571900f, 1.833587924947513100f, - 1.833434738396668000f, - 1.833281484435668400f, 1.833128163070149300f, 1.832974774305747600f, - 1.832821318148103500f, - 1.832667794602858400f, 1.832514203675657600f, 1.832360545372147900f, - 1.832206819697979000f, - 1.832053026658802700f, 1.831899166260273700f, 1.831745238508049300f, - 1.831591243407788300f, - 1.831437180965153100f, 1.831283051185808300f, 1.831128854075420500f, - 1.830974589639659000f, - 1.830820257884196100f, 1.830665858814705600f, 1.830511392436864800f, - 1.830356858756352800f, - 1.830202257778851300f, 1.830047589510044500f, 1.829892853955619200f, - 1.829738051121264600f, - 1.829583181012672400f, 1.829428243635536500f, 1.829273238995553700f, - 1.829118167098423100f, - 1.828963027949846100f, 1.828807821555527000f, 1.828652547921171900f, - 1.828497207052490100f, - 1.828341798955192900f, 1.828186323634994200f, 1.828030781097610400f, - 1.827875171348760400f, - 1.827719494394165500f, 1.827563750239549400f, 1.827407938890638600f, - 1.827252060353161500f, - 1.827096114632849700f, 1.826940101735436500f, 1.826784021666658400f, - 1.826627874432253700f, - 1.826471660037963800f, 1.826315378489531800f, 1.826159029792704400f, - 1.826002613953229500f, - 1.825846130976858100f, 1.825689580869344100f, 1.825532963636443000f, - 1.825376279283913200f, - 1.825219527817515800f, 1.825062709243013800f, 1.824905823566173000f, - 1.824748870792761900f, - 1.824591850928550800f, 1.824434763979313300f, 1.824277609950824700f, - 1.824120388848863300f, - 1.823963100679209600f, 1.823805745447646600f, 1.823648323159960100f, - 1.823490833821937600f, - 1.823333277439369600f, 1.823175654018049300f, 1.823017963563772000f, - 1.822860206082335300f, - 1.822702381579539800f, 1.822544490061187800f, 1.822386531533084900f, - 1.822228506001038800f, - 1.822070413470859600f, 1.821912253948359700f, 1.821754027439354400f, - 1.821595733949661100f, - 1.821437373485099900f, 1.821278946051493100f, 1.821120451654665700f, - 1.820961890300445400f, - 1.820803261994661500f, 1.820644566743146800f, 1.820485804551735800f, - 1.820326975426265600f, - 1.820168079372576300f, 1.820009116396509800f, 1.819850086503910700f, - 1.819690989700625900f, - 1.819531825992505500f, 1.819372595385401000f, 1.819213297885166900f, - 1.819053933497660300f, - 1.818894502228740600f, 1.818735004084269600f, 1.818575439070111200f, - 1.818415807192132600f, - 1.818256108456203000f, 1.818096342868193800f, 1.817936510433979300f, - 1.817776611159436000f, - 1.817616645050443000f, 1.817456612112881900f, 1.817296512352636300f, - 1.817136345775592900f, - 1.816976112387640700f, 1.816815812194670700f, 1.816655445202576700f, - 1.816495011417255300f, - 1.816334510844604700f, 1.816173943490526400f, 1.816013309360923900f, - 1.815852608461703300f, - 1.815691840798773000f, 1.815531006378043900f, 1.815370105205429600f, - 1.815209137286846200f, - 1.815048102628211500f, 1.814887001235446600f, 1.814725833114474700f, - 1.814564598271221300f, - 1.814403296711615000f, 1.814241928441585800f, 1.814080493467067300f, - 1.813918991793994900f, - 1.813757423428306000f, 1.813595788375941700f, 1.813434086642844400f, - 1.813272318234959700f, - 1.813110483158235400f, 1.812948581418621500f, 1.812786613022070700f, - 1.812624577974538000f, - 1.812462476281981200f, 1.812300307950360300f, 1.812138072985637800f, - 1.811975771393778300f, - 1.811813403180749300f, 1.811650968352521000f, 1.811488466915065000f, - 1.811325898874356800f, - 1.811163264236372900f, 1.811000563007093100f, 1.810837795192499400f, - 1.810674960798576600f, - 1.810512059831311400f, 1.810349092296693400f, 1.810186058200714100f, - 1.810022957549368000f, - 1.809859790348652200f, 1.809696556604565300f, 1.809533256323109200f, - 1.809369889510288100f, - 1.809206456172108200f, 1.809042956314578900f, 1.808879389943711200f, - 1.808715757065519200f, - 1.808552057686019200f, 1.808388291811230000f, 1.808224459447172800f, - 1.808060560599871200f, - 1.807896595275351200f, 1.807732563479641300f, 1.807568465218772900f, - 1.807404300498778800f, - 1.807240069325695400f, 1.807075771705560800f, 1.806911407644415700f, - 1.806746977148303300f, - 1.806582480223269500f, 1.806417916875362000f, 1.806253287110631600f, - 1.806088590935131000f, - 1.805923828354915900f, 1.805758999376044100f, 1.805594104004575800f, - 1.805429142246573600f, - 1.805264114108102900f, 1.805099019595231200f, 1.804933858714028700f, - 1.804768631470567500f, - 1.804603337870923000f, 1.804437977921172300f, 1.804272551627395400f, - 1.804107058995674500f, - 1.803941500032094200f, 1.803775874742741500f, 1.803610183133706400f, - 1.803444425211080400f, - 1.803278600980958300f, 1.803112710449436900f, 1.802946753622615400f, - 1.802780730506595700f, - 1.802614641107481900f, 1.802448485431380900f, 1.802282263484401300f, - 1.802115975272655000f, - 1.801949620802255600f, 1.801783200079319900f, 1.801616713109966300f, - 1.801450159900316300f, - 1.801283540456493700f, 1.801116854784624400f, 1.800950102890836800f, - 1.800783284781262200f, - 1.800616400462033800f, 1.800449449939287800f, 1.800282433219162000f, - 1.800115350307797600f, - 1.799948201211337500f, 1.799780985935927300f, 1.799613704487715200f, - 1.799446356872851400f, - 1.799278943097489100f, 1.799111463167783400f, 1.798943917089892000f, - 1.798776304869975200f, - 1.798608626514195800f, 1.798440882028718500f, 1.798273071419711000f, - 1.798105194693343500f, - 1.797937251855787700f, 1.797769242913218800f, 1.797601167871813800f, - 1.797433026737752700f, - 1.797264819517217200f, 1.797096546216391900f, 1.796928206841463800f, - 1.796759801398622100f, - 1.796591329894058800f, 1.796422792333968000f, 1.796254188724546500f, - 1.796085519071992900f, - 1.795916783382509200f, 1.795747981662299200f, 1.795579113917569200f, - 1.795410180154527900f, - 1.795241180379386800f, 1.795072114598359200f, 1.794902982817661500f, - 1.794733785043511900f, - 1.794564521282131300f, 1.794395191539743400f, 1.794225795822573600f, - 1.794056334136850300f, - 1.793886806488804100f, 1.793717212884667900f, 1.793547553330677300f, - 1.793377827833070100f, - 1.793208036398086900f, 1.793038179031970000f, 1.792868255740965000f, - 1.792698266531319400f, - 1.792528211409282900f, 1.792358090381108300f, 1.792187903453050100f, - 1.792017650631366100f, - 1.791847331922315600f, 1.791676947332161000f, 1.791506496867166600f, - 1.791335980533599300f, - 1.791165398337728900f, 1.790994750285827000f, 1.790824036384167900f, - 1.790653256639028100f, - 1.790482411056686800f, 1.790311499643425500f, 1.790140522405528200f, - 1.789969479349281100f, - 1.789798370480973000f, 1.789627195806895200f, 1.789455955333341100f, - 1.789284649066606800f, - 1.789113277012990900f, 1.788941839178794100f, 1.788770335570319700f, - 1.788598766193873600f, - 1.788427131055763600f, 1.788255430162300400f, 1.788083663519796800f, - 1.787911831134568300f, - 1.787739933012932900f, 1.787567969161210300f, 1.787395939585723500f, - 1.787223844292797500f, - 1.787051683288759500f, 1.786879456579939700f, 1.786707164172670200f, - 1.786534806073285700f, - 1.786362382288123400f, 1.786189892823522700f, 1.786017337685825700f, - 1.785844716881376700f, - 1.785672030416522300f, 1.785499278297612000f, 1.785326460530997300f, - 1.785153577123032000f, - 1.784980628080072900f, 1.784807613408478300f, 1.784634533114609800f, - 1.784461387204831400f, - 1.784288175685508700f, 1.784114898563010200f, 1.783941555843707100f, - 1.783768147533972200f, - 1.783594673640181800f, 1.783421134168713800f, 1.783247529125948900f, - 1.783073858518269700f, - 1.782900122352062000f, 1.782726320633713200f, 1.782552453369613800f, - 1.782378520566156200f, - 1.782204522229735600f, 1.782030458366749200f, 1.781856328983596900f, - 1.781682134086680900f, - 1.781507873682406200f, 1.781333547777179200f, 1.781159156377410100f, - 1.780984699489510200f, - 1.780810177119894100f, 1.780635589274978600f, 1.780460935961182300f, - 1.780286217184927000f, - 1.780111432952636600f, 1.779936583270737400f, 1.779761668145658300f, - 1.779586687583830200f, - 1.779411641591686500f, 1.779236530175663600f, 1.779061353342199500f, - 1.778886111097735000f, - 1.778710803448713400f, 1.778535430401580100f, 1.778359991962783000f, - 1.778184488138772900f, - 1.778008918936002000f, 1.777833284360925900f, 1.777657584420002000f, - 1.777481819119690200f, - 1.777305988466453000f, 1.777130092466755200f, 1.776954131127064200f, - 1.776778104453849100f, - 1.776602012453582400f, 1.776425855132738100f, 1.776249632497793200f, - 1.776073344555227000f, - 1.775896991311520800f, 1.775720572773158900f, 1.775544088946627600f, - 1.775367539838415700f, - 1.775190925455014400f, 1.775014245802917200f, 1.774837500888620400f, - 1.774660690718622000f, - 1.774483815299423100f, 1.774306874637527000f, 1.774129868739439100f, - 1.773952797611667100f, - 1.773775661260722100f, 1.773598459693116500f, 1.773421192915365400f, - 1.773243860933986400f, - 1.773066463755499800f, 1.772889001386427800f, 1.772711473833295200f, - 1.772533881102629000f, - 1.772356223200959100f, 1.772178500134817100f, 1.772000711910737700f, - 1.771822858535257600f, - 1.771644940014915700f, 1.771466956356254000f, 1.771288907565816000f, - 1.771110793650148500f, - 1.770932614615799800f, 1.770754370469321400f, 1.770576061217266500f, - 1.770397686866191300f, - 1.770219247422653700f, 1.770040742893215000f, 1.769862173284438000f, - 1.769683538602888000f, - 1.769504838855133100f, 1.769326074047743700f, 1.769147244187292200f, - 1.768968349280353800f, - 1.768789389333506000f, 1.768610364353328600f, 1.768431274346403900f, - 1.768252119319316400f, - 1.768072899278653200f, 1.767893614231003800f, 1.767714264182959500f, - 1.767534849141115100f, - 1.767355369112067100f, 1.767175824102414000f, 1.766996214118757800f, - 1.766816539167701800f, - 1.766636799255852300f, 1.766456994389817600f, 1.766277124576209000f, - 1.766097189821639300f, - 1.765917190132724600f, 1.765737125516083000f, 1.765556995978334800f, - 1.765376801526102700f, - 1.765196542166012100f, 1.765016217904690900f, 1.764835828748768400f, - 1.764655374704877700f, - 1.764474855779653200f, 1.764294271979732100f, 1.764113623311754000f, - 1.763932909782361100f, - 1.763752131398197200f, 1.763571288165909400f, 1.763390380092146400f, - 1.763209407183560200f, - 1.763028369446804500f, 1.762847266888535100f, 1.762666099515411100f, - 1.762484867334093400f, - 1.762303570351245300f, 1.762122208573532600f, 1.761940782007623600f, - 1.761759290660188400f, - 1.761577734537900500f, 1.761396113647435000f, 1.761214427995469100f, - 1.761032677588683800f, - 1.760850862433760700f, 1.760668982537384900f, 1.760487037906243600f, - 1.760305028547026500f, - 1.760122954466425600f, 1.759940815671135100f, 1.759758612167851700f, - 1.759576343963274600f, - 1.759394011064105100f, 1.759211613477047200f, 1.759029151208807400f, - 1.758846624266093800f, - 1.758664032655617500f, 1.758481376384092500f, 1.758298655458233600f, - 1.758115869884759700f, - 1.757933019670390800f, 1.757750104821850000f, 1.757567125345862700f, - 1.757384081249156100f, - 1.757200972538460700f, 1.757017799220508500f, 1.756834561302034400f, - 1.756651258789775800f, - 1.756467891690471700f, 1.756284460010864200f, 1.756100963757697900f, - 1.755917402937718900f, - 1.755733777557676500f, 1.755550087624322000f, 1.755366333144409200f, - 1.755182514124693900f, - 1.754998630571935200f, 1.754814682492893600f, 1.754630669894332600f, - 1.754446592783017500f, - 1.754262451165716300f, 1.754078245049199600f, 1.753893974440240000f, - 1.753709639345612600f, - 1.753525239772095100f, 1.753340775726466700f, 1.753156247215510400f, - 1.752971654246010300f, - 1.752786996824753600f, 1.752602274958529500f, 1.752417488654129700f, - 1.752232637918348200f, - 1.752047722757981600f, 1.751862743179828600f, 1.751677699190690400f, - 1.751492590797370600f, - 1.751307418006674800f, 1.751122180825411800f, 1.750936879260391700f, - 1.750751513318427700f, - 1.750566083006335600f, 1.750380588330932500f, 1.750195029299038900f, - 1.750009405917477100f, - 1.749823718193071800f, 1.749637966132650900f, 1.749452149743043100f, - 1.749266269031080700f, - 1.749080324003598100f, 1.748894314667431800f, 1.748708241029421000f, - 1.748522103096407300f, - 1.748335900875233900f, 1.748149634372747200f, 1.747963303595795500f, - 1.747776908551230000f, - 1.747590449245904000f, 1.747403925686672500f, 1.747217337880393900f, - 1.747030685833928200f, - 1.746843969554138200f, 1.746657189047889200f, 1.746470344322048200f, - 1.746283435383485100f, - 1.746096462239072000f, 1.745909424895683200f, 1.745722323360195900f, - 1.745535157639489100f, - 1.745347927740444200f, 1.745160633669945200f, 1.744973275434878300f, - 1.744785853042132300f, - 1.744598366498598200f, 1.744410815811169300f, 1.744223200986741100f, - 1.744035522032211900f, - 1.743847778954482000f, 1.743659971760454200f, 1.743472100457033700f, - 1.743284165051127700f, - 1.743096165549646400f, 1.742908101959502100f, 1.742719974287608900f, - 1.742531782540884100f, - 1.742343526726246800f, 1.742155206850618800f, 1.741966822920923800f, - 1.741778374944088000f, - 1.741589862927040800f, 1.741401286876712800f, 1.741212646800037300f, - 1.741023942703950200f, - 1.740835174595389600f, 1.740646342481295900f, 1.740457446368612000f, - 1.740268486264283200f, - 1.740079462175256900f, 1.739890374108482600f, 1.739701222070913200f, - 1.739512006069502800f, - 1.739322726111208500f, 1.739133382202989500f, 1.738943974351807600f, - 1.738754502564626700f, - 1.738564966848413100f, 1.738375367210135400f, 1.738185703656765200f, - 1.737995976195275000f, - 1.737806184832640900f, 1.737616329575841300f, 1.737426410431856200f, - 1.737236427407668800f, - 1.737046380510263800f, 1.736856269746629000f, 1.736666095123754000f, - 1.736475856648631400f, - 1.736285554328254900f, 1.736095188169622500f, 1.735904758179732400f, - 1.735714264365586700f, - 1.735523706734189100f, 1.735333085292545900f, 1.735142400047666100f, - 1.734951651006560100f, - 1.734760838176241400f, 1.734569961563725600f, 1.734379021176030600f, - 1.734188017020177100f, - 1.733996949103187500f, 1.733805817432086900f, 1.733614622013902600f, - 1.733423362855664100f, - 1.733232039964403900f, 1.733040653347156300f, 1.732849203010957900f, - 1.732657688962847600f, - 1.732466111209867200f, 1.732274469759060200f, 1.732082764617472800f, - 1.731890995792153600f, - 1.731699163290153100f, 1.731507267118524500f, 1.731315307284323700f, - 1.731123283794607800f, - 1.730931196656437600f, 1.730739045876875200f, 1.730546831462985500f, - 1.730354553421835600f, - 1.730162211760495300f, 1.729969806486036500f, 1.729777337605533000f, - 1.729584805126061400f, - 1.729392209054700900f, 1.729199549398532400f, 1.729006826164639400f, - 1.728814039360108100f, - 1.728621188992026400f, 1.728428275067485100f, 1.728235297593577100f, - 1.728042256577397200f, - 1.727849152026043500f, 1.727655983946615700f, 1.727462752346216000f, - 1.727269457231948900f, - 1.727076098610921500f, 1.726882676490243000f, 1.726689190877025000f, - 1.726495641778381200f, - 1.726302029201427900f, 1.726108353153283900f, 1.725914613641069900f, - 1.725720810671909300f, - 1.725526944252927700f, 1.725333014391252900f, 1.725139021094015200f, - 1.724944964368347000f, - 1.724750844221383500f, 1.724556660660261800f, 1.724362413692121400f, - 1.724168103324104300f, - 1.723973729563354600f, 1.723779292417019200f, 1.723584791892246700f, - 1.723390227996188600f, - 1.723195600735998100f, 1.723000910118831300f, 1.722806156151846400f, - 1.722611338842204000f, - 1.722416458197066900f, 1.722221514223600100f, 1.722026506928971500f, - 1.721831436320350800f, - 1.721636302404910200f, 1.721441105189824000f, 1.721245844682269600f, - 1.721050520889425600f, - 1.720855133818473900f, 1.720659683476597900f, 1.720464169870984200f, - 1.720268593008821100f, - 1.720072952897299100f, 1.719877249543611900f, 1.719681482954954500f, - 1.719485653138524800f, - 1.719289760101522900f, 1.719093803851151400f, 1.718897784394614900f, - 1.718701701739120400f, - 1.718505555891877400f, 1.718309346860097600f, 1.718113074650995200f, - 1.717916739271786500f, - 1.717720340729689700f, 1.717523879031926500f, 1.717327354185719900f, - 1.717130766198295700f, - 1.716934115076881800f, 1.716737400828708400f, 1.716540623461008100f, - 1.716343782981016200f, - 1.716146879395969500f, 1.715949912713108100f, 1.715752882939673300f, - 1.715555790082909900f, - 1.715358634150064000f, 1.715161415148384500f, 1.714964133085122900f, - 1.714766787967532600f, - 1.714569379802868900f, 1.714371908598390800f, 1.714174374361358000f, - 1.713976777099033700f, - 1.713779116818682900f, 1.713581393527573000f, 1.713383607232973600f, - 1.713185757942156800f, - 1.712987845662396800f, 1.712789870400970700f, 1.712591832165157200f, - 1.712393730962237500f, - 1.712195566799495500f, 1.711997339684216700f, 1.711799049623689900f, - 1.711600696625205300f, - 1.711402280696055800f, 1.711203801843536700f, 1.711005260074945200f, - 1.710806655397581600f, - 1.710607987818747700f, 1.710409257345748100f, 1.710210463985889500f, - 1.710011607746480600f, - 1.709812688634833300f, 1.709613706658261100f, 1.709414661824080000f, - 1.709215554139608400f, - 1.709016383612166600f, 1.708817150249077900f, 1.708617854057667300f, - 1.708418495045262300f, - 1.708219073219193300f, 1.708019588586791700f, 1.707820041155392500f, - 1.707620430932332400f, - 1.707420757924950300f, 1.707221022140587900f, 1.707021223586588700f, - 1.706821362270298600f, - 1.706621438199066300f, 1.706421451380242000f, 1.706221401821179200f, - 1.706021289529232800f, - 1.705821114511760300f, 1.705620876776121600f, 1.705420576329679000f, - 1.705220213179796900f, - 1.705019787333842200f, 1.704819298799183700f, 1.704618747583193100f, - 1.704418133693243800f, - 1.704217457136711900f, 1.704016717920976000f, 1.703815916053416300f, - 1.703615051541415900f, - 1.703414124392360000f, 1.703213134613636100f, 1.703012082212634000f, - 1.702810967196746000f, - 1.702609789573366300f, 1.702408549349891500f, 1.702207246533721000f, - 1.702005881132255800f, - 1.701804453152900000f, 1.701602962603059100f, 1.701401409490141300f, - 1.701199793821557300f, - 1.700998115604720000f, 1.700796374847044300f, 1.700594571555948100f, - 1.700392705738850400f, - 1.700190777403173700f, 1.699988786556342300f, 1.699786733205783000f, - 1.699584617358924400f, - 1.699382439023197700f, 1.699180198206036600f, 1.698977894914877100f, - 1.698775529157156700f, - 1.698573100940316400f, 1.698370610271798800f, 1.698168057159048700f, - 1.697965441609513300f, - 1.697762763630642700f, 1.697560023229888200f, 1.697357220414704500f, - 1.697154355192547900f, - 1.696951427570877000f, 1.696748437557152900f, 1.696545385158839200f, - 1.696342270383401200f, - 1.696139093238307400f, 1.695935853731027600f, 1.695732551869034300f, - 1.695529187659802400f, - 1.695325761110809200f, 1.695122272229534000f, 1.694918721023458600f, - 1.694715107500066800f, - 1.694511431666845000f, 1.694307693531282000f, 1.694103893100868100f, - 1.693900030383096900f, - 1.693696105385463800f, 1.693492118115466500f, 1.693288068580604900f, - 1.693083956788381500f, - 1.692879782746300700f, 1.692675546461869900f, 1.692471247942597600f, - 1.692266887195995600f, - 1.692062464229577600f, 1.691857979050859900f, 1.691653431667360600f, - 1.691448822086600400f, - 1.691244150316102000f, 1.691039416363390800f, 1.690834620235994300f, - 1.690629761941442100f, - 1.690424841487266700f, 1.690219858881001800f, 1.690014814130184300f, - 1.689809707242353200f, - 1.689604538225049700f, 1.689399307085817300f, 1.689194013832201500f, - 1.688988658471750600f, - 1.688783241012014700f, 1.688577761460546800f, 1.688372219824901400f, - 1.688166616112636100f, - 1.687960950331309800f, 1.687755222488484600f, 1.687549432591724400f, - 1.687343580648595700f, - 1.687137666666667100f, 1.686931690653509000f, 1.686725652616694900f, - 1.686519552563800400f, - 1.686313390502403000f, 1.686107166440082600f, 1.685900880384421800f, - 1.685694532343004600f, - 1.685488122323418400f, 1.685281650333251900f, 1.685075116380096800f, - 1.684868520471546600f, - 1.684661862615197000f, 1.684455142818646700f, 1.684248361089495800f, - 1.684041517435347400f, - 1.683834611863806100f, 1.683627644382479800f, 1.683420614998977900f, - 1.683213523720911800f, - 1.683006370555896400f, 1.682799155511547600f, 1.682591878595484300f, - 1.682384539815327400f, - 1.682177139178700400f, 1.681969676693228600f, 1.681762152366539600f, - 1.681554566206263900f, - 1.681346918220033800f, 1.681139208415483700f, 1.680931436800250600f, - 1.680723603381973500f, - 1.680515708168294200f, 1.680307751166856300f, 1.680099732385305300f, - 1.679891651831290100f, - 1.679683509512460900f, 1.679475305436470600f, 1.679267039610974300f, - 1.679058712043629300f, - 1.678850322742095200f, 1.678641871714033900f, 1.678433358967109400f, - 1.678224784508988400f, - 1.678016148347339300f, 1.677807450489833300f, 1.677598690944143400f, - 1.677389869717945000f, - 1.677180986818916300f, 1.676972042254736900f, 1.676763036033089600f, - 1.676553968161658600f, - 1.676344838648130600f, 1.676135647500194700f, 1.675926394725542700f, - 1.675717080331867900f, - 1.675507704326866200f, 1.675298266718235900f, 1.675088767513677200f, - 1.674879206720892900f, - 1.674669584347587800f, 1.674459900401469700f, 1.674250154890247300f, - 1.674040347821632800f, - 1.673830479203340000f, 1.673620549043085500f, 1.673410557348587600f, - 1.673200504127567000f, - 1.672990389387746700f, 1.672780213136852300f, 1.672569975382611300f, - 1.672359676132753500f, - 1.672149315395010900f, 1.671938893177118000f, 1.671728409486811500f, - 1.671517864331830000f, - 1.671307257719914800f, 1.671096589658809500f, 1.670885860156259300f, - 1.670675069220012500f, - 1.670464216857819200f, 1.670253303077431800f, 1.670042327886605200f, - 1.669831291293095900f, - 1.669620193304663500f, 1.669409033929069500f, 1.669197813174077200f, - 1.668986531047453000f, - 1.668775187556965000f, 1.668563782710383600f, 1.668352316515481700f, - 1.668140788980034400f, - 1.667929200111818400f, 1.667717549918614100f, 1.667505838408202700f, - 1.667294065588368100f, - 1.667082231466896900f, 1.666870336051577800f, 1.666658379350201000f, - 1.666446361370560000f, - 1.666234282120450100f, 1.666022141607668600f, 1.665809939840015500f, - 1.665597676825292700f, - 1.665385352571304500f, 1.665172967085857700f, 1.664960520376761000f, - 1.664748012451825200f, - 1.664535443318863900f, 1.664322812985692600f, 1.664110121460129000f, - 1.663897368749993400f, - 1.663684554863107800f, 1.663471679807296800f, 1.663258743590387400f, - 1.663045746220208600f, - 1.662832687704591800f, 1.662619568051370500f, 1.662406387268380100f, - 1.662193145363459100f, - 1.661979842344447600f, 1.661766478219188300f, 1.661553052995526000f, - 1.661339566681307600f, - 1.661126019284382200f, 1.660912410812601900f, 1.660698741273819700f, - 1.660485010675892400f, - 1.660271219026677700f, 1.660057366334036300f, 1.659843452605831200f, - 1.659629477849926800f, - 1.659415442074190900f, 1.659201345286492900f, 1.658987187494704200f, - 1.658772968706699000f, - 1.658558688930353400f, 1.658344348173546300f, 1.658129946444157700f, - 1.657915483750071100f, - 1.657700960099171200f, 1.657486375499345900f, 1.657271729958484500f, - 1.657057023484479000f, - 1.656842256085223800f, 1.656627427768615000f, 1.656412538542551200f, - 1.656197588414933600f, - 1.655982577393664700f, 1.655767505486650500f, 1.655552372701798200f, - 1.655337179047017700f, - 1.655121924530220900f, 1.654906609159322500f, 1.654691232942238500f, - 1.654475795886888300f, - 1.654260298001192200f, 1.654044739293073900f, 1.653829119770458900f, - 1.653613439441274500f, - 1.653397698313451300f, 1.653181896394921000f, 1.652966033693617800f, - 1.652750110217479100f, - 1.652534125974443000f, 1.652318080972451400f, 1.652101975219447200f, - 1.651885808723375900f, - 1.651669581492185300f, 1.651453293533826000f, 1.651236944856249600f, - 1.651020535467411200f, - 1.650804065375267400f, 1.650587534587776700f, 1.650370943112901000f, - 1.650154290958603300f, - 1.649937578132849400f, 1.649720804643607400f, 1.649503970498847200f, - 1.649287075706541200f, - 1.649070120274664000f, 1.648853104211192700f, 1.648636027524106100f, - 1.648418890221385400f, - 1.648201692311014300f, 1.647984433800978600f, 1.647767114699266100f, - 1.647549735013867000f, - 1.647332294752774200f, 1.647114793923981600f, 1.646897232535486500f, - 1.646679610595287900f, - 1.646461928111387300f, 1.646244185091788400f, 1.646026381544496400f, - 1.645808517477519700f, - 1.645590592898868600f, 1.645372607816555400f, 1.645154562238594800f, - 1.644936456173004000f, - 1.644718289627801600f, 1.644500062611009300f, 1.644281775130650900f, - 1.644063427194751600f, - 1.643845018811340300f, 1.643626549988446200f, 1.643408020734102600f, - 1.643189431056343700f, - 1.642970780963206800f, 1.642752070462730800f, 1.642533299562957100f, - 1.642314468271929300f, - 1.642095576597693200f, 1.641876624548297000f, 1.641657612131790500f, - 1.641438539356226500f, - 1.641219406229659700f, 1.641000212760146800f, 1.640780958955747200f, - 1.640561644824521700f, - 1.640342270374534500f, 1.640122835613851100f, 1.639903340550539200f, - 1.639683785192669600f, - 1.639464169548314100f, 1.639244493625547900f, 1.639024757432447500f, - 1.638804960977092100f, - 1.638585104267562800f, 1.638365187311943400f, 1.638145210118319400f, - 1.637925172694778800f, - 1.637705075049411800f, 1.637484917190310800f, 1.637264699125570200f, - 1.637044420863286600f, - 1.636824082411559600f, 1.636603683778490100f, 1.636383224972181500f, - 1.636162706000739300f, - 1.635942126872271800f, 1.635721487594888400f, 1.635500788176702100f, - 1.635280028625826900f, - 1.635059208950379700f, 1.634838329158479200f, 1.634617389258246700f, - 1.634396389257805700f, - 1.634175329165281400f, 1.633954208988801700f, 1.633733028736496400f, - 1.633511788416498000f, - 1.633290488036940500f, 1.633069127605960800f, 1.632847707131697600f, - 1.632626226622291700f, - 1.632404686085886300f, 1.632183085530627200f, 1.631961424964661700f, - 1.631739704396139900f, - 1.631517923833213400f, 1.631296083284036900f, 1.631074182756766300f, - 1.630852222259560700f, - 1.630630201800580900f, 1.630408121387990000f, 1.630185981029953000f, - 1.629963780734637400f, - 1.629741520510213000f, 1.629519200364851800f, 1.629296820306727700f, - 1.629074380344017100f, - 1.628851880484898200f, 1.628629320737551700f, 1.628406701110161100f, - 1.628184021610910700f, - 1.627961282247988300f, 1.627738483029583100f, 1.627515623963887000f, - 1.627292705059093700f, - 1.627069726323399500f, 1.626846687765002700f, 1.626623589392103500f, - 1.626400431212904800f, - 1.626177213235611400f, 1.625953935468430500f, 1.625730597919571300f, - 1.625507200597245500f, - 1.625283743509666300f, 1.625060226665050000f, 1.624836650071614500f, - 1.624613013737580000f, - 1.624389317671169500f, 1.624165561880607000f, 1.623941746374119500f, - 1.623717871159936300f, - 1.623493936246288300f, 1.623269941641409400f, 1.623045887353534900f, - 1.622821773390902700f, - 1.622597599761753000f, 1.622373366474327800f, 1.622149073536871800f, - 1.621924720957631300f, - 1.621700308744855200f, 1.621475836906794500f, 1.621251305451702400f, - 1.621026714387834300f, - 1.620802063723447700f, 1.620577353466802700f, 1.620352583626160500f, - 1.620127754209786100f, - 1.619902865225945300f, 1.619677916682906700f, 1.619452908588941300f, - 1.619227840952321800f, - 1.619002713781323200f, 1.618777527084222800f, 1.618552280869300300f, - 1.618326975144837000f, - 1.618101609919117200f, 1.617876185200426600f, 1.617650700997053500f, - 1.617425157317288200f, - 1.617199554169423500f, 1.616973891561754200f, 1.616748169502577200f, - 1.616522388000191500f, - 1.616296547062898500f, 1.616070646699001800f, 1.615844686916807300f, - 1.615618667724622700f, - 1.615392589130757900f, 1.615166451143525300f, 1.614940253771239400f, - 1.614713997022216900f, - 1.614487680904776600f, 1.614261305427239200f, 1.614034870597928400f, - 1.613808376425168900f, - 1.613581822917288900f, 1.613355210082617800f, 1.613128537929487500f, - 1.612901806466232200f, - 1.612675015701188000f, 1.612448165642693400f, 1.612221256299089200f, - 1.611994287678718100f, - 1.611767259789925100f, 1.611540172641057200f, 1.611313026240463800f, - 1.611085820596496600f, - 1.610858555717509200f, 1.610631231611857800f, 1.610403848287899700f, - 1.610176405753995800f, - 1.609948904018508200f, 1.609721343089801600f, 1.609493722976242900f, - 1.609266043686200700f, - 1.609038305228046400f, 1.608810507610153100f, 1.608582650840896200f, - 1.608354734928653800f, - 1.608126759881805400f, 1.607898725708732900f, 1.607670632417820500f, - 1.607442480017454700f, - 1.607214268516024000f, 1.606985997921919000f, 1.606757668243532500f, - 1.606529279489259600f, - 1.606300831667497600f, 1.606072324786645500f, 1.605843758855105300f, - 1.605615133881280700f, - 1.605386449873577300f, 1.605157706840403300f, 1.604928904790168700f, - 1.604700043731286200f, - 1.604471123672170500f, 1.604242144621237800f, 1.604013106586907400f, - 1.603784009577600100f, - 1.603554853601739700f, 1.603325638667751000f, 1.603096364784061900f, - 1.602867031959102100f, - 1.602637640201303400f, 1.602408189519099800f, 1.602178679920927900f, - 1.601949111415226000f, - 1.601719484010434300f, 1.601489797714996000f, 1.601260052537355700f, - 1.601030248485960900f, - 1.600800385569260300f, 1.600570463795705700f, 1.600340483173750400f, - 1.600110443711850300f, - 1.599880345418463100f, 1.599650188302049100f, 1.599419972371070500f, - 1.599189697633991400f, - 1.598959364099278700f, 1.598728971775401000f, 1.598498520670828900f, - 1.598268010794035900f, - 1.598037442153496900f, 1.597806814757689200f, 1.597576128615092200f, - 1.597345383734188000f, - 1.597114580123460100f, 1.596883717791394800f, 1.596652796746479600f, - 1.596421816997205500f, - 1.596190778552064800f, 1.595959681419551800f, 1.595728525608163700f, - 1.595497311126399300f, - 1.595266037982759500f, 1.595034706185747500f, 1.594803315743869000f, - 1.594571866665631700f, - 1.594340358959544800f, 1.594108792634120600f, 1.593877167697873100f, - 1.593645484159318200f, - 1.593413742026974500f, 1.593181941309362400f, 1.592950082015004700f, - 1.592718164152426000f, - 1.592486187730153300f, 1.592254152756715600f, 1.592022059240644400f, - 1.591789907190473100f, - 1.591557696614737100f, 1.591325427521974100f, 1.591093099920724200f, - 1.590860713819529400f, - 1.590628269226933600f, 1.590395766151483400f, 1.590163204601727100f, - 1.589930584586215500f, - 1.589697906113501000f, 1.589465169192139100f, 1.589232373830686400f, - 1.588999520037702300f, - 1.588766607821748200f, 1.588533637191387400f, 1.588300608155185600f, - 1.588067520721711000f, - 1.587834374899533400f, 1.587601170697224600f, 1.587367908123358900f, - 1.587134587186513000f, - 1.586901207895265300f, 1.586667770258196600f, 1.586434274283889500f, - 1.586200719980929200f, - 1.585967107357902700f, 1.585733436423399000f, 1.585499707186010200f, - 1.585265919654329300f, - 1.585032073836952100f, 1.584798169742476400f, 1.584564207379502500f, - 1.584330186756632200f, - 1.584096107882470000f, 1.583861970765622100f, 1.583627775414697000f, - 1.583393521838305700f, - 1.583159210045060900f, 1.582924840043577400f, 1.582690411842472700f, - 1.582455925450365600f, - 1.582221380875877800f, 1.581986778127632700f, 1.581752117214255900f, - 1.581517398144375800f, - 1.581282620926621300f, 1.581047785569625400f, 1.580812892082021900f, - 1.580577940472447200f, - 1.580342930749539800f, 1.580107862921940700f, 1.579872736998292100f, - 1.579637552987239100f, - 1.579402310897428900f, 1.579167010737510600f, 1.578931652516135700f, - 1.578696236241957200f, - 1.578460761923630800f, 1.578225229569814700f, 1.577989639189168100f, - 1.577753990790353500f, - 1.577518284382034800f, 1.577282519972878200f, 1.577046697571552000f, - 1.576810817186727000f, - 1.576574878827075700f, 1.576338882501273000f, 1.576102828217995600f, - 1.575866715985922500f, - 1.575630545813735200f, 1.575394317710116600f, 1.575158031683752300f, - 1.574921687743330300f, - 1.574685285897539800f, 1.574448826155072400f, 1.574212308524622500f, - 1.573975733014886000f, - 1.573739099634561500f, 1.573502408392348600f, 1.573265659296950300f, - 1.573028852357070800f, - 1.572791987581417100f, 1.572555064978698100f, 1.572318084557624800f, - 1.572081046326909900f, - 1.571843950295269000f, 1.571606796471419100f, 1.571369584864080100f, - 1.571132315481973200f, - 1.570894988333822400f, 1.570657603428353300f, 1.570420160774294000f, - 1.570182660380374600f, - 1.569945102255327200f, 1.569707486407886600f, 1.569469812846788500f, - 1.569232081580771900f, - 1.568994292618577400f, 1.568756445968948000f, 1.568518541640628400f, - 1.568280579642366000f, - 1.568042559982909500f, 1.567804482671010500f, 1.567566347715422500f, - 1.567328155124900800f, - 1.567089904908203200f, 1.566851597074089500f, 1.566613231631321500f, - 1.566374808588663300f, - 1.566136327954881000f, 1.565897789738742900f, 1.565659193949019400f, - 1.565420540594482800f, - 1.565181829683907700f, 1.564943061226071100f, 1.564704235229751500f, - 1.564465351703730400f, - 1.564226410656790000f, 1.563987412097716200f, 1.563748356035296000f, - 1.563509242478319000f, - 1.563270071435576500f, 1.563030842915862100f, 1.562791556927971800f, - 1.562552213480703300f, - 1.562312812582856500f, 1.562073354243233700f, 1.561833838470639200f, - 1.561594265273878800f, - 1.561354634661761300f, 1.561114946643096900f, 1.560875201226698900f, - 1.560635398421381400f, - 1.560395538235961800f, 1.560155620679258400f, 1.559915645760092900f, - 1.559675613487288200f, - 1.559435523869669500f, 1.559195376916064700f, 1.558955172635302800f, - 1.558714911036215700f, - 1.558474592127637100f, 1.558234215918402600f, 1.557993782417350400f, - 1.557753291633320500f, - 1.557512743575155000f, 1.557272138251698300f, 1.557031475671796400f, - 1.556790755844298400f, - 1.556549978778054300f, 1.556309144481917300f, 1.556068252964741600f, - 1.555827304235384500f, - 1.555586298302704900f, 1.555345235175563900f, 1.555104114862824600f, - 1.554862937373352500f, - 1.554621702716015000f, 1.554380410899681300f, 1.554139061933223200f, - 1.553897655825514600f, - 1.553656192585431100f, 1.553414672221850700f, 1.553173094743653300f, - 1.552931460159721100f, - 1.552689768478938500f, 1.552448019710191300f, 1.552206213862368500f, - 1.551964350944360100f, - 1.551722430965059000f, 1.551480453933359800f, 1.551238419858159700f, - 1.550996328748356800f, - 1.550754180612852900f, 1.550511975460550500f, 1.550269713300355100f, - 1.550027394141174000f, - 1.549785017991916400f, 1.549542584861493900f, 1.549300094758820000f, - 1.549057547692810600f, - 1.548814943672383300f, 1.548572282706457900f, 1.548329564803956300f, - 1.548086789973802700f, - 1.547843958224923000f, 1.547601069566245900f, 1.547358124006701400f, - 1.547115121555221700f, - 1.546872062220741700f, 1.546628946012197800f, 1.546385772938528600f, - 1.546142543008675300f, - 1.545899256231580300f, 1.545655912616188800f, 1.545412512171447700f, - 1.545169054906306200f, - 1.544925540829715600f, 1.544681969950629300f, 1.544438342278002600f, - 1.544194657820792800f, - 1.543950916587959700f, 1.543707118588464800f, 1.543463263831272000f, - 1.543219352325347200f, - 1.542975384079658300f, 1.542731359103175300f, 1.542487277404870100f, - 1.542243138993717000f, - 1.541998943878692300f, 1.541754692068774600f, 1.541510383572944000f, - 1.541266018400183200f, - 1.541021596559476700f, 1.540777118059811100f, 1.540532582910175500f, - 1.540287991119560600f, - 1.540043342696959100f, 1.539798637651366400f, 1.539553875991779300f, - 1.539309057727197300f, - 1.539064182866621400f, 1.538819251419055100f, 1.538574263393503800f, - 1.538329218798974800f, - 1.538084117644477900f, 1.537838959939025200f, 1.537593745691629500f, - 1.537348474911307300f, - 1.537103147607076200f, 1.536857763787956400f, 1.536612323462969800f, - 1.536366826641140800f, - 1.536121273331495300f, 1.535875663543061700f, 1.535629997284870400f, - 1.535384274565953600f, - 1.535138495395346400f, 1.534892659782085100f, 1.534646767735208000f, - 1.534400819263756400f, - 1.534154814376772700f, 1.533908753083302200f, 1.533662635392391700f, - 1.533416461313090100f, - 1.533170230854448400f, 1.532923944025520200f, 1.532677600835360600f, - 1.532431201293027000f, - 1.532184745407578500f, 1.531938233188077100f, 1.531691664643585900f, - 1.531445039783170500f, - 1.531198358615898800f, 1.530951621150840700f, 1.530704827397067800f, - 1.530457977363654000f, - 1.530211071059675200f, 1.529964108494209700f, 1.529717089676337500f, - 1.529470014615140800f, - 1.529222883319703700f, 1.528975695799112500f, 1.528728452062455600f, - 1.528481152118823700f, - 1.528233795977309400f, 1.527986383647006500f, 1.527738915137012400f, - 1.527491390456425600f, - 1.527243809614346600f, 1.526996172619878900f, 1.526748479482126700f, - 1.526500730210197200f, - 1.526252924813199500f, 1.526005063300244900f, 1.525757145680446200f, - 1.525509171962918800f, - 1.525261142156779900f, 1.525013056271149000f, 1.524764914315147200f, - 1.524516716297898300f, - 1.524268462228527900f, 1.524020152116163200f, 1.523771785969934000f, - 1.523523363798972000f, - 1.523274885612411200f, 1.523026351419387100f, 1.522777761229038100f, - 1.522529115050503600f, - 1.522280412892925900f, 1.522031654765448900f, 1.521782840677218700f, - 1.521533970637383800f, - 1.521285044655094300f, 1.521036062739502300f, 1.520787024899762100f, - 1.520537931145030400f, - 1.520288781484465700f, 1.520039575927228500f, 1.519790314482481100f, - 1.519540997159388300f, - 1.519291623967116600f, 1.519042194914835200f, 1.518792710011714500f, - 1.518543169266927600f, - 1.518293572689648900f, 1.518043920289055900f, 1.517794212074327500f, - 1.517544448054644500f, - 1.517294628239190400f, 1.517044752637150000f, 1.516794821257710500f, - 1.516544834110061600f, - 1.516294791203394200f, 1.516044692546901800f, 1.515794538149779700f, - 1.515544328021225500f, - 1.515294062170438700f, 1.515043740606620800f, 1.514793363338975600f, - 1.514542930376708600f, - 1.514292441729027300f, 1.514041897405141700f, 1.513791297414263800f, - 1.513540641765606800f, - 1.513289930468387300f, 1.513039163531823000f, 1.512788340965133500f, - 1.512537462777541200f, - 1.512286528978270300f, 1.512035539576546600f, 1.511784494581598600f, - 1.511533394002656100f, - 1.511282237848951400f, 1.511031026129719100f, 1.510779758854195400f, - 1.510528436031618900f, - 1.510277057671229400f, 1.510025623782270000f, 1.509774134373984800f, - 1.509522589455620600f, - 1.509270989036425800f, 1.509019333125651200f, 1.508767621732549400f, - 1.508515854866375100f, - 1.508264032536385000f, 1.508012154751837700f, 1.507760221521994700f, - 1.507508232856118200f, - 1.507256188763473200f, 1.507004089253327000f, 1.506751934334948000f, - 1.506499724017607900f, - 1.506247458310579400f, 1.505995137223137500f, 1.505742760764559300f, - 1.505490328944124200f, - 1.505237841771113200f, 1.504985299254809800f, 1.504732701404498900f, - 1.504480048229468000f, - 1.504227339739006500f, 1.503974575942405700f, 1.503721756848958700f, - 1.503468882467961600f, - 1.503215952808711500f, 1.502962967880507600f, 1.502709927692651900f, - 1.502456832254447600f, - 1.502203681575200700f, 1.501950475664218600f, 1.501697214530810700f, - 1.501443898184289200f, - 1.501190526633967600f, 1.500937099889161600f, 1.500683617959188900f, - 1.500430080853369500f, - 1.500176488581024900f, 1.499922841151479600f, 1.499669138574058800f, - 1.499415380858090800f, - 1.499161568012905300f, 1.498907700047834600f, 1.498653776972212600f, - 1.498399798795375000f, - 1.498145765526660300f, 1.497891677175408500f, 1.497637533750961300f, - 1.497383335262663300f, - 1.497129081719860400f, 1.496874773131900800f, 1.496620409508134800f, - 1.496365990857914600f, - 1.496111517190594300f, 1.495856988515530400f, 1.495602404842080800f, - 1.495347766179606400f, - 1.495093072537469100f, 1.494838323925033400f, 1.494583520351665500f, - 1.494328661826734200f, - 1.494073748359609600f, 1.493818779959664300f, 1.493563756636272500f, - 1.493308678398810800f, - 1.493053545256657800f, 1.492798357219194100f, 1.492543114295801900f, - 1.492287816495866200f, - 1.492032463828773200f, 1.491777056303911700f, 1.491521593930672100f, - 1.491266076718446900f, - 1.491010504676631500f, 1.490754877814621800f, 1.490499196141816600f, - 1.490243459667616600f, - 1.489987668401424800f, 1.489731822352645500f, 1.489475921530685900f, - 1.489219965944954300f, - 1.488963955604861500f, 1.488707890519820600f, 1.488451770699245900f, - 1.488195596152554800f, - 1.487939366889165600f, 1.487683082918499300f, 1.487426744249978400f, - 1.487170350893028500f, - 1.486913902857075700f, 1.486657400151549600f, 1.486400842785880100f, - 1.486144230769501000f, - 1.485887564111846500f, 1.485630842822354100f, 1.485374066910462500f, - 1.485117236385612200f, - 1.484860351257246500f, 1.484603411534810300f, 1.484346417227750700f, - 1.484089368345516300f, - 1.483832264897558400f, 1.483575106893329600f, 1.483317894342285100f, - 1.483060627253882000f, - 1.482803305637578900f, 1.482545929502837100f, 1.482288498859119400f, - 1.482031013715890700f, - 1.481773474082618300f, 1.481515879968770900f, 1.481258231383819800f, - 1.481000528337237800f, - 1.480742770838499900f, 1.480484958897083200f, 1.480227092522466500f, - 1.479969171724131200f, - 1.479711196511560100f, 1.479453166894238100f, 1.479195082881652200f, - 1.478936944483291600f, - 1.478678751708647000f, 1.478420504567211900f, 1.478162203068481100f, - 1.477903847221951400f, - 1.477645437037121900f, 1.477386972523493800f, 1.477128453690569800f, - 1.476869880547855300f, - 1.476611253104856700f, 1.476352571371083700f, 1.476093835356046700f, - 1.475835045069259000f, - 1.475576200520235500f, 1.475317301718493300f, 1.475058348673551100f, - 1.474799341394929900f, - 1.474540279892153000f, 1.474281164174744900f, 1.474021994252233000f, - 1.473762770134145800f, - 1.473503491830014300f, 1.473244159349371700f, 1.472984772701752900f, - 1.472725331896694400f, - 1.472465836943735600f, 1.472206287852416900f, 1.471946684632281500f, - 1.471687027292874400f, - 1.471427315843742100f, 1.471167550294433700f, 1.470907730654499800f, - 1.470647856933493300f, - 1.470387929140969200f, 1.470127947286484100f, 1.469867911379596900f, - 1.469607821429868500f, - 1.469347677446861500f, 1.469087479440140300f, 1.468827227419272200f, - 1.468566921393825700f, - 1.468306561373371900f, 1.468046147367482600f, 1.467785679385733300f, - 1.467525157437700200f, - 1.467264581532962100f, 1.467003951681099800f, 1.466743267891695800f, - 1.466482530174334500f, - 1.466221738538602500f, 1.465960892994088800f, 1.465699993550383400f, - 1.465439040217079400f, - 1.465178033003770700f, 1.464916971920054100f, 1.464655856975527900f, - 1.464394688179792900f, - 1.464133465542451200f, 1.463872189073107500f, 1.463610858781367900f, - 1.463349474676840700f, - 1.463088036769136600f, 1.462826545067867700f, 1.462564999582648600f, - 1.462303400323095000f, - 1.462041747298825900f, 1.461780040519460800f, 1.461518279994622200f, - 1.461256465733934400f, - 1.460994597747023600f, 1.460732676043517800f, 1.460470700633046800f, - 1.460208671525243400f, - 1.459946588729741100f, 1.459684452256176300f, 1.459422262114186800f, - 1.459160018313412400f, - 1.458897720863495500f, 1.458635369774079500f, 1.458372965054810700f, - 1.458110506715337000f, - 1.457847994765308200f, 1.457585429214375700f, 1.457322810072193800f, - 1.457060137348418000f, - 1.456797411052706200f, 1.456534631194717800f, 1.456271797784114900f, - 1.456008910830560500f, - 1.455745970343720800f, 1.455482976333263100f, 1.455219928808857200f, - 1.454956827780174100f, - 1.454693673256887600f, 1.454430465248673300f, 1.454167203765208000f, - 1.453903888816171900f, - 1.453640520411245900f, 1.453377098560113100f, 1.453113623272459100f, - 1.452850094557971000f, - 1.452586512426338000f, 1.452322876887251400f, 1.452059187950404100f, - 1.451795445625491300f, - 1.451531649922210200f, 1.451267800850259500f, 1.451003898419340500f, - 1.450739942639155800f, - 1.450475933519410400f, 1.450211871069811300f, 1.449947755300067500f, - 1.449683586219889400f, - 1.449419363838989800f, 1.449155088167083600f, 1.448890759213887100f, - 1.448626376989119400f, - 1.448361941502500900f, 1.448097452763754000f, 1.447832910782603100f, - 1.447568315568775100f, - 1.447303667131997900f, 1.447038965482002200f, 1.446774210628520200f, - 1.446509402581286400f, - 1.446244541350036700f, 1.445979626944509300f, 1.445714659374444500f, - 1.445449638649584500f, - 1.445184564779673500f, 1.444919437774456700f, 1.444654257643682900f, - 1.444389024397101600f, - 1.444123738044464900f, 1.443858398595526400f, 1.443593006060042100f, - 1.443327560447769600f, - 1.443062061768468400f, 1.442796510031900500f, 1.442530905247829200f, - 1.442265247426020200f, - 1.441999536576240800f, 1.441733772708260600f, 1.441467955831850800f, - 1.441202085956784900f, - 1.440936163092837900f, 1.440670187249787600f, 1.440404158437412500f, - 1.440138076665494100f, - 1.439871941943815300f, 1.439605754282161400f, 1.439339513690319100f, - 1.439073220178077400f, - 1.438806873755226900f, 1.438540474431560600f, 1.438274022216873500f, - 1.438007517120961900f, - 1.437740959153624500f, 1.437474348324662100f, 1.437207684643876800f, - 1.436940968121073600f, - 1.436674198766058500f, 1.436407376588640000f, 1.436140501598628400f, - 1.435873573805835900f, - 1.435606593220076600f, 1.435339559851166500f, 1.435072473708924000f, - 1.434805334803169100f, - 1.434538143143723200f, 1.434270898740410700f, 1.434003601603057300f, - 1.433736251741490700f, - 1.433468849165540500f, 1.433201393885038500f, 1.432933885909818000f, - 1.432666325249714700f, - 1.432398711914566200f, 1.432131045914211600f, 1.431863327258492400f, - 1.431595555957251700f, - 1.431327732020334800f, 1.431059855457588600f, 1.430791926278862400f, - 1.430523944494007400f, - 1.430255910112876000f, 1.429987823145323100f, 1.429719683601205800f, - 1.429451491490382900f, - 1.429183246822714800f, 1.428914949608064200f, 1.428646599856295400f, - 1.428378197577275100f, - 1.428109742780871800f, 1.427841235476955400f, 1.427572675675398600f, - 1.427304063386075200f, - 1.427035398618861500f, 1.426766681383635500f, 1.426497911690277000f, - 1.426229089548668200f, - 1.425960214968693000f, 1.425691287960236600f, 1.425422308533187200f, - 1.425153276697434000f, - 1.424884192462868800f, 1.424615055839385300f, 1.424345866836878200f, - 1.424076625465245500f, - 1.423807331734385800f, 1.423537985654200800f, 1.423268587234593400f, - 1.422999136485468600f, - 1.422729633416733200f, 1.422460078038296300f, 1.422190470360068300f, - 1.421920810391962500f, - 1.421651098143893000f, 1.421381333625776600f, 1.421111516847531700f, - 1.420841647819078600f, - 1.420571726550339700f, 1.420301753051239400f, 1.420031727331703800f, - 1.419761649401660500f, - 1.419491519271040000f, 1.419221336949774100f, 1.418951102447796800f, - 1.418680815775043500f, - 1.418410476941452100f, 1.418140085956961900f, 1.417869642831514700f, - 1.417599147575054000f, - 1.417328600197524900f, 1.417058000708874700f, 1.416787349119052600f, - 1.416516645438009600f, - 1.416245889675698900f, 1.415975081842075300f, 1.415704221947095700f, - 1.415433310000718600f, - 1.415162346012905000f, 1.414891329993617200f, 1.414620261952819600f, - 1.414349141900479000f, - 1.414077969846563500f, 1.413806745801043500f, 1.413535469773890700f, - 1.413264141775079300f, - 1.412992761814585400f, 1.412721329902386900f, 1.412449846048463600f, - 1.412178310262796900f, - 1.411906722555370500f, 1.411635082936170100f, 1.411363391415182900f, - 1.411091648002398500f, - 1.410819852707807700f, 1.410548005541404100f, 1.410276106513182400f, - 1.410004155633139500f, - 1.409732152911274500f, 1.409460098357588200f, 1.409187991982083100f, - 1.408915833794763800f, - 1.408643623805636800f, 1.408371362024710500f, 1.408099048461995300f, - 1.407826683127503000f, - 1.407554266031248100f, 1.407281797183246500f, 1.407009276593515800f, - 1.406736704272076400f, - 1.406464080228949600f, 1.406191404474159000f, 1.405918677017730100f, - 1.405645897869690400f, - 1.405373067040069300f, 1.405100184538898000f, 1.404827250376209400f, - 1.404554264562038400f, - 1.404281227106422400f, 1.404008138019399800f, 1.403734997311011600f, - 1.403461804991300100f, - 1.403188561070310100f, 1.402915265558087700f, 1.402641918464681400f, - 1.402368519800141200f, - 1.402095069574519800f, 1.401821567797870300f, 1.401548014480249000f, - 1.401274409631713600f, - 1.401000753262323900f, 1.400727045382141400f, 1.400453286001229800f, - 1.400179475129653700f, - 1.399905612777481200f, 1.399631698954780800f, 1.399357733671623900f, - 1.399083716938083600f, - 1.398809648764234100f, 1.398535529160152400f, 1.398261358135917300f, - 1.397987135701609200f, - 1.397712861867310300f, 1.397438536643105000f, 1.397164160039079200f, - 1.396889732065321300f, - 1.396615252731921100f, 1.396340722048970300f, 1.396066140026562800f, - 1.395791506674794100f, - 1.395516822003761700f, 1.395242086023564800f, 1.394967298744304900f, - 1.394692460176085300f, - 1.394417570329010700f, 1.394142629213188000f, 1.393867636838725900f, - 1.393592593215735600f, - 1.393317498354329300f, 1.393042352264621600f, 1.392767154956728400f, - 1.392491906440768600f, - 1.392216606726861800f, 1.391941255825130100f, 1.391665853745697400f, - 1.391390400498689700f, - 1.391114896094234100f, 1.390839340542460600f, 1.390563733853500200f, - 1.390288076037486500f, - 1.390012367104554600f, 1.389736607064841100f, 1.389460795928485500f, - 1.389184933705628300f, - 1.388909020406412100f, 1.388633056040981600f, 1.388357040619483200f, - 1.388080974152065200f, - 1.387804856648877600f, 1.387528688120072600f, 1.387252468575804100f, - 1.386976198026228100f, - 1.386699876481501900f, 1.386423503951785200f, 1.386147080447239600f, - 1.385870605978028100f, - 1.385594080554316100f, 1.385317504186270900f, 1.385040876884061000f, - 1.384764198657857200f, - 1.384487469517832200f, 1.384210689474160600f, 1.383933858537019100f, - 1.383656976716585600f, - 1.383380044023040400f, 1.383103060466565300f, 1.382826026057344600f, - 1.382548940805563800f, - 1.382271804721410600f, 1.381994617815074400f, 1.381717380096746800f, - 1.381440091576620700f, - 1.381162752264891500f, 1.380885362171756300f, 1.380607921307413400f, - 1.380330429682064000f, - 1.380052887305910400f, 1.379775294189157000f, 1.379497650342010400f, - 1.379219955774678700f, - 1.378942210497371600f, 1.378664414520301500f, 1.378386567853681700f, - 1.378108670507728300f, - 1.377830722492658500f, 1.377552723818691500f, 1.377274674496048700f, - 1.376996574534953300f, - 1.376718423945630000f, 1.376440222738305700f, 1.376161970923209400f, - 1.375883668510570900f, - 1.375605315510623200f, 1.375326911933600200f, 1.375048457789738400f, - 1.374769953089275400f, - 1.374491397842451100f, 1.374212792059507100f, 1.373934135750687100f, - 1.373655428926236400f, - 1.373376671596402400f, 1.373097863771434200f, 1.372819005461582500f, - 1.372540096677100200f, - 1.372261137428242300f, 1.371982127725264800f, 1.371703067578426700f, - 1.371423956997988000f, - 1.371144795994210500f, 1.370865584577358300f, 1.370586322757697500f, - 1.370307010545495500f, - 1.370027647951022100f, 1.369748234984548000f, 1.369468771656347200f, - 1.369189257976694200f, - 1.368909693955866000f, 1.368630079604142000f, 1.368350414931802000f, - 1.368070699949128800f, - 1.367790934666406600f, 1.367511119093921800f, 1.367231253241962200f, - 1.366951337120818000f, - 1.366671370740780500f, 1.366391354112143500f, 1.366111287245202400f, - 1.365831170150254300f, - 1.365551002837598600f, 1.365270785317536100f, 1.364990517600369400f, - 1.364710199696403300f, - 1.364429831615944200f, 1.364149413369300600f, 1.363868944966782900f, - 1.363588426418702600f, - 1.363307857735373900f, 1.363027238927112300f, 1.362746570004235400f, - 1.362465850977062900f, - 1.362185081855915600f, 1.361904262651116900f, 1.361623393372991300f, - 1.361342474031866000f, - 1.361061504638069400f, 1.360780485201932300f, 1.360499415733786400f, - 1.360218296243966200f, - 1.359937126742807300f, 1.359655907240648000f, 1.359374637747827700f, - 1.359093318274687800f, - 1.358811948831571500f, 1.358530529428824400f, 1.358249060076792900f, - 1.357967540785826300f, - 1.357685971566275200f, 1.357404352428492000f, 1.357122683382830900f, - 1.356840964439648200f, - 1.356559195609301700f, 1.356277376902151900f, 1.355995508328559500f, - 1.355713589898888800f, - 1.355431621623504700f, 1.355149603512774400f, 1.354867535577067200f, - 1.354585417826753800f, - 1.354303250272206500f, 1.354021032923800300f, 1.353738765791911100f, - 1.353456448886917200f, - 1.353174082219199100f, 1.352891665799137900f, 1.352609199637117500f, - 1.352326683743523300f, - 1.352044118128742600f, 1.351761502803164900f, 1.351478837777180700f, - 1.351196123061183100f, - 1.350913358665566400f, 1.350630544600727200f, 1.350347680877063800f, - 1.350064767504976400f, - 1.349781804494866600f, 1.349498791857138400f, 1.349215729602197400f, - 1.348932617740450600f, - 1.348649456282307700f, 1.348366245238179500f, 1.348082984618478800f, - 1.347799674433620500f, - 1.347516314694020800f, 1.347232905410098200f, 1.346949446592273100f, - 1.346665938250967100f, - 1.346382380396604000f, 1.346098773039609700f, 1.345815116190411300f, - 1.345531409859438200f, - 1.345247654057121700f, 1.344963848793894200f, 1.344679994080190800f, - 1.344396089926448000f, - 1.344112136343103900f, 1.343828133340598800f, 1.343544080929374800f, - 1.343259979119875600f, - 1.342975827922546600f, 1.342691627347835500f, 1.342407377406191500f, - 1.342123078108065700f, - 1.341838729463910900f, 1.341554331484181600f, 1.341269884179334700f, - 1.340985387559828100f, - 1.340700841636122400f, 1.340416246418678800f, 1.340131601917961900f, - 1.339846908144436600f, - 1.339562165108570700f, 1.339277372820833400f, 1.338992531291695500f, - 1.338707640531629800f, - 1.338422700551110900f, 1.338137711360615200f, 1.337852672970621300f, - 1.337567585391608900f, - 1.337282448634059800f, 1.336997262708457900f, 1.336712027625288600f, - 1.336426743395039000f, - 1.336141410028198500f, 1.335856027535258000f, 1.335570595926709700f, - 1.335285115213048500f, - 1.334999585404770700f, 1.334714006512374400f, 1.334428378546359500f, - 1.334142701517227600f, - 1.333856975435482300f, 1.333571200311629100f, 1.333285376156174700f, - 1.332999502979628700f, - 1.332713580792501500f, 1.332427609605305400f, 1.332141589428554900f, - 1.331855520272766200f, - 1.331569402148457400f, 1.331283235066148100f, 1.330997019036359800f, - 1.330710754069615700f, - 1.330424440176441300f, 1.330138077367363200f, 1.329851665652910500f, - 1.329565205043613800f, - 1.329278695550004700f, 1.328992137182618100f, 1.328705529951989400f, - 1.328418873868656900f, - 1.328132168943159800f, 1.327845415186039000f, 1.327558612607838500f, - 1.327271761219102500f, - 1.326984861030378000f, 1.326697912052213500f, 1.326410914295159400f, - 1.326123867769767500f, - 1.325836772486591800f, 1.325549628456188100f, 1.325262435689113600f, - 1.324975194195928000f, - 1.324687903987191900f, 1.324400565073468300f, 1.324113177465321900f, - 1.323825741173318700f, - 1.323538256208027800f, 1.323250722580018500f, 1.322963140299862500f, - 1.322675509378133900f, - 1.322387829825407700f, 1.322100101652261100f, 1.321812324869273500f, - 1.321524499487024800f, - 1.321236625516098100f, 1.320948702967077400f, 1.320660731850549000f, - 1.320372712177100700f, - 1.320084643957322400f, 1.319796527201805300f, 1.319508361921142500f, - 1.319220148125929100f, - 1.318931885826762000f, 1.318643575034239800f, 1.318355215758962900f, - 1.318066808011533200f, - 1.317778351802554800f, 1.317489847142633300f, 1.317201294042376300f, - 1.316912692512393300f, - 1.316624042563294900f, 1.316335344205694200f, 1.316046597450205800f, - 1.315757802307445900f, - 1.315468958788033000f, 1.315180066902586800f, 1.314891126661728900f, - 1.314602138076083300f, - 1.314313101156274800f, 1.314024015912930600f, 1.313734882356679900f, - 1.313445700498152800f, - 1.313156470347981900f, 1.312867191916801100f, 1.312577865215246900f, - 1.312288490253956900f, - 1.311999067043570200f, 1.311709595594728000f, 1.311420075918073900f, - 1.311130508024252400f, - 1.310840891923910100f, 1.310551227627695400f, 1.310261515146258200f, - 1.309971754490250700f, - 1.309681945670326400f, 1.309392088697140900f, 1.309102183581351200f, - 1.308812230333616500f, - 1.308522228964597500f, 1.308232179484956500f, 1.307942081905358000f, - 1.307651936236467800f, - 1.307361742488954300f, 1.307071500673486800f, 1.306781210800736200f, - 1.306490872881376200f, - 1.306200486926081700f, 1.305910052945529200f, 1.305619570950396800f, - 1.305329040951365100f, - 1.305038462959116100f, 1.304747836984333300f, 1.304457163037702200f, - 1.304166441129910300f, - 1.303875671271646400f, 1.303584853473601200f, 1.303293987746467300f, - 1.303003074100939100f, - 1.302712112547712800f, 1.302421103097485900f, 1.302130045760958100f, - 1.301838940548830600f, - 1.301547787471806900f, 1.301256586540591600f, 1.300965337765891600f, - 1.300674041158414800f, - 1.300382696728871400f, 1.300091304487973800f, 1.299799864446435200f, - 1.299508376614971500f, - 1.299216841004299200f, 1.298925257625137800f, 1.298633626488207500f, - 1.298341947604231300f, - 1.298050220983932900f, 1.297758446638038700f, 1.297466624577275900f, - 1.297174754812374400f, - 1.296882837354065100f, 1.296590872213081200f, 1.296298859400157700f, - 1.296006798926030200f, - 1.295714690801437600f, 1.295422535037119800f, 1.295130331643818500f, - 1.294838080632277000f, - 1.294545782013240900f, 1.294253435797456900f, 1.293961041995673700f, - 1.293668600618642000f, - 1.293376111677113900f, 1.293083575181843500f, 1.292790991143586200f, - 1.292498359573099700f, - 1.292205680481143500f, 1.291912953878477900f, 1.291620179775866400f, - 1.291327358184073200f, - 1.291034489113864100f, 1.290741572576007400f, 1.290448608581273000f, - 1.290155597140431700f, - 1.289862538264257700f, 1.289569431963524900f, 1.289276278249010600f, - 1.288983077131493000f, - 1.288689828621752300f, 1.288396532730570400f, 1.288103189468731400f, - 1.287809798847019800f, - 1.287516360876223500f, 1.287222875567130900f, 1.286929342930532800f, - 1.286635762977221800f, - 1.286342135717991600f, 1.286048461163638000f, 1.285754739324958900f, - 1.285460970212753500f, - 1.285167153837822900f, 1.284873290210969900f, 1.284579379342998700f, - 1.284285421244715900f, - 1.283991415926929400f, 1.283697363400448900f, 1.283403263676086100f, - 1.283109116764654000f, - 1.282814922676967400f, 1.282520681423843000f, 1.282226393016099500f, - 1.281932057464557000f, - 1.281637674780037100f, 1.281343244973363700f, 1.281048768055361900f, - 1.280754244036858900f, - 1.280459672928683500f, 1.280165054741666300f, 1.279870389486639400f, - 1.279575677174437100f, - 1.279280917815894600f, 1.278986111421849900f, 1.278691258003142000f, - 1.278396357570611900f, - 1.278101410135101800f, 1.277806415707456700f, 1.277511374298522200f, - 1.277216285919146500f, - 1.276921150580179200f, 1.276625968292471000f, 1.276330739066875400f, - 1.276035462914247000f, - 1.275740139845442400f, 1.275444769871319600f, 1.275149353002738700f, - 1.274853889250561200f, - 1.274558378625650200f, 1.274262821138871300f, 1.273967216801090900f, - 1.273671565623178100f, - 1.273375867616002300f, 1.273080122790436000f, 1.272784331157352800f, - 1.272488492727628100f, - 1.272192607512139300f, 1.271896675521764900f, 1.271600696767385400f, - 1.271304671259883200f, - 1.271008599010142500f, 1.270712480029048800f, 1.270416314327489800f, - 1.270120101916354600f, - 1.269823842806533800f, 1.269527537008920300f, 1.269231184534408200f, - 1.268934785393893700f, - 1.268638339598274500f, 1.268341847158450200f, 1.268045308085321800f, - 1.267748722389792100f, - 1.267452090082765900f, 1.267155411175149500f, 1.266858685677851000f, - 1.266561913601780100f, - 1.266265094957848000f, 1.265968229756968100f, 1.265671318010055400f, - 1.265374359728026500f, - 1.265077354921799300f, 1.264780303602294200f, 1.264483205780432700f, - 1.264186061467138500f, - 1.263888870673336400f, 1.263591633409954000f, 1.263294349687918800f, - 1.262997019518161700f, - 1.262699642911614600f, 1.262402219879211300f, 1.262104750431887000f, - 1.261807234580578900f, - 1.261509672336225600f, 1.261212063709767900f, 1.260914408712147800f, - 1.260616707354309500f, - 1.260318959647198400f, 1.260021165601761900f, 1.259723325228949000f, - 1.259425438539710300f, - 1.259127505544998600f, 1.258829526255768000f, 1.258531500682973800f, - 1.258233428837574300f, - 1.257935310730528000f, 1.257637146372796400f, 1.257338935775342200f, - 1.257040678949129500f, - 1.256742375905124400f, 1.256444026654294400f, 1.256145631207609400f, - 1.255847189576040100f, - 1.255548701770560000f, 1.255250167802143000f, 1.254951587681765600f, - 1.254652961420405600f, - 1.254354289029042900f, 1.254055570518658500f, 1.253756805900235700f, - 1.253457995184759300f, - 1.253159138383215200f, 1.252860235506592100f, 1.252561286565879300f, - 1.252262291572068900f, - 1.251963250536153500f, 1.251664163469128300f, 1.251365030381989700f, - 1.251065851285736200f, - 1.250766626191367500f, 1.250467355109885500f, 1.250168038052293500f, - 1.249868675029596200f, - 1.249569266052800800f, 1.249269811132915200f, 1.248970310280950200f, - 1.248670763507917100f, - 1.248371170824829300f, 1.248071532242702100f, 1.247771847772552300f, - 1.247472117425398700f, - 1.247172341212261500f, 1.246872519144162300f, 1.246572651232124700f, - 1.246272737487174300f, - 1.245972777920338000f, 1.245672772542644400f, 1.245372721365123600f, - 1.245072624398807900f, - 1.244772481654731000f, 1.244472293143928300f, 1.244172058877436800f, - 1.243871778866295400f, - 1.243571453121544000f, 1.243271081654225400f, 1.242970664475383100f, - 1.242670201596062700f, - 1.242369693027311200f, 1.242069138780177400f, 1.241768538865712000f, - 1.241467893294967200f, - 1.241167202078996800f, 1.240866465228856100f, 1.240565682755603100f, - 1.240264854670295900f, - 1.239963980983995300f, 1.239663061707763700f, 1.239362096852665300f, - 1.239061086429765300f, - 1.238760030450130900f, 1.238458928924831600f, 1.238157781864937400f, - 1.237856589281521000f, - 1.237555351185656500f, 1.237254067588419400f, 1.236952738500886900f, - 1.236651363934138300f, - 1.236349943899254000f, 1.236048478407316500f, 1.235746967469409900f, - 1.235445411096619500f, - 1.235143809300033300f, 1.234842162090739700f, 1.234540469479829900f, - 1.234238731478396000f, - 1.233936948097532400f, 1.233635119348334400f, 1.233333245241899200f, - 1.233031325789326400f, - 1.232729361001716500f, 1.232427350890172000f, 1.232125295465796600f, - 1.231823194739696300f, - 1.231521048722978200f, 1.231218857426751700f, 1.230916620862127400f, - 1.230614339040217800f, - 1.230312011972136500f, 1.230009639668999500f, 1.229707222141924100f, - 1.229404759402029400f, - 1.229102251460436400f, 1.228799698328266700f, 1.228497100016644900f, - 1.228194456536696500f, - 1.227891767899548700f, 1.227589034116330700f, 1.227286255198173100f, - 1.226983431156208200f, - 1.226680562001569900f, 1.226377647745394000f, 1.226074688398817600f, - 1.225771683972980200f, - 1.225468634479021500f, 1.225165539928084300f, 1.224862400331312400f, - 1.224559215699851500f, - 1.224255986044848500f, 1.223952711377453100f, 1.223649391708814700f, - 1.223346027050086400f, - 1.223042617412421600f, 1.222739162806975900f, 1.222435663244906700f, - 1.222132118737372400f, - 1.221828529295533800f, 1.221524894930552800f, 1.221221215653593100f, - 1.220917491475820500f, - 1.220613722408401900f, 1.220309908462505800f, 1.220006049649302800f, - 1.219702145979964600f, - 1.219398197465665400f, 1.219094204117580300f, 1.218790165946886100f, - 1.218486082964761500f, - 1.218181955182386500f, 1.217877782610943700f, 1.217573565261616000f, - 1.217269303145589000f, - 1.216964996274049400f, 1.216660644658185600f, 1.216356248309187600f, - 1.216051807238247800f, - 1.215747321456559300f, 1.215442790975316700f, 1.215138215805717300f, - 1.214833595958959300f, - 1.214528931446242600f, 1.214224222278769100f, 1.213919468467741900f, - 1.213614670024366000f, - 1.213309826959847700f, 1.213004939285395400f, 1.212700007012219100f, - 1.212395030151530300f, - 1.212090008714541600f, 1.211784942712468300f, 1.211479832156526800f, - 1.211174677057934800f, - 1.210869477427912300f, 1.210564233277680500f, 1.210258944618462200f, - 1.209953611461482200f, - 1.209648233817966600f, 1.209342811699143600f, 1.209037345116242400f, - 1.208731834080493800f, - 1.208426278603131200f, 1.208120678695388600f, 1.207815034368502100f, - 1.207509345633709600f, - 1.207203612502250300f, 1.206897834985365000f, 1.206592013094296200f, - 1.206286146840288300f, - 1.205980236234587100f, 1.205674281288440000f, 1.205368282013096200f, - 1.205062238419806200f, - 1.204756150519822300f, 1.204450018324398900f, 1.204143841844791200f, - 1.203837621092256800f, - 1.203531356078054100f, 1.203225046813444000f, 1.202918693309688300f, - 1.202612295578050900f, - 1.202305853629797500f, 1.201999367476194400f, 1.201692837128510700f, - 1.201386262598016500f, - 1.201079643895983700f, 1.200772981033685800f, 1.200466274022397900f, - 1.200159522873396800f, - 1.199852727597960700f, 1.199545888207369700f, 1.199239004712905300f, - 1.198932077125851100f, - 1.198625105457491700f, 1.198318089719113200f, 1.198011029922004400f, - 1.197703926077454200f, - 1.197396778196754700f, 1.197089586291198500f, 1.196782350372080300f, - 1.196475070450696100f, - 1.196167746538343600f, 1.195860378646322700f, 1.195552966785933900f, - 1.195245510968480300f, - 1.194938011205265900f, 1.194630467507596500f, 1.194322879886780000f, - 1.194015248354125100f, - 1.193707572920943000f, 1.193399853598545500f, 1.193092090398246900f, - 1.192784283331362700f, - 1.192476432409210100f, 1.192168537643107900f, 1.191860599044376500f, - 1.191552616624337800f, - 1.191244590394315400f, 1.190936520365635000f, 1.190628406549622900f, - 1.190320248957608100f, - 1.190012047600920200f, 1.189703802490891000f, 1.189395513638853900f, - 1.189087181056143900f, - 1.188778804754097300f, 1.188470384744052100f, 1.188161921037348400f, - 1.187853413645327100f, - 1.187544862579331500f, 1.187236267850706000f, 1.186927629470796900f, - 1.186618947450951600f, - 1.186310221802519900f, 1.186001452536852300f, 1.185692639665301600f, - 1.185383783199222000f, - 1.185074883149969100f, 1.184765939528900500f, 1.184456952347374900f, - 1.184147921616753200f, - 1.183838847348397400f, 1.183529729553671500f, 1.183220568243940300f, - 1.182911363430571200f, - 1.182602115124932900f, 1.182292823338395100f, 1.181983488082330300f, - 1.181674109368111300f, - 1.181364687207113100f, 1.181055221610712400f, 1.180745712590287400f, - 1.180436160157217800f, - 1.180126564322885100f, 1.179816925098671900f, 1.179507242495962900f, - 1.179197516526144600f, - 1.178887747200604300f, 1.178577934530731700f, 1.178268078527917200f, - 1.177958179203553800f, - 1.177648236569035300f, 1.177338250635757700f, 1.177028221415118200f, - 1.176718148918515700f, - 1.176408033157350300f, 1.176097874143024600f, 1.175787671886942000f, - 1.175477426400507700f, - 1.175167137695128900f, 1.174856805782213500f, 1.174546430673171900f, - 1.174236012379415600f, - 1.173925550912357800f, 1.173615046283413200f, 1.173304498503998400f, - 1.172993907585530900f, - 1.172683273539430800f, 1.172372596377118800f, 1.172061876110017700f, - 1.171751112749551900f, - 1.171440306307147200f, 1.171129456794231200f, 1.170818564222232800f, - 1.170507628602582800f, - 1.170196649946713100f, 1.169885628266057900f, 1.169574563572052300f, - 1.169263455876133200f, - 1.168952305189739200f, 1.168641111524310700f, 1.168329874891289400f, - 1.168018595302118000f, - 1.167707272768241800f, 1.167395907301107100f, 1.167084498912162300f, - 1.166773047612856400f, - 1.166461553414641000f, 1.166150016328968600f, 1.165838436367293800f, - 1.165526813541072100f, - 1.165215147861761400f, 1.164903439340820900f, 1.164591687989710500f, - 1.164279893819892800f, - 1.163968056842831700f, 1.163656177069992500f, 1.163344254512841800f, - 1.163032289182848800f, - 1.162720281091483000f, 1.162408230250216100f, 1.162096136670521600f, - 1.161784000363874000f, - 1.161471821341749900f, 1.161159599615627000f, 1.160847335196984800f, - 1.160535028097304600f, - 1.160222678328068700f, 1.159910285900761700f, 1.159597850826869200f, - 1.159285373117878500f, - 1.158972852785278500f, 1.158660289840559800f, 1.158347684295214300f, - 1.158035036160735900f, - 1.157722345448619400f, 1.157409612170361600f, 1.157096836337461000f, - 1.156784017961417500f, - 1.156471157053732300f, 1.156158253625908700f, 1.155845307689450800f, - 1.155532319255865300f, - 1.155219288336659400f, 1.154906214943342700f, 1.154593099087426000f, - 1.154279940780421400f, - 1.153966740033842900f, 1.153653496859206000f, 1.153340211268028000f, - 1.153026883271827300f, - 1.152713512882124400f, 1.152400100110440700f, 1.152086644968299400f, - 1.151773147467225300f, - 1.151459607618745300f, 1.151146025434387000f, 1.150832400925680100f, - 1.150518734104155400f, - 1.150205024981345800f, 1.149891273568785400f, 1.149577479878009800f, - 1.149263643920556800f, - 1.148949765707964600f, 1.148635845251773800f, 1.148321882563526400f, - 1.148007877654766200f, - 1.147693830537038100f, 1.147379741221888500f, 1.147065609720865600f, - 1.146751436045519300f, - 1.146437220207400700f, 1.146122962218062600f, 1.145808662089060000f, - 1.145494319831947800f, - 1.145179935458284100f, 1.144865508979627800f, 1.144551040407539400f, - 1.144236529753581000f, - 1.143921977029316500f, 1.143607382246310600f, 1.143292745416130600f, - 1.142978066550344400f, - 1.142663345660522000f, 1.142348582758234900f, 1.142033777855056000f, - 1.141718930962559500f, - 1.141404042092321500f, 1.141089111255919800f, 1.140774138464933700f, - 1.140459123730943200f, - 1.140144067065530700f, 1.139828968480280300f, 1.139513827986776900f, - 1.139198645596607400f, - 1.138883421321360600f, 1.138568155172625700f, 1.138252847161994400f, - 1.137937497301059600f, - 1.137622105601416000f, 1.137306672074659900f, 1.136991196732388200f, - 1.136675679586200500f, - 1.136360120647697200f, 1.136044519928480800f, 1.135728877440154800f, - 1.135413193194324800f, - 1.135097467202597100f, 1.134781699476580300f, 1.134465890027884300f, - 1.134150038868120500f, - 1.133834146008902100f, 1.133518211461843200f, 1.133202235238559800f, - 1.132886217350669500f, - 1.132570157809791500f, 1.132254056627546300f, 1.131937913815556300f, - 1.131621729385444900f, - 1.131305503348837300f, 1.130989235717360100f, 1.130672926502642100f, - 1.130356575716312500f, - 1.130040183370002900f, 1.129723749475346000f, 1.129407274043976200f, - 1.129090757087529500f, - 1.128774198617643200f, 1.128457598645956600f, 1.128140957184109700f, - 1.127824274243744500f, - 1.127507549836505000f, 1.127190783974035800f, 1.126873976667983800f, - 1.126557127929996800f, - 1.126240237771724700f, 1.125923306204818400f, 1.125606333240930700f, - 1.125289318891715900f, - 1.124972263168829500f, 1.124655166083928800f, 1.124338027648672500f, - 1.124020847874721100f, - 1.123703626773736100f, 1.123386364357381200f, 1.123069060637320600f, - 1.122751715625221400f, - 1.122434329332750800f, 1.122116901771578400f, 1.121799432953375600f, - 1.121481922889814300f, - 1.121164371592568300f, 1.120846779073313400f, 1.120529145343726500f, - 1.120211470415486200f, - 1.119893754300272300f, 1.119575997009766300f, 1.119258198555651300f, - 1.118940358949611900f, - 1.118622478203333800f, 1.118304556328505200f, 1.117986593336814700f, - 1.117668589239953200f, - 1.117350544049612300f, 1.117032457777486200f, 1.116714330435269600f, - 1.116396162034659600f, - 1.116077952587353600f, 1.115759702105052000f, 1.115441410599455500f, - 1.115123078082267000f, - 1.114804704565190500f, 1.114486290059931900f, 1.114167834578198200f, - 1.113849338131698300f, - 1.113530800732142100f, 1.113212222391241500f, 1.112893603120710000f, - 1.112574942932261600f, - 1.112256241837613000f, 1.111937499848481900f, 1.111618716976587700f, - 1.111299893233650600f, - 1.110981028631393700f, 1.110662123181539900f, 1.110343176895814500f, - 1.110024189785944900f, - 1.109705161863658600f, 1.109386093140686000f, 1.109066983628758100f, - 1.108747833339607200f, - 1.108428642284968100f, 1.108109410476576300f, 1.107790137926169200f, - 1.107470824645485600f, - 1.107151470646265300f, 1.106832075940250600f, 1.106512640539184100f, - 1.106193164454811100f, - 1.105873647698877300f, 1.105554090283131100f, 1.105234492219321100f, - 1.104914853519198400f, - 1.104595174194514800f, 1.104275454257024300f, 1.103955693718482200f, - 1.103635892590644900f, - 1.103316050885270600f, 1.102996168614119000f, 1.102676245788951400f, - 1.102356282421530300f, - 1.102036278523620000f, 1.101716234106985700f, 1.101396149183395000f, - 1.101076023764616400f, - 1.100755857862419700f, 1.100435651488577100f, 1.100115404654861100f, - 1.099795117373046200f, - 1.099474789654909100f, 1.099154421512226600f, 1.098834012956778200f, - 1.098513564000344300f, - 1.098193074654706800f, 1.097872544931649100f, 1.097551974842956500f, - 1.097231364400415000f, - 1.096910713615813200f, 1.096590022500939700f, 1.096269291067585700f, - 1.095948519327543800f, - 1.095627707292607700f, 1.095306854974572800f, 1.094985962385235800f, - 1.094665029536395100f, - 1.094344056439850600f, 1.094023043107403200f, 1.093701989550856000f, - 1.093380895782013000f, - 1.093059761812680100f, 1.092738587654664300f, 1.092417373319774200f, - 1.092096118819820200f, - 1.091774824166613600f, 1.091453489371968100f, 1.091132114447697300f, - 1.090810699405617900f, - 1.090489244257547300f, 1.090167749015304300f, 1.089846213690709900f, - 1.089524638295585400f, - 1.089203022841754400f, 1.088881367341041800f, 1.088559671805274100f, - 1.088237936246279100f, - 1.087916160675885800f, 1.087594345105925300f, 1.087272489548229700f, - 1.086950594014632700f, - 1.086628658516969500f, 1.086306683067076900f, 1.085984667676792600f, - 1.085662612357956500f, - 1.085340517122409800f, 1.085018381981994500f, 1.084696206948555300f, - 1.084373992033937000f, - 1.084051737249986900f, 1.083729442608553300f, 1.083407108121486000f, - 1.083084733800636200f, - 1.082762319657857100f, 1.082439865705002500f, 1.082117371953928300f, - 1.081794838416491700f, - 1.081472265104551200f, 1.081149652029967000f, 1.080826999204601100f, - 1.080504306640315500f, - 1.080181574348975500f, 1.079858802342446900f, 1.079535990632596800f, - 1.079213139231294500f, - 1.078890248150409700f, 1.078567317401815100f, 1.078244346997383300f, - 1.077921336948988600f, - 1.077598287268508400f, 1.077275197967819000f, 1.076952069058800400f, - 1.076628900553332700f, - 1.076305692463297900f, 1.075982444800579700f, 1.075659157577062200f, - 1.075335830804633000f, - 1.075012464495178800f, 1.074689058660589700f, 1.074365613312755900f, - 1.074042128463569500f, - 1.073718604124924500f, 1.073395040308715400f, 1.073071437026839500f, - 1.072747794291194300f, - 1.072424112113678600f, 1.072100390506194500f, 1.071776629480643500f, - 1.071452829048929800f, - 1.071128989222958500f, 1.070805110014635900f, 1.070481191435870500f, - 1.070157233498571600f, - 1.069833236214650800f, 1.069509199596019800f, 1.069185123654592600f, - 1.068861008402285200f, - 1.068536853851013600f, 1.068212660012696700f, 1.067888426899253500f, - 1.067564154522606000f, - 1.067239842894676100f, 1.066915492027387600f, 1.066591101932666800f, - 1.066266672622439700f, - 1.065942204108635300f, 1.065617696403183400f, 1.065293149518014500f, - 1.064968563465062100f, - 1.064643938256259400f, 1.064319273903543000f, 1.063994570418849400f, - 1.063669827814116300f, - 1.063345046101285000f, 1.063020225292295300f, 1.062695365399091200f, - 1.062370466433616400f, - 1.062045528407815900f, 1.061720551333637600f, 1.061395535223029500f, - 1.061070480087941800f, - 1.060745385940325500f, 1.060420252792134000f, 1.060095080655320900f, - 1.059769869541841800f, - 1.059444619463654400f, 1.059119330432716700f, 1.058794002460989000f, - 1.058468635560432500f, - 1.058143229743009600f, 1.057817785020685100f, 1.057492301405424500f, - 1.057166778909195000f, - 1.056841217543965200f, 1.056515617321704500f, 1.056189978254385100f, - 1.055864300353978900f, - 1.055538583632461100f, 1.055212828101807200f, 1.054887033773993300f, - 1.054561200660999200f, - 1.054235328774803900f, 1.053909418127389400f, 1.053583468730738200f, - 1.053257480596834700f, - 1.052931453737664600f, 1.052605388165214700f, 1.052279283891473600f, - 1.051953140928431100f, - 1.051626959288079100f, 1.051300738982409800f, 1.050974480023417500f, - 1.050648182423098000f, - 1.050321846193448000f, 1.049995471346466300f, 1.049669057894152800f, - 1.049342605848508200f, - 1.049016115221536000f, 1.048689586025239700f, 1.048363018271625300f, - 1.048036411972699500f, - 1.047709767140470500f, 1.047383083786948700f, 1.047056361924144400f, - 1.046729601564071200f, - 1.046402802718742400f, 1.046075965400174300f, 1.045749089620383200f, - 1.045422175391386800f, - 1.045095222725206200f, 1.044768231633861100f, 1.044441202129375200f, - 1.044114134223771900f, - 1.043787027929076000f, 1.043459883257315400f, 1.043132700220517300f, - 1.042805478830712200f, - 1.042478219099930400f, 1.042150921040204200f, 1.041823584663568200f, - 1.041496209982056600f, - 1.041168797007707000f, 1.040841345752557200f, 1.040513856228645800f, - 1.040186328448014800f, - 1.039858762422705600f, 1.039531158164762400f, 1.039203515686230000f, - 1.038875834999155100f, - 1.038548116115585800f, 1.038220359047570500f, 1.037892563807160800f, - 1.037564730406408200f, - 1.037236858857366600f, 1.036908949172090900f, 1.036581001362636600f, - 1.036253015441062700f, - 1.035924991419427100f, 1.035596929309791300f, 1.035268829124216700f, - 1.034940690874766300f, - 1.034612514573505700f, 1.034284300232500000f, 1.033956047863817500f, - 1.033627757479526700f, - 1.033299429091697700f, 1.032971062712402700f, 1.032642658353714300f, - 1.032314216027707700f, - 1.031985735746457900f, 1.031657217522042900f, 1.031328661366541300f, - 1.031000067292032300f, - 1.030671435310598600f, 1.030342765434322200f, 1.030014057675287900f, - 1.029685312045581100f, - 1.029356528557288300f, 1.029027707222499100f, 1.028698848053302100f, - 1.028369951061789600f, - 1.028041016260053500f, 1.027712043660187600f, 1.027383033274288400f, - 1.027053985114451100f, - 1.026724899192775300f, 1.026395775521359500f, 1.026066614112305600f, - 1.025737414977715200f, - 1.025408178129692000f, 1.025078903580341600f, 1.024749591341769700f, - 1.024420241426085200f, - 1.024090853845396800f, 1.023761428611814600f, 1.023431965737451800f, - 1.023102465234420700f, - 1.022772927114837100f, 1.022443351390816400f, 1.022113738074476300f, - 1.021784087177936000f, - 1.021454398713315600f, 1.021124672692737000f, 1.020794909128323000f, - 1.020465108032198300f, - 1.020135269416488700f, 1.019805393293321100f, 1.019475479674824900f, - 1.019145528573129000f, - 1.018815540000365800f, 1.018485513968667500f, 1.018155450490168000f, - 1.017825349577003300f, - 1.017495211241309800f, 1.017165035495226400f, 1.016834822350892300f, - 1.016504571820448000f, - 1.016174283916036800f, 1.015843958649801600f, 1.015513596033888400f, - 1.015183196080442900f, - 1.014852758801613200f, 1.014522284209548900f, 1.014191772316400000f, - 1.013861223134318900f, - 1.013530636675459100f, 1.013200012951974700f, 1.012869351976022300f, - 1.012538653759758900f, - 1.012207918315344300f, 1.011877145654937400f, 1.011546335790700600f, - 1.011215488734796800f, - 1.010884604499389800f, 1.010553683096645900f, 1.010222724538731600f, - 1.009891728837815700f, - 1.009560696006067900f, 1.009229626055658800f, 1.008898518998761800f, - 1.008567374847549900f, - 1.008236193614199000f, 1.007904975310885300f, 1.007573719949786700f, - 1.007242427543082900f, - 1.006911098102953900f, 1.006579731641582500f, 1.006248328171152100f, - 1.005916887703846500f, - 1.005585410251852700f, 1.005253895827357800f, 1.004922344442551000f, - 1.004590756109621900f, - 1.004259130840762700f, 1.003927468648166100f, 1.003595769544025900f, - 1.003264033540538500f, - 1.002932260649900000f, 1.002600450884309800f, 1.002268604255967200f, - 1.001936720777072400f, - 1.001604800459829000f, 1.001272843316440000f, 1.000940849359111000f, - 1.000608818600048100f, - 1.000276751051459200f, 0.999944646725553720f, 0.999612505634541740f, - 0.999280327790635690f, - 0.998948113206048590f, 0.998615861892994560f, 0.998283573863690270f, - 0.997951249130352380f, - 0.997618887705200020f, 0.997286489600452630f, 0.996954054828332210f, - 0.996621583401061110f, - 0.996289075330862860f, 0.995956530629963810f, 0.995623949310589620f, - 0.995291331384969390f, - 0.994958676865332010f, 0.994625985763907820f, 0.994293258092929790f, - 0.993960493864630480f, - 0.993627693091245660f, 0.993294855785010760f, 0.992961981958163210f, - 0.992629071622942340f, - 0.992296124791587690f, 0.991963141476341460f, 0.991630121689446090f, - 0.991297065443145440f, - 0.990963972749685840f, 0.990630843621313260f, 0.990297678070276800f, - 0.989964476108825210f, - 0.989631237749210020f, 0.989297963003683330f, 0.988964651884498000f, - 0.988631304403909890f, - 0.988297920574174430f, 0.987964500407549910f, 0.987631043916294970f, - 0.987297551112669370f, - 0.986964022008935520f, 0.986630456617355380f, 0.986296854950194260f, - 0.985963217019717120f, - 0.985629542838190490f, 0.985295832417883540f, 0.984962085771065030f, - 0.984628302910006580f, - 0.984294483846980150f, 0.983960628594258810f, 0.983626737164118190f, - 0.983292809568833910f, - 0.982958845820684270f, 0.982624845931947320f, 0.982290809914904140f, - 0.981956737781835790f, - 0.981622629545024770f, 0.981288485216756160f, 0.980954304809314670f, - 0.980620088334987930f, - 0.980285835806063770f, 0.979951547234831130f, 0.979617222633581860f, - 0.979282862014607240f, - 0.978948465390201530f, 0.978614032772659240f, 0.978279564174275860f, - 0.977945059607349900f, - 0.977610519084179290f, 0.977275942617064740f, 0.976941330218307540f, - 0.976606681900209830f, - 0.976271997675076550f, 0.975937277555212310f, 0.975602521552924600f, - 0.975267729680520560f, - 0.974932901950310350f, 0.974598038374604350f, 0.974263138965714040f, - 0.973928203735953460f, - 0.973593232697636530f, 0.973258225863079970f, 0.972923183244600480f, - 0.972588104854516410f, - 0.972252990705148370f, 0.971917840808816710f, 0.971582655177844700f, - 0.971247433824555920f, - 0.970912176761274950f, 0.970576884000329040f, 0.970241555554045230f, - 0.969906191434753320f, - 0.969570791654783330f, 0.969235356226466500f, 0.968899885162136650f, - 0.968564378474127350f, - 0.968228836174775060f, 0.967893258276415700f, 0.967557644791388500f, - 0.967221995732032490f, - 0.966886311110688230f, 0.966550590939698640f, 0.966214835231406500f, - 0.965879043998157160f, - 0.965543217252296420f, 0.965207355006171270f, 0.964871457272131190f, - 0.964535524062525410f, - 0.964199555389706030f, 0.963863551266025300f, 0.963527511703836660f, - 0.963191436715496120f, - 0.962855326313359350f, 0.962519180509785130f, 0.962182999317132030f, - 0.961846782747760140f, - 0.961510530814032040f, 0.961174243528309820f, 0.960837920902958720f, - 0.960501562950343390f, - 0.960165169682831830f, 0.959828741112791590f, 0.959492277252591900f, - 0.959155778114604400f, - 0.958819243711200310f, 0.958482674054753960f, 0.958146069157639560f, - 0.957809429032232760f, - 0.957472753690911670f, 0.957136043146054050f, 0.956799297410040440f, - 0.956462516495251940f, - 0.956125700414070300f, 0.955788849178880300f, 0.955451962802066120f, - 0.955115041296014880f, - 0.954778084673113870f, 0.954441092945751630f, 0.954104066126319150f, - 0.953767004227207060f, - 0.953429907260809120f, 0.953092775239518630f, 0.952755608175731570f, - 0.952418406081844360f, - 0.952081168970254520f, 0.951743896853362140f, 0.951406589743566950f, - 0.951069247653271500f, - 0.950731870594878510f, 0.950394458580791970f, 0.950057011623418380f, - 0.949719529735163940f, - 0.949382012928437600f, 0.949044461215648560f, 0.948706874609207220f, - 0.948369253121526420f, - 0.948031596765018910f, 0.947693905552099870f, 0.947356179495185020f, - 0.947018418606691230f, - 0.946680622899037650f, 0.946342792384643360f, 0.946004927075930090f, - 0.945667026985319680f, - 0.945329092125236190f, 0.944991122508104350f, 0.944653118146349890f, - 0.944315079052401090f, - 0.943977005238685770f, 0.943638896717634900f, 0.943300753501679190f, - 0.942962575603250920f, - 0.942624363034784580f, 0.942286115808714690f, 0.941947833937478270f, - 0.941609517433512730f, - 0.941271166309256450f, 0.940932780577150460f, 0.940594360249635500f, - 0.940255905339155150f, - 0.939917415858152920f, 0.939578891819073720f, 0.939240333234364950f, - 0.938901740116473540f, - 0.938563112477849630f, 0.938224450330942590f, 0.937885753688204820f, - 0.937547022562088990f, - 0.937208256965048840f, 0.936869456909540490f, 0.936530622408019990f, - 0.936191753472946030f, - 0.935852850116777430f, 0.935513912351974450f, 0.935174940190999560f, - 0.934835933646314900f, - 0.934496892730385720f, 0.934157817455677160f, 0.933818707834655590f, - 0.933479563879790030f, - 0.933140385603548840f, 0.932801173018403480f, 0.932461926136825660f, - 0.932122644971287830f, - 0.931783329534265240f, 0.931443979838232900f, 0.931104595895668410f, - 0.930765177719049210f, - 0.930425725320855430f, 0.930086238713567440f, 0.929746717909666790f, - 0.929407162921637610f, - 0.929067573761963250f, 0.928727950443130500f, 0.928388292977625930f, - 0.928048601377937210f, - 0.927708875656554800f, 0.927369115825968480f, 0.927029321898671270f, - 0.926689493887155820f, - 0.926349631803916270f, 0.926009735661449170f, 0.925669805472250860f, - 0.925329841248820340f, - 0.924989843003656610f, 0.924649810749260110f, 0.924309744498133750f, - 0.923969644262779830f, - 0.923629510055703820f, 0.923289341889410480f, 0.922949139776407800f, - 0.922608903729203570f, - 0.922268633760306990f, 0.921928329882229390f, 0.921587992107482210f, - 0.921247620448579440f, - 0.920907214918035070f, 0.920566775528364410f, 0.920226302292085460f, - 0.919885795221715540f, - 0.919545254329774850f, 0.919204679628783720f, 0.918864071131263780f, - 0.918523428849739030f, - 0.918182752796733110f, 0.917842042984772340f, 0.917501299426383480f, - 0.917160522134094160f, - 0.916819711120434700f, 0.916478866397934850f, 0.916137987979127270f, - 0.915797075876544350f, - 0.915456130102721200f, 0.915115150670193110f, 0.914774137591496510f, - 0.914433090879170130f, - 0.914092010545752620f, 0.913750896603785280f, 0.913409749065809520f, - 0.913068567944367970f, - 0.912727353252005710f, 0.912386105001267270f, 0.912044823204700370f, - 0.911703507874852440f, - 0.911362159024272310f, 0.911020776665511290f, 0.910679360811120000f, - 0.910337911473652390f, - 0.909996428665661990f, 0.909654912399703860f, 0.909313362688335290f, - 0.908971779544113350f, - 0.908630162979597760f, 0.908288513007348140f, 0.907946829639926790f, - 0.907605112889895870f, - 0.907263362769819000f, 0.906921579292262250f, 0.906579762469791110f, - 0.906237912314974080f, - 0.905896028840379560f, 0.905554112058577170f, 0.905212161982139160f, - 0.904870178623637170f, - 0.904528161995645670f, 0.904186112110739510f, 0.903844028981494190f, - 0.903501912620488070f, - 0.903159763040298880f, 0.902817580253507450f, 0.902475364272694370f, - 0.902133115110441470f, - 0.901790832779333250f, 0.901448517291953520f, 0.901106168660889110f, - 0.900763786898726380f, - 0.900421372018054500f, 0.900078924031462610f, 0.899736442951541320f, - 0.899393928790883420f, - 0.899051381562081310f, 0.898708801277730340f, 0.898366187950425780f, - 0.898023541592764210f, - 0.897680862217344440f, 0.897338149836764960f, 0.896995404463627350f, - 0.896652626110532870f, - 0.896309814790084090f, 0.895966970514885940f, 0.895624093297543110f, - 0.895281183150662960f, - 0.894938240086852970f, 0.894595264118721810f, 0.894252255258880410f, - 0.893909213519939460f, - 0.893566138914512420f, 0.893223031455212530f, 0.892879891154655380f, - 0.892536718025457090f, - 0.892193512080234670f, 0.891850273331607600f, 0.891507001792195000f, - 0.891163697474618880f, - 0.890820360391500920f, 0.890476990555464480f, 0.890133587979135000f, - 0.889790152675137610f, - 0.889446684656100330f, 0.889103183934650930f, 0.888759650523418650f, - 0.888416084435035060f, - 0.888072485682131150f, 0.887728854277341050f, 0.887385190233298650f, - 0.887041493562639060f, - 0.886697764277999840f, 0.886354002392018110f, 0.886010207917333760f, - 0.885666380866586560f, - 0.885322521252418610f, 0.884978629087472270f, 0.884634704384391180f, - 0.884290747155821230f, - 0.883946757414407980f, 0.883602735172799640f, 0.883258680443644530f, - 0.882914593239592320f, - 0.882570473573294660f, 0.882226321457403320f, 0.881882136904572400f, - 0.881537919927456340f, - 0.881193670538710450f, 0.880849388750992610f, 0.880505074576960370f, - 0.880160728029273920f, - 0.879816349120593590f, 0.879471937863580690f, 0.879127494270899090f, - 0.878783018355212220f, - 0.878438510129186170f, 0.878093969605486800f, 0.877749396796782770f, - 0.877404791715742370f, - 0.877060154375035710f, 0.876715484787334630f, 0.876370782965310900f, - 0.876026048921639160f, - 0.875681282668993700f, 0.875336484220050390f, 0.874991653587487090f, - 0.874646790783981660f, - 0.874301895822214290f, 0.873956968714865500f, 0.873612009474616810f, - 0.873267018114152300f, - 0.872921994646155390f, 0.872576939083312460f, 0.872231851438309840f, - 0.871886731723835020f, - 0.871541579952577750f, 0.871196396137227660f, 0.870851180290476810f, - 0.870505932425017060f, - 0.870160652553543020f, 0.869815340688749220f, 0.869469996843331370f, - 0.869124621029987670f, - 0.868779213261415610f, 0.868433773550315810f, 0.868088301909388680f, - 0.867742798351335720f, - 0.867397262888861100f, 0.867051695534668210f, 0.866706096301463340f, - 0.866360465201952980f, - 0.866014802248844420f, 0.865669107454847490f, 0.865323380832671800f, - 0.864977622395029290f, - 0.864631832154632240f, 0.864286010124194040f, 0.863940156316430170f, - 0.863594270744056040f, - 0.863248353419789670f, 0.862902404356348570f, 0.862556423566453230f, - 0.862210411062823810f, - 0.861864366858181910f, 0.861518290965251340f, 0.861172183396755500f, - 0.860826044165420630f, - 0.860479873283972910f, 0.860133670765139580f, 0.859787436621650360f, - 0.859441170866234390f, - 0.859094873511623840f, 0.858748544570550610f, 0.858402184055747750f, - 0.858055791979950740f, - 0.857709368355894840f, 0.857362913196317630f, 0.857016426513956930f, - 0.856669908321551650f, - 0.856323358631843170f, 0.855976777457572280f, 0.855630164811482460f, - 0.855283520706317080f, - 0.854936845154821930f, 0.854590138169742830f, 0.854243399763827020f, - 0.853896629949823630f, - 0.853549828740481690f, 0.853202996148552880f, 0.852856132186788910f, - 0.852509236867942440f, - 0.852162310204768740f, 0.851815352210022470f, 0.851468362896461110f, - 0.851121342276842110f, - 0.850774290363923820f, 0.850427207170467380f, 0.850080092709233130f, - 0.849732946992984290f, - 0.849385770034483680f, 0.849038561846496730f, 0.848691322441788910f, - 0.848344051833126780f, - 0.847996750033279350f, 0.847649417055015060f, 0.847302052911105160f, - 0.846954657614320980f, - 0.846607231177434640f, 0.846259773613221020f, 0.845912284934454140f, - 0.845564765153910990f, - 0.845217214284368690f, 0.844869632338605130f, 0.844522019329400630f, - 0.844174375269535320f, - 0.843826700171791620f, 0.843478994048952440f, 0.843131256913801420f, - 0.842783488779124570f, - 0.842435689657707650f, 0.842087859562339000f, 0.841739998505806610f, - 0.841392106500900900f, - 0.841044183560412770f, 0.840696229697133760f, 0.840348244923857960f, - 0.840000229253379030f, - 0.839652182698493290f, 0.839304105271996950f, 0.838955996986687550f, - 0.838607857855364740f, - 0.838259687890827830f, 0.837911487105878820f, 0.837563255513319780f, - 0.837214993125953600f, - 0.836866699956585690f, 0.836518376018021260f, 0.836170021323067610f, - 0.835821635884532730f, - 0.835473219715225040f, 0.835124772827955830f, 0.834776295235535540f, - 0.834427786950777460f, - 0.834079247986494690f, 0.833730678355502630f, 0.833382078070616820f, - 0.833033447144653880f, - 0.832684785590432690f, 0.832336093420771970f, 0.831987370648492710f, - 0.831638617286416190f, - 0.831289833347364620f, 0.830941018844162600f, 0.830592173789634240f, - 0.830243298196606360f, - 0.829894392077905720f, 0.829545455446360270f, 0.829196488314800080f, - 0.828847490696055010f, - 0.828498462602957340f, 0.828149404048339590f, 0.827800315045035150f, - 0.827451195605879990f, - 0.827102045743709160f, 0.826752865471360950f, 0.826403654801672770f, - 0.826054413747485010f, - 0.825705142321637720f, 0.825355840536972420f, 0.825006508406332490f, - 0.824657145942561230f, - 0.824307753158504460f, 0.823958330067008030f, 0.823608876680918760f, - 0.823259393013085820f, - 0.822909879076357930f, 0.822560334883586490f, 0.822210760447622980f, - 0.821861155781319800f, - 0.821511520897531660f, 0.821161855809112830f, 0.820812160528920360f, - 0.820462435069811090f, - 0.820112679444643060f, 0.819762893666276530f, 0.819413077747571440f, - 0.819063231701390170f, - 0.818713355540594880f, 0.818363449278050270f, 0.818013512926620940f, - 0.817663546499172720f, - 0.817313550008573640f, 0.816963523467691410f, 0.816613466889396070f, - 0.816263380286557980f, - 0.815913263672048310f, 0.815563117058740630f, 0.815212940459508210f, - 0.814862733887226740f, - 0.814512497354771830f, 0.814162230875020380f, 0.813811934460851430f, - 0.813461608125143560f, - 0.813111251880778150f, 0.812760865740636440f, 0.812410449717600570f, - 0.812060003824555230f, - 0.811709528074384460f, 0.811359022479975040f, 0.811008487054213360f, - 0.810657921809988410f, - 0.810307326760189020f, 0.809956701917705080f, 0.809606047295428950f, - 0.809255362906252440f, - 0.808904648763069890f, 0.808553904878775760f, 0.808203131266265420f, - 0.807852327938436750f, - 0.807501494908186900f, 0.807150632188415760f, 0.806799739792023240f, - 0.806448817731910130f, - 0.806097866020979660f, 0.805746884672134620f, 0.805395873698280360f, - 0.805044833112322000f, - 0.804693762927166100f, 0.804342663155721230f, 0.803991533810895500f, - 0.803640374905599810f, - 0.803289186452744390f, 0.802937968465242240f, 0.802586720956006250f, - 0.802235443937950320f, - 0.801884137423990890f, 0.801532801427043530f, 0.801181435960026780f, - 0.800830041035858750f, - 0.800478616667459010f, 0.800127162867749210f, 0.799775679649650460f, - 0.799424167026086540f, - 0.799072625009981330f, 0.798721053614259490f, 0.798369452851848020f, - 0.798017822735673680f, - 0.797666163278665570f, 0.797314474493752810f, 0.796962756393865600f, - 0.796611008991936490f, - 0.796259232300897350f, 0.795907426333682830f, 0.795555591103226930f, - 0.795203726622466520f, - 0.794851832904338360f, 0.794499909961779990f, 0.794147957807731400f, - 0.793795976455132220f, - 0.793443965916924570f, 0.793091926206050400f, 0.792739857335452710f, - 0.792387759318077150f, - 0.792035632166868230f, 0.791683475894773720f, 0.791331290514740830f, - 0.790979076039718180f, - 0.790626832482656310f, 0.790274559856505520f, 0.789922258174218570f, - 0.789569927448748320f, - 0.789217567693048520f, 0.788865178920075130f, 0.788512761142783790f, - 0.788160314374132590f, - 0.787807838627079260f, 0.787455333914584220f, 0.787102800249607550f, - 0.786750237645110430f, - 0.786397646114056490f, 0.786045025669408700f, 0.785692376324132690f, - 0.785339698091194080f, - 0.784986990983559170f, 0.784634255014197040f, 0.784281490196075850f, - 0.783928696542166680f, - 0.783575874065440270f, 0.783223022778868350f, 0.782870142695425320f, - 0.782517233828084580f, - 0.782164296189822530f, 0.781811329793615120f, 0.781458334652439630f, - 0.781105310779275470f, - 0.780752258187101480f, 0.780399176888899150f, 0.780046066897649550f, - 0.779692928226336290f, - 0.779339760887942880f, 0.778986564895453810f, 0.778633340261856040f, - 0.778280087000135730f, - 0.777926805123281830f, 0.777573494644283050f, 0.777220155576129220f, - 0.776866787931812410f, - 0.776513391724324210f, 0.776159966966658680f, 0.775806513671809860f, - 0.775453031852772920f, - 0.775099521522545020f, 0.774745982694123090f, 0.774392415380506400f, - 0.774038819594694230f, - 0.773685195349686940f, 0.773331542658487140f, 0.772977861534096640f, - 0.772624151989520280f, - 0.772270414037761980f, 0.771916647691828660f, 0.771562852964726710f, - 0.771209029869463940f, - 0.770855178419050050f, 0.770501298626494410f, 0.770147390504808960f, - 0.769793454067005500f, - 0.769439489326096850f, 0.769085496295098040f, 0.768731474987023660f, - 0.768377425414890850f, - 0.768023347591716640f, 0.767669241530518850f, 0.767315107244318060f, - 0.766960944746133740f, - 0.766606754048988260f, 0.766252535165903970f, 0.765898288109903900f, - 0.765544012894013530f, - 0.765189709531257760f, 0.764835378034664170f, 0.764481018417259680f, - 0.764126630692073870f, - 0.763772214872136200f, 0.763417770970477140f, 0.763063299000129260f, - 0.762708798974124800f, - 0.762354270905498450f, 0.761999714807284790f, 0.761645130692519490f, - 0.761290518574240350f, - 0.760935878465484720f, 0.760581210379292380f, 0.760226514328703140f, - 0.759871790326757670f, - 0.759517038386499090f, 0.759162258520969860f, 0.758807450743214760f, - 0.758452615066278920f, - 0.758097751503208020f, 0.757742860067050380f, 0.757387940770853360f, - 0.757032993627667290f, - 0.756678018650541630f, 0.756323015852528700f, 0.755967985246680520f, - 0.755612926846050080f, - 0.755257840663692730f, 0.754902726712663120f, 0.754547585006018600f, - 0.754192415556816380f, - 0.753837218378114460f, 0.753481993482973400f, 0.753126740884452970f, - 0.752771460595615500f, - 0.752416152629523330f, 0.752060816999239660f, 0.751705453717829930f, - 0.751350062798359140f, - 0.750994644253894730f, 0.750639198097504010f, 0.750283724342255320f, - 0.749928223001219310f, - 0.749572694087465850f, 0.749217137614067500f, 0.748861553594096340f, - 0.748505942040627040f, - 0.748150302966733790f, 0.747794636385492150f, 0.747438942309979870f, - 0.747083220753273820f, - 0.746727471728453770f, 0.746371695248599140f, 0.746015891326790470f, - 0.745660059976110400f, - 0.745304201209641030f, 0.744948315040467210f, 0.744592401481673270f, - 0.744236460546344850f, - 0.743880492247569580f, 0.743524496598434670f, 0.743168473612029980f, - 0.742812423301444810f, - 0.742456345679769810f, 0.742100240760097840f, 0.741744108555520860f, - 0.741387949079133860f, - 0.741031762344030790f, 0.740675548363308620f, 0.740319307150063780f, - 0.739963038717393880f, - 0.739606743078398690f, 0.739250420246177380f, 0.738894070233831800f, - 0.738537693054463370f, - 0.738181288721174830f, 0.737824857247070810f, 0.737468398645255490f, - 0.737111912928835710f, - 0.736755400110918000f, 0.736398860204609870f, 0.736042293223021060f, - 0.735685699179260850f, - 0.735329078086440880f, 0.734972429957672760f, 0.734615754806068890f, - 0.734259052644744230f, - 0.733902323486812610f, 0.733545567345390890f, 0.733188784233595240f, - 0.732831974164544150f, - 0.732475137151356370f, 0.732118273207151170f, 0.731761382345050280f, - 0.731404464578174760f, - 0.731047519919648340f, 0.730690548382594280f, 0.730333549980137110f, - 0.729976524725403530f, - 0.729619472631519270f, 0.729262393711613280f, 0.728905287978813600f, - 0.728548155446249730f, - 0.728190996127053180f, 0.727833810034354990f, 0.727476597181288540f, - 0.727119357580987220f, - 0.726762091246585200f, 0.726404798191218950f, 0.726047478428024420f, - 0.725690131970139980f, - 0.725332758830703360f, 0.724975359022855150f, 0.724617932559735390f, - 0.724260479454485130f, - 0.723902999720247850f, 0.723545493370166160f, 0.723187960417385530f, - 0.722830400875050790f, - 0.722472814756308090f, 0.722115202074305680f, 0.721757562842191060f, - 0.721399897073114470f, - 0.721042204780225960f, 0.720684485976676230f, 0.720326740675618530f, - 0.719968968890205230f, - 0.719611170633591480f, 0.719253345918932090f, 0.718895494759382860f, - 0.718537617168101610f, - 0.718179713158245800f, 0.717821782742975370f, 0.717463825935449550f, - 0.717105842748830160f, - 0.716747833196278770f, 0.716389797290958090f, 0.716031735046032900f, - 0.715673646474667140f, - 0.715315531590027700f, 0.714957390405280950f, 0.714599222933594240f, - 0.714241029188137260f, - 0.713882809182079030f, 0.713524562928591010f, 0.713166290440844450f, - 0.712807991732011590f, - 0.712449666815266890f, 0.712091315703784260f, 0.711732938410739810f, - 0.711374534949309800f, - 0.711016105332671340f, 0.710657649574003460f, 0.710299167686484930f, - 0.709940659683296890f, - 0.709582125577619790f, 0.709223565382636760f, 0.708864979111530680f, - 0.708506366777485130f, - 0.708147728393686340f, 0.707789063973319310f, 0.707430373529572170f, - 0.707071657075632460f, - 0.706712914624688770f, 0.706354146189931750f, 0.705995351784551530f, - 0.705636531421740880f, - 0.705277685114692020f, 0.704918812876598410f, 0.704559914720655490f, - 0.704200990660058150f, - 0.703842040708003820f, 0.703483064877689630f, 0.703124063182313690f, - 0.702765035635076310f, - 0.702405982249177160f, 0.702046903037818250f, 0.701687798014201110f, - 0.701328667191529980f, - 0.700969510583008600f, 0.700610328201841660f, 0.700251120061236020f, - 0.699891886174398130f, - 0.699532626554536630f, 0.699173341214860190f, 0.698814030168578240f, - 0.698454693428902320f, - 0.698095331009043640f, 0.697735942922215520f, 0.697376529181631400f, - 0.697017089800505250f, - 0.696657624792053730f, 0.696298134169492380f, 0.695938617946039510f, - 0.695579076134912990f, - 0.695219508749331800f, 0.694859915802517050f, 0.694500297307689140f, - 0.694140653278070950f, - 0.693780983726884790f, 0.693421288667355530f, 0.693061568112707690f, - 0.692701822076166820f, - 0.692342050570960430f, 0.691982253610315510f, 0.691622431207461700f, - 0.691262583375628180f, - 0.690902710128045050f, 0.690542811477944610f, 0.690182887438558710f, - 0.689822938023121220f, - 0.689462963244866330f, 0.689102963117028790f, 0.688742937652845550f, - 0.688382886865552930f, - 0.688022810768389670f, 0.687662709374594510f, 0.687302582697406850f, - 0.686942430750068330f, - 0.686582253545819920f, 0.686222051097905130f, 0.685861823419566700f, - 0.685501570524050140f, - 0.685141292424600310f, 0.684780989134463280f, 0.684420660666887120f, - 0.684060307035119440f, - 0.683699928252410110f, 0.683339524332008840f, 0.682979095287166160f, - 0.682618641131135020f, - 0.682258161877167370f, 0.681897657538517720f, 0.681537128128440470f, - 0.681176573660190910f, - 0.680815994147026320f, 0.680455389602203310f, 0.680094760038981280f, - 0.679734105470619080f, - 0.679373425910376310f, 0.679012721371515250f, 0.678651991867297080f, - 0.678291237410985510f, - 0.677930458015843620f, 0.677569653695137220f, 0.677208824462131490f, - 0.676847970330092700f, - 0.676487091312289350f, 0.676126187421989040f, 0.675765258672461950f, - 0.675404305076978020f, - 0.675043326648808170f, 0.674682323401225250f, 0.674321295347501510f, - 0.673960242500911690f, - 0.673599164874730370f, 0.673238062482232950f, 0.672876935336696900f, - 0.672515783451398950f, - 0.672154606839618470f, 0.671793405514634180f, 0.671432179489727110f, - 0.671070928778178090f, - 0.670709653393269050f, 0.670348353348283690f, 0.669987028656505170f, - 0.669625679331219300f, - 0.669264305385711360f, 0.668902906833267590f, 0.668541483687176590f, - 0.668180035960725840f, - 0.667818563667205600f, 0.667457066819905800f, 0.667095545432117240f, - 0.666733999517132860f, - 0.666372429088244790f, 0.666010834158747840f, 0.665649214741936390f, - 0.665287570851105680f, - 0.664925902499553190f, 0.664564209700575500f, 0.664202492467472090f, - 0.663840750813541210f, - 0.663478984752084110f, 0.663117194296401260f, 0.662755379459794350f, - 0.662393540255567070f, - 0.662031676697022450f, 0.661669788797465960f, 0.661307876570202740f, - 0.660945940028538900f, - 0.660583979185782600f, 0.660221994055241400f, 0.659859984650225110f, - 0.659497950984043510f, - 0.659135893070007080f, 0.658773810921428500f, 0.658411704551619570f, - 0.658049573973894850f, - 0.657687419201568260f, 0.657325240247955020f, 0.656963037126372160f, - 0.656600809850135910f, - 0.656238558432565400f, 0.655876282886978410f, 0.655513983226695960f, - 0.655151659465038060f, - 0.654789311615326050f, 0.654426939690883280f, 0.654064543705032310f, - 0.653702123671098150f, - 0.653339679602405470f, 0.652977211512280050f, 0.652614719414049580f, - 0.652252203321041060f, - 0.651889663246583930f, 0.651527099204007310f, 0.651164511206641320f, - 0.650801899267818060f, - 0.650439263400868990f, 0.650076603619127890f, 0.649713919935928420f, - 0.649351212364604910f, - 0.648988480918494040f, 0.648625725610931460f, 0.648262946455255510f, - 0.647900143464803730f, - 0.647537316652916140f, 0.647174466032932490f, 0.646811591618193350f, - 0.646448693422041360f, - 0.646085771457818310f, 0.645722825738868860f, 0.645359856278536980f, - 0.644996863090167570f, - 0.644633846187107620f, 0.644270805582703550f, 0.643907741290304040f, - 0.643544653323257610f, - 0.643181541694913480f, 0.642818406418622980f, 0.642455247507736860f, - 0.642092064975608220f, - 0.641728858835589830f, 0.641365629101035340f, 0.641002375785300500f, - 0.640639098901740200f, - 0.640275798463712080f, 0.639912474484572560f, 0.639549126977681070f, - 0.639185755956396480f, - 0.638822361434078330f, 0.638458943424088490f, 0.638095501939787920f, - 0.637732036994540290f, - 0.637368548601708660f, 0.637005036774657030f, 0.636641501526751590f, - 0.636277942871357530f, - 0.635914360821842830f, 0.635550755391574910f, 0.635187126593922070f, - 0.634823474442254840f, - 0.634459798949942640f, 0.634096100130357660f, 0.633732377996871770f, - 0.633368632562857470f, - 0.633004863841689520f, 0.632641071846741790f, 0.632277256591390780f, - 0.631913418089012020f, - 0.631549556352983710f, 0.631185671396683470f, 0.630821763233490040f, - 0.630457831876783950f, - 0.630093877339945260f, 0.629729899636356280f, 0.629365898779399080f, - 0.629001874782456500f, - 0.628637827658913300f, 0.628273757422153860f, 0.627909664085564810f, - 0.627545547662532230f, - 0.627181408166443410f, 0.626817245610687520f, 0.626453060008652860f, - 0.626088851373730380f, - 0.625724619719310480f, 0.625360365058784670f, 0.624996087405546350f, - 0.624631786772988030f, - 0.624267463174504880f, 0.623903116623491180f, 0.623538747133343780f, - 0.623174354717459190f, - 0.622809939389234460f, 0.622445501162069090f, 0.622081040049361490f, - 0.621716556064512820f, - 0.621352049220923570f, 0.620987519531995270f, 0.620622967011131400f, - 0.620258391671734690f, - 0.619893793527210410f, 0.619529172590963410f, 0.619164528876399280f, - 0.618799862396925750f, - 0.618435173165949760f, 0.618070461196880800f, 0.617705726503127720f, - 0.617340969098100430f, - 0.616976188995210780f, 0.616611386207870040f, 0.616246560749491690f, - 0.615881712633488340f, - 0.615516841873275490f, 0.615151948482267840f, 0.614787032473881110f, - 0.614422093861533010f, - 0.614057132658640590f, 0.613692148878623000f, 0.613327142534899510f, - 0.612962113640889710f, - 0.612597062210015750f, 0.612231988255698470f, 0.611866891791361560f, - 0.611501772830428060f, - 0.611136631386322020f, 0.610771467472469460f, 0.610406281102295440f, - 0.610041072289227990f, - 0.609675841046694030f, 0.609310587388121830f, 0.608945311326941520f, - 0.608580012876582370f, - 0.608214692050476290f, 0.607849348862054220f, 0.607483983324749510f, - 0.607118595451995420f, - 0.606753185257225550f, 0.606387752753876020f, 0.606022297955381760f, - 0.605656820875180360f, - 0.605291321526709060f, 0.604925799923405670f, 0.604560256078710220f, - 0.604194690006061960f, - 0.603829101718902580f, 0.603463491230673220f, 0.603097858554815790f, - 0.602732203704774650f, - 0.602366526693992930f, 0.602000827535916330f, 0.601635106243990190f, - 0.601269362831660550f, - 0.600903597312375640f, 0.600537809699582810f, 0.600172000006731770f, - 0.599806168247271620f, - 0.599440314434653620f, 0.599074438582328780f, 0.598708540703749010f, - 0.598342620812368000f, - 0.597976678921638860f, 0.597610715045016950f, 0.597244729195957500f, - 0.596878721387916090f, - 0.596512691634350830f, 0.596146639948718640f, 0.595780566344478960f, - 0.595414470835091030f, - 0.595048353434014630f, 0.594682214154711790f, 0.594316053010643270f, - 0.593949870015273000f, - 0.593583665182063740f, 0.593217438524479500f, 0.592851190055986300f, - 0.592484919790049140f, - 0.592118627740135460f, 0.591752313919712170f, 0.591385978342248260f, - 0.591019621021212420f, - 0.590653241970074180f, 0.590286841202305120f, 0.589920418731375800f, - 0.589553974570759530f, - 0.589187508733928890f, 0.588821021234357310f, 0.588454512085520460f, - 0.588087981300892900f, - 0.587721428893951850f, 0.587354854878173850f, 0.586988259267036350f, - 0.586621642074019120f, - 0.586255003312600500f, 0.585888342996261690f, 0.585521661138483250f, - 0.585154957752746730f, - 0.584788232852535560f, 0.584421486451332410f, 0.584054718562622140f, - 0.583687929199888990f, - 0.583321118376619710f, 0.582954286106300290f, 0.582587432402417840f, - 0.582220557278461340f, - 0.581853660747918780f, 0.581486742824280810f, 0.581119803521037650f, - 0.580752842851679940f, - 0.580385860829700780f, 0.580018857468592270f, 0.579651832781848730f, - 0.579284786782964360f, - 0.578917719485433800f, 0.578550630902754050f, 0.578183521048421080f, - 0.577816389935933090f, - 0.577449237578788300f, 0.577082063990485340f, 0.576714869184524860f, - 0.576347653174406840f, - 0.575980415973633590f, 0.575613157595706530f, 0.575245878054129520f, - 0.574878577362406000f, - 0.574511255534040030f, 0.574143912582537940f, 0.573776548521405030f, - 0.573409163364148930f, - 0.573041757124277180f, 0.572674329815297640f, 0.572306881450720390f, - 0.571939412044054740f, - 0.571571921608812320f, 0.571204410158504090f, 0.570836877706642270f, - 0.570469324266740570f, - 0.570101749852312100f, 0.569734154476872480f, 0.569366538153936560f, - 0.568998900897020210f, - 0.568631242719641270f, 0.568263563635316600f, 0.567895863657565500f, - 0.567528142799906490f, - 0.567160401075860410f, 0.566792638498947680f, 0.566424855082689470f, - 0.566057050840608870f, - 0.565689225786228160f, 0.565321379933072190f, 0.564953513294665140f, - 0.564585625884531870f, - 0.564217717716199550f, 0.563849788803194140f, 0.563481839159044150f, - 0.563113868797277870f, - 0.562745877731423820f, 0.562377865975012940f, 0.562009833541575080f, - 0.561641780444642640f, - 0.561273706697747450f, 0.560905612314422150f, 0.560537497308201240f, - 0.560169361692618440f, - 0.559801205481210040f, 0.559433028687510990f, 0.559064831325059240f, - 0.558696613407391630f, - 0.558328374948046320f, 0.557960115960563050f, 0.557591836458480870f, - 0.557223536455341280f, - 0.556855215964685120f, 0.556486875000054000f, 0.556118513574991650f, - 0.555750131703040880f, - 0.555381729397746880f, 0.555013306672654360f, 0.554644863541308600f, - 0.554276400017257090f, - 0.553907916114046440f, 0.553539411845225590f, 0.553170887224342820f, - 0.552802342264947400f, - 0.552433776980590490f, 0.552065191384822350f, 0.551696585491195710f, - 0.551327959313262280f, - 0.550959312864576220f, 0.550590646158691240f, 0.550221959209161620f, - 0.549853252029543830f, - 0.549484524633393480f, 0.549115777034268170f, 0.548747009245725500f, - 0.548378221281323520f, - 0.548009413154622370f, 0.547640584879181100f, 0.547271736468561530f, - 0.546902867936324590f, - 0.546533979296032200f, 0.546165070561248080f, 0.545796141745535150f, - 0.545427192862458780f, - 0.545058223925583670f, 0.544689234948475210f, 0.544320225944701200f, - 0.543951196927828010f, - 0.543582147911424560f, 0.543213078909059120f, 0.542843989934301940f, - 0.542474881000723050f, - 0.542105752121893050f, 0.541736603311384620f, 0.541367434582769480f, - 0.540998245949621760f, - 0.540629037425515050f, 0.540259809024023600f, 0.539890560758723770f, - 0.539521292643190930f, - 0.539152004691002770f, 0.538782696915736770f, 0.538413369330970610f, - 0.538044021950284450f, - 0.537674654787257180f, 0.537305267855470390f, 0.536935861168504670f, - 0.536566434739941920f, - 0.536196988583365510f, 0.535827522712358230f, 0.535458037140505110f, - 0.535088531881390050f, - 0.534719006948599860f, 0.534349462355720230f, 0.533979898116337950f, - 0.533610314244041710f, - 0.533240710752419080f, 0.532871087655060300f, 0.532501444965554960f, - 0.532131782697493170f, - 0.531762100864467290f, 0.531392399480068670f, 0.531022678557890980f, - 0.530652938111527360f, - 0.530283178154571710f, 0.529913398700619820f, 0.529543599763266700f, - 0.529173781356109600f, - 0.528803943492745180f, 0.528434086186771010f, 0.528064209451786560f, - 0.527694313301390160f, - 0.527324397749182720f, 0.526954462808764120f, 0.526584508493736840f, - 0.526214534817702310f, - 0.525844541794263210f, 0.525474529437023890f, 0.525104497759587900f, - 0.524734446775560910f, - 0.524364376498548390f, 0.523994286942156220f, 0.523624178119992400f, - 0.523254050045663940f, - 0.522883902732780290f, 0.522513736194950230f, 0.522143550445783310f, - 0.521773345498891090f, - 0.521403121367884030f, 0.521032878066375100f, 0.520662615607976660f, - 0.520292334006301820f, - 0.519922033274965560f, 0.519551713427582000f, 0.519181374477767470f, - 0.518811016439137520f, - 0.518440639325310040f, 0.518070243149902240f, 0.517699827926532130f, - 0.517329393668819580f, - 0.516958940390383700f, 0.516588468104845820f, 0.516217976825826600f, - 0.515847466566947580f, - 0.515476937341832310f, 0.515106389164103120f, 0.514735822047384990f, - 0.514365236005302040f, - 0.513994631051479240f, 0.513624007199543600f, 0.513253364463121090f, - 0.512882702855839920f, - 0.512512022391327980f, 0.512141323083213470f, 0.511770604945127050f, - 0.511399867990697920f, - 0.511029112233557960f, 0.510658337687338040f, 0.510287544365671140f, - 0.509916732282189920f, - 0.509545901450527690f, 0.509175051884319660f, 0.508804183597200140f, - 0.508433296602805670f, - 0.508062390914772230f, 0.507691466546736580f, 0.507320523512337470f, - 0.506949561825212450f, - 0.506578581499001590f, 0.506207582547344550f, 0.505836564983881190f, - 0.505465528822253710f, - 0.505094474076103310f, 0.504723400759073290f, 0.504352308884806750f, - 0.503981198466947000f, - 0.503610069519139780f, 0.503238922055029400f, 0.502867756088262840f, - 0.502496571632486070f, - 0.502125368701347050f, 0.501754147308493770f, 0.501382907467574190f, - 0.501011649192238950f, - 0.500640372496137020f, 0.500269077392920150f, 0.499897763896239410f, - 0.499526432019746450f, - 0.499155081777094940f, 0.498783713181937540f, 0.498412326247929250f, - 0.498040920988724490f, - 0.497669497417978280f, 0.497298055549347750f, 0.496926595396488870f, - 0.496555116973059980f, - 0.496183620292718900f, 0.495812105369124070f, 0.495440572215935850f, - 0.495069020846813650f, - 0.494697451275419140f, 0.494325863515413130f, 0.493954257580458580f, - 0.493582633484217940f, - 0.493210991240354450f, 0.492839330862533120f, 0.492467652364417970f, - 0.492095955759675460f, - 0.491724241061971320f, 0.491352508284972070f, 0.490980757442346090f, - 0.490608988547760690f, - 0.490237201614885710f, 0.489865396657390210f, 0.489493573688943970f, - 0.489121732723218740f, - 0.488749873773885120f, 0.488377996854616250f, 0.488006101979084450f, - 0.487634189160962910f, - 0.487262258413926560f, 0.486890309751649490f, 0.486518343187807900f, - 0.486146358736077200f, - 0.485774356410135000f, 0.485402336223658360f, 0.485030298190324950f, - 0.484658242323814380f, - 0.484286168637805270f, 0.483914077145978560f, 0.483541967862014480f, - 0.483169840799594130f, - 0.482797695972400300f, 0.482425533394114920f, 0.482053353078422120f, - 0.481681155039005550f, - 0.481308939289549380f, 0.480936705843739820f, 0.480564454715261990f, - 0.480192185917803270f, - 0.479819899465050160f, 0.479447595370691370f, 0.479075273648415010f, - 0.478702934311909910f, - 0.478330577374866780f, 0.477958202850975230f, 0.477585810753927250f, - 0.477213401097414220f, - 0.476840973895128200f, 0.476468529160763100f, 0.476096066908011760f, - 0.475723587150569390f, - 0.475351089902130650f, 0.474978575176390750f, 0.474606042987046840f, - 0.474233493347795020f, - 0.473860926272333670f, 0.473488341774360670f, 0.473115739867574380f, - 0.472743120565675250f, - 0.472370483882362520f, 0.471997829831337810f, 0.471625158426301700f, - 0.471252469680957190f, - 0.470879763609006460f, 0.470507040224152460f, 0.470134299540099940f, - 0.469761541570552780f, - 0.469388766329217000f, 0.469015973829798090f, 0.468643164086002100f, - 0.468270337111537040f, - 0.467897492920109850f, 0.467524631525429830f, 0.467151752941205530f, - 0.466778857181146260f, - 0.466405944258963200f, 0.466033014188366350f, 0.465660066983068220f, - 0.465287102656780530f, - 0.464914121223215740f, 0.464541122696088100f, 0.464168107089110940f, - 0.463795074415999760f, - 0.463422024690469060f, 0.463048957926235630f, 0.462675874137015720f, - 0.462302773336526080f, - 0.461929655538485470f, 0.461556520756611410f, 0.461183369004623920f, - 0.460810200296242310f, - 0.460437014645186440f, 0.460063812065178160f, 0.459690592569938270f, - 0.459317356173189750f, - 0.458944102888655060f, 0.458570832730057170f, 0.458197545711121090f, - 0.457824241845570630f, - 0.457450921147131930f, 0.457077583629530550f, 0.456704229306492570f, - 0.456330858191746010f, - 0.455957470299017840f, 0.455584065642037350f, 0.455210644234532610f, - 0.454837206090234200f, - 0.454463751222871910f, 0.454090279646176210f, 0.453716791373879380f, - 0.453343286419712720f, - 0.452969764797409750f, 0.452596226520703360f, 0.452222671603327130f, - 0.451849100059016350f, - 0.451475511901505420f, 0.451101907144530910f, 0.450728285801828830f, - 0.450354647887135640f, - 0.449980993414189900f, 0.449607322396728900f, 0.449233634848492320f, - 0.448859930783219170f, - 0.448486210214649020f, 0.448112473156523420f, 0.447738719622582710f, - 0.447364949626569590f, - 0.446991163182225700f, 0.446617360303294910f, 0.446243541003520480f, - 0.445869705296646270f, - 0.445495853196417930f, 0.445121984716580210f, 0.444748099870879880f, - 0.444374198673063330f, - 0.444000281136877280f, 0.443626347276070590f, 0.443252397104390790f, - 0.442878430635587910f, - 0.442504447883411090f, 0.442130448861610240f, 0.441756433583937120f, - 0.441382402064142250f, - 0.441008354315978680f, 0.440634290353198510f, 0.440260210189554690f, - 0.439886113838801880f, - 0.439512001314693700f, 0.439137872630986080f, 0.438763727801433690f, - 0.438389566839793740f, - 0.438015389759822630f, 0.437641196575277220f, 0.437266987299916590f, - 0.436892761947498260f, - 0.436518520531782470f, 0.436144263066528480f, 0.435769989565496290f, - 0.435395700042447710f, - 0.435021394511143410f, 0.434647072985346380f, 0.434272735478819010f, - 0.433898382005324050f, - 0.433524012578626440f, 0.433149627212489670f, 0.432775225920679740f, - 0.432400808716961900f, - 0.432026375615101930f, 0.431651926628867530f, 0.431277461772025310f, - 0.430902981058344070f, - 0.430528484501591540f, 0.430153972115537800f, 0.429779443913952170f, - 0.429404899910604490f, - 0.429030340119266550f, 0.428655764553708960f, 0.428281173227704760f, - 0.427906566155026040f, - 0.427531943349445720f, 0.427157304824738350f, 0.426782650594677570f, - 0.426407980673039090f, - 0.426033295073598160f, 0.425658593810130330f, 0.425283876896413280f, - 0.424909144346223290f, - 0.424534396173339160f, 0.424159632391538870f, 0.423784853014600950f, - 0.423410058056305830f, - 0.423035247530432810f, 0.422660421450763490f, 0.422285579831078230f, - 0.421910722685159720f, - 0.421535850026790060f, 0.421160961869751720f, 0.420786058227829220f, - 0.420411139114805770f, - 0.420036204544466940f, 0.419661254530597550f, 0.419286289086983070f, - 0.418911308227410740f, - 0.418536311965666650f, 0.418161300315539220f, 0.417786273290816130f, - 0.417411230905285650f, - 0.417036173172737830f, 0.416661100106961610f, 0.416286011721748230f, - 0.415910908030888200f, - 0.415535789048172620f, 0.415160654787394280f, 0.414785505262345030f, - 0.414410340486818910f, - 0.414035160474608700f, 0.413659965239509710f, 0.413284754795316230f, - 0.412909529155823300f, - 0.412534288334827750f, 0.412159032346125280f, 0.411783761203513790f, - 0.411408474920790520f, - 0.411033173511753220f, 0.410657856990201580f, 0.410282525369933980f, - 0.409907178664751180f, - 0.409531816888453190f, 0.409156440054840590f, 0.408781048177715660f, - 0.408405641270879690f, - 0.408030219348136270f, 0.407654782423288010f, 0.407279330510138260f, - 0.406903863622492260f, - 0.406528381774153900f, 0.406152884978929480f, 0.405777373250624070f, - 0.405401846603045010f, - 0.405026305049998980f, 0.404650748605293040f, 0.404275177282736260f, - 0.403899591096136380f, - 0.403523990059303620f, 0.403148374186047210f, 0.402772743490177110f, - 0.402397097985504990f, - 0.402021437685841480f, 0.401645762604999350f, 0.401270072756790610f, - 0.400894368155027990f, - 0.400518648813525830f, 0.400142914746097480f, 0.399767165966558420f, - 0.399391402488723400f, - 0.399015624326407800f, 0.398639831493428740f, 0.398264024003602220f, - 0.397888201870746420f, - 0.397512365108678430f, 0.397136513731217500f, 0.396760647752182230f, - 0.396384767185391620f, - 0.396008872044666730f, 0.395632962343827170f, 0.395257038096694990f, - 0.394881099317091370f, - 0.394505146018838130f, 0.394129178215758820f, 0.393753195921675850f, - 0.393377199150413860f, - 0.393001187915796750f, 0.392625162231649010f, 0.392249122111796800f, - 0.391873067570065240f, - 0.391496998620281590f, 0.391120915276272410f, 0.390744817551864850f, - 0.390368705460887750f, - 0.389992579017168830f, 0.389616438234538010f, 0.389240283126824070f, - 0.388864113707858060f, - 0.388487929991470140f, 0.388111731991491180f, 0.387735519721753690f, - 0.387359293196089140f, - 0.386983052428331030f, 0.386606797432312350f, 0.386230528221866430f, - 0.385854244810828530f, - 0.385477947213032580f, 0.385101635442314900f, 0.384725309512510880f, - 0.384348969437456610f, - 0.383972615230989860f, 0.383596246906947210f, 0.383219864479167560f, - 0.382843467961488940f, - 0.382467057367749940f, 0.382090632711791060f, 0.381714194007451380f, - 0.381337741268572390f, - 0.380961274508994250f, 0.380584793742559550f, 0.380208298983109930f, - 0.379831790244487540f, - 0.379455267540536490f, 0.379078730885099520f, 0.378702180292021630f, - 0.378325615775147170f, - 0.377949037348320800f, 0.377572445025389230f, 0.377195838820197690f, - 0.376819218746593910f, - 0.376442584818424570f, 0.376065937049537060f, 0.375689275453780500f, - 0.375312600045002780f, - 0.374935910837054080f, 0.374559207843783660f, 0.374182491079041500f, - 0.373805760556679190f, - 0.373429016290547200f, 0.373052258294498230f, 0.372675486582383640f, - 0.372298701168057190f, - 0.371921902065371730f, 0.371545089288180640f, 0.371168262850339210f, - 0.370791422765701320f, - 0.370414569048123140f, 0.370037701711460170f, 0.369660820769568240f, - 0.369283926236305070f, - 0.368907018125527120f, 0.368530096451093140f, 0.368153161226860980f, - 0.367776212466689010f, - 0.367399250184437480f, 0.367022274393965340f, 0.366645285109133750f, - 0.366268282343803150f, - 0.365891266111834370f, 0.365514236427090080f, 0.365137193303431750f, - 0.364760136754723020f, - 0.364383066794826350f, 0.364005983437606320f, 0.363628886696926890f, - 0.363251776586652310f, - 0.362874653120648700f, 0.362497516312780990f, 0.362120366176916230f, - 0.361743202726920790f, - 0.361366025976661450f, 0.360988835940006750f, 0.360611632630824020f, - 0.360234416062982840f, - 0.359857186250351960f, 0.359479943206800550f, 0.359102686946199680f, - 0.358725417482419150f, - 0.358348134829330870f, 0.357970839000806010f, 0.357593530010716310f, - 0.357216207872935120f, - 0.356838872601334680f, 0.356461524209789380f, 0.356084162712172360f, - 0.355706788122359060f, - 0.355329400454223950f, 0.354951999721642100f, 0.354574585938490280f, - 0.354197159118644080f, - 0.353819719275981330f, 0.353442266424378930f, 0.353064800577714280f, - 0.352687321749866610f, - 0.352309829954713830f, 0.351932325206136210f, 0.351554807518012990f, - 0.351177276904224070f, - 0.350799733378650890f, 0.350422176955173910f, 0.350044607647675640f, - 0.349667025470037810f, - 0.349289430436142520f, 0.348911822559873850f, 0.348534201855114360f, - 0.348156568335749040f, - 0.347778922015661520f, 0.347401262908737570f, 0.347023591028862320f, - 0.346645906389921150f, - 0.346268209005801410f, 0.345890498890388980f, 0.345512776057572080f, - 0.345135040521238170f, - 0.344757292295274910f, 0.344379531393571970f, 0.344001757830017680f, - 0.343623971618502560f, - 0.343246172772916250f, 0.342868361307148980f, 0.342490537235092600f, - 0.342112700570637750f, - 0.341734851327677280f, 0.341356989520103240f, 0.340979115161808070f, - 0.340601228266685980f, - 0.340223328848629880f, 0.339845416921535030f, 0.339467492499295200f, - 0.339089555595806560f, - 0.338711606224964210f, 0.338333644400663940f, 0.337955670136803170f, - 0.337577683447278010f, - 0.337199684345986910f, 0.336821672846827290f, 0.336443648963697160f, - 0.336065612710496290f, - 0.335687564101123050f, 0.335309503149478110f, 0.334931429869461230f, - 0.334553344274972690f, - 0.334175246379914470f, 0.333797136198187240f, 0.333419013743693980f, - 0.333040879030336690f, - 0.332662732072017800f, 0.332284572882641680f, 0.331906401476111280f, - 0.331528217866331690f, - 0.331150022067206780f, 0.330771814092642610f, 0.330393593956544440f, - 0.330015361672817750f, - 0.329637117255370090f, 0.329258860718107450f, 0.328880592074938190f, - 0.328502311339769700f, - 0.328124018526509800f, 0.327745713649068180f, 0.327367396721353070f, - 0.326989067757275040f, - 0.326610726770743760f, 0.326232373775669270f, 0.325854008785963320f, - 0.325475631815536570f, - 0.325097242878301660f, 0.324718841988170470f, 0.324340429159055250f, - 0.323962004404870050f, - 0.323583567739527570f, 0.323205119176942720f, 0.322826658731029110f, - 0.322448186415702550f, - 0.322069702244877910f, 0.321691206232470550f, 0.321312698392397570f, - 0.320934178738574720f, - 0.320555647284919980f, 0.320177104045350440f, 0.319798549033783570f, - 0.319419982264138650f, - 0.319041403750333630f, 0.318662813506288670f, 0.318284211545923010f, - 0.317905597883156250f, - 0.317526972531909870f, 0.317148335506103940f, 0.316769686819660780f, - 0.316391026486501690f, - 0.316012354520548600f, 0.315633670935725030f, 0.315254975745953180f, - 0.314876268965157470f, - 0.314497550607261090f, 0.314118820686189180f, 0.313740079215866160f, - 0.313361326210216840f, - 0.312982561683167790f, 0.312603785648644220f, 0.312224998120573420f, - 0.311846199112882030f, - 0.311467388639496860f, 0.311088566714346650f, 0.310709733351358600f, - 0.310330888564462340f, - 0.309952032367586390f, 0.309573164774659850f, 0.309194285799613390f, - 0.308815395456376430f, - 0.308436493758880660f, 0.308057580721056660f, 0.307678656356835560f, - 0.307299720680150270f, - 0.306920773704932260f, 0.306541815445115160f, 0.306162845914631390f, - 0.305783865127415400f, - 0.305404873097400780f, 0.305025869838521590f, 0.304646855364713530f, - 0.304267829689911010f, - 0.303888792828050650f, 0.303509744793068030f, 0.303130685598899270f, - 0.302751615259482190f, - 0.302372533788753170f, 0.301993441200650910f, 0.301614337509113100f, - 0.301235222728077840f, - 0.300856096871485010f, 0.300476959953273060f, 0.300097811987382670f, - 0.299718652987753580f, - 0.299339482968325970f, 0.298960301943041680f, 0.298581109925841300f, - 0.298201906930667390f, - 0.297822692971461410f, 0.297443468062166820f, 0.297064232216726120f, - 0.296684985449082390f, - 0.296305727773180260f, 0.295926459202963120f, 0.295547179752376430f, - 0.295167889435364820f, - 0.294788588265873170f, 0.294409276257848300f, 0.294029953425235520f, - 0.293650619781982260f, - 0.293271275342035120f, 0.292891920119341120f, 0.292512554127848930f, - 0.292133177381505850f, - 0.291753789894261320f, 0.291374391680063520f, 0.290994982752862730f, - 0.290615563126608250f, - 0.290236132815249790f, 0.289856691832738880f, 0.289477240193025510f, - 0.289097777910061970f, - 0.288718304997799550f, 0.288338821470189910f, 0.287959327341186510f, - 0.287579822624741350f, - 0.287200307334808670f, 0.286820781485341620f, 0.286441245090293950f, - 0.286061698163620930f, - 0.285682140719276560f, 0.285302572771216960f, 0.284922994333397350f, - 0.284543405419773240f, - 0.284163806044301910f, 0.283784196220939370f, 0.283404575963643550f, - 0.283024945286371230f, - 0.282645304203081090f, 0.282265652727731130f, 0.281885990874279570f, - 0.281506318656686290f, - 0.281126636088910030f, 0.280746943184911340f, 0.280367239958650150f, - 0.279987526424086530f, - 0.279607802595182420f, 0.279228068485898210f, 0.278848324110196550f, - 0.278468569482039130f, - 0.278088804615388040f, 0.277709029524206950f, 0.277329244222458250f, - 0.276949448724106480f, - 0.276569643043115150f, 0.276189827193448200f, 0.275810001189071290f, - 0.275430165043948570f, - 0.275050318772046500f, 0.274670462387330010f, 0.274290595903766200f, - 0.273910719335321300f, - 0.273530832695961790f, 0.273150935999655950f, 0.272771029260370560f, - 0.272391112492074590f, - 0.272011185708736060f, 0.271631248924323390f, 0.271251302152806570f, - 0.270871345408154380f, - 0.270491378704337540f, 0.270111402055325910f, 0.269731415475089780f, - 0.269351418977600950f, - 0.268971412576829990f, 0.268591396286749500f, 0.268211370121331170f, - 0.267831334094547010f, - 0.267451288220370730f, 0.267071232512774700f, 0.266691166985733360f, - 0.266311091653219700f, - 0.265931006529208920f, 0.265550911627675250f, 0.265170806962593210f, - 0.264790692547939020f, - 0.264410568397687560f, 0.264030434525815760f, 0.263650290946299660f, - 0.263270137673115630f, - 0.262889974720241610f, 0.262509802101654310f, 0.262129619831332370f, - 0.261749427923253670f, - 0.261369226391396310f, 0.260989015249740050f, 0.260608794512263380f, - 0.260228564192946710f, - 0.259848324305769600f, 0.259468074864711960f, 0.259087815883755400f, - 0.258707547376880010f, - 0.258327269358068100f, 0.257946981841300490f, 0.257566684840560170f, - 0.257186378369829110f, - 0.256806062443089680f, 0.256425737074325920f, 0.256045402277520320f, - 0.255665058066657680f, - 0.255284704455721660f, 0.254904341458696390f, 0.254523969089567590f, - 0.254143587362319620f, - 0.253763196290938850f, 0.253382795889410710f, 0.253002386171721110f, - 0.252621967151857420f, - 0.252241538843805680f, 0.251861101261554090f, 0.251480654419089730f, - 0.251100198330400150f, - 0.250719733009474530f, 0.250339258470300590f, 0.249958774726868170f, - 0.249578281793165680f, - 0.249197779683183660f, 0.248817268410911650f, 0.248436747990339490f, - 0.248056218435458720f, - 0.247675679760259450f, 0.247295131978733870f, 0.246914575104873220f, - 0.246534009152669040f, - 0.246153434136114490f, 0.245772850069201410f, 0.245392256965923620f, - 0.245011654840274010f, - 0.244631043706245800f, 0.244250423577833860f, 0.243869794469031620f, - 0.243489156393834590f, - 0.243108509366237320f, 0.242727853400234670f, 0.242347188509823150f, - 0.241966514708997830f, - 0.241585832011755900f, 0.241205140432093070f, 0.240824439984007180f, - 0.240443730681495050f, - 0.240063012538553830f, 0.239682285569182310f, 0.239301549787377890f, - 0.238920805207139960f, - 0.238540051842467020f, 0.238159289707357810f, 0.237778518815812740f, - 0.237397739181830820f, - 0.237016950819413100f, 0.236636153742559610f, 0.236255347965270780f, - 0.235874533501548580f, - 0.235493710365393630f, 0.235112878570808560f, 0.234732038131795020f, - 0.234351189062355030f, - 0.233970331376492150f, 0.233589465088208580f, 0.233208590211508550f, - 0.232827706760394850f, - 0.232446814748872410f, 0.232065914190945020f, 0.231685005100616930f, - 0.231304087491893930f, - 0.230923161378780380f, 0.230542226775282770f, 0.230161283695406500f, - 0.229780332153157300f, - 0.229399372162542610f, 0.229018403737568290f, 0.228637426892242400f, - 0.228256441640571880f, - 0.227875447996564060f, 0.227494445974227850f, 0.227113435587570770f, - 0.226732416850602300f, - 0.226351389777330990f, 0.225970354381765690f, 0.225589310677916880f, - 0.225208258679793520f, - 0.224827198401406690f, 0.224446129856766040f, 0.224065053059883250f, - 0.223683968024768950f, - 0.223302874765434120f, 0.222921773295891380f, 0.222540663630151820f, - 0.222159545782228660f, - 0.221778419766134050f, 0.221397285595880480f, 0.221016143285482050f, - 0.220634992848951380f, - 0.220253834300303180f, 0.219872667653551100f, 0.219491492922709110f, - 0.219110310121792800f, - 0.218729119264816280f, 0.218347920365795780f, 0.217966713438746380f, - 0.217585498497683580f, - 0.217204275556624420f, 0.216823044629584520f, 0.216441805730581500f, - 0.216060558873631570f, - 0.215679304072752960f, 0.215298041341962870f, 0.214916770695278810f, - 0.214535492146719880f, - 0.214154205710303750f, 0.213772911400050090f, 0.213391609229977570f, - 0.213010299214105140f, - 0.212628981366453330f, 0.212247655701041290f, 0.211866322231890090f, - 0.211484980973019880f, - 0.211103631938451000f, 0.210722275142205480f, 0.210340910598303870f, - 0.209959538320768660f, - 0.209578158323621420f, 0.209196770620883960f, 0.208815375226579670f, - 0.208433972154730530f, - 0.208052561419360520f, 0.207671143034492080f, 0.207289717014149830f, - 0.206908283372357230f, - 0.206526842123138070f, 0.206145393280517730f, 0.205763936858520150f, - 0.205382472871171230f, - 0.205001001332495910f, 0.204619522256519300f, 0.204238035657268250f, - 0.203856541548768030f, - 0.203475039945045950f, 0.203093530860128300f, 0.202712014308041620f, - 0.202330490302814110f, - 0.201948958858472420f, 0.201567419989045200f, 0.201185873708560170f, - 0.200804320031045230f, - 0.200422758970529910f, 0.200041190541042220f, 0.199659614756612230f, - 0.199278031631268500f, - 0.198896441179041650f, 0.198514843413961220f, 0.198133238350057030f, - 0.197751626001360480f, - 0.197370006381901520f, 0.196988379505712050f, 0.196606745386822960f, - 0.196225104039265410f, - 0.195843455477072190f, 0.195461799714274460f, 0.195080136764905570f, - 0.194698466642997730f, - 0.194316789362583340f, 0.193935104937696560f, 0.193553413382369890f, - 0.193171714710637930f, - 0.192790008936534220f, 0.192408296074092570f, 0.192026576137348330f, - 0.191644849140335360f, - 0.191263115097089540f, 0.190881374021645320f, 0.190499625928039040f, - 0.190117870830306100f, - 0.189736108742482030f, 0.189354339678604100f, 0.188972563652707950f, - 0.188590780678831250f, - 0.188208990771010640f, 0.187827193943283040f, 0.187445390209686870f, - 0.187063579584259070f, - 0.186681762081038650f, 0.186299937714063470f, 0.185918106497371700f, - 0.185536268445003070f, - 0.185154423570995760f, 0.184772571889390000f, 0.184390713414225000f, - 0.184008848159540110f, - 0.183626976139376310f, 0.183245097367773090f, 0.182863211858771880f, - 0.182481319626412670f, - 0.182099420684737420f, 0.181717515047787020f, 0.181335602729602590f, - 0.180953683744226880f, - 0.180571758105701030f, 0.180189825828068250f, 0.179807886925370670f, - 0.179425941411650660f, - 0.179043989300952110f, 0.178662030607317450f, 0.178280065344791100f, - 0.177898093527416370f, - 0.177516115169236820f, 0.177134130284297610f, 0.176752138886642350f, - 0.176370140990316640f, - 0.175988136609365020f, 0.175606125757832240f, 0.175224108449764660f, - 0.174842084699207030f, - 0.174460054520206240f, 0.174078017926807490f, 0.173695974933058080f, - 0.173313925553004180f, - 0.172931869800692250f, 0.172549807690170230f, 0.172167739235484620f, - 0.171785664450683800f, - 0.171403583349815180f, 0.171021495946926340f, 0.170639402256066410f, - 0.170257302291283000f, - 0.169875196066625710f, 0.169493083596143100f, 0.169110964893883830f, - 0.168728839973898290f, - 0.168346708850235140f, 0.167964571536945220f, 0.167582428048078130f, - 0.167200278397683750f, - 0.166818122599813570f, 0.166435960668517400f, 0.166053792617847200f, - 0.165671618461853270f, - 0.165289438214587970f, 0.164907251890102520f, 0.164525059502448390f, - 0.164142861065678550f, - 0.163760656593844480f, 0.163378446100999640f, 0.162996229601196390f, - 0.162614007108487250f, - 0.162231778636926370f, 0.161849544200566300f, 0.161467303813461580f, - 0.161085057489665670f, - 0.160702805243232240f, 0.160320547088216470f, 0.159938283038672050f, - 0.159556013108654580f, - 0.159173737312218650f, 0.158791455663418930f, 0.158409168176311760f, - 0.158026874864951870f, - 0.157644575743395960f, 0.157262270825699210f, 0.156879960125918730f, - 0.156497643658110590f, - 0.156115321436331000f, 0.155732993474637760f, 0.155350659787087090f, - 0.154968320387737170f, - 0.154585975290645110f, 0.154203624509868190f, 0.153821268059465250f, - 0.153438905953493550f, - 0.153056538206012340f, 0.152674164831079730f, 0.152291785842754070f, - 0.151909401255095250f, - 0.151527011082161540f, 0.151144615338013210f, 0.150762214036709470f, - 0.150379807192309620f, - 0.149997394818874590f, 0.149614976930463660f, 0.149232553541138180f, - 0.148850124664957870f, - 0.148467690315984390f, 0.148085250508278370f, 0.147702805255900570f, - 0.147320354572913260f, - 0.146937898473377210f, 0.146555436971355090f, 0.146172970080908520f, - 0.145790497816099230f, - 0.145408020190990560f, 0.145025537219644170f, 0.144643048916123810f, - 0.144260555294492000f, - 0.143878056368811510f, 0.143495552153146630f, 0.143113042661560050f, - 0.142730527908116440f, - 0.142348007906879320f, 0.141965482671912420f, 0.141582952217280980f, - 0.141200416557048680f, - 0.140817875705281120f, 0.140435329676042390f, 0.140052778483398480f, - 0.139670222141414250f, - 0.139287660664154770f, 0.138905094065686600f, 0.138522522360074780f, - 0.138139945561386200f, - 0.137757363683686740f, 0.137374776741042340f, 0.136992184747520560f, - 0.136609587717187310f, - 0.136226985664110460f, 0.135844378602356760f, 0.135461766545993150f, - 0.135079149509088060f, - 0.134696527505708320f, 0.134313900549922760f, 0.133931268655799020f, - 0.133548631837404950f, - 0.133165990108809860f, 0.132783343484081580f, 0.132400691977289760f, - 0.132018035602502530f, - 0.131635374373789940f, 0.131252708305220960f, 0.130870037410864640f, - 0.130487361704791580f, - 0.130104681201070800f, 0.129721995913773260f, 0.129339305856968730f, - 0.128956611044727220f, - 0.128573911491120210f, 0.128191207210217570f, 0.127808498216091110f, - 0.127425784522811530f, - 0.127043066144449680f, 0.126660343095077900f, 0.126277615388766920f, - 0.125894883039589430f, - 0.125512146061616980f, 0.125129404468921260f, 0.124746658275575490f, - 0.124363907495651240f, - 0.123981152143222060f, 0.123598392232359880f, 0.123215627777138580f, - 0.122832858791630880f, - 0.122450085289909640f, 0.122067307286049230f, 0.121684524794122440f, - 0.121301737828203960f, - 0.120918946402367330f, 0.120536150530686250f, 0.120153350227235940f, - 0.119770545506089950f, - 0.119387736381323830f, 0.119004922867011920f, 0.118622104977228730f, - 0.118239282726050290f, - 0.117856456127550970f, 0.117473625195807100f, 0.117090789944893860f, - 0.116707950388886520f, - 0.116325106541861910f, 0.115942258417895240f, 0.115559406031063570f, - 0.115176549395442460f, - 0.114793688525109290f, 0.114410823434140360f, 0.114027954136612060f, - 0.113645080646602280f, - 0.113262202978187320f, 0.112879321145445350f, 0.112496435162453430f, - 0.112113545043288730f, - 0.111730650802029900f, 0.111347752452754000f, 0.110964850009539970f, - 0.110581943486465610f, - 0.110199032897608850f, 0.109816118257049110f, 0.109433199578864170f, - 0.109050276877133770f, - 0.108667350165936400f, 0.108284419459350770f, 0.107901484771457020f, - 0.107518546116333660f, - 0.107135603508061170f, 0.106752656960718350f, 0.106369706488385940f, - 0.105986752105143480f, - 0.105603793825070680f, 0.105220831662248700f, 0.104837865630757090f, - 0.104454895744677270f, - 0.104071922018089540f, 0.103688944465074300f, 0.103305963099713400f, - 0.102922977936087120f, - 0.102539988988277600f, 0.102156996270365800f, 0.101773999796432830f, - 0.101390999580561250f, - 0.101007995636832020f, 0.100624987979327970f, 0.100241976622130760f, - 0.099858961579322170f, - 0.099475942864985456f, 0.099092920493202258f, 0.098709894478056073f, - 0.098326864833628791f, - 0.097943831574004214f, 0.097560794713264939f, 0.097177754265493674f, - 0.096794710244774623f, - 0.096411662665190329f, 0.096028611540825232f, 0.095645556885762609f, - 0.095262498714085819f, - 0.094879437039879722f, 0.094496371877227495f, 0.094113303240214247f, - 0.093730231142923864f, - 0.093347155599440373f, 0.092964076623849271f, 0.092580994230234359f, - 0.092197908432681386f, - 0.091814819245274432f, 0.091431726682099479f, 0.091048630757241303f, - 0.090665531484784803f, - 0.090282428878816323f, 0.089899322953420582f, 0.089516213722684160f, - 0.089133101200692441f, - 0.088749985401530951f, 0.088366866339286629f, 0.087983744028044805f, - 0.087600618481892656f, - 0.087217489714916191f, 0.086834357741201490f, 0.086451222574836131f, - 0.086068084229906014f, - 0.085684942720498897f, 0.085301798060701386f, 0.084918650264600160f, - 0.084535499346283349f, - 0.084152345319837438f, 0.083769188199350780f, 0.083386027998910095f, - 0.083002864732603973f, - 0.082619698414519799f, 0.082236529058745025f, 0.081853356679368619f, - 0.081470181290477811f, - 0.081087002906161790f, 0.080703821540508452f, 0.080320637207605849f, - 0.079937449921543474f, - 0.079554259696409127f, 0.079171066546292510f, 0.078787870485282088f, - 0.078404671527466441f, - 0.078021469686935602f, 0.077638264977777913f, 0.077255057414083589f, - 0.076871847009941652f, - 0.076488633779441206f, 0.076105417736672773f, 0.075722198895725248f, - 0.075338977270689375f, - 0.074955752875654230f, 0.074572525724710764f, 0.074189295831948693f, - 0.073806063211457842f, - 0.073422827877329483f, 0.073039589843653177f, 0.072656349124520389f, - 0.072273105734021334f, - 0.071889859686246352f, 0.071506610995287156f, 0.071123359675233852f, - 0.070740105740178361f, - 0.070356849204211397f, 0.069973590081423773f, 0.069590328385907715f, - 0.069207064131753759f, - 0.068823797333054326f, 0.068440528003900616f, 0.068057256158383886f, - 0.067673981810596848f, - 0.067290704974630494f, 0.066907425664577733f, 0.066524143894529736f, - 0.066140859678579578f, - 0.065757573030819083f, 0.065374283965340146f, 0.064990992496236119f, - 0.064607698637598646f, - 0.064224402403521202f, 0.063841103808096086f, 0.063457802865415636f, - 0.063074499589573618f, - 0.062691193994662109f, 0.062307886094775049f, 0.061924575904005130f, - 0.061541263436445129f, - 0.061157948706189229f, 0.060774631727329942f, 0.060391312513961619f, - 0.060007991080177375f, - 0.059624667440070382f, 0.059241341607735261f, 0.058858013597264912f, - 0.058474683422754095f, - 0.058091351098295878f, 0.057708016637985186f, 0.057324680055915692f, - 0.056941341366181127f, - 0.056558000582876661f, 0.056174657720095743f, 0.055791312791933681f, - 0.055407965812484541f, - 0.055024616795842439f, 0.054641265756102911f, 0.054257912707359794f, - 0.053874557663708772f, - 0.053491200639244271f, 0.053107841648060788f, 0.052724480704254229f, - 0.052341117821918783f, - 0.051957753015150501f, 0.051574386298044173f, 0.051191017684694640f, - 0.050807647189198162f, - 0.050424274825649297f, 0.050040900608144430f, 0.049657524550778251f, - 0.049274146667647289f, - 0.048890766972846805f, 0.048507385480472134f, 0.048124002204620014f, - 0.047740617159385448f, - 0.047357230358865306f, 0.046973841817155179f, 0.046590451548350717f, - 0.046207059566548990f, - 0.045823665885845313f, 0.045440270520336883f, 0.045056873484119603f, - 0.044673474791289434f, - 0.044290074455943754f, 0.043906672492178188f, 0.043523268914090238f, - 0.043139863735776100f, - 0.042756456971332048f, 0.042373048634855741f, 0.041989638740443119f, - 0.041606227302191955f, - 0.041222814334198304f, 0.040839399850560058f, 0.040455983865373815f, - 0.040072566392736257f, - 0.039689147446745419f, 0.039305727041497644f, 0.038922305191091085f, - 0.038538881909622631f, - 0.038155457211189216f, 0.037772031109889144f, 0.037388603619819022f, - 0.037005174755077273f, - 0.036621744529761024f, 0.036238312957967478f, 0.035854880053795196f, - 0.035471445831341021f, - 0.035088010304703626f, 0.034704573487980395f, 0.034321135395268765f, - 0.033937696040667535f, - 0.033554255438273790f, 0.033170813602186440f, 0.032787370546502645f, - 0.032403926285321405f, - 0.032020480832740429f, 0.031637034202857461f, 0.031253586409771626f, - 0.030870137467580314f, - 0.030486687390382738f, 0.030103236192276818f, 0.029719783887360508f, - 0.029336330489733147f, - 0.028952876013492331f, 0.028569420472737472f, 0.028185963881566689f, - 0.027802506254078142f, - 0.027419047604371360f, 0.027035587946544135f, 0.026652127294696067f, - 0.026268665662925468f, - 0.025885203065330677f, 0.025501739516011413f, 0.025118275029065638f, - 0.024734809618593138f, - 0.024351343298691951f, 0.023967876083461924f, 0.023584407987001611f, - 0.023200939023409587f, - 0.022817469206785804f, 0.022433998551228459f, 0.022050527070837558f, - 0.021667054779711814f, - 0.021283581691949955f, 0.020900107821652084f, 0.020516633182916549f, - 0.020133157789843505f, - 0.019749681656531803f, 0.019366204797080316f, 0.018982727225589285f, - 0.018599248956157190f, - 0.018215770002884327f, 0.017832290379869671f, 0.017448810101212228f, - 0.017065329181012358f, - 0.016681847633368677f, 0.016298365472381587f, 0.015914882712149747f, - 0.015531399366773606f, - 0.015147915450352307f, 0.014764430976985016f, 0.014380945960772247f, - 0.013997460415812761f, - 0.013613974356207112f, 0.013230487796054543f, 0.012847000749454314f, - 0.012463513230507034f, - 0.012080025253311559f, 0.011696536831968529f, 0.011313047980577277f, - 0.010929558713237145f, - 0.010546069044048827f, 0.010162578987111254f, 0.009779088556525145f, - 0.009395597766389905f, - 0.009012106630804949f, 0.008628615163871038f, 0.008245123379687167f, - 0.007861631292354124f, - 0.007478138915970929f, 0.007094646264638386f, 0.006711153352455981f, - 0.006327660193523208f, - 0.005944166801940901f, 0.005560673191808128f, 0.005177179377225743f, - 0.004793685372293270f, - 0.004410191191110246f, 0.004026696847777542f, 0.003643202356394263f, - 0.003259707731061291f, - 0.002876212985878184f, 0.002492718134944503f, 0.002109223192361147f, - 0.001725728172227238f, - 0.001342233088643682f, 0.000958737955710053f, 0.000575242787525925f, - 0.000191747598192208f -}; - -/** - * @} end of DCT4_IDCT4_Table group - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Initialization function for the floating-point DCT4/IDCT4. - * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure. - * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure. - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Floating-point normalizing factors are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingF32Table.gif - */ - -arm_status arm_dct4_init_f32( - arm_dct4_instance_f32 * S, - arm_rfft_instance_f32 * S_RFFT, - arm_cfft_radix4_instance_f32 * S_CFFT, - uint16_t N, - uint16_t Nby2, - float32_t normalize) -{ - /* Initialize the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - float32_t *twiddlePtr[4] = - { (float32_t *) Weights_128, (float32_t *) Weights_512, - (float32_t *) Weights_2048, (float32_t *) Weights_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - float32_t *pCosFactor[4] = - { (float32_t *) cos_factors_128, (float32_t *) cos_factors_512, - (float32_t *) cos_factors_2048, (float32_t *) cos_factors_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192U: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048U: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512U: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128U: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT */ - arm_rfft_init_f32(S->pRfft, S->pCfft, S->N, 0U, 1U); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q15.c deleted file mode 100644 index e57541c..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q15.c +++ /dev/null @@ -1,4280 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_init_q15.c - * Description: Initialization function of DCT-4 & IDCT4 Q15 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup DCT4_IDCT4 - */ - -/** - * @addtogroup DCT4_IDCT4_Table DCT Type IV Tables - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** - * \par - * Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
- * \par - * C command to generate the table - *
- * for(i = 0; i< N; i++)
- * {
- *   weights[2*i]= cos(i*c);
- *   weights[(2*i)+1]= -sin(i * c);
- * } 
- * \par - * where N is the Number of weights to be calculated and c is pi/(2*N) - * \par - * Converted the output to q15 format by multiplying with 2^31 and saturated if required. - * \par - * In the tables below the real and imaginary values are placed alternatively, hence the - * array length is 2*N. - */ - -static const q15_t ALIGN4 WeightsQ15_128[256] = { - (q15_t)0x7fff, (q15_t)0x0, (q15_t)0x7ffd, (q15_t)0xfe6e, (q15_t)0x7ff6, (q15_t)0xfcdc, (q15_t)0x7fe9, (q15_t)0xfb4a, - (q15_t)0x7fd8, (q15_t)0xf9b9, (q15_t)0x7fc2, (q15_t)0xf827, (q15_t)0x7fa7, (q15_t)0xf696, (q15_t)0x7f87, (q15_t)0xf505, - (q15_t)0x7f62, (q15_t)0xf375, (q15_t)0x7f38, (q15_t)0xf1e5, (q15_t)0x7f09, (q15_t)0xf055, (q15_t)0x7ed5, (q15_t)0xeec7, - (q15_t)0x7e9d, (q15_t)0xed38, (q15_t)0x7e5f, (q15_t)0xebab, (q15_t)0x7e1d, (q15_t)0xea1e, (q15_t)0x7dd6, (q15_t)0xe893, - (q15_t)0x7d8a, (q15_t)0xe708, (q15_t)0x7d39, (q15_t)0xe57e, (q15_t)0x7ce3, (q15_t)0xe3f5, (q15_t)0x7c89, (q15_t)0xe26d, - (q15_t)0x7c29, (q15_t)0xe0e7, (q15_t)0x7bc5, (q15_t)0xdf61, (q15_t)0x7b5d, (q15_t)0xdddd, (q15_t)0x7aef, (q15_t)0xdc5a, - (q15_t)0x7a7d, (q15_t)0xdad8, (q15_t)0x7a05, (q15_t)0xd958, (q15_t)0x798a, (q15_t)0xd7da, (q15_t)0x7909, (q15_t)0xd65d, - (q15_t)0x7884, (q15_t)0xd4e1, (q15_t)0x77fa, (q15_t)0xd368, (q15_t)0x776c, (q15_t)0xd1ef, (q15_t)0x76d9, (q15_t)0xd079, - (q15_t)0x7641, (q15_t)0xcf05, (q15_t)0x75a5, (q15_t)0xcd92, (q15_t)0x7504, (q15_t)0xcc22, (q15_t)0x745f, (q15_t)0xcab3, - (q15_t)0x73b5, (q15_t)0xc946, (q15_t)0x7307, (q15_t)0xc7dc, (q15_t)0x7255, (q15_t)0xc674, (q15_t)0x719e, (q15_t)0xc50e, - (q15_t)0x70e2, (q15_t)0xc3aa, (q15_t)0x7023, (q15_t)0xc248, (q15_t)0x6f5f, (q15_t)0xc0e9, (q15_t)0x6e96, (q15_t)0xbf8d, - (q15_t)0x6dca, (q15_t)0xbe32, (q15_t)0x6cf9, (q15_t)0xbcdb, (q15_t)0x6c24, (q15_t)0xbb86, (q15_t)0x6b4a, (q15_t)0xba33, - (q15_t)0x6a6d, (q15_t)0xb8e4, (q15_t)0x698c, (q15_t)0xb797, (q15_t)0x68a6, (q15_t)0xb64c, (q15_t)0x67bd, (q15_t)0xb505, - (q15_t)0x66cf, (q15_t)0xb3c1, (q15_t)0x65dd, (q15_t)0xb27f, (q15_t)0x64e8, (q15_t)0xb141, (q15_t)0x63ef, (q15_t)0xb005, - (q15_t)0x62f2, (q15_t)0xaecd, (q15_t)0x61f1, (q15_t)0xad97, (q15_t)0x60ec, (q15_t)0xac65, (q15_t)0x5fe3, (q15_t)0xab36, - (q15_t)0x5ed7, (q15_t)0xaa0b, (q15_t)0x5dc7, (q15_t)0xa8e3, (q15_t)0x5cb4, (q15_t)0xa7be, (q15_t)0x5b9d, (q15_t)0xa69c, - (q15_t)0x5a82, (q15_t)0xa57e, (q15_t)0x5964, (q15_t)0xa463, (q15_t)0x5842, (q15_t)0xa34c, (q15_t)0x571d, (q15_t)0xa239, - (q15_t)0x55f5, (q15_t)0xa129, (q15_t)0x54ca, (q15_t)0xa01d, (q15_t)0x539b, (q15_t)0x9f14, (q15_t)0x5269, (q15_t)0x9e0f, - (q15_t)0x5133, (q15_t)0x9d0e, (q15_t)0x4ffb, (q15_t)0x9c11, (q15_t)0x4ebf, (q15_t)0x9b18, (q15_t)0x4d81, (q15_t)0x9a23, - (q15_t)0x4c3f, (q15_t)0x9931, (q15_t)0x4afb, (q15_t)0x9843, (q15_t)0x49b4, (q15_t)0x975a, (q15_t)0x4869, (q15_t)0x9674, - (q15_t)0x471c, (q15_t)0x9593, (q15_t)0x45cd, (q15_t)0x94b6, (q15_t)0x447a, (q15_t)0x93dc, (q15_t)0x4325, (q15_t)0x9307, - (q15_t)0x41ce, (q15_t)0x9236, (q15_t)0x4073, (q15_t)0x916a, (q15_t)0x3f17, (q15_t)0x90a1, (q15_t)0x3db8, (q15_t)0x8fdd, - (q15_t)0x3c56, (q15_t)0x8f1e, (q15_t)0x3af2, (q15_t)0x8e62, (q15_t)0x398c, (q15_t)0x8dab, (q15_t)0x3824, (q15_t)0x8cf9, - (q15_t)0x36ba, (q15_t)0x8c4b, (q15_t)0x354d, (q15_t)0x8ba1, (q15_t)0x33de, (q15_t)0x8afc, (q15_t)0x326e, (q15_t)0x8a5b, - (q15_t)0x30fb, (q15_t)0x89bf, (q15_t)0x2f87, (q15_t)0x8927, (q15_t)0x2e11, (q15_t)0x8894, (q15_t)0x2c98, (q15_t)0x8806, - (q15_t)0x2b1f, (q15_t)0x877c, (q15_t)0x29a3, (q15_t)0x86f7, (q15_t)0x2826, (q15_t)0x8676, (q15_t)0x26a8, (q15_t)0x85fb, - (q15_t)0x2528, (q15_t)0x8583, (q15_t)0x23a6, (q15_t)0x8511, (q15_t)0x2223, (q15_t)0x84a3, (q15_t)0x209f, (q15_t)0x843b, - (q15_t)0x1f19, (q15_t)0x83d7, (q15_t)0x1d93, (q15_t)0x8377, (q15_t)0x1c0b, (q15_t)0x831d, (q15_t)0x1a82, (q15_t)0x82c7, - (q15_t)0x18f8, (q15_t)0x8276, (q15_t)0x176d, (q15_t)0x822a, (q15_t)0x15e2, (q15_t)0x81e3, (q15_t)0x1455, (q15_t)0x81a1, - (q15_t)0x12c8, (q15_t)0x8163, (q15_t)0x1139, (q15_t)0x812b, (q15_t)0xfab, (q15_t)0x80f7, (q15_t)0xe1b, (q15_t)0x80c8, - (q15_t)0xc8b, (q15_t)0x809e, (q15_t)0xafb, (q15_t)0x8079, (q15_t)0x96a, (q15_t)0x8059, (q15_t)0x7d9, (q15_t)0x803e, - (q15_t)0x647, (q15_t)0x8028, (q15_t)0x4b6, (q15_t)0x8017, (q15_t)0x324, (q15_t)0x800a, (q15_t)0x192, (q15_t)0x8003 -}; - -static const q15_t ALIGN4 WeightsQ15_512[1024] = { - (q15_t)0x7fff, (q15_t)0x0, (q15_t)0x7fff, (q15_t)0xff9c, (q15_t)0x7fff, (q15_t)0xff37, (q15_t)0x7ffe, (q15_t)0xfed3, - (q15_t)0x7ffd, (q15_t)0xfe6e, (q15_t)0x7ffc, (q15_t)0xfe0a, (q15_t)0x7ffa, (q15_t)0xfda5, (q15_t)0x7ff8, (q15_t)0xfd41, - (q15_t)0x7ff6, (q15_t)0xfcdc, (q15_t)0x7ff3, (q15_t)0xfc78, (q15_t)0x7ff0, (q15_t)0xfc13, (q15_t)0x7fed, (q15_t)0xfbaf, - (q15_t)0x7fe9, (q15_t)0xfb4a, (q15_t)0x7fe5, (q15_t)0xfae6, (q15_t)0x7fe1, (q15_t)0xfa81, (q15_t)0x7fdd, (q15_t)0xfa1d, - (q15_t)0x7fd8, (q15_t)0xf9b9, (q15_t)0x7fd3, (q15_t)0xf954, (q15_t)0x7fce, (q15_t)0xf8f0, (q15_t)0x7fc8, (q15_t)0xf88b, - (q15_t)0x7fc2, (q15_t)0xf827, (q15_t)0x7fbc, (q15_t)0xf7c3, (q15_t)0x7fb5, (q15_t)0xf75e, (q15_t)0x7fae, (q15_t)0xf6fa, - (q15_t)0x7fa7, (q15_t)0xf696, (q15_t)0x7f9f, (q15_t)0xf632, (q15_t)0x7f97, (q15_t)0xf5cd, (q15_t)0x7f8f, (q15_t)0xf569, - (q15_t)0x7f87, (q15_t)0xf505, (q15_t)0x7f7e, (q15_t)0xf4a1, (q15_t)0x7f75, (q15_t)0xf43d, (q15_t)0x7f6b, (q15_t)0xf3d9, - (q15_t)0x7f62, (q15_t)0xf375, (q15_t)0x7f58, (q15_t)0xf311, (q15_t)0x7f4d, (q15_t)0xf2ad, (q15_t)0x7f43, (q15_t)0xf249, - (q15_t)0x7f38, (q15_t)0xf1e5, (q15_t)0x7f2d, (q15_t)0xf181, (q15_t)0x7f21, (q15_t)0xf11d, (q15_t)0x7f15, (q15_t)0xf0b9, - (q15_t)0x7f09, (q15_t)0xf055, (q15_t)0x7efd, (q15_t)0xeff2, (q15_t)0x7ef0, (q15_t)0xef8e, (q15_t)0x7ee3, (q15_t)0xef2a, - (q15_t)0x7ed5, (q15_t)0xeec7, (q15_t)0x7ec8, (q15_t)0xee63, (q15_t)0x7eba, (q15_t)0xedff, (q15_t)0x7eab, (q15_t)0xed9c, - (q15_t)0x7e9d, (q15_t)0xed38, (q15_t)0x7e8e, (q15_t)0xecd5, (q15_t)0x7e7f, (q15_t)0xec72, (q15_t)0x7e6f, (q15_t)0xec0e, - (q15_t)0x7e5f, (q15_t)0xebab, (q15_t)0x7e4f, (q15_t)0xeb48, (q15_t)0x7e3f, (q15_t)0xeae5, (q15_t)0x7e2e, (q15_t)0xea81, - (q15_t)0x7e1d, (q15_t)0xea1e, (q15_t)0x7e0c, (q15_t)0xe9bb, (q15_t)0x7dfa, (q15_t)0xe958, (q15_t)0x7de8, (q15_t)0xe8f6, - (q15_t)0x7dd6, (q15_t)0xe893, (q15_t)0x7dc3, (q15_t)0xe830, (q15_t)0x7db0, (q15_t)0xe7cd, (q15_t)0x7d9d, (q15_t)0xe76a, - (q15_t)0x7d8a, (q15_t)0xe708, (q15_t)0x7d76, (q15_t)0xe6a5, (q15_t)0x7d62, (q15_t)0xe643, (q15_t)0x7d4e, (q15_t)0xe5e0, - (q15_t)0x7d39, (q15_t)0xe57e, (q15_t)0x7d24, (q15_t)0xe51c, (q15_t)0x7d0f, (q15_t)0xe4b9, (q15_t)0x7cf9, (q15_t)0xe457, - (q15_t)0x7ce3, (q15_t)0xe3f5, (q15_t)0x7ccd, (q15_t)0xe393, (q15_t)0x7cb7, (q15_t)0xe331, (q15_t)0x7ca0, (q15_t)0xe2cf, - (q15_t)0x7c89, (q15_t)0xe26d, (q15_t)0x7c71, (q15_t)0xe20b, (q15_t)0x7c5a, (q15_t)0xe1aa, (q15_t)0x7c42, (q15_t)0xe148, - (q15_t)0x7c29, (q15_t)0xe0e7, (q15_t)0x7c11, (q15_t)0xe085, (q15_t)0x7bf8, (q15_t)0xe024, (q15_t)0x7bdf, (q15_t)0xdfc2, - (q15_t)0x7bc5, (q15_t)0xdf61, (q15_t)0x7bac, (q15_t)0xdf00, (q15_t)0x7b92, (q15_t)0xde9f, (q15_t)0x7b77, (q15_t)0xde3e, - (q15_t)0x7b5d, (q15_t)0xdddd, (q15_t)0x7b42, (q15_t)0xdd7c, (q15_t)0x7b26, (q15_t)0xdd1b, (q15_t)0x7b0b, (q15_t)0xdcbb, - (q15_t)0x7aef, (q15_t)0xdc5a, (q15_t)0x7ad3, (q15_t)0xdbf9, (q15_t)0x7ab6, (q15_t)0xdb99, (q15_t)0x7a9a, (q15_t)0xdb39, - (q15_t)0x7a7d, (q15_t)0xdad8, (q15_t)0x7a5f, (q15_t)0xda78, (q15_t)0x7a42, (q15_t)0xda18, (q15_t)0x7a24, (q15_t)0xd9b8, - (q15_t)0x7a05, (q15_t)0xd958, (q15_t)0x79e7, (q15_t)0xd8f9, (q15_t)0x79c8, (q15_t)0xd899, (q15_t)0x79a9, (q15_t)0xd839, - (q15_t)0x798a, (q15_t)0xd7da, (q15_t)0x796a, (q15_t)0xd77a, (q15_t)0x794a, (q15_t)0xd71b, (q15_t)0x792a, (q15_t)0xd6bc, - (q15_t)0x7909, (q15_t)0xd65d, (q15_t)0x78e8, (q15_t)0xd5fe, (q15_t)0x78c7, (q15_t)0xd59f, (q15_t)0x78a6, (q15_t)0xd540, - (q15_t)0x7884, (q15_t)0xd4e1, (q15_t)0x7862, (q15_t)0xd483, (q15_t)0x7840, (q15_t)0xd424, (q15_t)0x781d, (q15_t)0xd3c6, - (q15_t)0x77fa, (q15_t)0xd368, (q15_t)0x77d7, (q15_t)0xd309, (q15_t)0x77b4, (q15_t)0xd2ab, (q15_t)0x7790, (q15_t)0xd24d, - (q15_t)0x776c, (q15_t)0xd1ef, (q15_t)0x7747, (q15_t)0xd192, (q15_t)0x7723, (q15_t)0xd134, (q15_t)0x76fe, (q15_t)0xd0d7, - (q15_t)0x76d9, (q15_t)0xd079, (q15_t)0x76b3, (q15_t)0xd01c, (q15_t)0x768e, (q15_t)0xcfbf, (q15_t)0x7668, (q15_t)0xcf62, - (q15_t)0x7641, (q15_t)0xcf05, (q15_t)0x761b, (q15_t)0xcea8, (q15_t)0x75f4, (q15_t)0xce4b, (q15_t)0x75cc, (q15_t)0xcdef, - (q15_t)0x75a5, (q15_t)0xcd92, (q15_t)0x757d, (q15_t)0xcd36, (q15_t)0x7555, (q15_t)0xccda, (q15_t)0x752d, (q15_t)0xcc7e, - (q15_t)0x7504, (q15_t)0xcc22, (q15_t)0x74db, (q15_t)0xcbc6, (q15_t)0x74b2, (q15_t)0xcb6a, (q15_t)0x7489, (q15_t)0xcb0e, - (q15_t)0x745f, (q15_t)0xcab3, (q15_t)0x7435, (q15_t)0xca58, (q15_t)0x740b, (q15_t)0xc9fc, (q15_t)0x73e0, (q15_t)0xc9a1, - (q15_t)0x73b5, (q15_t)0xc946, (q15_t)0x738a, (q15_t)0xc8ec, (q15_t)0x735f, (q15_t)0xc891, (q15_t)0x7333, (q15_t)0xc836, - (q15_t)0x7307, (q15_t)0xc7dc, (q15_t)0x72db, (q15_t)0xc782, (q15_t)0x72af, (q15_t)0xc728, (q15_t)0x7282, (q15_t)0xc6ce, - (q15_t)0x7255, (q15_t)0xc674, (q15_t)0x7227, (q15_t)0xc61a, (q15_t)0x71fa, (q15_t)0xc5c0, (q15_t)0x71cc, (q15_t)0xc567, - (q15_t)0x719e, (q15_t)0xc50e, (q15_t)0x716f, (q15_t)0xc4b4, (q15_t)0x7141, (q15_t)0xc45b, (q15_t)0x7112, (q15_t)0xc403, - (q15_t)0x70e2, (q15_t)0xc3aa, (q15_t)0x70b3, (q15_t)0xc351, (q15_t)0x7083, (q15_t)0xc2f9, (q15_t)0x7053, (q15_t)0xc2a0, - (q15_t)0x7023, (q15_t)0xc248, (q15_t)0x6ff2, (q15_t)0xc1f0, (q15_t)0x6fc1, (q15_t)0xc198, (q15_t)0x6f90, (q15_t)0xc141, - (q15_t)0x6f5f, (q15_t)0xc0e9, (q15_t)0x6f2d, (q15_t)0xc092, (q15_t)0x6efb, (q15_t)0xc03b, (q15_t)0x6ec9, (q15_t)0xbfe3, - (q15_t)0x6e96, (q15_t)0xbf8d, (q15_t)0x6e63, (q15_t)0xbf36, (q15_t)0x6e30, (q15_t)0xbedf, (q15_t)0x6dfd, (q15_t)0xbe89, - (q15_t)0x6dca, (q15_t)0xbe32, (q15_t)0x6d96, (q15_t)0xbddc, (q15_t)0x6d62, (q15_t)0xbd86, (q15_t)0x6d2d, (q15_t)0xbd30, - (q15_t)0x6cf9, (q15_t)0xbcdb, (q15_t)0x6cc4, (q15_t)0xbc85, (q15_t)0x6c8f, (q15_t)0xbc30, (q15_t)0x6c59, (q15_t)0xbbdb, - (q15_t)0x6c24, (q15_t)0xbb86, (q15_t)0x6bee, (q15_t)0xbb31, (q15_t)0x6bb8, (q15_t)0xbadc, (q15_t)0x6b81, (q15_t)0xba88, - (q15_t)0x6b4a, (q15_t)0xba33, (q15_t)0x6b13, (q15_t)0xb9df, (q15_t)0x6adc, (q15_t)0xb98b, (q15_t)0x6aa5, (q15_t)0xb937, - (q15_t)0x6a6d, (q15_t)0xb8e4, (q15_t)0x6a35, (q15_t)0xb890, (q15_t)0x69fd, (q15_t)0xb83d, (q15_t)0x69c4, (q15_t)0xb7ea, - (q15_t)0x698c, (q15_t)0xb797, (q15_t)0x6953, (q15_t)0xb744, (q15_t)0x6919, (q15_t)0xb6f1, (q15_t)0x68e0, (q15_t)0xb69f, - (q15_t)0x68a6, (q15_t)0xb64c, (q15_t)0x686c, (q15_t)0xb5fa, (q15_t)0x6832, (q15_t)0xb5a8, (q15_t)0x67f7, (q15_t)0xb557, - (q15_t)0x67bd, (q15_t)0xb505, (q15_t)0x6782, (q15_t)0xb4b4, (q15_t)0x6746, (q15_t)0xb462, (q15_t)0x670b, (q15_t)0xb411, - (q15_t)0x66cf, (q15_t)0xb3c1, (q15_t)0x6693, (q15_t)0xb370, (q15_t)0x6657, (q15_t)0xb31f, (q15_t)0x661a, (q15_t)0xb2cf, - (q15_t)0x65dd, (q15_t)0xb27f, (q15_t)0x65a0, (q15_t)0xb22f, (q15_t)0x6563, (q15_t)0xb1df, (q15_t)0x6526, (q15_t)0xb190, - (q15_t)0x64e8, (q15_t)0xb141, (q15_t)0x64aa, (q15_t)0xb0f1, (q15_t)0x646c, (q15_t)0xb0a2, (q15_t)0x642d, (q15_t)0xb054, - (q15_t)0x63ef, (q15_t)0xb005, (q15_t)0x63b0, (q15_t)0xafb7, (q15_t)0x6371, (q15_t)0xaf69, (q15_t)0x6331, (q15_t)0xaf1b, - (q15_t)0x62f2, (q15_t)0xaecd, (q15_t)0x62b2, (q15_t)0xae7f, (q15_t)0x6271, (q15_t)0xae32, (q15_t)0x6231, (q15_t)0xade4, - (q15_t)0x61f1, (q15_t)0xad97, (q15_t)0x61b0, (q15_t)0xad4b, (q15_t)0x616f, (q15_t)0xacfe, (q15_t)0x612d, (q15_t)0xacb2, - (q15_t)0x60ec, (q15_t)0xac65, (q15_t)0x60aa, (q15_t)0xac19, (q15_t)0x6068, (q15_t)0xabcd, (q15_t)0x6026, (q15_t)0xab82, - (q15_t)0x5fe3, (q15_t)0xab36, (q15_t)0x5fa0, (q15_t)0xaaeb, (q15_t)0x5f5e, (q15_t)0xaaa0, (q15_t)0x5f1a, (q15_t)0xaa55, - (q15_t)0x5ed7, (q15_t)0xaa0b, (q15_t)0x5e93, (q15_t)0xa9c0, (q15_t)0x5e50, (q15_t)0xa976, (q15_t)0x5e0b, (q15_t)0xa92c, - (q15_t)0x5dc7, (q15_t)0xa8e3, (q15_t)0x5d83, (q15_t)0xa899, (q15_t)0x5d3e, (q15_t)0xa850, (q15_t)0x5cf9, (q15_t)0xa807, - (q15_t)0x5cb4, (q15_t)0xa7be, (q15_t)0x5c6e, (q15_t)0xa775, (q15_t)0x5c29, (q15_t)0xa72c, (q15_t)0x5be3, (q15_t)0xa6e4, - (q15_t)0x5b9d, (q15_t)0xa69c, (q15_t)0x5b56, (q15_t)0xa654, (q15_t)0x5b10, (q15_t)0xa60d, (q15_t)0x5ac9, (q15_t)0xa5c5, - (q15_t)0x5a82, (q15_t)0xa57e, (q15_t)0x5a3b, (q15_t)0xa537, (q15_t)0x59f3, (q15_t)0xa4f0, (q15_t)0x59ac, (q15_t)0xa4aa, - (q15_t)0x5964, (q15_t)0xa463, (q15_t)0x591c, (q15_t)0xa41d, (q15_t)0x58d4, (q15_t)0xa3d7, (q15_t)0x588b, (q15_t)0xa392, - (q15_t)0x5842, (q15_t)0xa34c, (q15_t)0x57f9, (q15_t)0xa307, (q15_t)0x57b0, (q15_t)0xa2c2, (q15_t)0x5767, (q15_t)0xa27d, - (q15_t)0x571d, (q15_t)0xa239, (q15_t)0x56d4, (q15_t)0xa1f5, (q15_t)0x568a, (q15_t)0xa1b0, (q15_t)0x5640, (q15_t)0xa16d, - (q15_t)0x55f5, (q15_t)0xa129, (q15_t)0x55ab, (q15_t)0xa0e6, (q15_t)0x5560, (q15_t)0xa0a2, (q15_t)0x5515, (q15_t)0xa060, - (q15_t)0x54ca, (q15_t)0xa01d, (q15_t)0x547e, (q15_t)0x9fda, (q15_t)0x5433, (q15_t)0x9f98, (q15_t)0x53e7, (q15_t)0x9f56, - (q15_t)0x539b, (q15_t)0x9f14, (q15_t)0x534e, (q15_t)0x9ed3, (q15_t)0x5302, (q15_t)0x9e91, (q15_t)0x52b5, (q15_t)0x9e50, - (q15_t)0x5269, (q15_t)0x9e0f, (q15_t)0x521c, (q15_t)0x9dcf, (q15_t)0x51ce, (q15_t)0x9d8f, (q15_t)0x5181, (q15_t)0x9d4e, - (q15_t)0x5133, (q15_t)0x9d0e, (q15_t)0x50e5, (q15_t)0x9ccf, (q15_t)0x5097, (q15_t)0x9c8f, (q15_t)0x5049, (q15_t)0x9c50, - (q15_t)0x4ffb, (q15_t)0x9c11, (q15_t)0x4fac, (q15_t)0x9bd3, (q15_t)0x4f5e, (q15_t)0x9b94, (q15_t)0x4f0f, (q15_t)0x9b56, - (q15_t)0x4ebf, (q15_t)0x9b18, (q15_t)0x4e70, (q15_t)0x9ada, (q15_t)0x4e21, (q15_t)0x9a9d, (q15_t)0x4dd1, (q15_t)0x9a60, - (q15_t)0x4d81, (q15_t)0x9a23, (q15_t)0x4d31, (q15_t)0x99e6, (q15_t)0x4ce1, (q15_t)0x99a9, (q15_t)0x4c90, (q15_t)0x996d, - (q15_t)0x4c3f, (q15_t)0x9931, (q15_t)0x4bef, (q15_t)0x98f5, (q15_t)0x4b9e, (q15_t)0x98ba, (q15_t)0x4b4c, (q15_t)0x987e, - (q15_t)0x4afb, (q15_t)0x9843, (q15_t)0x4aa9, (q15_t)0x9809, (q15_t)0x4a58, (q15_t)0x97ce, (q15_t)0x4a06, (q15_t)0x9794, - (q15_t)0x49b4, (q15_t)0x975a, (q15_t)0x4961, (q15_t)0x9720, (q15_t)0x490f, (q15_t)0x96e7, (q15_t)0x48bc, (q15_t)0x96ad, - (q15_t)0x4869, (q15_t)0x9674, (q15_t)0x4816, (q15_t)0x963c, (q15_t)0x47c3, (q15_t)0x9603, (q15_t)0x4770, (q15_t)0x95cb, - (q15_t)0x471c, (q15_t)0x9593, (q15_t)0x46c9, (q15_t)0x955b, (q15_t)0x4675, (q15_t)0x9524, (q15_t)0x4621, (q15_t)0x94ed, - (q15_t)0x45cd, (q15_t)0x94b6, (q15_t)0x4578, (q15_t)0x947f, (q15_t)0x4524, (q15_t)0x9448, (q15_t)0x44cf, (q15_t)0x9412, - (q15_t)0x447a, (q15_t)0x93dc, (q15_t)0x4425, (q15_t)0x93a7, (q15_t)0x43d0, (q15_t)0x9371, (q15_t)0x437b, (q15_t)0x933c, - (q15_t)0x4325, (q15_t)0x9307, (q15_t)0x42d0, (q15_t)0x92d3, (q15_t)0x427a, (q15_t)0x929e, (q15_t)0x4224, (q15_t)0x926a, - (q15_t)0x41ce, (q15_t)0x9236, (q15_t)0x4177, (q15_t)0x9203, (q15_t)0x4121, (q15_t)0x91d0, (q15_t)0x40ca, (q15_t)0x919d, - (q15_t)0x4073, (q15_t)0x916a, (q15_t)0x401d, (q15_t)0x9137, (q15_t)0x3fc5, (q15_t)0x9105, (q15_t)0x3f6e, (q15_t)0x90d3, - (q15_t)0x3f17, (q15_t)0x90a1, (q15_t)0x3ebf, (q15_t)0x9070, (q15_t)0x3e68, (q15_t)0x903f, (q15_t)0x3e10, (q15_t)0x900e, - (q15_t)0x3db8, (q15_t)0x8fdd, (q15_t)0x3d60, (q15_t)0x8fad, (q15_t)0x3d07, (q15_t)0x8f7d, (q15_t)0x3caf, (q15_t)0x8f4d, - (q15_t)0x3c56, (q15_t)0x8f1e, (q15_t)0x3bfd, (q15_t)0x8eee, (q15_t)0x3ba5, (q15_t)0x8ebf, (q15_t)0x3b4c, (q15_t)0x8e91, - (q15_t)0x3af2, (q15_t)0x8e62, (q15_t)0x3a99, (q15_t)0x8e34, (q15_t)0x3a40, (q15_t)0x8e06, (q15_t)0x39e6, (q15_t)0x8dd9, - (q15_t)0x398c, (q15_t)0x8dab, (q15_t)0x3932, (q15_t)0x8d7e, (q15_t)0x38d8, (q15_t)0x8d51, (q15_t)0x387e, (q15_t)0x8d25, - (q15_t)0x3824, (q15_t)0x8cf9, (q15_t)0x37ca, (q15_t)0x8ccd, (q15_t)0x376f, (q15_t)0x8ca1, (q15_t)0x3714, (q15_t)0x8c76, - (q15_t)0x36ba, (q15_t)0x8c4b, (q15_t)0x365f, (q15_t)0x8c20, (q15_t)0x3604, (q15_t)0x8bf5, (q15_t)0x35a8, (q15_t)0x8bcb, - (q15_t)0x354d, (q15_t)0x8ba1, (q15_t)0x34f2, (q15_t)0x8b77, (q15_t)0x3496, (q15_t)0x8b4e, (q15_t)0x343a, (q15_t)0x8b25, - (q15_t)0x33de, (q15_t)0x8afc, (q15_t)0x3382, (q15_t)0x8ad3, (q15_t)0x3326, (q15_t)0x8aab, (q15_t)0x32ca, (q15_t)0x8a83, - (q15_t)0x326e, (q15_t)0x8a5b, (q15_t)0x3211, (q15_t)0x8a34, (q15_t)0x31b5, (q15_t)0x8a0c, (q15_t)0x3158, (q15_t)0x89e5, - (q15_t)0x30fb, (q15_t)0x89bf, (q15_t)0x309e, (q15_t)0x8998, (q15_t)0x3041, (q15_t)0x8972, (q15_t)0x2fe4, (q15_t)0x894d, - (q15_t)0x2f87, (q15_t)0x8927, (q15_t)0x2f29, (q15_t)0x8902, (q15_t)0x2ecc, (q15_t)0x88dd, (q15_t)0x2e6e, (q15_t)0x88b9, - (q15_t)0x2e11, (q15_t)0x8894, (q15_t)0x2db3, (q15_t)0x8870, (q15_t)0x2d55, (q15_t)0x884c, (q15_t)0x2cf7, (q15_t)0x8829, - (q15_t)0x2c98, (q15_t)0x8806, (q15_t)0x2c3a, (q15_t)0x87e3, (q15_t)0x2bdc, (q15_t)0x87c0, (q15_t)0x2b7d, (q15_t)0x879e, - (q15_t)0x2b1f, (q15_t)0x877c, (q15_t)0x2ac0, (q15_t)0x875a, (q15_t)0x2a61, (q15_t)0x8739, (q15_t)0x2a02, (q15_t)0x8718, - (q15_t)0x29a3, (q15_t)0x86f7, (q15_t)0x2944, (q15_t)0x86d6, (q15_t)0x28e5, (q15_t)0x86b6, (q15_t)0x2886, (q15_t)0x8696, - (q15_t)0x2826, (q15_t)0x8676, (q15_t)0x27c7, (q15_t)0x8657, (q15_t)0x2767, (q15_t)0x8638, (q15_t)0x2707, (q15_t)0x8619, - (q15_t)0x26a8, (q15_t)0x85fb, (q15_t)0x2648, (q15_t)0x85dc, (q15_t)0x25e8, (q15_t)0x85be, (q15_t)0x2588, (q15_t)0x85a1, - (q15_t)0x2528, (q15_t)0x8583, (q15_t)0x24c7, (q15_t)0x8566, (q15_t)0x2467, (q15_t)0x854a, (q15_t)0x2407, (q15_t)0x852d, - (q15_t)0x23a6, (q15_t)0x8511, (q15_t)0x2345, (q15_t)0x84f5, (q15_t)0x22e5, (q15_t)0x84da, (q15_t)0x2284, (q15_t)0x84be, - (q15_t)0x2223, (q15_t)0x84a3, (q15_t)0x21c2, (q15_t)0x8489, (q15_t)0x2161, (q15_t)0x846e, (q15_t)0x2100, (q15_t)0x8454, - (q15_t)0x209f, (q15_t)0x843b, (q15_t)0x203e, (q15_t)0x8421, (q15_t)0x1fdc, (q15_t)0x8408, (q15_t)0x1f7b, (q15_t)0x83ef, - (q15_t)0x1f19, (q15_t)0x83d7, (q15_t)0x1eb8, (q15_t)0x83be, (q15_t)0x1e56, (q15_t)0x83a6, (q15_t)0x1df5, (q15_t)0x838f, - (q15_t)0x1d93, (q15_t)0x8377, (q15_t)0x1d31, (q15_t)0x8360, (q15_t)0x1ccf, (q15_t)0x8349, (q15_t)0x1c6d, (q15_t)0x8333, - (q15_t)0x1c0b, (q15_t)0x831d, (q15_t)0x1ba9, (q15_t)0x8307, (q15_t)0x1b47, (q15_t)0x82f1, (q15_t)0x1ae4, (q15_t)0x82dc, - (q15_t)0x1a82, (q15_t)0x82c7, (q15_t)0x1a20, (q15_t)0x82b2, (q15_t)0x19bd, (q15_t)0x829e, (q15_t)0x195b, (q15_t)0x828a, - (q15_t)0x18f8, (q15_t)0x8276, (q15_t)0x1896, (q15_t)0x8263, (q15_t)0x1833, (q15_t)0x8250, (q15_t)0x17d0, (q15_t)0x823d, - (q15_t)0x176d, (q15_t)0x822a, (q15_t)0x170a, (q15_t)0x8218, (q15_t)0x16a8, (q15_t)0x8206, (q15_t)0x1645, (q15_t)0x81f4, - (q15_t)0x15e2, (q15_t)0x81e3, (q15_t)0x157f, (q15_t)0x81d2, (q15_t)0x151b, (q15_t)0x81c1, (q15_t)0x14b8, (q15_t)0x81b1, - (q15_t)0x1455, (q15_t)0x81a1, (q15_t)0x13f2, (q15_t)0x8191, (q15_t)0x138e, (q15_t)0x8181, (q15_t)0x132b, (q15_t)0x8172, - (q15_t)0x12c8, (q15_t)0x8163, (q15_t)0x1264, (q15_t)0x8155, (q15_t)0x1201, (q15_t)0x8146, (q15_t)0x119d, (q15_t)0x8138, - (q15_t)0x1139, (q15_t)0x812b, (q15_t)0x10d6, (q15_t)0x811d, (q15_t)0x1072, (q15_t)0x8110, (q15_t)0x100e, (q15_t)0x8103, - (q15_t)0xfab, (q15_t)0x80f7, (q15_t)0xf47, (q15_t)0x80eb, (q15_t)0xee3, (q15_t)0x80df, (q15_t)0xe7f, (q15_t)0x80d3, - (q15_t)0xe1b, (q15_t)0x80c8, (q15_t)0xdb7, (q15_t)0x80bd, (q15_t)0xd53, (q15_t)0x80b3, (q15_t)0xcef, (q15_t)0x80a8, - (q15_t)0xc8b, (q15_t)0x809e, (q15_t)0xc27, (q15_t)0x8095, (q15_t)0xbc3, (q15_t)0x808b, (q15_t)0xb5f, (q15_t)0x8082, - (q15_t)0xafb, (q15_t)0x8079, (q15_t)0xa97, (q15_t)0x8071, (q15_t)0xa33, (q15_t)0x8069, (q15_t)0x9ce, (q15_t)0x8061, - (q15_t)0x96a, (q15_t)0x8059, (q15_t)0x906, (q15_t)0x8052, (q15_t)0x8a2, (q15_t)0x804b, (q15_t)0x83d, (q15_t)0x8044, - (q15_t)0x7d9, (q15_t)0x803e, (q15_t)0x775, (q15_t)0x8038, (q15_t)0x710, (q15_t)0x8032, (q15_t)0x6ac, (q15_t)0x802d, - (q15_t)0x647, (q15_t)0x8028, (q15_t)0x5e3, (q15_t)0x8023, (q15_t)0x57f, (q15_t)0x801f, (q15_t)0x51a, (q15_t)0x801b, - (q15_t)0x4b6, (q15_t)0x8017, (q15_t)0x451, (q15_t)0x8013, (q15_t)0x3ed, (q15_t)0x8010, (q15_t)0x388, (q15_t)0x800d, - (q15_t)0x324, (q15_t)0x800a, (q15_t)0x2bf, (q15_t)0x8008, (q15_t)0x25b, (q15_t)0x8006, (q15_t)0x1f6, (q15_t)0x8004, - (q15_t)0x192, (q15_t)0x8003, (q15_t)0x12d, (q15_t)0x8002, (q15_t)0xc9, (q15_t)0x8001, (q15_t)0x64, (q15_t)0x8001 -}; - -static const q15_t ALIGN4 WeightsQ15_2048[4096] = { - (q15_t)0x7fff, (q15_t)0x0, (q15_t)0x7fff, (q15_t)0xffe7, (q15_t)0x7fff, (q15_t)0xffce, (q15_t)0x7fff, (q15_t)0xffb5, - (q15_t)0x7fff, (q15_t)0xff9c, (q15_t)0x7fff, (q15_t)0xff83, (q15_t)0x7fff, (q15_t)0xff6a, (q15_t)0x7fff, (q15_t)0xff51, - (q15_t)0x7fff, (q15_t)0xff37, (q15_t)0x7fff, (q15_t)0xff1e, (q15_t)0x7fff, (q15_t)0xff05, (q15_t)0x7ffe, (q15_t)0xfeec, - (q15_t)0x7ffe, (q15_t)0xfed3, (q15_t)0x7ffe, (q15_t)0xfeba, (q15_t)0x7ffe, (q15_t)0xfea1, (q15_t)0x7ffd, (q15_t)0xfe88, - (q15_t)0x7ffd, (q15_t)0xfe6e, (q15_t)0x7ffd, (q15_t)0xfe55, (q15_t)0x7ffc, (q15_t)0xfe3c, (q15_t)0x7ffc, (q15_t)0xfe23, - (q15_t)0x7ffc, (q15_t)0xfe0a, (q15_t)0x7ffb, (q15_t)0xfdf1, (q15_t)0x7ffb, (q15_t)0xfdd8, (q15_t)0x7ffa, (q15_t)0xfdbe, - (q15_t)0x7ffa, (q15_t)0xfda5, (q15_t)0x7ff9, (q15_t)0xfd8c, (q15_t)0x7ff9, (q15_t)0xfd73, (q15_t)0x7ff8, (q15_t)0xfd5a, - (q15_t)0x7ff8, (q15_t)0xfd41, (q15_t)0x7ff7, (q15_t)0xfd28, (q15_t)0x7ff7, (q15_t)0xfd0f, (q15_t)0x7ff6, (q15_t)0xfcf5, - (q15_t)0x7ff6, (q15_t)0xfcdc, (q15_t)0x7ff5, (q15_t)0xfcc3, (q15_t)0x7ff4, (q15_t)0xfcaa, (q15_t)0x7ff4, (q15_t)0xfc91, - (q15_t)0x7ff3, (q15_t)0xfc78, (q15_t)0x7ff2, (q15_t)0xfc5f, (q15_t)0x7ff2, (q15_t)0xfc46, (q15_t)0x7ff1, (q15_t)0xfc2c, - (q15_t)0x7ff0, (q15_t)0xfc13, (q15_t)0x7fef, (q15_t)0xfbfa, (q15_t)0x7fee, (q15_t)0xfbe1, (q15_t)0x7fee, (q15_t)0xfbc8, - (q15_t)0x7fed, (q15_t)0xfbaf, (q15_t)0x7fec, (q15_t)0xfb96, (q15_t)0x7feb, (q15_t)0xfb7d, (q15_t)0x7fea, (q15_t)0xfb64, - (q15_t)0x7fe9, (q15_t)0xfb4a, (q15_t)0x7fe8, (q15_t)0xfb31, (q15_t)0x7fe7, (q15_t)0xfb18, (q15_t)0x7fe6, (q15_t)0xfaff, - (q15_t)0x7fe5, (q15_t)0xfae6, (q15_t)0x7fe4, (q15_t)0xfacd, (q15_t)0x7fe3, (q15_t)0xfab4, (q15_t)0x7fe2, (q15_t)0xfa9b, - (q15_t)0x7fe1, (q15_t)0xfa81, (q15_t)0x7fe0, (q15_t)0xfa68, (q15_t)0x7fdf, (q15_t)0xfa4f, (q15_t)0x7fde, (q15_t)0xfa36, - (q15_t)0x7fdd, (q15_t)0xfa1d, (q15_t)0x7fdc, (q15_t)0xfa04, (q15_t)0x7fda, (q15_t)0xf9eb, (q15_t)0x7fd9, (q15_t)0xf9d2, - (q15_t)0x7fd8, (q15_t)0xf9b9, (q15_t)0x7fd7, (q15_t)0xf9a0, (q15_t)0x7fd6, (q15_t)0xf986, (q15_t)0x7fd4, (q15_t)0xf96d, - (q15_t)0x7fd3, (q15_t)0xf954, (q15_t)0x7fd2, (q15_t)0xf93b, (q15_t)0x7fd0, (q15_t)0xf922, (q15_t)0x7fcf, (q15_t)0xf909, - (q15_t)0x7fce, (q15_t)0xf8f0, (q15_t)0x7fcc, (q15_t)0xf8d7, (q15_t)0x7fcb, (q15_t)0xf8be, (q15_t)0x7fc9, (q15_t)0xf8a5, - (q15_t)0x7fc8, (q15_t)0xf88b, (q15_t)0x7fc6, (q15_t)0xf872, (q15_t)0x7fc5, (q15_t)0xf859, (q15_t)0x7fc3, (q15_t)0xf840, - (q15_t)0x7fc2, (q15_t)0xf827, (q15_t)0x7fc0, (q15_t)0xf80e, (q15_t)0x7fbf, (q15_t)0xf7f5, (q15_t)0x7fbd, (q15_t)0xf7dc, - (q15_t)0x7fbc, (q15_t)0xf7c3, (q15_t)0x7fba, (q15_t)0xf7aa, (q15_t)0x7fb8, (q15_t)0xf791, (q15_t)0x7fb7, (q15_t)0xf778, - (q15_t)0x7fb5, (q15_t)0xf75e, (q15_t)0x7fb3, (q15_t)0xf745, (q15_t)0x7fb1, (q15_t)0xf72c, (q15_t)0x7fb0, (q15_t)0xf713, - (q15_t)0x7fae, (q15_t)0xf6fa, (q15_t)0x7fac, (q15_t)0xf6e1, (q15_t)0x7faa, (q15_t)0xf6c8, (q15_t)0x7fa9, (q15_t)0xf6af, - (q15_t)0x7fa7, (q15_t)0xf696, (q15_t)0x7fa5, (q15_t)0xf67d, (q15_t)0x7fa3, (q15_t)0xf664, (q15_t)0x7fa1, (q15_t)0xf64b, - (q15_t)0x7f9f, (q15_t)0xf632, (q15_t)0x7f9d, (q15_t)0xf619, (q15_t)0x7f9b, (q15_t)0xf600, (q15_t)0x7f99, (q15_t)0xf5e7, - (q15_t)0x7f97, (q15_t)0xf5cd, (q15_t)0x7f95, (q15_t)0xf5b4, (q15_t)0x7f93, (q15_t)0xf59b, (q15_t)0x7f91, (q15_t)0xf582, - (q15_t)0x7f8f, (q15_t)0xf569, (q15_t)0x7f8d, (q15_t)0xf550, (q15_t)0x7f8b, (q15_t)0xf537, (q15_t)0x7f89, (q15_t)0xf51e, - (q15_t)0x7f87, (q15_t)0xf505, (q15_t)0x7f85, (q15_t)0xf4ec, (q15_t)0x7f82, (q15_t)0xf4d3, (q15_t)0x7f80, (q15_t)0xf4ba, - (q15_t)0x7f7e, (q15_t)0xf4a1, (q15_t)0x7f7c, (q15_t)0xf488, (q15_t)0x7f79, (q15_t)0xf46f, (q15_t)0x7f77, (q15_t)0xf456, - (q15_t)0x7f75, (q15_t)0xf43d, (q15_t)0x7f72, (q15_t)0xf424, (q15_t)0x7f70, (q15_t)0xf40b, (q15_t)0x7f6e, (q15_t)0xf3f2, - (q15_t)0x7f6b, (q15_t)0xf3d9, (q15_t)0x7f69, (q15_t)0xf3c0, (q15_t)0x7f67, (q15_t)0xf3a7, (q15_t)0x7f64, (q15_t)0xf38e, - (q15_t)0x7f62, (q15_t)0xf375, (q15_t)0x7f5f, (q15_t)0xf35c, (q15_t)0x7f5d, (q15_t)0xf343, (q15_t)0x7f5a, (q15_t)0xf32a, - (q15_t)0x7f58, (q15_t)0xf311, (q15_t)0x7f55, (q15_t)0xf2f8, (q15_t)0x7f53, (q15_t)0xf2df, (q15_t)0x7f50, (q15_t)0xf2c6, - (q15_t)0x7f4d, (q15_t)0xf2ad, (q15_t)0x7f4b, (q15_t)0xf294, (q15_t)0x7f48, (q15_t)0xf27b, (q15_t)0x7f45, (q15_t)0xf262, - (q15_t)0x7f43, (q15_t)0xf249, (q15_t)0x7f40, (q15_t)0xf230, (q15_t)0x7f3d, (q15_t)0xf217, (q15_t)0x7f3b, (q15_t)0xf1fe, - (q15_t)0x7f38, (q15_t)0xf1e5, (q15_t)0x7f35, (q15_t)0xf1cc, (q15_t)0x7f32, (q15_t)0xf1b3, (q15_t)0x7f2f, (q15_t)0xf19a, - (q15_t)0x7f2d, (q15_t)0xf181, (q15_t)0x7f2a, (q15_t)0xf168, (q15_t)0x7f27, (q15_t)0xf14f, (q15_t)0x7f24, (q15_t)0xf136, - (q15_t)0x7f21, (q15_t)0xf11d, (q15_t)0x7f1e, (q15_t)0xf104, (q15_t)0x7f1b, (q15_t)0xf0eb, (q15_t)0x7f18, (q15_t)0xf0d2, - (q15_t)0x7f15, (q15_t)0xf0b9, (q15_t)0x7f12, (q15_t)0xf0a0, (q15_t)0x7f0f, (q15_t)0xf087, (q15_t)0x7f0c, (q15_t)0xf06e, - (q15_t)0x7f09, (q15_t)0xf055, (q15_t)0x7f06, (q15_t)0xf03c, (q15_t)0x7f03, (q15_t)0xf023, (q15_t)0x7f00, (q15_t)0xf00b, - (q15_t)0x7efd, (q15_t)0xeff2, (q15_t)0x7ef9, (q15_t)0xefd9, (q15_t)0x7ef6, (q15_t)0xefc0, (q15_t)0x7ef3, (q15_t)0xefa7, - (q15_t)0x7ef0, (q15_t)0xef8e, (q15_t)0x7eed, (q15_t)0xef75, (q15_t)0x7ee9, (q15_t)0xef5c, (q15_t)0x7ee6, (q15_t)0xef43, - (q15_t)0x7ee3, (q15_t)0xef2a, (q15_t)0x7edf, (q15_t)0xef11, (q15_t)0x7edc, (q15_t)0xeef8, (q15_t)0x7ed9, (q15_t)0xeedf, - (q15_t)0x7ed5, (q15_t)0xeec7, (q15_t)0x7ed2, (q15_t)0xeeae, (q15_t)0x7ecf, (q15_t)0xee95, (q15_t)0x7ecb, (q15_t)0xee7c, - (q15_t)0x7ec8, (q15_t)0xee63, (q15_t)0x7ec4, (q15_t)0xee4a, (q15_t)0x7ec1, (q15_t)0xee31, (q15_t)0x7ebd, (q15_t)0xee18, - (q15_t)0x7eba, (q15_t)0xedff, (q15_t)0x7eb6, (q15_t)0xede7, (q15_t)0x7eb3, (q15_t)0xedce, (q15_t)0x7eaf, (q15_t)0xedb5, - (q15_t)0x7eab, (q15_t)0xed9c, (q15_t)0x7ea8, (q15_t)0xed83, (q15_t)0x7ea4, (q15_t)0xed6a, (q15_t)0x7ea1, (q15_t)0xed51, - (q15_t)0x7e9d, (q15_t)0xed38, (q15_t)0x7e99, (q15_t)0xed20, (q15_t)0x7e95, (q15_t)0xed07, (q15_t)0x7e92, (q15_t)0xecee, - (q15_t)0x7e8e, (q15_t)0xecd5, (q15_t)0x7e8a, (q15_t)0xecbc, (q15_t)0x7e86, (q15_t)0xeca3, (q15_t)0x7e83, (q15_t)0xec8a, - (q15_t)0x7e7f, (q15_t)0xec72, (q15_t)0x7e7b, (q15_t)0xec59, (q15_t)0x7e77, (q15_t)0xec40, (q15_t)0x7e73, (q15_t)0xec27, - (q15_t)0x7e6f, (q15_t)0xec0e, (q15_t)0x7e6b, (q15_t)0xebf5, (q15_t)0x7e67, (q15_t)0xebdd, (q15_t)0x7e63, (q15_t)0xebc4, - (q15_t)0x7e5f, (q15_t)0xebab, (q15_t)0x7e5b, (q15_t)0xeb92, (q15_t)0x7e57, (q15_t)0xeb79, (q15_t)0x7e53, (q15_t)0xeb61, - (q15_t)0x7e4f, (q15_t)0xeb48, (q15_t)0x7e4b, (q15_t)0xeb2f, (q15_t)0x7e47, (q15_t)0xeb16, (q15_t)0x7e43, (q15_t)0xeafd, - (q15_t)0x7e3f, (q15_t)0xeae5, (q15_t)0x7e3b, (q15_t)0xeacc, (q15_t)0x7e37, (q15_t)0xeab3, (q15_t)0x7e32, (q15_t)0xea9a, - (q15_t)0x7e2e, (q15_t)0xea81, (q15_t)0x7e2a, (q15_t)0xea69, (q15_t)0x7e26, (q15_t)0xea50, (q15_t)0x7e21, (q15_t)0xea37, - (q15_t)0x7e1d, (q15_t)0xea1e, (q15_t)0x7e19, (q15_t)0xea06, (q15_t)0x7e14, (q15_t)0xe9ed, (q15_t)0x7e10, (q15_t)0xe9d4, - (q15_t)0x7e0c, (q15_t)0xe9bb, (q15_t)0x7e07, (q15_t)0xe9a3, (q15_t)0x7e03, (q15_t)0xe98a, (q15_t)0x7dff, (q15_t)0xe971, - (q15_t)0x7dfa, (q15_t)0xe958, (q15_t)0x7df6, (q15_t)0xe940, (q15_t)0x7df1, (q15_t)0xe927, (q15_t)0x7ded, (q15_t)0xe90e, - (q15_t)0x7de8, (q15_t)0xe8f6, (q15_t)0x7de4, (q15_t)0xe8dd, (q15_t)0x7ddf, (q15_t)0xe8c4, (q15_t)0x7dda, (q15_t)0xe8ab, - (q15_t)0x7dd6, (q15_t)0xe893, (q15_t)0x7dd1, (q15_t)0xe87a, (q15_t)0x7dcd, (q15_t)0xe861, (q15_t)0x7dc8, (q15_t)0xe849, - (q15_t)0x7dc3, (q15_t)0xe830, (q15_t)0x7dbf, (q15_t)0xe817, (q15_t)0x7dba, (q15_t)0xe7fe, (q15_t)0x7db5, (q15_t)0xe7e6, - (q15_t)0x7db0, (q15_t)0xe7cd, (q15_t)0x7dac, (q15_t)0xe7b4, (q15_t)0x7da7, (q15_t)0xe79c, (q15_t)0x7da2, (q15_t)0xe783, - (q15_t)0x7d9d, (q15_t)0xe76a, (q15_t)0x7d98, (q15_t)0xe752, (q15_t)0x7d94, (q15_t)0xe739, (q15_t)0x7d8f, (q15_t)0xe720, - (q15_t)0x7d8a, (q15_t)0xe708, (q15_t)0x7d85, (q15_t)0xe6ef, (q15_t)0x7d80, (q15_t)0xe6d6, (q15_t)0x7d7b, (q15_t)0xe6be, - (q15_t)0x7d76, (q15_t)0xe6a5, (q15_t)0x7d71, (q15_t)0xe68d, (q15_t)0x7d6c, (q15_t)0xe674, (q15_t)0x7d67, (q15_t)0xe65b, - (q15_t)0x7d62, (q15_t)0xe643, (q15_t)0x7d5d, (q15_t)0xe62a, (q15_t)0x7d58, (q15_t)0xe611, (q15_t)0x7d53, (q15_t)0xe5f9, - (q15_t)0x7d4e, (q15_t)0xe5e0, (q15_t)0x7d49, (q15_t)0xe5c8, (q15_t)0x7d43, (q15_t)0xe5af, (q15_t)0x7d3e, (q15_t)0xe596, - (q15_t)0x7d39, (q15_t)0xe57e, (q15_t)0x7d34, (q15_t)0xe565, (q15_t)0x7d2f, (q15_t)0xe54d, (q15_t)0x7d29, (q15_t)0xe534, - (q15_t)0x7d24, (q15_t)0xe51c, (q15_t)0x7d1f, (q15_t)0xe503, (q15_t)0x7d19, (q15_t)0xe4ea, (q15_t)0x7d14, (q15_t)0xe4d2, - (q15_t)0x7d0f, (q15_t)0xe4b9, (q15_t)0x7d09, (q15_t)0xe4a1, (q15_t)0x7d04, (q15_t)0xe488, (q15_t)0x7cff, (q15_t)0xe470, - (q15_t)0x7cf9, (q15_t)0xe457, (q15_t)0x7cf4, (q15_t)0xe43f, (q15_t)0x7cee, (q15_t)0xe426, (q15_t)0x7ce9, (q15_t)0xe40e, - (q15_t)0x7ce3, (q15_t)0xe3f5, (q15_t)0x7cde, (q15_t)0xe3dc, (q15_t)0x7cd8, (q15_t)0xe3c4, (q15_t)0x7cd3, (q15_t)0xe3ab, - (q15_t)0x7ccd, (q15_t)0xe393, (q15_t)0x7cc8, (q15_t)0xe37a, (q15_t)0x7cc2, (q15_t)0xe362, (q15_t)0x7cbc, (q15_t)0xe349, - (q15_t)0x7cb7, (q15_t)0xe331, (q15_t)0x7cb1, (q15_t)0xe318, (q15_t)0x7cab, (q15_t)0xe300, (q15_t)0x7ca6, (q15_t)0xe2e8, - (q15_t)0x7ca0, (q15_t)0xe2cf, (q15_t)0x7c9a, (q15_t)0xe2b7, (q15_t)0x7c94, (q15_t)0xe29e, (q15_t)0x7c8f, (q15_t)0xe286, - (q15_t)0x7c89, (q15_t)0xe26d, (q15_t)0x7c83, (q15_t)0xe255, (q15_t)0x7c7d, (q15_t)0xe23c, (q15_t)0x7c77, (q15_t)0xe224, - (q15_t)0x7c71, (q15_t)0xe20b, (q15_t)0x7c6c, (q15_t)0xe1f3, (q15_t)0x7c66, (q15_t)0xe1db, (q15_t)0x7c60, (q15_t)0xe1c2, - (q15_t)0x7c5a, (q15_t)0xe1aa, (q15_t)0x7c54, (q15_t)0xe191, (q15_t)0x7c4e, (q15_t)0xe179, (q15_t)0x7c48, (q15_t)0xe160, - (q15_t)0x7c42, (q15_t)0xe148, (q15_t)0x7c3c, (q15_t)0xe130, (q15_t)0x7c36, (q15_t)0xe117, (q15_t)0x7c30, (q15_t)0xe0ff, - (q15_t)0x7c29, (q15_t)0xe0e7, (q15_t)0x7c23, (q15_t)0xe0ce, (q15_t)0x7c1d, (q15_t)0xe0b6, (q15_t)0x7c17, (q15_t)0xe09d, - (q15_t)0x7c11, (q15_t)0xe085, (q15_t)0x7c0b, (q15_t)0xe06d, (q15_t)0x7c05, (q15_t)0xe054, (q15_t)0x7bfe, (q15_t)0xe03c, - (q15_t)0x7bf8, (q15_t)0xe024, (q15_t)0x7bf2, (q15_t)0xe00b, (q15_t)0x7beb, (q15_t)0xdff3, (q15_t)0x7be5, (q15_t)0xdfdb, - (q15_t)0x7bdf, (q15_t)0xdfc2, (q15_t)0x7bd9, (q15_t)0xdfaa, (q15_t)0x7bd2, (q15_t)0xdf92, (q15_t)0x7bcc, (q15_t)0xdf79, - (q15_t)0x7bc5, (q15_t)0xdf61, (q15_t)0x7bbf, (q15_t)0xdf49, (q15_t)0x7bb9, (q15_t)0xdf30, (q15_t)0x7bb2, (q15_t)0xdf18, - (q15_t)0x7bac, (q15_t)0xdf00, (q15_t)0x7ba5, (q15_t)0xdee8, (q15_t)0x7b9f, (q15_t)0xdecf, (q15_t)0x7b98, (q15_t)0xdeb7, - (q15_t)0x7b92, (q15_t)0xde9f, (q15_t)0x7b8b, (q15_t)0xde87, (q15_t)0x7b84, (q15_t)0xde6e, (q15_t)0x7b7e, (q15_t)0xde56, - (q15_t)0x7b77, (q15_t)0xde3e, (q15_t)0x7b71, (q15_t)0xde26, (q15_t)0x7b6a, (q15_t)0xde0d, (q15_t)0x7b63, (q15_t)0xddf5, - (q15_t)0x7b5d, (q15_t)0xdddd, (q15_t)0x7b56, (q15_t)0xddc5, (q15_t)0x7b4f, (q15_t)0xddac, (q15_t)0x7b48, (q15_t)0xdd94, - (q15_t)0x7b42, (q15_t)0xdd7c, (q15_t)0x7b3b, (q15_t)0xdd64, (q15_t)0x7b34, (q15_t)0xdd4c, (q15_t)0x7b2d, (q15_t)0xdd33, - (q15_t)0x7b26, (q15_t)0xdd1b, (q15_t)0x7b1f, (q15_t)0xdd03, (q15_t)0x7b19, (q15_t)0xdceb, (q15_t)0x7b12, (q15_t)0xdcd3, - (q15_t)0x7b0b, (q15_t)0xdcbb, (q15_t)0x7b04, (q15_t)0xdca2, (q15_t)0x7afd, (q15_t)0xdc8a, (q15_t)0x7af6, (q15_t)0xdc72, - (q15_t)0x7aef, (q15_t)0xdc5a, (q15_t)0x7ae8, (q15_t)0xdc42, (q15_t)0x7ae1, (q15_t)0xdc2a, (q15_t)0x7ada, (q15_t)0xdc12, - (q15_t)0x7ad3, (q15_t)0xdbf9, (q15_t)0x7acc, (q15_t)0xdbe1, (q15_t)0x7ac5, (q15_t)0xdbc9, (q15_t)0x7abd, (q15_t)0xdbb1, - (q15_t)0x7ab6, (q15_t)0xdb99, (q15_t)0x7aaf, (q15_t)0xdb81, (q15_t)0x7aa8, (q15_t)0xdb69, (q15_t)0x7aa1, (q15_t)0xdb51, - (q15_t)0x7a9a, (q15_t)0xdb39, (q15_t)0x7a92, (q15_t)0xdb21, (q15_t)0x7a8b, (q15_t)0xdb09, (q15_t)0x7a84, (q15_t)0xdaf1, - (q15_t)0x7a7d, (q15_t)0xdad8, (q15_t)0x7a75, (q15_t)0xdac0, (q15_t)0x7a6e, (q15_t)0xdaa8, (q15_t)0x7a67, (q15_t)0xda90, - (q15_t)0x7a5f, (q15_t)0xda78, (q15_t)0x7a58, (q15_t)0xda60, (q15_t)0x7a50, (q15_t)0xda48, (q15_t)0x7a49, (q15_t)0xda30, - (q15_t)0x7a42, (q15_t)0xda18, (q15_t)0x7a3a, (q15_t)0xda00, (q15_t)0x7a33, (q15_t)0xd9e8, (q15_t)0x7a2b, (q15_t)0xd9d0, - (q15_t)0x7a24, (q15_t)0xd9b8, (q15_t)0x7a1c, (q15_t)0xd9a0, (q15_t)0x7a15, (q15_t)0xd988, (q15_t)0x7a0d, (q15_t)0xd970, - (q15_t)0x7a05, (q15_t)0xd958, (q15_t)0x79fe, (q15_t)0xd940, (q15_t)0x79f6, (q15_t)0xd928, (q15_t)0x79ef, (q15_t)0xd911, - (q15_t)0x79e7, (q15_t)0xd8f9, (q15_t)0x79df, (q15_t)0xd8e1, (q15_t)0x79d8, (q15_t)0xd8c9, (q15_t)0x79d0, (q15_t)0xd8b1, - (q15_t)0x79c8, (q15_t)0xd899, (q15_t)0x79c0, (q15_t)0xd881, (q15_t)0x79b9, (q15_t)0xd869, (q15_t)0x79b1, (q15_t)0xd851, - (q15_t)0x79a9, (q15_t)0xd839, (q15_t)0x79a1, (q15_t)0xd821, (q15_t)0x7999, (q15_t)0xd80a, (q15_t)0x7992, (q15_t)0xd7f2, - (q15_t)0x798a, (q15_t)0xd7da, (q15_t)0x7982, (q15_t)0xd7c2, (q15_t)0x797a, (q15_t)0xd7aa, (q15_t)0x7972, (q15_t)0xd792, - (q15_t)0x796a, (q15_t)0xd77a, (q15_t)0x7962, (q15_t)0xd763, (q15_t)0x795a, (q15_t)0xd74b, (q15_t)0x7952, (q15_t)0xd733, - (q15_t)0x794a, (q15_t)0xd71b, (q15_t)0x7942, (q15_t)0xd703, (q15_t)0x793a, (q15_t)0xd6eb, (q15_t)0x7932, (q15_t)0xd6d4, - (q15_t)0x792a, (q15_t)0xd6bc, (q15_t)0x7922, (q15_t)0xd6a4, (q15_t)0x7919, (q15_t)0xd68c, (q15_t)0x7911, (q15_t)0xd675, - (q15_t)0x7909, (q15_t)0xd65d, (q15_t)0x7901, (q15_t)0xd645, (q15_t)0x78f9, (q15_t)0xd62d, (q15_t)0x78f1, (q15_t)0xd615, - (q15_t)0x78e8, (q15_t)0xd5fe, (q15_t)0x78e0, (q15_t)0xd5e6, (q15_t)0x78d8, (q15_t)0xd5ce, (q15_t)0x78cf, (q15_t)0xd5b7, - (q15_t)0x78c7, (q15_t)0xd59f, (q15_t)0x78bf, (q15_t)0xd587, (q15_t)0x78b6, (q15_t)0xd56f, (q15_t)0x78ae, (q15_t)0xd558, - (q15_t)0x78a6, (q15_t)0xd540, (q15_t)0x789d, (q15_t)0xd528, (q15_t)0x7895, (q15_t)0xd511, (q15_t)0x788c, (q15_t)0xd4f9, - (q15_t)0x7884, (q15_t)0xd4e1, (q15_t)0x787c, (q15_t)0xd4ca, (q15_t)0x7873, (q15_t)0xd4b2, (q15_t)0x786b, (q15_t)0xd49a, - (q15_t)0x7862, (q15_t)0xd483, (q15_t)0x7859, (q15_t)0xd46b, (q15_t)0x7851, (q15_t)0xd453, (q15_t)0x7848, (q15_t)0xd43c, - (q15_t)0x7840, (q15_t)0xd424, (q15_t)0x7837, (q15_t)0xd40d, (q15_t)0x782e, (q15_t)0xd3f5, (q15_t)0x7826, (q15_t)0xd3dd, - (q15_t)0x781d, (q15_t)0xd3c6, (q15_t)0x7814, (q15_t)0xd3ae, (q15_t)0x780c, (q15_t)0xd397, (q15_t)0x7803, (q15_t)0xd37f, - (q15_t)0x77fa, (q15_t)0xd368, (q15_t)0x77f1, (q15_t)0xd350, (q15_t)0x77e9, (q15_t)0xd338, (q15_t)0x77e0, (q15_t)0xd321, - (q15_t)0x77d7, (q15_t)0xd309, (q15_t)0x77ce, (q15_t)0xd2f2, (q15_t)0x77c5, (q15_t)0xd2da, (q15_t)0x77bc, (q15_t)0xd2c3, - (q15_t)0x77b4, (q15_t)0xd2ab, (q15_t)0x77ab, (q15_t)0xd294, (q15_t)0x77a2, (q15_t)0xd27c, (q15_t)0x7799, (q15_t)0xd265, - (q15_t)0x7790, (q15_t)0xd24d, (q15_t)0x7787, (q15_t)0xd236, (q15_t)0x777e, (q15_t)0xd21e, (q15_t)0x7775, (q15_t)0xd207, - (q15_t)0x776c, (q15_t)0xd1ef, (q15_t)0x7763, (q15_t)0xd1d8, (q15_t)0x775a, (q15_t)0xd1c1, (q15_t)0x7751, (q15_t)0xd1a9, - (q15_t)0x7747, (q15_t)0xd192, (q15_t)0x773e, (q15_t)0xd17a, (q15_t)0x7735, (q15_t)0xd163, (q15_t)0x772c, (q15_t)0xd14b, - (q15_t)0x7723, (q15_t)0xd134, (q15_t)0x771a, (q15_t)0xd11d, (q15_t)0x7710, (q15_t)0xd105, (q15_t)0x7707, (q15_t)0xd0ee, - (q15_t)0x76fe, (q15_t)0xd0d7, (q15_t)0x76f5, (q15_t)0xd0bf, (q15_t)0x76eb, (q15_t)0xd0a8, (q15_t)0x76e2, (q15_t)0xd091, - (q15_t)0x76d9, (q15_t)0xd079, (q15_t)0x76cf, (q15_t)0xd062, (q15_t)0x76c6, (q15_t)0xd04b, (q15_t)0x76bd, (q15_t)0xd033, - (q15_t)0x76b3, (q15_t)0xd01c, (q15_t)0x76aa, (q15_t)0xd005, (q15_t)0x76a0, (q15_t)0xcfed, (q15_t)0x7697, (q15_t)0xcfd6, - (q15_t)0x768e, (q15_t)0xcfbf, (q15_t)0x7684, (q15_t)0xcfa7, (q15_t)0x767b, (q15_t)0xcf90, (q15_t)0x7671, (q15_t)0xcf79, - (q15_t)0x7668, (q15_t)0xcf62, (q15_t)0x765e, (q15_t)0xcf4a, (q15_t)0x7654, (q15_t)0xcf33, (q15_t)0x764b, (q15_t)0xcf1c, - (q15_t)0x7641, (q15_t)0xcf05, (q15_t)0x7638, (q15_t)0xceee, (q15_t)0x762e, (q15_t)0xced6, (q15_t)0x7624, (q15_t)0xcebf, - (q15_t)0x761b, (q15_t)0xcea8, (q15_t)0x7611, (q15_t)0xce91, (q15_t)0x7607, (q15_t)0xce7a, (q15_t)0x75fd, (q15_t)0xce62, - (q15_t)0x75f4, (q15_t)0xce4b, (q15_t)0x75ea, (q15_t)0xce34, (q15_t)0x75e0, (q15_t)0xce1d, (q15_t)0x75d6, (q15_t)0xce06, - (q15_t)0x75cc, (q15_t)0xcdef, (q15_t)0x75c3, (q15_t)0xcdd8, (q15_t)0x75b9, (q15_t)0xcdc0, (q15_t)0x75af, (q15_t)0xcda9, - (q15_t)0x75a5, (q15_t)0xcd92, (q15_t)0x759b, (q15_t)0xcd7b, (q15_t)0x7591, (q15_t)0xcd64, (q15_t)0x7587, (q15_t)0xcd4d, - (q15_t)0x757d, (q15_t)0xcd36, (q15_t)0x7573, (q15_t)0xcd1f, (q15_t)0x7569, (q15_t)0xcd08, (q15_t)0x755f, (q15_t)0xccf1, - (q15_t)0x7555, (q15_t)0xccda, (q15_t)0x754b, (q15_t)0xccc3, (q15_t)0x7541, (q15_t)0xccac, (q15_t)0x7537, (q15_t)0xcc95, - (q15_t)0x752d, (q15_t)0xcc7e, (q15_t)0x7523, (q15_t)0xcc67, (q15_t)0x7519, (q15_t)0xcc50, (q15_t)0x750f, (q15_t)0xcc39, - (q15_t)0x7504, (q15_t)0xcc22, (q15_t)0x74fa, (q15_t)0xcc0b, (q15_t)0x74f0, (q15_t)0xcbf4, (q15_t)0x74e6, (q15_t)0xcbdd, - (q15_t)0x74db, (q15_t)0xcbc6, (q15_t)0x74d1, (q15_t)0xcbaf, (q15_t)0x74c7, (q15_t)0xcb98, (q15_t)0x74bd, (q15_t)0xcb81, - (q15_t)0x74b2, (q15_t)0xcb6a, (q15_t)0x74a8, (q15_t)0xcb53, (q15_t)0x749e, (q15_t)0xcb3c, (q15_t)0x7493, (q15_t)0xcb25, - (q15_t)0x7489, (q15_t)0xcb0e, (q15_t)0x747e, (q15_t)0xcaf8, (q15_t)0x7474, (q15_t)0xcae1, (q15_t)0x746a, (q15_t)0xcaca, - (q15_t)0x745f, (q15_t)0xcab3, (q15_t)0x7455, (q15_t)0xca9c, (q15_t)0x744a, (q15_t)0xca85, (q15_t)0x7440, (q15_t)0xca6e, - (q15_t)0x7435, (q15_t)0xca58, (q15_t)0x742b, (q15_t)0xca41, (q15_t)0x7420, (q15_t)0xca2a, (q15_t)0x7415, (q15_t)0xca13, - (q15_t)0x740b, (q15_t)0xc9fc, (q15_t)0x7400, (q15_t)0xc9e6, (q15_t)0x73f6, (q15_t)0xc9cf, (q15_t)0x73eb, (q15_t)0xc9b8, - (q15_t)0x73e0, (q15_t)0xc9a1, (q15_t)0x73d6, (q15_t)0xc98b, (q15_t)0x73cb, (q15_t)0xc974, (q15_t)0x73c0, (q15_t)0xc95d, - (q15_t)0x73b5, (q15_t)0xc946, (q15_t)0x73ab, (q15_t)0xc930, (q15_t)0x73a0, (q15_t)0xc919, (q15_t)0x7395, (q15_t)0xc902, - (q15_t)0x738a, (q15_t)0xc8ec, (q15_t)0x737f, (q15_t)0xc8d5, (q15_t)0x7375, (q15_t)0xc8be, (q15_t)0x736a, (q15_t)0xc8a8, - (q15_t)0x735f, (q15_t)0xc891, (q15_t)0x7354, (q15_t)0xc87a, (q15_t)0x7349, (q15_t)0xc864, (q15_t)0x733e, (q15_t)0xc84d, - (q15_t)0x7333, (q15_t)0xc836, (q15_t)0x7328, (q15_t)0xc820, (q15_t)0x731d, (q15_t)0xc809, (q15_t)0x7312, (q15_t)0xc7f3, - (q15_t)0x7307, (q15_t)0xc7dc, (q15_t)0x72fc, (q15_t)0xc7c5, (q15_t)0x72f1, (q15_t)0xc7af, (q15_t)0x72e6, (q15_t)0xc798, - (q15_t)0x72db, (q15_t)0xc782, (q15_t)0x72d0, (q15_t)0xc76b, (q15_t)0x72c5, (q15_t)0xc755, (q15_t)0x72ba, (q15_t)0xc73e, - (q15_t)0x72af, (q15_t)0xc728, (q15_t)0x72a3, (q15_t)0xc711, (q15_t)0x7298, (q15_t)0xc6fa, (q15_t)0x728d, (q15_t)0xc6e4, - (q15_t)0x7282, (q15_t)0xc6ce, (q15_t)0x7276, (q15_t)0xc6b7, (q15_t)0x726b, (q15_t)0xc6a1, (q15_t)0x7260, (q15_t)0xc68a, - (q15_t)0x7255, (q15_t)0xc674, (q15_t)0x7249, (q15_t)0xc65d, (q15_t)0x723e, (q15_t)0xc647, (q15_t)0x7233, (q15_t)0xc630, - (q15_t)0x7227, (q15_t)0xc61a, (q15_t)0x721c, (q15_t)0xc603, (q15_t)0x7211, (q15_t)0xc5ed, (q15_t)0x7205, (q15_t)0xc5d7, - (q15_t)0x71fa, (q15_t)0xc5c0, (q15_t)0x71ee, (q15_t)0xc5aa, (q15_t)0x71e3, (q15_t)0xc594, (q15_t)0x71d7, (q15_t)0xc57d, - (q15_t)0x71cc, (q15_t)0xc567, (q15_t)0x71c0, (q15_t)0xc551, (q15_t)0x71b5, (q15_t)0xc53a, (q15_t)0x71a9, (q15_t)0xc524, - (q15_t)0x719e, (q15_t)0xc50e, (q15_t)0x7192, (q15_t)0xc4f7, (q15_t)0x7186, (q15_t)0xc4e1, (q15_t)0x717b, (q15_t)0xc4cb, - (q15_t)0x716f, (q15_t)0xc4b4, (q15_t)0x7164, (q15_t)0xc49e, (q15_t)0x7158, (q15_t)0xc488, (q15_t)0x714c, (q15_t)0xc472, - (q15_t)0x7141, (q15_t)0xc45b, (q15_t)0x7135, (q15_t)0xc445, (q15_t)0x7129, (q15_t)0xc42f, (q15_t)0x711d, (q15_t)0xc419, - (q15_t)0x7112, (q15_t)0xc403, (q15_t)0x7106, (q15_t)0xc3ec, (q15_t)0x70fa, (q15_t)0xc3d6, (q15_t)0x70ee, (q15_t)0xc3c0, - (q15_t)0x70e2, (q15_t)0xc3aa, (q15_t)0x70d6, (q15_t)0xc394, (q15_t)0x70cb, (q15_t)0xc37d, (q15_t)0x70bf, (q15_t)0xc367, - (q15_t)0x70b3, (q15_t)0xc351, (q15_t)0x70a7, (q15_t)0xc33b, (q15_t)0x709b, (q15_t)0xc325, (q15_t)0x708f, (q15_t)0xc30f, - (q15_t)0x7083, (q15_t)0xc2f9, (q15_t)0x7077, (q15_t)0xc2e3, (q15_t)0x706b, (q15_t)0xc2cd, (q15_t)0x705f, (q15_t)0xc2b7, - (q15_t)0x7053, (q15_t)0xc2a0, (q15_t)0x7047, (q15_t)0xc28a, (q15_t)0x703b, (q15_t)0xc274, (q15_t)0x702f, (q15_t)0xc25e, - (q15_t)0x7023, (q15_t)0xc248, (q15_t)0x7016, (q15_t)0xc232, (q15_t)0x700a, (q15_t)0xc21c, (q15_t)0x6ffe, (q15_t)0xc206, - (q15_t)0x6ff2, (q15_t)0xc1f0, (q15_t)0x6fe6, (q15_t)0xc1da, (q15_t)0x6fda, (q15_t)0xc1c4, (q15_t)0x6fcd, (q15_t)0xc1ae, - (q15_t)0x6fc1, (q15_t)0xc198, (q15_t)0x6fb5, (q15_t)0xc183, (q15_t)0x6fa9, (q15_t)0xc16d, (q15_t)0x6f9c, (q15_t)0xc157, - (q15_t)0x6f90, (q15_t)0xc141, (q15_t)0x6f84, (q15_t)0xc12b, (q15_t)0x6f77, (q15_t)0xc115, (q15_t)0x6f6b, (q15_t)0xc0ff, - (q15_t)0x6f5f, (q15_t)0xc0e9, (q15_t)0x6f52, (q15_t)0xc0d3, (q15_t)0x6f46, (q15_t)0xc0bd, (q15_t)0x6f39, (q15_t)0xc0a8, - (q15_t)0x6f2d, (q15_t)0xc092, (q15_t)0x6f20, (q15_t)0xc07c, (q15_t)0x6f14, (q15_t)0xc066, (q15_t)0x6f07, (q15_t)0xc050, - (q15_t)0x6efb, (q15_t)0xc03b, (q15_t)0x6eee, (q15_t)0xc025, (q15_t)0x6ee2, (q15_t)0xc00f, (q15_t)0x6ed5, (q15_t)0xbff9, - (q15_t)0x6ec9, (q15_t)0xbfe3, (q15_t)0x6ebc, (q15_t)0xbfce, (q15_t)0x6eaf, (q15_t)0xbfb8, (q15_t)0x6ea3, (q15_t)0xbfa2, - (q15_t)0x6e96, (q15_t)0xbf8d, (q15_t)0x6e89, (q15_t)0xbf77, (q15_t)0x6e7d, (q15_t)0xbf61, (q15_t)0x6e70, (q15_t)0xbf4b, - (q15_t)0x6e63, (q15_t)0xbf36, (q15_t)0x6e57, (q15_t)0xbf20, (q15_t)0x6e4a, (q15_t)0xbf0a, (q15_t)0x6e3d, (q15_t)0xbef5, - (q15_t)0x6e30, (q15_t)0xbedf, (q15_t)0x6e24, (q15_t)0xbeca, (q15_t)0x6e17, (q15_t)0xbeb4, (q15_t)0x6e0a, (q15_t)0xbe9e, - (q15_t)0x6dfd, (q15_t)0xbe89, (q15_t)0x6df0, (q15_t)0xbe73, (q15_t)0x6de3, (q15_t)0xbe5e, (q15_t)0x6dd6, (q15_t)0xbe48, - (q15_t)0x6dca, (q15_t)0xbe32, (q15_t)0x6dbd, (q15_t)0xbe1d, (q15_t)0x6db0, (q15_t)0xbe07, (q15_t)0x6da3, (q15_t)0xbdf2, - (q15_t)0x6d96, (q15_t)0xbddc, (q15_t)0x6d89, (q15_t)0xbdc7, (q15_t)0x6d7c, (q15_t)0xbdb1, (q15_t)0x6d6f, (q15_t)0xbd9c, - (q15_t)0x6d62, (q15_t)0xbd86, (q15_t)0x6d55, (q15_t)0xbd71, (q15_t)0x6d48, (q15_t)0xbd5b, (q15_t)0x6d3a, (q15_t)0xbd46, - (q15_t)0x6d2d, (q15_t)0xbd30, (q15_t)0x6d20, (q15_t)0xbd1b, (q15_t)0x6d13, (q15_t)0xbd06, (q15_t)0x6d06, (q15_t)0xbcf0, - (q15_t)0x6cf9, (q15_t)0xbcdb, (q15_t)0x6cec, (q15_t)0xbcc5, (q15_t)0x6cde, (q15_t)0xbcb0, (q15_t)0x6cd1, (q15_t)0xbc9b, - (q15_t)0x6cc4, (q15_t)0xbc85, (q15_t)0x6cb7, (q15_t)0xbc70, (q15_t)0x6ca9, (q15_t)0xbc5b, (q15_t)0x6c9c, (q15_t)0xbc45, - (q15_t)0x6c8f, (q15_t)0xbc30, (q15_t)0x6c81, (q15_t)0xbc1b, (q15_t)0x6c74, (q15_t)0xbc05, (q15_t)0x6c67, (q15_t)0xbbf0, - (q15_t)0x6c59, (q15_t)0xbbdb, (q15_t)0x6c4c, (q15_t)0xbbc5, (q15_t)0x6c3f, (q15_t)0xbbb0, (q15_t)0x6c31, (q15_t)0xbb9b, - (q15_t)0x6c24, (q15_t)0xbb86, (q15_t)0x6c16, (q15_t)0xbb70, (q15_t)0x6c09, (q15_t)0xbb5b, (q15_t)0x6bfb, (q15_t)0xbb46, - (q15_t)0x6bee, (q15_t)0xbb31, (q15_t)0x6be0, (q15_t)0xbb1c, (q15_t)0x6bd3, (q15_t)0xbb06, (q15_t)0x6bc5, (q15_t)0xbaf1, - (q15_t)0x6bb8, (q15_t)0xbadc, (q15_t)0x6baa, (q15_t)0xbac7, (q15_t)0x6b9c, (q15_t)0xbab2, (q15_t)0x6b8f, (q15_t)0xba9d, - (q15_t)0x6b81, (q15_t)0xba88, (q15_t)0x6b73, (q15_t)0xba73, (q15_t)0x6b66, (q15_t)0xba5d, (q15_t)0x6b58, (q15_t)0xba48, - (q15_t)0x6b4a, (q15_t)0xba33, (q15_t)0x6b3d, (q15_t)0xba1e, (q15_t)0x6b2f, (q15_t)0xba09, (q15_t)0x6b21, (q15_t)0xb9f4, - (q15_t)0x6b13, (q15_t)0xb9df, (q15_t)0x6b06, (q15_t)0xb9ca, (q15_t)0x6af8, (q15_t)0xb9b5, (q15_t)0x6aea, (q15_t)0xb9a0, - (q15_t)0x6adc, (q15_t)0xb98b, (q15_t)0x6ace, (q15_t)0xb976, (q15_t)0x6ac1, (q15_t)0xb961, (q15_t)0x6ab3, (q15_t)0xb94c, - (q15_t)0x6aa5, (q15_t)0xb937, (q15_t)0x6a97, (q15_t)0xb922, (q15_t)0x6a89, (q15_t)0xb90d, (q15_t)0x6a7b, (q15_t)0xb8f8, - (q15_t)0x6a6d, (q15_t)0xb8e4, (q15_t)0x6a5f, (q15_t)0xb8cf, (q15_t)0x6a51, (q15_t)0xb8ba, (q15_t)0x6a43, (q15_t)0xb8a5, - (q15_t)0x6a35, (q15_t)0xb890, (q15_t)0x6a27, (q15_t)0xb87b, (q15_t)0x6a19, (q15_t)0xb866, (q15_t)0x6a0b, (q15_t)0xb852, - (q15_t)0x69fd, (q15_t)0xb83d, (q15_t)0x69ef, (q15_t)0xb828, (q15_t)0x69e1, (q15_t)0xb813, (q15_t)0x69d3, (q15_t)0xb7fe, - (q15_t)0x69c4, (q15_t)0xb7ea, (q15_t)0x69b6, (q15_t)0xb7d5, (q15_t)0x69a8, (q15_t)0xb7c0, (q15_t)0x699a, (q15_t)0xb7ab, - (q15_t)0x698c, (q15_t)0xb797, (q15_t)0x697d, (q15_t)0xb782, (q15_t)0x696f, (q15_t)0xb76d, (q15_t)0x6961, (q15_t)0xb758, - (q15_t)0x6953, (q15_t)0xb744, (q15_t)0x6944, (q15_t)0xb72f, (q15_t)0x6936, (q15_t)0xb71a, (q15_t)0x6928, (q15_t)0xb706, - (q15_t)0x6919, (q15_t)0xb6f1, (q15_t)0x690b, (q15_t)0xb6dd, (q15_t)0x68fd, (q15_t)0xb6c8, (q15_t)0x68ee, (q15_t)0xb6b3, - (q15_t)0x68e0, (q15_t)0xb69f, (q15_t)0x68d1, (q15_t)0xb68a, (q15_t)0x68c3, (q15_t)0xb676, (q15_t)0x68b5, (q15_t)0xb661, - (q15_t)0x68a6, (q15_t)0xb64c, (q15_t)0x6898, (q15_t)0xb638, (q15_t)0x6889, (q15_t)0xb623, (q15_t)0x687b, (q15_t)0xb60f, - (q15_t)0x686c, (q15_t)0xb5fa, (q15_t)0x685e, (q15_t)0xb5e6, (q15_t)0x684f, (q15_t)0xb5d1, (q15_t)0x6840, (q15_t)0xb5bd, - (q15_t)0x6832, (q15_t)0xb5a8, (q15_t)0x6823, (q15_t)0xb594, (q15_t)0x6815, (q15_t)0xb57f, (q15_t)0x6806, (q15_t)0xb56b, - (q15_t)0x67f7, (q15_t)0xb557, (q15_t)0x67e9, (q15_t)0xb542, (q15_t)0x67da, (q15_t)0xb52e, (q15_t)0x67cb, (q15_t)0xb519, - (q15_t)0x67bd, (q15_t)0xb505, (q15_t)0x67ae, (q15_t)0xb4f1, (q15_t)0x679f, (q15_t)0xb4dc, (q15_t)0x6790, (q15_t)0xb4c8, - (q15_t)0x6782, (q15_t)0xb4b4, (q15_t)0x6773, (q15_t)0xb49f, (q15_t)0x6764, (q15_t)0xb48b, (q15_t)0x6755, (q15_t)0xb477, - (q15_t)0x6746, (q15_t)0xb462, (q15_t)0x6737, (q15_t)0xb44e, (q15_t)0x6729, (q15_t)0xb43a, (q15_t)0x671a, (q15_t)0xb426, - (q15_t)0x670b, (q15_t)0xb411, (q15_t)0x66fc, (q15_t)0xb3fd, (q15_t)0x66ed, (q15_t)0xb3e9, (q15_t)0x66de, (q15_t)0xb3d5, - (q15_t)0x66cf, (q15_t)0xb3c1, (q15_t)0x66c0, (q15_t)0xb3ac, (q15_t)0x66b1, (q15_t)0xb398, (q15_t)0x66a2, (q15_t)0xb384, - (q15_t)0x6693, (q15_t)0xb370, (q15_t)0x6684, (q15_t)0xb35c, (q15_t)0x6675, (q15_t)0xb348, (q15_t)0x6666, (q15_t)0xb334, - (q15_t)0x6657, (q15_t)0xb31f, (q15_t)0x6648, (q15_t)0xb30b, (q15_t)0x6639, (q15_t)0xb2f7, (q15_t)0x6629, (q15_t)0xb2e3, - (q15_t)0x661a, (q15_t)0xb2cf, (q15_t)0x660b, (q15_t)0xb2bb, (q15_t)0x65fc, (q15_t)0xb2a7, (q15_t)0x65ed, (q15_t)0xb293, - (q15_t)0x65dd, (q15_t)0xb27f, (q15_t)0x65ce, (q15_t)0xb26b, (q15_t)0x65bf, (q15_t)0xb257, (q15_t)0x65b0, (q15_t)0xb243, - (q15_t)0x65a0, (q15_t)0xb22f, (q15_t)0x6591, (q15_t)0xb21b, (q15_t)0x6582, (q15_t)0xb207, (q15_t)0x6573, (q15_t)0xb1f3, - (q15_t)0x6563, (q15_t)0xb1df, (q15_t)0x6554, (q15_t)0xb1cc, (q15_t)0x6545, (q15_t)0xb1b8, (q15_t)0x6535, (q15_t)0xb1a4, - (q15_t)0x6526, (q15_t)0xb190, (q15_t)0x6516, (q15_t)0xb17c, (q15_t)0x6507, (q15_t)0xb168, (q15_t)0x64f7, (q15_t)0xb154, - (q15_t)0x64e8, (q15_t)0xb141, (q15_t)0x64d9, (q15_t)0xb12d, (q15_t)0x64c9, (q15_t)0xb119, (q15_t)0x64ba, (q15_t)0xb105, - (q15_t)0x64aa, (q15_t)0xb0f1, (q15_t)0x649b, (q15_t)0xb0de, (q15_t)0x648b, (q15_t)0xb0ca, (q15_t)0x647b, (q15_t)0xb0b6, - (q15_t)0x646c, (q15_t)0xb0a2, (q15_t)0x645c, (q15_t)0xb08f, (q15_t)0x644d, (q15_t)0xb07b, (q15_t)0x643d, (q15_t)0xb067, - (q15_t)0x642d, (q15_t)0xb054, (q15_t)0x641e, (q15_t)0xb040, (q15_t)0x640e, (q15_t)0xb02c, (q15_t)0x63fe, (q15_t)0xb019, - (q15_t)0x63ef, (q15_t)0xb005, (q15_t)0x63df, (q15_t)0xaff1, (q15_t)0x63cf, (q15_t)0xafde, (q15_t)0x63c0, (q15_t)0xafca, - (q15_t)0x63b0, (q15_t)0xafb7, (q15_t)0x63a0, (q15_t)0xafa3, (q15_t)0x6390, (q15_t)0xaf90, (q15_t)0x6380, (q15_t)0xaf7c, - (q15_t)0x6371, (q15_t)0xaf69, (q15_t)0x6361, (q15_t)0xaf55, (q15_t)0x6351, (q15_t)0xaf41, (q15_t)0x6341, (q15_t)0xaf2e, - (q15_t)0x6331, (q15_t)0xaf1b, (q15_t)0x6321, (q15_t)0xaf07, (q15_t)0x6311, (q15_t)0xaef4, (q15_t)0x6301, (q15_t)0xaee0, - (q15_t)0x62f2, (q15_t)0xaecd, (q15_t)0x62e2, (q15_t)0xaeb9, (q15_t)0x62d2, (q15_t)0xaea6, (q15_t)0x62c2, (q15_t)0xae92, - (q15_t)0x62b2, (q15_t)0xae7f, (q15_t)0x62a2, (q15_t)0xae6c, (q15_t)0x6292, (q15_t)0xae58, (q15_t)0x6282, (q15_t)0xae45, - (q15_t)0x6271, (q15_t)0xae32, (q15_t)0x6261, (q15_t)0xae1e, (q15_t)0x6251, (q15_t)0xae0b, (q15_t)0x6241, (q15_t)0xadf8, - (q15_t)0x6231, (q15_t)0xade4, (q15_t)0x6221, (q15_t)0xadd1, (q15_t)0x6211, (q15_t)0xadbe, (q15_t)0x6201, (q15_t)0xadab, - (q15_t)0x61f1, (q15_t)0xad97, (q15_t)0x61e0, (q15_t)0xad84, (q15_t)0x61d0, (q15_t)0xad71, (q15_t)0x61c0, (q15_t)0xad5e, - (q15_t)0x61b0, (q15_t)0xad4b, (q15_t)0x619f, (q15_t)0xad37, (q15_t)0x618f, (q15_t)0xad24, (q15_t)0x617f, (q15_t)0xad11, - (q15_t)0x616f, (q15_t)0xacfe, (q15_t)0x615e, (q15_t)0xaceb, (q15_t)0x614e, (q15_t)0xacd8, (q15_t)0x613e, (q15_t)0xacc5, - (q15_t)0x612d, (q15_t)0xacb2, (q15_t)0x611d, (q15_t)0xac9e, (q15_t)0x610d, (q15_t)0xac8b, (q15_t)0x60fc, (q15_t)0xac78, - (q15_t)0x60ec, (q15_t)0xac65, (q15_t)0x60db, (q15_t)0xac52, (q15_t)0x60cb, (q15_t)0xac3f, (q15_t)0x60ba, (q15_t)0xac2c, - (q15_t)0x60aa, (q15_t)0xac19, (q15_t)0x6099, (q15_t)0xac06, (q15_t)0x6089, (q15_t)0xabf3, (q15_t)0x6078, (q15_t)0xabe0, - (q15_t)0x6068, (q15_t)0xabcd, (q15_t)0x6057, (q15_t)0xabbb, (q15_t)0x6047, (q15_t)0xaba8, (q15_t)0x6036, (q15_t)0xab95, - (q15_t)0x6026, (q15_t)0xab82, (q15_t)0x6015, (q15_t)0xab6f, (q15_t)0x6004, (q15_t)0xab5c, (q15_t)0x5ff4, (q15_t)0xab49, - (q15_t)0x5fe3, (q15_t)0xab36, (q15_t)0x5fd3, (q15_t)0xab24, (q15_t)0x5fc2, (q15_t)0xab11, (q15_t)0x5fb1, (q15_t)0xaafe, - (q15_t)0x5fa0, (q15_t)0xaaeb, (q15_t)0x5f90, (q15_t)0xaad8, (q15_t)0x5f7f, (q15_t)0xaac6, (q15_t)0x5f6e, (q15_t)0xaab3, - (q15_t)0x5f5e, (q15_t)0xaaa0, (q15_t)0x5f4d, (q15_t)0xaa8e, (q15_t)0x5f3c, (q15_t)0xaa7b, (q15_t)0x5f2b, (q15_t)0xaa68, - (q15_t)0x5f1a, (q15_t)0xaa55, (q15_t)0x5f0a, (q15_t)0xaa43, (q15_t)0x5ef9, (q15_t)0xaa30, (q15_t)0x5ee8, (q15_t)0xaa1d, - (q15_t)0x5ed7, (q15_t)0xaa0b, (q15_t)0x5ec6, (q15_t)0xa9f8, (q15_t)0x5eb5, (q15_t)0xa9e6, (q15_t)0x5ea4, (q15_t)0xa9d3, - (q15_t)0x5e93, (q15_t)0xa9c0, (q15_t)0x5e82, (q15_t)0xa9ae, (q15_t)0x5e71, (q15_t)0xa99b, (q15_t)0x5e60, (q15_t)0xa989, - (q15_t)0x5e50, (q15_t)0xa976, (q15_t)0x5e3f, (q15_t)0xa964, (q15_t)0x5e2d, (q15_t)0xa951, (q15_t)0x5e1c, (q15_t)0xa93f, - (q15_t)0x5e0b, (q15_t)0xa92c, (q15_t)0x5dfa, (q15_t)0xa91a, (q15_t)0x5de9, (q15_t)0xa907, (q15_t)0x5dd8, (q15_t)0xa8f5, - (q15_t)0x5dc7, (q15_t)0xa8e3, (q15_t)0x5db6, (q15_t)0xa8d0, (q15_t)0x5da5, (q15_t)0xa8be, (q15_t)0x5d94, (q15_t)0xa8ab, - (q15_t)0x5d83, (q15_t)0xa899, (q15_t)0x5d71, (q15_t)0xa887, (q15_t)0x5d60, (q15_t)0xa874, (q15_t)0x5d4f, (q15_t)0xa862, - (q15_t)0x5d3e, (q15_t)0xa850, (q15_t)0x5d2d, (q15_t)0xa83d, (q15_t)0x5d1b, (q15_t)0xa82b, (q15_t)0x5d0a, (q15_t)0xa819, - (q15_t)0x5cf9, (q15_t)0xa807, (q15_t)0x5ce8, (q15_t)0xa7f4, (q15_t)0x5cd6, (q15_t)0xa7e2, (q15_t)0x5cc5, (q15_t)0xa7d0, - (q15_t)0x5cb4, (q15_t)0xa7be, (q15_t)0x5ca2, (q15_t)0xa7ab, (q15_t)0x5c91, (q15_t)0xa799, (q15_t)0x5c80, (q15_t)0xa787, - (q15_t)0x5c6e, (q15_t)0xa775, (q15_t)0x5c5d, (q15_t)0xa763, (q15_t)0x5c4b, (q15_t)0xa751, (q15_t)0x5c3a, (q15_t)0xa73f, - (q15_t)0x5c29, (q15_t)0xa72c, (q15_t)0x5c17, (q15_t)0xa71a, (q15_t)0x5c06, (q15_t)0xa708, (q15_t)0x5bf4, (q15_t)0xa6f6, - (q15_t)0x5be3, (q15_t)0xa6e4, (q15_t)0x5bd1, (q15_t)0xa6d2, (q15_t)0x5bc0, (q15_t)0xa6c0, (q15_t)0x5bae, (q15_t)0xa6ae, - (q15_t)0x5b9d, (q15_t)0xa69c, (q15_t)0x5b8b, (q15_t)0xa68a, (q15_t)0x5b79, (q15_t)0xa678, (q15_t)0x5b68, (q15_t)0xa666, - (q15_t)0x5b56, (q15_t)0xa654, (q15_t)0x5b45, (q15_t)0xa642, (q15_t)0x5b33, (q15_t)0xa630, (q15_t)0x5b21, (q15_t)0xa61f, - (q15_t)0x5b10, (q15_t)0xa60d, (q15_t)0x5afe, (q15_t)0xa5fb, (q15_t)0x5aec, (q15_t)0xa5e9, (q15_t)0x5adb, (q15_t)0xa5d7, - (q15_t)0x5ac9, (q15_t)0xa5c5, (q15_t)0x5ab7, (q15_t)0xa5b3, (q15_t)0x5aa5, (q15_t)0xa5a2, (q15_t)0x5a94, (q15_t)0xa590, - (q15_t)0x5a82, (q15_t)0xa57e, (q15_t)0x5a70, (q15_t)0xa56c, (q15_t)0x5a5e, (q15_t)0xa55b, (q15_t)0x5a4d, (q15_t)0xa549, - (q15_t)0x5a3b, (q15_t)0xa537, (q15_t)0x5a29, (q15_t)0xa525, (q15_t)0x5a17, (q15_t)0xa514, (q15_t)0x5a05, (q15_t)0xa502, - (q15_t)0x59f3, (q15_t)0xa4f0, (q15_t)0x59e1, (q15_t)0xa4df, (q15_t)0x59d0, (q15_t)0xa4cd, (q15_t)0x59be, (q15_t)0xa4bb, - (q15_t)0x59ac, (q15_t)0xa4aa, (q15_t)0x599a, (q15_t)0xa498, (q15_t)0x5988, (q15_t)0xa487, (q15_t)0x5976, (q15_t)0xa475, - (q15_t)0x5964, (q15_t)0xa463, (q15_t)0x5952, (q15_t)0xa452, (q15_t)0x5940, (q15_t)0xa440, (q15_t)0x592e, (q15_t)0xa42f, - (q15_t)0x591c, (q15_t)0xa41d, (q15_t)0x590a, (q15_t)0xa40c, (q15_t)0x58f8, (q15_t)0xa3fa, (q15_t)0x58e6, (q15_t)0xa3e9, - (q15_t)0x58d4, (q15_t)0xa3d7, (q15_t)0x58c1, (q15_t)0xa3c6, (q15_t)0x58af, (q15_t)0xa3b5, (q15_t)0x589d, (q15_t)0xa3a3, - (q15_t)0x588b, (q15_t)0xa392, (q15_t)0x5879, (q15_t)0xa380, (q15_t)0x5867, (q15_t)0xa36f, (q15_t)0x5855, (q15_t)0xa35e, - (q15_t)0x5842, (q15_t)0xa34c, (q15_t)0x5830, (q15_t)0xa33b, (q15_t)0x581e, (q15_t)0xa32a, (q15_t)0x580c, (q15_t)0xa318, - (q15_t)0x57f9, (q15_t)0xa307, (q15_t)0x57e7, (q15_t)0xa2f6, (q15_t)0x57d5, (q15_t)0xa2e5, (q15_t)0x57c3, (q15_t)0xa2d3, - (q15_t)0x57b0, (q15_t)0xa2c2, (q15_t)0x579e, (q15_t)0xa2b1, (q15_t)0x578c, (q15_t)0xa2a0, (q15_t)0x5779, (q15_t)0xa28f, - (q15_t)0x5767, (q15_t)0xa27d, (q15_t)0x5755, (q15_t)0xa26c, (q15_t)0x5742, (q15_t)0xa25b, (q15_t)0x5730, (q15_t)0xa24a, - (q15_t)0x571d, (q15_t)0xa239, (q15_t)0x570b, (q15_t)0xa228, (q15_t)0x56f9, (q15_t)0xa217, (q15_t)0x56e6, (q15_t)0xa206, - (q15_t)0x56d4, (q15_t)0xa1f5, (q15_t)0x56c1, (q15_t)0xa1e4, (q15_t)0x56af, (q15_t)0xa1d3, (q15_t)0x569c, (q15_t)0xa1c1, - (q15_t)0x568a, (q15_t)0xa1b0, (q15_t)0x5677, (q15_t)0xa1a0, (q15_t)0x5665, (q15_t)0xa18f, (q15_t)0x5652, (q15_t)0xa17e, - (q15_t)0x5640, (q15_t)0xa16d, (q15_t)0x562d, (q15_t)0xa15c, (q15_t)0x561a, (q15_t)0xa14b, (q15_t)0x5608, (q15_t)0xa13a, - (q15_t)0x55f5, (q15_t)0xa129, (q15_t)0x55e3, (q15_t)0xa118, (q15_t)0x55d0, (q15_t)0xa107, (q15_t)0x55bd, (q15_t)0xa0f6, - (q15_t)0x55ab, (q15_t)0xa0e6, (q15_t)0x5598, (q15_t)0xa0d5, (q15_t)0x5585, (q15_t)0xa0c4, (q15_t)0x5572, (q15_t)0xa0b3, - (q15_t)0x5560, (q15_t)0xa0a2, (q15_t)0x554d, (q15_t)0xa092, (q15_t)0x553a, (q15_t)0xa081, (q15_t)0x5528, (q15_t)0xa070, - (q15_t)0x5515, (q15_t)0xa060, (q15_t)0x5502, (q15_t)0xa04f, (q15_t)0x54ef, (q15_t)0xa03e, (q15_t)0x54dc, (q15_t)0xa02d, - (q15_t)0x54ca, (q15_t)0xa01d, (q15_t)0x54b7, (q15_t)0xa00c, (q15_t)0x54a4, (q15_t)0x9ffc, (q15_t)0x5491, (q15_t)0x9feb, - (q15_t)0x547e, (q15_t)0x9fda, (q15_t)0x546b, (q15_t)0x9fca, (q15_t)0x5458, (q15_t)0x9fb9, (q15_t)0x5445, (q15_t)0x9fa9, - (q15_t)0x5433, (q15_t)0x9f98, (q15_t)0x5420, (q15_t)0x9f88, (q15_t)0x540d, (q15_t)0x9f77, (q15_t)0x53fa, (q15_t)0x9f67, - (q15_t)0x53e7, (q15_t)0x9f56, (q15_t)0x53d4, (q15_t)0x9f46, (q15_t)0x53c1, (q15_t)0x9f35, (q15_t)0x53ae, (q15_t)0x9f25, - (q15_t)0x539b, (q15_t)0x9f14, (q15_t)0x5388, (q15_t)0x9f04, (q15_t)0x5375, (q15_t)0x9ef3, (q15_t)0x5362, (q15_t)0x9ee3, - (q15_t)0x534e, (q15_t)0x9ed3, (q15_t)0x533b, (q15_t)0x9ec2, (q15_t)0x5328, (q15_t)0x9eb2, (q15_t)0x5315, (q15_t)0x9ea2, - (q15_t)0x5302, (q15_t)0x9e91, (q15_t)0x52ef, (q15_t)0x9e81, (q15_t)0x52dc, (q15_t)0x9e71, (q15_t)0x52c9, (q15_t)0x9e61, - (q15_t)0x52b5, (q15_t)0x9e50, (q15_t)0x52a2, (q15_t)0x9e40, (q15_t)0x528f, (q15_t)0x9e30, (q15_t)0x527c, (q15_t)0x9e20, - (q15_t)0x5269, (q15_t)0x9e0f, (q15_t)0x5255, (q15_t)0x9dff, (q15_t)0x5242, (q15_t)0x9def, (q15_t)0x522f, (q15_t)0x9ddf, - (q15_t)0x521c, (q15_t)0x9dcf, (q15_t)0x5208, (q15_t)0x9dbf, (q15_t)0x51f5, (q15_t)0x9daf, (q15_t)0x51e2, (q15_t)0x9d9f, - (q15_t)0x51ce, (q15_t)0x9d8f, (q15_t)0x51bb, (q15_t)0x9d7e, (q15_t)0x51a8, (q15_t)0x9d6e, (q15_t)0x5194, (q15_t)0x9d5e, - (q15_t)0x5181, (q15_t)0x9d4e, (q15_t)0x516e, (q15_t)0x9d3e, (q15_t)0x515a, (q15_t)0x9d2e, (q15_t)0x5147, (q15_t)0x9d1e, - (q15_t)0x5133, (q15_t)0x9d0e, (q15_t)0x5120, (q15_t)0x9cff, (q15_t)0x510c, (q15_t)0x9cef, (q15_t)0x50f9, (q15_t)0x9cdf, - (q15_t)0x50e5, (q15_t)0x9ccf, (q15_t)0x50d2, (q15_t)0x9cbf, (q15_t)0x50bf, (q15_t)0x9caf, (q15_t)0x50ab, (q15_t)0x9c9f, - (q15_t)0x5097, (q15_t)0x9c8f, (q15_t)0x5084, (q15_t)0x9c80, (q15_t)0x5070, (q15_t)0x9c70, (q15_t)0x505d, (q15_t)0x9c60, - (q15_t)0x5049, (q15_t)0x9c50, (q15_t)0x5036, (q15_t)0x9c40, (q15_t)0x5022, (q15_t)0x9c31, (q15_t)0x500f, (q15_t)0x9c21, - (q15_t)0x4ffb, (q15_t)0x9c11, (q15_t)0x4fe7, (q15_t)0x9c02, (q15_t)0x4fd4, (q15_t)0x9bf2, (q15_t)0x4fc0, (q15_t)0x9be2, - (q15_t)0x4fac, (q15_t)0x9bd3, (q15_t)0x4f99, (q15_t)0x9bc3, (q15_t)0x4f85, (q15_t)0x9bb3, (q15_t)0x4f71, (q15_t)0x9ba4, - (q15_t)0x4f5e, (q15_t)0x9b94, (q15_t)0x4f4a, (q15_t)0x9b85, (q15_t)0x4f36, (q15_t)0x9b75, (q15_t)0x4f22, (q15_t)0x9b65, - (q15_t)0x4f0f, (q15_t)0x9b56, (q15_t)0x4efb, (q15_t)0x9b46, (q15_t)0x4ee7, (q15_t)0x9b37, (q15_t)0x4ed3, (q15_t)0x9b27, - (q15_t)0x4ebf, (q15_t)0x9b18, (q15_t)0x4eac, (q15_t)0x9b09, (q15_t)0x4e98, (q15_t)0x9af9, (q15_t)0x4e84, (q15_t)0x9aea, - (q15_t)0x4e70, (q15_t)0x9ada, (q15_t)0x4e5c, (q15_t)0x9acb, (q15_t)0x4e48, (q15_t)0x9abb, (q15_t)0x4e34, (q15_t)0x9aac, - (q15_t)0x4e21, (q15_t)0x9a9d, (q15_t)0x4e0d, (q15_t)0x9a8d, (q15_t)0x4df9, (q15_t)0x9a7e, (q15_t)0x4de5, (q15_t)0x9a6f, - (q15_t)0x4dd1, (q15_t)0x9a60, (q15_t)0x4dbd, (q15_t)0x9a50, (q15_t)0x4da9, (q15_t)0x9a41, (q15_t)0x4d95, (q15_t)0x9a32, - (q15_t)0x4d81, (q15_t)0x9a23, (q15_t)0x4d6d, (q15_t)0x9a13, (q15_t)0x4d59, (q15_t)0x9a04, (q15_t)0x4d45, (q15_t)0x99f5, - (q15_t)0x4d31, (q15_t)0x99e6, (q15_t)0x4d1d, (q15_t)0x99d7, (q15_t)0x4d09, (q15_t)0x99c7, (q15_t)0x4cf5, (q15_t)0x99b8, - (q15_t)0x4ce1, (q15_t)0x99a9, (q15_t)0x4ccc, (q15_t)0x999a, (q15_t)0x4cb8, (q15_t)0x998b, (q15_t)0x4ca4, (q15_t)0x997c, - (q15_t)0x4c90, (q15_t)0x996d, (q15_t)0x4c7c, (q15_t)0x995e, (q15_t)0x4c68, (q15_t)0x994f, (q15_t)0x4c54, (q15_t)0x9940, - (q15_t)0x4c3f, (q15_t)0x9931, (q15_t)0x4c2b, (q15_t)0x9922, (q15_t)0x4c17, (q15_t)0x9913, (q15_t)0x4c03, (q15_t)0x9904, - (q15_t)0x4bef, (q15_t)0x98f5, (q15_t)0x4bda, (q15_t)0x98e6, (q15_t)0x4bc6, (q15_t)0x98d7, (q15_t)0x4bb2, (q15_t)0x98c9, - (q15_t)0x4b9e, (q15_t)0x98ba, (q15_t)0x4b89, (q15_t)0x98ab, (q15_t)0x4b75, (q15_t)0x989c, (q15_t)0x4b61, (q15_t)0x988d, - (q15_t)0x4b4c, (q15_t)0x987e, (q15_t)0x4b38, (q15_t)0x9870, (q15_t)0x4b24, (q15_t)0x9861, (q15_t)0x4b0f, (q15_t)0x9852, - (q15_t)0x4afb, (q15_t)0x9843, (q15_t)0x4ae7, (q15_t)0x9835, (q15_t)0x4ad2, (q15_t)0x9826, (q15_t)0x4abe, (q15_t)0x9817, - (q15_t)0x4aa9, (q15_t)0x9809, (q15_t)0x4a95, (q15_t)0x97fa, (q15_t)0x4a81, (q15_t)0x97eb, (q15_t)0x4a6c, (q15_t)0x97dd, - (q15_t)0x4a58, (q15_t)0x97ce, (q15_t)0x4a43, (q15_t)0x97c0, (q15_t)0x4a2f, (q15_t)0x97b1, (q15_t)0x4a1a, (q15_t)0x97a2, - (q15_t)0x4a06, (q15_t)0x9794, (q15_t)0x49f1, (q15_t)0x9785, (q15_t)0x49dd, (q15_t)0x9777, (q15_t)0x49c8, (q15_t)0x9768, - (q15_t)0x49b4, (q15_t)0x975a, (q15_t)0x499f, (q15_t)0x974b, (q15_t)0x498a, (q15_t)0x973d, (q15_t)0x4976, (q15_t)0x972f, - (q15_t)0x4961, (q15_t)0x9720, (q15_t)0x494d, (q15_t)0x9712, (q15_t)0x4938, (q15_t)0x9703, (q15_t)0x4923, (q15_t)0x96f5, - (q15_t)0x490f, (q15_t)0x96e7, (q15_t)0x48fa, (q15_t)0x96d8, (q15_t)0x48e6, (q15_t)0x96ca, (q15_t)0x48d1, (q15_t)0x96bc, - (q15_t)0x48bc, (q15_t)0x96ad, (q15_t)0x48a8, (q15_t)0x969f, (q15_t)0x4893, (q15_t)0x9691, (q15_t)0x487e, (q15_t)0x9683, - (q15_t)0x4869, (q15_t)0x9674, (q15_t)0x4855, (q15_t)0x9666, (q15_t)0x4840, (q15_t)0x9658, (q15_t)0x482b, (q15_t)0x964a, - (q15_t)0x4816, (q15_t)0x963c, (q15_t)0x4802, (q15_t)0x962d, (q15_t)0x47ed, (q15_t)0x961f, (q15_t)0x47d8, (q15_t)0x9611, - (q15_t)0x47c3, (q15_t)0x9603, (q15_t)0x47ae, (q15_t)0x95f5, (q15_t)0x479a, (q15_t)0x95e7, (q15_t)0x4785, (q15_t)0x95d9, - (q15_t)0x4770, (q15_t)0x95cb, (q15_t)0x475b, (q15_t)0x95bd, (q15_t)0x4746, (q15_t)0x95af, (q15_t)0x4731, (q15_t)0x95a1, - (q15_t)0x471c, (q15_t)0x9593, (q15_t)0x4708, (q15_t)0x9585, (q15_t)0x46f3, (q15_t)0x9577, (q15_t)0x46de, (q15_t)0x9569, - (q15_t)0x46c9, (q15_t)0x955b, (q15_t)0x46b4, (q15_t)0x954d, (q15_t)0x469f, (q15_t)0x953f, (q15_t)0x468a, (q15_t)0x9532, - (q15_t)0x4675, (q15_t)0x9524, (q15_t)0x4660, (q15_t)0x9516, (q15_t)0x464b, (q15_t)0x9508, (q15_t)0x4636, (q15_t)0x94fa, - (q15_t)0x4621, (q15_t)0x94ed, (q15_t)0x460c, (q15_t)0x94df, (q15_t)0x45f7, (q15_t)0x94d1, (q15_t)0x45e2, (q15_t)0x94c3, - (q15_t)0x45cd, (q15_t)0x94b6, (q15_t)0x45b8, (q15_t)0x94a8, (q15_t)0x45a3, (q15_t)0x949a, (q15_t)0x458d, (q15_t)0x948d, - (q15_t)0x4578, (q15_t)0x947f, (q15_t)0x4563, (q15_t)0x9471, (q15_t)0x454e, (q15_t)0x9464, (q15_t)0x4539, (q15_t)0x9456, - (q15_t)0x4524, (q15_t)0x9448, (q15_t)0x450f, (q15_t)0x943b, (q15_t)0x44fa, (q15_t)0x942d, (q15_t)0x44e4, (q15_t)0x9420, - (q15_t)0x44cf, (q15_t)0x9412, (q15_t)0x44ba, (q15_t)0x9405, (q15_t)0x44a5, (q15_t)0x93f7, (q15_t)0x4490, (q15_t)0x93ea, - (q15_t)0x447a, (q15_t)0x93dc, (q15_t)0x4465, (q15_t)0x93cf, (q15_t)0x4450, (q15_t)0x93c1, (q15_t)0x443b, (q15_t)0x93b4, - (q15_t)0x4425, (q15_t)0x93a7, (q15_t)0x4410, (q15_t)0x9399, (q15_t)0x43fb, (q15_t)0x938c, (q15_t)0x43e5, (q15_t)0x937f, - (q15_t)0x43d0, (q15_t)0x9371, (q15_t)0x43bb, (q15_t)0x9364, (q15_t)0x43a5, (q15_t)0x9357, (q15_t)0x4390, (q15_t)0x9349, - (q15_t)0x437b, (q15_t)0x933c, (q15_t)0x4365, (q15_t)0x932f, (q15_t)0x4350, (q15_t)0x9322, (q15_t)0x433b, (q15_t)0x9314, - (q15_t)0x4325, (q15_t)0x9307, (q15_t)0x4310, (q15_t)0x92fa, (q15_t)0x42fa, (q15_t)0x92ed, (q15_t)0x42e5, (q15_t)0x92e0, - (q15_t)0x42d0, (q15_t)0x92d3, (q15_t)0x42ba, (q15_t)0x92c6, (q15_t)0x42a5, (q15_t)0x92b8, (q15_t)0x428f, (q15_t)0x92ab, - (q15_t)0x427a, (q15_t)0x929e, (q15_t)0x4264, (q15_t)0x9291, (q15_t)0x424f, (q15_t)0x9284, (q15_t)0x4239, (q15_t)0x9277, - (q15_t)0x4224, (q15_t)0x926a, (q15_t)0x420e, (q15_t)0x925d, (q15_t)0x41f9, (q15_t)0x9250, (q15_t)0x41e3, (q15_t)0x9243, - (q15_t)0x41ce, (q15_t)0x9236, (q15_t)0x41b8, (q15_t)0x922a, (q15_t)0x41a2, (q15_t)0x921d, (q15_t)0x418d, (q15_t)0x9210, - (q15_t)0x4177, (q15_t)0x9203, (q15_t)0x4162, (q15_t)0x91f6, (q15_t)0x414c, (q15_t)0x91e9, (q15_t)0x4136, (q15_t)0x91dc, - (q15_t)0x4121, (q15_t)0x91d0, (q15_t)0x410b, (q15_t)0x91c3, (q15_t)0x40f6, (q15_t)0x91b6, (q15_t)0x40e0, (q15_t)0x91a9, - (q15_t)0x40ca, (q15_t)0x919d, (q15_t)0x40b5, (q15_t)0x9190, (q15_t)0x409f, (q15_t)0x9183, (q15_t)0x4089, (q15_t)0x9177, - (q15_t)0x4073, (q15_t)0x916a, (q15_t)0x405e, (q15_t)0x915d, (q15_t)0x4048, (q15_t)0x9151, (q15_t)0x4032, (q15_t)0x9144, - (q15_t)0x401d, (q15_t)0x9137, (q15_t)0x4007, (q15_t)0x912b, (q15_t)0x3ff1, (q15_t)0x911e, (q15_t)0x3fdb, (q15_t)0x9112, - (q15_t)0x3fc5, (q15_t)0x9105, (q15_t)0x3fb0, (q15_t)0x90f9, (q15_t)0x3f9a, (q15_t)0x90ec, (q15_t)0x3f84, (q15_t)0x90e0, - (q15_t)0x3f6e, (q15_t)0x90d3, (q15_t)0x3f58, (q15_t)0x90c7, (q15_t)0x3f43, (q15_t)0x90ba, (q15_t)0x3f2d, (q15_t)0x90ae, - (q15_t)0x3f17, (q15_t)0x90a1, (q15_t)0x3f01, (q15_t)0x9095, (q15_t)0x3eeb, (q15_t)0x9089, (q15_t)0x3ed5, (q15_t)0x907c, - (q15_t)0x3ebf, (q15_t)0x9070, (q15_t)0x3ea9, (q15_t)0x9064, (q15_t)0x3e93, (q15_t)0x9057, (q15_t)0x3e7d, (q15_t)0x904b, - (q15_t)0x3e68, (q15_t)0x903f, (q15_t)0x3e52, (q15_t)0x9033, (q15_t)0x3e3c, (q15_t)0x9026, (q15_t)0x3e26, (q15_t)0x901a, - (q15_t)0x3e10, (q15_t)0x900e, (q15_t)0x3dfa, (q15_t)0x9002, (q15_t)0x3de4, (q15_t)0x8ff6, (q15_t)0x3dce, (q15_t)0x8fea, - (q15_t)0x3db8, (q15_t)0x8fdd, (q15_t)0x3da2, (q15_t)0x8fd1, (q15_t)0x3d8c, (q15_t)0x8fc5, (q15_t)0x3d76, (q15_t)0x8fb9, - (q15_t)0x3d60, (q15_t)0x8fad, (q15_t)0x3d49, (q15_t)0x8fa1, (q15_t)0x3d33, (q15_t)0x8f95, (q15_t)0x3d1d, (q15_t)0x8f89, - (q15_t)0x3d07, (q15_t)0x8f7d, (q15_t)0x3cf1, (q15_t)0x8f71, (q15_t)0x3cdb, (q15_t)0x8f65, (q15_t)0x3cc5, (q15_t)0x8f59, - (q15_t)0x3caf, (q15_t)0x8f4d, (q15_t)0x3c99, (q15_t)0x8f41, (q15_t)0x3c83, (q15_t)0x8f35, (q15_t)0x3c6c, (q15_t)0x8f2a, - (q15_t)0x3c56, (q15_t)0x8f1e, (q15_t)0x3c40, (q15_t)0x8f12, (q15_t)0x3c2a, (q15_t)0x8f06, (q15_t)0x3c14, (q15_t)0x8efa, - (q15_t)0x3bfd, (q15_t)0x8eee, (q15_t)0x3be7, (q15_t)0x8ee3, (q15_t)0x3bd1, (q15_t)0x8ed7, (q15_t)0x3bbb, (q15_t)0x8ecb, - (q15_t)0x3ba5, (q15_t)0x8ebf, (q15_t)0x3b8e, (q15_t)0x8eb4, (q15_t)0x3b78, (q15_t)0x8ea8, (q15_t)0x3b62, (q15_t)0x8e9c, - (q15_t)0x3b4c, (q15_t)0x8e91, (q15_t)0x3b35, (q15_t)0x8e85, (q15_t)0x3b1f, (q15_t)0x8e7a, (q15_t)0x3b09, (q15_t)0x8e6e, - (q15_t)0x3af2, (q15_t)0x8e62, (q15_t)0x3adc, (q15_t)0x8e57, (q15_t)0x3ac6, (q15_t)0x8e4b, (q15_t)0x3aaf, (q15_t)0x8e40, - (q15_t)0x3a99, (q15_t)0x8e34, (q15_t)0x3a83, (q15_t)0x8e29, (q15_t)0x3a6c, (q15_t)0x8e1d, (q15_t)0x3a56, (q15_t)0x8e12, - (q15_t)0x3a40, (q15_t)0x8e06, (q15_t)0x3a29, (q15_t)0x8dfb, (q15_t)0x3a13, (q15_t)0x8def, (q15_t)0x39fd, (q15_t)0x8de4, - (q15_t)0x39e6, (q15_t)0x8dd9, (q15_t)0x39d0, (q15_t)0x8dcd, (q15_t)0x39b9, (q15_t)0x8dc2, (q15_t)0x39a3, (q15_t)0x8db7, - (q15_t)0x398c, (q15_t)0x8dab, (q15_t)0x3976, (q15_t)0x8da0, (q15_t)0x395f, (q15_t)0x8d95, (q15_t)0x3949, (q15_t)0x8d8a, - (q15_t)0x3932, (q15_t)0x8d7e, (q15_t)0x391c, (q15_t)0x8d73, (q15_t)0x3906, (q15_t)0x8d68, (q15_t)0x38ef, (q15_t)0x8d5d, - (q15_t)0x38d8, (q15_t)0x8d51, (q15_t)0x38c2, (q15_t)0x8d46, (q15_t)0x38ab, (q15_t)0x8d3b, (q15_t)0x3895, (q15_t)0x8d30, - (q15_t)0x387e, (q15_t)0x8d25, (q15_t)0x3868, (q15_t)0x8d1a, (q15_t)0x3851, (q15_t)0x8d0f, (q15_t)0x383b, (q15_t)0x8d04, - (q15_t)0x3824, (q15_t)0x8cf9, (q15_t)0x380d, (q15_t)0x8cee, (q15_t)0x37f7, (q15_t)0x8ce3, (q15_t)0x37e0, (q15_t)0x8cd8, - (q15_t)0x37ca, (q15_t)0x8ccd, (q15_t)0x37b3, (q15_t)0x8cc2, (q15_t)0x379c, (q15_t)0x8cb7, (q15_t)0x3786, (q15_t)0x8cac, - (q15_t)0x376f, (q15_t)0x8ca1, (q15_t)0x3758, (q15_t)0x8c96, (q15_t)0x3742, (q15_t)0x8c8b, (q15_t)0x372b, (q15_t)0x8c81, - (q15_t)0x3714, (q15_t)0x8c76, (q15_t)0x36fe, (q15_t)0x8c6b, (q15_t)0x36e7, (q15_t)0x8c60, (q15_t)0x36d0, (q15_t)0x8c55, - (q15_t)0x36ba, (q15_t)0x8c4b, (q15_t)0x36a3, (q15_t)0x8c40, (q15_t)0x368c, (q15_t)0x8c35, (q15_t)0x3675, (q15_t)0x8c2a, - (q15_t)0x365f, (q15_t)0x8c20, (q15_t)0x3648, (q15_t)0x8c15, (q15_t)0x3631, (q15_t)0x8c0a, (q15_t)0x361a, (q15_t)0x8c00, - (q15_t)0x3604, (q15_t)0x8bf5, (q15_t)0x35ed, (q15_t)0x8beb, (q15_t)0x35d6, (q15_t)0x8be0, (q15_t)0x35bf, (q15_t)0x8bd5, - (q15_t)0x35a8, (q15_t)0x8bcb, (q15_t)0x3592, (q15_t)0x8bc0, (q15_t)0x357b, (q15_t)0x8bb6, (q15_t)0x3564, (q15_t)0x8bab, - (q15_t)0x354d, (q15_t)0x8ba1, (q15_t)0x3536, (q15_t)0x8b96, (q15_t)0x351f, (q15_t)0x8b8c, (q15_t)0x3508, (q15_t)0x8b82, - (q15_t)0x34f2, (q15_t)0x8b77, (q15_t)0x34db, (q15_t)0x8b6d, (q15_t)0x34c4, (q15_t)0x8b62, (q15_t)0x34ad, (q15_t)0x8b58, - (q15_t)0x3496, (q15_t)0x8b4e, (q15_t)0x347f, (q15_t)0x8b43, (q15_t)0x3468, (q15_t)0x8b39, (q15_t)0x3451, (q15_t)0x8b2f, - (q15_t)0x343a, (q15_t)0x8b25, (q15_t)0x3423, (q15_t)0x8b1a, (q15_t)0x340c, (q15_t)0x8b10, (q15_t)0x33f5, (q15_t)0x8b06, - (q15_t)0x33de, (q15_t)0x8afc, (q15_t)0x33c7, (q15_t)0x8af1, (q15_t)0x33b0, (q15_t)0x8ae7, (q15_t)0x3399, (q15_t)0x8add, - (q15_t)0x3382, (q15_t)0x8ad3, (q15_t)0x336b, (q15_t)0x8ac9, (q15_t)0x3354, (q15_t)0x8abf, (q15_t)0x333d, (q15_t)0x8ab5, - (q15_t)0x3326, (q15_t)0x8aab, (q15_t)0x330f, (q15_t)0x8aa1, (q15_t)0x32f8, (q15_t)0x8a97, (q15_t)0x32e1, (q15_t)0x8a8d, - (q15_t)0x32ca, (q15_t)0x8a83, (q15_t)0x32b3, (q15_t)0x8a79, (q15_t)0x329c, (q15_t)0x8a6f, (q15_t)0x3285, (q15_t)0x8a65, - (q15_t)0x326e, (q15_t)0x8a5b, (q15_t)0x3257, (q15_t)0x8a51, (q15_t)0x3240, (q15_t)0x8a47, (q15_t)0x3228, (q15_t)0x8a3d, - (q15_t)0x3211, (q15_t)0x8a34, (q15_t)0x31fa, (q15_t)0x8a2a, (q15_t)0x31e3, (q15_t)0x8a20, (q15_t)0x31cc, (q15_t)0x8a16, - (q15_t)0x31b5, (q15_t)0x8a0c, (q15_t)0x319e, (q15_t)0x8a03, (q15_t)0x3186, (q15_t)0x89f9, (q15_t)0x316f, (q15_t)0x89ef, - (q15_t)0x3158, (q15_t)0x89e5, (q15_t)0x3141, (q15_t)0x89dc, (q15_t)0x312a, (q15_t)0x89d2, (q15_t)0x3112, (q15_t)0x89c8, - (q15_t)0x30fb, (q15_t)0x89bf, (q15_t)0x30e4, (q15_t)0x89b5, (q15_t)0x30cd, (q15_t)0x89ac, (q15_t)0x30b6, (q15_t)0x89a2, - (q15_t)0x309e, (q15_t)0x8998, (q15_t)0x3087, (q15_t)0x898f, (q15_t)0x3070, (q15_t)0x8985, (q15_t)0x3059, (q15_t)0x897c, - (q15_t)0x3041, (q15_t)0x8972, (q15_t)0x302a, (q15_t)0x8969, (q15_t)0x3013, (q15_t)0x8960, (q15_t)0x2ffb, (q15_t)0x8956, - (q15_t)0x2fe4, (q15_t)0x894d, (q15_t)0x2fcd, (q15_t)0x8943, (q15_t)0x2fb5, (q15_t)0x893a, (q15_t)0x2f9e, (q15_t)0x8931, - (q15_t)0x2f87, (q15_t)0x8927, (q15_t)0x2f6f, (q15_t)0x891e, (q15_t)0x2f58, (q15_t)0x8915, (q15_t)0x2f41, (q15_t)0x890b, - (q15_t)0x2f29, (q15_t)0x8902, (q15_t)0x2f12, (q15_t)0x88f9, (q15_t)0x2efb, (q15_t)0x88f0, (q15_t)0x2ee3, (q15_t)0x88e6, - (q15_t)0x2ecc, (q15_t)0x88dd, (q15_t)0x2eb5, (q15_t)0x88d4, (q15_t)0x2e9d, (q15_t)0x88cb, (q15_t)0x2e86, (q15_t)0x88c2, - (q15_t)0x2e6e, (q15_t)0x88b9, (q15_t)0x2e57, (q15_t)0x88af, (q15_t)0x2e3f, (q15_t)0x88a6, (q15_t)0x2e28, (q15_t)0x889d, - (q15_t)0x2e11, (q15_t)0x8894, (q15_t)0x2df9, (q15_t)0x888b, (q15_t)0x2de2, (q15_t)0x8882, (q15_t)0x2dca, (q15_t)0x8879, - (q15_t)0x2db3, (q15_t)0x8870, (q15_t)0x2d9b, (q15_t)0x8867, (q15_t)0x2d84, (q15_t)0x885e, (q15_t)0x2d6c, (q15_t)0x8855, - (q15_t)0x2d55, (q15_t)0x884c, (q15_t)0x2d3d, (q15_t)0x8844, (q15_t)0x2d26, (q15_t)0x883b, (q15_t)0x2d0e, (q15_t)0x8832, - (q15_t)0x2cf7, (q15_t)0x8829, (q15_t)0x2cdf, (q15_t)0x8820, (q15_t)0x2cc8, (q15_t)0x8817, (q15_t)0x2cb0, (q15_t)0x880f, - (q15_t)0x2c98, (q15_t)0x8806, (q15_t)0x2c81, (q15_t)0x87fd, (q15_t)0x2c69, (q15_t)0x87f4, (q15_t)0x2c52, (q15_t)0x87ec, - (q15_t)0x2c3a, (q15_t)0x87e3, (q15_t)0x2c23, (q15_t)0x87da, (q15_t)0x2c0b, (q15_t)0x87d2, (q15_t)0x2bf3, (q15_t)0x87c9, - (q15_t)0x2bdc, (q15_t)0x87c0, (q15_t)0x2bc4, (q15_t)0x87b8, (q15_t)0x2bad, (q15_t)0x87af, (q15_t)0x2b95, (q15_t)0x87a7, - (q15_t)0x2b7d, (q15_t)0x879e, (q15_t)0x2b66, (q15_t)0x8795, (q15_t)0x2b4e, (q15_t)0x878d, (q15_t)0x2b36, (q15_t)0x8784, - (q15_t)0x2b1f, (q15_t)0x877c, (q15_t)0x2b07, (q15_t)0x8774, (q15_t)0x2aef, (q15_t)0x876b, (q15_t)0x2ad8, (q15_t)0x8763, - (q15_t)0x2ac0, (q15_t)0x875a, (q15_t)0x2aa8, (q15_t)0x8752, (q15_t)0x2a91, (q15_t)0x874a, (q15_t)0x2a79, (q15_t)0x8741, - (q15_t)0x2a61, (q15_t)0x8739, (q15_t)0x2a49, (q15_t)0x8731, (q15_t)0x2a32, (q15_t)0x8728, (q15_t)0x2a1a, (q15_t)0x8720, - (q15_t)0x2a02, (q15_t)0x8718, (q15_t)0x29eb, (q15_t)0x870f, (q15_t)0x29d3, (q15_t)0x8707, (q15_t)0x29bb, (q15_t)0x86ff, - (q15_t)0x29a3, (q15_t)0x86f7, (q15_t)0x298b, (q15_t)0x86ef, (q15_t)0x2974, (q15_t)0x86e7, (q15_t)0x295c, (q15_t)0x86de, - (q15_t)0x2944, (q15_t)0x86d6, (q15_t)0x292c, (q15_t)0x86ce, (q15_t)0x2915, (q15_t)0x86c6, (q15_t)0x28fd, (q15_t)0x86be, - (q15_t)0x28e5, (q15_t)0x86b6, (q15_t)0x28cd, (q15_t)0x86ae, (q15_t)0x28b5, (q15_t)0x86a6, (q15_t)0x289d, (q15_t)0x869e, - (q15_t)0x2886, (q15_t)0x8696, (q15_t)0x286e, (q15_t)0x868e, (q15_t)0x2856, (q15_t)0x8686, (q15_t)0x283e, (q15_t)0x867e, - (q15_t)0x2826, (q15_t)0x8676, (q15_t)0x280e, (q15_t)0x866e, (q15_t)0x27f6, (q15_t)0x8667, (q15_t)0x27df, (q15_t)0x865f, - (q15_t)0x27c7, (q15_t)0x8657, (q15_t)0x27af, (q15_t)0x864f, (q15_t)0x2797, (q15_t)0x8647, (q15_t)0x277f, (q15_t)0x8640, - (q15_t)0x2767, (q15_t)0x8638, (q15_t)0x274f, (q15_t)0x8630, (q15_t)0x2737, (q15_t)0x8628, (q15_t)0x271f, (q15_t)0x8621, - (q15_t)0x2707, (q15_t)0x8619, (q15_t)0x26ef, (q15_t)0x8611, (q15_t)0x26d8, (q15_t)0x860a, (q15_t)0x26c0, (q15_t)0x8602, - (q15_t)0x26a8, (q15_t)0x85fb, (q15_t)0x2690, (q15_t)0x85f3, (q15_t)0x2678, (q15_t)0x85eb, (q15_t)0x2660, (q15_t)0x85e4, - (q15_t)0x2648, (q15_t)0x85dc, (q15_t)0x2630, (q15_t)0x85d5, (q15_t)0x2618, (q15_t)0x85cd, (q15_t)0x2600, (q15_t)0x85c6, - (q15_t)0x25e8, (q15_t)0x85be, (q15_t)0x25d0, (q15_t)0x85b7, (q15_t)0x25b8, (q15_t)0x85b0, (q15_t)0x25a0, (q15_t)0x85a8, - (q15_t)0x2588, (q15_t)0x85a1, (q15_t)0x2570, (q15_t)0x8599, (q15_t)0x2558, (q15_t)0x8592, (q15_t)0x2540, (q15_t)0x858b, - (q15_t)0x2528, (q15_t)0x8583, (q15_t)0x250f, (q15_t)0x857c, (q15_t)0x24f7, (q15_t)0x8575, (q15_t)0x24df, (q15_t)0x856e, - (q15_t)0x24c7, (q15_t)0x8566, (q15_t)0x24af, (q15_t)0x855f, (q15_t)0x2497, (q15_t)0x8558, (q15_t)0x247f, (q15_t)0x8551, - (q15_t)0x2467, (q15_t)0x854a, (q15_t)0x244f, (q15_t)0x8543, (q15_t)0x2437, (q15_t)0x853b, (q15_t)0x241f, (q15_t)0x8534, - (q15_t)0x2407, (q15_t)0x852d, (q15_t)0x23ee, (q15_t)0x8526, (q15_t)0x23d6, (q15_t)0x851f, (q15_t)0x23be, (q15_t)0x8518, - (q15_t)0x23a6, (q15_t)0x8511, (q15_t)0x238e, (q15_t)0x850a, (q15_t)0x2376, (q15_t)0x8503, (q15_t)0x235e, (q15_t)0x84fc, - (q15_t)0x2345, (q15_t)0x84f5, (q15_t)0x232d, (q15_t)0x84ee, (q15_t)0x2315, (q15_t)0x84e7, (q15_t)0x22fd, (q15_t)0x84e1, - (q15_t)0x22e5, (q15_t)0x84da, (q15_t)0x22cd, (q15_t)0x84d3, (q15_t)0x22b4, (q15_t)0x84cc, (q15_t)0x229c, (q15_t)0x84c5, - (q15_t)0x2284, (q15_t)0x84be, (q15_t)0x226c, (q15_t)0x84b8, (q15_t)0x2254, (q15_t)0x84b1, (q15_t)0x223b, (q15_t)0x84aa, - (q15_t)0x2223, (q15_t)0x84a3, (q15_t)0x220b, (q15_t)0x849d, (q15_t)0x21f3, (q15_t)0x8496, (q15_t)0x21da, (q15_t)0x848f, - (q15_t)0x21c2, (q15_t)0x8489, (q15_t)0x21aa, (q15_t)0x8482, (q15_t)0x2192, (q15_t)0x847c, (q15_t)0x2179, (q15_t)0x8475, - (q15_t)0x2161, (q15_t)0x846e, (q15_t)0x2149, (q15_t)0x8468, (q15_t)0x2131, (q15_t)0x8461, (q15_t)0x2118, (q15_t)0x845b, - (q15_t)0x2100, (q15_t)0x8454, (q15_t)0x20e8, (q15_t)0x844e, (q15_t)0x20d0, (q15_t)0x8447, (q15_t)0x20b7, (q15_t)0x8441, - (q15_t)0x209f, (q15_t)0x843b, (q15_t)0x2087, (q15_t)0x8434, (q15_t)0x206e, (q15_t)0x842e, (q15_t)0x2056, (q15_t)0x8427, - (q15_t)0x203e, (q15_t)0x8421, (q15_t)0x2025, (q15_t)0x841b, (q15_t)0x200d, (q15_t)0x8415, (q15_t)0x1ff5, (q15_t)0x840e, - (q15_t)0x1fdc, (q15_t)0x8408, (q15_t)0x1fc4, (q15_t)0x8402, (q15_t)0x1fac, (q15_t)0x83fb, (q15_t)0x1f93, (q15_t)0x83f5, - (q15_t)0x1f7b, (q15_t)0x83ef, (q15_t)0x1f63, (q15_t)0x83e9, (q15_t)0x1f4a, (q15_t)0x83e3, (q15_t)0x1f32, (q15_t)0x83dd, - (q15_t)0x1f19, (q15_t)0x83d7, (q15_t)0x1f01, (q15_t)0x83d0, (q15_t)0x1ee9, (q15_t)0x83ca, (q15_t)0x1ed0, (q15_t)0x83c4, - (q15_t)0x1eb8, (q15_t)0x83be, (q15_t)0x1ea0, (q15_t)0x83b8, (q15_t)0x1e87, (q15_t)0x83b2, (q15_t)0x1e6f, (q15_t)0x83ac, - (q15_t)0x1e56, (q15_t)0x83a6, (q15_t)0x1e3e, (q15_t)0x83a0, (q15_t)0x1e25, (q15_t)0x839a, (q15_t)0x1e0d, (q15_t)0x8394, - (q15_t)0x1df5, (q15_t)0x838f, (q15_t)0x1ddc, (q15_t)0x8389, (q15_t)0x1dc4, (q15_t)0x8383, (q15_t)0x1dab, (q15_t)0x837d, - (q15_t)0x1d93, (q15_t)0x8377, (q15_t)0x1d7a, (q15_t)0x8371, (q15_t)0x1d62, (q15_t)0x836c, (q15_t)0x1d49, (q15_t)0x8366, - (q15_t)0x1d31, (q15_t)0x8360, (q15_t)0x1d18, (q15_t)0x835a, (q15_t)0x1d00, (q15_t)0x8355, (q15_t)0x1ce8, (q15_t)0x834f, - (q15_t)0x1ccf, (q15_t)0x8349, (q15_t)0x1cb7, (q15_t)0x8344, (q15_t)0x1c9e, (q15_t)0x833e, (q15_t)0x1c86, (q15_t)0x8338, - (q15_t)0x1c6d, (q15_t)0x8333, (q15_t)0x1c55, (q15_t)0x832d, (q15_t)0x1c3c, (q15_t)0x8328, (q15_t)0x1c24, (q15_t)0x8322, - (q15_t)0x1c0b, (q15_t)0x831d, (q15_t)0x1bf2, (q15_t)0x8317, (q15_t)0x1bda, (q15_t)0x8312, (q15_t)0x1bc1, (q15_t)0x830c, - (q15_t)0x1ba9, (q15_t)0x8307, (q15_t)0x1b90, (q15_t)0x8301, (q15_t)0x1b78, (q15_t)0x82fc, (q15_t)0x1b5f, (q15_t)0x82f7, - (q15_t)0x1b47, (q15_t)0x82f1, (q15_t)0x1b2e, (q15_t)0x82ec, (q15_t)0x1b16, (q15_t)0x82e7, (q15_t)0x1afd, (q15_t)0x82e1, - (q15_t)0x1ae4, (q15_t)0x82dc, (q15_t)0x1acc, (q15_t)0x82d7, (q15_t)0x1ab3, (q15_t)0x82d1, (q15_t)0x1a9b, (q15_t)0x82cc, - (q15_t)0x1a82, (q15_t)0x82c7, (q15_t)0x1a6a, (q15_t)0x82c2, (q15_t)0x1a51, (q15_t)0x82bd, (q15_t)0x1a38, (q15_t)0x82b7, - (q15_t)0x1a20, (q15_t)0x82b2, (q15_t)0x1a07, (q15_t)0x82ad, (q15_t)0x19ef, (q15_t)0x82a8, (q15_t)0x19d6, (q15_t)0x82a3, - (q15_t)0x19bd, (q15_t)0x829e, (q15_t)0x19a5, (q15_t)0x8299, (q15_t)0x198c, (q15_t)0x8294, (q15_t)0x1973, (q15_t)0x828f, - (q15_t)0x195b, (q15_t)0x828a, (q15_t)0x1942, (q15_t)0x8285, (q15_t)0x192a, (q15_t)0x8280, (q15_t)0x1911, (q15_t)0x827b, - (q15_t)0x18f8, (q15_t)0x8276, (q15_t)0x18e0, (q15_t)0x8271, (q15_t)0x18c7, (q15_t)0x826c, (q15_t)0x18ae, (q15_t)0x8268, - (q15_t)0x1896, (q15_t)0x8263, (q15_t)0x187d, (q15_t)0x825e, (q15_t)0x1864, (q15_t)0x8259, (q15_t)0x184c, (q15_t)0x8254, - (q15_t)0x1833, (q15_t)0x8250, (q15_t)0x181a, (q15_t)0x824b, (q15_t)0x1802, (q15_t)0x8246, (q15_t)0x17e9, (q15_t)0x8241, - (q15_t)0x17d0, (q15_t)0x823d, (q15_t)0x17b7, (q15_t)0x8238, (q15_t)0x179f, (q15_t)0x8233, (q15_t)0x1786, (q15_t)0x822f, - (q15_t)0x176d, (q15_t)0x822a, (q15_t)0x1755, (q15_t)0x8226, (q15_t)0x173c, (q15_t)0x8221, (q15_t)0x1723, (q15_t)0x821c, - (q15_t)0x170a, (q15_t)0x8218, (q15_t)0x16f2, (q15_t)0x8213, (q15_t)0x16d9, (q15_t)0x820f, (q15_t)0x16c0, (q15_t)0x820a, - (q15_t)0x16a8, (q15_t)0x8206, (q15_t)0x168f, (q15_t)0x8201, (q15_t)0x1676, (q15_t)0x81fd, (q15_t)0x165d, (q15_t)0x81f9, - (q15_t)0x1645, (q15_t)0x81f4, (q15_t)0x162c, (q15_t)0x81f0, (q15_t)0x1613, (q15_t)0x81ec, (q15_t)0x15fa, (q15_t)0x81e7, - (q15_t)0x15e2, (q15_t)0x81e3, (q15_t)0x15c9, (q15_t)0x81df, (q15_t)0x15b0, (q15_t)0x81da, (q15_t)0x1597, (q15_t)0x81d6, - (q15_t)0x157f, (q15_t)0x81d2, (q15_t)0x1566, (q15_t)0x81ce, (q15_t)0x154d, (q15_t)0x81c9, (q15_t)0x1534, (q15_t)0x81c5, - (q15_t)0x151b, (q15_t)0x81c1, (q15_t)0x1503, (q15_t)0x81bd, (q15_t)0x14ea, (q15_t)0x81b9, (q15_t)0x14d1, (q15_t)0x81b5, - (q15_t)0x14b8, (q15_t)0x81b1, (q15_t)0x149f, (q15_t)0x81ad, (q15_t)0x1487, (q15_t)0x81a9, (q15_t)0x146e, (q15_t)0x81a5, - (q15_t)0x1455, (q15_t)0x81a1, (q15_t)0x143c, (q15_t)0x819d, (q15_t)0x1423, (q15_t)0x8199, (q15_t)0x140b, (q15_t)0x8195, - (q15_t)0x13f2, (q15_t)0x8191, (q15_t)0x13d9, (q15_t)0x818d, (q15_t)0x13c0, (q15_t)0x8189, (q15_t)0x13a7, (q15_t)0x8185, - (q15_t)0x138e, (q15_t)0x8181, (q15_t)0x1376, (q15_t)0x817d, (q15_t)0x135d, (q15_t)0x817a, (q15_t)0x1344, (q15_t)0x8176, - (q15_t)0x132b, (q15_t)0x8172, (q15_t)0x1312, (q15_t)0x816e, (q15_t)0x12f9, (q15_t)0x816b, (q15_t)0x12e0, (q15_t)0x8167, - (q15_t)0x12c8, (q15_t)0x8163, (q15_t)0x12af, (q15_t)0x815f, (q15_t)0x1296, (q15_t)0x815c, (q15_t)0x127d, (q15_t)0x8158, - (q15_t)0x1264, (q15_t)0x8155, (q15_t)0x124b, (q15_t)0x8151, (q15_t)0x1232, (q15_t)0x814d, (q15_t)0x1219, (q15_t)0x814a, - (q15_t)0x1201, (q15_t)0x8146, (q15_t)0x11e8, (q15_t)0x8143, (q15_t)0x11cf, (q15_t)0x813f, (q15_t)0x11b6, (q15_t)0x813c, - (q15_t)0x119d, (q15_t)0x8138, (q15_t)0x1184, (q15_t)0x8135, (q15_t)0x116b, (q15_t)0x8131, (q15_t)0x1152, (q15_t)0x812e, - (q15_t)0x1139, (q15_t)0x812b, (q15_t)0x1121, (q15_t)0x8127, (q15_t)0x1108, (q15_t)0x8124, (q15_t)0x10ef, (q15_t)0x8121, - (q15_t)0x10d6, (q15_t)0x811d, (q15_t)0x10bd, (q15_t)0x811a, (q15_t)0x10a4, (q15_t)0x8117, (q15_t)0x108b, (q15_t)0x8113, - (q15_t)0x1072, (q15_t)0x8110, (q15_t)0x1059, (q15_t)0x810d, (q15_t)0x1040, (q15_t)0x810a, (q15_t)0x1027, (q15_t)0x8107, - (q15_t)0x100e, (q15_t)0x8103, (q15_t)0xff5, (q15_t)0x8100, (q15_t)0xfdd, (q15_t)0x80fd, (q15_t)0xfc4, (q15_t)0x80fa, - (q15_t)0xfab, (q15_t)0x80f7, (q15_t)0xf92, (q15_t)0x80f4, (q15_t)0xf79, (q15_t)0x80f1, (q15_t)0xf60, (q15_t)0x80ee, - (q15_t)0xf47, (q15_t)0x80eb, (q15_t)0xf2e, (q15_t)0x80e8, (q15_t)0xf15, (q15_t)0x80e5, (q15_t)0xefc, (q15_t)0x80e2, - (q15_t)0xee3, (q15_t)0x80df, (q15_t)0xeca, (q15_t)0x80dc, (q15_t)0xeb1, (q15_t)0x80d9, (q15_t)0xe98, (q15_t)0x80d6, - (q15_t)0xe7f, (q15_t)0x80d3, (q15_t)0xe66, (q15_t)0x80d1, (q15_t)0xe4d, (q15_t)0x80ce, (q15_t)0xe34, (q15_t)0x80cb, - (q15_t)0xe1b, (q15_t)0x80c8, (q15_t)0xe02, (q15_t)0x80c5, (q15_t)0xde9, (q15_t)0x80c3, (q15_t)0xdd0, (q15_t)0x80c0, - (q15_t)0xdb7, (q15_t)0x80bd, (q15_t)0xd9e, (q15_t)0x80bb, (q15_t)0xd85, (q15_t)0x80b8, (q15_t)0xd6c, (q15_t)0x80b5, - (q15_t)0xd53, (q15_t)0x80b3, (q15_t)0xd3a, (q15_t)0x80b0, (q15_t)0xd21, (q15_t)0x80ad, (q15_t)0xd08, (q15_t)0x80ab, - (q15_t)0xcef, (q15_t)0x80a8, (q15_t)0xcd6, (q15_t)0x80a6, (q15_t)0xcbd, (q15_t)0x80a3, (q15_t)0xca4, (q15_t)0x80a1, - (q15_t)0xc8b, (q15_t)0x809e, (q15_t)0xc72, (q15_t)0x809c, (q15_t)0xc59, (q15_t)0x8099, (q15_t)0xc40, (q15_t)0x8097, - (q15_t)0xc27, (q15_t)0x8095, (q15_t)0xc0e, (q15_t)0x8092, (q15_t)0xbf5, (q15_t)0x8090, (q15_t)0xbdc, (q15_t)0x808e, - (q15_t)0xbc3, (q15_t)0x808b, (q15_t)0xbaa, (q15_t)0x8089, (q15_t)0xb91, (q15_t)0x8087, (q15_t)0xb78, (q15_t)0x8084, - (q15_t)0xb5f, (q15_t)0x8082, (q15_t)0xb46, (q15_t)0x8080, (q15_t)0xb2d, (q15_t)0x807e, (q15_t)0xb14, (q15_t)0x807b, - (q15_t)0xafb, (q15_t)0x8079, (q15_t)0xae2, (q15_t)0x8077, (q15_t)0xac9, (q15_t)0x8075, (q15_t)0xab0, (q15_t)0x8073, - (q15_t)0xa97, (q15_t)0x8071, (q15_t)0xa7e, (q15_t)0x806f, (q15_t)0xa65, (q15_t)0x806d, (q15_t)0xa4c, (q15_t)0x806b, - (q15_t)0xa33, (q15_t)0x8069, (q15_t)0xa19, (q15_t)0x8067, (q15_t)0xa00, (q15_t)0x8065, (q15_t)0x9e7, (q15_t)0x8063, - (q15_t)0x9ce, (q15_t)0x8061, (q15_t)0x9b5, (q15_t)0x805f, (q15_t)0x99c, (q15_t)0x805d, (q15_t)0x983, (q15_t)0x805b, - (q15_t)0x96a, (q15_t)0x8059, (q15_t)0x951, (q15_t)0x8057, (q15_t)0x938, (q15_t)0x8056, (q15_t)0x91f, (q15_t)0x8054, - (q15_t)0x906, (q15_t)0x8052, (q15_t)0x8ed, (q15_t)0x8050, (q15_t)0x8d4, (q15_t)0x804f, (q15_t)0x8bb, (q15_t)0x804d, - (q15_t)0x8a2, (q15_t)0x804b, (q15_t)0x888, (q15_t)0x8049, (q15_t)0x86f, (q15_t)0x8048, (q15_t)0x856, (q15_t)0x8046, - (q15_t)0x83d, (q15_t)0x8044, (q15_t)0x824, (q15_t)0x8043, (q15_t)0x80b, (q15_t)0x8041, (q15_t)0x7f2, (q15_t)0x8040, - (q15_t)0x7d9, (q15_t)0x803e, (q15_t)0x7c0, (q15_t)0x803d, (q15_t)0x7a7, (q15_t)0x803b, (q15_t)0x78e, (q15_t)0x803a, - (q15_t)0x775, (q15_t)0x8038, (q15_t)0x75b, (q15_t)0x8037, (q15_t)0x742, (q15_t)0x8035, (q15_t)0x729, (q15_t)0x8034, - (q15_t)0x710, (q15_t)0x8032, (q15_t)0x6f7, (q15_t)0x8031, (q15_t)0x6de, (q15_t)0x8030, (q15_t)0x6c5, (q15_t)0x802e, - (q15_t)0x6ac, (q15_t)0x802d, (q15_t)0x693, (q15_t)0x802c, (q15_t)0x67a, (q15_t)0x802a, (q15_t)0x660, (q15_t)0x8029, - (q15_t)0x647, (q15_t)0x8028, (q15_t)0x62e, (q15_t)0x8027, (q15_t)0x615, (q15_t)0x8026, (q15_t)0x5fc, (q15_t)0x8024, - (q15_t)0x5e3, (q15_t)0x8023, (q15_t)0x5ca, (q15_t)0x8022, (q15_t)0x5b1, (q15_t)0x8021, (q15_t)0x598, (q15_t)0x8020, - (q15_t)0x57f, (q15_t)0x801f, (q15_t)0x565, (q15_t)0x801e, (q15_t)0x54c, (q15_t)0x801d, (q15_t)0x533, (q15_t)0x801c, - (q15_t)0x51a, (q15_t)0x801b, (q15_t)0x501, (q15_t)0x801a, (q15_t)0x4e8, (q15_t)0x8019, (q15_t)0x4cf, (q15_t)0x8018, - (q15_t)0x4b6, (q15_t)0x8017, (q15_t)0x49c, (q15_t)0x8016, (q15_t)0x483, (q15_t)0x8015, (q15_t)0x46a, (q15_t)0x8014, - (q15_t)0x451, (q15_t)0x8013, (q15_t)0x438, (q15_t)0x8012, (q15_t)0x41f, (q15_t)0x8012, (q15_t)0x406, (q15_t)0x8011, - (q15_t)0x3ed, (q15_t)0x8010, (q15_t)0x3d4, (q15_t)0x800f, (q15_t)0x3ba, (q15_t)0x800e, (q15_t)0x3a1, (q15_t)0x800e, - (q15_t)0x388, (q15_t)0x800d, (q15_t)0x36f, (q15_t)0x800c, (q15_t)0x356, (q15_t)0x800c, (q15_t)0x33d, (q15_t)0x800b, - (q15_t)0x324, (q15_t)0x800a, (q15_t)0x30b, (q15_t)0x800a, (q15_t)0x2f1, (q15_t)0x8009, (q15_t)0x2d8, (q15_t)0x8009, - (q15_t)0x2bf, (q15_t)0x8008, (q15_t)0x2a6, (q15_t)0x8008, (q15_t)0x28d, (q15_t)0x8007, (q15_t)0x274, (q15_t)0x8007, - (q15_t)0x25b, (q15_t)0x8006, (q15_t)0x242, (q15_t)0x8006, (q15_t)0x228, (q15_t)0x8005, (q15_t)0x20f, (q15_t)0x8005, - (q15_t)0x1f6, (q15_t)0x8004, (q15_t)0x1dd, (q15_t)0x8004, (q15_t)0x1c4, (q15_t)0x8004, (q15_t)0x1ab, (q15_t)0x8003, - (q15_t)0x192, (q15_t)0x8003, (q15_t)0x178, (q15_t)0x8003, (q15_t)0x15f, (q15_t)0x8002, (q15_t)0x146, (q15_t)0x8002, - (q15_t)0x12d, (q15_t)0x8002, (q15_t)0x114, (q15_t)0x8002, (q15_t)0xfb, (q15_t)0x8001, (q15_t)0xe2, (q15_t)0x8001, - (q15_t)0xc9, (q15_t)0x8001, (q15_t)0xaf, (q15_t)0x8001, (q15_t)0x96, (q15_t)0x8001, (q15_t)0x7d, (q15_t)0x8001, - (q15_t)0x64, (q15_t)0x8001, (q15_t)0x4b, (q15_t)0x8001, (q15_t)0x32, (q15_t)0x8001, (q15_t)0x19, (q15_t)0x8001 -}; - -static const q15_t ALIGN4 WeightsQ15_8192[16384] = { - (q15_t)0x7fff, (q15_t)0x0, (q15_t)0x7fff, (q15_t)0xfffa, (q15_t)0x7fff, (q15_t)0xfff4, (q15_t)0x7fff, (q15_t)0xffee, - (q15_t)0x7fff, (q15_t)0xffe7, (q15_t)0x7fff, (q15_t)0xffe1, (q15_t)0x7fff, (q15_t)0xffdb, (q15_t)0x7fff, (q15_t)0xffd5, - (q15_t)0x7fff, (q15_t)0xffce, (q15_t)0x7fff, (q15_t)0xffc8, (q15_t)0x7fff, (q15_t)0xffc2, (q15_t)0x7fff, (q15_t)0xffbb, - (q15_t)0x7fff, (q15_t)0xffb5, (q15_t)0x7fff, (q15_t)0xffaf, (q15_t)0x7fff, (q15_t)0xffa9, (q15_t)0x7fff, (q15_t)0xffa2, - (q15_t)0x7fff, (q15_t)0xff9c, (q15_t)0x7fff, (q15_t)0xff96, (q15_t)0x7fff, (q15_t)0xff8f, (q15_t)0x7fff, (q15_t)0xff89, - (q15_t)0x7fff, (q15_t)0xff83, (q15_t)0x7fff, (q15_t)0xff7d, (q15_t)0x7fff, (q15_t)0xff76, (q15_t)0x7fff, (q15_t)0xff70, - (q15_t)0x7fff, (q15_t)0xff6a, (q15_t)0x7fff, (q15_t)0xff63, (q15_t)0x7fff, (q15_t)0xff5d, (q15_t)0x7fff, (q15_t)0xff57, - (q15_t)0x7fff, (q15_t)0xff51, (q15_t)0x7fff, (q15_t)0xff4a, (q15_t)0x7fff, (q15_t)0xff44, (q15_t)0x7fff, (q15_t)0xff3e, - (q15_t)0x7fff, (q15_t)0xff37, (q15_t)0x7fff, (q15_t)0xff31, (q15_t)0x7fff, (q15_t)0xff2b, (q15_t)0x7fff, (q15_t)0xff25, - (q15_t)0x7fff, (q15_t)0xff1e, (q15_t)0x7fff, (q15_t)0xff18, (q15_t)0x7fff, (q15_t)0xff12, (q15_t)0x7fff, (q15_t)0xff0b, - (q15_t)0x7fff, (q15_t)0xff05, (q15_t)0x7ffe, (q15_t)0xfeff, (q15_t)0x7ffe, (q15_t)0xfef9, (q15_t)0x7ffe, (q15_t)0xfef2, - (q15_t)0x7ffe, (q15_t)0xfeec, (q15_t)0x7ffe, (q15_t)0xfee6, (q15_t)0x7ffe, (q15_t)0xfedf, (q15_t)0x7ffe, (q15_t)0xfed9, - (q15_t)0x7ffe, (q15_t)0xfed3, (q15_t)0x7ffe, (q15_t)0xfecd, (q15_t)0x7ffe, (q15_t)0xfec6, (q15_t)0x7ffe, (q15_t)0xfec0, - (q15_t)0x7ffe, (q15_t)0xfeba, (q15_t)0x7ffe, (q15_t)0xfeb3, (q15_t)0x7ffe, (q15_t)0xfead, (q15_t)0x7ffe, (q15_t)0xfea7, - (q15_t)0x7ffe, (q15_t)0xfea1, (q15_t)0x7ffe, (q15_t)0xfe9a, (q15_t)0x7ffd, (q15_t)0xfe94, (q15_t)0x7ffd, (q15_t)0xfe8e, - (q15_t)0x7ffd, (q15_t)0xfe88, (q15_t)0x7ffd, (q15_t)0xfe81, (q15_t)0x7ffd, (q15_t)0xfe7b, (q15_t)0x7ffd, (q15_t)0xfe75, - (q15_t)0x7ffd, (q15_t)0xfe6e, (q15_t)0x7ffd, (q15_t)0xfe68, (q15_t)0x7ffd, (q15_t)0xfe62, (q15_t)0x7ffd, (q15_t)0xfe5c, - (q15_t)0x7ffd, (q15_t)0xfe55, (q15_t)0x7ffd, (q15_t)0xfe4f, (q15_t)0x7ffd, (q15_t)0xfe49, (q15_t)0x7ffc, (q15_t)0xfe42, - (q15_t)0x7ffc, (q15_t)0xfe3c, (q15_t)0x7ffc, (q15_t)0xfe36, (q15_t)0x7ffc, (q15_t)0xfe30, (q15_t)0x7ffc, (q15_t)0xfe29, - (q15_t)0x7ffc, (q15_t)0xfe23, (q15_t)0x7ffc, (q15_t)0xfe1d, (q15_t)0x7ffc, (q15_t)0xfe16, (q15_t)0x7ffc, (q15_t)0xfe10, - (q15_t)0x7ffc, (q15_t)0xfe0a, (q15_t)0x7ffc, (q15_t)0xfe04, (q15_t)0x7ffb, (q15_t)0xfdfd, (q15_t)0x7ffb, (q15_t)0xfdf7, - (q15_t)0x7ffb, (q15_t)0xfdf1, (q15_t)0x7ffb, (q15_t)0xfdea, (q15_t)0x7ffb, (q15_t)0xfde4, (q15_t)0x7ffb, (q15_t)0xfdde, - (q15_t)0x7ffb, (q15_t)0xfdd8, (q15_t)0x7ffb, (q15_t)0xfdd1, (q15_t)0x7ffb, (q15_t)0xfdcb, (q15_t)0x7ffb, (q15_t)0xfdc5, - (q15_t)0x7ffa, (q15_t)0xfdbe, (q15_t)0x7ffa, (q15_t)0xfdb8, (q15_t)0x7ffa, (q15_t)0xfdb2, (q15_t)0x7ffa, (q15_t)0xfdac, - (q15_t)0x7ffa, (q15_t)0xfda5, (q15_t)0x7ffa, (q15_t)0xfd9f, (q15_t)0x7ffa, (q15_t)0xfd99, (q15_t)0x7ffa, (q15_t)0xfd93, - (q15_t)0x7ff9, (q15_t)0xfd8c, (q15_t)0x7ff9, (q15_t)0xfd86, (q15_t)0x7ff9, (q15_t)0xfd80, (q15_t)0x7ff9, (q15_t)0xfd79, - (q15_t)0x7ff9, (q15_t)0xfd73, (q15_t)0x7ff9, (q15_t)0xfd6d, (q15_t)0x7ff9, (q15_t)0xfd67, (q15_t)0x7ff9, (q15_t)0xfd60, - (q15_t)0x7ff8, (q15_t)0xfd5a, (q15_t)0x7ff8, (q15_t)0xfd54, (q15_t)0x7ff8, (q15_t)0xfd4d, (q15_t)0x7ff8, (q15_t)0xfd47, - (q15_t)0x7ff8, (q15_t)0xfd41, (q15_t)0x7ff8, (q15_t)0xfd3b, (q15_t)0x7ff8, (q15_t)0xfd34, (q15_t)0x7ff8, (q15_t)0xfd2e, - (q15_t)0x7ff7, (q15_t)0xfd28, (q15_t)0x7ff7, (q15_t)0xfd21, (q15_t)0x7ff7, (q15_t)0xfd1b, (q15_t)0x7ff7, (q15_t)0xfd15, - (q15_t)0x7ff7, (q15_t)0xfd0f, (q15_t)0x7ff7, (q15_t)0xfd08, (q15_t)0x7ff7, (q15_t)0xfd02, (q15_t)0x7ff6, (q15_t)0xfcfc, - (q15_t)0x7ff6, (q15_t)0xfcf5, (q15_t)0x7ff6, (q15_t)0xfcef, (q15_t)0x7ff6, (q15_t)0xfce9, (q15_t)0x7ff6, (q15_t)0xfce3, - (q15_t)0x7ff6, (q15_t)0xfcdc, (q15_t)0x7ff5, (q15_t)0xfcd6, (q15_t)0x7ff5, (q15_t)0xfcd0, (q15_t)0x7ff5, (q15_t)0xfcc9, - (q15_t)0x7ff5, (q15_t)0xfcc3, (q15_t)0x7ff5, (q15_t)0xfcbd, (q15_t)0x7ff5, (q15_t)0xfcb7, (q15_t)0x7ff5, (q15_t)0xfcb0, - (q15_t)0x7ff4, (q15_t)0xfcaa, (q15_t)0x7ff4, (q15_t)0xfca4, (q15_t)0x7ff4, (q15_t)0xfc9e, (q15_t)0x7ff4, (q15_t)0xfc97, - (q15_t)0x7ff4, (q15_t)0xfc91, (q15_t)0x7ff4, (q15_t)0xfc8b, (q15_t)0x7ff3, (q15_t)0xfc84, (q15_t)0x7ff3, (q15_t)0xfc7e, - (q15_t)0x7ff3, (q15_t)0xfc78, (q15_t)0x7ff3, (q15_t)0xfc72, (q15_t)0x7ff3, (q15_t)0xfc6b, (q15_t)0x7ff2, (q15_t)0xfc65, - (q15_t)0x7ff2, (q15_t)0xfc5f, (q15_t)0x7ff2, (q15_t)0xfc58, (q15_t)0x7ff2, (q15_t)0xfc52, (q15_t)0x7ff2, (q15_t)0xfc4c, - (q15_t)0x7ff2, (q15_t)0xfc46, (q15_t)0x7ff1, (q15_t)0xfc3f, (q15_t)0x7ff1, (q15_t)0xfc39, (q15_t)0x7ff1, (q15_t)0xfc33, - (q15_t)0x7ff1, (q15_t)0xfc2c, (q15_t)0x7ff1, (q15_t)0xfc26, (q15_t)0x7ff0, (q15_t)0xfc20, (q15_t)0x7ff0, (q15_t)0xfc1a, - (q15_t)0x7ff0, (q15_t)0xfc13, (q15_t)0x7ff0, (q15_t)0xfc0d, (q15_t)0x7ff0, (q15_t)0xfc07, (q15_t)0x7fef, (q15_t)0xfc01, - (q15_t)0x7fef, (q15_t)0xfbfa, (q15_t)0x7fef, (q15_t)0xfbf4, (q15_t)0x7fef, (q15_t)0xfbee, (q15_t)0x7fef, (q15_t)0xfbe7, - (q15_t)0x7fee, (q15_t)0xfbe1, (q15_t)0x7fee, (q15_t)0xfbdb, (q15_t)0x7fee, (q15_t)0xfbd5, (q15_t)0x7fee, (q15_t)0xfbce, - (q15_t)0x7fee, (q15_t)0xfbc8, (q15_t)0x7fed, (q15_t)0xfbc2, (q15_t)0x7fed, (q15_t)0xfbbb, (q15_t)0x7fed, (q15_t)0xfbb5, - (q15_t)0x7fed, (q15_t)0xfbaf, (q15_t)0x7fed, (q15_t)0xfba9, (q15_t)0x7fec, (q15_t)0xfba2, (q15_t)0x7fec, (q15_t)0xfb9c, - (q15_t)0x7fec, (q15_t)0xfb96, (q15_t)0x7fec, (q15_t)0xfb8f, (q15_t)0x7fec, (q15_t)0xfb89, (q15_t)0x7feb, (q15_t)0xfb83, - (q15_t)0x7feb, (q15_t)0xfb7d, (q15_t)0x7feb, (q15_t)0xfb76, (q15_t)0x7feb, (q15_t)0xfb70, (q15_t)0x7fea, (q15_t)0xfb6a, - (q15_t)0x7fea, (q15_t)0xfb64, (q15_t)0x7fea, (q15_t)0xfb5d, (q15_t)0x7fea, (q15_t)0xfb57, (q15_t)0x7fea, (q15_t)0xfb51, - (q15_t)0x7fe9, (q15_t)0xfb4a, (q15_t)0x7fe9, (q15_t)0xfb44, (q15_t)0x7fe9, (q15_t)0xfb3e, (q15_t)0x7fe9, (q15_t)0xfb38, - (q15_t)0x7fe8, (q15_t)0xfb31, (q15_t)0x7fe8, (q15_t)0xfb2b, (q15_t)0x7fe8, (q15_t)0xfb25, (q15_t)0x7fe8, (q15_t)0xfb1e, - (q15_t)0x7fe7, (q15_t)0xfb18, (q15_t)0x7fe7, (q15_t)0xfb12, (q15_t)0x7fe7, (q15_t)0xfb0c, (q15_t)0x7fe7, (q15_t)0xfb05, - (q15_t)0x7fe6, (q15_t)0xfaff, (q15_t)0x7fe6, (q15_t)0xfaf9, (q15_t)0x7fe6, (q15_t)0xfaf3, (q15_t)0x7fe6, (q15_t)0xfaec, - (q15_t)0x7fe5, (q15_t)0xfae6, (q15_t)0x7fe5, (q15_t)0xfae0, (q15_t)0x7fe5, (q15_t)0xfad9, (q15_t)0x7fe5, (q15_t)0xfad3, - (q15_t)0x7fe4, (q15_t)0xfacd, (q15_t)0x7fe4, (q15_t)0xfac7, (q15_t)0x7fe4, (q15_t)0xfac0, (q15_t)0x7fe4, (q15_t)0xfaba, - (q15_t)0x7fe3, (q15_t)0xfab4, (q15_t)0x7fe3, (q15_t)0xfaad, (q15_t)0x7fe3, (q15_t)0xfaa7, (q15_t)0x7fe3, (q15_t)0xfaa1, - (q15_t)0x7fe2, (q15_t)0xfa9b, (q15_t)0x7fe2, (q15_t)0xfa94, (q15_t)0x7fe2, (q15_t)0xfa8e, (q15_t)0x7fe2, (q15_t)0xfa88, - (q15_t)0x7fe1, (q15_t)0xfa81, (q15_t)0x7fe1, (q15_t)0xfa7b, (q15_t)0x7fe1, (q15_t)0xfa75, (q15_t)0x7fe0, (q15_t)0xfa6f, - (q15_t)0x7fe0, (q15_t)0xfa68, (q15_t)0x7fe0, (q15_t)0xfa62, (q15_t)0x7fe0, (q15_t)0xfa5c, (q15_t)0x7fdf, (q15_t)0xfa56, - (q15_t)0x7fdf, (q15_t)0xfa4f, (q15_t)0x7fdf, (q15_t)0xfa49, (q15_t)0x7fdf, (q15_t)0xfa43, (q15_t)0x7fde, (q15_t)0xfa3c, - (q15_t)0x7fde, (q15_t)0xfa36, (q15_t)0x7fde, (q15_t)0xfa30, (q15_t)0x7fdd, (q15_t)0xfa2a, (q15_t)0x7fdd, (q15_t)0xfa23, - (q15_t)0x7fdd, (q15_t)0xfa1d, (q15_t)0x7fdd, (q15_t)0xfa17, (q15_t)0x7fdc, (q15_t)0xfa11, (q15_t)0x7fdc, (q15_t)0xfa0a, - (q15_t)0x7fdc, (q15_t)0xfa04, (q15_t)0x7fdb, (q15_t)0xf9fe, (q15_t)0x7fdb, (q15_t)0xf9f7, (q15_t)0x7fdb, (q15_t)0xf9f1, - (q15_t)0x7fda, (q15_t)0xf9eb, (q15_t)0x7fda, (q15_t)0xf9e5, (q15_t)0x7fda, (q15_t)0xf9de, (q15_t)0x7fda, (q15_t)0xf9d8, - (q15_t)0x7fd9, (q15_t)0xf9d2, (q15_t)0x7fd9, (q15_t)0xf9cb, (q15_t)0x7fd9, (q15_t)0xf9c5, (q15_t)0x7fd8, (q15_t)0xf9bf, - (q15_t)0x7fd8, (q15_t)0xf9b9, (q15_t)0x7fd8, (q15_t)0xf9b2, (q15_t)0x7fd7, (q15_t)0xf9ac, (q15_t)0x7fd7, (q15_t)0xf9a6, - (q15_t)0x7fd7, (q15_t)0xf9a0, (q15_t)0x7fd6, (q15_t)0xf999, (q15_t)0x7fd6, (q15_t)0xf993, (q15_t)0x7fd6, (q15_t)0xf98d, - (q15_t)0x7fd6, (q15_t)0xf986, (q15_t)0x7fd5, (q15_t)0xf980, (q15_t)0x7fd5, (q15_t)0xf97a, (q15_t)0x7fd5, (q15_t)0xf974, - (q15_t)0x7fd4, (q15_t)0xf96d, (q15_t)0x7fd4, (q15_t)0xf967, (q15_t)0x7fd4, (q15_t)0xf961, (q15_t)0x7fd3, (q15_t)0xf95b, - (q15_t)0x7fd3, (q15_t)0xf954, (q15_t)0x7fd3, (q15_t)0xf94e, (q15_t)0x7fd2, (q15_t)0xf948, (q15_t)0x7fd2, (q15_t)0xf941, - (q15_t)0x7fd2, (q15_t)0xf93b, (q15_t)0x7fd1, (q15_t)0xf935, (q15_t)0x7fd1, (q15_t)0xf92f, (q15_t)0x7fd1, (q15_t)0xf928, - (q15_t)0x7fd0, (q15_t)0xf922, (q15_t)0x7fd0, (q15_t)0xf91c, (q15_t)0x7fd0, (q15_t)0xf916, (q15_t)0x7fcf, (q15_t)0xf90f, - (q15_t)0x7fcf, (q15_t)0xf909, (q15_t)0x7fcf, (q15_t)0xf903, (q15_t)0x7fce, (q15_t)0xf8fc, (q15_t)0x7fce, (q15_t)0xf8f6, - (q15_t)0x7fce, (q15_t)0xf8f0, (q15_t)0x7fcd, (q15_t)0xf8ea, (q15_t)0x7fcd, (q15_t)0xf8e3, (q15_t)0x7fcd, (q15_t)0xf8dd, - (q15_t)0x7fcc, (q15_t)0xf8d7, (q15_t)0x7fcc, (q15_t)0xf8d0, (q15_t)0x7fcb, (q15_t)0xf8ca, (q15_t)0x7fcb, (q15_t)0xf8c4, - (q15_t)0x7fcb, (q15_t)0xf8be, (q15_t)0x7fca, (q15_t)0xf8b7, (q15_t)0x7fca, (q15_t)0xf8b1, (q15_t)0x7fca, (q15_t)0xf8ab, - (q15_t)0x7fc9, (q15_t)0xf8a5, (q15_t)0x7fc9, (q15_t)0xf89e, (q15_t)0x7fc9, (q15_t)0xf898, (q15_t)0x7fc8, (q15_t)0xf892, - (q15_t)0x7fc8, (q15_t)0xf88b, (q15_t)0x7fc7, (q15_t)0xf885, (q15_t)0x7fc7, (q15_t)0xf87f, (q15_t)0x7fc7, (q15_t)0xf879, - (q15_t)0x7fc6, (q15_t)0xf872, (q15_t)0x7fc6, (q15_t)0xf86c, (q15_t)0x7fc6, (q15_t)0xf866, (q15_t)0x7fc5, (q15_t)0xf860, - (q15_t)0x7fc5, (q15_t)0xf859, (q15_t)0x7fc5, (q15_t)0xf853, (q15_t)0x7fc4, (q15_t)0xf84d, (q15_t)0x7fc4, (q15_t)0xf846, - (q15_t)0x7fc3, (q15_t)0xf840, (q15_t)0x7fc3, (q15_t)0xf83a, (q15_t)0x7fc3, (q15_t)0xf834, (q15_t)0x7fc2, (q15_t)0xf82d, - (q15_t)0x7fc2, (q15_t)0xf827, (q15_t)0x7fc1, (q15_t)0xf821, (q15_t)0x7fc1, (q15_t)0xf81b, (q15_t)0x7fc1, (q15_t)0xf814, - (q15_t)0x7fc0, (q15_t)0xf80e, (q15_t)0x7fc0, (q15_t)0xf808, (q15_t)0x7fc0, (q15_t)0xf802, (q15_t)0x7fbf, (q15_t)0xf7fb, - (q15_t)0x7fbf, (q15_t)0xf7f5, (q15_t)0x7fbe, (q15_t)0xf7ef, (q15_t)0x7fbe, (q15_t)0xf7e8, (q15_t)0x7fbe, (q15_t)0xf7e2, - (q15_t)0x7fbd, (q15_t)0xf7dc, (q15_t)0x7fbd, (q15_t)0xf7d6, (q15_t)0x7fbc, (q15_t)0xf7cf, (q15_t)0x7fbc, (q15_t)0xf7c9, - (q15_t)0x7fbc, (q15_t)0xf7c3, (q15_t)0x7fbb, (q15_t)0xf7bd, (q15_t)0x7fbb, (q15_t)0xf7b6, (q15_t)0x7fba, (q15_t)0xf7b0, - (q15_t)0x7fba, (q15_t)0xf7aa, (q15_t)0x7fb9, (q15_t)0xf7a3, (q15_t)0x7fb9, (q15_t)0xf79d, (q15_t)0x7fb9, (q15_t)0xf797, - (q15_t)0x7fb8, (q15_t)0xf791, (q15_t)0x7fb8, (q15_t)0xf78a, (q15_t)0x7fb7, (q15_t)0xf784, (q15_t)0x7fb7, (q15_t)0xf77e, - (q15_t)0x7fb7, (q15_t)0xf778, (q15_t)0x7fb6, (q15_t)0xf771, (q15_t)0x7fb6, (q15_t)0xf76b, (q15_t)0x7fb5, (q15_t)0xf765, - (q15_t)0x7fb5, (q15_t)0xf75e, (q15_t)0x7fb4, (q15_t)0xf758, (q15_t)0x7fb4, (q15_t)0xf752, (q15_t)0x7fb4, (q15_t)0xf74c, - (q15_t)0x7fb3, (q15_t)0xf745, (q15_t)0x7fb3, (q15_t)0xf73f, (q15_t)0x7fb2, (q15_t)0xf739, (q15_t)0x7fb2, (q15_t)0xf733, - (q15_t)0x7fb1, (q15_t)0xf72c, (q15_t)0x7fb1, (q15_t)0xf726, (q15_t)0x7fb1, (q15_t)0xf720, (q15_t)0x7fb0, (q15_t)0xf71a, - (q15_t)0x7fb0, (q15_t)0xf713, (q15_t)0x7faf, (q15_t)0xf70d, (q15_t)0x7faf, (q15_t)0xf707, (q15_t)0x7fae, (q15_t)0xf700, - (q15_t)0x7fae, (q15_t)0xf6fa, (q15_t)0x7fae, (q15_t)0xf6f4, (q15_t)0x7fad, (q15_t)0xf6ee, (q15_t)0x7fad, (q15_t)0xf6e7, - (q15_t)0x7fac, (q15_t)0xf6e1, (q15_t)0x7fac, (q15_t)0xf6db, (q15_t)0x7fab, (q15_t)0xf6d5, (q15_t)0x7fab, (q15_t)0xf6ce, - (q15_t)0x7faa, (q15_t)0xf6c8, (q15_t)0x7faa, (q15_t)0xf6c2, (q15_t)0x7fa9, (q15_t)0xf6bc, (q15_t)0x7fa9, (q15_t)0xf6b5, - (q15_t)0x7fa9, (q15_t)0xf6af, (q15_t)0x7fa8, (q15_t)0xf6a9, (q15_t)0x7fa8, (q15_t)0xf6a2, (q15_t)0x7fa7, (q15_t)0xf69c, - (q15_t)0x7fa7, (q15_t)0xf696, (q15_t)0x7fa6, (q15_t)0xf690, (q15_t)0x7fa6, (q15_t)0xf689, (q15_t)0x7fa5, (q15_t)0xf683, - (q15_t)0x7fa5, (q15_t)0xf67d, (q15_t)0x7fa4, (q15_t)0xf677, (q15_t)0x7fa4, (q15_t)0xf670, (q15_t)0x7fa3, (q15_t)0xf66a, - (q15_t)0x7fa3, (q15_t)0xf664, (q15_t)0x7fa3, (q15_t)0xf65e, (q15_t)0x7fa2, (q15_t)0xf657, (q15_t)0x7fa2, (q15_t)0xf651, - (q15_t)0x7fa1, (q15_t)0xf64b, (q15_t)0x7fa1, (q15_t)0xf644, (q15_t)0x7fa0, (q15_t)0xf63e, (q15_t)0x7fa0, (q15_t)0xf638, - (q15_t)0x7f9f, (q15_t)0xf632, (q15_t)0x7f9f, (q15_t)0xf62b, (q15_t)0x7f9e, (q15_t)0xf625, (q15_t)0x7f9e, (q15_t)0xf61f, - (q15_t)0x7f9d, (q15_t)0xf619, (q15_t)0x7f9d, (q15_t)0xf612, (q15_t)0x7f9c, (q15_t)0xf60c, (q15_t)0x7f9c, (q15_t)0xf606, - (q15_t)0x7f9b, (q15_t)0xf600, (q15_t)0x7f9b, (q15_t)0xf5f9, (q15_t)0x7f9a, (q15_t)0xf5f3, (q15_t)0x7f9a, (q15_t)0xf5ed, - (q15_t)0x7f99, (q15_t)0xf5e7, (q15_t)0x7f99, (q15_t)0xf5e0, (q15_t)0x7f98, (q15_t)0xf5da, (q15_t)0x7f98, (q15_t)0xf5d4, - (q15_t)0x7f97, (q15_t)0xf5cd, (q15_t)0x7f97, (q15_t)0xf5c7, (q15_t)0x7f96, (q15_t)0xf5c1, (q15_t)0x7f96, (q15_t)0xf5bb, - (q15_t)0x7f95, (q15_t)0xf5b4, (q15_t)0x7f95, (q15_t)0xf5ae, (q15_t)0x7f94, (q15_t)0xf5a8, (q15_t)0x7f94, (q15_t)0xf5a2, - (q15_t)0x7f93, (q15_t)0xf59b, (q15_t)0x7f93, (q15_t)0xf595, (q15_t)0x7f92, (q15_t)0xf58f, (q15_t)0x7f92, (q15_t)0xf589, - (q15_t)0x7f91, (q15_t)0xf582, (q15_t)0x7f91, (q15_t)0xf57c, (q15_t)0x7f90, (q15_t)0xf576, (q15_t)0x7f90, (q15_t)0xf570, - (q15_t)0x7f8f, (q15_t)0xf569, (q15_t)0x7f8f, (q15_t)0xf563, (q15_t)0x7f8e, (q15_t)0xf55d, (q15_t)0x7f8e, (q15_t)0xf556, - (q15_t)0x7f8d, (q15_t)0xf550, (q15_t)0x7f8d, (q15_t)0xf54a, (q15_t)0x7f8c, (q15_t)0xf544, (q15_t)0x7f8b, (q15_t)0xf53d, - (q15_t)0x7f8b, (q15_t)0xf537, (q15_t)0x7f8a, (q15_t)0xf531, (q15_t)0x7f8a, (q15_t)0xf52b, (q15_t)0x7f89, (q15_t)0xf524, - (q15_t)0x7f89, (q15_t)0xf51e, (q15_t)0x7f88, (q15_t)0xf518, (q15_t)0x7f88, (q15_t)0xf512, (q15_t)0x7f87, (q15_t)0xf50b, - (q15_t)0x7f87, (q15_t)0xf505, (q15_t)0x7f86, (q15_t)0xf4ff, (q15_t)0x7f86, (q15_t)0xf4f9, (q15_t)0x7f85, (q15_t)0xf4f2, - (q15_t)0x7f85, (q15_t)0xf4ec, (q15_t)0x7f84, (q15_t)0xf4e6, (q15_t)0x7f83, (q15_t)0xf4e0, (q15_t)0x7f83, (q15_t)0xf4d9, - (q15_t)0x7f82, (q15_t)0xf4d3, (q15_t)0x7f82, (q15_t)0xf4cd, (q15_t)0x7f81, (q15_t)0xf4c6, (q15_t)0x7f81, (q15_t)0xf4c0, - (q15_t)0x7f80, (q15_t)0xf4ba, (q15_t)0x7f80, (q15_t)0xf4b4, (q15_t)0x7f7f, (q15_t)0xf4ad, (q15_t)0x7f7e, (q15_t)0xf4a7, - (q15_t)0x7f7e, (q15_t)0xf4a1, (q15_t)0x7f7d, (q15_t)0xf49b, (q15_t)0x7f7d, (q15_t)0xf494, (q15_t)0x7f7c, (q15_t)0xf48e, - (q15_t)0x7f7c, (q15_t)0xf488, (q15_t)0x7f7b, (q15_t)0xf482, (q15_t)0x7f7b, (q15_t)0xf47b, (q15_t)0x7f7a, (q15_t)0xf475, - (q15_t)0x7f79, (q15_t)0xf46f, (q15_t)0x7f79, (q15_t)0xf469, (q15_t)0x7f78, (q15_t)0xf462, (q15_t)0x7f78, (q15_t)0xf45c, - (q15_t)0x7f77, (q15_t)0xf456, (q15_t)0x7f77, (q15_t)0xf450, (q15_t)0x7f76, (q15_t)0xf449, (q15_t)0x7f75, (q15_t)0xf443, - (q15_t)0x7f75, (q15_t)0xf43d, (q15_t)0x7f74, (q15_t)0xf437, (q15_t)0x7f74, (q15_t)0xf430, (q15_t)0x7f73, (q15_t)0xf42a, - (q15_t)0x7f72, (q15_t)0xf424, (q15_t)0x7f72, (q15_t)0xf41e, (q15_t)0x7f71, (q15_t)0xf417, (q15_t)0x7f71, (q15_t)0xf411, - (q15_t)0x7f70, (q15_t)0xf40b, (q15_t)0x7f70, (q15_t)0xf405, (q15_t)0x7f6f, (q15_t)0xf3fe, (q15_t)0x7f6e, (q15_t)0xf3f8, - (q15_t)0x7f6e, (q15_t)0xf3f2, (q15_t)0x7f6d, (q15_t)0xf3ec, (q15_t)0x7f6d, (q15_t)0xf3e5, (q15_t)0x7f6c, (q15_t)0xf3df, - (q15_t)0x7f6b, (q15_t)0xf3d9, (q15_t)0x7f6b, (q15_t)0xf3d2, (q15_t)0x7f6a, (q15_t)0xf3cc, (q15_t)0x7f6a, (q15_t)0xf3c6, - (q15_t)0x7f69, (q15_t)0xf3c0, (q15_t)0x7f68, (q15_t)0xf3b9, (q15_t)0x7f68, (q15_t)0xf3b3, (q15_t)0x7f67, (q15_t)0xf3ad, - (q15_t)0x7f67, (q15_t)0xf3a7, (q15_t)0x7f66, (q15_t)0xf3a0, (q15_t)0x7f65, (q15_t)0xf39a, (q15_t)0x7f65, (q15_t)0xf394, - (q15_t)0x7f64, (q15_t)0xf38e, (q15_t)0x7f64, (q15_t)0xf387, (q15_t)0x7f63, (q15_t)0xf381, (q15_t)0x7f62, (q15_t)0xf37b, - (q15_t)0x7f62, (q15_t)0xf375, (q15_t)0x7f61, (q15_t)0xf36e, (q15_t)0x7f60, (q15_t)0xf368, (q15_t)0x7f60, (q15_t)0xf362, - (q15_t)0x7f5f, (q15_t)0xf35c, (q15_t)0x7f5f, (q15_t)0xf355, (q15_t)0x7f5e, (q15_t)0xf34f, (q15_t)0x7f5d, (q15_t)0xf349, - (q15_t)0x7f5d, (q15_t)0xf343, (q15_t)0x7f5c, (q15_t)0xf33c, (q15_t)0x7f5b, (q15_t)0xf336, (q15_t)0x7f5b, (q15_t)0xf330, - (q15_t)0x7f5a, (q15_t)0xf32a, (q15_t)0x7f5a, (q15_t)0xf323, (q15_t)0x7f59, (q15_t)0xf31d, (q15_t)0x7f58, (q15_t)0xf317, - (q15_t)0x7f58, (q15_t)0xf311, (q15_t)0x7f57, (q15_t)0xf30a, (q15_t)0x7f56, (q15_t)0xf304, (q15_t)0x7f56, (q15_t)0xf2fe, - (q15_t)0x7f55, (q15_t)0xf2f8, (q15_t)0x7f55, (q15_t)0xf2f1, (q15_t)0x7f54, (q15_t)0xf2eb, (q15_t)0x7f53, (q15_t)0xf2e5, - (q15_t)0x7f53, (q15_t)0xf2df, (q15_t)0x7f52, (q15_t)0xf2d8, (q15_t)0x7f51, (q15_t)0xf2d2, (q15_t)0x7f51, (q15_t)0xf2cc, - (q15_t)0x7f50, (q15_t)0xf2c6, (q15_t)0x7f4f, (q15_t)0xf2bf, (q15_t)0x7f4f, (q15_t)0xf2b9, (q15_t)0x7f4e, (q15_t)0xf2b3, - (q15_t)0x7f4d, (q15_t)0xf2ad, (q15_t)0x7f4d, (q15_t)0xf2a6, (q15_t)0x7f4c, (q15_t)0xf2a0, (q15_t)0x7f4b, (q15_t)0xf29a, - (q15_t)0x7f4b, (q15_t)0xf294, (q15_t)0x7f4a, (q15_t)0xf28d, (q15_t)0x7f49, (q15_t)0xf287, (q15_t)0x7f49, (q15_t)0xf281, - (q15_t)0x7f48, (q15_t)0xf27b, (q15_t)0x7f47, (q15_t)0xf274, (q15_t)0x7f47, (q15_t)0xf26e, (q15_t)0x7f46, (q15_t)0xf268, - (q15_t)0x7f45, (q15_t)0xf262, (q15_t)0x7f45, (q15_t)0xf25b, (q15_t)0x7f44, (q15_t)0xf255, (q15_t)0x7f43, (q15_t)0xf24f, - (q15_t)0x7f43, (q15_t)0xf249, (q15_t)0x7f42, (q15_t)0xf242, (q15_t)0x7f41, (q15_t)0xf23c, (q15_t)0x7f41, (q15_t)0xf236, - (q15_t)0x7f40, (q15_t)0xf230, (q15_t)0x7f3f, (q15_t)0xf229, (q15_t)0x7f3f, (q15_t)0xf223, (q15_t)0x7f3e, (q15_t)0xf21d, - (q15_t)0x7f3d, (q15_t)0xf217, (q15_t)0x7f3d, (q15_t)0xf210, (q15_t)0x7f3c, (q15_t)0xf20a, (q15_t)0x7f3b, (q15_t)0xf204, - (q15_t)0x7f3b, (q15_t)0xf1fe, (q15_t)0x7f3a, (q15_t)0xf1f7, (q15_t)0x7f39, (q15_t)0xf1f1, (q15_t)0x7f39, (q15_t)0xf1eb, - (q15_t)0x7f38, (q15_t)0xf1e5, (q15_t)0x7f37, (q15_t)0xf1de, (q15_t)0x7f36, (q15_t)0xf1d8, (q15_t)0x7f36, (q15_t)0xf1d2, - (q15_t)0x7f35, (q15_t)0xf1cc, (q15_t)0x7f34, (q15_t)0xf1c6, (q15_t)0x7f34, (q15_t)0xf1bf, (q15_t)0x7f33, (q15_t)0xf1b9, - (q15_t)0x7f32, (q15_t)0xf1b3, (q15_t)0x7f32, (q15_t)0xf1ad, (q15_t)0x7f31, (q15_t)0xf1a6, (q15_t)0x7f30, (q15_t)0xf1a0, - (q15_t)0x7f2f, (q15_t)0xf19a, (q15_t)0x7f2f, (q15_t)0xf194, (q15_t)0x7f2e, (q15_t)0xf18d, (q15_t)0x7f2d, (q15_t)0xf187, - (q15_t)0x7f2d, (q15_t)0xf181, (q15_t)0x7f2c, (q15_t)0xf17b, (q15_t)0x7f2b, (q15_t)0xf174, (q15_t)0x7f2a, (q15_t)0xf16e, - (q15_t)0x7f2a, (q15_t)0xf168, (q15_t)0x7f29, (q15_t)0xf162, (q15_t)0x7f28, (q15_t)0xf15b, (q15_t)0x7f28, (q15_t)0xf155, - (q15_t)0x7f27, (q15_t)0xf14f, (q15_t)0x7f26, (q15_t)0xf149, (q15_t)0x7f25, (q15_t)0xf142, (q15_t)0x7f25, (q15_t)0xf13c, - (q15_t)0x7f24, (q15_t)0xf136, (q15_t)0x7f23, (q15_t)0xf130, (q15_t)0x7f23, (q15_t)0xf129, (q15_t)0x7f22, (q15_t)0xf123, - (q15_t)0x7f21, (q15_t)0xf11d, (q15_t)0x7f20, (q15_t)0xf117, (q15_t)0x7f20, (q15_t)0xf110, (q15_t)0x7f1f, (q15_t)0xf10a, - (q15_t)0x7f1e, (q15_t)0xf104, (q15_t)0x7f1d, (q15_t)0xf0fe, (q15_t)0x7f1d, (q15_t)0xf0f8, (q15_t)0x7f1c, (q15_t)0xf0f1, - (q15_t)0x7f1b, (q15_t)0xf0eb, (q15_t)0x7f1a, (q15_t)0xf0e5, (q15_t)0x7f1a, (q15_t)0xf0df, (q15_t)0x7f19, (q15_t)0xf0d8, - (q15_t)0x7f18, (q15_t)0xf0d2, (q15_t)0x7f17, (q15_t)0xf0cc, (q15_t)0x7f17, (q15_t)0xf0c6, (q15_t)0x7f16, (q15_t)0xf0bf, - (q15_t)0x7f15, (q15_t)0xf0b9, (q15_t)0x7f14, (q15_t)0xf0b3, (q15_t)0x7f14, (q15_t)0xf0ad, (q15_t)0x7f13, (q15_t)0xf0a6, - (q15_t)0x7f12, (q15_t)0xf0a0, (q15_t)0x7f11, (q15_t)0xf09a, (q15_t)0x7f11, (q15_t)0xf094, (q15_t)0x7f10, (q15_t)0xf08d, - (q15_t)0x7f0f, (q15_t)0xf087, (q15_t)0x7f0e, (q15_t)0xf081, (q15_t)0x7f0e, (q15_t)0xf07b, (q15_t)0x7f0d, (q15_t)0xf075, - (q15_t)0x7f0c, (q15_t)0xf06e, (q15_t)0x7f0b, (q15_t)0xf068, (q15_t)0x7f0b, (q15_t)0xf062, (q15_t)0x7f0a, (q15_t)0xf05c, - (q15_t)0x7f09, (q15_t)0xf055, (q15_t)0x7f08, (q15_t)0xf04f, (q15_t)0x7f08, (q15_t)0xf049, (q15_t)0x7f07, (q15_t)0xf043, - (q15_t)0x7f06, (q15_t)0xf03c, (q15_t)0x7f05, (q15_t)0xf036, (q15_t)0x7f04, (q15_t)0xf030, (q15_t)0x7f04, (q15_t)0xf02a, - (q15_t)0x7f03, (q15_t)0xf023, (q15_t)0x7f02, (q15_t)0xf01d, (q15_t)0x7f01, (q15_t)0xf017, (q15_t)0x7f01, (q15_t)0xf011, - (q15_t)0x7f00, (q15_t)0xf00b, (q15_t)0x7eff, (q15_t)0xf004, (q15_t)0x7efe, (q15_t)0xeffe, (q15_t)0x7efd, (q15_t)0xeff8, - (q15_t)0x7efd, (q15_t)0xeff2, (q15_t)0x7efc, (q15_t)0xefeb, (q15_t)0x7efb, (q15_t)0xefe5, (q15_t)0x7efa, (q15_t)0xefdf, - (q15_t)0x7ef9, (q15_t)0xefd9, (q15_t)0x7ef9, (q15_t)0xefd2, (q15_t)0x7ef8, (q15_t)0xefcc, (q15_t)0x7ef7, (q15_t)0xefc6, - (q15_t)0x7ef6, (q15_t)0xefc0, (q15_t)0x7ef5, (q15_t)0xefb9, (q15_t)0x7ef5, (q15_t)0xefb3, (q15_t)0x7ef4, (q15_t)0xefad, - (q15_t)0x7ef3, (q15_t)0xefa7, (q15_t)0x7ef2, (q15_t)0xefa1, (q15_t)0x7ef1, (q15_t)0xef9a, (q15_t)0x7ef1, (q15_t)0xef94, - (q15_t)0x7ef0, (q15_t)0xef8e, (q15_t)0x7eef, (q15_t)0xef88, (q15_t)0x7eee, (q15_t)0xef81, (q15_t)0x7eed, (q15_t)0xef7b, - (q15_t)0x7eed, (q15_t)0xef75, (q15_t)0x7eec, (q15_t)0xef6f, (q15_t)0x7eeb, (q15_t)0xef68, (q15_t)0x7eea, (q15_t)0xef62, - (q15_t)0x7ee9, (q15_t)0xef5c, (q15_t)0x7ee9, (q15_t)0xef56, (q15_t)0x7ee8, (q15_t)0xef50, (q15_t)0x7ee7, (q15_t)0xef49, - (q15_t)0x7ee6, (q15_t)0xef43, (q15_t)0x7ee5, (q15_t)0xef3d, (q15_t)0x7ee4, (q15_t)0xef37, (q15_t)0x7ee4, (q15_t)0xef30, - (q15_t)0x7ee3, (q15_t)0xef2a, (q15_t)0x7ee2, (q15_t)0xef24, (q15_t)0x7ee1, (q15_t)0xef1e, (q15_t)0x7ee0, (q15_t)0xef18, - (q15_t)0x7edf, (q15_t)0xef11, (q15_t)0x7edf, (q15_t)0xef0b, (q15_t)0x7ede, (q15_t)0xef05, (q15_t)0x7edd, (q15_t)0xeeff, - (q15_t)0x7edc, (q15_t)0xeef8, (q15_t)0x7edb, (q15_t)0xeef2, (q15_t)0x7eda, (q15_t)0xeeec, (q15_t)0x7eda, (q15_t)0xeee6, - (q15_t)0x7ed9, (q15_t)0xeedf, (q15_t)0x7ed8, (q15_t)0xeed9, (q15_t)0x7ed7, (q15_t)0xeed3, (q15_t)0x7ed6, (q15_t)0xeecd, - (q15_t)0x7ed5, (q15_t)0xeec7, (q15_t)0x7ed5, (q15_t)0xeec0, (q15_t)0x7ed4, (q15_t)0xeeba, (q15_t)0x7ed3, (q15_t)0xeeb4, - (q15_t)0x7ed2, (q15_t)0xeeae, (q15_t)0x7ed1, (q15_t)0xeea7, (q15_t)0x7ed0, (q15_t)0xeea1, (q15_t)0x7ecf, (q15_t)0xee9b, - (q15_t)0x7ecf, (q15_t)0xee95, (q15_t)0x7ece, (q15_t)0xee8f, (q15_t)0x7ecd, (q15_t)0xee88, (q15_t)0x7ecc, (q15_t)0xee82, - (q15_t)0x7ecb, (q15_t)0xee7c, (q15_t)0x7eca, (q15_t)0xee76, (q15_t)0x7ec9, (q15_t)0xee6f, (q15_t)0x7ec9, (q15_t)0xee69, - (q15_t)0x7ec8, (q15_t)0xee63, (q15_t)0x7ec7, (q15_t)0xee5d, (q15_t)0x7ec6, (q15_t)0xee57, (q15_t)0x7ec5, (q15_t)0xee50, - (q15_t)0x7ec4, (q15_t)0xee4a, (q15_t)0x7ec3, (q15_t)0xee44, (q15_t)0x7ec3, (q15_t)0xee3e, (q15_t)0x7ec2, (q15_t)0xee37, - (q15_t)0x7ec1, (q15_t)0xee31, (q15_t)0x7ec0, (q15_t)0xee2b, (q15_t)0x7ebf, (q15_t)0xee25, (q15_t)0x7ebe, (q15_t)0xee1f, - (q15_t)0x7ebd, (q15_t)0xee18, (q15_t)0x7ebc, (q15_t)0xee12, (q15_t)0x7ebb, (q15_t)0xee0c, (q15_t)0x7ebb, (q15_t)0xee06, - (q15_t)0x7eba, (q15_t)0xedff, (q15_t)0x7eb9, (q15_t)0xedf9, (q15_t)0x7eb8, (q15_t)0xedf3, (q15_t)0x7eb7, (q15_t)0xeded, - (q15_t)0x7eb6, (q15_t)0xede7, (q15_t)0x7eb5, (q15_t)0xede0, (q15_t)0x7eb4, (q15_t)0xedda, (q15_t)0x7eb4, (q15_t)0xedd4, - (q15_t)0x7eb3, (q15_t)0xedce, (q15_t)0x7eb2, (q15_t)0xedc7, (q15_t)0x7eb1, (q15_t)0xedc1, (q15_t)0x7eb0, (q15_t)0xedbb, - (q15_t)0x7eaf, (q15_t)0xedb5, (q15_t)0x7eae, (q15_t)0xedaf, (q15_t)0x7ead, (q15_t)0xeda8, (q15_t)0x7eac, (q15_t)0xeda2, - (q15_t)0x7eab, (q15_t)0xed9c, (q15_t)0x7eab, (q15_t)0xed96, (q15_t)0x7eaa, (q15_t)0xed8f, (q15_t)0x7ea9, (q15_t)0xed89, - (q15_t)0x7ea8, (q15_t)0xed83, (q15_t)0x7ea7, (q15_t)0xed7d, (q15_t)0x7ea6, (q15_t)0xed77, (q15_t)0x7ea5, (q15_t)0xed70, - (q15_t)0x7ea4, (q15_t)0xed6a, (q15_t)0x7ea3, (q15_t)0xed64, (q15_t)0x7ea2, (q15_t)0xed5e, (q15_t)0x7ea1, (q15_t)0xed58, - (q15_t)0x7ea1, (q15_t)0xed51, (q15_t)0x7ea0, (q15_t)0xed4b, (q15_t)0x7e9f, (q15_t)0xed45, (q15_t)0x7e9e, (q15_t)0xed3f, - (q15_t)0x7e9d, (q15_t)0xed38, (q15_t)0x7e9c, (q15_t)0xed32, (q15_t)0x7e9b, (q15_t)0xed2c, (q15_t)0x7e9a, (q15_t)0xed26, - (q15_t)0x7e99, (q15_t)0xed20, (q15_t)0x7e98, (q15_t)0xed19, (q15_t)0x7e97, (q15_t)0xed13, (q15_t)0x7e96, (q15_t)0xed0d, - (q15_t)0x7e95, (q15_t)0xed07, (q15_t)0x7e94, (q15_t)0xed01, (q15_t)0x7e94, (q15_t)0xecfa, (q15_t)0x7e93, (q15_t)0xecf4, - (q15_t)0x7e92, (q15_t)0xecee, (q15_t)0x7e91, (q15_t)0xece8, (q15_t)0x7e90, (q15_t)0xece1, (q15_t)0x7e8f, (q15_t)0xecdb, - (q15_t)0x7e8e, (q15_t)0xecd5, (q15_t)0x7e8d, (q15_t)0xeccf, (q15_t)0x7e8c, (q15_t)0xecc9, (q15_t)0x7e8b, (q15_t)0xecc2, - (q15_t)0x7e8a, (q15_t)0xecbc, (q15_t)0x7e89, (q15_t)0xecb6, (q15_t)0x7e88, (q15_t)0xecb0, (q15_t)0x7e87, (q15_t)0xecaa, - (q15_t)0x7e86, (q15_t)0xeca3, (q15_t)0x7e85, (q15_t)0xec9d, (q15_t)0x7e84, (q15_t)0xec97, (q15_t)0x7e84, (q15_t)0xec91, - (q15_t)0x7e83, (q15_t)0xec8a, (q15_t)0x7e82, (q15_t)0xec84, (q15_t)0x7e81, (q15_t)0xec7e, (q15_t)0x7e80, (q15_t)0xec78, - (q15_t)0x7e7f, (q15_t)0xec72, (q15_t)0x7e7e, (q15_t)0xec6b, (q15_t)0x7e7d, (q15_t)0xec65, (q15_t)0x7e7c, (q15_t)0xec5f, - (q15_t)0x7e7b, (q15_t)0xec59, (q15_t)0x7e7a, (q15_t)0xec53, (q15_t)0x7e79, (q15_t)0xec4c, (q15_t)0x7e78, (q15_t)0xec46, - (q15_t)0x7e77, (q15_t)0xec40, (q15_t)0x7e76, (q15_t)0xec3a, (q15_t)0x7e75, (q15_t)0xec34, (q15_t)0x7e74, (q15_t)0xec2d, - (q15_t)0x7e73, (q15_t)0xec27, (q15_t)0x7e72, (q15_t)0xec21, (q15_t)0x7e71, (q15_t)0xec1b, (q15_t)0x7e70, (q15_t)0xec15, - (q15_t)0x7e6f, (q15_t)0xec0e, (q15_t)0x7e6e, (q15_t)0xec08, (q15_t)0x7e6d, (q15_t)0xec02, (q15_t)0x7e6c, (q15_t)0xebfc, - (q15_t)0x7e6b, (q15_t)0xebf5, (q15_t)0x7e6a, (q15_t)0xebef, (q15_t)0x7e69, (q15_t)0xebe9, (q15_t)0x7e68, (q15_t)0xebe3, - (q15_t)0x7e67, (q15_t)0xebdd, (q15_t)0x7e66, (q15_t)0xebd6, (q15_t)0x7e65, (q15_t)0xebd0, (q15_t)0x7e64, (q15_t)0xebca, - (q15_t)0x7e63, (q15_t)0xebc4, (q15_t)0x7e62, (q15_t)0xebbe, (q15_t)0x7e61, (q15_t)0xebb7, (q15_t)0x7e60, (q15_t)0xebb1, - (q15_t)0x7e5f, (q15_t)0xebab, (q15_t)0x7e5e, (q15_t)0xeba5, (q15_t)0x7e5d, (q15_t)0xeb9f, (q15_t)0x7e5c, (q15_t)0xeb98, - (q15_t)0x7e5b, (q15_t)0xeb92, (q15_t)0x7e5a, (q15_t)0xeb8c, (q15_t)0x7e59, (q15_t)0xeb86, (q15_t)0x7e58, (q15_t)0xeb80, - (q15_t)0x7e57, (q15_t)0xeb79, (q15_t)0x7e56, (q15_t)0xeb73, (q15_t)0x7e55, (q15_t)0xeb6d, (q15_t)0x7e54, (q15_t)0xeb67, - (q15_t)0x7e53, (q15_t)0xeb61, (q15_t)0x7e52, (q15_t)0xeb5a, (q15_t)0x7e51, (q15_t)0xeb54, (q15_t)0x7e50, (q15_t)0xeb4e, - (q15_t)0x7e4f, (q15_t)0xeb48, (q15_t)0x7e4e, (q15_t)0xeb42, (q15_t)0x7e4d, (q15_t)0xeb3b, (q15_t)0x7e4c, (q15_t)0xeb35, - (q15_t)0x7e4b, (q15_t)0xeb2f, (q15_t)0x7e4a, (q15_t)0xeb29, (q15_t)0x7e49, (q15_t)0xeb23, (q15_t)0x7e48, (q15_t)0xeb1c, - (q15_t)0x7e47, (q15_t)0xeb16, (q15_t)0x7e46, (q15_t)0xeb10, (q15_t)0x7e45, (q15_t)0xeb0a, (q15_t)0x7e44, (q15_t)0xeb04, - (q15_t)0x7e43, (q15_t)0xeafd, (q15_t)0x7e42, (q15_t)0xeaf7, (q15_t)0x7e41, (q15_t)0xeaf1, (q15_t)0x7e40, (q15_t)0xeaeb, - (q15_t)0x7e3f, (q15_t)0xeae5, (q15_t)0x7e3e, (q15_t)0xeade, (q15_t)0x7e3d, (q15_t)0xead8, (q15_t)0x7e3c, (q15_t)0xead2, - (q15_t)0x7e3b, (q15_t)0xeacc, (q15_t)0x7e3a, (q15_t)0xeac6, (q15_t)0x7e39, (q15_t)0xeabf, (q15_t)0x7e38, (q15_t)0xeab9, - (q15_t)0x7e37, (q15_t)0xeab3, (q15_t)0x7e35, (q15_t)0xeaad, (q15_t)0x7e34, (q15_t)0xeaa7, (q15_t)0x7e33, (q15_t)0xeaa0, - (q15_t)0x7e32, (q15_t)0xea9a, (q15_t)0x7e31, (q15_t)0xea94, (q15_t)0x7e30, (q15_t)0xea8e, (q15_t)0x7e2f, (q15_t)0xea88, - (q15_t)0x7e2e, (q15_t)0xea81, (q15_t)0x7e2d, (q15_t)0xea7b, (q15_t)0x7e2c, (q15_t)0xea75, (q15_t)0x7e2b, (q15_t)0xea6f, - (q15_t)0x7e2a, (q15_t)0xea69, (q15_t)0x7e29, (q15_t)0xea63, (q15_t)0x7e28, (q15_t)0xea5c, (q15_t)0x7e27, (q15_t)0xea56, - (q15_t)0x7e26, (q15_t)0xea50, (q15_t)0x7e25, (q15_t)0xea4a, (q15_t)0x7e24, (q15_t)0xea44, (q15_t)0x7e22, (q15_t)0xea3d, - (q15_t)0x7e21, (q15_t)0xea37, (q15_t)0x7e20, (q15_t)0xea31, (q15_t)0x7e1f, (q15_t)0xea2b, (q15_t)0x7e1e, (q15_t)0xea25, - (q15_t)0x7e1d, (q15_t)0xea1e, (q15_t)0x7e1c, (q15_t)0xea18, (q15_t)0x7e1b, (q15_t)0xea12, (q15_t)0x7e1a, (q15_t)0xea0c, - (q15_t)0x7e19, (q15_t)0xea06, (q15_t)0x7e18, (q15_t)0xe9ff, (q15_t)0x7e17, (q15_t)0xe9f9, (q15_t)0x7e16, (q15_t)0xe9f3, - (q15_t)0x7e14, (q15_t)0xe9ed, (q15_t)0x7e13, (q15_t)0xe9e7, (q15_t)0x7e12, (q15_t)0xe9e1, (q15_t)0x7e11, (q15_t)0xe9da, - (q15_t)0x7e10, (q15_t)0xe9d4, (q15_t)0x7e0f, (q15_t)0xe9ce, (q15_t)0x7e0e, (q15_t)0xe9c8, (q15_t)0x7e0d, (q15_t)0xe9c2, - (q15_t)0x7e0c, (q15_t)0xe9bb, (q15_t)0x7e0b, (q15_t)0xe9b5, (q15_t)0x7e0a, (q15_t)0xe9af, (q15_t)0x7e08, (q15_t)0xe9a9, - (q15_t)0x7e07, (q15_t)0xe9a3, (q15_t)0x7e06, (q15_t)0xe99c, (q15_t)0x7e05, (q15_t)0xe996, (q15_t)0x7e04, (q15_t)0xe990, - (q15_t)0x7e03, (q15_t)0xe98a, (q15_t)0x7e02, (q15_t)0xe984, (q15_t)0x7e01, (q15_t)0xe97e, (q15_t)0x7e00, (q15_t)0xe977, - (q15_t)0x7dff, (q15_t)0xe971, (q15_t)0x7dfd, (q15_t)0xe96b, (q15_t)0x7dfc, (q15_t)0xe965, (q15_t)0x7dfb, (q15_t)0xe95f, - (q15_t)0x7dfa, (q15_t)0xe958, (q15_t)0x7df9, (q15_t)0xe952, (q15_t)0x7df8, (q15_t)0xe94c, (q15_t)0x7df7, (q15_t)0xe946, - (q15_t)0x7df6, (q15_t)0xe940, (q15_t)0x7df5, (q15_t)0xe93a, (q15_t)0x7df3, (q15_t)0xe933, (q15_t)0x7df2, (q15_t)0xe92d, - (q15_t)0x7df1, (q15_t)0xe927, (q15_t)0x7df0, (q15_t)0xe921, (q15_t)0x7def, (q15_t)0xe91b, (q15_t)0x7dee, (q15_t)0xe914, - (q15_t)0x7ded, (q15_t)0xe90e, (q15_t)0x7dec, (q15_t)0xe908, (q15_t)0x7dea, (q15_t)0xe902, (q15_t)0x7de9, (q15_t)0xe8fc, - (q15_t)0x7de8, (q15_t)0xe8f6, (q15_t)0x7de7, (q15_t)0xe8ef, (q15_t)0x7de6, (q15_t)0xe8e9, (q15_t)0x7de5, (q15_t)0xe8e3, - (q15_t)0x7de4, (q15_t)0xe8dd, (q15_t)0x7de2, (q15_t)0xe8d7, (q15_t)0x7de1, (q15_t)0xe8d0, (q15_t)0x7de0, (q15_t)0xe8ca, - (q15_t)0x7ddf, (q15_t)0xe8c4, (q15_t)0x7dde, (q15_t)0xe8be, (q15_t)0x7ddd, (q15_t)0xe8b8, (q15_t)0x7ddc, (q15_t)0xe8b2, - (q15_t)0x7dda, (q15_t)0xe8ab, (q15_t)0x7dd9, (q15_t)0xe8a5, (q15_t)0x7dd8, (q15_t)0xe89f, (q15_t)0x7dd7, (q15_t)0xe899, - (q15_t)0x7dd6, (q15_t)0xe893, (q15_t)0x7dd5, (q15_t)0xe88c, (q15_t)0x7dd4, (q15_t)0xe886, (q15_t)0x7dd2, (q15_t)0xe880, - (q15_t)0x7dd1, (q15_t)0xe87a, (q15_t)0x7dd0, (q15_t)0xe874, (q15_t)0x7dcf, (q15_t)0xe86e, (q15_t)0x7dce, (q15_t)0xe867, - (q15_t)0x7dcd, (q15_t)0xe861, (q15_t)0x7dcc, (q15_t)0xe85b, (q15_t)0x7dca, (q15_t)0xe855, (q15_t)0x7dc9, (q15_t)0xe84f, - (q15_t)0x7dc8, (q15_t)0xe849, (q15_t)0x7dc7, (q15_t)0xe842, (q15_t)0x7dc6, (q15_t)0xe83c, (q15_t)0x7dc5, (q15_t)0xe836, - (q15_t)0x7dc3, (q15_t)0xe830, (q15_t)0x7dc2, (q15_t)0xe82a, (q15_t)0x7dc1, (q15_t)0xe823, (q15_t)0x7dc0, (q15_t)0xe81d, - (q15_t)0x7dbf, (q15_t)0xe817, (q15_t)0x7dbd, (q15_t)0xe811, (q15_t)0x7dbc, (q15_t)0xe80b, (q15_t)0x7dbb, (q15_t)0xe805, - (q15_t)0x7dba, (q15_t)0xe7fe, (q15_t)0x7db9, (q15_t)0xe7f8, (q15_t)0x7db8, (q15_t)0xe7f2, (q15_t)0x7db6, (q15_t)0xe7ec, - (q15_t)0x7db5, (q15_t)0xe7e6, (q15_t)0x7db4, (q15_t)0xe7e0, (q15_t)0x7db3, (q15_t)0xe7d9, (q15_t)0x7db2, (q15_t)0xe7d3, - (q15_t)0x7db0, (q15_t)0xe7cd, (q15_t)0x7daf, (q15_t)0xe7c7, (q15_t)0x7dae, (q15_t)0xe7c1, (q15_t)0x7dad, (q15_t)0xe7bb, - (q15_t)0x7dac, (q15_t)0xe7b4, (q15_t)0x7dab, (q15_t)0xe7ae, (q15_t)0x7da9, (q15_t)0xe7a8, (q15_t)0x7da8, (q15_t)0xe7a2, - (q15_t)0x7da7, (q15_t)0xe79c, (q15_t)0x7da6, (q15_t)0xe796, (q15_t)0x7da5, (q15_t)0xe78f, (q15_t)0x7da3, (q15_t)0xe789, - (q15_t)0x7da2, (q15_t)0xe783, (q15_t)0x7da1, (q15_t)0xe77d, (q15_t)0x7da0, (q15_t)0xe777, (q15_t)0x7d9f, (q15_t)0xe771, - (q15_t)0x7d9d, (q15_t)0xe76a, (q15_t)0x7d9c, (q15_t)0xe764, (q15_t)0x7d9b, (q15_t)0xe75e, (q15_t)0x7d9a, (q15_t)0xe758, - (q15_t)0x7d98, (q15_t)0xe752, (q15_t)0x7d97, (q15_t)0xe74c, (q15_t)0x7d96, (q15_t)0xe745, (q15_t)0x7d95, (q15_t)0xe73f, - (q15_t)0x7d94, (q15_t)0xe739, (q15_t)0x7d92, (q15_t)0xe733, (q15_t)0x7d91, (q15_t)0xe72d, (q15_t)0x7d90, (q15_t)0xe727, - (q15_t)0x7d8f, (q15_t)0xe720, (q15_t)0x7d8e, (q15_t)0xe71a, (q15_t)0x7d8c, (q15_t)0xe714, (q15_t)0x7d8b, (q15_t)0xe70e, - (q15_t)0x7d8a, (q15_t)0xe708, (q15_t)0x7d89, (q15_t)0xe702, (q15_t)0x7d87, (q15_t)0xe6fb, (q15_t)0x7d86, (q15_t)0xe6f5, - (q15_t)0x7d85, (q15_t)0xe6ef, (q15_t)0x7d84, (q15_t)0xe6e9, (q15_t)0x7d82, (q15_t)0xe6e3, (q15_t)0x7d81, (q15_t)0xe6dd, - (q15_t)0x7d80, (q15_t)0xe6d6, (q15_t)0x7d7f, (q15_t)0xe6d0, (q15_t)0x7d7e, (q15_t)0xe6ca, (q15_t)0x7d7c, (q15_t)0xe6c4, - (q15_t)0x7d7b, (q15_t)0xe6be, (q15_t)0x7d7a, (q15_t)0xe6b8, (q15_t)0x7d79, (q15_t)0xe6b2, (q15_t)0x7d77, (q15_t)0xe6ab, - (q15_t)0x7d76, (q15_t)0xe6a5, (q15_t)0x7d75, (q15_t)0xe69f, (q15_t)0x7d74, (q15_t)0xe699, (q15_t)0x7d72, (q15_t)0xe693, - (q15_t)0x7d71, (q15_t)0xe68d, (q15_t)0x7d70, (q15_t)0xe686, (q15_t)0x7d6f, (q15_t)0xe680, (q15_t)0x7d6d, (q15_t)0xe67a, - (q15_t)0x7d6c, (q15_t)0xe674, (q15_t)0x7d6b, (q15_t)0xe66e, (q15_t)0x7d6a, (q15_t)0xe668, (q15_t)0x7d68, (q15_t)0xe661, - (q15_t)0x7d67, (q15_t)0xe65b, (q15_t)0x7d66, (q15_t)0xe655, (q15_t)0x7d65, (q15_t)0xe64f, (q15_t)0x7d63, (q15_t)0xe649, - (q15_t)0x7d62, (q15_t)0xe643, (q15_t)0x7d61, (q15_t)0xe63d, (q15_t)0x7d60, (q15_t)0xe636, (q15_t)0x7d5e, (q15_t)0xe630, - (q15_t)0x7d5d, (q15_t)0xe62a, (q15_t)0x7d5c, (q15_t)0xe624, (q15_t)0x7d5a, (q15_t)0xe61e, (q15_t)0x7d59, (q15_t)0xe618, - (q15_t)0x7d58, (q15_t)0xe611, (q15_t)0x7d57, (q15_t)0xe60b, (q15_t)0x7d55, (q15_t)0xe605, (q15_t)0x7d54, (q15_t)0xe5ff, - (q15_t)0x7d53, (q15_t)0xe5f9, (q15_t)0x7d52, (q15_t)0xe5f3, (q15_t)0x7d50, (q15_t)0xe5ed, (q15_t)0x7d4f, (q15_t)0xe5e6, - (q15_t)0x7d4e, (q15_t)0xe5e0, (q15_t)0x7d4c, (q15_t)0xe5da, (q15_t)0x7d4b, (q15_t)0xe5d4, (q15_t)0x7d4a, (q15_t)0xe5ce, - (q15_t)0x7d49, (q15_t)0xe5c8, (q15_t)0x7d47, (q15_t)0xe5c2, (q15_t)0x7d46, (q15_t)0xe5bb, (q15_t)0x7d45, (q15_t)0xe5b5, - (q15_t)0x7d43, (q15_t)0xe5af, (q15_t)0x7d42, (q15_t)0xe5a9, (q15_t)0x7d41, (q15_t)0xe5a3, (q15_t)0x7d3f, (q15_t)0xe59d, - (q15_t)0x7d3e, (q15_t)0xe596, (q15_t)0x7d3d, (q15_t)0xe590, (q15_t)0x7d3c, (q15_t)0xe58a, (q15_t)0x7d3a, (q15_t)0xe584, - (q15_t)0x7d39, (q15_t)0xe57e, (q15_t)0x7d38, (q15_t)0xe578, (q15_t)0x7d36, (q15_t)0xe572, (q15_t)0x7d35, (q15_t)0xe56b, - (q15_t)0x7d34, (q15_t)0xe565, (q15_t)0x7d32, (q15_t)0xe55f, (q15_t)0x7d31, (q15_t)0xe559, (q15_t)0x7d30, (q15_t)0xe553, - (q15_t)0x7d2f, (q15_t)0xe54d, (q15_t)0x7d2d, (q15_t)0xe547, (q15_t)0x7d2c, (q15_t)0xe540, (q15_t)0x7d2b, (q15_t)0xe53a, - (q15_t)0x7d29, (q15_t)0xe534, (q15_t)0x7d28, (q15_t)0xe52e, (q15_t)0x7d27, (q15_t)0xe528, (q15_t)0x7d25, (q15_t)0xe522, - (q15_t)0x7d24, (q15_t)0xe51c, (q15_t)0x7d23, (q15_t)0xe515, (q15_t)0x7d21, (q15_t)0xe50f, (q15_t)0x7d20, (q15_t)0xe509, - (q15_t)0x7d1f, (q15_t)0xe503, (q15_t)0x7d1d, (q15_t)0xe4fd, (q15_t)0x7d1c, (q15_t)0xe4f7, (q15_t)0x7d1b, (q15_t)0xe4f1, - (q15_t)0x7d19, (q15_t)0xe4ea, (q15_t)0x7d18, (q15_t)0xe4e4, (q15_t)0x7d17, (q15_t)0xe4de, (q15_t)0x7d15, (q15_t)0xe4d8, - (q15_t)0x7d14, (q15_t)0xe4d2, (q15_t)0x7d13, (q15_t)0xe4cc, (q15_t)0x7d11, (q15_t)0xe4c6, (q15_t)0x7d10, (q15_t)0xe4bf, - (q15_t)0x7d0f, (q15_t)0xe4b9, (q15_t)0x7d0d, (q15_t)0xe4b3, (q15_t)0x7d0c, (q15_t)0xe4ad, (q15_t)0x7d0b, (q15_t)0xe4a7, - (q15_t)0x7d09, (q15_t)0xe4a1, (q15_t)0x7d08, (q15_t)0xe49b, (q15_t)0x7d07, (q15_t)0xe494, (q15_t)0x7d05, (q15_t)0xe48e, - (q15_t)0x7d04, (q15_t)0xe488, (q15_t)0x7d03, (q15_t)0xe482, (q15_t)0x7d01, (q15_t)0xe47c, (q15_t)0x7d00, (q15_t)0xe476, - (q15_t)0x7cff, (q15_t)0xe470, (q15_t)0x7cfd, (q15_t)0xe46a, (q15_t)0x7cfc, (q15_t)0xe463, (q15_t)0x7cfb, (q15_t)0xe45d, - (q15_t)0x7cf9, (q15_t)0xe457, (q15_t)0x7cf8, (q15_t)0xe451, (q15_t)0x7cf6, (q15_t)0xe44b, (q15_t)0x7cf5, (q15_t)0xe445, - (q15_t)0x7cf4, (q15_t)0xe43f, (q15_t)0x7cf2, (q15_t)0xe438, (q15_t)0x7cf1, (q15_t)0xe432, (q15_t)0x7cf0, (q15_t)0xe42c, - (q15_t)0x7cee, (q15_t)0xe426, (q15_t)0x7ced, (q15_t)0xe420, (q15_t)0x7cec, (q15_t)0xe41a, (q15_t)0x7cea, (q15_t)0xe414, - (q15_t)0x7ce9, (q15_t)0xe40e, (q15_t)0x7ce7, (q15_t)0xe407, (q15_t)0x7ce6, (q15_t)0xe401, (q15_t)0x7ce5, (q15_t)0xe3fb, - (q15_t)0x7ce3, (q15_t)0xe3f5, (q15_t)0x7ce2, (q15_t)0xe3ef, (q15_t)0x7ce1, (q15_t)0xe3e9, (q15_t)0x7cdf, (q15_t)0xe3e3, - (q15_t)0x7cde, (q15_t)0xe3dc, (q15_t)0x7cdc, (q15_t)0xe3d6, (q15_t)0x7cdb, (q15_t)0xe3d0, (q15_t)0x7cda, (q15_t)0xe3ca, - (q15_t)0x7cd8, (q15_t)0xe3c4, (q15_t)0x7cd7, (q15_t)0xe3be, (q15_t)0x7cd5, (q15_t)0xe3b8, (q15_t)0x7cd4, (q15_t)0xe3b2, - (q15_t)0x7cd3, (q15_t)0xe3ab, (q15_t)0x7cd1, (q15_t)0xe3a5, (q15_t)0x7cd0, (q15_t)0xe39f, (q15_t)0x7ccf, (q15_t)0xe399, - (q15_t)0x7ccd, (q15_t)0xe393, (q15_t)0x7ccc, (q15_t)0xe38d, (q15_t)0x7cca, (q15_t)0xe387, (q15_t)0x7cc9, (q15_t)0xe381, - (q15_t)0x7cc8, (q15_t)0xe37a, (q15_t)0x7cc6, (q15_t)0xe374, (q15_t)0x7cc5, (q15_t)0xe36e, (q15_t)0x7cc3, (q15_t)0xe368, - (q15_t)0x7cc2, (q15_t)0xe362, (q15_t)0x7cc1, (q15_t)0xe35c, (q15_t)0x7cbf, (q15_t)0xe356, (q15_t)0x7cbe, (q15_t)0xe350, - (q15_t)0x7cbc, (q15_t)0xe349, (q15_t)0x7cbb, (q15_t)0xe343, (q15_t)0x7cb9, (q15_t)0xe33d, (q15_t)0x7cb8, (q15_t)0xe337, - (q15_t)0x7cb7, (q15_t)0xe331, (q15_t)0x7cb5, (q15_t)0xe32b, (q15_t)0x7cb4, (q15_t)0xe325, (q15_t)0x7cb2, (q15_t)0xe31f, - (q15_t)0x7cb1, (q15_t)0xe318, (q15_t)0x7cb0, (q15_t)0xe312, (q15_t)0x7cae, (q15_t)0xe30c, (q15_t)0x7cad, (q15_t)0xe306, - (q15_t)0x7cab, (q15_t)0xe300, (q15_t)0x7caa, (q15_t)0xe2fa, (q15_t)0x7ca8, (q15_t)0xe2f4, (q15_t)0x7ca7, (q15_t)0xe2ee, - (q15_t)0x7ca6, (q15_t)0xe2e8, (q15_t)0x7ca4, (q15_t)0xe2e1, (q15_t)0x7ca3, (q15_t)0xe2db, (q15_t)0x7ca1, (q15_t)0xe2d5, - (q15_t)0x7ca0, (q15_t)0xe2cf, (q15_t)0x7c9e, (q15_t)0xe2c9, (q15_t)0x7c9d, (q15_t)0xe2c3, (q15_t)0x7c9c, (q15_t)0xe2bd, - (q15_t)0x7c9a, (q15_t)0xe2b7, (q15_t)0x7c99, (q15_t)0xe2b0, (q15_t)0x7c97, (q15_t)0xe2aa, (q15_t)0x7c96, (q15_t)0xe2a4, - (q15_t)0x7c94, (q15_t)0xe29e, (q15_t)0x7c93, (q15_t)0xe298, (q15_t)0x7c91, (q15_t)0xe292, (q15_t)0x7c90, (q15_t)0xe28c, - (q15_t)0x7c8f, (q15_t)0xe286, (q15_t)0x7c8d, (q15_t)0xe280, (q15_t)0x7c8c, (q15_t)0xe279, (q15_t)0x7c8a, (q15_t)0xe273, - (q15_t)0x7c89, (q15_t)0xe26d, (q15_t)0x7c87, (q15_t)0xe267, (q15_t)0x7c86, (q15_t)0xe261, (q15_t)0x7c84, (q15_t)0xe25b, - (q15_t)0x7c83, (q15_t)0xe255, (q15_t)0x7c82, (q15_t)0xe24f, (q15_t)0x7c80, (q15_t)0xe249, (q15_t)0x7c7f, (q15_t)0xe242, - (q15_t)0x7c7d, (q15_t)0xe23c, (q15_t)0x7c7c, (q15_t)0xe236, (q15_t)0x7c7a, (q15_t)0xe230, (q15_t)0x7c79, (q15_t)0xe22a, - (q15_t)0x7c77, (q15_t)0xe224, (q15_t)0x7c76, (q15_t)0xe21e, (q15_t)0x7c74, (q15_t)0xe218, (q15_t)0x7c73, (q15_t)0xe212, - (q15_t)0x7c71, (q15_t)0xe20b, (q15_t)0x7c70, (q15_t)0xe205, (q15_t)0x7c6e, (q15_t)0xe1ff, (q15_t)0x7c6d, (q15_t)0xe1f9, - (q15_t)0x7c6c, (q15_t)0xe1f3, (q15_t)0x7c6a, (q15_t)0xe1ed, (q15_t)0x7c69, (q15_t)0xe1e7, (q15_t)0x7c67, (q15_t)0xe1e1, - (q15_t)0x7c66, (q15_t)0xe1db, (q15_t)0x7c64, (q15_t)0xe1d4, (q15_t)0x7c63, (q15_t)0xe1ce, (q15_t)0x7c61, (q15_t)0xe1c8, - (q15_t)0x7c60, (q15_t)0xe1c2, (q15_t)0x7c5e, (q15_t)0xe1bc, (q15_t)0x7c5d, (q15_t)0xe1b6, (q15_t)0x7c5b, (q15_t)0xe1b0, - (q15_t)0x7c5a, (q15_t)0xe1aa, (q15_t)0x7c58, (q15_t)0xe1a4, (q15_t)0x7c57, (q15_t)0xe19e, (q15_t)0x7c55, (q15_t)0xe197, - (q15_t)0x7c54, (q15_t)0xe191, (q15_t)0x7c52, (q15_t)0xe18b, (q15_t)0x7c51, (q15_t)0xe185, (q15_t)0x7c4f, (q15_t)0xe17f, - (q15_t)0x7c4e, (q15_t)0xe179, (q15_t)0x7c4c, (q15_t)0xe173, (q15_t)0x7c4b, (q15_t)0xe16d, (q15_t)0x7c49, (q15_t)0xe167, - (q15_t)0x7c48, (q15_t)0xe160, (q15_t)0x7c46, (q15_t)0xe15a, (q15_t)0x7c45, (q15_t)0xe154, (q15_t)0x7c43, (q15_t)0xe14e, - (q15_t)0x7c42, (q15_t)0xe148, (q15_t)0x7c40, (q15_t)0xe142, (q15_t)0x7c3f, (q15_t)0xe13c, (q15_t)0x7c3d, (q15_t)0xe136, - (q15_t)0x7c3c, (q15_t)0xe130, (q15_t)0x7c3a, (q15_t)0xe12a, (q15_t)0x7c39, (q15_t)0xe123, (q15_t)0x7c37, (q15_t)0xe11d, - (q15_t)0x7c36, (q15_t)0xe117, (q15_t)0x7c34, (q15_t)0xe111, (q15_t)0x7c33, (q15_t)0xe10b, (q15_t)0x7c31, (q15_t)0xe105, - (q15_t)0x7c30, (q15_t)0xe0ff, (q15_t)0x7c2e, (q15_t)0xe0f9, (q15_t)0x7c2d, (q15_t)0xe0f3, (q15_t)0x7c2b, (q15_t)0xe0ed, - (q15_t)0x7c29, (q15_t)0xe0e7, (q15_t)0x7c28, (q15_t)0xe0e0, (q15_t)0x7c26, (q15_t)0xe0da, (q15_t)0x7c25, (q15_t)0xe0d4, - (q15_t)0x7c23, (q15_t)0xe0ce, (q15_t)0x7c22, (q15_t)0xe0c8, (q15_t)0x7c20, (q15_t)0xe0c2, (q15_t)0x7c1f, (q15_t)0xe0bc, - (q15_t)0x7c1d, (q15_t)0xe0b6, (q15_t)0x7c1c, (q15_t)0xe0b0, (q15_t)0x7c1a, (q15_t)0xe0aa, (q15_t)0x7c19, (q15_t)0xe0a3, - (q15_t)0x7c17, (q15_t)0xe09d, (q15_t)0x7c16, (q15_t)0xe097, (q15_t)0x7c14, (q15_t)0xe091, (q15_t)0x7c12, (q15_t)0xe08b, - (q15_t)0x7c11, (q15_t)0xe085, (q15_t)0x7c0f, (q15_t)0xe07f, (q15_t)0x7c0e, (q15_t)0xe079, (q15_t)0x7c0c, (q15_t)0xe073, - (q15_t)0x7c0b, (q15_t)0xe06d, (q15_t)0x7c09, (q15_t)0xe067, (q15_t)0x7c08, (q15_t)0xe061, (q15_t)0x7c06, (q15_t)0xe05a, - (q15_t)0x7c05, (q15_t)0xe054, (q15_t)0x7c03, (q15_t)0xe04e, (q15_t)0x7c01, (q15_t)0xe048, (q15_t)0x7c00, (q15_t)0xe042, - (q15_t)0x7bfe, (q15_t)0xe03c, (q15_t)0x7bfd, (q15_t)0xe036, (q15_t)0x7bfb, (q15_t)0xe030, (q15_t)0x7bfa, (q15_t)0xe02a, - (q15_t)0x7bf8, (q15_t)0xe024, (q15_t)0x7bf6, (q15_t)0xe01e, (q15_t)0x7bf5, (q15_t)0xe017, (q15_t)0x7bf3, (q15_t)0xe011, - (q15_t)0x7bf2, (q15_t)0xe00b, (q15_t)0x7bf0, (q15_t)0xe005, (q15_t)0x7bef, (q15_t)0xdfff, (q15_t)0x7bed, (q15_t)0xdff9, - (q15_t)0x7beb, (q15_t)0xdff3, (q15_t)0x7bea, (q15_t)0xdfed, (q15_t)0x7be8, (q15_t)0xdfe7, (q15_t)0x7be7, (q15_t)0xdfe1, - (q15_t)0x7be5, (q15_t)0xdfdb, (q15_t)0x7be4, (q15_t)0xdfd5, (q15_t)0x7be2, (q15_t)0xdfce, (q15_t)0x7be0, (q15_t)0xdfc8, - (q15_t)0x7bdf, (q15_t)0xdfc2, (q15_t)0x7bdd, (q15_t)0xdfbc, (q15_t)0x7bdc, (q15_t)0xdfb6, (q15_t)0x7bda, (q15_t)0xdfb0, - (q15_t)0x7bd9, (q15_t)0xdfaa, (q15_t)0x7bd7, (q15_t)0xdfa4, (q15_t)0x7bd5, (q15_t)0xdf9e, (q15_t)0x7bd4, (q15_t)0xdf98, - (q15_t)0x7bd2, (q15_t)0xdf92, (q15_t)0x7bd1, (q15_t)0xdf8c, (q15_t)0x7bcf, (q15_t)0xdf86, (q15_t)0x7bcd, (q15_t)0xdf7f, - (q15_t)0x7bcc, (q15_t)0xdf79, (q15_t)0x7bca, (q15_t)0xdf73, (q15_t)0x7bc9, (q15_t)0xdf6d, (q15_t)0x7bc7, (q15_t)0xdf67, - (q15_t)0x7bc5, (q15_t)0xdf61, (q15_t)0x7bc4, (q15_t)0xdf5b, (q15_t)0x7bc2, (q15_t)0xdf55, (q15_t)0x7bc1, (q15_t)0xdf4f, - (q15_t)0x7bbf, (q15_t)0xdf49, (q15_t)0x7bbd, (q15_t)0xdf43, (q15_t)0x7bbc, (q15_t)0xdf3d, (q15_t)0x7bba, (q15_t)0xdf37, - (q15_t)0x7bb9, (q15_t)0xdf30, (q15_t)0x7bb7, (q15_t)0xdf2a, (q15_t)0x7bb5, (q15_t)0xdf24, (q15_t)0x7bb4, (q15_t)0xdf1e, - (q15_t)0x7bb2, (q15_t)0xdf18, (q15_t)0x7bb0, (q15_t)0xdf12, (q15_t)0x7baf, (q15_t)0xdf0c, (q15_t)0x7bad, (q15_t)0xdf06, - (q15_t)0x7bac, (q15_t)0xdf00, (q15_t)0x7baa, (q15_t)0xdefa, (q15_t)0x7ba8, (q15_t)0xdef4, (q15_t)0x7ba7, (q15_t)0xdeee, - (q15_t)0x7ba5, (q15_t)0xdee8, (q15_t)0x7ba3, (q15_t)0xdee2, (q15_t)0x7ba2, (q15_t)0xdedb, (q15_t)0x7ba0, (q15_t)0xded5, - (q15_t)0x7b9f, (q15_t)0xdecf, (q15_t)0x7b9d, (q15_t)0xdec9, (q15_t)0x7b9b, (q15_t)0xdec3, (q15_t)0x7b9a, (q15_t)0xdebd, - (q15_t)0x7b98, (q15_t)0xdeb7, (q15_t)0x7b96, (q15_t)0xdeb1, (q15_t)0x7b95, (q15_t)0xdeab, (q15_t)0x7b93, (q15_t)0xdea5, - (q15_t)0x7b92, (q15_t)0xde9f, (q15_t)0x7b90, (q15_t)0xde99, (q15_t)0x7b8e, (q15_t)0xde93, (q15_t)0x7b8d, (q15_t)0xde8d, - (q15_t)0x7b8b, (q15_t)0xde87, (q15_t)0x7b89, (q15_t)0xde80, (q15_t)0x7b88, (q15_t)0xde7a, (q15_t)0x7b86, (q15_t)0xde74, - (q15_t)0x7b84, (q15_t)0xde6e, (q15_t)0x7b83, (q15_t)0xde68, (q15_t)0x7b81, (q15_t)0xde62, (q15_t)0x7b7f, (q15_t)0xde5c, - (q15_t)0x7b7e, (q15_t)0xde56, (q15_t)0x7b7c, (q15_t)0xde50, (q15_t)0x7b7a, (q15_t)0xde4a, (q15_t)0x7b79, (q15_t)0xde44, - (q15_t)0x7b77, (q15_t)0xde3e, (q15_t)0x7b76, (q15_t)0xde38, (q15_t)0x7b74, (q15_t)0xde32, (q15_t)0x7b72, (q15_t)0xde2c, - (q15_t)0x7b71, (q15_t)0xde26, (q15_t)0x7b6f, (q15_t)0xde1f, (q15_t)0x7b6d, (q15_t)0xde19, (q15_t)0x7b6c, (q15_t)0xde13, - (q15_t)0x7b6a, (q15_t)0xde0d, (q15_t)0x7b68, (q15_t)0xde07, (q15_t)0x7b67, (q15_t)0xde01, (q15_t)0x7b65, (q15_t)0xddfb, - (q15_t)0x7b63, (q15_t)0xddf5, (q15_t)0x7b62, (q15_t)0xddef, (q15_t)0x7b60, (q15_t)0xdde9, (q15_t)0x7b5e, (q15_t)0xdde3, - (q15_t)0x7b5d, (q15_t)0xdddd, (q15_t)0x7b5b, (q15_t)0xddd7, (q15_t)0x7b59, (q15_t)0xddd1, (q15_t)0x7b57, (q15_t)0xddcb, - (q15_t)0x7b56, (q15_t)0xddc5, (q15_t)0x7b54, (q15_t)0xddbf, (q15_t)0x7b52, (q15_t)0xddb9, (q15_t)0x7b51, (q15_t)0xddb2, - (q15_t)0x7b4f, (q15_t)0xddac, (q15_t)0x7b4d, (q15_t)0xdda6, (q15_t)0x7b4c, (q15_t)0xdda0, (q15_t)0x7b4a, (q15_t)0xdd9a, - (q15_t)0x7b48, (q15_t)0xdd94, (q15_t)0x7b47, (q15_t)0xdd8e, (q15_t)0x7b45, (q15_t)0xdd88, (q15_t)0x7b43, (q15_t)0xdd82, - (q15_t)0x7b42, (q15_t)0xdd7c, (q15_t)0x7b40, (q15_t)0xdd76, (q15_t)0x7b3e, (q15_t)0xdd70, (q15_t)0x7b3c, (q15_t)0xdd6a, - (q15_t)0x7b3b, (q15_t)0xdd64, (q15_t)0x7b39, (q15_t)0xdd5e, (q15_t)0x7b37, (q15_t)0xdd58, (q15_t)0x7b36, (q15_t)0xdd52, - (q15_t)0x7b34, (q15_t)0xdd4c, (q15_t)0x7b32, (q15_t)0xdd46, (q15_t)0x7b31, (q15_t)0xdd40, (q15_t)0x7b2f, (q15_t)0xdd39, - (q15_t)0x7b2d, (q15_t)0xdd33, (q15_t)0x7b2b, (q15_t)0xdd2d, (q15_t)0x7b2a, (q15_t)0xdd27, (q15_t)0x7b28, (q15_t)0xdd21, - (q15_t)0x7b26, (q15_t)0xdd1b, (q15_t)0x7b25, (q15_t)0xdd15, (q15_t)0x7b23, (q15_t)0xdd0f, (q15_t)0x7b21, (q15_t)0xdd09, - (q15_t)0x7b1f, (q15_t)0xdd03, (q15_t)0x7b1e, (q15_t)0xdcfd, (q15_t)0x7b1c, (q15_t)0xdcf7, (q15_t)0x7b1a, (q15_t)0xdcf1, - (q15_t)0x7b19, (q15_t)0xdceb, (q15_t)0x7b17, (q15_t)0xdce5, (q15_t)0x7b15, (q15_t)0xdcdf, (q15_t)0x7b13, (q15_t)0xdcd9, - (q15_t)0x7b12, (q15_t)0xdcd3, (q15_t)0x7b10, (q15_t)0xdccd, (q15_t)0x7b0e, (q15_t)0xdcc7, (q15_t)0x7b0c, (q15_t)0xdcc1, - (q15_t)0x7b0b, (q15_t)0xdcbb, (q15_t)0x7b09, (q15_t)0xdcb5, (q15_t)0x7b07, (q15_t)0xdcae, (q15_t)0x7b06, (q15_t)0xdca8, - (q15_t)0x7b04, (q15_t)0xdca2, (q15_t)0x7b02, (q15_t)0xdc9c, (q15_t)0x7b00, (q15_t)0xdc96, (q15_t)0x7aff, (q15_t)0xdc90, - (q15_t)0x7afd, (q15_t)0xdc8a, (q15_t)0x7afb, (q15_t)0xdc84, (q15_t)0x7af9, (q15_t)0xdc7e, (q15_t)0x7af8, (q15_t)0xdc78, - (q15_t)0x7af6, (q15_t)0xdc72, (q15_t)0x7af4, (q15_t)0xdc6c, (q15_t)0x7af2, (q15_t)0xdc66, (q15_t)0x7af1, (q15_t)0xdc60, - (q15_t)0x7aef, (q15_t)0xdc5a, (q15_t)0x7aed, (q15_t)0xdc54, (q15_t)0x7aeb, (q15_t)0xdc4e, (q15_t)0x7aea, (q15_t)0xdc48, - (q15_t)0x7ae8, (q15_t)0xdc42, (q15_t)0x7ae6, (q15_t)0xdc3c, (q15_t)0x7ae4, (q15_t)0xdc36, (q15_t)0x7ae3, (q15_t)0xdc30, - (q15_t)0x7ae1, (q15_t)0xdc2a, (q15_t)0x7adf, (q15_t)0xdc24, (q15_t)0x7add, (q15_t)0xdc1e, (q15_t)0x7adc, (q15_t)0xdc18, - (q15_t)0x7ada, (q15_t)0xdc12, (q15_t)0x7ad8, (q15_t)0xdc0c, (q15_t)0x7ad6, (q15_t)0xdc06, (q15_t)0x7ad5, (q15_t)0xdbff, - (q15_t)0x7ad3, (q15_t)0xdbf9, (q15_t)0x7ad1, (q15_t)0xdbf3, (q15_t)0x7acf, (q15_t)0xdbed, (q15_t)0x7acd, (q15_t)0xdbe7, - (q15_t)0x7acc, (q15_t)0xdbe1, (q15_t)0x7aca, (q15_t)0xdbdb, (q15_t)0x7ac8, (q15_t)0xdbd5, (q15_t)0x7ac6, (q15_t)0xdbcf, - (q15_t)0x7ac5, (q15_t)0xdbc9, (q15_t)0x7ac3, (q15_t)0xdbc3, (q15_t)0x7ac1, (q15_t)0xdbbd, (q15_t)0x7abf, (q15_t)0xdbb7, - (q15_t)0x7abd, (q15_t)0xdbb1, (q15_t)0x7abc, (q15_t)0xdbab, (q15_t)0x7aba, (q15_t)0xdba5, (q15_t)0x7ab8, (q15_t)0xdb9f, - (q15_t)0x7ab6, (q15_t)0xdb99, (q15_t)0x7ab5, (q15_t)0xdb93, (q15_t)0x7ab3, (q15_t)0xdb8d, (q15_t)0x7ab1, (q15_t)0xdb87, - (q15_t)0x7aaf, (q15_t)0xdb81, (q15_t)0x7aad, (q15_t)0xdb7b, (q15_t)0x7aac, (q15_t)0xdb75, (q15_t)0x7aaa, (q15_t)0xdb6f, - (q15_t)0x7aa8, (q15_t)0xdb69, (q15_t)0x7aa6, (q15_t)0xdb63, (q15_t)0x7aa4, (q15_t)0xdb5d, (q15_t)0x7aa3, (q15_t)0xdb57, - (q15_t)0x7aa1, (q15_t)0xdb51, (q15_t)0x7a9f, (q15_t)0xdb4b, (q15_t)0x7a9d, (q15_t)0xdb45, (q15_t)0x7a9b, (q15_t)0xdb3f, - (q15_t)0x7a9a, (q15_t)0xdb39, (q15_t)0x7a98, (q15_t)0xdb33, (q15_t)0x7a96, (q15_t)0xdb2d, (q15_t)0x7a94, (q15_t)0xdb27, - (q15_t)0x7a92, (q15_t)0xdb21, (q15_t)0x7a91, (q15_t)0xdb1b, (q15_t)0x7a8f, (q15_t)0xdb15, (q15_t)0x7a8d, (q15_t)0xdb0f, - (q15_t)0x7a8b, (q15_t)0xdb09, (q15_t)0x7a89, (q15_t)0xdb03, (q15_t)0x7a87, (q15_t)0xdafd, (q15_t)0x7a86, (q15_t)0xdaf7, - (q15_t)0x7a84, (q15_t)0xdaf1, (q15_t)0x7a82, (q15_t)0xdaea, (q15_t)0x7a80, (q15_t)0xdae4, (q15_t)0x7a7e, (q15_t)0xdade, - (q15_t)0x7a7d, (q15_t)0xdad8, (q15_t)0x7a7b, (q15_t)0xdad2, (q15_t)0x7a79, (q15_t)0xdacc, (q15_t)0x7a77, (q15_t)0xdac6, - (q15_t)0x7a75, (q15_t)0xdac0, (q15_t)0x7a73, (q15_t)0xdaba, (q15_t)0x7a72, (q15_t)0xdab4, (q15_t)0x7a70, (q15_t)0xdaae, - (q15_t)0x7a6e, (q15_t)0xdaa8, (q15_t)0x7a6c, (q15_t)0xdaa2, (q15_t)0x7a6a, (q15_t)0xda9c, (q15_t)0x7a68, (q15_t)0xda96, - (q15_t)0x7a67, (q15_t)0xda90, (q15_t)0x7a65, (q15_t)0xda8a, (q15_t)0x7a63, (q15_t)0xda84, (q15_t)0x7a61, (q15_t)0xda7e, - (q15_t)0x7a5f, (q15_t)0xda78, (q15_t)0x7a5d, (q15_t)0xda72, (q15_t)0x7a5c, (q15_t)0xda6c, (q15_t)0x7a5a, (q15_t)0xda66, - (q15_t)0x7a58, (q15_t)0xda60, (q15_t)0x7a56, (q15_t)0xda5a, (q15_t)0x7a54, (q15_t)0xda54, (q15_t)0x7a52, (q15_t)0xda4e, - (q15_t)0x7a50, (q15_t)0xda48, (q15_t)0x7a4f, (q15_t)0xda42, (q15_t)0x7a4d, (q15_t)0xda3c, (q15_t)0x7a4b, (q15_t)0xda36, - (q15_t)0x7a49, (q15_t)0xda30, (q15_t)0x7a47, (q15_t)0xda2a, (q15_t)0x7a45, (q15_t)0xda24, (q15_t)0x7a43, (q15_t)0xda1e, - (q15_t)0x7a42, (q15_t)0xda18, (q15_t)0x7a40, (q15_t)0xda12, (q15_t)0x7a3e, (q15_t)0xda0c, (q15_t)0x7a3c, (q15_t)0xda06, - (q15_t)0x7a3a, (q15_t)0xda00, (q15_t)0x7a38, (q15_t)0xd9fa, (q15_t)0x7a36, (q15_t)0xd9f4, (q15_t)0x7a35, (q15_t)0xd9ee, - (q15_t)0x7a33, (q15_t)0xd9e8, (q15_t)0x7a31, (q15_t)0xd9e2, (q15_t)0x7a2f, (q15_t)0xd9dc, (q15_t)0x7a2d, (q15_t)0xd9d6, - (q15_t)0x7a2b, (q15_t)0xd9d0, (q15_t)0x7a29, (q15_t)0xd9ca, (q15_t)0x7a27, (q15_t)0xd9c4, (q15_t)0x7a26, (q15_t)0xd9be, - (q15_t)0x7a24, (q15_t)0xd9b8, (q15_t)0x7a22, (q15_t)0xd9b2, (q15_t)0x7a20, (q15_t)0xd9ac, (q15_t)0x7a1e, (q15_t)0xd9a6, - (q15_t)0x7a1c, (q15_t)0xd9a0, (q15_t)0x7a1a, (q15_t)0xd99a, (q15_t)0x7a18, (q15_t)0xd994, (q15_t)0x7a16, (q15_t)0xd98e, - (q15_t)0x7a15, (q15_t)0xd988, (q15_t)0x7a13, (q15_t)0xd982, (q15_t)0x7a11, (q15_t)0xd97c, (q15_t)0x7a0f, (q15_t)0xd976, - (q15_t)0x7a0d, (q15_t)0xd970, (q15_t)0x7a0b, (q15_t)0xd96a, (q15_t)0x7a09, (q15_t)0xd964, (q15_t)0x7a07, (q15_t)0xd95e, - (q15_t)0x7a05, (q15_t)0xd958, (q15_t)0x7a04, (q15_t)0xd952, (q15_t)0x7a02, (q15_t)0xd94c, (q15_t)0x7a00, (q15_t)0xd946, - (q15_t)0x79fe, (q15_t)0xd940, (q15_t)0x79fc, (q15_t)0xd93a, (q15_t)0x79fa, (q15_t)0xd934, (q15_t)0x79f8, (q15_t)0xd92e, - (q15_t)0x79f6, (q15_t)0xd928, (q15_t)0x79f4, (q15_t)0xd922, (q15_t)0x79f2, (q15_t)0xd91c, (q15_t)0x79f0, (q15_t)0xd917, - (q15_t)0x79ef, (q15_t)0xd911, (q15_t)0x79ed, (q15_t)0xd90b, (q15_t)0x79eb, (q15_t)0xd905, (q15_t)0x79e9, (q15_t)0xd8ff, - (q15_t)0x79e7, (q15_t)0xd8f9, (q15_t)0x79e5, (q15_t)0xd8f3, (q15_t)0x79e3, (q15_t)0xd8ed, (q15_t)0x79e1, (q15_t)0xd8e7, - (q15_t)0x79df, (q15_t)0xd8e1, (q15_t)0x79dd, (q15_t)0xd8db, (q15_t)0x79db, (q15_t)0xd8d5, (q15_t)0x79d9, (q15_t)0xd8cf, - (q15_t)0x79d8, (q15_t)0xd8c9, (q15_t)0x79d6, (q15_t)0xd8c3, (q15_t)0x79d4, (q15_t)0xd8bd, (q15_t)0x79d2, (q15_t)0xd8b7, - (q15_t)0x79d0, (q15_t)0xd8b1, (q15_t)0x79ce, (q15_t)0xd8ab, (q15_t)0x79cc, (q15_t)0xd8a5, (q15_t)0x79ca, (q15_t)0xd89f, - (q15_t)0x79c8, (q15_t)0xd899, (q15_t)0x79c6, (q15_t)0xd893, (q15_t)0x79c4, (q15_t)0xd88d, (q15_t)0x79c2, (q15_t)0xd887, - (q15_t)0x79c0, (q15_t)0xd881, (q15_t)0x79be, (q15_t)0xd87b, (q15_t)0x79bc, (q15_t)0xd875, (q15_t)0x79bb, (q15_t)0xd86f, - (q15_t)0x79b9, (q15_t)0xd869, (q15_t)0x79b7, (q15_t)0xd863, (q15_t)0x79b5, (q15_t)0xd85d, (q15_t)0x79b3, (q15_t)0xd857, - (q15_t)0x79b1, (q15_t)0xd851, (q15_t)0x79af, (q15_t)0xd84b, (q15_t)0x79ad, (q15_t)0xd845, (q15_t)0x79ab, (q15_t)0xd83f, - (q15_t)0x79a9, (q15_t)0xd839, (q15_t)0x79a7, (q15_t)0xd833, (q15_t)0x79a5, (q15_t)0xd82d, (q15_t)0x79a3, (q15_t)0xd827, - (q15_t)0x79a1, (q15_t)0xd821, (q15_t)0x799f, (q15_t)0xd81b, (q15_t)0x799d, (q15_t)0xd815, (q15_t)0x799b, (q15_t)0xd80f, - (q15_t)0x7999, (q15_t)0xd80a, (q15_t)0x7997, (q15_t)0xd804, (q15_t)0x7995, (q15_t)0xd7fe, (q15_t)0x7993, (q15_t)0xd7f8, - (q15_t)0x7992, (q15_t)0xd7f2, (q15_t)0x7990, (q15_t)0xd7ec, (q15_t)0x798e, (q15_t)0xd7e6, (q15_t)0x798c, (q15_t)0xd7e0, - (q15_t)0x798a, (q15_t)0xd7da, (q15_t)0x7988, (q15_t)0xd7d4, (q15_t)0x7986, (q15_t)0xd7ce, (q15_t)0x7984, (q15_t)0xd7c8, - (q15_t)0x7982, (q15_t)0xd7c2, (q15_t)0x7980, (q15_t)0xd7bc, (q15_t)0x797e, (q15_t)0xd7b6, (q15_t)0x797c, (q15_t)0xd7b0, - (q15_t)0x797a, (q15_t)0xd7aa, (q15_t)0x7978, (q15_t)0xd7a4, (q15_t)0x7976, (q15_t)0xd79e, (q15_t)0x7974, (q15_t)0xd798, - (q15_t)0x7972, (q15_t)0xd792, (q15_t)0x7970, (q15_t)0xd78c, (q15_t)0x796e, (q15_t)0xd786, (q15_t)0x796c, (q15_t)0xd780, - (q15_t)0x796a, (q15_t)0xd77a, (q15_t)0x7968, (q15_t)0xd774, (q15_t)0x7966, (q15_t)0xd76e, (q15_t)0x7964, (q15_t)0xd768, - (q15_t)0x7962, (q15_t)0xd763, (q15_t)0x7960, (q15_t)0xd75d, (q15_t)0x795e, (q15_t)0xd757, (q15_t)0x795c, (q15_t)0xd751, - (q15_t)0x795a, (q15_t)0xd74b, (q15_t)0x7958, (q15_t)0xd745, (q15_t)0x7956, (q15_t)0xd73f, (q15_t)0x7954, (q15_t)0xd739, - (q15_t)0x7952, (q15_t)0xd733, (q15_t)0x7950, (q15_t)0xd72d, (q15_t)0x794e, (q15_t)0xd727, (q15_t)0x794c, (q15_t)0xd721, - (q15_t)0x794a, (q15_t)0xd71b, (q15_t)0x7948, (q15_t)0xd715, (q15_t)0x7946, (q15_t)0xd70f, (q15_t)0x7944, (q15_t)0xd709, - (q15_t)0x7942, (q15_t)0xd703, (q15_t)0x7940, (q15_t)0xd6fd, (q15_t)0x793e, (q15_t)0xd6f7, (q15_t)0x793c, (q15_t)0xd6f1, - (q15_t)0x793a, (q15_t)0xd6eb, (q15_t)0x7938, (q15_t)0xd6e5, (q15_t)0x7936, (q15_t)0xd6e0, (q15_t)0x7934, (q15_t)0xd6da, - (q15_t)0x7932, (q15_t)0xd6d4, (q15_t)0x7930, (q15_t)0xd6ce, (q15_t)0x792e, (q15_t)0xd6c8, (q15_t)0x792c, (q15_t)0xd6c2, - (q15_t)0x792a, (q15_t)0xd6bc, (q15_t)0x7928, (q15_t)0xd6b6, (q15_t)0x7926, (q15_t)0xd6b0, (q15_t)0x7924, (q15_t)0xd6aa, - (q15_t)0x7922, (q15_t)0xd6a4, (q15_t)0x7920, (q15_t)0xd69e, (q15_t)0x791e, (q15_t)0xd698, (q15_t)0x791c, (q15_t)0xd692, - (q15_t)0x7919, (q15_t)0xd68c, (q15_t)0x7917, (q15_t)0xd686, (q15_t)0x7915, (q15_t)0xd680, (q15_t)0x7913, (q15_t)0xd67a, - (q15_t)0x7911, (q15_t)0xd675, (q15_t)0x790f, (q15_t)0xd66f, (q15_t)0x790d, (q15_t)0xd669, (q15_t)0x790b, (q15_t)0xd663, - (q15_t)0x7909, (q15_t)0xd65d, (q15_t)0x7907, (q15_t)0xd657, (q15_t)0x7905, (q15_t)0xd651, (q15_t)0x7903, (q15_t)0xd64b, - (q15_t)0x7901, (q15_t)0xd645, (q15_t)0x78ff, (q15_t)0xd63f, (q15_t)0x78fd, (q15_t)0xd639, (q15_t)0x78fb, (q15_t)0xd633, - (q15_t)0x78f9, (q15_t)0xd62d, (q15_t)0x78f7, (q15_t)0xd627, (q15_t)0x78f5, (q15_t)0xd621, (q15_t)0x78f3, (q15_t)0xd61b, - (q15_t)0x78f1, (q15_t)0xd615, (q15_t)0x78ee, (q15_t)0xd610, (q15_t)0x78ec, (q15_t)0xd60a, (q15_t)0x78ea, (q15_t)0xd604, - (q15_t)0x78e8, (q15_t)0xd5fe, (q15_t)0x78e6, (q15_t)0xd5f8, (q15_t)0x78e4, (q15_t)0xd5f2, (q15_t)0x78e2, (q15_t)0xd5ec, - (q15_t)0x78e0, (q15_t)0xd5e6, (q15_t)0x78de, (q15_t)0xd5e0, (q15_t)0x78dc, (q15_t)0xd5da, (q15_t)0x78da, (q15_t)0xd5d4, - (q15_t)0x78d8, (q15_t)0xd5ce, (q15_t)0x78d6, (q15_t)0xd5c8, (q15_t)0x78d4, (q15_t)0xd5c2, (q15_t)0x78d2, (q15_t)0xd5bc, - (q15_t)0x78cf, (q15_t)0xd5b7, (q15_t)0x78cd, (q15_t)0xd5b1, (q15_t)0x78cb, (q15_t)0xd5ab, (q15_t)0x78c9, (q15_t)0xd5a5, - (q15_t)0x78c7, (q15_t)0xd59f, (q15_t)0x78c5, (q15_t)0xd599, (q15_t)0x78c3, (q15_t)0xd593, (q15_t)0x78c1, (q15_t)0xd58d, - (q15_t)0x78bf, (q15_t)0xd587, (q15_t)0x78bd, (q15_t)0xd581, (q15_t)0x78bb, (q15_t)0xd57b, (q15_t)0x78b9, (q15_t)0xd575, - (q15_t)0x78b6, (q15_t)0xd56f, (q15_t)0x78b4, (q15_t)0xd569, (q15_t)0x78b2, (q15_t)0xd564, (q15_t)0x78b0, (q15_t)0xd55e, - (q15_t)0x78ae, (q15_t)0xd558, (q15_t)0x78ac, (q15_t)0xd552, (q15_t)0x78aa, (q15_t)0xd54c, (q15_t)0x78a8, (q15_t)0xd546, - (q15_t)0x78a6, (q15_t)0xd540, (q15_t)0x78a4, (q15_t)0xd53a, (q15_t)0x78a2, (q15_t)0xd534, (q15_t)0x789f, (q15_t)0xd52e, - (q15_t)0x789d, (q15_t)0xd528, (q15_t)0x789b, (q15_t)0xd522, (q15_t)0x7899, (q15_t)0xd51c, (q15_t)0x7897, (q15_t)0xd517, - (q15_t)0x7895, (q15_t)0xd511, (q15_t)0x7893, (q15_t)0xd50b, (q15_t)0x7891, (q15_t)0xd505, (q15_t)0x788f, (q15_t)0xd4ff, - (q15_t)0x788c, (q15_t)0xd4f9, (q15_t)0x788a, (q15_t)0xd4f3, (q15_t)0x7888, (q15_t)0xd4ed, (q15_t)0x7886, (q15_t)0xd4e7, - (q15_t)0x7884, (q15_t)0xd4e1, (q15_t)0x7882, (q15_t)0xd4db, (q15_t)0x7880, (q15_t)0xd4d5, (q15_t)0x787e, (q15_t)0xd4d0, - (q15_t)0x787c, (q15_t)0xd4ca, (q15_t)0x7879, (q15_t)0xd4c4, (q15_t)0x7877, (q15_t)0xd4be, (q15_t)0x7875, (q15_t)0xd4b8, - (q15_t)0x7873, (q15_t)0xd4b2, (q15_t)0x7871, (q15_t)0xd4ac, (q15_t)0x786f, (q15_t)0xd4a6, (q15_t)0x786d, (q15_t)0xd4a0, - (q15_t)0x786b, (q15_t)0xd49a, (q15_t)0x7868, (q15_t)0xd494, (q15_t)0x7866, (q15_t)0xd48f, (q15_t)0x7864, (q15_t)0xd489, - (q15_t)0x7862, (q15_t)0xd483, (q15_t)0x7860, (q15_t)0xd47d, (q15_t)0x785e, (q15_t)0xd477, (q15_t)0x785c, (q15_t)0xd471, - (q15_t)0x7859, (q15_t)0xd46b, (q15_t)0x7857, (q15_t)0xd465, (q15_t)0x7855, (q15_t)0xd45f, (q15_t)0x7853, (q15_t)0xd459, - (q15_t)0x7851, (q15_t)0xd453, (q15_t)0x784f, (q15_t)0xd44e, (q15_t)0x784d, (q15_t)0xd448, (q15_t)0x784a, (q15_t)0xd442, - (q15_t)0x7848, (q15_t)0xd43c, (q15_t)0x7846, (q15_t)0xd436, (q15_t)0x7844, (q15_t)0xd430, (q15_t)0x7842, (q15_t)0xd42a, - (q15_t)0x7840, (q15_t)0xd424, (q15_t)0x783e, (q15_t)0xd41e, (q15_t)0x783b, (q15_t)0xd418, (q15_t)0x7839, (q15_t)0xd412, - (q15_t)0x7837, (q15_t)0xd40d, (q15_t)0x7835, (q15_t)0xd407, (q15_t)0x7833, (q15_t)0xd401, (q15_t)0x7831, (q15_t)0xd3fb, - (q15_t)0x782e, (q15_t)0xd3f5, (q15_t)0x782c, (q15_t)0xd3ef, (q15_t)0x782a, (q15_t)0xd3e9, (q15_t)0x7828, (q15_t)0xd3e3, - (q15_t)0x7826, (q15_t)0xd3dd, (q15_t)0x7824, (q15_t)0xd3d7, (q15_t)0x7821, (q15_t)0xd3d2, (q15_t)0x781f, (q15_t)0xd3cc, - (q15_t)0x781d, (q15_t)0xd3c6, (q15_t)0x781b, (q15_t)0xd3c0, (q15_t)0x7819, (q15_t)0xd3ba, (q15_t)0x7817, (q15_t)0xd3b4, - (q15_t)0x7814, (q15_t)0xd3ae, (q15_t)0x7812, (q15_t)0xd3a8, (q15_t)0x7810, (q15_t)0xd3a2, (q15_t)0x780e, (q15_t)0xd39d, - (q15_t)0x780c, (q15_t)0xd397, (q15_t)0x780a, (q15_t)0xd391, (q15_t)0x7807, (q15_t)0xd38b, (q15_t)0x7805, (q15_t)0xd385, - (q15_t)0x7803, (q15_t)0xd37f, (q15_t)0x7801, (q15_t)0xd379, (q15_t)0x77ff, (q15_t)0xd373, (q15_t)0x77fc, (q15_t)0xd36d, - (q15_t)0x77fa, (q15_t)0xd368, (q15_t)0x77f8, (q15_t)0xd362, (q15_t)0x77f6, (q15_t)0xd35c, (q15_t)0x77f4, (q15_t)0xd356, - (q15_t)0x77f1, (q15_t)0xd350, (q15_t)0x77ef, (q15_t)0xd34a, (q15_t)0x77ed, (q15_t)0xd344, (q15_t)0x77eb, (q15_t)0xd33e, - (q15_t)0x77e9, (q15_t)0xd338, (q15_t)0x77e6, (q15_t)0xd333, (q15_t)0x77e4, (q15_t)0xd32d, (q15_t)0x77e2, (q15_t)0xd327, - (q15_t)0x77e0, (q15_t)0xd321, (q15_t)0x77de, (q15_t)0xd31b, (q15_t)0x77db, (q15_t)0xd315, (q15_t)0x77d9, (q15_t)0xd30f, - (q15_t)0x77d7, (q15_t)0xd309, (q15_t)0x77d5, (q15_t)0xd303, (q15_t)0x77d3, (q15_t)0xd2fe, (q15_t)0x77d0, (q15_t)0xd2f8, - (q15_t)0x77ce, (q15_t)0xd2f2, (q15_t)0x77cc, (q15_t)0xd2ec, (q15_t)0x77ca, (q15_t)0xd2e6, (q15_t)0x77c8, (q15_t)0xd2e0, - (q15_t)0x77c5, (q15_t)0xd2da, (q15_t)0x77c3, (q15_t)0xd2d4, (q15_t)0x77c1, (q15_t)0xd2cf, (q15_t)0x77bf, (q15_t)0xd2c9, - (q15_t)0x77bc, (q15_t)0xd2c3, (q15_t)0x77ba, (q15_t)0xd2bd, (q15_t)0x77b8, (q15_t)0xd2b7, (q15_t)0x77b6, (q15_t)0xd2b1, - (q15_t)0x77b4, (q15_t)0xd2ab, (q15_t)0x77b1, (q15_t)0xd2a5, (q15_t)0x77af, (q15_t)0xd2a0, (q15_t)0x77ad, (q15_t)0xd29a, - (q15_t)0x77ab, (q15_t)0xd294, (q15_t)0x77a8, (q15_t)0xd28e, (q15_t)0x77a6, (q15_t)0xd288, (q15_t)0x77a4, (q15_t)0xd282, - (q15_t)0x77a2, (q15_t)0xd27c, (q15_t)0x77a0, (q15_t)0xd276, (q15_t)0x779d, (q15_t)0xd271, (q15_t)0x779b, (q15_t)0xd26b, - (q15_t)0x7799, (q15_t)0xd265, (q15_t)0x7797, (q15_t)0xd25f, (q15_t)0x7794, (q15_t)0xd259, (q15_t)0x7792, (q15_t)0xd253, - (q15_t)0x7790, (q15_t)0xd24d, (q15_t)0x778e, (q15_t)0xd247, (q15_t)0x778b, (q15_t)0xd242, (q15_t)0x7789, (q15_t)0xd23c, - (q15_t)0x7787, (q15_t)0xd236, (q15_t)0x7785, (q15_t)0xd230, (q15_t)0x7782, (q15_t)0xd22a, (q15_t)0x7780, (q15_t)0xd224, - (q15_t)0x777e, (q15_t)0xd21e, (q15_t)0x777c, (q15_t)0xd219, (q15_t)0x7779, (q15_t)0xd213, (q15_t)0x7777, (q15_t)0xd20d, - (q15_t)0x7775, (q15_t)0xd207, (q15_t)0x7773, (q15_t)0xd201, (q15_t)0x7770, (q15_t)0xd1fb, (q15_t)0x776e, (q15_t)0xd1f5, - (q15_t)0x776c, (q15_t)0xd1ef, (q15_t)0x776a, (q15_t)0xd1ea, (q15_t)0x7767, (q15_t)0xd1e4, (q15_t)0x7765, (q15_t)0xd1de, - (q15_t)0x7763, (q15_t)0xd1d8, (q15_t)0x7760, (q15_t)0xd1d2, (q15_t)0x775e, (q15_t)0xd1cc, (q15_t)0x775c, (q15_t)0xd1c6, - (q15_t)0x775a, (q15_t)0xd1c1, (q15_t)0x7757, (q15_t)0xd1bb, (q15_t)0x7755, (q15_t)0xd1b5, (q15_t)0x7753, (q15_t)0xd1af, - (q15_t)0x7751, (q15_t)0xd1a9, (q15_t)0x774e, (q15_t)0xd1a3, (q15_t)0x774c, (q15_t)0xd19d, (q15_t)0x774a, (q15_t)0xd198, - (q15_t)0x7747, (q15_t)0xd192, (q15_t)0x7745, (q15_t)0xd18c, (q15_t)0x7743, (q15_t)0xd186, (q15_t)0x7741, (q15_t)0xd180, - (q15_t)0x773e, (q15_t)0xd17a, (q15_t)0x773c, (q15_t)0xd174, (q15_t)0x773a, (q15_t)0xd16f, (q15_t)0x7738, (q15_t)0xd169, - (q15_t)0x7735, (q15_t)0xd163, (q15_t)0x7733, (q15_t)0xd15d, (q15_t)0x7731, (q15_t)0xd157, (q15_t)0x772e, (q15_t)0xd151, - (q15_t)0x772c, (q15_t)0xd14b, (q15_t)0x772a, (q15_t)0xd146, (q15_t)0x7727, (q15_t)0xd140, (q15_t)0x7725, (q15_t)0xd13a, - (q15_t)0x7723, (q15_t)0xd134, (q15_t)0x7721, (q15_t)0xd12e, (q15_t)0x771e, (q15_t)0xd128, (q15_t)0x771c, (q15_t)0xd123, - (q15_t)0x771a, (q15_t)0xd11d, (q15_t)0x7717, (q15_t)0xd117, (q15_t)0x7715, (q15_t)0xd111, (q15_t)0x7713, (q15_t)0xd10b, - (q15_t)0x7710, (q15_t)0xd105, (q15_t)0x770e, (q15_t)0xd0ff, (q15_t)0x770c, (q15_t)0xd0fa, (q15_t)0x770a, (q15_t)0xd0f4, - (q15_t)0x7707, (q15_t)0xd0ee, (q15_t)0x7705, (q15_t)0xd0e8, (q15_t)0x7703, (q15_t)0xd0e2, (q15_t)0x7700, (q15_t)0xd0dc, - (q15_t)0x76fe, (q15_t)0xd0d7, (q15_t)0x76fc, (q15_t)0xd0d1, (q15_t)0x76f9, (q15_t)0xd0cb, (q15_t)0x76f7, (q15_t)0xd0c5, - (q15_t)0x76f5, (q15_t)0xd0bf, (q15_t)0x76f2, (q15_t)0xd0b9, (q15_t)0x76f0, (q15_t)0xd0b4, (q15_t)0x76ee, (q15_t)0xd0ae, - (q15_t)0x76eb, (q15_t)0xd0a8, (q15_t)0x76e9, (q15_t)0xd0a2, (q15_t)0x76e7, (q15_t)0xd09c, (q15_t)0x76e4, (q15_t)0xd096, - (q15_t)0x76e2, (q15_t)0xd091, (q15_t)0x76e0, (q15_t)0xd08b, (q15_t)0x76dd, (q15_t)0xd085, (q15_t)0x76db, (q15_t)0xd07f, - (q15_t)0x76d9, (q15_t)0xd079, (q15_t)0x76d6, (q15_t)0xd073, (q15_t)0x76d4, (q15_t)0xd06e, (q15_t)0x76d2, (q15_t)0xd068, - (q15_t)0x76cf, (q15_t)0xd062, (q15_t)0x76cd, (q15_t)0xd05c, (q15_t)0x76cb, (q15_t)0xd056, (q15_t)0x76c8, (q15_t)0xd050, - (q15_t)0x76c6, (q15_t)0xd04b, (q15_t)0x76c4, (q15_t)0xd045, (q15_t)0x76c1, (q15_t)0xd03f, (q15_t)0x76bf, (q15_t)0xd039, - (q15_t)0x76bd, (q15_t)0xd033, (q15_t)0x76ba, (q15_t)0xd02d, (q15_t)0x76b8, (q15_t)0xd028, (q15_t)0x76b6, (q15_t)0xd022, - (q15_t)0x76b3, (q15_t)0xd01c, (q15_t)0x76b1, (q15_t)0xd016, (q15_t)0x76af, (q15_t)0xd010, (q15_t)0x76ac, (q15_t)0xd00a, - (q15_t)0x76aa, (q15_t)0xd005, (q15_t)0x76a8, (q15_t)0xcfff, (q15_t)0x76a5, (q15_t)0xcff9, (q15_t)0x76a3, (q15_t)0xcff3, - (q15_t)0x76a0, (q15_t)0xcfed, (q15_t)0x769e, (q15_t)0xcfe7, (q15_t)0x769c, (q15_t)0xcfe2, (q15_t)0x7699, (q15_t)0xcfdc, - (q15_t)0x7697, (q15_t)0xcfd6, (q15_t)0x7695, (q15_t)0xcfd0, (q15_t)0x7692, (q15_t)0xcfca, (q15_t)0x7690, (q15_t)0xcfc5, - (q15_t)0x768e, (q15_t)0xcfbf, (q15_t)0x768b, (q15_t)0xcfb9, (q15_t)0x7689, (q15_t)0xcfb3, (q15_t)0x7686, (q15_t)0xcfad, - (q15_t)0x7684, (q15_t)0xcfa7, (q15_t)0x7682, (q15_t)0xcfa2, (q15_t)0x767f, (q15_t)0xcf9c, (q15_t)0x767d, (q15_t)0xcf96, - (q15_t)0x767b, (q15_t)0xcf90, (q15_t)0x7678, (q15_t)0xcf8a, (q15_t)0x7676, (q15_t)0xcf85, (q15_t)0x7673, (q15_t)0xcf7f, - (q15_t)0x7671, (q15_t)0xcf79, (q15_t)0x766f, (q15_t)0xcf73, (q15_t)0x766c, (q15_t)0xcf6d, (q15_t)0x766a, (q15_t)0xcf67, - (q15_t)0x7668, (q15_t)0xcf62, (q15_t)0x7665, (q15_t)0xcf5c, (q15_t)0x7663, (q15_t)0xcf56, (q15_t)0x7660, (q15_t)0xcf50, - (q15_t)0x765e, (q15_t)0xcf4a, (q15_t)0x765c, (q15_t)0xcf45, (q15_t)0x7659, (q15_t)0xcf3f, (q15_t)0x7657, (q15_t)0xcf39, - (q15_t)0x7654, (q15_t)0xcf33, (q15_t)0x7652, (q15_t)0xcf2d, (q15_t)0x7650, (q15_t)0xcf28, (q15_t)0x764d, (q15_t)0xcf22, - (q15_t)0x764b, (q15_t)0xcf1c, (q15_t)0x7648, (q15_t)0xcf16, (q15_t)0x7646, (q15_t)0xcf10, (q15_t)0x7644, (q15_t)0xcf0b, - (q15_t)0x7641, (q15_t)0xcf05, (q15_t)0x763f, (q15_t)0xceff, (q15_t)0x763c, (q15_t)0xcef9, (q15_t)0x763a, (q15_t)0xcef3, - (q15_t)0x7638, (q15_t)0xceee, (q15_t)0x7635, (q15_t)0xcee8, (q15_t)0x7633, (q15_t)0xcee2, (q15_t)0x7630, (q15_t)0xcedc, - (q15_t)0x762e, (q15_t)0xced6, (q15_t)0x762b, (q15_t)0xced1, (q15_t)0x7629, (q15_t)0xcecb, (q15_t)0x7627, (q15_t)0xcec5, - (q15_t)0x7624, (q15_t)0xcebf, (q15_t)0x7622, (q15_t)0xceb9, (q15_t)0x761f, (q15_t)0xceb4, (q15_t)0x761d, (q15_t)0xceae, - (q15_t)0x761b, (q15_t)0xcea8, (q15_t)0x7618, (q15_t)0xcea2, (q15_t)0x7616, (q15_t)0xce9c, (q15_t)0x7613, (q15_t)0xce97, - (q15_t)0x7611, (q15_t)0xce91, (q15_t)0x760e, (q15_t)0xce8b, (q15_t)0x760c, (q15_t)0xce85, (q15_t)0x760a, (q15_t)0xce7f, - (q15_t)0x7607, (q15_t)0xce7a, (q15_t)0x7605, (q15_t)0xce74, (q15_t)0x7602, (q15_t)0xce6e, (q15_t)0x7600, (q15_t)0xce68, - (q15_t)0x75fd, (q15_t)0xce62, (q15_t)0x75fb, (q15_t)0xce5d, (q15_t)0x75f9, (q15_t)0xce57, (q15_t)0x75f6, (q15_t)0xce51, - (q15_t)0x75f4, (q15_t)0xce4b, (q15_t)0x75f1, (q15_t)0xce45, (q15_t)0x75ef, (q15_t)0xce40, (q15_t)0x75ec, (q15_t)0xce3a, - (q15_t)0x75ea, (q15_t)0xce34, (q15_t)0x75e7, (q15_t)0xce2e, (q15_t)0x75e5, (q15_t)0xce28, (q15_t)0x75e3, (q15_t)0xce23, - (q15_t)0x75e0, (q15_t)0xce1d, (q15_t)0x75de, (q15_t)0xce17, (q15_t)0x75db, (q15_t)0xce11, (q15_t)0x75d9, (q15_t)0xce0c, - (q15_t)0x75d6, (q15_t)0xce06, (q15_t)0x75d4, (q15_t)0xce00, (q15_t)0x75d1, (q15_t)0xcdfa, (q15_t)0x75cf, (q15_t)0xcdf4, - (q15_t)0x75cc, (q15_t)0xcdef, (q15_t)0x75ca, (q15_t)0xcde9, (q15_t)0x75c8, (q15_t)0xcde3, (q15_t)0x75c5, (q15_t)0xcddd, - (q15_t)0x75c3, (q15_t)0xcdd8, (q15_t)0x75c0, (q15_t)0xcdd2, (q15_t)0x75be, (q15_t)0xcdcc, (q15_t)0x75bb, (q15_t)0xcdc6, - (q15_t)0x75b9, (q15_t)0xcdc0, (q15_t)0x75b6, (q15_t)0xcdbb, (q15_t)0x75b4, (q15_t)0xcdb5, (q15_t)0x75b1, (q15_t)0xcdaf, - (q15_t)0x75af, (q15_t)0xcda9, (q15_t)0x75ac, (q15_t)0xcda3, (q15_t)0x75aa, (q15_t)0xcd9e, (q15_t)0x75a7, (q15_t)0xcd98, - (q15_t)0x75a5, (q15_t)0xcd92, (q15_t)0x75a3, (q15_t)0xcd8c, (q15_t)0x75a0, (q15_t)0xcd87, (q15_t)0x759e, (q15_t)0xcd81, - (q15_t)0x759b, (q15_t)0xcd7b, (q15_t)0x7599, (q15_t)0xcd75, (q15_t)0x7596, (q15_t)0xcd70, (q15_t)0x7594, (q15_t)0xcd6a, - (q15_t)0x7591, (q15_t)0xcd64, (q15_t)0x758f, (q15_t)0xcd5e, (q15_t)0x758c, (q15_t)0xcd58, (q15_t)0x758a, (q15_t)0xcd53, - (q15_t)0x7587, (q15_t)0xcd4d, (q15_t)0x7585, (q15_t)0xcd47, (q15_t)0x7582, (q15_t)0xcd41, (q15_t)0x7580, (q15_t)0xcd3c, - (q15_t)0x757d, (q15_t)0xcd36, (q15_t)0x757b, (q15_t)0xcd30, (q15_t)0x7578, (q15_t)0xcd2a, (q15_t)0x7576, (q15_t)0xcd25, - (q15_t)0x7573, (q15_t)0xcd1f, (q15_t)0x7571, (q15_t)0xcd19, (q15_t)0x756e, (q15_t)0xcd13, (q15_t)0x756c, (q15_t)0xcd0d, - (q15_t)0x7569, (q15_t)0xcd08, (q15_t)0x7567, (q15_t)0xcd02, (q15_t)0x7564, (q15_t)0xccfc, (q15_t)0x7562, (q15_t)0xccf6, - (q15_t)0x755f, (q15_t)0xccf1, (q15_t)0x755d, (q15_t)0xcceb, (q15_t)0x755a, (q15_t)0xcce5, (q15_t)0x7558, (q15_t)0xccdf, - (q15_t)0x7555, (q15_t)0xccda, (q15_t)0x7553, (q15_t)0xccd4, (q15_t)0x7550, (q15_t)0xccce, (q15_t)0x754e, (q15_t)0xccc8, - (q15_t)0x754b, (q15_t)0xccc3, (q15_t)0x7549, (q15_t)0xccbd, (q15_t)0x7546, (q15_t)0xccb7, (q15_t)0x7544, (q15_t)0xccb1, - (q15_t)0x7541, (q15_t)0xccac, (q15_t)0x753f, (q15_t)0xcca6, (q15_t)0x753c, (q15_t)0xcca0, (q15_t)0x753a, (q15_t)0xcc9a, - (q15_t)0x7537, (q15_t)0xcc95, (q15_t)0x7535, (q15_t)0xcc8f, (q15_t)0x7532, (q15_t)0xcc89, (q15_t)0x752f, (q15_t)0xcc83, - (q15_t)0x752d, (q15_t)0xcc7e, (q15_t)0x752a, (q15_t)0xcc78, (q15_t)0x7528, (q15_t)0xcc72, (q15_t)0x7525, (q15_t)0xcc6c, - (q15_t)0x7523, (q15_t)0xcc67, (q15_t)0x7520, (q15_t)0xcc61, (q15_t)0x751e, (q15_t)0xcc5b, (q15_t)0x751b, (q15_t)0xcc55, - (q15_t)0x7519, (q15_t)0xcc50, (q15_t)0x7516, (q15_t)0xcc4a, (q15_t)0x7514, (q15_t)0xcc44, (q15_t)0x7511, (q15_t)0xcc3e, - (q15_t)0x750f, (q15_t)0xcc39, (q15_t)0x750c, (q15_t)0xcc33, (q15_t)0x7509, (q15_t)0xcc2d, (q15_t)0x7507, (q15_t)0xcc27, - (q15_t)0x7504, (q15_t)0xcc22, (q15_t)0x7502, (q15_t)0xcc1c, (q15_t)0x74ff, (q15_t)0xcc16, (q15_t)0x74fd, (q15_t)0xcc10, - (q15_t)0x74fa, (q15_t)0xcc0b, (q15_t)0x74f8, (q15_t)0xcc05, (q15_t)0x74f5, (q15_t)0xcbff, (q15_t)0x74f2, (q15_t)0xcbf9, - (q15_t)0x74f0, (q15_t)0xcbf4, (q15_t)0x74ed, (q15_t)0xcbee, (q15_t)0x74eb, (q15_t)0xcbe8, (q15_t)0x74e8, (q15_t)0xcbe2, - (q15_t)0x74e6, (q15_t)0xcbdd, (q15_t)0x74e3, (q15_t)0xcbd7, (q15_t)0x74e1, (q15_t)0xcbd1, (q15_t)0x74de, (q15_t)0xcbcb, - (q15_t)0x74db, (q15_t)0xcbc6, (q15_t)0x74d9, (q15_t)0xcbc0, (q15_t)0x74d6, (q15_t)0xcbba, (q15_t)0x74d4, (q15_t)0xcbb5, - (q15_t)0x74d1, (q15_t)0xcbaf, (q15_t)0x74cf, (q15_t)0xcba9, (q15_t)0x74cc, (q15_t)0xcba3, (q15_t)0x74c9, (q15_t)0xcb9e, - (q15_t)0x74c7, (q15_t)0xcb98, (q15_t)0x74c4, (q15_t)0xcb92, (q15_t)0x74c2, (q15_t)0xcb8c, (q15_t)0x74bf, (q15_t)0xcb87, - (q15_t)0x74bd, (q15_t)0xcb81, (q15_t)0x74ba, (q15_t)0xcb7b, (q15_t)0x74b7, (q15_t)0xcb75, (q15_t)0x74b5, (q15_t)0xcb70, - (q15_t)0x74b2, (q15_t)0xcb6a, (q15_t)0x74b0, (q15_t)0xcb64, (q15_t)0x74ad, (q15_t)0xcb5f, (q15_t)0x74ab, (q15_t)0xcb59, - (q15_t)0x74a8, (q15_t)0xcb53, (q15_t)0x74a5, (q15_t)0xcb4d, (q15_t)0x74a3, (q15_t)0xcb48, (q15_t)0x74a0, (q15_t)0xcb42, - (q15_t)0x749e, (q15_t)0xcb3c, (q15_t)0x749b, (q15_t)0xcb36, (q15_t)0x7498, (q15_t)0xcb31, (q15_t)0x7496, (q15_t)0xcb2b, - (q15_t)0x7493, (q15_t)0xcb25, (q15_t)0x7491, (q15_t)0xcb20, (q15_t)0x748e, (q15_t)0xcb1a, (q15_t)0x748b, (q15_t)0xcb14, - (q15_t)0x7489, (q15_t)0xcb0e, (q15_t)0x7486, (q15_t)0xcb09, (q15_t)0x7484, (q15_t)0xcb03, (q15_t)0x7481, (q15_t)0xcafd, - (q15_t)0x747e, (q15_t)0xcaf8, (q15_t)0x747c, (q15_t)0xcaf2, (q15_t)0x7479, (q15_t)0xcaec, (q15_t)0x7477, (q15_t)0xcae6, - (q15_t)0x7474, (q15_t)0xcae1, (q15_t)0x7471, (q15_t)0xcadb, (q15_t)0x746f, (q15_t)0xcad5, (q15_t)0x746c, (q15_t)0xcad0, - (q15_t)0x746a, (q15_t)0xcaca, (q15_t)0x7467, (q15_t)0xcac4, (q15_t)0x7464, (q15_t)0xcabe, (q15_t)0x7462, (q15_t)0xcab9, - (q15_t)0x745f, (q15_t)0xcab3, (q15_t)0x745c, (q15_t)0xcaad, (q15_t)0x745a, (q15_t)0xcaa8, (q15_t)0x7457, (q15_t)0xcaa2, - (q15_t)0x7455, (q15_t)0xca9c, (q15_t)0x7452, (q15_t)0xca96, (q15_t)0x744f, (q15_t)0xca91, (q15_t)0x744d, (q15_t)0xca8b, - (q15_t)0x744a, (q15_t)0xca85, (q15_t)0x7448, (q15_t)0xca80, (q15_t)0x7445, (q15_t)0xca7a, (q15_t)0x7442, (q15_t)0xca74, - (q15_t)0x7440, (q15_t)0xca6e, (q15_t)0x743d, (q15_t)0xca69, (q15_t)0x743a, (q15_t)0xca63, (q15_t)0x7438, (q15_t)0xca5d, - (q15_t)0x7435, (q15_t)0xca58, (q15_t)0x7432, (q15_t)0xca52, (q15_t)0x7430, (q15_t)0xca4c, (q15_t)0x742d, (q15_t)0xca46, - (q15_t)0x742b, (q15_t)0xca41, (q15_t)0x7428, (q15_t)0xca3b, (q15_t)0x7425, (q15_t)0xca35, (q15_t)0x7423, (q15_t)0xca30, - (q15_t)0x7420, (q15_t)0xca2a, (q15_t)0x741d, (q15_t)0xca24, (q15_t)0x741b, (q15_t)0xca1f, (q15_t)0x7418, (q15_t)0xca19, - (q15_t)0x7415, (q15_t)0xca13, (q15_t)0x7413, (q15_t)0xca0d, (q15_t)0x7410, (q15_t)0xca08, (q15_t)0x740d, (q15_t)0xca02, - (q15_t)0x740b, (q15_t)0xc9fc, (q15_t)0x7408, (q15_t)0xc9f7, (q15_t)0x7406, (q15_t)0xc9f1, (q15_t)0x7403, (q15_t)0xc9eb, - (q15_t)0x7400, (q15_t)0xc9e6, (q15_t)0x73fe, (q15_t)0xc9e0, (q15_t)0x73fb, (q15_t)0xc9da, (q15_t)0x73f8, (q15_t)0xc9d5, - (q15_t)0x73f6, (q15_t)0xc9cf, (q15_t)0x73f3, (q15_t)0xc9c9, (q15_t)0x73f0, (q15_t)0xc9c3, (q15_t)0x73ee, (q15_t)0xc9be, - (q15_t)0x73eb, (q15_t)0xc9b8, (q15_t)0x73e8, (q15_t)0xc9b2, (q15_t)0x73e6, (q15_t)0xc9ad, (q15_t)0x73e3, (q15_t)0xc9a7, - (q15_t)0x73e0, (q15_t)0xc9a1, (q15_t)0x73de, (q15_t)0xc99c, (q15_t)0x73db, (q15_t)0xc996, (q15_t)0x73d8, (q15_t)0xc990, - (q15_t)0x73d6, (q15_t)0xc98b, (q15_t)0x73d3, (q15_t)0xc985, (q15_t)0x73d0, (q15_t)0xc97f, (q15_t)0x73ce, (q15_t)0xc97a, - (q15_t)0x73cb, (q15_t)0xc974, (q15_t)0x73c8, (q15_t)0xc96e, (q15_t)0x73c6, (q15_t)0xc968, (q15_t)0x73c3, (q15_t)0xc963, - (q15_t)0x73c0, (q15_t)0xc95d, (q15_t)0x73bd, (q15_t)0xc957, (q15_t)0x73bb, (q15_t)0xc952, (q15_t)0x73b8, (q15_t)0xc94c, - (q15_t)0x73b5, (q15_t)0xc946, (q15_t)0x73b3, (q15_t)0xc941, (q15_t)0x73b0, (q15_t)0xc93b, (q15_t)0x73ad, (q15_t)0xc935, - (q15_t)0x73ab, (q15_t)0xc930, (q15_t)0x73a8, (q15_t)0xc92a, (q15_t)0x73a5, (q15_t)0xc924, (q15_t)0x73a3, (q15_t)0xc91f, - (q15_t)0x73a0, (q15_t)0xc919, (q15_t)0x739d, (q15_t)0xc913, (q15_t)0x739b, (q15_t)0xc90e, (q15_t)0x7398, (q15_t)0xc908, - (q15_t)0x7395, (q15_t)0xc902, (q15_t)0x7392, (q15_t)0xc8fd, (q15_t)0x7390, (q15_t)0xc8f7, (q15_t)0x738d, (q15_t)0xc8f1, - (q15_t)0x738a, (q15_t)0xc8ec, (q15_t)0x7388, (q15_t)0xc8e6, (q15_t)0x7385, (q15_t)0xc8e0, (q15_t)0x7382, (q15_t)0xc8db, - (q15_t)0x737f, (q15_t)0xc8d5, (q15_t)0x737d, (q15_t)0xc8cf, (q15_t)0x737a, (q15_t)0xc8ca, (q15_t)0x7377, (q15_t)0xc8c4, - (q15_t)0x7375, (q15_t)0xc8be, (q15_t)0x7372, (q15_t)0xc8b9, (q15_t)0x736f, (q15_t)0xc8b3, (q15_t)0x736c, (q15_t)0xc8ad, - (q15_t)0x736a, (q15_t)0xc8a8, (q15_t)0x7367, (q15_t)0xc8a2, (q15_t)0x7364, (q15_t)0xc89c, (q15_t)0x7362, (q15_t)0xc897, - (q15_t)0x735f, (q15_t)0xc891, (q15_t)0x735c, (q15_t)0xc88b, (q15_t)0x7359, (q15_t)0xc886, (q15_t)0x7357, (q15_t)0xc880, - (q15_t)0x7354, (q15_t)0xc87a, (q15_t)0x7351, (q15_t)0xc875, (q15_t)0x734f, (q15_t)0xc86f, (q15_t)0x734c, (q15_t)0xc869, - (q15_t)0x7349, (q15_t)0xc864, (q15_t)0x7346, (q15_t)0xc85e, (q15_t)0x7344, (q15_t)0xc858, (q15_t)0x7341, (q15_t)0xc853, - (q15_t)0x733e, (q15_t)0xc84d, (q15_t)0x733b, (q15_t)0xc847, (q15_t)0x7339, (q15_t)0xc842, (q15_t)0x7336, (q15_t)0xc83c, - (q15_t)0x7333, (q15_t)0xc836, (q15_t)0x7330, (q15_t)0xc831, (q15_t)0x732e, (q15_t)0xc82b, (q15_t)0x732b, (q15_t)0xc825, - (q15_t)0x7328, (q15_t)0xc820, (q15_t)0x7326, (q15_t)0xc81a, (q15_t)0x7323, (q15_t)0xc814, (q15_t)0x7320, (q15_t)0xc80f, - (q15_t)0x731d, (q15_t)0xc809, (q15_t)0x731b, (q15_t)0xc803, (q15_t)0x7318, (q15_t)0xc7fe, (q15_t)0x7315, (q15_t)0xc7f8, - (q15_t)0x7312, (q15_t)0xc7f3, (q15_t)0x7310, (q15_t)0xc7ed, (q15_t)0x730d, (q15_t)0xc7e7, (q15_t)0x730a, (q15_t)0xc7e2, - (q15_t)0x7307, (q15_t)0xc7dc, (q15_t)0x7305, (q15_t)0xc7d6, (q15_t)0x7302, (q15_t)0xc7d1, (q15_t)0x72ff, (q15_t)0xc7cb, - (q15_t)0x72fc, (q15_t)0xc7c5, (q15_t)0x72f9, (q15_t)0xc7c0, (q15_t)0x72f7, (q15_t)0xc7ba, (q15_t)0x72f4, (q15_t)0xc7b4, - (q15_t)0x72f1, (q15_t)0xc7af, (q15_t)0x72ee, (q15_t)0xc7a9, (q15_t)0x72ec, (q15_t)0xc7a3, (q15_t)0x72e9, (q15_t)0xc79e, - (q15_t)0x72e6, (q15_t)0xc798, (q15_t)0x72e3, (q15_t)0xc793, (q15_t)0x72e1, (q15_t)0xc78d, (q15_t)0x72de, (q15_t)0xc787, - (q15_t)0x72db, (q15_t)0xc782, (q15_t)0x72d8, (q15_t)0xc77c, (q15_t)0x72d5, (q15_t)0xc776, (q15_t)0x72d3, (q15_t)0xc771, - (q15_t)0x72d0, (q15_t)0xc76b, (q15_t)0x72cd, (q15_t)0xc765, (q15_t)0x72ca, (q15_t)0xc760, (q15_t)0x72c8, (q15_t)0xc75a, - (q15_t)0x72c5, (q15_t)0xc755, (q15_t)0x72c2, (q15_t)0xc74f, (q15_t)0x72bf, (q15_t)0xc749, (q15_t)0x72bc, (q15_t)0xc744, - (q15_t)0x72ba, (q15_t)0xc73e, (q15_t)0x72b7, (q15_t)0xc738, (q15_t)0x72b4, (q15_t)0xc733, (q15_t)0x72b1, (q15_t)0xc72d, - (q15_t)0x72af, (q15_t)0xc728, (q15_t)0x72ac, (q15_t)0xc722, (q15_t)0x72a9, (q15_t)0xc71c, (q15_t)0x72a6, (q15_t)0xc717, - (q15_t)0x72a3, (q15_t)0xc711, (q15_t)0x72a1, (q15_t)0xc70b, (q15_t)0x729e, (q15_t)0xc706, (q15_t)0x729b, (q15_t)0xc700, - (q15_t)0x7298, (q15_t)0xc6fa, (q15_t)0x7295, (q15_t)0xc6f5, (q15_t)0x7293, (q15_t)0xc6ef, (q15_t)0x7290, (q15_t)0xc6ea, - (q15_t)0x728d, (q15_t)0xc6e4, (q15_t)0x728a, (q15_t)0xc6de, (q15_t)0x7287, (q15_t)0xc6d9, (q15_t)0x7285, (q15_t)0xc6d3, - (q15_t)0x7282, (q15_t)0xc6ce, (q15_t)0x727f, (q15_t)0xc6c8, (q15_t)0x727c, (q15_t)0xc6c2, (q15_t)0x7279, (q15_t)0xc6bd, - (q15_t)0x7276, (q15_t)0xc6b7, (q15_t)0x7274, (q15_t)0xc6b1, (q15_t)0x7271, (q15_t)0xc6ac, (q15_t)0x726e, (q15_t)0xc6a6, - (q15_t)0x726b, (q15_t)0xc6a1, (q15_t)0x7268, (q15_t)0xc69b, (q15_t)0x7266, (q15_t)0xc695, (q15_t)0x7263, (q15_t)0xc690, - (q15_t)0x7260, (q15_t)0xc68a, (q15_t)0x725d, (q15_t)0xc684, (q15_t)0x725a, (q15_t)0xc67f, (q15_t)0x7257, (q15_t)0xc679, - (q15_t)0x7255, (q15_t)0xc674, (q15_t)0x7252, (q15_t)0xc66e, (q15_t)0x724f, (q15_t)0xc668, (q15_t)0x724c, (q15_t)0xc663, - (q15_t)0x7249, (q15_t)0xc65d, (q15_t)0x7247, (q15_t)0xc658, (q15_t)0x7244, (q15_t)0xc652, (q15_t)0x7241, (q15_t)0xc64c, - (q15_t)0x723e, (q15_t)0xc647, (q15_t)0x723b, (q15_t)0xc641, (q15_t)0x7238, (q15_t)0xc63c, (q15_t)0x7236, (q15_t)0xc636, - (q15_t)0x7233, (q15_t)0xc630, (q15_t)0x7230, (q15_t)0xc62b, (q15_t)0x722d, (q15_t)0xc625, (q15_t)0x722a, (q15_t)0xc620, - (q15_t)0x7227, (q15_t)0xc61a, (q15_t)0x7224, (q15_t)0xc614, (q15_t)0x7222, (q15_t)0xc60f, (q15_t)0x721f, (q15_t)0xc609, - (q15_t)0x721c, (q15_t)0xc603, (q15_t)0x7219, (q15_t)0xc5fe, (q15_t)0x7216, (q15_t)0xc5f8, (q15_t)0x7213, (q15_t)0xc5f3, - (q15_t)0x7211, (q15_t)0xc5ed, (q15_t)0x720e, (q15_t)0xc5e7, (q15_t)0x720b, (q15_t)0xc5e2, (q15_t)0x7208, (q15_t)0xc5dc, - (q15_t)0x7205, (q15_t)0xc5d7, (q15_t)0x7202, (q15_t)0xc5d1, (q15_t)0x71ff, (q15_t)0xc5cc, (q15_t)0x71fd, (q15_t)0xc5c6, - (q15_t)0x71fa, (q15_t)0xc5c0, (q15_t)0x71f7, (q15_t)0xc5bb, (q15_t)0x71f4, (q15_t)0xc5b5, (q15_t)0x71f1, (q15_t)0xc5b0, - (q15_t)0x71ee, (q15_t)0xc5aa, (q15_t)0x71eb, (q15_t)0xc5a4, (q15_t)0x71e9, (q15_t)0xc59f, (q15_t)0x71e6, (q15_t)0xc599, - (q15_t)0x71e3, (q15_t)0xc594, (q15_t)0x71e0, (q15_t)0xc58e, (q15_t)0x71dd, (q15_t)0xc588, (q15_t)0x71da, (q15_t)0xc583, - (q15_t)0x71d7, (q15_t)0xc57d, (q15_t)0x71d4, (q15_t)0xc578, (q15_t)0x71d2, (q15_t)0xc572, (q15_t)0x71cf, (q15_t)0xc56c, - (q15_t)0x71cc, (q15_t)0xc567, (q15_t)0x71c9, (q15_t)0xc561, (q15_t)0x71c6, (q15_t)0xc55c, (q15_t)0x71c3, (q15_t)0xc556, - (q15_t)0x71c0, (q15_t)0xc551, (q15_t)0x71bd, (q15_t)0xc54b, (q15_t)0x71bb, (q15_t)0xc545, (q15_t)0x71b8, (q15_t)0xc540, - (q15_t)0x71b5, (q15_t)0xc53a, (q15_t)0x71b2, (q15_t)0xc535, (q15_t)0x71af, (q15_t)0xc52f, (q15_t)0x71ac, (q15_t)0xc529, - (q15_t)0x71a9, (q15_t)0xc524, (q15_t)0x71a6, (q15_t)0xc51e, (q15_t)0x71a3, (q15_t)0xc519, (q15_t)0x71a1, (q15_t)0xc513, - (q15_t)0x719e, (q15_t)0xc50e, (q15_t)0x719b, (q15_t)0xc508, (q15_t)0x7198, (q15_t)0xc502, (q15_t)0x7195, (q15_t)0xc4fd, - (q15_t)0x7192, (q15_t)0xc4f7, (q15_t)0x718f, (q15_t)0xc4f2, (q15_t)0x718c, (q15_t)0xc4ec, (q15_t)0x7189, (q15_t)0xc4e7, - (q15_t)0x7186, (q15_t)0xc4e1, (q15_t)0x7184, (q15_t)0xc4db, (q15_t)0x7181, (q15_t)0xc4d6, (q15_t)0x717e, (q15_t)0xc4d0, - (q15_t)0x717b, (q15_t)0xc4cb, (q15_t)0x7178, (q15_t)0xc4c5, (q15_t)0x7175, (q15_t)0xc4c0, (q15_t)0x7172, (q15_t)0xc4ba, - (q15_t)0x716f, (q15_t)0xc4b4, (q15_t)0x716c, (q15_t)0xc4af, (q15_t)0x7169, (q15_t)0xc4a9, (q15_t)0x7167, (q15_t)0xc4a4, - (q15_t)0x7164, (q15_t)0xc49e, (q15_t)0x7161, (q15_t)0xc499, (q15_t)0x715e, (q15_t)0xc493, (q15_t)0x715b, (q15_t)0xc48d, - (q15_t)0x7158, (q15_t)0xc488, (q15_t)0x7155, (q15_t)0xc482, (q15_t)0x7152, (q15_t)0xc47d, (q15_t)0x714f, (q15_t)0xc477, - (q15_t)0x714c, (q15_t)0xc472, (q15_t)0x7149, (q15_t)0xc46c, (q15_t)0x7146, (q15_t)0xc467, (q15_t)0x7143, (q15_t)0xc461, - (q15_t)0x7141, (q15_t)0xc45b, (q15_t)0x713e, (q15_t)0xc456, (q15_t)0x713b, (q15_t)0xc450, (q15_t)0x7138, (q15_t)0xc44b, - (q15_t)0x7135, (q15_t)0xc445, (q15_t)0x7132, (q15_t)0xc440, (q15_t)0x712f, (q15_t)0xc43a, (q15_t)0x712c, (q15_t)0xc434, - (q15_t)0x7129, (q15_t)0xc42f, (q15_t)0x7126, (q15_t)0xc429, (q15_t)0x7123, (q15_t)0xc424, (q15_t)0x7120, (q15_t)0xc41e, - (q15_t)0x711d, (q15_t)0xc419, (q15_t)0x711a, (q15_t)0xc413, (q15_t)0x7117, (q15_t)0xc40e, (q15_t)0x7114, (q15_t)0xc408, - (q15_t)0x7112, (q15_t)0xc403, (q15_t)0x710f, (q15_t)0xc3fd, (q15_t)0x710c, (q15_t)0xc3f7, (q15_t)0x7109, (q15_t)0xc3f2, - (q15_t)0x7106, (q15_t)0xc3ec, (q15_t)0x7103, (q15_t)0xc3e7, (q15_t)0x7100, (q15_t)0xc3e1, (q15_t)0x70fd, (q15_t)0xc3dc, - (q15_t)0x70fa, (q15_t)0xc3d6, (q15_t)0x70f7, (q15_t)0xc3d1, (q15_t)0x70f4, (q15_t)0xc3cb, (q15_t)0x70f1, (q15_t)0xc3c5, - (q15_t)0x70ee, (q15_t)0xc3c0, (q15_t)0x70eb, (q15_t)0xc3ba, (q15_t)0x70e8, (q15_t)0xc3b5, (q15_t)0x70e5, (q15_t)0xc3af, - (q15_t)0x70e2, (q15_t)0xc3aa, (q15_t)0x70df, (q15_t)0xc3a4, (q15_t)0x70dc, (q15_t)0xc39f, (q15_t)0x70d9, (q15_t)0xc399, - (q15_t)0x70d6, (q15_t)0xc394, (q15_t)0x70d3, (q15_t)0xc38e, (q15_t)0x70d1, (q15_t)0xc389, (q15_t)0x70ce, (q15_t)0xc383, - (q15_t)0x70cb, (q15_t)0xc37d, (q15_t)0x70c8, (q15_t)0xc378, (q15_t)0x70c5, (q15_t)0xc372, (q15_t)0x70c2, (q15_t)0xc36d, - (q15_t)0x70bf, (q15_t)0xc367, (q15_t)0x70bc, (q15_t)0xc362, (q15_t)0x70b9, (q15_t)0xc35c, (q15_t)0x70b6, (q15_t)0xc357, - (q15_t)0x70b3, (q15_t)0xc351, (q15_t)0x70b0, (q15_t)0xc34c, (q15_t)0x70ad, (q15_t)0xc346, (q15_t)0x70aa, (q15_t)0xc341, - (q15_t)0x70a7, (q15_t)0xc33b, (q15_t)0x70a4, (q15_t)0xc336, (q15_t)0x70a1, (q15_t)0xc330, (q15_t)0x709e, (q15_t)0xc32a, - (q15_t)0x709b, (q15_t)0xc325, (q15_t)0x7098, (q15_t)0xc31f, (q15_t)0x7095, (q15_t)0xc31a, (q15_t)0x7092, (q15_t)0xc314, - (q15_t)0x708f, (q15_t)0xc30f, (q15_t)0x708c, (q15_t)0xc309, (q15_t)0x7089, (q15_t)0xc304, (q15_t)0x7086, (q15_t)0xc2fe, - (q15_t)0x7083, (q15_t)0xc2f9, (q15_t)0x7080, (q15_t)0xc2f3, (q15_t)0x707d, (q15_t)0xc2ee, (q15_t)0x707a, (q15_t)0xc2e8, - (q15_t)0x7077, (q15_t)0xc2e3, (q15_t)0x7074, (q15_t)0xc2dd, (q15_t)0x7071, (q15_t)0xc2d8, (q15_t)0x706e, (q15_t)0xc2d2, - (q15_t)0x706b, (q15_t)0xc2cd, (q15_t)0x7068, (q15_t)0xc2c7, (q15_t)0x7065, (q15_t)0xc2c2, (q15_t)0x7062, (q15_t)0xc2bc, - (q15_t)0x705f, (q15_t)0xc2b7, (q15_t)0x705c, (q15_t)0xc2b1, (q15_t)0x7059, (q15_t)0xc2ab, (q15_t)0x7056, (q15_t)0xc2a6, - (q15_t)0x7053, (q15_t)0xc2a0, (q15_t)0x7050, (q15_t)0xc29b, (q15_t)0x704d, (q15_t)0xc295, (q15_t)0x704a, (q15_t)0xc290, - (q15_t)0x7047, (q15_t)0xc28a, (q15_t)0x7044, (q15_t)0xc285, (q15_t)0x7041, (q15_t)0xc27f, (q15_t)0x703e, (q15_t)0xc27a, - (q15_t)0x703b, (q15_t)0xc274, (q15_t)0x7038, (q15_t)0xc26f, (q15_t)0x7035, (q15_t)0xc269, (q15_t)0x7032, (q15_t)0xc264, - (q15_t)0x702f, (q15_t)0xc25e, (q15_t)0x702c, (q15_t)0xc259, (q15_t)0x7029, (q15_t)0xc253, (q15_t)0x7026, (q15_t)0xc24e, - (q15_t)0x7023, (q15_t)0xc248, (q15_t)0x7020, (q15_t)0xc243, (q15_t)0x701d, (q15_t)0xc23d, (q15_t)0x7019, (q15_t)0xc238, - (q15_t)0x7016, (q15_t)0xc232, (q15_t)0x7013, (q15_t)0xc22d, (q15_t)0x7010, (q15_t)0xc227, (q15_t)0x700d, (q15_t)0xc222, - (q15_t)0x700a, (q15_t)0xc21c, (q15_t)0x7007, (q15_t)0xc217, (q15_t)0x7004, (q15_t)0xc211, (q15_t)0x7001, (q15_t)0xc20c, - (q15_t)0x6ffe, (q15_t)0xc206, (q15_t)0x6ffb, (q15_t)0xc201, (q15_t)0x6ff8, (q15_t)0xc1fb, (q15_t)0x6ff5, (q15_t)0xc1f6, - (q15_t)0x6ff2, (q15_t)0xc1f0, (q15_t)0x6fef, (q15_t)0xc1eb, (q15_t)0x6fec, (q15_t)0xc1e5, (q15_t)0x6fe9, (q15_t)0xc1e0, - (q15_t)0x6fe6, (q15_t)0xc1da, (q15_t)0x6fe3, (q15_t)0xc1d5, (q15_t)0x6fe0, (q15_t)0xc1cf, (q15_t)0x6fdd, (q15_t)0xc1ca, - (q15_t)0x6fda, (q15_t)0xc1c4, (q15_t)0x6fd6, (q15_t)0xc1bf, (q15_t)0x6fd3, (q15_t)0xc1b9, (q15_t)0x6fd0, (q15_t)0xc1b4, - (q15_t)0x6fcd, (q15_t)0xc1ae, (q15_t)0x6fca, (q15_t)0xc1a9, (q15_t)0x6fc7, (q15_t)0xc1a3, (q15_t)0x6fc4, (q15_t)0xc19e, - (q15_t)0x6fc1, (q15_t)0xc198, (q15_t)0x6fbe, (q15_t)0xc193, (q15_t)0x6fbb, (q15_t)0xc18d, (q15_t)0x6fb8, (q15_t)0xc188, - (q15_t)0x6fb5, (q15_t)0xc183, (q15_t)0x6fb2, (q15_t)0xc17d, (q15_t)0x6faf, (q15_t)0xc178, (q15_t)0x6fac, (q15_t)0xc172, - (q15_t)0x6fa9, (q15_t)0xc16d, (q15_t)0x6fa5, (q15_t)0xc167, (q15_t)0x6fa2, (q15_t)0xc162, (q15_t)0x6f9f, (q15_t)0xc15c, - (q15_t)0x6f9c, (q15_t)0xc157, (q15_t)0x6f99, (q15_t)0xc151, (q15_t)0x6f96, (q15_t)0xc14c, (q15_t)0x6f93, (q15_t)0xc146, - (q15_t)0x6f90, (q15_t)0xc141, (q15_t)0x6f8d, (q15_t)0xc13b, (q15_t)0x6f8a, (q15_t)0xc136, (q15_t)0x6f87, (q15_t)0xc130, - (q15_t)0x6f84, (q15_t)0xc12b, (q15_t)0x6f81, (q15_t)0xc125, (q15_t)0x6f7d, (q15_t)0xc120, (q15_t)0x6f7a, (q15_t)0xc11a, - (q15_t)0x6f77, (q15_t)0xc115, (q15_t)0x6f74, (q15_t)0xc10f, (q15_t)0x6f71, (q15_t)0xc10a, (q15_t)0x6f6e, (q15_t)0xc105, - (q15_t)0x6f6b, (q15_t)0xc0ff, (q15_t)0x6f68, (q15_t)0xc0fa, (q15_t)0x6f65, (q15_t)0xc0f4, (q15_t)0x6f62, (q15_t)0xc0ef, - (q15_t)0x6f5f, (q15_t)0xc0e9, (q15_t)0x6f5b, (q15_t)0xc0e4, (q15_t)0x6f58, (q15_t)0xc0de, (q15_t)0x6f55, (q15_t)0xc0d9, - (q15_t)0x6f52, (q15_t)0xc0d3, (q15_t)0x6f4f, (q15_t)0xc0ce, (q15_t)0x6f4c, (q15_t)0xc0c8, (q15_t)0x6f49, (q15_t)0xc0c3, - (q15_t)0x6f46, (q15_t)0xc0bd, (q15_t)0x6f43, (q15_t)0xc0b8, (q15_t)0x6f3f, (q15_t)0xc0b3, (q15_t)0x6f3c, (q15_t)0xc0ad, - (q15_t)0x6f39, (q15_t)0xc0a8, (q15_t)0x6f36, (q15_t)0xc0a2, (q15_t)0x6f33, (q15_t)0xc09d, (q15_t)0x6f30, (q15_t)0xc097, - (q15_t)0x6f2d, (q15_t)0xc092, (q15_t)0x6f2a, (q15_t)0xc08c, (q15_t)0x6f27, (q15_t)0xc087, (q15_t)0x6f23, (q15_t)0xc081, - (q15_t)0x6f20, (q15_t)0xc07c, (q15_t)0x6f1d, (q15_t)0xc077, (q15_t)0x6f1a, (q15_t)0xc071, (q15_t)0x6f17, (q15_t)0xc06c, - (q15_t)0x6f14, (q15_t)0xc066, (q15_t)0x6f11, (q15_t)0xc061, (q15_t)0x6f0e, (q15_t)0xc05b, (q15_t)0x6f0b, (q15_t)0xc056, - (q15_t)0x6f07, (q15_t)0xc050, (q15_t)0x6f04, (q15_t)0xc04b, (q15_t)0x6f01, (q15_t)0xc045, (q15_t)0x6efe, (q15_t)0xc040, - (q15_t)0x6efb, (q15_t)0xc03b, (q15_t)0x6ef8, (q15_t)0xc035, (q15_t)0x6ef5, (q15_t)0xc030, (q15_t)0x6ef1, (q15_t)0xc02a, - (q15_t)0x6eee, (q15_t)0xc025, (q15_t)0x6eeb, (q15_t)0xc01f, (q15_t)0x6ee8, (q15_t)0xc01a, (q15_t)0x6ee5, (q15_t)0xc014, - (q15_t)0x6ee2, (q15_t)0xc00f, (q15_t)0x6edf, (q15_t)0xc00a, (q15_t)0x6edc, (q15_t)0xc004, (q15_t)0x6ed8, (q15_t)0xbfff, - (q15_t)0x6ed5, (q15_t)0xbff9, (q15_t)0x6ed2, (q15_t)0xbff4, (q15_t)0x6ecf, (q15_t)0xbfee, (q15_t)0x6ecc, (q15_t)0xbfe9, - (q15_t)0x6ec9, (q15_t)0xbfe3, (q15_t)0x6ec6, (q15_t)0xbfde, (q15_t)0x6ec2, (q15_t)0xbfd9, (q15_t)0x6ebf, (q15_t)0xbfd3, - (q15_t)0x6ebc, (q15_t)0xbfce, (q15_t)0x6eb9, (q15_t)0xbfc8, (q15_t)0x6eb6, (q15_t)0xbfc3, (q15_t)0x6eb3, (q15_t)0xbfbd, - (q15_t)0x6eaf, (q15_t)0xbfb8, (q15_t)0x6eac, (q15_t)0xbfb3, (q15_t)0x6ea9, (q15_t)0xbfad, (q15_t)0x6ea6, (q15_t)0xbfa8, - (q15_t)0x6ea3, (q15_t)0xbfa2, (q15_t)0x6ea0, (q15_t)0xbf9d, (q15_t)0x6e9c, (q15_t)0xbf97, (q15_t)0x6e99, (q15_t)0xbf92, - (q15_t)0x6e96, (q15_t)0xbf8d, (q15_t)0x6e93, (q15_t)0xbf87, (q15_t)0x6e90, (q15_t)0xbf82, (q15_t)0x6e8d, (q15_t)0xbf7c, - (q15_t)0x6e89, (q15_t)0xbf77, (q15_t)0x6e86, (q15_t)0xbf71, (q15_t)0x6e83, (q15_t)0xbf6c, (q15_t)0x6e80, (q15_t)0xbf67, - (q15_t)0x6e7d, (q15_t)0xbf61, (q15_t)0x6e7a, (q15_t)0xbf5c, (q15_t)0x6e76, (q15_t)0xbf56, (q15_t)0x6e73, (q15_t)0xbf51, - (q15_t)0x6e70, (q15_t)0xbf4b, (q15_t)0x6e6d, (q15_t)0xbf46, (q15_t)0x6e6a, (q15_t)0xbf41, (q15_t)0x6e67, (q15_t)0xbf3b, - (q15_t)0x6e63, (q15_t)0xbf36, (q15_t)0x6e60, (q15_t)0xbf30, (q15_t)0x6e5d, (q15_t)0xbf2b, (q15_t)0x6e5a, (q15_t)0xbf26, - (q15_t)0x6e57, (q15_t)0xbf20, (q15_t)0x6e53, (q15_t)0xbf1b, (q15_t)0x6e50, (q15_t)0xbf15, (q15_t)0x6e4d, (q15_t)0xbf10, - (q15_t)0x6e4a, (q15_t)0xbf0a, (q15_t)0x6e47, (q15_t)0xbf05, (q15_t)0x6e44, (q15_t)0xbf00, (q15_t)0x6e40, (q15_t)0xbefa, - (q15_t)0x6e3d, (q15_t)0xbef5, (q15_t)0x6e3a, (q15_t)0xbeef, (q15_t)0x6e37, (q15_t)0xbeea, (q15_t)0x6e34, (q15_t)0xbee5, - (q15_t)0x6e30, (q15_t)0xbedf, (q15_t)0x6e2d, (q15_t)0xbeda, (q15_t)0x6e2a, (q15_t)0xbed4, (q15_t)0x6e27, (q15_t)0xbecf, - (q15_t)0x6e24, (q15_t)0xbeca, (q15_t)0x6e20, (q15_t)0xbec4, (q15_t)0x6e1d, (q15_t)0xbebf, (q15_t)0x6e1a, (q15_t)0xbeb9, - (q15_t)0x6e17, (q15_t)0xbeb4, (q15_t)0x6e14, (q15_t)0xbeae, (q15_t)0x6e10, (q15_t)0xbea9, (q15_t)0x6e0d, (q15_t)0xbea4, - (q15_t)0x6e0a, (q15_t)0xbe9e, (q15_t)0x6e07, (q15_t)0xbe99, (q15_t)0x6e04, (q15_t)0xbe93, (q15_t)0x6e00, (q15_t)0xbe8e, - (q15_t)0x6dfd, (q15_t)0xbe89, (q15_t)0x6dfa, (q15_t)0xbe83, (q15_t)0x6df7, (q15_t)0xbe7e, (q15_t)0x6df3, (q15_t)0xbe78, - (q15_t)0x6df0, (q15_t)0xbe73, (q15_t)0x6ded, (q15_t)0xbe6e, (q15_t)0x6dea, (q15_t)0xbe68, (q15_t)0x6de7, (q15_t)0xbe63, - (q15_t)0x6de3, (q15_t)0xbe5e, (q15_t)0x6de0, (q15_t)0xbe58, (q15_t)0x6ddd, (q15_t)0xbe53, (q15_t)0x6dda, (q15_t)0xbe4d, - (q15_t)0x6dd6, (q15_t)0xbe48, (q15_t)0x6dd3, (q15_t)0xbe43, (q15_t)0x6dd0, (q15_t)0xbe3d, (q15_t)0x6dcd, (q15_t)0xbe38, - (q15_t)0x6dca, (q15_t)0xbe32, (q15_t)0x6dc6, (q15_t)0xbe2d, (q15_t)0x6dc3, (q15_t)0xbe28, (q15_t)0x6dc0, (q15_t)0xbe22, - (q15_t)0x6dbd, (q15_t)0xbe1d, (q15_t)0x6db9, (q15_t)0xbe17, (q15_t)0x6db6, (q15_t)0xbe12, (q15_t)0x6db3, (q15_t)0xbe0d, - (q15_t)0x6db0, (q15_t)0xbe07, (q15_t)0x6dac, (q15_t)0xbe02, (q15_t)0x6da9, (q15_t)0xbdfd, (q15_t)0x6da6, (q15_t)0xbdf7, - (q15_t)0x6da3, (q15_t)0xbdf2, (q15_t)0x6d9f, (q15_t)0xbdec, (q15_t)0x6d9c, (q15_t)0xbde7, (q15_t)0x6d99, (q15_t)0xbde2, - (q15_t)0x6d96, (q15_t)0xbddc, (q15_t)0x6d92, (q15_t)0xbdd7, (q15_t)0x6d8f, (q15_t)0xbdd1, (q15_t)0x6d8c, (q15_t)0xbdcc, - (q15_t)0x6d89, (q15_t)0xbdc7, (q15_t)0x6d85, (q15_t)0xbdc1, (q15_t)0x6d82, (q15_t)0xbdbc, (q15_t)0x6d7f, (q15_t)0xbdb7, - (q15_t)0x6d7c, (q15_t)0xbdb1, (q15_t)0x6d78, (q15_t)0xbdac, (q15_t)0x6d75, (q15_t)0xbda6, (q15_t)0x6d72, (q15_t)0xbda1, - (q15_t)0x6d6f, (q15_t)0xbd9c, (q15_t)0x6d6b, (q15_t)0xbd96, (q15_t)0x6d68, (q15_t)0xbd91, (q15_t)0x6d65, (q15_t)0xbd8c, - (q15_t)0x6d62, (q15_t)0xbd86, (q15_t)0x6d5e, (q15_t)0xbd81, (q15_t)0x6d5b, (q15_t)0xbd7c, (q15_t)0x6d58, (q15_t)0xbd76, - (q15_t)0x6d55, (q15_t)0xbd71, (q15_t)0x6d51, (q15_t)0xbd6b, (q15_t)0x6d4e, (q15_t)0xbd66, (q15_t)0x6d4b, (q15_t)0xbd61, - (q15_t)0x6d48, (q15_t)0xbd5b, (q15_t)0x6d44, (q15_t)0xbd56, (q15_t)0x6d41, (q15_t)0xbd51, (q15_t)0x6d3e, (q15_t)0xbd4b, - (q15_t)0x6d3a, (q15_t)0xbd46, (q15_t)0x6d37, (q15_t)0xbd40, (q15_t)0x6d34, (q15_t)0xbd3b, (q15_t)0x6d31, (q15_t)0xbd36, - (q15_t)0x6d2d, (q15_t)0xbd30, (q15_t)0x6d2a, (q15_t)0xbd2b, (q15_t)0x6d27, (q15_t)0xbd26, (q15_t)0x6d23, (q15_t)0xbd20, - (q15_t)0x6d20, (q15_t)0xbd1b, (q15_t)0x6d1d, (q15_t)0xbd16, (q15_t)0x6d1a, (q15_t)0xbd10, (q15_t)0x6d16, (q15_t)0xbd0b, - (q15_t)0x6d13, (q15_t)0xbd06, (q15_t)0x6d10, (q15_t)0xbd00, (q15_t)0x6d0c, (q15_t)0xbcfb, (q15_t)0x6d09, (q15_t)0xbcf5, - (q15_t)0x6d06, (q15_t)0xbcf0, (q15_t)0x6d03, (q15_t)0xbceb, (q15_t)0x6cff, (q15_t)0xbce5, (q15_t)0x6cfc, (q15_t)0xbce0, - (q15_t)0x6cf9, (q15_t)0xbcdb, (q15_t)0x6cf5, (q15_t)0xbcd5, (q15_t)0x6cf2, (q15_t)0xbcd0, (q15_t)0x6cef, (q15_t)0xbccb, - (q15_t)0x6cec, (q15_t)0xbcc5, (q15_t)0x6ce8, (q15_t)0xbcc0, (q15_t)0x6ce5, (q15_t)0xbcbb, (q15_t)0x6ce2, (q15_t)0xbcb5, - (q15_t)0x6cde, (q15_t)0xbcb0, (q15_t)0x6cdb, (q15_t)0xbcab, (q15_t)0x6cd8, (q15_t)0xbca5, (q15_t)0x6cd4, (q15_t)0xbca0, - (q15_t)0x6cd1, (q15_t)0xbc9b, (q15_t)0x6cce, (q15_t)0xbc95, (q15_t)0x6cca, (q15_t)0xbc90, (q15_t)0x6cc7, (q15_t)0xbc8b, - (q15_t)0x6cc4, (q15_t)0xbc85, (q15_t)0x6cc1, (q15_t)0xbc80, (q15_t)0x6cbd, (q15_t)0xbc7b, (q15_t)0x6cba, (q15_t)0xbc75, - (q15_t)0x6cb7, (q15_t)0xbc70, (q15_t)0x6cb3, (q15_t)0xbc6b, (q15_t)0x6cb0, (q15_t)0xbc65, (q15_t)0x6cad, (q15_t)0xbc60, - (q15_t)0x6ca9, (q15_t)0xbc5b, (q15_t)0x6ca6, (q15_t)0xbc55, (q15_t)0x6ca3, (q15_t)0xbc50, (q15_t)0x6c9f, (q15_t)0xbc4b, - (q15_t)0x6c9c, (q15_t)0xbc45, (q15_t)0x6c99, (q15_t)0xbc40, (q15_t)0x6c95, (q15_t)0xbc3b, (q15_t)0x6c92, (q15_t)0xbc35, - (q15_t)0x6c8f, (q15_t)0xbc30, (q15_t)0x6c8b, (q15_t)0xbc2b, (q15_t)0x6c88, (q15_t)0xbc25, (q15_t)0x6c85, (q15_t)0xbc20, - (q15_t)0x6c81, (q15_t)0xbc1b, (q15_t)0x6c7e, (q15_t)0xbc15, (q15_t)0x6c7b, (q15_t)0xbc10, (q15_t)0x6c77, (q15_t)0xbc0b, - (q15_t)0x6c74, (q15_t)0xbc05, (q15_t)0x6c71, (q15_t)0xbc00, (q15_t)0x6c6d, (q15_t)0xbbfb, (q15_t)0x6c6a, (q15_t)0xbbf5, - (q15_t)0x6c67, (q15_t)0xbbf0, (q15_t)0x6c63, (q15_t)0xbbeb, (q15_t)0x6c60, (q15_t)0xbbe5, (q15_t)0x6c5d, (q15_t)0xbbe0, - (q15_t)0x6c59, (q15_t)0xbbdb, (q15_t)0x6c56, (q15_t)0xbbd5, (q15_t)0x6c53, (q15_t)0xbbd0, (q15_t)0x6c4f, (q15_t)0xbbcb, - (q15_t)0x6c4c, (q15_t)0xbbc5, (q15_t)0x6c49, (q15_t)0xbbc0, (q15_t)0x6c45, (q15_t)0xbbbb, (q15_t)0x6c42, (q15_t)0xbbb5, - (q15_t)0x6c3f, (q15_t)0xbbb0, (q15_t)0x6c3b, (q15_t)0xbbab, (q15_t)0x6c38, (q15_t)0xbba6, (q15_t)0x6c34, (q15_t)0xbba0, - (q15_t)0x6c31, (q15_t)0xbb9b, (q15_t)0x6c2e, (q15_t)0xbb96, (q15_t)0x6c2a, (q15_t)0xbb90, (q15_t)0x6c27, (q15_t)0xbb8b, - (q15_t)0x6c24, (q15_t)0xbb86, (q15_t)0x6c20, (q15_t)0xbb80, (q15_t)0x6c1d, (q15_t)0xbb7b, (q15_t)0x6c1a, (q15_t)0xbb76, - (q15_t)0x6c16, (q15_t)0xbb70, (q15_t)0x6c13, (q15_t)0xbb6b, (q15_t)0x6c0f, (q15_t)0xbb66, (q15_t)0x6c0c, (q15_t)0xbb61, - (q15_t)0x6c09, (q15_t)0xbb5b, (q15_t)0x6c05, (q15_t)0xbb56, (q15_t)0x6c02, (q15_t)0xbb51, (q15_t)0x6bff, (q15_t)0xbb4b, - (q15_t)0x6bfb, (q15_t)0xbb46, (q15_t)0x6bf8, (q15_t)0xbb41, (q15_t)0x6bf5, (q15_t)0xbb3b, (q15_t)0x6bf1, (q15_t)0xbb36, - (q15_t)0x6bee, (q15_t)0xbb31, (q15_t)0x6bea, (q15_t)0xbb2c, (q15_t)0x6be7, (q15_t)0xbb26, (q15_t)0x6be4, (q15_t)0xbb21, - (q15_t)0x6be0, (q15_t)0xbb1c, (q15_t)0x6bdd, (q15_t)0xbb16, (q15_t)0x6bd9, (q15_t)0xbb11, (q15_t)0x6bd6, (q15_t)0xbb0c, - (q15_t)0x6bd3, (q15_t)0xbb06, (q15_t)0x6bcf, (q15_t)0xbb01, (q15_t)0x6bcc, (q15_t)0xbafc, (q15_t)0x6bc9, (q15_t)0xbaf7, - (q15_t)0x6bc5, (q15_t)0xbaf1, (q15_t)0x6bc2, (q15_t)0xbaec, (q15_t)0x6bbe, (q15_t)0xbae7, (q15_t)0x6bbb, (q15_t)0xbae1, - (q15_t)0x6bb8, (q15_t)0xbadc, (q15_t)0x6bb4, (q15_t)0xbad7, (q15_t)0x6bb1, (q15_t)0xbad2, (q15_t)0x6bad, (q15_t)0xbacc, - (q15_t)0x6baa, (q15_t)0xbac7, (q15_t)0x6ba7, (q15_t)0xbac2, (q15_t)0x6ba3, (q15_t)0xbabc, (q15_t)0x6ba0, (q15_t)0xbab7, - (q15_t)0x6b9c, (q15_t)0xbab2, (q15_t)0x6b99, (q15_t)0xbaad, (q15_t)0x6b96, (q15_t)0xbaa7, (q15_t)0x6b92, (q15_t)0xbaa2, - (q15_t)0x6b8f, (q15_t)0xba9d, (q15_t)0x6b8b, (q15_t)0xba97, (q15_t)0x6b88, (q15_t)0xba92, (q15_t)0x6b85, (q15_t)0xba8d, - (q15_t)0x6b81, (q15_t)0xba88, (q15_t)0x6b7e, (q15_t)0xba82, (q15_t)0x6b7a, (q15_t)0xba7d, (q15_t)0x6b77, (q15_t)0xba78, - (q15_t)0x6b73, (q15_t)0xba73, (q15_t)0x6b70, (q15_t)0xba6d, (q15_t)0x6b6d, (q15_t)0xba68, (q15_t)0x6b69, (q15_t)0xba63, - (q15_t)0x6b66, (q15_t)0xba5d, (q15_t)0x6b62, (q15_t)0xba58, (q15_t)0x6b5f, (q15_t)0xba53, (q15_t)0x6b5c, (q15_t)0xba4e, - (q15_t)0x6b58, (q15_t)0xba48, (q15_t)0x6b55, (q15_t)0xba43, (q15_t)0x6b51, (q15_t)0xba3e, (q15_t)0x6b4e, (q15_t)0xba39, - (q15_t)0x6b4a, (q15_t)0xba33, (q15_t)0x6b47, (q15_t)0xba2e, (q15_t)0x6b44, (q15_t)0xba29, (q15_t)0x6b40, (q15_t)0xba23, - (q15_t)0x6b3d, (q15_t)0xba1e, (q15_t)0x6b39, (q15_t)0xba19, (q15_t)0x6b36, (q15_t)0xba14, (q15_t)0x6b32, (q15_t)0xba0e, - (q15_t)0x6b2f, (q15_t)0xba09, (q15_t)0x6b2c, (q15_t)0xba04, (q15_t)0x6b28, (q15_t)0xb9ff, (q15_t)0x6b25, (q15_t)0xb9f9, - (q15_t)0x6b21, (q15_t)0xb9f4, (q15_t)0x6b1e, (q15_t)0xb9ef, (q15_t)0x6b1a, (q15_t)0xb9ea, (q15_t)0x6b17, (q15_t)0xb9e4, - (q15_t)0x6b13, (q15_t)0xb9df, (q15_t)0x6b10, (q15_t)0xb9da, (q15_t)0x6b0d, (q15_t)0xb9d5, (q15_t)0x6b09, (q15_t)0xb9cf, - (q15_t)0x6b06, (q15_t)0xb9ca, (q15_t)0x6b02, (q15_t)0xb9c5, (q15_t)0x6aff, (q15_t)0xb9c0, (q15_t)0x6afb, (q15_t)0xb9ba, - (q15_t)0x6af8, (q15_t)0xb9b5, (q15_t)0x6af4, (q15_t)0xb9b0, (q15_t)0x6af1, (q15_t)0xb9ab, (q15_t)0x6aee, (q15_t)0xb9a5, - (q15_t)0x6aea, (q15_t)0xb9a0, (q15_t)0x6ae7, (q15_t)0xb99b, (q15_t)0x6ae3, (q15_t)0xb996, (q15_t)0x6ae0, (q15_t)0xb990, - (q15_t)0x6adc, (q15_t)0xb98b, (q15_t)0x6ad9, (q15_t)0xb986, (q15_t)0x6ad5, (q15_t)0xb981, (q15_t)0x6ad2, (q15_t)0xb97b, - (q15_t)0x6ace, (q15_t)0xb976, (q15_t)0x6acb, (q15_t)0xb971, (q15_t)0x6ac8, (q15_t)0xb96c, (q15_t)0x6ac4, (q15_t)0xb966, - (q15_t)0x6ac1, (q15_t)0xb961, (q15_t)0x6abd, (q15_t)0xb95c, (q15_t)0x6aba, (q15_t)0xb957, (q15_t)0x6ab6, (q15_t)0xb951, - (q15_t)0x6ab3, (q15_t)0xb94c, (q15_t)0x6aaf, (q15_t)0xb947, (q15_t)0x6aac, (q15_t)0xb942, (q15_t)0x6aa8, (q15_t)0xb93c, - (q15_t)0x6aa5, (q15_t)0xb937, (q15_t)0x6aa1, (q15_t)0xb932, (q15_t)0x6a9e, (q15_t)0xb92d, (q15_t)0x6a9a, (q15_t)0xb928, - (q15_t)0x6a97, (q15_t)0xb922, (q15_t)0x6a93, (q15_t)0xb91d, (q15_t)0x6a90, (q15_t)0xb918, (q15_t)0x6a8c, (q15_t)0xb913, - (q15_t)0x6a89, (q15_t)0xb90d, (q15_t)0x6a86, (q15_t)0xb908, (q15_t)0x6a82, (q15_t)0xb903, (q15_t)0x6a7f, (q15_t)0xb8fe, - (q15_t)0x6a7b, (q15_t)0xb8f8, (q15_t)0x6a78, (q15_t)0xb8f3, (q15_t)0x6a74, (q15_t)0xb8ee, (q15_t)0x6a71, (q15_t)0xb8e9, - (q15_t)0x6a6d, (q15_t)0xb8e4, (q15_t)0x6a6a, (q15_t)0xb8de, (q15_t)0x6a66, (q15_t)0xb8d9, (q15_t)0x6a63, (q15_t)0xb8d4, - (q15_t)0x6a5f, (q15_t)0xb8cf, (q15_t)0x6a5c, (q15_t)0xb8c9, (q15_t)0x6a58, (q15_t)0xb8c4, (q15_t)0x6a55, (q15_t)0xb8bf, - (q15_t)0x6a51, (q15_t)0xb8ba, (q15_t)0x6a4e, (q15_t)0xb8b5, (q15_t)0x6a4a, (q15_t)0xb8af, (q15_t)0x6a47, (q15_t)0xb8aa, - (q15_t)0x6a43, (q15_t)0xb8a5, (q15_t)0x6a40, (q15_t)0xb8a0, (q15_t)0x6a3c, (q15_t)0xb89b, (q15_t)0x6a39, (q15_t)0xb895, - (q15_t)0x6a35, (q15_t)0xb890, (q15_t)0x6a32, (q15_t)0xb88b, (q15_t)0x6a2e, (q15_t)0xb886, (q15_t)0x6a2b, (q15_t)0xb880, - (q15_t)0x6a27, (q15_t)0xb87b, (q15_t)0x6a24, (q15_t)0xb876, (q15_t)0x6a20, (q15_t)0xb871, (q15_t)0x6a1d, (q15_t)0xb86c, - (q15_t)0x6a19, (q15_t)0xb866, (q15_t)0x6a16, (q15_t)0xb861, (q15_t)0x6a12, (q15_t)0xb85c, (q15_t)0x6a0e, (q15_t)0xb857, - (q15_t)0x6a0b, (q15_t)0xb852, (q15_t)0x6a07, (q15_t)0xb84c, (q15_t)0x6a04, (q15_t)0xb847, (q15_t)0x6a00, (q15_t)0xb842, - (q15_t)0x69fd, (q15_t)0xb83d, (q15_t)0x69f9, (q15_t)0xb838, (q15_t)0x69f6, (q15_t)0xb832, (q15_t)0x69f2, (q15_t)0xb82d, - (q15_t)0x69ef, (q15_t)0xb828, (q15_t)0x69eb, (q15_t)0xb823, (q15_t)0x69e8, (q15_t)0xb81e, (q15_t)0x69e4, (q15_t)0xb818, - (q15_t)0x69e1, (q15_t)0xb813, (q15_t)0x69dd, (q15_t)0xb80e, (q15_t)0x69da, (q15_t)0xb809, (q15_t)0x69d6, (q15_t)0xb804, - (q15_t)0x69d3, (q15_t)0xb7fe, (q15_t)0x69cf, (q15_t)0xb7f9, (q15_t)0x69cb, (q15_t)0xb7f4, (q15_t)0x69c8, (q15_t)0xb7ef, - (q15_t)0x69c4, (q15_t)0xb7ea, (q15_t)0x69c1, (q15_t)0xb7e4, (q15_t)0x69bd, (q15_t)0xb7df, (q15_t)0x69ba, (q15_t)0xb7da, - (q15_t)0x69b6, (q15_t)0xb7d5, (q15_t)0x69b3, (q15_t)0xb7d0, (q15_t)0x69af, (q15_t)0xb7ca, (q15_t)0x69ac, (q15_t)0xb7c5, - (q15_t)0x69a8, (q15_t)0xb7c0, (q15_t)0x69a5, (q15_t)0xb7bb, (q15_t)0x69a1, (q15_t)0xb7b6, (q15_t)0x699d, (q15_t)0xb7b1, - (q15_t)0x699a, (q15_t)0xb7ab, (q15_t)0x6996, (q15_t)0xb7a6, (q15_t)0x6993, (q15_t)0xb7a1, (q15_t)0x698f, (q15_t)0xb79c, - (q15_t)0x698c, (q15_t)0xb797, (q15_t)0x6988, (q15_t)0xb791, (q15_t)0x6985, (q15_t)0xb78c, (q15_t)0x6981, (q15_t)0xb787, - (q15_t)0x697d, (q15_t)0xb782, (q15_t)0x697a, (q15_t)0xb77d, (q15_t)0x6976, (q15_t)0xb778, (q15_t)0x6973, (q15_t)0xb772, - (q15_t)0x696f, (q15_t)0xb76d, (q15_t)0x696c, (q15_t)0xb768, (q15_t)0x6968, (q15_t)0xb763, (q15_t)0x6964, (q15_t)0xb75e, - (q15_t)0x6961, (q15_t)0xb758, (q15_t)0x695d, (q15_t)0xb753, (q15_t)0x695a, (q15_t)0xb74e, (q15_t)0x6956, (q15_t)0xb749, - (q15_t)0x6953, (q15_t)0xb744, (q15_t)0x694f, (q15_t)0xb73f, (q15_t)0x694b, (q15_t)0xb739, (q15_t)0x6948, (q15_t)0xb734, - (q15_t)0x6944, (q15_t)0xb72f, (q15_t)0x6941, (q15_t)0xb72a, (q15_t)0x693d, (q15_t)0xb725, (q15_t)0x693a, (q15_t)0xb720, - (q15_t)0x6936, (q15_t)0xb71a, (q15_t)0x6932, (q15_t)0xb715, (q15_t)0x692f, (q15_t)0xb710, (q15_t)0x692b, (q15_t)0xb70b, - (q15_t)0x6928, (q15_t)0xb706, (q15_t)0x6924, (q15_t)0xb701, (q15_t)0x6921, (q15_t)0xb6fb, (q15_t)0x691d, (q15_t)0xb6f6, - (q15_t)0x6919, (q15_t)0xb6f1, (q15_t)0x6916, (q15_t)0xb6ec, (q15_t)0x6912, (q15_t)0xb6e7, (q15_t)0x690f, (q15_t)0xb6e2, - (q15_t)0x690b, (q15_t)0xb6dd, (q15_t)0x6907, (q15_t)0xb6d7, (q15_t)0x6904, (q15_t)0xb6d2, (q15_t)0x6900, (q15_t)0xb6cd, - (q15_t)0x68fd, (q15_t)0xb6c8, (q15_t)0x68f9, (q15_t)0xb6c3, (q15_t)0x68f5, (q15_t)0xb6be, (q15_t)0x68f2, (q15_t)0xb6b8, - (q15_t)0x68ee, (q15_t)0xb6b3, (q15_t)0x68eb, (q15_t)0xb6ae, (q15_t)0x68e7, (q15_t)0xb6a9, (q15_t)0x68e3, (q15_t)0xb6a4, - (q15_t)0x68e0, (q15_t)0xb69f, (q15_t)0x68dc, (q15_t)0xb69a, (q15_t)0x68d9, (q15_t)0xb694, (q15_t)0x68d5, (q15_t)0xb68f, - (q15_t)0x68d1, (q15_t)0xb68a, (q15_t)0x68ce, (q15_t)0xb685, (q15_t)0x68ca, (q15_t)0xb680, (q15_t)0x68c7, (q15_t)0xb67b, - (q15_t)0x68c3, (q15_t)0xb676, (q15_t)0x68bf, (q15_t)0xb670, (q15_t)0x68bc, (q15_t)0xb66b, (q15_t)0x68b8, (q15_t)0xb666, - (q15_t)0x68b5, (q15_t)0xb661, (q15_t)0x68b1, (q15_t)0xb65c, (q15_t)0x68ad, (q15_t)0xb657, (q15_t)0x68aa, (q15_t)0xb652, - (q15_t)0x68a6, (q15_t)0xb64c, (q15_t)0x68a3, (q15_t)0xb647, (q15_t)0x689f, (q15_t)0xb642, (q15_t)0x689b, (q15_t)0xb63d, - (q15_t)0x6898, (q15_t)0xb638, (q15_t)0x6894, (q15_t)0xb633, (q15_t)0x6890, (q15_t)0xb62e, (q15_t)0x688d, (q15_t)0xb628, - (q15_t)0x6889, (q15_t)0xb623, (q15_t)0x6886, (q15_t)0xb61e, (q15_t)0x6882, (q15_t)0xb619, (q15_t)0x687e, (q15_t)0xb614, - (q15_t)0x687b, (q15_t)0xb60f, (q15_t)0x6877, (q15_t)0xb60a, (q15_t)0x6873, (q15_t)0xb605, (q15_t)0x6870, (q15_t)0xb5ff, - (q15_t)0x686c, (q15_t)0xb5fa, (q15_t)0x6868, (q15_t)0xb5f5, (q15_t)0x6865, (q15_t)0xb5f0, (q15_t)0x6861, (q15_t)0xb5eb, - (q15_t)0x685e, (q15_t)0xb5e6, (q15_t)0x685a, (q15_t)0xb5e1, (q15_t)0x6856, (q15_t)0xb5dc, (q15_t)0x6853, (q15_t)0xb5d6, - (q15_t)0x684f, (q15_t)0xb5d1, (q15_t)0x684b, (q15_t)0xb5cc, (q15_t)0x6848, (q15_t)0xb5c7, (q15_t)0x6844, (q15_t)0xb5c2, - (q15_t)0x6840, (q15_t)0xb5bd, (q15_t)0x683d, (q15_t)0xb5b8, (q15_t)0x6839, (q15_t)0xb5b3, (q15_t)0x6835, (q15_t)0xb5ae, - (q15_t)0x6832, (q15_t)0xb5a8, (q15_t)0x682e, (q15_t)0xb5a3, (q15_t)0x682b, (q15_t)0xb59e, (q15_t)0x6827, (q15_t)0xb599, - (q15_t)0x6823, (q15_t)0xb594, (q15_t)0x6820, (q15_t)0xb58f, (q15_t)0x681c, (q15_t)0xb58a, (q15_t)0x6818, (q15_t)0xb585, - (q15_t)0x6815, (q15_t)0xb57f, (q15_t)0x6811, (q15_t)0xb57a, (q15_t)0x680d, (q15_t)0xb575, (q15_t)0x680a, (q15_t)0xb570, - (q15_t)0x6806, (q15_t)0xb56b, (q15_t)0x6802, (q15_t)0xb566, (q15_t)0x67ff, (q15_t)0xb561, (q15_t)0x67fb, (q15_t)0xb55c, - (q15_t)0x67f7, (q15_t)0xb557, (q15_t)0x67f4, (q15_t)0xb552, (q15_t)0x67f0, (q15_t)0xb54c, (q15_t)0x67ec, (q15_t)0xb547, - (q15_t)0x67e9, (q15_t)0xb542, (q15_t)0x67e5, (q15_t)0xb53d, (q15_t)0x67e1, (q15_t)0xb538, (q15_t)0x67de, (q15_t)0xb533, - (q15_t)0x67da, (q15_t)0xb52e, (q15_t)0x67d6, (q15_t)0xb529, (q15_t)0x67d3, (q15_t)0xb524, (q15_t)0x67cf, (q15_t)0xb51f, - (q15_t)0x67cb, (q15_t)0xb519, (q15_t)0x67c8, (q15_t)0xb514, (q15_t)0x67c4, (q15_t)0xb50f, (q15_t)0x67c0, (q15_t)0xb50a, - (q15_t)0x67bd, (q15_t)0xb505, (q15_t)0x67b9, (q15_t)0xb500, (q15_t)0x67b5, (q15_t)0xb4fb, (q15_t)0x67b2, (q15_t)0xb4f6, - (q15_t)0x67ae, (q15_t)0xb4f1, (q15_t)0x67aa, (q15_t)0xb4ec, (q15_t)0x67a6, (q15_t)0xb4e7, (q15_t)0x67a3, (q15_t)0xb4e1, - (q15_t)0x679f, (q15_t)0xb4dc, (q15_t)0x679b, (q15_t)0xb4d7, (q15_t)0x6798, (q15_t)0xb4d2, (q15_t)0x6794, (q15_t)0xb4cd, - (q15_t)0x6790, (q15_t)0xb4c8, (q15_t)0x678d, (q15_t)0xb4c3, (q15_t)0x6789, (q15_t)0xb4be, (q15_t)0x6785, (q15_t)0xb4b9, - (q15_t)0x6782, (q15_t)0xb4b4, (q15_t)0x677e, (q15_t)0xb4af, (q15_t)0x677a, (q15_t)0xb4aa, (q15_t)0x6776, (q15_t)0xb4a4, - (q15_t)0x6773, (q15_t)0xb49f, (q15_t)0x676f, (q15_t)0xb49a, (q15_t)0x676b, (q15_t)0xb495, (q15_t)0x6768, (q15_t)0xb490, - (q15_t)0x6764, (q15_t)0xb48b, (q15_t)0x6760, (q15_t)0xb486, (q15_t)0x675d, (q15_t)0xb481, (q15_t)0x6759, (q15_t)0xb47c, - (q15_t)0x6755, (q15_t)0xb477, (q15_t)0x6751, (q15_t)0xb472, (q15_t)0x674e, (q15_t)0xb46d, (q15_t)0x674a, (q15_t)0xb468, - (q15_t)0x6746, (q15_t)0xb462, (q15_t)0x6743, (q15_t)0xb45d, (q15_t)0x673f, (q15_t)0xb458, (q15_t)0x673b, (q15_t)0xb453, - (q15_t)0x6737, (q15_t)0xb44e, (q15_t)0x6734, (q15_t)0xb449, (q15_t)0x6730, (q15_t)0xb444, (q15_t)0x672c, (q15_t)0xb43f, - (q15_t)0x6729, (q15_t)0xb43a, (q15_t)0x6725, (q15_t)0xb435, (q15_t)0x6721, (q15_t)0xb430, (q15_t)0x671d, (q15_t)0xb42b, - (q15_t)0x671a, (q15_t)0xb426, (q15_t)0x6716, (q15_t)0xb421, (q15_t)0x6712, (q15_t)0xb41c, (q15_t)0x670e, (q15_t)0xb417, - (q15_t)0x670b, (q15_t)0xb411, (q15_t)0x6707, (q15_t)0xb40c, (q15_t)0x6703, (q15_t)0xb407, (q15_t)0x6700, (q15_t)0xb402, - (q15_t)0x66fc, (q15_t)0xb3fd, (q15_t)0x66f8, (q15_t)0xb3f8, (q15_t)0x66f4, (q15_t)0xb3f3, (q15_t)0x66f1, (q15_t)0xb3ee, - (q15_t)0x66ed, (q15_t)0xb3e9, (q15_t)0x66e9, (q15_t)0xb3e4, (q15_t)0x66e5, (q15_t)0xb3df, (q15_t)0x66e2, (q15_t)0xb3da, - (q15_t)0x66de, (q15_t)0xb3d5, (q15_t)0x66da, (q15_t)0xb3d0, (q15_t)0x66d6, (q15_t)0xb3cb, (q15_t)0x66d3, (q15_t)0xb3c6, - (q15_t)0x66cf, (q15_t)0xb3c1, (q15_t)0x66cb, (q15_t)0xb3bc, (q15_t)0x66c8, (q15_t)0xb3b7, (q15_t)0x66c4, (q15_t)0xb3b1, - (q15_t)0x66c0, (q15_t)0xb3ac, (q15_t)0x66bc, (q15_t)0xb3a7, (q15_t)0x66b9, (q15_t)0xb3a2, (q15_t)0x66b5, (q15_t)0xb39d, - (q15_t)0x66b1, (q15_t)0xb398, (q15_t)0x66ad, (q15_t)0xb393, (q15_t)0x66aa, (q15_t)0xb38e, (q15_t)0x66a6, (q15_t)0xb389, - (q15_t)0x66a2, (q15_t)0xb384, (q15_t)0x669e, (q15_t)0xb37f, (q15_t)0x669b, (q15_t)0xb37a, (q15_t)0x6697, (q15_t)0xb375, - (q15_t)0x6693, (q15_t)0xb370, (q15_t)0x668f, (q15_t)0xb36b, (q15_t)0x668b, (q15_t)0xb366, (q15_t)0x6688, (q15_t)0xb361, - (q15_t)0x6684, (q15_t)0xb35c, (q15_t)0x6680, (q15_t)0xb357, (q15_t)0x667c, (q15_t)0xb352, (q15_t)0x6679, (q15_t)0xb34d, - (q15_t)0x6675, (q15_t)0xb348, (q15_t)0x6671, (q15_t)0xb343, (q15_t)0x666d, (q15_t)0xb33e, (q15_t)0x666a, (q15_t)0xb339, - (q15_t)0x6666, (q15_t)0xb334, (q15_t)0x6662, (q15_t)0xb32f, (q15_t)0x665e, (q15_t)0xb32a, (q15_t)0x665b, (q15_t)0xb325, - (q15_t)0x6657, (q15_t)0xb31f, (q15_t)0x6653, (q15_t)0xb31a, (q15_t)0x664f, (q15_t)0xb315, (q15_t)0x664b, (q15_t)0xb310, - (q15_t)0x6648, (q15_t)0xb30b, (q15_t)0x6644, (q15_t)0xb306, (q15_t)0x6640, (q15_t)0xb301, (q15_t)0x663c, (q15_t)0xb2fc, - (q15_t)0x6639, (q15_t)0xb2f7, (q15_t)0x6635, (q15_t)0xb2f2, (q15_t)0x6631, (q15_t)0xb2ed, (q15_t)0x662d, (q15_t)0xb2e8, - (q15_t)0x6629, (q15_t)0xb2e3, (q15_t)0x6626, (q15_t)0xb2de, (q15_t)0x6622, (q15_t)0xb2d9, (q15_t)0x661e, (q15_t)0xb2d4, - (q15_t)0x661a, (q15_t)0xb2cf, (q15_t)0x6616, (q15_t)0xb2ca, (q15_t)0x6613, (q15_t)0xb2c5, (q15_t)0x660f, (q15_t)0xb2c0, - (q15_t)0x660b, (q15_t)0xb2bb, (q15_t)0x6607, (q15_t)0xb2b6, (q15_t)0x6603, (q15_t)0xb2b1, (q15_t)0x6600, (q15_t)0xb2ac, - (q15_t)0x65fc, (q15_t)0xb2a7, (q15_t)0x65f8, (q15_t)0xb2a2, (q15_t)0x65f4, (q15_t)0xb29d, (q15_t)0x65f0, (q15_t)0xb298, - (q15_t)0x65ed, (q15_t)0xb293, (q15_t)0x65e9, (q15_t)0xb28e, (q15_t)0x65e5, (q15_t)0xb289, (q15_t)0x65e1, (q15_t)0xb284, - (q15_t)0x65dd, (q15_t)0xb27f, (q15_t)0x65da, (q15_t)0xb27a, (q15_t)0x65d6, (q15_t)0xb275, (q15_t)0x65d2, (q15_t)0xb270, - (q15_t)0x65ce, (q15_t)0xb26b, (q15_t)0x65ca, (q15_t)0xb266, (q15_t)0x65c7, (q15_t)0xb261, (q15_t)0x65c3, (q15_t)0xb25c, - (q15_t)0x65bf, (q15_t)0xb257, (q15_t)0x65bb, (q15_t)0xb252, (q15_t)0x65b7, (q15_t)0xb24d, (q15_t)0x65b4, (q15_t)0xb248, - (q15_t)0x65b0, (q15_t)0xb243, (q15_t)0x65ac, (q15_t)0xb23e, (q15_t)0x65a8, (q15_t)0xb239, (q15_t)0x65a4, (q15_t)0xb234, - (q15_t)0x65a0, (q15_t)0xb22f, (q15_t)0x659d, (q15_t)0xb22a, (q15_t)0x6599, (q15_t)0xb225, (q15_t)0x6595, (q15_t)0xb220, - (q15_t)0x6591, (q15_t)0xb21b, (q15_t)0x658d, (q15_t)0xb216, (q15_t)0x658a, (q15_t)0xb211, (q15_t)0x6586, (q15_t)0xb20c, - (q15_t)0x6582, (q15_t)0xb207, (q15_t)0x657e, (q15_t)0xb202, (q15_t)0x657a, (q15_t)0xb1fd, (q15_t)0x6576, (q15_t)0xb1f8, - (q15_t)0x6573, (q15_t)0xb1f3, (q15_t)0x656f, (q15_t)0xb1ee, (q15_t)0x656b, (q15_t)0xb1e9, (q15_t)0x6567, (q15_t)0xb1e4, - (q15_t)0x6563, (q15_t)0xb1df, (q15_t)0x655f, (q15_t)0xb1da, (q15_t)0x655c, (q15_t)0xb1d6, (q15_t)0x6558, (q15_t)0xb1d1, - (q15_t)0x6554, (q15_t)0xb1cc, (q15_t)0x6550, (q15_t)0xb1c7, (q15_t)0x654c, (q15_t)0xb1c2, (q15_t)0x6548, (q15_t)0xb1bd, - (q15_t)0x6545, (q15_t)0xb1b8, (q15_t)0x6541, (q15_t)0xb1b3, (q15_t)0x653d, (q15_t)0xb1ae, (q15_t)0x6539, (q15_t)0xb1a9, - (q15_t)0x6535, (q15_t)0xb1a4, (q15_t)0x6531, (q15_t)0xb19f, (q15_t)0x652d, (q15_t)0xb19a, (q15_t)0x652a, (q15_t)0xb195, - (q15_t)0x6526, (q15_t)0xb190, (q15_t)0x6522, (q15_t)0xb18b, (q15_t)0x651e, (q15_t)0xb186, (q15_t)0x651a, (q15_t)0xb181, - (q15_t)0x6516, (q15_t)0xb17c, (q15_t)0x6513, (q15_t)0xb177, (q15_t)0x650f, (q15_t)0xb172, (q15_t)0x650b, (q15_t)0xb16d, - (q15_t)0x6507, (q15_t)0xb168, (q15_t)0x6503, (q15_t)0xb163, (q15_t)0x64ff, (q15_t)0xb15e, (q15_t)0x64fb, (q15_t)0xb159, - (q15_t)0x64f7, (q15_t)0xb154, (q15_t)0x64f4, (q15_t)0xb14f, (q15_t)0x64f0, (q15_t)0xb14a, (q15_t)0x64ec, (q15_t)0xb146, - (q15_t)0x64e8, (q15_t)0xb141, (q15_t)0x64e4, (q15_t)0xb13c, (q15_t)0x64e0, (q15_t)0xb137, (q15_t)0x64dc, (q15_t)0xb132, - (q15_t)0x64d9, (q15_t)0xb12d, (q15_t)0x64d5, (q15_t)0xb128, (q15_t)0x64d1, (q15_t)0xb123, (q15_t)0x64cd, (q15_t)0xb11e, - (q15_t)0x64c9, (q15_t)0xb119, (q15_t)0x64c5, (q15_t)0xb114, (q15_t)0x64c1, (q15_t)0xb10f, (q15_t)0x64bd, (q15_t)0xb10a, - (q15_t)0x64ba, (q15_t)0xb105, (q15_t)0x64b6, (q15_t)0xb100, (q15_t)0x64b2, (q15_t)0xb0fb, (q15_t)0x64ae, (q15_t)0xb0f6, - (q15_t)0x64aa, (q15_t)0xb0f1, (q15_t)0x64a6, (q15_t)0xb0ec, (q15_t)0x64a2, (q15_t)0xb0e8, (q15_t)0x649e, (q15_t)0xb0e3, - (q15_t)0x649b, (q15_t)0xb0de, (q15_t)0x6497, (q15_t)0xb0d9, (q15_t)0x6493, (q15_t)0xb0d4, (q15_t)0x648f, (q15_t)0xb0cf, - (q15_t)0x648b, (q15_t)0xb0ca, (q15_t)0x6487, (q15_t)0xb0c5, (q15_t)0x6483, (q15_t)0xb0c0, (q15_t)0x647f, (q15_t)0xb0bb, - (q15_t)0x647b, (q15_t)0xb0b6, (q15_t)0x6478, (q15_t)0xb0b1, (q15_t)0x6474, (q15_t)0xb0ac, (q15_t)0x6470, (q15_t)0xb0a7, - (q15_t)0x646c, (q15_t)0xb0a2, (q15_t)0x6468, (q15_t)0xb09e, (q15_t)0x6464, (q15_t)0xb099, (q15_t)0x6460, (q15_t)0xb094, - (q15_t)0x645c, (q15_t)0xb08f, (q15_t)0x6458, (q15_t)0xb08a, (q15_t)0x6454, (q15_t)0xb085, (q15_t)0x6451, (q15_t)0xb080, - (q15_t)0x644d, (q15_t)0xb07b, (q15_t)0x6449, (q15_t)0xb076, (q15_t)0x6445, (q15_t)0xb071, (q15_t)0x6441, (q15_t)0xb06c, - (q15_t)0x643d, (q15_t)0xb067, (q15_t)0x6439, (q15_t)0xb062, (q15_t)0x6435, (q15_t)0xb05e, (q15_t)0x6431, (q15_t)0xb059, - (q15_t)0x642d, (q15_t)0xb054, (q15_t)0x6429, (q15_t)0xb04f, (q15_t)0x6426, (q15_t)0xb04a, (q15_t)0x6422, (q15_t)0xb045, - (q15_t)0x641e, (q15_t)0xb040, (q15_t)0x641a, (q15_t)0xb03b, (q15_t)0x6416, (q15_t)0xb036, (q15_t)0x6412, (q15_t)0xb031, - (q15_t)0x640e, (q15_t)0xb02c, (q15_t)0x640a, (q15_t)0xb027, (q15_t)0x6406, (q15_t)0xb023, (q15_t)0x6402, (q15_t)0xb01e, - (q15_t)0x63fe, (q15_t)0xb019, (q15_t)0x63fa, (q15_t)0xb014, (q15_t)0x63f7, (q15_t)0xb00f, (q15_t)0x63f3, (q15_t)0xb00a, - (q15_t)0x63ef, (q15_t)0xb005, (q15_t)0x63eb, (q15_t)0xb000, (q15_t)0x63e7, (q15_t)0xaffb, (q15_t)0x63e3, (q15_t)0xaff6, - (q15_t)0x63df, (q15_t)0xaff1, (q15_t)0x63db, (q15_t)0xafed, (q15_t)0x63d7, (q15_t)0xafe8, (q15_t)0x63d3, (q15_t)0xafe3, - (q15_t)0x63cf, (q15_t)0xafde, (q15_t)0x63cb, (q15_t)0xafd9, (q15_t)0x63c7, (q15_t)0xafd4, (q15_t)0x63c3, (q15_t)0xafcf, - (q15_t)0x63c0, (q15_t)0xafca, (q15_t)0x63bc, (q15_t)0xafc5, (q15_t)0x63b8, (q15_t)0xafc1, (q15_t)0x63b4, (q15_t)0xafbc, - (q15_t)0x63b0, (q15_t)0xafb7, (q15_t)0x63ac, (q15_t)0xafb2, (q15_t)0x63a8, (q15_t)0xafad, (q15_t)0x63a4, (q15_t)0xafa8, - (q15_t)0x63a0, (q15_t)0xafa3, (q15_t)0x639c, (q15_t)0xaf9e, (q15_t)0x6398, (q15_t)0xaf99, (q15_t)0x6394, (q15_t)0xaf94, - (q15_t)0x6390, (q15_t)0xaf90, (q15_t)0x638c, (q15_t)0xaf8b, (q15_t)0x6388, (q15_t)0xaf86, (q15_t)0x6384, (q15_t)0xaf81, - (q15_t)0x6380, (q15_t)0xaf7c, (q15_t)0x637c, (q15_t)0xaf77, (q15_t)0x6378, (q15_t)0xaf72, (q15_t)0x6375, (q15_t)0xaf6d, - (q15_t)0x6371, (q15_t)0xaf69, (q15_t)0x636d, (q15_t)0xaf64, (q15_t)0x6369, (q15_t)0xaf5f, (q15_t)0x6365, (q15_t)0xaf5a, - (q15_t)0x6361, (q15_t)0xaf55, (q15_t)0x635d, (q15_t)0xaf50, (q15_t)0x6359, (q15_t)0xaf4b, (q15_t)0x6355, (q15_t)0xaf46, - (q15_t)0x6351, (q15_t)0xaf41, (q15_t)0x634d, (q15_t)0xaf3d, (q15_t)0x6349, (q15_t)0xaf38, (q15_t)0x6345, (q15_t)0xaf33, - (q15_t)0x6341, (q15_t)0xaf2e, (q15_t)0x633d, (q15_t)0xaf29, (q15_t)0x6339, (q15_t)0xaf24, (q15_t)0x6335, (q15_t)0xaf1f, - (q15_t)0x6331, (q15_t)0xaf1b, (q15_t)0x632d, (q15_t)0xaf16, (q15_t)0x6329, (q15_t)0xaf11, (q15_t)0x6325, (q15_t)0xaf0c, - (q15_t)0x6321, (q15_t)0xaf07, (q15_t)0x631d, (q15_t)0xaf02, (q15_t)0x6319, (q15_t)0xaefd, (q15_t)0x6315, (q15_t)0xaef8, - (q15_t)0x6311, (q15_t)0xaef4, (q15_t)0x630d, (q15_t)0xaeef, (q15_t)0x6309, (q15_t)0xaeea, (q15_t)0x6305, (q15_t)0xaee5, - (q15_t)0x6301, (q15_t)0xaee0, (q15_t)0x62fd, (q15_t)0xaedb, (q15_t)0x62f9, (q15_t)0xaed6, (q15_t)0x62f5, (q15_t)0xaed2, - (q15_t)0x62f2, (q15_t)0xaecd, (q15_t)0x62ee, (q15_t)0xaec8, (q15_t)0x62ea, (q15_t)0xaec3, (q15_t)0x62e6, (q15_t)0xaebe, - (q15_t)0x62e2, (q15_t)0xaeb9, (q15_t)0x62de, (q15_t)0xaeb4, (q15_t)0x62da, (q15_t)0xaeb0, (q15_t)0x62d6, (q15_t)0xaeab, - (q15_t)0x62d2, (q15_t)0xaea6, (q15_t)0x62ce, (q15_t)0xaea1, (q15_t)0x62ca, (q15_t)0xae9c, (q15_t)0x62c6, (q15_t)0xae97, - (q15_t)0x62c2, (q15_t)0xae92, (q15_t)0x62be, (q15_t)0xae8e, (q15_t)0x62ba, (q15_t)0xae89, (q15_t)0x62b6, (q15_t)0xae84, - (q15_t)0x62b2, (q15_t)0xae7f, (q15_t)0x62ae, (q15_t)0xae7a, (q15_t)0x62aa, (q15_t)0xae75, (q15_t)0x62a6, (q15_t)0xae71, - (q15_t)0x62a2, (q15_t)0xae6c, (q15_t)0x629e, (q15_t)0xae67, (q15_t)0x629a, (q15_t)0xae62, (q15_t)0x6296, (q15_t)0xae5d, - (q15_t)0x6292, (q15_t)0xae58, (q15_t)0x628e, (q15_t)0xae54, (q15_t)0x628a, (q15_t)0xae4f, (q15_t)0x6286, (q15_t)0xae4a, - (q15_t)0x6282, (q15_t)0xae45, (q15_t)0x627e, (q15_t)0xae40, (q15_t)0x627a, (q15_t)0xae3b, (q15_t)0x6275, (q15_t)0xae37, - (q15_t)0x6271, (q15_t)0xae32, (q15_t)0x626d, (q15_t)0xae2d, (q15_t)0x6269, (q15_t)0xae28, (q15_t)0x6265, (q15_t)0xae23, - (q15_t)0x6261, (q15_t)0xae1e, (q15_t)0x625d, (q15_t)0xae1a, (q15_t)0x6259, (q15_t)0xae15, (q15_t)0x6255, (q15_t)0xae10, - (q15_t)0x6251, (q15_t)0xae0b, (q15_t)0x624d, (q15_t)0xae06, (q15_t)0x6249, (q15_t)0xae01, (q15_t)0x6245, (q15_t)0xadfd, - (q15_t)0x6241, (q15_t)0xadf8, (q15_t)0x623d, (q15_t)0xadf3, (q15_t)0x6239, (q15_t)0xadee, (q15_t)0x6235, (q15_t)0xade9, - (q15_t)0x6231, (q15_t)0xade4, (q15_t)0x622d, (q15_t)0xade0, (q15_t)0x6229, (q15_t)0xaddb, (q15_t)0x6225, (q15_t)0xadd6, - (q15_t)0x6221, (q15_t)0xadd1, (q15_t)0x621d, (q15_t)0xadcc, (q15_t)0x6219, (q15_t)0xadc8, (q15_t)0x6215, (q15_t)0xadc3, - (q15_t)0x6211, (q15_t)0xadbe, (q15_t)0x620d, (q15_t)0xadb9, (q15_t)0x6209, (q15_t)0xadb4, (q15_t)0x6205, (q15_t)0xadaf, - (q15_t)0x6201, (q15_t)0xadab, (q15_t)0x61fd, (q15_t)0xada6, (q15_t)0x61f9, (q15_t)0xada1, (q15_t)0x61f5, (q15_t)0xad9c, - (q15_t)0x61f1, (q15_t)0xad97, (q15_t)0x61ec, (q15_t)0xad93, (q15_t)0x61e8, (q15_t)0xad8e, (q15_t)0x61e4, (q15_t)0xad89, - (q15_t)0x61e0, (q15_t)0xad84, (q15_t)0x61dc, (q15_t)0xad7f, (q15_t)0x61d8, (q15_t)0xad7b, (q15_t)0x61d4, (q15_t)0xad76, - (q15_t)0x61d0, (q15_t)0xad71, (q15_t)0x61cc, (q15_t)0xad6c, (q15_t)0x61c8, (q15_t)0xad67, (q15_t)0x61c4, (q15_t)0xad63, - (q15_t)0x61c0, (q15_t)0xad5e, (q15_t)0x61bc, (q15_t)0xad59, (q15_t)0x61b8, (q15_t)0xad54, (q15_t)0x61b4, (q15_t)0xad4f, - (q15_t)0x61b0, (q15_t)0xad4b, (q15_t)0x61ac, (q15_t)0xad46, (q15_t)0x61a8, (q15_t)0xad41, (q15_t)0x61a3, (q15_t)0xad3c, - (q15_t)0x619f, (q15_t)0xad37, (q15_t)0x619b, (q15_t)0xad33, (q15_t)0x6197, (q15_t)0xad2e, (q15_t)0x6193, (q15_t)0xad29, - (q15_t)0x618f, (q15_t)0xad24, (q15_t)0x618b, (q15_t)0xad1f, (q15_t)0x6187, (q15_t)0xad1b, (q15_t)0x6183, (q15_t)0xad16, - (q15_t)0x617f, (q15_t)0xad11, (q15_t)0x617b, (q15_t)0xad0c, (q15_t)0x6177, (q15_t)0xad08, (q15_t)0x6173, (q15_t)0xad03, - (q15_t)0x616f, (q15_t)0xacfe, (q15_t)0x616b, (q15_t)0xacf9, (q15_t)0x6166, (q15_t)0xacf4, (q15_t)0x6162, (q15_t)0xacf0, - (q15_t)0x615e, (q15_t)0xaceb, (q15_t)0x615a, (q15_t)0xace6, (q15_t)0x6156, (q15_t)0xace1, (q15_t)0x6152, (q15_t)0xacdd, - (q15_t)0x614e, (q15_t)0xacd8, (q15_t)0x614a, (q15_t)0xacd3, (q15_t)0x6146, (q15_t)0xacce, (q15_t)0x6142, (q15_t)0xacc9, - (q15_t)0x613e, (q15_t)0xacc5, (q15_t)0x613a, (q15_t)0xacc0, (q15_t)0x6135, (q15_t)0xacbb, (q15_t)0x6131, (q15_t)0xacb6, - (q15_t)0x612d, (q15_t)0xacb2, (q15_t)0x6129, (q15_t)0xacad, (q15_t)0x6125, (q15_t)0xaca8, (q15_t)0x6121, (q15_t)0xaca3, - (q15_t)0x611d, (q15_t)0xac9e, (q15_t)0x6119, (q15_t)0xac9a, (q15_t)0x6115, (q15_t)0xac95, (q15_t)0x6111, (q15_t)0xac90, - (q15_t)0x610d, (q15_t)0xac8b, (q15_t)0x6108, (q15_t)0xac87, (q15_t)0x6104, (q15_t)0xac82, (q15_t)0x6100, (q15_t)0xac7d, - (q15_t)0x60fc, (q15_t)0xac78, (q15_t)0x60f8, (q15_t)0xac74, (q15_t)0x60f4, (q15_t)0xac6f, (q15_t)0x60f0, (q15_t)0xac6a, - (q15_t)0x60ec, (q15_t)0xac65, (q15_t)0x60e8, (q15_t)0xac61, (q15_t)0x60e4, (q15_t)0xac5c, (q15_t)0x60df, (q15_t)0xac57, - (q15_t)0x60db, (q15_t)0xac52, (q15_t)0x60d7, (q15_t)0xac4e, (q15_t)0x60d3, (q15_t)0xac49, (q15_t)0x60cf, (q15_t)0xac44, - (q15_t)0x60cb, (q15_t)0xac3f, (q15_t)0x60c7, (q15_t)0xac3b, (q15_t)0x60c3, (q15_t)0xac36, (q15_t)0x60bf, (q15_t)0xac31, - (q15_t)0x60ba, (q15_t)0xac2c, (q15_t)0x60b6, (q15_t)0xac28, (q15_t)0x60b2, (q15_t)0xac23, (q15_t)0x60ae, (q15_t)0xac1e, - (q15_t)0x60aa, (q15_t)0xac19, (q15_t)0x60a6, (q15_t)0xac15, (q15_t)0x60a2, (q15_t)0xac10, (q15_t)0x609e, (q15_t)0xac0b, - (q15_t)0x6099, (q15_t)0xac06, (q15_t)0x6095, (q15_t)0xac02, (q15_t)0x6091, (q15_t)0xabfd, (q15_t)0x608d, (q15_t)0xabf8, - (q15_t)0x6089, (q15_t)0xabf3, (q15_t)0x6085, (q15_t)0xabef, (q15_t)0x6081, (q15_t)0xabea, (q15_t)0x607d, (q15_t)0xabe5, - (q15_t)0x6078, (q15_t)0xabe0, (q15_t)0x6074, (q15_t)0xabdc, (q15_t)0x6070, (q15_t)0xabd7, (q15_t)0x606c, (q15_t)0xabd2, - (q15_t)0x6068, (q15_t)0xabcd, (q15_t)0x6064, (q15_t)0xabc9, (q15_t)0x6060, (q15_t)0xabc4, (q15_t)0x605c, (q15_t)0xabbf, - (q15_t)0x6057, (q15_t)0xabbb, (q15_t)0x6053, (q15_t)0xabb6, (q15_t)0x604f, (q15_t)0xabb1, (q15_t)0x604b, (q15_t)0xabac, - (q15_t)0x6047, (q15_t)0xaba8, (q15_t)0x6043, (q15_t)0xaba3, (q15_t)0x603f, (q15_t)0xab9e, (q15_t)0x603a, (q15_t)0xab99, - (q15_t)0x6036, (q15_t)0xab95, (q15_t)0x6032, (q15_t)0xab90, (q15_t)0x602e, (q15_t)0xab8b, (q15_t)0x602a, (q15_t)0xab87, - (q15_t)0x6026, (q15_t)0xab82, (q15_t)0x6022, (q15_t)0xab7d, (q15_t)0x601d, (q15_t)0xab78, (q15_t)0x6019, (q15_t)0xab74, - (q15_t)0x6015, (q15_t)0xab6f, (q15_t)0x6011, (q15_t)0xab6a, (q15_t)0x600d, (q15_t)0xab66, (q15_t)0x6009, (q15_t)0xab61, - (q15_t)0x6004, (q15_t)0xab5c, (q15_t)0x6000, (q15_t)0xab57, (q15_t)0x5ffc, (q15_t)0xab53, (q15_t)0x5ff8, (q15_t)0xab4e, - (q15_t)0x5ff4, (q15_t)0xab49, (q15_t)0x5ff0, (q15_t)0xab45, (q15_t)0x5fec, (q15_t)0xab40, (q15_t)0x5fe7, (q15_t)0xab3b, - (q15_t)0x5fe3, (q15_t)0xab36, (q15_t)0x5fdf, (q15_t)0xab32, (q15_t)0x5fdb, (q15_t)0xab2d, (q15_t)0x5fd7, (q15_t)0xab28, - (q15_t)0x5fd3, (q15_t)0xab24, (q15_t)0x5fce, (q15_t)0xab1f, (q15_t)0x5fca, (q15_t)0xab1a, (q15_t)0x5fc6, (q15_t)0xab16, - (q15_t)0x5fc2, (q15_t)0xab11, (q15_t)0x5fbe, (q15_t)0xab0c, (q15_t)0x5fba, (q15_t)0xab07, (q15_t)0x5fb5, (q15_t)0xab03, - (q15_t)0x5fb1, (q15_t)0xaafe, (q15_t)0x5fad, (q15_t)0xaaf9, (q15_t)0x5fa9, (q15_t)0xaaf5, (q15_t)0x5fa5, (q15_t)0xaaf0, - (q15_t)0x5fa0, (q15_t)0xaaeb, (q15_t)0x5f9c, (q15_t)0xaae7, (q15_t)0x5f98, (q15_t)0xaae2, (q15_t)0x5f94, (q15_t)0xaadd, - (q15_t)0x5f90, (q15_t)0xaad8, (q15_t)0x5f8c, (q15_t)0xaad4, (q15_t)0x5f87, (q15_t)0xaacf, (q15_t)0x5f83, (q15_t)0xaaca, - (q15_t)0x5f7f, (q15_t)0xaac6, (q15_t)0x5f7b, (q15_t)0xaac1, (q15_t)0x5f77, (q15_t)0xaabc, (q15_t)0x5f72, (q15_t)0xaab8, - (q15_t)0x5f6e, (q15_t)0xaab3, (q15_t)0x5f6a, (q15_t)0xaaae, (q15_t)0x5f66, (q15_t)0xaaaa, (q15_t)0x5f62, (q15_t)0xaaa5, - (q15_t)0x5f5e, (q15_t)0xaaa0, (q15_t)0x5f59, (q15_t)0xaa9c, (q15_t)0x5f55, (q15_t)0xaa97, (q15_t)0x5f51, (q15_t)0xaa92, - (q15_t)0x5f4d, (q15_t)0xaa8e, (q15_t)0x5f49, (q15_t)0xaa89, (q15_t)0x5f44, (q15_t)0xaa84, (q15_t)0x5f40, (q15_t)0xaa7f, - (q15_t)0x5f3c, (q15_t)0xaa7b, (q15_t)0x5f38, (q15_t)0xaa76, (q15_t)0x5f34, (q15_t)0xaa71, (q15_t)0x5f2f, (q15_t)0xaa6d, - (q15_t)0x5f2b, (q15_t)0xaa68, (q15_t)0x5f27, (q15_t)0xaa63, (q15_t)0x5f23, (q15_t)0xaa5f, (q15_t)0x5f1f, (q15_t)0xaa5a, - (q15_t)0x5f1a, (q15_t)0xaa55, (q15_t)0x5f16, (q15_t)0xaa51, (q15_t)0x5f12, (q15_t)0xaa4c, (q15_t)0x5f0e, (q15_t)0xaa47, - (q15_t)0x5f0a, (q15_t)0xaa43, (q15_t)0x5f05, (q15_t)0xaa3e, (q15_t)0x5f01, (q15_t)0xaa39, (q15_t)0x5efd, (q15_t)0xaa35, - (q15_t)0x5ef9, (q15_t)0xaa30, (q15_t)0x5ef5, (q15_t)0xaa2b, (q15_t)0x5ef0, (q15_t)0xaa27, (q15_t)0x5eec, (q15_t)0xaa22, - (q15_t)0x5ee8, (q15_t)0xaa1d, (q15_t)0x5ee4, (q15_t)0xaa19, (q15_t)0x5edf, (q15_t)0xaa14, (q15_t)0x5edb, (q15_t)0xaa10, - (q15_t)0x5ed7, (q15_t)0xaa0b, (q15_t)0x5ed3, (q15_t)0xaa06, (q15_t)0x5ecf, (q15_t)0xaa02, (q15_t)0x5eca, (q15_t)0xa9fd, - (q15_t)0x5ec6, (q15_t)0xa9f8, (q15_t)0x5ec2, (q15_t)0xa9f4, (q15_t)0x5ebe, (q15_t)0xa9ef, (q15_t)0x5eb9, (q15_t)0xa9ea, - (q15_t)0x5eb5, (q15_t)0xa9e6, (q15_t)0x5eb1, (q15_t)0xa9e1, (q15_t)0x5ead, (q15_t)0xa9dc, (q15_t)0x5ea9, (q15_t)0xa9d8, - (q15_t)0x5ea4, (q15_t)0xa9d3, (q15_t)0x5ea0, (q15_t)0xa9ce, (q15_t)0x5e9c, (q15_t)0xa9ca, (q15_t)0x5e98, (q15_t)0xa9c5, - (q15_t)0x5e93, (q15_t)0xa9c0, (q15_t)0x5e8f, (q15_t)0xa9bc, (q15_t)0x5e8b, (q15_t)0xa9b7, (q15_t)0x5e87, (q15_t)0xa9b3, - (q15_t)0x5e82, (q15_t)0xa9ae, (q15_t)0x5e7e, (q15_t)0xa9a9, (q15_t)0x5e7a, (q15_t)0xa9a5, (q15_t)0x5e76, (q15_t)0xa9a0, - (q15_t)0x5e71, (q15_t)0xa99b, (q15_t)0x5e6d, (q15_t)0xa997, (q15_t)0x5e69, (q15_t)0xa992, (q15_t)0x5e65, (q15_t)0xa98d, - (q15_t)0x5e60, (q15_t)0xa989, (q15_t)0x5e5c, (q15_t)0xa984, (q15_t)0x5e58, (q15_t)0xa980, (q15_t)0x5e54, (q15_t)0xa97b, - (q15_t)0x5e50, (q15_t)0xa976, (q15_t)0x5e4b, (q15_t)0xa972, (q15_t)0x5e47, (q15_t)0xa96d, (q15_t)0x5e43, (q15_t)0xa968, - (q15_t)0x5e3f, (q15_t)0xa964, (q15_t)0x5e3a, (q15_t)0xa95f, (q15_t)0x5e36, (q15_t)0xa95b, (q15_t)0x5e32, (q15_t)0xa956, - (q15_t)0x5e2d, (q15_t)0xa951, (q15_t)0x5e29, (q15_t)0xa94d, (q15_t)0x5e25, (q15_t)0xa948, (q15_t)0x5e21, (q15_t)0xa943, - (q15_t)0x5e1c, (q15_t)0xa93f, (q15_t)0x5e18, (q15_t)0xa93a, (q15_t)0x5e14, (q15_t)0xa936, (q15_t)0x5e10, (q15_t)0xa931, - (q15_t)0x5e0b, (q15_t)0xa92c, (q15_t)0x5e07, (q15_t)0xa928, (q15_t)0x5e03, (q15_t)0xa923, (q15_t)0x5dff, (q15_t)0xa91e, - (q15_t)0x5dfa, (q15_t)0xa91a, (q15_t)0x5df6, (q15_t)0xa915, (q15_t)0x5df2, (q15_t)0xa911, (q15_t)0x5dee, (q15_t)0xa90c, - (q15_t)0x5de9, (q15_t)0xa907, (q15_t)0x5de5, (q15_t)0xa903, (q15_t)0x5de1, (q15_t)0xa8fe, (q15_t)0x5ddc, (q15_t)0xa8fa, - (q15_t)0x5dd8, (q15_t)0xa8f5, (q15_t)0x5dd4, (q15_t)0xa8f0, (q15_t)0x5dd0, (q15_t)0xa8ec, (q15_t)0x5dcb, (q15_t)0xa8e7, - (q15_t)0x5dc7, (q15_t)0xa8e3, (q15_t)0x5dc3, (q15_t)0xa8de, (q15_t)0x5dbf, (q15_t)0xa8d9, (q15_t)0x5dba, (q15_t)0xa8d5, - (q15_t)0x5db6, (q15_t)0xa8d0, (q15_t)0x5db2, (q15_t)0xa8cc, (q15_t)0x5dad, (q15_t)0xa8c7, (q15_t)0x5da9, (q15_t)0xa8c2, - (q15_t)0x5da5, (q15_t)0xa8be, (q15_t)0x5da1, (q15_t)0xa8b9, (q15_t)0x5d9c, (q15_t)0xa8b5, (q15_t)0x5d98, (q15_t)0xa8b0, - (q15_t)0x5d94, (q15_t)0xa8ab, (q15_t)0x5d8f, (q15_t)0xa8a7, (q15_t)0x5d8b, (q15_t)0xa8a2, (q15_t)0x5d87, (q15_t)0xa89e, - (q15_t)0x5d83, (q15_t)0xa899, (q15_t)0x5d7e, (q15_t)0xa894, (q15_t)0x5d7a, (q15_t)0xa890, (q15_t)0x5d76, (q15_t)0xa88b, - (q15_t)0x5d71, (q15_t)0xa887, (q15_t)0x5d6d, (q15_t)0xa882, (q15_t)0x5d69, (q15_t)0xa87d, (q15_t)0x5d65, (q15_t)0xa879, - (q15_t)0x5d60, (q15_t)0xa874, (q15_t)0x5d5c, (q15_t)0xa870, (q15_t)0x5d58, (q15_t)0xa86b, (q15_t)0x5d53, (q15_t)0xa867, - (q15_t)0x5d4f, (q15_t)0xa862, (q15_t)0x5d4b, (q15_t)0xa85d, (q15_t)0x5d46, (q15_t)0xa859, (q15_t)0x5d42, (q15_t)0xa854, - (q15_t)0x5d3e, (q15_t)0xa850, (q15_t)0x5d3a, (q15_t)0xa84b, (q15_t)0x5d35, (q15_t)0xa847, (q15_t)0x5d31, (q15_t)0xa842, - (q15_t)0x5d2d, (q15_t)0xa83d, (q15_t)0x5d28, (q15_t)0xa839, (q15_t)0x5d24, (q15_t)0xa834, (q15_t)0x5d20, (q15_t)0xa830, - (q15_t)0x5d1b, (q15_t)0xa82b, (q15_t)0x5d17, (q15_t)0xa827, (q15_t)0x5d13, (q15_t)0xa822, (q15_t)0x5d0e, (q15_t)0xa81d, - (q15_t)0x5d0a, (q15_t)0xa819, (q15_t)0x5d06, (q15_t)0xa814, (q15_t)0x5d01, (q15_t)0xa810, (q15_t)0x5cfd, (q15_t)0xa80b, - (q15_t)0x5cf9, (q15_t)0xa807, (q15_t)0x5cf5, (q15_t)0xa802, (q15_t)0x5cf0, (q15_t)0xa7fd, (q15_t)0x5cec, (q15_t)0xa7f9, - (q15_t)0x5ce8, (q15_t)0xa7f4, (q15_t)0x5ce3, (q15_t)0xa7f0, (q15_t)0x5cdf, (q15_t)0xa7eb, (q15_t)0x5cdb, (q15_t)0xa7e7, - (q15_t)0x5cd6, (q15_t)0xa7e2, (q15_t)0x5cd2, (q15_t)0xa7de, (q15_t)0x5cce, (q15_t)0xa7d9, (q15_t)0x5cc9, (q15_t)0xa7d4, - (q15_t)0x5cc5, (q15_t)0xa7d0, (q15_t)0x5cc1, (q15_t)0xa7cb, (q15_t)0x5cbc, (q15_t)0xa7c7, (q15_t)0x5cb8, (q15_t)0xa7c2, - (q15_t)0x5cb4, (q15_t)0xa7be, (q15_t)0x5caf, (q15_t)0xa7b9, (q15_t)0x5cab, (q15_t)0xa7b5, (q15_t)0x5ca7, (q15_t)0xa7b0, - (q15_t)0x5ca2, (q15_t)0xa7ab, (q15_t)0x5c9e, (q15_t)0xa7a7, (q15_t)0x5c9a, (q15_t)0xa7a2, (q15_t)0x5c95, (q15_t)0xa79e, - (q15_t)0x5c91, (q15_t)0xa799, (q15_t)0x5c8d, (q15_t)0xa795, (q15_t)0x5c88, (q15_t)0xa790, (q15_t)0x5c84, (q15_t)0xa78c, - (q15_t)0x5c80, (q15_t)0xa787, (q15_t)0x5c7b, (q15_t)0xa783, (q15_t)0x5c77, (q15_t)0xa77e, (q15_t)0x5c73, (q15_t)0xa779, - (q15_t)0x5c6e, (q15_t)0xa775, (q15_t)0x5c6a, (q15_t)0xa770, (q15_t)0x5c66, (q15_t)0xa76c, (q15_t)0x5c61, (q15_t)0xa767, - (q15_t)0x5c5d, (q15_t)0xa763, (q15_t)0x5c58, (q15_t)0xa75e, (q15_t)0x5c54, (q15_t)0xa75a, (q15_t)0x5c50, (q15_t)0xa755, - (q15_t)0x5c4b, (q15_t)0xa751, (q15_t)0x5c47, (q15_t)0xa74c, (q15_t)0x5c43, (q15_t)0xa748, (q15_t)0x5c3e, (q15_t)0xa743, - (q15_t)0x5c3a, (q15_t)0xa73f, (q15_t)0x5c36, (q15_t)0xa73a, (q15_t)0x5c31, (q15_t)0xa735, (q15_t)0x5c2d, (q15_t)0xa731, - (q15_t)0x5c29, (q15_t)0xa72c, (q15_t)0x5c24, (q15_t)0xa728, (q15_t)0x5c20, (q15_t)0xa723, (q15_t)0x5c1b, (q15_t)0xa71f, - (q15_t)0x5c17, (q15_t)0xa71a, (q15_t)0x5c13, (q15_t)0xa716, (q15_t)0x5c0e, (q15_t)0xa711, (q15_t)0x5c0a, (q15_t)0xa70d, - (q15_t)0x5c06, (q15_t)0xa708, (q15_t)0x5c01, (q15_t)0xa704, (q15_t)0x5bfd, (q15_t)0xa6ff, (q15_t)0x5bf9, (q15_t)0xa6fb, - (q15_t)0x5bf4, (q15_t)0xa6f6, (q15_t)0x5bf0, (q15_t)0xa6f2, (q15_t)0x5beb, (q15_t)0xa6ed, (q15_t)0x5be7, (q15_t)0xa6e9, - (q15_t)0x5be3, (q15_t)0xa6e4, (q15_t)0x5bde, (q15_t)0xa6e0, (q15_t)0x5bda, (q15_t)0xa6db, (q15_t)0x5bd6, (q15_t)0xa6d7, - (q15_t)0x5bd1, (q15_t)0xa6d2, (q15_t)0x5bcd, (q15_t)0xa6ce, (q15_t)0x5bc8, (q15_t)0xa6c9, (q15_t)0x5bc4, (q15_t)0xa6c5, - (q15_t)0x5bc0, (q15_t)0xa6c0, (q15_t)0x5bbb, (q15_t)0xa6bc, (q15_t)0x5bb7, (q15_t)0xa6b7, (q15_t)0x5bb2, (q15_t)0xa6b3, - (q15_t)0x5bae, (q15_t)0xa6ae, (q15_t)0x5baa, (q15_t)0xa6aa, (q15_t)0x5ba5, (q15_t)0xa6a5, (q15_t)0x5ba1, (q15_t)0xa6a1, - (q15_t)0x5b9d, (q15_t)0xa69c, (q15_t)0x5b98, (q15_t)0xa698, (q15_t)0x5b94, (q15_t)0xa693, (q15_t)0x5b8f, (q15_t)0xa68f, - (q15_t)0x5b8b, (q15_t)0xa68a, (q15_t)0x5b87, (q15_t)0xa686, (q15_t)0x5b82, (q15_t)0xa681, (q15_t)0x5b7e, (q15_t)0xa67d, - (q15_t)0x5b79, (q15_t)0xa678, (q15_t)0x5b75, (q15_t)0xa674, (q15_t)0x5b71, (q15_t)0xa66f, (q15_t)0x5b6c, (q15_t)0xa66b, - (q15_t)0x5b68, (q15_t)0xa666, (q15_t)0x5b63, (q15_t)0xa662, (q15_t)0x5b5f, (q15_t)0xa65d, (q15_t)0x5b5b, (q15_t)0xa659, - (q15_t)0x5b56, (q15_t)0xa654, (q15_t)0x5b52, (q15_t)0xa650, (q15_t)0x5b4d, (q15_t)0xa64b, (q15_t)0x5b49, (q15_t)0xa647, - (q15_t)0x5b45, (q15_t)0xa642, (q15_t)0x5b40, (q15_t)0xa63e, (q15_t)0x5b3c, (q15_t)0xa639, (q15_t)0x5b37, (q15_t)0xa635, - (q15_t)0x5b33, (q15_t)0xa630, (q15_t)0x5b2f, (q15_t)0xa62c, (q15_t)0x5b2a, (q15_t)0xa627, (q15_t)0x5b26, (q15_t)0xa623, - (q15_t)0x5b21, (q15_t)0xa61f, (q15_t)0x5b1d, (q15_t)0xa61a, (q15_t)0x5b19, (q15_t)0xa616, (q15_t)0x5b14, (q15_t)0xa611, - (q15_t)0x5b10, (q15_t)0xa60d, (q15_t)0x5b0b, (q15_t)0xa608, (q15_t)0x5b07, (q15_t)0xa604, (q15_t)0x5b02, (q15_t)0xa5ff, - (q15_t)0x5afe, (q15_t)0xa5fb, (q15_t)0x5afa, (q15_t)0xa5f6, (q15_t)0x5af5, (q15_t)0xa5f2, (q15_t)0x5af1, (q15_t)0xa5ed, - (q15_t)0x5aec, (q15_t)0xa5e9, (q15_t)0x5ae8, (q15_t)0xa5e4, (q15_t)0x5ae4, (q15_t)0xa5e0, (q15_t)0x5adf, (q15_t)0xa5dc, - (q15_t)0x5adb, (q15_t)0xa5d7, (q15_t)0x5ad6, (q15_t)0xa5d3, (q15_t)0x5ad2, (q15_t)0xa5ce, (q15_t)0x5acd, (q15_t)0xa5ca, - (q15_t)0x5ac9, (q15_t)0xa5c5, (q15_t)0x5ac5, (q15_t)0xa5c1, (q15_t)0x5ac0, (q15_t)0xa5bc, (q15_t)0x5abc, (q15_t)0xa5b8, - (q15_t)0x5ab7, (q15_t)0xa5b3, (q15_t)0x5ab3, (q15_t)0xa5af, (q15_t)0x5aae, (q15_t)0xa5aa, (q15_t)0x5aaa, (q15_t)0xa5a6, - (q15_t)0x5aa5, (q15_t)0xa5a2, (q15_t)0x5aa1, (q15_t)0xa59d, (q15_t)0x5a9d, (q15_t)0xa599, (q15_t)0x5a98, (q15_t)0xa594, - (q15_t)0x5a94, (q15_t)0xa590, (q15_t)0x5a8f, (q15_t)0xa58b, (q15_t)0x5a8b, (q15_t)0xa587, (q15_t)0x5a86, (q15_t)0xa582, - (q15_t)0x5a82, (q15_t)0xa57e, (q15_t)0x5a7e, (q15_t)0xa57a, (q15_t)0x5a79, (q15_t)0xa575, (q15_t)0x5a75, (q15_t)0xa571, - (q15_t)0x5a70, (q15_t)0xa56c, (q15_t)0x5a6c, (q15_t)0xa568, (q15_t)0x5a67, (q15_t)0xa563, (q15_t)0x5a63, (q15_t)0xa55f, - (q15_t)0x5a5e, (q15_t)0xa55b, (q15_t)0x5a5a, (q15_t)0xa556, (q15_t)0x5a56, (q15_t)0xa552, (q15_t)0x5a51, (q15_t)0xa54d, - (q15_t)0x5a4d, (q15_t)0xa549, (q15_t)0x5a48, (q15_t)0xa544, (q15_t)0x5a44, (q15_t)0xa540, (q15_t)0x5a3f, (q15_t)0xa53b, - (q15_t)0x5a3b, (q15_t)0xa537, (q15_t)0x5a36, (q15_t)0xa533, (q15_t)0x5a32, (q15_t)0xa52e, (q15_t)0x5a2d, (q15_t)0xa52a, - (q15_t)0x5a29, (q15_t)0xa525, (q15_t)0x5a24, (q15_t)0xa521, (q15_t)0x5a20, (q15_t)0xa51c, (q15_t)0x5a1c, (q15_t)0xa518, - (q15_t)0x5a17, (q15_t)0xa514, (q15_t)0x5a13, (q15_t)0xa50f, (q15_t)0x5a0e, (q15_t)0xa50b, (q15_t)0x5a0a, (q15_t)0xa506, - (q15_t)0x5a05, (q15_t)0xa502, (q15_t)0x5a01, (q15_t)0xa4fe, (q15_t)0x59fc, (q15_t)0xa4f9, (q15_t)0x59f8, (q15_t)0xa4f5, - (q15_t)0x59f3, (q15_t)0xa4f0, (q15_t)0x59ef, (q15_t)0xa4ec, (q15_t)0x59ea, (q15_t)0xa4e7, (q15_t)0x59e6, (q15_t)0xa4e3, - (q15_t)0x59e1, (q15_t)0xa4df, (q15_t)0x59dd, (q15_t)0xa4da, (q15_t)0x59d9, (q15_t)0xa4d6, (q15_t)0x59d4, (q15_t)0xa4d1, - (q15_t)0x59d0, (q15_t)0xa4cd, (q15_t)0x59cb, (q15_t)0xa4c9, (q15_t)0x59c7, (q15_t)0xa4c4, (q15_t)0x59c2, (q15_t)0xa4c0, - (q15_t)0x59be, (q15_t)0xa4bb, (q15_t)0x59b9, (q15_t)0xa4b7, (q15_t)0x59b5, (q15_t)0xa4b3, (q15_t)0x59b0, (q15_t)0xa4ae, - (q15_t)0x59ac, (q15_t)0xa4aa, (q15_t)0x59a7, (q15_t)0xa4a5, (q15_t)0x59a3, (q15_t)0xa4a1, (q15_t)0x599e, (q15_t)0xa49d, - (q15_t)0x599a, (q15_t)0xa498, (q15_t)0x5995, (q15_t)0xa494, (q15_t)0x5991, (q15_t)0xa48f, (q15_t)0x598c, (q15_t)0xa48b, - (q15_t)0x5988, (q15_t)0xa487, (q15_t)0x5983, (q15_t)0xa482, (q15_t)0x597f, (q15_t)0xa47e, (q15_t)0x597a, (q15_t)0xa479, - (q15_t)0x5976, (q15_t)0xa475, (q15_t)0x5971, (q15_t)0xa471, (q15_t)0x596d, (q15_t)0xa46c, (q15_t)0x5968, (q15_t)0xa468, - (q15_t)0x5964, (q15_t)0xa463, (q15_t)0x595f, (q15_t)0xa45f, (q15_t)0x595b, (q15_t)0xa45b, (q15_t)0x5956, (q15_t)0xa456, - (q15_t)0x5952, (q15_t)0xa452, (q15_t)0x594d, (q15_t)0xa44e, (q15_t)0x5949, (q15_t)0xa449, (q15_t)0x5944, (q15_t)0xa445, - (q15_t)0x5940, (q15_t)0xa440, (q15_t)0x593b, (q15_t)0xa43c, (q15_t)0x5937, (q15_t)0xa438, (q15_t)0x5932, (q15_t)0xa433, - (q15_t)0x592e, (q15_t)0xa42f, (q15_t)0x5929, (q15_t)0xa42a, (q15_t)0x5925, (q15_t)0xa426, (q15_t)0x5920, (q15_t)0xa422, - (q15_t)0x591c, (q15_t)0xa41d, (q15_t)0x5917, (q15_t)0xa419, (q15_t)0x5913, (q15_t)0xa415, (q15_t)0x590e, (q15_t)0xa410, - (q15_t)0x590a, (q15_t)0xa40c, (q15_t)0x5905, (q15_t)0xa407, (q15_t)0x5901, (q15_t)0xa403, (q15_t)0x58fc, (q15_t)0xa3ff, - (q15_t)0x58f8, (q15_t)0xa3fa, (q15_t)0x58f3, (q15_t)0xa3f6, (q15_t)0x58ef, (q15_t)0xa3f2, (q15_t)0x58ea, (q15_t)0xa3ed, - (q15_t)0x58e6, (q15_t)0xa3e9, (q15_t)0x58e1, (q15_t)0xa3e5, (q15_t)0x58dd, (q15_t)0xa3e0, (q15_t)0x58d8, (q15_t)0xa3dc, - (q15_t)0x58d4, (q15_t)0xa3d7, (q15_t)0x58cf, (q15_t)0xa3d3, (q15_t)0x58cb, (q15_t)0xa3cf, (q15_t)0x58c6, (q15_t)0xa3ca, - (q15_t)0x58c1, (q15_t)0xa3c6, (q15_t)0x58bd, (q15_t)0xa3c2, (q15_t)0x58b8, (q15_t)0xa3bd, (q15_t)0x58b4, (q15_t)0xa3b9, - (q15_t)0x58af, (q15_t)0xa3b5, (q15_t)0x58ab, (q15_t)0xa3b0, (q15_t)0x58a6, (q15_t)0xa3ac, (q15_t)0x58a2, (q15_t)0xa3a8, - (q15_t)0x589d, (q15_t)0xa3a3, (q15_t)0x5899, (q15_t)0xa39f, (q15_t)0x5894, (q15_t)0xa39a, (q15_t)0x5890, (q15_t)0xa396, - (q15_t)0x588b, (q15_t)0xa392, (q15_t)0x5887, (q15_t)0xa38d, (q15_t)0x5882, (q15_t)0xa389, (q15_t)0x587d, (q15_t)0xa385, - (q15_t)0x5879, (q15_t)0xa380, (q15_t)0x5874, (q15_t)0xa37c, (q15_t)0x5870, (q15_t)0xa378, (q15_t)0x586b, (q15_t)0xa373, - (q15_t)0x5867, (q15_t)0xa36f, (q15_t)0x5862, (q15_t)0xa36b, (q15_t)0x585e, (q15_t)0xa366, (q15_t)0x5859, (q15_t)0xa362, - (q15_t)0x5855, (q15_t)0xa35e, (q15_t)0x5850, (q15_t)0xa359, (q15_t)0x584b, (q15_t)0xa355, (q15_t)0x5847, (q15_t)0xa351, - (q15_t)0x5842, (q15_t)0xa34c, (q15_t)0x583e, (q15_t)0xa348, (q15_t)0x5839, (q15_t)0xa344, (q15_t)0x5835, (q15_t)0xa33f, - (q15_t)0x5830, (q15_t)0xa33b, (q15_t)0x582c, (q15_t)0xa337, (q15_t)0x5827, (q15_t)0xa332, (q15_t)0x5822, (q15_t)0xa32e, - (q15_t)0x581e, (q15_t)0xa32a, (q15_t)0x5819, (q15_t)0xa325, (q15_t)0x5815, (q15_t)0xa321, (q15_t)0x5810, (q15_t)0xa31d, - (q15_t)0x580c, (q15_t)0xa318, (q15_t)0x5807, (q15_t)0xa314, (q15_t)0x5803, (q15_t)0xa310, (q15_t)0x57fe, (q15_t)0xa30b, - (q15_t)0x57f9, (q15_t)0xa307, (q15_t)0x57f5, (q15_t)0xa303, (q15_t)0x57f0, (q15_t)0xa2ff, (q15_t)0x57ec, (q15_t)0xa2fa, - (q15_t)0x57e7, (q15_t)0xa2f6, (q15_t)0x57e3, (q15_t)0xa2f2, (q15_t)0x57de, (q15_t)0xa2ed, (q15_t)0x57d9, (q15_t)0xa2e9, - (q15_t)0x57d5, (q15_t)0xa2e5, (q15_t)0x57d0, (q15_t)0xa2e0, (q15_t)0x57cc, (q15_t)0xa2dc, (q15_t)0x57c7, (q15_t)0xa2d8, - (q15_t)0x57c3, (q15_t)0xa2d3, (q15_t)0x57be, (q15_t)0xa2cf, (q15_t)0x57b9, (q15_t)0xa2cb, (q15_t)0x57b5, (q15_t)0xa2c6, - (q15_t)0x57b0, (q15_t)0xa2c2, (q15_t)0x57ac, (q15_t)0xa2be, (q15_t)0x57a7, (q15_t)0xa2ba, (q15_t)0x57a3, (q15_t)0xa2b5, - (q15_t)0x579e, (q15_t)0xa2b1, (q15_t)0x5799, (q15_t)0xa2ad, (q15_t)0x5795, (q15_t)0xa2a8, (q15_t)0x5790, (q15_t)0xa2a4, - (q15_t)0x578c, (q15_t)0xa2a0, (q15_t)0x5787, (q15_t)0xa29b, (q15_t)0x5783, (q15_t)0xa297, (q15_t)0x577e, (q15_t)0xa293, - (q15_t)0x5779, (q15_t)0xa28f, (q15_t)0x5775, (q15_t)0xa28a, (q15_t)0x5770, (q15_t)0xa286, (q15_t)0x576c, (q15_t)0xa282, - (q15_t)0x5767, (q15_t)0xa27d, (q15_t)0x5762, (q15_t)0xa279, (q15_t)0x575e, (q15_t)0xa275, (q15_t)0x5759, (q15_t)0xa271, - (q15_t)0x5755, (q15_t)0xa26c, (q15_t)0x5750, (q15_t)0xa268, (q15_t)0x574b, (q15_t)0xa264, (q15_t)0x5747, (q15_t)0xa25f, - (q15_t)0x5742, (q15_t)0xa25b, (q15_t)0x573e, (q15_t)0xa257, (q15_t)0x5739, (q15_t)0xa253, (q15_t)0x5734, (q15_t)0xa24e, - (q15_t)0x5730, (q15_t)0xa24a, (q15_t)0x572b, (q15_t)0xa246, (q15_t)0x5727, (q15_t)0xa241, (q15_t)0x5722, (q15_t)0xa23d, - (q15_t)0x571d, (q15_t)0xa239, (q15_t)0x5719, (q15_t)0xa235, (q15_t)0x5714, (q15_t)0xa230, (q15_t)0x5710, (q15_t)0xa22c, - (q15_t)0x570b, (q15_t)0xa228, (q15_t)0x5706, (q15_t)0xa224, (q15_t)0x5702, (q15_t)0xa21f, (q15_t)0x56fd, (q15_t)0xa21b, - (q15_t)0x56f9, (q15_t)0xa217, (q15_t)0x56f4, (q15_t)0xa212, (q15_t)0x56ef, (q15_t)0xa20e, (q15_t)0x56eb, (q15_t)0xa20a, - (q15_t)0x56e6, (q15_t)0xa206, (q15_t)0x56e2, (q15_t)0xa201, (q15_t)0x56dd, (q15_t)0xa1fd, (q15_t)0x56d8, (q15_t)0xa1f9, - (q15_t)0x56d4, (q15_t)0xa1f5, (q15_t)0x56cf, (q15_t)0xa1f0, (q15_t)0x56ca, (q15_t)0xa1ec, (q15_t)0x56c6, (q15_t)0xa1e8, - (q15_t)0x56c1, (q15_t)0xa1e4, (q15_t)0x56bd, (q15_t)0xa1df, (q15_t)0x56b8, (q15_t)0xa1db, (q15_t)0x56b3, (q15_t)0xa1d7, - (q15_t)0x56af, (q15_t)0xa1d3, (q15_t)0x56aa, (q15_t)0xa1ce, (q15_t)0x56a5, (q15_t)0xa1ca, (q15_t)0x56a1, (q15_t)0xa1c6, - (q15_t)0x569c, (q15_t)0xa1c1, (q15_t)0x5698, (q15_t)0xa1bd, (q15_t)0x5693, (q15_t)0xa1b9, (q15_t)0x568e, (q15_t)0xa1b5, - (q15_t)0x568a, (q15_t)0xa1b0, (q15_t)0x5685, (q15_t)0xa1ac, (q15_t)0x5680, (q15_t)0xa1a8, (q15_t)0x567c, (q15_t)0xa1a4, - (q15_t)0x5677, (q15_t)0xa1a0, (q15_t)0x5673, (q15_t)0xa19b, (q15_t)0x566e, (q15_t)0xa197, (q15_t)0x5669, (q15_t)0xa193, - (q15_t)0x5665, (q15_t)0xa18f, (q15_t)0x5660, (q15_t)0xa18a, (q15_t)0x565b, (q15_t)0xa186, (q15_t)0x5657, (q15_t)0xa182, - (q15_t)0x5652, (q15_t)0xa17e, (q15_t)0x564d, (q15_t)0xa179, (q15_t)0x5649, (q15_t)0xa175, (q15_t)0x5644, (q15_t)0xa171, - (q15_t)0x5640, (q15_t)0xa16d, (q15_t)0x563b, (q15_t)0xa168, (q15_t)0x5636, (q15_t)0xa164, (q15_t)0x5632, (q15_t)0xa160, - (q15_t)0x562d, (q15_t)0xa15c, (q15_t)0x5628, (q15_t)0xa157, (q15_t)0x5624, (q15_t)0xa153, (q15_t)0x561f, (q15_t)0xa14f, - (q15_t)0x561a, (q15_t)0xa14b, (q15_t)0x5616, (q15_t)0xa147, (q15_t)0x5611, (q15_t)0xa142, (q15_t)0x560c, (q15_t)0xa13e, - (q15_t)0x5608, (q15_t)0xa13a, (q15_t)0x5603, (q15_t)0xa136, (q15_t)0x55fe, (q15_t)0xa131, (q15_t)0x55fa, (q15_t)0xa12d, - (q15_t)0x55f5, (q15_t)0xa129, (q15_t)0x55f0, (q15_t)0xa125, (q15_t)0x55ec, (q15_t)0xa121, (q15_t)0x55e7, (q15_t)0xa11c, - (q15_t)0x55e3, (q15_t)0xa118, (q15_t)0x55de, (q15_t)0xa114, (q15_t)0x55d9, (q15_t)0xa110, (q15_t)0x55d5, (q15_t)0xa10b, - (q15_t)0x55d0, (q15_t)0xa107, (q15_t)0x55cb, (q15_t)0xa103, (q15_t)0x55c7, (q15_t)0xa0ff, (q15_t)0x55c2, (q15_t)0xa0fb, - (q15_t)0x55bd, (q15_t)0xa0f6, (q15_t)0x55b9, (q15_t)0xa0f2, (q15_t)0x55b4, (q15_t)0xa0ee, (q15_t)0x55af, (q15_t)0xa0ea, - (q15_t)0x55ab, (q15_t)0xa0e6, (q15_t)0x55a6, (q15_t)0xa0e1, (q15_t)0x55a1, (q15_t)0xa0dd, (q15_t)0x559d, (q15_t)0xa0d9, - (q15_t)0x5598, (q15_t)0xa0d5, (q15_t)0x5593, (q15_t)0xa0d1, (q15_t)0x558f, (q15_t)0xa0cc, (q15_t)0x558a, (q15_t)0xa0c8, - (q15_t)0x5585, (q15_t)0xa0c4, (q15_t)0x5581, (q15_t)0xa0c0, (q15_t)0x557c, (q15_t)0xa0bc, (q15_t)0x5577, (q15_t)0xa0b7, - (q15_t)0x5572, (q15_t)0xa0b3, (q15_t)0x556e, (q15_t)0xa0af, (q15_t)0x5569, (q15_t)0xa0ab, (q15_t)0x5564, (q15_t)0xa0a7, - (q15_t)0x5560, (q15_t)0xa0a2, (q15_t)0x555b, (q15_t)0xa09e, (q15_t)0x5556, (q15_t)0xa09a, (q15_t)0x5552, (q15_t)0xa096, - (q15_t)0x554d, (q15_t)0xa092, (q15_t)0x5548, (q15_t)0xa08e, (q15_t)0x5544, (q15_t)0xa089, (q15_t)0x553f, (q15_t)0xa085, - (q15_t)0x553a, (q15_t)0xa081, (q15_t)0x5536, (q15_t)0xa07d, (q15_t)0x5531, (q15_t)0xa079, (q15_t)0x552c, (q15_t)0xa074, - (q15_t)0x5528, (q15_t)0xa070, (q15_t)0x5523, (q15_t)0xa06c, (q15_t)0x551e, (q15_t)0xa068, (q15_t)0x5519, (q15_t)0xa064, - (q15_t)0x5515, (q15_t)0xa060, (q15_t)0x5510, (q15_t)0xa05b, (q15_t)0x550b, (q15_t)0xa057, (q15_t)0x5507, (q15_t)0xa053, - (q15_t)0x5502, (q15_t)0xa04f, (q15_t)0x54fd, (q15_t)0xa04b, (q15_t)0x54f9, (q15_t)0xa046, (q15_t)0x54f4, (q15_t)0xa042, - (q15_t)0x54ef, (q15_t)0xa03e, (q15_t)0x54ea, (q15_t)0xa03a, (q15_t)0x54e6, (q15_t)0xa036, (q15_t)0x54e1, (q15_t)0xa032, - (q15_t)0x54dc, (q15_t)0xa02d, (q15_t)0x54d8, (q15_t)0xa029, (q15_t)0x54d3, (q15_t)0xa025, (q15_t)0x54ce, (q15_t)0xa021, - (q15_t)0x54ca, (q15_t)0xa01d, (q15_t)0x54c5, (q15_t)0xa019, (q15_t)0x54c0, (q15_t)0xa014, (q15_t)0x54bb, (q15_t)0xa010, - (q15_t)0x54b7, (q15_t)0xa00c, (q15_t)0x54b2, (q15_t)0xa008, (q15_t)0x54ad, (q15_t)0xa004, (q15_t)0x54a9, (q15_t)0xa000, - (q15_t)0x54a4, (q15_t)0x9ffc, (q15_t)0x549f, (q15_t)0x9ff7, (q15_t)0x549a, (q15_t)0x9ff3, (q15_t)0x5496, (q15_t)0x9fef, - (q15_t)0x5491, (q15_t)0x9feb, (q15_t)0x548c, (q15_t)0x9fe7, (q15_t)0x5488, (q15_t)0x9fe3, (q15_t)0x5483, (q15_t)0x9fde, - (q15_t)0x547e, (q15_t)0x9fda, (q15_t)0x5479, (q15_t)0x9fd6, (q15_t)0x5475, (q15_t)0x9fd2, (q15_t)0x5470, (q15_t)0x9fce, - (q15_t)0x546b, (q15_t)0x9fca, (q15_t)0x5467, (q15_t)0x9fc6, (q15_t)0x5462, (q15_t)0x9fc1, (q15_t)0x545d, (q15_t)0x9fbd, - (q15_t)0x5458, (q15_t)0x9fb9, (q15_t)0x5454, (q15_t)0x9fb5, (q15_t)0x544f, (q15_t)0x9fb1, (q15_t)0x544a, (q15_t)0x9fad, - (q15_t)0x5445, (q15_t)0x9fa9, (q15_t)0x5441, (q15_t)0x9fa4, (q15_t)0x543c, (q15_t)0x9fa0, (q15_t)0x5437, (q15_t)0x9f9c, - (q15_t)0x5433, (q15_t)0x9f98, (q15_t)0x542e, (q15_t)0x9f94, (q15_t)0x5429, (q15_t)0x9f90, (q15_t)0x5424, (q15_t)0x9f8c, - (q15_t)0x5420, (q15_t)0x9f88, (q15_t)0x541b, (q15_t)0x9f83, (q15_t)0x5416, (q15_t)0x9f7f, (q15_t)0x5411, (q15_t)0x9f7b, - (q15_t)0x540d, (q15_t)0x9f77, (q15_t)0x5408, (q15_t)0x9f73, (q15_t)0x5403, (q15_t)0x9f6f, (q15_t)0x53fe, (q15_t)0x9f6b, - (q15_t)0x53fa, (q15_t)0x9f67, (q15_t)0x53f5, (q15_t)0x9f62, (q15_t)0x53f0, (q15_t)0x9f5e, (q15_t)0x53eb, (q15_t)0x9f5a, - (q15_t)0x53e7, (q15_t)0x9f56, (q15_t)0x53e2, (q15_t)0x9f52, (q15_t)0x53dd, (q15_t)0x9f4e, (q15_t)0x53d8, (q15_t)0x9f4a, - (q15_t)0x53d4, (q15_t)0x9f46, (q15_t)0x53cf, (q15_t)0x9f41, (q15_t)0x53ca, (q15_t)0x9f3d, (q15_t)0x53c5, (q15_t)0x9f39, - (q15_t)0x53c1, (q15_t)0x9f35, (q15_t)0x53bc, (q15_t)0x9f31, (q15_t)0x53b7, (q15_t)0x9f2d, (q15_t)0x53b2, (q15_t)0x9f29, - (q15_t)0x53ae, (q15_t)0x9f25, (q15_t)0x53a9, (q15_t)0x9f21, (q15_t)0x53a4, (q15_t)0x9f1c, (q15_t)0x539f, (q15_t)0x9f18, - (q15_t)0x539b, (q15_t)0x9f14, (q15_t)0x5396, (q15_t)0x9f10, (q15_t)0x5391, (q15_t)0x9f0c, (q15_t)0x538c, (q15_t)0x9f08, - (q15_t)0x5388, (q15_t)0x9f04, (q15_t)0x5383, (q15_t)0x9f00, (q15_t)0x537e, (q15_t)0x9efc, (q15_t)0x5379, (q15_t)0x9ef8, - (q15_t)0x5375, (q15_t)0x9ef3, (q15_t)0x5370, (q15_t)0x9eef, (q15_t)0x536b, (q15_t)0x9eeb, (q15_t)0x5366, (q15_t)0x9ee7, - (q15_t)0x5362, (q15_t)0x9ee3, (q15_t)0x535d, (q15_t)0x9edf, (q15_t)0x5358, (q15_t)0x9edb, (q15_t)0x5353, (q15_t)0x9ed7, - (q15_t)0x534e, (q15_t)0x9ed3, (q15_t)0x534a, (q15_t)0x9ecf, (q15_t)0x5345, (q15_t)0x9ecb, (q15_t)0x5340, (q15_t)0x9ec6, - (q15_t)0x533b, (q15_t)0x9ec2, (q15_t)0x5337, (q15_t)0x9ebe, (q15_t)0x5332, (q15_t)0x9eba, (q15_t)0x532d, (q15_t)0x9eb6, - (q15_t)0x5328, (q15_t)0x9eb2, (q15_t)0x5323, (q15_t)0x9eae, (q15_t)0x531f, (q15_t)0x9eaa, (q15_t)0x531a, (q15_t)0x9ea6, - (q15_t)0x5315, (q15_t)0x9ea2, (q15_t)0x5310, (q15_t)0x9e9e, (q15_t)0x530c, (q15_t)0x9e9a, (q15_t)0x5307, (q15_t)0x9e95, - (q15_t)0x5302, (q15_t)0x9e91, (q15_t)0x52fd, (q15_t)0x9e8d, (q15_t)0x52f8, (q15_t)0x9e89, (q15_t)0x52f4, (q15_t)0x9e85, - (q15_t)0x52ef, (q15_t)0x9e81, (q15_t)0x52ea, (q15_t)0x9e7d, (q15_t)0x52e5, (q15_t)0x9e79, (q15_t)0x52e1, (q15_t)0x9e75, - (q15_t)0x52dc, (q15_t)0x9e71, (q15_t)0x52d7, (q15_t)0x9e6d, (q15_t)0x52d2, (q15_t)0x9e69, (q15_t)0x52cd, (q15_t)0x9e65, - (q15_t)0x52c9, (q15_t)0x9e61, (q15_t)0x52c4, (q15_t)0x9e5d, (q15_t)0x52bf, (q15_t)0x9e58, (q15_t)0x52ba, (q15_t)0x9e54, - (q15_t)0x52b5, (q15_t)0x9e50, (q15_t)0x52b1, (q15_t)0x9e4c, (q15_t)0x52ac, (q15_t)0x9e48, (q15_t)0x52a7, (q15_t)0x9e44, - (q15_t)0x52a2, (q15_t)0x9e40, (q15_t)0x529d, (q15_t)0x9e3c, (q15_t)0x5299, (q15_t)0x9e38, (q15_t)0x5294, (q15_t)0x9e34, - (q15_t)0x528f, (q15_t)0x9e30, (q15_t)0x528a, (q15_t)0x9e2c, (q15_t)0x5285, (q15_t)0x9e28, (q15_t)0x5281, (q15_t)0x9e24, - (q15_t)0x527c, (q15_t)0x9e20, (q15_t)0x5277, (q15_t)0x9e1c, (q15_t)0x5272, (q15_t)0x9e18, (q15_t)0x526d, (q15_t)0x9e14, - (q15_t)0x5269, (q15_t)0x9e0f, (q15_t)0x5264, (q15_t)0x9e0b, (q15_t)0x525f, (q15_t)0x9e07, (q15_t)0x525a, (q15_t)0x9e03, - (q15_t)0x5255, (q15_t)0x9dff, (q15_t)0x5251, (q15_t)0x9dfb, (q15_t)0x524c, (q15_t)0x9df7, (q15_t)0x5247, (q15_t)0x9df3, - (q15_t)0x5242, (q15_t)0x9def, (q15_t)0x523d, (q15_t)0x9deb, (q15_t)0x5238, (q15_t)0x9de7, (q15_t)0x5234, (q15_t)0x9de3, - (q15_t)0x522f, (q15_t)0x9ddf, (q15_t)0x522a, (q15_t)0x9ddb, (q15_t)0x5225, (q15_t)0x9dd7, (q15_t)0x5220, (q15_t)0x9dd3, - (q15_t)0x521c, (q15_t)0x9dcf, (q15_t)0x5217, (q15_t)0x9dcb, (q15_t)0x5212, (q15_t)0x9dc7, (q15_t)0x520d, (q15_t)0x9dc3, - (q15_t)0x5208, (q15_t)0x9dbf, (q15_t)0x5203, (q15_t)0x9dbb, (q15_t)0x51ff, (q15_t)0x9db7, (q15_t)0x51fa, (q15_t)0x9db3, - (q15_t)0x51f5, (q15_t)0x9daf, (q15_t)0x51f0, (q15_t)0x9dab, (q15_t)0x51eb, (q15_t)0x9da7, (q15_t)0x51e6, (q15_t)0x9da3, - (q15_t)0x51e2, (q15_t)0x9d9f, (q15_t)0x51dd, (q15_t)0x9d9b, (q15_t)0x51d8, (q15_t)0x9d97, (q15_t)0x51d3, (q15_t)0x9d93, - (q15_t)0x51ce, (q15_t)0x9d8f, (q15_t)0x51c9, (q15_t)0x9d8b, (q15_t)0x51c5, (q15_t)0x9d86, (q15_t)0x51c0, (q15_t)0x9d82, - (q15_t)0x51bb, (q15_t)0x9d7e, (q15_t)0x51b6, (q15_t)0x9d7a, (q15_t)0x51b1, (q15_t)0x9d76, (q15_t)0x51ac, (q15_t)0x9d72, - (q15_t)0x51a8, (q15_t)0x9d6e, (q15_t)0x51a3, (q15_t)0x9d6a, (q15_t)0x519e, (q15_t)0x9d66, (q15_t)0x5199, (q15_t)0x9d62, - (q15_t)0x5194, (q15_t)0x9d5e, (q15_t)0x518f, (q15_t)0x9d5a, (q15_t)0x518b, (q15_t)0x9d56, (q15_t)0x5186, (q15_t)0x9d52, - (q15_t)0x5181, (q15_t)0x9d4e, (q15_t)0x517c, (q15_t)0x9d4a, (q15_t)0x5177, (q15_t)0x9d46, (q15_t)0x5172, (q15_t)0x9d42, - (q15_t)0x516e, (q15_t)0x9d3e, (q15_t)0x5169, (q15_t)0x9d3a, (q15_t)0x5164, (q15_t)0x9d36, (q15_t)0x515f, (q15_t)0x9d32, - (q15_t)0x515a, (q15_t)0x9d2e, (q15_t)0x5155, (q15_t)0x9d2a, (q15_t)0x5150, (q15_t)0x9d26, (q15_t)0x514c, (q15_t)0x9d22, - (q15_t)0x5147, (q15_t)0x9d1e, (q15_t)0x5142, (q15_t)0x9d1a, (q15_t)0x513d, (q15_t)0x9d16, (q15_t)0x5138, (q15_t)0x9d12, - (q15_t)0x5133, (q15_t)0x9d0e, (q15_t)0x512e, (q15_t)0x9d0b, (q15_t)0x512a, (q15_t)0x9d07, (q15_t)0x5125, (q15_t)0x9d03, - (q15_t)0x5120, (q15_t)0x9cff, (q15_t)0x511b, (q15_t)0x9cfb, (q15_t)0x5116, (q15_t)0x9cf7, (q15_t)0x5111, (q15_t)0x9cf3, - (q15_t)0x510c, (q15_t)0x9cef, (q15_t)0x5108, (q15_t)0x9ceb, (q15_t)0x5103, (q15_t)0x9ce7, (q15_t)0x50fe, (q15_t)0x9ce3, - (q15_t)0x50f9, (q15_t)0x9cdf, (q15_t)0x50f4, (q15_t)0x9cdb, (q15_t)0x50ef, (q15_t)0x9cd7, (q15_t)0x50ea, (q15_t)0x9cd3, - (q15_t)0x50e5, (q15_t)0x9ccf, (q15_t)0x50e1, (q15_t)0x9ccb, (q15_t)0x50dc, (q15_t)0x9cc7, (q15_t)0x50d7, (q15_t)0x9cc3, - (q15_t)0x50d2, (q15_t)0x9cbf, (q15_t)0x50cd, (q15_t)0x9cbb, (q15_t)0x50c8, (q15_t)0x9cb7, (q15_t)0x50c3, (q15_t)0x9cb3, - (q15_t)0x50bf, (q15_t)0x9caf, (q15_t)0x50ba, (q15_t)0x9cab, (q15_t)0x50b5, (q15_t)0x9ca7, (q15_t)0x50b0, (q15_t)0x9ca3, - (q15_t)0x50ab, (q15_t)0x9c9f, (q15_t)0x50a6, (q15_t)0x9c9b, (q15_t)0x50a1, (q15_t)0x9c97, (q15_t)0x509c, (q15_t)0x9c93, - (q15_t)0x5097, (q15_t)0x9c8f, (q15_t)0x5093, (q15_t)0x9c8b, (q15_t)0x508e, (q15_t)0x9c88, (q15_t)0x5089, (q15_t)0x9c84, - (q15_t)0x5084, (q15_t)0x9c80, (q15_t)0x507f, (q15_t)0x9c7c, (q15_t)0x507a, (q15_t)0x9c78, (q15_t)0x5075, (q15_t)0x9c74, - (q15_t)0x5070, (q15_t)0x9c70, (q15_t)0x506c, (q15_t)0x9c6c, (q15_t)0x5067, (q15_t)0x9c68, (q15_t)0x5062, (q15_t)0x9c64, - (q15_t)0x505d, (q15_t)0x9c60, (q15_t)0x5058, (q15_t)0x9c5c, (q15_t)0x5053, (q15_t)0x9c58, (q15_t)0x504e, (q15_t)0x9c54, - (q15_t)0x5049, (q15_t)0x9c50, (q15_t)0x5044, (q15_t)0x9c4c, (q15_t)0x503f, (q15_t)0x9c48, (q15_t)0x503b, (q15_t)0x9c44, - (q15_t)0x5036, (q15_t)0x9c40, (q15_t)0x5031, (q15_t)0x9c3d, (q15_t)0x502c, (q15_t)0x9c39, (q15_t)0x5027, (q15_t)0x9c35, - (q15_t)0x5022, (q15_t)0x9c31, (q15_t)0x501d, (q15_t)0x9c2d, (q15_t)0x5018, (q15_t)0x9c29, (q15_t)0x5013, (q15_t)0x9c25, - (q15_t)0x500f, (q15_t)0x9c21, (q15_t)0x500a, (q15_t)0x9c1d, (q15_t)0x5005, (q15_t)0x9c19, (q15_t)0x5000, (q15_t)0x9c15, - (q15_t)0x4ffb, (q15_t)0x9c11, (q15_t)0x4ff6, (q15_t)0x9c0d, (q15_t)0x4ff1, (q15_t)0x9c09, (q15_t)0x4fec, (q15_t)0x9c06, - (q15_t)0x4fe7, (q15_t)0x9c02, (q15_t)0x4fe2, (q15_t)0x9bfe, (q15_t)0x4fdd, (q15_t)0x9bfa, (q15_t)0x4fd9, (q15_t)0x9bf6, - (q15_t)0x4fd4, (q15_t)0x9bf2, (q15_t)0x4fcf, (q15_t)0x9bee, (q15_t)0x4fca, (q15_t)0x9bea, (q15_t)0x4fc5, (q15_t)0x9be6, - (q15_t)0x4fc0, (q15_t)0x9be2, (q15_t)0x4fbb, (q15_t)0x9bde, (q15_t)0x4fb6, (q15_t)0x9bda, (q15_t)0x4fb1, (q15_t)0x9bd7, - (q15_t)0x4fac, (q15_t)0x9bd3, (q15_t)0x4fa7, (q15_t)0x9bcf, (q15_t)0x4fa2, (q15_t)0x9bcb, (q15_t)0x4f9e, (q15_t)0x9bc7, - (q15_t)0x4f99, (q15_t)0x9bc3, (q15_t)0x4f94, (q15_t)0x9bbf, (q15_t)0x4f8f, (q15_t)0x9bbb, (q15_t)0x4f8a, (q15_t)0x9bb7, - (q15_t)0x4f85, (q15_t)0x9bb3, (q15_t)0x4f80, (q15_t)0x9baf, (q15_t)0x4f7b, (q15_t)0x9bac, (q15_t)0x4f76, (q15_t)0x9ba8, - (q15_t)0x4f71, (q15_t)0x9ba4, (q15_t)0x4f6c, (q15_t)0x9ba0, (q15_t)0x4f67, (q15_t)0x9b9c, (q15_t)0x4f62, (q15_t)0x9b98, - (q15_t)0x4f5e, (q15_t)0x9b94, (q15_t)0x4f59, (q15_t)0x9b90, (q15_t)0x4f54, (q15_t)0x9b8c, (q15_t)0x4f4f, (q15_t)0x9b88, - (q15_t)0x4f4a, (q15_t)0x9b85, (q15_t)0x4f45, (q15_t)0x9b81, (q15_t)0x4f40, (q15_t)0x9b7d, (q15_t)0x4f3b, (q15_t)0x9b79, - (q15_t)0x4f36, (q15_t)0x9b75, (q15_t)0x4f31, (q15_t)0x9b71, (q15_t)0x4f2c, (q15_t)0x9b6d, (q15_t)0x4f27, (q15_t)0x9b69, - (q15_t)0x4f22, (q15_t)0x9b65, (q15_t)0x4f1d, (q15_t)0x9b62, (q15_t)0x4f18, (q15_t)0x9b5e, (q15_t)0x4f14, (q15_t)0x9b5a, - (q15_t)0x4f0f, (q15_t)0x9b56, (q15_t)0x4f0a, (q15_t)0x9b52, (q15_t)0x4f05, (q15_t)0x9b4e, (q15_t)0x4f00, (q15_t)0x9b4a, - (q15_t)0x4efb, (q15_t)0x9b46, (q15_t)0x4ef6, (q15_t)0x9b43, (q15_t)0x4ef1, (q15_t)0x9b3f, (q15_t)0x4eec, (q15_t)0x9b3b, - (q15_t)0x4ee7, (q15_t)0x9b37, (q15_t)0x4ee2, (q15_t)0x9b33, (q15_t)0x4edd, (q15_t)0x9b2f, (q15_t)0x4ed8, (q15_t)0x9b2b, - (q15_t)0x4ed3, (q15_t)0x9b27, (q15_t)0x4ece, (q15_t)0x9b24, (q15_t)0x4ec9, (q15_t)0x9b20, (q15_t)0x4ec4, (q15_t)0x9b1c, - (q15_t)0x4ebf, (q15_t)0x9b18, (q15_t)0x4eba, (q15_t)0x9b14, (q15_t)0x4eb6, (q15_t)0x9b10, (q15_t)0x4eb1, (q15_t)0x9b0c, - (q15_t)0x4eac, (q15_t)0x9b09, (q15_t)0x4ea7, (q15_t)0x9b05, (q15_t)0x4ea2, (q15_t)0x9b01, (q15_t)0x4e9d, (q15_t)0x9afd, - (q15_t)0x4e98, (q15_t)0x9af9, (q15_t)0x4e93, (q15_t)0x9af5, (q15_t)0x4e8e, (q15_t)0x9af1, (q15_t)0x4e89, (q15_t)0x9aed, - (q15_t)0x4e84, (q15_t)0x9aea, (q15_t)0x4e7f, (q15_t)0x9ae6, (q15_t)0x4e7a, (q15_t)0x9ae2, (q15_t)0x4e75, (q15_t)0x9ade, - (q15_t)0x4e70, (q15_t)0x9ada, (q15_t)0x4e6b, (q15_t)0x9ad6, (q15_t)0x4e66, (q15_t)0x9ad3, (q15_t)0x4e61, (q15_t)0x9acf, - (q15_t)0x4e5c, (q15_t)0x9acb, (q15_t)0x4e57, (q15_t)0x9ac7, (q15_t)0x4e52, (q15_t)0x9ac3, (q15_t)0x4e4d, (q15_t)0x9abf, - (q15_t)0x4e48, (q15_t)0x9abb, (q15_t)0x4e43, (q15_t)0x9ab8, (q15_t)0x4e3e, (q15_t)0x9ab4, (q15_t)0x4e39, (q15_t)0x9ab0, - (q15_t)0x4e34, (q15_t)0x9aac, (q15_t)0x4e2f, (q15_t)0x9aa8, (q15_t)0x4e2a, (q15_t)0x9aa4, (q15_t)0x4e26, (q15_t)0x9aa1, - (q15_t)0x4e21, (q15_t)0x9a9d, (q15_t)0x4e1c, (q15_t)0x9a99, (q15_t)0x4e17, (q15_t)0x9a95, (q15_t)0x4e12, (q15_t)0x9a91, - (q15_t)0x4e0d, (q15_t)0x9a8d, (q15_t)0x4e08, (q15_t)0x9a8a, (q15_t)0x4e03, (q15_t)0x9a86, (q15_t)0x4dfe, (q15_t)0x9a82, - (q15_t)0x4df9, (q15_t)0x9a7e, (q15_t)0x4df4, (q15_t)0x9a7a, (q15_t)0x4def, (q15_t)0x9a76, (q15_t)0x4dea, (q15_t)0x9a73, - (q15_t)0x4de5, (q15_t)0x9a6f, (q15_t)0x4de0, (q15_t)0x9a6b, (q15_t)0x4ddb, (q15_t)0x9a67, (q15_t)0x4dd6, (q15_t)0x9a63, - (q15_t)0x4dd1, (q15_t)0x9a60, (q15_t)0x4dcc, (q15_t)0x9a5c, (q15_t)0x4dc7, (q15_t)0x9a58, (q15_t)0x4dc2, (q15_t)0x9a54, - (q15_t)0x4dbd, (q15_t)0x9a50, (q15_t)0x4db8, (q15_t)0x9a4c, (q15_t)0x4db3, (q15_t)0x9a49, (q15_t)0x4dae, (q15_t)0x9a45, - (q15_t)0x4da9, (q15_t)0x9a41, (q15_t)0x4da4, (q15_t)0x9a3d, (q15_t)0x4d9f, (q15_t)0x9a39, (q15_t)0x4d9a, (q15_t)0x9a36, - (q15_t)0x4d95, (q15_t)0x9a32, (q15_t)0x4d90, (q15_t)0x9a2e, (q15_t)0x4d8b, (q15_t)0x9a2a, (q15_t)0x4d86, (q15_t)0x9a26, - (q15_t)0x4d81, (q15_t)0x9a23, (q15_t)0x4d7c, (q15_t)0x9a1f, (q15_t)0x4d77, (q15_t)0x9a1b, (q15_t)0x4d72, (q15_t)0x9a17, - (q15_t)0x4d6d, (q15_t)0x9a13, (q15_t)0x4d68, (q15_t)0x9a10, (q15_t)0x4d63, (q15_t)0x9a0c, (q15_t)0x4d5e, (q15_t)0x9a08, - (q15_t)0x4d59, (q15_t)0x9a04, (q15_t)0x4d54, (q15_t)0x9a00, (q15_t)0x4d4f, (q15_t)0x99fd, (q15_t)0x4d4a, (q15_t)0x99f9, - (q15_t)0x4d45, (q15_t)0x99f5, (q15_t)0x4d40, (q15_t)0x99f1, (q15_t)0x4d3b, (q15_t)0x99ed, (q15_t)0x4d36, (q15_t)0x99ea, - (q15_t)0x4d31, (q15_t)0x99e6, (q15_t)0x4d2c, (q15_t)0x99e2, (q15_t)0x4d27, (q15_t)0x99de, (q15_t)0x4d22, (q15_t)0x99da, - (q15_t)0x4d1d, (q15_t)0x99d7, (q15_t)0x4d18, (q15_t)0x99d3, (q15_t)0x4d13, (q15_t)0x99cf, (q15_t)0x4d0e, (q15_t)0x99cb, - (q15_t)0x4d09, (q15_t)0x99c7, (q15_t)0x4d04, (q15_t)0x99c4, (q15_t)0x4cff, (q15_t)0x99c0, (q15_t)0x4cfa, (q15_t)0x99bc, - (q15_t)0x4cf5, (q15_t)0x99b8, (q15_t)0x4cf0, (q15_t)0x99b5, (q15_t)0x4ceb, (q15_t)0x99b1, (q15_t)0x4ce6, (q15_t)0x99ad, - (q15_t)0x4ce1, (q15_t)0x99a9, (q15_t)0x4cdb, (q15_t)0x99a5, (q15_t)0x4cd6, (q15_t)0x99a2, (q15_t)0x4cd1, (q15_t)0x999e, - (q15_t)0x4ccc, (q15_t)0x999a, (q15_t)0x4cc7, (q15_t)0x9996, (q15_t)0x4cc2, (q15_t)0x9993, (q15_t)0x4cbd, (q15_t)0x998f, - (q15_t)0x4cb8, (q15_t)0x998b, (q15_t)0x4cb3, (q15_t)0x9987, (q15_t)0x4cae, (q15_t)0x9984, (q15_t)0x4ca9, (q15_t)0x9980, - (q15_t)0x4ca4, (q15_t)0x997c, (q15_t)0x4c9f, (q15_t)0x9978, (q15_t)0x4c9a, (q15_t)0x9975, (q15_t)0x4c95, (q15_t)0x9971, - (q15_t)0x4c90, (q15_t)0x996d, (q15_t)0x4c8b, (q15_t)0x9969, (q15_t)0x4c86, (q15_t)0x9965, (q15_t)0x4c81, (q15_t)0x9962, - (q15_t)0x4c7c, (q15_t)0x995e, (q15_t)0x4c77, (q15_t)0x995a, (q15_t)0x4c72, (q15_t)0x9956, (q15_t)0x4c6d, (q15_t)0x9953, - (q15_t)0x4c68, (q15_t)0x994f, (q15_t)0x4c63, (q15_t)0x994b, (q15_t)0x4c5e, (q15_t)0x9947, (q15_t)0x4c59, (q15_t)0x9944, - (q15_t)0x4c54, (q15_t)0x9940, (q15_t)0x4c4f, (q15_t)0x993c, (q15_t)0x4c49, (q15_t)0x9938, (q15_t)0x4c44, (q15_t)0x9935, - (q15_t)0x4c3f, (q15_t)0x9931, (q15_t)0x4c3a, (q15_t)0x992d, (q15_t)0x4c35, (q15_t)0x992a, (q15_t)0x4c30, (q15_t)0x9926, - (q15_t)0x4c2b, (q15_t)0x9922, (q15_t)0x4c26, (q15_t)0x991e, (q15_t)0x4c21, (q15_t)0x991b, (q15_t)0x4c1c, (q15_t)0x9917, - (q15_t)0x4c17, (q15_t)0x9913, (q15_t)0x4c12, (q15_t)0x990f, (q15_t)0x4c0d, (q15_t)0x990c, (q15_t)0x4c08, (q15_t)0x9908, - (q15_t)0x4c03, (q15_t)0x9904, (q15_t)0x4bfe, (q15_t)0x9900, (q15_t)0x4bf9, (q15_t)0x98fd, (q15_t)0x4bf4, (q15_t)0x98f9, - (q15_t)0x4bef, (q15_t)0x98f5, (q15_t)0x4be9, (q15_t)0x98f2, (q15_t)0x4be4, (q15_t)0x98ee, (q15_t)0x4bdf, (q15_t)0x98ea, - (q15_t)0x4bda, (q15_t)0x98e6, (q15_t)0x4bd5, (q15_t)0x98e3, (q15_t)0x4bd0, (q15_t)0x98df, (q15_t)0x4bcb, (q15_t)0x98db, - (q15_t)0x4bc6, (q15_t)0x98d7, (q15_t)0x4bc1, (q15_t)0x98d4, (q15_t)0x4bbc, (q15_t)0x98d0, (q15_t)0x4bb7, (q15_t)0x98cc, - (q15_t)0x4bb2, (q15_t)0x98c9, (q15_t)0x4bad, (q15_t)0x98c5, (q15_t)0x4ba8, (q15_t)0x98c1, (q15_t)0x4ba3, (q15_t)0x98bd, - (q15_t)0x4b9e, (q15_t)0x98ba, (q15_t)0x4b98, (q15_t)0x98b6, (q15_t)0x4b93, (q15_t)0x98b2, (q15_t)0x4b8e, (q15_t)0x98af, - (q15_t)0x4b89, (q15_t)0x98ab, (q15_t)0x4b84, (q15_t)0x98a7, (q15_t)0x4b7f, (q15_t)0x98a3, (q15_t)0x4b7a, (q15_t)0x98a0, - (q15_t)0x4b75, (q15_t)0x989c, (q15_t)0x4b70, (q15_t)0x9898, (q15_t)0x4b6b, (q15_t)0x9895, (q15_t)0x4b66, (q15_t)0x9891, - (q15_t)0x4b61, (q15_t)0x988d, (q15_t)0x4b5c, (q15_t)0x988a, (q15_t)0x4b56, (q15_t)0x9886, (q15_t)0x4b51, (q15_t)0x9882, - (q15_t)0x4b4c, (q15_t)0x987e, (q15_t)0x4b47, (q15_t)0x987b, (q15_t)0x4b42, (q15_t)0x9877, (q15_t)0x4b3d, (q15_t)0x9873, - (q15_t)0x4b38, (q15_t)0x9870, (q15_t)0x4b33, (q15_t)0x986c, (q15_t)0x4b2e, (q15_t)0x9868, (q15_t)0x4b29, (q15_t)0x9865, - (q15_t)0x4b24, (q15_t)0x9861, (q15_t)0x4b1f, (q15_t)0x985d, (q15_t)0x4b19, (q15_t)0x985a, (q15_t)0x4b14, (q15_t)0x9856, - (q15_t)0x4b0f, (q15_t)0x9852, (q15_t)0x4b0a, (q15_t)0x984e, (q15_t)0x4b05, (q15_t)0x984b, (q15_t)0x4b00, (q15_t)0x9847, - (q15_t)0x4afb, (q15_t)0x9843, (q15_t)0x4af6, (q15_t)0x9840, (q15_t)0x4af1, (q15_t)0x983c, (q15_t)0x4aec, (q15_t)0x9838, - (q15_t)0x4ae7, (q15_t)0x9835, (q15_t)0x4ae1, (q15_t)0x9831, (q15_t)0x4adc, (q15_t)0x982d, (q15_t)0x4ad7, (q15_t)0x982a, - (q15_t)0x4ad2, (q15_t)0x9826, (q15_t)0x4acd, (q15_t)0x9822, (q15_t)0x4ac8, (q15_t)0x981f, (q15_t)0x4ac3, (q15_t)0x981b, - (q15_t)0x4abe, (q15_t)0x9817, (q15_t)0x4ab9, (q15_t)0x9814, (q15_t)0x4ab4, (q15_t)0x9810, (q15_t)0x4aae, (q15_t)0x980c, - (q15_t)0x4aa9, (q15_t)0x9809, (q15_t)0x4aa4, (q15_t)0x9805, (q15_t)0x4a9f, (q15_t)0x9801, (q15_t)0x4a9a, (q15_t)0x97fe, - (q15_t)0x4a95, (q15_t)0x97fa, (q15_t)0x4a90, (q15_t)0x97f6, (q15_t)0x4a8b, (q15_t)0x97f3, (q15_t)0x4a86, (q15_t)0x97ef, - (q15_t)0x4a81, (q15_t)0x97eb, (q15_t)0x4a7b, (q15_t)0x97e8, (q15_t)0x4a76, (q15_t)0x97e4, (q15_t)0x4a71, (q15_t)0x97e0, - (q15_t)0x4a6c, (q15_t)0x97dd, (q15_t)0x4a67, (q15_t)0x97d9, (q15_t)0x4a62, (q15_t)0x97d5, (q15_t)0x4a5d, (q15_t)0x97d2, - (q15_t)0x4a58, (q15_t)0x97ce, (q15_t)0x4a52, (q15_t)0x97cb, (q15_t)0x4a4d, (q15_t)0x97c7, (q15_t)0x4a48, (q15_t)0x97c3, - (q15_t)0x4a43, (q15_t)0x97c0, (q15_t)0x4a3e, (q15_t)0x97bc, (q15_t)0x4a39, (q15_t)0x97b8, (q15_t)0x4a34, (q15_t)0x97b5, - (q15_t)0x4a2f, (q15_t)0x97b1, (q15_t)0x4a2a, (q15_t)0x97ad, (q15_t)0x4a24, (q15_t)0x97aa, (q15_t)0x4a1f, (q15_t)0x97a6, - (q15_t)0x4a1a, (q15_t)0x97a2, (q15_t)0x4a15, (q15_t)0x979f, (q15_t)0x4a10, (q15_t)0x979b, (q15_t)0x4a0b, (q15_t)0x9798, - (q15_t)0x4a06, (q15_t)0x9794, (q15_t)0x4a01, (q15_t)0x9790, (q15_t)0x49fb, (q15_t)0x978d, (q15_t)0x49f6, (q15_t)0x9789, - (q15_t)0x49f1, (q15_t)0x9785, (q15_t)0x49ec, (q15_t)0x9782, (q15_t)0x49e7, (q15_t)0x977e, (q15_t)0x49e2, (q15_t)0x977a, - (q15_t)0x49dd, (q15_t)0x9777, (q15_t)0x49d8, (q15_t)0x9773, (q15_t)0x49d2, (q15_t)0x9770, (q15_t)0x49cd, (q15_t)0x976c, - (q15_t)0x49c8, (q15_t)0x9768, (q15_t)0x49c3, (q15_t)0x9765, (q15_t)0x49be, (q15_t)0x9761, (q15_t)0x49b9, (q15_t)0x975d, - (q15_t)0x49b4, (q15_t)0x975a, (q15_t)0x49ae, (q15_t)0x9756, (q15_t)0x49a9, (q15_t)0x9753, (q15_t)0x49a4, (q15_t)0x974f, - (q15_t)0x499f, (q15_t)0x974b, (q15_t)0x499a, (q15_t)0x9748, (q15_t)0x4995, (q15_t)0x9744, (q15_t)0x4990, (q15_t)0x9741, - (q15_t)0x498a, (q15_t)0x973d, (q15_t)0x4985, (q15_t)0x9739, (q15_t)0x4980, (q15_t)0x9736, (q15_t)0x497b, (q15_t)0x9732, - (q15_t)0x4976, (q15_t)0x972f, (q15_t)0x4971, (q15_t)0x972b, (q15_t)0x496c, (q15_t)0x9727, (q15_t)0x4966, (q15_t)0x9724, - (q15_t)0x4961, (q15_t)0x9720, (q15_t)0x495c, (q15_t)0x971d, (q15_t)0x4957, (q15_t)0x9719, (q15_t)0x4952, (q15_t)0x9715, - (q15_t)0x494d, (q15_t)0x9712, (q15_t)0x4948, (q15_t)0x970e, (q15_t)0x4942, (q15_t)0x970b, (q15_t)0x493d, (q15_t)0x9707, - (q15_t)0x4938, (q15_t)0x9703, (q15_t)0x4933, (q15_t)0x9700, (q15_t)0x492e, (q15_t)0x96fc, (q15_t)0x4929, (q15_t)0x96f9, - (q15_t)0x4923, (q15_t)0x96f5, (q15_t)0x491e, (q15_t)0x96f1, (q15_t)0x4919, (q15_t)0x96ee, (q15_t)0x4914, (q15_t)0x96ea, - (q15_t)0x490f, (q15_t)0x96e7, (q15_t)0x490a, (q15_t)0x96e3, (q15_t)0x4905, (q15_t)0x96df, (q15_t)0x48ff, (q15_t)0x96dc, - (q15_t)0x48fa, (q15_t)0x96d8, (q15_t)0x48f5, (q15_t)0x96d5, (q15_t)0x48f0, (q15_t)0x96d1, (q15_t)0x48eb, (q15_t)0x96ce, - (q15_t)0x48e6, (q15_t)0x96ca, (q15_t)0x48e0, (q15_t)0x96c6, (q15_t)0x48db, (q15_t)0x96c3, (q15_t)0x48d6, (q15_t)0x96bf, - (q15_t)0x48d1, (q15_t)0x96bc, (q15_t)0x48cc, (q15_t)0x96b8, (q15_t)0x48c7, (q15_t)0x96b5, (q15_t)0x48c1, (q15_t)0x96b1, - (q15_t)0x48bc, (q15_t)0x96ad, (q15_t)0x48b7, (q15_t)0x96aa, (q15_t)0x48b2, (q15_t)0x96a6, (q15_t)0x48ad, (q15_t)0x96a3, - (q15_t)0x48a8, (q15_t)0x969f, (q15_t)0x48a2, (q15_t)0x969c, (q15_t)0x489d, (q15_t)0x9698, (q15_t)0x4898, (q15_t)0x9694, - (q15_t)0x4893, (q15_t)0x9691, (q15_t)0x488e, (q15_t)0x968d, (q15_t)0x4888, (q15_t)0x968a, (q15_t)0x4883, (q15_t)0x9686, - (q15_t)0x487e, (q15_t)0x9683, (q15_t)0x4879, (q15_t)0x967f, (q15_t)0x4874, (q15_t)0x967b, (q15_t)0x486f, (q15_t)0x9678, - (q15_t)0x4869, (q15_t)0x9674, (q15_t)0x4864, (q15_t)0x9671, (q15_t)0x485f, (q15_t)0x966d, (q15_t)0x485a, (q15_t)0x966a, - (q15_t)0x4855, (q15_t)0x9666, (q15_t)0x484f, (q15_t)0x9663, (q15_t)0x484a, (q15_t)0x965f, (q15_t)0x4845, (q15_t)0x965b, - (q15_t)0x4840, (q15_t)0x9658, (q15_t)0x483b, (q15_t)0x9654, (q15_t)0x4836, (q15_t)0x9651, (q15_t)0x4830, (q15_t)0x964d, - (q15_t)0x482b, (q15_t)0x964a, (q15_t)0x4826, (q15_t)0x9646, (q15_t)0x4821, (q15_t)0x9643, (q15_t)0x481c, (q15_t)0x963f, - (q15_t)0x4816, (q15_t)0x963c, (q15_t)0x4811, (q15_t)0x9638, (q15_t)0x480c, (q15_t)0x9635, (q15_t)0x4807, (q15_t)0x9631, - (q15_t)0x4802, (q15_t)0x962d, (q15_t)0x47fc, (q15_t)0x962a, (q15_t)0x47f7, (q15_t)0x9626, (q15_t)0x47f2, (q15_t)0x9623, - (q15_t)0x47ed, (q15_t)0x961f, (q15_t)0x47e8, (q15_t)0x961c, (q15_t)0x47e2, (q15_t)0x9618, (q15_t)0x47dd, (q15_t)0x9615, - (q15_t)0x47d8, (q15_t)0x9611, (q15_t)0x47d3, (q15_t)0x960e, (q15_t)0x47ce, (q15_t)0x960a, (q15_t)0x47c8, (q15_t)0x9607, - (q15_t)0x47c3, (q15_t)0x9603, (q15_t)0x47be, (q15_t)0x9600, (q15_t)0x47b9, (q15_t)0x95fc, (q15_t)0x47b4, (q15_t)0x95f9, - (q15_t)0x47ae, (q15_t)0x95f5, (q15_t)0x47a9, (q15_t)0x95f2, (q15_t)0x47a4, (q15_t)0x95ee, (q15_t)0x479f, (q15_t)0x95ea, - (q15_t)0x479a, (q15_t)0x95e7, (q15_t)0x4794, (q15_t)0x95e3, (q15_t)0x478f, (q15_t)0x95e0, (q15_t)0x478a, (q15_t)0x95dc, - (q15_t)0x4785, (q15_t)0x95d9, (q15_t)0x4780, (q15_t)0x95d5, (q15_t)0x477a, (q15_t)0x95d2, (q15_t)0x4775, (q15_t)0x95ce, - (q15_t)0x4770, (q15_t)0x95cb, (q15_t)0x476b, (q15_t)0x95c7, (q15_t)0x4765, (q15_t)0x95c4, (q15_t)0x4760, (q15_t)0x95c0, - (q15_t)0x475b, (q15_t)0x95bd, (q15_t)0x4756, (q15_t)0x95b9, (q15_t)0x4751, (q15_t)0x95b6, (q15_t)0x474b, (q15_t)0x95b2, - (q15_t)0x4746, (q15_t)0x95af, (q15_t)0x4741, (q15_t)0x95ab, (q15_t)0x473c, (q15_t)0x95a8, (q15_t)0x4737, (q15_t)0x95a4, - (q15_t)0x4731, (q15_t)0x95a1, (q15_t)0x472c, (q15_t)0x959d, (q15_t)0x4727, (q15_t)0x959a, (q15_t)0x4722, (q15_t)0x9596, - (q15_t)0x471c, (q15_t)0x9593, (q15_t)0x4717, (q15_t)0x958f, (q15_t)0x4712, (q15_t)0x958c, (q15_t)0x470d, (q15_t)0x9588, - (q15_t)0x4708, (q15_t)0x9585, (q15_t)0x4702, (q15_t)0x9581, (q15_t)0x46fd, (q15_t)0x957e, (q15_t)0x46f8, (q15_t)0x957a, - (q15_t)0x46f3, (q15_t)0x9577, (q15_t)0x46ed, (q15_t)0x9574, (q15_t)0x46e8, (q15_t)0x9570, (q15_t)0x46e3, (q15_t)0x956d, - (q15_t)0x46de, (q15_t)0x9569, (q15_t)0x46d8, (q15_t)0x9566, (q15_t)0x46d3, (q15_t)0x9562, (q15_t)0x46ce, (q15_t)0x955f, - (q15_t)0x46c9, (q15_t)0x955b, (q15_t)0x46c4, (q15_t)0x9558, (q15_t)0x46be, (q15_t)0x9554, (q15_t)0x46b9, (q15_t)0x9551, - (q15_t)0x46b4, (q15_t)0x954d, (q15_t)0x46af, (q15_t)0x954a, (q15_t)0x46a9, (q15_t)0x9546, (q15_t)0x46a4, (q15_t)0x9543, - (q15_t)0x469f, (q15_t)0x953f, (q15_t)0x469a, (q15_t)0x953c, (q15_t)0x4694, (q15_t)0x9538, (q15_t)0x468f, (q15_t)0x9535, - (q15_t)0x468a, (q15_t)0x9532, (q15_t)0x4685, (q15_t)0x952e, (q15_t)0x467f, (q15_t)0x952b, (q15_t)0x467a, (q15_t)0x9527, - (q15_t)0x4675, (q15_t)0x9524, (q15_t)0x4670, (q15_t)0x9520, (q15_t)0x466a, (q15_t)0x951d, (q15_t)0x4665, (q15_t)0x9519, - (q15_t)0x4660, (q15_t)0x9516, (q15_t)0x465b, (q15_t)0x9512, (q15_t)0x4655, (q15_t)0x950f, (q15_t)0x4650, (q15_t)0x950c, - (q15_t)0x464b, (q15_t)0x9508, (q15_t)0x4646, (q15_t)0x9505, (q15_t)0x4640, (q15_t)0x9501, (q15_t)0x463b, (q15_t)0x94fe, - (q15_t)0x4636, (q15_t)0x94fa, (q15_t)0x4631, (q15_t)0x94f7, (q15_t)0x462b, (q15_t)0x94f3, (q15_t)0x4626, (q15_t)0x94f0, - (q15_t)0x4621, (q15_t)0x94ed, (q15_t)0x461c, (q15_t)0x94e9, (q15_t)0x4616, (q15_t)0x94e6, (q15_t)0x4611, (q15_t)0x94e2, - (q15_t)0x460c, (q15_t)0x94df, (q15_t)0x4607, (q15_t)0x94db, (q15_t)0x4601, (q15_t)0x94d8, (q15_t)0x45fc, (q15_t)0x94d4, - (q15_t)0x45f7, (q15_t)0x94d1, (q15_t)0x45f2, (q15_t)0x94ce, (q15_t)0x45ec, (q15_t)0x94ca, (q15_t)0x45e7, (q15_t)0x94c7, - (q15_t)0x45e2, (q15_t)0x94c3, (q15_t)0x45dd, (q15_t)0x94c0, (q15_t)0x45d7, (q15_t)0x94bc, (q15_t)0x45d2, (q15_t)0x94b9, - (q15_t)0x45cd, (q15_t)0x94b6, (q15_t)0x45c7, (q15_t)0x94b2, (q15_t)0x45c2, (q15_t)0x94af, (q15_t)0x45bd, (q15_t)0x94ab, - (q15_t)0x45b8, (q15_t)0x94a8, (q15_t)0x45b2, (q15_t)0x94a4, (q15_t)0x45ad, (q15_t)0x94a1, (q15_t)0x45a8, (q15_t)0x949e, - (q15_t)0x45a3, (q15_t)0x949a, (q15_t)0x459d, (q15_t)0x9497, (q15_t)0x4598, (q15_t)0x9493, (q15_t)0x4593, (q15_t)0x9490, - (q15_t)0x458d, (q15_t)0x948d, (q15_t)0x4588, (q15_t)0x9489, (q15_t)0x4583, (q15_t)0x9486, (q15_t)0x457e, (q15_t)0x9482, - (q15_t)0x4578, (q15_t)0x947f, (q15_t)0x4573, (q15_t)0x947b, (q15_t)0x456e, (q15_t)0x9478, (q15_t)0x4569, (q15_t)0x9475, - (q15_t)0x4563, (q15_t)0x9471, (q15_t)0x455e, (q15_t)0x946e, (q15_t)0x4559, (q15_t)0x946a, (q15_t)0x4553, (q15_t)0x9467, - (q15_t)0x454e, (q15_t)0x9464, (q15_t)0x4549, (q15_t)0x9460, (q15_t)0x4544, (q15_t)0x945d, (q15_t)0x453e, (q15_t)0x9459, - (q15_t)0x4539, (q15_t)0x9456, (q15_t)0x4534, (q15_t)0x9453, (q15_t)0x452e, (q15_t)0x944f, (q15_t)0x4529, (q15_t)0x944c, - (q15_t)0x4524, (q15_t)0x9448, (q15_t)0x451f, (q15_t)0x9445, (q15_t)0x4519, (q15_t)0x9442, (q15_t)0x4514, (q15_t)0x943e, - (q15_t)0x450f, (q15_t)0x943b, (q15_t)0x4509, (q15_t)0x9437, (q15_t)0x4504, (q15_t)0x9434, (q15_t)0x44ff, (q15_t)0x9431, - (q15_t)0x44fa, (q15_t)0x942d, (q15_t)0x44f4, (q15_t)0x942a, (q15_t)0x44ef, (q15_t)0x9427, (q15_t)0x44ea, (q15_t)0x9423, - (q15_t)0x44e4, (q15_t)0x9420, (q15_t)0x44df, (q15_t)0x941c, (q15_t)0x44da, (q15_t)0x9419, (q15_t)0x44d4, (q15_t)0x9416, - (q15_t)0x44cf, (q15_t)0x9412, (q15_t)0x44ca, (q15_t)0x940f, (q15_t)0x44c5, (q15_t)0x940b, (q15_t)0x44bf, (q15_t)0x9408, - (q15_t)0x44ba, (q15_t)0x9405, (q15_t)0x44b5, (q15_t)0x9401, (q15_t)0x44af, (q15_t)0x93fe, (q15_t)0x44aa, (q15_t)0x93fb, - (q15_t)0x44a5, (q15_t)0x93f7, (q15_t)0x449f, (q15_t)0x93f4, (q15_t)0x449a, (q15_t)0x93f1, (q15_t)0x4495, (q15_t)0x93ed, - (q15_t)0x4490, (q15_t)0x93ea, (q15_t)0x448a, (q15_t)0x93e6, (q15_t)0x4485, (q15_t)0x93e3, (q15_t)0x4480, (q15_t)0x93e0, - (q15_t)0x447a, (q15_t)0x93dc, (q15_t)0x4475, (q15_t)0x93d9, (q15_t)0x4470, (q15_t)0x93d6, (q15_t)0x446a, (q15_t)0x93d2, - (q15_t)0x4465, (q15_t)0x93cf, (q15_t)0x4460, (q15_t)0x93cc, (q15_t)0x445a, (q15_t)0x93c8, (q15_t)0x4455, (q15_t)0x93c5, - (q15_t)0x4450, (q15_t)0x93c1, (q15_t)0x444b, (q15_t)0x93be, (q15_t)0x4445, (q15_t)0x93bb, (q15_t)0x4440, (q15_t)0x93b7, - (q15_t)0x443b, (q15_t)0x93b4, (q15_t)0x4435, (q15_t)0x93b1, (q15_t)0x4430, (q15_t)0x93ad, (q15_t)0x442b, (q15_t)0x93aa, - (q15_t)0x4425, (q15_t)0x93a7, (q15_t)0x4420, (q15_t)0x93a3, (q15_t)0x441b, (q15_t)0x93a0, (q15_t)0x4415, (q15_t)0x939d, - (q15_t)0x4410, (q15_t)0x9399, (q15_t)0x440b, (q15_t)0x9396, (q15_t)0x4405, (q15_t)0x9393, (q15_t)0x4400, (q15_t)0x938f, - (q15_t)0x43fb, (q15_t)0x938c, (q15_t)0x43f5, (q15_t)0x9389, (q15_t)0x43f0, (q15_t)0x9385, (q15_t)0x43eb, (q15_t)0x9382, - (q15_t)0x43e5, (q15_t)0x937f, (q15_t)0x43e0, (q15_t)0x937b, (q15_t)0x43db, (q15_t)0x9378, (q15_t)0x43d5, (q15_t)0x9375, - (q15_t)0x43d0, (q15_t)0x9371, (q15_t)0x43cb, (q15_t)0x936e, (q15_t)0x43c5, (q15_t)0x936b, (q15_t)0x43c0, (q15_t)0x9367, - (q15_t)0x43bb, (q15_t)0x9364, (q15_t)0x43b5, (q15_t)0x9361, (q15_t)0x43b0, (q15_t)0x935d, (q15_t)0x43ab, (q15_t)0x935a, - (q15_t)0x43a5, (q15_t)0x9357, (q15_t)0x43a0, (q15_t)0x9353, (q15_t)0x439b, (q15_t)0x9350, (q15_t)0x4395, (q15_t)0x934d, - (q15_t)0x4390, (q15_t)0x9349, (q15_t)0x438b, (q15_t)0x9346, (q15_t)0x4385, (q15_t)0x9343, (q15_t)0x4380, (q15_t)0x933f, - (q15_t)0x437b, (q15_t)0x933c, (q15_t)0x4375, (q15_t)0x9339, (q15_t)0x4370, (q15_t)0x9336, (q15_t)0x436b, (q15_t)0x9332, - (q15_t)0x4365, (q15_t)0x932f, (q15_t)0x4360, (q15_t)0x932c, (q15_t)0x435b, (q15_t)0x9328, (q15_t)0x4355, (q15_t)0x9325, - (q15_t)0x4350, (q15_t)0x9322, (q15_t)0x434b, (q15_t)0x931e, (q15_t)0x4345, (q15_t)0x931b, (q15_t)0x4340, (q15_t)0x9318, - (q15_t)0x433b, (q15_t)0x9314, (q15_t)0x4335, (q15_t)0x9311, (q15_t)0x4330, (q15_t)0x930e, (q15_t)0x432b, (q15_t)0x930b, - (q15_t)0x4325, (q15_t)0x9307, (q15_t)0x4320, (q15_t)0x9304, (q15_t)0x431b, (q15_t)0x9301, (q15_t)0x4315, (q15_t)0x92fd, - (q15_t)0x4310, (q15_t)0x92fa, (q15_t)0x430b, (q15_t)0x92f7, (q15_t)0x4305, (q15_t)0x92f4, (q15_t)0x4300, (q15_t)0x92f0, - (q15_t)0x42fa, (q15_t)0x92ed, (q15_t)0x42f5, (q15_t)0x92ea, (q15_t)0x42f0, (q15_t)0x92e6, (q15_t)0x42ea, (q15_t)0x92e3, - (q15_t)0x42e5, (q15_t)0x92e0, (q15_t)0x42e0, (q15_t)0x92dd, (q15_t)0x42da, (q15_t)0x92d9, (q15_t)0x42d5, (q15_t)0x92d6, - (q15_t)0x42d0, (q15_t)0x92d3, (q15_t)0x42ca, (q15_t)0x92cf, (q15_t)0x42c5, (q15_t)0x92cc, (q15_t)0x42c0, (q15_t)0x92c9, - (q15_t)0x42ba, (q15_t)0x92c6, (q15_t)0x42b5, (q15_t)0x92c2, (q15_t)0x42af, (q15_t)0x92bf, (q15_t)0x42aa, (q15_t)0x92bc, - (q15_t)0x42a5, (q15_t)0x92b8, (q15_t)0x429f, (q15_t)0x92b5, (q15_t)0x429a, (q15_t)0x92b2, (q15_t)0x4295, (q15_t)0x92af, - (q15_t)0x428f, (q15_t)0x92ab, (q15_t)0x428a, (q15_t)0x92a8, (q15_t)0x4284, (q15_t)0x92a5, (q15_t)0x427f, (q15_t)0x92a2, - (q15_t)0x427a, (q15_t)0x929e, (q15_t)0x4274, (q15_t)0x929b, (q15_t)0x426f, (q15_t)0x9298, (q15_t)0x426a, (q15_t)0x9295, - (q15_t)0x4264, (q15_t)0x9291, (q15_t)0x425f, (q15_t)0x928e, (q15_t)0x425a, (q15_t)0x928b, (q15_t)0x4254, (q15_t)0x9288, - (q15_t)0x424f, (q15_t)0x9284, (q15_t)0x4249, (q15_t)0x9281, (q15_t)0x4244, (q15_t)0x927e, (q15_t)0x423f, (q15_t)0x927b, - (q15_t)0x4239, (q15_t)0x9277, (q15_t)0x4234, (q15_t)0x9274, (q15_t)0x422f, (q15_t)0x9271, (q15_t)0x4229, (q15_t)0x926e, - (q15_t)0x4224, (q15_t)0x926a, (q15_t)0x421e, (q15_t)0x9267, (q15_t)0x4219, (q15_t)0x9264, (q15_t)0x4214, (q15_t)0x9261, - (q15_t)0x420e, (q15_t)0x925d, (q15_t)0x4209, (q15_t)0x925a, (q15_t)0x4203, (q15_t)0x9257, (q15_t)0x41fe, (q15_t)0x9254, - (q15_t)0x41f9, (q15_t)0x9250, (q15_t)0x41f3, (q15_t)0x924d, (q15_t)0x41ee, (q15_t)0x924a, (q15_t)0x41e9, (q15_t)0x9247, - (q15_t)0x41e3, (q15_t)0x9243, (q15_t)0x41de, (q15_t)0x9240, (q15_t)0x41d8, (q15_t)0x923d, (q15_t)0x41d3, (q15_t)0x923a, - (q15_t)0x41ce, (q15_t)0x9236, (q15_t)0x41c8, (q15_t)0x9233, (q15_t)0x41c3, (q15_t)0x9230, (q15_t)0x41bd, (q15_t)0x922d, - (q15_t)0x41b8, (q15_t)0x922a, (q15_t)0x41b3, (q15_t)0x9226, (q15_t)0x41ad, (q15_t)0x9223, (q15_t)0x41a8, (q15_t)0x9220, - (q15_t)0x41a2, (q15_t)0x921d, (q15_t)0x419d, (q15_t)0x9219, (q15_t)0x4198, (q15_t)0x9216, (q15_t)0x4192, (q15_t)0x9213, - (q15_t)0x418d, (q15_t)0x9210, (q15_t)0x4188, (q15_t)0x920d, (q15_t)0x4182, (q15_t)0x9209, (q15_t)0x417d, (q15_t)0x9206, - (q15_t)0x4177, (q15_t)0x9203, (q15_t)0x4172, (q15_t)0x9200, (q15_t)0x416d, (q15_t)0x91fc, (q15_t)0x4167, (q15_t)0x91f9, - (q15_t)0x4162, (q15_t)0x91f6, (q15_t)0x415c, (q15_t)0x91f3, (q15_t)0x4157, (q15_t)0x91f0, (q15_t)0x4152, (q15_t)0x91ec, - (q15_t)0x414c, (q15_t)0x91e9, (q15_t)0x4147, (q15_t)0x91e6, (q15_t)0x4141, (q15_t)0x91e3, (q15_t)0x413c, (q15_t)0x91e0, - (q15_t)0x4136, (q15_t)0x91dc, (q15_t)0x4131, (q15_t)0x91d9, (q15_t)0x412c, (q15_t)0x91d6, (q15_t)0x4126, (q15_t)0x91d3, - (q15_t)0x4121, (q15_t)0x91d0, (q15_t)0x411b, (q15_t)0x91cc, (q15_t)0x4116, (q15_t)0x91c9, (q15_t)0x4111, (q15_t)0x91c6, - (q15_t)0x410b, (q15_t)0x91c3, (q15_t)0x4106, (q15_t)0x91c0, (q15_t)0x4100, (q15_t)0x91bc, (q15_t)0x40fb, (q15_t)0x91b9, - (q15_t)0x40f6, (q15_t)0x91b6, (q15_t)0x40f0, (q15_t)0x91b3, (q15_t)0x40eb, (q15_t)0x91b0, (q15_t)0x40e5, (q15_t)0x91ad, - (q15_t)0x40e0, (q15_t)0x91a9, (q15_t)0x40da, (q15_t)0x91a6, (q15_t)0x40d5, (q15_t)0x91a3, (q15_t)0x40d0, (q15_t)0x91a0, - (q15_t)0x40ca, (q15_t)0x919d, (q15_t)0x40c5, (q15_t)0x9199, (q15_t)0x40bf, (q15_t)0x9196, (q15_t)0x40ba, (q15_t)0x9193, - (q15_t)0x40b5, (q15_t)0x9190, (q15_t)0x40af, (q15_t)0x918d, (q15_t)0x40aa, (q15_t)0x918a, (q15_t)0x40a4, (q15_t)0x9186, - (q15_t)0x409f, (q15_t)0x9183, (q15_t)0x4099, (q15_t)0x9180, (q15_t)0x4094, (q15_t)0x917d, (q15_t)0x408f, (q15_t)0x917a, - (q15_t)0x4089, (q15_t)0x9177, (q15_t)0x4084, (q15_t)0x9173, (q15_t)0x407e, (q15_t)0x9170, (q15_t)0x4079, (q15_t)0x916d, - (q15_t)0x4073, (q15_t)0x916a, (q15_t)0x406e, (q15_t)0x9167, (q15_t)0x4069, (q15_t)0x9164, (q15_t)0x4063, (q15_t)0x9160, - (q15_t)0x405e, (q15_t)0x915d, (q15_t)0x4058, (q15_t)0x915a, (q15_t)0x4053, (q15_t)0x9157, (q15_t)0x404d, (q15_t)0x9154, - (q15_t)0x4048, (q15_t)0x9151, (q15_t)0x4043, (q15_t)0x914d, (q15_t)0x403d, (q15_t)0x914a, (q15_t)0x4038, (q15_t)0x9147, - (q15_t)0x4032, (q15_t)0x9144, (q15_t)0x402d, (q15_t)0x9141, (q15_t)0x4027, (q15_t)0x913e, (q15_t)0x4022, (q15_t)0x913a, - (q15_t)0x401d, (q15_t)0x9137, (q15_t)0x4017, (q15_t)0x9134, (q15_t)0x4012, (q15_t)0x9131, (q15_t)0x400c, (q15_t)0x912e, - (q15_t)0x4007, (q15_t)0x912b, (q15_t)0x4001, (q15_t)0x9128, (q15_t)0x3ffc, (q15_t)0x9124, (q15_t)0x3ff6, (q15_t)0x9121, - (q15_t)0x3ff1, (q15_t)0x911e, (q15_t)0x3fec, (q15_t)0x911b, (q15_t)0x3fe6, (q15_t)0x9118, (q15_t)0x3fe1, (q15_t)0x9115, - (q15_t)0x3fdb, (q15_t)0x9112, (q15_t)0x3fd6, (q15_t)0x910f, (q15_t)0x3fd0, (q15_t)0x910b, (q15_t)0x3fcb, (q15_t)0x9108, - (q15_t)0x3fc5, (q15_t)0x9105, (q15_t)0x3fc0, (q15_t)0x9102, (q15_t)0x3fbb, (q15_t)0x90ff, (q15_t)0x3fb5, (q15_t)0x90fc, - (q15_t)0x3fb0, (q15_t)0x90f9, (q15_t)0x3faa, (q15_t)0x90f5, (q15_t)0x3fa5, (q15_t)0x90f2, (q15_t)0x3f9f, (q15_t)0x90ef, - (q15_t)0x3f9a, (q15_t)0x90ec, (q15_t)0x3f94, (q15_t)0x90e9, (q15_t)0x3f8f, (q15_t)0x90e6, (q15_t)0x3f89, (q15_t)0x90e3, - (q15_t)0x3f84, (q15_t)0x90e0, (q15_t)0x3f7f, (q15_t)0x90dd, (q15_t)0x3f79, (q15_t)0x90d9, (q15_t)0x3f74, (q15_t)0x90d6, - (q15_t)0x3f6e, (q15_t)0x90d3, (q15_t)0x3f69, (q15_t)0x90d0, (q15_t)0x3f63, (q15_t)0x90cd, (q15_t)0x3f5e, (q15_t)0x90ca, - (q15_t)0x3f58, (q15_t)0x90c7, (q15_t)0x3f53, (q15_t)0x90c4, (q15_t)0x3f4d, (q15_t)0x90c1, (q15_t)0x3f48, (q15_t)0x90bd, - (q15_t)0x3f43, (q15_t)0x90ba, (q15_t)0x3f3d, (q15_t)0x90b7, (q15_t)0x3f38, (q15_t)0x90b4, (q15_t)0x3f32, (q15_t)0x90b1, - (q15_t)0x3f2d, (q15_t)0x90ae, (q15_t)0x3f27, (q15_t)0x90ab, (q15_t)0x3f22, (q15_t)0x90a8, (q15_t)0x3f1c, (q15_t)0x90a5, - (q15_t)0x3f17, (q15_t)0x90a1, (q15_t)0x3f11, (q15_t)0x909e, (q15_t)0x3f0c, (q15_t)0x909b, (q15_t)0x3f06, (q15_t)0x9098, - (q15_t)0x3f01, (q15_t)0x9095, (q15_t)0x3efb, (q15_t)0x9092, (q15_t)0x3ef6, (q15_t)0x908f, (q15_t)0x3ef1, (q15_t)0x908c, - (q15_t)0x3eeb, (q15_t)0x9089, (q15_t)0x3ee6, (q15_t)0x9086, (q15_t)0x3ee0, (q15_t)0x9083, (q15_t)0x3edb, (q15_t)0x907f, - (q15_t)0x3ed5, (q15_t)0x907c, (q15_t)0x3ed0, (q15_t)0x9079, (q15_t)0x3eca, (q15_t)0x9076, (q15_t)0x3ec5, (q15_t)0x9073, - (q15_t)0x3ebf, (q15_t)0x9070, (q15_t)0x3eba, (q15_t)0x906d, (q15_t)0x3eb4, (q15_t)0x906a, (q15_t)0x3eaf, (q15_t)0x9067, - (q15_t)0x3ea9, (q15_t)0x9064, (q15_t)0x3ea4, (q15_t)0x9061, (q15_t)0x3e9e, (q15_t)0x905e, (q15_t)0x3e99, (q15_t)0x905b, - (q15_t)0x3e93, (q15_t)0x9057, (q15_t)0x3e8e, (q15_t)0x9054, (q15_t)0x3e88, (q15_t)0x9051, (q15_t)0x3e83, (q15_t)0x904e, - (q15_t)0x3e7d, (q15_t)0x904b, (q15_t)0x3e78, (q15_t)0x9048, (q15_t)0x3e73, (q15_t)0x9045, (q15_t)0x3e6d, (q15_t)0x9042, - (q15_t)0x3e68, (q15_t)0x903f, (q15_t)0x3e62, (q15_t)0x903c, (q15_t)0x3e5d, (q15_t)0x9039, (q15_t)0x3e57, (q15_t)0x9036, - (q15_t)0x3e52, (q15_t)0x9033, (q15_t)0x3e4c, (q15_t)0x9030, (q15_t)0x3e47, (q15_t)0x902d, (q15_t)0x3e41, (q15_t)0x902a, - (q15_t)0x3e3c, (q15_t)0x9026, (q15_t)0x3e36, (q15_t)0x9023, (q15_t)0x3e31, (q15_t)0x9020, (q15_t)0x3e2b, (q15_t)0x901d, - (q15_t)0x3e26, (q15_t)0x901a, (q15_t)0x3e20, (q15_t)0x9017, (q15_t)0x3e1b, (q15_t)0x9014, (q15_t)0x3e15, (q15_t)0x9011, - (q15_t)0x3e10, (q15_t)0x900e, (q15_t)0x3e0a, (q15_t)0x900b, (q15_t)0x3e05, (q15_t)0x9008, (q15_t)0x3dff, (q15_t)0x9005, - (q15_t)0x3dfa, (q15_t)0x9002, (q15_t)0x3df4, (q15_t)0x8fff, (q15_t)0x3def, (q15_t)0x8ffc, (q15_t)0x3de9, (q15_t)0x8ff9, - (q15_t)0x3de4, (q15_t)0x8ff6, (q15_t)0x3dde, (q15_t)0x8ff3, (q15_t)0x3dd9, (q15_t)0x8ff0, (q15_t)0x3dd3, (q15_t)0x8fed, - (q15_t)0x3dce, (q15_t)0x8fea, (q15_t)0x3dc8, (q15_t)0x8fe7, (q15_t)0x3dc3, (q15_t)0x8fe3, (q15_t)0x3dbd, (q15_t)0x8fe0, - (q15_t)0x3db8, (q15_t)0x8fdd, (q15_t)0x3db2, (q15_t)0x8fda, (q15_t)0x3dad, (q15_t)0x8fd7, (q15_t)0x3da7, (q15_t)0x8fd4, - (q15_t)0x3da2, (q15_t)0x8fd1, (q15_t)0x3d9c, (q15_t)0x8fce, (q15_t)0x3d97, (q15_t)0x8fcb, (q15_t)0x3d91, (q15_t)0x8fc8, - (q15_t)0x3d8c, (q15_t)0x8fc5, (q15_t)0x3d86, (q15_t)0x8fc2, (q15_t)0x3d81, (q15_t)0x8fbf, (q15_t)0x3d7b, (q15_t)0x8fbc, - (q15_t)0x3d76, (q15_t)0x8fb9, (q15_t)0x3d70, (q15_t)0x8fb6, (q15_t)0x3d6b, (q15_t)0x8fb3, (q15_t)0x3d65, (q15_t)0x8fb0, - (q15_t)0x3d60, (q15_t)0x8fad, (q15_t)0x3d5a, (q15_t)0x8faa, (q15_t)0x3d55, (q15_t)0x8fa7, (q15_t)0x3d4f, (q15_t)0x8fa4, - (q15_t)0x3d49, (q15_t)0x8fa1, (q15_t)0x3d44, (q15_t)0x8f9e, (q15_t)0x3d3e, (q15_t)0x8f9b, (q15_t)0x3d39, (q15_t)0x8f98, - (q15_t)0x3d33, (q15_t)0x8f95, (q15_t)0x3d2e, (q15_t)0x8f92, (q15_t)0x3d28, (q15_t)0x8f8f, (q15_t)0x3d23, (q15_t)0x8f8c, - (q15_t)0x3d1d, (q15_t)0x8f89, (q15_t)0x3d18, (q15_t)0x8f86, (q15_t)0x3d12, (q15_t)0x8f83, (q15_t)0x3d0d, (q15_t)0x8f80, - (q15_t)0x3d07, (q15_t)0x8f7d, (q15_t)0x3d02, (q15_t)0x8f7a, (q15_t)0x3cfc, (q15_t)0x8f77, (q15_t)0x3cf7, (q15_t)0x8f74, - (q15_t)0x3cf1, (q15_t)0x8f71, (q15_t)0x3cec, (q15_t)0x8f6e, (q15_t)0x3ce6, (q15_t)0x8f6b, (q15_t)0x3ce1, (q15_t)0x8f68, - (q15_t)0x3cdb, (q15_t)0x8f65, (q15_t)0x3cd6, (q15_t)0x8f62, (q15_t)0x3cd0, (q15_t)0x8f5f, (q15_t)0x3cca, (q15_t)0x8f5c, - (q15_t)0x3cc5, (q15_t)0x8f59, (q15_t)0x3cbf, (q15_t)0x8f56, (q15_t)0x3cba, (q15_t)0x8f53, (q15_t)0x3cb4, (q15_t)0x8f50, - (q15_t)0x3caf, (q15_t)0x8f4d, (q15_t)0x3ca9, (q15_t)0x8f4a, (q15_t)0x3ca4, (q15_t)0x8f47, (q15_t)0x3c9e, (q15_t)0x8f44, - (q15_t)0x3c99, (q15_t)0x8f41, (q15_t)0x3c93, (q15_t)0x8f3e, (q15_t)0x3c8e, (q15_t)0x8f3b, (q15_t)0x3c88, (q15_t)0x8f38, - (q15_t)0x3c83, (q15_t)0x8f35, (q15_t)0x3c7d, (q15_t)0x8f32, (q15_t)0x3c77, (q15_t)0x8f2f, (q15_t)0x3c72, (q15_t)0x8f2d, - (q15_t)0x3c6c, (q15_t)0x8f2a, (q15_t)0x3c67, (q15_t)0x8f27, (q15_t)0x3c61, (q15_t)0x8f24, (q15_t)0x3c5c, (q15_t)0x8f21, - (q15_t)0x3c56, (q15_t)0x8f1e, (q15_t)0x3c51, (q15_t)0x8f1b, (q15_t)0x3c4b, (q15_t)0x8f18, (q15_t)0x3c46, (q15_t)0x8f15, - (q15_t)0x3c40, (q15_t)0x8f12, (q15_t)0x3c3b, (q15_t)0x8f0f, (q15_t)0x3c35, (q15_t)0x8f0c, (q15_t)0x3c2f, (q15_t)0x8f09, - (q15_t)0x3c2a, (q15_t)0x8f06, (q15_t)0x3c24, (q15_t)0x8f03, (q15_t)0x3c1f, (q15_t)0x8f00, (q15_t)0x3c19, (q15_t)0x8efd, - (q15_t)0x3c14, (q15_t)0x8efa, (q15_t)0x3c0e, (q15_t)0x8ef7, (q15_t)0x3c09, (q15_t)0x8ef4, (q15_t)0x3c03, (q15_t)0x8ef1, - (q15_t)0x3bfd, (q15_t)0x8eee, (q15_t)0x3bf8, (q15_t)0x8eec, (q15_t)0x3bf2, (q15_t)0x8ee9, (q15_t)0x3bed, (q15_t)0x8ee6, - (q15_t)0x3be7, (q15_t)0x8ee3, (q15_t)0x3be2, (q15_t)0x8ee0, (q15_t)0x3bdc, (q15_t)0x8edd, (q15_t)0x3bd7, (q15_t)0x8eda, - (q15_t)0x3bd1, (q15_t)0x8ed7, (q15_t)0x3bcc, (q15_t)0x8ed4, (q15_t)0x3bc6, (q15_t)0x8ed1, (q15_t)0x3bc0, (q15_t)0x8ece, - (q15_t)0x3bbb, (q15_t)0x8ecb, (q15_t)0x3bb5, (q15_t)0x8ec8, (q15_t)0x3bb0, (q15_t)0x8ec5, (q15_t)0x3baa, (q15_t)0x8ec2, - (q15_t)0x3ba5, (q15_t)0x8ebf, (q15_t)0x3b9f, (q15_t)0x8ebd, (q15_t)0x3b99, (q15_t)0x8eba, (q15_t)0x3b94, (q15_t)0x8eb7, - (q15_t)0x3b8e, (q15_t)0x8eb4, (q15_t)0x3b89, (q15_t)0x8eb1, (q15_t)0x3b83, (q15_t)0x8eae, (q15_t)0x3b7e, (q15_t)0x8eab, - (q15_t)0x3b78, (q15_t)0x8ea8, (q15_t)0x3b73, (q15_t)0x8ea5, (q15_t)0x3b6d, (q15_t)0x8ea2, (q15_t)0x3b67, (q15_t)0x8e9f, - (q15_t)0x3b62, (q15_t)0x8e9c, (q15_t)0x3b5c, (q15_t)0x8e99, (q15_t)0x3b57, (q15_t)0x8e97, (q15_t)0x3b51, (q15_t)0x8e94, - (q15_t)0x3b4c, (q15_t)0x8e91, (q15_t)0x3b46, (q15_t)0x8e8e, (q15_t)0x3b40, (q15_t)0x8e8b, (q15_t)0x3b3b, (q15_t)0x8e88, - (q15_t)0x3b35, (q15_t)0x8e85, (q15_t)0x3b30, (q15_t)0x8e82, (q15_t)0x3b2a, (q15_t)0x8e7f, (q15_t)0x3b25, (q15_t)0x8e7c, - (q15_t)0x3b1f, (q15_t)0x8e7a, (q15_t)0x3b19, (q15_t)0x8e77, (q15_t)0x3b14, (q15_t)0x8e74, (q15_t)0x3b0e, (q15_t)0x8e71, - (q15_t)0x3b09, (q15_t)0x8e6e, (q15_t)0x3b03, (q15_t)0x8e6b, (q15_t)0x3afe, (q15_t)0x8e68, (q15_t)0x3af8, (q15_t)0x8e65, - (q15_t)0x3af2, (q15_t)0x8e62, (q15_t)0x3aed, (q15_t)0x8e5f, (q15_t)0x3ae7, (q15_t)0x8e5d, (q15_t)0x3ae2, (q15_t)0x8e5a, - (q15_t)0x3adc, (q15_t)0x8e57, (q15_t)0x3ad7, (q15_t)0x8e54, (q15_t)0x3ad1, (q15_t)0x8e51, (q15_t)0x3acb, (q15_t)0x8e4e, - (q15_t)0x3ac6, (q15_t)0x8e4b, (q15_t)0x3ac0, (q15_t)0x8e48, (q15_t)0x3abb, (q15_t)0x8e45, (q15_t)0x3ab5, (q15_t)0x8e43, - (q15_t)0x3aaf, (q15_t)0x8e40, (q15_t)0x3aaa, (q15_t)0x8e3d, (q15_t)0x3aa4, (q15_t)0x8e3a, (q15_t)0x3a9f, (q15_t)0x8e37, - (q15_t)0x3a99, (q15_t)0x8e34, (q15_t)0x3a94, (q15_t)0x8e31, (q15_t)0x3a8e, (q15_t)0x8e2e, (q15_t)0x3a88, (q15_t)0x8e2c, - (q15_t)0x3a83, (q15_t)0x8e29, (q15_t)0x3a7d, (q15_t)0x8e26, (q15_t)0x3a78, (q15_t)0x8e23, (q15_t)0x3a72, (q15_t)0x8e20, - (q15_t)0x3a6c, (q15_t)0x8e1d, (q15_t)0x3a67, (q15_t)0x8e1a, (q15_t)0x3a61, (q15_t)0x8e17, (q15_t)0x3a5c, (q15_t)0x8e15, - (q15_t)0x3a56, (q15_t)0x8e12, (q15_t)0x3a50, (q15_t)0x8e0f, (q15_t)0x3a4b, (q15_t)0x8e0c, (q15_t)0x3a45, (q15_t)0x8e09, - (q15_t)0x3a40, (q15_t)0x8e06, (q15_t)0x3a3a, (q15_t)0x8e03, (q15_t)0x3a34, (q15_t)0x8e01, (q15_t)0x3a2f, (q15_t)0x8dfe, - (q15_t)0x3a29, (q15_t)0x8dfb, (q15_t)0x3a24, (q15_t)0x8df8, (q15_t)0x3a1e, (q15_t)0x8df5, (q15_t)0x3a19, (q15_t)0x8df2, - (q15_t)0x3a13, (q15_t)0x8def, (q15_t)0x3a0d, (q15_t)0x8ded, (q15_t)0x3a08, (q15_t)0x8dea, (q15_t)0x3a02, (q15_t)0x8de7, - (q15_t)0x39fd, (q15_t)0x8de4, (q15_t)0x39f7, (q15_t)0x8de1, (q15_t)0x39f1, (q15_t)0x8dde, (q15_t)0x39ec, (q15_t)0x8ddc, - (q15_t)0x39e6, (q15_t)0x8dd9, (q15_t)0x39e0, (q15_t)0x8dd6, (q15_t)0x39db, (q15_t)0x8dd3, (q15_t)0x39d5, (q15_t)0x8dd0, - (q15_t)0x39d0, (q15_t)0x8dcd, (q15_t)0x39ca, (q15_t)0x8dca, (q15_t)0x39c4, (q15_t)0x8dc8, (q15_t)0x39bf, (q15_t)0x8dc5, - (q15_t)0x39b9, (q15_t)0x8dc2, (q15_t)0x39b4, (q15_t)0x8dbf, (q15_t)0x39ae, (q15_t)0x8dbc, (q15_t)0x39a8, (q15_t)0x8db9, - (q15_t)0x39a3, (q15_t)0x8db7, (q15_t)0x399d, (q15_t)0x8db4, (q15_t)0x3998, (q15_t)0x8db1, (q15_t)0x3992, (q15_t)0x8dae, - (q15_t)0x398c, (q15_t)0x8dab, (q15_t)0x3987, (q15_t)0x8da9, (q15_t)0x3981, (q15_t)0x8da6, (q15_t)0x397c, (q15_t)0x8da3, - (q15_t)0x3976, (q15_t)0x8da0, (q15_t)0x3970, (q15_t)0x8d9d, (q15_t)0x396b, (q15_t)0x8d9a, (q15_t)0x3965, (q15_t)0x8d98, - (q15_t)0x395f, (q15_t)0x8d95, (q15_t)0x395a, (q15_t)0x8d92, (q15_t)0x3954, (q15_t)0x8d8f, (q15_t)0x394f, (q15_t)0x8d8c, - (q15_t)0x3949, (q15_t)0x8d8a, (q15_t)0x3943, (q15_t)0x8d87, (q15_t)0x393e, (q15_t)0x8d84, (q15_t)0x3938, (q15_t)0x8d81, - (q15_t)0x3932, (q15_t)0x8d7e, (q15_t)0x392d, (q15_t)0x8d7b, (q15_t)0x3927, (q15_t)0x8d79, (q15_t)0x3922, (q15_t)0x8d76, - (q15_t)0x391c, (q15_t)0x8d73, (q15_t)0x3916, (q15_t)0x8d70, (q15_t)0x3911, (q15_t)0x8d6d, (q15_t)0x390b, (q15_t)0x8d6b, - (q15_t)0x3906, (q15_t)0x8d68, (q15_t)0x3900, (q15_t)0x8d65, (q15_t)0x38fa, (q15_t)0x8d62, (q15_t)0x38f5, (q15_t)0x8d5f, - (q15_t)0x38ef, (q15_t)0x8d5d, (q15_t)0x38e9, (q15_t)0x8d5a, (q15_t)0x38e4, (q15_t)0x8d57, (q15_t)0x38de, (q15_t)0x8d54, - (q15_t)0x38d8, (q15_t)0x8d51, (q15_t)0x38d3, (q15_t)0x8d4f, (q15_t)0x38cd, (q15_t)0x8d4c, (q15_t)0x38c8, (q15_t)0x8d49, - (q15_t)0x38c2, (q15_t)0x8d46, (q15_t)0x38bc, (q15_t)0x8d44, (q15_t)0x38b7, (q15_t)0x8d41, (q15_t)0x38b1, (q15_t)0x8d3e, - (q15_t)0x38ab, (q15_t)0x8d3b, (q15_t)0x38a6, (q15_t)0x8d38, (q15_t)0x38a0, (q15_t)0x8d36, (q15_t)0x389b, (q15_t)0x8d33, - (q15_t)0x3895, (q15_t)0x8d30, (q15_t)0x388f, (q15_t)0x8d2d, (q15_t)0x388a, (q15_t)0x8d2b, (q15_t)0x3884, (q15_t)0x8d28, - (q15_t)0x387e, (q15_t)0x8d25, (q15_t)0x3879, (q15_t)0x8d22, (q15_t)0x3873, (q15_t)0x8d1f, (q15_t)0x386d, (q15_t)0x8d1d, - (q15_t)0x3868, (q15_t)0x8d1a, (q15_t)0x3862, (q15_t)0x8d17, (q15_t)0x385d, (q15_t)0x8d14, (q15_t)0x3857, (q15_t)0x8d12, - (q15_t)0x3851, (q15_t)0x8d0f, (q15_t)0x384c, (q15_t)0x8d0c, (q15_t)0x3846, (q15_t)0x8d09, (q15_t)0x3840, (q15_t)0x8d07, - (q15_t)0x383b, (q15_t)0x8d04, (q15_t)0x3835, (q15_t)0x8d01, (q15_t)0x382f, (q15_t)0x8cfe, (q15_t)0x382a, (q15_t)0x8cfb, - (q15_t)0x3824, (q15_t)0x8cf9, (q15_t)0x381e, (q15_t)0x8cf6, (q15_t)0x3819, (q15_t)0x8cf3, (q15_t)0x3813, (q15_t)0x8cf0, - (q15_t)0x380d, (q15_t)0x8cee, (q15_t)0x3808, (q15_t)0x8ceb, (q15_t)0x3802, (q15_t)0x8ce8, (q15_t)0x37fd, (q15_t)0x8ce5, - (q15_t)0x37f7, (q15_t)0x8ce3, (q15_t)0x37f1, (q15_t)0x8ce0, (q15_t)0x37ec, (q15_t)0x8cdd, (q15_t)0x37e6, (q15_t)0x8cda, - (q15_t)0x37e0, (q15_t)0x8cd8, (q15_t)0x37db, (q15_t)0x8cd5, (q15_t)0x37d5, (q15_t)0x8cd2, (q15_t)0x37cf, (q15_t)0x8cd0, - (q15_t)0x37ca, (q15_t)0x8ccd, (q15_t)0x37c4, (q15_t)0x8cca, (q15_t)0x37be, (q15_t)0x8cc7, (q15_t)0x37b9, (q15_t)0x8cc5, - (q15_t)0x37b3, (q15_t)0x8cc2, (q15_t)0x37ad, (q15_t)0x8cbf, (q15_t)0x37a8, (q15_t)0x8cbc, (q15_t)0x37a2, (q15_t)0x8cba, - (q15_t)0x379c, (q15_t)0x8cb7, (q15_t)0x3797, (q15_t)0x8cb4, (q15_t)0x3791, (q15_t)0x8cb1, (q15_t)0x378b, (q15_t)0x8caf, - (q15_t)0x3786, (q15_t)0x8cac, (q15_t)0x3780, (q15_t)0x8ca9, (q15_t)0x377a, (q15_t)0x8ca7, (q15_t)0x3775, (q15_t)0x8ca4, - (q15_t)0x376f, (q15_t)0x8ca1, (q15_t)0x3769, (q15_t)0x8c9e, (q15_t)0x3764, (q15_t)0x8c9c, (q15_t)0x375e, (q15_t)0x8c99, - (q15_t)0x3758, (q15_t)0x8c96, (q15_t)0x3753, (q15_t)0x8c94, (q15_t)0x374d, (q15_t)0x8c91, (q15_t)0x3747, (q15_t)0x8c8e, - (q15_t)0x3742, (q15_t)0x8c8b, (q15_t)0x373c, (q15_t)0x8c89, (q15_t)0x3736, (q15_t)0x8c86, (q15_t)0x3731, (q15_t)0x8c83, - (q15_t)0x372b, (q15_t)0x8c81, (q15_t)0x3725, (q15_t)0x8c7e, (q15_t)0x3720, (q15_t)0x8c7b, (q15_t)0x371a, (q15_t)0x8c78, - (q15_t)0x3714, (q15_t)0x8c76, (q15_t)0x370f, (q15_t)0x8c73, (q15_t)0x3709, (q15_t)0x8c70, (q15_t)0x3703, (q15_t)0x8c6e, - (q15_t)0x36fe, (q15_t)0x8c6b, (q15_t)0x36f8, (q15_t)0x8c68, (q15_t)0x36f2, (q15_t)0x8c65, (q15_t)0x36ed, (q15_t)0x8c63, - (q15_t)0x36e7, (q15_t)0x8c60, (q15_t)0x36e1, (q15_t)0x8c5d, (q15_t)0x36dc, (q15_t)0x8c5b, (q15_t)0x36d6, (q15_t)0x8c58, - (q15_t)0x36d0, (q15_t)0x8c55, (q15_t)0x36cb, (q15_t)0x8c53, (q15_t)0x36c5, (q15_t)0x8c50, (q15_t)0x36bf, (q15_t)0x8c4d, - (q15_t)0x36ba, (q15_t)0x8c4b, (q15_t)0x36b4, (q15_t)0x8c48, (q15_t)0x36ae, (q15_t)0x8c45, (q15_t)0x36a9, (q15_t)0x8c43, - (q15_t)0x36a3, (q15_t)0x8c40, (q15_t)0x369d, (q15_t)0x8c3d, (q15_t)0x3698, (q15_t)0x8c3a, (q15_t)0x3692, (q15_t)0x8c38, - (q15_t)0x368c, (q15_t)0x8c35, (q15_t)0x3686, (q15_t)0x8c32, (q15_t)0x3681, (q15_t)0x8c30, (q15_t)0x367b, (q15_t)0x8c2d, - (q15_t)0x3675, (q15_t)0x8c2a, (q15_t)0x3670, (q15_t)0x8c28, (q15_t)0x366a, (q15_t)0x8c25, (q15_t)0x3664, (q15_t)0x8c22, - (q15_t)0x365f, (q15_t)0x8c20, (q15_t)0x3659, (q15_t)0x8c1d, (q15_t)0x3653, (q15_t)0x8c1a, (q15_t)0x364e, (q15_t)0x8c18, - (q15_t)0x3648, (q15_t)0x8c15, (q15_t)0x3642, (q15_t)0x8c12, (q15_t)0x363d, (q15_t)0x8c10, (q15_t)0x3637, (q15_t)0x8c0d, - (q15_t)0x3631, (q15_t)0x8c0a, (q15_t)0x362b, (q15_t)0x8c08, (q15_t)0x3626, (q15_t)0x8c05, (q15_t)0x3620, (q15_t)0x8c02, - (q15_t)0x361a, (q15_t)0x8c00, (q15_t)0x3615, (q15_t)0x8bfd, (q15_t)0x360f, (q15_t)0x8bfa, (q15_t)0x3609, (q15_t)0x8bf8, - (q15_t)0x3604, (q15_t)0x8bf5, (q15_t)0x35fe, (q15_t)0x8bf3, (q15_t)0x35f8, (q15_t)0x8bf0, (q15_t)0x35f3, (q15_t)0x8bed, - (q15_t)0x35ed, (q15_t)0x8beb, (q15_t)0x35e7, (q15_t)0x8be8, (q15_t)0x35e1, (q15_t)0x8be5, (q15_t)0x35dc, (q15_t)0x8be3, - (q15_t)0x35d6, (q15_t)0x8be0, (q15_t)0x35d0, (q15_t)0x8bdd, (q15_t)0x35cb, (q15_t)0x8bdb, (q15_t)0x35c5, (q15_t)0x8bd8, - (q15_t)0x35bf, (q15_t)0x8bd5, (q15_t)0x35ba, (q15_t)0x8bd3, (q15_t)0x35b4, (q15_t)0x8bd0, (q15_t)0x35ae, (q15_t)0x8bce, - (q15_t)0x35a8, (q15_t)0x8bcb, (q15_t)0x35a3, (q15_t)0x8bc8, (q15_t)0x359d, (q15_t)0x8bc6, (q15_t)0x3597, (q15_t)0x8bc3, - (q15_t)0x3592, (q15_t)0x8bc0, (q15_t)0x358c, (q15_t)0x8bbe, (q15_t)0x3586, (q15_t)0x8bbb, (q15_t)0x3580, (q15_t)0x8bb8, - (q15_t)0x357b, (q15_t)0x8bb6, (q15_t)0x3575, (q15_t)0x8bb3, (q15_t)0x356f, (q15_t)0x8bb1, (q15_t)0x356a, (q15_t)0x8bae, - (q15_t)0x3564, (q15_t)0x8bab, (q15_t)0x355e, (q15_t)0x8ba9, (q15_t)0x3558, (q15_t)0x8ba6, (q15_t)0x3553, (q15_t)0x8ba4, - (q15_t)0x354d, (q15_t)0x8ba1, (q15_t)0x3547, (q15_t)0x8b9e, (q15_t)0x3542, (q15_t)0x8b9c, (q15_t)0x353c, (q15_t)0x8b99, - (q15_t)0x3536, (q15_t)0x8b96, (q15_t)0x3530, (q15_t)0x8b94, (q15_t)0x352b, (q15_t)0x8b91, (q15_t)0x3525, (q15_t)0x8b8f, - (q15_t)0x351f, (q15_t)0x8b8c, (q15_t)0x351a, (q15_t)0x8b89, (q15_t)0x3514, (q15_t)0x8b87, (q15_t)0x350e, (q15_t)0x8b84, - (q15_t)0x3508, (q15_t)0x8b82, (q15_t)0x3503, (q15_t)0x8b7f, (q15_t)0x34fd, (q15_t)0x8b7c, (q15_t)0x34f7, (q15_t)0x8b7a, - (q15_t)0x34f2, (q15_t)0x8b77, (q15_t)0x34ec, (q15_t)0x8b75, (q15_t)0x34e6, (q15_t)0x8b72, (q15_t)0x34e0, (q15_t)0x8b6f, - (q15_t)0x34db, (q15_t)0x8b6d, (q15_t)0x34d5, (q15_t)0x8b6a, (q15_t)0x34cf, (q15_t)0x8b68, (q15_t)0x34ca, (q15_t)0x8b65, - (q15_t)0x34c4, (q15_t)0x8b62, (q15_t)0x34be, (q15_t)0x8b60, (q15_t)0x34b8, (q15_t)0x8b5d, (q15_t)0x34b3, (q15_t)0x8b5b, - (q15_t)0x34ad, (q15_t)0x8b58, (q15_t)0x34a7, (q15_t)0x8b55, (q15_t)0x34a1, (q15_t)0x8b53, (q15_t)0x349c, (q15_t)0x8b50, - (q15_t)0x3496, (q15_t)0x8b4e, (q15_t)0x3490, (q15_t)0x8b4b, (q15_t)0x348b, (q15_t)0x8b49, (q15_t)0x3485, (q15_t)0x8b46, - (q15_t)0x347f, (q15_t)0x8b43, (q15_t)0x3479, (q15_t)0x8b41, (q15_t)0x3474, (q15_t)0x8b3e, (q15_t)0x346e, (q15_t)0x8b3c, - (q15_t)0x3468, (q15_t)0x8b39, (q15_t)0x3462, (q15_t)0x8b37, (q15_t)0x345d, (q15_t)0x8b34, (q15_t)0x3457, (q15_t)0x8b31, - (q15_t)0x3451, (q15_t)0x8b2f, (q15_t)0x344b, (q15_t)0x8b2c, (q15_t)0x3446, (q15_t)0x8b2a, (q15_t)0x3440, (q15_t)0x8b27, - (q15_t)0x343a, (q15_t)0x8b25, (q15_t)0x3435, (q15_t)0x8b22, (q15_t)0x342f, (q15_t)0x8b1f, (q15_t)0x3429, (q15_t)0x8b1d, - (q15_t)0x3423, (q15_t)0x8b1a, (q15_t)0x341e, (q15_t)0x8b18, (q15_t)0x3418, (q15_t)0x8b15, (q15_t)0x3412, (q15_t)0x8b13, - (q15_t)0x340c, (q15_t)0x8b10, (q15_t)0x3407, (q15_t)0x8b0e, (q15_t)0x3401, (q15_t)0x8b0b, (q15_t)0x33fb, (q15_t)0x8b08, - (q15_t)0x33f5, (q15_t)0x8b06, (q15_t)0x33f0, (q15_t)0x8b03, (q15_t)0x33ea, (q15_t)0x8b01, (q15_t)0x33e4, (q15_t)0x8afe, - (q15_t)0x33de, (q15_t)0x8afc, (q15_t)0x33d9, (q15_t)0x8af9, (q15_t)0x33d3, (q15_t)0x8af7, (q15_t)0x33cd, (q15_t)0x8af4, - (q15_t)0x33c7, (q15_t)0x8af1, (q15_t)0x33c2, (q15_t)0x8aef, (q15_t)0x33bc, (q15_t)0x8aec, (q15_t)0x33b6, (q15_t)0x8aea, - (q15_t)0x33b0, (q15_t)0x8ae7, (q15_t)0x33ab, (q15_t)0x8ae5, (q15_t)0x33a5, (q15_t)0x8ae2, (q15_t)0x339f, (q15_t)0x8ae0, - (q15_t)0x3399, (q15_t)0x8add, (q15_t)0x3394, (q15_t)0x8adb, (q15_t)0x338e, (q15_t)0x8ad8, (q15_t)0x3388, (q15_t)0x8ad6, - (q15_t)0x3382, (q15_t)0x8ad3, (q15_t)0x337d, (q15_t)0x8ad1, (q15_t)0x3377, (q15_t)0x8ace, (q15_t)0x3371, (q15_t)0x8acb, - (q15_t)0x336b, (q15_t)0x8ac9, (q15_t)0x3366, (q15_t)0x8ac6, (q15_t)0x3360, (q15_t)0x8ac4, (q15_t)0x335a, (q15_t)0x8ac1, - (q15_t)0x3354, (q15_t)0x8abf, (q15_t)0x334f, (q15_t)0x8abc, (q15_t)0x3349, (q15_t)0x8aba, (q15_t)0x3343, (q15_t)0x8ab7, - (q15_t)0x333d, (q15_t)0x8ab5, (q15_t)0x3338, (q15_t)0x8ab2, (q15_t)0x3332, (q15_t)0x8ab0, (q15_t)0x332c, (q15_t)0x8aad, - (q15_t)0x3326, (q15_t)0x8aab, (q15_t)0x3321, (q15_t)0x8aa8, (q15_t)0x331b, (q15_t)0x8aa6, (q15_t)0x3315, (q15_t)0x8aa3, - (q15_t)0x330f, (q15_t)0x8aa1, (q15_t)0x330a, (q15_t)0x8a9e, (q15_t)0x3304, (q15_t)0x8a9c, (q15_t)0x32fe, (q15_t)0x8a99, - (q15_t)0x32f8, (q15_t)0x8a97, (q15_t)0x32f3, (q15_t)0x8a94, (q15_t)0x32ed, (q15_t)0x8a92, (q15_t)0x32e7, (q15_t)0x8a8f, - (q15_t)0x32e1, (q15_t)0x8a8d, (q15_t)0x32db, (q15_t)0x8a8a, (q15_t)0x32d6, (q15_t)0x8a88, (q15_t)0x32d0, (q15_t)0x8a85, - (q15_t)0x32ca, (q15_t)0x8a83, (q15_t)0x32c4, (q15_t)0x8a80, (q15_t)0x32bf, (q15_t)0x8a7e, (q15_t)0x32b9, (q15_t)0x8a7b, - (q15_t)0x32b3, (q15_t)0x8a79, (q15_t)0x32ad, (q15_t)0x8a76, (q15_t)0x32a8, (q15_t)0x8a74, (q15_t)0x32a2, (q15_t)0x8a71, - (q15_t)0x329c, (q15_t)0x8a6f, (q15_t)0x3296, (q15_t)0x8a6c, (q15_t)0x3290, (q15_t)0x8a6a, (q15_t)0x328b, (q15_t)0x8a67, - (q15_t)0x3285, (q15_t)0x8a65, (q15_t)0x327f, (q15_t)0x8a62, (q15_t)0x3279, (q15_t)0x8a60, (q15_t)0x3274, (q15_t)0x8a5d, - (q15_t)0x326e, (q15_t)0x8a5b, (q15_t)0x3268, (q15_t)0x8a59, (q15_t)0x3262, (q15_t)0x8a56, (q15_t)0x325d, (q15_t)0x8a54, - (q15_t)0x3257, (q15_t)0x8a51, (q15_t)0x3251, (q15_t)0x8a4f, (q15_t)0x324b, (q15_t)0x8a4c, (q15_t)0x3245, (q15_t)0x8a4a, - (q15_t)0x3240, (q15_t)0x8a47, (q15_t)0x323a, (q15_t)0x8a45, (q15_t)0x3234, (q15_t)0x8a42, (q15_t)0x322e, (q15_t)0x8a40, - (q15_t)0x3228, (q15_t)0x8a3d, (q15_t)0x3223, (q15_t)0x8a3b, (q15_t)0x321d, (q15_t)0x8a38, (q15_t)0x3217, (q15_t)0x8a36, - (q15_t)0x3211, (q15_t)0x8a34, (q15_t)0x320c, (q15_t)0x8a31, (q15_t)0x3206, (q15_t)0x8a2f, (q15_t)0x3200, (q15_t)0x8a2c, - (q15_t)0x31fa, (q15_t)0x8a2a, (q15_t)0x31f4, (q15_t)0x8a27, (q15_t)0x31ef, (q15_t)0x8a25, (q15_t)0x31e9, (q15_t)0x8a22, - (q15_t)0x31e3, (q15_t)0x8a20, (q15_t)0x31dd, (q15_t)0x8a1d, (q15_t)0x31d8, (q15_t)0x8a1b, (q15_t)0x31d2, (q15_t)0x8a19, - (q15_t)0x31cc, (q15_t)0x8a16, (q15_t)0x31c6, (q15_t)0x8a14, (q15_t)0x31c0, (q15_t)0x8a11, (q15_t)0x31bb, (q15_t)0x8a0f, - (q15_t)0x31b5, (q15_t)0x8a0c, (q15_t)0x31af, (q15_t)0x8a0a, (q15_t)0x31a9, (q15_t)0x8a07, (q15_t)0x31a3, (q15_t)0x8a05, - (q15_t)0x319e, (q15_t)0x8a03, (q15_t)0x3198, (q15_t)0x8a00, (q15_t)0x3192, (q15_t)0x89fe, (q15_t)0x318c, (q15_t)0x89fb, - (q15_t)0x3186, (q15_t)0x89f9, (q15_t)0x3181, (q15_t)0x89f6, (q15_t)0x317b, (q15_t)0x89f4, (q15_t)0x3175, (q15_t)0x89f2, - (q15_t)0x316f, (q15_t)0x89ef, (q15_t)0x3169, (q15_t)0x89ed, (q15_t)0x3164, (q15_t)0x89ea, (q15_t)0x315e, (q15_t)0x89e8, - (q15_t)0x3158, (q15_t)0x89e5, (q15_t)0x3152, (q15_t)0x89e3, (q15_t)0x314c, (q15_t)0x89e1, (q15_t)0x3147, (q15_t)0x89de, - (q15_t)0x3141, (q15_t)0x89dc, (q15_t)0x313b, (q15_t)0x89d9, (q15_t)0x3135, (q15_t)0x89d7, (q15_t)0x312f, (q15_t)0x89d5, - (q15_t)0x312a, (q15_t)0x89d2, (q15_t)0x3124, (q15_t)0x89d0, (q15_t)0x311e, (q15_t)0x89cd, (q15_t)0x3118, (q15_t)0x89cb, - (q15_t)0x3112, (q15_t)0x89c8, (q15_t)0x310d, (q15_t)0x89c6, (q15_t)0x3107, (q15_t)0x89c4, (q15_t)0x3101, (q15_t)0x89c1, - (q15_t)0x30fb, (q15_t)0x89bf, (q15_t)0x30f5, (q15_t)0x89bc, (q15_t)0x30f0, (q15_t)0x89ba, (q15_t)0x30ea, (q15_t)0x89b8, - (q15_t)0x30e4, (q15_t)0x89b5, (q15_t)0x30de, (q15_t)0x89b3, (q15_t)0x30d8, (q15_t)0x89b0, (q15_t)0x30d3, (q15_t)0x89ae, - (q15_t)0x30cd, (q15_t)0x89ac, (q15_t)0x30c7, (q15_t)0x89a9, (q15_t)0x30c1, (q15_t)0x89a7, (q15_t)0x30bb, (q15_t)0x89a4, - (q15_t)0x30b6, (q15_t)0x89a2, (q15_t)0x30b0, (q15_t)0x89a0, (q15_t)0x30aa, (q15_t)0x899d, (q15_t)0x30a4, (q15_t)0x899b, - (q15_t)0x309e, (q15_t)0x8998, (q15_t)0x3099, (q15_t)0x8996, (q15_t)0x3093, (q15_t)0x8994, (q15_t)0x308d, (q15_t)0x8991, - (q15_t)0x3087, (q15_t)0x898f, (q15_t)0x3081, (q15_t)0x898d, (q15_t)0x307b, (q15_t)0x898a, (q15_t)0x3076, (q15_t)0x8988, - (q15_t)0x3070, (q15_t)0x8985, (q15_t)0x306a, (q15_t)0x8983, (q15_t)0x3064, (q15_t)0x8981, (q15_t)0x305e, (q15_t)0x897e, - (q15_t)0x3059, (q15_t)0x897c, (q15_t)0x3053, (q15_t)0x897a, (q15_t)0x304d, (q15_t)0x8977, (q15_t)0x3047, (q15_t)0x8975, - (q15_t)0x3041, (q15_t)0x8972, (q15_t)0x303b, (q15_t)0x8970, (q15_t)0x3036, (q15_t)0x896e, (q15_t)0x3030, (q15_t)0x896b, - (q15_t)0x302a, (q15_t)0x8969, (q15_t)0x3024, (q15_t)0x8967, (q15_t)0x301e, (q15_t)0x8964, (q15_t)0x3019, (q15_t)0x8962, - (q15_t)0x3013, (q15_t)0x8960, (q15_t)0x300d, (q15_t)0x895d, (q15_t)0x3007, (q15_t)0x895b, (q15_t)0x3001, (q15_t)0x8958, - (q15_t)0x2ffb, (q15_t)0x8956, (q15_t)0x2ff6, (q15_t)0x8954, (q15_t)0x2ff0, (q15_t)0x8951, (q15_t)0x2fea, (q15_t)0x894f, - (q15_t)0x2fe4, (q15_t)0x894d, (q15_t)0x2fde, (q15_t)0x894a, (q15_t)0x2fd8, (q15_t)0x8948, (q15_t)0x2fd3, (q15_t)0x8946, - (q15_t)0x2fcd, (q15_t)0x8943, (q15_t)0x2fc7, (q15_t)0x8941, (q15_t)0x2fc1, (q15_t)0x893f, (q15_t)0x2fbb, (q15_t)0x893c, - (q15_t)0x2fb5, (q15_t)0x893a, (q15_t)0x2fb0, (q15_t)0x8938, (q15_t)0x2faa, (q15_t)0x8935, (q15_t)0x2fa4, (q15_t)0x8933, - (q15_t)0x2f9e, (q15_t)0x8931, (q15_t)0x2f98, (q15_t)0x892e, (q15_t)0x2f92, (q15_t)0x892c, (q15_t)0x2f8d, (q15_t)0x892a, - (q15_t)0x2f87, (q15_t)0x8927, (q15_t)0x2f81, (q15_t)0x8925, (q15_t)0x2f7b, (q15_t)0x8923, (q15_t)0x2f75, (q15_t)0x8920, - (q15_t)0x2f6f, (q15_t)0x891e, (q15_t)0x2f6a, (q15_t)0x891c, (q15_t)0x2f64, (q15_t)0x8919, (q15_t)0x2f5e, (q15_t)0x8917, - (q15_t)0x2f58, (q15_t)0x8915, (q15_t)0x2f52, (q15_t)0x8912, (q15_t)0x2f4c, (q15_t)0x8910, (q15_t)0x2f47, (q15_t)0x890e, - (q15_t)0x2f41, (q15_t)0x890b, (q15_t)0x2f3b, (q15_t)0x8909, (q15_t)0x2f35, (q15_t)0x8907, (q15_t)0x2f2f, (q15_t)0x8904, - (q15_t)0x2f29, (q15_t)0x8902, (q15_t)0x2f24, (q15_t)0x8900, (q15_t)0x2f1e, (q15_t)0x88fd, (q15_t)0x2f18, (q15_t)0x88fb, - (q15_t)0x2f12, (q15_t)0x88f9, (q15_t)0x2f0c, (q15_t)0x88f6, (q15_t)0x2f06, (q15_t)0x88f4, (q15_t)0x2f01, (q15_t)0x88f2, - (q15_t)0x2efb, (q15_t)0x88f0, (q15_t)0x2ef5, (q15_t)0x88ed, (q15_t)0x2eef, (q15_t)0x88eb, (q15_t)0x2ee9, (q15_t)0x88e9, - (q15_t)0x2ee3, (q15_t)0x88e6, (q15_t)0x2edd, (q15_t)0x88e4, (q15_t)0x2ed8, (q15_t)0x88e2, (q15_t)0x2ed2, (q15_t)0x88df, - (q15_t)0x2ecc, (q15_t)0x88dd, (q15_t)0x2ec6, (q15_t)0x88db, (q15_t)0x2ec0, (q15_t)0x88d9, (q15_t)0x2eba, (q15_t)0x88d6, - (q15_t)0x2eb5, (q15_t)0x88d4, (q15_t)0x2eaf, (q15_t)0x88d2, (q15_t)0x2ea9, (q15_t)0x88cf, (q15_t)0x2ea3, (q15_t)0x88cd, - (q15_t)0x2e9d, (q15_t)0x88cb, (q15_t)0x2e97, (q15_t)0x88c8, (q15_t)0x2e91, (q15_t)0x88c6, (q15_t)0x2e8c, (q15_t)0x88c4, - (q15_t)0x2e86, (q15_t)0x88c2, (q15_t)0x2e80, (q15_t)0x88bf, (q15_t)0x2e7a, (q15_t)0x88bd, (q15_t)0x2e74, (q15_t)0x88bb, - (q15_t)0x2e6e, (q15_t)0x88b9, (q15_t)0x2e68, (q15_t)0x88b6, (q15_t)0x2e63, (q15_t)0x88b4, (q15_t)0x2e5d, (q15_t)0x88b2, - (q15_t)0x2e57, (q15_t)0x88af, (q15_t)0x2e51, (q15_t)0x88ad, (q15_t)0x2e4b, (q15_t)0x88ab, (q15_t)0x2e45, (q15_t)0x88a9, - (q15_t)0x2e3f, (q15_t)0x88a6, (q15_t)0x2e3a, (q15_t)0x88a4, (q15_t)0x2e34, (q15_t)0x88a2, (q15_t)0x2e2e, (q15_t)0x88a0, - (q15_t)0x2e28, (q15_t)0x889d, (q15_t)0x2e22, (q15_t)0x889b, (q15_t)0x2e1c, (q15_t)0x8899, (q15_t)0x2e16, (q15_t)0x8896, - (q15_t)0x2e11, (q15_t)0x8894, (q15_t)0x2e0b, (q15_t)0x8892, (q15_t)0x2e05, (q15_t)0x8890, (q15_t)0x2dff, (q15_t)0x888d, - (q15_t)0x2df9, (q15_t)0x888b, (q15_t)0x2df3, (q15_t)0x8889, (q15_t)0x2ded, (q15_t)0x8887, (q15_t)0x2de7, (q15_t)0x8884, - (q15_t)0x2de2, (q15_t)0x8882, (q15_t)0x2ddc, (q15_t)0x8880, (q15_t)0x2dd6, (q15_t)0x887e, (q15_t)0x2dd0, (q15_t)0x887b, - (q15_t)0x2dca, (q15_t)0x8879, (q15_t)0x2dc4, (q15_t)0x8877, (q15_t)0x2dbe, (q15_t)0x8875, (q15_t)0x2db9, (q15_t)0x8872, - (q15_t)0x2db3, (q15_t)0x8870, (q15_t)0x2dad, (q15_t)0x886e, (q15_t)0x2da7, (q15_t)0x886c, (q15_t)0x2da1, (q15_t)0x8869, - (q15_t)0x2d9b, (q15_t)0x8867, (q15_t)0x2d95, (q15_t)0x8865, (q15_t)0x2d8f, (q15_t)0x8863, (q15_t)0x2d8a, (q15_t)0x8860, - (q15_t)0x2d84, (q15_t)0x885e, (q15_t)0x2d7e, (q15_t)0x885c, (q15_t)0x2d78, (q15_t)0x885a, (q15_t)0x2d72, (q15_t)0x8858, - (q15_t)0x2d6c, (q15_t)0x8855, (q15_t)0x2d66, (q15_t)0x8853, (q15_t)0x2d60, (q15_t)0x8851, (q15_t)0x2d5b, (q15_t)0x884f, - (q15_t)0x2d55, (q15_t)0x884c, (q15_t)0x2d4f, (q15_t)0x884a, (q15_t)0x2d49, (q15_t)0x8848, (q15_t)0x2d43, (q15_t)0x8846, - (q15_t)0x2d3d, (q15_t)0x8844, (q15_t)0x2d37, (q15_t)0x8841, (q15_t)0x2d31, (q15_t)0x883f, (q15_t)0x2d2c, (q15_t)0x883d, - (q15_t)0x2d26, (q15_t)0x883b, (q15_t)0x2d20, (q15_t)0x8838, (q15_t)0x2d1a, (q15_t)0x8836, (q15_t)0x2d14, (q15_t)0x8834, - (q15_t)0x2d0e, (q15_t)0x8832, (q15_t)0x2d08, (q15_t)0x8830, (q15_t)0x2d02, (q15_t)0x882d, (q15_t)0x2cfd, (q15_t)0x882b, - (q15_t)0x2cf7, (q15_t)0x8829, (q15_t)0x2cf1, (q15_t)0x8827, (q15_t)0x2ceb, (q15_t)0x8825, (q15_t)0x2ce5, (q15_t)0x8822, - (q15_t)0x2cdf, (q15_t)0x8820, (q15_t)0x2cd9, (q15_t)0x881e, (q15_t)0x2cd3, (q15_t)0x881c, (q15_t)0x2ccd, (q15_t)0x881a, - (q15_t)0x2cc8, (q15_t)0x8817, (q15_t)0x2cc2, (q15_t)0x8815, (q15_t)0x2cbc, (q15_t)0x8813, (q15_t)0x2cb6, (q15_t)0x8811, - (q15_t)0x2cb0, (q15_t)0x880f, (q15_t)0x2caa, (q15_t)0x880c, (q15_t)0x2ca4, (q15_t)0x880a, (q15_t)0x2c9e, (q15_t)0x8808, - (q15_t)0x2c98, (q15_t)0x8806, (q15_t)0x2c93, (q15_t)0x8804, (q15_t)0x2c8d, (q15_t)0x8801, (q15_t)0x2c87, (q15_t)0x87ff, - (q15_t)0x2c81, (q15_t)0x87fd, (q15_t)0x2c7b, (q15_t)0x87fb, (q15_t)0x2c75, (q15_t)0x87f9, (q15_t)0x2c6f, (q15_t)0x87f6, - (q15_t)0x2c69, (q15_t)0x87f4, (q15_t)0x2c63, (q15_t)0x87f2, (q15_t)0x2c5e, (q15_t)0x87f0, (q15_t)0x2c58, (q15_t)0x87ee, - (q15_t)0x2c52, (q15_t)0x87ec, (q15_t)0x2c4c, (q15_t)0x87e9, (q15_t)0x2c46, (q15_t)0x87e7, (q15_t)0x2c40, (q15_t)0x87e5, - (q15_t)0x2c3a, (q15_t)0x87e3, (q15_t)0x2c34, (q15_t)0x87e1, (q15_t)0x2c2e, (q15_t)0x87df, (q15_t)0x2c29, (q15_t)0x87dc, - (q15_t)0x2c23, (q15_t)0x87da, (q15_t)0x2c1d, (q15_t)0x87d8, (q15_t)0x2c17, (q15_t)0x87d6, (q15_t)0x2c11, (q15_t)0x87d4, - (q15_t)0x2c0b, (q15_t)0x87d2, (q15_t)0x2c05, (q15_t)0x87cf, (q15_t)0x2bff, (q15_t)0x87cd, (q15_t)0x2bf9, (q15_t)0x87cb, - (q15_t)0x2bf3, (q15_t)0x87c9, (q15_t)0x2bee, (q15_t)0x87c7, (q15_t)0x2be8, (q15_t)0x87c5, (q15_t)0x2be2, (q15_t)0x87c2, - (q15_t)0x2bdc, (q15_t)0x87c0, (q15_t)0x2bd6, (q15_t)0x87be, (q15_t)0x2bd0, (q15_t)0x87bc, (q15_t)0x2bca, (q15_t)0x87ba, - (q15_t)0x2bc4, (q15_t)0x87b8, (q15_t)0x2bbe, (q15_t)0x87b6, (q15_t)0x2bb8, (q15_t)0x87b3, (q15_t)0x2bb2, (q15_t)0x87b1, - (q15_t)0x2bad, (q15_t)0x87af, (q15_t)0x2ba7, (q15_t)0x87ad, (q15_t)0x2ba1, (q15_t)0x87ab, (q15_t)0x2b9b, (q15_t)0x87a9, - (q15_t)0x2b95, (q15_t)0x87a7, (q15_t)0x2b8f, (q15_t)0x87a4, (q15_t)0x2b89, (q15_t)0x87a2, (q15_t)0x2b83, (q15_t)0x87a0, - (q15_t)0x2b7d, (q15_t)0x879e, (q15_t)0x2b77, (q15_t)0x879c, (q15_t)0x2b71, (q15_t)0x879a, (q15_t)0x2b6c, (q15_t)0x8798, - (q15_t)0x2b66, (q15_t)0x8795, (q15_t)0x2b60, (q15_t)0x8793, (q15_t)0x2b5a, (q15_t)0x8791, (q15_t)0x2b54, (q15_t)0x878f, - (q15_t)0x2b4e, (q15_t)0x878d, (q15_t)0x2b48, (q15_t)0x878b, (q15_t)0x2b42, (q15_t)0x8789, (q15_t)0x2b3c, (q15_t)0x8787, - (q15_t)0x2b36, (q15_t)0x8784, (q15_t)0x2b30, (q15_t)0x8782, (q15_t)0x2b2b, (q15_t)0x8780, (q15_t)0x2b25, (q15_t)0x877e, - (q15_t)0x2b1f, (q15_t)0x877c, (q15_t)0x2b19, (q15_t)0x877a, (q15_t)0x2b13, (q15_t)0x8778, (q15_t)0x2b0d, (q15_t)0x8776, - (q15_t)0x2b07, (q15_t)0x8774, (q15_t)0x2b01, (q15_t)0x8771, (q15_t)0x2afb, (q15_t)0x876f, (q15_t)0x2af5, (q15_t)0x876d, - (q15_t)0x2aef, (q15_t)0x876b, (q15_t)0x2ae9, (q15_t)0x8769, (q15_t)0x2ae4, (q15_t)0x8767, (q15_t)0x2ade, (q15_t)0x8765, - (q15_t)0x2ad8, (q15_t)0x8763, (q15_t)0x2ad2, (q15_t)0x8761, (q15_t)0x2acc, (q15_t)0x875e, (q15_t)0x2ac6, (q15_t)0x875c, - (q15_t)0x2ac0, (q15_t)0x875a, (q15_t)0x2aba, (q15_t)0x8758, (q15_t)0x2ab4, (q15_t)0x8756, (q15_t)0x2aae, (q15_t)0x8754, - (q15_t)0x2aa8, (q15_t)0x8752, (q15_t)0x2aa2, (q15_t)0x8750, (q15_t)0x2a9c, (q15_t)0x874e, (q15_t)0x2a97, (q15_t)0x874c, - (q15_t)0x2a91, (q15_t)0x874a, (q15_t)0x2a8b, (q15_t)0x8747, (q15_t)0x2a85, (q15_t)0x8745, (q15_t)0x2a7f, (q15_t)0x8743, - (q15_t)0x2a79, (q15_t)0x8741, (q15_t)0x2a73, (q15_t)0x873f, (q15_t)0x2a6d, (q15_t)0x873d, (q15_t)0x2a67, (q15_t)0x873b, - (q15_t)0x2a61, (q15_t)0x8739, (q15_t)0x2a5b, (q15_t)0x8737, (q15_t)0x2a55, (q15_t)0x8735, (q15_t)0x2a4f, (q15_t)0x8733, - (q15_t)0x2a49, (q15_t)0x8731, (q15_t)0x2a44, (q15_t)0x872e, (q15_t)0x2a3e, (q15_t)0x872c, (q15_t)0x2a38, (q15_t)0x872a, - (q15_t)0x2a32, (q15_t)0x8728, (q15_t)0x2a2c, (q15_t)0x8726, (q15_t)0x2a26, (q15_t)0x8724, (q15_t)0x2a20, (q15_t)0x8722, - (q15_t)0x2a1a, (q15_t)0x8720, (q15_t)0x2a14, (q15_t)0x871e, (q15_t)0x2a0e, (q15_t)0x871c, (q15_t)0x2a08, (q15_t)0x871a, - (q15_t)0x2a02, (q15_t)0x8718, (q15_t)0x29fc, (q15_t)0x8716, (q15_t)0x29f6, (q15_t)0x8714, (q15_t)0x29f0, (q15_t)0x8712, - (q15_t)0x29eb, (q15_t)0x870f, (q15_t)0x29e5, (q15_t)0x870d, (q15_t)0x29df, (q15_t)0x870b, (q15_t)0x29d9, (q15_t)0x8709, - (q15_t)0x29d3, (q15_t)0x8707, (q15_t)0x29cd, (q15_t)0x8705, (q15_t)0x29c7, (q15_t)0x8703, (q15_t)0x29c1, (q15_t)0x8701, - (q15_t)0x29bb, (q15_t)0x86ff, (q15_t)0x29b5, (q15_t)0x86fd, (q15_t)0x29af, (q15_t)0x86fb, (q15_t)0x29a9, (q15_t)0x86f9, - (q15_t)0x29a3, (q15_t)0x86f7, (q15_t)0x299d, (q15_t)0x86f5, (q15_t)0x2997, (q15_t)0x86f3, (q15_t)0x2991, (q15_t)0x86f1, - (q15_t)0x298b, (q15_t)0x86ef, (q15_t)0x2986, (q15_t)0x86ed, (q15_t)0x2980, (q15_t)0x86eb, (q15_t)0x297a, (q15_t)0x86e9, - (q15_t)0x2974, (q15_t)0x86e7, (q15_t)0x296e, (q15_t)0x86e4, (q15_t)0x2968, (q15_t)0x86e2, (q15_t)0x2962, (q15_t)0x86e0, - (q15_t)0x295c, (q15_t)0x86de, (q15_t)0x2956, (q15_t)0x86dc, (q15_t)0x2950, (q15_t)0x86da, (q15_t)0x294a, (q15_t)0x86d8, - (q15_t)0x2944, (q15_t)0x86d6, (q15_t)0x293e, (q15_t)0x86d4, (q15_t)0x2938, (q15_t)0x86d2, (q15_t)0x2932, (q15_t)0x86d0, - (q15_t)0x292c, (q15_t)0x86ce, (q15_t)0x2926, (q15_t)0x86cc, (q15_t)0x2920, (q15_t)0x86ca, (q15_t)0x291b, (q15_t)0x86c8, - (q15_t)0x2915, (q15_t)0x86c6, (q15_t)0x290f, (q15_t)0x86c4, (q15_t)0x2909, (q15_t)0x86c2, (q15_t)0x2903, (q15_t)0x86c0, - (q15_t)0x28fd, (q15_t)0x86be, (q15_t)0x28f7, (q15_t)0x86bc, (q15_t)0x28f1, (q15_t)0x86ba, (q15_t)0x28eb, (q15_t)0x86b8, - (q15_t)0x28e5, (q15_t)0x86b6, (q15_t)0x28df, (q15_t)0x86b4, (q15_t)0x28d9, (q15_t)0x86b2, (q15_t)0x28d3, (q15_t)0x86b0, - (q15_t)0x28cd, (q15_t)0x86ae, (q15_t)0x28c7, (q15_t)0x86ac, (q15_t)0x28c1, (q15_t)0x86aa, (q15_t)0x28bb, (q15_t)0x86a8, - (q15_t)0x28b5, (q15_t)0x86a6, (q15_t)0x28af, (q15_t)0x86a4, (q15_t)0x28a9, (q15_t)0x86a2, (q15_t)0x28a3, (q15_t)0x86a0, - (q15_t)0x289d, (q15_t)0x869e, (q15_t)0x2898, (q15_t)0x869c, (q15_t)0x2892, (q15_t)0x869a, (q15_t)0x288c, (q15_t)0x8698, - (q15_t)0x2886, (q15_t)0x8696, (q15_t)0x2880, (q15_t)0x8694, (q15_t)0x287a, (q15_t)0x8692, (q15_t)0x2874, (q15_t)0x8690, - (q15_t)0x286e, (q15_t)0x868e, (q15_t)0x2868, (q15_t)0x868c, (q15_t)0x2862, (q15_t)0x868a, (q15_t)0x285c, (q15_t)0x8688, - (q15_t)0x2856, (q15_t)0x8686, (q15_t)0x2850, (q15_t)0x8684, (q15_t)0x284a, (q15_t)0x8682, (q15_t)0x2844, (q15_t)0x8680, - (q15_t)0x283e, (q15_t)0x867e, (q15_t)0x2838, (q15_t)0x867c, (q15_t)0x2832, (q15_t)0x867a, (q15_t)0x282c, (q15_t)0x8678, - (q15_t)0x2826, (q15_t)0x8676, (q15_t)0x2820, (q15_t)0x8674, (q15_t)0x281a, (q15_t)0x8672, (q15_t)0x2814, (q15_t)0x8670, - (q15_t)0x280e, (q15_t)0x866e, (q15_t)0x2808, (q15_t)0x866d, (q15_t)0x2802, (q15_t)0x866b, (q15_t)0x27fc, (q15_t)0x8669, - (q15_t)0x27f6, (q15_t)0x8667, (q15_t)0x27f1, (q15_t)0x8665, (q15_t)0x27eb, (q15_t)0x8663, (q15_t)0x27e5, (q15_t)0x8661, - (q15_t)0x27df, (q15_t)0x865f, (q15_t)0x27d9, (q15_t)0x865d, (q15_t)0x27d3, (q15_t)0x865b, (q15_t)0x27cd, (q15_t)0x8659, - (q15_t)0x27c7, (q15_t)0x8657, (q15_t)0x27c1, (q15_t)0x8655, (q15_t)0x27bb, (q15_t)0x8653, (q15_t)0x27b5, (q15_t)0x8651, - (q15_t)0x27af, (q15_t)0x864f, (q15_t)0x27a9, (q15_t)0x864d, (q15_t)0x27a3, (q15_t)0x864b, (q15_t)0x279d, (q15_t)0x8649, - (q15_t)0x2797, (q15_t)0x8647, (q15_t)0x2791, (q15_t)0x8645, (q15_t)0x278b, (q15_t)0x8644, (q15_t)0x2785, (q15_t)0x8642, - (q15_t)0x277f, (q15_t)0x8640, (q15_t)0x2779, (q15_t)0x863e, (q15_t)0x2773, (q15_t)0x863c, (q15_t)0x276d, (q15_t)0x863a, - (q15_t)0x2767, (q15_t)0x8638, (q15_t)0x2761, (q15_t)0x8636, (q15_t)0x275b, (q15_t)0x8634, (q15_t)0x2755, (q15_t)0x8632, - (q15_t)0x274f, (q15_t)0x8630, (q15_t)0x2749, (q15_t)0x862e, (q15_t)0x2743, (q15_t)0x862c, (q15_t)0x273d, (q15_t)0x862a, - (q15_t)0x2737, (q15_t)0x8628, (q15_t)0x2731, (q15_t)0x8627, (q15_t)0x272b, (q15_t)0x8625, (q15_t)0x2725, (q15_t)0x8623, - (q15_t)0x271f, (q15_t)0x8621, (q15_t)0x2719, (q15_t)0x861f, (q15_t)0x2713, (q15_t)0x861d, (q15_t)0x270d, (q15_t)0x861b, - (q15_t)0x2707, (q15_t)0x8619, (q15_t)0x2701, (q15_t)0x8617, (q15_t)0x26fb, (q15_t)0x8615, (q15_t)0x26f5, (q15_t)0x8613, - (q15_t)0x26ef, (q15_t)0x8611, (q15_t)0x26e9, (q15_t)0x8610, (q15_t)0x26e4, (q15_t)0x860e, (q15_t)0x26de, (q15_t)0x860c, - (q15_t)0x26d8, (q15_t)0x860a, (q15_t)0x26d2, (q15_t)0x8608, (q15_t)0x26cc, (q15_t)0x8606, (q15_t)0x26c6, (q15_t)0x8604, - (q15_t)0x26c0, (q15_t)0x8602, (q15_t)0x26ba, (q15_t)0x8600, (q15_t)0x26b4, (q15_t)0x85fe, (q15_t)0x26ae, (q15_t)0x85fc, - (q15_t)0x26a8, (q15_t)0x85fb, (q15_t)0x26a2, (q15_t)0x85f9, (q15_t)0x269c, (q15_t)0x85f7, (q15_t)0x2696, (q15_t)0x85f5, - (q15_t)0x2690, (q15_t)0x85f3, (q15_t)0x268a, (q15_t)0x85f1, (q15_t)0x2684, (q15_t)0x85ef, (q15_t)0x267e, (q15_t)0x85ed, - (q15_t)0x2678, (q15_t)0x85eb, (q15_t)0x2672, (q15_t)0x85ea, (q15_t)0x266c, (q15_t)0x85e8, (q15_t)0x2666, (q15_t)0x85e6, - (q15_t)0x2660, (q15_t)0x85e4, (q15_t)0x265a, (q15_t)0x85e2, (q15_t)0x2654, (q15_t)0x85e0, (q15_t)0x264e, (q15_t)0x85de, - (q15_t)0x2648, (q15_t)0x85dc, (q15_t)0x2642, (q15_t)0x85da, (q15_t)0x263c, (q15_t)0x85d9, (q15_t)0x2636, (q15_t)0x85d7, - (q15_t)0x2630, (q15_t)0x85d5, (q15_t)0x262a, (q15_t)0x85d3, (q15_t)0x2624, (q15_t)0x85d1, (q15_t)0x261e, (q15_t)0x85cf, - (q15_t)0x2618, (q15_t)0x85cd, (q15_t)0x2612, (q15_t)0x85cb, (q15_t)0x260c, (q15_t)0x85ca, (q15_t)0x2606, (q15_t)0x85c8, - (q15_t)0x2600, (q15_t)0x85c6, (q15_t)0x25fa, (q15_t)0x85c4, (q15_t)0x25f4, (q15_t)0x85c2, (q15_t)0x25ee, (q15_t)0x85c0, - (q15_t)0x25e8, (q15_t)0x85be, (q15_t)0x25e2, (q15_t)0x85bd, (q15_t)0x25dc, (q15_t)0x85bb, (q15_t)0x25d6, (q15_t)0x85b9, - (q15_t)0x25d0, (q15_t)0x85b7, (q15_t)0x25ca, (q15_t)0x85b5, (q15_t)0x25c4, (q15_t)0x85b3, (q15_t)0x25be, (q15_t)0x85b1, - (q15_t)0x25b8, (q15_t)0x85b0, (q15_t)0x25b2, (q15_t)0x85ae, (q15_t)0x25ac, (q15_t)0x85ac, (q15_t)0x25a6, (q15_t)0x85aa, - (q15_t)0x25a0, (q15_t)0x85a8, (q15_t)0x259a, (q15_t)0x85a6, (q15_t)0x2594, (q15_t)0x85a4, (q15_t)0x258e, (q15_t)0x85a3, - (q15_t)0x2588, (q15_t)0x85a1, (q15_t)0x2582, (q15_t)0x859f, (q15_t)0x257c, (q15_t)0x859d, (q15_t)0x2576, (q15_t)0x859b, - (q15_t)0x2570, (q15_t)0x8599, (q15_t)0x256a, (q15_t)0x8598, (q15_t)0x2564, (q15_t)0x8596, (q15_t)0x255e, (q15_t)0x8594, - (q15_t)0x2558, (q15_t)0x8592, (q15_t)0x2552, (q15_t)0x8590, (q15_t)0x254c, (q15_t)0x858e, (q15_t)0x2546, (q15_t)0x858d, - (q15_t)0x2540, (q15_t)0x858b, (q15_t)0x253a, (q15_t)0x8589, (q15_t)0x2534, (q15_t)0x8587, (q15_t)0x252e, (q15_t)0x8585, - (q15_t)0x2528, (q15_t)0x8583, (q15_t)0x2522, (q15_t)0x8582, (q15_t)0x251c, (q15_t)0x8580, (q15_t)0x2516, (q15_t)0x857e, - (q15_t)0x250f, (q15_t)0x857c, (q15_t)0x2509, (q15_t)0x857a, (q15_t)0x2503, (q15_t)0x8579, (q15_t)0x24fd, (q15_t)0x8577, - (q15_t)0x24f7, (q15_t)0x8575, (q15_t)0x24f1, (q15_t)0x8573, (q15_t)0x24eb, (q15_t)0x8571, (q15_t)0x24e5, (q15_t)0x856f, - (q15_t)0x24df, (q15_t)0x856e, (q15_t)0x24d9, (q15_t)0x856c, (q15_t)0x24d3, (q15_t)0x856a, (q15_t)0x24cd, (q15_t)0x8568, - (q15_t)0x24c7, (q15_t)0x8566, (q15_t)0x24c1, (q15_t)0x8565, (q15_t)0x24bb, (q15_t)0x8563, (q15_t)0x24b5, (q15_t)0x8561, - (q15_t)0x24af, (q15_t)0x855f, (q15_t)0x24a9, (q15_t)0x855d, (q15_t)0x24a3, (q15_t)0x855c, (q15_t)0x249d, (q15_t)0x855a, - (q15_t)0x2497, (q15_t)0x8558, (q15_t)0x2491, (q15_t)0x8556, (q15_t)0x248b, (q15_t)0x8554, (q15_t)0x2485, (q15_t)0x8553, - (q15_t)0x247f, (q15_t)0x8551, (q15_t)0x2479, (q15_t)0x854f, (q15_t)0x2473, (q15_t)0x854d, (q15_t)0x246d, (q15_t)0x854b, - (q15_t)0x2467, (q15_t)0x854a, (q15_t)0x2461, (q15_t)0x8548, (q15_t)0x245b, (q15_t)0x8546, (q15_t)0x2455, (q15_t)0x8544, - (q15_t)0x244f, (q15_t)0x8543, (q15_t)0x2449, (q15_t)0x8541, (q15_t)0x2443, (q15_t)0x853f, (q15_t)0x243d, (q15_t)0x853d, - (q15_t)0x2437, (q15_t)0x853b, (q15_t)0x2431, (q15_t)0x853a, (q15_t)0x242b, (q15_t)0x8538, (q15_t)0x2425, (q15_t)0x8536, - (q15_t)0x241f, (q15_t)0x8534, (q15_t)0x2419, (q15_t)0x8533, (q15_t)0x2413, (q15_t)0x8531, (q15_t)0x240d, (q15_t)0x852f, - (q15_t)0x2407, (q15_t)0x852d, (q15_t)0x2401, (q15_t)0x852b, (q15_t)0x23fa, (q15_t)0x852a, (q15_t)0x23f4, (q15_t)0x8528, - (q15_t)0x23ee, (q15_t)0x8526, (q15_t)0x23e8, (q15_t)0x8524, (q15_t)0x23e2, (q15_t)0x8523, (q15_t)0x23dc, (q15_t)0x8521, - (q15_t)0x23d6, (q15_t)0x851f, (q15_t)0x23d0, (q15_t)0x851d, (q15_t)0x23ca, (q15_t)0x851c, (q15_t)0x23c4, (q15_t)0x851a, - (q15_t)0x23be, (q15_t)0x8518, (q15_t)0x23b8, (q15_t)0x8516, (q15_t)0x23b2, (q15_t)0x8515, (q15_t)0x23ac, (q15_t)0x8513, - (q15_t)0x23a6, (q15_t)0x8511, (q15_t)0x23a0, (q15_t)0x850f, (q15_t)0x239a, (q15_t)0x850e, (q15_t)0x2394, (q15_t)0x850c, - (q15_t)0x238e, (q15_t)0x850a, (q15_t)0x2388, (q15_t)0x8508, (q15_t)0x2382, (q15_t)0x8507, (q15_t)0x237c, (q15_t)0x8505, - (q15_t)0x2376, (q15_t)0x8503, (q15_t)0x2370, (q15_t)0x8501, (q15_t)0x236a, (q15_t)0x8500, (q15_t)0x2364, (q15_t)0x84fe, - (q15_t)0x235e, (q15_t)0x84fc, (q15_t)0x2358, (q15_t)0x84fa, (q15_t)0x2352, (q15_t)0x84f9, (q15_t)0x234b, (q15_t)0x84f7, - (q15_t)0x2345, (q15_t)0x84f5, (q15_t)0x233f, (q15_t)0x84f4, (q15_t)0x2339, (q15_t)0x84f2, (q15_t)0x2333, (q15_t)0x84f0, - (q15_t)0x232d, (q15_t)0x84ee, (q15_t)0x2327, (q15_t)0x84ed, (q15_t)0x2321, (q15_t)0x84eb, (q15_t)0x231b, (q15_t)0x84e9, - (q15_t)0x2315, (q15_t)0x84e7, (q15_t)0x230f, (q15_t)0x84e6, (q15_t)0x2309, (q15_t)0x84e4, (q15_t)0x2303, (q15_t)0x84e2, - (q15_t)0x22fd, (q15_t)0x84e1, (q15_t)0x22f7, (q15_t)0x84df, (q15_t)0x22f1, (q15_t)0x84dd, (q15_t)0x22eb, (q15_t)0x84db, - (q15_t)0x22e5, (q15_t)0x84da, (q15_t)0x22df, (q15_t)0x84d8, (q15_t)0x22d9, (q15_t)0x84d6, (q15_t)0x22d3, (q15_t)0x84d5, - (q15_t)0x22cd, (q15_t)0x84d3, (q15_t)0x22c7, (q15_t)0x84d1, (q15_t)0x22c0, (q15_t)0x84cf, (q15_t)0x22ba, (q15_t)0x84ce, - (q15_t)0x22b4, (q15_t)0x84cc, (q15_t)0x22ae, (q15_t)0x84ca, (q15_t)0x22a8, (q15_t)0x84c9, (q15_t)0x22a2, (q15_t)0x84c7, - (q15_t)0x229c, (q15_t)0x84c5, (q15_t)0x2296, (q15_t)0x84c4, (q15_t)0x2290, (q15_t)0x84c2, (q15_t)0x228a, (q15_t)0x84c0, - (q15_t)0x2284, (q15_t)0x84be, (q15_t)0x227e, (q15_t)0x84bd, (q15_t)0x2278, (q15_t)0x84bb, (q15_t)0x2272, (q15_t)0x84b9, - (q15_t)0x226c, (q15_t)0x84b8, (q15_t)0x2266, (q15_t)0x84b6, (q15_t)0x2260, (q15_t)0x84b4, (q15_t)0x225a, (q15_t)0x84b3, - (q15_t)0x2254, (q15_t)0x84b1, (q15_t)0x224e, (q15_t)0x84af, (q15_t)0x2247, (q15_t)0x84ae, (q15_t)0x2241, (q15_t)0x84ac, - (q15_t)0x223b, (q15_t)0x84aa, (q15_t)0x2235, (q15_t)0x84a9, (q15_t)0x222f, (q15_t)0x84a7, (q15_t)0x2229, (q15_t)0x84a5, - (q15_t)0x2223, (q15_t)0x84a3, (q15_t)0x221d, (q15_t)0x84a2, (q15_t)0x2217, (q15_t)0x84a0, (q15_t)0x2211, (q15_t)0x849e, - (q15_t)0x220b, (q15_t)0x849d, (q15_t)0x2205, (q15_t)0x849b, (q15_t)0x21ff, (q15_t)0x8499, (q15_t)0x21f9, (q15_t)0x8498, - (q15_t)0x21f3, (q15_t)0x8496, (q15_t)0x21ed, (q15_t)0x8494, (q15_t)0x21e7, (q15_t)0x8493, (q15_t)0x21e1, (q15_t)0x8491, - (q15_t)0x21da, (q15_t)0x848f, (q15_t)0x21d4, (q15_t)0x848e, (q15_t)0x21ce, (q15_t)0x848c, (q15_t)0x21c8, (q15_t)0x848a, - (q15_t)0x21c2, (q15_t)0x8489, (q15_t)0x21bc, (q15_t)0x8487, (q15_t)0x21b6, (q15_t)0x8486, (q15_t)0x21b0, (q15_t)0x8484, - (q15_t)0x21aa, (q15_t)0x8482, (q15_t)0x21a4, (q15_t)0x8481, (q15_t)0x219e, (q15_t)0x847f, (q15_t)0x2198, (q15_t)0x847d, - (q15_t)0x2192, (q15_t)0x847c, (q15_t)0x218c, (q15_t)0x847a, (q15_t)0x2186, (q15_t)0x8478, (q15_t)0x2180, (q15_t)0x8477, - (q15_t)0x2179, (q15_t)0x8475, (q15_t)0x2173, (q15_t)0x8473, (q15_t)0x216d, (q15_t)0x8472, (q15_t)0x2167, (q15_t)0x8470, - (q15_t)0x2161, (q15_t)0x846e, (q15_t)0x215b, (q15_t)0x846d, (q15_t)0x2155, (q15_t)0x846b, (q15_t)0x214f, (q15_t)0x846a, - (q15_t)0x2149, (q15_t)0x8468, (q15_t)0x2143, (q15_t)0x8466, (q15_t)0x213d, (q15_t)0x8465, (q15_t)0x2137, (q15_t)0x8463, - (q15_t)0x2131, (q15_t)0x8461, (q15_t)0x212b, (q15_t)0x8460, (q15_t)0x2125, (q15_t)0x845e, (q15_t)0x211e, (q15_t)0x845d, - (q15_t)0x2118, (q15_t)0x845b, (q15_t)0x2112, (q15_t)0x8459, (q15_t)0x210c, (q15_t)0x8458, (q15_t)0x2106, (q15_t)0x8456, - (q15_t)0x2100, (q15_t)0x8454, (q15_t)0x20fa, (q15_t)0x8453, (q15_t)0x20f4, (q15_t)0x8451, (q15_t)0x20ee, (q15_t)0x8450, - (q15_t)0x20e8, (q15_t)0x844e, (q15_t)0x20e2, (q15_t)0x844c, (q15_t)0x20dc, (q15_t)0x844b, (q15_t)0x20d6, (q15_t)0x8449, - (q15_t)0x20d0, (q15_t)0x8447, (q15_t)0x20c9, (q15_t)0x8446, (q15_t)0x20c3, (q15_t)0x8444, (q15_t)0x20bd, (q15_t)0x8443, - (q15_t)0x20b7, (q15_t)0x8441, (q15_t)0x20b1, (q15_t)0x843f, (q15_t)0x20ab, (q15_t)0x843e, (q15_t)0x20a5, (q15_t)0x843c, - (q15_t)0x209f, (q15_t)0x843b, (q15_t)0x2099, (q15_t)0x8439, (q15_t)0x2093, (q15_t)0x8437, (q15_t)0x208d, (q15_t)0x8436, - (q15_t)0x2087, (q15_t)0x8434, (q15_t)0x2081, (q15_t)0x8433, (q15_t)0x207a, (q15_t)0x8431, (q15_t)0x2074, (q15_t)0x842f, - (q15_t)0x206e, (q15_t)0x842e, (q15_t)0x2068, (q15_t)0x842c, (q15_t)0x2062, (q15_t)0x842b, (q15_t)0x205c, (q15_t)0x8429, - (q15_t)0x2056, (q15_t)0x8427, (q15_t)0x2050, (q15_t)0x8426, (q15_t)0x204a, (q15_t)0x8424, (q15_t)0x2044, (q15_t)0x8423, - (q15_t)0x203e, (q15_t)0x8421, (q15_t)0x2038, (q15_t)0x8420, (q15_t)0x2032, (q15_t)0x841e, (q15_t)0x202b, (q15_t)0x841c, - (q15_t)0x2025, (q15_t)0x841b, (q15_t)0x201f, (q15_t)0x8419, (q15_t)0x2019, (q15_t)0x8418, (q15_t)0x2013, (q15_t)0x8416, - (q15_t)0x200d, (q15_t)0x8415, (q15_t)0x2007, (q15_t)0x8413, (q15_t)0x2001, (q15_t)0x8411, (q15_t)0x1ffb, (q15_t)0x8410, - (q15_t)0x1ff5, (q15_t)0x840e, (q15_t)0x1fef, (q15_t)0x840d, (q15_t)0x1fe9, (q15_t)0x840b, (q15_t)0x1fe2, (q15_t)0x840a, - (q15_t)0x1fdc, (q15_t)0x8408, (q15_t)0x1fd6, (q15_t)0x8406, (q15_t)0x1fd0, (q15_t)0x8405, (q15_t)0x1fca, (q15_t)0x8403, - (q15_t)0x1fc4, (q15_t)0x8402, (q15_t)0x1fbe, (q15_t)0x8400, (q15_t)0x1fb8, (q15_t)0x83ff, (q15_t)0x1fb2, (q15_t)0x83fd, - (q15_t)0x1fac, (q15_t)0x83fb, (q15_t)0x1fa6, (q15_t)0x83fa, (q15_t)0x1f9f, (q15_t)0x83f8, (q15_t)0x1f99, (q15_t)0x83f7, - (q15_t)0x1f93, (q15_t)0x83f5, (q15_t)0x1f8d, (q15_t)0x83f4, (q15_t)0x1f87, (q15_t)0x83f2, (q15_t)0x1f81, (q15_t)0x83f1, - (q15_t)0x1f7b, (q15_t)0x83ef, (q15_t)0x1f75, (q15_t)0x83ee, (q15_t)0x1f6f, (q15_t)0x83ec, (q15_t)0x1f69, (q15_t)0x83ea, - (q15_t)0x1f63, (q15_t)0x83e9, (q15_t)0x1f5d, (q15_t)0x83e7, (q15_t)0x1f56, (q15_t)0x83e6, (q15_t)0x1f50, (q15_t)0x83e4, - (q15_t)0x1f4a, (q15_t)0x83e3, (q15_t)0x1f44, (q15_t)0x83e1, (q15_t)0x1f3e, (q15_t)0x83e0, (q15_t)0x1f38, (q15_t)0x83de, - (q15_t)0x1f32, (q15_t)0x83dd, (q15_t)0x1f2c, (q15_t)0x83db, (q15_t)0x1f26, (q15_t)0x83da, (q15_t)0x1f20, (q15_t)0x83d8, - (q15_t)0x1f19, (q15_t)0x83d7, (q15_t)0x1f13, (q15_t)0x83d5, (q15_t)0x1f0d, (q15_t)0x83d3, (q15_t)0x1f07, (q15_t)0x83d2, - (q15_t)0x1f01, (q15_t)0x83d0, (q15_t)0x1efb, (q15_t)0x83cf, (q15_t)0x1ef5, (q15_t)0x83cd, (q15_t)0x1eef, (q15_t)0x83cc, - (q15_t)0x1ee9, (q15_t)0x83ca, (q15_t)0x1ee3, (q15_t)0x83c9, (q15_t)0x1edd, (q15_t)0x83c7, (q15_t)0x1ed6, (q15_t)0x83c6, - (q15_t)0x1ed0, (q15_t)0x83c4, (q15_t)0x1eca, (q15_t)0x83c3, (q15_t)0x1ec4, (q15_t)0x83c1, (q15_t)0x1ebe, (q15_t)0x83c0, - (q15_t)0x1eb8, (q15_t)0x83be, (q15_t)0x1eb2, (q15_t)0x83bd, (q15_t)0x1eac, (q15_t)0x83bb, (q15_t)0x1ea6, (q15_t)0x83ba, - (q15_t)0x1ea0, (q15_t)0x83b8, (q15_t)0x1e99, (q15_t)0x83b7, (q15_t)0x1e93, (q15_t)0x83b5, (q15_t)0x1e8d, (q15_t)0x83b4, - (q15_t)0x1e87, (q15_t)0x83b2, (q15_t)0x1e81, (q15_t)0x83b1, (q15_t)0x1e7b, (q15_t)0x83af, (q15_t)0x1e75, (q15_t)0x83ae, - (q15_t)0x1e6f, (q15_t)0x83ac, (q15_t)0x1e69, (q15_t)0x83ab, (q15_t)0x1e62, (q15_t)0x83a9, (q15_t)0x1e5c, (q15_t)0x83a8, - (q15_t)0x1e56, (q15_t)0x83a6, (q15_t)0x1e50, (q15_t)0x83a5, (q15_t)0x1e4a, (q15_t)0x83a3, (q15_t)0x1e44, (q15_t)0x83a2, - (q15_t)0x1e3e, (q15_t)0x83a0, (q15_t)0x1e38, (q15_t)0x839f, (q15_t)0x1e32, (q15_t)0x839d, (q15_t)0x1e2c, (q15_t)0x839c, - (q15_t)0x1e25, (q15_t)0x839a, (q15_t)0x1e1f, (q15_t)0x8399, (q15_t)0x1e19, (q15_t)0x8397, (q15_t)0x1e13, (q15_t)0x8396, - (q15_t)0x1e0d, (q15_t)0x8394, (q15_t)0x1e07, (q15_t)0x8393, (q15_t)0x1e01, (q15_t)0x8392, (q15_t)0x1dfb, (q15_t)0x8390, - (q15_t)0x1df5, (q15_t)0x838f, (q15_t)0x1dee, (q15_t)0x838d, (q15_t)0x1de8, (q15_t)0x838c, (q15_t)0x1de2, (q15_t)0x838a, - (q15_t)0x1ddc, (q15_t)0x8389, (q15_t)0x1dd6, (q15_t)0x8387, (q15_t)0x1dd0, (q15_t)0x8386, (q15_t)0x1dca, (q15_t)0x8384, - (q15_t)0x1dc4, (q15_t)0x8383, (q15_t)0x1dbe, (q15_t)0x8381, (q15_t)0x1db7, (q15_t)0x8380, (q15_t)0x1db1, (q15_t)0x837e, - (q15_t)0x1dab, (q15_t)0x837d, (q15_t)0x1da5, (q15_t)0x837c, (q15_t)0x1d9f, (q15_t)0x837a, (q15_t)0x1d99, (q15_t)0x8379, - (q15_t)0x1d93, (q15_t)0x8377, (q15_t)0x1d8d, (q15_t)0x8376, (q15_t)0x1d87, (q15_t)0x8374, (q15_t)0x1d80, (q15_t)0x8373, - (q15_t)0x1d7a, (q15_t)0x8371, (q15_t)0x1d74, (q15_t)0x8370, (q15_t)0x1d6e, (q15_t)0x836f, (q15_t)0x1d68, (q15_t)0x836d, - (q15_t)0x1d62, (q15_t)0x836c, (q15_t)0x1d5c, (q15_t)0x836a, (q15_t)0x1d56, (q15_t)0x8369, (q15_t)0x1d50, (q15_t)0x8367, - (q15_t)0x1d49, (q15_t)0x8366, (q15_t)0x1d43, (q15_t)0x8364, (q15_t)0x1d3d, (q15_t)0x8363, (q15_t)0x1d37, (q15_t)0x8362, - (q15_t)0x1d31, (q15_t)0x8360, (q15_t)0x1d2b, (q15_t)0x835f, (q15_t)0x1d25, (q15_t)0x835d, (q15_t)0x1d1f, (q15_t)0x835c, - (q15_t)0x1d18, (q15_t)0x835a, (q15_t)0x1d12, (q15_t)0x8359, (q15_t)0x1d0c, (q15_t)0x8358, (q15_t)0x1d06, (q15_t)0x8356, - (q15_t)0x1d00, (q15_t)0x8355, (q15_t)0x1cfa, (q15_t)0x8353, (q15_t)0x1cf4, (q15_t)0x8352, (q15_t)0x1cee, (q15_t)0x8350, - (q15_t)0x1ce8, (q15_t)0x834f, (q15_t)0x1ce1, (q15_t)0x834e, (q15_t)0x1cdb, (q15_t)0x834c, (q15_t)0x1cd5, (q15_t)0x834b, - (q15_t)0x1ccf, (q15_t)0x8349, (q15_t)0x1cc9, (q15_t)0x8348, (q15_t)0x1cc3, (q15_t)0x8347, (q15_t)0x1cbd, (q15_t)0x8345, - (q15_t)0x1cb7, (q15_t)0x8344, (q15_t)0x1cb0, (q15_t)0x8342, (q15_t)0x1caa, (q15_t)0x8341, (q15_t)0x1ca4, (q15_t)0x833f, - (q15_t)0x1c9e, (q15_t)0x833e, (q15_t)0x1c98, (q15_t)0x833d, (q15_t)0x1c92, (q15_t)0x833b, (q15_t)0x1c8c, (q15_t)0x833a, - (q15_t)0x1c86, (q15_t)0x8338, (q15_t)0x1c7f, (q15_t)0x8337, (q15_t)0x1c79, (q15_t)0x8336, (q15_t)0x1c73, (q15_t)0x8334, - (q15_t)0x1c6d, (q15_t)0x8333, (q15_t)0x1c67, (q15_t)0x8331, (q15_t)0x1c61, (q15_t)0x8330, (q15_t)0x1c5b, (q15_t)0x832f, - (q15_t)0x1c55, (q15_t)0x832d, (q15_t)0x1c4e, (q15_t)0x832c, (q15_t)0x1c48, (q15_t)0x832b, (q15_t)0x1c42, (q15_t)0x8329, - (q15_t)0x1c3c, (q15_t)0x8328, (q15_t)0x1c36, (q15_t)0x8326, (q15_t)0x1c30, (q15_t)0x8325, (q15_t)0x1c2a, (q15_t)0x8324, - (q15_t)0x1c24, (q15_t)0x8322, (q15_t)0x1c1d, (q15_t)0x8321, (q15_t)0x1c17, (q15_t)0x831f, (q15_t)0x1c11, (q15_t)0x831e, - (q15_t)0x1c0b, (q15_t)0x831d, (q15_t)0x1c05, (q15_t)0x831b, (q15_t)0x1bff, (q15_t)0x831a, (q15_t)0x1bf9, (q15_t)0x8319, - (q15_t)0x1bf2, (q15_t)0x8317, (q15_t)0x1bec, (q15_t)0x8316, (q15_t)0x1be6, (q15_t)0x8314, (q15_t)0x1be0, (q15_t)0x8313, - (q15_t)0x1bda, (q15_t)0x8312, (q15_t)0x1bd4, (q15_t)0x8310, (q15_t)0x1bce, (q15_t)0x830f, (q15_t)0x1bc8, (q15_t)0x830e, - (q15_t)0x1bc1, (q15_t)0x830c, (q15_t)0x1bbb, (q15_t)0x830b, (q15_t)0x1bb5, (q15_t)0x830a, (q15_t)0x1baf, (q15_t)0x8308, - (q15_t)0x1ba9, (q15_t)0x8307, (q15_t)0x1ba3, (q15_t)0x8305, (q15_t)0x1b9d, (q15_t)0x8304, (q15_t)0x1b96, (q15_t)0x8303, - (q15_t)0x1b90, (q15_t)0x8301, (q15_t)0x1b8a, (q15_t)0x8300, (q15_t)0x1b84, (q15_t)0x82ff, (q15_t)0x1b7e, (q15_t)0x82fd, - (q15_t)0x1b78, (q15_t)0x82fc, (q15_t)0x1b72, (q15_t)0x82fb, (q15_t)0x1b6c, (q15_t)0x82f9, (q15_t)0x1b65, (q15_t)0x82f8, - (q15_t)0x1b5f, (q15_t)0x82f7, (q15_t)0x1b59, (q15_t)0x82f5, (q15_t)0x1b53, (q15_t)0x82f4, (q15_t)0x1b4d, (q15_t)0x82f3, - (q15_t)0x1b47, (q15_t)0x82f1, (q15_t)0x1b41, (q15_t)0x82f0, (q15_t)0x1b3a, (q15_t)0x82ef, (q15_t)0x1b34, (q15_t)0x82ed, - (q15_t)0x1b2e, (q15_t)0x82ec, (q15_t)0x1b28, (q15_t)0x82eb, (q15_t)0x1b22, (q15_t)0x82e9, (q15_t)0x1b1c, (q15_t)0x82e8, - (q15_t)0x1b16, (q15_t)0x82e7, (q15_t)0x1b0f, (q15_t)0x82e5, (q15_t)0x1b09, (q15_t)0x82e4, (q15_t)0x1b03, (q15_t)0x82e3, - (q15_t)0x1afd, (q15_t)0x82e1, (q15_t)0x1af7, (q15_t)0x82e0, (q15_t)0x1af1, (q15_t)0x82df, (q15_t)0x1aeb, (q15_t)0x82dd, - (q15_t)0x1ae4, (q15_t)0x82dc, (q15_t)0x1ade, (q15_t)0x82db, (q15_t)0x1ad8, (q15_t)0x82d9, (q15_t)0x1ad2, (q15_t)0x82d8, - (q15_t)0x1acc, (q15_t)0x82d7, (q15_t)0x1ac6, (q15_t)0x82d5, (q15_t)0x1ac0, (q15_t)0x82d4, (q15_t)0x1ab9, (q15_t)0x82d3, - (q15_t)0x1ab3, (q15_t)0x82d1, (q15_t)0x1aad, (q15_t)0x82d0, (q15_t)0x1aa7, (q15_t)0x82cf, (q15_t)0x1aa1, (q15_t)0x82ce, - (q15_t)0x1a9b, (q15_t)0x82cc, (q15_t)0x1a95, (q15_t)0x82cb, (q15_t)0x1a8e, (q15_t)0x82ca, (q15_t)0x1a88, (q15_t)0x82c8, - (q15_t)0x1a82, (q15_t)0x82c7, (q15_t)0x1a7c, (q15_t)0x82c6, (q15_t)0x1a76, (q15_t)0x82c4, (q15_t)0x1a70, (q15_t)0x82c3, - (q15_t)0x1a6a, (q15_t)0x82c2, (q15_t)0x1a63, (q15_t)0x82c1, (q15_t)0x1a5d, (q15_t)0x82bf, (q15_t)0x1a57, (q15_t)0x82be, - (q15_t)0x1a51, (q15_t)0x82bd, (q15_t)0x1a4b, (q15_t)0x82bb, (q15_t)0x1a45, (q15_t)0x82ba, (q15_t)0x1a3e, (q15_t)0x82b9, - (q15_t)0x1a38, (q15_t)0x82b7, (q15_t)0x1a32, (q15_t)0x82b6, (q15_t)0x1a2c, (q15_t)0x82b5, (q15_t)0x1a26, (q15_t)0x82b4, - (q15_t)0x1a20, (q15_t)0x82b2, (q15_t)0x1a1a, (q15_t)0x82b1, (q15_t)0x1a13, (q15_t)0x82b0, (q15_t)0x1a0d, (q15_t)0x82ae, - (q15_t)0x1a07, (q15_t)0x82ad, (q15_t)0x1a01, (q15_t)0x82ac, (q15_t)0x19fb, (q15_t)0x82ab, (q15_t)0x19f5, (q15_t)0x82a9, - (q15_t)0x19ef, (q15_t)0x82a8, (q15_t)0x19e8, (q15_t)0x82a7, (q15_t)0x19e2, (q15_t)0x82a6, (q15_t)0x19dc, (q15_t)0x82a4, - (q15_t)0x19d6, (q15_t)0x82a3, (q15_t)0x19d0, (q15_t)0x82a2, (q15_t)0x19ca, (q15_t)0x82a0, (q15_t)0x19c3, (q15_t)0x829f, - (q15_t)0x19bd, (q15_t)0x829e, (q15_t)0x19b7, (q15_t)0x829d, (q15_t)0x19b1, (q15_t)0x829b, (q15_t)0x19ab, (q15_t)0x829a, - (q15_t)0x19a5, (q15_t)0x8299, (q15_t)0x199f, (q15_t)0x8298, (q15_t)0x1998, (q15_t)0x8296, (q15_t)0x1992, (q15_t)0x8295, - (q15_t)0x198c, (q15_t)0x8294, (q15_t)0x1986, (q15_t)0x8293, (q15_t)0x1980, (q15_t)0x8291, (q15_t)0x197a, (q15_t)0x8290, - (q15_t)0x1973, (q15_t)0x828f, (q15_t)0x196d, (q15_t)0x828e, (q15_t)0x1967, (q15_t)0x828c, (q15_t)0x1961, (q15_t)0x828b, - (q15_t)0x195b, (q15_t)0x828a, (q15_t)0x1955, (q15_t)0x8289, (q15_t)0x194e, (q15_t)0x8287, (q15_t)0x1948, (q15_t)0x8286, - (q15_t)0x1942, (q15_t)0x8285, (q15_t)0x193c, (q15_t)0x8284, (q15_t)0x1936, (q15_t)0x8282, (q15_t)0x1930, (q15_t)0x8281, - (q15_t)0x192a, (q15_t)0x8280, (q15_t)0x1923, (q15_t)0x827f, (q15_t)0x191d, (q15_t)0x827e, (q15_t)0x1917, (q15_t)0x827c, - (q15_t)0x1911, (q15_t)0x827b, (q15_t)0x190b, (q15_t)0x827a, (q15_t)0x1905, (q15_t)0x8279, (q15_t)0x18fe, (q15_t)0x8277, - (q15_t)0x18f8, (q15_t)0x8276, (q15_t)0x18f2, (q15_t)0x8275, (q15_t)0x18ec, (q15_t)0x8274, (q15_t)0x18e6, (q15_t)0x8272, - (q15_t)0x18e0, (q15_t)0x8271, (q15_t)0x18d9, (q15_t)0x8270, (q15_t)0x18d3, (q15_t)0x826f, (q15_t)0x18cd, (q15_t)0x826e, - (q15_t)0x18c7, (q15_t)0x826c, (q15_t)0x18c1, (q15_t)0x826b, (q15_t)0x18bb, (q15_t)0x826a, (q15_t)0x18b4, (q15_t)0x8269, - (q15_t)0x18ae, (q15_t)0x8268, (q15_t)0x18a8, (q15_t)0x8266, (q15_t)0x18a2, (q15_t)0x8265, (q15_t)0x189c, (q15_t)0x8264, - (q15_t)0x1896, (q15_t)0x8263, (q15_t)0x188f, (q15_t)0x8261, (q15_t)0x1889, (q15_t)0x8260, (q15_t)0x1883, (q15_t)0x825f, - (q15_t)0x187d, (q15_t)0x825e, (q15_t)0x1877, (q15_t)0x825d, (q15_t)0x1871, (q15_t)0x825b, (q15_t)0x186a, (q15_t)0x825a, - (q15_t)0x1864, (q15_t)0x8259, (q15_t)0x185e, (q15_t)0x8258, (q15_t)0x1858, (q15_t)0x8257, (q15_t)0x1852, (q15_t)0x8255, - (q15_t)0x184c, (q15_t)0x8254, (q15_t)0x1845, (q15_t)0x8253, (q15_t)0x183f, (q15_t)0x8252, (q15_t)0x1839, (q15_t)0x8251, - (q15_t)0x1833, (q15_t)0x8250, (q15_t)0x182d, (q15_t)0x824e, (q15_t)0x1827, (q15_t)0x824d, (q15_t)0x1820, (q15_t)0x824c, - (q15_t)0x181a, (q15_t)0x824b, (q15_t)0x1814, (q15_t)0x824a, (q15_t)0x180e, (q15_t)0x8248, (q15_t)0x1808, (q15_t)0x8247, - (q15_t)0x1802, (q15_t)0x8246, (q15_t)0x17fb, (q15_t)0x8245, (q15_t)0x17f5, (q15_t)0x8244, (q15_t)0x17ef, (q15_t)0x8243, - (q15_t)0x17e9, (q15_t)0x8241, (q15_t)0x17e3, (q15_t)0x8240, (q15_t)0x17dd, (q15_t)0x823f, (q15_t)0x17d6, (q15_t)0x823e, - (q15_t)0x17d0, (q15_t)0x823d, (q15_t)0x17ca, (q15_t)0x823b, (q15_t)0x17c4, (q15_t)0x823a, (q15_t)0x17be, (q15_t)0x8239, - (q15_t)0x17b7, (q15_t)0x8238, (q15_t)0x17b1, (q15_t)0x8237, (q15_t)0x17ab, (q15_t)0x8236, (q15_t)0x17a5, (q15_t)0x8234, - (q15_t)0x179f, (q15_t)0x8233, (q15_t)0x1799, (q15_t)0x8232, (q15_t)0x1792, (q15_t)0x8231, (q15_t)0x178c, (q15_t)0x8230, - (q15_t)0x1786, (q15_t)0x822f, (q15_t)0x1780, (q15_t)0x822e, (q15_t)0x177a, (q15_t)0x822c, (q15_t)0x1774, (q15_t)0x822b, - (q15_t)0x176d, (q15_t)0x822a, (q15_t)0x1767, (q15_t)0x8229, (q15_t)0x1761, (q15_t)0x8228, (q15_t)0x175b, (q15_t)0x8227, - (q15_t)0x1755, (q15_t)0x8226, (q15_t)0x174e, (q15_t)0x8224, (q15_t)0x1748, (q15_t)0x8223, (q15_t)0x1742, (q15_t)0x8222, - (q15_t)0x173c, (q15_t)0x8221, (q15_t)0x1736, (q15_t)0x8220, (q15_t)0x1730, (q15_t)0x821f, (q15_t)0x1729, (q15_t)0x821e, - (q15_t)0x1723, (q15_t)0x821c, (q15_t)0x171d, (q15_t)0x821b, (q15_t)0x1717, (q15_t)0x821a, (q15_t)0x1711, (q15_t)0x8219, - (q15_t)0x170a, (q15_t)0x8218, (q15_t)0x1704, (q15_t)0x8217, (q15_t)0x16fe, (q15_t)0x8216, (q15_t)0x16f8, (q15_t)0x8214, - (q15_t)0x16f2, (q15_t)0x8213, (q15_t)0x16ec, (q15_t)0x8212, (q15_t)0x16e5, (q15_t)0x8211, (q15_t)0x16df, (q15_t)0x8210, - (q15_t)0x16d9, (q15_t)0x820f, (q15_t)0x16d3, (q15_t)0x820e, (q15_t)0x16cd, (q15_t)0x820d, (q15_t)0x16c6, (q15_t)0x820b, - (q15_t)0x16c0, (q15_t)0x820a, (q15_t)0x16ba, (q15_t)0x8209, (q15_t)0x16b4, (q15_t)0x8208, (q15_t)0x16ae, (q15_t)0x8207, - (q15_t)0x16a8, (q15_t)0x8206, (q15_t)0x16a1, (q15_t)0x8205, (q15_t)0x169b, (q15_t)0x8204, (q15_t)0x1695, (q15_t)0x8203, - (q15_t)0x168f, (q15_t)0x8201, (q15_t)0x1689, (q15_t)0x8200, (q15_t)0x1682, (q15_t)0x81ff, (q15_t)0x167c, (q15_t)0x81fe, - (q15_t)0x1676, (q15_t)0x81fd, (q15_t)0x1670, (q15_t)0x81fc, (q15_t)0x166a, (q15_t)0x81fb, (q15_t)0x1664, (q15_t)0x81fa, - (q15_t)0x165d, (q15_t)0x81f9, (q15_t)0x1657, (q15_t)0x81f8, (q15_t)0x1651, (q15_t)0x81f6, (q15_t)0x164b, (q15_t)0x81f5, - (q15_t)0x1645, (q15_t)0x81f4, (q15_t)0x163e, (q15_t)0x81f3, (q15_t)0x1638, (q15_t)0x81f2, (q15_t)0x1632, (q15_t)0x81f1, - (q15_t)0x162c, (q15_t)0x81f0, (q15_t)0x1626, (q15_t)0x81ef, (q15_t)0x161f, (q15_t)0x81ee, (q15_t)0x1619, (q15_t)0x81ed, - (q15_t)0x1613, (q15_t)0x81ec, (q15_t)0x160d, (q15_t)0x81ea, (q15_t)0x1607, (q15_t)0x81e9, (q15_t)0x1601, (q15_t)0x81e8, - (q15_t)0x15fa, (q15_t)0x81e7, (q15_t)0x15f4, (q15_t)0x81e6, (q15_t)0x15ee, (q15_t)0x81e5, (q15_t)0x15e8, (q15_t)0x81e4, - (q15_t)0x15e2, (q15_t)0x81e3, (q15_t)0x15db, (q15_t)0x81e2, (q15_t)0x15d5, (q15_t)0x81e1, (q15_t)0x15cf, (q15_t)0x81e0, - (q15_t)0x15c9, (q15_t)0x81df, (q15_t)0x15c3, (q15_t)0x81de, (q15_t)0x15bc, (q15_t)0x81dc, (q15_t)0x15b6, (q15_t)0x81db, - (q15_t)0x15b0, (q15_t)0x81da, (q15_t)0x15aa, (q15_t)0x81d9, (q15_t)0x15a4, (q15_t)0x81d8, (q15_t)0x159d, (q15_t)0x81d7, - (q15_t)0x1597, (q15_t)0x81d6, (q15_t)0x1591, (q15_t)0x81d5, (q15_t)0x158b, (q15_t)0x81d4, (q15_t)0x1585, (q15_t)0x81d3, - (q15_t)0x157f, (q15_t)0x81d2, (q15_t)0x1578, (q15_t)0x81d1, (q15_t)0x1572, (q15_t)0x81d0, (q15_t)0x156c, (q15_t)0x81cf, - (q15_t)0x1566, (q15_t)0x81ce, (q15_t)0x1560, (q15_t)0x81cd, (q15_t)0x1559, (q15_t)0x81cc, (q15_t)0x1553, (q15_t)0x81cb, - (q15_t)0x154d, (q15_t)0x81c9, (q15_t)0x1547, (q15_t)0x81c8, (q15_t)0x1541, (q15_t)0x81c7, (q15_t)0x153a, (q15_t)0x81c6, - (q15_t)0x1534, (q15_t)0x81c5, (q15_t)0x152e, (q15_t)0x81c4, (q15_t)0x1528, (q15_t)0x81c3, (q15_t)0x1522, (q15_t)0x81c2, - (q15_t)0x151b, (q15_t)0x81c1, (q15_t)0x1515, (q15_t)0x81c0, (q15_t)0x150f, (q15_t)0x81bf, (q15_t)0x1509, (q15_t)0x81be, - (q15_t)0x1503, (q15_t)0x81bd, (q15_t)0x14fc, (q15_t)0x81bc, (q15_t)0x14f6, (q15_t)0x81bb, (q15_t)0x14f0, (q15_t)0x81ba, - (q15_t)0x14ea, (q15_t)0x81b9, (q15_t)0x14e4, (q15_t)0x81b8, (q15_t)0x14dd, (q15_t)0x81b7, (q15_t)0x14d7, (q15_t)0x81b6, - (q15_t)0x14d1, (q15_t)0x81b5, (q15_t)0x14cb, (q15_t)0x81b4, (q15_t)0x14c5, (q15_t)0x81b3, (q15_t)0x14be, (q15_t)0x81b2, - (q15_t)0x14b8, (q15_t)0x81b1, (q15_t)0x14b2, (q15_t)0x81b0, (q15_t)0x14ac, (q15_t)0x81af, (q15_t)0x14a6, (q15_t)0x81ae, - (q15_t)0x149f, (q15_t)0x81ad, (q15_t)0x1499, (q15_t)0x81ac, (q15_t)0x1493, (q15_t)0x81ab, (q15_t)0x148d, (q15_t)0x81aa, - (q15_t)0x1487, (q15_t)0x81a9, (q15_t)0x1480, (q15_t)0x81a8, (q15_t)0x147a, (q15_t)0x81a7, (q15_t)0x1474, (q15_t)0x81a6, - (q15_t)0x146e, (q15_t)0x81a5, (q15_t)0x1468, (q15_t)0x81a4, (q15_t)0x1461, (q15_t)0x81a3, (q15_t)0x145b, (q15_t)0x81a2, - (q15_t)0x1455, (q15_t)0x81a1, (q15_t)0x144f, (q15_t)0x81a0, (q15_t)0x1449, (q15_t)0x819f, (q15_t)0x1442, (q15_t)0x819e, - (q15_t)0x143c, (q15_t)0x819d, (q15_t)0x1436, (q15_t)0x819c, (q15_t)0x1430, (q15_t)0x819b, (q15_t)0x142a, (q15_t)0x819a, - (q15_t)0x1423, (q15_t)0x8199, (q15_t)0x141d, (q15_t)0x8198, (q15_t)0x1417, (q15_t)0x8197, (q15_t)0x1411, (q15_t)0x8196, - (q15_t)0x140b, (q15_t)0x8195, (q15_t)0x1404, (q15_t)0x8194, (q15_t)0x13fe, (q15_t)0x8193, (q15_t)0x13f8, (q15_t)0x8192, - (q15_t)0x13f2, (q15_t)0x8191, (q15_t)0x13eb, (q15_t)0x8190, (q15_t)0x13e5, (q15_t)0x818f, (q15_t)0x13df, (q15_t)0x818e, - (q15_t)0x13d9, (q15_t)0x818d, (q15_t)0x13d3, (q15_t)0x818c, (q15_t)0x13cc, (q15_t)0x818b, (q15_t)0x13c6, (q15_t)0x818a, - (q15_t)0x13c0, (q15_t)0x8189, (q15_t)0x13ba, (q15_t)0x8188, (q15_t)0x13b4, (q15_t)0x8187, (q15_t)0x13ad, (q15_t)0x8186, - (q15_t)0x13a7, (q15_t)0x8185, (q15_t)0x13a1, (q15_t)0x8184, (q15_t)0x139b, (q15_t)0x8183, (q15_t)0x1395, (q15_t)0x8182, - (q15_t)0x138e, (q15_t)0x8181, (q15_t)0x1388, (q15_t)0x8180, (q15_t)0x1382, (q15_t)0x817f, (q15_t)0x137c, (q15_t)0x817e, - (q15_t)0x1376, (q15_t)0x817d, (q15_t)0x136f, (q15_t)0x817c, (q15_t)0x1369, (q15_t)0x817c, (q15_t)0x1363, (q15_t)0x817b, - (q15_t)0x135d, (q15_t)0x817a, (q15_t)0x1356, (q15_t)0x8179, (q15_t)0x1350, (q15_t)0x8178, (q15_t)0x134a, (q15_t)0x8177, - (q15_t)0x1344, (q15_t)0x8176, (q15_t)0x133e, (q15_t)0x8175, (q15_t)0x1337, (q15_t)0x8174, (q15_t)0x1331, (q15_t)0x8173, - (q15_t)0x132b, (q15_t)0x8172, (q15_t)0x1325, (q15_t)0x8171, (q15_t)0x131f, (q15_t)0x8170, (q15_t)0x1318, (q15_t)0x816f, - (q15_t)0x1312, (q15_t)0x816e, (q15_t)0x130c, (q15_t)0x816d, (q15_t)0x1306, (q15_t)0x816c, (q15_t)0x12ff, (q15_t)0x816c, - (q15_t)0x12f9, (q15_t)0x816b, (q15_t)0x12f3, (q15_t)0x816a, (q15_t)0x12ed, (q15_t)0x8169, (q15_t)0x12e7, (q15_t)0x8168, - (q15_t)0x12e0, (q15_t)0x8167, (q15_t)0x12da, (q15_t)0x8166, (q15_t)0x12d4, (q15_t)0x8165, (q15_t)0x12ce, (q15_t)0x8164, - (q15_t)0x12c8, (q15_t)0x8163, (q15_t)0x12c1, (q15_t)0x8162, (q15_t)0x12bb, (q15_t)0x8161, (q15_t)0x12b5, (q15_t)0x8160, - (q15_t)0x12af, (q15_t)0x815f, (q15_t)0x12a8, (q15_t)0x815f, (q15_t)0x12a2, (q15_t)0x815e, (q15_t)0x129c, (q15_t)0x815d, - (q15_t)0x1296, (q15_t)0x815c, (q15_t)0x1290, (q15_t)0x815b, (q15_t)0x1289, (q15_t)0x815a, (q15_t)0x1283, (q15_t)0x8159, - (q15_t)0x127d, (q15_t)0x8158, (q15_t)0x1277, (q15_t)0x8157, (q15_t)0x1271, (q15_t)0x8156, (q15_t)0x126a, (q15_t)0x8155, - (q15_t)0x1264, (q15_t)0x8155, (q15_t)0x125e, (q15_t)0x8154, (q15_t)0x1258, (q15_t)0x8153, (q15_t)0x1251, (q15_t)0x8152, - (q15_t)0x124b, (q15_t)0x8151, (q15_t)0x1245, (q15_t)0x8150, (q15_t)0x123f, (q15_t)0x814f, (q15_t)0x1239, (q15_t)0x814e, - (q15_t)0x1232, (q15_t)0x814d, (q15_t)0x122c, (q15_t)0x814c, (q15_t)0x1226, (q15_t)0x814c, (q15_t)0x1220, (q15_t)0x814b, - (q15_t)0x1219, (q15_t)0x814a, (q15_t)0x1213, (q15_t)0x8149, (q15_t)0x120d, (q15_t)0x8148, (q15_t)0x1207, (q15_t)0x8147, - (q15_t)0x1201, (q15_t)0x8146, (q15_t)0x11fa, (q15_t)0x8145, (q15_t)0x11f4, (q15_t)0x8145, (q15_t)0x11ee, (q15_t)0x8144, - (q15_t)0x11e8, (q15_t)0x8143, (q15_t)0x11e1, (q15_t)0x8142, (q15_t)0x11db, (q15_t)0x8141, (q15_t)0x11d5, (q15_t)0x8140, - (q15_t)0x11cf, (q15_t)0x813f, (q15_t)0x11c9, (q15_t)0x813e, (q15_t)0x11c2, (q15_t)0x813d, (q15_t)0x11bc, (q15_t)0x813d, - (q15_t)0x11b6, (q15_t)0x813c, (q15_t)0x11b0, (q15_t)0x813b, (q15_t)0x11a9, (q15_t)0x813a, (q15_t)0x11a3, (q15_t)0x8139, - (q15_t)0x119d, (q15_t)0x8138, (q15_t)0x1197, (q15_t)0x8137, (q15_t)0x1191, (q15_t)0x8137, (q15_t)0x118a, (q15_t)0x8136, - (q15_t)0x1184, (q15_t)0x8135, (q15_t)0x117e, (q15_t)0x8134, (q15_t)0x1178, (q15_t)0x8133, (q15_t)0x1171, (q15_t)0x8132, - (q15_t)0x116b, (q15_t)0x8131, (q15_t)0x1165, (q15_t)0x8131, (q15_t)0x115f, (q15_t)0x8130, (q15_t)0x1159, (q15_t)0x812f, - (q15_t)0x1152, (q15_t)0x812e, (q15_t)0x114c, (q15_t)0x812d, (q15_t)0x1146, (q15_t)0x812c, (q15_t)0x1140, (q15_t)0x812b, - (q15_t)0x1139, (q15_t)0x812b, (q15_t)0x1133, (q15_t)0x812a, (q15_t)0x112d, (q15_t)0x8129, (q15_t)0x1127, (q15_t)0x8128, - (q15_t)0x1121, (q15_t)0x8127, (q15_t)0x111a, (q15_t)0x8126, (q15_t)0x1114, (q15_t)0x8126, (q15_t)0x110e, (q15_t)0x8125, - (q15_t)0x1108, (q15_t)0x8124, (q15_t)0x1101, (q15_t)0x8123, (q15_t)0x10fb, (q15_t)0x8122, (q15_t)0x10f5, (q15_t)0x8121, - (q15_t)0x10ef, (q15_t)0x8121, (q15_t)0x10e8, (q15_t)0x8120, (q15_t)0x10e2, (q15_t)0x811f, (q15_t)0x10dc, (q15_t)0x811e, - (q15_t)0x10d6, (q15_t)0x811d, (q15_t)0x10d0, (q15_t)0x811c, (q15_t)0x10c9, (q15_t)0x811c, (q15_t)0x10c3, (q15_t)0x811b, - (q15_t)0x10bd, (q15_t)0x811a, (q15_t)0x10b7, (q15_t)0x8119, (q15_t)0x10b0, (q15_t)0x8118, (q15_t)0x10aa, (q15_t)0x8117, - (q15_t)0x10a4, (q15_t)0x8117, (q15_t)0x109e, (q15_t)0x8116, (q15_t)0x1098, (q15_t)0x8115, (q15_t)0x1091, (q15_t)0x8114, - (q15_t)0x108b, (q15_t)0x8113, (q15_t)0x1085, (q15_t)0x8113, (q15_t)0x107f, (q15_t)0x8112, (q15_t)0x1078, (q15_t)0x8111, - (q15_t)0x1072, (q15_t)0x8110, (q15_t)0x106c, (q15_t)0x810f, (q15_t)0x1066, (q15_t)0x810f, (q15_t)0x105f, (q15_t)0x810e, - (q15_t)0x1059, (q15_t)0x810d, (q15_t)0x1053, (q15_t)0x810c, (q15_t)0x104d, (q15_t)0x810b, (q15_t)0x1047, (q15_t)0x810b, - (q15_t)0x1040, (q15_t)0x810a, (q15_t)0x103a, (q15_t)0x8109, (q15_t)0x1034, (q15_t)0x8108, (q15_t)0x102e, (q15_t)0x8107, - (q15_t)0x1027, (q15_t)0x8107, (q15_t)0x1021, (q15_t)0x8106, (q15_t)0x101b, (q15_t)0x8105, (q15_t)0x1015, (q15_t)0x8104, - (q15_t)0x100e, (q15_t)0x8103, (q15_t)0x1008, (q15_t)0x8103, (q15_t)0x1002, (q15_t)0x8102, (q15_t)0xffc, (q15_t)0x8101, - (q15_t)0xff5, (q15_t)0x8100, (q15_t)0xfef, (q15_t)0x80ff, (q15_t)0xfe9, (q15_t)0x80ff, (q15_t)0xfe3, (q15_t)0x80fe, - (q15_t)0xfdd, (q15_t)0x80fd, (q15_t)0xfd6, (q15_t)0x80fc, (q15_t)0xfd0, (q15_t)0x80fc, (q15_t)0xfca, (q15_t)0x80fb, - (q15_t)0xfc4, (q15_t)0x80fa, (q15_t)0xfbd, (q15_t)0x80f9, (q15_t)0xfb7, (q15_t)0x80f8, (q15_t)0xfb1, (q15_t)0x80f8, - (q15_t)0xfab, (q15_t)0x80f7, (q15_t)0xfa4, (q15_t)0x80f6, (q15_t)0xf9e, (q15_t)0x80f5, (q15_t)0xf98, (q15_t)0x80f5, - (q15_t)0xf92, (q15_t)0x80f4, (q15_t)0xf8b, (q15_t)0x80f3, (q15_t)0xf85, (q15_t)0x80f2, (q15_t)0xf7f, (q15_t)0x80f2, - (q15_t)0xf79, (q15_t)0x80f1, (q15_t)0xf73, (q15_t)0x80f0, (q15_t)0xf6c, (q15_t)0x80ef, (q15_t)0xf66, (q15_t)0x80ef, - (q15_t)0xf60, (q15_t)0x80ee, (q15_t)0xf5a, (q15_t)0x80ed, (q15_t)0xf53, (q15_t)0x80ec, (q15_t)0xf4d, (q15_t)0x80ec, - (q15_t)0xf47, (q15_t)0x80eb, (q15_t)0xf41, (q15_t)0x80ea, (q15_t)0xf3a, (q15_t)0x80e9, (q15_t)0xf34, (q15_t)0x80e9, - (q15_t)0xf2e, (q15_t)0x80e8, (q15_t)0xf28, (q15_t)0x80e7, (q15_t)0xf21, (q15_t)0x80e6, (q15_t)0xf1b, (q15_t)0x80e6, - (q15_t)0xf15, (q15_t)0x80e5, (q15_t)0xf0f, (q15_t)0x80e4, (q15_t)0xf08, (q15_t)0x80e3, (q15_t)0xf02, (q15_t)0x80e3, - (q15_t)0xefc, (q15_t)0x80e2, (q15_t)0xef6, (q15_t)0x80e1, (q15_t)0xef0, (q15_t)0x80e0, (q15_t)0xee9, (q15_t)0x80e0, - (q15_t)0xee3, (q15_t)0x80df, (q15_t)0xedd, (q15_t)0x80de, (q15_t)0xed7, (q15_t)0x80dd, (q15_t)0xed0, (q15_t)0x80dd, - (q15_t)0xeca, (q15_t)0x80dc, (q15_t)0xec4, (q15_t)0x80db, (q15_t)0xebe, (q15_t)0x80db, (q15_t)0xeb7, (q15_t)0x80da, - (q15_t)0xeb1, (q15_t)0x80d9, (q15_t)0xeab, (q15_t)0x80d8, (q15_t)0xea5, (q15_t)0x80d8, (q15_t)0xe9e, (q15_t)0x80d7, - (q15_t)0xe98, (q15_t)0x80d6, (q15_t)0xe92, (q15_t)0x80d6, (q15_t)0xe8c, (q15_t)0x80d5, (q15_t)0xe85, (q15_t)0x80d4, - (q15_t)0xe7f, (q15_t)0x80d3, (q15_t)0xe79, (q15_t)0x80d3, (q15_t)0xe73, (q15_t)0x80d2, (q15_t)0xe6c, (q15_t)0x80d1, - (q15_t)0xe66, (q15_t)0x80d1, (q15_t)0xe60, (q15_t)0x80d0, (q15_t)0xe5a, (q15_t)0x80cf, (q15_t)0xe53, (q15_t)0x80ce, - (q15_t)0xe4d, (q15_t)0x80ce, (q15_t)0xe47, (q15_t)0x80cd, (q15_t)0xe41, (q15_t)0x80cc, (q15_t)0xe3a, (q15_t)0x80cc, - (q15_t)0xe34, (q15_t)0x80cb, (q15_t)0xe2e, (q15_t)0x80ca, (q15_t)0xe28, (q15_t)0x80ca, (q15_t)0xe22, (q15_t)0x80c9, - (q15_t)0xe1b, (q15_t)0x80c8, (q15_t)0xe15, (q15_t)0x80c7, (q15_t)0xe0f, (q15_t)0x80c7, (q15_t)0xe09, (q15_t)0x80c6, - (q15_t)0xe02, (q15_t)0x80c5, (q15_t)0xdfc, (q15_t)0x80c5, (q15_t)0xdf6, (q15_t)0x80c4, (q15_t)0xdf0, (q15_t)0x80c3, - (q15_t)0xde9, (q15_t)0x80c3, (q15_t)0xde3, (q15_t)0x80c2, (q15_t)0xddd, (q15_t)0x80c1, (q15_t)0xdd7, (q15_t)0x80c1, - (q15_t)0xdd0, (q15_t)0x80c0, (q15_t)0xdca, (q15_t)0x80bf, (q15_t)0xdc4, (q15_t)0x80bf, (q15_t)0xdbe, (q15_t)0x80be, - (q15_t)0xdb7, (q15_t)0x80bd, (q15_t)0xdb1, (q15_t)0x80bd, (q15_t)0xdab, (q15_t)0x80bc, (q15_t)0xda5, (q15_t)0x80bb, - (q15_t)0xd9e, (q15_t)0x80bb, (q15_t)0xd98, (q15_t)0x80ba, (q15_t)0xd92, (q15_t)0x80b9, (q15_t)0xd8c, (q15_t)0x80b9, - (q15_t)0xd85, (q15_t)0x80b8, (q15_t)0xd7f, (q15_t)0x80b7, (q15_t)0xd79, (q15_t)0x80b7, (q15_t)0xd73, (q15_t)0x80b6, - (q15_t)0xd6c, (q15_t)0x80b5, (q15_t)0xd66, (q15_t)0x80b5, (q15_t)0xd60, (q15_t)0x80b4, (q15_t)0xd5a, (q15_t)0x80b3, - (q15_t)0xd53, (q15_t)0x80b3, (q15_t)0xd4d, (q15_t)0x80b2, (q15_t)0xd47, (q15_t)0x80b1, (q15_t)0xd41, (q15_t)0x80b1, - (q15_t)0xd3a, (q15_t)0x80b0, (q15_t)0xd34, (q15_t)0x80af, (q15_t)0xd2e, (q15_t)0x80af, (q15_t)0xd28, (q15_t)0x80ae, - (q15_t)0xd21, (q15_t)0x80ad, (q15_t)0xd1b, (q15_t)0x80ad, (q15_t)0xd15, (q15_t)0x80ac, (q15_t)0xd0f, (q15_t)0x80ab, - (q15_t)0xd08, (q15_t)0x80ab, (q15_t)0xd02, (q15_t)0x80aa, (q15_t)0xcfc, (q15_t)0x80aa, (q15_t)0xcf6, (q15_t)0x80a9, - (q15_t)0xcef, (q15_t)0x80a8, (q15_t)0xce9, (q15_t)0x80a8, (q15_t)0xce3, (q15_t)0x80a7, (q15_t)0xcdd, (q15_t)0x80a6, - (q15_t)0xcd6, (q15_t)0x80a6, (q15_t)0xcd0, (q15_t)0x80a5, (q15_t)0xcca, (q15_t)0x80a5, (q15_t)0xcc4, (q15_t)0x80a4, - (q15_t)0xcbd, (q15_t)0x80a3, (q15_t)0xcb7, (q15_t)0x80a3, (q15_t)0xcb1, (q15_t)0x80a2, (q15_t)0xcab, (q15_t)0x80a1, - (q15_t)0xca4, (q15_t)0x80a1, (q15_t)0xc9e, (q15_t)0x80a0, (q15_t)0xc98, (q15_t)0x80a0, (q15_t)0xc92, (q15_t)0x809f, - (q15_t)0xc8b, (q15_t)0x809e, (q15_t)0xc85, (q15_t)0x809e, (q15_t)0xc7f, (q15_t)0x809d, (q15_t)0xc79, (q15_t)0x809c, - (q15_t)0xc72, (q15_t)0x809c, (q15_t)0xc6c, (q15_t)0x809b, (q15_t)0xc66, (q15_t)0x809b, (q15_t)0xc60, (q15_t)0x809a, - (q15_t)0xc59, (q15_t)0x8099, (q15_t)0xc53, (q15_t)0x8099, (q15_t)0xc4d, (q15_t)0x8098, (q15_t)0xc47, (q15_t)0x8098, - (q15_t)0xc40, (q15_t)0x8097, (q15_t)0xc3a, (q15_t)0x8096, (q15_t)0xc34, (q15_t)0x8096, (q15_t)0xc2e, (q15_t)0x8095, - (q15_t)0xc27, (q15_t)0x8095, (q15_t)0xc21, (q15_t)0x8094, (q15_t)0xc1b, (q15_t)0x8093, (q15_t)0xc14, (q15_t)0x8093, - (q15_t)0xc0e, (q15_t)0x8092, (q15_t)0xc08, (q15_t)0x8092, (q15_t)0xc02, (q15_t)0x8091, (q15_t)0xbfb, (q15_t)0x8090, - (q15_t)0xbf5, (q15_t)0x8090, (q15_t)0xbef, (q15_t)0x808f, (q15_t)0xbe9, (q15_t)0x808f, (q15_t)0xbe2, (q15_t)0x808e, - (q15_t)0xbdc, (q15_t)0x808e, (q15_t)0xbd6, (q15_t)0x808d, (q15_t)0xbd0, (q15_t)0x808c, (q15_t)0xbc9, (q15_t)0x808c, - (q15_t)0xbc3, (q15_t)0x808b, (q15_t)0xbbd, (q15_t)0x808b, (q15_t)0xbb7, (q15_t)0x808a, (q15_t)0xbb0, (q15_t)0x8089, - (q15_t)0xbaa, (q15_t)0x8089, (q15_t)0xba4, (q15_t)0x8088, (q15_t)0xb9e, (q15_t)0x8088, (q15_t)0xb97, (q15_t)0x8087, - (q15_t)0xb91, (q15_t)0x8087, (q15_t)0xb8b, (q15_t)0x8086, (q15_t)0xb85, (q15_t)0x8085, (q15_t)0xb7e, (q15_t)0x8085, - (q15_t)0xb78, (q15_t)0x8084, (q15_t)0xb72, (q15_t)0x8084, (q15_t)0xb6c, (q15_t)0x8083, (q15_t)0xb65, (q15_t)0x8083, - (q15_t)0xb5f, (q15_t)0x8082, (q15_t)0xb59, (q15_t)0x8082, (q15_t)0xb53, (q15_t)0x8081, (q15_t)0xb4c, (q15_t)0x8080, - (q15_t)0xb46, (q15_t)0x8080, (q15_t)0xb40, (q15_t)0x807f, (q15_t)0xb3a, (q15_t)0x807f, (q15_t)0xb33, (q15_t)0x807e, - (q15_t)0xb2d, (q15_t)0x807e, (q15_t)0xb27, (q15_t)0x807d, (q15_t)0xb20, (q15_t)0x807d, (q15_t)0xb1a, (q15_t)0x807c, - (q15_t)0xb14, (q15_t)0x807b, (q15_t)0xb0e, (q15_t)0x807b, (q15_t)0xb07, (q15_t)0x807a, (q15_t)0xb01, (q15_t)0x807a, - (q15_t)0xafb, (q15_t)0x8079, (q15_t)0xaf5, (q15_t)0x8079, (q15_t)0xaee, (q15_t)0x8078, (q15_t)0xae8, (q15_t)0x8078, - (q15_t)0xae2, (q15_t)0x8077, (q15_t)0xadc, (q15_t)0x8077, (q15_t)0xad5, (q15_t)0x8076, (q15_t)0xacf, (q15_t)0x8076, - (q15_t)0xac9, (q15_t)0x8075, (q15_t)0xac3, (q15_t)0x8075, (q15_t)0xabc, (q15_t)0x8074, (q15_t)0xab6, (q15_t)0x8073, - (q15_t)0xab0, (q15_t)0x8073, (q15_t)0xaaa, (q15_t)0x8072, (q15_t)0xaa3, (q15_t)0x8072, (q15_t)0xa9d, (q15_t)0x8071, - (q15_t)0xa97, (q15_t)0x8071, (q15_t)0xa90, (q15_t)0x8070, (q15_t)0xa8a, (q15_t)0x8070, (q15_t)0xa84, (q15_t)0x806f, - (q15_t)0xa7e, (q15_t)0x806f, (q15_t)0xa77, (q15_t)0x806e, (q15_t)0xa71, (q15_t)0x806e, (q15_t)0xa6b, (q15_t)0x806d, - (q15_t)0xa65, (q15_t)0x806d, (q15_t)0xa5e, (q15_t)0x806c, (q15_t)0xa58, (q15_t)0x806c, (q15_t)0xa52, (q15_t)0x806b, - (q15_t)0xa4c, (q15_t)0x806b, (q15_t)0xa45, (q15_t)0x806a, (q15_t)0xa3f, (q15_t)0x806a, (q15_t)0xa39, (q15_t)0x8069, - (q15_t)0xa33, (q15_t)0x8069, (q15_t)0xa2c, (q15_t)0x8068, (q15_t)0xa26, (q15_t)0x8068, (q15_t)0xa20, (q15_t)0x8067, - (q15_t)0xa19, (q15_t)0x8067, (q15_t)0xa13, (q15_t)0x8066, (q15_t)0xa0d, (q15_t)0x8066, (q15_t)0xa07, (q15_t)0x8065, - (q15_t)0xa00, (q15_t)0x8065, (q15_t)0x9fa, (q15_t)0x8064, (q15_t)0x9f4, (q15_t)0x8064, (q15_t)0x9ee, (q15_t)0x8063, - (q15_t)0x9e7, (q15_t)0x8063, (q15_t)0x9e1, (q15_t)0x8062, (q15_t)0x9db, (q15_t)0x8062, (q15_t)0x9d5, (q15_t)0x8061, - (q15_t)0x9ce, (q15_t)0x8061, (q15_t)0x9c8, (q15_t)0x8060, (q15_t)0x9c2, (q15_t)0x8060, (q15_t)0x9bc, (q15_t)0x805f, - (q15_t)0x9b5, (q15_t)0x805f, (q15_t)0x9af, (q15_t)0x805e, (q15_t)0x9a9, (q15_t)0x805e, (q15_t)0x9a2, (q15_t)0x805d, - (q15_t)0x99c, (q15_t)0x805d, (q15_t)0x996, (q15_t)0x805d, (q15_t)0x990, (q15_t)0x805c, (q15_t)0x989, (q15_t)0x805c, - (q15_t)0x983, (q15_t)0x805b, (q15_t)0x97d, (q15_t)0x805b, (q15_t)0x977, (q15_t)0x805a, (q15_t)0x970, (q15_t)0x805a, - (q15_t)0x96a, (q15_t)0x8059, (q15_t)0x964, (q15_t)0x8059, (q15_t)0x95e, (q15_t)0x8058, (q15_t)0x957, (q15_t)0x8058, - (q15_t)0x951, (q15_t)0x8057, (q15_t)0x94b, (q15_t)0x8057, (q15_t)0x944, (q15_t)0x8057, (q15_t)0x93e, (q15_t)0x8056, - (q15_t)0x938, (q15_t)0x8056, (q15_t)0x932, (q15_t)0x8055, (q15_t)0x92b, (q15_t)0x8055, (q15_t)0x925, (q15_t)0x8054, - (q15_t)0x91f, (q15_t)0x8054, (q15_t)0x919, (q15_t)0x8053, (q15_t)0x912, (q15_t)0x8053, (q15_t)0x90c, (q15_t)0x8052, - (q15_t)0x906, (q15_t)0x8052, (q15_t)0x900, (q15_t)0x8052, (q15_t)0x8f9, (q15_t)0x8051, (q15_t)0x8f3, (q15_t)0x8051, - (q15_t)0x8ed, (q15_t)0x8050, (q15_t)0x8e6, (q15_t)0x8050, (q15_t)0x8e0, (q15_t)0x804f, (q15_t)0x8da, (q15_t)0x804f, - (q15_t)0x8d4, (q15_t)0x804f, (q15_t)0x8cd, (q15_t)0x804e, (q15_t)0x8c7, (q15_t)0x804e, (q15_t)0x8c1, (q15_t)0x804d, - (q15_t)0x8bb, (q15_t)0x804d, (q15_t)0x8b4, (q15_t)0x804c, (q15_t)0x8ae, (q15_t)0x804c, (q15_t)0x8a8, (q15_t)0x804c, - (q15_t)0x8a2, (q15_t)0x804b, (q15_t)0x89b, (q15_t)0x804b, (q15_t)0x895, (q15_t)0x804a, (q15_t)0x88f, (q15_t)0x804a, - (q15_t)0x888, (q15_t)0x8049, (q15_t)0x882, (q15_t)0x8049, (q15_t)0x87c, (q15_t)0x8049, (q15_t)0x876, (q15_t)0x8048, - (q15_t)0x86f, (q15_t)0x8048, (q15_t)0x869, (q15_t)0x8047, (q15_t)0x863, (q15_t)0x8047, (q15_t)0x85d, (q15_t)0x8047, - (q15_t)0x856, (q15_t)0x8046, (q15_t)0x850, (q15_t)0x8046, (q15_t)0x84a, (q15_t)0x8045, (q15_t)0x843, (q15_t)0x8045, - (q15_t)0x83d, (q15_t)0x8044, (q15_t)0x837, (q15_t)0x8044, (q15_t)0x831, (q15_t)0x8044, (q15_t)0x82a, (q15_t)0x8043, - (q15_t)0x824, (q15_t)0x8043, (q15_t)0x81e, (q15_t)0x8042, (q15_t)0x818, (q15_t)0x8042, (q15_t)0x811, (q15_t)0x8042, - (q15_t)0x80b, (q15_t)0x8041, (q15_t)0x805, (q15_t)0x8041, (q15_t)0x7fe, (q15_t)0x8040, (q15_t)0x7f8, (q15_t)0x8040, - (q15_t)0x7f2, (q15_t)0x8040, (q15_t)0x7ec, (q15_t)0x803f, (q15_t)0x7e5, (q15_t)0x803f, (q15_t)0x7df, (q15_t)0x803f, - (q15_t)0x7d9, (q15_t)0x803e, (q15_t)0x7d3, (q15_t)0x803e, (q15_t)0x7cc, (q15_t)0x803d, (q15_t)0x7c6, (q15_t)0x803d, - (q15_t)0x7c0, (q15_t)0x803d, (q15_t)0x7ba, (q15_t)0x803c, (q15_t)0x7b3, (q15_t)0x803c, (q15_t)0x7ad, (q15_t)0x803b, - (q15_t)0x7a7, (q15_t)0x803b, (q15_t)0x7a0, (q15_t)0x803b, (q15_t)0x79a, (q15_t)0x803a, (q15_t)0x794, (q15_t)0x803a, - (q15_t)0x78e, (q15_t)0x803a, (q15_t)0x787, (q15_t)0x8039, (q15_t)0x781, (q15_t)0x8039, (q15_t)0x77b, (q15_t)0x8039, - (q15_t)0x775, (q15_t)0x8038, (q15_t)0x76e, (q15_t)0x8038, (q15_t)0x768, (q15_t)0x8037, (q15_t)0x762, (q15_t)0x8037, - (q15_t)0x75b, (q15_t)0x8037, (q15_t)0x755, (q15_t)0x8036, (q15_t)0x74f, (q15_t)0x8036, (q15_t)0x749, (q15_t)0x8036, - (q15_t)0x742, (q15_t)0x8035, (q15_t)0x73c, (q15_t)0x8035, (q15_t)0x736, (q15_t)0x8035, (q15_t)0x730, (q15_t)0x8034, - (q15_t)0x729, (q15_t)0x8034, (q15_t)0x723, (q15_t)0x8033, (q15_t)0x71d, (q15_t)0x8033, (q15_t)0x716, (q15_t)0x8033, - (q15_t)0x710, (q15_t)0x8032, (q15_t)0x70a, (q15_t)0x8032, (q15_t)0x704, (q15_t)0x8032, (q15_t)0x6fd, (q15_t)0x8031, - (q15_t)0x6f7, (q15_t)0x8031, (q15_t)0x6f1, (q15_t)0x8031, (q15_t)0x6ea, (q15_t)0x8030, (q15_t)0x6e4, (q15_t)0x8030, - (q15_t)0x6de, (q15_t)0x8030, (q15_t)0x6d8, (q15_t)0x802f, (q15_t)0x6d1, (q15_t)0x802f, (q15_t)0x6cb, (q15_t)0x802f, - (q15_t)0x6c5, (q15_t)0x802e, (q15_t)0x6bf, (q15_t)0x802e, (q15_t)0x6b8, (q15_t)0x802e, (q15_t)0x6b2, (q15_t)0x802d, - (q15_t)0x6ac, (q15_t)0x802d, (q15_t)0x6a5, (q15_t)0x802d, (q15_t)0x69f, (q15_t)0x802c, (q15_t)0x699, (q15_t)0x802c, - (q15_t)0x693, (q15_t)0x802c, (q15_t)0x68c, (q15_t)0x802b, (q15_t)0x686, (q15_t)0x802b, (q15_t)0x680, (q15_t)0x802b, - (q15_t)0x67a, (q15_t)0x802a, (q15_t)0x673, (q15_t)0x802a, (q15_t)0x66d, (q15_t)0x802a, (q15_t)0x667, (q15_t)0x802a, - (q15_t)0x660, (q15_t)0x8029, (q15_t)0x65a, (q15_t)0x8029, (q15_t)0x654, (q15_t)0x8029, (q15_t)0x64e, (q15_t)0x8028, - (q15_t)0x647, (q15_t)0x8028, (q15_t)0x641, (q15_t)0x8028, (q15_t)0x63b, (q15_t)0x8027, (q15_t)0x635, (q15_t)0x8027, - (q15_t)0x62e, (q15_t)0x8027, (q15_t)0x628, (q15_t)0x8026, (q15_t)0x622, (q15_t)0x8026, (q15_t)0x61b, (q15_t)0x8026, - (q15_t)0x615, (q15_t)0x8026, (q15_t)0x60f, (q15_t)0x8025, (q15_t)0x609, (q15_t)0x8025, (q15_t)0x602, (q15_t)0x8025, - (q15_t)0x5fc, (q15_t)0x8024, (q15_t)0x5f6, (q15_t)0x8024, (q15_t)0x5ef, (q15_t)0x8024, (q15_t)0x5e9, (q15_t)0x8023, - (q15_t)0x5e3, (q15_t)0x8023, (q15_t)0x5dd, (q15_t)0x8023, (q15_t)0x5d6, (q15_t)0x8023, (q15_t)0x5d0, (q15_t)0x8022, - (q15_t)0x5ca, (q15_t)0x8022, (q15_t)0x5c4, (q15_t)0x8022, (q15_t)0x5bd, (q15_t)0x8021, (q15_t)0x5b7, (q15_t)0x8021, - (q15_t)0x5b1, (q15_t)0x8021, (q15_t)0x5aa, (q15_t)0x8021, (q15_t)0x5a4, (q15_t)0x8020, (q15_t)0x59e, (q15_t)0x8020, - (q15_t)0x598, (q15_t)0x8020, (q15_t)0x591, (q15_t)0x8020, (q15_t)0x58b, (q15_t)0x801f, (q15_t)0x585, (q15_t)0x801f, - (q15_t)0x57f, (q15_t)0x801f, (q15_t)0x578, (q15_t)0x801e, (q15_t)0x572, (q15_t)0x801e, (q15_t)0x56c, (q15_t)0x801e, - (q15_t)0x565, (q15_t)0x801e, (q15_t)0x55f, (q15_t)0x801d, (q15_t)0x559, (q15_t)0x801d, (q15_t)0x553, (q15_t)0x801d, - (q15_t)0x54c, (q15_t)0x801d, (q15_t)0x546, (q15_t)0x801c, (q15_t)0x540, (q15_t)0x801c, (q15_t)0x539, (q15_t)0x801c, - (q15_t)0x533, (q15_t)0x801c, (q15_t)0x52d, (q15_t)0x801b, (q15_t)0x527, (q15_t)0x801b, (q15_t)0x520, (q15_t)0x801b, - (q15_t)0x51a, (q15_t)0x801b, (q15_t)0x514, (q15_t)0x801a, (q15_t)0x50d, (q15_t)0x801a, (q15_t)0x507, (q15_t)0x801a, - (q15_t)0x501, (q15_t)0x801a, (q15_t)0x4fb, (q15_t)0x8019, (q15_t)0x4f4, (q15_t)0x8019, (q15_t)0x4ee, (q15_t)0x8019, - (q15_t)0x4e8, (q15_t)0x8019, (q15_t)0x4e2, (q15_t)0x8018, (q15_t)0x4db, (q15_t)0x8018, (q15_t)0x4d5, (q15_t)0x8018, - (q15_t)0x4cf, (q15_t)0x8018, (q15_t)0x4c8, (q15_t)0x8017, (q15_t)0x4c2, (q15_t)0x8017, (q15_t)0x4bc, (q15_t)0x8017, - (q15_t)0x4b6, (q15_t)0x8017, (q15_t)0x4af, (q15_t)0x8016, (q15_t)0x4a9, (q15_t)0x8016, (q15_t)0x4a3, (q15_t)0x8016, - (q15_t)0x49c, (q15_t)0x8016, (q15_t)0x496, (q15_t)0x8016, (q15_t)0x490, (q15_t)0x8015, (q15_t)0x48a, (q15_t)0x8015, - (q15_t)0x483, (q15_t)0x8015, (q15_t)0x47d, (q15_t)0x8015, (q15_t)0x477, (q15_t)0x8014, (q15_t)0x471, (q15_t)0x8014, - (q15_t)0x46a, (q15_t)0x8014, (q15_t)0x464, (q15_t)0x8014, (q15_t)0x45e, (q15_t)0x8014, (q15_t)0x457, (q15_t)0x8013, - (q15_t)0x451, (q15_t)0x8013, (q15_t)0x44b, (q15_t)0x8013, (q15_t)0x445, (q15_t)0x8013, (q15_t)0x43e, (q15_t)0x8013, - (q15_t)0x438, (q15_t)0x8012, (q15_t)0x432, (q15_t)0x8012, (q15_t)0x42b, (q15_t)0x8012, (q15_t)0x425, (q15_t)0x8012, - (q15_t)0x41f, (q15_t)0x8012, (q15_t)0x419, (q15_t)0x8011, (q15_t)0x412, (q15_t)0x8011, (q15_t)0x40c, (q15_t)0x8011, - (q15_t)0x406, (q15_t)0x8011, (q15_t)0x3ff, (q15_t)0x8011, (q15_t)0x3f9, (q15_t)0x8010, (q15_t)0x3f3, (q15_t)0x8010, - (q15_t)0x3ed, (q15_t)0x8010, (q15_t)0x3e6, (q15_t)0x8010, (q15_t)0x3e0, (q15_t)0x8010, (q15_t)0x3da, (q15_t)0x800f, - (q15_t)0x3d4, (q15_t)0x800f, (q15_t)0x3cd, (q15_t)0x800f, (q15_t)0x3c7, (q15_t)0x800f, (q15_t)0x3c1, (q15_t)0x800f, - (q15_t)0x3ba, (q15_t)0x800e, (q15_t)0x3b4, (q15_t)0x800e, (q15_t)0x3ae, (q15_t)0x800e, (q15_t)0x3a8, (q15_t)0x800e, - (q15_t)0x3a1, (q15_t)0x800e, (q15_t)0x39b, (q15_t)0x800e, (q15_t)0x395, (q15_t)0x800d, (q15_t)0x38e, (q15_t)0x800d, - (q15_t)0x388, (q15_t)0x800d, (q15_t)0x382, (q15_t)0x800d, (q15_t)0x37c, (q15_t)0x800d, (q15_t)0x375, (q15_t)0x800c, - (q15_t)0x36f, (q15_t)0x800c, (q15_t)0x369, (q15_t)0x800c, (q15_t)0x362, (q15_t)0x800c, (q15_t)0x35c, (q15_t)0x800c, - (q15_t)0x356, (q15_t)0x800c, (q15_t)0x350, (q15_t)0x800b, (q15_t)0x349, (q15_t)0x800b, (q15_t)0x343, (q15_t)0x800b, - (q15_t)0x33d, (q15_t)0x800b, (q15_t)0x337, (q15_t)0x800b, (q15_t)0x330, (q15_t)0x800b, (q15_t)0x32a, (q15_t)0x800b, - (q15_t)0x324, (q15_t)0x800a, (q15_t)0x31d, (q15_t)0x800a, (q15_t)0x317, (q15_t)0x800a, (q15_t)0x311, (q15_t)0x800a, - (q15_t)0x30b, (q15_t)0x800a, (q15_t)0x304, (q15_t)0x800a, (q15_t)0x2fe, (q15_t)0x8009, (q15_t)0x2f8, (q15_t)0x8009, - (q15_t)0x2f1, (q15_t)0x8009, (q15_t)0x2eb, (q15_t)0x8009, (q15_t)0x2e5, (q15_t)0x8009, (q15_t)0x2df, (q15_t)0x8009, - (q15_t)0x2d8, (q15_t)0x8009, (q15_t)0x2d2, (q15_t)0x8008, (q15_t)0x2cc, (q15_t)0x8008, (q15_t)0x2c5, (q15_t)0x8008, - (q15_t)0x2bf, (q15_t)0x8008, (q15_t)0x2b9, (q15_t)0x8008, (q15_t)0x2b3, (q15_t)0x8008, (q15_t)0x2ac, (q15_t)0x8008, - (q15_t)0x2a6, (q15_t)0x8008, (q15_t)0x2a0, (q15_t)0x8007, (q15_t)0x299, (q15_t)0x8007, (q15_t)0x293, (q15_t)0x8007, - (q15_t)0x28d, (q15_t)0x8007, (q15_t)0x287, (q15_t)0x8007, (q15_t)0x280, (q15_t)0x8007, (q15_t)0x27a, (q15_t)0x8007, - (q15_t)0x274, (q15_t)0x8007, (q15_t)0x26d, (q15_t)0x8006, (q15_t)0x267, (q15_t)0x8006, (q15_t)0x261, (q15_t)0x8006, - (q15_t)0x25b, (q15_t)0x8006, (q15_t)0x254, (q15_t)0x8006, (q15_t)0x24e, (q15_t)0x8006, (q15_t)0x248, (q15_t)0x8006, - (q15_t)0x242, (q15_t)0x8006, (q15_t)0x23b, (q15_t)0x8005, (q15_t)0x235, (q15_t)0x8005, (q15_t)0x22f, (q15_t)0x8005, - (q15_t)0x228, (q15_t)0x8005, (q15_t)0x222, (q15_t)0x8005, (q15_t)0x21c, (q15_t)0x8005, (q15_t)0x216, (q15_t)0x8005, - (q15_t)0x20f, (q15_t)0x8005, (q15_t)0x209, (q15_t)0x8005, (q15_t)0x203, (q15_t)0x8005, (q15_t)0x1fc, (q15_t)0x8004, - (q15_t)0x1f6, (q15_t)0x8004, (q15_t)0x1f0, (q15_t)0x8004, (q15_t)0x1ea, (q15_t)0x8004, (q15_t)0x1e3, (q15_t)0x8004, - (q15_t)0x1dd, (q15_t)0x8004, (q15_t)0x1d7, (q15_t)0x8004, (q15_t)0x1d0, (q15_t)0x8004, (q15_t)0x1ca, (q15_t)0x8004, - (q15_t)0x1c4, (q15_t)0x8004, (q15_t)0x1be, (q15_t)0x8004, (q15_t)0x1b7, (q15_t)0x8003, (q15_t)0x1b1, (q15_t)0x8003, - (q15_t)0x1ab, (q15_t)0x8003, (q15_t)0x1a4, (q15_t)0x8003, (q15_t)0x19e, (q15_t)0x8003, (q15_t)0x198, (q15_t)0x8003, - (q15_t)0x192, (q15_t)0x8003, (q15_t)0x18b, (q15_t)0x8003, (q15_t)0x185, (q15_t)0x8003, (q15_t)0x17f, (q15_t)0x8003, - (q15_t)0x178, (q15_t)0x8003, (q15_t)0x172, (q15_t)0x8003, (q15_t)0x16c, (q15_t)0x8003, (q15_t)0x166, (q15_t)0x8002, - (q15_t)0x15f, (q15_t)0x8002, (q15_t)0x159, (q15_t)0x8002, (q15_t)0x153, (q15_t)0x8002, (q15_t)0x14d, (q15_t)0x8002, - (q15_t)0x146, (q15_t)0x8002, (q15_t)0x140, (q15_t)0x8002, (q15_t)0x13a, (q15_t)0x8002, (q15_t)0x133, (q15_t)0x8002, - (q15_t)0x12d, (q15_t)0x8002, (q15_t)0x127, (q15_t)0x8002, (q15_t)0x121, (q15_t)0x8002, (q15_t)0x11a, (q15_t)0x8002, - (q15_t)0x114, (q15_t)0x8002, (q15_t)0x10e, (q15_t)0x8002, (q15_t)0x107, (q15_t)0x8002, (q15_t)0x101, (q15_t)0x8002, - (q15_t)0xfb, (q15_t)0x8001, (q15_t)0xf5, (q15_t)0x8001, (q15_t)0xee, (q15_t)0x8001, (q15_t)0xe8, (q15_t)0x8001, - (q15_t)0xe2, (q15_t)0x8001, (q15_t)0xdb, (q15_t)0x8001, (q15_t)0xd5, (q15_t)0x8001, (q15_t)0xcf, (q15_t)0x8001, - (q15_t)0xc9, (q15_t)0x8001, (q15_t)0xc2, (q15_t)0x8001, (q15_t)0xbc, (q15_t)0x8001, (q15_t)0xb6, (q15_t)0x8001, - (q15_t)0xaf, (q15_t)0x8001, (q15_t)0xa9, (q15_t)0x8001, (q15_t)0xa3, (q15_t)0x8001, (q15_t)0x9d, (q15_t)0x8001, - (q15_t)0x96, (q15_t)0x8001, (q15_t)0x90, (q15_t)0x8001, (q15_t)0x8a, (q15_t)0x8001, (q15_t)0x83, (q15_t)0x8001, - (q15_t)0x7d, (q15_t)0x8001, (q15_t)0x77, (q15_t)0x8001, (q15_t)0x71, (q15_t)0x8001, (q15_t)0x6a, (q15_t)0x8001, - (q15_t)0x64, (q15_t)0x8001, (q15_t)0x5e, (q15_t)0x8001, (q15_t)0x57, (q15_t)0x8001, (q15_t)0x51, (q15_t)0x8001, - (q15_t)0x4b, (q15_t)0x8001, (q15_t)0x45, (q15_t)0x8001, (q15_t)0x3e, (q15_t)0x8001, (q15_t)0x38, (q15_t)0x8001, - (q15_t)0x32, (q15_t)0x8001, (q15_t)0x2b, (q15_t)0x8001, (q15_t)0x25, (q15_t)0x8001, (q15_t)0x1f, (q15_t)0x8001, - (q15_t)0x19, (q15_t)0x8001, (q15_t)0x12, (q15_t)0x8001, (q15_t)0xc, (q15_t)0x8001, (q15_t)0x6, (q15_t)0x8001 -}; - - -/** -* \par -* cosFactor tables are generated using the formula :
 cos_factors[n] = 2 * cos((2n+1)*pi/(4*N)) 
-* \par -* C command to generate the table -*
-* for(i = 0; i< N; i++)
-* {
-*   cos_factors[i]= 2 * cos((2*i+1)*c/2);
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -* \par -* Then converted to q15 format by multiplying with 2^31 and saturated if required. - -*/ - -static const q15_t ALIGN4 cos_factorsQ15_128[128] = { - (q15_t)0x7fff, (q15_t)0x7ffa, (q15_t)0x7ff0, (q15_t)0x7fe1, (q15_t)0x7fce, (q15_t)0x7fb5, (q15_t)0x7f97, (q15_t)0x7f75, - (q15_t)0x7f4d, (q15_t)0x7f21, (q15_t)0x7ef0, (q15_t)0x7eba, (q15_t)0x7e7f, (q15_t)0x7e3f, (q15_t)0x7dfa, (q15_t)0x7db0, - (q15_t)0x7d62, (q15_t)0x7d0f, (q15_t)0x7cb7, (q15_t)0x7c5a, (q15_t)0x7bf8, (q15_t)0x7b92, (q15_t)0x7b26, (q15_t)0x7ab6, - (q15_t)0x7a42, (q15_t)0x79c8, (q15_t)0x794a, (q15_t)0x78c7, (q15_t)0x7840, (q15_t)0x77b4, (q15_t)0x7723, (q15_t)0x768e, - (q15_t)0x75f4, (q15_t)0x7555, (q15_t)0x74b2, (q15_t)0x740b, (q15_t)0x735f, (q15_t)0x72af, (q15_t)0x71fa, (q15_t)0x7141, - (q15_t)0x7083, (q15_t)0x6fc1, (q15_t)0x6efb, (q15_t)0x6e30, (q15_t)0x6d62, (q15_t)0x6c8f, (q15_t)0x6bb8, (q15_t)0x6adc, - (q15_t)0x69fd, (q15_t)0x6919, (q15_t)0x6832, (q15_t)0x6746, (q15_t)0x6657, (q15_t)0x6563, (q15_t)0x646c, (q15_t)0x6371, - (q15_t)0x6271, (q15_t)0x616f, (q15_t)0x6068, (q15_t)0x5f5e, (q15_t)0x5e50, (q15_t)0x5d3e, (q15_t)0x5c29, (q15_t)0x5b10, - (q15_t)0x59f3, (q15_t)0x58d4, (q15_t)0x57b0, (q15_t)0x568a, (q15_t)0x5560, (q15_t)0x5433, (q15_t)0x5302, (q15_t)0x51ce, - (q15_t)0x5097, (q15_t)0x4f5e, (q15_t)0x4e21, (q15_t)0x4ce1, (q15_t)0x4b9e, (q15_t)0x4a58, (q15_t)0x490f, (q15_t)0x47c3, - (q15_t)0x4675, (q15_t)0x4524, (q15_t)0x43d0, (q15_t)0x427a, (q15_t)0x4121, (q15_t)0x3fc5, (q15_t)0x3e68, (q15_t)0x3d07, - (q15_t)0x3ba5, (q15_t)0x3a40, (q15_t)0x38d8, (q15_t)0x376f, (q15_t)0x3604, (q15_t)0x3496, (q15_t)0x3326, (q15_t)0x31b5, - (q15_t)0x3041, (q15_t)0x2ecc, (q15_t)0x2d55, (q15_t)0x2bdc, (q15_t)0x2a61, (q15_t)0x28e5, (q15_t)0x2767, (q15_t)0x25e8, - (q15_t)0x2467, (q15_t)0x22e5, (q15_t)0x2161, (q15_t)0x1fdc, (q15_t)0x1e56, (q15_t)0x1ccf, (q15_t)0x1b47, (q15_t)0x19bd, - (q15_t)0x1833, (q15_t)0x16a8, (q15_t)0x151b, (q15_t)0x138e, (q15_t)0x1201, (q15_t)0x1072, (q15_t)0xee3, (q15_t)0xd53, - (q15_t)0xbc3, (q15_t)0xa33, (q15_t)0x8a2, (q15_t)0x710, (q15_t)0x57f, (q15_t)0x3ed, (q15_t)0x25b, (q15_t)0xc9 -}; - -static const q15_t ALIGN4 cos_factorsQ15_512[512] = { - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7ffe, (q15_t)0x7ffc, (q15_t)0x7ffb, (q15_t)0x7ff9, (q15_t)0x7ff7, - (q15_t)0x7ff4, (q15_t)0x7ff2, (q15_t)0x7fee, (q15_t)0x7feb, (q15_t)0x7fe7, (q15_t)0x7fe3, (q15_t)0x7fdf, (q15_t)0x7fda, - (q15_t)0x7fd6, (q15_t)0x7fd0, (q15_t)0x7fcb, (q15_t)0x7fc5, (q15_t)0x7fbf, (q15_t)0x7fb8, (q15_t)0x7fb1, (q15_t)0x7faa, - (q15_t)0x7fa3, (q15_t)0x7f9b, (q15_t)0x7f93, (q15_t)0x7f8b, (q15_t)0x7f82, (q15_t)0x7f79, (q15_t)0x7f70, (q15_t)0x7f67, - (q15_t)0x7f5d, (q15_t)0x7f53, (q15_t)0x7f48, (q15_t)0x7f3d, (q15_t)0x7f32, (q15_t)0x7f27, (q15_t)0x7f1b, (q15_t)0x7f0f, - (q15_t)0x7f03, (q15_t)0x7ef6, (q15_t)0x7ee9, (q15_t)0x7edc, (q15_t)0x7ecf, (q15_t)0x7ec1, (q15_t)0x7eb3, (q15_t)0x7ea4, - (q15_t)0x7e95, (q15_t)0x7e86, (q15_t)0x7e77, (q15_t)0x7e67, (q15_t)0x7e57, (q15_t)0x7e47, (q15_t)0x7e37, (q15_t)0x7e26, - (q15_t)0x7e14, (q15_t)0x7e03, (q15_t)0x7df1, (q15_t)0x7ddf, (q15_t)0x7dcd, (q15_t)0x7dba, (q15_t)0x7da7, (q15_t)0x7d94, - (q15_t)0x7d80, (q15_t)0x7d6c, (q15_t)0x7d58, (q15_t)0x7d43, (q15_t)0x7d2f, (q15_t)0x7d19, (q15_t)0x7d04, (q15_t)0x7cee, - (q15_t)0x7cd8, (q15_t)0x7cc2, (q15_t)0x7cab, (q15_t)0x7c94, (q15_t)0x7c7d, (q15_t)0x7c66, (q15_t)0x7c4e, (q15_t)0x7c36, - (q15_t)0x7c1d, (q15_t)0x7c05, (q15_t)0x7beb, (q15_t)0x7bd2, (q15_t)0x7bb9, (q15_t)0x7b9f, (q15_t)0x7b84, (q15_t)0x7b6a, - (q15_t)0x7b4f, (q15_t)0x7b34, (q15_t)0x7b19, (q15_t)0x7afd, (q15_t)0x7ae1, (q15_t)0x7ac5, (q15_t)0x7aa8, (q15_t)0x7a8b, - (q15_t)0x7a6e, (q15_t)0x7a50, (q15_t)0x7a33, (q15_t)0x7a15, (q15_t)0x79f6, (q15_t)0x79d8, (q15_t)0x79b9, (q15_t)0x7999, - (q15_t)0x797a, (q15_t)0x795a, (q15_t)0x793a, (q15_t)0x7919, (q15_t)0x78f9, (q15_t)0x78d8, (q15_t)0x78b6, (q15_t)0x7895, - (q15_t)0x7873, (q15_t)0x7851, (q15_t)0x782e, (q15_t)0x780c, (q15_t)0x77e9, (q15_t)0x77c5, (q15_t)0x77a2, (q15_t)0x777e, - (q15_t)0x775a, (q15_t)0x7735, (q15_t)0x7710, (q15_t)0x76eb, (q15_t)0x76c6, (q15_t)0x76a0, (q15_t)0x767b, (q15_t)0x7654, - (q15_t)0x762e, (q15_t)0x7607, (q15_t)0x75e0, (q15_t)0x75b9, (q15_t)0x7591, (q15_t)0x7569, (q15_t)0x7541, (q15_t)0x7519, - (q15_t)0x74f0, (q15_t)0x74c7, (q15_t)0x749e, (q15_t)0x7474, (q15_t)0x744a, (q15_t)0x7420, (q15_t)0x73f6, (q15_t)0x73cb, - (q15_t)0x73a0, (q15_t)0x7375, (q15_t)0x7349, (q15_t)0x731d, (q15_t)0x72f1, (q15_t)0x72c5, (q15_t)0x7298, (q15_t)0x726b, - (q15_t)0x723e, (q15_t)0x7211, (q15_t)0x71e3, (q15_t)0x71b5, (q15_t)0x7186, (q15_t)0x7158, (q15_t)0x7129, (q15_t)0x70fa, - (q15_t)0x70cb, (q15_t)0x709b, (q15_t)0x706b, (q15_t)0x703b, (q15_t)0x700a, (q15_t)0x6fda, (q15_t)0x6fa9, (q15_t)0x6f77, - (q15_t)0x6f46, (q15_t)0x6f14, (q15_t)0x6ee2, (q15_t)0x6eaf, (q15_t)0x6e7d, (q15_t)0x6e4a, (q15_t)0x6e17, (q15_t)0x6de3, - (q15_t)0x6db0, (q15_t)0x6d7c, (q15_t)0x6d48, (q15_t)0x6d13, (q15_t)0x6cde, (q15_t)0x6ca9, (q15_t)0x6c74, (q15_t)0x6c3f, - (q15_t)0x6c09, (q15_t)0x6bd3, (q15_t)0x6b9c, (q15_t)0x6b66, (q15_t)0x6b2f, (q15_t)0x6af8, (q15_t)0x6ac1, (q15_t)0x6a89, - (q15_t)0x6a51, (q15_t)0x6a19, (q15_t)0x69e1, (q15_t)0x69a8, (q15_t)0x696f, (q15_t)0x6936, (q15_t)0x68fd, (q15_t)0x68c3, - (q15_t)0x6889, (q15_t)0x684f, (q15_t)0x6815, (q15_t)0x67da, (q15_t)0x679f, (q15_t)0x6764, (q15_t)0x6729, (q15_t)0x66ed, - (q15_t)0x66b1, (q15_t)0x6675, (q15_t)0x6639, (q15_t)0x65fc, (q15_t)0x65bf, (q15_t)0x6582, (q15_t)0x6545, (q15_t)0x6507, - (q15_t)0x64c9, (q15_t)0x648b, (q15_t)0x644d, (q15_t)0x640e, (q15_t)0x63cf, (q15_t)0x6390, (q15_t)0x6351, (q15_t)0x6311, - (q15_t)0x62d2, (q15_t)0x6292, (q15_t)0x6251, (q15_t)0x6211, (q15_t)0x61d0, (q15_t)0x618f, (q15_t)0x614e, (q15_t)0x610d, - (q15_t)0x60cb, (q15_t)0x6089, (q15_t)0x6047, (q15_t)0x6004, (q15_t)0x5fc2, (q15_t)0x5f7f, (q15_t)0x5f3c, (q15_t)0x5ef9, - (q15_t)0x5eb5, (q15_t)0x5e71, (q15_t)0x5e2d, (q15_t)0x5de9, (q15_t)0x5da5, (q15_t)0x5d60, (q15_t)0x5d1b, (q15_t)0x5cd6, - (q15_t)0x5c91, (q15_t)0x5c4b, (q15_t)0x5c06, (q15_t)0x5bc0, (q15_t)0x5b79, (q15_t)0x5b33, (q15_t)0x5aec, (q15_t)0x5aa5, - (q15_t)0x5a5e, (q15_t)0x5a17, (q15_t)0x59d0, (q15_t)0x5988, (q15_t)0x5940, (q15_t)0x58f8, (q15_t)0x58af, (q15_t)0x5867, - (q15_t)0x581e, (q15_t)0x57d5, (q15_t)0x578c, (q15_t)0x5742, (q15_t)0x56f9, (q15_t)0x56af, (q15_t)0x5665, (q15_t)0x561a, - (q15_t)0x55d0, (q15_t)0x5585, (q15_t)0x553a, (q15_t)0x54ef, (q15_t)0x54a4, (q15_t)0x5458, (q15_t)0x540d, (q15_t)0x53c1, - (q15_t)0x5375, (q15_t)0x5328, (q15_t)0x52dc, (q15_t)0x528f, (q15_t)0x5242, (q15_t)0x51f5, (q15_t)0x51a8, (q15_t)0x515a, - (q15_t)0x510c, (q15_t)0x50bf, (q15_t)0x5070, (q15_t)0x5022, (q15_t)0x4fd4, (q15_t)0x4f85, (q15_t)0x4f36, (q15_t)0x4ee7, - (q15_t)0x4e98, (q15_t)0x4e48, (q15_t)0x4df9, (q15_t)0x4da9, (q15_t)0x4d59, (q15_t)0x4d09, (q15_t)0x4cb8, (q15_t)0x4c68, - (q15_t)0x4c17, (q15_t)0x4bc6, (q15_t)0x4b75, (q15_t)0x4b24, (q15_t)0x4ad2, (q15_t)0x4a81, (q15_t)0x4a2f, (q15_t)0x49dd, - (q15_t)0x498a, (q15_t)0x4938, (q15_t)0x48e6, (q15_t)0x4893, (q15_t)0x4840, (q15_t)0x47ed, (q15_t)0x479a, (q15_t)0x4746, - (q15_t)0x46f3, (q15_t)0x469f, (q15_t)0x464b, (q15_t)0x45f7, (q15_t)0x45a3, (q15_t)0x454e, (q15_t)0x44fa, (q15_t)0x44a5, - (q15_t)0x4450, (q15_t)0x43fb, (q15_t)0x43a5, (q15_t)0x4350, (q15_t)0x42fa, (q15_t)0x42a5, (q15_t)0x424f, (q15_t)0x41f9, - (q15_t)0x41a2, (q15_t)0x414c, (q15_t)0x40f6, (q15_t)0x409f, (q15_t)0x4048, (q15_t)0x3ff1, (q15_t)0x3f9a, (q15_t)0x3f43, - (q15_t)0x3eeb, (q15_t)0x3e93, (q15_t)0x3e3c, (q15_t)0x3de4, (q15_t)0x3d8c, (q15_t)0x3d33, (q15_t)0x3cdb, (q15_t)0x3c83, - (q15_t)0x3c2a, (q15_t)0x3bd1, (q15_t)0x3b78, (q15_t)0x3b1f, (q15_t)0x3ac6, (q15_t)0x3a6c, (q15_t)0x3a13, (q15_t)0x39b9, - (q15_t)0x395f, (q15_t)0x3906, (q15_t)0x38ab, (q15_t)0x3851, (q15_t)0x37f7, (q15_t)0x379c, (q15_t)0x3742, (q15_t)0x36e7, - (q15_t)0x368c, (q15_t)0x3631, (q15_t)0x35d6, (q15_t)0x357b, (q15_t)0x351f, (q15_t)0x34c4, (q15_t)0x3468, (q15_t)0x340c, - (q15_t)0x33b0, (q15_t)0x3354, (q15_t)0x32f8, (q15_t)0x329c, (q15_t)0x3240, (q15_t)0x31e3, (q15_t)0x3186, (q15_t)0x312a, - (q15_t)0x30cd, (q15_t)0x3070, (q15_t)0x3013, (q15_t)0x2fb5, (q15_t)0x2f58, (q15_t)0x2efb, (q15_t)0x2e9d, (q15_t)0x2e3f, - (q15_t)0x2de2, (q15_t)0x2d84, (q15_t)0x2d26, (q15_t)0x2cc8, (q15_t)0x2c69, (q15_t)0x2c0b, (q15_t)0x2bad, (q15_t)0x2b4e, - (q15_t)0x2aef, (q15_t)0x2a91, (q15_t)0x2a32, (q15_t)0x29d3, (q15_t)0x2974, (q15_t)0x2915, (q15_t)0x28b5, (q15_t)0x2856, - (q15_t)0x27f6, (q15_t)0x2797, (q15_t)0x2737, (q15_t)0x26d8, (q15_t)0x2678, (q15_t)0x2618, (q15_t)0x25b8, (q15_t)0x2558, - (q15_t)0x24f7, (q15_t)0x2497, (q15_t)0x2437, (q15_t)0x23d6, (q15_t)0x2376, (q15_t)0x2315, (q15_t)0x22b4, (q15_t)0x2254, - (q15_t)0x21f3, (q15_t)0x2192, (q15_t)0x2131, (q15_t)0x20d0, (q15_t)0x206e, (q15_t)0x200d, (q15_t)0x1fac, (q15_t)0x1f4a, - (q15_t)0x1ee9, (q15_t)0x1e87, (q15_t)0x1e25, (q15_t)0x1dc4, (q15_t)0x1d62, (q15_t)0x1d00, (q15_t)0x1c9e, (q15_t)0x1c3c, - (q15_t)0x1bda, (q15_t)0x1b78, (q15_t)0x1b16, (q15_t)0x1ab3, (q15_t)0x1a51, (q15_t)0x19ef, (q15_t)0x198c, (q15_t)0x192a, - (q15_t)0x18c7, (q15_t)0x1864, (q15_t)0x1802, (q15_t)0x179f, (q15_t)0x173c, (q15_t)0x16d9, (q15_t)0x1676, (q15_t)0x1613, - (q15_t)0x15b0, (q15_t)0x154d, (q15_t)0x14ea, (q15_t)0x1487, (q15_t)0x1423, (q15_t)0x13c0, (q15_t)0x135d, (q15_t)0x12f9, - (q15_t)0x1296, (q15_t)0x1232, (q15_t)0x11cf, (q15_t)0x116b, (q15_t)0x1108, (q15_t)0x10a4, (q15_t)0x1040, (q15_t)0xfdd, - (q15_t)0xf79, (q15_t)0xf15, (q15_t)0xeb1, (q15_t)0xe4d, (q15_t)0xde9, (q15_t)0xd85, (q15_t)0xd21, (q15_t)0xcbd, - (q15_t)0xc59, (q15_t)0xbf5, (q15_t)0xb91, (q15_t)0xb2d, (q15_t)0xac9, (q15_t)0xa65, (q15_t)0xa00, (q15_t)0x99c, - (q15_t)0x938, (q15_t)0x8d4, (q15_t)0x86f, (q15_t)0x80b, (q15_t)0x7a7, (q15_t)0x742, (q15_t)0x6de, (q15_t)0x67a, - (q15_t)0x615, (q15_t)0x5b1, (q15_t)0x54c, (q15_t)0x4e8, (q15_t)0x483, (q15_t)0x41f, (q15_t)0x3ba, (q15_t)0x356, - (q15_t)0x2f1, (q15_t)0x28d, (q15_t)0x228, (q15_t)0x1c4, (q15_t)0x15f, (q15_t)0xfb, (q15_t)0x96, (q15_t)0x32 -}; - -static const q15_t ALIGN4 cos_factorsQ15_2048[2048] = { - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffd, (q15_t)0x7ffd, - (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffa, - (q15_t)0x7ffa, (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff8, (q15_t)0x7ff8, (q15_t)0x7ff7, (q15_t)0x7ff7, (q15_t)0x7ff6, - (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff4, (q15_t)0x7ff3, (q15_t)0x7ff3, (q15_t)0x7ff2, (q15_t)0x7ff1, (q15_t)0x7ff0, - (q15_t)0x7ff0, (q15_t)0x7fef, (q15_t)0x7fee, (q15_t)0x7fed, (q15_t)0x7fec, (q15_t)0x7fec, (q15_t)0x7feb, (q15_t)0x7fea, - (q15_t)0x7fe9, (q15_t)0x7fe8, (q15_t)0x7fe7, (q15_t)0x7fe6, (q15_t)0x7fe5, (q15_t)0x7fe4, (q15_t)0x7fe3, (q15_t)0x7fe2, - (q15_t)0x7fe1, (q15_t)0x7fe0, (q15_t)0x7fdf, (q15_t)0x7fdd, (q15_t)0x7fdc, (q15_t)0x7fdb, (q15_t)0x7fda, (q15_t)0x7fd9, - (q15_t)0x7fd7, (q15_t)0x7fd6, (q15_t)0x7fd5, (q15_t)0x7fd4, (q15_t)0x7fd2, (q15_t)0x7fd1, (q15_t)0x7fd0, (q15_t)0x7fce, - (q15_t)0x7fcd, (q15_t)0x7fcb, (q15_t)0x7fca, (q15_t)0x7fc9, (q15_t)0x7fc7, (q15_t)0x7fc6, (q15_t)0x7fc4, (q15_t)0x7fc3, - (q15_t)0x7fc1, (q15_t)0x7fc0, (q15_t)0x7fbe, (q15_t)0x7fbc, (q15_t)0x7fbb, (q15_t)0x7fb9, (q15_t)0x7fb7, (q15_t)0x7fb6, - (q15_t)0x7fb4, (q15_t)0x7fb2, (q15_t)0x7fb1, (q15_t)0x7faf, (q15_t)0x7fad, (q15_t)0x7fab, (q15_t)0x7fa9, (q15_t)0x7fa8, - (q15_t)0x7fa6, (q15_t)0x7fa4, (q15_t)0x7fa2, (q15_t)0x7fa0, (q15_t)0x7f9e, (q15_t)0x7f9c, (q15_t)0x7f9a, (q15_t)0x7f98, - (q15_t)0x7f96, (q15_t)0x7f94, (q15_t)0x7f92, (q15_t)0x7f90, (q15_t)0x7f8e, (q15_t)0x7f8c, (q15_t)0x7f8a, (q15_t)0x7f88, - (q15_t)0x7f86, (q15_t)0x7f83, (q15_t)0x7f81, (q15_t)0x7f7f, (q15_t)0x7f7d, (q15_t)0x7f7b, (q15_t)0x7f78, (q15_t)0x7f76, - (q15_t)0x7f74, (q15_t)0x7f71, (q15_t)0x7f6f, (q15_t)0x7f6d, (q15_t)0x7f6a, (q15_t)0x7f68, (q15_t)0x7f65, (q15_t)0x7f63, - (q15_t)0x7f60, (q15_t)0x7f5e, (q15_t)0x7f5b, (q15_t)0x7f59, (q15_t)0x7f56, (q15_t)0x7f54, (q15_t)0x7f51, (q15_t)0x7f4f, - (q15_t)0x7f4c, (q15_t)0x7f49, (q15_t)0x7f47, (q15_t)0x7f44, (q15_t)0x7f41, (q15_t)0x7f3f, (q15_t)0x7f3c, (q15_t)0x7f39, - (q15_t)0x7f36, (q15_t)0x7f34, (q15_t)0x7f31, (q15_t)0x7f2e, (q15_t)0x7f2b, (q15_t)0x7f28, (q15_t)0x7f25, (q15_t)0x7f23, - (q15_t)0x7f20, (q15_t)0x7f1d, (q15_t)0x7f1a, (q15_t)0x7f17, (q15_t)0x7f14, (q15_t)0x7f11, (q15_t)0x7f0e, (q15_t)0x7f0b, - (q15_t)0x7f08, (q15_t)0x7f04, (q15_t)0x7f01, (q15_t)0x7efe, (q15_t)0x7efb, (q15_t)0x7ef8, (q15_t)0x7ef5, (q15_t)0x7ef1, - (q15_t)0x7eee, (q15_t)0x7eeb, (q15_t)0x7ee8, (q15_t)0x7ee4, (q15_t)0x7ee1, (q15_t)0x7ede, (q15_t)0x7eda, (q15_t)0x7ed7, - (q15_t)0x7ed4, (q15_t)0x7ed0, (q15_t)0x7ecd, (q15_t)0x7ec9, (q15_t)0x7ec6, (q15_t)0x7ec3, (q15_t)0x7ebf, (q15_t)0x7ebb, - (q15_t)0x7eb8, (q15_t)0x7eb4, (q15_t)0x7eb1, (q15_t)0x7ead, (q15_t)0x7eaa, (q15_t)0x7ea6, (q15_t)0x7ea2, (q15_t)0x7e9f, - (q15_t)0x7e9b, (q15_t)0x7e97, (q15_t)0x7e94, (q15_t)0x7e90, (q15_t)0x7e8c, (q15_t)0x7e88, (q15_t)0x7e84, (q15_t)0x7e81, - (q15_t)0x7e7d, (q15_t)0x7e79, (q15_t)0x7e75, (q15_t)0x7e71, (q15_t)0x7e6d, (q15_t)0x7e69, (q15_t)0x7e65, (q15_t)0x7e61, - (q15_t)0x7e5d, (q15_t)0x7e59, (q15_t)0x7e55, (q15_t)0x7e51, (q15_t)0x7e4d, (q15_t)0x7e49, (q15_t)0x7e45, (q15_t)0x7e41, - (q15_t)0x7e3d, (q15_t)0x7e39, (q15_t)0x7e34, (q15_t)0x7e30, (q15_t)0x7e2c, (q15_t)0x7e28, (q15_t)0x7e24, (q15_t)0x7e1f, - (q15_t)0x7e1b, (q15_t)0x7e17, (q15_t)0x7e12, (q15_t)0x7e0e, (q15_t)0x7e0a, (q15_t)0x7e05, (q15_t)0x7e01, (q15_t)0x7dfc, - (q15_t)0x7df8, (q15_t)0x7df3, (q15_t)0x7def, (q15_t)0x7dea, (q15_t)0x7de6, (q15_t)0x7de1, (q15_t)0x7ddd, (q15_t)0x7dd8, - (q15_t)0x7dd4, (q15_t)0x7dcf, (q15_t)0x7dca, (q15_t)0x7dc6, (q15_t)0x7dc1, (q15_t)0x7dbc, (q15_t)0x7db8, (q15_t)0x7db3, - (q15_t)0x7dae, (q15_t)0x7da9, (q15_t)0x7da5, (q15_t)0x7da0, (q15_t)0x7d9b, (q15_t)0x7d96, (q15_t)0x7d91, (q15_t)0x7d8c, - (q15_t)0x7d87, (q15_t)0x7d82, (q15_t)0x7d7e, (q15_t)0x7d79, (q15_t)0x7d74, (q15_t)0x7d6f, (q15_t)0x7d6a, (q15_t)0x7d65, - (q15_t)0x7d60, (q15_t)0x7d5a, (q15_t)0x7d55, (q15_t)0x7d50, (q15_t)0x7d4b, (q15_t)0x7d46, (q15_t)0x7d41, (q15_t)0x7d3c, - (q15_t)0x7d36, (q15_t)0x7d31, (q15_t)0x7d2c, (q15_t)0x7d27, (q15_t)0x7d21, (q15_t)0x7d1c, (q15_t)0x7d17, (q15_t)0x7d11, - (q15_t)0x7d0c, (q15_t)0x7d07, (q15_t)0x7d01, (q15_t)0x7cfc, (q15_t)0x7cf6, (q15_t)0x7cf1, (q15_t)0x7cec, (q15_t)0x7ce6, - (q15_t)0x7ce1, (q15_t)0x7cdb, (q15_t)0x7cd5, (q15_t)0x7cd0, (q15_t)0x7cca, (q15_t)0x7cc5, (q15_t)0x7cbf, (q15_t)0x7cb9, - (q15_t)0x7cb4, (q15_t)0x7cae, (q15_t)0x7ca8, (q15_t)0x7ca3, (q15_t)0x7c9d, (q15_t)0x7c97, (q15_t)0x7c91, (q15_t)0x7c8c, - (q15_t)0x7c86, (q15_t)0x7c80, (q15_t)0x7c7a, (q15_t)0x7c74, (q15_t)0x7c6e, (q15_t)0x7c69, (q15_t)0x7c63, (q15_t)0x7c5d, - (q15_t)0x7c57, (q15_t)0x7c51, (q15_t)0x7c4b, (q15_t)0x7c45, (q15_t)0x7c3f, (q15_t)0x7c39, (q15_t)0x7c33, (q15_t)0x7c2d, - (q15_t)0x7c26, (q15_t)0x7c20, (q15_t)0x7c1a, (q15_t)0x7c14, (q15_t)0x7c0e, (q15_t)0x7c08, (q15_t)0x7c01, (q15_t)0x7bfb, - (q15_t)0x7bf5, (q15_t)0x7bef, (q15_t)0x7be8, (q15_t)0x7be2, (q15_t)0x7bdc, (q15_t)0x7bd5, (q15_t)0x7bcf, (q15_t)0x7bc9, - (q15_t)0x7bc2, (q15_t)0x7bbc, (q15_t)0x7bb5, (q15_t)0x7baf, (q15_t)0x7ba8, (q15_t)0x7ba2, (q15_t)0x7b9b, (q15_t)0x7b95, - (q15_t)0x7b8e, (q15_t)0x7b88, (q15_t)0x7b81, (q15_t)0x7b7a, (q15_t)0x7b74, (q15_t)0x7b6d, (q15_t)0x7b67, (q15_t)0x7b60, - (q15_t)0x7b59, (q15_t)0x7b52, (q15_t)0x7b4c, (q15_t)0x7b45, (q15_t)0x7b3e, (q15_t)0x7b37, (q15_t)0x7b31, (q15_t)0x7b2a, - (q15_t)0x7b23, (q15_t)0x7b1c, (q15_t)0x7b15, (q15_t)0x7b0e, (q15_t)0x7b07, (q15_t)0x7b00, (q15_t)0x7af9, (q15_t)0x7af2, - (q15_t)0x7aeb, (q15_t)0x7ae4, (q15_t)0x7add, (q15_t)0x7ad6, (q15_t)0x7acf, (q15_t)0x7ac8, (q15_t)0x7ac1, (q15_t)0x7aba, - (q15_t)0x7ab3, (q15_t)0x7aac, (q15_t)0x7aa4, (q15_t)0x7a9d, (q15_t)0x7a96, (q15_t)0x7a8f, (q15_t)0x7a87, (q15_t)0x7a80, - (q15_t)0x7a79, (q15_t)0x7a72, (q15_t)0x7a6a, (q15_t)0x7a63, (q15_t)0x7a5c, (q15_t)0x7a54, (q15_t)0x7a4d, (q15_t)0x7a45, - (q15_t)0x7a3e, (q15_t)0x7a36, (q15_t)0x7a2f, (q15_t)0x7a27, (q15_t)0x7a20, (q15_t)0x7a18, (q15_t)0x7a11, (q15_t)0x7a09, - (q15_t)0x7a02, (q15_t)0x79fa, (q15_t)0x79f2, (q15_t)0x79eb, (q15_t)0x79e3, (q15_t)0x79db, (q15_t)0x79d4, (q15_t)0x79cc, - (q15_t)0x79c4, (q15_t)0x79bc, (q15_t)0x79b5, (q15_t)0x79ad, (q15_t)0x79a5, (q15_t)0x799d, (q15_t)0x7995, (q15_t)0x798e, - (q15_t)0x7986, (q15_t)0x797e, (q15_t)0x7976, (q15_t)0x796e, (q15_t)0x7966, (q15_t)0x795e, (q15_t)0x7956, (q15_t)0x794e, - (q15_t)0x7946, (q15_t)0x793e, (q15_t)0x7936, (q15_t)0x792e, (q15_t)0x7926, (q15_t)0x791e, (q15_t)0x7915, (q15_t)0x790d, - (q15_t)0x7905, (q15_t)0x78fd, (q15_t)0x78f5, (q15_t)0x78ec, (q15_t)0x78e4, (q15_t)0x78dc, (q15_t)0x78d4, (q15_t)0x78cb, - (q15_t)0x78c3, (q15_t)0x78bb, (q15_t)0x78b2, (q15_t)0x78aa, (q15_t)0x78a2, (q15_t)0x7899, (q15_t)0x7891, (q15_t)0x7888, - (q15_t)0x7880, (q15_t)0x7877, (q15_t)0x786f, (q15_t)0x7866, (q15_t)0x785e, (q15_t)0x7855, (q15_t)0x784d, (q15_t)0x7844, - (q15_t)0x783b, (q15_t)0x7833, (q15_t)0x782a, (q15_t)0x7821, (q15_t)0x7819, (q15_t)0x7810, (q15_t)0x7807, (q15_t)0x77ff, - (q15_t)0x77f6, (q15_t)0x77ed, (q15_t)0x77e4, (q15_t)0x77db, (q15_t)0x77d3, (q15_t)0x77ca, (q15_t)0x77c1, (q15_t)0x77b8, - (q15_t)0x77af, (q15_t)0x77a6, (q15_t)0x779d, (q15_t)0x7794, (q15_t)0x778b, (q15_t)0x7782, (q15_t)0x7779, (q15_t)0x7770, - (q15_t)0x7767, (q15_t)0x775e, (q15_t)0x7755, (q15_t)0x774c, (q15_t)0x7743, (q15_t)0x773a, (q15_t)0x7731, (q15_t)0x7727, - (q15_t)0x771e, (q15_t)0x7715, (q15_t)0x770c, (q15_t)0x7703, (q15_t)0x76f9, (q15_t)0x76f0, (q15_t)0x76e7, (q15_t)0x76dd, - (q15_t)0x76d4, (q15_t)0x76cb, (q15_t)0x76c1, (q15_t)0x76b8, (q15_t)0x76af, (q15_t)0x76a5, (q15_t)0x769c, (q15_t)0x7692, - (q15_t)0x7689, (q15_t)0x767f, (q15_t)0x7676, (q15_t)0x766c, (q15_t)0x7663, (q15_t)0x7659, (q15_t)0x7650, (q15_t)0x7646, - (q15_t)0x763c, (q15_t)0x7633, (q15_t)0x7629, (q15_t)0x761f, (q15_t)0x7616, (q15_t)0x760c, (q15_t)0x7602, (q15_t)0x75f9, - (q15_t)0x75ef, (q15_t)0x75e5, (q15_t)0x75db, (q15_t)0x75d1, (q15_t)0x75c8, (q15_t)0x75be, (q15_t)0x75b4, (q15_t)0x75aa, - (q15_t)0x75a0, (q15_t)0x7596, (q15_t)0x758c, (q15_t)0x7582, (q15_t)0x7578, (q15_t)0x756e, (q15_t)0x7564, (q15_t)0x755a, - (q15_t)0x7550, (q15_t)0x7546, (q15_t)0x753c, (q15_t)0x7532, (q15_t)0x7528, (q15_t)0x751e, (q15_t)0x7514, (q15_t)0x7509, - (q15_t)0x74ff, (q15_t)0x74f5, (q15_t)0x74eb, (q15_t)0x74e1, (q15_t)0x74d6, (q15_t)0x74cc, (q15_t)0x74c2, (q15_t)0x74b7, - (q15_t)0x74ad, (q15_t)0x74a3, (q15_t)0x7498, (q15_t)0x748e, (q15_t)0x7484, (q15_t)0x7479, (q15_t)0x746f, (q15_t)0x7464, - (q15_t)0x745a, (q15_t)0x744f, (q15_t)0x7445, (q15_t)0x743a, (q15_t)0x7430, (q15_t)0x7425, (q15_t)0x741b, (q15_t)0x7410, - (q15_t)0x7406, (q15_t)0x73fb, (q15_t)0x73f0, (q15_t)0x73e6, (q15_t)0x73db, (q15_t)0x73d0, (q15_t)0x73c6, (q15_t)0x73bb, - (q15_t)0x73b0, (q15_t)0x73a5, (q15_t)0x739b, (q15_t)0x7390, (q15_t)0x7385, (q15_t)0x737a, (q15_t)0x736f, (q15_t)0x7364, - (q15_t)0x7359, (q15_t)0x734f, (q15_t)0x7344, (q15_t)0x7339, (q15_t)0x732e, (q15_t)0x7323, (q15_t)0x7318, (q15_t)0x730d, - (q15_t)0x7302, (q15_t)0x72f7, (q15_t)0x72ec, (q15_t)0x72e1, (q15_t)0x72d5, (q15_t)0x72ca, (q15_t)0x72bf, (q15_t)0x72b4, - (q15_t)0x72a9, (q15_t)0x729e, (q15_t)0x7293, (q15_t)0x7287, (q15_t)0x727c, (q15_t)0x7271, (q15_t)0x7266, (q15_t)0x725a, - (q15_t)0x724f, (q15_t)0x7244, (q15_t)0x7238, (q15_t)0x722d, (q15_t)0x7222, (q15_t)0x7216, (q15_t)0x720b, (q15_t)0x71ff, - (q15_t)0x71f4, (q15_t)0x71e9, (q15_t)0x71dd, (q15_t)0x71d2, (q15_t)0x71c6, (q15_t)0x71bb, (q15_t)0x71af, (q15_t)0x71a3, - (q15_t)0x7198, (q15_t)0x718c, (q15_t)0x7181, (q15_t)0x7175, (q15_t)0x7169, (q15_t)0x715e, (q15_t)0x7152, (q15_t)0x7146, - (q15_t)0x713b, (q15_t)0x712f, (q15_t)0x7123, (q15_t)0x7117, (q15_t)0x710c, (q15_t)0x7100, (q15_t)0x70f4, (q15_t)0x70e8, - (q15_t)0x70dc, (q15_t)0x70d1, (q15_t)0x70c5, (q15_t)0x70b9, (q15_t)0x70ad, (q15_t)0x70a1, (q15_t)0x7095, (q15_t)0x7089, - (q15_t)0x707d, (q15_t)0x7071, (q15_t)0x7065, (q15_t)0x7059, (q15_t)0x704d, (q15_t)0x7041, (q15_t)0x7035, (q15_t)0x7029, - (q15_t)0x701d, (q15_t)0x7010, (q15_t)0x7004, (q15_t)0x6ff8, (q15_t)0x6fec, (q15_t)0x6fe0, (q15_t)0x6fd3, (q15_t)0x6fc7, - (q15_t)0x6fbb, (q15_t)0x6faf, (q15_t)0x6fa2, (q15_t)0x6f96, (q15_t)0x6f8a, (q15_t)0x6f7d, (q15_t)0x6f71, (q15_t)0x6f65, - (q15_t)0x6f58, (q15_t)0x6f4c, (q15_t)0x6f3f, (q15_t)0x6f33, (q15_t)0x6f27, (q15_t)0x6f1a, (q15_t)0x6f0e, (q15_t)0x6f01, - (q15_t)0x6ef5, (q15_t)0x6ee8, (q15_t)0x6edc, (q15_t)0x6ecf, (q15_t)0x6ec2, (q15_t)0x6eb6, (q15_t)0x6ea9, (q15_t)0x6e9c, - (q15_t)0x6e90, (q15_t)0x6e83, (q15_t)0x6e76, (q15_t)0x6e6a, (q15_t)0x6e5d, (q15_t)0x6e50, (q15_t)0x6e44, (q15_t)0x6e37, - (q15_t)0x6e2a, (q15_t)0x6e1d, (q15_t)0x6e10, (q15_t)0x6e04, (q15_t)0x6df7, (q15_t)0x6dea, (q15_t)0x6ddd, (q15_t)0x6dd0, - (q15_t)0x6dc3, (q15_t)0x6db6, (q15_t)0x6da9, (q15_t)0x6d9c, (q15_t)0x6d8f, (q15_t)0x6d82, (q15_t)0x6d75, (q15_t)0x6d68, - (q15_t)0x6d5b, (q15_t)0x6d4e, (q15_t)0x6d41, (q15_t)0x6d34, (q15_t)0x6d27, (q15_t)0x6d1a, (q15_t)0x6d0c, (q15_t)0x6cff, - (q15_t)0x6cf2, (q15_t)0x6ce5, (q15_t)0x6cd8, (q15_t)0x6cca, (q15_t)0x6cbd, (q15_t)0x6cb0, (q15_t)0x6ca3, (q15_t)0x6c95, - (q15_t)0x6c88, (q15_t)0x6c7b, (q15_t)0x6c6d, (q15_t)0x6c60, (q15_t)0x6c53, (q15_t)0x6c45, (q15_t)0x6c38, (q15_t)0x6c2a, - (q15_t)0x6c1d, (q15_t)0x6c0f, (q15_t)0x6c02, (q15_t)0x6bf5, (q15_t)0x6be7, (q15_t)0x6bd9, (q15_t)0x6bcc, (q15_t)0x6bbe, - (q15_t)0x6bb1, (q15_t)0x6ba3, (q15_t)0x6b96, (q15_t)0x6b88, (q15_t)0x6b7a, (q15_t)0x6b6d, (q15_t)0x6b5f, (q15_t)0x6b51, - (q15_t)0x6b44, (q15_t)0x6b36, (q15_t)0x6b28, (q15_t)0x6b1a, (q15_t)0x6b0d, (q15_t)0x6aff, (q15_t)0x6af1, (q15_t)0x6ae3, - (q15_t)0x6ad5, (q15_t)0x6ac8, (q15_t)0x6aba, (q15_t)0x6aac, (q15_t)0x6a9e, (q15_t)0x6a90, (q15_t)0x6a82, (q15_t)0x6a74, - (q15_t)0x6a66, (q15_t)0x6a58, (q15_t)0x6a4a, (q15_t)0x6a3c, (q15_t)0x6a2e, (q15_t)0x6a20, (q15_t)0x6a12, (q15_t)0x6a04, - (q15_t)0x69f6, (q15_t)0x69e8, (q15_t)0x69da, (q15_t)0x69cb, (q15_t)0x69bd, (q15_t)0x69af, (q15_t)0x69a1, (q15_t)0x6993, - (q15_t)0x6985, (q15_t)0x6976, (q15_t)0x6968, (q15_t)0x695a, (q15_t)0x694b, (q15_t)0x693d, (q15_t)0x692f, (q15_t)0x6921, - (q15_t)0x6912, (q15_t)0x6904, (q15_t)0x68f5, (q15_t)0x68e7, (q15_t)0x68d9, (q15_t)0x68ca, (q15_t)0x68bc, (q15_t)0x68ad, - (q15_t)0x689f, (q15_t)0x6890, (q15_t)0x6882, (q15_t)0x6873, (q15_t)0x6865, (q15_t)0x6856, (q15_t)0x6848, (q15_t)0x6839, - (q15_t)0x682b, (q15_t)0x681c, (q15_t)0x680d, (q15_t)0x67ff, (q15_t)0x67f0, (q15_t)0x67e1, (q15_t)0x67d3, (q15_t)0x67c4, - (q15_t)0x67b5, (q15_t)0x67a6, (q15_t)0x6798, (q15_t)0x6789, (q15_t)0x677a, (q15_t)0x676b, (q15_t)0x675d, (q15_t)0x674e, - (q15_t)0x673f, (q15_t)0x6730, (q15_t)0x6721, (q15_t)0x6712, (q15_t)0x6703, (q15_t)0x66f4, (q15_t)0x66e5, (q15_t)0x66d6, - (q15_t)0x66c8, (q15_t)0x66b9, (q15_t)0x66aa, (q15_t)0x669b, (q15_t)0x668b, (q15_t)0x667c, (q15_t)0x666d, (q15_t)0x665e, - (q15_t)0x664f, (q15_t)0x6640, (q15_t)0x6631, (q15_t)0x6622, (q15_t)0x6613, (q15_t)0x6603, (q15_t)0x65f4, (q15_t)0x65e5, - (q15_t)0x65d6, (q15_t)0x65c7, (q15_t)0x65b7, (q15_t)0x65a8, (q15_t)0x6599, (q15_t)0x658a, (q15_t)0x657a, (q15_t)0x656b, - (q15_t)0x655c, (q15_t)0x654c, (q15_t)0x653d, (q15_t)0x652d, (q15_t)0x651e, (q15_t)0x650f, (q15_t)0x64ff, (q15_t)0x64f0, - (q15_t)0x64e0, (q15_t)0x64d1, (q15_t)0x64c1, (q15_t)0x64b2, (q15_t)0x64a2, (q15_t)0x6493, (q15_t)0x6483, (q15_t)0x6474, - (q15_t)0x6464, (q15_t)0x6454, (q15_t)0x6445, (q15_t)0x6435, (q15_t)0x6426, (q15_t)0x6416, (q15_t)0x6406, (q15_t)0x63f7, - (q15_t)0x63e7, (q15_t)0x63d7, (q15_t)0x63c7, (q15_t)0x63b8, (q15_t)0x63a8, (q15_t)0x6398, (q15_t)0x6388, (q15_t)0x6378, - (q15_t)0x6369, (q15_t)0x6359, (q15_t)0x6349, (q15_t)0x6339, (q15_t)0x6329, (q15_t)0x6319, (q15_t)0x6309, (q15_t)0x62f9, - (q15_t)0x62ea, (q15_t)0x62da, (q15_t)0x62ca, (q15_t)0x62ba, (q15_t)0x62aa, (q15_t)0x629a, (q15_t)0x628a, (q15_t)0x627a, - (q15_t)0x6269, (q15_t)0x6259, (q15_t)0x6249, (q15_t)0x6239, (q15_t)0x6229, (q15_t)0x6219, (q15_t)0x6209, (q15_t)0x61f9, - (q15_t)0x61e8, (q15_t)0x61d8, (q15_t)0x61c8, (q15_t)0x61b8, (q15_t)0x61a8, (q15_t)0x6197, (q15_t)0x6187, (q15_t)0x6177, - (q15_t)0x6166, (q15_t)0x6156, (q15_t)0x6146, (q15_t)0x6135, (q15_t)0x6125, (q15_t)0x6115, (q15_t)0x6104, (q15_t)0x60f4, - (q15_t)0x60e4, (q15_t)0x60d3, (q15_t)0x60c3, (q15_t)0x60b2, (q15_t)0x60a2, (q15_t)0x6091, (q15_t)0x6081, (q15_t)0x6070, - (q15_t)0x6060, (q15_t)0x604f, (q15_t)0x603f, (q15_t)0x602e, (q15_t)0x601d, (q15_t)0x600d, (q15_t)0x5ffc, (q15_t)0x5fec, - (q15_t)0x5fdb, (q15_t)0x5fca, (q15_t)0x5fba, (q15_t)0x5fa9, (q15_t)0x5f98, (q15_t)0x5f87, (q15_t)0x5f77, (q15_t)0x5f66, - (q15_t)0x5f55, (q15_t)0x5f44, (q15_t)0x5f34, (q15_t)0x5f23, (q15_t)0x5f12, (q15_t)0x5f01, (q15_t)0x5ef0, (q15_t)0x5edf, - (q15_t)0x5ecf, (q15_t)0x5ebe, (q15_t)0x5ead, (q15_t)0x5e9c, (q15_t)0x5e8b, (q15_t)0x5e7a, (q15_t)0x5e69, (q15_t)0x5e58, - (q15_t)0x5e47, (q15_t)0x5e36, (q15_t)0x5e25, (q15_t)0x5e14, (q15_t)0x5e03, (q15_t)0x5df2, (q15_t)0x5de1, (q15_t)0x5dd0, - (q15_t)0x5dbf, (q15_t)0x5dad, (q15_t)0x5d9c, (q15_t)0x5d8b, (q15_t)0x5d7a, (q15_t)0x5d69, (q15_t)0x5d58, (q15_t)0x5d46, - (q15_t)0x5d35, (q15_t)0x5d24, (q15_t)0x5d13, (q15_t)0x5d01, (q15_t)0x5cf0, (q15_t)0x5cdf, (q15_t)0x5cce, (q15_t)0x5cbc, - (q15_t)0x5cab, (q15_t)0x5c9a, (q15_t)0x5c88, (q15_t)0x5c77, (q15_t)0x5c66, (q15_t)0x5c54, (q15_t)0x5c43, (q15_t)0x5c31, - (q15_t)0x5c20, (q15_t)0x5c0e, (q15_t)0x5bfd, (q15_t)0x5beb, (q15_t)0x5bda, (q15_t)0x5bc8, (q15_t)0x5bb7, (q15_t)0x5ba5, - (q15_t)0x5b94, (q15_t)0x5b82, (q15_t)0x5b71, (q15_t)0x5b5f, (q15_t)0x5b4d, (q15_t)0x5b3c, (q15_t)0x5b2a, (q15_t)0x5b19, - (q15_t)0x5b07, (q15_t)0x5af5, (q15_t)0x5ae4, (q15_t)0x5ad2, (q15_t)0x5ac0, (q15_t)0x5aae, (q15_t)0x5a9d, (q15_t)0x5a8b, - (q15_t)0x5a79, (q15_t)0x5a67, (q15_t)0x5a56, (q15_t)0x5a44, (q15_t)0x5a32, (q15_t)0x5a20, (q15_t)0x5a0e, (q15_t)0x59fc, - (q15_t)0x59ea, (q15_t)0x59d9, (q15_t)0x59c7, (q15_t)0x59b5, (q15_t)0x59a3, (q15_t)0x5991, (q15_t)0x597f, (q15_t)0x596d, - (q15_t)0x595b, (q15_t)0x5949, (q15_t)0x5937, (q15_t)0x5925, (q15_t)0x5913, (q15_t)0x5901, (q15_t)0x58ef, (q15_t)0x58dd, - (q15_t)0x58cb, (q15_t)0x58b8, (q15_t)0x58a6, (q15_t)0x5894, (q15_t)0x5882, (q15_t)0x5870, (q15_t)0x585e, (q15_t)0x584b, - (q15_t)0x5839, (q15_t)0x5827, (q15_t)0x5815, (q15_t)0x5803, (q15_t)0x57f0, (q15_t)0x57de, (q15_t)0x57cc, (q15_t)0x57b9, - (q15_t)0x57a7, (q15_t)0x5795, (q15_t)0x5783, (q15_t)0x5770, (q15_t)0x575e, (q15_t)0x574b, (q15_t)0x5739, (q15_t)0x5727, - (q15_t)0x5714, (q15_t)0x5702, (q15_t)0x56ef, (q15_t)0x56dd, (q15_t)0x56ca, (q15_t)0x56b8, (q15_t)0x56a5, (q15_t)0x5693, - (q15_t)0x5680, (q15_t)0x566e, (q15_t)0x565b, (q15_t)0x5649, (q15_t)0x5636, (q15_t)0x5624, (q15_t)0x5611, (q15_t)0x55fe, - (q15_t)0x55ec, (q15_t)0x55d9, (q15_t)0x55c7, (q15_t)0x55b4, (q15_t)0x55a1, (q15_t)0x558f, (q15_t)0x557c, (q15_t)0x5569, - (q15_t)0x5556, (q15_t)0x5544, (q15_t)0x5531, (q15_t)0x551e, (q15_t)0x550b, (q15_t)0x54f9, (q15_t)0x54e6, (q15_t)0x54d3, - (q15_t)0x54c0, (q15_t)0x54ad, (q15_t)0x549a, (q15_t)0x5488, (q15_t)0x5475, (q15_t)0x5462, (q15_t)0x544f, (q15_t)0x543c, - (q15_t)0x5429, (q15_t)0x5416, (q15_t)0x5403, (q15_t)0x53f0, (q15_t)0x53dd, (q15_t)0x53ca, (q15_t)0x53b7, (q15_t)0x53a4, - (q15_t)0x5391, (q15_t)0x537e, (q15_t)0x536b, (q15_t)0x5358, (q15_t)0x5345, (q15_t)0x5332, (q15_t)0x531f, (q15_t)0x530c, - (q15_t)0x52f8, (q15_t)0x52e5, (q15_t)0x52d2, (q15_t)0x52bf, (q15_t)0x52ac, (q15_t)0x5299, (q15_t)0x5285, (q15_t)0x5272, - (q15_t)0x525f, (q15_t)0x524c, (q15_t)0x5238, (q15_t)0x5225, (q15_t)0x5212, (q15_t)0x51ff, (q15_t)0x51eb, (q15_t)0x51d8, - (q15_t)0x51c5, (q15_t)0x51b1, (q15_t)0x519e, (q15_t)0x518b, (q15_t)0x5177, (q15_t)0x5164, (q15_t)0x5150, (q15_t)0x513d, - (q15_t)0x512a, (q15_t)0x5116, (q15_t)0x5103, (q15_t)0x50ef, (q15_t)0x50dc, (q15_t)0x50c8, (q15_t)0x50b5, (q15_t)0x50a1, - (q15_t)0x508e, (q15_t)0x507a, (q15_t)0x5067, (q15_t)0x5053, (q15_t)0x503f, (q15_t)0x502c, (q15_t)0x5018, (q15_t)0x5005, - (q15_t)0x4ff1, (q15_t)0x4fdd, (q15_t)0x4fca, (q15_t)0x4fb6, (q15_t)0x4fa2, (q15_t)0x4f8f, (q15_t)0x4f7b, (q15_t)0x4f67, - (q15_t)0x4f54, (q15_t)0x4f40, (q15_t)0x4f2c, (q15_t)0x4f18, (q15_t)0x4f05, (q15_t)0x4ef1, (q15_t)0x4edd, (q15_t)0x4ec9, - (q15_t)0x4eb6, (q15_t)0x4ea2, (q15_t)0x4e8e, (q15_t)0x4e7a, (q15_t)0x4e66, (q15_t)0x4e52, (q15_t)0x4e3e, (q15_t)0x4e2a, - (q15_t)0x4e17, (q15_t)0x4e03, (q15_t)0x4def, (q15_t)0x4ddb, (q15_t)0x4dc7, (q15_t)0x4db3, (q15_t)0x4d9f, (q15_t)0x4d8b, - (q15_t)0x4d77, (q15_t)0x4d63, (q15_t)0x4d4f, (q15_t)0x4d3b, (q15_t)0x4d27, (q15_t)0x4d13, (q15_t)0x4cff, (q15_t)0x4ceb, - (q15_t)0x4cd6, (q15_t)0x4cc2, (q15_t)0x4cae, (q15_t)0x4c9a, (q15_t)0x4c86, (q15_t)0x4c72, (q15_t)0x4c5e, (q15_t)0x4c49, - (q15_t)0x4c35, (q15_t)0x4c21, (q15_t)0x4c0d, (q15_t)0x4bf9, (q15_t)0x4be4, (q15_t)0x4bd0, (q15_t)0x4bbc, (q15_t)0x4ba8, - (q15_t)0x4b93, (q15_t)0x4b7f, (q15_t)0x4b6b, (q15_t)0x4b56, (q15_t)0x4b42, (q15_t)0x4b2e, (q15_t)0x4b19, (q15_t)0x4b05, - (q15_t)0x4af1, (q15_t)0x4adc, (q15_t)0x4ac8, (q15_t)0x4ab4, (q15_t)0x4a9f, (q15_t)0x4a8b, (q15_t)0x4a76, (q15_t)0x4a62, - (q15_t)0x4a4d, (q15_t)0x4a39, (q15_t)0x4a24, (q15_t)0x4a10, (q15_t)0x49fb, (q15_t)0x49e7, (q15_t)0x49d2, (q15_t)0x49be, - (q15_t)0x49a9, (q15_t)0x4995, (q15_t)0x4980, (q15_t)0x496c, (q15_t)0x4957, (q15_t)0x4942, (q15_t)0x492e, (q15_t)0x4919, - (q15_t)0x4905, (q15_t)0x48f0, (q15_t)0x48db, (q15_t)0x48c7, (q15_t)0x48b2, (q15_t)0x489d, (q15_t)0x4888, (q15_t)0x4874, - (q15_t)0x485f, (q15_t)0x484a, (q15_t)0x4836, (q15_t)0x4821, (q15_t)0x480c, (q15_t)0x47f7, (q15_t)0x47e2, (q15_t)0x47ce, - (q15_t)0x47b9, (q15_t)0x47a4, (q15_t)0x478f, (q15_t)0x477a, (q15_t)0x4765, (q15_t)0x4751, (q15_t)0x473c, (q15_t)0x4727, - (q15_t)0x4712, (q15_t)0x46fd, (q15_t)0x46e8, (q15_t)0x46d3, (q15_t)0x46be, (q15_t)0x46a9, (q15_t)0x4694, (q15_t)0x467f, - (q15_t)0x466a, (q15_t)0x4655, (q15_t)0x4640, (q15_t)0x462b, (q15_t)0x4616, (q15_t)0x4601, (q15_t)0x45ec, (q15_t)0x45d7, - (q15_t)0x45c2, (q15_t)0x45ad, (q15_t)0x4598, (q15_t)0x4583, (q15_t)0x456e, (q15_t)0x4559, (q15_t)0x4544, (q15_t)0x452e, - (q15_t)0x4519, (q15_t)0x4504, (q15_t)0x44ef, (q15_t)0x44da, (q15_t)0x44c5, (q15_t)0x44af, (q15_t)0x449a, (q15_t)0x4485, - (q15_t)0x4470, (q15_t)0x445a, (q15_t)0x4445, (q15_t)0x4430, (q15_t)0x441b, (q15_t)0x4405, (q15_t)0x43f0, (q15_t)0x43db, - (q15_t)0x43c5, (q15_t)0x43b0, (q15_t)0x439b, (q15_t)0x4385, (q15_t)0x4370, (q15_t)0x435b, (q15_t)0x4345, (q15_t)0x4330, - (q15_t)0x431b, (q15_t)0x4305, (q15_t)0x42f0, (q15_t)0x42da, (q15_t)0x42c5, (q15_t)0x42af, (q15_t)0x429a, (q15_t)0x4284, - (q15_t)0x426f, (q15_t)0x425a, (q15_t)0x4244, (q15_t)0x422f, (q15_t)0x4219, (q15_t)0x4203, (q15_t)0x41ee, (q15_t)0x41d8, - (q15_t)0x41c3, (q15_t)0x41ad, (q15_t)0x4198, (q15_t)0x4182, (q15_t)0x416d, (q15_t)0x4157, (q15_t)0x4141, (q15_t)0x412c, - (q15_t)0x4116, (q15_t)0x4100, (q15_t)0x40eb, (q15_t)0x40d5, (q15_t)0x40bf, (q15_t)0x40aa, (q15_t)0x4094, (q15_t)0x407e, - (q15_t)0x4069, (q15_t)0x4053, (q15_t)0x403d, (q15_t)0x4027, (q15_t)0x4012, (q15_t)0x3ffc, (q15_t)0x3fe6, (q15_t)0x3fd0, - (q15_t)0x3fbb, (q15_t)0x3fa5, (q15_t)0x3f8f, (q15_t)0x3f79, (q15_t)0x3f63, (q15_t)0x3f4d, (q15_t)0x3f38, (q15_t)0x3f22, - (q15_t)0x3f0c, (q15_t)0x3ef6, (q15_t)0x3ee0, (q15_t)0x3eca, (q15_t)0x3eb4, (q15_t)0x3e9e, (q15_t)0x3e88, (q15_t)0x3e73, - (q15_t)0x3e5d, (q15_t)0x3e47, (q15_t)0x3e31, (q15_t)0x3e1b, (q15_t)0x3e05, (q15_t)0x3def, (q15_t)0x3dd9, (q15_t)0x3dc3, - (q15_t)0x3dad, (q15_t)0x3d97, (q15_t)0x3d81, (q15_t)0x3d6b, (q15_t)0x3d55, (q15_t)0x3d3e, (q15_t)0x3d28, (q15_t)0x3d12, - (q15_t)0x3cfc, (q15_t)0x3ce6, (q15_t)0x3cd0, (q15_t)0x3cba, (q15_t)0x3ca4, (q15_t)0x3c8e, (q15_t)0x3c77, (q15_t)0x3c61, - (q15_t)0x3c4b, (q15_t)0x3c35, (q15_t)0x3c1f, (q15_t)0x3c09, (q15_t)0x3bf2, (q15_t)0x3bdc, (q15_t)0x3bc6, (q15_t)0x3bb0, - (q15_t)0x3b99, (q15_t)0x3b83, (q15_t)0x3b6d, (q15_t)0x3b57, (q15_t)0x3b40, (q15_t)0x3b2a, (q15_t)0x3b14, (q15_t)0x3afe, - (q15_t)0x3ae7, (q15_t)0x3ad1, (q15_t)0x3abb, (q15_t)0x3aa4, (q15_t)0x3a8e, (q15_t)0x3a78, (q15_t)0x3a61, (q15_t)0x3a4b, - (q15_t)0x3a34, (q15_t)0x3a1e, (q15_t)0x3a08, (q15_t)0x39f1, (q15_t)0x39db, (q15_t)0x39c4, (q15_t)0x39ae, (q15_t)0x3998, - (q15_t)0x3981, (q15_t)0x396b, (q15_t)0x3954, (q15_t)0x393e, (q15_t)0x3927, (q15_t)0x3911, (q15_t)0x38fa, (q15_t)0x38e4, - (q15_t)0x38cd, (q15_t)0x38b7, (q15_t)0x38a0, (q15_t)0x388a, (q15_t)0x3873, (q15_t)0x385d, (q15_t)0x3846, (q15_t)0x382f, - (q15_t)0x3819, (q15_t)0x3802, (q15_t)0x37ec, (q15_t)0x37d5, (q15_t)0x37be, (q15_t)0x37a8, (q15_t)0x3791, (q15_t)0x377a, - (q15_t)0x3764, (q15_t)0x374d, (q15_t)0x3736, (q15_t)0x3720, (q15_t)0x3709, (q15_t)0x36f2, (q15_t)0x36dc, (q15_t)0x36c5, - (q15_t)0x36ae, (q15_t)0x3698, (q15_t)0x3681, (q15_t)0x366a, (q15_t)0x3653, (q15_t)0x363d, (q15_t)0x3626, (q15_t)0x360f, - (q15_t)0x35f8, (q15_t)0x35e1, (q15_t)0x35cb, (q15_t)0x35b4, (q15_t)0x359d, (q15_t)0x3586, (q15_t)0x356f, (q15_t)0x3558, - (q15_t)0x3542, (q15_t)0x352b, (q15_t)0x3514, (q15_t)0x34fd, (q15_t)0x34e6, (q15_t)0x34cf, (q15_t)0x34b8, (q15_t)0x34a1, - (q15_t)0x348b, (q15_t)0x3474, (q15_t)0x345d, (q15_t)0x3446, (q15_t)0x342f, (q15_t)0x3418, (q15_t)0x3401, (q15_t)0x33ea, - (q15_t)0x33d3, (q15_t)0x33bc, (q15_t)0x33a5, (q15_t)0x338e, (q15_t)0x3377, (q15_t)0x3360, (q15_t)0x3349, (q15_t)0x3332, - (q15_t)0x331b, (q15_t)0x3304, (q15_t)0x32ed, (q15_t)0x32d6, (q15_t)0x32bf, (q15_t)0x32a8, (q15_t)0x3290, (q15_t)0x3279, - (q15_t)0x3262, (q15_t)0x324b, (q15_t)0x3234, (q15_t)0x321d, (q15_t)0x3206, (q15_t)0x31ef, (q15_t)0x31d8, (q15_t)0x31c0, - (q15_t)0x31a9, (q15_t)0x3192, (q15_t)0x317b, (q15_t)0x3164, (q15_t)0x314c, (q15_t)0x3135, (q15_t)0x311e, (q15_t)0x3107, - (q15_t)0x30f0, (q15_t)0x30d8, (q15_t)0x30c1, (q15_t)0x30aa, (q15_t)0x3093, (q15_t)0x307b, (q15_t)0x3064, (q15_t)0x304d, - (q15_t)0x3036, (q15_t)0x301e, (q15_t)0x3007, (q15_t)0x2ff0, (q15_t)0x2fd8, (q15_t)0x2fc1, (q15_t)0x2faa, (q15_t)0x2f92, - (q15_t)0x2f7b, (q15_t)0x2f64, (q15_t)0x2f4c, (q15_t)0x2f35, (q15_t)0x2f1e, (q15_t)0x2f06, (q15_t)0x2eef, (q15_t)0x2ed8, - (q15_t)0x2ec0, (q15_t)0x2ea9, (q15_t)0x2e91, (q15_t)0x2e7a, (q15_t)0x2e63, (q15_t)0x2e4b, (q15_t)0x2e34, (q15_t)0x2e1c, - (q15_t)0x2e05, (q15_t)0x2ded, (q15_t)0x2dd6, (q15_t)0x2dbe, (q15_t)0x2da7, (q15_t)0x2d8f, (q15_t)0x2d78, (q15_t)0x2d60, - (q15_t)0x2d49, (q15_t)0x2d31, (q15_t)0x2d1a, (q15_t)0x2d02, (q15_t)0x2ceb, (q15_t)0x2cd3, (q15_t)0x2cbc, (q15_t)0x2ca4, - (q15_t)0x2c8d, (q15_t)0x2c75, (q15_t)0x2c5e, (q15_t)0x2c46, (q15_t)0x2c2e, (q15_t)0x2c17, (q15_t)0x2bff, (q15_t)0x2be8, - (q15_t)0x2bd0, (q15_t)0x2bb8, (q15_t)0x2ba1, (q15_t)0x2b89, (q15_t)0x2b71, (q15_t)0x2b5a, (q15_t)0x2b42, (q15_t)0x2b2b, - (q15_t)0x2b13, (q15_t)0x2afb, (q15_t)0x2ae4, (q15_t)0x2acc, (q15_t)0x2ab4, (q15_t)0x2a9c, (q15_t)0x2a85, (q15_t)0x2a6d, - (q15_t)0x2a55, (q15_t)0x2a3e, (q15_t)0x2a26, (q15_t)0x2a0e, (q15_t)0x29f6, (q15_t)0x29df, (q15_t)0x29c7, (q15_t)0x29af, - (q15_t)0x2997, (q15_t)0x2980, (q15_t)0x2968, (q15_t)0x2950, (q15_t)0x2938, (q15_t)0x2920, (q15_t)0x2909, (q15_t)0x28f1, - (q15_t)0x28d9, (q15_t)0x28c1, (q15_t)0x28a9, (q15_t)0x2892, (q15_t)0x287a, (q15_t)0x2862, (q15_t)0x284a, (q15_t)0x2832, - (q15_t)0x281a, (q15_t)0x2802, (q15_t)0x27eb, (q15_t)0x27d3, (q15_t)0x27bb, (q15_t)0x27a3, (q15_t)0x278b, (q15_t)0x2773, - (q15_t)0x275b, (q15_t)0x2743, (q15_t)0x272b, (q15_t)0x2713, (q15_t)0x26fb, (q15_t)0x26e4, (q15_t)0x26cc, (q15_t)0x26b4, - (q15_t)0x269c, (q15_t)0x2684, (q15_t)0x266c, (q15_t)0x2654, (q15_t)0x263c, (q15_t)0x2624, (q15_t)0x260c, (q15_t)0x25f4, - (q15_t)0x25dc, (q15_t)0x25c4, (q15_t)0x25ac, (q15_t)0x2594, (q15_t)0x257c, (q15_t)0x2564, (q15_t)0x254c, (q15_t)0x2534, - (q15_t)0x251c, (q15_t)0x2503, (q15_t)0x24eb, (q15_t)0x24d3, (q15_t)0x24bb, (q15_t)0x24a3, (q15_t)0x248b, (q15_t)0x2473, - (q15_t)0x245b, (q15_t)0x2443, (q15_t)0x242b, (q15_t)0x2413, (q15_t)0x23fa, (q15_t)0x23e2, (q15_t)0x23ca, (q15_t)0x23b2, - (q15_t)0x239a, (q15_t)0x2382, (q15_t)0x236a, (q15_t)0x2352, (q15_t)0x2339, (q15_t)0x2321, (q15_t)0x2309, (q15_t)0x22f1, - (q15_t)0x22d9, (q15_t)0x22c0, (q15_t)0x22a8, (q15_t)0x2290, (q15_t)0x2278, (q15_t)0x2260, (q15_t)0x2247, (q15_t)0x222f, - (q15_t)0x2217, (q15_t)0x21ff, (q15_t)0x21e7, (q15_t)0x21ce, (q15_t)0x21b6, (q15_t)0x219e, (q15_t)0x2186, (q15_t)0x216d, - (q15_t)0x2155, (q15_t)0x213d, (q15_t)0x2125, (q15_t)0x210c, (q15_t)0x20f4, (q15_t)0x20dc, (q15_t)0x20c3, (q15_t)0x20ab, - (q15_t)0x2093, (q15_t)0x207a, (q15_t)0x2062, (q15_t)0x204a, (q15_t)0x2032, (q15_t)0x2019, (q15_t)0x2001, (q15_t)0x1fe9, - (q15_t)0x1fd0, (q15_t)0x1fb8, (q15_t)0x1f9f, (q15_t)0x1f87, (q15_t)0x1f6f, (q15_t)0x1f56, (q15_t)0x1f3e, (q15_t)0x1f26, - (q15_t)0x1f0d, (q15_t)0x1ef5, (q15_t)0x1edd, (q15_t)0x1ec4, (q15_t)0x1eac, (q15_t)0x1e93, (q15_t)0x1e7b, (q15_t)0x1e62, - (q15_t)0x1e4a, (q15_t)0x1e32, (q15_t)0x1e19, (q15_t)0x1e01, (q15_t)0x1de8, (q15_t)0x1dd0, (q15_t)0x1db7, (q15_t)0x1d9f, - (q15_t)0x1d87, (q15_t)0x1d6e, (q15_t)0x1d56, (q15_t)0x1d3d, (q15_t)0x1d25, (q15_t)0x1d0c, (q15_t)0x1cf4, (q15_t)0x1cdb, - (q15_t)0x1cc3, (q15_t)0x1caa, (q15_t)0x1c92, (q15_t)0x1c79, (q15_t)0x1c61, (q15_t)0x1c48, (q15_t)0x1c30, (q15_t)0x1c17, - (q15_t)0x1bff, (q15_t)0x1be6, (q15_t)0x1bce, (q15_t)0x1bb5, (q15_t)0x1b9d, (q15_t)0x1b84, (q15_t)0x1b6c, (q15_t)0x1b53, - (q15_t)0x1b3a, (q15_t)0x1b22, (q15_t)0x1b09, (q15_t)0x1af1, (q15_t)0x1ad8, (q15_t)0x1ac0, (q15_t)0x1aa7, (q15_t)0x1a8e, - (q15_t)0x1a76, (q15_t)0x1a5d, (q15_t)0x1a45, (q15_t)0x1a2c, (q15_t)0x1a13, (q15_t)0x19fb, (q15_t)0x19e2, (q15_t)0x19ca, - (q15_t)0x19b1, (q15_t)0x1998, (q15_t)0x1980, (q15_t)0x1967, (q15_t)0x194e, (q15_t)0x1936, (q15_t)0x191d, (q15_t)0x1905, - (q15_t)0x18ec, (q15_t)0x18d3, (q15_t)0x18bb, (q15_t)0x18a2, (q15_t)0x1889, (q15_t)0x1871, (q15_t)0x1858, (q15_t)0x183f, - (q15_t)0x1827, (q15_t)0x180e, (q15_t)0x17f5, (q15_t)0x17dd, (q15_t)0x17c4, (q15_t)0x17ab, (q15_t)0x1792, (q15_t)0x177a, - (q15_t)0x1761, (q15_t)0x1748, (q15_t)0x1730, (q15_t)0x1717, (q15_t)0x16fe, (q15_t)0x16e5, (q15_t)0x16cd, (q15_t)0x16b4, - (q15_t)0x169b, (q15_t)0x1682, (q15_t)0x166a, (q15_t)0x1651, (q15_t)0x1638, (q15_t)0x161f, (q15_t)0x1607, (q15_t)0x15ee, - (q15_t)0x15d5, (q15_t)0x15bc, (q15_t)0x15a4, (q15_t)0x158b, (q15_t)0x1572, (q15_t)0x1559, (q15_t)0x1541, (q15_t)0x1528, - (q15_t)0x150f, (q15_t)0x14f6, (q15_t)0x14dd, (q15_t)0x14c5, (q15_t)0x14ac, (q15_t)0x1493, (q15_t)0x147a, (q15_t)0x1461, - (q15_t)0x1449, (q15_t)0x1430, (q15_t)0x1417, (q15_t)0x13fe, (q15_t)0x13e5, (q15_t)0x13cc, (q15_t)0x13b4, (q15_t)0x139b, - (q15_t)0x1382, (q15_t)0x1369, (q15_t)0x1350, (q15_t)0x1337, (q15_t)0x131f, (q15_t)0x1306, (q15_t)0x12ed, (q15_t)0x12d4, - (q15_t)0x12bb, (q15_t)0x12a2, (q15_t)0x1289, (q15_t)0x1271, (q15_t)0x1258, (q15_t)0x123f, (q15_t)0x1226, (q15_t)0x120d, - (q15_t)0x11f4, (q15_t)0x11db, (q15_t)0x11c2, (q15_t)0x11a9, (q15_t)0x1191, (q15_t)0x1178, (q15_t)0x115f, (q15_t)0x1146, - (q15_t)0x112d, (q15_t)0x1114, (q15_t)0x10fb, (q15_t)0x10e2, (q15_t)0x10c9, (q15_t)0x10b0, (q15_t)0x1098, (q15_t)0x107f, - (q15_t)0x1066, (q15_t)0x104d, (q15_t)0x1034, (q15_t)0x101b, (q15_t)0x1002, (q15_t)0xfe9, (q15_t)0xfd0, (q15_t)0xfb7, - (q15_t)0xf9e, (q15_t)0xf85, (q15_t)0xf6c, (q15_t)0xf53, (q15_t)0xf3a, (q15_t)0xf21, (q15_t)0xf08, (q15_t)0xef0, - (q15_t)0xed7, (q15_t)0xebe, (q15_t)0xea5, (q15_t)0xe8c, (q15_t)0xe73, (q15_t)0xe5a, (q15_t)0xe41, (q15_t)0xe28, - (q15_t)0xe0f, (q15_t)0xdf6, (q15_t)0xddd, (q15_t)0xdc4, (q15_t)0xdab, (q15_t)0xd92, (q15_t)0xd79, (q15_t)0xd60, - (q15_t)0xd47, (q15_t)0xd2e, (q15_t)0xd15, (q15_t)0xcfc, (q15_t)0xce3, (q15_t)0xcca, (q15_t)0xcb1, (q15_t)0xc98, - (q15_t)0xc7f, (q15_t)0xc66, (q15_t)0xc4d, (q15_t)0xc34, (q15_t)0xc1b, (q15_t)0xc02, (q15_t)0xbe9, (q15_t)0xbd0, - (q15_t)0xbb7, (q15_t)0xb9e, (q15_t)0xb85, (q15_t)0xb6c, (q15_t)0xb53, (q15_t)0xb3a, (q15_t)0xb20, (q15_t)0xb07, - (q15_t)0xaee, (q15_t)0xad5, (q15_t)0xabc, (q15_t)0xaa3, (q15_t)0xa8a, (q15_t)0xa71, (q15_t)0xa58, (q15_t)0xa3f, - (q15_t)0xa26, (q15_t)0xa0d, (q15_t)0x9f4, (q15_t)0x9db, (q15_t)0x9c2, (q15_t)0x9a9, (q15_t)0x990, (q15_t)0x977, - (q15_t)0x95e, (q15_t)0x944, (q15_t)0x92b, (q15_t)0x912, (q15_t)0x8f9, (q15_t)0x8e0, (q15_t)0x8c7, (q15_t)0x8ae, - (q15_t)0x895, (q15_t)0x87c, (q15_t)0x863, (q15_t)0x84a, (q15_t)0x831, (q15_t)0x818, (q15_t)0x7fe, (q15_t)0x7e5, - (q15_t)0x7cc, (q15_t)0x7b3, (q15_t)0x79a, (q15_t)0x781, (q15_t)0x768, (q15_t)0x74f, (q15_t)0x736, (q15_t)0x71d, - (q15_t)0x704, (q15_t)0x6ea, (q15_t)0x6d1, (q15_t)0x6b8, (q15_t)0x69f, (q15_t)0x686, (q15_t)0x66d, (q15_t)0x654, - (q15_t)0x63b, (q15_t)0x622, (q15_t)0x609, (q15_t)0x5ef, (q15_t)0x5d6, (q15_t)0x5bd, (q15_t)0x5a4, (q15_t)0x58b, - (q15_t)0x572, (q15_t)0x559, (q15_t)0x540, (q15_t)0x527, (q15_t)0x50d, (q15_t)0x4f4, (q15_t)0x4db, (q15_t)0x4c2, - (q15_t)0x4a9, (q15_t)0x490, (q15_t)0x477, (q15_t)0x45e, (q15_t)0x445, (q15_t)0x42b, (q15_t)0x412, (q15_t)0x3f9, - (q15_t)0x3e0, (q15_t)0x3c7, (q15_t)0x3ae, (q15_t)0x395, (q15_t)0x37c, (q15_t)0x362, (q15_t)0x349, (q15_t)0x330, - (q15_t)0x317, (q15_t)0x2fe, (q15_t)0x2e5, (q15_t)0x2cc, (q15_t)0x2b3, (q15_t)0x299, (q15_t)0x280, (q15_t)0x267, - (q15_t)0x24e, (q15_t)0x235, (q15_t)0x21c, (q15_t)0x203, (q15_t)0x1ea, (q15_t)0x1d0, (q15_t)0x1b7, (q15_t)0x19e, - (q15_t)0x185, (q15_t)0x16c, (q15_t)0x153, (q15_t)0x13a, (q15_t)0x121, (q15_t)0x107, (q15_t)0xee, (q15_t)0xd5, - (q15_t)0xbc, (q15_t)0xa3, (q15_t)0x8a, (q15_t)0x71, (q15_t)0x57, (q15_t)0x3e, (q15_t)0x25, (q15_t)0xc - -}; - -static const q15_t ALIGN4 cos_factorsQ15_8192[8192] = { - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, (q15_t)0x7fff, - (q15_t)0x7fff, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, - (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffe, - (q15_t)0x7ffe, (q15_t)0x7ffe, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, - (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffd, (q15_t)0x7ffc, - (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, (q15_t)0x7ffc, - (q15_t)0x7ffc, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, - (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffb, (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ffa, - (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ffa, (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff9, - (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff9, (q15_t)0x7ff8, (q15_t)0x7ff8, (q15_t)0x7ff8, (q15_t)0x7ff8, - (q15_t)0x7ff8, (q15_t)0x7ff8, (q15_t)0x7ff8, (q15_t)0x7ff7, (q15_t)0x7ff7, (q15_t)0x7ff7, (q15_t)0x7ff7, (q15_t)0x7ff7, - (q15_t)0x7ff7, (q15_t)0x7ff7, (q15_t)0x7ff6, (q15_t)0x7ff6, (q15_t)0x7ff6, (q15_t)0x7ff6, (q15_t)0x7ff6, (q15_t)0x7ff6, - (q15_t)0x7ff6, (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff5, (q15_t)0x7ff4, - (q15_t)0x7ff4, (q15_t)0x7ff4, (q15_t)0x7ff4, (q15_t)0x7ff4, (q15_t)0x7ff4, (q15_t)0x7ff3, (q15_t)0x7ff3, (q15_t)0x7ff3, - (q15_t)0x7ff3, (q15_t)0x7ff3, (q15_t)0x7ff3, (q15_t)0x7ff2, (q15_t)0x7ff2, (q15_t)0x7ff2, (q15_t)0x7ff2, (q15_t)0x7ff2, - (q15_t)0x7ff1, (q15_t)0x7ff1, (q15_t)0x7ff1, (q15_t)0x7ff1, (q15_t)0x7ff1, (q15_t)0x7ff1, (q15_t)0x7ff0, (q15_t)0x7ff0, - (q15_t)0x7ff0, (q15_t)0x7ff0, (q15_t)0x7ff0, (q15_t)0x7fef, (q15_t)0x7fef, (q15_t)0x7fef, (q15_t)0x7fef, (q15_t)0x7fef, - (q15_t)0x7fee, (q15_t)0x7fee, (q15_t)0x7fee, (q15_t)0x7fee, (q15_t)0x7fee, (q15_t)0x7fed, (q15_t)0x7fed, (q15_t)0x7fed, - (q15_t)0x7fed, (q15_t)0x7fed, (q15_t)0x7fec, (q15_t)0x7fec, (q15_t)0x7fec, (q15_t)0x7fec, (q15_t)0x7feb, (q15_t)0x7feb, - (q15_t)0x7feb, (q15_t)0x7feb, (q15_t)0x7feb, (q15_t)0x7fea, (q15_t)0x7fea, (q15_t)0x7fea, (q15_t)0x7fea, (q15_t)0x7fe9, - (q15_t)0x7fe9, (q15_t)0x7fe9, (q15_t)0x7fe9, (q15_t)0x7fe8, (q15_t)0x7fe8, (q15_t)0x7fe8, (q15_t)0x7fe8, (q15_t)0x7fe8, - (q15_t)0x7fe7, (q15_t)0x7fe7, (q15_t)0x7fe7, (q15_t)0x7fe7, (q15_t)0x7fe6, (q15_t)0x7fe6, (q15_t)0x7fe6, (q15_t)0x7fe6, - (q15_t)0x7fe5, (q15_t)0x7fe5, (q15_t)0x7fe5, (q15_t)0x7fe5, (q15_t)0x7fe4, (q15_t)0x7fe4, (q15_t)0x7fe4, (q15_t)0x7fe4, - (q15_t)0x7fe3, (q15_t)0x7fe3, (q15_t)0x7fe3, (q15_t)0x7fe2, (q15_t)0x7fe2, (q15_t)0x7fe2, (q15_t)0x7fe2, (q15_t)0x7fe1, - (q15_t)0x7fe1, (q15_t)0x7fe1, (q15_t)0x7fe1, (q15_t)0x7fe0, (q15_t)0x7fe0, (q15_t)0x7fe0, (q15_t)0x7fdf, (q15_t)0x7fdf, - (q15_t)0x7fdf, (q15_t)0x7fdf, (q15_t)0x7fde, (q15_t)0x7fde, (q15_t)0x7fde, (q15_t)0x7fde, (q15_t)0x7fdd, (q15_t)0x7fdd, - (q15_t)0x7fdd, (q15_t)0x7fdc, (q15_t)0x7fdc, (q15_t)0x7fdc, (q15_t)0x7fdb, (q15_t)0x7fdb, (q15_t)0x7fdb, (q15_t)0x7fdb, - (q15_t)0x7fda, (q15_t)0x7fda, (q15_t)0x7fda, (q15_t)0x7fd9, (q15_t)0x7fd9, (q15_t)0x7fd9, (q15_t)0x7fd8, (q15_t)0x7fd8, - (q15_t)0x7fd8, (q15_t)0x7fd8, (q15_t)0x7fd7, (q15_t)0x7fd7, (q15_t)0x7fd7, (q15_t)0x7fd6, (q15_t)0x7fd6, (q15_t)0x7fd6, - (q15_t)0x7fd5, (q15_t)0x7fd5, (q15_t)0x7fd5, (q15_t)0x7fd4, (q15_t)0x7fd4, (q15_t)0x7fd4, (q15_t)0x7fd3, (q15_t)0x7fd3, - (q15_t)0x7fd3, (q15_t)0x7fd2, (q15_t)0x7fd2, (q15_t)0x7fd2, (q15_t)0x7fd1, (q15_t)0x7fd1, (q15_t)0x7fd1, (q15_t)0x7fd0, - (q15_t)0x7fd0, (q15_t)0x7fd0, (q15_t)0x7fcf, (q15_t)0x7fcf, (q15_t)0x7fcf, (q15_t)0x7fce, (q15_t)0x7fce, (q15_t)0x7fce, - (q15_t)0x7fcd, (q15_t)0x7fcd, (q15_t)0x7fcd, (q15_t)0x7fcc, (q15_t)0x7fcc, (q15_t)0x7fcc, (q15_t)0x7fcb, (q15_t)0x7fcb, - (q15_t)0x7fcb, (q15_t)0x7fca, (q15_t)0x7fca, (q15_t)0x7fc9, (q15_t)0x7fc9, (q15_t)0x7fc9, (q15_t)0x7fc8, (q15_t)0x7fc8, - (q15_t)0x7fc8, (q15_t)0x7fc7, (q15_t)0x7fc7, (q15_t)0x7fc7, (q15_t)0x7fc6, (q15_t)0x7fc6, (q15_t)0x7fc5, (q15_t)0x7fc5, - (q15_t)0x7fc5, (q15_t)0x7fc4, (q15_t)0x7fc4, (q15_t)0x7fc4, (q15_t)0x7fc3, (q15_t)0x7fc3, (q15_t)0x7fc2, (q15_t)0x7fc2, - (q15_t)0x7fc2, (q15_t)0x7fc1, (q15_t)0x7fc1, (q15_t)0x7fc0, (q15_t)0x7fc0, (q15_t)0x7fc0, (q15_t)0x7fbf, (q15_t)0x7fbf, - (q15_t)0x7fbf, (q15_t)0x7fbe, (q15_t)0x7fbe, (q15_t)0x7fbd, (q15_t)0x7fbd, (q15_t)0x7fbd, (q15_t)0x7fbc, (q15_t)0x7fbc, - (q15_t)0x7fbb, (q15_t)0x7fbb, (q15_t)0x7fbb, (q15_t)0x7fba, (q15_t)0x7fba, (q15_t)0x7fb9, (q15_t)0x7fb9, (q15_t)0x7fb8, - (q15_t)0x7fb8, (q15_t)0x7fb8, (q15_t)0x7fb7, (q15_t)0x7fb7, (q15_t)0x7fb6, (q15_t)0x7fb6, (q15_t)0x7fb6, (q15_t)0x7fb5, - (q15_t)0x7fb5, (q15_t)0x7fb4, (q15_t)0x7fb4, (q15_t)0x7fb3, (q15_t)0x7fb3, (q15_t)0x7fb3, (q15_t)0x7fb2, (q15_t)0x7fb2, - (q15_t)0x7fb1, (q15_t)0x7fb1, (q15_t)0x7fb0, (q15_t)0x7fb0, (q15_t)0x7faf, (q15_t)0x7faf, (q15_t)0x7faf, (q15_t)0x7fae, - (q15_t)0x7fae, (q15_t)0x7fad, (q15_t)0x7fad, (q15_t)0x7fac, (q15_t)0x7fac, (q15_t)0x7fac, (q15_t)0x7fab, (q15_t)0x7fab, - (q15_t)0x7faa, (q15_t)0x7faa, (q15_t)0x7fa9, (q15_t)0x7fa9, (q15_t)0x7fa8, (q15_t)0x7fa8, (q15_t)0x7fa7, (q15_t)0x7fa7, - (q15_t)0x7fa6, (q15_t)0x7fa6, (q15_t)0x7fa6, (q15_t)0x7fa5, (q15_t)0x7fa5, (q15_t)0x7fa4, (q15_t)0x7fa4, (q15_t)0x7fa3, - (q15_t)0x7fa3, (q15_t)0x7fa2, (q15_t)0x7fa2, (q15_t)0x7fa1, (q15_t)0x7fa1, (q15_t)0x7fa0, (q15_t)0x7fa0, (q15_t)0x7f9f, - (q15_t)0x7f9f, (q15_t)0x7f9e, (q15_t)0x7f9e, (q15_t)0x7f9d, (q15_t)0x7f9d, (q15_t)0x7f9c, (q15_t)0x7f9c, (q15_t)0x7f9c, - (q15_t)0x7f9b, (q15_t)0x7f9b, (q15_t)0x7f9a, (q15_t)0x7f9a, (q15_t)0x7f99, (q15_t)0x7f99, (q15_t)0x7f98, (q15_t)0x7f98, - (q15_t)0x7f97, (q15_t)0x7f97, (q15_t)0x7f96, (q15_t)0x7f96, (q15_t)0x7f95, (q15_t)0x7f95, (q15_t)0x7f94, (q15_t)0x7f94, - (q15_t)0x7f93, (q15_t)0x7f92, (q15_t)0x7f92, (q15_t)0x7f91, (q15_t)0x7f91, (q15_t)0x7f90, (q15_t)0x7f90, (q15_t)0x7f8f, - (q15_t)0x7f8f, (q15_t)0x7f8e, (q15_t)0x7f8e, (q15_t)0x7f8d, (q15_t)0x7f8d, (q15_t)0x7f8c, (q15_t)0x7f8c, (q15_t)0x7f8b, - (q15_t)0x7f8b, (q15_t)0x7f8a, (q15_t)0x7f8a, (q15_t)0x7f89, (q15_t)0x7f89, (q15_t)0x7f88, (q15_t)0x7f87, (q15_t)0x7f87, - (q15_t)0x7f86, (q15_t)0x7f86, (q15_t)0x7f85, (q15_t)0x7f85, (q15_t)0x7f84, (q15_t)0x7f84, (q15_t)0x7f83, (q15_t)0x7f83, - (q15_t)0x7f82, (q15_t)0x7f81, (q15_t)0x7f81, (q15_t)0x7f80, (q15_t)0x7f80, (q15_t)0x7f7f, (q15_t)0x7f7f, (q15_t)0x7f7e, - (q15_t)0x7f7e, (q15_t)0x7f7d, (q15_t)0x7f7c, (q15_t)0x7f7c, (q15_t)0x7f7b, (q15_t)0x7f7b, (q15_t)0x7f7a, (q15_t)0x7f7a, - (q15_t)0x7f79, (q15_t)0x7f79, (q15_t)0x7f78, (q15_t)0x7f77, (q15_t)0x7f77, (q15_t)0x7f76, (q15_t)0x7f76, (q15_t)0x7f75, - (q15_t)0x7f75, (q15_t)0x7f74, (q15_t)0x7f73, (q15_t)0x7f73, (q15_t)0x7f72, (q15_t)0x7f72, (q15_t)0x7f71, (q15_t)0x7f70, - (q15_t)0x7f70, (q15_t)0x7f6f, (q15_t)0x7f6f, (q15_t)0x7f6e, (q15_t)0x7f6d, (q15_t)0x7f6d, (q15_t)0x7f6c, (q15_t)0x7f6c, - (q15_t)0x7f6b, (q15_t)0x7f6b, (q15_t)0x7f6a, (q15_t)0x7f69, (q15_t)0x7f69, (q15_t)0x7f68, (q15_t)0x7f68, (q15_t)0x7f67, - (q15_t)0x7f66, (q15_t)0x7f66, (q15_t)0x7f65, (q15_t)0x7f64, (q15_t)0x7f64, (q15_t)0x7f63, (q15_t)0x7f63, (q15_t)0x7f62, - (q15_t)0x7f61, (q15_t)0x7f61, (q15_t)0x7f60, (q15_t)0x7f60, (q15_t)0x7f5f, (q15_t)0x7f5e, (q15_t)0x7f5e, (q15_t)0x7f5d, - (q15_t)0x7f5c, (q15_t)0x7f5c, (q15_t)0x7f5b, (q15_t)0x7f5b, (q15_t)0x7f5a, (q15_t)0x7f59, (q15_t)0x7f59, (q15_t)0x7f58, - (q15_t)0x7f57, (q15_t)0x7f57, (q15_t)0x7f56, (q15_t)0x7f55, (q15_t)0x7f55, (q15_t)0x7f54, (q15_t)0x7f54, (q15_t)0x7f53, - (q15_t)0x7f52, (q15_t)0x7f52, (q15_t)0x7f51, (q15_t)0x7f50, (q15_t)0x7f50, (q15_t)0x7f4f, (q15_t)0x7f4e, (q15_t)0x7f4e, - (q15_t)0x7f4d, (q15_t)0x7f4c, (q15_t)0x7f4c, (q15_t)0x7f4b, (q15_t)0x7f4a, (q15_t)0x7f4a, (q15_t)0x7f49, (q15_t)0x7f48, - (q15_t)0x7f48, (q15_t)0x7f47, (q15_t)0x7f46, (q15_t)0x7f46, (q15_t)0x7f45, (q15_t)0x7f44, (q15_t)0x7f44, (q15_t)0x7f43, - (q15_t)0x7f42, (q15_t)0x7f42, (q15_t)0x7f41, (q15_t)0x7f40, (q15_t)0x7f40, (q15_t)0x7f3f, (q15_t)0x7f3e, (q15_t)0x7f3e, - (q15_t)0x7f3d, (q15_t)0x7f3c, (q15_t)0x7f3c, (q15_t)0x7f3b, (q15_t)0x7f3a, (q15_t)0x7f3a, (q15_t)0x7f39, (q15_t)0x7f38, - (q15_t)0x7f37, (q15_t)0x7f37, (q15_t)0x7f36, (q15_t)0x7f35, (q15_t)0x7f35, (q15_t)0x7f34, (q15_t)0x7f33, (q15_t)0x7f33, - (q15_t)0x7f32, (q15_t)0x7f31, (q15_t)0x7f31, (q15_t)0x7f30, (q15_t)0x7f2f, (q15_t)0x7f2e, (q15_t)0x7f2e, (q15_t)0x7f2d, - (q15_t)0x7f2c, (q15_t)0x7f2c, (q15_t)0x7f2b, (q15_t)0x7f2a, (q15_t)0x7f29, (q15_t)0x7f29, (q15_t)0x7f28, (q15_t)0x7f27, - (q15_t)0x7f27, (q15_t)0x7f26, (q15_t)0x7f25, (q15_t)0x7f24, (q15_t)0x7f24, (q15_t)0x7f23, (q15_t)0x7f22, (q15_t)0x7f21, - (q15_t)0x7f21, (q15_t)0x7f20, (q15_t)0x7f1f, (q15_t)0x7f1f, (q15_t)0x7f1e, (q15_t)0x7f1d, (q15_t)0x7f1c, (q15_t)0x7f1c, - (q15_t)0x7f1b, (q15_t)0x7f1a, (q15_t)0x7f19, (q15_t)0x7f19, (q15_t)0x7f18, (q15_t)0x7f17, (q15_t)0x7f16, (q15_t)0x7f16, - (q15_t)0x7f15, (q15_t)0x7f14, (q15_t)0x7f13, (q15_t)0x7f13, (q15_t)0x7f12, (q15_t)0x7f11, (q15_t)0x7f10, (q15_t)0x7f10, - (q15_t)0x7f0f, (q15_t)0x7f0e, (q15_t)0x7f0d, (q15_t)0x7f0d, (q15_t)0x7f0c, (q15_t)0x7f0b, (q15_t)0x7f0a, (q15_t)0x7f09, - (q15_t)0x7f09, (q15_t)0x7f08, (q15_t)0x7f07, (q15_t)0x7f06, (q15_t)0x7f06, (q15_t)0x7f05, (q15_t)0x7f04, (q15_t)0x7f03, - (q15_t)0x7f02, (q15_t)0x7f02, (q15_t)0x7f01, (q15_t)0x7f00, (q15_t)0x7eff, (q15_t)0x7eff, (q15_t)0x7efe, (q15_t)0x7efd, - (q15_t)0x7efc, (q15_t)0x7efb, (q15_t)0x7efb, (q15_t)0x7efa, (q15_t)0x7ef9, (q15_t)0x7ef8, (q15_t)0x7ef7, (q15_t)0x7ef7, - (q15_t)0x7ef6, (q15_t)0x7ef5, (q15_t)0x7ef4, (q15_t)0x7ef3, (q15_t)0x7ef3, (q15_t)0x7ef2, (q15_t)0x7ef1, (q15_t)0x7ef0, - (q15_t)0x7eef, (q15_t)0x7eef, (q15_t)0x7eee, (q15_t)0x7eed, (q15_t)0x7eec, (q15_t)0x7eeb, (q15_t)0x7eeb, (q15_t)0x7eea, - (q15_t)0x7ee9, (q15_t)0x7ee8, (q15_t)0x7ee7, (q15_t)0x7ee6, (q15_t)0x7ee6, (q15_t)0x7ee5, (q15_t)0x7ee4, (q15_t)0x7ee3, - (q15_t)0x7ee2, (q15_t)0x7ee2, (q15_t)0x7ee1, (q15_t)0x7ee0, (q15_t)0x7edf, (q15_t)0x7ede, (q15_t)0x7edd, (q15_t)0x7edd, - (q15_t)0x7edc, (q15_t)0x7edb, (q15_t)0x7eda, (q15_t)0x7ed9, (q15_t)0x7ed8, (q15_t)0x7ed8, (q15_t)0x7ed7, (q15_t)0x7ed6, - (q15_t)0x7ed5, (q15_t)0x7ed4, (q15_t)0x7ed3, (q15_t)0x7ed2, (q15_t)0x7ed2, (q15_t)0x7ed1, (q15_t)0x7ed0, (q15_t)0x7ecf, - (q15_t)0x7ece, (q15_t)0x7ecd, (q15_t)0x7ecc, (q15_t)0x7ecc, (q15_t)0x7ecb, (q15_t)0x7eca, (q15_t)0x7ec9, (q15_t)0x7ec8, - (q15_t)0x7ec7, (q15_t)0x7ec6, (q15_t)0x7ec6, (q15_t)0x7ec5, (q15_t)0x7ec4, (q15_t)0x7ec3, (q15_t)0x7ec2, (q15_t)0x7ec1, - (q15_t)0x7ec0, (q15_t)0x7ebf, (q15_t)0x7ebf, (q15_t)0x7ebe, (q15_t)0x7ebd, (q15_t)0x7ebc, (q15_t)0x7ebb, (q15_t)0x7eba, - (q15_t)0x7eb9, (q15_t)0x7eb8, (q15_t)0x7eb8, (q15_t)0x7eb7, (q15_t)0x7eb6, (q15_t)0x7eb5, (q15_t)0x7eb4, (q15_t)0x7eb3, - (q15_t)0x7eb2, (q15_t)0x7eb1, (q15_t)0x7eb0, (q15_t)0x7eaf, (q15_t)0x7eaf, (q15_t)0x7eae, (q15_t)0x7ead, (q15_t)0x7eac, - (q15_t)0x7eab, (q15_t)0x7eaa, (q15_t)0x7ea9, (q15_t)0x7ea8, (q15_t)0x7ea7, (q15_t)0x7ea6, (q15_t)0x7ea6, (q15_t)0x7ea5, - (q15_t)0x7ea4, (q15_t)0x7ea3, (q15_t)0x7ea2, (q15_t)0x7ea1, (q15_t)0x7ea0, (q15_t)0x7e9f, (q15_t)0x7e9e, (q15_t)0x7e9d, - (q15_t)0x7e9c, (q15_t)0x7e9b, (q15_t)0x7e9b, (q15_t)0x7e9a, (q15_t)0x7e99, (q15_t)0x7e98, (q15_t)0x7e97, (q15_t)0x7e96, - (q15_t)0x7e95, (q15_t)0x7e94, (q15_t)0x7e93, (q15_t)0x7e92, (q15_t)0x7e91, (q15_t)0x7e90, (q15_t)0x7e8f, (q15_t)0x7e8e, - (q15_t)0x7e8d, (q15_t)0x7e8d, (q15_t)0x7e8c, (q15_t)0x7e8b, (q15_t)0x7e8a, (q15_t)0x7e89, (q15_t)0x7e88, (q15_t)0x7e87, - (q15_t)0x7e86, (q15_t)0x7e85, (q15_t)0x7e84, (q15_t)0x7e83, (q15_t)0x7e82, (q15_t)0x7e81, (q15_t)0x7e80, (q15_t)0x7e7f, - (q15_t)0x7e7e, (q15_t)0x7e7d, (q15_t)0x7e7c, (q15_t)0x7e7b, (q15_t)0x7e7a, (q15_t)0x7e79, (q15_t)0x7e78, (q15_t)0x7e77, - (q15_t)0x7e77, (q15_t)0x7e76, (q15_t)0x7e75, (q15_t)0x7e74, (q15_t)0x7e73, (q15_t)0x7e72, (q15_t)0x7e71, (q15_t)0x7e70, - (q15_t)0x7e6f, (q15_t)0x7e6e, (q15_t)0x7e6d, (q15_t)0x7e6c, (q15_t)0x7e6b, (q15_t)0x7e6a, (q15_t)0x7e69, (q15_t)0x7e68, - (q15_t)0x7e67, (q15_t)0x7e66, (q15_t)0x7e65, (q15_t)0x7e64, (q15_t)0x7e63, (q15_t)0x7e62, (q15_t)0x7e61, (q15_t)0x7e60, - (q15_t)0x7e5f, (q15_t)0x7e5e, (q15_t)0x7e5d, (q15_t)0x7e5c, (q15_t)0x7e5b, (q15_t)0x7e5a, (q15_t)0x7e59, (q15_t)0x7e58, - (q15_t)0x7e57, (q15_t)0x7e56, (q15_t)0x7e55, (q15_t)0x7e54, (q15_t)0x7e53, (q15_t)0x7e52, (q15_t)0x7e51, (q15_t)0x7e50, - (q15_t)0x7e4f, (q15_t)0x7e4e, (q15_t)0x7e4d, (q15_t)0x7e4c, (q15_t)0x7e4b, (q15_t)0x7e4a, (q15_t)0x7e49, (q15_t)0x7e48, - (q15_t)0x7e47, (q15_t)0x7e46, (q15_t)0x7e45, (q15_t)0x7e43, (q15_t)0x7e42, (q15_t)0x7e41, (q15_t)0x7e40, (q15_t)0x7e3f, - (q15_t)0x7e3e, (q15_t)0x7e3d, (q15_t)0x7e3c, (q15_t)0x7e3b, (q15_t)0x7e3a, (q15_t)0x7e39, (q15_t)0x7e38, (q15_t)0x7e37, - (q15_t)0x7e36, (q15_t)0x7e35, (q15_t)0x7e34, (q15_t)0x7e33, (q15_t)0x7e32, (q15_t)0x7e31, (q15_t)0x7e30, (q15_t)0x7e2f, - (q15_t)0x7e2e, (q15_t)0x7e2d, (q15_t)0x7e2b, (q15_t)0x7e2a, (q15_t)0x7e29, (q15_t)0x7e28, (q15_t)0x7e27, (q15_t)0x7e26, - (q15_t)0x7e25, (q15_t)0x7e24, (q15_t)0x7e23, (q15_t)0x7e22, (q15_t)0x7e21, (q15_t)0x7e20, (q15_t)0x7e1f, (q15_t)0x7e1e, - (q15_t)0x7e1d, (q15_t)0x7e1b, (q15_t)0x7e1a, (q15_t)0x7e19, (q15_t)0x7e18, (q15_t)0x7e17, (q15_t)0x7e16, (q15_t)0x7e15, - (q15_t)0x7e14, (q15_t)0x7e13, (q15_t)0x7e12, (q15_t)0x7e11, (q15_t)0x7e10, (q15_t)0x7e0e, (q15_t)0x7e0d, (q15_t)0x7e0c, - (q15_t)0x7e0b, (q15_t)0x7e0a, (q15_t)0x7e09, (q15_t)0x7e08, (q15_t)0x7e07, (q15_t)0x7e06, (q15_t)0x7e05, (q15_t)0x7e04, - (q15_t)0x7e02, (q15_t)0x7e01, (q15_t)0x7e00, (q15_t)0x7dff, (q15_t)0x7dfe, (q15_t)0x7dfd, (q15_t)0x7dfc, (q15_t)0x7dfb, - (q15_t)0x7dfa, (q15_t)0x7df8, (q15_t)0x7df7, (q15_t)0x7df6, (q15_t)0x7df5, (q15_t)0x7df4, (q15_t)0x7df3, (q15_t)0x7df2, - (q15_t)0x7df1, (q15_t)0x7def, (q15_t)0x7dee, (q15_t)0x7ded, (q15_t)0x7dec, (q15_t)0x7deb, (q15_t)0x7dea, (q15_t)0x7de9, - (q15_t)0x7de8, (q15_t)0x7de6, (q15_t)0x7de5, (q15_t)0x7de4, (q15_t)0x7de3, (q15_t)0x7de2, (q15_t)0x7de1, (q15_t)0x7de0, - (q15_t)0x7dde, (q15_t)0x7ddd, (q15_t)0x7ddc, (q15_t)0x7ddb, (q15_t)0x7dda, (q15_t)0x7dd9, (q15_t)0x7dd8, (q15_t)0x7dd6, - (q15_t)0x7dd5, (q15_t)0x7dd4, (q15_t)0x7dd3, (q15_t)0x7dd2, (q15_t)0x7dd1, (q15_t)0x7dd0, (q15_t)0x7dce, (q15_t)0x7dcd, - (q15_t)0x7dcc, (q15_t)0x7dcb, (q15_t)0x7dca, (q15_t)0x7dc9, (q15_t)0x7dc7, (q15_t)0x7dc6, (q15_t)0x7dc5, (q15_t)0x7dc4, - (q15_t)0x7dc3, (q15_t)0x7dc2, (q15_t)0x7dc0, (q15_t)0x7dbf, (q15_t)0x7dbe, (q15_t)0x7dbd, (q15_t)0x7dbc, (q15_t)0x7dbb, - (q15_t)0x7db9, (q15_t)0x7db8, (q15_t)0x7db7, (q15_t)0x7db6, (q15_t)0x7db5, (q15_t)0x7db3, (q15_t)0x7db2, (q15_t)0x7db1, - (q15_t)0x7db0, (q15_t)0x7daf, (q15_t)0x7dae, (q15_t)0x7dac, (q15_t)0x7dab, (q15_t)0x7daa, (q15_t)0x7da9, (q15_t)0x7da8, - (q15_t)0x7da6, (q15_t)0x7da5, (q15_t)0x7da4, (q15_t)0x7da3, (q15_t)0x7da2, (q15_t)0x7da0, (q15_t)0x7d9f, (q15_t)0x7d9e, - (q15_t)0x7d9d, (q15_t)0x7d9c, (q15_t)0x7d9a, (q15_t)0x7d99, (q15_t)0x7d98, (q15_t)0x7d97, (q15_t)0x7d95, (q15_t)0x7d94, - (q15_t)0x7d93, (q15_t)0x7d92, (q15_t)0x7d91, (q15_t)0x7d8f, (q15_t)0x7d8e, (q15_t)0x7d8d, (q15_t)0x7d8c, (q15_t)0x7d8a, - (q15_t)0x7d89, (q15_t)0x7d88, (q15_t)0x7d87, (q15_t)0x7d86, (q15_t)0x7d84, (q15_t)0x7d83, (q15_t)0x7d82, (q15_t)0x7d81, - (q15_t)0x7d7f, (q15_t)0x7d7e, (q15_t)0x7d7d, (q15_t)0x7d7c, (q15_t)0x7d7a, (q15_t)0x7d79, (q15_t)0x7d78, (q15_t)0x7d77, - (q15_t)0x7d75, (q15_t)0x7d74, (q15_t)0x7d73, (q15_t)0x7d72, (q15_t)0x7d70, (q15_t)0x7d6f, (q15_t)0x7d6e, (q15_t)0x7d6d, - (q15_t)0x7d6b, (q15_t)0x7d6a, (q15_t)0x7d69, (q15_t)0x7d68, (q15_t)0x7d66, (q15_t)0x7d65, (q15_t)0x7d64, (q15_t)0x7d63, - (q15_t)0x7d61, (q15_t)0x7d60, (q15_t)0x7d5f, (q15_t)0x7d5e, (q15_t)0x7d5c, (q15_t)0x7d5b, (q15_t)0x7d5a, (q15_t)0x7d59, - (q15_t)0x7d57, (q15_t)0x7d56, (q15_t)0x7d55, (q15_t)0x7d53, (q15_t)0x7d52, (q15_t)0x7d51, (q15_t)0x7d50, (q15_t)0x7d4e, - (q15_t)0x7d4d, (q15_t)0x7d4c, (q15_t)0x7d4a, (q15_t)0x7d49, (q15_t)0x7d48, (q15_t)0x7d47, (q15_t)0x7d45, (q15_t)0x7d44, - (q15_t)0x7d43, (q15_t)0x7d41, (q15_t)0x7d40, (q15_t)0x7d3f, (q15_t)0x7d3e, (q15_t)0x7d3c, (q15_t)0x7d3b, (q15_t)0x7d3a, - (q15_t)0x7d38, (q15_t)0x7d37, (q15_t)0x7d36, (q15_t)0x7d34, (q15_t)0x7d33, (q15_t)0x7d32, (q15_t)0x7d31, (q15_t)0x7d2f, - (q15_t)0x7d2e, (q15_t)0x7d2d, (q15_t)0x7d2b, (q15_t)0x7d2a, (q15_t)0x7d29, (q15_t)0x7d27, (q15_t)0x7d26, (q15_t)0x7d25, - (q15_t)0x7d23, (q15_t)0x7d22, (q15_t)0x7d21, (q15_t)0x7d1f, (q15_t)0x7d1e, (q15_t)0x7d1d, (q15_t)0x7d1b, (q15_t)0x7d1a, - (q15_t)0x7d19, (q15_t)0x7d17, (q15_t)0x7d16, (q15_t)0x7d15, (q15_t)0x7d13, (q15_t)0x7d12, (q15_t)0x7d11, (q15_t)0x7d0f, - (q15_t)0x7d0e, (q15_t)0x7d0d, (q15_t)0x7d0b, (q15_t)0x7d0a, (q15_t)0x7d09, (q15_t)0x7d07, (q15_t)0x7d06, (q15_t)0x7d05, - (q15_t)0x7d03, (q15_t)0x7d02, (q15_t)0x7d01, (q15_t)0x7cff, (q15_t)0x7cfe, (q15_t)0x7cfd, (q15_t)0x7cfb, (q15_t)0x7cfa, - (q15_t)0x7cf9, (q15_t)0x7cf7, (q15_t)0x7cf6, (q15_t)0x7cf4, (q15_t)0x7cf3, (q15_t)0x7cf2, (q15_t)0x7cf0, (q15_t)0x7cef, - (q15_t)0x7cee, (q15_t)0x7cec, (q15_t)0x7ceb, (q15_t)0x7ce9, (q15_t)0x7ce8, (q15_t)0x7ce7, (q15_t)0x7ce5, (q15_t)0x7ce4, - (q15_t)0x7ce3, (q15_t)0x7ce1, (q15_t)0x7ce0, (q15_t)0x7cde, (q15_t)0x7cdd, (q15_t)0x7cdc, (q15_t)0x7cda, (q15_t)0x7cd9, - (q15_t)0x7cd8, (q15_t)0x7cd6, (q15_t)0x7cd5, (q15_t)0x7cd3, (q15_t)0x7cd2, (q15_t)0x7cd1, (q15_t)0x7ccf, (q15_t)0x7cce, - (q15_t)0x7ccc, (q15_t)0x7ccb, (q15_t)0x7cca, (q15_t)0x7cc8, (q15_t)0x7cc7, (q15_t)0x7cc5, (q15_t)0x7cc4, (q15_t)0x7cc3, - (q15_t)0x7cc1, (q15_t)0x7cc0, (q15_t)0x7cbe, (q15_t)0x7cbd, (q15_t)0x7cbc, (q15_t)0x7cba, (q15_t)0x7cb9, (q15_t)0x7cb7, - (q15_t)0x7cb6, (q15_t)0x7cb5, (q15_t)0x7cb3, (q15_t)0x7cb2, (q15_t)0x7cb0, (q15_t)0x7caf, (q15_t)0x7cad, (q15_t)0x7cac, - (q15_t)0x7cab, (q15_t)0x7ca9, (q15_t)0x7ca8, (q15_t)0x7ca6, (q15_t)0x7ca5, (q15_t)0x7ca3, (q15_t)0x7ca2, (q15_t)0x7ca1, - (q15_t)0x7c9f, (q15_t)0x7c9e, (q15_t)0x7c9c, (q15_t)0x7c9b, (q15_t)0x7c99, (q15_t)0x7c98, (q15_t)0x7c97, (q15_t)0x7c95, - (q15_t)0x7c94, (q15_t)0x7c92, (q15_t)0x7c91, (q15_t)0x7c8f, (q15_t)0x7c8e, (q15_t)0x7c8c, (q15_t)0x7c8b, (q15_t)0x7c8a, - (q15_t)0x7c88, (q15_t)0x7c87, (q15_t)0x7c85, (q15_t)0x7c84, (q15_t)0x7c82, (q15_t)0x7c81, (q15_t)0x7c7f, (q15_t)0x7c7e, - (q15_t)0x7c7c, (q15_t)0x7c7b, (q15_t)0x7c79, (q15_t)0x7c78, (q15_t)0x7c77, (q15_t)0x7c75, (q15_t)0x7c74, (q15_t)0x7c72, - (q15_t)0x7c71, (q15_t)0x7c6f, (q15_t)0x7c6e, (q15_t)0x7c6c, (q15_t)0x7c6b, (q15_t)0x7c69, (q15_t)0x7c68, (q15_t)0x7c66, - (q15_t)0x7c65, (q15_t)0x7c63, (q15_t)0x7c62, (q15_t)0x7c60, (q15_t)0x7c5f, (q15_t)0x7c5d, (q15_t)0x7c5c, (q15_t)0x7c5a, - (q15_t)0x7c59, (q15_t)0x7c58, (q15_t)0x7c56, (q15_t)0x7c55, (q15_t)0x7c53, (q15_t)0x7c52, (q15_t)0x7c50, (q15_t)0x7c4f, - (q15_t)0x7c4d, (q15_t)0x7c4c, (q15_t)0x7c4a, (q15_t)0x7c49, (q15_t)0x7c47, (q15_t)0x7c46, (q15_t)0x7c44, (q15_t)0x7c43, - (q15_t)0x7c41, (q15_t)0x7c3f, (q15_t)0x7c3e, (q15_t)0x7c3c, (q15_t)0x7c3b, (q15_t)0x7c39, (q15_t)0x7c38, (q15_t)0x7c36, - (q15_t)0x7c35, (q15_t)0x7c33, (q15_t)0x7c32, (q15_t)0x7c30, (q15_t)0x7c2f, (q15_t)0x7c2d, (q15_t)0x7c2c, (q15_t)0x7c2a, - (q15_t)0x7c29, (q15_t)0x7c27, (q15_t)0x7c26, (q15_t)0x7c24, (q15_t)0x7c23, (q15_t)0x7c21, (q15_t)0x7c20, (q15_t)0x7c1e, - (q15_t)0x7c1c, (q15_t)0x7c1b, (q15_t)0x7c19, (q15_t)0x7c18, (q15_t)0x7c16, (q15_t)0x7c15, (q15_t)0x7c13, (q15_t)0x7c12, - (q15_t)0x7c10, (q15_t)0x7c0f, (q15_t)0x7c0d, (q15_t)0x7c0b, (q15_t)0x7c0a, (q15_t)0x7c08, (q15_t)0x7c07, (q15_t)0x7c05, - (q15_t)0x7c04, (q15_t)0x7c02, (q15_t)0x7c01, (q15_t)0x7bff, (q15_t)0x7bfd, (q15_t)0x7bfc, (q15_t)0x7bfa, (q15_t)0x7bf9, - (q15_t)0x7bf7, (q15_t)0x7bf6, (q15_t)0x7bf4, (q15_t)0x7bf3, (q15_t)0x7bf1, (q15_t)0x7bef, (q15_t)0x7bee, (q15_t)0x7bec, - (q15_t)0x7beb, (q15_t)0x7be9, (q15_t)0x7be8, (q15_t)0x7be6, (q15_t)0x7be4, (q15_t)0x7be3, (q15_t)0x7be1, (q15_t)0x7be0, - (q15_t)0x7bde, (q15_t)0x7bdc, (q15_t)0x7bdb, (q15_t)0x7bd9, (q15_t)0x7bd8, (q15_t)0x7bd6, (q15_t)0x7bd5, (q15_t)0x7bd3, - (q15_t)0x7bd1, (q15_t)0x7bd0, (q15_t)0x7bce, (q15_t)0x7bcd, (q15_t)0x7bcb, (q15_t)0x7bc9, (q15_t)0x7bc8, (q15_t)0x7bc6, - (q15_t)0x7bc5, (q15_t)0x7bc3, (q15_t)0x7bc1, (q15_t)0x7bc0, (q15_t)0x7bbe, (q15_t)0x7bbd, (q15_t)0x7bbb, (q15_t)0x7bb9, - (q15_t)0x7bb8, (q15_t)0x7bb6, (q15_t)0x7bb5, (q15_t)0x7bb3, (q15_t)0x7bb1, (q15_t)0x7bb0, (q15_t)0x7bae, (q15_t)0x7bac, - (q15_t)0x7bab, (q15_t)0x7ba9, (q15_t)0x7ba8, (q15_t)0x7ba6, (q15_t)0x7ba4, (q15_t)0x7ba3, (q15_t)0x7ba1, (q15_t)0x7b9f, - (q15_t)0x7b9e, (q15_t)0x7b9c, (q15_t)0x7b9b, (q15_t)0x7b99, (q15_t)0x7b97, (q15_t)0x7b96, (q15_t)0x7b94, (q15_t)0x7b92, - (q15_t)0x7b91, (q15_t)0x7b8f, (q15_t)0x7b8d, (q15_t)0x7b8c, (q15_t)0x7b8a, (q15_t)0x7b89, (q15_t)0x7b87, (q15_t)0x7b85, - (q15_t)0x7b84, (q15_t)0x7b82, (q15_t)0x7b80, (q15_t)0x7b7f, (q15_t)0x7b7d, (q15_t)0x7b7b, (q15_t)0x7b7a, (q15_t)0x7b78, - (q15_t)0x7b76, (q15_t)0x7b75, (q15_t)0x7b73, (q15_t)0x7b71, (q15_t)0x7b70, (q15_t)0x7b6e, (q15_t)0x7b6c, (q15_t)0x7b6b, - (q15_t)0x7b69, (q15_t)0x7b67, (q15_t)0x7b66, (q15_t)0x7b64, (q15_t)0x7b62, (q15_t)0x7b61, (q15_t)0x7b5f, (q15_t)0x7b5d, - (q15_t)0x7b5c, (q15_t)0x7b5a, (q15_t)0x7b58, (q15_t)0x7b57, (q15_t)0x7b55, (q15_t)0x7b53, (q15_t)0x7b52, (q15_t)0x7b50, - (q15_t)0x7b4e, (q15_t)0x7b4d, (q15_t)0x7b4b, (q15_t)0x7b49, (q15_t)0x7b47, (q15_t)0x7b46, (q15_t)0x7b44, (q15_t)0x7b42, - (q15_t)0x7b41, (q15_t)0x7b3f, (q15_t)0x7b3d, (q15_t)0x7b3c, (q15_t)0x7b3a, (q15_t)0x7b38, (q15_t)0x7b37, (q15_t)0x7b35, - (q15_t)0x7b33, (q15_t)0x7b31, (q15_t)0x7b30, (q15_t)0x7b2e, (q15_t)0x7b2c, (q15_t)0x7b2b, (q15_t)0x7b29, (q15_t)0x7b27, - (q15_t)0x7b25, (q15_t)0x7b24, (q15_t)0x7b22, (q15_t)0x7b20, (q15_t)0x7b1f, (q15_t)0x7b1d, (q15_t)0x7b1b, (q15_t)0x7b19, - (q15_t)0x7b18, (q15_t)0x7b16, (q15_t)0x7b14, (q15_t)0x7b13, (q15_t)0x7b11, (q15_t)0x7b0f, (q15_t)0x7b0d, (q15_t)0x7b0c, - (q15_t)0x7b0a, (q15_t)0x7b08, (q15_t)0x7b06, (q15_t)0x7b05, (q15_t)0x7b03, (q15_t)0x7b01, (q15_t)0x7aff, (q15_t)0x7afe, - (q15_t)0x7afc, (q15_t)0x7afa, (q15_t)0x7af8, (q15_t)0x7af7, (q15_t)0x7af5, (q15_t)0x7af3, (q15_t)0x7af2, (q15_t)0x7af0, - (q15_t)0x7aee, (q15_t)0x7aec, (q15_t)0x7aeb, (q15_t)0x7ae9, (q15_t)0x7ae7, (q15_t)0x7ae5, (q15_t)0x7ae3, (q15_t)0x7ae2, - (q15_t)0x7ae0, (q15_t)0x7ade, (q15_t)0x7adc, (q15_t)0x7adb, (q15_t)0x7ad9, (q15_t)0x7ad7, (q15_t)0x7ad5, (q15_t)0x7ad4, - (q15_t)0x7ad2, (q15_t)0x7ad0, (q15_t)0x7ace, (q15_t)0x7acd, (q15_t)0x7acb, (q15_t)0x7ac9, (q15_t)0x7ac7, (q15_t)0x7ac5, - (q15_t)0x7ac4, (q15_t)0x7ac2, (q15_t)0x7ac0, (q15_t)0x7abe, (q15_t)0x7abd, (q15_t)0x7abb, (q15_t)0x7ab9, (q15_t)0x7ab7, - (q15_t)0x7ab5, (q15_t)0x7ab4, (q15_t)0x7ab2, (q15_t)0x7ab0, (q15_t)0x7aae, (q15_t)0x7aac, (q15_t)0x7aab, (q15_t)0x7aa9, - (q15_t)0x7aa7, (q15_t)0x7aa5, (q15_t)0x7aa3, (q15_t)0x7aa2, (q15_t)0x7aa0, (q15_t)0x7a9e, (q15_t)0x7a9c, (q15_t)0x7a9a, - (q15_t)0x7a99, (q15_t)0x7a97, (q15_t)0x7a95, (q15_t)0x7a93, (q15_t)0x7a91, (q15_t)0x7a90, (q15_t)0x7a8e, (q15_t)0x7a8c, - (q15_t)0x7a8a, (q15_t)0x7a88, (q15_t)0x7a87, (q15_t)0x7a85, (q15_t)0x7a83, (q15_t)0x7a81, (q15_t)0x7a7f, (q15_t)0x7a7d, - (q15_t)0x7a7c, (q15_t)0x7a7a, (q15_t)0x7a78, (q15_t)0x7a76, (q15_t)0x7a74, (q15_t)0x7a72, (q15_t)0x7a71, (q15_t)0x7a6f, - (q15_t)0x7a6d, (q15_t)0x7a6b, (q15_t)0x7a69, (q15_t)0x7a67, (q15_t)0x7a66, (q15_t)0x7a64, (q15_t)0x7a62, (q15_t)0x7a60, - (q15_t)0x7a5e, (q15_t)0x7a5c, (q15_t)0x7a5b, (q15_t)0x7a59, (q15_t)0x7a57, (q15_t)0x7a55, (q15_t)0x7a53, (q15_t)0x7a51, - (q15_t)0x7a4f, (q15_t)0x7a4e, (q15_t)0x7a4c, (q15_t)0x7a4a, (q15_t)0x7a48, (q15_t)0x7a46, (q15_t)0x7a44, (q15_t)0x7a42, - (q15_t)0x7a41, (q15_t)0x7a3f, (q15_t)0x7a3d, (q15_t)0x7a3b, (q15_t)0x7a39, (q15_t)0x7a37, (q15_t)0x7a35, (q15_t)0x7a34, - (q15_t)0x7a32, (q15_t)0x7a30, (q15_t)0x7a2e, (q15_t)0x7a2c, (q15_t)0x7a2a, (q15_t)0x7a28, (q15_t)0x7a26, (q15_t)0x7a25, - (q15_t)0x7a23, (q15_t)0x7a21, (q15_t)0x7a1f, (q15_t)0x7a1d, (q15_t)0x7a1b, (q15_t)0x7a19, (q15_t)0x7a17, (q15_t)0x7a16, - (q15_t)0x7a14, (q15_t)0x7a12, (q15_t)0x7a10, (q15_t)0x7a0e, (q15_t)0x7a0c, (q15_t)0x7a0a, (q15_t)0x7a08, (q15_t)0x7a06, - (q15_t)0x7a04, (q15_t)0x7a03, (q15_t)0x7a01, (q15_t)0x79ff, (q15_t)0x79fd, (q15_t)0x79fb, (q15_t)0x79f9, (q15_t)0x79f7, - (q15_t)0x79f5, (q15_t)0x79f3, (q15_t)0x79f1, (q15_t)0x79f0, (q15_t)0x79ee, (q15_t)0x79ec, (q15_t)0x79ea, (q15_t)0x79e8, - (q15_t)0x79e6, (q15_t)0x79e4, (q15_t)0x79e2, (q15_t)0x79e0, (q15_t)0x79de, (q15_t)0x79dc, (q15_t)0x79da, (q15_t)0x79d9, - (q15_t)0x79d7, (q15_t)0x79d5, (q15_t)0x79d3, (q15_t)0x79d1, (q15_t)0x79cf, (q15_t)0x79cd, (q15_t)0x79cb, (q15_t)0x79c9, - (q15_t)0x79c7, (q15_t)0x79c5, (q15_t)0x79c3, (q15_t)0x79c1, (q15_t)0x79bf, (q15_t)0x79bd, (q15_t)0x79bc, (q15_t)0x79ba, - (q15_t)0x79b8, (q15_t)0x79b6, (q15_t)0x79b4, (q15_t)0x79b2, (q15_t)0x79b0, (q15_t)0x79ae, (q15_t)0x79ac, (q15_t)0x79aa, - (q15_t)0x79a8, (q15_t)0x79a6, (q15_t)0x79a4, (q15_t)0x79a2, (q15_t)0x79a0, (q15_t)0x799e, (q15_t)0x799c, (q15_t)0x799a, - (q15_t)0x7998, (q15_t)0x7996, (q15_t)0x7994, (q15_t)0x7992, (q15_t)0x7991, (q15_t)0x798f, (q15_t)0x798d, (q15_t)0x798b, - (q15_t)0x7989, (q15_t)0x7987, (q15_t)0x7985, (q15_t)0x7983, (q15_t)0x7981, (q15_t)0x797f, (q15_t)0x797d, (q15_t)0x797b, - (q15_t)0x7979, (q15_t)0x7977, (q15_t)0x7975, (q15_t)0x7973, (q15_t)0x7971, (q15_t)0x796f, (q15_t)0x796d, (q15_t)0x796b, - (q15_t)0x7969, (q15_t)0x7967, (q15_t)0x7965, (q15_t)0x7963, (q15_t)0x7961, (q15_t)0x795f, (q15_t)0x795d, (q15_t)0x795b, - (q15_t)0x7959, (q15_t)0x7957, (q15_t)0x7955, (q15_t)0x7953, (q15_t)0x7951, (q15_t)0x794f, (q15_t)0x794d, (q15_t)0x794b, - (q15_t)0x7949, (q15_t)0x7947, (q15_t)0x7945, (q15_t)0x7943, (q15_t)0x7941, (q15_t)0x793f, (q15_t)0x793d, (q15_t)0x793b, - (q15_t)0x7939, (q15_t)0x7937, (q15_t)0x7935, (q15_t)0x7933, (q15_t)0x7931, (q15_t)0x792f, (q15_t)0x792d, (q15_t)0x792b, - (q15_t)0x7929, (q15_t)0x7927, (q15_t)0x7925, (q15_t)0x7923, (q15_t)0x7921, (q15_t)0x791f, (q15_t)0x791d, (q15_t)0x791a, - (q15_t)0x7918, (q15_t)0x7916, (q15_t)0x7914, (q15_t)0x7912, (q15_t)0x7910, (q15_t)0x790e, (q15_t)0x790c, (q15_t)0x790a, - (q15_t)0x7908, (q15_t)0x7906, (q15_t)0x7904, (q15_t)0x7902, (q15_t)0x7900, (q15_t)0x78fe, (q15_t)0x78fc, (q15_t)0x78fa, - (q15_t)0x78f8, (q15_t)0x78f6, (q15_t)0x78f4, (q15_t)0x78f2, (q15_t)0x78f0, (q15_t)0x78ed, (q15_t)0x78eb, (q15_t)0x78e9, - (q15_t)0x78e7, (q15_t)0x78e5, (q15_t)0x78e3, (q15_t)0x78e1, (q15_t)0x78df, (q15_t)0x78dd, (q15_t)0x78db, (q15_t)0x78d9, - (q15_t)0x78d7, (q15_t)0x78d5, (q15_t)0x78d3, (q15_t)0x78d1, (q15_t)0x78ce, (q15_t)0x78cc, (q15_t)0x78ca, (q15_t)0x78c8, - (q15_t)0x78c6, (q15_t)0x78c4, (q15_t)0x78c2, (q15_t)0x78c0, (q15_t)0x78be, (q15_t)0x78bc, (q15_t)0x78ba, (q15_t)0x78b8, - (q15_t)0x78b5, (q15_t)0x78b3, (q15_t)0x78b1, (q15_t)0x78af, (q15_t)0x78ad, (q15_t)0x78ab, (q15_t)0x78a9, (q15_t)0x78a7, - (q15_t)0x78a5, (q15_t)0x78a3, (q15_t)0x78a0, (q15_t)0x789e, (q15_t)0x789c, (q15_t)0x789a, (q15_t)0x7898, (q15_t)0x7896, - (q15_t)0x7894, (q15_t)0x7892, (q15_t)0x7890, (q15_t)0x788e, (q15_t)0x788b, (q15_t)0x7889, (q15_t)0x7887, (q15_t)0x7885, - (q15_t)0x7883, (q15_t)0x7881, (q15_t)0x787f, (q15_t)0x787d, (q15_t)0x787a, (q15_t)0x7878, (q15_t)0x7876, (q15_t)0x7874, - (q15_t)0x7872, (q15_t)0x7870, (q15_t)0x786e, (q15_t)0x786c, (q15_t)0x7869, (q15_t)0x7867, (q15_t)0x7865, (q15_t)0x7863, - (q15_t)0x7861, (q15_t)0x785f, (q15_t)0x785d, (q15_t)0x785b, (q15_t)0x7858, (q15_t)0x7856, (q15_t)0x7854, (q15_t)0x7852, - (q15_t)0x7850, (q15_t)0x784e, (q15_t)0x784c, (q15_t)0x7849, (q15_t)0x7847, (q15_t)0x7845, (q15_t)0x7843, (q15_t)0x7841, - (q15_t)0x783f, (q15_t)0x783c, (q15_t)0x783a, (q15_t)0x7838, (q15_t)0x7836, (q15_t)0x7834, (q15_t)0x7832, (q15_t)0x7830, - (q15_t)0x782d, (q15_t)0x782b, (q15_t)0x7829, (q15_t)0x7827, (q15_t)0x7825, (q15_t)0x7823, (q15_t)0x7820, (q15_t)0x781e, - (q15_t)0x781c, (q15_t)0x781a, (q15_t)0x7818, (q15_t)0x7816, (q15_t)0x7813, (q15_t)0x7811, (q15_t)0x780f, (q15_t)0x780d, - (q15_t)0x780b, (q15_t)0x7808, (q15_t)0x7806, (q15_t)0x7804, (q15_t)0x7802, (q15_t)0x7800, (q15_t)0x77fe, (q15_t)0x77fb, - (q15_t)0x77f9, (q15_t)0x77f7, (q15_t)0x77f5, (q15_t)0x77f3, (q15_t)0x77f0, (q15_t)0x77ee, (q15_t)0x77ec, (q15_t)0x77ea, - (q15_t)0x77e8, (q15_t)0x77e5, (q15_t)0x77e3, (q15_t)0x77e1, (q15_t)0x77df, (q15_t)0x77dd, (q15_t)0x77da, (q15_t)0x77d8, - (q15_t)0x77d6, (q15_t)0x77d4, (q15_t)0x77d2, (q15_t)0x77cf, (q15_t)0x77cd, (q15_t)0x77cb, (q15_t)0x77c9, (q15_t)0x77c6, - (q15_t)0x77c4, (q15_t)0x77c2, (q15_t)0x77c0, (q15_t)0x77be, (q15_t)0x77bb, (q15_t)0x77b9, (q15_t)0x77b7, (q15_t)0x77b5, - (q15_t)0x77b2, (q15_t)0x77b0, (q15_t)0x77ae, (q15_t)0x77ac, (q15_t)0x77aa, (q15_t)0x77a7, (q15_t)0x77a5, (q15_t)0x77a3, - (q15_t)0x77a1, (q15_t)0x779e, (q15_t)0x779c, (q15_t)0x779a, (q15_t)0x7798, (q15_t)0x7795, (q15_t)0x7793, (q15_t)0x7791, - (q15_t)0x778f, (q15_t)0x778c, (q15_t)0x778a, (q15_t)0x7788, (q15_t)0x7786, (q15_t)0x7783, (q15_t)0x7781, (q15_t)0x777f, - (q15_t)0x777d, (q15_t)0x777a, (q15_t)0x7778, (q15_t)0x7776, (q15_t)0x7774, (q15_t)0x7771, (q15_t)0x776f, (q15_t)0x776d, - (q15_t)0x776b, (q15_t)0x7768, (q15_t)0x7766, (q15_t)0x7764, (q15_t)0x7762, (q15_t)0x775f, (q15_t)0x775d, (q15_t)0x775b, - (q15_t)0x7759, (q15_t)0x7756, (q15_t)0x7754, (q15_t)0x7752, (q15_t)0x774f, (q15_t)0x774d, (q15_t)0x774b, (q15_t)0x7749, - (q15_t)0x7746, (q15_t)0x7744, (q15_t)0x7742, (q15_t)0x773f, (q15_t)0x773d, (q15_t)0x773b, (q15_t)0x7739, (q15_t)0x7736, - (q15_t)0x7734, (q15_t)0x7732, (q15_t)0x772f, (q15_t)0x772d, (q15_t)0x772b, (q15_t)0x7729, (q15_t)0x7726, (q15_t)0x7724, - (q15_t)0x7722, (q15_t)0x771f, (q15_t)0x771d, (q15_t)0x771b, (q15_t)0x7719, (q15_t)0x7716, (q15_t)0x7714, (q15_t)0x7712, - (q15_t)0x770f, (q15_t)0x770d, (q15_t)0x770b, (q15_t)0x7708, (q15_t)0x7706, (q15_t)0x7704, (q15_t)0x7701, (q15_t)0x76ff, - (q15_t)0x76fd, (q15_t)0x76fa, (q15_t)0x76f8, (q15_t)0x76f6, (q15_t)0x76f4, (q15_t)0x76f1, (q15_t)0x76ef, (q15_t)0x76ed, - (q15_t)0x76ea, (q15_t)0x76e8, (q15_t)0x76e6, (q15_t)0x76e3, (q15_t)0x76e1, (q15_t)0x76df, (q15_t)0x76dc, (q15_t)0x76da, - (q15_t)0x76d8, (q15_t)0x76d5, (q15_t)0x76d3, (q15_t)0x76d1, (q15_t)0x76ce, (q15_t)0x76cc, (q15_t)0x76ca, (q15_t)0x76c7, - (q15_t)0x76c5, (q15_t)0x76c3, (q15_t)0x76c0, (q15_t)0x76be, (q15_t)0x76bc, (q15_t)0x76b9, (q15_t)0x76b7, (q15_t)0x76b4, - (q15_t)0x76b2, (q15_t)0x76b0, (q15_t)0x76ad, (q15_t)0x76ab, (q15_t)0x76a9, (q15_t)0x76a6, (q15_t)0x76a4, (q15_t)0x76a2, - (q15_t)0x769f, (q15_t)0x769d, (q15_t)0x769b, (q15_t)0x7698, (q15_t)0x7696, (q15_t)0x7693, (q15_t)0x7691, (q15_t)0x768f, - (q15_t)0x768c, (q15_t)0x768a, (q15_t)0x7688, (q15_t)0x7685, (q15_t)0x7683, (q15_t)0x7681, (q15_t)0x767e, (q15_t)0x767c, - (q15_t)0x7679, (q15_t)0x7677, (q15_t)0x7675, (q15_t)0x7672, (q15_t)0x7670, (q15_t)0x766d, (q15_t)0x766b, (q15_t)0x7669, - (q15_t)0x7666, (q15_t)0x7664, (q15_t)0x7662, (q15_t)0x765f, (q15_t)0x765d, (q15_t)0x765a, (q15_t)0x7658, (q15_t)0x7656, - (q15_t)0x7653, (q15_t)0x7651, (q15_t)0x764e, (q15_t)0x764c, (q15_t)0x764a, (q15_t)0x7647, (q15_t)0x7645, (q15_t)0x7642, - (q15_t)0x7640, (q15_t)0x763e, (q15_t)0x763b, (q15_t)0x7639, (q15_t)0x7636, (q15_t)0x7634, (q15_t)0x7632, (q15_t)0x762f, - (q15_t)0x762d, (q15_t)0x762a, (q15_t)0x7628, (q15_t)0x7625, (q15_t)0x7623, (q15_t)0x7621, (q15_t)0x761e, (q15_t)0x761c, - (q15_t)0x7619, (q15_t)0x7617, (q15_t)0x7615, (q15_t)0x7612, (q15_t)0x7610, (q15_t)0x760d, (q15_t)0x760b, (q15_t)0x7608, - (q15_t)0x7606, (q15_t)0x7604, (q15_t)0x7601, (q15_t)0x75ff, (q15_t)0x75fc, (q15_t)0x75fa, (q15_t)0x75f7, (q15_t)0x75f5, - (q15_t)0x75f2, (q15_t)0x75f0, (q15_t)0x75ee, (q15_t)0x75eb, (q15_t)0x75e9, (q15_t)0x75e6, (q15_t)0x75e4, (q15_t)0x75e1, - (q15_t)0x75df, (q15_t)0x75dc, (q15_t)0x75da, (q15_t)0x75d8, (q15_t)0x75d5, (q15_t)0x75d3, (q15_t)0x75d0, (q15_t)0x75ce, - (q15_t)0x75cb, (q15_t)0x75c9, (q15_t)0x75c6, (q15_t)0x75c4, (q15_t)0x75c1, (q15_t)0x75bf, (q15_t)0x75bc, (q15_t)0x75ba, - (q15_t)0x75b8, (q15_t)0x75b5, (q15_t)0x75b3, (q15_t)0x75b0, (q15_t)0x75ae, (q15_t)0x75ab, (q15_t)0x75a9, (q15_t)0x75a6, - (q15_t)0x75a4, (q15_t)0x75a1, (q15_t)0x759f, (q15_t)0x759c, (q15_t)0x759a, (q15_t)0x7597, (q15_t)0x7595, (q15_t)0x7592, - (q15_t)0x7590, (q15_t)0x758d, (q15_t)0x758b, (q15_t)0x7588, (q15_t)0x7586, (q15_t)0x7584, (q15_t)0x7581, (q15_t)0x757f, - (q15_t)0x757c, (q15_t)0x757a, (q15_t)0x7577, (q15_t)0x7575, (q15_t)0x7572, (q15_t)0x7570, (q15_t)0x756d, (q15_t)0x756b, - (q15_t)0x7568, (q15_t)0x7566, (q15_t)0x7563, (q15_t)0x7561, (q15_t)0x755e, (q15_t)0x755c, (q15_t)0x7559, (q15_t)0x7556, - (q15_t)0x7554, (q15_t)0x7551, (q15_t)0x754f, (q15_t)0x754c, (q15_t)0x754a, (q15_t)0x7547, (q15_t)0x7545, (q15_t)0x7542, - (q15_t)0x7540, (q15_t)0x753d, (q15_t)0x753b, (q15_t)0x7538, (q15_t)0x7536, (q15_t)0x7533, (q15_t)0x7531, (q15_t)0x752e, - (q15_t)0x752c, (q15_t)0x7529, (q15_t)0x7527, (q15_t)0x7524, (q15_t)0x7522, (q15_t)0x751f, (q15_t)0x751c, (q15_t)0x751a, - (q15_t)0x7517, (q15_t)0x7515, (q15_t)0x7512, (q15_t)0x7510, (q15_t)0x750d, (q15_t)0x750b, (q15_t)0x7508, (q15_t)0x7506, - (q15_t)0x7503, (q15_t)0x7501, (q15_t)0x74fe, (q15_t)0x74fb, (q15_t)0x74f9, (q15_t)0x74f6, (q15_t)0x74f4, (q15_t)0x74f1, - (q15_t)0x74ef, (q15_t)0x74ec, (q15_t)0x74ea, (q15_t)0x74e7, (q15_t)0x74e4, (q15_t)0x74e2, (q15_t)0x74df, (q15_t)0x74dd, - (q15_t)0x74da, (q15_t)0x74d8, (q15_t)0x74d5, (q15_t)0x74d2, (q15_t)0x74d0, (q15_t)0x74cd, (q15_t)0x74cb, (q15_t)0x74c8, - (q15_t)0x74c6, (q15_t)0x74c3, (q15_t)0x74c0, (q15_t)0x74be, (q15_t)0x74bb, (q15_t)0x74b9, (q15_t)0x74b6, (q15_t)0x74b4, - (q15_t)0x74b1, (q15_t)0x74ae, (q15_t)0x74ac, (q15_t)0x74a9, (q15_t)0x74a7, (q15_t)0x74a4, (q15_t)0x74a1, (q15_t)0x749f, - (q15_t)0x749c, (q15_t)0x749a, (q15_t)0x7497, (q15_t)0x7495, (q15_t)0x7492, (q15_t)0x748f, (q15_t)0x748d, (q15_t)0x748a, - (q15_t)0x7488, (q15_t)0x7485, (q15_t)0x7482, (q15_t)0x7480, (q15_t)0x747d, (q15_t)0x747b, (q15_t)0x7478, (q15_t)0x7475, - (q15_t)0x7473, (q15_t)0x7470, (q15_t)0x746d, (q15_t)0x746b, (q15_t)0x7468, (q15_t)0x7466, (q15_t)0x7463, (q15_t)0x7460, - (q15_t)0x745e, (q15_t)0x745b, (q15_t)0x7459, (q15_t)0x7456, (q15_t)0x7453, (q15_t)0x7451, (q15_t)0x744e, (q15_t)0x744b, - (q15_t)0x7449, (q15_t)0x7446, (q15_t)0x7444, (q15_t)0x7441, (q15_t)0x743e, (q15_t)0x743c, (q15_t)0x7439, (q15_t)0x7436, - (q15_t)0x7434, (q15_t)0x7431, (q15_t)0x742f, (q15_t)0x742c, (q15_t)0x7429, (q15_t)0x7427, (q15_t)0x7424, (q15_t)0x7421, - (q15_t)0x741f, (q15_t)0x741c, (q15_t)0x7419, (q15_t)0x7417, (q15_t)0x7414, (q15_t)0x7411, (q15_t)0x740f, (q15_t)0x740c, - (q15_t)0x740a, (q15_t)0x7407, (q15_t)0x7404, (q15_t)0x7402, (q15_t)0x73ff, (q15_t)0x73fc, (q15_t)0x73fa, (q15_t)0x73f7, - (q15_t)0x73f4, (q15_t)0x73f2, (q15_t)0x73ef, (q15_t)0x73ec, (q15_t)0x73ea, (q15_t)0x73e7, (q15_t)0x73e4, (q15_t)0x73e2, - (q15_t)0x73df, (q15_t)0x73dc, (q15_t)0x73da, (q15_t)0x73d7, (q15_t)0x73d4, (q15_t)0x73d2, (q15_t)0x73cf, (q15_t)0x73cc, - (q15_t)0x73ca, (q15_t)0x73c7, (q15_t)0x73c4, (q15_t)0x73c1, (q15_t)0x73bf, (q15_t)0x73bc, (q15_t)0x73b9, (q15_t)0x73b7, - (q15_t)0x73b4, (q15_t)0x73b1, (q15_t)0x73af, (q15_t)0x73ac, (q15_t)0x73a9, (q15_t)0x73a7, (q15_t)0x73a4, (q15_t)0x73a1, - (q15_t)0x739f, (q15_t)0x739c, (q15_t)0x7399, (q15_t)0x7396, (q15_t)0x7394, (q15_t)0x7391, (q15_t)0x738e, (q15_t)0x738c, - (q15_t)0x7389, (q15_t)0x7386, (q15_t)0x7384, (q15_t)0x7381, (q15_t)0x737e, (q15_t)0x737b, (q15_t)0x7379, (q15_t)0x7376, - (q15_t)0x7373, (q15_t)0x7371, (q15_t)0x736e, (q15_t)0x736b, (q15_t)0x7368, (q15_t)0x7366, (q15_t)0x7363, (q15_t)0x7360, - (q15_t)0x735e, (q15_t)0x735b, (q15_t)0x7358, (q15_t)0x7355, (q15_t)0x7353, (q15_t)0x7350, (q15_t)0x734d, (q15_t)0x734a, - (q15_t)0x7348, (q15_t)0x7345, (q15_t)0x7342, (q15_t)0x7340, (q15_t)0x733d, (q15_t)0x733a, (q15_t)0x7337, (q15_t)0x7335, - (q15_t)0x7332, (q15_t)0x732f, (q15_t)0x732c, (q15_t)0x732a, (q15_t)0x7327, (q15_t)0x7324, (q15_t)0x7321, (q15_t)0x731f, - (q15_t)0x731c, (q15_t)0x7319, (q15_t)0x7316, (q15_t)0x7314, (q15_t)0x7311, (q15_t)0x730e, (q15_t)0x730b, (q15_t)0x7309, - (q15_t)0x7306, (q15_t)0x7303, (q15_t)0x7300, (q15_t)0x72fe, (q15_t)0x72fb, (q15_t)0x72f8, (q15_t)0x72f5, (q15_t)0x72f3, - (q15_t)0x72f0, (q15_t)0x72ed, (q15_t)0x72ea, (q15_t)0x72e8, (q15_t)0x72e5, (q15_t)0x72e2, (q15_t)0x72df, (q15_t)0x72dc, - (q15_t)0x72da, (q15_t)0x72d7, (q15_t)0x72d4, (q15_t)0x72d1, (q15_t)0x72cf, (q15_t)0x72cc, (q15_t)0x72c9, (q15_t)0x72c6, - (q15_t)0x72c3, (q15_t)0x72c1, (q15_t)0x72be, (q15_t)0x72bb, (q15_t)0x72b8, (q15_t)0x72b5, (q15_t)0x72b3, (q15_t)0x72b0, - (q15_t)0x72ad, (q15_t)0x72aa, (q15_t)0x72a8, (q15_t)0x72a5, (q15_t)0x72a2, (q15_t)0x729f, (q15_t)0x729c, (q15_t)0x729a, - (q15_t)0x7297, (q15_t)0x7294, (q15_t)0x7291, (q15_t)0x728e, (q15_t)0x728c, (q15_t)0x7289, (q15_t)0x7286, (q15_t)0x7283, - (q15_t)0x7280, (q15_t)0x727e, (q15_t)0x727b, (q15_t)0x7278, (q15_t)0x7275, (q15_t)0x7272, (q15_t)0x726f, (q15_t)0x726d, - (q15_t)0x726a, (q15_t)0x7267, (q15_t)0x7264, (q15_t)0x7261, (q15_t)0x725f, (q15_t)0x725c, (q15_t)0x7259, (q15_t)0x7256, - (q15_t)0x7253, (q15_t)0x7250, (q15_t)0x724e, (q15_t)0x724b, (q15_t)0x7248, (q15_t)0x7245, (q15_t)0x7242, (q15_t)0x723f, - (q15_t)0x723d, (q15_t)0x723a, (q15_t)0x7237, (q15_t)0x7234, (q15_t)0x7231, (q15_t)0x722e, (q15_t)0x722c, (q15_t)0x7229, - (q15_t)0x7226, (q15_t)0x7223, (q15_t)0x7220, (q15_t)0x721d, (q15_t)0x721b, (q15_t)0x7218, (q15_t)0x7215, (q15_t)0x7212, - (q15_t)0x720f, (q15_t)0x720c, (q15_t)0x7209, (q15_t)0x7207, (q15_t)0x7204, (q15_t)0x7201, (q15_t)0x71fe, (q15_t)0x71fb, - (q15_t)0x71f8, (q15_t)0x71f5, (q15_t)0x71f3, (q15_t)0x71f0, (q15_t)0x71ed, (q15_t)0x71ea, (q15_t)0x71e7, (q15_t)0x71e4, - (q15_t)0x71e1, (q15_t)0x71df, (q15_t)0x71dc, (q15_t)0x71d9, (q15_t)0x71d6, (q15_t)0x71d3, (q15_t)0x71d0, (q15_t)0x71cd, - (q15_t)0x71ca, (q15_t)0x71c8, (q15_t)0x71c5, (q15_t)0x71c2, (q15_t)0x71bf, (q15_t)0x71bc, (q15_t)0x71b9, (q15_t)0x71b6, - (q15_t)0x71b3, (q15_t)0x71b0, (q15_t)0x71ae, (q15_t)0x71ab, (q15_t)0x71a8, (q15_t)0x71a5, (q15_t)0x71a2, (q15_t)0x719f, - (q15_t)0x719c, (q15_t)0x7199, (q15_t)0x7196, (q15_t)0x7194, (q15_t)0x7191, (q15_t)0x718e, (q15_t)0x718b, (q15_t)0x7188, - (q15_t)0x7185, (q15_t)0x7182, (q15_t)0x717f, (q15_t)0x717c, (q15_t)0x7179, (q15_t)0x7177, (q15_t)0x7174, (q15_t)0x7171, - (q15_t)0x716e, (q15_t)0x716b, (q15_t)0x7168, (q15_t)0x7165, (q15_t)0x7162, (q15_t)0x715f, (q15_t)0x715c, (q15_t)0x7159, - (q15_t)0x7156, (q15_t)0x7154, (q15_t)0x7151, (q15_t)0x714e, (q15_t)0x714b, (q15_t)0x7148, (q15_t)0x7145, (q15_t)0x7142, - (q15_t)0x713f, (q15_t)0x713c, (q15_t)0x7139, (q15_t)0x7136, (q15_t)0x7133, (q15_t)0x7130, (q15_t)0x712d, (q15_t)0x712b, - (q15_t)0x7128, (q15_t)0x7125, (q15_t)0x7122, (q15_t)0x711f, (q15_t)0x711c, (q15_t)0x7119, (q15_t)0x7116, (q15_t)0x7113, - (q15_t)0x7110, (q15_t)0x710d, (q15_t)0x710a, (q15_t)0x7107, (q15_t)0x7104, (q15_t)0x7101, (q15_t)0x70fe, (q15_t)0x70fb, - (q15_t)0x70f8, (q15_t)0x70f6, (q15_t)0x70f3, (q15_t)0x70f0, (q15_t)0x70ed, (q15_t)0x70ea, (q15_t)0x70e7, (q15_t)0x70e4, - (q15_t)0x70e1, (q15_t)0x70de, (q15_t)0x70db, (q15_t)0x70d8, (q15_t)0x70d5, (q15_t)0x70d2, (q15_t)0x70cf, (q15_t)0x70cc, - (q15_t)0x70c9, (q15_t)0x70c6, (q15_t)0x70c3, (q15_t)0x70c0, (q15_t)0x70bd, (q15_t)0x70ba, (q15_t)0x70b7, (q15_t)0x70b4, - (q15_t)0x70b1, (q15_t)0x70ae, (q15_t)0x70ab, (q15_t)0x70a8, (q15_t)0x70a5, (q15_t)0x70a2, (q15_t)0x709f, (q15_t)0x709c, - (q15_t)0x7099, (q15_t)0x7096, (q15_t)0x7093, (q15_t)0x7090, (q15_t)0x708d, (q15_t)0x708a, (q15_t)0x7087, (q15_t)0x7084, - (q15_t)0x7081, (q15_t)0x707e, (q15_t)0x707b, (q15_t)0x7078, (q15_t)0x7075, (q15_t)0x7072, (q15_t)0x706f, (q15_t)0x706c, - (q15_t)0x7069, (q15_t)0x7066, (q15_t)0x7063, (q15_t)0x7060, (q15_t)0x705d, (q15_t)0x705a, (q15_t)0x7057, (q15_t)0x7054, - (q15_t)0x7051, (q15_t)0x704e, (q15_t)0x704b, (q15_t)0x7048, (q15_t)0x7045, (q15_t)0x7042, (q15_t)0x703f, (q15_t)0x703c, - (q15_t)0x7039, (q15_t)0x7036, (q15_t)0x7033, (q15_t)0x7030, (q15_t)0x702d, (q15_t)0x702a, (q15_t)0x7027, (q15_t)0x7024, - (q15_t)0x7021, (q15_t)0x701e, (q15_t)0x701b, (q15_t)0x7018, (q15_t)0x7015, (q15_t)0x7012, (q15_t)0x700f, (q15_t)0x700c, - (q15_t)0x7009, (q15_t)0x7006, (q15_t)0x7003, (q15_t)0x7000, (q15_t)0x6ffd, (q15_t)0x6ffa, (q15_t)0x6ff7, (q15_t)0x6ff3, - (q15_t)0x6ff0, (q15_t)0x6fed, (q15_t)0x6fea, (q15_t)0x6fe7, (q15_t)0x6fe4, (q15_t)0x6fe1, (q15_t)0x6fde, (q15_t)0x6fdb, - (q15_t)0x6fd8, (q15_t)0x6fd5, (q15_t)0x6fd2, (q15_t)0x6fcf, (q15_t)0x6fcc, (q15_t)0x6fc9, (q15_t)0x6fc6, (q15_t)0x6fc3, - (q15_t)0x6fc0, (q15_t)0x6fbc, (q15_t)0x6fb9, (q15_t)0x6fb6, (q15_t)0x6fb3, (q15_t)0x6fb0, (q15_t)0x6fad, (q15_t)0x6faa, - (q15_t)0x6fa7, (q15_t)0x6fa4, (q15_t)0x6fa1, (q15_t)0x6f9e, (q15_t)0x6f9b, (q15_t)0x6f98, (q15_t)0x6f95, (q15_t)0x6f91, - (q15_t)0x6f8e, (q15_t)0x6f8b, (q15_t)0x6f88, (q15_t)0x6f85, (q15_t)0x6f82, (q15_t)0x6f7f, (q15_t)0x6f7c, (q15_t)0x6f79, - (q15_t)0x6f76, (q15_t)0x6f73, (q15_t)0x6f70, (q15_t)0x6f6c, (q15_t)0x6f69, (q15_t)0x6f66, (q15_t)0x6f63, (q15_t)0x6f60, - (q15_t)0x6f5d, (q15_t)0x6f5a, (q15_t)0x6f57, (q15_t)0x6f54, (q15_t)0x6f51, (q15_t)0x6f4d, (q15_t)0x6f4a, (q15_t)0x6f47, - (q15_t)0x6f44, (q15_t)0x6f41, (q15_t)0x6f3e, (q15_t)0x6f3b, (q15_t)0x6f38, (q15_t)0x6f35, (q15_t)0x6f31, (q15_t)0x6f2e, - (q15_t)0x6f2b, (q15_t)0x6f28, (q15_t)0x6f25, (q15_t)0x6f22, (q15_t)0x6f1f, (q15_t)0x6f1c, (q15_t)0x6f19, (q15_t)0x6f15, - (q15_t)0x6f12, (q15_t)0x6f0f, (q15_t)0x6f0c, (q15_t)0x6f09, (q15_t)0x6f06, (q15_t)0x6f03, (q15_t)0x6f00, (q15_t)0x6efc, - (q15_t)0x6ef9, (q15_t)0x6ef6, (q15_t)0x6ef3, (q15_t)0x6ef0, (q15_t)0x6eed, (q15_t)0x6eea, (q15_t)0x6ee7, (q15_t)0x6ee3, - (q15_t)0x6ee0, (q15_t)0x6edd, (q15_t)0x6eda, (q15_t)0x6ed7, (q15_t)0x6ed4, (q15_t)0x6ed1, (q15_t)0x6ecd, (q15_t)0x6eca, - (q15_t)0x6ec7, (q15_t)0x6ec4, (q15_t)0x6ec1, (q15_t)0x6ebe, (q15_t)0x6eba, (q15_t)0x6eb7, (q15_t)0x6eb4, (q15_t)0x6eb1, - (q15_t)0x6eae, (q15_t)0x6eab, (q15_t)0x6ea8, (q15_t)0x6ea4, (q15_t)0x6ea1, (q15_t)0x6e9e, (q15_t)0x6e9b, (q15_t)0x6e98, - (q15_t)0x6e95, (q15_t)0x6e91, (q15_t)0x6e8e, (q15_t)0x6e8b, (q15_t)0x6e88, (q15_t)0x6e85, (q15_t)0x6e82, (q15_t)0x6e7e, - (q15_t)0x6e7b, (q15_t)0x6e78, (q15_t)0x6e75, (q15_t)0x6e72, (q15_t)0x6e6f, (q15_t)0x6e6b, (q15_t)0x6e68, (q15_t)0x6e65, - (q15_t)0x6e62, (q15_t)0x6e5f, (q15_t)0x6e5b, (q15_t)0x6e58, (q15_t)0x6e55, (q15_t)0x6e52, (q15_t)0x6e4f, (q15_t)0x6e4c, - (q15_t)0x6e48, (q15_t)0x6e45, (q15_t)0x6e42, (q15_t)0x6e3f, (q15_t)0x6e3c, (q15_t)0x6e38, (q15_t)0x6e35, (q15_t)0x6e32, - (q15_t)0x6e2f, (q15_t)0x6e2c, (q15_t)0x6e28, (q15_t)0x6e25, (q15_t)0x6e22, (q15_t)0x6e1f, (q15_t)0x6e1c, (q15_t)0x6e18, - (q15_t)0x6e15, (q15_t)0x6e12, (q15_t)0x6e0f, (q15_t)0x6e0c, (q15_t)0x6e08, (q15_t)0x6e05, (q15_t)0x6e02, (q15_t)0x6dff, - (q15_t)0x6dfb, (q15_t)0x6df8, (q15_t)0x6df5, (q15_t)0x6df2, (q15_t)0x6def, (q15_t)0x6deb, (q15_t)0x6de8, (q15_t)0x6de5, - (q15_t)0x6de2, (q15_t)0x6ddf, (q15_t)0x6ddb, (q15_t)0x6dd8, (q15_t)0x6dd5, (q15_t)0x6dd2, (q15_t)0x6dce, (q15_t)0x6dcb, - (q15_t)0x6dc8, (q15_t)0x6dc5, (q15_t)0x6dc1, (q15_t)0x6dbe, (q15_t)0x6dbb, (q15_t)0x6db8, (q15_t)0x6db5, (q15_t)0x6db1, - (q15_t)0x6dae, (q15_t)0x6dab, (q15_t)0x6da8, (q15_t)0x6da4, (q15_t)0x6da1, (q15_t)0x6d9e, (q15_t)0x6d9b, (q15_t)0x6d97, - (q15_t)0x6d94, (q15_t)0x6d91, (q15_t)0x6d8e, (q15_t)0x6d8a, (q15_t)0x6d87, (q15_t)0x6d84, (q15_t)0x6d81, (q15_t)0x6d7d, - (q15_t)0x6d7a, (q15_t)0x6d77, (q15_t)0x6d74, (q15_t)0x6d70, (q15_t)0x6d6d, (q15_t)0x6d6a, (q15_t)0x6d67, (q15_t)0x6d63, - (q15_t)0x6d60, (q15_t)0x6d5d, (q15_t)0x6d59, (q15_t)0x6d56, (q15_t)0x6d53, (q15_t)0x6d50, (q15_t)0x6d4c, (q15_t)0x6d49, - (q15_t)0x6d46, (q15_t)0x6d43, (q15_t)0x6d3f, (q15_t)0x6d3c, (q15_t)0x6d39, (q15_t)0x6d36, (q15_t)0x6d32, (q15_t)0x6d2f, - (q15_t)0x6d2c, (q15_t)0x6d28, (q15_t)0x6d25, (q15_t)0x6d22, (q15_t)0x6d1f, (q15_t)0x6d1b, (q15_t)0x6d18, (q15_t)0x6d15, - (q15_t)0x6d11, (q15_t)0x6d0e, (q15_t)0x6d0b, (q15_t)0x6d08, (q15_t)0x6d04, (q15_t)0x6d01, (q15_t)0x6cfe, (q15_t)0x6cfa, - (q15_t)0x6cf7, (q15_t)0x6cf4, (q15_t)0x6cf0, (q15_t)0x6ced, (q15_t)0x6cea, (q15_t)0x6ce7, (q15_t)0x6ce3, (q15_t)0x6ce0, - (q15_t)0x6cdd, (q15_t)0x6cd9, (q15_t)0x6cd6, (q15_t)0x6cd3, (q15_t)0x6ccf, (q15_t)0x6ccc, (q15_t)0x6cc9, (q15_t)0x6cc5, - (q15_t)0x6cc2, (q15_t)0x6cbf, (q15_t)0x6cbc, (q15_t)0x6cb8, (q15_t)0x6cb5, (q15_t)0x6cb2, (q15_t)0x6cae, (q15_t)0x6cab, - (q15_t)0x6ca8, (q15_t)0x6ca4, (q15_t)0x6ca1, (q15_t)0x6c9e, (q15_t)0x6c9a, (q15_t)0x6c97, (q15_t)0x6c94, (q15_t)0x6c90, - (q15_t)0x6c8d, (q15_t)0x6c8a, (q15_t)0x6c86, (q15_t)0x6c83, (q15_t)0x6c80, (q15_t)0x6c7c, (q15_t)0x6c79, (q15_t)0x6c76, - (q15_t)0x6c72, (q15_t)0x6c6f, (q15_t)0x6c6c, (q15_t)0x6c68, (q15_t)0x6c65, (q15_t)0x6c62, (q15_t)0x6c5e, (q15_t)0x6c5b, - (q15_t)0x6c58, (q15_t)0x6c54, (q15_t)0x6c51, (q15_t)0x6c4e, (q15_t)0x6c4a, (q15_t)0x6c47, (q15_t)0x6c44, (q15_t)0x6c40, - (q15_t)0x6c3d, (q15_t)0x6c39, (q15_t)0x6c36, (q15_t)0x6c33, (q15_t)0x6c2f, (q15_t)0x6c2c, (q15_t)0x6c29, (q15_t)0x6c25, - (q15_t)0x6c22, (q15_t)0x6c1f, (q15_t)0x6c1b, (q15_t)0x6c18, (q15_t)0x6c15, (q15_t)0x6c11, (q15_t)0x6c0e, (q15_t)0x6c0a, - (q15_t)0x6c07, (q15_t)0x6c04, (q15_t)0x6c00, (q15_t)0x6bfd, (q15_t)0x6bfa, (q15_t)0x6bf6, (q15_t)0x6bf3, (q15_t)0x6bef, - (q15_t)0x6bec, (q15_t)0x6be9, (q15_t)0x6be5, (q15_t)0x6be2, (q15_t)0x6bdf, (q15_t)0x6bdb, (q15_t)0x6bd8, (q15_t)0x6bd4, - (q15_t)0x6bd1, (q15_t)0x6bce, (q15_t)0x6bca, (q15_t)0x6bc7, (q15_t)0x6bc3, (q15_t)0x6bc0, (q15_t)0x6bbd, (q15_t)0x6bb9, - (q15_t)0x6bb6, (q15_t)0x6bb2, (q15_t)0x6baf, (q15_t)0x6bac, (q15_t)0x6ba8, (q15_t)0x6ba5, (q15_t)0x6ba1, (q15_t)0x6b9e, - (q15_t)0x6b9b, (q15_t)0x6b97, (q15_t)0x6b94, (q15_t)0x6b90, (q15_t)0x6b8d, (q15_t)0x6b8a, (q15_t)0x6b86, (q15_t)0x6b83, - (q15_t)0x6b7f, (q15_t)0x6b7c, (q15_t)0x6b79, (q15_t)0x6b75, (q15_t)0x6b72, (q15_t)0x6b6e, (q15_t)0x6b6b, (q15_t)0x6b68, - (q15_t)0x6b64, (q15_t)0x6b61, (q15_t)0x6b5d, (q15_t)0x6b5a, (q15_t)0x6b56, (q15_t)0x6b53, (q15_t)0x6b50, (q15_t)0x6b4c, - (q15_t)0x6b49, (q15_t)0x6b45, (q15_t)0x6b42, (q15_t)0x6b3e, (q15_t)0x6b3b, (q15_t)0x6b38, (q15_t)0x6b34, (q15_t)0x6b31, - (q15_t)0x6b2d, (q15_t)0x6b2a, (q15_t)0x6b26, (q15_t)0x6b23, (q15_t)0x6b20, (q15_t)0x6b1c, (q15_t)0x6b19, (q15_t)0x6b15, - (q15_t)0x6b12, (q15_t)0x6b0e, (q15_t)0x6b0b, (q15_t)0x6b07, (q15_t)0x6b04, (q15_t)0x6b01, (q15_t)0x6afd, (q15_t)0x6afa, - (q15_t)0x6af6, (q15_t)0x6af3, (q15_t)0x6aef, (q15_t)0x6aec, (q15_t)0x6ae8, (q15_t)0x6ae5, (q15_t)0x6ae1, (q15_t)0x6ade, - (q15_t)0x6adb, (q15_t)0x6ad7, (q15_t)0x6ad4, (q15_t)0x6ad0, (q15_t)0x6acd, (q15_t)0x6ac9, (q15_t)0x6ac6, (q15_t)0x6ac2, - (q15_t)0x6abf, (q15_t)0x6abb, (q15_t)0x6ab8, (q15_t)0x6ab4, (q15_t)0x6ab1, (q15_t)0x6aae, (q15_t)0x6aaa, (q15_t)0x6aa7, - (q15_t)0x6aa3, (q15_t)0x6aa0, (q15_t)0x6a9c, (q15_t)0x6a99, (q15_t)0x6a95, (q15_t)0x6a92, (q15_t)0x6a8e, (q15_t)0x6a8b, - (q15_t)0x6a87, (q15_t)0x6a84, (q15_t)0x6a80, (q15_t)0x6a7d, (q15_t)0x6a79, (q15_t)0x6a76, (q15_t)0x6a72, (q15_t)0x6a6f, - (q15_t)0x6a6b, (q15_t)0x6a68, (q15_t)0x6a64, (q15_t)0x6a61, (q15_t)0x6a5d, (q15_t)0x6a5a, (q15_t)0x6a56, (q15_t)0x6a53, - (q15_t)0x6a4f, (q15_t)0x6a4c, (q15_t)0x6a48, (q15_t)0x6a45, (q15_t)0x6a41, (q15_t)0x6a3e, (q15_t)0x6a3a, (q15_t)0x6a37, - (q15_t)0x6a33, (q15_t)0x6a30, (q15_t)0x6a2c, (q15_t)0x6a29, (q15_t)0x6a25, (q15_t)0x6a22, (q15_t)0x6a1e, (q15_t)0x6a1b, - (q15_t)0x6a17, (q15_t)0x6a14, (q15_t)0x6a10, (q15_t)0x6a0d, (q15_t)0x6a09, (q15_t)0x6a06, (q15_t)0x6a02, (q15_t)0x69ff, - (q15_t)0x69fb, (q15_t)0x69f8, (q15_t)0x69f4, (q15_t)0x69f1, (q15_t)0x69ed, (q15_t)0x69e9, (q15_t)0x69e6, (q15_t)0x69e2, - (q15_t)0x69df, (q15_t)0x69db, (q15_t)0x69d8, (q15_t)0x69d4, (q15_t)0x69d1, (q15_t)0x69cd, (q15_t)0x69ca, (q15_t)0x69c6, - (q15_t)0x69c3, (q15_t)0x69bf, (q15_t)0x69bc, (q15_t)0x69b8, (q15_t)0x69b4, (q15_t)0x69b1, (q15_t)0x69ad, (q15_t)0x69aa, - (q15_t)0x69a6, (q15_t)0x69a3, (q15_t)0x699f, (q15_t)0x699c, (q15_t)0x6998, (q15_t)0x6995, (q15_t)0x6991, (q15_t)0x698d, - (q15_t)0x698a, (q15_t)0x6986, (q15_t)0x6983, (q15_t)0x697f, (q15_t)0x697c, (q15_t)0x6978, (q15_t)0x6975, (q15_t)0x6971, - (q15_t)0x696d, (q15_t)0x696a, (q15_t)0x6966, (q15_t)0x6963, (q15_t)0x695f, (q15_t)0x695c, (q15_t)0x6958, (q15_t)0x6954, - (q15_t)0x6951, (q15_t)0x694d, (q15_t)0x694a, (q15_t)0x6946, (q15_t)0x6943, (q15_t)0x693f, (q15_t)0x693b, (q15_t)0x6938, - (q15_t)0x6934, (q15_t)0x6931, (q15_t)0x692d, (q15_t)0x692a, (q15_t)0x6926, (q15_t)0x6922, (q15_t)0x691f, (q15_t)0x691b, - (q15_t)0x6918, (q15_t)0x6914, (q15_t)0x6910, (q15_t)0x690d, (q15_t)0x6909, (q15_t)0x6906, (q15_t)0x6902, (q15_t)0x68fe, - (q15_t)0x68fb, (q15_t)0x68f7, (q15_t)0x68f4, (q15_t)0x68f0, (q15_t)0x68ec, (q15_t)0x68e9, (q15_t)0x68e5, (q15_t)0x68e2, - (q15_t)0x68de, (q15_t)0x68da, (q15_t)0x68d7, (q15_t)0x68d3, (q15_t)0x68d0, (q15_t)0x68cc, (q15_t)0x68c8, (q15_t)0x68c5, - (q15_t)0x68c1, (q15_t)0x68be, (q15_t)0x68ba, (q15_t)0x68b6, (q15_t)0x68b3, (q15_t)0x68af, (q15_t)0x68ac, (q15_t)0x68a8, - (q15_t)0x68a4, (q15_t)0x68a1, (q15_t)0x689d, (q15_t)0x6899, (q15_t)0x6896, (q15_t)0x6892, (q15_t)0x688f, (q15_t)0x688b, - (q15_t)0x6887, (q15_t)0x6884, (q15_t)0x6880, (q15_t)0x687c, (q15_t)0x6879, (q15_t)0x6875, (q15_t)0x6872, (q15_t)0x686e, - (q15_t)0x686a, (q15_t)0x6867, (q15_t)0x6863, (q15_t)0x685f, (q15_t)0x685c, (q15_t)0x6858, (q15_t)0x6854, (q15_t)0x6851, - (q15_t)0x684d, (q15_t)0x684a, (q15_t)0x6846, (q15_t)0x6842, (q15_t)0x683f, (q15_t)0x683b, (q15_t)0x6837, (q15_t)0x6834, - (q15_t)0x6830, (q15_t)0x682c, (q15_t)0x6829, (q15_t)0x6825, (q15_t)0x6821, (q15_t)0x681e, (q15_t)0x681a, (q15_t)0x6816, - (q15_t)0x6813, (q15_t)0x680f, (q15_t)0x680b, (q15_t)0x6808, (q15_t)0x6804, (q15_t)0x6800, (q15_t)0x67fd, (q15_t)0x67f9, - (q15_t)0x67f5, (q15_t)0x67f2, (q15_t)0x67ee, (q15_t)0x67ea, (q15_t)0x67e7, (q15_t)0x67e3, (q15_t)0x67df, (q15_t)0x67dc, - (q15_t)0x67d8, (q15_t)0x67d4, (q15_t)0x67d1, (q15_t)0x67cd, (q15_t)0x67c9, (q15_t)0x67c6, (q15_t)0x67c2, (q15_t)0x67be, - (q15_t)0x67bb, (q15_t)0x67b7, (q15_t)0x67b3, (q15_t)0x67b0, (q15_t)0x67ac, (q15_t)0x67a8, (q15_t)0x67a5, (q15_t)0x67a1, - (q15_t)0x679d, (q15_t)0x679a, (q15_t)0x6796, (q15_t)0x6792, (q15_t)0x678e, (q15_t)0x678b, (q15_t)0x6787, (q15_t)0x6783, - (q15_t)0x6780, (q15_t)0x677c, (q15_t)0x6778, (q15_t)0x6775, (q15_t)0x6771, (q15_t)0x676d, (q15_t)0x6769, (q15_t)0x6766, - (q15_t)0x6762, (q15_t)0x675e, (q15_t)0x675b, (q15_t)0x6757, (q15_t)0x6753, (q15_t)0x6750, (q15_t)0x674c, (q15_t)0x6748, - (q15_t)0x6744, (q15_t)0x6741, (q15_t)0x673d, (q15_t)0x6739, (q15_t)0x6736, (q15_t)0x6732, (q15_t)0x672e, (q15_t)0x672a, - (q15_t)0x6727, (q15_t)0x6723, (q15_t)0x671f, (q15_t)0x671c, (q15_t)0x6718, (q15_t)0x6714, (q15_t)0x6710, (q15_t)0x670d, - (q15_t)0x6709, (q15_t)0x6705, (q15_t)0x6701, (q15_t)0x66fe, (q15_t)0x66fa, (q15_t)0x66f6, (q15_t)0x66f3, (q15_t)0x66ef, - (q15_t)0x66eb, (q15_t)0x66e7, (q15_t)0x66e4, (q15_t)0x66e0, (q15_t)0x66dc, (q15_t)0x66d8, (q15_t)0x66d5, (q15_t)0x66d1, - (q15_t)0x66cd, (q15_t)0x66c9, (q15_t)0x66c6, (q15_t)0x66c2, (q15_t)0x66be, (q15_t)0x66ba, (q15_t)0x66b7, (q15_t)0x66b3, - (q15_t)0x66af, (q15_t)0x66ab, (q15_t)0x66a8, (q15_t)0x66a4, (q15_t)0x66a0, (q15_t)0x669c, (q15_t)0x6699, (q15_t)0x6695, - (q15_t)0x6691, (q15_t)0x668d, (q15_t)0x668a, (q15_t)0x6686, (q15_t)0x6682, (q15_t)0x667e, (q15_t)0x667b, (q15_t)0x6677, - (q15_t)0x6673, (q15_t)0x666f, (q15_t)0x666b, (q15_t)0x6668, (q15_t)0x6664, (q15_t)0x6660, (q15_t)0x665c, (q15_t)0x6659, - (q15_t)0x6655, (q15_t)0x6651, (q15_t)0x664d, (q15_t)0x664a, (q15_t)0x6646, (q15_t)0x6642, (q15_t)0x663e, (q15_t)0x663a, - (q15_t)0x6637, (q15_t)0x6633, (q15_t)0x662f, (q15_t)0x662b, (q15_t)0x6627, (q15_t)0x6624, (q15_t)0x6620, (q15_t)0x661c, - (q15_t)0x6618, (q15_t)0x6615, (q15_t)0x6611, (q15_t)0x660d, (q15_t)0x6609, (q15_t)0x6605, (q15_t)0x6602, (q15_t)0x65fe, - (q15_t)0x65fa, (q15_t)0x65f6, (q15_t)0x65f2, (q15_t)0x65ef, (q15_t)0x65eb, (q15_t)0x65e7, (q15_t)0x65e3, (q15_t)0x65df, - (q15_t)0x65dc, (q15_t)0x65d8, (q15_t)0x65d4, (q15_t)0x65d0, (q15_t)0x65cc, (q15_t)0x65c9, (q15_t)0x65c5, (q15_t)0x65c1, - (q15_t)0x65bd, (q15_t)0x65b9, (q15_t)0x65b5, (q15_t)0x65b2, (q15_t)0x65ae, (q15_t)0x65aa, (q15_t)0x65a6, (q15_t)0x65a2, - (q15_t)0x659f, (q15_t)0x659b, (q15_t)0x6597, (q15_t)0x6593, (q15_t)0x658f, (q15_t)0x658b, (q15_t)0x6588, (q15_t)0x6584, - (q15_t)0x6580, (q15_t)0x657c, (q15_t)0x6578, (q15_t)0x6574, (q15_t)0x6571, (q15_t)0x656d, (q15_t)0x6569, (q15_t)0x6565, - (q15_t)0x6561, (q15_t)0x655d, (q15_t)0x655a, (q15_t)0x6556, (q15_t)0x6552, (q15_t)0x654e, (q15_t)0x654a, (q15_t)0x6546, - (q15_t)0x6543, (q15_t)0x653f, (q15_t)0x653b, (q15_t)0x6537, (q15_t)0x6533, (q15_t)0x652f, (q15_t)0x652c, (q15_t)0x6528, - (q15_t)0x6524, (q15_t)0x6520, (q15_t)0x651c, (q15_t)0x6518, (q15_t)0x6514, (q15_t)0x6511, (q15_t)0x650d, (q15_t)0x6509, - (q15_t)0x6505, (q15_t)0x6501, (q15_t)0x64fd, (q15_t)0x64f9, (q15_t)0x64f6, (q15_t)0x64f2, (q15_t)0x64ee, (q15_t)0x64ea, - (q15_t)0x64e6, (q15_t)0x64e2, (q15_t)0x64de, (q15_t)0x64db, (q15_t)0x64d7, (q15_t)0x64d3, (q15_t)0x64cf, (q15_t)0x64cb, - (q15_t)0x64c7, (q15_t)0x64c3, (q15_t)0x64bf, (q15_t)0x64bc, (q15_t)0x64b8, (q15_t)0x64b4, (q15_t)0x64b0, (q15_t)0x64ac, - (q15_t)0x64a8, (q15_t)0x64a4, (q15_t)0x64a0, (q15_t)0x649c, (q15_t)0x6499, (q15_t)0x6495, (q15_t)0x6491, (q15_t)0x648d, - (q15_t)0x6489, (q15_t)0x6485, (q15_t)0x6481, (q15_t)0x647d, (q15_t)0x6479, (q15_t)0x6476, (q15_t)0x6472, (q15_t)0x646e, - (q15_t)0x646a, (q15_t)0x6466, (q15_t)0x6462, (q15_t)0x645e, (q15_t)0x645a, (q15_t)0x6456, (q15_t)0x6453, (q15_t)0x644f, - (q15_t)0x644b, (q15_t)0x6447, (q15_t)0x6443, (q15_t)0x643f, (q15_t)0x643b, (q15_t)0x6437, (q15_t)0x6433, (q15_t)0x642f, - (q15_t)0x642b, (q15_t)0x6428, (q15_t)0x6424, (q15_t)0x6420, (q15_t)0x641c, (q15_t)0x6418, (q15_t)0x6414, (q15_t)0x6410, - (q15_t)0x640c, (q15_t)0x6408, (q15_t)0x6404, (q15_t)0x6400, (q15_t)0x63fc, (q15_t)0x63f9, (q15_t)0x63f5, (q15_t)0x63f1, - (q15_t)0x63ed, (q15_t)0x63e9, (q15_t)0x63e5, (q15_t)0x63e1, (q15_t)0x63dd, (q15_t)0x63d9, (q15_t)0x63d5, (q15_t)0x63d1, - (q15_t)0x63cd, (q15_t)0x63c9, (q15_t)0x63c5, (q15_t)0x63c1, (q15_t)0x63be, (q15_t)0x63ba, (q15_t)0x63b6, (q15_t)0x63b2, - (q15_t)0x63ae, (q15_t)0x63aa, (q15_t)0x63a6, (q15_t)0x63a2, (q15_t)0x639e, (q15_t)0x639a, (q15_t)0x6396, (q15_t)0x6392, - (q15_t)0x638e, (q15_t)0x638a, (q15_t)0x6386, (q15_t)0x6382, (q15_t)0x637e, (q15_t)0x637a, (q15_t)0x6377, (q15_t)0x6373, - (q15_t)0x636f, (q15_t)0x636b, (q15_t)0x6367, (q15_t)0x6363, (q15_t)0x635f, (q15_t)0x635b, (q15_t)0x6357, (q15_t)0x6353, - (q15_t)0x634f, (q15_t)0x634b, (q15_t)0x6347, (q15_t)0x6343, (q15_t)0x633f, (q15_t)0x633b, (q15_t)0x6337, (q15_t)0x6333, - (q15_t)0x632f, (q15_t)0x632b, (q15_t)0x6327, (q15_t)0x6323, (q15_t)0x631f, (q15_t)0x631b, (q15_t)0x6317, (q15_t)0x6313, - (q15_t)0x630f, (q15_t)0x630b, (q15_t)0x6307, (q15_t)0x6303, (q15_t)0x62ff, (q15_t)0x62fb, (q15_t)0x62f7, (q15_t)0x62f3, - (q15_t)0x62f0, (q15_t)0x62ec, (q15_t)0x62e8, (q15_t)0x62e4, (q15_t)0x62e0, (q15_t)0x62dc, (q15_t)0x62d8, (q15_t)0x62d4, - (q15_t)0x62d0, (q15_t)0x62cc, (q15_t)0x62c8, (q15_t)0x62c4, (q15_t)0x62c0, (q15_t)0x62bc, (q15_t)0x62b8, (q15_t)0x62b4, - (q15_t)0x62b0, (q15_t)0x62ac, (q15_t)0x62a8, (q15_t)0x62a4, (q15_t)0x62a0, (q15_t)0x629c, (q15_t)0x6298, (q15_t)0x6294, - (q15_t)0x6290, (q15_t)0x628c, (q15_t)0x6288, (q15_t)0x6284, (q15_t)0x6280, (q15_t)0x627c, (q15_t)0x6278, (q15_t)0x6273, - (q15_t)0x626f, (q15_t)0x626b, (q15_t)0x6267, (q15_t)0x6263, (q15_t)0x625f, (q15_t)0x625b, (q15_t)0x6257, (q15_t)0x6253, - (q15_t)0x624f, (q15_t)0x624b, (q15_t)0x6247, (q15_t)0x6243, (q15_t)0x623f, (q15_t)0x623b, (q15_t)0x6237, (q15_t)0x6233, - (q15_t)0x622f, (q15_t)0x622b, (q15_t)0x6227, (q15_t)0x6223, (q15_t)0x621f, (q15_t)0x621b, (q15_t)0x6217, (q15_t)0x6213, - (q15_t)0x620f, (q15_t)0x620b, (q15_t)0x6207, (q15_t)0x6203, (q15_t)0x61ff, (q15_t)0x61fb, (q15_t)0x61f7, (q15_t)0x61f3, - (q15_t)0x61ee, (q15_t)0x61ea, (q15_t)0x61e6, (q15_t)0x61e2, (q15_t)0x61de, (q15_t)0x61da, (q15_t)0x61d6, (q15_t)0x61d2, - (q15_t)0x61ce, (q15_t)0x61ca, (q15_t)0x61c6, (q15_t)0x61c2, (q15_t)0x61be, (q15_t)0x61ba, (q15_t)0x61b6, (q15_t)0x61b2, - (q15_t)0x61ae, (q15_t)0x61aa, (q15_t)0x61a6, (q15_t)0x61a1, (q15_t)0x619d, (q15_t)0x6199, (q15_t)0x6195, (q15_t)0x6191, - (q15_t)0x618d, (q15_t)0x6189, (q15_t)0x6185, (q15_t)0x6181, (q15_t)0x617d, (q15_t)0x6179, (q15_t)0x6175, (q15_t)0x6171, - (q15_t)0x616d, (q15_t)0x6168, (q15_t)0x6164, (q15_t)0x6160, (q15_t)0x615c, (q15_t)0x6158, (q15_t)0x6154, (q15_t)0x6150, - (q15_t)0x614c, (q15_t)0x6148, (q15_t)0x6144, (q15_t)0x6140, (q15_t)0x613c, (q15_t)0x6137, (q15_t)0x6133, (q15_t)0x612f, - (q15_t)0x612b, (q15_t)0x6127, (q15_t)0x6123, (q15_t)0x611f, (q15_t)0x611b, (q15_t)0x6117, (q15_t)0x6113, (q15_t)0x610f, - (q15_t)0x610a, (q15_t)0x6106, (q15_t)0x6102, (q15_t)0x60fe, (q15_t)0x60fa, (q15_t)0x60f6, (q15_t)0x60f2, (q15_t)0x60ee, - (q15_t)0x60ea, (q15_t)0x60e6, (q15_t)0x60e1, (q15_t)0x60dd, (q15_t)0x60d9, (q15_t)0x60d5, (q15_t)0x60d1, (q15_t)0x60cd, - (q15_t)0x60c9, (q15_t)0x60c5, (q15_t)0x60c1, (q15_t)0x60bc, (q15_t)0x60b8, (q15_t)0x60b4, (q15_t)0x60b0, (q15_t)0x60ac, - (q15_t)0x60a8, (q15_t)0x60a4, (q15_t)0x60a0, (q15_t)0x609c, (q15_t)0x6097, (q15_t)0x6093, (q15_t)0x608f, (q15_t)0x608b, - (q15_t)0x6087, (q15_t)0x6083, (q15_t)0x607f, (q15_t)0x607b, (q15_t)0x6076, (q15_t)0x6072, (q15_t)0x606e, (q15_t)0x606a, - (q15_t)0x6066, (q15_t)0x6062, (q15_t)0x605e, (q15_t)0x6059, (q15_t)0x6055, (q15_t)0x6051, (q15_t)0x604d, (q15_t)0x6049, - (q15_t)0x6045, (q15_t)0x6041, (q15_t)0x603c, (q15_t)0x6038, (q15_t)0x6034, (q15_t)0x6030, (q15_t)0x602c, (q15_t)0x6028, - (q15_t)0x6024, (q15_t)0x601f, (q15_t)0x601b, (q15_t)0x6017, (q15_t)0x6013, (q15_t)0x600f, (q15_t)0x600b, (q15_t)0x6007, - (q15_t)0x6002, (q15_t)0x5ffe, (q15_t)0x5ffa, (q15_t)0x5ff6, (q15_t)0x5ff2, (q15_t)0x5fee, (q15_t)0x5fe9, (q15_t)0x5fe5, - (q15_t)0x5fe1, (q15_t)0x5fdd, (q15_t)0x5fd9, (q15_t)0x5fd5, (q15_t)0x5fd0, (q15_t)0x5fcc, (q15_t)0x5fc8, (q15_t)0x5fc4, - (q15_t)0x5fc0, (q15_t)0x5fbc, (q15_t)0x5fb7, (q15_t)0x5fb3, (q15_t)0x5faf, (q15_t)0x5fab, (q15_t)0x5fa7, (q15_t)0x5fa3, - (q15_t)0x5f9e, (q15_t)0x5f9a, (q15_t)0x5f96, (q15_t)0x5f92, (q15_t)0x5f8e, (q15_t)0x5f8a, (q15_t)0x5f85, (q15_t)0x5f81, - (q15_t)0x5f7d, (q15_t)0x5f79, (q15_t)0x5f75, (q15_t)0x5f70, (q15_t)0x5f6c, (q15_t)0x5f68, (q15_t)0x5f64, (q15_t)0x5f60, - (q15_t)0x5f5b, (q15_t)0x5f57, (q15_t)0x5f53, (q15_t)0x5f4f, (q15_t)0x5f4b, (q15_t)0x5f46, (q15_t)0x5f42, (q15_t)0x5f3e, - (q15_t)0x5f3a, (q15_t)0x5f36, (q15_t)0x5f31, (q15_t)0x5f2d, (q15_t)0x5f29, (q15_t)0x5f25, (q15_t)0x5f21, (q15_t)0x5f1c, - (q15_t)0x5f18, (q15_t)0x5f14, (q15_t)0x5f10, (q15_t)0x5f0c, (q15_t)0x5f07, (q15_t)0x5f03, (q15_t)0x5eff, (q15_t)0x5efb, - (q15_t)0x5ef7, (q15_t)0x5ef2, (q15_t)0x5eee, (q15_t)0x5eea, (q15_t)0x5ee6, (q15_t)0x5ee2, (q15_t)0x5edd, (q15_t)0x5ed9, - (q15_t)0x5ed5, (q15_t)0x5ed1, (q15_t)0x5ecc, (q15_t)0x5ec8, (q15_t)0x5ec4, (q15_t)0x5ec0, (q15_t)0x5ebc, (q15_t)0x5eb7, - (q15_t)0x5eb3, (q15_t)0x5eaf, (q15_t)0x5eab, (q15_t)0x5ea6, (q15_t)0x5ea2, (q15_t)0x5e9e, (q15_t)0x5e9a, (q15_t)0x5e95, - (q15_t)0x5e91, (q15_t)0x5e8d, (q15_t)0x5e89, (q15_t)0x5e85, (q15_t)0x5e80, (q15_t)0x5e7c, (q15_t)0x5e78, (q15_t)0x5e74, - (q15_t)0x5e6f, (q15_t)0x5e6b, (q15_t)0x5e67, (q15_t)0x5e63, (q15_t)0x5e5e, (q15_t)0x5e5a, (q15_t)0x5e56, (q15_t)0x5e52, - (q15_t)0x5e4d, (q15_t)0x5e49, (q15_t)0x5e45, (q15_t)0x5e41, (q15_t)0x5e3c, (q15_t)0x5e38, (q15_t)0x5e34, (q15_t)0x5e30, - (q15_t)0x5e2b, (q15_t)0x5e27, (q15_t)0x5e23, (q15_t)0x5e1f, (q15_t)0x5e1a, (q15_t)0x5e16, (q15_t)0x5e12, (q15_t)0x5e0e, - (q15_t)0x5e09, (q15_t)0x5e05, (q15_t)0x5e01, (q15_t)0x5dfd, (q15_t)0x5df8, (q15_t)0x5df4, (q15_t)0x5df0, (q15_t)0x5deb, - (q15_t)0x5de7, (q15_t)0x5de3, (q15_t)0x5ddf, (q15_t)0x5dda, (q15_t)0x5dd6, (q15_t)0x5dd2, (q15_t)0x5dce, (q15_t)0x5dc9, - (q15_t)0x5dc5, (q15_t)0x5dc1, (q15_t)0x5dbc, (q15_t)0x5db8, (q15_t)0x5db4, (q15_t)0x5db0, (q15_t)0x5dab, (q15_t)0x5da7, - (q15_t)0x5da3, (q15_t)0x5d9e, (q15_t)0x5d9a, (q15_t)0x5d96, (q15_t)0x5d92, (q15_t)0x5d8d, (q15_t)0x5d89, (q15_t)0x5d85, - (q15_t)0x5d80, (q15_t)0x5d7c, (q15_t)0x5d78, (q15_t)0x5d74, (q15_t)0x5d6f, (q15_t)0x5d6b, (q15_t)0x5d67, (q15_t)0x5d62, - (q15_t)0x5d5e, (q15_t)0x5d5a, (q15_t)0x5d55, (q15_t)0x5d51, (q15_t)0x5d4d, (q15_t)0x5d49, (q15_t)0x5d44, (q15_t)0x5d40, - (q15_t)0x5d3c, (q15_t)0x5d37, (q15_t)0x5d33, (q15_t)0x5d2f, (q15_t)0x5d2a, (q15_t)0x5d26, (q15_t)0x5d22, (q15_t)0x5d1e, - (q15_t)0x5d19, (q15_t)0x5d15, (q15_t)0x5d11, (q15_t)0x5d0c, (q15_t)0x5d08, (q15_t)0x5d04, (q15_t)0x5cff, (q15_t)0x5cfb, - (q15_t)0x5cf7, (q15_t)0x5cf2, (q15_t)0x5cee, (q15_t)0x5cea, (q15_t)0x5ce5, (q15_t)0x5ce1, (q15_t)0x5cdd, (q15_t)0x5cd8, - (q15_t)0x5cd4, (q15_t)0x5cd0, (q15_t)0x5ccb, (q15_t)0x5cc7, (q15_t)0x5cc3, (q15_t)0x5cbe, (q15_t)0x5cba, (q15_t)0x5cb6, - (q15_t)0x5cb1, (q15_t)0x5cad, (q15_t)0x5ca9, (q15_t)0x5ca4, (q15_t)0x5ca0, (q15_t)0x5c9c, (q15_t)0x5c97, (q15_t)0x5c93, - (q15_t)0x5c8f, (q15_t)0x5c8a, (q15_t)0x5c86, (q15_t)0x5c82, (q15_t)0x5c7d, (q15_t)0x5c79, (q15_t)0x5c75, (q15_t)0x5c70, - (q15_t)0x5c6c, (q15_t)0x5c68, (q15_t)0x5c63, (q15_t)0x5c5f, (q15_t)0x5c5b, (q15_t)0x5c56, (q15_t)0x5c52, (q15_t)0x5c4e, - (q15_t)0x5c49, (q15_t)0x5c45, (q15_t)0x5c41, (q15_t)0x5c3c, (q15_t)0x5c38, (q15_t)0x5c33, (q15_t)0x5c2f, (q15_t)0x5c2b, - (q15_t)0x5c26, (q15_t)0x5c22, (q15_t)0x5c1e, (q15_t)0x5c19, (q15_t)0x5c15, (q15_t)0x5c11, (q15_t)0x5c0c, (q15_t)0x5c08, - (q15_t)0x5c03, (q15_t)0x5bff, (q15_t)0x5bfb, (q15_t)0x5bf6, (q15_t)0x5bf2, (q15_t)0x5bee, (q15_t)0x5be9, (q15_t)0x5be5, - (q15_t)0x5be0, (q15_t)0x5bdc, (q15_t)0x5bd8, (q15_t)0x5bd3, (q15_t)0x5bcf, (q15_t)0x5bcb, (q15_t)0x5bc6, (q15_t)0x5bc2, - (q15_t)0x5bbd, (q15_t)0x5bb9, (q15_t)0x5bb5, (q15_t)0x5bb0, (q15_t)0x5bac, (q15_t)0x5ba8, (q15_t)0x5ba3, (q15_t)0x5b9f, - (q15_t)0x5b9a, (q15_t)0x5b96, (q15_t)0x5b92, (q15_t)0x5b8d, (q15_t)0x5b89, (q15_t)0x5b84, (q15_t)0x5b80, (q15_t)0x5b7c, - (q15_t)0x5b77, (q15_t)0x5b73, (q15_t)0x5b6e, (q15_t)0x5b6a, (q15_t)0x5b66, (q15_t)0x5b61, (q15_t)0x5b5d, (q15_t)0x5b58, - (q15_t)0x5b54, (q15_t)0x5b50, (q15_t)0x5b4b, (q15_t)0x5b47, (q15_t)0x5b42, (q15_t)0x5b3e, (q15_t)0x5b3a, (q15_t)0x5b35, - (q15_t)0x5b31, (q15_t)0x5b2c, (q15_t)0x5b28, (q15_t)0x5b24, (q15_t)0x5b1f, (q15_t)0x5b1b, (q15_t)0x5b16, (q15_t)0x5b12, - (q15_t)0x5b0e, (q15_t)0x5b09, (q15_t)0x5b05, (q15_t)0x5b00, (q15_t)0x5afc, (q15_t)0x5af7, (q15_t)0x5af3, (q15_t)0x5aef, - (q15_t)0x5aea, (q15_t)0x5ae6, (q15_t)0x5ae1, (q15_t)0x5add, (q15_t)0x5ad8, (q15_t)0x5ad4, (q15_t)0x5ad0, (q15_t)0x5acb, - (q15_t)0x5ac7, (q15_t)0x5ac2, (q15_t)0x5abe, (q15_t)0x5ab9, (q15_t)0x5ab5, (q15_t)0x5ab1, (q15_t)0x5aac, (q15_t)0x5aa8, - (q15_t)0x5aa3, (q15_t)0x5a9f, (q15_t)0x5a9a, (q15_t)0x5a96, (q15_t)0x5a92, (q15_t)0x5a8d, (q15_t)0x5a89, (q15_t)0x5a84, - (q15_t)0x5a80, (q15_t)0x5a7b, (q15_t)0x5a77, (q15_t)0x5a72, (q15_t)0x5a6e, (q15_t)0x5a6a, (q15_t)0x5a65, (q15_t)0x5a61, - (q15_t)0x5a5c, (q15_t)0x5a58, (q15_t)0x5a53, (q15_t)0x5a4f, (q15_t)0x5a4a, (q15_t)0x5a46, (q15_t)0x5a41, (q15_t)0x5a3d, - (q15_t)0x5a39, (q15_t)0x5a34, (q15_t)0x5a30, (q15_t)0x5a2b, (q15_t)0x5a27, (q15_t)0x5a22, (q15_t)0x5a1e, (q15_t)0x5a19, - (q15_t)0x5a15, (q15_t)0x5a10, (q15_t)0x5a0c, (q15_t)0x5a07, (q15_t)0x5a03, (q15_t)0x59ff, (q15_t)0x59fa, (q15_t)0x59f6, - (q15_t)0x59f1, (q15_t)0x59ed, (q15_t)0x59e8, (q15_t)0x59e4, (q15_t)0x59df, (q15_t)0x59db, (q15_t)0x59d6, (q15_t)0x59d2, - (q15_t)0x59cd, (q15_t)0x59c9, (q15_t)0x59c4, (q15_t)0x59c0, (q15_t)0x59bb, (q15_t)0x59b7, (q15_t)0x59b2, (q15_t)0x59ae, - (q15_t)0x59a9, (q15_t)0x59a5, (q15_t)0x59a1, (q15_t)0x599c, (q15_t)0x5998, (q15_t)0x5993, (q15_t)0x598f, (q15_t)0x598a, - (q15_t)0x5986, (q15_t)0x5981, (q15_t)0x597d, (q15_t)0x5978, (q15_t)0x5974, (q15_t)0x596f, (q15_t)0x596b, (q15_t)0x5966, - (q15_t)0x5962, (q15_t)0x595d, (q15_t)0x5959, (q15_t)0x5954, (q15_t)0x5950, (q15_t)0x594b, (q15_t)0x5947, (q15_t)0x5942, - (q15_t)0x593e, (q15_t)0x5939, (q15_t)0x5935, (q15_t)0x5930, (q15_t)0x592c, (q15_t)0x5927, (q15_t)0x5923, (q15_t)0x591e, - (q15_t)0x591a, (q15_t)0x5915, (q15_t)0x5911, (q15_t)0x590c, (q15_t)0x5908, (q15_t)0x5903, (q15_t)0x58fe, (q15_t)0x58fa, - (q15_t)0x58f5, (q15_t)0x58f1, (q15_t)0x58ec, (q15_t)0x58e8, (q15_t)0x58e3, (q15_t)0x58df, (q15_t)0x58da, (q15_t)0x58d6, - (q15_t)0x58d1, (q15_t)0x58cd, (q15_t)0x58c8, (q15_t)0x58c4, (q15_t)0x58bf, (q15_t)0x58bb, (q15_t)0x58b6, (q15_t)0x58b2, - (q15_t)0x58ad, (q15_t)0x58a9, (q15_t)0x58a4, (q15_t)0x589f, (q15_t)0x589b, (q15_t)0x5896, (q15_t)0x5892, (q15_t)0x588d, - (q15_t)0x5889, (q15_t)0x5884, (q15_t)0x5880, (q15_t)0x587b, (q15_t)0x5877, (q15_t)0x5872, (q15_t)0x586e, (q15_t)0x5869, - (q15_t)0x5864, (q15_t)0x5860, (q15_t)0x585b, (q15_t)0x5857, (q15_t)0x5852, (q15_t)0x584e, (q15_t)0x5849, (q15_t)0x5845, - (q15_t)0x5840, (q15_t)0x583c, (q15_t)0x5837, (q15_t)0x5832, (q15_t)0x582e, (q15_t)0x5829, (q15_t)0x5825, (q15_t)0x5820, - (q15_t)0x581c, (q15_t)0x5817, (q15_t)0x5813, (q15_t)0x580e, (q15_t)0x5809, (q15_t)0x5805, (q15_t)0x5800, (q15_t)0x57fc, - (q15_t)0x57f7, (q15_t)0x57f3, (q15_t)0x57ee, (q15_t)0x57e9, (q15_t)0x57e5, (q15_t)0x57e0, (q15_t)0x57dc, (q15_t)0x57d7, - (q15_t)0x57d3, (q15_t)0x57ce, (q15_t)0x57c9, (q15_t)0x57c5, (q15_t)0x57c0, (q15_t)0x57bc, (q15_t)0x57b7, (q15_t)0x57b3, - (q15_t)0x57ae, (q15_t)0x57a9, (q15_t)0x57a5, (q15_t)0x57a0, (q15_t)0x579c, (q15_t)0x5797, (q15_t)0x5793, (q15_t)0x578e, - (q15_t)0x5789, (q15_t)0x5785, (q15_t)0x5780, (q15_t)0x577c, (q15_t)0x5777, (q15_t)0x5772, (q15_t)0x576e, (q15_t)0x5769, - (q15_t)0x5765, (q15_t)0x5760, (q15_t)0x575c, (q15_t)0x5757, (q15_t)0x5752, (q15_t)0x574e, (q15_t)0x5749, (q15_t)0x5745, - (q15_t)0x5740, (q15_t)0x573b, (q15_t)0x5737, (q15_t)0x5732, (q15_t)0x572e, (q15_t)0x5729, (q15_t)0x5724, (q15_t)0x5720, - (q15_t)0x571b, (q15_t)0x5717, (q15_t)0x5712, (q15_t)0x570d, (q15_t)0x5709, (q15_t)0x5704, (q15_t)0x56ff, (q15_t)0x56fb, - (q15_t)0x56f6, (q15_t)0x56f2, (q15_t)0x56ed, (q15_t)0x56e8, (q15_t)0x56e4, (q15_t)0x56df, (q15_t)0x56db, (q15_t)0x56d6, - (q15_t)0x56d1, (q15_t)0x56cd, (q15_t)0x56c8, (q15_t)0x56c4, (q15_t)0x56bf, (q15_t)0x56ba, (q15_t)0x56b6, (q15_t)0x56b1, - (q15_t)0x56ac, (q15_t)0x56a8, (q15_t)0x56a3, (q15_t)0x569f, (q15_t)0x569a, (q15_t)0x5695, (q15_t)0x5691, (q15_t)0x568c, - (q15_t)0x5687, (q15_t)0x5683, (q15_t)0x567e, (q15_t)0x5679, (q15_t)0x5675, (q15_t)0x5670, (q15_t)0x566c, (q15_t)0x5667, - (q15_t)0x5662, (q15_t)0x565e, (q15_t)0x5659, (q15_t)0x5654, (q15_t)0x5650, (q15_t)0x564b, (q15_t)0x5646, (q15_t)0x5642, - (q15_t)0x563d, (q15_t)0x5639, (q15_t)0x5634, (q15_t)0x562f, (q15_t)0x562b, (q15_t)0x5626, (q15_t)0x5621, (q15_t)0x561d, - (q15_t)0x5618, (q15_t)0x5613, (q15_t)0x560f, (q15_t)0x560a, (q15_t)0x5605, (q15_t)0x5601, (q15_t)0x55fc, (q15_t)0x55f7, - (q15_t)0x55f3, (q15_t)0x55ee, (q15_t)0x55ea, (q15_t)0x55e5, (q15_t)0x55e0, (q15_t)0x55dc, (q15_t)0x55d7, (q15_t)0x55d2, - (q15_t)0x55ce, (q15_t)0x55c9, (q15_t)0x55c4, (q15_t)0x55c0, (q15_t)0x55bb, (q15_t)0x55b6, (q15_t)0x55b2, (q15_t)0x55ad, - (q15_t)0x55a8, (q15_t)0x55a4, (q15_t)0x559f, (q15_t)0x559a, (q15_t)0x5596, (q15_t)0x5591, (q15_t)0x558c, (q15_t)0x5588, - (q15_t)0x5583, (q15_t)0x557e, (q15_t)0x5579, (q15_t)0x5575, (q15_t)0x5570, (q15_t)0x556b, (q15_t)0x5567, (q15_t)0x5562, - (q15_t)0x555d, (q15_t)0x5559, (q15_t)0x5554, (q15_t)0x554f, (q15_t)0x554b, (q15_t)0x5546, (q15_t)0x5541, (q15_t)0x553d, - (q15_t)0x5538, (q15_t)0x5533, (q15_t)0x552f, (q15_t)0x552a, (q15_t)0x5525, (q15_t)0x5520, (q15_t)0x551c, (q15_t)0x5517, - (q15_t)0x5512, (q15_t)0x550e, (q15_t)0x5509, (q15_t)0x5504, (q15_t)0x5500, (q15_t)0x54fb, (q15_t)0x54f6, (q15_t)0x54f2, - (q15_t)0x54ed, (q15_t)0x54e8, (q15_t)0x54e3, (q15_t)0x54df, (q15_t)0x54da, (q15_t)0x54d5, (q15_t)0x54d1, (q15_t)0x54cc, - (q15_t)0x54c7, (q15_t)0x54c2, (q15_t)0x54be, (q15_t)0x54b9, (q15_t)0x54b4, (q15_t)0x54b0, (q15_t)0x54ab, (q15_t)0x54a6, - (q15_t)0x54a2, (q15_t)0x549d, (q15_t)0x5498, (q15_t)0x5493, (q15_t)0x548f, (q15_t)0x548a, (q15_t)0x5485, (q15_t)0x5480, - (q15_t)0x547c, (q15_t)0x5477, (q15_t)0x5472, (q15_t)0x546e, (q15_t)0x5469, (q15_t)0x5464, (q15_t)0x545f, (q15_t)0x545b, - (q15_t)0x5456, (q15_t)0x5451, (q15_t)0x544d, (q15_t)0x5448, (q15_t)0x5443, (q15_t)0x543e, (q15_t)0x543a, (q15_t)0x5435, - (q15_t)0x5430, (q15_t)0x542b, (q15_t)0x5427, (q15_t)0x5422, (q15_t)0x541d, (q15_t)0x5418, (q15_t)0x5414, (q15_t)0x540f, - (q15_t)0x540a, (q15_t)0x5406, (q15_t)0x5401, (q15_t)0x53fc, (q15_t)0x53f7, (q15_t)0x53f3, (q15_t)0x53ee, (q15_t)0x53e9, - (q15_t)0x53e4, (q15_t)0x53e0, (q15_t)0x53db, (q15_t)0x53d6, (q15_t)0x53d1, (q15_t)0x53cd, (q15_t)0x53c8, (q15_t)0x53c3, - (q15_t)0x53be, (q15_t)0x53ba, (q15_t)0x53b5, (q15_t)0x53b0, (q15_t)0x53ab, (q15_t)0x53a7, (q15_t)0x53a2, (q15_t)0x539d, - (q15_t)0x5398, (q15_t)0x5394, (q15_t)0x538f, (q15_t)0x538a, (q15_t)0x5385, (q15_t)0x5380, (q15_t)0x537c, (q15_t)0x5377, - (q15_t)0x5372, (q15_t)0x536d, (q15_t)0x5369, (q15_t)0x5364, (q15_t)0x535f, (q15_t)0x535a, (q15_t)0x5356, (q15_t)0x5351, - (q15_t)0x534c, (q15_t)0x5347, (q15_t)0x5343, (q15_t)0x533e, (q15_t)0x5339, (q15_t)0x5334, (q15_t)0x532f, (q15_t)0x532b, - (q15_t)0x5326, (q15_t)0x5321, (q15_t)0x531c, (q15_t)0x5318, (q15_t)0x5313, (q15_t)0x530e, (q15_t)0x5309, (q15_t)0x5304, - (q15_t)0x5300, (q15_t)0x52fb, (q15_t)0x52f6, (q15_t)0x52f1, (q15_t)0x52ec, (q15_t)0x52e8, (q15_t)0x52e3, (q15_t)0x52de, - (q15_t)0x52d9, (q15_t)0x52d5, (q15_t)0x52d0, (q15_t)0x52cb, (q15_t)0x52c6, (q15_t)0x52c1, (q15_t)0x52bd, (q15_t)0x52b8, - (q15_t)0x52b3, (q15_t)0x52ae, (q15_t)0x52a9, (q15_t)0x52a5, (q15_t)0x52a0, (q15_t)0x529b, (q15_t)0x5296, (q15_t)0x5291, - (q15_t)0x528d, (q15_t)0x5288, (q15_t)0x5283, (q15_t)0x527e, (q15_t)0x5279, (q15_t)0x5275, (q15_t)0x5270, (q15_t)0x526b, - (q15_t)0x5266, (q15_t)0x5261, (q15_t)0x525d, (q15_t)0x5258, (q15_t)0x5253, (q15_t)0x524e, (q15_t)0x5249, (q15_t)0x5244, - (q15_t)0x5240, (q15_t)0x523b, (q15_t)0x5236, (q15_t)0x5231, (q15_t)0x522c, (q15_t)0x5228, (q15_t)0x5223, (q15_t)0x521e, - (q15_t)0x5219, (q15_t)0x5214, (q15_t)0x520f, (q15_t)0x520b, (q15_t)0x5206, (q15_t)0x5201, (q15_t)0x51fc, (q15_t)0x51f7, - (q15_t)0x51f3, (q15_t)0x51ee, (q15_t)0x51e9, (q15_t)0x51e4, (q15_t)0x51df, (q15_t)0x51da, (q15_t)0x51d6, (q15_t)0x51d1, - (q15_t)0x51cc, (q15_t)0x51c7, (q15_t)0x51c2, (q15_t)0x51bd, (q15_t)0x51b9, (q15_t)0x51b4, (q15_t)0x51af, (q15_t)0x51aa, - (q15_t)0x51a5, (q15_t)0x51a0, (q15_t)0x519c, (q15_t)0x5197, (q15_t)0x5192, (q15_t)0x518d, (q15_t)0x5188, (q15_t)0x5183, - (q15_t)0x517e, (q15_t)0x517a, (q15_t)0x5175, (q15_t)0x5170, (q15_t)0x516b, (q15_t)0x5166, (q15_t)0x5161, (q15_t)0x515d, - (q15_t)0x5158, (q15_t)0x5153, (q15_t)0x514e, (q15_t)0x5149, (q15_t)0x5144, (q15_t)0x513f, (q15_t)0x513b, (q15_t)0x5136, - (q15_t)0x5131, (q15_t)0x512c, (q15_t)0x5127, (q15_t)0x5122, (q15_t)0x511d, (q15_t)0x5119, (q15_t)0x5114, (q15_t)0x510f, - (q15_t)0x510a, (q15_t)0x5105, (q15_t)0x5100, (q15_t)0x50fb, (q15_t)0x50f7, (q15_t)0x50f2, (q15_t)0x50ed, (q15_t)0x50e8, - (q15_t)0x50e3, (q15_t)0x50de, (q15_t)0x50d9, (q15_t)0x50d4, (q15_t)0x50d0, (q15_t)0x50cb, (q15_t)0x50c6, (q15_t)0x50c1, - (q15_t)0x50bc, (q15_t)0x50b7, (q15_t)0x50b2, (q15_t)0x50ad, (q15_t)0x50a9, (q15_t)0x50a4, (q15_t)0x509f, (q15_t)0x509a, - (q15_t)0x5095, (q15_t)0x5090, (q15_t)0x508b, (q15_t)0x5086, (q15_t)0x5082, (q15_t)0x507d, (q15_t)0x5078, (q15_t)0x5073, - (q15_t)0x506e, (q15_t)0x5069, (q15_t)0x5064, (q15_t)0x505f, (q15_t)0x505a, (q15_t)0x5056, (q15_t)0x5051, (q15_t)0x504c, - (q15_t)0x5047, (q15_t)0x5042, (q15_t)0x503d, (q15_t)0x5038, (q15_t)0x5033, (q15_t)0x502e, (q15_t)0x5029, (q15_t)0x5025, - (q15_t)0x5020, (q15_t)0x501b, (q15_t)0x5016, (q15_t)0x5011, (q15_t)0x500c, (q15_t)0x5007, (q15_t)0x5002, (q15_t)0x4ffd, - (q15_t)0x4ff8, (q15_t)0x4ff4, (q15_t)0x4fef, (q15_t)0x4fea, (q15_t)0x4fe5, (q15_t)0x4fe0, (q15_t)0x4fdb, (q15_t)0x4fd6, - (q15_t)0x4fd1, (q15_t)0x4fcc, (q15_t)0x4fc7, (q15_t)0x4fc2, (q15_t)0x4fbe, (q15_t)0x4fb9, (q15_t)0x4fb4, (q15_t)0x4faf, - (q15_t)0x4faa, (q15_t)0x4fa5, (q15_t)0x4fa0, (q15_t)0x4f9b, (q15_t)0x4f96, (q15_t)0x4f91, (q15_t)0x4f8c, (q15_t)0x4f87, - (q15_t)0x4f82, (q15_t)0x4f7e, (q15_t)0x4f79, (q15_t)0x4f74, (q15_t)0x4f6f, (q15_t)0x4f6a, (q15_t)0x4f65, (q15_t)0x4f60, - (q15_t)0x4f5b, (q15_t)0x4f56, (q15_t)0x4f51, (q15_t)0x4f4c, (q15_t)0x4f47, (q15_t)0x4f42, (q15_t)0x4f3d, (q15_t)0x4f39, - (q15_t)0x4f34, (q15_t)0x4f2f, (q15_t)0x4f2a, (q15_t)0x4f25, (q15_t)0x4f20, (q15_t)0x4f1b, (q15_t)0x4f16, (q15_t)0x4f11, - (q15_t)0x4f0c, (q15_t)0x4f07, (q15_t)0x4f02, (q15_t)0x4efd, (q15_t)0x4ef8, (q15_t)0x4ef3, (q15_t)0x4eee, (q15_t)0x4ee9, - (q15_t)0x4ee5, (q15_t)0x4ee0, (q15_t)0x4edb, (q15_t)0x4ed6, (q15_t)0x4ed1, (q15_t)0x4ecc, (q15_t)0x4ec7, (q15_t)0x4ec2, - (q15_t)0x4ebd, (q15_t)0x4eb8, (q15_t)0x4eb3, (q15_t)0x4eae, (q15_t)0x4ea9, (q15_t)0x4ea4, (q15_t)0x4e9f, (q15_t)0x4e9a, - (q15_t)0x4e95, (q15_t)0x4e90, (q15_t)0x4e8b, (q15_t)0x4e86, (q15_t)0x4e81, (q15_t)0x4e7c, (q15_t)0x4e78, (q15_t)0x4e73, - (q15_t)0x4e6e, (q15_t)0x4e69, (q15_t)0x4e64, (q15_t)0x4e5f, (q15_t)0x4e5a, (q15_t)0x4e55, (q15_t)0x4e50, (q15_t)0x4e4b, - (q15_t)0x4e46, (q15_t)0x4e41, (q15_t)0x4e3c, (q15_t)0x4e37, (q15_t)0x4e32, (q15_t)0x4e2d, (q15_t)0x4e28, (q15_t)0x4e23, - (q15_t)0x4e1e, (q15_t)0x4e19, (q15_t)0x4e14, (q15_t)0x4e0f, (q15_t)0x4e0a, (q15_t)0x4e05, (q15_t)0x4e00, (q15_t)0x4dfb, - (q15_t)0x4df6, (q15_t)0x4df1, (q15_t)0x4dec, (q15_t)0x4de7, (q15_t)0x4de2, (q15_t)0x4ddd, (q15_t)0x4dd8, (q15_t)0x4dd3, - (q15_t)0x4dce, (q15_t)0x4dc9, (q15_t)0x4dc4, (q15_t)0x4dbf, (q15_t)0x4dba, (q15_t)0x4db5, (q15_t)0x4db0, (q15_t)0x4dab, - (q15_t)0x4da6, (q15_t)0x4da1, (q15_t)0x4d9c, (q15_t)0x4d97, (q15_t)0x4d92, (q15_t)0x4d8d, (q15_t)0x4d88, (q15_t)0x4d83, - (q15_t)0x4d7e, (q15_t)0x4d79, (q15_t)0x4d74, (q15_t)0x4d6f, (q15_t)0x4d6a, (q15_t)0x4d65, (q15_t)0x4d60, (q15_t)0x4d5b, - (q15_t)0x4d56, (q15_t)0x4d51, (q15_t)0x4d4c, (q15_t)0x4d47, (q15_t)0x4d42, (q15_t)0x4d3d, (q15_t)0x4d38, (q15_t)0x4d33, - (q15_t)0x4d2e, (q15_t)0x4d29, (q15_t)0x4d24, (q15_t)0x4d1f, (q15_t)0x4d1a, (q15_t)0x4d15, (q15_t)0x4d10, (q15_t)0x4d0b, - (q15_t)0x4d06, (q15_t)0x4d01, (q15_t)0x4cfc, (q15_t)0x4cf7, (q15_t)0x4cf2, (q15_t)0x4ced, (q15_t)0x4ce8, (q15_t)0x4ce3, - (q15_t)0x4cde, (q15_t)0x4cd9, (q15_t)0x4cd4, (q15_t)0x4ccf, (q15_t)0x4cca, (q15_t)0x4cc5, (q15_t)0x4cc0, (q15_t)0x4cbb, - (q15_t)0x4cb6, (q15_t)0x4cb1, (q15_t)0x4cac, (q15_t)0x4ca7, (q15_t)0x4ca2, (q15_t)0x4c9d, (q15_t)0x4c98, (q15_t)0x4c93, - (q15_t)0x4c8e, (q15_t)0x4c88, (q15_t)0x4c83, (q15_t)0x4c7e, (q15_t)0x4c79, (q15_t)0x4c74, (q15_t)0x4c6f, (q15_t)0x4c6a, - (q15_t)0x4c65, (q15_t)0x4c60, (q15_t)0x4c5b, (q15_t)0x4c56, (q15_t)0x4c51, (q15_t)0x4c4c, (q15_t)0x4c47, (q15_t)0x4c42, - (q15_t)0x4c3d, (q15_t)0x4c38, (q15_t)0x4c33, (q15_t)0x4c2e, (q15_t)0x4c29, (q15_t)0x4c24, (q15_t)0x4c1f, (q15_t)0x4c1a, - (q15_t)0x4c14, (q15_t)0x4c0f, (q15_t)0x4c0a, (q15_t)0x4c05, (q15_t)0x4c00, (q15_t)0x4bfb, (q15_t)0x4bf6, (q15_t)0x4bf1, - (q15_t)0x4bec, (q15_t)0x4be7, (q15_t)0x4be2, (q15_t)0x4bdd, (q15_t)0x4bd8, (q15_t)0x4bd3, (q15_t)0x4bce, (q15_t)0x4bc9, - (q15_t)0x4bc4, (q15_t)0x4bbe, (q15_t)0x4bb9, (q15_t)0x4bb4, (q15_t)0x4baf, (q15_t)0x4baa, (q15_t)0x4ba5, (q15_t)0x4ba0, - (q15_t)0x4b9b, (q15_t)0x4b96, (q15_t)0x4b91, (q15_t)0x4b8c, (q15_t)0x4b87, (q15_t)0x4b82, (q15_t)0x4b7d, (q15_t)0x4b77, - (q15_t)0x4b72, (q15_t)0x4b6d, (q15_t)0x4b68, (q15_t)0x4b63, (q15_t)0x4b5e, (q15_t)0x4b59, (q15_t)0x4b54, (q15_t)0x4b4f, - (q15_t)0x4b4a, (q15_t)0x4b45, (q15_t)0x4b40, (q15_t)0x4b3b, (q15_t)0x4b35, (q15_t)0x4b30, (q15_t)0x4b2b, (q15_t)0x4b26, - (q15_t)0x4b21, (q15_t)0x4b1c, (q15_t)0x4b17, (q15_t)0x4b12, (q15_t)0x4b0d, (q15_t)0x4b08, (q15_t)0x4b03, (q15_t)0x4afd, - (q15_t)0x4af8, (q15_t)0x4af3, (q15_t)0x4aee, (q15_t)0x4ae9, (q15_t)0x4ae4, (q15_t)0x4adf, (q15_t)0x4ada, (q15_t)0x4ad5, - (q15_t)0x4ad0, (q15_t)0x4acb, (q15_t)0x4ac5, (q15_t)0x4ac0, (q15_t)0x4abb, (q15_t)0x4ab6, (q15_t)0x4ab1, (q15_t)0x4aac, - (q15_t)0x4aa7, (q15_t)0x4aa2, (q15_t)0x4a9d, (q15_t)0x4a97, (q15_t)0x4a92, (q15_t)0x4a8d, (q15_t)0x4a88, (q15_t)0x4a83, - (q15_t)0x4a7e, (q15_t)0x4a79, (q15_t)0x4a74, (q15_t)0x4a6f, (q15_t)0x4a6a, (q15_t)0x4a64, (q15_t)0x4a5f, (q15_t)0x4a5a, - (q15_t)0x4a55, (q15_t)0x4a50, (q15_t)0x4a4b, (q15_t)0x4a46, (q15_t)0x4a41, (q15_t)0x4a3b, (q15_t)0x4a36, (q15_t)0x4a31, - (q15_t)0x4a2c, (q15_t)0x4a27, (q15_t)0x4a22, (q15_t)0x4a1d, (q15_t)0x4a18, (q15_t)0x4a12, (q15_t)0x4a0d, (q15_t)0x4a08, - (q15_t)0x4a03, (q15_t)0x49fe, (q15_t)0x49f9, (q15_t)0x49f4, (q15_t)0x49ef, (q15_t)0x49e9, (q15_t)0x49e4, (q15_t)0x49df, - (q15_t)0x49da, (q15_t)0x49d5, (q15_t)0x49d0, (q15_t)0x49cb, (q15_t)0x49c6, (q15_t)0x49c0, (q15_t)0x49bb, (q15_t)0x49b6, - (q15_t)0x49b1, (q15_t)0x49ac, (q15_t)0x49a7, (q15_t)0x49a2, (q15_t)0x499c, (q15_t)0x4997, (q15_t)0x4992, (q15_t)0x498d, - (q15_t)0x4988, (q15_t)0x4983, (q15_t)0x497e, (q15_t)0x4978, (q15_t)0x4973, (q15_t)0x496e, (q15_t)0x4969, (q15_t)0x4964, - (q15_t)0x495f, (q15_t)0x495a, (q15_t)0x4954, (q15_t)0x494f, (q15_t)0x494a, (q15_t)0x4945, (q15_t)0x4940, (q15_t)0x493b, - (q15_t)0x4936, (q15_t)0x4930, (q15_t)0x492b, (q15_t)0x4926, (q15_t)0x4921, (q15_t)0x491c, (q15_t)0x4917, (q15_t)0x4911, - (q15_t)0x490c, (q15_t)0x4907, (q15_t)0x4902, (q15_t)0x48fd, (q15_t)0x48f8, (q15_t)0x48f2, (q15_t)0x48ed, (q15_t)0x48e8, - (q15_t)0x48e3, (q15_t)0x48de, (q15_t)0x48d9, (q15_t)0x48d3, (q15_t)0x48ce, (q15_t)0x48c9, (q15_t)0x48c4, (q15_t)0x48bf, - (q15_t)0x48ba, (q15_t)0x48b4, (q15_t)0x48af, (q15_t)0x48aa, (q15_t)0x48a5, (q15_t)0x48a0, (q15_t)0x489b, (q15_t)0x4895, - (q15_t)0x4890, (q15_t)0x488b, (q15_t)0x4886, (q15_t)0x4881, (q15_t)0x487c, (q15_t)0x4876, (q15_t)0x4871, (q15_t)0x486c, - (q15_t)0x4867, (q15_t)0x4862, (q15_t)0x485c, (q15_t)0x4857, (q15_t)0x4852, (q15_t)0x484d, (q15_t)0x4848, (q15_t)0x4843, - (q15_t)0x483d, (q15_t)0x4838, (q15_t)0x4833, (q15_t)0x482e, (q15_t)0x4829, (q15_t)0x4823, (q15_t)0x481e, (q15_t)0x4819, - (q15_t)0x4814, (q15_t)0x480f, (q15_t)0x4809, (q15_t)0x4804, (q15_t)0x47ff, (q15_t)0x47fa, (q15_t)0x47f5, (q15_t)0x47ef, - (q15_t)0x47ea, (q15_t)0x47e5, (q15_t)0x47e0, (q15_t)0x47db, (q15_t)0x47d5, (q15_t)0x47d0, (q15_t)0x47cb, (q15_t)0x47c6, - (q15_t)0x47c1, (q15_t)0x47bb, (q15_t)0x47b6, (q15_t)0x47b1, (q15_t)0x47ac, (q15_t)0x47a7, (q15_t)0x47a1, (q15_t)0x479c, - (q15_t)0x4797, (q15_t)0x4792, (q15_t)0x478d, (q15_t)0x4787, (q15_t)0x4782, (q15_t)0x477d, (q15_t)0x4778, (q15_t)0x4773, - (q15_t)0x476d, (q15_t)0x4768, (q15_t)0x4763, (q15_t)0x475e, (q15_t)0x4758, (q15_t)0x4753, (q15_t)0x474e, (q15_t)0x4749, - (q15_t)0x4744, (q15_t)0x473e, (q15_t)0x4739, (q15_t)0x4734, (q15_t)0x472f, (q15_t)0x4729, (q15_t)0x4724, (q15_t)0x471f, - (q15_t)0x471a, (q15_t)0x4715, (q15_t)0x470f, (q15_t)0x470a, (q15_t)0x4705, (q15_t)0x4700, (q15_t)0x46fa, (q15_t)0x46f5, - (q15_t)0x46f0, (q15_t)0x46eb, (q15_t)0x46e6, (q15_t)0x46e0, (q15_t)0x46db, (q15_t)0x46d6, (q15_t)0x46d1, (q15_t)0x46cb, - (q15_t)0x46c6, (q15_t)0x46c1, (q15_t)0x46bc, (q15_t)0x46b6, (q15_t)0x46b1, (q15_t)0x46ac, (q15_t)0x46a7, (q15_t)0x46a1, - (q15_t)0x469c, (q15_t)0x4697, (q15_t)0x4692, (q15_t)0x468d, (q15_t)0x4687, (q15_t)0x4682, (q15_t)0x467d, (q15_t)0x4678, - (q15_t)0x4672, (q15_t)0x466d, (q15_t)0x4668, (q15_t)0x4663, (q15_t)0x465d, (q15_t)0x4658, (q15_t)0x4653, (q15_t)0x464e, - (q15_t)0x4648, (q15_t)0x4643, (q15_t)0x463e, (q15_t)0x4639, (q15_t)0x4633, (q15_t)0x462e, (q15_t)0x4629, (q15_t)0x4624, - (q15_t)0x461e, (q15_t)0x4619, (q15_t)0x4614, (q15_t)0x460e, (q15_t)0x4609, (q15_t)0x4604, (q15_t)0x45ff, (q15_t)0x45f9, - (q15_t)0x45f4, (q15_t)0x45ef, (q15_t)0x45ea, (q15_t)0x45e4, (q15_t)0x45df, (q15_t)0x45da, (q15_t)0x45d5, (q15_t)0x45cf, - (q15_t)0x45ca, (q15_t)0x45c5, (q15_t)0x45c0, (q15_t)0x45ba, (q15_t)0x45b5, (q15_t)0x45b0, (q15_t)0x45aa, (q15_t)0x45a5, - (q15_t)0x45a0, (q15_t)0x459b, (q15_t)0x4595, (q15_t)0x4590, (q15_t)0x458b, (q15_t)0x4586, (q15_t)0x4580, (q15_t)0x457b, - (q15_t)0x4576, (q15_t)0x4570, (q15_t)0x456b, (q15_t)0x4566, (q15_t)0x4561, (q15_t)0x455b, (q15_t)0x4556, (q15_t)0x4551, - (q15_t)0x454b, (q15_t)0x4546, (q15_t)0x4541, (q15_t)0x453c, (q15_t)0x4536, (q15_t)0x4531, (q15_t)0x452c, (q15_t)0x4526, - (q15_t)0x4521, (q15_t)0x451c, (q15_t)0x4517, (q15_t)0x4511, (q15_t)0x450c, (q15_t)0x4507, (q15_t)0x4501, (q15_t)0x44fc, - (q15_t)0x44f7, (q15_t)0x44f2, (q15_t)0x44ec, (q15_t)0x44e7, (q15_t)0x44e2, (q15_t)0x44dc, (q15_t)0x44d7, (q15_t)0x44d2, - (q15_t)0x44cd, (q15_t)0x44c7, (q15_t)0x44c2, (q15_t)0x44bd, (q15_t)0x44b7, (q15_t)0x44b2, (q15_t)0x44ad, (q15_t)0x44a7, - (q15_t)0x44a2, (q15_t)0x449d, (q15_t)0x4497, (q15_t)0x4492, (q15_t)0x448d, (q15_t)0x4488, (q15_t)0x4482, (q15_t)0x447d, - (q15_t)0x4478, (q15_t)0x4472, (q15_t)0x446d, (q15_t)0x4468, (q15_t)0x4462, (q15_t)0x445d, (q15_t)0x4458, (q15_t)0x4452, - (q15_t)0x444d, (q15_t)0x4448, (q15_t)0x4443, (q15_t)0x443d, (q15_t)0x4438, (q15_t)0x4433, (q15_t)0x442d, (q15_t)0x4428, - (q15_t)0x4423, (q15_t)0x441d, (q15_t)0x4418, (q15_t)0x4413, (q15_t)0x440d, (q15_t)0x4408, (q15_t)0x4403, (q15_t)0x43fd, - (q15_t)0x43f8, (q15_t)0x43f3, (q15_t)0x43ed, (q15_t)0x43e8, (q15_t)0x43e3, (q15_t)0x43dd, (q15_t)0x43d8, (q15_t)0x43d3, - (q15_t)0x43cd, (q15_t)0x43c8, (q15_t)0x43c3, (q15_t)0x43bd, (q15_t)0x43b8, (q15_t)0x43b3, (q15_t)0x43ad, (q15_t)0x43a8, - (q15_t)0x43a3, (q15_t)0x439d, (q15_t)0x4398, (q15_t)0x4393, (q15_t)0x438d, (q15_t)0x4388, (q15_t)0x4383, (q15_t)0x437d, - (q15_t)0x4378, (q15_t)0x4373, (q15_t)0x436d, (q15_t)0x4368, (q15_t)0x4363, (q15_t)0x435d, (q15_t)0x4358, (q15_t)0x4353, - (q15_t)0x434d, (q15_t)0x4348, (q15_t)0x4343, (q15_t)0x433d, (q15_t)0x4338, (q15_t)0x4333, (q15_t)0x432d, (q15_t)0x4328, - (q15_t)0x4323, (q15_t)0x431d, (q15_t)0x4318, (q15_t)0x4313, (q15_t)0x430d, (q15_t)0x4308, (q15_t)0x4302, (q15_t)0x42fd, - (q15_t)0x42f8, (q15_t)0x42f2, (q15_t)0x42ed, (q15_t)0x42e8, (q15_t)0x42e2, (q15_t)0x42dd, (q15_t)0x42d8, (q15_t)0x42d2, - (q15_t)0x42cd, (q15_t)0x42c8, (q15_t)0x42c2, (q15_t)0x42bd, (q15_t)0x42b7, (q15_t)0x42b2, (q15_t)0x42ad, (q15_t)0x42a7, - (q15_t)0x42a2, (q15_t)0x429d, (q15_t)0x4297, (q15_t)0x4292, (q15_t)0x428d, (q15_t)0x4287, (q15_t)0x4282, (q15_t)0x427c, - (q15_t)0x4277, (q15_t)0x4272, (q15_t)0x426c, (q15_t)0x4267, (q15_t)0x4262, (q15_t)0x425c, (q15_t)0x4257, (q15_t)0x4251, - (q15_t)0x424c, (q15_t)0x4247, (q15_t)0x4241, (q15_t)0x423c, (q15_t)0x4237, (q15_t)0x4231, (q15_t)0x422c, (q15_t)0x4226, - (q15_t)0x4221, (q15_t)0x421c, (q15_t)0x4216, (q15_t)0x4211, (q15_t)0x420c, (q15_t)0x4206, (q15_t)0x4201, (q15_t)0x41fb, - (q15_t)0x41f6, (q15_t)0x41f1, (q15_t)0x41eb, (q15_t)0x41e6, (q15_t)0x41e0, (q15_t)0x41db, (q15_t)0x41d6, (q15_t)0x41d0, - (q15_t)0x41cb, (q15_t)0x41c6, (q15_t)0x41c0, (q15_t)0x41bb, (q15_t)0x41b5, (q15_t)0x41b0, (q15_t)0x41ab, (q15_t)0x41a5, - (q15_t)0x41a0, (q15_t)0x419a, (q15_t)0x4195, (q15_t)0x4190, (q15_t)0x418a, (q15_t)0x4185, (q15_t)0x417f, (q15_t)0x417a, - (q15_t)0x4175, (q15_t)0x416f, (q15_t)0x416a, (q15_t)0x4164, (q15_t)0x415f, (q15_t)0x415a, (q15_t)0x4154, (q15_t)0x414f, - (q15_t)0x4149, (q15_t)0x4144, (q15_t)0x413f, (q15_t)0x4139, (q15_t)0x4134, (q15_t)0x412e, (q15_t)0x4129, (q15_t)0x4124, - (q15_t)0x411e, (q15_t)0x4119, (q15_t)0x4113, (q15_t)0x410e, (q15_t)0x4108, (q15_t)0x4103, (q15_t)0x40fe, (q15_t)0x40f8, - (q15_t)0x40f3, (q15_t)0x40ed, (q15_t)0x40e8, (q15_t)0x40e3, (q15_t)0x40dd, (q15_t)0x40d8, (q15_t)0x40d2, (q15_t)0x40cd, - (q15_t)0x40c8, (q15_t)0x40c2, (q15_t)0x40bd, (q15_t)0x40b7, (q15_t)0x40b2, (q15_t)0x40ac, (q15_t)0x40a7, (q15_t)0x40a2, - (q15_t)0x409c, (q15_t)0x4097, (q15_t)0x4091, (q15_t)0x408c, (q15_t)0x4086, (q15_t)0x4081, (q15_t)0x407c, (q15_t)0x4076, - (q15_t)0x4071, (q15_t)0x406b, (q15_t)0x4066, (q15_t)0x4060, (q15_t)0x405b, (q15_t)0x4056, (q15_t)0x4050, (q15_t)0x404b, - (q15_t)0x4045, (q15_t)0x4040, (q15_t)0x403a, (q15_t)0x4035, (q15_t)0x4030, (q15_t)0x402a, (q15_t)0x4025, (q15_t)0x401f, - (q15_t)0x401a, (q15_t)0x4014, (q15_t)0x400f, (q15_t)0x4009, (q15_t)0x4004, (q15_t)0x3fff, (q15_t)0x3ff9, (q15_t)0x3ff4, - (q15_t)0x3fee, (q15_t)0x3fe9, (q15_t)0x3fe3, (q15_t)0x3fde, (q15_t)0x3fd8, (q15_t)0x3fd3, (q15_t)0x3fce, (q15_t)0x3fc8, - (q15_t)0x3fc3, (q15_t)0x3fbd, (q15_t)0x3fb8, (q15_t)0x3fb2, (q15_t)0x3fad, (q15_t)0x3fa7, (q15_t)0x3fa2, (q15_t)0x3f9d, - (q15_t)0x3f97, (q15_t)0x3f92, (q15_t)0x3f8c, (q15_t)0x3f87, (q15_t)0x3f81, (q15_t)0x3f7c, (q15_t)0x3f76, (q15_t)0x3f71, - (q15_t)0x3f6b, (q15_t)0x3f66, (q15_t)0x3f61, (q15_t)0x3f5b, (q15_t)0x3f56, (q15_t)0x3f50, (q15_t)0x3f4b, (q15_t)0x3f45, - (q15_t)0x3f40, (q15_t)0x3f3a, (q15_t)0x3f35, (q15_t)0x3f2f, (q15_t)0x3f2a, (q15_t)0x3f24, (q15_t)0x3f1f, (q15_t)0x3f1a, - (q15_t)0x3f14, (q15_t)0x3f0f, (q15_t)0x3f09, (q15_t)0x3f04, (q15_t)0x3efe, (q15_t)0x3ef9, (q15_t)0x3ef3, (q15_t)0x3eee, - (q15_t)0x3ee8, (q15_t)0x3ee3, (q15_t)0x3edd, (q15_t)0x3ed8, (q15_t)0x3ed2, (q15_t)0x3ecd, (q15_t)0x3ec7, (q15_t)0x3ec2, - (q15_t)0x3ebd, (q15_t)0x3eb7, (q15_t)0x3eb2, (q15_t)0x3eac, (q15_t)0x3ea7, (q15_t)0x3ea1, (q15_t)0x3e9c, (q15_t)0x3e96, - (q15_t)0x3e91, (q15_t)0x3e8b, (q15_t)0x3e86, (q15_t)0x3e80, (q15_t)0x3e7b, (q15_t)0x3e75, (q15_t)0x3e70, (q15_t)0x3e6a, - (q15_t)0x3e65, (q15_t)0x3e5f, (q15_t)0x3e5a, (q15_t)0x3e54, (q15_t)0x3e4f, (q15_t)0x3e49, (q15_t)0x3e44, (q15_t)0x3e3e, - (q15_t)0x3e39, (q15_t)0x3e33, (q15_t)0x3e2e, (q15_t)0x3e28, (q15_t)0x3e23, (q15_t)0x3e1d, (q15_t)0x3e18, (q15_t)0x3e12, - (q15_t)0x3e0d, (q15_t)0x3e07, (q15_t)0x3e02, (q15_t)0x3dfc, (q15_t)0x3df7, (q15_t)0x3df1, (q15_t)0x3dec, (q15_t)0x3de6, - (q15_t)0x3de1, (q15_t)0x3ddb, (q15_t)0x3dd6, (q15_t)0x3dd0, (q15_t)0x3dcb, (q15_t)0x3dc5, (q15_t)0x3dc0, (q15_t)0x3dba, - (q15_t)0x3db5, (q15_t)0x3daf, (q15_t)0x3daa, (q15_t)0x3da4, (q15_t)0x3d9f, (q15_t)0x3d99, (q15_t)0x3d94, (q15_t)0x3d8e, - (q15_t)0x3d89, (q15_t)0x3d83, (q15_t)0x3d7e, (q15_t)0x3d78, (q15_t)0x3d73, (q15_t)0x3d6d, (q15_t)0x3d68, (q15_t)0x3d62, - (q15_t)0x3d5d, (q15_t)0x3d57, (q15_t)0x3d52, (q15_t)0x3d4c, (q15_t)0x3d47, (q15_t)0x3d41, (q15_t)0x3d3c, (q15_t)0x3d36, - (q15_t)0x3d31, (q15_t)0x3d2b, (q15_t)0x3d26, (q15_t)0x3d20, (q15_t)0x3d1b, (q15_t)0x3d15, (q15_t)0x3d10, (q15_t)0x3d0a, - (q15_t)0x3d04, (q15_t)0x3cff, (q15_t)0x3cf9, (q15_t)0x3cf4, (q15_t)0x3cee, (q15_t)0x3ce9, (q15_t)0x3ce3, (q15_t)0x3cde, - (q15_t)0x3cd8, (q15_t)0x3cd3, (q15_t)0x3ccd, (q15_t)0x3cc8, (q15_t)0x3cc2, (q15_t)0x3cbd, (q15_t)0x3cb7, (q15_t)0x3cb2, - (q15_t)0x3cac, (q15_t)0x3ca7, (q15_t)0x3ca1, (q15_t)0x3c9b, (q15_t)0x3c96, (q15_t)0x3c90, (q15_t)0x3c8b, (q15_t)0x3c85, - (q15_t)0x3c80, (q15_t)0x3c7a, (q15_t)0x3c75, (q15_t)0x3c6f, (q15_t)0x3c6a, (q15_t)0x3c64, (q15_t)0x3c5f, (q15_t)0x3c59, - (q15_t)0x3c53, (q15_t)0x3c4e, (q15_t)0x3c48, (q15_t)0x3c43, (q15_t)0x3c3d, (q15_t)0x3c38, (q15_t)0x3c32, (q15_t)0x3c2d, - (q15_t)0x3c27, (q15_t)0x3c22, (q15_t)0x3c1c, (q15_t)0x3c16, (q15_t)0x3c11, (q15_t)0x3c0b, (q15_t)0x3c06, (q15_t)0x3c00, - (q15_t)0x3bfb, (q15_t)0x3bf5, (q15_t)0x3bf0, (q15_t)0x3bea, (q15_t)0x3be5, (q15_t)0x3bdf, (q15_t)0x3bd9, (q15_t)0x3bd4, - (q15_t)0x3bce, (q15_t)0x3bc9, (q15_t)0x3bc3, (q15_t)0x3bbe, (q15_t)0x3bb8, (q15_t)0x3bb3, (q15_t)0x3bad, (q15_t)0x3ba7, - (q15_t)0x3ba2, (q15_t)0x3b9c, (q15_t)0x3b97, (q15_t)0x3b91, (q15_t)0x3b8c, (q15_t)0x3b86, (q15_t)0x3b80, (q15_t)0x3b7b, - (q15_t)0x3b75, (q15_t)0x3b70, (q15_t)0x3b6a, (q15_t)0x3b65, (q15_t)0x3b5f, (q15_t)0x3b5a, (q15_t)0x3b54, (q15_t)0x3b4e, - (q15_t)0x3b49, (q15_t)0x3b43, (q15_t)0x3b3e, (q15_t)0x3b38, (q15_t)0x3b33, (q15_t)0x3b2d, (q15_t)0x3b27, (q15_t)0x3b22, - (q15_t)0x3b1c, (q15_t)0x3b17, (q15_t)0x3b11, (q15_t)0x3b0c, (q15_t)0x3b06, (q15_t)0x3b00, (q15_t)0x3afb, (q15_t)0x3af5, - (q15_t)0x3af0, (q15_t)0x3aea, (q15_t)0x3ae4, (q15_t)0x3adf, (q15_t)0x3ad9, (q15_t)0x3ad4, (q15_t)0x3ace, (q15_t)0x3ac9, - (q15_t)0x3ac3, (q15_t)0x3abd, (q15_t)0x3ab8, (q15_t)0x3ab2, (q15_t)0x3aad, (q15_t)0x3aa7, (q15_t)0x3aa2, (q15_t)0x3a9c, - (q15_t)0x3a96, (q15_t)0x3a91, (q15_t)0x3a8b, (q15_t)0x3a86, (q15_t)0x3a80, (q15_t)0x3a7a, (q15_t)0x3a75, (q15_t)0x3a6f, - (q15_t)0x3a6a, (q15_t)0x3a64, (q15_t)0x3a5e, (q15_t)0x3a59, (q15_t)0x3a53, (q15_t)0x3a4e, (q15_t)0x3a48, (q15_t)0x3a42, - (q15_t)0x3a3d, (q15_t)0x3a37, (q15_t)0x3a32, (q15_t)0x3a2c, (q15_t)0x3a26, (q15_t)0x3a21, (q15_t)0x3a1b, (q15_t)0x3a16, - (q15_t)0x3a10, (q15_t)0x3a0b, (q15_t)0x3a05, (q15_t)0x39ff, (q15_t)0x39fa, (q15_t)0x39f4, (q15_t)0x39ee, (q15_t)0x39e9, - (q15_t)0x39e3, (q15_t)0x39de, (q15_t)0x39d8, (q15_t)0x39d2, (q15_t)0x39cd, (q15_t)0x39c7, (q15_t)0x39c2, (q15_t)0x39bc, - (q15_t)0x39b6, (q15_t)0x39b1, (q15_t)0x39ab, (q15_t)0x39a6, (q15_t)0x39a0, (q15_t)0x399a, (q15_t)0x3995, (q15_t)0x398f, - (q15_t)0x398a, (q15_t)0x3984, (q15_t)0x397e, (q15_t)0x3979, (q15_t)0x3973, (q15_t)0x396d, (q15_t)0x3968, (q15_t)0x3962, - (q15_t)0x395d, (q15_t)0x3957, (q15_t)0x3951, (q15_t)0x394c, (q15_t)0x3946, (q15_t)0x3941, (q15_t)0x393b, (q15_t)0x3935, - (q15_t)0x3930, (q15_t)0x392a, (q15_t)0x3924, (q15_t)0x391f, (q15_t)0x3919, (q15_t)0x3914, (q15_t)0x390e, (q15_t)0x3908, - (q15_t)0x3903, (q15_t)0x38fd, (q15_t)0x38f7, (q15_t)0x38f2, (q15_t)0x38ec, (q15_t)0x38e7, (q15_t)0x38e1, (q15_t)0x38db, - (q15_t)0x38d6, (q15_t)0x38d0, (q15_t)0x38ca, (q15_t)0x38c5, (q15_t)0x38bf, (q15_t)0x38ba, (q15_t)0x38b4, (q15_t)0x38ae, - (q15_t)0x38a9, (q15_t)0x38a3, (q15_t)0x389d, (q15_t)0x3898, (q15_t)0x3892, (q15_t)0x388c, (q15_t)0x3887, (q15_t)0x3881, - (q15_t)0x387c, (q15_t)0x3876, (q15_t)0x3870, (q15_t)0x386b, (q15_t)0x3865, (q15_t)0x385f, (q15_t)0x385a, (q15_t)0x3854, - (q15_t)0x384e, (q15_t)0x3849, (q15_t)0x3843, (q15_t)0x383d, (q15_t)0x3838, (q15_t)0x3832, (q15_t)0x382d, (q15_t)0x3827, - (q15_t)0x3821, (q15_t)0x381c, (q15_t)0x3816, (q15_t)0x3810, (q15_t)0x380b, (q15_t)0x3805, (q15_t)0x37ff, (q15_t)0x37fa, - (q15_t)0x37f4, (q15_t)0x37ee, (q15_t)0x37e9, (q15_t)0x37e3, (q15_t)0x37dd, (q15_t)0x37d8, (q15_t)0x37d2, (q15_t)0x37cc, - (q15_t)0x37c7, (q15_t)0x37c1, (q15_t)0x37bc, (q15_t)0x37b6, (q15_t)0x37b0, (q15_t)0x37ab, (q15_t)0x37a5, (q15_t)0x379f, - (q15_t)0x379a, (q15_t)0x3794, (q15_t)0x378e, (q15_t)0x3789, (q15_t)0x3783, (q15_t)0x377d, (q15_t)0x3778, (q15_t)0x3772, - (q15_t)0x376c, (q15_t)0x3767, (q15_t)0x3761, (q15_t)0x375b, (q15_t)0x3756, (q15_t)0x3750, (q15_t)0x374a, (q15_t)0x3745, - (q15_t)0x373f, (q15_t)0x3739, (q15_t)0x3734, (q15_t)0x372e, (q15_t)0x3728, (q15_t)0x3723, (q15_t)0x371d, (q15_t)0x3717, - (q15_t)0x3712, (q15_t)0x370c, (q15_t)0x3706, (q15_t)0x3701, (q15_t)0x36fb, (q15_t)0x36f5, (q15_t)0x36f0, (q15_t)0x36ea, - (q15_t)0x36e4, (q15_t)0x36df, (q15_t)0x36d9, (q15_t)0x36d3, (q15_t)0x36ce, (q15_t)0x36c8, (q15_t)0x36c2, (q15_t)0x36bc, - (q15_t)0x36b7, (q15_t)0x36b1, (q15_t)0x36ab, (q15_t)0x36a6, (q15_t)0x36a0, (q15_t)0x369a, (q15_t)0x3695, (q15_t)0x368f, - (q15_t)0x3689, (q15_t)0x3684, (q15_t)0x367e, (q15_t)0x3678, (q15_t)0x3673, (q15_t)0x366d, (q15_t)0x3667, (q15_t)0x3662, - (q15_t)0x365c, (q15_t)0x3656, (q15_t)0x3650, (q15_t)0x364b, (q15_t)0x3645, (q15_t)0x363f, (q15_t)0x363a, (q15_t)0x3634, - (q15_t)0x362e, (q15_t)0x3629, (q15_t)0x3623, (q15_t)0x361d, (q15_t)0x3618, (q15_t)0x3612, (q15_t)0x360c, (q15_t)0x3606, - (q15_t)0x3601, (q15_t)0x35fb, (q15_t)0x35f5, (q15_t)0x35f0, (q15_t)0x35ea, (q15_t)0x35e4, (q15_t)0x35df, (q15_t)0x35d9, - (q15_t)0x35d3, (q15_t)0x35cd, (q15_t)0x35c8, (q15_t)0x35c2, (q15_t)0x35bc, (q15_t)0x35b7, (q15_t)0x35b1, (q15_t)0x35ab, - (q15_t)0x35a6, (q15_t)0x35a0, (q15_t)0x359a, (q15_t)0x3594, (q15_t)0x358f, (q15_t)0x3589, (q15_t)0x3583, (q15_t)0x357e, - (q15_t)0x3578, (q15_t)0x3572, (q15_t)0x356c, (q15_t)0x3567, (q15_t)0x3561, (q15_t)0x355b, (q15_t)0x3556, (q15_t)0x3550, - (q15_t)0x354a, (q15_t)0x3544, (q15_t)0x353f, (q15_t)0x3539, (q15_t)0x3533, (q15_t)0x352e, (q15_t)0x3528, (q15_t)0x3522, - (q15_t)0x351c, (q15_t)0x3517, (q15_t)0x3511, (q15_t)0x350b, (q15_t)0x3506, (q15_t)0x3500, (q15_t)0x34fa, (q15_t)0x34f4, - (q15_t)0x34ef, (q15_t)0x34e9, (q15_t)0x34e3, (q15_t)0x34de, (q15_t)0x34d8, (q15_t)0x34d2, (q15_t)0x34cc, (q15_t)0x34c7, - (q15_t)0x34c1, (q15_t)0x34bb, (q15_t)0x34b6, (q15_t)0x34b0, (q15_t)0x34aa, (q15_t)0x34a4, (q15_t)0x349f, (q15_t)0x3499, - (q15_t)0x3493, (q15_t)0x348d, (q15_t)0x3488, (q15_t)0x3482, (q15_t)0x347c, (q15_t)0x3476, (q15_t)0x3471, (q15_t)0x346b, - (q15_t)0x3465, (q15_t)0x3460, (q15_t)0x345a, (q15_t)0x3454, (q15_t)0x344e, (q15_t)0x3449, (q15_t)0x3443, (q15_t)0x343d, - (q15_t)0x3437, (q15_t)0x3432, (q15_t)0x342c, (q15_t)0x3426, (q15_t)0x3420, (q15_t)0x341b, (q15_t)0x3415, (q15_t)0x340f, - (q15_t)0x340a, (q15_t)0x3404, (q15_t)0x33fe, (q15_t)0x33f8, (q15_t)0x33f3, (q15_t)0x33ed, (q15_t)0x33e7, (q15_t)0x33e1, - (q15_t)0x33dc, (q15_t)0x33d6, (q15_t)0x33d0, (q15_t)0x33ca, (q15_t)0x33c5, (q15_t)0x33bf, (q15_t)0x33b9, (q15_t)0x33b3, - (q15_t)0x33ae, (q15_t)0x33a8, (q15_t)0x33a2, (q15_t)0x339c, (q15_t)0x3397, (q15_t)0x3391, (q15_t)0x338b, (q15_t)0x3385, - (q15_t)0x3380, (q15_t)0x337a, (q15_t)0x3374, (q15_t)0x336e, (q15_t)0x3369, (q15_t)0x3363, (q15_t)0x335d, (q15_t)0x3357, - (q15_t)0x3352, (q15_t)0x334c, (q15_t)0x3346, (q15_t)0x3340, (q15_t)0x333b, (q15_t)0x3335, (q15_t)0x332f, (q15_t)0x3329, - (q15_t)0x3324, (q15_t)0x331e, (q15_t)0x3318, (q15_t)0x3312, (q15_t)0x330c, (q15_t)0x3307, (q15_t)0x3301, (q15_t)0x32fb, - (q15_t)0x32f5, (q15_t)0x32f0, (q15_t)0x32ea, (q15_t)0x32e4, (q15_t)0x32de, (q15_t)0x32d9, (q15_t)0x32d3, (q15_t)0x32cd, - (q15_t)0x32c7, (q15_t)0x32c2, (q15_t)0x32bc, (q15_t)0x32b6, (q15_t)0x32b0, (q15_t)0x32aa, (q15_t)0x32a5, (q15_t)0x329f, - (q15_t)0x3299, (q15_t)0x3293, (q15_t)0x328e, (q15_t)0x3288, (q15_t)0x3282, (q15_t)0x327c, (q15_t)0x3276, (q15_t)0x3271, - (q15_t)0x326b, (q15_t)0x3265, (q15_t)0x325f, (q15_t)0x325a, (q15_t)0x3254, (q15_t)0x324e, (q15_t)0x3248, (q15_t)0x3243, - (q15_t)0x323d, (q15_t)0x3237, (q15_t)0x3231, (q15_t)0x322b, (q15_t)0x3226, (q15_t)0x3220, (q15_t)0x321a, (q15_t)0x3214, - (q15_t)0x320e, (q15_t)0x3209, (q15_t)0x3203, (q15_t)0x31fd, (q15_t)0x31f7, (q15_t)0x31f2, (q15_t)0x31ec, (q15_t)0x31e6, - (q15_t)0x31e0, (q15_t)0x31da, (q15_t)0x31d5, (q15_t)0x31cf, (q15_t)0x31c9, (q15_t)0x31c3, (q15_t)0x31bd, (q15_t)0x31b8, - (q15_t)0x31b2, (q15_t)0x31ac, (q15_t)0x31a6, (q15_t)0x31a1, (q15_t)0x319b, (q15_t)0x3195, (q15_t)0x318f, (q15_t)0x3189, - (q15_t)0x3184, (q15_t)0x317e, (q15_t)0x3178, (q15_t)0x3172, (q15_t)0x316c, (q15_t)0x3167, (q15_t)0x3161, (q15_t)0x315b, - (q15_t)0x3155, (q15_t)0x314f, (q15_t)0x314a, (q15_t)0x3144, (q15_t)0x313e, (q15_t)0x3138, (q15_t)0x3132, (q15_t)0x312d, - (q15_t)0x3127, (q15_t)0x3121, (q15_t)0x311b, (q15_t)0x3115, (q15_t)0x3110, (q15_t)0x310a, (q15_t)0x3104, (q15_t)0x30fe, - (q15_t)0x30f8, (q15_t)0x30f3, (q15_t)0x30ed, (q15_t)0x30e7, (q15_t)0x30e1, (q15_t)0x30db, (q15_t)0x30d6, (q15_t)0x30d0, - (q15_t)0x30ca, (q15_t)0x30c4, (q15_t)0x30be, (q15_t)0x30b8, (q15_t)0x30b3, (q15_t)0x30ad, (q15_t)0x30a7, (q15_t)0x30a1, - (q15_t)0x309b, (q15_t)0x3096, (q15_t)0x3090, (q15_t)0x308a, (q15_t)0x3084, (q15_t)0x307e, (q15_t)0x3079, (q15_t)0x3073, - (q15_t)0x306d, (q15_t)0x3067, (q15_t)0x3061, (q15_t)0x305b, (q15_t)0x3056, (q15_t)0x3050, (q15_t)0x304a, (q15_t)0x3044, - (q15_t)0x303e, (q15_t)0x3039, (q15_t)0x3033, (q15_t)0x302d, (q15_t)0x3027, (q15_t)0x3021, (q15_t)0x301b, (q15_t)0x3016, - (q15_t)0x3010, (q15_t)0x300a, (q15_t)0x3004, (q15_t)0x2ffe, (q15_t)0x2ff8, (q15_t)0x2ff3, (q15_t)0x2fed, (q15_t)0x2fe7, - (q15_t)0x2fe1, (q15_t)0x2fdb, (q15_t)0x2fd6, (q15_t)0x2fd0, (q15_t)0x2fca, (q15_t)0x2fc4, (q15_t)0x2fbe, (q15_t)0x2fb8, - (q15_t)0x2fb3, (q15_t)0x2fad, (q15_t)0x2fa7, (q15_t)0x2fa1, (q15_t)0x2f9b, (q15_t)0x2f95, (q15_t)0x2f90, (q15_t)0x2f8a, - (q15_t)0x2f84, (q15_t)0x2f7e, (q15_t)0x2f78, (q15_t)0x2f72, (q15_t)0x2f6d, (q15_t)0x2f67, (q15_t)0x2f61, (q15_t)0x2f5b, - (q15_t)0x2f55, (q15_t)0x2f4f, (q15_t)0x2f4a, (q15_t)0x2f44, (q15_t)0x2f3e, (q15_t)0x2f38, (q15_t)0x2f32, (q15_t)0x2f2c, - (q15_t)0x2f27, (q15_t)0x2f21, (q15_t)0x2f1b, (q15_t)0x2f15, (q15_t)0x2f0f, (q15_t)0x2f09, (q15_t)0x2f03, (q15_t)0x2efe, - (q15_t)0x2ef8, (q15_t)0x2ef2, (q15_t)0x2eec, (q15_t)0x2ee6, (q15_t)0x2ee0, (q15_t)0x2edb, (q15_t)0x2ed5, (q15_t)0x2ecf, - (q15_t)0x2ec9, (q15_t)0x2ec3, (q15_t)0x2ebd, (q15_t)0x2eb7, (q15_t)0x2eb2, (q15_t)0x2eac, (q15_t)0x2ea6, (q15_t)0x2ea0, - (q15_t)0x2e9a, (q15_t)0x2e94, (q15_t)0x2e8e, (q15_t)0x2e89, (q15_t)0x2e83, (q15_t)0x2e7d, (q15_t)0x2e77, (q15_t)0x2e71, - (q15_t)0x2e6b, (q15_t)0x2e65, (q15_t)0x2e60, (q15_t)0x2e5a, (q15_t)0x2e54, (q15_t)0x2e4e, (q15_t)0x2e48, (q15_t)0x2e42, - (q15_t)0x2e3c, (q15_t)0x2e37, (q15_t)0x2e31, (q15_t)0x2e2b, (q15_t)0x2e25, (q15_t)0x2e1f, (q15_t)0x2e19, (q15_t)0x2e13, - (q15_t)0x2e0e, (q15_t)0x2e08, (q15_t)0x2e02, (q15_t)0x2dfc, (q15_t)0x2df6, (q15_t)0x2df0, (q15_t)0x2dea, (q15_t)0x2de5, - (q15_t)0x2ddf, (q15_t)0x2dd9, (q15_t)0x2dd3, (q15_t)0x2dcd, (q15_t)0x2dc7, (q15_t)0x2dc1, (q15_t)0x2dbb, (q15_t)0x2db6, - (q15_t)0x2db0, (q15_t)0x2daa, (q15_t)0x2da4, (q15_t)0x2d9e, (q15_t)0x2d98, (q15_t)0x2d92, (q15_t)0x2d8d, (q15_t)0x2d87, - (q15_t)0x2d81, (q15_t)0x2d7b, (q15_t)0x2d75, (q15_t)0x2d6f, (q15_t)0x2d69, (q15_t)0x2d63, (q15_t)0x2d5e, (q15_t)0x2d58, - (q15_t)0x2d52, (q15_t)0x2d4c, (q15_t)0x2d46, (q15_t)0x2d40, (q15_t)0x2d3a, (q15_t)0x2d34, (q15_t)0x2d2f, (q15_t)0x2d29, - (q15_t)0x2d23, (q15_t)0x2d1d, (q15_t)0x2d17, (q15_t)0x2d11, (q15_t)0x2d0b, (q15_t)0x2d05, (q15_t)0x2cff, (q15_t)0x2cfa, - (q15_t)0x2cf4, (q15_t)0x2cee, (q15_t)0x2ce8, (q15_t)0x2ce2, (q15_t)0x2cdc, (q15_t)0x2cd6, (q15_t)0x2cd0, (q15_t)0x2ccb, - (q15_t)0x2cc5, (q15_t)0x2cbf, (q15_t)0x2cb9, (q15_t)0x2cb3, (q15_t)0x2cad, (q15_t)0x2ca7, (q15_t)0x2ca1, (q15_t)0x2c9b, - (q15_t)0x2c96, (q15_t)0x2c90, (q15_t)0x2c8a, (q15_t)0x2c84, (q15_t)0x2c7e, (q15_t)0x2c78, (q15_t)0x2c72, (q15_t)0x2c6c, - (q15_t)0x2c66, (q15_t)0x2c61, (q15_t)0x2c5b, (q15_t)0x2c55, (q15_t)0x2c4f, (q15_t)0x2c49, (q15_t)0x2c43, (q15_t)0x2c3d, - (q15_t)0x2c37, (q15_t)0x2c31, (q15_t)0x2c2b, (q15_t)0x2c26, (q15_t)0x2c20, (q15_t)0x2c1a, (q15_t)0x2c14, (q15_t)0x2c0e, - (q15_t)0x2c08, (q15_t)0x2c02, (q15_t)0x2bfc, (q15_t)0x2bf6, (q15_t)0x2bf0, (q15_t)0x2beb, (q15_t)0x2be5, (q15_t)0x2bdf, - (q15_t)0x2bd9, (q15_t)0x2bd3, (q15_t)0x2bcd, (q15_t)0x2bc7, (q15_t)0x2bc1, (q15_t)0x2bbb, (q15_t)0x2bb5, (q15_t)0x2bb0, - (q15_t)0x2baa, (q15_t)0x2ba4, (q15_t)0x2b9e, (q15_t)0x2b98, (q15_t)0x2b92, (q15_t)0x2b8c, (q15_t)0x2b86, (q15_t)0x2b80, - (q15_t)0x2b7a, (q15_t)0x2b74, (q15_t)0x2b6f, (q15_t)0x2b69, (q15_t)0x2b63, (q15_t)0x2b5d, (q15_t)0x2b57, (q15_t)0x2b51, - (q15_t)0x2b4b, (q15_t)0x2b45, (q15_t)0x2b3f, (q15_t)0x2b39, (q15_t)0x2b33, (q15_t)0x2b2d, (q15_t)0x2b28, (q15_t)0x2b22, - (q15_t)0x2b1c, (q15_t)0x2b16, (q15_t)0x2b10, (q15_t)0x2b0a, (q15_t)0x2b04, (q15_t)0x2afe, (q15_t)0x2af8, (q15_t)0x2af2, - (q15_t)0x2aec, (q15_t)0x2ae6, (q15_t)0x2ae1, (q15_t)0x2adb, (q15_t)0x2ad5, (q15_t)0x2acf, (q15_t)0x2ac9, (q15_t)0x2ac3, - (q15_t)0x2abd, (q15_t)0x2ab7, (q15_t)0x2ab1, (q15_t)0x2aab, (q15_t)0x2aa5, (q15_t)0x2a9f, (q15_t)0x2a99, (q15_t)0x2a94, - (q15_t)0x2a8e, (q15_t)0x2a88, (q15_t)0x2a82, (q15_t)0x2a7c, (q15_t)0x2a76, (q15_t)0x2a70, (q15_t)0x2a6a, (q15_t)0x2a64, - (q15_t)0x2a5e, (q15_t)0x2a58, (q15_t)0x2a52, (q15_t)0x2a4c, (q15_t)0x2a47, (q15_t)0x2a41, (q15_t)0x2a3b, (q15_t)0x2a35, - (q15_t)0x2a2f, (q15_t)0x2a29, (q15_t)0x2a23, (q15_t)0x2a1d, (q15_t)0x2a17, (q15_t)0x2a11, (q15_t)0x2a0b, (q15_t)0x2a05, - (q15_t)0x29ff, (q15_t)0x29f9, (q15_t)0x29f3, (q15_t)0x29ee, (q15_t)0x29e8, (q15_t)0x29e2, (q15_t)0x29dc, (q15_t)0x29d6, - (q15_t)0x29d0, (q15_t)0x29ca, (q15_t)0x29c4, (q15_t)0x29be, (q15_t)0x29b8, (q15_t)0x29b2, (q15_t)0x29ac, (q15_t)0x29a6, - (q15_t)0x29a0, (q15_t)0x299a, (q15_t)0x2994, (q15_t)0x298e, (q15_t)0x2989, (q15_t)0x2983, (q15_t)0x297d, (q15_t)0x2977, - (q15_t)0x2971, (q15_t)0x296b, (q15_t)0x2965, (q15_t)0x295f, (q15_t)0x2959, (q15_t)0x2953, (q15_t)0x294d, (q15_t)0x2947, - (q15_t)0x2941, (q15_t)0x293b, (q15_t)0x2935, (q15_t)0x292f, (q15_t)0x2929, (q15_t)0x2923, (q15_t)0x291d, (q15_t)0x2918, - (q15_t)0x2912, (q15_t)0x290c, (q15_t)0x2906, (q15_t)0x2900, (q15_t)0x28fa, (q15_t)0x28f4, (q15_t)0x28ee, (q15_t)0x28e8, - (q15_t)0x28e2, (q15_t)0x28dc, (q15_t)0x28d6, (q15_t)0x28d0, (q15_t)0x28ca, (q15_t)0x28c4, (q15_t)0x28be, (q15_t)0x28b8, - (q15_t)0x28b2, (q15_t)0x28ac, (q15_t)0x28a6, (q15_t)0x28a0, (q15_t)0x289a, (q15_t)0x2895, (q15_t)0x288f, (q15_t)0x2889, - (q15_t)0x2883, (q15_t)0x287d, (q15_t)0x2877, (q15_t)0x2871, (q15_t)0x286b, (q15_t)0x2865, (q15_t)0x285f, (q15_t)0x2859, - (q15_t)0x2853, (q15_t)0x284d, (q15_t)0x2847, (q15_t)0x2841, (q15_t)0x283b, (q15_t)0x2835, (q15_t)0x282f, (q15_t)0x2829, - (q15_t)0x2823, (q15_t)0x281d, (q15_t)0x2817, (q15_t)0x2811, (q15_t)0x280b, (q15_t)0x2805, (q15_t)0x27ff, (q15_t)0x27f9, - (q15_t)0x27f3, (q15_t)0x27ee, (q15_t)0x27e8, (q15_t)0x27e2, (q15_t)0x27dc, (q15_t)0x27d6, (q15_t)0x27d0, (q15_t)0x27ca, - (q15_t)0x27c4, (q15_t)0x27be, (q15_t)0x27b8, (q15_t)0x27b2, (q15_t)0x27ac, (q15_t)0x27a6, (q15_t)0x27a0, (q15_t)0x279a, - (q15_t)0x2794, (q15_t)0x278e, (q15_t)0x2788, (q15_t)0x2782, (q15_t)0x277c, (q15_t)0x2776, (q15_t)0x2770, (q15_t)0x276a, - (q15_t)0x2764, (q15_t)0x275e, (q15_t)0x2758, (q15_t)0x2752, (q15_t)0x274c, (q15_t)0x2746, (q15_t)0x2740, (q15_t)0x273a, - (q15_t)0x2734, (q15_t)0x272e, (q15_t)0x2728, (q15_t)0x2722, (q15_t)0x271c, (q15_t)0x2716, (q15_t)0x2710, (q15_t)0x270a, - (q15_t)0x2704, (q15_t)0x26fe, (q15_t)0x26f8, (q15_t)0x26f2, (q15_t)0x26ec, (q15_t)0x26e7, (q15_t)0x26e1, (q15_t)0x26db, - (q15_t)0x26d5, (q15_t)0x26cf, (q15_t)0x26c9, (q15_t)0x26c3, (q15_t)0x26bd, (q15_t)0x26b7, (q15_t)0x26b1, (q15_t)0x26ab, - (q15_t)0x26a5, (q15_t)0x269f, (q15_t)0x2699, (q15_t)0x2693, (q15_t)0x268d, (q15_t)0x2687, (q15_t)0x2681, (q15_t)0x267b, - (q15_t)0x2675, (q15_t)0x266f, (q15_t)0x2669, (q15_t)0x2663, (q15_t)0x265d, (q15_t)0x2657, (q15_t)0x2651, (q15_t)0x264b, - (q15_t)0x2645, (q15_t)0x263f, (q15_t)0x2639, (q15_t)0x2633, (q15_t)0x262d, (q15_t)0x2627, (q15_t)0x2621, (q15_t)0x261b, - (q15_t)0x2615, (q15_t)0x260f, (q15_t)0x2609, (q15_t)0x2603, (q15_t)0x25fd, (q15_t)0x25f7, (q15_t)0x25f1, (q15_t)0x25eb, - (q15_t)0x25e5, (q15_t)0x25df, (q15_t)0x25d9, (q15_t)0x25d3, (q15_t)0x25cd, (q15_t)0x25c7, (q15_t)0x25c1, (q15_t)0x25bb, - (q15_t)0x25b5, (q15_t)0x25af, (q15_t)0x25a9, (q15_t)0x25a3, (q15_t)0x259d, (q15_t)0x2597, (q15_t)0x2591, (q15_t)0x258b, - (q15_t)0x2585, (q15_t)0x257f, (q15_t)0x2579, (q15_t)0x2573, (q15_t)0x256d, (q15_t)0x2567, (q15_t)0x2561, (q15_t)0x255b, - (q15_t)0x2555, (q15_t)0x254f, (q15_t)0x2549, (q15_t)0x2543, (q15_t)0x253d, (q15_t)0x2537, (q15_t)0x2531, (q15_t)0x252b, - (q15_t)0x2525, (q15_t)0x251f, (q15_t)0x2519, (q15_t)0x2513, (q15_t)0x250c, (q15_t)0x2506, (q15_t)0x2500, (q15_t)0x24fa, - (q15_t)0x24f4, (q15_t)0x24ee, (q15_t)0x24e8, (q15_t)0x24e2, (q15_t)0x24dc, (q15_t)0x24d6, (q15_t)0x24d0, (q15_t)0x24ca, - (q15_t)0x24c4, (q15_t)0x24be, (q15_t)0x24b8, (q15_t)0x24b2, (q15_t)0x24ac, (q15_t)0x24a6, (q15_t)0x24a0, (q15_t)0x249a, - (q15_t)0x2494, (q15_t)0x248e, (q15_t)0x2488, (q15_t)0x2482, (q15_t)0x247c, (q15_t)0x2476, (q15_t)0x2470, (q15_t)0x246a, - (q15_t)0x2464, (q15_t)0x245e, (q15_t)0x2458, (q15_t)0x2452, (q15_t)0x244c, (q15_t)0x2446, (q15_t)0x2440, (q15_t)0x243a, - (q15_t)0x2434, (q15_t)0x242e, (q15_t)0x2428, (q15_t)0x2422, (q15_t)0x241c, (q15_t)0x2416, (q15_t)0x2410, (q15_t)0x240a, - (q15_t)0x2404, (q15_t)0x23fd, (q15_t)0x23f7, (q15_t)0x23f1, (q15_t)0x23eb, (q15_t)0x23e5, (q15_t)0x23df, (q15_t)0x23d9, - (q15_t)0x23d3, (q15_t)0x23cd, (q15_t)0x23c7, (q15_t)0x23c1, (q15_t)0x23bb, (q15_t)0x23b5, (q15_t)0x23af, (q15_t)0x23a9, - (q15_t)0x23a3, (q15_t)0x239d, (q15_t)0x2397, (q15_t)0x2391, (q15_t)0x238b, (q15_t)0x2385, (q15_t)0x237f, (q15_t)0x2379, - (q15_t)0x2373, (q15_t)0x236d, (q15_t)0x2367, (q15_t)0x2361, (q15_t)0x235b, (q15_t)0x2355, (q15_t)0x234e, (q15_t)0x2348, - (q15_t)0x2342, (q15_t)0x233c, (q15_t)0x2336, (q15_t)0x2330, (q15_t)0x232a, (q15_t)0x2324, (q15_t)0x231e, (q15_t)0x2318, - (q15_t)0x2312, (q15_t)0x230c, (q15_t)0x2306, (q15_t)0x2300, (q15_t)0x22fa, (q15_t)0x22f4, (q15_t)0x22ee, (q15_t)0x22e8, - (q15_t)0x22e2, (q15_t)0x22dc, (q15_t)0x22d6, (q15_t)0x22d0, (q15_t)0x22ca, (q15_t)0x22c4, (q15_t)0x22bd, (q15_t)0x22b7, - (q15_t)0x22b1, (q15_t)0x22ab, (q15_t)0x22a5, (q15_t)0x229f, (q15_t)0x2299, (q15_t)0x2293, (q15_t)0x228d, (q15_t)0x2287, - (q15_t)0x2281, (q15_t)0x227b, (q15_t)0x2275, (q15_t)0x226f, (q15_t)0x2269, (q15_t)0x2263, (q15_t)0x225d, (q15_t)0x2257, - (q15_t)0x2251, (q15_t)0x224a, (q15_t)0x2244, (q15_t)0x223e, (q15_t)0x2238, (q15_t)0x2232, (q15_t)0x222c, (q15_t)0x2226, - (q15_t)0x2220, (q15_t)0x221a, (q15_t)0x2214, (q15_t)0x220e, (q15_t)0x2208, (q15_t)0x2202, (q15_t)0x21fc, (q15_t)0x21f6, - (q15_t)0x21f0, (q15_t)0x21ea, (q15_t)0x21e4, (q15_t)0x21dd, (q15_t)0x21d7, (q15_t)0x21d1, (q15_t)0x21cb, (q15_t)0x21c5, - (q15_t)0x21bf, (q15_t)0x21b9, (q15_t)0x21b3, (q15_t)0x21ad, (q15_t)0x21a7, (q15_t)0x21a1, (q15_t)0x219b, (q15_t)0x2195, - (q15_t)0x218f, (q15_t)0x2189, (q15_t)0x2183, (q15_t)0x217c, (q15_t)0x2176, (q15_t)0x2170, (q15_t)0x216a, (q15_t)0x2164, - (q15_t)0x215e, (q15_t)0x2158, (q15_t)0x2152, (q15_t)0x214c, (q15_t)0x2146, (q15_t)0x2140, (q15_t)0x213a, (q15_t)0x2134, - (q15_t)0x212e, (q15_t)0x2128, (q15_t)0x2121, (q15_t)0x211b, (q15_t)0x2115, (q15_t)0x210f, (q15_t)0x2109, (q15_t)0x2103, - (q15_t)0x20fd, (q15_t)0x20f7, (q15_t)0x20f1, (q15_t)0x20eb, (q15_t)0x20e5, (q15_t)0x20df, (q15_t)0x20d9, (q15_t)0x20d3, - (q15_t)0x20cc, (q15_t)0x20c6, (q15_t)0x20c0, (q15_t)0x20ba, (q15_t)0x20b4, (q15_t)0x20ae, (q15_t)0x20a8, (q15_t)0x20a2, - (q15_t)0x209c, (q15_t)0x2096, (q15_t)0x2090, (q15_t)0x208a, (q15_t)0x2084, (q15_t)0x207e, (q15_t)0x2077, (q15_t)0x2071, - (q15_t)0x206b, (q15_t)0x2065, (q15_t)0x205f, (q15_t)0x2059, (q15_t)0x2053, (q15_t)0x204d, (q15_t)0x2047, (q15_t)0x2041, - (q15_t)0x203b, (q15_t)0x2035, (q15_t)0x202e, (q15_t)0x2028, (q15_t)0x2022, (q15_t)0x201c, (q15_t)0x2016, (q15_t)0x2010, - (q15_t)0x200a, (q15_t)0x2004, (q15_t)0x1ffe, (q15_t)0x1ff8, (q15_t)0x1ff2, (q15_t)0x1fec, (q15_t)0x1fe5, (q15_t)0x1fdf, - (q15_t)0x1fd9, (q15_t)0x1fd3, (q15_t)0x1fcd, (q15_t)0x1fc7, (q15_t)0x1fc1, (q15_t)0x1fbb, (q15_t)0x1fb5, (q15_t)0x1faf, - (q15_t)0x1fa9, (q15_t)0x1fa3, (q15_t)0x1f9c, (q15_t)0x1f96, (q15_t)0x1f90, (q15_t)0x1f8a, (q15_t)0x1f84, (q15_t)0x1f7e, - (q15_t)0x1f78, (q15_t)0x1f72, (q15_t)0x1f6c, (q15_t)0x1f66, (q15_t)0x1f60, (q15_t)0x1f59, (q15_t)0x1f53, (q15_t)0x1f4d, - (q15_t)0x1f47, (q15_t)0x1f41, (q15_t)0x1f3b, (q15_t)0x1f35, (q15_t)0x1f2f, (q15_t)0x1f29, (q15_t)0x1f23, (q15_t)0x1f1d, - (q15_t)0x1f16, (q15_t)0x1f10, (q15_t)0x1f0a, (q15_t)0x1f04, (q15_t)0x1efe, (q15_t)0x1ef8, (q15_t)0x1ef2, (q15_t)0x1eec, - (q15_t)0x1ee6, (q15_t)0x1ee0, (q15_t)0x1ed9, (q15_t)0x1ed3, (q15_t)0x1ecd, (q15_t)0x1ec7, (q15_t)0x1ec1, (q15_t)0x1ebb, - (q15_t)0x1eb5, (q15_t)0x1eaf, (q15_t)0x1ea9, (q15_t)0x1ea3, (q15_t)0x1e9c, (q15_t)0x1e96, (q15_t)0x1e90, (q15_t)0x1e8a, - (q15_t)0x1e84, (q15_t)0x1e7e, (q15_t)0x1e78, (q15_t)0x1e72, (q15_t)0x1e6c, (q15_t)0x1e66, (q15_t)0x1e5f, (q15_t)0x1e59, - (q15_t)0x1e53, (q15_t)0x1e4d, (q15_t)0x1e47, (q15_t)0x1e41, (q15_t)0x1e3b, (q15_t)0x1e35, (q15_t)0x1e2f, (q15_t)0x1e29, - (q15_t)0x1e22, (q15_t)0x1e1c, (q15_t)0x1e16, (q15_t)0x1e10, (q15_t)0x1e0a, (q15_t)0x1e04, (q15_t)0x1dfe, (q15_t)0x1df8, - (q15_t)0x1df2, (q15_t)0x1deb, (q15_t)0x1de5, (q15_t)0x1ddf, (q15_t)0x1dd9, (q15_t)0x1dd3, (q15_t)0x1dcd, (q15_t)0x1dc7, - (q15_t)0x1dc1, (q15_t)0x1dbb, (q15_t)0x1db4, (q15_t)0x1dae, (q15_t)0x1da8, (q15_t)0x1da2, (q15_t)0x1d9c, (q15_t)0x1d96, - (q15_t)0x1d90, (q15_t)0x1d8a, (q15_t)0x1d84, (q15_t)0x1d7d, (q15_t)0x1d77, (q15_t)0x1d71, (q15_t)0x1d6b, (q15_t)0x1d65, - (q15_t)0x1d5f, (q15_t)0x1d59, (q15_t)0x1d53, (q15_t)0x1d4c, (q15_t)0x1d46, (q15_t)0x1d40, (q15_t)0x1d3a, (q15_t)0x1d34, - (q15_t)0x1d2e, (q15_t)0x1d28, (q15_t)0x1d22, (q15_t)0x1d1c, (q15_t)0x1d15, (q15_t)0x1d0f, (q15_t)0x1d09, (q15_t)0x1d03, - (q15_t)0x1cfd, (q15_t)0x1cf7, (q15_t)0x1cf1, (q15_t)0x1ceb, (q15_t)0x1ce4, (q15_t)0x1cde, (q15_t)0x1cd8, (q15_t)0x1cd2, - (q15_t)0x1ccc, (q15_t)0x1cc6, (q15_t)0x1cc0, (q15_t)0x1cba, (q15_t)0x1cb3, (q15_t)0x1cad, (q15_t)0x1ca7, (q15_t)0x1ca1, - (q15_t)0x1c9b, (q15_t)0x1c95, (q15_t)0x1c8f, (q15_t)0x1c89, (q15_t)0x1c83, (q15_t)0x1c7c, (q15_t)0x1c76, (q15_t)0x1c70, - (q15_t)0x1c6a, (q15_t)0x1c64, (q15_t)0x1c5e, (q15_t)0x1c58, (q15_t)0x1c51, (q15_t)0x1c4b, (q15_t)0x1c45, (q15_t)0x1c3f, - (q15_t)0x1c39, (q15_t)0x1c33, (q15_t)0x1c2d, (q15_t)0x1c27, (q15_t)0x1c20, (q15_t)0x1c1a, (q15_t)0x1c14, (q15_t)0x1c0e, - (q15_t)0x1c08, (q15_t)0x1c02, (q15_t)0x1bfc, (q15_t)0x1bf6, (q15_t)0x1bef, (q15_t)0x1be9, (q15_t)0x1be3, (q15_t)0x1bdd, - (q15_t)0x1bd7, (q15_t)0x1bd1, (q15_t)0x1bcb, (q15_t)0x1bc4, (q15_t)0x1bbe, (q15_t)0x1bb8, (q15_t)0x1bb2, (q15_t)0x1bac, - (q15_t)0x1ba6, (q15_t)0x1ba0, (q15_t)0x1b9a, (q15_t)0x1b93, (q15_t)0x1b8d, (q15_t)0x1b87, (q15_t)0x1b81, (q15_t)0x1b7b, - (q15_t)0x1b75, (q15_t)0x1b6f, (q15_t)0x1b68, (q15_t)0x1b62, (q15_t)0x1b5c, (q15_t)0x1b56, (q15_t)0x1b50, (q15_t)0x1b4a, - (q15_t)0x1b44, (q15_t)0x1b3d, (q15_t)0x1b37, (q15_t)0x1b31, (q15_t)0x1b2b, (q15_t)0x1b25, (q15_t)0x1b1f, (q15_t)0x1b19, - (q15_t)0x1b13, (q15_t)0x1b0c, (q15_t)0x1b06, (q15_t)0x1b00, (q15_t)0x1afa, (q15_t)0x1af4, (q15_t)0x1aee, (q15_t)0x1ae8, - (q15_t)0x1ae1, (q15_t)0x1adb, (q15_t)0x1ad5, (q15_t)0x1acf, (q15_t)0x1ac9, (q15_t)0x1ac3, (q15_t)0x1abd, (q15_t)0x1ab6, - (q15_t)0x1ab0, (q15_t)0x1aaa, (q15_t)0x1aa4, (q15_t)0x1a9e, (q15_t)0x1a98, (q15_t)0x1a91, (q15_t)0x1a8b, (q15_t)0x1a85, - (q15_t)0x1a7f, (q15_t)0x1a79, (q15_t)0x1a73, (q15_t)0x1a6d, (q15_t)0x1a66, (q15_t)0x1a60, (q15_t)0x1a5a, (q15_t)0x1a54, - (q15_t)0x1a4e, (q15_t)0x1a48, (q15_t)0x1a42, (q15_t)0x1a3b, (q15_t)0x1a35, (q15_t)0x1a2f, (q15_t)0x1a29, (q15_t)0x1a23, - (q15_t)0x1a1d, (q15_t)0x1a17, (q15_t)0x1a10, (q15_t)0x1a0a, (q15_t)0x1a04, (q15_t)0x19fe, (q15_t)0x19f8, (q15_t)0x19f2, - (q15_t)0x19eb, (q15_t)0x19e5, (q15_t)0x19df, (q15_t)0x19d9, (q15_t)0x19d3, (q15_t)0x19cd, (q15_t)0x19c7, (q15_t)0x19c0, - (q15_t)0x19ba, (q15_t)0x19b4, (q15_t)0x19ae, (q15_t)0x19a8, (q15_t)0x19a2, (q15_t)0x199b, (q15_t)0x1995, (q15_t)0x198f, - (q15_t)0x1989, (q15_t)0x1983, (q15_t)0x197d, (q15_t)0x1977, (q15_t)0x1970, (q15_t)0x196a, (q15_t)0x1964, (q15_t)0x195e, - (q15_t)0x1958, (q15_t)0x1952, (q15_t)0x194b, (q15_t)0x1945, (q15_t)0x193f, (q15_t)0x1939, (q15_t)0x1933, (q15_t)0x192d, - (q15_t)0x1926, (q15_t)0x1920, (q15_t)0x191a, (q15_t)0x1914, (q15_t)0x190e, (q15_t)0x1908, (q15_t)0x1901, (q15_t)0x18fb, - (q15_t)0x18f5, (q15_t)0x18ef, (q15_t)0x18e9, (q15_t)0x18e3, (q15_t)0x18dc, (q15_t)0x18d6, (q15_t)0x18d0, (q15_t)0x18ca, - (q15_t)0x18c4, (q15_t)0x18be, (q15_t)0x18b8, (q15_t)0x18b1, (q15_t)0x18ab, (q15_t)0x18a5, (q15_t)0x189f, (q15_t)0x1899, - (q15_t)0x1893, (q15_t)0x188c, (q15_t)0x1886, (q15_t)0x1880, (q15_t)0x187a, (q15_t)0x1874, (q15_t)0x186e, (q15_t)0x1867, - (q15_t)0x1861, (q15_t)0x185b, (q15_t)0x1855, (q15_t)0x184f, (q15_t)0x1848, (q15_t)0x1842, (q15_t)0x183c, (q15_t)0x1836, - (q15_t)0x1830, (q15_t)0x182a, (q15_t)0x1823, (q15_t)0x181d, (q15_t)0x1817, (q15_t)0x1811, (q15_t)0x180b, (q15_t)0x1805, - (q15_t)0x17fe, (q15_t)0x17f8, (q15_t)0x17f2, (q15_t)0x17ec, (q15_t)0x17e6, (q15_t)0x17e0, (q15_t)0x17d9, (q15_t)0x17d3, - (q15_t)0x17cd, (q15_t)0x17c7, (q15_t)0x17c1, (q15_t)0x17bb, (q15_t)0x17b4, (q15_t)0x17ae, (q15_t)0x17a8, (q15_t)0x17a2, - (q15_t)0x179c, (q15_t)0x1795, (q15_t)0x178f, (q15_t)0x1789, (q15_t)0x1783, (q15_t)0x177d, (q15_t)0x1777, (q15_t)0x1770, - (q15_t)0x176a, (q15_t)0x1764, (q15_t)0x175e, (q15_t)0x1758, (q15_t)0x1752, (q15_t)0x174b, (q15_t)0x1745, (q15_t)0x173f, - (q15_t)0x1739, (q15_t)0x1733, (q15_t)0x172c, (q15_t)0x1726, (q15_t)0x1720, (q15_t)0x171a, (q15_t)0x1714, (q15_t)0x170e, - (q15_t)0x1707, (q15_t)0x1701, (q15_t)0x16fb, (q15_t)0x16f5, (q15_t)0x16ef, (q15_t)0x16e8, (q15_t)0x16e2, (q15_t)0x16dc, - (q15_t)0x16d6, (q15_t)0x16d0, (q15_t)0x16ca, (q15_t)0x16c3, (q15_t)0x16bd, (q15_t)0x16b7, (q15_t)0x16b1, (q15_t)0x16ab, - (q15_t)0x16a4, (q15_t)0x169e, (q15_t)0x1698, (q15_t)0x1692, (q15_t)0x168c, (q15_t)0x1686, (q15_t)0x167f, (q15_t)0x1679, - (q15_t)0x1673, (q15_t)0x166d, (q15_t)0x1667, (q15_t)0x1660, (q15_t)0x165a, (q15_t)0x1654, (q15_t)0x164e, (q15_t)0x1648, - (q15_t)0x1642, (q15_t)0x163b, (q15_t)0x1635, (q15_t)0x162f, (q15_t)0x1629, (q15_t)0x1623, (q15_t)0x161c, (q15_t)0x1616, - (q15_t)0x1610, (q15_t)0x160a, (q15_t)0x1604, (q15_t)0x15fd, (q15_t)0x15f7, (q15_t)0x15f1, (q15_t)0x15eb, (q15_t)0x15e5, - (q15_t)0x15de, (q15_t)0x15d8, (q15_t)0x15d2, (q15_t)0x15cc, (q15_t)0x15c6, (q15_t)0x15c0, (q15_t)0x15b9, (q15_t)0x15b3, - (q15_t)0x15ad, (q15_t)0x15a7, (q15_t)0x15a1, (q15_t)0x159a, (q15_t)0x1594, (q15_t)0x158e, (q15_t)0x1588, (q15_t)0x1582, - (q15_t)0x157b, (q15_t)0x1575, (q15_t)0x156f, (q15_t)0x1569, (q15_t)0x1563, (q15_t)0x155c, (q15_t)0x1556, (q15_t)0x1550, - (q15_t)0x154a, (q15_t)0x1544, (q15_t)0x153d, (q15_t)0x1537, (q15_t)0x1531, (q15_t)0x152b, (q15_t)0x1525, (q15_t)0x151e, - (q15_t)0x1518, (q15_t)0x1512, (q15_t)0x150c, (q15_t)0x1506, (q15_t)0x14ff, (q15_t)0x14f9, (q15_t)0x14f3, (q15_t)0x14ed, - (q15_t)0x14e7, (q15_t)0x14e0, (q15_t)0x14da, (q15_t)0x14d4, (q15_t)0x14ce, (q15_t)0x14c8, (q15_t)0x14c1, (q15_t)0x14bb, - (q15_t)0x14b5, (q15_t)0x14af, (q15_t)0x14a9, (q15_t)0x14a2, (q15_t)0x149c, (q15_t)0x1496, (q15_t)0x1490, (q15_t)0x148a, - (q15_t)0x1483, (q15_t)0x147d, (q15_t)0x1477, (q15_t)0x1471, (q15_t)0x146b, (q15_t)0x1464, (q15_t)0x145e, (q15_t)0x1458, - (q15_t)0x1452, (q15_t)0x144c, (q15_t)0x1445, (q15_t)0x143f, (q15_t)0x1439, (q15_t)0x1433, (q15_t)0x142d, (q15_t)0x1426, - (q15_t)0x1420, (q15_t)0x141a, (q15_t)0x1414, (q15_t)0x140e, (q15_t)0x1407, (q15_t)0x1401, (q15_t)0x13fb, (q15_t)0x13f5, - (q15_t)0x13ef, (q15_t)0x13e8, (q15_t)0x13e2, (q15_t)0x13dc, (q15_t)0x13d6, (q15_t)0x13d0, (q15_t)0x13c9, (q15_t)0x13c3, - (q15_t)0x13bd, (q15_t)0x13b7, (q15_t)0x13b1, (q15_t)0x13aa, (q15_t)0x13a4, (q15_t)0x139e, (q15_t)0x1398, (q15_t)0x1391, - (q15_t)0x138b, (q15_t)0x1385, (q15_t)0x137f, (q15_t)0x1379, (q15_t)0x1372, (q15_t)0x136c, (q15_t)0x1366, (q15_t)0x1360, - (q15_t)0x135a, (q15_t)0x1353, (q15_t)0x134d, (q15_t)0x1347, (q15_t)0x1341, (q15_t)0x133b, (q15_t)0x1334, (q15_t)0x132e, - (q15_t)0x1328, (q15_t)0x1322, (q15_t)0x131b, (q15_t)0x1315, (q15_t)0x130f, (q15_t)0x1309, (q15_t)0x1303, (q15_t)0x12fc, - (q15_t)0x12f6, (q15_t)0x12f0, (q15_t)0x12ea, (q15_t)0x12e4, (q15_t)0x12dd, (q15_t)0x12d7, (q15_t)0x12d1, (q15_t)0x12cb, - (q15_t)0x12c4, (q15_t)0x12be, (q15_t)0x12b8, (q15_t)0x12b2, (q15_t)0x12ac, (q15_t)0x12a5, (q15_t)0x129f, (q15_t)0x1299, - (q15_t)0x1293, (q15_t)0x128d, (q15_t)0x1286, (q15_t)0x1280, (q15_t)0x127a, (q15_t)0x1274, (q15_t)0x126d, (q15_t)0x1267, - (q15_t)0x1261, (q15_t)0x125b, (q15_t)0x1255, (q15_t)0x124e, (q15_t)0x1248, (q15_t)0x1242, (q15_t)0x123c, (q15_t)0x1235, - (q15_t)0x122f, (q15_t)0x1229, (q15_t)0x1223, (q15_t)0x121d, (q15_t)0x1216, (q15_t)0x1210, (q15_t)0x120a, (q15_t)0x1204, - (q15_t)0x11fd, (q15_t)0x11f7, (q15_t)0x11f1, (q15_t)0x11eb, (q15_t)0x11e5, (q15_t)0x11de, (q15_t)0x11d8, (q15_t)0x11d2, - (q15_t)0x11cc, (q15_t)0x11c5, (q15_t)0x11bf, (q15_t)0x11b9, (q15_t)0x11b3, (q15_t)0x11ad, (q15_t)0x11a6, (q15_t)0x11a0, - (q15_t)0x119a, (q15_t)0x1194, (q15_t)0x118d, (q15_t)0x1187, (q15_t)0x1181, (q15_t)0x117b, (q15_t)0x1175, (q15_t)0x116e, - (q15_t)0x1168, (q15_t)0x1162, (q15_t)0x115c, (q15_t)0x1155, (q15_t)0x114f, (q15_t)0x1149, (q15_t)0x1143, (q15_t)0x113d, - (q15_t)0x1136, (q15_t)0x1130, (q15_t)0x112a, (q15_t)0x1124, (q15_t)0x111d, (q15_t)0x1117, (q15_t)0x1111, (q15_t)0x110b, - (q15_t)0x1105, (q15_t)0x10fe, (q15_t)0x10f8, (q15_t)0x10f2, (q15_t)0x10ec, (q15_t)0x10e5, (q15_t)0x10df, (q15_t)0x10d9, - (q15_t)0x10d3, (q15_t)0x10cc, (q15_t)0x10c6, (q15_t)0x10c0, (q15_t)0x10ba, (q15_t)0x10b4, (q15_t)0x10ad, (q15_t)0x10a7, - (q15_t)0x10a1, (q15_t)0x109b, (q15_t)0x1094, (q15_t)0x108e, (q15_t)0x1088, (q15_t)0x1082, (q15_t)0x107b, (q15_t)0x1075, - (q15_t)0x106f, (q15_t)0x1069, (q15_t)0x1063, (q15_t)0x105c, (q15_t)0x1056, (q15_t)0x1050, (q15_t)0x104a, (q15_t)0x1043, - (q15_t)0x103d, (q15_t)0x1037, (q15_t)0x1031, (q15_t)0x102a, (q15_t)0x1024, (q15_t)0x101e, (q15_t)0x1018, (q15_t)0x1012, - (q15_t)0x100b, (q15_t)0x1005, (q15_t)0xfff, (q15_t)0xff9, (q15_t)0xff2, (q15_t)0xfec, (q15_t)0xfe6, (q15_t)0xfe0, - (q15_t)0xfd9, (q15_t)0xfd3, (q15_t)0xfcd, (q15_t)0xfc7, (q15_t)0xfc0, (q15_t)0xfba, (q15_t)0xfb4, (q15_t)0xfae, - (q15_t)0xfa8, (q15_t)0xfa1, (q15_t)0xf9b, (q15_t)0xf95, (q15_t)0xf8f, (q15_t)0xf88, (q15_t)0xf82, (q15_t)0xf7c, - (q15_t)0xf76, (q15_t)0xf6f, (q15_t)0xf69, (q15_t)0xf63, (q15_t)0xf5d, (q15_t)0xf56, (q15_t)0xf50, (q15_t)0xf4a, - (q15_t)0xf44, (q15_t)0xf3e, (q15_t)0xf37, (q15_t)0xf31, (q15_t)0xf2b, (q15_t)0xf25, (q15_t)0xf1e, (q15_t)0xf18, - (q15_t)0xf12, (q15_t)0xf0c, (q15_t)0xf05, (q15_t)0xeff, (q15_t)0xef9, (q15_t)0xef3, (q15_t)0xeec, (q15_t)0xee6, - (q15_t)0xee0, (q15_t)0xeda, (q15_t)0xed3, (q15_t)0xecd, (q15_t)0xec7, (q15_t)0xec1, (q15_t)0xeba, (q15_t)0xeb4, - (q15_t)0xeae, (q15_t)0xea8, (q15_t)0xea1, (q15_t)0xe9b, (q15_t)0xe95, (q15_t)0xe8f, (q15_t)0xe89, (q15_t)0xe82, - (q15_t)0xe7c, (q15_t)0xe76, (q15_t)0xe70, (q15_t)0xe69, (q15_t)0xe63, (q15_t)0xe5d, (q15_t)0xe57, (q15_t)0xe50, - (q15_t)0xe4a, (q15_t)0xe44, (q15_t)0xe3e, (q15_t)0xe37, (q15_t)0xe31, (q15_t)0xe2b, (q15_t)0xe25, (q15_t)0xe1e, - (q15_t)0xe18, (q15_t)0xe12, (q15_t)0xe0c, (q15_t)0xe05, (q15_t)0xdff, (q15_t)0xdf9, (q15_t)0xdf3, (q15_t)0xdec, - (q15_t)0xde6, (q15_t)0xde0, (q15_t)0xdda, (q15_t)0xdd3, (q15_t)0xdcd, (q15_t)0xdc7, (q15_t)0xdc1, (q15_t)0xdba, - (q15_t)0xdb4, (q15_t)0xdae, (q15_t)0xda8, (q15_t)0xda1, (q15_t)0xd9b, (q15_t)0xd95, (q15_t)0xd8f, (q15_t)0xd88, - (q15_t)0xd82, (q15_t)0xd7c, (q15_t)0xd76, (q15_t)0xd6f, (q15_t)0xd69, (q15_t)0xd63, (q15_t)0xd5d, (q15_t)0xd56, - (q15_t)0xd50, (q15_t)0xd4a, (q15_t)0xd44, (q15_t)0xd3d, (q15_t)0xd37, (q15_t)0xd31, (q15_t)0xd2b, (q15_t)0xd24, - (q15_t)0xd1e, (q15_t)0xd18, (q15_t)0xd12, (q15_t)0xd0b, (q15_t)0xd05, (q15_t)0xcff, (q15_t)0xcf9, (q15_t)0xcf2, - (q15_t)0xcec, (q15_t)0xce6, (q15_t)0xce0, (q15_t)0xcd9, (q15_t)0xcd3, (q15_t)0xccd, (q15_t)0xcc7, (q15_t)0xcc0, - (q15_t)0xcba, (q15_t)0xcb4, (q15_t)0xcae, (q15_t)0xca7, (q15_t)0xca1, (q15_t)0xc9b, (q15_t)0xc95, (q15_t)0xc8e, - (q15_t)0xc88, (q15_t)0xc82, (q15_t)0xc7c, (q15_t)0xc75, (q15_t)0xc6f, (q15_t)0xc69, (q15_t)0xc63, (q15_t)0xc5c, - (q15_t)0xc56, (q15_t)0xc50, (q15_t)0xc4a, (q15_t)0xc43, (q15_t)0xc3d, (q15_t)0xc37, (q15_t)0xc31, (q15_t)0xc2a, - (q15_t)0xc24, (q15_t)0xc1e, (q15_t)0xc18, (q15_t)0xc11, (q15_t)0xc0b, (q15_t)0xc05, (q15_t)0xbff, (q15_t)0xbf8, - (q15_t)0xbf2, (q15_t)0xbec, (q15_t)0xbe6, (q15_t)0xbdf, (q15_t)0xbd9, (q15_t)0xbd3, (q15_t)0xbcd, (q15_t)0xbc6, - (q15_t)0xbc0, (q15_t)0xbba, (q15_t)0xbb4, (q15_t)0xbad, (q15_t)0xba7, (q15_t)0xba1, (q15_t)0xb9b, (q15_t)0xb94, - (q15_t)0xb8e, (q15_t)0xb88, (q15_t)0xb81, (q15_t)0xb7b, (q15_t)0xb75, (q15_t)0xb6f, (q15_t)0xb68, (q15_t)0xb62, - (q15_t)0xb5c, (q15_t)0xb56, (q15_t)0xb4f, (q15_t)0xb49, (q15_t)0xb43, (q15_t)0xb3d, (q15_t)0xb36, (q15_t)0xb30, - (q15_t)0xb2a, (q15_t)0xb24, (q15_t)0xb1d, (q15_t)0xb17, (q15_t)0xb11, (q15_t)0xb0b, (q15_t)0xb04, (q15_t)0xafe, - (q15_t)0xaf8, (q15_t)0xaf2, (q15_t)0xaeb, (q15_t)0xae5, (q15_t)0xadf, (q15_t)0xad8, (q15_t)0xad2, (q15_t)0xacc, - (q15_t)0xac6, (q15_t)0xabf, (q15_t)0xab9, (q15_t)0xab3, (q15_t)0xaad, (q15_t)0xaa6, (q15_t)0xaa0, (q15_t)0xa9a, - (q15_t)0xa94, (q15_t)0xa8d, (q15_t)0xa87, (q15_t)0xa81, (q15_t)0xa7b, (q15_t)0xa74, (q15_t)0xa6e, (q15_t)0xa68, - (q15_t)0xa62, (q15_t)0xa5b, (q15_t)0xa55, (q15_t)0xa4f, (q15_t)0xa48, (q15_t)0xa42, (q15_t)0xa3c, (q15_t)0xa36, - (q15_t)0xa2f, (q15_t)0xa29, (q15_t)0xa23, (q15_t)0xa1d, (q15_t)0xa16, (q15_t)0xa10, (q15_t)0xa0a, (q15_t)0xa04, - (q15_t)0x9fd, (q15_t)0x9f7, (q15_t)0x9f1, (q15_t)0x9eb, (q15_t)0x9e4, (q15_t)0x9de, (q15_t)0x9d8, (q15_t)0x9d1, - (q15_t)0x9cb, (q15_t)0x9c5, (q15_t)0x9bf, (q15_t)0x9b8, (q15_t)0x9b2, (q15_t)0x9ac, (q15_t)0x9a6, (q15_t)0x99f, - (q15_t)0x999, (q15_t)0x993, (q15_t)0x98d, (q15_t)0x986, (q15_t)0x980, (q15_t)0x97a, (q15_t)0x973, (q15_t)0x96d, - (q15_t)0x967, (q15_t)0x961, (q15_t)0x95a, (q15_t)0x954, (q15_t)0x94e, (q15_t)0x948, (q15_t)0x941, (q15_t)0x93b, - (q15_t)0x935, (q15_t)0x92f, (q15_t)0x928, (q15_t)0x922, (q15_t)0x91c, (q15_t)0x915, (q15_t)0x90f, (q15_t)0x909, - (q15_t)0x903, (q15_t)0x8fc, (q15_t)0x8f6, (q15_t)0x8f0, (q15_t)0x8ea, (q15_t)0x8e3, (q15_t)0x8dd, (q15_t)0x8d7, - (q15_t)0x8d1, (q15_t)0x8ca, (q15_t)0x8c4, (q15_t)0x8be, (q15_t)0x8b7, (q15_t)0x8b1, (q15_t)0x8ab, (q15_t)0x8a5, - (q15_t)0x89e, (q15_t)0x898, (q15_t)0x892, (q15_t)0x88c, (q15_t)0x885, (q15_t)0x87f, (q15_t)0x879, (q15_t)0x872, - (q15_t)0x86c, (q15_t)0x866, (q15_t)0x860, (q15_t)0x859, (q15_t)0x853, (q15_t)0x84d, (q15_t)0x847, (q15_t)0x840, - (q15_t)0x83a, (q15_t)0x834, (q15_t)0x82e, (q15_t)0x827, (q15_t)0x821, (q15_t)0x81b, (q15_t)0x814, (q15_t)0x80e, - (q15_t)0x808, (q15_t)0x802, (q15_t)0x7fb, (q15_t)0x7f5, (q15_t)0x7ef, (q15_t)0x7e9, (q15_t)0x7e2, (q15_t)0x7dc, - (q15_t)0x7d6, (q15_t)0x7cf, (q15_t)0x7c9, (q15_t)0x7c3, (q15_t)0x7bd, (q15_t)0x7b6, (q15_t)0x7b0, (q15_t)0x7aa, - (q15_t)0x7a4, (q15_t)0x79d, (q15_t)0x797, (q15_t)0x791, (q15_t)0x78a, (q15_t)0x784, (q15_t)0x77e, (q15_t)0x778, - (q15_t)0x771, (q15_t)0x76b, (q15_t)0x765, (q15_t)0x75f, (q15_t)0x758, (q15_t)0x752, (q15_t)0x74c, (q15_t)0x745, - (q15_t)0x73f, (q15_t)0x739, (q15_t)0x733, (q15_t)0x72c, (q15_t)0x726, (q15_t)0x720, (q15_t)0x71a, (q15_t)0x713, - (q15_t)0x70d, (q15_t)0x707, (q15_t)0x700, (q15_t)0x6fa, (q15_t)0x6f4, (q15_t)0x6ee, (q15_t)0x6e7, (q15_t)0x6e1, - (q15_t)0x6db, (q15_t)0x6d5, (q15_t)0x6ce, (q15_t)0x6c8, (q15_t)0x6c2, (q15_t)0x6bb, (q15_t)0x6b5, (q15_t)0x6af, - (q15_t)0x6a9, (q15_t)0x6a2, (q15_t)0x69c, (q15_t)0x696, (q15_t)0x690, (q15_t)0x689, (q15_t)0x683, (q15_t)0x67d, - (q15_t)0x676, (q15_t)0x670, (q15_t)0x66a, (q15_t)0x664, (q15_t)0x65d, (q15_t)0x657, (q15_t)0x651, (q15_t)0x64a, - (q15_t)0x644, (q15_t)0x63e, (q15_t)0x638, (q15_t)0x631, (q15_t)0x62b, (q15_t)0x625, (q15_t)0x61f, (q15_t)0x618, - (q15_t)0x612, (q15_t)0x60c, (q15_t)0x605, (q15_t)0x5ff, (q15_t)0x5f9, (q15_t)0x5f3, (q15_t)0x5ec, (q15_t)0x5e6, - (q15_t)0x5e0, (q15_t)0x5da, (q15_t)0x5d3, (q15_t)0x5cd, (q15_t)0x5c7, (q15_t)0x5c0, (q15_t)0x5ba, (q15_t)0x5b4, - (q15_t)0x5ae, (q15_t)0x5a7, (q15_t)0x5a1, (q15_t)0x59b, (q15_t)0x594, (q15_t)0x58e, (q15_t)0x588, (q15_t)0x582, - (q15_t)0x57b, (q15_t)0x575, (q15_t)0x56f, (q15_t)0x569, (q15_t)0x562, (q15_t)0x55c, (q15_t)0x556, (q15_t)0x54f, - (q15_t)0x549, (q15_t)0x543, (q15_t)0x53d, (q15_t)0x536, (q15_t)0x530, (q15_t)0x52a, (q15_t)0x523, (q15_t)0x51d, - (q15_t)0x517, (q15_t)0x511, (q15_t)0x50a, (q15_t)0x504, (q15_t)0x4fe, (q15_t)0x4f8, (q15_t)0x4f1, (q15_t)0x4eb, - (q15_t)0x4e5, (q15_t)0x4de, (q15_t)0x4d8, (q15_t)0x4d2, (q15_t)0x4cc, (q15_t)0x4c5, (q15_t)0x4bf, (q15_t)0x4b9, - (q15_t)0x4b2, (q15_t)0x4ac, (q15_t)0x4a6, (q15_t)0x4a0, (q15_t)0x499, (q15_t)0x493, (q15_t)0x48d, (q15_t)0x487, - (q15_t)0x480, (q15_t)0x47a, (q15_t)0x474, (q15_t)0x46d, (q15_t)0x467, (q15_t)0x461, (q15_t)0x45b, (q15_t)0x454, - (q15_t)0x44e, (q15_t)0x448, (q15_t)0x441, (q15_t)0x43b, (q15_t)0x435, (q15_t)0x42f, (q15_t)0x428, (q15_t)0x422, - (q15_t)0x41c, (q15_t)0x415, (q15_t)0x40f, (q15_t)0x409, (q15_t)0x403, (q15_t)0x3fc, (q15_t)0x3f6, (q15_t)0x3f0, - (q15_t)0x3ea, (q15_t)0x3e3, (q15_t)0x3dd, (q15_t)0x3d7, (q15_t)0x3d0, (q15_t)0x3ca, (q15_t)0x3c4, (q15_t)0x3be, - (q15_t)0x3b7, (q15_t)0x3b1, (q15_t)0x3ab, (q15_t)0x3a4, (q15_t)0x39e, (q15_t)0x398, (q15_t)0x392, (q15_t)0x38b, - (q15_t)0x385, (q15_t)0x37f, (q15_t)0x378, (q15_t)0x372, (q15_t)0x36c, (q15_t)0x366, (q15_t)0x35f, (q15_t)0x359, - (q15_t)0x353, (q15_t)0x34c, (q15_t)0x346, (q15_t)0x340, (q15_t)0x33a, (q15_t)0x333, (q15_t)0x32d, (q15_t)0x327, - (q15_t)0x321, (q15_t)0x31a, (q15_t)0x314, (q15_t)0x30e, (q15_t)0x307, (q15_t)0x301, (q15_t)0x2fb, (q15_t)0x2f5, - (q15_t)0x2ee, (q15_t)0x2e8, (q15_t)0x2e2, (q15_t)0x2db, (q15_t)0x2d5, (q15_t)0x2cf, (q15_t)0x2c9, (q15_t)0x2c2, - (q15_t)0x2bc, (q15_t)0x2b6, (q15_t)0x2af, (q15_t)0x2a9, (q15_t)0x2a3, (q15_t)0x29d, (q15_t)0x296, (q15_t)0x290, - (q15_t)0x28a, (q15_t)0x283, (q15_t)0x27d, (q15_t)0x277, (q15_t)0x271, (q15_t)0x26a, (q15_t)0x264, (q15_t)0x25e, - (q15_t)0x258, (q15_t)0x251, (q15_t)0x24b, (q15_t)0x245, (q15_t)0x23e, (q15_t)0x238, (q15_t)0x232, (q15_t)0x22c, - (q15_t)0x225, (q15_t)0x21f, (q15_t)0x219, (q15_t)0x212, (q15_t)0x20c, (q15_t)0x206, (q15_t)0x200, (q15_t)0x1f9, - (q15_t)0x1f3, (q15_t)0x1ed, (q15_t)0x1e6, (q15_t)0x1e0, (q15_t)0x1da, (q15_t)0x1d4, (q15_t)0x1cd, (q15_t)0x1c7, - (q15_t)0x1c1, (q15_t)0x1ba, (q15_t)0x1b4, (q15_t)0x1ae, (q15_t)0x1a8, (q15_t)0x1a1, (q15_t)0x19b, (q15_t)0x195, - (q15_t)0x18e, (q15_t)0x188, (q15_t)0x182, (q15_t)0x17c, (q15_t)0x175, (q15_t)0x16f, (q15_t)0x169, (q15_t)0x162, - (q15_t)0x15c, (q15_t)0x156, (q15_t)0x150, (q15_t)0x149, (q15_t)0x143, (q15_t)0x13d, (q15_t)0x137, (q15_t)0x130, - (q15_t)0x12a, (q15_t)0x124, (q15_t)0x11d, (q15_t)0x117, (q15_t)0x111, (q15_t)0x10b, (q15_t)0x104, (q15_t)0xfe, - (q15_t)0xf8, (q15_t)0xf1, (q15_t)0xeb, (q15_t)0xe5, (q15_t)0xdf, (q15_t)0xd8, (q15_t)0xd2, (q15_t)0xcc, - (q15_t)0xc5, (q15_t)0xbf, (q15_t)0xb9, (q15_t)0xb3, (q15_t)0xac, (q15_t)0xa6, (q15_t)0xa0, (q15_t)0x99, - (q15_t)0x93, (q15_t)0x8d, (q15_t)0x87, (q15_t)0x80, (q15_t)0x7a, (q15_t)0x74, (q15_t)0x6d, (q15_t)0x67, - (q15_t)0x61, (q15_t)0x5b, (q15_t)0x54, (q15_t)0x4e, (q15_t)0x48, (q15_t)0x41, (q15_t)0x3b, (q15_t)0x35, - (q15_t)0x2f, (q15_t)0x28, (q15_t)0x22, (q15_t)0x1c, (q15_t)0x15, (q15_t)0xf, (q15_t)0x9, (q15_t)0x3 -}; - -/** - * @} end of DCT4_IDCT4_Table group - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Initialization function for the Q15 DCT4/IDCT4. - * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure. - * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure. - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Normalizing factors in 1.15 format are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingQ15Table.gif - */ - -arm_status arm_dct4_init_q15( - arm_dct4_instance_q15 * S, - arm_rfft_instance_q15 * S_RFFT, - arm_cfft_radix4_instance_q15 * S_CFFT, - uint16_t N, - uint16_t Nby2, - q15_t normalize) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - q15_t *twiddlePtr[4] = { (q15_t *) WeightsQ15_128, (q15_t *) WeightsQ15_512, - (q15_t *) WeightsQ15_2048, (q15_t *) WeightsQ15_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - q15_t *pCosFactor[4] = - { (q15_t *) cos_factorsQ15_128, (q15_t *) cos_factorsQ15_512, - (q15_t *) cos_factorsQ15_2048, (q15_t *) cos_factorsQ15_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192U: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048U: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512U: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128U: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT */ - arm_rfft_init_q15(S->pRfft, S->N, 0U, 1U); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q31.c deleted file mode 100644 index 8156844..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_init_q31.c +++ /dev/null @@ -1,7686 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_init_q31.c - * Description: Initialization function of DCT-4 & IDCT4 Q31 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup DCT4_IDCT4 - */ - -/** - * @addtogroup DCT4_IDCT4_Table DCT Type IV Tables - * @{ - */ - -/* -* @brief Weights Table -*/ - -/** - * \par - * Weights tables are generated using the formula :
weights[n] = e^(-j*n*pi/(2*N))
- * \par - * C command to generate the table - *
- * for(i = 0; i< N; i++)
- * {
- *   weights[2*i]= cos(i*c);
- *   weights[(2*i)+1]= -sin(i * c);
- * } 
- * \par - * where N is the Number of weights to be calculated and c is pi/(2*N) - * \par - * Convert the output to q31 format by multiplying with 2^31 and saturated if required. - * \par - * In the tables below the real and imaginary values are placed alternatively, hence the - * array length is 2*N. - */ - -static const q31_t WeightsQ31_128[256] = { - (q31_t)0x7fffffff, (q31_t)0x00000000, (q31_t)0x7ffd885a, (q31_t)0xfe6de2e0, (q31_t)0x7ff62182, (q31_t)0xfcdbd541, (q31_t)0x7fe9cbc0, (q31_t)0xfb49e6a3, - (q31_t)0x7fd8878e, (q31_t)0xf9b82684, (q31_t)0x7fc25596, (q31_t)0xf826a462, (q31_t)0x7fa736b4, (q31_t)0xf6956fb7, (q31_t)0x7f872bf3, (q31_t)0xf50497fb, - (q31_t)0x7f62368f, (q31_t)0xf3742ca2, (q31_t)0x7f3857f6, (q31_t)0xf1e43d1c, (q31_t)0x7f0991c4, (q31_t)0xf054d8d5, (q31_t)0x7ed5e5c6, (q31_t)0xeec60f31, - (q31_t)0x7e9d55fc, (q31_t)0xed37ef91, (q31_t)0x7e5fe493, (q31_t)0xebaa894f, (q31_t)0x7e1d93ea, (q31_t)0xea1debbb, (q31_t)0x7dd6668f, (q31_t)0xe8922622, - (q31_t)0x7d8a5f40, (q31_t)0xe70747c4, (q31_t)0x7d3980ec, (q31_t)0xe57d5fda, (q31_t)0x7ce3ceb2, (q31_t)0xe3f47d96, (q31_t)0x7c894bde, (q31_t)0xe26cb01b, - (q31_t)0x7c29fbee, (q31_t)0xe0e60685, (q31_t)0x7bc5e290, (q31_t)0xdf608fe4, (q31_t)0x7b5d039e, (q31_t)0xdddc5b3b, (q31_t)0x7aef6323, (q31_t)0xdc597781, - (q31_t)0x7a7d055b, (q31_t)0xdad7f3a2, (q31_t)0x7a05eead, (q31_t)0xd957de7a, (q31_t)0x798a23b1, (q31_t)0xd7d946d8, (q31_t)0x7909a92d, (q31_t)0xd65c3b7b, - (q31_t)0x78848414, (q31_t)0xd4e0cb15, (q31_t)0x77fab989, (q31_t)0xd3670446, (q31_t)0x776c4edb, (q31_t)0xd1eef59e, (q31_t)0x76d94989, (q31_t)0xd078ad9e, - (q31_t)0x7641af3d, (q31_t)0xcf043ab3, (q31_t)0x75a585cf, (q31_t)0xcd91ab39, (q31_t)0x7504d345, (q31_t)0xcc210d79, (q31_t)0x745f9dd1, (q31_t)0xcab26fa9, - (q31_t)0x73b5ebd1, (q31_t)0xc945dfec, (q31_t)0x7307c3d0, (q31_t)0xc7db6c50, (q31_t)0x72552c85, (q31_t)0xc67322ce, (q31_t)0x719e2cd2, (q31_t)0xc50d1149, - (q31_t)0x70e2cbc6, (q31_t)0xc3a94590, (q31_t)0x7023109a, (q31_t)0xc247cd5a, (q31_t)0x6f5f02b2, (q31_t)0xc0e8b648, (q31_t)0x6e96a99d, (q31_t)0xbf8c0de3, - (q31_t)0x6dca0d14, (q31_t)0xbe31e19b, (q31_t)0x6cf934fc, (q31_t)0xbcda3ecb, (q31_t)0x6c242960, (q31_t)0xbb8532b0, (q31_t)0x6b4af279, (q31_t)0xba32ca71, - (q31_t)0x6a6d98a4, (q31_t)0xb8e31319, (q31_t)0x698c246c, (q31_t)0xb796199b, (q31_t)0x68a69e81, (q31_t)0xb64beacd, (q31_t)0x67bd0fbd, (q31_t)0xb5049368, - (q31_t)0x66cf8120, (q31_t)0xb3c0200c, (q31_t)0x65ddfbd3, (q31_t)0xb27e9d3c, (q31_t)0x64e88926, (q31_t)0xb140175b, (q31_t)0x63ef3290, (q31_t)0xb0049ab3, - (q31_t)0x62f201ac, (q31_t)0xaecc336c, (q31_t)0x61f1003f, (q31_t)0xad96ed92, (q31_t)0x60ec3830, (q31_t)0xac64d510, (q31_t)0x5fe3b38d, (q31_t)0xab35f5b5, - (q31_t)0x5ed77c8a, (q31_t)0xaa0a5b2e, (q31_t)0x5dc79d7c, (q31_t)0xa8e21106, (q31_t)0x5cb420e0, (q31_t)0xa7bd22ac, (q31_t)0x5b9d1154, (q31_t)0xa69b9b68, - (q31_t)0x5a82799a, (q31_t)0xa57d8666, (q31_t)0x59646498, (q31_t)0xa462eeac, (q31_t)0x5842dd54, (q31_t)0xa34bdf20, (q31_t)0x571deefa, (q31_t)0xa2386284, - (q31_t)0x55f5a4d2, (q31_t)0xa1288376, (q31_t)0x54ca0a4b, (q31_t)0xa01c4c73, (q31_t)0x539b2af0, (q31_t)0x9f13c7d0, (q31_t)0x5269126e, (q31_t)0x9e0effc1, - (q31_t)0x5133cc94, (q31_t)0x9d0dfe54, (q31_t)0x4ffb654d, (q31_t)0x9c10cd70, (q31_t)0x4ebfe8a5, (q31_t)0x9b1776da, (q31_t)0x4d8162c4, (q31_t)0x9a22042d, - (q31_t)0x4c3fdff4, (q31_t)0x99307ee0, (q31_t)0x4afb6c98, (q31_t)0x9842f043, (q31_t)0x49b41533, (q31_t)0x9759617f, (q31_t)0x4869e665, (q31_t)0x9673db94, - (q31_t)0x471cece7, (q31_t)0x9592675c, (q31_t)0x45cd358f, (q31_t)0x94b50d87, (q31_t)0x447acd50, (q31_t)0x93dbd6a0, (q31_t)0x4325c135, (q31_t)0x9306cb04, - (q31_t)0x41ce1e65, (q31_t)0x9235f2ec, (q31_t)0x4073f21d, (q31_t)0x91695663, (q31_t)0x3f1749b8, (q31_t)0x90a0fd4e, (q31_t)0x3db832a6, (q31_t)0x8fdcef66, - (q31_t)0x3c56ba70, (q31_t)0x8f1d343a, (q31_t)0x3af2eeb7, (q31_t)0x8e61d32e, (q31_t)0x398cdd32, (q31_t)0x8daad37b, (q31_t)0x382493b0, (q31_t)0x8cf83c30, - (q31_t)0x36ba2014, (q31_t)0x8c4a142f, (q31_t)0x354d9057, (q31_t)0x8ba0622f, (q31_t)0x33def287, (q31_t)0x8afb2cbb, (q31_t)0x326e54c7, (q31_t)0x8a5a7a31, - (q31_t)0x30fbc54d, (q31_t)0x89be50c3, (q31_t)0x2f875262, (q31_t)0x8926b677, (q31_t)0x2e110a62, (q31_t)0x8893b125, (q31_t)0x2c98fbba, (q31_t)0x88054677, - (q31_t)0x2b1f34eb, (q31_t)0x877b7bec, (q31_t)0x29a3c485, (q31_t)0x86f656d3, (q31_t)0x2826b928, (q31_t)0x8675dc4f, (q31_t)0x26a82186, (q31_t)0x85fa1153, - (q31_t)0x25280c5e, (q31_t)0x8582faa5, (q31_t)0x23a6887f, (q31_t)0x85109cdd, (q31_t)0x2223a4c5, (q31_t)0x84a2fc62, (q31_t)0x209f701c, (q31_t)0x843a1d70, - (q31_t)0x1f19f97b, (q31_t)0x83d60412, (q31_t)0x1d934fe5, (q31_t)0x8376b422, (q31_t)0x1c0b826a, (q31_t)0x831c314e, (q31_t)0x1a82a026, (q31_t)0x82c67f14, - (q31_t)0x18f8b83c, (q31_t)0x8275a0c0, (q31_t)0x176dd9de, (q31_t)0x82299971, (q31_t)0x15e21445, (q31_t)0x81e26c16, (q31_t)0x145576b1, (q31_t)0x81a01b6d, - (q31_t)0x12c8106f, (q31_t)0x8162aa04, (q31_t)0x1139f0cf, (q31_t)0x812a1a3a, (q31_t)0xfab272b, (q31_t)0x80f66e3c, (q31_t)0xe1bc2e4, (q31_t)0x80c7a80a, - (q31_t)0xc8bd35e, (q31_t)0x809dc971, (q31_t)0xafb6805, (q31_t)0x8078d40d, (q31_t)0x96a9049, (q31_t)0x8058c94c, (q31_t)0x7d95b9e, (q31_t)0x803daa6a, - (q31_t)0x647d97c, (q31_t)0x80277872, (q31_t)0x4b6195d, (q31_t)0x80163440, (q31_t)0x3242abf, (q31_t)0x8009de7e, (q31_t)0x1921d20, (q31_t)0x800277a6 -}; - -static const q31_t WeightsQ31_512[1024] = { - (q31_t)0x7fffffff, (q31_t)0x00000000, (q31_t)0x7fffd886, (q31_t)0xff9b781d, (q31_t)0x7fff6216, (q31_t)0xff36f078, (q31_t)0x7ffe9cb2, (q31_t)0xfed2694f, - (q31_t)0x7ffd885a, (q31_t)0xfe6de2e0, (q31_t)0x7ffc250f, (q31_t)0xfe095d69, (q31_t)0x7ffa72d1, (q31_t)0xfda4d929, (q31_t)0x7ff871a2, (q31_t)0xfd40565c, - (q31_t)0x7ff62182, (q31_t)0xfcdbd541, (q31_t)0x7ff38274, (q31_t)0xfc775616, (q31_t)0x7ff09478, (q31_t)0xfc12d91a, (q31_t)0x7fed5791, (q31_t)0xfbae5e89, - (q31_t)0x7fe9cbc0, (q31_t)0xfb49e6a3, (q31_t)0x7fe5f108, (q31_t)0xfae571a4, (q31_t)0x7fe1c76b, (q31_t)0xfa80ffcb, (q31_t)0x7fdd4eec, (q31_t)0xfa1c9157, - (q31_t)0x7fd8878e, (q31_t)0xf9b82684, (q31_t)0x7fd37153, (q31_t)0xf953bf91, (q31_t)0x7fce0c3e, (q31_t)0xf8ef5cbb, (q31_t)0x7fc85854, (q31_t)0xf88afe42, - (q31_t)0x7fc25596, (q31_t)0xf826a462, (q31_t)0x7fbc040a, (q31_t)0xf7c24f59, (q31_t)0x7fb563b3, (q31_t)0xf75dff66, (q31_t)0x7fae7495, (q31_t)0xf6f9b4c6, - (q31_t)0x7fa736b4, (q31_t)0xf6956fb7, (q31_t)0x7f9faa15, (q31_t)0xf6313077, (q31_t)0x7f97cebd, (q31_t)0xf5ccf743, (q31_t)0x7f8fa4b0, (q31_t)0xf568c45b, - (q31_t)0x7f872bf3, (q31_t)0xf50497fb, (q31_t)0x7f7e648c, (q31_t)0xf4a07261, (q31_t)0x7f754e80, (q31_t)0xf43c53cb, (q31_t)0x7f6be9d4, (q31_t)0xf3d83c77, - (q31_t)0x7f62368f, (q31_t)0xf3742ca2, (q31_t)0x7f5834b7, (q31_t)0xf310248a, (q31_t)0x7f4de451, (q31_t)0xf2ac246e, (q31_t)0x7f434563, (q31_t)0xf2482c8a, - (q31_t)0x7f3857f6, (q31_t)0xf1e43d1c, (q31_t)0x7f2d1c0e, (q31_t)0xf1805662, (q31_t)0x7f2191b4, (q31_t)0xf11c789a, (q31_t)0x7f15b8ee, (q31_t)0xf0b8a401, - (q31_t)0x7f0991c4, (q31_t)0xf054d8d5, (q31_t)0x7efd1c3c, (q31_t)0xeff11753, (q31_t)0x7ef05860, (q31_t)0xef8d5fb8, (q31_t)0x7ee34636, (q31_t)0xef29b243, - (q31_t)0x7ed5e5c6, (q31_t)0xeec60f31, (q31_t)0x7ec8371a, (q31_t)0xee6276bf, (q31_t)0x7eba3a39, (q31_t)0xedfee92b, (q31_t)0x7eabef2c, (q31_t)0xed9b66b2, - (q31_t)0x7e9d55fc, (q31_t)0xed37ef91, (q31_t)0x7e8e6eb2, (q31_t)0xecd48407, (q31_t)0x7e7f3957, (q31_t)0xec71244f, (q31_t)0x7e6fb5f4, (q31_t)0xec0dd0a8, - (q31_t)0x7e5fe493, (q31_t)0xebaa894f, (q31_t)0x7e4fc53e, (q31_t)0xeb474e81, (q31_t)0x7e3f57ff, (q31_t)0xeae4207a, (q31_t)0x7e2e9cdf, (q31_t)0xea80ff7a, - (q31_t)0x7e1d93ea, (q31_t)0xea1debbb, (q31_t)0x7e0c3d29, (q31_t)0xe9bae57d, (q31_t)0x7dfa98a8, (q31_t)0xe957ecfb, (q31_t)0x7de8a670, (q31_t)0xe8f50273, - (q31_t)0x7dd6668f, (q31_t)0xe8922622, (q31_t)0x7dc3d90d, (q31_t)0xe82f5844, (q31_t)0x7db0fdf8, (q31_t)0xe7cc9917, (q31_t)0x7d9dd55a, (q31_t)0xe769e8d8, - (q31_t)0x7d8a5f40, (q31_t)0xe70747c4, (q31_t)0x7d769bb5, (q31_t)0xe6a4b616, (q31_t)0x7d628ac6, (q31_t)0xe642340d, (q31_t)0x7d4e2c7f, (q31_t)0xe5dfc1e5, - (q31_t)0x7d3980ec, (q31_t)0xe57d5fda, (q31_t)0x7d24881b, (q31_t)0xe51b0e2a, (q31_t)0x7d0f4218, (q31_t)0xe4b8cd11, (q31_t)0x7cf9aef0, (q31_t)0xe4569ccb, - (q31_t)0x7ce3ceb2, (q31_t)0xe3f47d96, (q31_t)0x7ccda169, (q31_t)0xe3926fad, (q31_t)0x7cb72724, (q31_t)0xe330734d, (q31_t)0x7ca05ff1, (q31_t)0xe2ce88b3, - (q31_t)0x7c894bde, (q31_t)0xe26cb01b, (q31_t)0x7c71eaf9, (q31_t)0xe20ae9c1, (q31_t)0x7c5a3d50, (q31_t)0xe1a935e2, (q31_t)0x7c4242f2, (q31_t)0xe14794ba, - (q31_t)0x7c29fbee, (q31_t)0xe0e60685, (q31_t)0x7c116853, (q31_t)0xe0848b7f, (q31_t)0x7bf88830, (q31_t)0xe02323e5, (q31_t)0x7bdf5b94, (q31_t)0xdfc1cff3, - (q31_t)0x7bc5e290, (q31_t)0xdf608fe4, (q31_t)0x7bac1d31, (q31_t)0xdeff63f4, (q31_t)0x7b920b89, (q31_t)0xde9e4c60, (q31_t)0x7b77ada8, (q31_t)0xde3d4964, - (q31_t)0x7b5d039e, (q31_t)0xdddc5b3b, (q31_t)0x7b420d7a, (q31_t)0xdd7b8220, (q31_t)0x7b26cb4f, (q31_t)0xdd1abe51, (q31_t)0x7b0b3d2c, (q31_t)0xdcba1008, - (q31_t)0x7aef6323, (q31_t)0xdc597781, (q31_t)0x7ad33d45, (q31_t)0xdbf8f4f8, (q31_t)0x7ab6cba4, (q31_t)0xdb9888a8, (q31_t)0x7a9a0e50, (q31_t)0xdb3832cd, - (q31_t)0x7a7d055b, (q31_t)0xdad7f3a2, (q31_t)0x7a5fb0d8, (q31_t)0xda77cb63, (q31_t)0x7a4210d8, (q31_t)0xda17ba4a, (q31_t)0x7a24256f, (q31_t)0xd9b7c094, - (q31_t)0x7a05eead, (q31_t)0xd957de7a, (q31_t)0x79e76ca7, (q31_t)0xd8f81439, (q31_t)0x79c89f6e, (q31_t)0xd898620c, (q31_t)0x79a98715, (q31_t)0xd838c82d, - (q31_t)0x798a23b1, (q31_t)0xd7d946d8, (q31_t)0x796a7554, (q31_t)0xd779de47, (q31_t)0x794a7c12, (q31_t)0xd71a8eb5, (q31_t)0x792a37fe, (q31_t)0xd6bb585e, - (q31_t)0x7909a92d, (q31_t)0xd65c3b7b, (q31_t)0x78e8cfb2, (q31_t)0xd5fd3848, (q31_t)0x78c7aba2, (q31_t)0xd59e4eff, (q31_t)0x78a63d11, (q31_t)0xd53f7fda, - (q31_t)0x78848414, (q31_t)0xd4e0cb15, (q31_t)0x786280bf, (q31_t)0xd48230e9, (q31_t)0x78403329, (q31_t)0xd423b191, (q31_t)0x781d9b65, (q31_t)0xd3c54d47, - (q31_t)0x77fab989, (q31_t)0xd3670446, (q31_t)0x77d78daa, (q31_t)0xd308d6c7, (q31_t)0x77b417df, (q31_t)0xd2aac504, (q31_t)0x7790583e, (q31_t)0xd24ccf39, - (q31_t)0x776c4edb, (q31_t)0xd1eef59e, (q31_t)0x7747fbce, (q31_t)0xd191386e, (q31_t)0x77235f2d, (q31_t)0xd13397e2, (q31_t)0x76fe790e, (q31_t)0xd0d61434, - (q31_t)0x76d94989, (q31_t)0xd078ad9e, (q31_t)0x76b3d0b4, (q31_t)0xd01b6459, (q31_t)0x768e0ea6, (q31_t)0xcfbe389f, (q31_t)0x76680376, (q31_t)0xcf612aaa, - (q31_t)0x7641af3d, (q31_t)0xcf043ab3, (q31_t)0x761b1211, (q31_t)0xcea768f2, (q31_t)0x75f42c0b, (q31_t)0xce4ab5a2, (q31_t)0x75ccfd42, (q31_t)0xcdee20fc, - (q31_t)0x75a585cf, (q31_t)0xcd91ab39, (q31_t)0x757dc5ca, (q31_t)0xcd355491, (q31_t)0x7555bd4c, (q31_t)0xccd91d3d, (q31_t)0x752d6c6c, (q31_t)0xcc7d0578, - (q31_t)0x7504d345, (q31_t)0xcc210d79, (q31_t)0x74dbf1ef, (q31_t)0xcbc53579, (q31_t)0x74b2c884, (q31_t)0xcb697db0, (q31_t)0x7489571c, (q31_t)0xcb0de658, - (q31_t)0x745f9dd1, (q31_t)0xcab26fa9, (q31_t)0x74359cbd, (q31_t)0xca5719db, (q31_t)0x740b53fb, (q31_t)0xc9fbe527, (q31_t)0x73e0c3a3, (q31_t)0xc9a0d1c5, - (q31_t)0x73b5ebd1, (q31_t)0xc945dfec, (q31_t)0x738acc9e, (q31_t)0xc8eb0fd6, (q31_t)0x735f6626, (q31_t)0xc89061ba, (q31_t)0x7333b883, (q31_t)0xc835d5d0, - (q31_t)0x7307c3d0, (q31_t)0xc7db6c50, (q31_t)0x72db8828, (q31_t)0xc7812572, (q31_t)0x72af05a7, (q31_t)0xc727016d, (q31_t)0x72823c67, (q31_t)0xc6cd0079, - (q31_t)0x72552c85, (q31_t)0xc67322ce, (q31_t)0x7227d61c, (q31_t)0xc61968a2, (q31_t)0x71fa3949, (q31_t)0xc5bfd22e, (q31_t)0x71cc5626, (q31_t)0xc5665fa9, - (q31_t)0x719e2cd2, (q31_t)0xc50d1149, (q31_t)0x716fbd68, (q31_t)0xc4b3e746, (q31_t)0x71410805, (q31_t)0xc45ae1d7, (q31_t)0x71120cc5, (q31_t)0xc4020133, - (q31_t)0x70e2cbc6, (q31_t)0xc3a94590, (q31_t)0x70b34525, (q31_t)0xc350af26, (q31_t)0x708378ff, (q31_t)0xc2f83e2a, (q31_t)0x70536771, (q31_t)0xc29ff2d4, - (q31_t)0x7023109a, (q31_t)0xc247cd5a, (q31_t)0x6ff27497, (q31_t)0xc1efcdf3, (q31_t)0x6fc19385, (q31_t)0xc197f4d4, (q31_t)0x6f906d84, (q31_t)0xc1404233, - (q31_t)0x6f5f02b2, (q31_t)0xc0e8b648, (q31_t)0x6f2d532c, (q31_t)0xc0915148, (q31_t)0x6efb5f12, (q31_t)0xc03a1368, (q31_t)0x6ec92683, (q31_t)0xbfe2fcdf, - (q31_t)0x6e96a99d, (q31_t)0xbf8c0de3, (q31_t)0x6e63e87f, (q31_t)0xbf3546a8, (q31_t)0x6e30e34a, (q31_t)0xbedea765, (q31_t)0x6dfd9a1c, (q31_t)0xbe88304f, - (q31_t)0x6dca0d14, (q31_t)0xbe31e19b, (q31_t)0x6d963c54, (q31_t)0xbddbbb7f, (q31_t)0x6d6227fa, (q31_t)0xbd85be30, (q31_t)0x6d2dd027, (q31_t)0xbd2fe9e2, - (q31_t)0x6cf934fc, (q31_t)0xbcda3ecb, (q31_t)0x6cc45698, (q31_t)0xbc84bd1f, (q31_t)0x6c8f351c, (q31_t)0xbc2f6513, (q31_t)0x6c59d0a9, (q31_t)0xbbda36dd, - (q31_t)0x6c242960, (q31_t)0xbb8532b0, (q31_t)0x6bee3f62, (q31_t)0xbb3058c0, (q31_t)0x6bb812d1, (q31_t)0xbadba943, (q31_t)0x6b81a3cd, (q31_t)0xba87246d, - (q31_t)0x6b4af279, (q31_t)0xba32ca71, (q31_t)0x6b13fef5, (q31_t)0xb9de9b83, (q31_t)0x6adcc964, (q31_t)0xb98a97d8, (q31_t)0x6aa551e9, (q31_t)0xb936bfa4, - (q31_t)0x6a6d98a4, (q31_t)0xb8e31319, (q31_t)0x6a359db9, (q31_t)0xb88f926d, (q31_t)0x69fd614a, (q31_t)0xb83c3dd1, (q31_t)0x69c4e37a, (q31_t)0xb7e9157a, - (q31_t)0x698c246c, (q31_t)0xb796199b, (q31_t)0x69532442, (q31_t)0xb7434a67, (q31_t)0x6919e320, (q31_t)0xb6f0a812, (q31_t)0x68e06129, (q31_t)0xb69e32cd, - (q31_t)0x68a69e81, (q31_t)0xb64beacd, (q31_t)0x686c9b4b, (q31_t)0xb5f9d043, (q31_t)0x683257ab, (q31_t)0xb5a7e362, (q31_t)0x67f7d3c5, (q31_t)0xb556245e, - (q31_t)0x67bd0fbd, (q31_t)0xb5049368, (q31_t)0x67820bb7, (q31_t)0xb4b330b3, (q31_t)0x6746c7d8, (q31_t)0xb461fc70, (q31_t)0x670b4444, (q31_t)0xb410f6d3, - (q31_t)0x66cf8120, (q31_t)0xb3c0200c, (q31_t)0x66937e91, (q31_t)0xb36f784f, (q31_t)0x66573cbb, (q31_t)0xb31effcc, (q31_t)0x661abbc5, (q31_t)0xb2ceb6b5, - (q31_t)0x65ddfbd3, (q31_t)0xb27e9d3c, (q31_t)0x65a0fd0b, (q31_t)0xb22eb392, (q31_t)0x6563bf92, (q31_t)0xb1def9e9, (q31_t)0x6526438f, (q31_t)0xb18f7071, - (q31_t)0x64e88926, (q31_t)0xb140175b, (q31_t)0x64aa907f, (q31_t)0xb0f0eeda, (q31_t)0x646c59bf, (q31_t)0xb0a1f71d, (q31_t)0x642de50d, (q31_t)0xb0533055, - (q31_t)0x63ef3290, (q31_t)0xb0049ab3, (q31_t)0x63b0426d, (q31_t)0xafb63667, (q31_t)0x637114cc, (q31_t)0xaf6803a2, (q31_t)0x6331a9d4, (q31_t)0xaf1a0293, - (q31_t)0x62f201ac, (q31_t)0xaecc336c, (q31_t)0x62b21c7b, (q31_t)0xae7e965b, (q31_t)0x6271fa69, (q31_t)0xae312b92, (q31_t)0x62319b9d, (q31_t)0xade3f33e, - (q31_t)0x61f1003f, (q31_t)0xad96ed92, (q31_t)0x61b02876, (q31_t)0xad4a1aba, (q31_t)0x616f146c, (q31_t)0xacfd7ae8, (q31_t)0x612dc447, (q31_t)0xacb10e4b, - (q31_t)0x60ec3830, (q31_t)0xac64d510, (q31_t)0x60aa7050, (q31_t)0xac18cf69, (q31_t)0x60686ccf, (q31_t)0xabccfd83, (q31_t)0x60262dd6, (q31_t)0xab815f8d, - (q31_t)0x5fe3b38d, (q31_t)0xab35f5b5, (q31_t)0x5fa0fe1f, (q31_t)0xaaeac02c, (q31_t)0x5f5e0db3, (q31_t)0xaa9fbf1e, (q31_t)0x5f1ae274, (q31_t)0xaa54f2ba, - (q31_t)0x5ed77c8a, (q31_t)0xaa0a5b2e, (q31_t)0x5e93dc1f, (q31_t)0xa9bff8a8, (q31_t)0x5e50015d, (q31_t)0xa975cb57, (q31_t)0x5e0bec6e, (q31_t)0xa92bd367, - (q31_t)0x5dc79d7c, (q31_t)0xa8e21106, (q31_t)0x5d8314b1, (q31_t)0xa8988463, (q31_t)0x5d3e5237, (q31_t)0xa84f2daa, (q31_t)0x5cf95638, (q31_t)0xa8060d08, - (q31_t)0x5cb420e0, (q31_t)0xa7bd22ac, (q31_t)0x5c6eb258, (q31_t)0xa7746ec0, (q31_t)0x5c290acc, (q31_t)0xa72bf174, (q31_t)0x5be32a67, (q31_t)0xa6e3aaf2, - (q31_t)0x5b9d1154, (q31_t)0xa69b9b68, (q31_t)0x5b56bfbd, (q31_t)0xa653c303, (q31_t)0x5b1035cf, (q31_t)0xa60c21ee, (q31_t)0x5ac973b5, (q31_t)0xa5c4b855, - (q31_t)0x5a82799a, (q31_t)0xa57d8666, (q31_t)0x5a3b47ab, (q31_t)0xa5368c4b, (q31_t)0x59f3de12, (q31_t)0xa4efca31, (q31_t)0x59ac3cfd, (q31_t)0xa4a94043, - (q31_t)0x59646498, (q31_t)0xa462eeac, (q31_t)0x591c550e, (q31_t)0xa41cd599, (q31_t)0x58d40e8c, (q31_t)0xa3d6f534, (q31_t)0x588b9140, (q31_t)0xa3914da8, - (q31_t)0x5842dd54, (q31_t)0xa34bdf20, (q31_t)0x57f9f2f8, (q31_t)0xa306a9c8, (q31_t)0x57b0d256, (q31_t)0xa2c1adc9, (q31_t)0x57677b9d, (q31_t)0xa27ceb4f, - (q31_t)0x571deefa, (q31_t)0xa2386284, (q31_t)0x56d42c99, (q31_t)0xa1f41392, (q31_t)0x568a34a9, (q31_t)0xa1affea3, (q31_t)0x56400758, (q31_t)0xa16c23e1, - (q31_t)0x55f5a4d2, (q31_t)0xa1288376, (q31_t)0x55ab0d46, (q31_t)0xa0e51d8c, (q31_t)0x556040e2, (q31_t)0xa0a1f24d, (q31_t)0x55153fd4, (q31_t)0xa05f01e1, - (q31_t)0x54ca0a4b, (q31_t)0xa01c4c73, (q31_t)0x547ea073, (q31_t)0x9fd9d22a, (q31_t)0x5433027d, (q31_t)0x9f979331, (q31_t)0x53e73097, (q31_t)0x9f558fb0, - (q31_t)0x539b2af0, (q31_t)0x9f13c7d0, (q31_t)0x534ef1b5, (q31_t)0x9ed23bb9, (q31_t)0x53028518, (q31_t)0x9e90eb94, (q31_t)0x52b5e546, (q31_t)0x9e4fd78a, - (q31_t)0x5269126e, (q31_t)0x9e0effc1, (q31_t)0x521c0cc2, (q31_t)0x9dce6463, (q31_t)0x51ced46e, (q31_t)0x9d8e0597, (q31_t)0x518169a5, (q31_t)0x9d4de385, - (q31_t)0x5133cc94, (q31_t)0x9d0dfe54, (q31_t)0x50e5fd6d, (q31_t)0x9cce562c, (q31_t)0x5097fc5e, (q31_t)0x9c8eeb34, (q31_t)0x5049c999, (q31_t)0x9c4fbd93, - (q31_t)0x4ffb654d, (q31_t)0x9c10cd70, (q31_t)0x4faccfab, (q31_t)0x9bd21af3, (q31_t)0x4f5e08e3, (q31_t)0x9b93a641, (q31_t)0x4f0f1126, (q31_t)0x9b556f81, - (q31_t)0x4ebfe8a5, (q31_t)0x9b1776da, (q31_t)0x4e708f8f, (q31_t)0x9ad9bc71, (q31_t)0x4e210617, (q31_t)0x9a9c406e, (q31_t)0x4dd14c6e, (q31_t)0x9a5f02f5, - (q31_t)0x4d8162c4, (q31_t)0x9a22042d, (q31_t)0x4d31494b, (q31_t)0x99e5443b, (q31_t)0x4ce10034, (q31_t)0x99a8c345, (q31_t)0x4c9087b1, (q31_t)0x996c816f, - (q31_t)0x4c3fdff4, (q31_t)0x99307ee0, (q31_t)0x4bef092d, (q31_t)0x98f4bbbc, (q31_t)0x4b9e0390, (q31_t)0x98b93828, (q31_t)0x4b4ccf4d, (q31_t)0x987df449, - (q31_t)0x4afb6c98, (q31_t)0x9842f043, (q31_t)0x4aa9dba2, (q31_t)0x98082c3b, (q31_t)0x4a581c9e, (q31_t)0x97cda855, (q31_t)0x4a062fbd, (q31_t)0x979364b5, - (q31_t)0x49b41533, (q31_t)0x9759617f, (q31_t)0x4961cd33, (q31_t)0x971f9ed7, (q31_t)0x490f57ee, (q31_t)0x96e61ce0, (q31_t)0x48bcb599, (q31_t)0x96acdbbe, - (q31_t)0x4869e665, (q31_t)0x9673db94, (q31_t)0x4816ea86, (q31_t)0x963b1c86, (q31_t)0x47c3c22f, (q31_t)0x96029eb6, (q31_t)0x47706d93, (q31_t)0x95ca6247, - (q31_t)0x471cece7, (q31_t)0x9592675c, (q31_t)0x46c9405c, (q31_t)0x955aae17, (q31_t)0x46756828, (q31_t)0x9523369c, (q31_t)0x4621647d, (q31_t)0x94ec010b, - (q31_t)0x45cd358f, (q31_t)0x94b50d87, (q31_t)0x4578db93, (q31_t)0x947e5c33, (q31_t)0x452456bd, (q31_t)0x9447ed2f, (q31_t)0x44cfa740, (q31_t)0x9411c09e, - (q31_t)0x447acd50, (q31_t)0x93dbd6a0, (q31_t)0x4425c923, (q31_t)0x93a62f57, (q31_t)0x43d09aed, (q31_t)0x9370cae4, (q31_t)0x437b42e1, (q31_t)0x933ba968, - (q31_t)0x4325c135, (q31_t)0x9306cb04, (q31_t)0x42d0161e, (q31_t)0x92d22fd9, (q31_t)0x427a41d0, (q31_t)0x929dd806, (q31_t)0x42244481, (q31_t)0x9269c3ac, - (q31_t)0x41ce1e65, (q31_t)0x9235f2ec, (q31_t)0x4177cfb1, (q31_t)0x920265e4, (q31_t)0x4121589b, (q31_t)0x91cf1cb6, (q31_t)0x40cab958, (q31_t)0x919c1781, - (q31_t)0x4073f21d, (q31_t)0x91695663, (q31_t)0x401d0321, (q31_t)0x9136d97d, (q31_t)0x3fc5ec98, (q31_t)0x9104a0ee, (q31_t)0x3f6eaeb8, (q31_t)0x90d2acd4, - (q31_t)0x3f1749b8, (q31_t)0x90a0fd4e, (q31_t)0x3ebfbdcd, (q31_t)0x906f927c, (q31_t)0x3e680b2c, (q31_t)0x903e6c7b, (q31_t)0x3e10320d, (q31_t)0x900d8b69, - (q31_t)0x3db832a6, (q31_t)0x8fdcef66, (q31_t)0x3d600d2c, (q31_t)0x8fac988f, (q31_t)0x3d07c1d6, (q31_t)0x8f7c8701, (q31_t)0x3caf50da, (q31_t)0x8f4cbadb, - (q31_t)0x3c56ba70, (q31_t)0x8f1d343a, (q31_t)0x3bfdfecd, (q31_t)0x8eedf33b, (q31_t)0x3ba51e29, (q31_t)0x8ebef7fb, (q31_t)0x3b4c18ba, (q31_t)0x8e904298, - (q31_t)0x3af2eeb7, (q31_t)0x8e61d32e, (q31_t)0x3a99a057, (q31_t)0x8e33a9da, (q31_t)0x3a402dd2, (q31_t)0x8e05c6b7, (q31_t)0x39e6975e, (q31_t)0x8dd829e4, - (q31_t)0x398cdd32, (q31_t)0x8daad37b, (q31_t)0x3932ff87, (q31_t)0x8d7dc399, (q31_t)0x38d8fe93, (q31_t)0x8d50fa59, (q31_t)0x387eda8e, (q31_t)0x8d2477d8, - (q31_t)0x382493b0, (q31_t)0x8cf83c30, (q31_t)0x37ca2a30, (q31_t)0x8ccc477d, (q31_t)0x376f9e46, (q31_t)0x8ca099da, (q31_t)0x3714f02a, (q31_t)0x8c753362, - (q31_t)0x36ba2014, (q31_t)0x8c4a142f, (q31_t)0x365f2e3b, (q31_t)0x8c1f3c5d, (q31_t)0x36041ad9, (q31_t)0x8bf4ac05, (q31_t)0x35a8e625, (q31_t)0x8bca6343, - (q31_t)0x354d9057, (q31_t)0x8ba0622f, (q31_t)0x34f219a8, (q31_t)0x8b76a8e4, (q31_t)0x34968250, (q31_t)0x8b4d377c, (q31_t)0x343aca87, (q31_t)0x8b240e11, - (q31_t)0x33def287, (q31_t)0x8afb2cbb, (q31_t)0x3382fa88, (q31_t)0x8ad29394, (q31_t)0x3326e2c3, (q31_t)0x8aaa42b4, (q31_t)0x32caab6f, (q31_t)0x8a823a36, - (q31_t)0x326e54c7, (q31_t)0x8a5a7a31, (q31_t)0x3211df04, (q31_t)0x8a3302be, (q31_t)0x31b54a5e, (q31_t)0x8a0bd3f5, (q31_t)0x3158970e, (q31_t)0x89e4edef, - (q31_t)0x30fbc54d, (q31_t)0x89be50c3, (q31_t)0x309ed556, (q31_t)0x8997fc8a, (q31_t)0x3041c761, (q31_t)0x8971f15a, (q31_t)0x2fe49ba7, (q31_t)0x894c2f4c, - (q31_t)0x2f875262, (q31_t)0x8926b677, (q31_t)0x2f29ebcc, (q31_t)0x890186f2, (q31_t)0x2ecc681e, (q31_t)0x88dca0d3, (q31_t)0x2e6ec792, (q31_t)0x88b80432, - (q31_t)0x2e110a62, (q31_t)0x8893b125, (q31_t)0x2db330c7, (q31_t)0x886fa7c2, (q31_t)0x2d553afc, (q31_t)0x884be821, (q31_t)0x2cf72939, (q31_t)0x88287256, - (q31_t)0x2c98fbba, (q31_t)0x88054677, (q31_t)0x2c3ab2b9, (q31_t)0x87e2649b, (q31_t)0x2bdc4e6f, (q31_t)0x87bfccd7, (q31_t)0x2b7dcf17, (q31_t)0x879d7f41, - (q31_t)0x2b1f34eb, (q31_t)0x877b7bec, (q31_t)0x2ac08026, (q31_t)0x8759c2ef, (q31_t)0x2a61b101, (q31_t)0x8738545e, (q31_t)0x2a02c7b8, (q31_t)0x8717304e, - (q31_t)0x29a3c485, (q31_t)0x86f656d3, (q31_t)0x2944a7a2, (q31_t)0x86d5c802, (q31_t)0x28e5714b, (q31_t)0x86b583ee, (q31_t)0x288621b9, (q31_t)0x86958aac, - (q31_t)0x2826b928, (q31_t)0x8675dc4f, (q31_t)0x27c737d3, (q31_t)0x865678eb, (q31_t)0x27679df4, (q31_t)0x86376092, (q31_t)0x2707ebc7, (q31_t)0x86189359, - (q31_t)0x26a82186, (q31_t)0x85fa1153, (q31_t)0x26483f6c, (q31_t)0x85dbda91, (q31_t)0x25e845b6, (q31_t)0x85bdef28, (q31_t)0x2588349d, (q31_t)0x85a04f28, - (q31_t)0x25280c5e, (q31_t)0x8582faa5, (q31_t)0x24c7cd33, (q31_t)0x8565f1b0, (q31_t)0x24677758, (q31_t)0x8549345c, (q31_t)0x24070b08, (q31_t)0x852cc2bb, - (q31_t)0x23a6887f, (q31_t)0x85109cdd, (q31_t)0x2345eff8, (q31_t)0x84f4c2d4, (q31_t)0x22e541af, (q31_t)0x84d934b1, (q31_t)0x22847de0, (q31_t)0x84bdf286, - (q31_t)0x2223a4c5, (q31_t)0x84a2fc62, (q31_t)0x21c2b69c, (q31_t)0x84885258, (q31_t)0x2161b3a0, (q31_t)0x846df477, (q31_t)0x21009c0c, (q31_t)0x8453e2cf, - (q31_t)0x209f701c, (q31_t)0x843a1d70, (q31_t)0x203e300d, (q31_t)0x8420a46c, (q31_t)0x1fdcdc1b, (q31_t)0x840777d0, (q31_t)0x1f7b7481, (q31_t)0x83ee97ad, - (q31_t)0x1f19f97b, (q31_t)0x83d60412, (q31_t)0x1eb86b46, (q31_t)0x83bdbd0e, (q31_t)0x1e56ca1e, (q31_t)0x83a5c2b0, (q31_t)0x1df5163f, (q31_t)0x838e1507, - (q31_t)0x1d934fe5, (q31_t)0x8376b422, (q31_t)0x1d31774d, (q31_t)0x835fa00f, (q31_t)0x1ccf8cb3, (q31_t)0x8348d8dc, (q31_t)0x1c6d9053, (q31_t)0x83325e97, - (q31_t)0x1c0b826a, (q31_t)0x831c314e, (q31_t)0x1ba96335, (q31_t)0x83065110, (q31_t)0x1b4732ef, (q31_t)0x82f0bde8, (q31_t)0x1ae4f1d6, (q31_t)0x82db77e5, - (q31_t)0x1a82a026, (q31_t)0x82c67f14, (q31_t)0x1a203e1b, (q31_t)0x82b1d381, (q31_t)0x19bdcbf3, (q31_t)0x829d753a, (q31_t)0x195b49ea, (q31_t)0x8289644b, - (q31_t)0x18f8b83c, (q31_t)0x8275a0c0, (q31_t)0x18961728, (q31_t)0x82622aa6, (q31_t)0x183366e9, (q31_t)0x824f0208, (q31_t)0x17d0a7bc, (q31_t)0x823c26f3, - (q31_t)0x176dd9de, (q31_t)0x82299971, (q31_t)0x170afd8d, (q31_t)0x82175990, (q31_t)0x16a81305, (q31_t)0x82056758, (q31_t)0x16451a83, (q31_t)0x81f3c2d7, - (q31_t)0x15e21445, (q31_t)0x81e26c16, (q31_t)0x157f0086, (q31_t)0x81d16321, (q31_t)0x151bdf86, (q31_t)0x81c0a801, (q31_t)0x14b8b17f, (q31_t)0x81b03ac2, - (q31_t)0x145576b1, (q31_t)0x81a01b6d, (q31_t)0x13f22f58, (q31_t)0x81904a0c, (q31_t)0x138edbb1, (q31_t)0x8180c6a9, (q31_t)0x132b7bf9, (q31_t)0x8171914e, - (q31_t)0x12c8106f, (q31_t)0x8162aa04, (q31_t)0x1264994e, (q31_t)0x815410d4, (q31_t)0x120116d5, (q31_t)0x8145c5c7, (q31_t)0x119d8941, (q31_t)0x8137c8e6, - (q31_t)0x1139f0cf, (q31_t)0x812a1a3a, (q31_t)0x10d64dbd, (q31_t)0x811cb9ca, (q31_t)0x1072a048, (q31_t)0x810fa7a0, (q31_t)0x100ee8ad, (q31_t)0x8102e3c4, - (q31_t)0xfab272b, (q31_t)0x80f66e3c, (q31_t)0xf475bff, (q31_t)0x80ea4712, (q31_t)0xee38766, (q31_t)0x80de6e4c, (q31_t)0xe7fa99e, (q31_t)0x80d2e3f2, - (q31_t)0xe1bc2e4, (q31_t)0x80c7a80a, (q31_t)0xdb7d376, (q31_t)0x80bcba9d, (q31_t)0xd53db92, (q31_t)0x80b21baf, (q31_t)0xcefdb76, (q31_t)0x80a7cb49, - (q31_t)0xc8bd35e, (q31_t)0x809dc971, (q31_t)0xc27c389, (q31_t)0x8094162c, (q31_t)0xbc3ac35, (q31_t)0x808ab180, (q31_t)0xb5f8d9f, (q31_t)0x80819b74, - (q31_t)0xafb6805, (q31_t)0x8078d40d, (q31_t)0xa973ba5, (q31_t)0x80705b50, (q31_t)0xa3308bd, (q31_t)0x80683143, (q31_t)0x9cecf89, (q31_t)0x806055eb, - (q31_t)0x96a9049, (q31_t)0x8058c94c, (q31_t)0x9064b3a, (q31_t)0x80518b6b, (q31_t)0x8a2009a, (q31_t)0x804a9c4d, (q31_t)0x83db0a7, (q31_t)0x8043fbf6, - (q31_t)0x7d95b9e, (q31_t)0x803daa6a, (q31_t)0x77501be, (q31_t)0x8037a7ac, (q31_t)0x710a345, (q31_t)0x8031f3c2, (q31_t)0x6ac406f, (q31_t)0x802c8ead, - (q31_t)0x647d97c, (q31_t)0x80277872, (q31_t)0x5e36ea9, (q31_t)0x8022b114, (q31_t)0x57f0035, (q31_t)0x801e3895, (q31_t)0x51a8e5c, (q31_t)0x801a0ef8, - (q31_t)0x4b6195d, (q31_t)0x80163440, (q31_t)0x451a177, (q31_t)0x8012a86f, (q31_t)0x3ed26e6, (q31_t)0x800f6b88, (q31_t)0x388a9ea, (q31_t)0x800c7d8c, - (q31_t)0x3242abf, (q31_t)0x8009de7e, (q31_t)0x2bfa9a4, (q31_t)0x80078e5e, (q31_t)0x25b26d7, (q31_t)0x80058d2f, (q31_t)0x1f6a297, (q31_t)0x8003daf1, - (q31_t)0x1921d20, (q31_t)0x800277a6, (q31_t)0x12d96b1, (q31_t)0x8001634e, (q31_t)0xc90f88, (q31_t)0x80009dea, (q31_t)0x6487e3, (q31_t)0x8000277a -}; - -static const q31_t WeightsQ31_2048[4096] = { - (q31_t)0x7fffffff, (q31_t)0x00000000, (q31_t)0x7ffffd88, (q31_t)0xffe6de05, (q31_t)0x7ffff621, (q31_t)0xffcdbc0b, (q31_t)0x7fffe9cb, (q31_t)0xffb49a12, - (q31_t)0x7fffd886, (q31_t)0xff9b781d, (q31_t)0x7fffc251, (q31_t)0xff82562c, (q31_t)0x7fffa72c, (q31_t)0xff69343f, (q31_t)0x7fff8719, (q31_t)0xff501258, - (q31_t)0x7fff6216, (q31_t)0xff36f078, (q31_t)0x7fff3824, (q31_t)0xff1dcea0, (q31_t)0x7fff0943, (q31_t)0xff04acd0, (q31_t)0x7ffed572, (q31_t)0xfeeb8b0a, - (q31_t)0x7ffe9cb2, (q31_t)0xfed2694f, (q31_t)0x7ffe5f03, (q31_t)0xfeb947a0, (q31_t)0x7ffe1c65, (q31_t)0xfea025fd, (q31_t)0x7ffdd4d7, (q31_t)0xfe870467, - (q31_t)0x7ffd885a, (q31_t)0xfe6de2e0, (q31_t)0x7ffd36ee, (q31_t)0xfe54c169, (q31_t)0x7ffce093, (q31_t)0xfe3ba002, (q31_t)0x7ffc8549, (q31_t)0xfe227eac, - (q31_t)0x7ffc250f, (q31_t)0xfe095d69, (q31_t)0x7ffbbfe6, (q31_t)0xfdf03c3a, (q31_t)0x7ffb55ce, (q31_t)0xfdd71b1e, (q31_t)0x7ffae6c7, (q31_t)0xfdbdfa18, - (q31_t)0x7ffa72d1, (q31_t)0xfda4d929, (q31_t)0x7ff9f9ec, (q31_t)0xfd8bb850, (q31_t)0x7ff97c18, (q31_t)0xfd729790, (q31_t)0x7ff8f954, (q31_t)0xfd5976e9, - (q31_t)0x7ff871a2, (q31_t)0xfd40565c, (q31_t)0x7ff7e500, (q31_t)0xfd2735ea, (q31_t)0x7ff75370, (q31_t)0xfd0e1594, (q31_t)0x7ff6bcf0, (q31_t)0xfcf4f55c, - (q31_t)0x7ff62182, (q31_t)0xfcdbd541, (q31_t)0x7ff58125, (q31_t)0xfcc2b545, (q31_t)0x7ff4dbd9, (q31_t)0xfca9956a, (q31_t)0x7ff4319d, (q31_t)0xfc9075af, - (q31_t)0x7ff38274, (q31_t)0xfc775616, (q31_t)0x7ff2ce5b, (q31_t)0xfc5e36a0, (q31_t)0x7ff21553, (q31_t)0xfc45174e, (q31_t)0x7ff1575d, (q31_t)0xfc2bf821, - (q31_t)0x7ff09478, (q31_t)0xfc12d91a, (q31_t)0x7fefcca4, (q31_t)0xfbf9ba39, (q31_t)0x7feeffe1, (q31_t)0xfbe09b80, (q31_t)0x7fee2e30, (q31_t)0xfbc77cf0, - (q31_t)0x7fed5791, (q31_t)0xfbae5e89, (q31_t)0x7fec7c02, (q31_t)0xfb95404d, (q31_t)0x7feb9b85, (q31_t)0xfb7c223d, (q31_t)0x7feab61a, (q31_t)0xfb630459, - (q31_t)0x7fe9cbc0, (q31_t)0xfb49e6a3, (q31_t)0x7fe8dc78, (q31_t)0xfb30c91b, (q31_t)0x7fe7e841, (q31_t)0xfb17abc2, (q31_t)0x7fe6ef1c, (q31_t)0xfafe8e9b, - (q31_t)0x7fe5f108, (q31_t)0xfae571a4, (q31_t)0x7fe4ee06, (q31_t)0xfacc54e0, (q31_t)0x7fe3e616, (q31_t)0xfab3384f, (q31_t)0x7fe2d938, (q31_t)0xfa9a1bf3, - (q31_t)0x7fe1c76b, (q31_t)0xfa80ffcb, (q31_t)0x7fe0b0b1, (q31_t)0xfa67e3da, (q31_t)0x7fdf9508, (q31_t)0xfa4ec821, (q31_t)0x7fde7471, (q31_t)0xfa35ac9f, - (q31_t)0x7fdd4eec, (q31_t)0xfa1c9157, (q31_t)0x7fdc247a, (q31_t)0xfa037648, (q31_t)0x7fdaf519, (q31_t)0xf9ea5b75, (q31_t)0x7fd9c0ca, (q31_t)0xf9d140de, - (q31_t)0x7fd8878e, (q31_t)0xf9b82684, (q31_t)0x7fd74964, (q31_t)0xf99f0c68, (q31_t)0x7fd6064c, (q31_t)0xf985f28a, (q31_t)0x7fd4be46, (q31_t)0xf96cd8ed, - (q31_t)0x7fd37153, (q31_t)0xf953bf91, (q31_t)0x7fd21f72, (q31_t)0xf93aa676, (q31_t)0x7fd0c8a3, (q31_t)0xf9218d9e, (q31_t)0x7fcf6ce8, (q31_t)0xf908750a, - (q31_t)0x7fce0c3e, (q31_t)0xf8ef5cbb, (q31_t)0x7fcca6a7, (q31_t)0xf8d644b2, (q31_t)0x7fcb3c23, (q31_t)0xf8bd2cef, (q31_t)0x7fc9ccb2, (q31_t)0xf8a41574, - (q31_t)0x7fc85854, (q31_t)0xf88afe42, (q31_t)0x7fc6df08, (q31_t)0xf871e759, (q31_t)0x7fc560cf, (q31_t)0xf858d0bb, (q31_t)0x7fc3dda9, (q31_t)0xf83fba68, - (q31_t)0x7fc25596, (q31_t)0xf826a462, (q31_t)0x7fc0c896, (q31_t)0xf80d8ea9, (q31_t)0x7fbf36aa, (q31_t)0xf7f4793e, (q31_t)0x7fbd9fd0, (q31_t)0xf7db6423, - (q31_t)0x7fbc040a, (q31_t)0xf7c24f59, (q31_t)0x7fba6357, (q31_t)0xf7a93ae0, (q31_t)0x7fb8bdb8, (q31_t)0xf79026b9, (q31_t)0x7fb7132b, (q31_t)0xf77712e5, - (q31_t)0x7fb563b3, (q31_t)0xf75dff66, (q31_t)0x7fb3af4e, (q31_t)0xf744ec3b, (q31_t)0x7fb1f5fc, (q31_t)0xf72bd967, (q31_t)0x7fb037bf, (q31_t)0xf712c6ea, - (q31_t)0x7fae7495, (q31_t)0xf6f9b4c6, (q31_t)0x7facac7f, (q31_t)0xf6e0a2fa, (q31_t)0x7faadf7c, (q31_t)0xf6c79188, (q31_t)0x7fa90d8e, (q31_t)0xf6ae8071, - (q31_t)0x7fa736b4, (q31_t)0xf6956fb7, (q31_t)0x7fa55aee, (q31_t)0xf67c5f59, (q31_t)0x7fa37a3c, (q31_t)0xf6634f59, (q31_t)0x7fa1949e, (q31_t)0xf64a3fb8, - (q31_t)0x7f9faa15, (q31_t)0xf6313077, (q31_t)0x7f9dbaa0, (q31_t)0xf6182196, (q31_t)0x7f9bc640, (q31_t)0xf5ff1318, (q31_t)0x7f99ccf4, (q31_t)0xf5e604fc, - (q31_t)0x7f97cebd, (q31_t)0xf5ccf743, (q31_t)0x7f95cb9a, (q31_t)0xf5b3e9f0, (q31_t)0x7f93c38c, (q31_t)0xf59add02, (q31_t)0x7f91b694, (q31_t)0xf581d07b, - (q31_t)0x7f8fa4b0, (q31_t)0xf568c45b, (q31_t)0x7f8d8de1, (q31_t)0xf54fb8a4, (q31_t)0x7f8b7227, (q31_t)0xf536ad56, (q31_t)0x7f895182, (q31_t)0xf51da273, - (q31_t)0x7f872bf3, (q31_t)0xf50497fb, (q31_t)0x7f850179, (q31_t)0xf4eb8def, (q31_t)0x7f82d214, (q31_t)0xf4d28451, (q31_t)0x7f809dc5, (q31_t)0xf4b97b21, - (q31_t)0x7f7e648c, (q31_t)0xf4a07261, (q31_t)0x7f7c2668, (q31_t)0xf4876a10, (q31_t)0x7f79e35a, (q31_t)0xf46e6231, (q31_t)0x7f779b62, (q31_t)0xf4555ac5, - (q31_t)0x7f754e80, (q31_t)0xf43c53cb, (q31_t)0x7f72fcb4, (q31_t)0xf4234d45, (q31_t)0x7f70a5fe, (q31_t)0xf40a4735, (q31_t)0x7f6e4a5e, (q31_t)0xf3f1419a, - (q31_t)0x7f6be9d4, (q31_t)0xf3d83c77, (q31_t)0x7f698461, (q31_t)0xf3bf37cb, (q31_t)0x7f671a05, (q31_t)0xf3a63398, (q31_t)0x7f64aabf, (q31_t)0xf38d2fe0, - (q31_t)0x7f62368f, (q31_t)0xf3742ca2, (q31_t)0x7f5fbd77, (q31_t)0xf35b29e0, (q31_t)0x7f5d3f75, (q31_t)0xf342279b, (q31_t)0x7f5abc8a, (q31_t)0xf32925d3, - (q31_t)0x7f5834b7, (q31_t)0xf310248a, (q31_t)0x7f55a7fa, (q31_t)0xf2f723c1, (q31_t)0x7f531655, (q31_t)0xf2de2379, (q31_t)0x7f507fc7, (q31_t)0xf2c523b2, - (q31_t)0x7f4de451, (q31_t)0xf2ac246e, (q31_t)0x7f4b43f2, (q31_t)0xf29325ad, (q31_t)0x7f489eaa, (q31_t)0xf27a2771, (q31_t)0x7f45f47b, (q31_t)0xf26129ba, - (q31_t)0x7f434563, (q31_t)0xf2482c8a, (q31_t)0x7f409164, (q31_t)0xf22f2fe1, (q31_t)0x7f3dd87c, (q31_t)0xf21633c0, (q31_t)0x7f3b1aad, (q31_t)0xf1fd3829, - (q31_t)0x7f3857f6, (q31_t)0xf1e43d1c, (q31_t)0x7f359057, (q31_t)0xf1cb429a, (q31_t)0x7f32c3d1, (q31_t)0xf1b248a5, (q31_t)0x7f2ff263, (q31_t)0xf1994f3d, - (q31_t)0x7f2d1c0e, (q31_t)0xf1805662, (q31_t)0x7f2a40d2, (q31_t)0xf1675e17, (q31_t)0x7f2760af, (q31_t)0xf14e665c, (q31_t)0x7f247ba5, (q31_t)0xf1356f32, - (q31_t)0x7f2191b4, (q31_t)0xf11c789a, (q31_t)0x7f1ea2dc, (q31_t)0xf1038295, (q31_t)0x7f1baf1e, (q31_t)0xf0ea8d24, (q31_t)0x7f18b679, (q31_t)0xf0d19848, - (q31_t)0x7f15b8ee, (q31_t)0xf0b8a401, (q31_t)0x7f12b67c, (q31_t)0xf09fb051, (q31_t)0x7f0faf25, (q31_t)0xf086bd39, (q31_t)0x7f0ca2e7, (q31_t)0xf06dcaba, - (q31_t)0x7f0991c4, (q31_t)0xf054d8d5, (q31_t)0x7f067bba, (q31_t)0xf03be78a, (q31_t)0x7f0360cb, (q31_t)0xf022f6da, (q31_t)0x7f0040f6, (q31_t)0xf00a06c8, - (q31_t)0x7efd1c3c, (q31_t)0xeff11753, (q31_t)0x7ef9f29d, (q31_t)0xefd8287c, (q31_t)0x7ef6c418, (q31_t)0xefbf3a45, (q31_t)0x7ef390ae, (q31_t)0xefa64cae, - (q31_t)0x7ef05860, (q31_t)0xef8d5fb8, (q31_t)0x7eed1b2c, (q31_t)0xef747365, (q31_t)0x7ee9d914, (q31_t)0xef5b87b5, (q31_t)0x7ee69217, (q31_t)0xef429caa, - (q31_t)0x7ee34636, (q31_t)0xef29b243, (q31_t)0x7edff570, (q31_t)0xef10c883, (q31_t)0x7edc9fc6, (q31_t)0xeef7df6a, (q31_t)0x7ed94538, (q31_t)0xeedef6f9, - (q31_t)0x7ed5e5c6, (q31_t)0xeec60f31, (q31_t)0x7ed28171, (q31_t)0xeead2813, (q31_t)0x7ecf1837, (q31_t)0xee9441a0, (q31_t)0x7ecbaa1a, (q31_t)0xee7b5bd9, - (q31_t)0x7ec8371a, (q31_t)0xee6276bf, (q31_t)0x7ec4bf36, (q31_t)0xee499253, (q31_t)0x7ec14270, (q31_t)0xee30ae96, (q31_t)0x7ebdc0c6, (q31_t)0xee17cb88, - (q31_t)0x7eba3a39, (q31_t)0xedfee92b, (q31_t)0x7eb6aeca, (q31_t)0xede60780, (q31_t)0x7eb31e78, (q31_t)0xedcd2687, (q31_t)0x7eaf8943, (q31_t)0xedb44642, - (q31_t)0x7eabef2c, (q31_t)0xed9b66b2, (q31_t)0x7ea85033, (q31_t)0xed8287d7, (q31_t)0x7ea4ac58, (q31_t)0xed69a9b3, (q31_t)0x7ea1039b, (q31_t)0xed50cc46, - (q31_t)0x7e9d55fc, (q31_t)0xed37ef91, (q31_t)0x7e99a37c, (q31_t)0xed1f1396, (q31_t)0x7e95ec1a, (q31_t)0xed063856, (q31_t)0x7e922fd6, (q31_t)0xeced5dd0, - (q31_t)0x7e8e6eb2, (q31_t)0xecd48407, (q31_t)0x7e8aa8ac, (q31_t)0xecbbaafb, (q31_t)0x7e86ddc6, (q31_t)0xeca2d2ad, (q31_t)0x7e830dff, (q31_t)0xec89fb1e, - (q31_t)0x7e7f3957, (q31_t)0xec71244f, (q31_t)0x7e7b5fce, (q31_t)0xec584e41, (q31_t)0x7e778166, (q31_t)0xec3f78f6, (q31_t)0x7e739e1d, (q31_t)0xec26a46d, - (q31_t)0x7e6fb5f4, (q31_t)0xec0dd0a8, (q31_t)0x7e6bc8eb, (q31_t)0xebf4fda8, (q31_t)0x7e67d703, (q31_t)0xebdc2b6e, (q31_t)0x7e63e03b, (q31_t)0xebc359fb, - (q31_t)0x7e5fe493, (q31_t)0xebaa894f, (q31_t)0x7e5be40c, (q31_t)0xeb91b96c, (q31_t)0x7e57dea7, (q31_t)0xeb78ea52, (q31_t)0x7e53d462, (q31_t)0xeb601c04, - (q31_t)0x7e4fc53e, (q31_t)0xeb474e81, (q31_t)0x7e4bb13c, (q31_t)0xeb2e81ca, (q31_t)0x7e47985b, (q31_t)0xeb15b5e1, (q31_t)0x7e437a9c, (q31_t)0xeafceac6, - (q31_t)0x7e3f57ff, (q31_t)0xeae4207a, (q31_t)0x7e3b3083, (q31_t)0xeacb56ff, (q31_t)0x7e37042a, (q31_t)0xeab28e56, (q31_t)0x7e32d2f4, (q31_t)0xea99c67e, - (q31_t)0x7e2e9cdf, (q31_t)0xea80ff7a, (q31_t)0x7e2a61ed, (q31_t)0xea683949, (q31_t)0x7e26221f, (q31_t)0xea4f73ee, (q31_t)0x7e21dd73, (q31_t)0xea36af69, - (q31_t)0x7e1d93ea, (q31_t)0xea1debbb, (q31_t)0x7e194584, (q31_t)0xea0528e5, (q31_t)0x7e14f242, (q31_t)0xe9ec66e8, (q31_t)0x7e109a24, (q31_t)0xe9d3a5c5, - (q31_t)0x7e0c3d29, (q31_t)0xe9bae57d, (q31_t)0x7e07db52, (q31_t)0xe9a22610, (q31_t)0x7e0374a0, (q31_t)0xe9896781, (q31_t)0x7dff0911, (q31_t)0xe970a9ce, - (q31_t)0x7dfa98a8, (q31_t)0xe957ecfb, (q31_t)0x7df62362, (q31_t)0xe93f3107, (q31_t)0x7df1a942, (q31_t)0xe92675f4, (q31_t)0x7ded2a47, (q31_t)0xe90dbbc2, - (q31_t)0x7de8a670, (q31_t)0xe8f50273, (q31_t)0x7de41dc0, (q31_t)0xe8dc4a07, (q31_t)0x7ddf9034, (q31_t)0xe8c39280, (q31_t)0x7ddafdce, (q31_t)0xe8aadbde, - (q31_t)0x7dd6668f, (q31_t)0xe8922622, (q31_t)0x7dd1ca75, (q31_t)0xe879714d, (q31_t)0x7dcd2981, (q31_t)0xe860bd61, (q31_t)0x7dc883b4, (q31_t)0xe8480a5d, - (q31_t)0x7dc3d90d, (q31_t)0xe82f5844, (q31_t)0x7dbf298d, (q31_t)0xe816a716, (q31_t)0x7dba7534, (q31_t)0xe7fdf6d4, (q31_t)0x7db5bc02, (q31_t)0xe7e5477f, - (q31_t)0x7db0fdf8, (q31_t)0xe7cc9917, (q31_t)0x7dac3b15, (q31_t)0xe7b3eb9f, (q31_t)0x7da77359, (q31_t)0xe79b3f16, (q31_t)0x7da2a6c6, (q31_t)0xe782937e, - (q31_t)0x7d9dd55a, (q31_t)0xe769e8d8, (q31_t)0x7d98ff17, (q31_t)0xe7513f25, (q31_t)0x7d9423fc, (q31_t)0xe7389665, (q31_t)0x7d8f4409, (q31_t)0xe71fee99, - (q31_t)0x7d8a5f40, (q31_t)0xe70747c4, (q31_t)0x7d85759f, (q31_t)0xe6eea1e4, (q31_t)0x7d808728, (q31_t)0xe6d5fcfc, (q31_t)0x7d7b93da, (q31_t)0xe6bd590d, - (q31_t)0x7d769bb5, (q31_t)0xe6a4b616, (q31_t)0x7d719eba, (q31_t)0xe68c141a, (q31_t)0x7d6c9ce9, (q31_t)0xe6737319, (q31_t)0x7d679642, (q31_t)0xe65ad315, - (q31_t)0x7d628ac6, (q31_t)0xe642340d, (q31_t)0x7d5d7a74, (q31_t)0xe6299604, (q31_t)0x7d58654d, (q31_t)0xe610f8f9, (q31_t)0x7d534b50, (q31_t)0xe5f85cef, - (q31_t)0x7d4e2c7f, (q31_t)0xe5dfc1e5, (q31_t)0x7d4908d9, (q31_t)0xe5c727dd, (q31_t)0x7d43e05e, (q31_t)0xe5ae8ed8, (q31_t)0x7d3eb30f, (q31_t)0xe595f6d7, - (q31_t)0x7d3980ec, (q31_t)0xe57d5fda, (q31_t)0x7d3449f5, (q31_t)0xe564c9e3, (q31_t)0x7d2f0e2b, (q31_t)0xe54c34f3, (q31_t)0x7d29cd8c, (q31_t)0xe533a10a, - (q31_t)0x7d24881b, (q31_t)0xe51b0e2a, (q31_t)0x7d1f3dd6, (q31_t)0xe5027c53, (q31_t)0x7d19eebf, (q31_t)0xe4e9eb87, (q31_t)0x7d149ad5, (q31_t)0xe4d15bc6, - (q31_t)0x7d0f4218, (q31_t)0xe4b8cd11, (q31_t)0x7d09e489, (q31_t)0xe4a03f69, (q31_t)0x7d048228, (q31_t)0xe487b2d0, (q31_t)0x7cff1af5, (q31_t)0xe46f2745, - (q31_t)0x7cf9aef0, (q31_t)0xe4569ccb, (q31_t)0x7cf43e1a, (q31_t)0xe43e1362, (q31_t)0x7ceec873, (q31_t)0xe4258b0a, (q31_t)0x7ce94dfb, (q31_t)0xe40d03c6, - (q31_t)0x7ce3ceb2, (q31_t)0xe3f47d96, (q31_t)0x7cde4a98, (q31_t)0xe3dbf87a, (q31_t)0x7cd8c1ae, (q31_t)0xe3c37474, (q31_t)0x7cd333f3, (q31_t)0xe3aaf184, - (q31_t)0x7ccda169, (q31_t)0xe3926fad, (q31_t)0x7cc80a0f, (q31_t)0xe379eeed, (q31_t)0x7cc26de5, (q31_t)0xe3616f48, (q31_t)0x7cbcccec, (q31_t)0xe348f0bd, - (q31_t)0x7cb72724, (q31_t)0xe330734d, (q31_t)0x7cb17c8d, (q31_t)0xe317f6fa, (q31_t)0x7cabcd28, (q31_t)0xe2ff7bc3, (q31_t)0x7ca618f3, (q31_t)0xe2e701ac, - (q31_t)0x7ca05ff1, (q31_t)0xe2ce88b3, (q31_t)0x7c9aa221, (q31_t)0xe2b610da, (q31_t)0x7c94df83, (q31_t)0xe29d9a23, (q31_t)0x7c8f1817, (q31_t)0xe285248d, - (q31_t)0x7c894bde, (q31_t)0xe26cb01b, (q31_t)0x7c837ad8, (q31_t)0xe2543ccc, (q31_t)0x7c7da505, (q31_t)0xe23bcaa2, (q31_t)0x7c77ca65, (q31_t)0xe223599e, - (q31_t)0x7c71eaf9, (q31_t)0xe20ae9c1, (q31_t)0x7c6c06c0, (q31_t)0xe1f27b0b, (q31_t)0x7c661dbc, (q31_t)0xe1da0d7e, (q31_t)0x7c602fec, (q31_t)0xe1c1a11b, - (q31_t)0x7c5a3d50, (q31_t)0xe1a935e2, (q31_t)0x7c5445e9, (q31_t)0xe190cbd4, (q31_t)0x7c4e49b7, (q31_t)0xe17862f3, (q31_t)0x7c4848ba, (q31_t)0xe15ffb3f, - (q31_t)0x7c4242f2, (q31_t)0xe14794ba, (q31_t)0x7c3c3860, (q31_t)0xe12f2f63, (q31_t)0x7c362904, (q31_t)0xe116cb3d, (q31_t)0x7c3014de, (q31_t)0xe0fe6848, - (q31_t)0x7c29fbee, (q31_t)0xe0e60685, (q31_t)0x7c23de35, (q31_t)0xe0cda5f5, (q31_t)0x7c1dbbb3, (q31_t)0xe0b54698, (q31_t)0x7c179467, (q31_t)0xe09ce871, - (q31_t)0x7c116853, (q31_t)0xe0848b7f, (q31_t)0x7c0b3777, (q31_t)0xe06c2fc4, (q31_t)0x7c0501d2, (q31_t)0xe053d541, (q31_t)0x7bfec765, (q31_t)0xe03b7bf6, - (q31_t)0x7bf88830, (q31_t)0xe02323e5, (q31_t)0x7bf24434, (q31_t)0xe00acd0e, (q31_t)0x7bebfb70, (q31_t)0xdff27773, (q31_t)0x7be5ade6, (q31_t)0xdfda2314, - (q31_t)0x7bdf5b94, (q31_t)0xdfc1cff3, (q31_t)0x7bd9047c, (q31_t)0xdfa97e0f, (q31_t)0x7bd2a89e, (q31_t)0xdf912d6b, (q31_t)0x7bcc47fa, (q31_t)0xdf78de07, - (q31_t)0x7bc5e290, (q31_t)0xdf608fe4, (q31_t)0x7bbf7860, (q31_t)0xdf484302, (q31_t)0x7bb9096b, (q31_t)0xdf2ff764, (q31_t)0x7bb295b0, (q31_t)0xdf17ad0a, - (q31_t)0x7bac1d31, (q31_t)0xdeff63f4, (q31_t)0x7ba59fee, (q31_t)0xdee71c24, (q31_t)0x7b9f1de6, (q31_t)0xdeced59b, (q31_t)0x7b989719, (q31_t)0xdeb69059, - (q31_t)0x7b920b89, (q31_t)0xde9e4c60, (q31_t)0x7b8b7b36, (q31_t)0xde8609b1, (q31_t)0x7b84e61f, (q31_t)0xde6dc84b, (q31_t)0x7b7e4c45, (q31_t)0xde558831, - (q31_t)0x7b77ada8, (q31_t)0xde3d4964, (q31_t)0x7b710a49, (q31_t)0xde250be3, (q31_t)0x7b6a6227, (q31_t)0xde0ccfb1, (q31_t)0x7b63b543, (q31_t)0xddf494ce, - (q31_t)0x7b5d039e, (q31_t)0xdddc5b3b, (q31_t)0x7b564d36, (q31_t)0xddc422f8, (q31_t)0x7b4f920e, (q31_t)0xddabec08, (q31_t)0x7b48d225, (q31_t)0xdd93b66a, - (q31_t)0x7b420d7a, (q31_t)0xdd7b8220, (q31_t)0x7b3b4410, (q31_t)0xdd634f2b, (q31_t)0x7b3475e5, (q31_t)0xdd4b1d8c, (q31_t)0x7b2da2fa, (q31_t)0xdd32ed43, - (q31_t)0x7b26cb4f, (q31_t)0xdd1abe51, (q31_t)0x7b1feee5, (q31_t)0xdd0290b8, (q31_t)0x7b190dbc, (q31_t)0xdcea6478, (q31_t)0x7b1227d3, (q31_t)0xdcd23993, - (q31_t)0x7b0b3d2c, (q31_t)0xdcba1008, (q31_t)0x7b044dc7, (q31_t)0xdca1e7da, (q31_t)0x7afd59a4, (q31_t)0xdc89c109, (q31_t)0x7af660c2, (q31_t)0xdc719b96, - (q31_t)0x7aef6323, (q31_t)0xdc597781, (q31_t)0x7ae860c7, (q31_t)0xdc4154cd, (q31_t)0x7ae159ae, (q31_t)0xdc293379, (q31_t)0x7ada4dd8, (q31_t)0xdc111388, - (q31_t)0x7ad33d45, (q31_t)0xdbf8f4f8, (q31_t)0x7acc27f7, (q31_t)0xdbe0d7cd, (q31_t)0x7ac50dec, (q31_t)0xdbc8bc06, (q31_t)0x7abdef25, (q31_t)0xdbb0a1a4, - (q31_t)0x7ab6cba4, (q31_t)0xdb9888a8, (q31_t)0x7aafa367, (q31_t)0xdb807114, (q31_t)0x7aa8766f, (q31_t)0xdb685ae9, (q31_t)0x7aa144bc, (q31_t)0xdb504626, - (q31_t)0x7a9a0e50, (q31_t)0xdb3832cd, (q31_t)0x7a92d329, (q31_t)0xdb2020e0, (q31_t)0x7a8b9348, (q31_t)0xdb08105e, (q31_t)0x7a844eae, (q31_t)0xdaf00149, - (q31_t)0x7a7d055b, (q31_t)0xdad7f3a2, (q31_t)0x7a75b74f, (q31_t)0xdabfe76a, (q31_t)0x7a6e648a, (q31_t)0xdaa7dca1, (q31_t)0x7a670d0d, (q31_t)0xda8fd349, - (q31_t)0x7a5fb0d8, (q31_t)0xda77cb63, (q31_t)0x7a584feb, (q31_t)0xda5fc4ef, (q31_t)0x7a50ea47, (q31_t)0xda47bfee, (q31_t)0x7a497feb, (q31_t)0xda2fbc61, - (q31_t)0x7a4210d8, (q31_t)0xda17ba4a, (q31_t)0x7a3a9d0f, (q31_t)0xd9ffb9a9, (q31_t)0x7a332490, (q31_t)0xd9e7ba7f, (q31_t)0x7a2ba75a, (q31_t)0xd9cfbccd, - (q31_t)0x7a24256f, (q31_t)0xd9b7c094, (q31_t)0x7a1c9ece, (q31_t)0xd99fc5d4, (q31_t)0x7a151378, (q31_t)0xd987cc90, (q31_t)0x7a0d836d, (q31_t)0xd96fd4c7, - (q31_t)0x7a05eead, (q31_t)0xd957de7a, (q31_t)0x79fe5539, (q31_t)0xd93fe9ab, (q31_t)0x79f6b711, (q31_t)0xd927f65b, (q31_t)0x79ef1436, (q31_t)0xd910048a, - (q31_t)0x79e76ca7, (q31_t)0xd8f81439, (q31_t)0x79dfc064, (q31_t)0xd8e0256a, (q31_t)0x79d80f6f, (q31_t)0xd8c8381d, (q31_t)0x79d059c8, (q31_t)0xd8b04c52, - (q31_t)0x79c89f6e, (q31_t)0xd898620c, (q31_t)0x79c0e062, (q31_t)0xd880794b, (q31_t)0x79b91ca4, (q31_t)0xd868920f, (q31_t)0x79b15435, (q31_t)0xd850ac5a, - (q31_t)0x79a98715, (q31_t)0xd838c82d, (q31_t)0x79a1b545, (q31_t)0xd820e589, (q31_t)0x7999dec4, (q31_t)0xd809046e, (q31_t)0x79920392, (q31_t)0xd7f124dd, - (q31_t)0x798a23b1, (q31_t)0xd7d946d8, (q31_t)0x79823f20, (q31_t)0xd7c16a5f, (q31_t)0x797a55e0, (q31_t)0xd7a98f73, (q31_t)0x797267f2, (q31_t)0xd791b616, - (q31_t)0x796a7554, (q31_t)0xd779de47, (q31_t)0x79627e08, (q31_t)0xd7620808, (q31_t)0x795a820e, (q31_t)0xd74a335b, (q31_t)0x79528167, (q31_t)0xd732603f, - (q31_t)0x794a7c12, (q31_t)0xd71a8eb5, (q31_t)0x79427210, (q31_t)0xd702bec0, (q31_t)0x793a6361, (q31_t)0xd6eaf05f, (q31_t)0x79325006, (q31_t)0xd6d32393, - (q31_t)0x792a37fe, (q31_t)0xd6bb585e, (q31_t)0x79221b4b, (q31_t)0xd6a38ec0, (q31_t)0x7919f9ec, (q31_t)0xd68bc6ba, (q31_t)0x7911d3e2, (q31_t)0xd674004e, - (q31_t)0x7909a92d, (q31_t)0xd65c3b7b, (q31_t)0x790179cd, (q31_t)0xd6447844, (q31_t)0x78f945c3, (q31_t)0xd62cb6a8, (q31_t)0x78f10d0f, (q31_t)0xd614f6a9, - (q31_t)0x78e8cfb2, (q31_t)0xd5fd3848, (q31_t)0x78e08dab, (q31_t)0xd5e57b85, (q31_t)0x78d846fb, (q31_t)0xd5cdc062, (q31_t)0x78cffba3, (q31_t)0xd5b606e0, - (q31_t)0x78c7aba2, (q31_t)0xd59e4eff, (q31_t)0x78bf56f9, (q31_t)0xd58698c0, (q31_t)0x78b6fda8, (q31_t)0xd56ee424, (q31_t)0x78ae9fb0, (q31_t)0xd557312d, - (q31_t)0x78a63d11, (q31_t)0xd53f7fda, (q31_t)0x789dd5cb, (q31_t)0xd527d02e, (q31_t)0x789569df, (q31_t)0xd5102228, (q31_t)0x788cf94c, (q31_t)0xd4f875ca, - (q31_t)0x78848414, (q31_t)0xd4e0cb15, (q31_t)0x787c0a36, (q31_t)0xd4c92209, (q31_t)0x78738bb3, (q31_t)0xd4b17aa8, (q31_t)0x786b088c, (q31_t)0xd499d4f2, - (q31_t)0x786280bf, (q31_t)0xd48230e9, (q31_t)0x7859f44f, (q31_t)0xd46a8e8d, (q31_t)0x7851633b, (q31_t)0xd452eddf, (q31_t)0x7848cd83, (q31_t)0xd43b4ee0, - (q31_t)0x78403329, (q31_t)0xd423b191, (q31_t)0x7837942b, (q31_t)0xd40c15f3, (q31_t)0x782ef08b, (q31_t)0xd3f47c06, (q31_t)0x78264849, (q31_t)0xd3dce3cd, - (q31_t)0x781d9b65, (q31_t)0xd3c54d47, (q31_t)0x7814e9df, (q31_t)0xd3adb876, (q31_t)0x780c33b8, (q31_t)0xd396255a, (q31_t)0x780378f1, (q31_t)0xd37e93f4, - (q31_t)0x77fab989, (q31_t)0xd3670446, (q31_t)0x77f1f581, (q31_t)0xd34f764f, (q31_t)0x77e92cd9, (q31_t)0xd337ea12, (q31_t)0x77e05f91, (q31_t)0xd3205f8f, - (q31_t)0x77d78daa, (q31_t)0xd308d6c7, (q31_t)0x77ceb725, (q31_t)0xd2f14fba, (q31_t)0x77c5dc01, (q31_t)0xd2d9ca6a, (q31_t)0x77bcfc3f, (q31_t)0xd2c246d8, - (q31_t)0x77b417df, (q31_t)0xd2aac504, (q31_t)0x77ab2ee2, (q31_t)0xd29344f0, (q31_t)0x77a24148, (q31_t)0xd27bc69c, (q31_t)0x77994f11, (q31_t)0xd2644a0a, - (q31_t)0x7790583e, (q31_t)0xd24ccf39, (q31_t)0x77875cce, (q31_t)0xd235562b, (q31_t)0x777e5cc3, (q31_t)0xd21ddee2, (q31_t)0x7775581d, (q31_t)0xd206695d, - (q31_t)0x776c4edb, (q31_t)0xd1eef59e, (q31_t)0x776340ff, (q31_t)0xd1d783a6, (q31_t)0x775a2e89, (q31_t)0xd1c01375, (q31_t)0x77511778, (q31_t)0xd1a8a50d, - (q31_t)0x7747fbce, (q31_t)0xd191386e, (q31_t)0x773edb8b, (q31_t)0xd179cd99, (q31_t)0x7735b6af, (q31_t)0xd1626490, (q31_t)0x772c8d3a, (q31_t)0xd14afd52, - (q31_t)0x77235f2d, (q31_t)0xd13397e2, (q31_t)0x771a2c88, (q31_t)0xd11c343f, (q31_t)0x7710f54c, (q31_t)0xd104d26b, (q31_t)0x7707b979, (q31_t)0xd0ed7267, - (q31_t)0x76fe790e, (q31_t)0xd0d61434, (q31_t)0x76f5340e, (q31_t)0xd0beb7d2, (q31_t)0x76ebea77, (q31_t)0xd0a75d42, (q31_t)0x76e29c4b, (q31_t)0xd0900486, - (q31_t)0x76d94989, (q31_t)0xd078ad9e, (q31_t)0x76cff232, (q31_t)0xd061588b, (q31_t)0x76c69647, (q31_t)0xd04a054e, (q31_t)0x76bd35c7, (q31_t)0xd032b3e7, - (q31_t)0x76b3d0b4, (q31_t)0xd01b6459, (q31_t)0x76aa670d, (q31_t)0xd00416a3, (q31_t)0x76a0f8d2, (q31_t)0xcfeccac7, (q31_t)0x76978605, (q31_t)0xcfd580c6, - (q31_t)0x768e0ea6, (q31_t)0xcfbe389f, (q31_t)0x768492b4, (q31_t)0xcfa6f255, (q31_t)0x767b1231, (q31_t)0xcf8fade9, (q31_t)0x76718d1c, (q31_t)0xcf786b5a, - (q31_t)0x76680376, (q31_t)0xcf612aaa, (q31_t)0x765e7540, (q31_t)0xcf49ebda, (q31_t)0x7654e279, (q31_t)0xcf32aeeb, (q31_t)0x764b4b23, (q31_t)0xcf1b73de, - (q31_t)0x7641af3d, (q31_t)0xcf043ab3, (q31_t)0x76380ec8, (q31_t)0xceed036b, (q31_t)0x762e69c4, (q31_t)0xced5ce08, (q31_t)0x7624c031, (q31_t)0xcebe9a8a, - (q31_t)0x761b1211, (q31_t)0xcea768f2, (q31_t)0x76115f63, (q31_t)0xce903942, (q31_t)0x7607a828, (q31_t)0xce790b79, (q31_t)0x75fdec60, (q31_t)0xce61df99, - (q31_t)0x75f42c0b, (q31_t)0xce4ab5a2, (q31_t)0x75ea672a, (q31_t)0xce338d97, (q31_t)0x75e09dbd, (q31_t)0xce1c6777, (q31_t)0x75d6cfc5, (q31_t)0xce054343, - (q31_t)0x75ccfd42, (q31_t)0xcdee20fc, (q31_t)0x75c32634, (q31_t)0xcdd700a4, (q31_t)0x75b94a9c, (q31_t)0xcdbfe23a, (q31_t)0x75af6a7b, (q31_t)0xcda8c5c1, - (q31_t)0x75a585cf, (q31_t)0xcd91ab39, (q31_t)0x759b9c9b, (q31_t)0xcd7a92a2, (q31_t)0x7591aedd, (q31_t)0xcd637bfe, (q31_t)0x7587bc98, (q31_t)0xcd4c674d, - (q31_t)0x757dc5ca, (q31_t)0xcd355491, (q31_t)0x7573ca75, (q31_t)0xcd1e43ca, (q31_t)0x7569ca99, (q31_t)0xcd0734f9, (q31_t)0x755fc635, (q31_t)0xccf0281f, - (q31_t)0x7555bd4c, (q31_t)0xccd91d3d, (q31_t)0x754bafdc, (q31_t)0xccc21455, (q31_t)0x75419de7, (q31_t)0xccab0d65, (q31_t)0x7537876c, (q31_t)0xcc940871, - (q31_t)0x752d6c6c, (q31_t)0xcc7d0578, (q31_t)0x75234ce8, (q31_t)0xcc66047b, (q31_t)0x751928e0, (q31_t)0xcc4f057c, (q31_t)0x750f0054, (q31_t)0xcc38087b, - (q31_t)0x7504d345, (q31_t)0xcc210d79, (q31_t)0x74faa1b3, (q31_t)0xcc0a1477, (q31_t)0x74f06b9e, (q31_t)0xcbf31d75, (q31_t)0x74e63108, (q31_t)0xcbdc2876, - (q31_t)0x74dbf1ef, (q31_t)0xcbc53579, (q31_t)0x74d1ae55, (q31_t)0xcbae447f, (q31_t)0x74c7663a, (q31_t)0xcb97558a, (q31_t)0x74bd199f, (q31_t)0xcb80689a, - (q31_t)0x74b2c884, (q31_t)0xcb697db0, (q31_t)0x74a872e8, (q31_t)0xcb5294ce, (q31_t)0x749e18cd, (q31_t)0xcb3badf3, (q31_t)0x7493ba34, (q31_t)0xcb24c921, - (q31_t)0x7489571c, (q31_t)0xcb0de658, (q31_t)0x747eef85, (q31_t)0xcaf7059a, (q31_t)0x74748371, (q31_t)0xcae026e8, (q31_t)0x746a12df, (q31_t)0xcac94a42, - (q31_t)0x745f9dd1, (q31_t)0xcab26fa9, (q31_t)0x74552446, (q31_t)0xca9b971e, (q31_t)0x744aa63f, (q31_t)0xca84c0a3, (q31_t)0x744023bc, (q31_t)0xca6dec37, - (q31_t)0x74359cbd, (q31_t)0xca5719db, (q31_t)0x742b1144, (q31_t)0xca404992, (q31_t)0x74208150, (q31_t)0xca297b5a, (q31_t)0x7415ece2, (q31_t)0xca12af37, - (q31_t)0x740b53fb, (q31_t)0xc9fbe527, (q31_t)0x7400b69a, (q31_t)0xc9e51d2d, (q31_t)0x73f614c0, (q31_t)0xc9ce5748, (q31_t)0x73eb6e6e, (q31_t)0xc9b7937a, - (q31_t)0x73e0c3a3, (q31_t)0xc9a0d1c5, (q31_t)0x73d61461, (q31_t)0xc98a1227, (q31_t)0x73cb60a8, (q31_t)0xc97354a4, (q31_t)0x73c0a878, (q31_t)0xc95c993a, - (q31_t)0x73b5ebd1, (q31_t)0xc945dfec, (q31_t)0x73ab2ab4, (q31_t)0xc92f28ba, (q31_t)0x73a06522, (q31_t)0xc91873a5, (q31_t)0x73959b1b, (q31_t)0xc901c0ae, - (q31_t)0x738acc9e, (q31_t)0xc8eb0fd6, (q31_t)0x737ff9ae, (q31_t)0xc8d4611d, (q31_t)0x73752249, (q31_t)0xc8bdb485, (q31_t)0x736a4671, (q31_t)0xc8a70a0e, - (q31_t)0x735f6626, (q31_t)0xc89061ba, (q31_t)0x73548168, (q31_t)0xc879bb89, (q31_t)0x73499838, (q31_t)0xc863177b, (q31_t)0x733eaa96, (q31_t)0xc84c7593, - (q31_t)0x7333b883, (q31_t)0xc835d5d0, (q31_t)0x7328c1ff, (q31_t)0xc81f3834, (q31_t)0x731dc70a, (q31_t)0xc8089cbf, (q31_t)0x7312c7a5, (q31_t)0xc7f20373, - (q31_t)0x7307c3d0, (q31_t)0xc7db6c50, (q31_t)0x72fcbb8c, (q31_t)0xc7c4d757, (q31_t)0x72f1aed9, (q31_t)0xc7ae4489, (q31_t)0x72e69db7, (q31_t)0xc797b3e7, - (q31_t)0x72db8828, (q31_t)0xc7812572, (q31_t)0x72d06e2b, (q31_t)0xc76a992a, (q31_t)0x72c54fc1, (q31_t)0xc7540f11, (q31_t)0x72ba2cea, (q31_t)0xc73d8727, - (q31_t)0x72af05a7, (q31_t)0xc727016d, (q31_t)0x72a3d9f7, (q31_t)0xc7107de4, (q31_t)0x7298a9dd, (q31_t)0xc6f9fc8d, (q31_t)0x728d7557, (q31_t)0xc6e37d69, - (q31_t)0x72823c67, (q31_t)0xc6cd0079, (q31_t)0x7276ff0d, (q31_t)0xc6b685bd, (q31_t)0x726bbd48, (q31_t)0xc6a00d37, (q31_t)0x7260771b, (q31_t)0xc68996e7, - (q31_t)0x72552c85, (q31_t)0xc67322ce, (q31_t)0x7249dd86, (q31_t)0xc65cb0ed, (q31_t)0x723e8a20, (q31_t)0xc6464144, (q31_t)0x72333251, (q31_t)0xc62fd3d6, - (q31_t)0x7227d61c, (q31_t)0xc61968a2, (q31_t)0x721c7580, (q31_t)0xc602ffaa, (q31_t)0x7211107e, (q31_t)0xc5ec98ee, (q31_t)0x7205a716, (q31_t)0xc5d6346f, - (q31_t)0x71fa3949, (q31_t)0xc5bfd22e, (q31_t)0x71eec716, (q31_t)0xc5a9722c, (q31_t)0x71e35080, (q31_t)0xc593146a, (q31_t)0x71d7d585, (q31_t)0xc57cb8e9, - (q31_t)0x71cc5626, (q31_t)0xc5665fa9, (q31_t)0x71c0d265, (q31_t)0xc55008ab, (q31_t)0x71b54a41, (q31_t)0xc539b3f1, (q31_t)0x71a9bdba, (q31_t)0xc523617a, - (q31_t)0x719e2cd2, (q31_t)0xc50d1149, (q31_t)0x71929789, (q31_t)0xc4f6c35d, (q31_t)0x7186fdde, (q31_t)0xc4e077b8, (q31_t)0x717b5fd3, (q31_t)0xc4ca2e5b, - (q31_t)0x716fbd68, (q31_t)0xc4b3e746, (q31_t)0x7164169d, (q31_t)0xc49da27a, (q31_t)0x71586b74, (q31_t)0xc4875ff9, (q31_t)0x714cbbeb, (q31_t)0xc4711fc2, - (q31_t)0x71410805, (q31_t)0xc45ae1d7, (q31_t)0x71354fc0, (q31_t)0xc444a639, (q31_t)0x7129931f, (q31_t)0xc42e6ce8, (q31_t)0x711dd220, (q31_t)0xc41835e6, - (q31_t)0x71120cc5, (q31_t)0xc4020133, (q31_t)0x7106430e, (q31_t)0xc3ebced0, (q31_t)0x70fa74fc, (q31_t)0xc3d59ebe, (q31_t)0x70eea28e, (q31_t)0xc3bf70fd, - (q31_t)0x70e2cbc6, (q31_t)0xc3a94590, (q31_t)0x70d6f0a4, (q31_t)0xc3931c76, (q31_t)0x70cb1128, (q31_t)0xc37cf5b0, (q31_t)0x70bf2d53, (q31_t)0xc366d140, - (q31_t)0x70b34525, (q31_t)0xc350af26, (q31_t)0x70a7589f, (q31_t)0xc33a8f62, (q31_t)0x709b67c0, (q31_t)0xc32471f7, (q31_t)0x708f728b, (q31_t)0xc30e56e4, - (q31_t)0x708378ff, (q31_t)0xc2f83e2a, (q31_t)0x70777b1c, (q31_t)0xc2e227cb, (q31_t)0x706b78e3, (q31_t)0xc2cc13c7, (q31_t)0x705f7255, (q31_t)0xc2b6021f, - (q31_t)0x70536771, (q31_t)0xc29ff2d4, (q31_t)0x70475839, (q31_t)0xc289e5e7, (q31_t)0x703b44ad, (q31_t)0xc273db58, (q31_t)0x702f2ccd, (q31_t)0xc25dd329, - (q31_t)0x7023109a, (q31_t)0xc247cd5a, (q31_t)0x7016f014, (q31_t)0xc231c9ec, (q31_t)0x700acb3c, (q31_t)0xc21bc8e1, (q31_t)0x6ffea212, (q31_t)0xc205ca38, - (q31_t)0x6ff27497, (q31_t)0xc1efcdf3, (q31_t)0x6fe642ca, (q31_t)0xc1d9d412, (q31_t)0x6fda0cae, (q31_t)0xc1c3dc97, (q31_t)0x6fcdd241, (q31_t)0xc1ade781, - (q31_t)0x6fc19385, (q31_t)0xc197f4d4, (q31_t)0x6fb5507a, (q31_t)0xc182048d, (q31_t)0x6fa90921, (q31_t)0xc16c16b0, (q31_t)0x6f9cbd79, (q31_t)0xc1562b3d, - (q31_t)0x6f906d84, (q31_t)0xc1404233, (q31_t)0x6f841942, (q31_t)0xc12a5b95, (q31_t)0x6f77c0b3, (q31_t)0xc1147764, (q31_t)0x6f6b63d8, (q31_t)0xc0fe959f, - (q31_t)0x6f5f02b2, (q31_t)0xc0e8b648, (q31_t)0x6f529d40, (q31_t)0xc0d2d960, (q31_t)0x6f463383, (q31_t)0xc0bcfee7, (q31_t)0x6f39c57d, (q31_t)0xc0a726df, - (q31_t)0x6f2d532c, (q31_t)0xc0915148, (q31_t)0x6f20dc92, (q31_t)0xc07b7e23, (q31_t)0x6f1461b0, (q31_t)0xc065ad70, (q31_t)0x6f07e285, (q31_t)0xc04fdf32, - (q31_t)0x6efb5f12, (q31_t)0xc03a1368, (q31_t)0x6eeed758, (q31_t)0xc0244a14, (q31_t)0x6ee24b57, (q31_t)0xc00e8336, (q31_t)0x6ed5bb10, (q31_t)0xbff8bece, - (q31_t)0x6ec92683, (q31_t)0xbfe2fcdf, (q31_t)0x6ebc8db0, (q31_t)0xbfcd3d69, (q31_t)0x6eaff099, (q31_t)0xbfb7806c, (q31_t)0x6ea34f3d, (q31_t)0xbfa1c5ea, - (q31_t)0x6e96a99d, (q31_t)0xbf8c0de3, (q31_t)0x6e89ffb9, (q31_t)0xbf765858, (q31_t)0x6e7d5193, (q31_t)0xbf60a54a, (q31_t)0x6e709f2a, (q31_t)0xbf4af4ba, - (q31_t)0x6e63e87f, (q31_t)0xbf3546a8, (q31_t)0x6e572d93, (q31_t)0xbf1f9b16, (q31_t)0x6e4a6e66, (q31_t)0xbf09f205, (q31_t)0x6e3daaf8, (q31_t)0xbef44b74, - (q31_t)0x6e30e34a, (q31_t)0xbedea765, (q31_t)0x6e24175c, (q31_t)0xbec905d9, (q31_t)0x6e174730, (q31_t)0xbeb366d1, (q31_t)0x6e0a72c5, (q31_t)0xbe9dca4e, - (q31_t)0x6dfd9a1c, (q31_t)0xbe88304f, (q31_t)0x6df0bd35, (q31_t)0xbe7298d7, (q31_t)0x6de3dc11, (q31_t)0xbe5d03e6, (q31_t)0x6dd6f6b1, (q31_t)0xbe47717c, - (q31_t)0x6dca0d14, (q31_t)0xbe31e19b, (q31_t)0x6dbd1f3c, (q31_t)0xbe1c5444, (q31_t)0x6db02d29, (q31_t)0xbe06c977, (q31_t)0x6da336dc, (q31_t)0xbdf14135, - (q31_t)0x6d963c54, (q31_t)0xbddbbb7f, (q31_t)0x6d893d93, (q31_t)0xbdc63856, (q31_t)0x6d7c3a98, (q31_t)0xbdb0b7bb, (q31_t)0x6d6f3365, (q31_t)0xbd9b39ad, - (q31_t)0x6d6227fa, (q31_t)0xbd85be30, (q31_t)0x6d551858, (q31_t)0xbd704542, (q31_t)0x6d48047e, (q31_t)0xbd5acee5, (q31_t)0x6d3aec6e, (q31_t)0xbd455b1a, - (q31_t)0x6d2dd027, (q31_t)0xbd2fe9e2, (q31_t)0x6d20afac, (q31_t)0xbd1a7b3d, (q31_t)0x6d138afb, (q31_t)0xbd050f2c, (q31_t)0x6d066215, (q31_t)0xbcefa5b0, - (q31_t)0x6cf934fc, (q31_t)0xbcda3ecb, (q31_t)0x6cec03af, (q31_t)0xbcc4da7b, (q31_t)0x6cdece2f, (q31_t)0xbcaf78c4, (q31_t)0x6cd1947c, (q31_t)0xbc9a19a5, - (q31_t)0x6cc45698, (q31_t)0xbc84bd1f, (q31_t)0x6cb71482, (q31_t)0xbc6f6333, (q31_t)0x6ca9ce3b, (q31_t)0xbc5a0be2, (q31_t)0x6c9c83c3, (q31_t)0xbc44b72c, - (q31_t)0x6c8f351c, (q31_t)0xbc2f6513, (q31_t)0x6c81e245, (q31_t)0xbc1a1598, (q31_t)0x6c748b3f, (q31_t)0xbc04c8ba, (q31_t)0x6c67300b, (q31_t)0xbbef7e7c, - (q31_t)0x6c59d0a9, (q31_t)0xbbda36dd, (q31_t)0x6c4c6d1a, (q31_t)0xbbc4f1df, (q31_t)0x6c3f055d, (q31_t)0xbbafaf82, (q31_t)0x6c319975, (q31_t)0xbb9a6fc7, - (q31_t)0x6c242960, (q31_t)0xbb8532b0, (q31_t)0x6c16b521, (q31_t)0xbb6ff83c, (q31_t)0x6c093cb6, (q31_t)0xbb5ac06d, (q31_t)0x6bfbc021, (q31_t)0xbb458b43, - (q31_t)0x6bee3f62, (q31_t)0xbb3058c0, (q31_t)0x6be0ba7b, (q31_t)0xbb1b28e4, (q31_t)0x6bd3316a, (q31_t)0xbb05fbb0, (q31_t)0x6bc5a431, (q31_t)0xbaf0d125, - (q31_t)0x6bb812d1, (q31_t)0xbadba943, (q31_t)0x6baa7d49, (q31_t)0xbac6840c, (q31_t)0x6b9ce39b, (q31_t)0xbab16180, (q31_t)0x6b8f45c7, (q31_t)0xba9c41a0, - (q31_t)0x6b81a3cd, (q31_t)0xba87246d, (q31_t)0x6b73fdae, (q31_t)0xba7209e7, (q31_t)0x6b66536b, (q31_t)0xba5cf210, (q31_t)0x6b58a503, (q31_t)0xba47dce8, - (q31_t)0x6b4af279, (q31_t)0xba32ca71, (q31_t)0x6b3d3bcb, (q31_t)0xba1dbaaa, (q31_t)0x6b2f80fb, (q31_t)0xba08ad95, (q31_t)0x6b21c208, (q31_t)0xb9f3a332, - (q31_t)0x6b13fef5, (q31_t)0xb9de9b83, (q31_t)0x6b0637c1, (q31_t)0xb9c99688, (q31_t)0x6af86c6c, (q31_t)0xb9b49442, (q31_t)0x6aea9cf8, (q31_t)0xb99f94b2, - (q31_t)0x6adcc964, (q31_t)0xb98a97d8, (q31_t)0x6acef1b2, (q31_t)0xb9759db6, (q31_t)0x6ac115e2, (q31_t)0xb960a64c, (q31_t)0x6ab335f4, (q31_t)0xb94bb19b, - (q31_t)0x6aa551e9, (q31_t)0xb936bfa4, (q31_t)0x6a9769c1, (q31_t)0xb921d067, (q31_t)0x6a897d7d, (q31_t)0xb90ce3e6, (q31_t)0x6a7b8d1e, (q31_t)0xb8f7fa21, - (q31_t)0x6a6d98a4, (q31_t)0xb8e31319, (q31_t)0x6a5fa010, (q31_t)0xb8ce2ecf, (q31_t)0x6a51a361, (q31_t)0xb8b94d44, (q31_t)0x6a43a29a, (q31_t)0xb8a46e78, - (q31_t)0x6a359db9, (q31_t)0xb88f926d, (q31_t)0x6a2794c1, (q31_t)0xb87ab922, (q31_t)0x6a1987b0, (q31_t)0xb865e299, (q31_t)0x6a0b7689, (q31_t)0xb8510ed4, - (q31_t)0x69fd614a, (q31_t)0xb83c3dd1, (q31_t)0x69ef47f6, (q31_t)0xb8276f93, (q31_t)0x69e12a8c, (q31_t)0xb812a41a, (q31_t)0x69d3090e, (q31_t)0xb7fddb67, - (q31_t)0x69c4e37a, (q31_t)0xb7e9157a, (q31_t)0x69b6b9d3, (q31_t)0xb7d45255, (q31_t)0x69a88c19, (q31_t)0xb7bf91f8, (q31_t)0x699a5a4c, (q31_t)0xb7aad465, - (q31_t)0x698c246c, (q31_t)0xb796199b, (q31_t)0x697dea7b, (q31_t)0xb781619c, (q31_t)0x696fac78, (q31_t)0xb76cac69, (q31_t)0x69616a65, (q31_t)0xb757fa01, - (q31_t)0x69532442, (q31_t)0xb7434a67, (q31_t)0x6944da10, (q31_t)0xb72e9d9b, (q31_t)0x69368bce, (q31_t)0xb719f39e, (q31_t)0x6928397e, (q31_t)0xb7054c6f, - (q31_t)0x6919e320, (q31_t)0xb6f0a812, (q31_t)0x690b88b5, (q31_t)0xb6dc0685, (q31_t)0x68fd2a3d, (q31_t)0xb6c767ca, (q31_t)0x68eec7b9, (q31_t)0xb6b2cbe2, - (q31_t)0x68e06129, (q31_t)0xb69e32cd, (q31_t)0x68d1f68f, (q31_t)0xb6899c8d, (q31_t)0x68c387e9, (q31_t)0xb6750921, (q31_t)0x68b5153a, (q31_t)0xb660788c, - (q31_t)0x68a69e81, (q31_t)0xb64beacd, (q31_t)0x689823bf, (q31_t)0xb6375fe5, (q31_t)0x6889a4f6, (q31_t)0xb622d7d6, (q31_t)0x687b2224, (q31_t)0xb60e529f, - (q31_t)0x686c9b4b, (q31_t)0xb5f9d043, (q31_t)0x685e106c, (q31_t)0xb5e550c1, (q31_t)0x684f8186, (q31_t)0xb5d0d41a, (q31_t)0x6840ee9b, (q31_t)0xb5bc5a50, - (q31_t)0x683257ab, (q31_t)0xb5a7e362, (q31_t)0x6823bcb7, (q31_t)0xb5936f53, (q31_t)0x68151dbe, (q31_t)0xb57efe22, (q31_t)0x68067ac3, (q31_t)0xb56a8fd0, - (q31_t)0x67f7d3c5, (q31_t)0xb556245e, (q31_t)0x67e928c5, (q31_t)0xb541bbcd, (q31_t)0x67da79c3, (q31_t)0xb52d561e, (q31_t)0x67cbc6c0, (q31_t)0xb518f351, - (q31_t)0x67bd0fbd, (q31_t)0xb5049368, (q31_t)0x67ae54ba, (q31_t)0xb4f03663, (q31_t)0x679f95b7, (q31_t)0xb4dbdc42, (q31_t)0x6790d2b6, (q31_t)0xb4c78507, - (q31_t)0x67820bb7, (q31_t)0xb4b330b3, (q31_t)0x677340ba, (q31_t)0xb49edf45, (q31_t)0x676471c0, (q31_t)0xb48a90c0, (q31_t)0x67559eca, (q31_t)0xb4764523, - (q31_t)0x6746c7d8, (q31_t)0xb461fc70, (q31_t)0x6737ecea, (q31_t)0xb44db6a8, (q31_t)0x67290e02, (q31_t)0xb43973ca, (q31_t)0x671a2b20, (q31_t)0xb42533d8, - (q31_t)0x670b4444, (q31_t)0xb410f6d3, (q31_t)0x66fc596f, (q31_t)0xb3fcbcbb, (q31_t)0x66ed6aa1, (q31_t)0xb3e88592, (q31_t)0x66de77dc, (q31_t)0xb3d45157, - (q31_t)0x66cf8120, (q31_t)0xb3c0200c, (q31_t)0x66c0866d, (q31_t)0xb3abf1b2, (q31_t)0x66b187c3, (q31_t)0xb397c649, (q31_t)0x66a28524, (q31_t)0xb3839dd3, - (q31_t)0x66937e91, (q31_t)0xb36f784f, (q31_t)0x66847408, (q31_t)0xb35b55bf, (q31_t)0x6675658c, (q31_t)0xb3473623, (q31_t)0x6666531d, (q31_t)0xb333197c, - (q31_t)0x66573cbb, (q31_t)0xb31effcc, (q31_t)0x66482267, (q31_t)0xb30ae912, (q31_t)0x66390422, (q31_t)0xb2f6d550, (q31_t)0x6629e1ec, (q31_t)0xb2e2c486, - (q31_t)0x661abbc5, (q31_t)0xb2ceb6b5, (q31_t)0x660b91af, (q31_t)0xb2baabde, (q31_t)0x65fc63a9, (q31_t)0xb2a6a402, (q31_t)0x65ed31b5, (q31_t)0xb2929f21, - (q31_t)0x65ddfbd3, (q31_t)0xb27e9d3c, (q31_t)0x65cec204, (q31_t)0xb26a9e54, (q31_t)0x65bf8447, (q31_t)0xb256a26a, (q31_t)0x65b0429f, (q31_t)0xb242a97e, - (q31_t)0x65a0fd0b, (q31_t)0xb22eb392, (q31_t)0x6591b38c, (q31_t)0xb21ac0a6, (q31_t)0x65826622, (q31_t)0xb206d0ba, (q31_t)0x657314cf, (q31_t)0xb1f2e3d0, - (q31_t)0x6563bf92, (q31_t)0xb1def9e9, (q31_t)0x6554666d, (q31_t)0xb1cb1304, (q31_t)0x6545095f, (q31_t)0xb1b72f23, (q31_t)0x6535a86b, (q31_t)0xb1a34e47, - (q31_t)0x6526438f, (q31_t)0xb18f7071, (q31_t)0x6516dacd, (q31_t)0xb17b95a0, (q31_t)0x65076e25, (q31_t)0xb167bdd7, (q31_t)0x64f7fd98, (q31_t)0xb153e915, - (q31_t)0x64e88926, (q31_t)0xb140175b, (q31_t)0x64d910d1, (q31_t)0xb12c48ab, (q31_t)0x64c99498, (q31_t)0xb1187d05, (q31_t)0x64ba147d, (q31_t)0xb104b46a, - (q31_t)0x64aa907f, (q31_t)0xb0f0eeda, (q31_t)0x649b08a0, (q31_t)0xb0dd2c56, (q31_t)0x648b7ce0, (q31_t)0xb0c96ce0, (q31_t)0x647bed3f, (q31_t)0xb0b5b077, - (q31_t)0x646c59bf, (q31_t)0xb0a1f71d, (q31_t)0x645cc260, (q31_t)0xb08e40d2, (q31_t)0x644d2722, (q31_t)0xb07a8d97, (q31_t)0x643d8806, (q31_t)0xb066dd6d, - (q31_t)0x642de50d, (q31_t)0xb0533055, (q31_t)0x641e3e38, (q31_t)0xb03f864f, (q31_t)0x640e9386, (q31_t)0xb02bdf5c, (q31_t)0x63fee4f8, (q31_t)0xb0183b7d, - (q31_t)0x63ef3290, (q31_t)0xb0049ab3, (q31_t)0x63df7c4d, (q31_t)0xaff0fcfe, (q31_t)0x63cfc231, (q31_t)0xafdd625f, (q31_t)0x63c0043b, (q31_t)0xafc9cad7, - (q31_t)0x63b0426d, (q31_t)0xafb63667, (q31_t)0x63a07cc7, (q31_t)0xafa2a50f, (q31_t)0x6390b34a, (q31_t)0xaf8f16d1, (q31_t)0x6380e5f6, (q31_t)0xaf7b8bac, - (q31_t)0x637114cc, (q31_t)0xaf6803a2, (q31_t)0x63613fcd, (q31_t)0xaf547eb3, (q31_t)0x635166f9, (q31_t)0xaf40fce1, (q31_t)0x63418a50, (q31_t)0xaf2d7e2b, - (q31_t)0x6331a9d4, (q31_t)0xaf1a0293, (q31_t)0x6321c585, (q31_t)0xaf068a1a, (q31_t)0x6311dd64, (q31_t)0xaef314c0, (q31_t)0x6301f171, (q31_t)0xaedfa285, - (q31_t)0x62f201ac, (q31_t)0xaecc336c, (q31_t)0x62e20e17, (q31_t)0xaeb8c774, (q31_t)0x62d216b3, (q31_t)0xaea55e9e, (q31_t)0x62c21b7e, (q31_t)0xae91f8eb, - (q31_t)0x62b21c7b, (q31_t)0xae7e965b, (q31_t)0x62a219aa, (q31_t)0xae6b36f0, (q31_t)0x6292130c, (q31_t)0xae57daab, (q31_t)0x628208a1, (q31_t)0xae44818b, - (q31_t)0x6271fa69, (q31_t)0xae312b92, (q31_t)0x6261e866, (q31_t)0xae1dd8c0, (q31_t)0x6251d298, (q31_t)0xae0a8916, (q31_t)0x6241b8ff, (q31_t)0xadf73c96, - (q31_t)0x62319b9d, (q31_t)0xade3f33e, (q31_t)0x62217a72, (q31_t)0xadd0ad12, (q31_t)0x6211557e, (q31_t)0xadbd6a10, (q31_t)0x62012cc2, (q31_t)0xadaa2a3b, - (q31_t)0x61f1003f, (q31_t)0xad96ed92, (q31_t)0x61e0cff5, (q31_t)0xad83b416, (q31_t)0x61d09be5, (q31_t)0xad707dc8, (q31_t)0x61c06410, (q31_t)0xad5d4aaa, - (q31_t)0x61b02876, (q31_t)0xad4a1aba, (q31_t)0x619fe918, (q31_t)0xad36edfc, (q31_t)0x618fa5f7, (q31_t)0xad23c46e, (q31_t)0x617f5f12, (q31_t)0xad109e12, - (q31_t)0x616f146c, (q31_t)0xacfd7ae8, (q31_t)0x615ec603, (q31_t)0xacea5af2, (q31_t)0x614e73da, (q31_t)0xacd73e30, (q31_t)0x613e1df0, (q31_t)0xacc424a3, - (q31_t)0x612dc447, (q31_t)0xacb10e4b, (q31_t)0x611d66de, (q31_t)0xac9dfb29, (q31_t)0x610d05b7, (q31_t)0xac8aeb3e, (q31_t)0x60fca0d2, (q31_t)0xac77de8b, - (q31_t)0x60ec3830, (q31_t)0xac64d510, (q31_t)0x60dbcbd1, (q31_t)0xac51cecf, (q31_t)0x60cb5bb7, (q31_t)0xac3ecbc7, (q31_t)0x60bae7e1, (q31_t)0xac2bcbfa, - (q31_t)0x60aa7050, (q31_t)0xac18cf69, (q31_t)0x6099f505, (q31_t)0xac05d613, (q31_t)0x60897601, (q31_t)0xabf2dffb, (q31_t)0x6078f344, (q31_t)0xabdfed1f, - (q31_t)0x60686ccf, (q31_t)0xabccfd83, (q31_t)0x6057e2a2, (q31_t)0xabba1125, (q31_t)0x604754bf, (q31_t)0xaba72807, (q31_t)0x6036c325, (q31_t)0xab944229, - (q31_t)0x60262dd6, (q31_t)0xab815f8d, (q31_t)0x601594d1, (q31_t)0xab6e8032, (q31_t)0x6004f819, (q31_t)0xab5ba41a, (q31_t)0x5ff457ad, (q31_t)0xab48cb46, - (q31_t)0x5fe3b38d, (q31_t)0xab35f5b5, (q31_t)0x5fd30bbc, (q31_t)0xab23236a, (q31_t)0x5fc26038, (q31_t)0xab105464, (q31_t)0x5fb1b104, (q31_t)0xaafd88a4, - (q31_t)0x5fa0fe1f, (q31_t)0xaaeac02c, (q31_t)0x5f90478a, (q31_t)0xaad7fafb, (q31_t)0x5f7f8d46, (q31_t)0xaac53912, (q31_t)0x5f6ecf53, (q31_t)0xaab27a73, - (q31_t)0x5f5e0db3, (q31_t)0xaa9fbf1e, (q31_t)0x5f4d4865, (q31_t)0xaa8d0713, (q31_t)0x5f3c7f6b, (q31_t)0xaa7a5253, (q31_t)0x5f2bb2c5, (q31_t)0xaa67a0e0, - (q31_t)0x5f1ae274, (q31_t)0xaa54f2ba, (q31_t)0x5f0a0e77, (q31_t)0xaa4247e1, (q31_t)0x5ef936d1, (q31_t)0xaa2fa056, (q31_t)0x5ee85b82, (q31_t)0xaa1cfc1a, - (q31_t)0x5ed77c8a, (q31_t)0xaa0a5b2e, (q31_t)0x5ec699e9, (q31_t)0xa9f7bd92, (q31_t)0x5eb5b3a2, (q31_t)0xa9e52347, (q31_t)0x5ea4c9b3, (q31_t)0xa9d28c4e, - (q31_t)0x5e93dc1f, (q31_t)0xa9bff8a8, (q31_t)0x5e82eae5, (q31_t)0xa9ad6855, (q31_t)0x5e71f606, (q31_t)0xa99adb56, (q31_t)0x5e60fd84, (q31_t)0xa98851ac, - (q31_t)0x5e50015d, (q31_t)0xa975cb57, (q31_t)0x5e3f0194, (q31_t)0xa9634858, (q31_t)0x5e2dfe29, (q31_t)0xa950c8b0, (q31_t)0x5e1cf71c, (q31_t)0xa93e4c5f, - (q31_t)0x5e0bec6e, (q31_t)0xa92bd367, (q31_t)0x5dfade20, (q31_t)0xa9195dc7, (q31_t)0x5de9cc33, (q31_t)0xa906eb82, (q31_t)0x5dd8b6a7, (q31_t)0xa8f47c97, - (q31_t)0x5dc79d7c, (q31_t)0xa8e21106, (q31_t)0x5db680b4, (q31_t)0xa8cfa8d2, (q31_t)0x5da5604f, (q31_t)0xa8bd43fa, (q31_t)0x5d943c4e, (q31_t)0xa8aae280, - (q31_t)0x5d8314b1, (q31_t)0xa8988463, (q31_t)0x5d71e979, (q31_t)0xa88629a5, (q31_t)0x5d60baa7, (q31_t)0xa873d246, (q31_t)0x5d4f883b, (q31_t)0xa8617e48, - (q31_t)0x5d3e5237, (q31_t)0xa84f2daa, (q31_t)0x5d2d189a, (q31_t)0xa83ce06e, (q31_t)0x5d1bdb65, (q31_t)0xa82a9693, (q31_t)0x5d0a9a9a, (q31_t)0xa818501c, - (q31_t)0x5cf95638, (q31_t)0xa8060d08, (q31_t)0x5ce80e41, (q31_t)0xa7f3cd59, (q31_t)0x5cd6c2b5, (q31_t)0xa7e1910f, (q31_t)0x5cc57394, (q31_t)0xa7cf582a, - (q31_t)0x5cb420e0, (q31_t)0xa7bd22ac, (q31_t)0x5ca2ca99, (q31_t)0xa7aaf094, (q31_t)0x5c9170bf, (q31_t)0xa798c1e5, (q31_t)0x5c801354, (q31_t)0xa786969e, - (q31_t)0x5c6eb258, (q31_t)0xa7746ec0, (q31_t)0x5c5d4dcc, (q31_t)0xa7624a4d, (q31_t)0x5c4be5b0, (q31_t)0xa7502943, (q31_t)0x5c3a7a05, (q31_t)0xa73e0ba5, - (q31_t)0x5c290acc, (q31_t)0xa72bf174, (q31_t)0x5c179806, (q31_t)0xa719daae, (q31_t)0x5c0621b2, (q31_t)0xa707c757, (q31_t)0x5bf4a7d2, (q31_t)0xa6f5b76d, - (q31_t)0x5be32a67, (q31_t)0xa6e3aaf2, (q31_t)0x5bd1a971, (q31_t)0xa6d1a1e7, (q31_t)0x5bc024f0, (q31_t)0xa6bf9c4b, (q31_t)0x5bae9ce7, (q31_t)0xa6ad9a21, - (q31_t)0x5b9d1154, (q31_t)0xa69b9b68, (q31_t)0x5b8b8239, (q31_t)0xa689a022, (q31_t)0x5b79ef96, (q31_t)0xa677a84e, (q31_t)0x5b68596d, (q31_t)0xa665b3ee, - (q31_t)0x5b56bfbd, (q31_t)0xa653c303, (q31_t)0x5b452288, (q31_t)0xa641d58c, (q31_t)0x5b3381ce, (q31_t)0xa62feb8b, (q31_t)0x5b21dd90, (q31_t)0xa61e0501, - (q31_t)0x5b1035cf, (q31_t)0xa60c21ee, (q31_t)0x5afe8a8b, (q31_t)0xa5fa4252, (q31_t)0x5aecdbc5, (q31_t)0xa5e8662f, (q31_t)0x5adb297d, (q31_t)0xa5d68d85, - (q31_t)0x5ac973b5, (q31_t)0xa5c4b855, (q31_t)0x5ab7ba6c, (q31_t)0xa5b2e6a0, (q31_t)0x5aa5fda5, (q31_t)0xa5a11866, (q31_t)0x5a943d5e, (q31_t)0xa58f4da8, - (q31_t)0x5a82799a, (q31_t)0xa57d8666, (q31_t)0x5a70b258, (q31_t)0xa56bc2a2, (q31_t)0x5a5ee79a, (q31_t)0xa55a025b, (q31_t)0x5a4d1960, (q31_t)0xa5484594, - (q31_t)0x5a3b47ab, (q31_t)0xa5368c4b, (q31_t)0x5a29727b, (q31_t)0xa524d683, (q31_t)0x5a1799d1, (q31_t)0xa513243b, (q31_t)0x5a05bdae, (q31_t)0xa5017575, - (q31_t)0x59f3de12, (q31_t)0xa4efca31, (q31_t)0x59e1faff, (q31_t)0xa4de2270, (q31_t)0x59d01475, (q31_t)0xa4cc7e32, (q31_t)0x59be2a74, (q31_t)0xa4badd78, - (q31_t)0x59ac3cfd, (q31_t)0xa4a94043, (q31_t)0x599a4c12, (q31_t)0xa497a693, (q31_t)0x598857b2, (q31_t)0xa486106a, (q31_t)0x59765fde, (q31_t)0xa4747dc7, - (q31_t)0x59646498, (q31_t)0xa462eeac, (q31_t)0x595265df, (q31_t)0xa4516319, (q31_t)0x594063b5, (q31_t)0xa43fdb10, (q31_t)0x592e5e19, (q31_t)0xa42e568f, - (q31_t)0x591c550e, (q31_t)0xa41cd599, (q31_t)0x590a4893, (q31_t)0xa40b582e, (q31_t)0x58f838a9, (q31_t)0xa3f9de4e, (q31_t)0x58e62552, (q31_t)0xa3e867fa, - (q31_t)0x58d40e8c, (q31_t)0xa3d6f534, (q31_t)0x58c1f45b, (q31_t)0xa3c585fb, (q31_t)0x58afd6bd, (q31_t)0xa3b41a50, (q31_t)0x589db5b3, (q31_t)0xa3a2b234, - (q31_t)0x588b9140, (q31_t)0xa3914da8, (q31_t)0x58796962, (q31_t)0xa37fecac, (q31_t)0x58673e1b, (q31_t)0xa36e8f41, (q31_t)0x58550f6c, (q31_t)0xa35d3567, - (q31_t)0x5842dd54, (q31_t)0xa34bdf20, (q31_t)0x5830a7d6, (q31_t)0xa33a8c6c, (q31_t)0x581e6ef1, (q31_t)0xa3293d4b, (q31_t)0x580c32a7, (q31_t)0xa317f1bf, - (q31_t)0x57f9f2f8, (q31_t)0xa306a9c8, (q31_t)0x57e7afe4, (q31_t)0xa2f56566, (q31_t)0x57d5696d, (q31_t)0xa2e4249b, (q31_t)0x57c31f92, (q31_t)0xa2d2e766, - (q31_t)0x57b0d256, (q31_t)0xa2c1adc9, (q31_t)0x579e81b8, (q31_t)0xa2b077c5, (q31_t)0x578c2dba, (q31_t)0xa29f4559, (q31_t)0x5779d65b, (q31_t)0xa28e1687, - (q31_t)0x57677b9d, (q31_t)0xa27ceb4f, (q31_t)0x57551d80, (q31_t)0xa26bc3b2, (q31_t)0x5742bc06, (q31_t)0xa25a9fb1, (q31_t)0x5730572e, (q31_t)0xa2497f4c, - (q31_t)0x571deefa, (q31_t)0xa2386284, (q31_t)0x570b8369, (q31_t)0xa2274959, (q31_t)0x56f9147e, (q31_t)0xa21633cd, (q31_t)0x56e6a239, (q31_t)0xa20521e0, - (q31_t)0x56d42c99, (q31_t)0xa1f41392, (q31_t)0x56c1b3a1, (q31_t)0xa1e308e4, (q31_t)0x56af3750, (q31_t)0xa1d201d7, (q31_t)0x569cb7a8, (q31_t)0xa1c0fe6c, - (q31_t)0x568a34a9, (q31_t)0xa1affea3, (q31_t)0x5677ae54, (q31_t)0xa19f027c, (q31_t)0x566524aa, (q31_t)0xa18e09fa, (q31_t)0x565297ab, (q31_t)0xa17d151b, - (q31_t)0x56400758, (q31_t)0xa16c23e1, (q31_t)0x562d73b2, (q31_t)0xa15b364d, (q31_t)0x561adcb9, (q31_t)0xa14a4c5e, (q31_t)0x5608426e, (q31_t)0xa1396617, - (q31_t)0x55f5a4d2, (q31_t)0xa1288376, (q31_t)0x55e303e6, (q31_t)0xa117a47e, (q31_t)0x55d05faa, (q31_t)0xa106c92f, (q31_t)0x55bdb81f, (q31_t)0xa0f5f189, - (q31_t)0x55ab0d46, (q31_t)0xa0e51d8c, (q31_t)0x55985f20, (q31_t)0xa0d44d3b, (q31_t)0x5585adad, (q31_t)0xa0c38095, (q31_t)0x5572f8ed, (q31_t)0xa0b2b79b, - (q31_t)0x556040e2, (q31_t)0xa0a1f24d, (q31_t)0x554d858d, (q31_t)0xa09130ad, (q31_t)0x553ac6ee, (q31_t)0xa08072ba, (q31_t)0x55280505, (q31_t)0xa06fb876, - (q31_t)0x55153fd4, (q31_t)0xa05f01e1, (q31_t)0x5502775c, (q31_t)0xa04e4efc, (q31_t)0x54efab9c, (q31_t)0xa03d9fc8, (q31_t)0x54dcdc96, (q31_t)0xa02cf444, - (q31_t)0x54ca0a4b, (q31_t)0xa01c4c73, (q31_t)0x54b734ba, (q31_t)0xa00ba853, (q31_t)0x54a45be6, (q31_t)0x9ffb07e7, (q31_t)0x54917fce, (q31_t)0x9fea6b2f, - (q31_t)0x547ea073, (q31_t)0x9fd9d22a, (q31_t)0x546bbdd7, (q31_t)0x9fc93cdb, (q31_t)0x5458d7f9, (q31_t)0x9fb8ab41, (q31_t)0x5445eedb, (q31_t)0x9fa81d5e, - (q31_t)0x5433027d, (q31_t)0x9f979331, (q31_t)0x542012e1, (q31_t)0x9f870cbc, (q31_t)0x540d2005, (q31_t)0x9f7689ff, (q31_t)0x53fa29ed, (q31_t)0x9f660afb, - (q31_t)0x53e73097, (q31_t)0x9f558fb0, (q31_t)0x53d43406, (q31_t)0x9f45181f, (q31_t)0x53c13439, (q31_t)0x9f34a449, (q31_t)0x53ae3131, (q31_t)0x9f24342f, - (q31_t)0x539b2af0, (q31_t)0x9f13c7d0, (q31_t)0x53882175, (q31_t)0x9f035f2e, (q31_t)0x537514c2, (q31_t)0x9ef2fa49, (q31_t)0x536204d7, (q31_t)0x9ee29922, - (q31_t)0x534ef1b5, (q31_t)0x9ed23bb9, (q31_t)0x533bdb5d, (q31_t)0x9ec1e210, (q31_t)0x5328c1d0, (q31_t)0x9eb18c26, (q31_t)0x5315a50e, (q31_t)0x9ea139fd, - (q31_t)0x53028518, (q31_t)0x9e90eb94, (q31_t)0x52ef61ee, (q31_t)0x9e80a0ee, (q31_t)0x52dc3b92, (q31_t)0x9e705a09, (q31_t)0x52c91204, (q31_t)0x9e6016e8, - (q31_t)0x52b5e546, (q31_t)0x9e4fd78a, (q31_t)0x52a2b556, (q31_t)0x9e3f9bf0, (q31_t)0x528f8238, (q31_t)0x9e2f641b, (q31_t)0x527c4bea, (q31_t)0x9e1f300b, - (q31_t)0x5269126e, (q31_t)0x9e0effc1, (q31_t)0x5255d5c5, (q31_t)0x9dfed33e, (q31_t)0x524295f0, (q31_t)0x9deeaa82, (q31_t)0x522f52ee, (q31_t)0x9dde858e, - (q31_t)0x521c0cc2, (q31_t)0x9dce6463, (q31_t)0x5208c36a, (q31_t)0x9dbe4701, (q31_t)0x51f576ea, (q31_t)0x9dae2d68, (q31_t)0x51e22740, (q31_t)0x9d9e179a, - (q31_t)0x51ced46e, (q31_t)0x9d8e0597, (q31_t)0x51bb7e75, (q31_t)0x9d7df75f, (q31_t)0x51a82555, (q31_t)0x9d6decf4, (q31_t)0x5194c910, (q31_t)0x9d5de656, - (q31_t)0x518169a5, (q31_t)0x9d4de385, (q31_t)0x516e0715, (q31_t)0x9d3de482, (q31_t)0x515aa162, (q31_t)0x9d2de94d, (q31_t)0x5147388c, (q31_t)0x9d1df1e9, - (q31_t)0x5133cc94, (q31_t)0x9d0dfe54, (q31_t)0x51205d7b, (q31_t)0x9cfe0e8f, (q31_t)0x510ceb40, (q31_t)0x9cee229c, (q31_t)0x50f975e6, (q31_t)0x9cde3a7b, - (q31_t)0x50e5fd6d, (q31_t)0x9cce562c, (q31_t)0x50d281d5, (q31_t)0x9cbe75b0, (q31_t)0x50bf031f, (q31_t)0x9cae9907, (q31_t)0x50ab814d, (q31_t)0x9c9ec033, - (q31_t)0x5097fc5e, (q31_t)0x9c8eeb34, (q31_t)0x50847454, (q31_t)0x9c7f1a0a, (q31_t)0x5070e92f, (q31_t)0x9c6f4cb6, (q31_t)0x505d5af1, (q31_t)0x9c5f8339, - (q31_t)0x5049c999, (q31_t)0x9c4fbd93, (q31_t)0x50363529, (q31_t)0x9c3ffbc5, (q31_t)0x50229da1, (q31_t)0x9c303dcf, (q31_t)0x500f0302, (q31_t)0x9c2083b3, - (q31_t)0x4ffb654d, (q31_t)0x9c10cd70, (q31_t)0x4fe7c483, (q31_t)0x9c011b08, (q31_t)0x4fd420a4, (q31_t)0x9bf16c7a, (q31_t)0x4fc079b1, (q31_t)0x9be1c1c8, - (q31_t)0x4faccfab, (q31_t)0x9bd21af3, (q31_t)0x4f992293, (q31_t)0x9bc277fa, (q31_t)0x4f857269, (q31_t)0x9bb2d8de, (q31_t)0x4f71bf2e, (q31_t)0x9ba33da0, - (q31_t)0x4f5e08e3, (q31_t)0x9b93a641, (q31_t)0x4f4a4f89, (q31_t)0x9b8412c1, (q31_t)0x4f369320, (q31_t)0x9b748320, (q31_t)0x4f22d3aa, (q31_t)0x9b64f760, - (q31_t)0x4f0f1126, (q31_t)0x9b556f81, (q31_t)0x4efb4b96, (q31_t)0x9b45eb83, (q31_t)0x4ee782fb, (q31_t)0x9b366b68, (q31_t)0x4ed3b755, (q31_t)0x9b26ef2f, - (q31_t)0x4ebfe8a5, (q31_t)0x9b1776da, (q31_t)0x4eac16eb, (q31_t)0x9b080268, (q31_t)0x4e984229, (q31_t)0x9af891db, (q31_t)0x4e846a60, (q31_t)0x9ae92533, - (q31_t)0x4e708f8f, (q31_t)0x9ad9bc71, (q31_t)0x4e5cb1b9, (q31_t)0x9aca5795, (q31_t)0x4e48d0dd, (q31_t)0x9abaf6a1, (q31_t)0x4e34ecfc, (q31_t)0x9aab9993, - (q31_t)0x4e210617, (q31_t)0x9a9c406e, (q31_t)0x4e0d1c30, (q31_t)0x9a8ceb31, (q31_t)0x4df92f46, (q31_t)0x9a7d99de, (q31_t)0x4de53f5a, (q31_t)0x9a6e4c74, - (q31_t)0x4dd14c6e, (q31_t)0x9a5f02f5, (q31_t)0x4dbd5682, (q31_t)0x9a4fbd61, (q31_t)0x4da95d96, (q31_t)0x9a407bb9, (q31_t)0x4d9561ac, (q31_t)0x9a313dfc, - (q31_t)0x4d8162c4, (q31_t)0x9a22042d, (q31_t)0x4d6d60df, (q31_t)0x9a12ce4b, (q31_t)0x4d595bfe, (q31_t)0x9a039c57, (q31_t)0x4d455422, (q31_t)0x99f46e51, - (q31_t)0x4d31494b, (q31_t)0x99e5443b, (q31_t)0x4d1d3b7a, (q31_t)0x99d61e14, (q31_t)0x4d092ab0, (q31_t)0x99c6fbde, (q31_t)0x4cf516ee, (q31_t)0x99b7dd99, - (q31_t)0x4ce10034, (q31_t)0x99a8c345, (q31_t)0x4ccce684, (q31_t)0x9999ace3, (q31_t)0x4cb8c9dd, (q31_t)0x998a9a74, (q31_t)0x4ca4aa41, (q31_t)0x997b8bf8, - (q31_t)0x4c9087b1, (q31_t)0x996c816f, (q31_t)0x4c7c622d, (q31_t)0x995d7adc, (q31_t)0x4c6839b7, (q31_t)0x994e783d, (q31_t)0x4c540e4e, (q31_t)0x993f7993, - (q31_t)0x4c3fdff4, (q31_t)0x99307ee0, (q31_t)0x4c2baea9, (q31_t)0x99218824, (q31_t)0x4c177a6e, (q31_t)0x9912955f, (q31_t)0x4c034345, (q31_t)0x9903a691, - (q31_t)0x4bef092d, (q31_t)0x98f4bbbc, (q31_t)0x4bdacc28, (q31_t)0x98e5d4e0, (q31_t)0x4bc68c36, (q31_t)0x98d6f1fe, (q31_t)0x4bb24958, (q31_t)0x98c81316, - (q31_t)0x4b9e0390, (q31_t)0x98b93828, (q31_t)0x4b89badd, (q31_t)0x98aa6136, (q31_t)0x4b756f40, (q31_t)0x989b8e40, (q31_t)0x4b6120bb, (q31_t)0x988cbf46, - (q31_t)0x4b4ccf4d, (q31_t)0x987df449, (q31_t)0x4b387af9, (q31_t)0x986f2d4a, (q31_t)0x4b2423be, (q31_t)0x98606a49, (q31_t)0x4b0fc99d, (q31_t)0x9851ab46, - (q31_t)0x4afb6c98, (q31_t)0x9842f043, (q31_t)0x4ae70caf, (q31_t)0x98343940, (q31_t)0x4ad2a9e2, (q31_t)0x9825863d, (q31_t)0x4abe4433, (q31_t)0x9816d73b, - (q31_t)0x4aa9dba2, (q31_t)0x98082c3b, (q31_t)0x4a957030, (q31_t)0x97f9853d, (q31_t)0x4a8101de, (q31_t)0x97eae242, (q31_t)0x4a6c90ad, (q31_t)0x97dc4349, - (q31_t)0x4a581c9e, (q31_t)0x97cda855, (q31_t)0x4a43a5b0, (q31_t)0x97bf1165, (q31_t)0x4a2f2be6, (q31_t)0x97b07e7a, (q31_t)0x4a1aaf3f, (q31_t)0x97a1ef94, - (q31_t)0x4a062fbd, (q31_t)0x979364b5, (q31_t)0x49f1ad61, (q31_t)0x9784dddc, (q31_t)0x49dd282a, (q31_t)0x97765b0a, (q31_t)0x49c8a01b, (q31_t)0x9767dc41, - (q31_t)0x49b41533, (q31_t)0x9759617f, (q31_t)0x499f8774, (q31_t)0x974aeac6, (q31_t)0x498af6df, (q31_t)0x973c7817, (q31_t)0x49766373, (q31_t)0x972e0971, - (q31_t)0x4961cd33, (q31_t)0x971f9ed7, (q31_t)0x494d341e, (q31_t)0x97113847, (q31_t)0x49389836, (q31_t)0x9702d5c3, (q31_t)0x4923f97b, (q31_t)0x96f4774b, - (q31_t)0x490f57ee, (q31_t)0x96e61ce0, (q31_t)0x48fab391, (q31_t)0x96d7c682, (q31_t)0x48e60c62, (q31_t)0x96c97432, (q31_t)0x48d16265, (q31_t)0x96bb25f0, - (q31_t)0x48bcb599, (q31_t)0x96acdbbe, (q31_t)0x48a805ff, (q31_t)0x969e959b, (q31_t)0x48935397, (q31_t)0x96905388, (q31_t)0x487e9e64, (q31_t)0x96821585, - (q31_t)0x4869e665, (q31_t)0x9673db94, (q31_t)0x48552b9b, (q31_t)0x9665a5b4, (q31_t)0x48406e08, (q31_t)0x965773e7, (q31_t)0x482badab, (q31_t)0x9649462d, - (q31_t)0x4816ea86, (q31_t)0x963b1c86, (q31_t)0x48022499, (q31_t)0x962cf6f2, (q31_t)0x47ed5be6, (q31_t)0x961ed574, (q31_t)0x47d8906d, (q31_t)0x9610b80a, - (q31_t)0x47c3c22f, (q31_t)0x96029eb6, (q31_t)0x47aef12c, (q31_t)0x95f48977, (q31_t)0x479a1d67, (q31_t)0x95e67850, (q31_t)0x478546de, (q31_t)0x95d86b3f, - (q31_t)0x47706d93, (q31_t)0x95ca6247, (q31_t)0x475b9188, (q31_t)0x95bc5d66, (q31_t)0x4746b2bc, (q31_t)0x95ae5c9f, (q31_t)0x4731d131, (q31_t)0x95a05ff0, - (q31_t)0x471cece7, (q31_t)0x9592675c, (q31_t)0x470805df, (q31_t)0x958472e2, (q31_t)0x46f31c1a, (q31_t)0x95768283, (q31_t)0x46de2f99, (q31_t)0x9568963f, - (q31_t)0x46c9405c, (q31_t)0x955aae17, (q31_t)0x46b44e65, (q31_t)0x954cca0c, (q31_t)0x469f59b4, (q31_t)0x953eea1e, (q31_t)0x468a624a, (q31_t)0x95310e4e, - (q31_t)0x46756828, (q31_t)0x9523369c, (q31_t)0x46606b4e, (q31_t)0x95156308, (q31_t)0x464b6bbe, (q31_t)0x95079394, (q31_t)0x46366978, (q31_t)0x94f9c83f, - (q31_t)0x4621647d, (q31_t)0x94ec010b, (q31_t)0x460c5cce, (q31_t)0x94de3df8, (q31_t)0x45f7526b, (q31_t)0x94d07f05, (q31_t)0x45e24556, (q31_t)0x94c2c435, - (q31_t)0x45cd358f, (q31_t)0x94b50d87, (q31_t)0x45b82318, (q31_t)0x94a75afd, (q31_t)0x45a30df0, (q31_t)0x9499ac95, (q31_t)0x458df619, (q31_t)0x948c0252, - (q31_t)0x4578db93, (q31_t)0x947e5c33, (q31_t)0x4563be60, (q31_t)0x9470ba39, (q31_t)0x454e9e80, (q31_t)0x94631c65, (q31_t)0x45397bf4, (q31_t)0x945582b7, - (q31_t)0x452456bd, (q31_t)0x9447ed2f, (q31_t)0x450f2edb, (q31_t)0x943a5bcf, (q31_t)0x44fa0450, (q31_t)0x942cce96, (q31_t)0x44e4d71c, (q31_t)0x941f4585, - (q31_t)0x44cfa740, (q31_t)0x9411c09e, (q31_t)0x44ba74bd, (q31_t)0x94043fdf, (q31_t)0x44a53f93, (q31_t)0x93f6c34a, (q31_t)0x449007c4, (q31_t)0x93e94adf, - (q31_t)0x447acd50, (q31_t)0x93dbd6a0, (q31_t)0x44659039, (q31_t)0x93ce668b, (q31_t)0x4450507e, (q31_t)0x93c0faa3, (q31_t)0x443b0e21, (q31_t)0x93b392e6, - (q31_t)0x4425c923, (q31_t)0x93a62f57, (q31_t)0x44108184, (q31_t)0x9398cff5, (q31_t)0x43fb3746, (q31_t)0x938b74c1, (q31_t)0x43e5ea68, (q31_t)0x937e1dbb, - (q31_t)0x43d09aed, (q31_t)0x9370cae4, (q31_t)0x43bb48d4, (q31_t)0x93637c3d, (q31_t)0x43a5f41e, (q31_t)0x935631c5, (q31_t)0x43909ccd, (q31_t)0x9348eb7e, - (q31_t)0x437b42e1, (q31_t)0x933ba968, (q31_t)0x4365e65b, (q31_t)0x932e6b84, (q31_t)0x4350873c, (q31_t)0x932131d1, (q31_t)0x433b2585, (q31_t)0x9313fc51, - (q31_t)0x4325c135, (q31_t)0x9306cb04, (q31_t)0x43105a50, (q31_t)0x92f99deb, (q31_t)0x42faf0d4, (q31_t)0x92ec7505, (q31_t)0x42e584c3, (q31_t)0x92df5054, - (q31_t)0x42d0161e, (q31_t)0x92d22fd9, (q31_t)0x42baa4e6, (q31_t)0x92c51392, (q31_t)0x42a5311b, (q31_t)0x92b7fb82, (q31_t)0x428fbabe, (q31_t)0x92aae7a8, - (q31_t)0x427a41d0, (q31_t)0x929dd806, (q31_t)0x4264c653, (q31_t)0x9290cc9b, (q31_t)0x424f4845, (q31_t)0x9283c568, (q31_t)0x4239c7aa, (q31_t)0x9276c26d, - (q31_t)0x42244481, (q31_t)0x9269c3ac, (q31_t)0x420ebecb, (q31_t)0x925cc924, (q31_t)0x41f93689, (q31_t)0x924fd2d7, (q31_t)0x41e3abbc, (q31_t)0x9242e0c4, - (q31_t)0x41ce1e65, (q31_t)0x9235f2ec, (q31_t)0x41b88e84, (q31_t)0x9229094f, (q31_t)0x41a2fc1a, (q31_t)0x921c23ef, (q31_t)0x418d6729, (q31_t)0x920f42cb, - (q31_t)0x4177cfb1, (q31_t)0x920265e4, (q31_t)0x416235b2, (q31_t)0x91f58d3b, (q31_t)0x414c992f, (q31_t)0x91e8b8d0, (q31_t)0x4136fa27, (q31_t)0x91dbe8a4, - (q31_t)0x4121589b, (q31_t)0x91cf1cb6, (q31_t)0x410bb48c, (q31_t)0x91c25508, (q31_t)0x40f60dfb, (q31_t)0x91b5919a, (q31_t)0x40e064ea, (q31_t)0x91a8d26d, - (q31_t)0x40cab958, (q31_t)0x919c1781, (q31_t)0x40b50b46, (q31_t)0x918f60d6, (q31_t)0x409f5ab6, (q31_t)0x9182ae6d, (q31_t)0x4089a7a8, (q31_t)0x91760047, - (q31_t)0x4073f21d, (q31_t)0x91695663, (q31_t)0x405e3a16, (q31_t)0x915cb0c3, (q31_t)0x40487f94, (q31_t)0x91500f67, (q31_t)0x4032c297, (q31_t)0x91437250, - (q31_t)0x401d0321, (q31_t)0x9136d97d, (q31_t)0x40074132, (q31_t)0x912a44f0, (q31_t)0x3ff17cca, (q31_t)0x911db4a9, (q31_t)0x3fdbb5ec, (q31_t)0x911128a8, - (q31_t)0x3fc5ec98, (q31_t)0x9104a0ee, (q31_t)0x3fb020ce, (q31_t)0x90f81d7b, (q31_t)0x3f9a5290, (q31_t)0x90eb9e50, (q31_t)0x3f8481dd, (q31_t)0x90df236e, - (q31_t)0x3f6eaeb8, (q31_t)0x90d2acd4, (q31_t)0x3f58d921, (q31_t)0x90c63a83, (q31_t)0x3f430119, (q31_t)0x90b9cc7d, (q31_t)0x3f2d26a0, (q31_t)0x90ad62c0, - (q31_t)0x3f1749b8, (q31_t)0x90a0fd4e, (q31_t)0x3f016a61, (q31_t)0x90949c28, (q31_t)0x3eeb889c, (q31_t)0x90883f4d, (q31_t)0x3ed5a46b, (q31_t)0x907be6be, - (q31_t)0x3ebfbdcd, (q31_t)0x906f927c, (q31_t)0x3ea9d4c3, (q31_t)0x90634287, (q31_t)0x3e93e950, (q31_t)0x9056f6df, (q31_t)0x3e7dfb73, (q31_t)0x904aaf86, - (q31_t)0x3e680b2c, (q31_t)0x903e6c7b, (q31_t)0x3e52187f, (q31_t)0x90322dbf, (q31_t)0x3e3c2369, (q31_t)0x9025f352, (q31_t)0x3e262bee, (q31_t)0x9019bd36, - (q31_t)0x3e10320d, (q31_t)0x900d8b69, (q31_t)0x3dfa35c8, (q31_t)0x90015dee, (q31_t)0x3de4371f, (q31_t)0x8ff534c4, (q31_t)0x3dce3614, (q31_t)0x8fe90fec, - (q31_t)0x3db832a6, (q31_t)0x8fdcef66, (q31_t)0x3da22cd7, (q31_t)0x8fd0d333, (q31_t)0x3d8c24a8, (q31_t)0x8fc4bb53, (q31_t)0x3d761a19, (q31_t)0x8fb8a7c7, - (q31_t)0x3d600d2c, (q31_t)0x8fac988f, (q31_t)0x3d49fde1, (q31_t)0x8fa08dab, (q31_t)0x3d33ec39, (q31_t)0x8f94871d, (q31_t)0x3d1dd835, (q31_t)0x8f8884e4, - (q31_t)0x3d07c1d6, (q31_t)0x8f7c8701, (q31_t)0x3cf1a91c, (q31_t)0x8f708d75, (q31_t)0x3cdb8e09, (q31_t)0x8f649840, (q31_t)0x3cc5709e, (q31_t)0x8f58a761, - (q31_t)0x3caf50da, (q31_t)0x8f4cbadb, (q31_t)0x3c992ec0, (q31_t)0x8f40d2ad, (q31_t)0x3c830a50, (q31_t)0x8f34eed8, (q31_t)0x3c6ce38a, (q31_t)0x8f290f5c, - (q31_t)0x3c56ba70, (q31_t)0x8f1d343a, (q31_t)0x3c408f03, (q31_t)0x8f115d72, (q31_t)0x3c2a6142, (q31_t)0x8f058b04, (q31_t)0x3c143130, (q31_t)0x8ef9bcf2, - (q31_t)0x3bfdfecd, (q31_t)0x8eedf33b, (q31_t)0x3be7ca1a, (q31_t)0x8ee22de0, (q31_t)0x3bd19318, (q31_t)0x8ed66ce1, (q31_t)0x3bbb59c7, (q31_t)0x8ecab040, - (q31_t)0x3ba51e29, (q31_t)0x8ebef7fb, (q31_t)0x3b8ee03e, (q31_t)0x8eb34415, (q31_t)0x3b78a007, (q31_t)0x8ea7948c, (q31_t)0x3b625d86, (q31_t)0x8e9be963, - (q31_t)0x3b4c18ba, (q31_t)0x8e904298, (q31_t)0x3b35d1a5, (q31_t)0x8e84a02d, (q31_t)0x3b1f8848, (q31_t)0x8e790222, (q31_t)0x3b093ca3, (q31_t)0x8e6d6877, - (q31_t)0x3af2eeb7, (q31_t)0x8e61d32e, (q31_t)0x3adc9e86, (q31_t)0x8e564246, (q31_t)0x3ac64c0f, (q31_t)0x8e4ab5bf, (q31_t)0x3aaff755, (q31_t)0x8e3f2d9b, - (q31_t)0x3a99a057, (q31_t)0x8e33a9da, (q31_t)0x3a834717, (q31_t)0x8e282a7b, (q31_t)0x3a6ceb96, (q31_t)0x8e1caf80, (q31_t)0x3a568dd4, (q31_t)0x8e1138ea, - (q31_t)0x3a402dd2, (q31_t)0x8e05c6b7, (q31_t)0x3a29cb91, (q31_t)0x8dfa58ea, (q31_t)0x3a136712, (q31_t)0x8deeef82, (q31_t)0x39fd0056, (q31_t)0x8de38a80, - (q31_t)0x39e6975e, (q31_t)0x8dd829e4, (q31_t)0x39d02c2a, (q31_t)0x8dcccdaf, (q31_t)0x39b9bebc, (q31_t)0x8dc175e0, (q31_t)0x39a34f13, (q31_t)0x8db6227a, - (q31_t)0x398cdd32, (q31_t)0x8daad37b, (q31_t)0x39766919, (q31_t)0x8d9f88e5, (q31_t)0x395ff2c9, (q31_t)0x8d9442b8, (q31_t)0x39497a43, (q31_t)0x8d8900f3, - (q31_t)0x3932ff87, (q31_t)0x8d7dc399, (q31_t)0x391c8297, (q31_t)0x8d728aa9, (q31_t)0x39060373, (q31_t)0x8d675623, (q31_t)0x38ef821c, (q31_t)0x8d5c2609, - (q31_t)0x38d8fe93, (q31_t)0x8d50fa59, (q31_t)0x38c278d9, (q31_t)0x8d45d316, (q31_t)0x38abf0ef, (q31_t)0x8d3ab03f, (q31_t)0x389566d6, (q31_t)0x8d2f91d5, - (q31_t)0x387eda8e, (q31_t)0x8d2477d8, (q31_t)0x38684c19, (q31_t)0x8d196249, (q31_t)0x3851bb77, (q31_t)0x8d0e5127, (q31_t)0x383b28a9, (q31_t)0x8d034474, - (q31_t)0x382493b0, (q31_t)0x8cf83c30, (q31_t)0x380dfc8d, (q31_t)0x8ced385b, (q31_t)0x37f76341, (q31_t)0x8ce238f6, (q31_t)0x37e0c7cc, (q31_t)0x8cd73e01, - (q31_t)0x37ca2a30, (q31_t)0x8ccc477d, (q31_t)0x37b38a6d, (q31_t)0x8cc1556a, (q31_t)0x379ce885, (q31_t)0x8cb667c8, (q31_t)0x37864477, (q31_t)0x8cab7e98, - (q31_t)0x376f9e46, (q31_t)0x8ca099da, (q31_t)0x3758f5f2, (q31_t)0x8c95b98f, (q31_t)0x37424b7b, (q31_t)0x8c8addb7, (q31_t)0x372b9ee3, (q31_t)0x8c800652, - (q31_t)0x3714f02a, (q31_t)0x8c753362, (q31_t)0x36fe3f52, (q31_t)0x8c6a64e5, (q31_t)0x36e78c5b, (q31_t)0x8c5f9ade, (q31_t)0x36d0d746, (q31_t)0x8c54d54c, - (q31_t)0x36ba2014, (q31_t)0x8c4a142f, (q31_t)0x36a366c6, (q31_t)0x8c3f5788, (q31_t)0x368cab5c, (q31_t)0x8c349f58, (q31_t)0x3675edd9, (q31_t)0x8c29eb9f, - (q31_t)0x365f2e3b, (q31_t)0x8c1f3c5d, (q31_t)0x36486c86, (q31_t)0x8c149192, (q31_t)0x3631a8b8, (q31_t)0x8c09eb40, (q31_t)0x361ae2d3, (q31_t)0x8bff4966, - (q31_t)0x36041ad9, (q31_t)0x8bf4ac05, (q31_t)0x35ed50c9, (q31_t)0x8bea131e, (q31_t)0x35d684a6, (q31_t)0x8bdf7eb0, (q31_t)0x35bfb66e, (q31_t)0x8bd4eebc, - (q31_t)0x35a8e625, (q31_t)0x8bca6343, (q31_t)0x359213c9, (q31_t)0x8bbfdc44, (q31_t)0x357b3f5d, (q31_t)0x8bb559c1, (q31_t)0x356468e2, (q31_t)0x8baadbba, - (q31_t)0x354d9057, (q31_t)0x8ba0622f, (q31_t)0x3536b5be, (q31_t)0x8b95ed21, (q31_t)0x351fd918, (q31_t)0x8b8b7c8f, (q31_t)0x3508fa66, (q31_t)0x8b81107b, - (q31_t)0x34f219a8, (q31_t)0x8b76a8e4, (q31_t)0x34db36df, (q31_t)0x8b6c45cc, (q31_t)0x34c4520d, (q31_t)0x8b61e733, (q31_t)0x34ad6b32, (q31_t)0x8b578d18, - (q31_t)0x34968250, (q31_t)0x8b4d377c, (q31_t)0x347f9766, (q31_t)0x8b42e661, (q31_t)0x3468aa76, (q31_t)0x8b3899c6, (q31_t)0x3451bb81, (q31_t)0x8b2e51ab, - (q31_t)0x343aca87, (q31_t)0x8b240e11, (q31_t)0x3423d78a, (q31_t)0x8b19cef8, (q31_t)0x340ce28b, (q31_t)0x8b0f9462, (q31_t)0x33f5eb89, (q31_t)0x8b055e4d, - (q31_t)0x33def287, (q31_t)0x8afb2cbb, (q31_t)0x33c7f785, (q31_t)0x8af0ffac, (q31_t)0x33b0fa84, (q31_t)0x8ae6d720, (q31_t)0x3399fb85, (q31_t)0x8adcb318, - (q31_t)0x3382fa88, (q31_t)0x8ad29394, (q31_t)0x336bf78f, (q31_t)0x8ac87894, (q31_t)0x3354f29b, (q31_t)0x8abe6219, (q31_t)0x333debab, (q31_t)0x8ab45024, - (q31_t)0x3326e2c3, (q31_t)0x8aaa42b4, (q31_t)0x330fd7e1, (q31_t)0x8aa039cb, (q31_t)0x32f8cb07, (q31_t)0x8a963567, (q31_t)0x32e1bc36, (q31_t)0x8a8c358b, - (q31_t)0x32caab6f, (q31_t)0x8a823a36, (q31_t)0x32b398b3, (q31_t)0x8a784368, (q31_t)0x329c8402, (q31_t)0x8a6e5123, (q31_t)0x32856d5e, (q31_t)0x8a646365, - (q31_t)0x326e54c7, (q31_t)0x8a5a7a31, (q31_t)0x32573a3f, (q31_t)0x8a509585, (q31_t)0x32401dc6, (q31_t)0x8a46b564, (q31_t)0x3228ff5c, (q31_t)0x8a3cd9cc, - (q31_t)0x3211df04, (q31_t)0x8a3302be, (q31_t)0x31fabcbd, (q31_t)0x8a29303b, (q31_t)0x31e39889, (q31_t)0x8a1f6243, (q31_t)0x31cc7269, (q31_t)0x8a1598d6, - (q31_t)0x31b54a5e, (q31_t)0x8a0bd3f5, (q31_t)0x319e2067, (q31_t)0x8a0213a0, (q31_t)0x3186f487, (q31_t)0x89f857d8, (q31_t)0x316fc6be, (q31_t)0x89eea09d, - (q31_t)0x3158970e, (q31_t)0x89e4edef, (q31_t)0x31416576, (q31_t)0x89db3fcf, (q31_t)0x312a31f8, (q31_t)0x89d1963c, (q31_t)0x3112fc95, (q31_t)0x89c7f138, - (q31_t)0x30fbc54d, (q31_t)0x89be50c3, (q31_t)0x30e48c22, (q31_t)0x89b4b4dd, (q31_t)0x30cd5115, (q31_t)0x89ab1d87, (q31_t)0x30b61426, (q31_t)0x89a18ac0, - (q31_t)0x309ed556, (q31_t)0x8997fc8a, (q31_t)0x308794a6, (q31_t)0x898e72e4, (q31_t)0x30705217, (q31_t)0x8984edcf, (q31_t)0x30590dab, (q31_t)0x897b6d4c, - (q31_t)0x3041c761, (q31_t)0x8971f15a, (q31_t)0x302a7f3a, (q31_t)0x896879fb, (q31_t)0x30133539, (q31_t)0x895f072e, (q31_t)0x2ffbe95d, (q31_t)0x895598f3, - (q31_t)0x2fe49ba7, (q31_t)0x894c2f4c, (q31_t)0x2fcd4c19, (q31_t)0x8942ca39, (q31_t)0x2fb5fab2, (q31_t)0x893969b9, (q31_t)0x2f9ea775, (q31_t)0x89300dce, - (q31_t)0x2f875262, (q31_t)0x8926b677, (q31_t)0x2f6ffb7a, (q31_t)0x891d63b5, (q31_t)0x2f58a2be, (q31_t)0x89141589, (q31_t)0x2f41482e, (q31_t)0x890acbf2, - (q31_t)0x2f29ebcc, (q31_t)0x890186f2, (q31_t)0x2f128d99, (q31_t)0x88f84687, (q31_t)0x2efb2d95, (q31_t)0x88ef0ab4, (q31_t)0x2ee3cbc1, (q31_t)0x88e5d378, - (q31_t)0x2ecc681e, (q31_t)0x88dca0d3, (q31_t)0x2eb502ae, (q31_t)0x88d372c6, (q31_t)0x2e9d9b70, (q31_t)0x88ca4951, (q31_t)0x2e863267, (q31_t)0x88c12475, - (q31_t)0x2e6ec792, (q31_t)0x88b80432, (q31_t)0x2e575af3, (q31_t)0x88aee888, (q31_t)0x2e3fec8b, (q31_t)0x88a5d177, (q31_t)0x2e287c5a, (q31_t)0x889cbf01, - (q31_t)0x2e110a62, (q31_t)0x8893b125, (q31_t)0x2df996a3, (q31_t)0x888aa7e3, (q31_t)0x2de2211e, (q31_t)0x8881a33d, (q31_t)0x2dcaa9d5, (q31_t)0x8878a332, - (q31_t)0x2db330c7, (q31_t)0x886fa7c2, (q31_t)0x2d9bb5f6, (q31_t)0x8866b0ef, (q31_t)0x2d843964, (q31_t)0x885dbeb8, (q31_t)0x2d6cbb10, (q31_t)0x8854d11e, - (q31_t)0x2d553afc, (q31_t)0x884be821, (q31_t)0x2d3db928, (q31_t)0x884303c1, (q31_t)0x2d263596, (q31_t)0x883a23ff, (q31_t)0x2d0eb046, (q31_t)0x883148db, - (q31_t)0x2cf72939, (q31_t)0x88287256, (q31_t)0x2cdfa071, (q31_t)0x881fa06f, (q31_t)0x2cc815ee, (q31_t)0x8816d327, (q31_t)0x2cb089b1, (q31_t)0x880e0a7f, - (q31_t)0x2c98fbba, (q31_t)0x88054677, (q31_t)0x2c816c0c, (q31_t)0x87fc870f, (q31_t)0x2c69daa6, (q31_t)0x87f3cc48, (q31_t)0x2c52478a, (q31_t)0x87eb1621, - (q31_t)0x2c3ab2b9, (q31_t)0x87e2649b, (q31_t)0x2c231c33, (q31_t)0x87d9b7b7, (q31_t)0x2c0b83fa, (q31_t)0x87d10f75, (q31_t)0x2bf3ea0d, (q31_t)0x87c86bd5, - (q31_t)0x2bdc4e6f, (q31_t)0x87bfccd7, (q31_t)0x2bc4b120, (q31_t)0x87b7327d, (q31_t)0x2bad1221, (q31_t)0x87ae9cc5, (q31_t)0x2b957173, (q31_t)0x87a60bb1, - (q31_t)0x2b7dcf17, (q31_t)0x879d7f41, (q31_t)0x2b662b0e, (q31_t)0x8794f774, (q31_t)0x2b4e8558, (q31_t)0x878c744d, (q31_t)0x2b36ddf7, (q31_t)0x8783f5ca, - (q31_t)0x2b1f34eb, (q31_t)0x877b7bec, (q31_t)0x2b078a36, (q31_t)0x877306b4, (q31_t)0x2aefddd8, (q31_t)0x876a9621, (q31_t)0x2ad82fd2, (q31_t)0x87622a35, - (q31_t)0x2ac08026, (q31_t)0x8759c2ef, (q31_t)0x2aa8ced3, (q31_t)0x87516050, (q31_t)0x2a911bdc, (q31_t)0x87490258, (q31_t)0x2a796740, (q31_t)0x8740a907, - (q31_t)0x2a61b101, (q31_t)0x8738545e, (q31_t)0x2a49f920, (q31_t)0x8730045d, (q31_t)0x2a323f9e, (q31_t)0x8727b905, (q31_t)0x2a1a847b, (q31_t)0x871f7255, - (q31_t)0x2a02c7b8, (q31_t)0x8717304e, (q31_t)0x29eb0957, (q31_t)0x870ef2f1, (q31_t)0x29d34958, (q31_t)0x8706ba3d, (q31_t)0x29bb87bc, (q31_t)0x86fe8633, - (q31_t)0x29a3c485, (q31_t)0x86f656d3, (q31_t)0x298bffb2, (q31_t)0x86ee2c1e, (q31_t)0x29743946, (q31_t)0x86e60614, (q31_t)0x295c7140, (q31_t)0x86dde4b5, - (q31_t)0x2944a7a2, (q31_t)0x86d5c802, (q31_t)0x292cdc6d, (q31_t)0x86cdaffa, (q31_t)0x29150fa1, (q31_t)0x86c59c9f, (q31_t)0x28fd4140, (q31_t)0x86bd8df0, - (q31_t)0x28e5714b, (q31_t)0x86b583ee, (q31_t)0x28cd9fc1, (q31_t)0x86ad7e99, (q31_t)0x28b5cca5, (q31_t)0x86a57df2, (q31_t)0x289df7f8, (q31_t)0x869d81f8, - (q31_t)0x288621b9, (q31_t)0x86958aac, (q31_t)0x286e49ea, (q31_t)0x868d980e, (q31_t)0x2856708d, (q31_t)0x8685aa20, (q31_t)0x283e95a1, (q31_t)0x867dc0e0, - (q31_t)0x2826b928, (q31_t)0x8675dc4f, (q31_t)0x280edb23, (q31_t)0x866dfc6e, (q31_t)0x27f6fb92, (q31_t)0x8666213c, (q31_t)0x27df1a77, (q31_t)0x865e4abb, - (q31_t)0x27c737d3, (q31_t)0x865678eb, (q31_t)0x27af53a6, (q31_t)0x864eabcb, (q31_t)0x27976df1, (q31_t)0x8646e35c, (q31_t)0x277f86b5, (q31_t)0x863f1f9e, - (q31_t)0x27679df4, (q31_t)0x86376092, (q31_t)0x274fb3ae, (q31_t)0x862fa638, (q31_t)0x2737c7e3, (q31_t)0x8627f091, (q31_t)0x271fda96, (q31_t)0x86203f9c, - (q31_t)0x2707ebc7, (q31_t)0x86189359, (q31_t)0x26effb76, (q31_t)0x8610ebca, (q31_t)0x26d809a5, (q31_t)0x860948ef, (q31_t)0x26c01655, (q31_t)0x8601aac7, - (q31_t)0x26a82186, (q31_t)0x85fa1153, (q31_t)0x26902b39, (q31_t)0x85f27c93, (q31_t)0x26783370, (q31_t)0x85eaec88, (q31_t)0x26603a2c, (q31_t)0x85e36132, - (q31_t)0x26483f6c, (q31_t)0x85dbda91, (q31_t)0x26304333, (q31_t)0x85d458a6, (q31_t)0x26184581, (q31_t)0x85ccdb70, (q31_t)0x26004657, (q31_t)0x85c562f1, - (q31_t)0x25e845b6, (q31_t)0x85bdef28, (q31_t)0x25d0439f, (q31_t)0x85b68015, (q31_t)0x25b84012, (q31_t)0x85af15b9, (q31_t)0x25a03b11, (q31_t)0x85a7b015, - (q31_t)0x2588349d, (q31_t)0x85a04f28, (q31_t)0x25702cb7, (q31_t)0x8598f2f3, (q31_t)0x2558235f, (q31_t)0x85919b76, (q31_t)0x25401896, (q31_t)0x858a48b1, - (q31_t)0x25280c5e, (q31_t)0x8582faa5, (q31_t)0x250ffeb7, (q31_t)0x857bb152, (q31_t)0x24f7efa2, (q31_t)0x85746cb8, (q31_t)0x24dfdf20, (q31_t)0x856d2cd7, - (q31_t)0x24c7cd33, (q31_t)0x8565f1b0, (q31_t)0x24afb9da, (q31_t)0x855ebb44, (q31_t)0x2497a517, (q31_t)0x85578991, (q31_t)0x247f8eec, (q31_t)0x85505c99, - (q31_t)0x24677758, (q31_t)0x8549345c, (q31_t)0x244f5e5c, (q31_t)0x854210db, (q31_t)0x243743fa, (q31_t)0x853af214, (q31_t)0x241f2833, (q31_t)0x8533d809, - (q31_t)0x24070b08, (q31_t)0x852cc2bb, (q31_t)0x23eeec78, (q31_t)0x8525b228, (q31_t)0x23d6cc87, (q31_t)0x851ea652, (q31_t)0x23beab33, (q31_t)0x85179f39, - (q31_t)0x23a6887f, (q31_t)0x85109cdd, (q31_t)0x238e646a, (q31_t)0x85099f3e, (q31_t)0x23763ef7, (q31_t)0x8502a65c, (q31_t)0x235e1826, (q31_t)0x84fbb239, - (q31_t)0x2345eff8, (q31_t)0x84f4c2d4, (q31_t)0x232dc66d, (q31_t)0x84edd82d, (q31_t)0x23159b88, (q31_t)0x84e6f244, (q31_t)0x22fd6f48, (q31_t)0x84e0111b, - (q31_t)0x22e541af, (q31_t)0x84d934b1, (q31_t)0x22cd12bd, (q31_t)0x84d25d06, (q31_t)0x22b4e274, (q31_t)0x84cb8a1b, (q31_t)0x229cb0d5, (q31_t)0x84c4bbf0, - (q31_t)0x22847de0, (q31_t)0x84bdf286, (q31_t)0x226c4996, (q31_t)0x84b72ddb, (q31_t)0x225413f8, (q31_t)0x84b06df2, (q31_t)0x223bdd08, (q31_t)0x84a9b2ca, - (q31_t)0x2223a4c5, (q31_t)0x84a2fc62, (q31_t)0x220b6b32, (q31_t)0x849c4abd, (q31_t)0x21f3304f, (q31_t)0x84959dd9, (q31_t)0x21daf41d, (q31_t)0x848ef5b7, - (q31_t)0x21c2b69c, (q31_t)0x84885258, (q31_t)0x21aa77cf, (q31_t)0x8481b3bb, (q31_t)0x219237b5, (q31_t)0x847b19e1, (q31_t)0x2179f64f, (q31_t)0x847484ca, - (q31_t)0x2161b3a0, (q31_t)0x846df477, (q31_t)0x21496fa7, (q31_t)0x846768e7, (q31_t)0x21312a65, (q31_t)0x8460e21a, (q31_t)0x2118e3dc, (q31_t)0x845a6012, - (q31_t)0x21009c0c, (q31_t)0x8453e2cf, (q31_t)0x20e852f6, (q31_t)0x844d6a50, (q31_t)0x20d0089c, (q31_t)0x8446f695, (q31_t)0x20b7bcfe, (q31_t)0x844087a0, - (q31_t)0x209f701c, (q31_t)0x843a1d70, (q31_t)0x208721f9, (q31_t)0x8433b806, (q31_t)0x206ed295, (q31_t)0x842d5762, (q31_t)0x205681f1, (q31_t)0x8426fb84, - (q31_t)0x203e300d, (q31_t)0x8420a46c, (q31_t)0x2025dcec, (q31_t)0x841a521a, (q31_t)0x200d888d, (q31_t)0x84140490, (q31_t)0x1ff532f2, (q31_t)0x840dbbcc, - (q31_t)0x1fdcdc1b, (q31_t)0x840777d0, (q31_t)0x1fc4840a, (q31_t)0x8401389b, (q31_t)0x1fac2abf, (q31_t)0x83fafe2e, (q31_t)0x1f93d03c, (q31_t)0x83f4c889, - (q31_t)0x1f7b7481, (q31_t)0x83ee97ad, (q31_t)0x1f63178f, (q31_t)0x83e86b99, (q31_t)0x1f4ab968, (q31_t)0x83e2444d, (q31_t)0x1f325a0b, (q31_t)0x83dc21cb, - (q31_t)0x1f19f97b, (q31_t)0x83d60412, (q31_t)0x1f0197b8, (q31_t)0x83cfeb22, (q31_t)0x1ee934c3, (q31_t)0x83c9d6fc, (q31_t)0x1ed0d09d, (q31_t)0x83c3c7a0, - (q31_t)0x1eb86b46, (q31_t)0x83bdbd0e, (q31_t)0x1ea004c1, (q31_t)0x83b7b746, (q31_t)0x1e879d0d, (q31_t)0x83b1b649, (q31_t)0x1e6f342c, (q31_t)0x83abba17, - (q31_t)0x1e56ca1e, (q31_t)0x83a5c2b0, (q31_t)0x1e3e5ee5, (q31_t)0x839fd014, (q31_t)0x1e25f282, (q31_t)0x8399e244, (q31_t)0x1e0d84f5, (q31_t)0x8393f940, - (q31_t)0x1df5163f, (q31_t)0x838e1507, (q31_t)0x1ddca662, (q31_t)0x8388359b, (q31_t)0x1dc4355e, (q31_t)0x83825afb, (q31_t)0x1dabc334, (q31_t)0x837c8528, - (q31_t)0x1d934fe5, (q31_t)0x8376b422, (q31_t)0x1d7adb73, (q31_t)0x8370e7e9, (q31_t)0x1d6265dd, (q31_t)0x836b207d, (q31_t)0x1d49ef26, (q31_t)0x83655ddf, - (q31_t)0x1d31774d, (q31_t)0x835fa00f, (q31_t)0x1d18fe54, (q31_t)0x8359e70d, (q31_t)0x1d00843d, (q31_t)0x835432d8, (q31_t)0x1ce80906, (q31_t)0x834e8373, - (q31_t)0x1ccf8cb3, (q31_t)0x8348d8dc, (q31_t)0x1cb70f43, (q31_t)0x83433314, (q31_t)0x1c9e90b8, (q31_t)0x833d921b, (q31_t)0x1c861113, (q31_t)0x8337f5f1, - (q31_t)0x1c6d9053, (q31_t)0x83325e97, (q31_t)0x1c550e7c, (q31_t)0x832ccc0d, (q31_t)0x1c3c8b8c, (q31_t)0x83273e52, (q31_t)0x1c240786, (q31_t)0x8321b568, - (q31_t)0x1c0b826a, (q31_t)0x831c314e, (q31_t)0x1bf2fc3a, (q31_t)0x8316b205, (q31_t)0x1bda74f6, (q31_t)0x8311378d, (q31_t)0x1bc1ec9e, (q31_t)0x830bc1e6, - (q31_t)0x1ba96335, (q31_t)0x83065110, (q31_t)0x1b90d8bb, (q31_t)0x8300e50b, (q31_t)0x1b784d30, (q31_t)0x82fb7dd8, (q31_t)0x1b5fc097, (q31_t)0x82f61b77, - (q31_t)0x1b4732ef, (q31_t)0x82f0bde8, (q31_t)0x1b2ea43a, (q31_t)0x82eb652b, (q31_t)0x1b161479, (q31_t)0x82e61141, (q31_t)0x1afd83ad, (q31_t)0x82e0c22a, - (q31_t)0x1ae4f1d6, (q31_t)0x82db77e5, (q31_t)0x1acc5ef6, (q31_t)0x82d63274, (q31_t)0x1ab3cb0d, (q31_t)0x82d0f1d5, (q31_t)0x1a9b361d, (q31_t)0x82cbb60b, - (q31_t)0x1a82a026, (q31_t)0x82c67f14, (q31_t)0x1a6a0929, (q31_t)0x82c14cf1, (q31_t)0x1a517128, (q31_t)0x82bc1fa2, (q31_t)0x1a38d823, (q31_t)0x82b6f727, - (q31_t)0x1a203e1b, (q31_t)0x82b1d381, (q31_t)0x1a07a311, (q31_t)0x82acb4b0, (q31_t)0x19ef0707, (q31_t)0x82a79ab3, (q31_t)0x19d669fc, (q31_t)0x82a2858c, - (q31_t)0x19bdcbf3, (q31_t)0x829d753a, (q31_t)0x19a52ceb, (q31_t)0x829869be, (q31_t)0x198c8ce7, (q31_t)0x82936317, (q31_t)0x1973ebe6, (q31_t)0x828e6146, - (q31_t)0x195b49ea, (q31_t)0x8289644b, (q31_t)0x1942a6f3, (q31_t)0x82846c26, (q31_t)0x192a0304, (q31_t)0x827f78d8, (q31_t)0x19115e1c, (q31_t)0x827a8a61, - (q31_t)0x18f8b83c, (q31_t)0x8275a0c0, (q31_t)0x18e01167, (q31_t)0x8270bbf7, (q31_t)0x18c7699b, (q31_t)0x826bdc04, (q31_t)0x18aec0db, (q31_t)0x826700e9, - (q31_t)0x18961728, (q31_t)0x82622aa6, (q31_t)0x187d6c82, (q31_t)0x825d593a, (q31_t)0x1864c0ea, (q31_t)0x82588ca7, (q31_t)0x184c1461, (q31_t)0x8253c4eb, - (q31_t)0x183366e9, (q31_t)0x824f0208, (q31_t)0x181ab881, (q31_t)0x824a43fe, (q31_t)0x1802092c, (q31_t)0x82458acc, (q31_t)0x17e958ea, (q31_t)0x8240d673, - (q31_t)0x17d0a7bc, (q31_t)0x823c26f3, (q31_t)0x17b7f5a3, (q31_t)0x82377c4c, (q31_t)0x179f429f, (q31_t)0x8232d67f, (q31_t)0x17868eb3, (q31_t)0x822e358b, - (q31_t)0x176dd9de, (q31_t)0x82299971, (q31_t)0x17552422, (q31_t)0x82250232, (q31_t)0x173c6d80, (q31_t)0x82206fcc, (q31_t)0x1723b5f9, (q31_t)0x821be240, - (q31_t)0x170afd8d, (q31_t)0x82175990, (q31_t)0x16f2443e, (q31_t)0x8212d5b9, (q31_t)0x16d98a0c, (q31_t)0x820e56be, (q31_t)0x16c0cef9, (q31_t)0x8209dc9e, - (q31_t)0x16a81305, (q31_t)0x82056758, (q31_t)0x168f5632, (q31_t)0x8200f6ef, (q31_t)0x1676987f, (q31_t)0x81fc8b60, (q31_t)0x165dd9f0, (q31_t)0x81f824ae, - (q31_t)0x16451a83, (q31_t)0x81f3c2d7, (q31_t)0x162c5a3b, (q31_t)0x81ef65dc, (q31_t)0x16139918, (q31_t)0x81eb0dbe, (q31_t)0x15fad71b, (q31_t)0x81e6ba7c, - (q31_t)0x15e21445, (q31_t)0x81e26c16, (q31_t)0x15c95097, (q31_t)0x81de228d, (q31_t)0x15b08c12, (q31_t)0x81d9dde1, (q31_t)0x1597c6b7, (q31_t)0x81d59e13, - (q31_t)0x157f0086, (q31_t)0x81d16321, (q31_t)0x15663982, (q31_t)0x81cd2d0c, (q31_t)0x154d71aa, (q31_t)0x81c8fbd6, (q31_t)0x1534a901, (q31_t)0x81c4cf7d, - (q31_t)0x151bdf86, (q31_t)0x81c0a801, (q31_t)0x1503153a, (q31_t)0x81bc8564, (q31_t)0x14ea4a1f, (q31_t)0x81b867a5, (q31_t)0x14d17e36, (q31_t)0x81b44ec4, - (q31_t)0x14b8b17f, (q31_t)0x81b03ac2, (q31_t)0x149fe3fc, (q31_t)0x81ac2b9e, (q31_t)0x148715ae, (q31_t)0x81a82159, (q31_t)0x146e4694, (q31_t)0x81a41bf4, - (q31_t)0x145576b1, (q31_t)0x81a01b6d, (q31_t)0x143ca605, (q31_t)0x819c1fc5, (q31_t)0x1423d492, (q31_t)0x819828fd, (q31_t)0x140b0258, (q31_t)0x81943715, - (q31_t)0x13f22f58, (q31_t)0x81904a0c, (q31_t)0x13d95b93, (q31_t)0x818c61e3, (q31_t)0x13c0870a, (q31_t)0x81887e9a, (q31_t)0x13a7b1bf, (q31_t)0x8184a032, - (q31_t)0x138edbb1, (q31_t)0x8180c6a9, (q31_t)0x137604e2, (q31_t)0x817cf201, (q31_t)0x135d2d53, (q31_t)0x8179223a, (q31_t)0x13445505, (q31_t)0x81755754, - (q31_t)0x132b7bf9, (q31_t)0x8171914e, (q31_t)0x1312a230, (q31_t)0x816dd02a, (q31_t)0x12f9c7aa, (q31_t)0x816a13e6, (q31_t)0x12e0ec6a, (q31_t)0x81665c84, - (q31_t)0x12c8106f, (q31_t)0x8162aa04, (q31_t)0x12af33ba, (q31_t)0x815efc65, (q31_t)0x1296564d, (q31_t)0x815b53a8, (q31_t)0x127d7829, (q31_t)0x8157afcd, - (q31_t)0x1264994e, (q31_t)0x815410d4, (q31_t)0x124bb9be, (q31_t)0x815076bd, (q31_t)0x1232d979, (q31_t)0x814ce188, (q31_t)0x1219f880, (q31_t)0x81495136, - (q31_t)0x120116d5, (q31_t)0x8145c5c7, (q31_t)0x11e83478, (q31_t)0x81423f3a, (q31_t)0x11cf516a, (q31_t)0x813ebd90, (q31_t)0x11b66dad, (q31_t)0x813b40ca, - (q31_t)0x119d8941, (q31_t)0x8137c8e6, (q31_t)0x1184a427, (q31_t)0x813455e6, (q31_t)0x116bbe60, (q31_t)0x8130e7c9, (q31_t)0x1152d7ed, (q31_t)0x812d7e8f, - (q31_t)0x1139f0cf, (q31_t)0x812a1a3a, (q31_t)0x11210907, (q31_t)0x8126bac8, (q31_t)0x11082096, (q31_t)0x8123603a, (q31_t)0x10ef377d, (q31_t)0x81200a90, - (q31_t)0x10d64dbd, (q31_t)0x811cb9ca, (q31_t)0x10bd6356, (q31_t)0x81196de9, (q31_t)0x10a4784b, (q31_t)0x811626ec, (q31_t)0x108b8c9b, (q31_t)0x8112e4d4, - (q31_t)0x1072a048, (q31_t)0x810fa7a0, (q31_t)0x1059b352, (q31_t)0x810c6f52, (q31_t)0x1040c5bb, (q31_t)0x81093be8, (q31_t)0x1027d784, (q31_t)0x81060d63, - (q31_t)0x100ee8ad, (q31_t)0x8102e3c4, (q31_t)0xff5f938, (q31_t)0x80ffbf0a, (q31_t)0xfdd0926, (q31_t)0x80fc9f35, (q31_t)0xfc41876, (q31_t)0x80f98446, - (q31_t)0xfab272b, (q31_t)0x80f66e3c, (q31_t)0xf923546, (q31_t)0x80f35d19, (q31_t)0xf7942c7, (q31_t)0x80f050db, (q31_t)0xf604faf, (q31_t)0x80ed4984, - (q31_t)0xf475bff, (q31_t)0x80ea4712, (q31_t)0xf2e67b8, (q31_t)0x80e74987, (q31_t)0xf1572dc, (q31_t)0x80e450e2, (q31_t)0xefc7d6b, (q31_t)0x80e15d24, - (q31_t)0xee38766, (q31_t)0x80de6e4c, (q31_t)0xeca90ce, (q31_t)0x80db845b, (q31_t)0xeb199a4, (q31_t)0x80d89f51, (q31_t)0xe98a1e9, (q31_t)0x80d5bf2e, - (q31_t)0xe7fa99e, (q31_t)0x80d2e3f2, (q31_t)0xe66b0c3, (q31_t)0x80d00d9d, (q31_t)0xe4db75b, (q31_t)0x80cd3c2f, (q31_t)0xe34bd66, (q31_t)0x80ca6fa9, - (q31_t)0xe1bc2e4, (q31_t)0x80c7a80a, (q31_t)0xe02c7d7, (q31_t)0x80c4e553, (q31_t)0xde9cc40, (q31_t)0x80c22784, (q31_t)0xdd0d01f, (q31_t)0x80bf6e9c, - (q31_t)0xdb7d376, (q31_t)0x80bcba9d, (q31_t)0xd9ed646, (q31_t)0x80ba0b85, (q31_t)0xd85d88f, (q31_t)0x80b76156, (q31_t)0xd6cda53, (q31_t)0x80b4bc0e, - (q31_t)0xd53db92, (q31_t)0x80b21baf, (q31_t)0xd3adc4e, (q31_t)0x80af8039, (q31_t)0xd21dc87, (q31_t)0x80ace9ab, (q31_t)0xd08dc3f, (q31_t)0x80aa5806, - (q31_t)0xcefdb76, (q31_t)0x80a7cb49, (q31_t)0xcd6da2d, (q31_t)0x80a54376, (q31_t)0xcbdd865, (q31_t)0x80a2c08b, (q31_t)0xca4d620, (q31_t)0x80a04289, - (q31_t)0xc8bd35e, (q31_t)0x809dc971, (q31_t)0xc72d020, (q31_t)0x809b5541, (q31_t)0xc59cc68, (q31_t)0x8098e5fb, (q31_t)0xc40c835, (q31_t)0x80967b9f, - (q31_t)0xc27c389, (q31_t)0x8094162c, (q31_t)0xc0ebe66, (q31_t)0x8091b5a2, (q31_t)0xbf5b8cb, (q31_t)0x808f5a02, (q31_t)0xbdcb2bb, (q31_t)0x808d034c, - (q31_t)0xbc3ac35, (q31_t)0x808ab180, (q31_t)0xbaaa53b, (q31_t)0x8088649e, (q31_t)0xb919dcf, (q31_t)0x80861ca6, (q31_t)0xb7895f0, (q31_t)0x8083d998, - (q31_t)0xb5f8d9f, (q31_t)0x80819b74, (q31_t)0xb4684df, (q31_t)0x807f623b, (q31_t)0xb2d7baf, (q31_t)0x807d2dec, (q31_t)0xb147211, (q31_t)0x807afe87, - (q31_t)0xafb6805, (q31_t)0x8078d40d, (q31_t)0xae25d8d, (q31_t)0x8076ae7e, (q31_t)0xac952aa, (q31_t)0x80748dd9, (q31_t)0xab0475c, (q31_t)0x8072721f, - (q31_t)0xa973ba5, (q31_t)0x80705b50, (q31_t)0xa7e2f85, (q31_t)0x806e496c, (q31_t)0xa6522fe, (q31_t)0x806c3c74, (q31_t)0xa4c1610, (q31_t)0x806a3466, - (q31_t)0xa3308bd, (q31_t)0x80683143, (q31_t)0xa19fb04, (q31_t)0x8066330c, (q31_t)0xa00ece8, (q31_t)0x806439c0, (q31_t)0x9e7de6a, (q31_t)0x80624560, - (q31_t)0x9cecf89, (q31_t)0x806055eb, (q31_t)0x9b5c048, (q31_t)0x805e6b62, (q31_t)0x99cb0a7, (q31_t)0x805c85c4, (q31_t)0x983a0a7, (q31_t)0x805aa512, - (q31_t)0x96a9049, (q31_t)0x8058c94c, (q31_t)0x9517f8f, (q31_t)0x8056f272, (q31_t)0x9386e78, (q31_t)0x80552084, (q31_t)0x91f5d06, (q31_t)0x80535381, - (q31_t)0x9064b3a, (q31_t)0x80518b6b, (q31_t)0x8ed3916, (q31_t)0x804fc841, (q31_t)0x8d42699, (q31_t)0x804e0a04, (q31_t)0x8bb13c5, (q31_t)0x804c50b2, - (q31_t)0x8a2009a, (q31_t)0x804a9c4d, (q31_t)0x888ed1b, (q31_t)0x8048ecd5, (q31_t)0x86fd947, (q31_t)0x80474248, (q31_t)0x856c520, (q31_t)0x80459ca9, - (q31_t)0x83db0a7, (q31_t)0x8043fbf6, (q31_t)0x8249bdd, (q31_t)0x80426030, (q31_t)0x80b86c2, (q31_t)0x8040c956, (q31_t)0x7f27157, (q31_t)0x803f376a, - (q31_t)0x7d95b9e, (q31_t)0x803daa6a, (q31_t)0x7c04598, (q31_t)0x803c2257, (q31_t)0x7a72f45, (q31_t)0x803a9f31, (q31_t)0x78e18a7, (q31_t)0x803920f8, - (q31_t)0x77501be, (q31_t)0x8037a7ac, (q31_t)0x75bea8c, (q31_t)0x8036334e, (q31_t)0x742d311, (q31_t)0x8034c3dd, (q31_t)0x729bb4e, (q31_t)0x80335959, - (q31_t)0x710a345, (q31_t)0x8031f3c2, (q31_t)0x6f78af6, (q31_t)0x80309318, (q31_t)0x6de7262, (q31_t)0x802f375d, (q31_t)0x6c5598a, (q31_t)0x802de08e, - (q31_t)0x6ac406f, (q31_t)0x802c8ead, (q31_t)0x6932713, (q31_t)0x802b41ba, (q31_t)0x67a0d76, (q31_t)0x8029f9b4, (q31_t)0x660f398, (q31_t)0x8028b69c, - (q31_t)0x647d97c, (q31_t)0x80277872, (q31_t)0x62ebf22, (q31_t)0x80263f36, (q31_t)0x615a48b, (q31_t)0x80250ae7, (q31_t)0x5fc89b8, (q31_t)0x8023db86, - (q31_t)0x5e36ea9, (q31_t)0x8022b114, (q31_t)0x5ca5361, (q31_t)0x80218b8f, (q31_t)0x5b137df, (q31_t)0x80206af8, (q31_t)0x5981c26, (q31_t)0x801f4f4f, - (q31_t)0x57f0035, (q31_t)0x801e3895, (q31_t)0x565e40d, (q31_t)0x801d26c8, (q31_t)0x54cc7b1, (q31_t)0x801c19ea, (q31_t)0x533ab20, (q31_t)0x801b11fa, - (q31_t)0x51a8e5c, (q31_t)0x801a0ef8, (q31_t)0x5017165, (q31_t)0x801910e4, (q31_t)0x4e8543e, (q31_t)0x801817bf, (q31_t)0x4cf36e5, (q31_t)0x80172388, - (q31_t)0x4b6195d, (q31_t)0x80163440, (q31_t)0x49cfba7, (q31_t)0x801549e6, (q31_t)0x483ddc3, (q31_t)0x8014647b, (q31_t)0x46abfb3, (q31_t)0x801383fe, - (q31_t)0x451a177, (q31_t)0x8012a86f, (q31_t)0x4388310, (q31_t)0x8011d1d0, (q31_t)0x41f6480, (q31_t)0x8011001f, (q31_t)0x40645c7, (q31_t)0x8010335c, - (q31_t)0x3ed26e6, (q31_t)0x800f6b88, (q31_t)0x3d407df, (q31_t)0x800ea8a3, (q31_t)0x3bae8b2, (q31_t)0x800deaad, (q31_t)0x3a1c960, (q31_t)0x800d31a5, - (q31_t)0x388a9ea, (q31_t)0x800c7d8c, (q31_t)0x36f8a51, (q31_t)0x800bce63, (q31_t)0x3566a96, (q31_t)0x800b2427, (q31_t)0x33d4abb, (q31_t)0x800a7edb, - (q31_t)0x3242abf, (q31_t)0x8009de7e, (q31_t)0x30b0aa4, (q31_t)0x80094310, (q31_t)0x2f1ea6c, (q31_t)0x8008ac90, (q31_t)0x2d8ca16, (q31_t)0x80081b00, - (q31_t)0x2bfa9a4, (q31_t)0x80078e5e, (q31_t)0x2a68917, (q31_t)0x800706ac, (q31_t)0x28d6870, (q31_t)0x800683e8, (q31_t)0x27447b0, (q31_t)0x80060614, - (q31_t)0x25b26d7, (q31_t)0x80058d2f, (q31_t)0x24205e8, (q31_t)0x80051939, (q31_t)0x228e4e2, (q31_t)0x8004aa32, (q31_t)0x20fc3c6, (q31_t)0x8004401a, - (q31_t)0x1f6a297, (q31_t)0x8003daf1, (q31_t)0x1dd8154, (q31_t)0x80037ab7, (q31_t)0x1c45ffe, (q31_t)0x80031f6d, (q31_t)0x1ab3e97, (q31_t)0x8002c912, - (q31_t)0x1921d20, (q31_t)0x800277a6, (q31_t)0x178fb99, (q31_t)0x80022b29, (q31_t)0x15fda03, (q31_t)0x8001e39b, (q31_t)0x146b860, (q31_t)0x8001a0fd, - (q31_t)0x12d96b1, (q31_t)0x8001634e, (q31_t)0x11474f6, (q31_t)0x80012a8e, (q31_t)0xfb5330, (q31_t)0x8000f6bd, (q31_t)0xe23160, (q31_t)0x8000c7dc, - (q31_t)0xc90f88, (q31_t)0x80009dea, (q31_t)0xafeda8, (q31_t)0x800078e7, (q31_t)0x96cbc1, (q31_t)0x800058d4, (q31_t)0x7da9d4, (q31_t)0x80003daf, - (q31_t)0x6487e3, (q31_t)0x8000277a, (q31_t)0x4b65ee, (q31_t)0x80001635, (q31_t)0x3243f5, (q31_t)0x800009df, (q31_t)0x1921fb, (q31_t)0x80000278 -}; - -static const q31_t WeightsQ31_8192[16384] = { - (q31_t)0x7fffffff, (q31_t)0x0, (q31_t)0x7fffffd9, (q31_t)0xfff9b781, (q31_t)0x7fffff62, (q31_t)0xfff36f02, (q31_t)0x7ffffe9d, - (q31_t)0xffed2684, - (q31_t)0x7ffffd88, (q31_t)0xffe6de05, (q31_t)0x7ffffc25, (q31_t)0xffe09586, (q31_t)0x7ffffa73, (q31_t)0xffda4d08, - (q31_t)0x7ffff872, (q31_t)0xffd40489, - (q31_t)0x7ffff621, (q31_t)0xffcdbc0b, (q31_t)0x7ffff382, (q31_t)0xffc7738c, (q31_t)0x7ffff094, (q31_t)0xffc12b0e, - (q31_t)0x7fffed57, (q31_t)0xffbae290, - (q31_t)0x7fffe9cb, (q31_t)0xffb49a12, (q31_t)0x7fffe5f0, (q31_t)0xffae5195, (q31_t)0x7fffe1c6, (q31_t)0xffa80917, - (q31_t)0x7fffdd4d, (q31_t)0xffa1c09a, - (q31_t)0x7fffd886, (q31_t)0xff9b781d, (q31_t)0x7fffd36f, (q31_t)0xff952fa0, (q31_t)0x7fffce09, (q31_t)0xff8ee724, - (q31_t)0x7fffc854, (q31_t)0xff889ea7, - (q31_t)0x7fffc251, (q31_t)0xff82562c, (q31_t)0x7fffbbfe, (q31_t)0xff7c0db0, (q31_t)0x7fffb55c, (q31_t)0xff75c535, - (q31_t)0x7fffae6c, (q31_t)0xff6f7cba, - (q31_t)0x7fffa72c, (q31_t)0xff69343f, (q31_t)0x7fff9f9e, (q31_t)0xff62ebc5, (q31_t)0x7fff97c1, (q31_t)0xff5ca34b, - (q31_t)0x7fff8f94, (q31_t)0xff565ad1, - (q31_t)0x7fff8719, (q31_t)0xff501258, (q31_t)0x7fff7e4f, (q31_t)0xff49c9df, (q31_t)0x7fff7536, (q31_t)0xff438167, - (q31_t)0x7fff6bcd, (q31_t)0xff3d38ef, - (q31_t)0x7fff6216, (q31_t)0xff36f078, (q31_t)0x7fff5810, (q31_t)0xff30a801, (q31_t)0x7fff4dbb, (q31_t)0xff2a5f8b, - (q31_t)0x7fff4317, (q31_t)0xff241715, - (q31_t)0x7fff3824, (q31_t)0xff1dcea0, (q31_t)0x7fff2ce2, (q31_t)0xff17862b, (q31_t)0x7fff2151, (q31_t)0xff113db7, - (q31_t)0x7fff1572, (q31_t)0xff0af543, - (q31_t)0x7fff0943, (q31_t)0xff04acd0, (q31_t)0x7ffefcc5, (q31_t)0xfefe645e, (q31_t)0x7ffeeff8, (q31_t)0xfef81bec, - (q31_t)0x7ffee2dd, (q31_t)0xfef1d37b, - (q31_t)0x7ffed572, (q31_t)0xfeeb8b0a, (q31_t)0x7ffec7b9, (q31_t)0xfee5429a, (q31_t)0x7ffeb9b0, (q31_t)0xfedefa2b, - (q31_t)0x7ffeab59, (q31_t)0xfed8b1bd, - (q31_t)0x7ffe9cb2, (q31_t)0xfed2694f, (q31_t)0x7ffe8dbd, (q31_t)0xfecc20e2, (q31_t)0x7ffe7e79, (q31_t)0xfec5d876, - (q31_t)0x7ffe6ee5, (q31_t)0xfebf900a, - (q31_t)0x7ffe5f03, (q31_t)0xfeb947a0, (q31_t)0x7ffe4ed2, (q31_t)0xfeb2ff36, (q31_t)0x7ffe3e52, (q31_t)0xfeacb6cc, - (q31_t)0x7ffe2d83, (q31_t)0xfea66e64, - (q31_t)0x7ffe1c65, (q31_t)0xfea025fd, (q31_t)0x7ffe0af8, (q31_t)0xfe99dd96, (q31_t)0x7ffdf93c, (q31_t)0xfe939530, - (q31_t)0x7ffde731, (q31_t)0xfe8d4ccb, - (q31_t)0x7ffdd4d7, (q31_t)0xfe870467, (q31_t)0x7ffdc22e, (q31_t)0xfe80bc04, (q31_t)0x7ffdaf37, (q31_t)0xfe7a73a2, - (q31_t)0x7ffd9bf0, (q31_t)0xfe742b41, - (q31_t)0x7ffd885a, (q31_t)0xfe6de2e0, (q31_t)0x7ffd7476, (q31_t)0xfe679a81, (q31_t)0x7ffd6042, (q31_t)0xfe615223, - (q31_t)0x7ffd4bc0, (q31_t)0xfe5b09c5, - (q31_t)0x7ffd36ee, (q31_t)0xfe54c169, (q31_t)0x7ffd21ce, (q31_t)0xfe4e790d, (q31_t)0x7ffd0c5f, (q31_t)0xfe4830b3, - (q31_t)0x7ffcf6a0, (q31_t)0xfe41e85a, - (q31_t)0x7ffce093, (q31_t)0xfe3ba002, (q31_t)0x7ffcca37, (q31_t)0xfe3557ab, (q31_t)0x7ffcb38c, (q31_t)0xfe2f0f55, - (q31_t)0x7ffc9c92, (q31_t)0xfe28c700, - (q31_t)0x7ffc8549, (q31_t)0xfe227eac, (q31_t)0x7ffc6db1, (q31_t)0xfe1c365a, (q31_t)0x7ffc55ca, (q31_t)0xfe15ee09, - (q31_t)0x7ffc3d94, (q31_t)0xfe0fa5b8, - (q31_t)0x7ffc250f, (q31_t)0xfe095d69, (q31_t)0x7ffc0c3b, (q31_t)0xfe03151c, (q31_t)0x7ffbf319, (q31_t)0xfdfccccf, - (q31_t)0x7ffbd9a7, (q31_t)0xfdf68484, - (q31_t)0x7ffbbfe6, (q31_t)0xfdf03c3a, (q31_t)0x7ffba5d7, (q31_t)0xfde9f3f1, (q31_t)0x7ffb8b78, (q31_t)0xfde3aba9, - (q31_t)0x7ffb70cb, (q31_t)0xfddd6363, - (q31_t)0x7ffb55ce, (q31_t)0xfdd71b1e, (q31_t)0x7ffb3a83, (q31_t)0xfdd0d2db, (q31_t)0x7ffb1ee9, (q31_t)0xfdca8a99, - (q31_t)0x7ffb0300, (q31_t)0xfdc44258, - (q31_t)0x7ffae6c7, (q31_t)0xfdbdfa18, (q31_t)0x7ffaca40, (q31_t)0xfdb7b1da, (q31_t)0x7ffaad6a, (q31_t)0xfdb1699e, - (q31_t)0x7ffa9045, (q31_t)0xfdab2162, - (q31_t)0x7ffa72d1, (q31_t)0xfda4d929, (q31_t)0x7ffa550e, (q31_t)0xfd9e90f0, (q31_t)0x7ffa36fc, (q31_t)0xfd9848b9, - (q31_t)0x7ffa189c, (q31_t)0xfd920084, - (q31_t)0x7ff9f9ec, (q31_t)0xfd8bb850, (q31_t)0x7ff9daed, (q31_t)0xfd85701e, (q31_t)0x7ff9bba0, (q31_t)0xfd7f27ed, - (q31_t)0x7ff99c03, (q31_t)0xfd78dfbd, - (q31_t)0x7ff97c18, (q31_t)0xfd729790, (q31_t)0x7ff95bdd, (q31_t)0xfd6c4f64, (q31_t)0x7ff93b54, (q31_t)0xfd660739, - (q31_t)0x7ff91a7b, (q31_t)0xfd5fbf10, - (q31_t)0x7ff8f954, (q31_t)0xfd5976e9, (q31_t)0x7ff8d7de, (q31_t)0xfd532ec3, (q31_t)0x7ff8b619, (q31_t)0xfd4ce69f, - (q31_t)0x7ff89405, (q31_t)0xfd469e7c, - (q31_t)0x7ff871a2, (q31_t)0xfd40565c, (q31_t)0x7ff84ef0, (q31_t)0xfd3a0e3d, (q31_t)0x7ff82bef, (q31_t)0xfd33c61f, - (q31_t)0x7ff8089f, (q31_t)0xfd2d7e04, - (q31_t)0x7ff7e500, (q31_t)0xfd2735ea, (q31_t)0x7ff7c113, (q31_t)0xfd20edd2, (q31_t)0x7ff79cd6, (q31_t)0xfd1aa5bc, - (q31_t)0x7ff7784a, (q31_t)0xfd145da7, - (q31_t)0x7ff75370, (q31_t)0xfd0e1594, (q31_t)0x7ff72e46, (q31_t)0xfd07cd83, (q31_t)0x7ff708ce, (q31_t)0xfd018574, - (q31_t)0x7ff6e307, (q31_t)0xfcfb3d67, - (q31_t)0x7ff6bcf0, (q31_t)0xfcf4f55c, (q31_t)0x7ff6968b, (q31_t)0xfceead52, (q31_t)0x7ff66fd7, (q31_t)0xfce8654b, - (q31_t)0x7ff648d4, (q31_t)0xfce21d45, - (q31_t)0x7ff62182, (q31_t)0xfcdbd541, (q31_t)0x7ff5f9e1, (q31_t)0xfcd58d3f, (q31_t)0x7ff5d1f1, (q31_t)0xfccf453f, - (q31_t)0x7ff5a9b2, (q31_t)0xfcc8fd41, - (q31_t)0x7ff58125, (q31_t)0xfcc2b545, (q31_t)0x7ff55848, (q31_t)0xfcbc6d4c, (q31_t)0x7ff52f1d, (q31_t)0xfcb62554, - (q31_t)0x7ff505a2, (q31_t)0xfcafdd5e, - (q31_t)0x7ff4dbd9, (q31_t)0xfca9956a, (q31_t)0x7ff4b1c0, (q31_t)0xfca34d78, (q31_t)0x7ff48759, (q31_t)0xfc9d0588, - (q31_t)0x7ff45ca3, (q31_t)0xfc96bd9b, - (q31_t)0x7ff4319d, (q31_t)0xfc9075af, (q31_t)0x7ff40649, (q31_t)0xfc8a2dc6, (q31_t)0x7ff3daa6, (q31_t)0xfc83e5de, - (q31_t)0x7ff3aeb4, (q31_t)0xfc7d9df9, - (q31_t)0x7ff38274, (q31_t)0xfc775616, (q31_t)0x7ff355e4, (q31_t)0xfc710e36, (q31_t)0x7ff32905, (q31_t)0xfc6ac657, - (q31_t)0x7ff2fbd7, (q31_t)0xfc647e7b, - (q31_t)0x7ff2ce5b, (q31_t)0xfc5e36a0, (q31_t)0x7ff2a08f, (q31_t)0xfc57eec9, (q31_t)0x7ff27275, (q31_t)0xfc51a6f3, - (q31_t)0x7ff2440b, (q31_t)0xfc4b5f20, - (q31_t)0x7ff21553, (q31_t)0xfc45174e, (q31_t)0x7ff1e64c, (q31_t)0xfc3ecf80, (q31_t)0x7ff1b6f6, (q31_t)0xfc3887b3, - (q31_t)0x7ff18751, (q31_t)0xfc323fe9, - (q31_t)0x7ff1575d, (q31_t)0xfc2bf821, (q31_t)0x7ff1271a, (q31_t)0xfc25b05c, (q31_t)0x7ff0f688, (q31_t)0xfc1f6899, - (q31_t)0x7ff0c5a7, (q31_t)0xfc1920d8, - (q31_t)0x7ff09478, (q31_t)0xfc12d91a, (q31_t)0x7ff062f9, (q31_t)0xfc0c915e, (q31_t)0x7ff0312c, (q31_t)0xfc0649a5, - (q31_t)0x7fefff0f, (q31_t)0xfc0001ee, - (q31_t)0x7fefcca4, (q31_t)0xfbf9ba39, (q31_t)0x7fef99ea, (q31_t)0xfbf37287, (q31_t)0x7fef66e1, (q31_t)0xfbed2ad8, - (q31_t)0x7fef3388, (q31_t)0xfbe6e32b, - (q31_t)0x7feeffe1, (q31_t)0xfbe09b80, (q31_t)0x7feecbec, (q31_t)0xfbda53d8, (q31_t)0x7fee97a7, (q31_t)0xfbd40c33, - (q31_t)0x7fee6313, (q31_t)0xfbcdc490, - (q31_t)0x7fee2e30, (q31_t)0xfbc77cf0, (q31_t)0x7fedf8ff, (q31_t)0xfbc13552, (q31_t)0x7fedc37e, (q31_t)0xfbbaedb7, - (q31_t)0x7fed8daf, (q31_t)0xfbb4a61f, - (q31_t)0x7fed5791, (q31_t)0xfbae5e89, (q31_t)0x7fed2123, (q31_t)0xfba816f6, (q31_t)0x7fecea67, (q31_t)0xfba1cf66, - (q31_t)0x7fecb35c, (q31_t)0xfb9b87d8, - (q31_t)0x7fec7c02, (q31_t)0xfb95404d, (q31_t)0x7fec4459, (q31_t)0xfb8ef8c5, (q31_t)0x7fec0c62, (q31_t)0xfb88b13f, - (q31_t)0x7febd41b, (q31_t)0xfb8269bd, - (q31_t)0x7feb9b85, (q31_t)0xfb7c223d, (q31_t)0x7feb62a1, (q31_t)0xfb75dac0, (q31_t)0x7feb296d, (q31_t)0xfb6f9345, - (q31_t)0x7feaefeb, (q31_t)0xfb694bce, - (q31_t)0x7feab61a, (q31_t)0xfb630459, (q31_t)0x7fea7bfa, (q31_t)0xfb5cbce7, (q31_t)0x7fea418b, (q31_t)0xfb567578, - (q31_t)0x7fea06cd, (q31_t)0xfb502e0c, - (q31_t)0x7fe9cbc0, (q31_t)0xfb49e6a3, (q31_t)0x7fe99064, (q31_t)0xfb439f3c, (q31_t)0x7fe954ba, (q31_t)0xfb3d57d9, - (q31_t)0x7fe918c0, (q31_t)0xfb371078, - (q31_t)0x7fe8dc78, (q31_t)0xfb30c91b, (q31_t)0x7fe89fe0, (q31_t)0xfb2a81c0, (q31_t)0x7fe862fa, (q31_t)0xfb243a69, - (q31_t)0x7fe825c5, (q31_t)0xfb1df314, - (q31_t)0x7fe7e841, (q31_t)0xfb17abc2, (q31_t)0x7fe7aa6e, (q31_t)0xfb116474, (q31_t)0x7fe76c4c, (q31_t)0xfb0b1d28, - (q31_t)0x7fe72ddb, (q31_t)0xfb04d5e0, - (q31_t)0x7fe6ef1c, (q31_t)0xfafe8e9b, (q31_t)0x7fe6b00d, (q31_t)0xfaf84758, (q31_t)0x7fe670b0, (q31_t)0xfaf20019, - (q31_t)0x7fe63103, (q31_t)0xfaebb8dd, - (q31_t)0x7fe5f108, (q31_t)0xfae571a4, (q31_t)0x7fe5b0be, (q31_t)0xfadf2a6e, (q31_t)0x7fe57025, (q31_t)0xfad8e33c, - (q31_t)0x7fe52f3d, (q31_t)0xfad29c0c, - (q31_t)0x7fe4ee06, (q31_t)0xfacc54e0, (q31_t)0x7fe4ac81, (q31_t)0xfac60db7, (q31_t)0x7fe46aac, (q31_t)0xfabfc691, - (q31_t)0x7fe42889, (q31_t)0xfab97f6e, - (q31_t)0x7fe3e616, (q31_t)0xfab3384f, (q31_t)0x7fe3a355, (q31_t)0xfaacf133, (q31_t)0x7fe36045, (q31_t)0xfaa6aa1a, - (q31_t)0x7fe31ce6, (q31_t)0xfaa06305, - (q31_t)0x7fe2d938, (q31_t)0xfa9a1bf3, (q31_t)0x7fe2953b, (q31_t)0xfa93d4e4, (q31_t)0x7fe250ef, (q31_t)0xfa8d8dd8, - (q31_t)0x7fe20c55, (q31_t)0xfa8746d0, - (q31_t)0x7fe1c76b, (q31_t)0xfa80ffcb, (q31_t)0x7fe18233, (q31_t)0xfa7ab8ca, (q31_t)0x7fe13cac, (q31_t)0xfa7471cc, - (q31_t)0x7fe0f6d6, (q31_t)0xfa6e2ad1, - (q31_t)0x7fe0b0b1, (q31_t)0xfa67e3da, (q31_t)0x7fe06a3d, (q31_t)0xfa619ce7, (q31_t)0x7fe0237a, (q31_t)0xfa5b55f7, - (q31_t)0x7fdfdc69, (q31_t)0xfa550f0a, - (q31_t)0x7fdf9508, (q31_t)0xfa4ec821, (q31_t)0x7fdf4d59, (q31_t)0xfa48813b, (q31_t)0x7fdf055a, (q31_t)0xfa423a59, - (q31_t)0x7fdebd0d, (q31_t)0xfa3bf37a, - (q31_t)0x7fde7471, (q31_t)0xfa35ac9f, (q31_t)0x7fde2b86, (q31_t)0xfa2f65c8, (q31_t)0x7fdde24d, (q31_t)0xfa291ef4, - (q31_t)0x7fdd98c4, (q31_t)0xfa22d823, - (q31_t)0x7fdd4eec, (q31_t)0xfa1c9157, (q31_t)0x7fdd04c6, (q31_t)0xfa164a8e, (q31_t)0x7fdcba51, (q31_t)0xfa1003c8, - (q31_t)0x7fdc6f8d, (q31_t)0xfa09bd06, - (q31_t)0x7fdc247a, (q31_t)0xfa037648, (q31_t)0x7fdbd918, (q31_t)0xf9fd2f8e, (q31_t)0x7fdb8d67, (q31_t)0xf9f6e8d7, - (q31_t)0x7fdb4167, (q31_t)0xf9f0a224, - (q31_t)0x7fdaf519, (q31_t)0xf9ea5b75, (q31_t)0x7fdaa87c, (q31_t)0xf9e414ca, (q31_t)0x7fda5b8f, (q31_t)0xf9ddce22, - (q31_t)0x7fda0e54, (q31_t)0xf9d7877e, - (q31_t)0x7fd9c0ca, (q31_t)0xf9d140de, (q31_t)0x7fd972f2, (q31_t)0xf9cafa42, (q31_t)0x7fd924ca, (q31_t)0xf9c4b3a9, - (q31_t)0x7fd8d653, (q31_t)0xf9be6d15, - (q31_t)0x7fd8878e, (q31_t)0xf9b82684, (q31_t)0x7fd8387a, (q31_t)0xf9b1dff7, (q31_t)0x7fd7e917, (q31_t)0xf9ab996e, - (q31_t)0x7fd79965, (q31_t)0xf9a552e9, - (q31_t)0x7fd74964, (q31_t)0xf99f0c68, (q31_t)0x7fd6f914, (q31_t)0xf998c5ea, (q31_t)0x7fd6a875, (q31_t)0xf9927f71, - (q31_t)0x7fd65788, (q31_t)0xf98c38fc, - (q31_t)0x7fd6064c, (q31_t)0xf985f28a, (q31_t)0x7fd5b4c1, (q31_t)0xf97fac1d, (q31_t)0x7fd562e7, (q31_t)0xf97965b4, - (q31_t)0x7fd510be, (q31_t)0xf9731f4e, - (q31_t)0x7fd4be46, (q31_t)0xf96cd8ed, (q31_t)0x7fd46b80, (q31_t)0xf9669290, (q31_t)0x7fd4186a, (q31_t)0xf9604c37, - (q31_t)0x7fd3c506, (q31_t)0xf95a05e2, - (q31_t)0x7fd37153, (q31_t)0xf953bf91, (q31_t)0x7fd31d51, (q31_t)0xf94d7944, (q31_t)0x7fd2c900, (q31_t)0xf94732fb, - (q31_t)0x7fd27460, (q31_t)0xf940ecb7, - (q31_t)0x7fd21f72, (q31_t)0xf93aa676, (q31_t)0x7fd1ca35, (q31_t)0xf934603a, (q31_t)0x7fd174a8, (q31_t)0xf92e1a02, - (q31_t)0x7fd11ecd, (q31_t)0xf927d3ce, - (q31_t)0x7fd0c8a3, (q31_t)0xf9218d9e, (q31_t)0x7fd0722b, (q31_t)0xf91b4773, (q31_t)0x7fd01b63, (q31_t)0xf915014c, - (q31_t)0x7fcfc44d, (q31_t)0xf90ebb29, - (q31_t)0x7fcf6ce8, (q31_t)0xf908750a, (q31_t)0x7fcf1533, (q31_t)0xf9022ef0, (q31_t)0x7fcebd31, (q31_t)0xf8fbe8da, - (q31_t)0x7fce64df, (q31_t)0xf8f5a2c9, - (q31_t)0x7fce0c3e, (q31_t)0xf8ef5cbb, (q31_t)0x7fcdb34f, (q31_t)0xf8e916b2, (q31_t)0x7fcd5a11, (q31_t)0xf8e2d0ae, - (q31_t)0x7fcd0083, (q31_t)0xf8dc8aae, - (q31_t)0x7fcca6a7, (q31_t)0xf8d644b2, (q31_t)0x7fcc4c7d, (q31_t)0xf8cffebb, (q31_t)0x7fcbf203, (q31_t)0xf8c9b8c8, - (q31_t)0x7fcb973b, (q31_t)0xf8c372d9, - (q31_t)0x7fcb3c23, (q31_t)0xf8bd2cef, (q31_t)0x7fcae0bd, (q31_t)0xf8b6e70a, (q31_t)0x7fca8508, (q31_t)0xf8b0a129, - (q31_t)0x7fca2905, (q31_t)0xf8aa5b4c, - (q31_t)0x7fc9ccb2, (q31_t)0xf8a41574, (q31_t)0x7fc97011, (q31_t)0xf89dcfa1, (q31_t)0x7fc91320, (q31_t)0xf89789d2, - (q31_t)0x7fc8b5e1, (q31_t)0xf8914407, - (q31_t)0x7fc85854, (q31_t)0xf88afe42, (q31_t)0x7fc7fa77, (q31_t)0xf884b880, (q31_t)0x7fc79c4b, (q31_t)0xf87e72c4, - (q31_t)0x7fc73dd1, (q31_t)0xf8782d0c, - (q31_t)0x7fc6df08, (q31_t)0xf871e759, (q31_t)0x7fc67ff0, (q31_t)0xf86ba1aa, (q31_t)0x7fc62089, (q31_t)0xf8655c00, - (q31_t)0x7fc5c0d3, (q31_t)0xf85f165b, - (q31_t)0x7fc560cf, (q31_t)0xf858d0bb, (q31_t)0x7fc5007c, (q31_t)0xf8528b1f, (q31_t)0x7fc49fda, (q31_t)0xf84c4588, - (q31_t)0x7fc43ee9, (q31_t)0xf845fff5, - (q31_t)0x7fc3dda9, (q31_t)0xf83fba68, (q31_t)0x7fc37c1b, (q31_t)0xf83974df, (q31_t)0x7fc31a3d, (q31_t)0xf8332f5b, - (q31_t)0x7fc2b811, (q31_t)0xf82ce9dc, - (q31_t)0x7fc25596, (q31_t)0xf826a462, (q31_t)0x7fc1f2cc, (q31_t)0xf8205eec, (q31_t)0x7fc18fb4, (q31_t)0xf81a197b, - (q31_t)0x7fc12c4d, (q31_t)0xf813d410, - (q31_t)0x7fc0c896, (q31_t)0xf80d8ea9, (q31_t)0x7fc06491, (q31_t)0xf8074947, (q31_t)0x7fc0003e, (q31_t)0xf80103ea, - (q31_t)0x7fbf9b9b, (q31_t)0xf7fabe92, - (q31_t)0x7fbf36aa, (q31_t)0xf7f4793e, (q31_t)0x7fbed16a, (q31_t)0xf7ee33f0, (q31_t)0x7fbe6bdb, (q31_t)0xf7e7eea7, - (q31_t)0x7fbe05fd, (q31_t)0xf7e1a963, - (q31_t)0x7fbd9fd0, (q31_t)0xf7db6423, (q31_t)0x7fbd3955, (q31_t)0xf7d51ee9, (q31_t)0x7fbcd28b, (q31_t)0xf7ced9b4, - (q31_t)0x7fbc6b72, (q31_t)0xf7c89484, - (q31_t)0x7fbc040a, (q31_t)0xf7c24f59, (q31_t)0x7fbb9c53, (q31_t)0xf7bc0a33, (q31_t)0x7fbb344e, (q31_t)0xf7b5c512, - (q31_t)0x7fbacbfa, (q31_t)0xf7af7ff6, - (q31_t)0x7fba6357, (q31_t)0xf7a93ae0, (q31_t)0x7fb9fa65, (q31_t)0xf7a2f5ce, (q31_t)0x7fb99125, (q31_t)0xf79cb0c2, - (q31_t)0x7fb92796, (q31_t)0xf7966bbb, - (q31_t)0x7fb8bdb8, (q31_t)0xf79026b9, (q31_t)0x7fb8538b, (q31_t)0xf789e1bc, (q31_t)0x7fb7e90f, (q31_t)0xf7839cc4, - (q31_t)0x7fb77e45, (q31_t)0xf77d57d2, - (q31_t)0x7fb7132b, (q31_t)0xf77712e5, (q31_t)0x7fb6a7c3, (q31_t)0xf770cdfd, (q31_t)0x7fb63c0d, (q31_t)0xf76a891b, - (q31_t)0x7fb5d007, (q31_t)0xf764443d, - (q31_t)0x7fb563b3, (q31_t)0xf75dff66, (q31_t)0x7fb4f710, (q31_t)0xf757ba93, (q31_t)0x7fb48a1e, (q31_t)0xf75175c6, - (q31_t)0x7fb41cdd, (q31_t)0xf74b30fe, - (q31_t)0x7fb3af4e, (q31_t)0xf744ec3b, (q31_t)0x7fb34170, (q31_t)0xf73ea77e, (q31_t)0x7fb2d343, (q31_t)0xf73862c6, - (q31_t)0x7fb264c7, (q31_t)0xf7321e14, - (q31_t)0x7fb1f5fc, (q31_t)0xf72bd967, (q31_t)0x7fb186e3, (q31_t)0xf72594c0, (q31_t)0x7fb1177b, (q31_t)0xf71f501e, - (q31_t)0x7fb0a7c4, (q31_t)0xf7190b81, - (q31_t)0x7fb037bf, (q31_t)0xf712c6ea, (q31_t)0x7fafc76a, (q31_t)0xf70c8259, (q31_t)0x7faf56c7, (q31_t)0xf7063dcd, - (q31_t)0x7faee5d5, (q31_t)0xf6fff946, - (q31_t)0x7fae7495, (q31_t)0xf6f9b4c6, (q31_t)0x7fae0305, (q31_t)0xf6f3704a, (q31_t)0x7fad9127, (q31_t)0xf6ed2bd4, - (q31_t)0x7fad1efa, (q31_t)0xf6e6e764, - (q31_t)0x7facac7f, (q31_t)0xf6e0a2fa, (q31_t)0x7fac39b4, (q31_t)0xf6da5e95, (q31_t)0x7fabc69b, (q31_t)0xf6d41a36, - (q31_t)0x7fab5333, (q31_t)0xf6cdd5dc, - (q31_t)0x7faadf7c, (q31_t)0xf6c79188, (q31_t)0x7faa6b77, (q31_t)0xf6c14d3a, (q31_t)0x7fa9f723, (q31_t)0xf6bb08f1, - (q31_t)0x7fa98280, (q31_t)0xf6b4c4ae, - (q31_t)0x7fa90d8e, (q31_t)0xf6ae8071, (q31_t)0x7fa8984e, (q31_t)0xf6a83c3a, (q31_t)0x7fa822bf, (q31_t)0xf6a1f808, - (q31_t)0x7fa7ace1, (q31_t)0xf69bb3dd, - (q31_t)0x7fa736b4, (q31_t)0xf6956fb7, (q31_t)0x7fa6c039, (q31_t)0xf68f2b96, (q31_t)0x7fa6496e, (q31_t)0xf688e77c, - (q31_t)0x7fa5d256, (q31_t)0xf682a367, - (q31_t)0x7fa55aee, (q31_t)0xf67c5f59, (q31_t)0x7fa4e338, (q31_t)0xf6761b50, (q31_t)0x7fa46b32, (q31_t)0xf66fd74d, - (q31_t)0x7fa3f2df, (q31_t)0xf6699350, - (q31_t)0x7fa37a3c, (q31_t)0xf6634f59, (q31_t)0x7fa3014b, (q31_t)0xf65d0b68, (q31_t)0x7fa2880b, (q31_t)0xf656c77c, - (q31_t)0x7fa20e7c, (q31_t)0xf6508397, - (q31_t)0x7fa1949e, (q31_t)0xf64a3fb8, (q31_t)0x7fa11a72, (q31_t)0xf643fbdf, (q31_t)0x7fa09ff7, (q31_t)0xf63db80b, - (q31_t)0x7fa0252e, (q31_t)0xf637743e, - (q31_t)0x7f9faa15, (q31_t)0xf6313077, (q31_t)0x7f9f2eae, (q31_t)0xf62aecb5, (q31_t)0x7f9eb2f8, (q31_t)0xf624a8fa, - (q31_t)0x7f9e36f4, (q31_t)0xf61e6545, - (q31_t)0x7f9dbaa0, (q31_t)0xf6182196, (q31_t)0x7f9d3dfe, (q31_t)0xf611dded, (q31_t)0x7f9cc10d, (q31_t)0xf60b9a4b, - (q31_t)0x7f9c43ce, (q31_t)0xf60556ae, - (q31_t)0x7f9bc640, (q31_t)0xf5ff1318, (q31_t)0x7f9b4863, (q31_t)0xf5f8cf87, (q31_t)0x7f9aca37, (q31_t)0xf5f28bfd, - (q31_t)0x7f9a4bbd, (q31_t)0xf5ec4879, - (q31_t)0x7f99ccf4, (q31_t)0xf5e604fc, (q31_t)0x7f994ddc, (q31_t)0xf5dfc184, (q31_t)0x7f98ce76, (q31_t)0xf5d97e13, - (q31_t)0x7f984ec1, (q31_t)0xf5d33aa8, - (q31_t)0x7f97cebd, (q31_t)0xf5ccf743, (q31_t)0x7f974e6a, (q31_t)0xf5c6b3e5, (q31_t)0x7f96cdc9, (q31_t)0xf5c0708d, - (q31_t)0x7f964cd9, (q31_t)0xf5ba2d3b, - (q31_t)0x7f95cb9a, (q31_t)0xf5b3e9f0, (q31_t)0x7f954a0d, (q31_t)0xf5ada6ab, (q31_t)0x7f94c831, (q31_t)0xf5a7636c, - (q31_t)0x7f944606, (q31_t)0xf5a12034, - (q31_t)0x7f93c38c, (q31_t)0xf59add02, (q31_t)0x7f9340c4, (q31_t)0xf59499d6, (q31_t)0x7f92bdad, (q31_t)0xf58e56b1, - (q31_t)0x7f923a48, (q31_t)0xf5881393, - (q31_t)0x7f91b694, (q31_t)0xf581d07b, (q31_t)0x7f913291, (q31_t)0xf57b8d69, (q31_t)0x7f90ae3f, (q31_t)0xf5754a5e, - (q31_t)0x7f90299f, (q31_t)0xf56f0759, - (q31_t)0x7f8fa4b0, (q31_t)0xf568c45b, (q31_t)0x7f8f1f72, (q31_t)0xf5628163, (q31_t)0x7f8e99e6, (q31_t)0xf55c3e72, - (q31_t)0x7f8e140a, (q31_t)0xf555fb88, - (q31_t)0x7f8d8de1, (q31_t)0xf54fb8a4, (q31_t)0x7f8d0768, (q31_t)0xf54975c6, (q31_t)0x7f8c80a1, (q31_t)0xf54332ef, - (q31_t)0x7f8bf98b, (q31_t)0xf53cf01f, - (q31_t)0x7f8b7227, (q31_t)0xf536ad56, (q31_t)0x7f8aea74, (q31_t)0xf5306a93, (q31_t)0x7f8a6272, (q31_t)0xf52a27d7, - (q31_t)0x7f89da21, (q31_t)0xf523e521, - (q31_t)0x7f895182, (q31_t)0xf51da273, (q31_t)0x7f88c894, (q31_t)0xf5175fca, (q31_t)0x7f883f58, (q31_t)0xf5111d29, - (q31_t)0x7f87b5cd, (q31_t)0xf50ada8f, - (q31_t)0x7f872bf3, (q31_t)0xf50497fb, (q31_t)0x7f86a1ca, (q31_t)0xf4fe556e, (q31_t)0x7f861753, (q31_t)0xf4f812e7, - (q31_t)0x7f858c8d, (q31_t)0xf4f1d068, - (q31_t)0x7f850179, (q31_t)0xf4eb8def, (q31_t)0x7f847616, (q31_t)0xf4e54b7d, (q31_t)0x7f83ea64, (q31_t)0xf4df0912, - (q31_t)0x7f835e64, (q31_t)0xf4d8c6ae, - (q31_t)0x7f82d214, (q31_t)0xf4d28451, (q31_t)0x7f824577, (q31_t)0xf4cc41fb, (q31_t)0x7f81b88a, (q31_t)0xf4c5ffab, - (q31_t)0x7f812b4f, (q31_t)0xf4bfbd63, - (q31_t)0x7f809dc5, (q31_t)0xf4b97b21, (q31_t)0x7f800fed, (q31_t)0xf4b338e7, (q31_t)0x7f7f81c6, (q31_t)0xf4acf6b3, - (q31_t)0x7f7ef350, (q31_t)0xf4a6b486, - (q31_t)0x7f7e648c, (q31_t)0xf4a07261, (q31_t)0x7f7dd579, (q31_t)0xf49a3042, (q31_t)0x7f7d4617, (q31_t)0xf493ee2b, - (q31_t)0x7f7cb667, (q31_t)0xf48dac1a, - (q31_t)0x7f7c2668, (q31_t)0xf4876a10, (q31_t)0x7f7b961b, (q31_t)0xf481280e, (q31_t)0x7f7b057e, (q31_t)0xf47ae613, - (q31_t)0x7f7a7494, (q31_t)0xf474a41f, - (q31_t)0x7f79e35a, (q31_t)0xf46e6231, (q31_t)0x7f7951d2, (q31_t)0xf468204b, (q31_t)0x7f78bffb, (q31_t)0xf461de6d, - (q31_t)0x7f782dd6, (q31_t)0xf45b9c95, - (q31_t)0x7f779b62, (q31_t)0xf4555ac5, (q31_t)0x7f77089f, (q31_t)0xf44f18fb, (q31_t)0x7f76758e, (q31_t)0xf448d739, - (q31_t)0x7f75e22e, (q31_t)0xf442957e, - (q31_t)0x7f754e80, (q31_t)0xf43c53cb, (q31_t)0x7f74ba83, (q31_t)0xf436121e, (q31_t)0x7f742637, (q31_t)0xf42fd079, - (q31_t)0x7f73919d, (q31_t)0xf4298edc, - (q31_t)0x7f72fcb4, (q31_t)0xf4234d45, (q31_t)0x7f72677c, (q31_t)0xf41d0bb6, (q31_t)0x7f71d1f6, (q31_t)0xf416ca2e, - (q31_t)0x7f713c21, (q31_t)0xf41088ae, - (q31_t)0x7f70a5fe, (q31_t)0xf40a4735, (q31_t)0x7f700f8c, (q31_t)0xf40405c3, (q31_t)0x7f6f78cb, (q31_t)0xf3fdc459, - (q31_t)0x7f6ee1bc, (q31_t)0xf3f782f6, - (q31_t)0x7f6e4a5e, (q31_t)0xf3f1419a, (q31_t)0x7f6db2b1, (q31_t)0xf3eb0046, (q31_t)0x7f6d1ab6, (q31_t)0xf3e4bef9, - (q31_t)0x7f6c826d, (q31_t)0xf3de7db4, - (q31_t)0x7f6be9d4, (q31_t)0xf3d83c77, (q31_t)0x7f6b50ed, (q31_t)0xf3d1fb40, (q31_t)0x7f6ab7b8, (q31_t)0xf3cbba12, - (q31_t)0x7f6a1e34, (q31_t)0xf3c578eb, - (q31_t)0x7f698461, (q31_t)0xf3bf37cb, (q31_t)0x7f68ea40, (q31_t)0xf3b8f6b3, (q31_t)0x7f684fd0, (q31_t)0xf3b2b5a3, - (q31_t)0x7f67b512, (q31_t)0xf3ac749a, - (q31_t)0x7f671a05, (q31_t)0xf3a63398, (q31_t)0x7f667ea9, (q31_t)0xf39ff29f, (q31_t)0x7f65e2ff, (q31_t)0xf399b1ad, - (q31_t)0x7f654706, (q31_t)0xf39370c2, - (q31_t)0x7f64aabf, (q31_t)0xf38d2fe0, (q31_t)0x7f640e29, (q31_t)0xf386ef05, (q31_t)0x7f637144, (q31_t)0xf380ae31, - (q31_t)0x7f62d411, (q31_t)0xf37a6d66, - (q31_t)0x7f62368f, (q31_t)0xf3742ca2, (q31_t)0x7f6198bf, (q31_t)0xf36debe6, (q31_t)0x7f60faa0, (q31_t)0xf367ab31, - (q31_t)0x7f605c33, (q31_t)0xf3616a85, - (q31_t)0x7f5fbd77, (q31_t)0xf35b29e0, (q31_t)0x7f5f1e6c, (q31_t)0xf354e943, (q31_t)0x7f5e7f13, (q31_t)0xf34ea8ae, - (q31_t)0x7f5ddf6b, (q31_t)0xf3486820, - (q31_t)0x7f5d3f75, (q31_t)0xf342279b, (q31_t)0x7f5c9f30, (q31_t)0xf33be71d, (q31_t)0x7f5bfe9d, (q31_t)0xf335a6a7, - (q31_t)0x7f5b5dbb, (q31_t)0xf32f6639, - (q31_t)0x7f5abc8a, (q31_t)0xf32925d3, (q31_t)0x7f5a1b0b, (q31_t)0xf322e575, (q31_t)0x7f59793e, (q31_t)0xf31ca51f, - (q31_t)0x7f58d721, (q31_t)0xf31664d1, - (q31_t)0x7f5834b7, (q31_t)0xf310248a, (q31_t)0x7f5791fd, (q31_t)0xf309e44c, (q31_t)0x7f56eef5, (q31_t)0xf303a416, - (q31_t)0x7f564b9f, (q31_t)0xf2fd63e8, - (q31_t)0x7f55a7fa, (q31_t)0xf2f723c1, (q31_t)0x7f550407, (q31_t)0xf2f0e3a3, (q31_t)0x7f545fc5, (q31_t)0xf2eaa38d, - (q31_t)0x7f53bb34, (q31_t)0xf2e4637f, - (q31_t)0x7f531655, (q31_t)0xf2de2379, (q31_t)0x7f527127, (q31_t)0xf2d7e37b, (q31_t)0x7f51cbab, (q31_t)0xf2d1a385, - (q31_t)0x7f5125e0, (q31_t)0xf2cb6398, - (q31_t)0x7f507fc7, (q31_t)0xf2c523b2, (q31_t)0x7f4fd95f, (q31_t)0xf2bee3d5, (q31_t)0x7f4f32a9, (q31_t)0xf2b8a400, - (q31_t)0x7f4e8ba4, (q31_t)0xf2b26433, - (q31_t)0x7f4de451, (q31_t)0xf2ac246e, (q31_t)0x7f4d3caf, (q31_t)0xf2a5e4b1, (q31_t)0x7f4c94be, (q31_t)0xf29fa4fd, - (q31_t)0x7f4bec7f, (q31_t)0xf2996551, - (q31_t)0x7f4b43f2, (q31_t)0xf29325ad, (q31_t)0x7f4a9b16, (q31_t)0xf28ce612, (q31_t)0x7f49f1eb, (q31_t)0xf286a67e, - (q31_t)0x7f494872, (q31_t)0xf28066f4, - (q31_t)0x7f489eaa, (q31_t)0xf27a2771, (q31_t)0x7f47f494, (q31_t)0xf273e7f7, (q31_t)0x7f474a30, (q31_t)0xf26da885, - (q31_t)0x7f469f7d, (q31_t)0xf267691b, - (q31_t)0x7f45f47b, (q31_t)0xf26129ba, (q31_t)0x7f45492b, (q31_t)0xf25aea61, (q31_t)0x7f449d8c, (q31_t)0xf254ab11, - (q31_t)0x7f43f19f, (q31_t)0xf24e6bc9, - (q31_t)0x7f434563, (q31_t)0xf2482c8a, (q31_t)0x7f4298d9, (q31_t)0xf241ed53, (q31_t)0x7f41ec01, (q31_t)0xf23bae24, - (q31_t)0x7f413ed9, (q31_t)0xf2356efe, - (q31_t)0x7f409164, (q31_t)0xf22f2fe1, (q31_t)0x7f3fe3a0, (q31_t)0xf228f0cc, (q31_t)0x7f3f358d, (q31_t)0xf222b1c0, - (q31_t)0x7f3e872c, (q31_t)0xf21c72bc, - (q31_t)0x7f3dd87c, (q31_t)0xf21633c0, (q31_t)0x7f3d297e, (q31_t)0xf20ff4ce, (q31_t)0x7f3c7a31, (q31_t)0xf209b5e4, - (q31_t)0x7f3bca96, (q31_t)0xf2037702, - (q31_t)0x7f3b1aad, (q31_t)0xf1fd3829, (q31_t)0x7f3a6a75, (q31_t)0xf1f6f959, (q31_t)0x7f39b9ee, (q31_t)0xf1f0ba91, - (q31_t)0x7f390919, (q31_t)0xf1ea7bd2, - (q31_t)0x7f3857f6, (q31_t)0xf1e43d1c, (q31_t)0x7f37a684, (q31_t)0xf1ddfe6f, (q31_t)0x7f36f4c3, (q31_t)0xf1d7bfca, - (q31_t)0x7f3642b4, (q31_t)0xf1d1812e, - (q31_t)0x7f359057, (q31_t)0xf1cb429a, (q31_t)0x7f34ddab, (q31_t)0xf1c50410, (q31_t)0x7f342ab1, (q31_t)0xf1bec58e, - (q31_t)0x7f337768, (q31_t)0xf1b88715, - (q31_t)0x7f32c3d1, (q31_t)0xf1b248a5, (q31_t)0x7f320feb, (q31_t)0xf1ac0a3e, (q31_t)0x7f315bb7, (q31_t)0xf1a5cbdf, - (q31_t)0x7f30a734, (q31_t)0xf19f8d89, - (q31_t)0x7f2ff263, (q31_t)0xf1994f3d, (q31_t)0x7f2f3d44, (q31_t)0xf19310f9, (q31_t)0x7f2e87d6, (q31_t)0xf18cd2be, - (q31_t)0x7f2dd219, (q31_t)0xf186948c, - (q31_t)0x7f2d1c0e, (q31_t)0xf1805662, (q31_t)0x7f2c65b5, (q31_t)0xf17a1842, (q31_t)0x7f2baf0d, (q31_t)0xf173da2b, - (q31_t)0x7f2af817, (q31_t)0xf16d9c1d, - (q31_t)0x7f2a40d2, (q31_t)0xf1675e17, (q31_t)0x7f29893f, (q31_t)0xf161201b, (q31_t)0x7f28d15d, (q31_t)0xf15ae228, - (q31_t)0x7f28192d, (q31_t)0xf154a43d, - (q31_t)0x7f2760af, (q31_t)0xf14e665c, (q31_t)0x7f26a7e2, (q31_t)0xf1482884, (q31_t)0x7f25eec7, (q31_t)0xf141eab5, - (q31_t)0x7f25355d, (q31_t)0xf13bacef, - (q31_t)0x7f247ba5, (q31_t)0xf1356f32, (q31_t)0x7f23c19e, (q31_t)0xf12f317e, (q31_t)0x7f230749, (q31_t)0xf128f3d4, - (q31_t)0x7f224ca6, (q31_t)0xf122b632, - (q31_t)0x7f2191b4, (q31_t)0xf11c789a, (q31_t)0x7f20d674, (q31_t)0xf1163b0b, (q31_t)0x7f201ae5, (q31_t)0xf10ffd85, - (q31_t)0x7f1f5f08, (q31_t)0xf109c009, - (q31_t)0x7f1ea2dc, (q31_t)0xf1038295, (q31_t)0x7f1de662, (q31_t)0xf0fd452b, (q31_t)0x7f1d299a, (q31_t)0xf0f707ca, - (q31_t)0x7f1c6c83, (q31_t)0xf0f0ca72, - (q31_t)0x7f1baf1e, (q31_t)0xf0ea8d24, (q31_t)0x7f1af16a, (q31_t)0xf0e44fdf, (q31_t)0x7f1a3368, (q31_t)0xf0de12a3, - (q31_t)0x7f197518, (q31_t)0xf0d7d571, - (q31_t)0x7f18b679, (q31_t)0xf0d19848, (q31_t)0x7f17f78c, (q31_t)0xf0cb5b28, (q31_t)0x7f173850, (q31_t)0xf0c51e12, - (q31_t)0x7f1678c6, (q31_t)0xf0bee105, - (q31_t)0x7f15b8ee, (q31_t)0xf0b8a401, (q31_t)0x7f14f8c7, (q31_t)0xf0b26707, (q31_t)0x7f143852, (q31_t)0xf0ac2a16, - (q31_t)0x7f13778e, (q31_t)0xf0a5ed2f, - (q31_t)0x7f12b67c, (q31_t)0xf09fb051, (q31_t)0x7f11f51c, (q31_t)0xf099737d, (q31_t)0x7f11336d, (q31_t)0xf09336b2, - (q31_t)0x7f107170, (q31_t)0xf08cf9f1, - (q31_t)0x7f0faf25, (q31_t)0xf086bd39, (q31_t)0x7f0eec8b, (q31_t)0xf080808b, (q31_t)0x7f0e29a3, (q31_t)0xf07a43e7, - (q31_t)0x7f0d666c, (q31_t)0xf074074c, - (q31_t)0x7f0ca2e7, (q31_t)0xf06dcaba, (q31_t)0x7f0bdf14, (q31_t)0xf0678e32, (q31_t)0x7f0b1af2, (q31_t)0xf06151b4, - (q31_t)0x7f0a5682, (q31_t)0xf05b1540, - (q31_t)0x7f0991c4, (q31_t)0xf054d8d5, (q31_t)0x7f08ccb7, (q31_t)0xf04e9c73, (q31_t)0x7f08075c, (q31_t)0xf048601c, - (q31_t)0x7f0741b2, (q31_t)0xf04223ce, - (q31_t)0x7f067bba, (q31_t)0xf03be78a, (q31_t)0x7f05b574, (q31_t)0xf035ab4f, (q31_t)0x7f04eedf, (q31_t)0xf02f6f1f, - (q31_t)0x7f0427fc, (q31_t)0xf02932f8, - (q31_t)0x7f0360cb, (q31_t)0xf022f6da, (q31_t)0x7f02994b, (q31_t)0xf01cbac7, (q31_t)0x7f01d17d, (q31_t)0xf0167ebd, - (q31_t)0x7f010961, (q31_t)0xf01042be, - (q31_t)0x7f0040f6, (q31_t)0xf00a06c8, (q31_t)0x7eff783d, (q31_t)0xf003cadc, (q31_t)0x7efeaf36, (q31_t)0xeffd8ef9, - (q31_t)0x7efde5e0, (q31_t)0xeff75321, - (q31_t)0x7efd1c3c, (q31_t)0xeff11753, (q31_t)0x7efc524a, (q31_t)0xefeadb8e, (q31_t)0x7efb8809, (q31_t)0xefe49fd3, - (q31_t)0x7efabd7a, (q31_t)0xefde6423, - (q31_t)0x7ef9f29d, (q31_t)0xefd8287c, (q31_t)0x7ef92771, (q31_t)0xefd1ecdf, (q31_t)0x7ef85bf7, (q31_t)0xefcbb14c, - (q31_t)0x7ef7902f, (q31_t)0xefc575c3, - (q31_t)0x7ef6c418, (q31_t)0xefbf3a45, (q31_t)0x7ef5f7b3, (q31_t)0xefb8fed0, (q31_t)0x7ef52b00, (q31_t)0xefb2c365, - (q31_t)0x7ef45dfe, (q31_t)0xefac8804, - (q31_t)0x7ef390ae, (q31_t)0xefa64cae, (q31_t)0x7ef2c310, (q31_t)0xefa01161, (q31_t)0x7ef1f524, (q31_t)0xef99d61f, - (q31_t)0x7ef126e9, (q31_t)0xef939ae6, - (q31_t)0x7ef05860, (q31_t)0xef8d5fb8, (q31_t)0x7eef8988, (q31_t)0xef872494, (q31_t)0x7eeeba62, (q31_t)0xef80e97a, - (q31_t)0x7eedeaee, (q31_t)0xef7aae6b, - (q31_t)0x7eed1b2c, (q31_t)0xef747365, (q31_t)0x7eec4b1b, (q31_t)0xef6e386a, (q31_t)0x7eeb7abc, (q31_t)0xef67fd79, - (q31_t)0x7eeaaa0f, (q31_t)0xef61c292, - (q31_t)0x7ee9d914, (q31_t)0xef5b87b5, (q31_t)0x7ee907ca, (q31_t)0xef554ce3, (q31_t)0x7ee83632, (q31_t)0xef4f121b, - (q31_t)0x7ee7644c, (q31_t)0xef48d75d, - (q31_t)0x7ee69217, (q31_t)0xef429caa, (q31_t)0x7ee5bf94, (q31_t)0xef3c6201, (q31_t)0x7ee4ecc3, (q31_t)0xef362762, - (q31_t)0x7ee419a3, (q31_t)0xef2feccd, - (q31_t)0x7ee34636, (q31_t)0xef29b243, (q31_t)0x7ee2727a, (q31_t)0xef2377c4, (q31_t)0x7ee19e6f, (q31_t)0xef1d3d4e, - (q31_t)0x7ee0ca17, (q31_t)0xef1702e4, - (q31_t)0x7edff570, (q31_t)0xef10c883, (q31_t)0x7edf207b, (q31_t)0xef0a8e2d, (q31_t)0x7ede4b38, (q31_t)0xef0453e2, - (q31_t)0x7edd75a6, (q31_t)0xeefe19a1, - (q31_t)0x7edc9fc6, (q31_t)0xeef7df6a, (q31_t)0x7edbc998, (q31_t)0xeef1a53e, (q31_t)0x7edaf31c, (q31_t)0xeeeb6b1c, - (q31_t)0x7eda1c51, (q31_t)0xeee53105, - (q31_t)0x7ed94538, (q31_t)0xeedef6f9, (q31_t)0x7ed86dd1, (q31_t)0xeed8bcf7, (q31_t)0x7ed7961c, (q31_t)0xeed28300, - (q31_t)0x7ed6be18, (q31_t)0xeecc4913, - (q31_t)0x7ed5e5c6, (q31_t)0xeec60f31, (q31_t)0x7ed50d26, (q31_t)0xeebfd55a, (q31_t)0x7ed43438, (q31_t)0xeeb99b8d, - (q31_t)0x7ed35afb, (q31_t)0xeeb361cb, - (q31_t)0x7ed28171, (q31_t)0xeead2813, (q31_t)0x7ed1a798, (q31_t)0xeea6ee66, (q31_t)0x7ed0cd70, (q31_t)0xeea0b4c4, - (q31_t)0x7ecff2fb, (q31_t)0xee9a7b2d, - (q31_t)0x7ecf1837, (q31_t)0xee9441a0, (q31_t)0x7ece3d25, (q31_t)0xee8e081e, (q31_t)0x7ecd61c5, (q31_t)0xee87cea7, - (q31_t)0x7ecc8617, (q31_t)0xee81953b, - (q31_t)0x7ecbaa1a, (q31_t)0xee7b5bd9, (q31_t)0x7ecacdd0, (q31_t)0xee752283, (q31_t)0x7ec9f137, (q31_t)0xee6ee937, - (q31_t)0x7ec9144f, (q31_t)0xee68aff6, - (q31_t)0x7ec8371a, (q31_t)0xee6276bf, (q31_t)0x7ec75996, (q31_t)0xee5c3d94, (q31_t)0x7ec67bc5, (q31_t)0xee560473, - (q31_t)0x7ec59da5, (q31_t)0xee4fcb5e, - (q31_t)0x7ec4bf36, (q31_t)0xee499253, (q31_t)0x7ec3e07a, (q31_t)0xee435953, (q31_t)0x7ec3016f, (q31_t)0xee3d205e, - (q31_t)0x7ec22217, (q31_t)0xee36e775, - (q31_t)0x7ec14270, (q31_t)0xee30ae96, (q31_t)0x7ec0627a, (q31_t)0xee2a75c2, (q31_t)0x7ebf8237, (q31_t)0xee243cf9, - (q31_t)0x7ebea1a6, (q31_t)0xee1e043b, - (q31_t)0x7ebdc0c6, (q31_t)0xee17cb88, (q31_t)0x7ebcdf98, (q31_t)0xee1192e0, (q31_t)0x7ebbfe1c, (q31_t)0xee0b5a43, - (q31_t)0x7ebb1c52, (q31_t)0xee0521b2, - (q31_t)0x7eba3a39, (q31_t)0xedfee92b, (q31_t)0x7eb957d2, (q31_t)0xedf8b0b0, (q31_t)0x7eb8751e, (q31_t)0xedf2783f, - (q31_t)0x7eb7921b, (q31_t)0xedec3fda, - (q31_t)0x7eb6aeca, (q31_t)0xede60780, (q31_t)0x7eb5cb2a, (q31_t)0xeddfcf31, (q31_t)0x7eb4e73d, (q31_t)0xedd996ed, - (q31_t)0x7eb40301, (q31_t)0xedd35eb5, - (q31_t)0x7eb31e78, (q31_t)0xedcd2687, (q31_t)0x7eb239a0, (q31_t)0xedc6ee65, (q31_t)0x7eb1547a, (q31_t)0xedc0b64e, - (q31_t)0x7eb06f05, (q31_t)0xedba7e43, - (q31_t)0x7eaf8943, (q31_t)0xedb44642, (q31_t)0x7eaea333, (q31_t)0xedae0e4d, (q31_t)0x7eadbcd4, (q31_t)0xeda7d664, - (q31_t)0x7eacd627, (q31_t)0xeda19e85, - (q31_t)0x7eabef2c, (q31_t)0xed9b66b2, (q31_t)0x7eab07e3, (q31_t)0xed952eea, (q31_t)0x7eaa204c, (q31_t)0xed8ef72e, - (q31_t)0x7ea93867, (q31_t)0xed88bf7d, - (q31_t)0x7ea85033, (q31_t)0xed8287d7, (q31_t)0x7ea767b2, (q31_t)0xed7c503d, (q31_t)0x7ea67ee2, (q31_t)0xed7618ae, - (q31_t)0x7ea595c4, (q31_t)0xed6fe12b, - (q31_t)0x7ea4ac58, (q31_t)0xed69a9b3, (q31_t)0x7ea3c29e, (q31_t)0xed637246, (q31_t)0x7ea2d896, (q31_t)0xed5d3ae5, - (q31_t)0x7ea1ee3f, (q31_t)0xed570390, - (q31_t)0x7ea1039b, (q31_t)0xed50cc46, (q31_t)0x7ea018a8, (q31_t)0xed4a9507, (q31_t)0x7e9f2d68, (q31_t)0xed445dd5, - (q31_t)0x7e9e41d9, (q31_t)0xed3e26ad, - (q31_t)0x7e9d55fc, (q31_t)0xed37ef91, (q31_t)0x7e9c69d1, (q31_t)0xed31b881, (q31_t)0x7e9b7d58, (q31_t)0xed2b817d, - (q31_t)0x7e9a9091, (q31_t)0xed254a84, - (q31_t)0x7e99a37c, (q31_t)0xed1f1396, (q31_t)0x7e98b618, (q31_t)0xed18dcb5, (q31_t)0x7e97c867, (q31_t)0xed12a5df, - (q31_t)0x7e96da67, (q31_t)0xed0c6f14, - (q31_t)0x7e95ec1a, (q31_t)0xed063856, (q31_t)0x7e94fd7e, (q31_t)0xed0001a3, (q31_t)0x7e940e94, (q31_t)0xecf9cafb, - (q31_t)0x7e931f5c, (q31_t)0xecf39460, - (q31_t)0x7e922fd6, (q31_t)0xeced5dd0, (q31_t)0x7e914002, (q31_t)0xece7274c, (q31_t)0x7e904fe0, (q31_t)0xece0f0d4, - (q31_t)0x7e8f5f70, (q31_t)0xecdaba67, - (q31_t)0x7e8e6eb2, (q31_t)0xecd48407, (q31_t)0x7e8d7da6, (q31_t)0xecce4db2, (q31_t)0x7e8c8c4b, (q31_t)0xecc81769, - (q31_t)0x7e8b9aa3, (q31_t)0xecc1e12c, - (q31_t)0x7e8aa8ac, (q31_t)0xecbbaafb, (q31_t)0x7e89b668, (q31_t)0xecb574d5, (q31_t)0x7e88c3d5, (q31_t)0xecaf3ebc, - (q31_t)0x7e87d0f5, (q31_t)0xeca908ae, - (q31_t)0x7e86ddc6, (q31_t)0xeca2d2ad, (q31_t)0x7e85ea49, (q31_t)0xec9c9cb7, (q31_t)0x7e84f67e, (q31_t)0xec9666cd, - (q31_t)0x7e840265, (q31_t)0xec9030f0, - (q31_t)0x7e830dff, (q31_t)0xec89fb1e, (q31_t)0x7e82194a, (q31_t)0xec83c558, (q31_t)0x7e812447, (q31_t)0xec7d8f9e, - (q31_t)0x7e802ef6, (q31_t)0xec7759f1, - (q31_t)0x7e7f3957, (q31_t)0xec71244f, (q31_t)0x7e7e436a, (q31_t)0xec6aeeba, (q31_t)0x7e7d4d2f, (q31_t)0xec64b930, - (q31_t)0x7e7c56a5, (q31_t)0xec5e83b3, - (q31_t)0x7e7b5fce, (q31_t)0xec584e41, (q31_t)0x7e7a68a9, (q31_t)0xec5218dc, (q31_t)0x7e797136, (q31_t)0xec4be383, - (q31_t)0x7e787975, (q31_t)0xec45ae36, - (q31_t)0x7e778166, (q31_t)0xec3f78f6, (q31_t)0x7e768908, (q31_t)0xec3943c1, (q31_t)0x7e75905d, (q31_t)0xec330e99, - (q31_t)0x7e749764, (q31_t)0xec2cd97d, - (q31_t)0x7e739e1d, (q31_t)0xec26a46d, (q31_t)0x7e72a488, (q31_t)0xec206f69, (q31_t)0x7e71aaa4, (q31_t)0xec1a3a72, - (q31_t)0x7e70b073, (q31_t)0xec140587, - (q31_t)0x7e6fb5f4, (q31_t)0xec0dd0a8, (q31_t)0x7e6ebb27, (q31_t)0xec079bd6, (q31_t)0x7e6dc00c, (q31_t)0xec01670f, - (q31_t)0x7e6cc4a2, (q31_t)0xebfb3256, - (q31_t)0x7e6bc8eb, (q31_t)0xebf4fda8, (q31_t)0x7e6acce6, (q31_t)0xebeec907, (q31_t)0x7e69d093, (q31_t)0xebe89472, - (q31_t)0x7e68d3f2, (q31_t)0xebe25fea, - (q31_t)0x7e67d703, (q31_t)0xebdc2b6e, (q31_t)0x7e66d9c6, (q31_t)0xebd5f6fe, (q31_t)0x7e65dc3b, (q31_t)0xebcfc29b, - (q31_t)0x7e64de62, (q31_t)0xebc98e45, - (q31_t)0x7e63e03b, (q31_t)0xebc359fb, (q31_t)0x7e62e1c6, (q31_t)0xebbd25bd, (q31_t)0x7e61e303, (q31_t)0xebb6f18c, - (q31_t)0x7e60e3f2, (q31_t)0xebb0bd67, - (q31_t)0x7e5fe493, (q31_t)0xebaa894f, (q31_t)0x7e5ee4e6, (q31_t)0xeba45543, (q31_t)0x7e5de4ec, (q31_t)0xeb9e2144, - (q31_t)0x7e5ce4a3, (q31_t)0xeb97ed52, - (q31_t)0x7e5be40c, (q31_t)0xeb91b96c, (q31_t)0x7e5ae328, (q31_t)0xeb8b8593, (q31_t)0x7e59e1f5, (q31_t)0xeb8551c6, - (q31_t)0x7e58e075, (q31_t)0xeb7f1e06, - (q31_t)0x7e57dea7, (q31_t)0xeb78ea52, (q31_t)0x7e56dc8a, (q31_t)0xeb72b6ac, (q31_t)0x7e55da20, (q31_t)0xeb6c8312, - (q31_t)0x7e54d768, (q31_t)0xeb664f84, - (q31_t)0x7e53d462, (q31_t)0xeb601c04, (q31_t)0x7e52d10e, (q31_t)0xeb59e890, (q31_t)0x7e51cd6c, (q31_t)0xeb53b529, - (q31_t)0x7e50c97c, (q31_t)0xeb4d81ce, - (q31_t)0x7e4fc53e, (q31_t)0xeb474e81, (q31_t)0x7e4ec0b2, (q31_t)0xeb411b40, (q31_t)0x7e4dbbd9, (q31_t)0xeb3ae80c, - (q31_t)0x7e4cb6b1, (q31_t)0xeb34b4e4, - (q31_t)0x7e4bb13c, (q31_t)0xeb2e81ca, (q31_t)0x7e4aab78, (q31_t)0xeb284ebc, (q31_t)0x7e49a567, (q31_t)0xeb221bbb, - (q31_t)0x7e489f08, (q31_t)0xeb1be8c8, - (q31_t)0x7e47985b, (q31_t)0xeb15b5e1, (q31_t)0x7e469160, (q31_t)0xeb0f8307, (q31_t)0x7e458a17, (q31_t)0xeb095039, - (q31_t)0x7e448281, (q31_t)0xeb031d79, - (q31_t)0x7e437a9c, (q31_t)0xeafceac6, (q31_t)0x7e427269, (q31_t)0xeaf6b81f, (q31_t)0x7e4169e9, (q31_t)0xeaf08586, - (q31_t)0x7e40611b, (q31_t)0xeaea52fa, - (q31_t)0x7e3f57ff, (q31_t)0xeae4207a, (q31_t)0x7e3e4e95, (q31_t)0xeaddee08, (q31_t)0x7e3d44dd, (q31_t)0xead7bba3, - (q31_t)0x7e3c3ad7, (q31_t)0xead1894b, - (q31_t)0x7e3b3083, (q31_t)0xeacb56ff, (q31_t)0x7e3a25e2, (q31_t)0xeac524c1, (q31_t)0x7e391af3, (q31_t)0xeabef290, - (q31_t)0x7e380fb5, (q31_t)0xeab8c06c, - (q31_t)0x7e37042a, (q31_t)0xeab28e56, (q31_t)0x7e35f851, (q31_t)0xeaac5c4c, (q31_t)0x7e34ec2b, (q31_t)0xeaa62a4f, - (q31_t)0x7e33dfb6, (q31_t)0xea9ff860, - (q31_t)0x7e32d2f4, (q31_t)0xea99c67e, (q31_t)0x7e31c5e3, (q31_t)0xea9394a9, (q31_t)0x7e30b885, (q31_t)0xea8d62e1, - (q31_t)0x7e2faad9, (q31_t)0xea873127, - (q31_t)0x7e2e9cdf, (q31_t)0xea80ff7a, (q31_t)0x7e2d8e97, (q31_t)0xea7acdda, (q31_t)0x7e2c8002, (q31_t)0xea749c47, - (q31_t)0x7e2b711f, (q31_t)0xea6e6ac2, - (q31_t)0x7e2a61ed, (q31_t)0xea683949, (q31_t)0x7e29526e, (q31_t)0xea6207df, (q31_t)0x7e2842a2, (q31_t)0xea5bd681, - (q31_t)0x7e273287, (q31_t)0xea55a531, - (q31_t)0x7e26221f, (q31_t)0xea4f73ee, (q31_t)0x7e251168, (q31_t)0xea4942b9, (q31_t)0x7e240064, (q31_t)0xea431191, - (q31_t)0x7e22ef12, (q31_t)0xea3ce077, - (q31_t)0x7e21dd73, (q31_t)0xea36af69, (q31_t)0x7e20cb85, (q31_t)0xea307e6a, (q31_t)0x7e1fb94a, (q31_t)0xea2a4d78, - (q31_t)0x7e1ea6c1, (q31_t)0xea241c93, - (q31_t)0x7e1d93ea, (q31_t)0xea1debbb, (q31_t)0x7e1c80c5, (q31_t)0xea17baf2, (q31_t)0x7e1b6d53, (q31_t)0xea118a35, - (q31_t)0x7e1a5992, (q31_t)0xea0b5987, - (q31_t)0x7e194584, (q31_t)0xea0528e5, (q31_t)0x7e183128, (q31_t)0xe9fef852, (q31_t)0x7e171c7f, (q31_t)0xe9f8c7cc, - (q31_t)0x7e160787, (q31_t)0xe9f29753, - (q31_t)0x7e14f242, (q31_t)0xe9ec66e8, (q31_t)0x7e13dcaf, (q31_t)0xe9e6368b, (q31_t)0x7e12c6ce, (q31_t)0xe9e0063c, - (q31_t)0x7e11b0a0, (q31_t)0xe9d9d5fa, - (q31_t)0x7e109a24, (q31_t)0xe9d3a5c5, (q31_t)0x7e0f835a, (q31_t)0xe9cd759f, (q31_t)0x7e0e6c42, (q31_t)0xe9c74586, - (q31_t)0x7e0d54dc, (q31_t)0xe9c1157a, - (q31_t)0x7e0c3d29, (q31_t)0xe9bae57d, (q31_t)0x7e0b2528, (q31_t)0xe9b4b58d, (q31_t)0x7e0a0cd9, (q31_t)0xe9ae85ab, - (q31_t)0x7e08f43d, (q31_t)0xe9a855d7, - (q31_t)0x7e07db52, (q31_t)0xe9a22610, (q31_t)0x7e06c21a, (q31_t)0xe99bf658, (q31_t)0x7e05a894, (q31_t)0xe995c6ad, - (q31_t)0x7e048ec1, (q31_t)0xe98f9710, - (q31_t)0x7e0374a0, (q31_t)0xe9896781, (q31_t)0x7e025a31, (q31_t)0xe98337ff, (q31_t)0x7e013f74, (q31_t)0xe97d088c, - (q31_t)0x7e00246a, (q31_t)0xe976d926, - (q31_t)0x7dff0911, (q31_t)0xe970a9ce, (q31_t)0x7dfded6c, (q31_t)0xe96a7a85, (q31_t)0x7dfcd178, (q31_t)0xe9644b49, - (q31_t)0x7dfbb537, (q31_t)0xe95e1c1b, - (q31_t)0x7dfa98a8, (q31_t)0xe957ecfb, (q31_t)0x7df97bcb, (q31_t)0xe951bde9, (q31_t)0x7df85ea0, (q31_t)0xe94b8ee5, - (q31_t)0x7df74128, (q31_t)0xe9455fef, - (q31_t)0x7df62362, (q31_t)0xe93f3107, (q31_t)0x7df5054f, (q31_t)0xe939022d, (q31_t)0x7df3e6ee, (q31_t)0xe932d361, - (q31_t)0x7df2c83f, (q31_t)0xe92ca4a4, - (q31_t)0x7df1a942, (q31_t)0xe92675f4, (q31_t)0x7df089f8, (q31_t)0xe9204752, (q31_t)0x7def6a60, (q31_t)0xe91a18bf, - (q31_t)0x7dee4a7a, (q31_t)0xe913ea39, - (q31_t)0x7ded2a47, (q31_t)0xe90dbbc2, (q31_t)0x7dec09c6, (q31_t)0xe9078d59, (q31_t)0x7deae8f7, (q31_t)0xe9015efe, - (q31_t)0x7de9c7da, (q31_t)0xe8fb30b1, - (q31_t)0x7de8a670, (q31_t)0xe8f50273, (q31_t)0x7de784b9, (q31_t)0xe8eed443, (q31_t)0x7de662b3, (q31_t)0xe8e8a621, - (q31_t)0x7de54060, (q31_t)0xe8e2780d, - (q31_t)0x7de41dc0, (q31_t)0xe8dc4a07, (q31_t)0x7de2fad1, (q31_t)0xe8d61c10, (q31_t)0x7de1d795, (q31_t)0xe8cfee27, - (q31_t)0x7de0b40b, (q31_t)0xe8c9c04c, - (q31_t)0x7ddf9034, (q31_t)0xe8c39280, (q31_t)0x7dde6c0f, (q31_t)0xe8bd64c2, (q31_t)0x7ddd479d, (q31_t)0xe8b73712, - (q31_t)0x7ddc22dc, (q31_t)0xe8b10971, - (q31_t)0x7ddafdce, (q31_t)0xe8aadbde, (q31_t)0x7dd9d873, (q31_t)0xe8a4ae59, (q31_t)0x7dd8b2ca, (q31_t)0xe89e80e3, - (q31_t)0x7dd78cd3, (q31_t)0xe898537b, - (q31_t)0x7dd6668f, (q31_t)0xe8922622, (q31_t)0x7dd53ffc, (q31_t)0xe88bf8d7, (q31_t)0x7dd4191d, (q31_t)0xe885cb9a, - (q31_t)0x7dd2f1f0, (q31_t)0xe87f9e6c, - (q31_t)0x7dd1ca75, (q31_t)0xe879714d, (q31_t)0x7dd0a2ac, (q31_t)0xe873443c, (q31_t)0x7dcf7a96, (q31_t)0xe86d173a, - (q31_t)0x7dce5232, (q31_t)0xe866ea46, - (q31_t)0x7dcd2981, (q31_t)0xe860bd61, (q31_t)0x7dcc0082, (q31_t)0xe85a908a, (q31_t)0x7dcad736, (q31_t)0xe85463c2, - (q31_t)0x7dc9ad9c, (q31_t)0xe84e3708, - (q31_t)0x7dc883b4, (q31_t)0xe8480a5d, (q31_t)0x7dc7597f, (q31_t)0xe841ddc1, (q31_t)0x7dc62efc, (q31_t)0xe83bb133, - (q31_t)0x7dc5042b, (q31_t)0xe83584b4, - (q31_t)0x7dc3d90d, (q31_t)0xe82f5844, (q31_t)0x7dc2ada2, (q31_t)0xe8292be3, (q31_t)0x7dc181e8, (q31_t)0xe822ff90, - (q31_t)0x7dc055e2, (q31_t)0xe81cd34b, - (q31_t)0x7dbf298d, (q31_t)0xe816a716, (q31_t)0x7dbdfceb, (q31_t)0xe8107aef, (q31_t)0x7dbccffc, (q31_t)0xe80a4ed7, - (q31_t)0x7dbba2bf, (q31_t)0xe80422ce, - (q31_t)0x7dba7534, (q31_t)0xe7fdf6d4, (q31_t)0x7db9475c, (q31_t)0xe7f7cae8, (q31_t)0x7db81936, (q31_t)0xe7f19f0c, - (q31_t)0x7db6eac3, (q31_t)0xe7eb733e, - (q31_t)0x7db5bc02, (q31_t)0xe7e5477f, (q31_t)0x7db48cf4, (q31_t)0xe7df1bcf, (q31_t)0x7db35d98, (q31_t)0xe7d8f02d, - (q31_t)0x7db22def, (q31_t)0xe7d2c49b, - (q31_t)0x7db0fdf8, (q31_t)0xe7cc9917, (q31_t)0x7dafcdb3, (q31_t)0xe7c66da3, (q31_t)0x7dae9d21, (q31_t)0xe7c0423d, - (q31_t)0x7dad6c42, (q31_t)0xe7ba16e7, - (q31_t)0x7dac3b15, (q31_t)0xe7b3eb9f, (q31_t)0x7dab099a, (q31_t)0xe7adc066, (q31_t)0x7da9d7d2, (q31_t)0xe7a7953d, - (q31_t)0x7da8a5bc, (q31_t)0xe7a16a22, - (q31_t)0x7da77359, (q31_t)0xe79b3f16, (q31_t)0x7da640a9, (q31_t)0xe795141a, (q31_t)0x7da50dab, (q31_t)0xe78ee92c, - (q31_t)0x7da3da5f, (q31_t)0xe788be4e, - (q31_t)0x7da2a6c6, (q31_t)0xe782937e, (q31_t)0x7da172df, (q31_t)0xe77c68be, (q31_t)0x7da03eab, (q31_t)0xe7763e0d, - (q31_t)0x7d9f0a29, (q31_t)0xe770136b, - (q31_t)0x7d9dd55a, (q31_t)0xe769e8d8, (q31_t)0x7d9ca03e, (q31_t)0xe763be55, (q31_t)0x7d9b6ad3, (q31_t)0xe75d93e0, - (q31_t)0x7d9a351c, (q31_t)0xe757697b, - (q31_t)0x7d98ff17, (q31_t)0xe7513f25, (q31_t)0x7d97c8c4, (q31_t)0xe74b14de, (q31_t)0x7d969224, (q31_t)0xe744eaa6, - (q31_t)0x7d955b37, (q31_t)0xe73ec07e, - (q31_t)0x7d9423fc, (q31_t)0xe7389665, (q31_t)0x7d92ec73, (q31_t)0xe7326c5b, (q31_t)0x7d91b49e, (q31_t)0xe72c4260, - (q31_t)0x7d907c7a, (q31_t)0xe7261875, - (q31_t)0x7d8f4409, (q31_t)0xe71fee99, (q31_t)0x7d8e0b4b, (q31_t)0xe719c4cd, (q31_t)0x7d8cd240, (q31_t)0xe7139b10, - (q31_t)0x7d8b98e6, (q31_t)0xe70d7162, - (q31_t)0x7d8a5f40, (q31_t)0xe70747c4, (q31_t)0x7d89254c, (q31_t)0xe7011e35, (q31_t)0x7d87eb0a, (q31_t)0xe6faf4b5, - (q31_t)0x7d86b07c, (q31_t)0xe6f4cb45, - (q31_t)0x7d85759f, (q31_t)0xe6eea1e4, (q31_t)0x7d843a76, (q31_t)0xe6e87893, (q31_t)0x7d82fefe, (q31_t)0xe6e24f51, - (q31_t)0x7d81c33a, (q31_t)0xe6dc261f, - (q31_t)0x7d808728, (q31_t)0xe6d5fcfc, (q31_t)0x7d7f4ac8, (q31_t)0xe6cfd3e9, (q31_t)0x7d7e0e1c, (q31_t)0xe6c9aae5, - (q31_t)0x7d7cd121, (q31_t)0xe6c381f1, - (q31_t)0x7d7b93da, (q31_t)0xe6bd590d, (q31_t)0x7d7a5645, (q31_t)0xe6b73038, (q31_t)0x7d791862, (q31_t)0xe6b10772, - (q31_t)0x7d77da32, (q31_t)0xe6aadebc, - (q31_t)0x7d769bb5, (q31_t)0xe6a4b616, (q31_t)0x7d755cea, (q31_t)0xe69e8d80, (q31_t)0x7d741dd2, (q31_t)0xe69864f9, - (q31_t)0x7d72de6d, (q31_t)0xe6923c82, - (q31_t)0x7d719eba, (q31_t)0xe68c141a, (q31_t)0x7d705eba, (q31_t)0xe685ebc2, (q31_t)0x7d6f1e6c, (q31_t)0xe67fc37a, - (q31_t)0x7d6dddd2, (q31_t)0xe6799b42, - (q31_t)0x7d6c9ce9, (q31_t)0xe6737319, (q31_t)0x7d6b5bb4, (q31_t)0xe66d4b01, (q31_t)0x7d6a1a31, (q31_t)0xe66722f7, - (q31_t)0x7d68d860, (q31_t)0xe660fafe, - (q31_t)0x7d679642, (q31_t)0xe65ad315, (q31_t)0x7d6653d7, (q31_t)0xe654ab3b, (q31_t)0x7d65111f, (q31_t)0xe64e8371, - (q31_t)0x7d63ce19, (q31_t)0xe6485bb7, - (q31_t)0x7d628ac6, (q31_t)0xe642340d, (q31_t)0x7d614725, (q31_t)0xe63c0c73, (q31_t)0x7d600338, (q31_t)0xe635e4e9, - (q31_t)0x7d5ebefc, (q31_t)0xe62fbd6e, - (q31_t)0x7d5d7a74, (q31_t)0xe6299604, (q31_t)0x7d5c359e, (q31_t)0xe6236ea9, (q31_t)0x7d5af07b, (q31_t)0xe61d475e, - (q31_t)0x7d59ab0a, (q31_t)0xe6172024, - (q31_t)0x7d58654d, (q31_t)0xe610f8f9, (q31_t)0x7d571f41, (q31_t)0xe60ad1de, (q31_t)0x7d55d8e9, (q31_t)0xe604aad4, - (q31_t)0x7d549243, (q31_t)0xe5fe83d9, - (q31_t)0x7d534b50, (q31_t)0xe5f85cef, (q31_t)0x7d520410, (q31_t)0xe5f23614, (q31_t)0x7d50bc82, (q31_t)0xe5ec0f4a, - (q31_t)0x7d4f74a7, (q31_t)0xe5e5e88f, - (q31_t)0x7d4e2c7f, (q31_t)0xe5dfc1e5, (q31_t)0x7d4ce409, (q31_t)0xe5d99b4b, (q31_t)0x7d4b9b46, (q31_t)0xe5d374c1, - (q31_t)0x7d4a5236, (q31_t)0xe5cd4e47, - (q31_t)0x7d4908d9, (q31_t)0xe5c727dd, (q31_t)0x7d47bf2e, (q31_t)0xe5c10184, (q31_t)0x7d467536, (q31_t)0xe5badb3a, - (q31_t)0x7d452af1, (q31_t)0xe5b4b501, - (q31_t)0x7d43e05e, (q31_t)0xe5ae8ed8, (q31_t)0x7d42957e, (q31_t)0xe5a868bf, (q31_t)0x7d414a51, (q31_t)0xe5a242b7, - (q31_t)0x7d3ffed7, (q31_t)0xe59c1cbf, - (q31_t)0x7d3eb30f, (q31_t)0xe595f6d7, (q31_t)0x7d3d66fa, (q31_t)0xe58fd0ff, (q31_t)0x7d3c1a98, (q31_t)0xe589ab38, - (q31_t)0x7d3acde9, (q31_t)0xe5838581, - (q31_t)0x7d3980ec, (q31_t)0xe57d5fda, (q31_t)0x7d3833a2, (q31_t)0xe5773a44, (q31_t)0x7d36e60b, (q31_t)0xe57114be, - (q31_t)0x7d359827, (q31_t)0xe56aef49, - (q31_t)0x7d3449f5, (q31_t)0xe564c9e3, (q31_t)0x7d32fb76, (q31_t)0xe55ea48f, (q31_t)0x7d31acaa, (q31_t)0xe5587f4a, - (q31_t)0x7d305d91, (q31_t)0xe5525a17, - (q31_t)0x7d2f0e2b, (q31_t)0xe54c34f3, (q31_t)0x7d2dbe77, (q31_t)0xe5460fe0, (q31_t)0x7d2c6e76, (q31_t)0xe53feade, - (q31_t)0x7d2b1e28, (q31_t)0xe539c5ec, - (q31_t)0x7d29cd8c, (q31_t)0xe533a10a, (q31_t)0x7d287ca4, (q31_t)0xe52d7c39, (q31_t)0x7d272b6e, (q31_t)0xe5275779, - (q31_t)0x7d25d9eb, (q31_t)0xe52132c9, - (q31_t)0x7d24881b, (q31_t)0xe51b0e2a, (q31_t)0x7d2335fe, (q31_t)0xe514e99b, (q31_t)0x7d21e393, (q31_t)0xe50ec51d, - (q31_t)0x7d2090db, (q31_t)0xe508a0b0, - (q31_t)0x7d1f3dd6, (q31_t)0xe5027c53, (q31_t)0x7d1dea84, (q31_t)0xe4fc5807, (q31_t)0x7d1c96e5, (q31_t)0xe4f633cc, - (q31_t)0x7d1b42f9, (q31_t)0xe4f00fa1, - (q31_t)0x7d19eebf, (q31_t)0xe4e9eb87, (q31_t)0x7d189a38, (q31_t)0xe4e3c77d, (q31_t)0x7d174564, (q31_t)0xe4dda385, - (q31_t)0x7d15f043, (q31_t)0xe4d77f9d, - (q31_t)0x7d149ad5, (q31_t)0xe4d15bc6, (q31_t)0x7d134519, (q31_t)0xe4cb37ff, (q31_t)0x7d11ef11, (q31_t)0xe4c5144a, - (q31_t)0x7d1098bb, (q31_t)0xe4bef0a5, - (q31_t)0x7d0f4218, (q31_t)0xe4b8cd11, (q31_t)0x7d0deb28, (q31_t)0xe4b2a98e, (q31_t)0x7d0c93eb, (q31_t)0xe4ac861b, - (q31_t)0x7d0b3c60, (q31_t)0xe4a662ba, - (q31_t)0x7d09e489, (q31_t)0xe4a03f69, (q31_t)0x7d088c64, (q31_t)0xe49a1c29, (q31_t)0x7d0733f3, (q31_t)0xe493f8fb, - (q31_t)0x7d05db34, (q31_t)0xe48dd5dd, - (q31_t)0x7d048228, (q31_t)0xe487b2d0, (q31_t)0x7d0328cf, (q31_t)0xe4818fd4, (q31_t)0x7d01cf29, (q31_t)0xe47b6ce9, - (q31_t)0x7d007535, (q31_t)0xe4754a0e, - (q31_t)0x7cff1af5, (q31_t)0xe46f2745, (q31_t)0x7cfdc068, (q31_t)0xe469048d, (q31_t)0x7cfc658d, (q31_t)0xe462e1e6, - (q31_t)0x7cfb0a65, (q31_t)0xe45cbf50, - (q31_t)0x7cf9aef0, (q31_t)0xe4569ccb, (q31_t)0x7cf8532f, (q31_t)0xe4507a57, (q31_t)0x7cf6f720, (q31_t)0xe44a57f4, - (q31_t)0x7cf59ac4, (q31_t)0xe44435a2, - (q31_t)0x7cf43e1a, (q31_t)0xe43e1362, (q31_t)0x7cf2e124, (q31_t)0xe437f132, (q31_t)0x7cf183e1, (q31_t)0xe431cf14, - (q31_t)0x7cf02651, (q31_t)0xe42bad07, - (q31_t)0x7ceec873, (q31_t)0xe4258b0a, (q31_t)0x7ced6a49, (q31_t)0xe41f6920, (q31_t)0x7cec0bd1, (q31_t)0xe4194746, - (q31_t)0x7ceaad0c, (q31_t)0xe413257d, - (q31_t)0x7ce94dfb, (q31_t)0xe40d03c6, (q31_t)0x7ce7ee9c, (q31_t)0xe406e220, (q31_t)0x7ce68ef0, (q31_t)0xe400c08b, - (q31_t)0x7ce52ef7, (q31_t)0xe3fa9f08, - (q31_t)0x7ce3ceb2, (q31_t)0xe3f47d96, (q31_t)0x7ce26e1f, (q31_t)0xe3ee5c35, (q31_t)0x7ce10d3f, (q31_t)0xe3e83ae5, - (q31_t)0x7cdfac12, (q31_t)0xe3e219a7, - (q31_t)0x7cde4a98, (q31_t)0xe3dbf87a, (q31_t)0x7cdce8d1, (q31_t)0xe3d5d75e, (q31_t)0x7cdb86bd, (q31_t)0xe3cfb654, - (q31_t)0x7cda245c, (q31_t)0xe3c9955b, - (q31_t)0x7cd8c1ae, (q31_t)0xe3c37474, (q31_t)0x7cd75eb3, (q31_t)0xe3bd539e, (q31_t)0x7cd5fb6a, (q31_t)0xe3b732d9, - (q31_t)0x7cd497d5, (q31_t)0xe3b11226, - (q31_t)0x7cd333f3, (q31_t)0xe3aaf184, (q31_t)0x7cd1cfc4, (q31_t)0xe3a4d0f4, (q31_t)0x7cd06b48, (q31_t)0xe39eb075, - (q31_t)0x7ccf067f, (q31_t)0xe3989008, - (q31_t)0x7ccda169, (q31_t)0xe3926fad, (q31_t)0x7ccc3c06, (q31_t)0xe38c4f63, (q31_t)0x7ccad656, (q31_t)0xe3862f2a, - (q31_t)0x7cc97059, (q31_t)0xe3800f03, - (q31_t)0x7cc80a0f, (q31_t)0xe379eeed, (q31_t)0x7cc6a378, (q31_t)0xe373ceea, (q31_t)0x7cc53c94, (q31_t)0xe36daef7, - (q31_t)0x7cc3d563, (q31_t)0xe3678f17, - (q31_t)0x7cc26de5, (q31_t)0xe3616f48, (q31_t)0x7cc1061a, (q31_t)0xe35b4f8b, (q31_t)0x7cbf9e03, (q31_t)0xe3552fdf, - (q31_t)0x7cbe359e, (q31_t)0xe34f1045, - (q31_t)0x7cbcccec, (q31_t)0xe348f0bd, (q31_t)0x7cbb63ee, (q31_t)0xe342d146, (q31_t)0x7cb9faa2, (q31_t)0xe33cb1e1, - (q31_t)0x7cb8910a, (q31_t)0xe336928e, - (q31_t)0x7cb72724, (q31_t)0xe330734d, (q31_t)0x7cb5bcf2, (q31_t)0xe32a541d, (q31_t)0x7cb45272, (q31_t)0xe3243500, - (q31_t)0x7cb2e7a6, (q31_t)0xe31e15f4, - (q31_t)0x7cb17c8d, (q31_t)0xe317f6fa, (q31_t)0x7cb01127, (q31_t)0xe311d811, (q31_t)0x7caea574, (q31_t)0xe30bb93b, - (q31_t)0x7cad3974, (q31_t)0xe3059a76, - (q31_t)0x7cabcd28, (q31_t)0xe2ff7bc3, (q31_t)0x7caa608e, (q31_t)0xe2f95d23, (q31_t)0x7ca8f3a7, (q31_t)0xe2f33e94, - (q31_t)0x7ca78674, (q31_t)0xe2ed2017, - (q31_t)0x7ca618f3, (q31_t)0xe2e701ac, (q31_t)0x7ca4ab26, (q31_t)0xe2e0e352, (q31_t)0x7ca33d0c, (q31_t)0xe2dac50b, - (q31_t)0x7ca1cea5, (q31_t)0xe2d4a6d6, - (q31_t)0x7ca05ff1, (q31_t)0xe2ce88b3, (q31_t)0x7c9ef0f0, (q31_t)0xe2c86aa2, (q31_t)0x7c9d81a3, (q31_t)0xe2c24ca2, - (q31_t)0x7c9c1208, (q31_t)0xe2bc2eb5, - (q31_t)0x7c9aa221, (q31_t)0xe2b610da, (q31_t)0x7c9931ec, (q31_t)0xe2aff311, (q31_t)0x7c97c16b, (q31_t)0xe2a9d55a, - (q31_t)0x7c96509d, (q31_t)0xe2a3b7b5, - (q31_t)0x7c94df83, (q31_t)0xe29d9a23, (q31_t)0x7c936e1b, (q31_t)0xe2977ca2, (q31_t)0x7c91fc66, (q31_t)0xe2915f34, - (q31_t)0x7c908a65, (q31_t)0xe28b41d7, - (q31_t)0x7c8f1817, (q31_t)0xe285248d, (q31_t)0x7c8da57c, (q31_t)0xe27f0755, (q31_t)0x7c8c3294, (q31_t)0xe278ea30, - (q31_t)0x7c8abf5f, (q31_t)0xe272cd1c, - (q31_t)0x7c894bde, (q31_t)0xe26cb01b, (q31_t)0x7c87d810, (q31_t)0xe266932c, (q31_t)0x7c8663f4, (q31_t)0xe260764f, - (q31_t)0x7c84ef8c, (q31_t)0xe25a5984, - (q31_t)0x7c837ad8, (q31_t)0xe2543ccc, (q31_t)0x7c8205d6, (q31_t)0xe24e2026, (q31_t)0x7c809088, (q31_t)0xe2480393, - (q31_t)0x7c7f1aed, (q31_t)0xe241e711, - (q31_t)0x7c7da505, (q31_t)0xe23bcaa2, (q31_t)0x7c7c2ed0, (q31_t)0xe235ae46, (q31_t)0x7c7ab84e, (q31_t)0xe22f91fc, - (q31_t)0x7c794180, (q31_t)0xe22975c4, - (q31_t)0x7c77ca65, (q31_t)0xe223599e, (q31_t)0x7c7652fd, (q31_t)0xe21d3d8b, (q31_t)0x7c74db48, (q31_t)0xe217218b, - (q31_t)0x7c736347, (q31_t)0xe211059d, - (q31_t)0x7c71eaf9, (q31_t)0xe20ae9c1, (q31_t)0x7c70725e, (q31_t)0xe204cdf8, (q31_t)0x7c6ef976, (q31_t)0xe1feb241, - (q31_t)0x7c6d8041, (q31_t)0xe1f8969d, - (q31_t)0x7c6c06c0, (q31_t)0xe1f27b0b, (q31_t)0x7c6a8cf2, (q31_t)0xe1ec5f8c, (q31_t)0x7c6912d7, (q31_t)0xe1e64420, - (q31_t)0x7c679870, (q31_t)0xe1e028c6, - (q31_t)0x7c661dbc, (q31_t)0xe1da0d7e, (q31_t)0x7c64a2bb, (q31_t)0xe1d3f24a, (q31_t)0x7c63276d, (q31_t)0xe1cdd727, - (q31_t)0x7c61abd3, (q31_t)0xe1c7bc18, - (q31_t)0x7c602fec, (q31_t)0xe1c1a11b, (q31_t)0x7c5eb3b8, (q31_t)0xe1bb8631, (q31_t)0x7c5d3737, (q31_t)0xe1b56b59, - (q31_t)0x7c5bba6a, (q31_t)0xe1af5094, - (q31_t)0x7c5a3d50, (q31_t)0xe1a935e2, (q31_t)0x7c58bfe9, (q31_t)0xe1a31b42, (q31_t)0x7c574236, (q31_t)0xe19d00b6, - (q31_t)0x7c55c436, (q31_t)0xe196e63c, - (q31_t)0x7c5445e9, (q31_t)0xe190cbd4, (q31_t)0x7c52c74f, (q31_t)0xe18ab180, (q31_t)0x7c514869, (q31_t)0xe184973e, - (q31_t)0x7c4fc936, (q31_t)0xe17e7d0f, - (q31_t)0x7c4e49b7, (q31_t)0xe17862f3, (q31_t)0x7c4cc9ea, (q31_t)0xe17248ea, (q31_t)0x7c4b49d2, (q31_t)0xe16c2ef4, - (q31_t)0x7c49c96c, (q31_t)0xe1661510, - (q31_t)0x7c4848ba, (q31_t)0xe15ffb3f, (q31_t)0x7c46c7bb, (q31_t)0xe159e182, (q31_t)0x7c45466f, (q31_t)0xe153c7d7, - (q31_t)0x7c43c4d7, (q31_t)0xe14dae3f, - (q31_t)0x7c4242f2, (q31_t)0xe14794ba, (q31_t)0x7c40c0c1, (q31_t)0xe1417b48, (q31_t)0x7c3f3e42, (q31_t)0xe13b61e9, - (q31_t)0x7c3dbb78, (q31_t)0xe135489d, - (q31_t)0x7c3c3860, (q31_t)0xe12f2f63, (q31_t)0x7c3ab4fc, (q31_t)0xe129163d, (q31_t)0x7c39314b, (q31_t)0xe122fd2a, - (q31_t)0x7c37ad4e, (q31_t)0xe11ce42a, - (q31_t)0x7c362904, (q31_t)0xe116cb3d, (q31_t)0x7c34a46d, (q31_t)0xe110b263, (q31_t)0x7c331f8a, (q31_t)0xe10a999c, - (q31_t)0x7c319a5a, (q31_t)0xe10480e9, - (q31_t)0x7c3014de, (q31_t)0xe0fe6848, (q31_t)0x7c2e8f15, (q31_t)0xe0f84fbb, (q31_t)0x7c2d08ff, (q31_t)0xe0f23740, - (q31_t)0x7c2b829d, (q31_t)0xe0ec1ed9, - (q31_t)0x7c29fbee, (q31_t)0xe0e60685, (q31_t)0x7c2874f3, (q31_t)0xe0dfee44, (q31_t)0x7c26edab, (q31_t)0xe0d9d616, - (q31_t)0x7c256616, (q31_t)0xe0d3bdfc, - (q31_t)0x7c23de35, (q31_t)0xe0cda5f5, (q31_t)0x7c225607, (q31_t)0xe0c78e01, (q31_t)0x7c20cd8d, (q31_t)0xe0c17620, - (q31_t)0x7c1f44c6, (q31_t)0xe0bb5e53, - (q31_t)0x7c1dbbb3, (q31_t)0xe0b54698, (q31_t)0x7c1c3253, (q31_t)0xe0af2ef2, (q31_t)0x7c1aa8a6, (q31_t)0xe0a9175e, - (q31_t)0x7c191ead, (q31_t)0xe0a2ffde, - (q31_t)0x7c179467, (q31_t)0xe09ce871, (q31_t)0x7c1609d5, (q31_t)0xe096d117, (q31_t)0x7c147ef6, (q31_t)0xe090b9d1, - (q31_t)0x7c12f3cb, (q31_t)0xe08aa29f, - (q31_t)0x7c116853, (q31_t)0xe0848b7f, (q31_t)0x7c0fdc8f, (q31_t)0xe07e7473, (q31_t)0x7c0e507e, (q31_t)0xe0785d7b, - (q31_t)0x7c0cc421, (q31_t)0xe0724696, - (q31_t)0x7c0b3777, (q31_t)0xe06c2fc4, (q31_t)0x7c09aa80, (q31_t)0xe0661906, (q31_t)0x7c081d3d, (q31_t)0xe060025c, - (q31_t)0x7c068fae, (q31_t)0xe059ebc5, - (q31_t)0x7c0501d2, (q31_t)0xe053d541, (q31_t)0x7c0373a9, (q31_t)0xe04dbed1, (q31_t)0x7c01e534, (q31_t)0xe047a875, - (q31_t)0x7c005673, (q31_t)0xe041922c, - (q31_t)0x7bfec765, (q31_t)0xe03b7bf6, (q31_t)0x7bfd380a, (q31_t)0xe03565d5, (q31_t)0x7bfba863, (q31_t)0xe02f4fc6, - (q31_t)0x7bfa1870, (q31_t)0xe02939cc, - (q31_t)0x7bf88830, (q31_t)0xe02323e5, (q31_t)0x7bf6f7a4, (q31_t)0xe01d0e12, (q31_t)0x7bf566cb, (q31_t)0xe016f852, - (q31_t)0x7bf3d5a6, (q31_t)0xe010e2a7, - (q31_t)0x7bf24434, (q31_t)0xe00acd0e, (q31_t)0x7bf0b276, (q31_t)0xe004b78a, (q31_t)0x7bef206b, (q31_t)0xdffea219, - (q31_t)0x7bed8e14, (q31_t)0xdff88cbc, - (q31_t)0x7bebfb70, (q31_t)0xdff27773, (q31_t)0x7bea6880, (q31_t)0xdfec623e, (q31_t)0x7be8d544, (q31_t)0xdfe64d1c, - (q31_t)0x7be741bb, (q31_t)0xdfe0380e, - (q31_t)0x7be5ade6, (q31_t)0xdfda2314, (q31_t)0x7be419c4, (q31_t)0xdfd40e2e, (q31_t)0x7be28556, (q31_t)0xdfcdf95c, - (q31_t)0x7be0f09b, (q31_t)0xdfc7e49d, - (q31_t)0x7bdf5b94, (q31_t)0xdfc1cff3, (q31_t)0x7bddc641, (q31_t)0xdfbbbb5c, (q31_t)0x7bdc30a1, (q31_t)0xdfb5a6d9, - (q31_t)0x7bda9ab5, (q31_t)0xdfaf926a, - (q31_t)0x7bd9047c, (q31_t)0xdfa97e0f, (q31_t)0x7bd76df7, (q31_t)0xdfa369c8, (q31_t)0x7bd5d726, (q31_t)0xdf9d5595, - (q31_t)0x7bd44008, (q31_t)0xdf974176, - (q31_t)0x7bd2a89e, (q31_t)0xdf912d6b, (q31_t)0x7bd110e8, (q31_t)0xdf8b1974, (q31_t)0x7bcf78e5, (q31_t)0xdf850591, - (q31_t)0x7bcde095, (q31_t)0xdf7ef1c2, - (q31_t)0x7bcc47fa, (q31_t)0xdf78de07, (q31_t)0x7bcaaf12, (q31_t)0xdf72ca60, (q31_t)0x7bc915dd, (q31_t)0xdf6cb6cd, - (q31_t)0x7bc77c5d, (q31_t)0xdf66a34e, - (q31_t)0x7bc5e290, (q31_t)0xdf608fe4, (q31_t)0x7bc44876, (q31_t)0xdf5a7c8d, (q31_t)0x7bc2ae10, (q31_t)0xdf54694b, - (q31_t)0x7bc1135e, (q31_t)0xdf4e561c, - (q31_t)0x7bbf7860, (q31_t)0xdf484302, (q31_t)0x7bbddd15, (q31_t)0xdf422ffd, (q31_t)0x7bbc417e, (q31_t)0xdf3c1d0b, - (q31_t)0x7bbaa59a, (q31_t)0xdf360a2d, - (q31_t)0x7bb9096b, (q31_t)0xdf2ff764, (q31_t)0x7bb76cef, (q31_t)0xdf29e4af, (q31_t)0x7bb5d026, (q31_t)0xdf23d20e, - (q31_t)0x7bb43311, (q31_t)0xdf1dbf82, - (q31_t)0x7bb295b0, (q31_t)0xdf17ad0a, (q31_t)0x7bb0f803, (q31_t)0xdf119aa6, (q31_t)0x7baf5a09, (q31_t)0xdf0b8856, - (q31_t)0x7badbbc3, (q31_t)0xdf05761b, - (q31_t)0x7bac1d31, (q31_t)0xdeff63f4, (q31_t)0x7baa7e53, (q31_t)0xdef951e2, (q31_t)0x7ba8df28, (q31_t)0xdef33fe3, - (q31_t)0x7ba73fb1, (q31_t)0xdeed2dfa, - (q31_t)0x7ba59fee, (q31_t)0xdee71c24, (q31_t)0x7ba3ffde, (q31_t)0xdee10a63, (q31_t)0x7ba25f82, (q31_t)0xdedaf8b7, - (q31_t)0x7ba0beda, (q31_t)0xded4e71f, - (q31_t)0x7b9f1de6, (q31_t)0xdeced59b, (q31_t)0x7b9d7ca5, (q31_t)0xdec8c42c, (q31_t)0x7b9bdb18, (q31_t)0xdec2b2d1, - (q31_t)0x7b9a393f, (q31_t)0xdebca18b, - (q31_t)0x7b989719, (q31_t)0xdeb69059, (q31_t)0x7b96f4a8, (q31_t)0xdeb07f3c, (q31_t)0x7b9551ea, (q31_t)0xdeaa6e34, - (q31_t)0x7b93aee0, (q31_t)0xdea45d40, - (q31_t)0x7b920b89, (q31_t)0xde9e4c60, (q31_t)0x7b9067e7, (q31_t)0xde983b95, (q31_t)0x7b8ec3f8, (q31_t)0xde922adf, - (q31_t)0x7b8d1fbd, (q31_t)0xde8c1a3e, - (q31_t)0x7b8b7b36, (q31_t)0xde8609b1, (q31_t)0x7b89d662, (q31_t)0xde7ff938, (q31_t)0x7b883143, (q31_t)0xde79e8d5, - (q31_t)0x7b868bd7, (q31_t)0xde73d886, - (q31_t)0x7b84e61f, (q31_t)0xde6dc84b, (q31_t)0x7b83401b, (q31_t)0xde67b826, (q31_t)0x7b8199ca, (q31_t)0xde61a815, - (q31_t)0x7b7ff32e, (q31_t)0xde5b9819, - (q31_t)0x7b7e4c45, (q31_t)0xde558831, (q31_t)0x7b7ca510, (q31_t)0xde4f785f, (q31_t)0x7b7afd8f, (q31_t)0xde4968a1, - (q31_t)0x7b7955c2, (q31_t)0xde4358f8, - (q31_t)0x7b77ada8, (q31_t)0xde3d4964, (q31_t)0x7b760542, (q31_t)0xde3739e4, (q31_t)0x7b745c91, (q31_t)0xde312a7a, - (q31_t)0x7b72b393, (q31_t)0xde2b1b24, - (q31_t)0x7b710a49, (q31_t)0xde250be3, (q31_t)0x7b6f60b2, (q31_t)0xde1efcb7, (q31_t)0x7b6db6d0, (q31_t)0xde18eda0, - (q31_t)0x7b6c0ca2, (q31_t)0xde12de9e, - (q31_t)0x7b6a6227, (q31_t)0xde0ccfb1, (q31_t)0x7b68b760, (q31_t)0xde06c0d9, (q31_t)0x7b670c4d, (q31_t)0xde00b216, - (q31_t)0x7b6560ee, (q31_t)0xddfaa367, - (q31_t)0x7b63b543, (q31_t)0xddf494ce, (q31_t)0x7b62094c, (q31_t)0xddee8649, (q31_t)0x7b605d09, (q31_t)0xdde877da, - (q31_t)0x7b5eb079, (q31_t)0xdde26980, - (q31_t)0x7b5d039e, (q31_t)0xdddc5b3b, (q31_t)0x7b5b5676, (q31_t)0xddd64d0a, (q31_t)0x7b59a902, (q31_t)0xddd03eef, - (q31_t)0x7b57fb42, (q31_t)0xddca30e9, - (q31_t)0x7b564d36, (q31_t)0xddc422f8, (q31_t)0x7b549ede, (q31_t)0xddbe151d, (q31_t)0x7b52f03a, (q31_t)0xddb80756, - (q31_t)0x7b51414a, (q31_t)0xddb1f9a4, - (q31_t)0x7b4f920e, (q31_t)0xddabec08, (q31_t)0x7b4de286, (q31_t)0xdda5de81, (q31_t)0x7b4c32b1, (q31_t)0xdd9fd10f, - (q31_t)0x7b4a8291, (q31_t)0xdd99c3b2, - (q31_t)0x7b48d225, (q31_t)0xdd93b66a, (q31_t)0x7b47216c, (q31_t)0xdd8da938, (q31_t)0x7b457068, (q31_t)0xdd879c1b, - (q31_t)0x7b43bf17, (q31_t)0xdd818f13, - (q31_t)0x7b420d7a, (q31_t)0xdd7b8220, (q31_t)0x7b405b92, (q31_t)0xdd757543, (q31_t)0x7b3ea95d, (q31_t)0xdd6f687b, - (q31_t)0x7b3cf6dc, (q31_t)0xdd695bc9, - (q31_t)0x7b3b4410, (q31_t)0xdd634f2b, (q31_t)0x7b3990f7, (q31_t)0xdd5d42a3, (q31_t)0x7b37dd92, (q31_t)0xdd573631, - (q31_t)0x7b3629e1, (q31_t)0xdd5129d4, - (q31_t)0x7b3475e5, (q31_t)0xdd4b1d8c, (q31_t)0x7b32c19c, (q31_t)0xdd451159, (q31_t)0x7b310d07, (q31_t)0xdd3f053c, - (q31_t)0x7b2f5826, (q31_t)0xdd38f935, - (q31_t)0x7b2da2fa, (q31_t)0xdd32ed43, (q31_t)0x7b2bed81, (q31_t)0xdd2ce166, (q31_t)0x7b2a37bc, (q31_t)0xdd26d59f, - (q31_t)0x7b2881ac, (q31_t)0xdd20c9ed, - (q31_t)0x7b26cb4f, (q31_t)0xdd1abe51, (q31_t)0x7b2514a6, (q31_t)0xdd14b2ca, (q31_t)0x7b235db2, (q31_t)0xdd0ea759, - (q31_t)0x7b21a671, (q31_t)0xdd089bfe, - (q31_t)0x7b1feee5, (q31_t)0xdd0290b8, (q31_t)0x7b1e370d, (q31_t)0xdcfc8588, (q31_t)0x7b1c7ee8, (q31_t)0xdcf67a6d, - (q31_t)0x7b1ac678, (q31_t)0xdcf06f68, - (q31_t)0x7b190dbc, (q31_t)0xdcea6478, (q31_t)0x7b1754b3, (q31_t)0xdce4599e, (q31_t)0x7b159b5f, (q31_t)0xdcde4eda, - (q31_t)0x7b13e1bf, (q31_t)0xdcd8442b, - (q31_t)0x7b1227d3, (q31_t)0xdcd23993, (q31_t)0x7b106d9b, (q31_t)0xdccc2f0f, (q31_t)0x7b0eb318, (q31_t)0xdcc624a2, - (q31_t)0x7b0cf848, (q31_t)0xdcc01a4a, - (q31_t)0x7b0b3d2c, (q31_t)0xdcba1008, (q31_t)0x7b0981c5, (q31_t)0xdcb405dc, (q31_t)0x7b07c612, (q31_t)0xdcadfbc5, - (q31_t)0x7b060a12, (q31_t)0xdca7f1c5, - (q31_t)0x7b044dc7, (q31_t)0xdca1e7da, (q31_t)0x7b029130, (q31_t)0xdc9bde05, (q31_t)0x7b00d44d, (q31_t)0xdc95d446, - (q31_t)0x7aff171e, (q31_t)0xdc8fca9c, - (q31_t)0x7afd59a4, (q31_t)0xdc89c109, (q31_t)0x7afb9bdd, (q31_t)0xdc83b78b, (q31_t)0x7af9ddcb, (q31_t)0xdc7dae23, - (q31_t)0x7af81f6c, (q31_t)0xdc77a4d2, - (q31_t)0x7af660c2, (q31_t)0xdc719b96, (q31_t)0x7af4a1cc, (q31_t)0xdc6b9270, (q31_t)0x7af2e28b, (q31_t)0xdc658960, - (q31_t)0x7af122fd, (q31_t)0xdc5f8066, - (q31_t)0x7aef6323, (q31_t)0xdc597781, (q31_t)0x7aeda2fe, (q31_t)0xdc536eb3, (q31_t)0x7aebe28d, (q31_t)0xdc4d65fb, - (q31_t)0x7aea21d0, (q31_t)0xdc475d59, - (q31_t)0x7ae860c7, (q31_t)0xdc4154cd, (q31_t)0x7ae69f73, (q31_t)0xdc3b4c57, (q31_t)0x7ae4ddd2, (q31_t)0xdc3543f7, - (q31_t)0x7ae31be6, (q31_t)0xdc2f3bad, - (q31_t)0x7ae159ae, (q31_t)0xdc293379, (q31_t)0x7adf972a, (q31_t)0xdc232b5c, (q31_t)0x7addd45b, (q31_t)0xdc1d2354, - (q31_t)0x7adc113f, (q31_t)0xdc171b63, - (q31_t)0x7ada4dd8, (q31_t)0xdc111388, (q31_t)0x7ad88a25, (q31_t)0xdc0b0bc2, (q31_t)0x7ad6c626, (q31_t)0xdc050414, - (q31_t)0x7ad501dc, (q31_t)0xdbfefc7b, - (q31_t)0x7ad33d45, (q31_t)0xdbf8f4f8, (q31_t)0x7ad17863, (q31_t)0xdbf2ed8c, (q31_t)0x7acfb336, (q31_t)0xdbece636, - (q31_t)0x7acdedbc, (q31_t)0xdbe6def6, - (q31_t)0x7acc27f7, (q31_t)0xdbe0d7cd, (q31_t)0x7aca61e6, (q31_t)0xdbdad0b9, (q31_t)0x7ac89b89, (q31_t)0xdbd4c9bc, - (q31_t)0x7ac6d4e0, (q31_t)0xdbcec2d6, - (q31_t)0x7ac50dec, (q31_t)0xdbc8bc06, (q31_t)0x7ac346ac, (q31_t)0xdbc2b54c, (q31_t)0x7ac17f20, (q31_t)0xdbbcaea8, - (q31_t)0x7abfb749, (q31_t)0xdbb6a81b, - (q31_t)0x7abdef25, (q31_t)0xdbb0a1a4, (q31_t)0x7abc26b7, (q31_t)0xdbaa9b43, (q31_t)0x7aba5dfc, (q31_t)0xdba494f9, - (q31_t)0x7ab894f6, (q31_t)0xdb9e8ec6, - (q31_t)0x7ab6cba4, (q31_t)0xdb9888a8, (q31_t)0x7ab50206, (q31_t)0xdb9282a2, (q31_t)0x7ab3381d, (q31_t)0xdb8c7cb1, - (q31_t)0x7ab16de7, (q31_t)0xdb8676d8, - (q31_t)0x7aafa367, (q31_t)0xdb807114, (q31_t)0x7aadd89a, (q31_t)0xdb7a6b68, (q31_t)0x7aac0d82, (q31_t)0xdb7465d1, - (q31_t)0x7aaa421e, (q31_t)0xdb6e6052, - (q31_t)0x7aa8766f, (q31_t)0xdb685ae9, (q31_t)0x7aa6aa74, (q31_t)0xdb625596, (q31_t)0x7aa4de2d, (q31_t)0xdb5c505a, - (q31_t)0x7aa3119a, (q31_t)0xdb564b35, - (q31_t)0x7aa144bc, (q31_t)0xdb504626, (q31_t)0x7a9f7793, (q31_t)0xdb4a412e, (q31_t)0x7a9daa1d, (q31_t)0xdb443c4c, - (q31_t)0x7a9bdc5c, (q31_t)0xdb3e3781, - (q31_t)0x7a9a0e50, (q31_t)0xdb3832cd, (q31_t)0x7a983ff7, (q31_t)0xdb322e30, (q31_t)0x7a967153, (q31_t)0xdb2c29a9, - (q31_t)0x7a94a264, (q31_t)0xdb262539, - (q31_t)0x7a92d329, (q31_t)0xdb2020e0, (q31_t)0x7a9103a2, (q31_t)0xdb1a1c9d, (q31_t)0x7a8f33d0, (q31_t)0xdb141871, - (q31_t)0x7a8d63b2, (q31_t)0xdb0e145c, - (q31_t)0x7a8b9348, (q31_t)0xdb08105e, (q31_t)0x7a89c293, (q31_t)0xdb020c77, (q31_t)0x7a87f192, (q31_t)0xdafc08a6, - (q31_t)0x7a862046, (q31_t)0xdaf604ec, - (q31_t)0x7a844eae, (q31_t)0xdaf00149, (q31_t)0x7a827ccb, (q31_t)0xdae9fdbd, (q31_t)0x7a80aa9c, (q31_t)0xdae3fa48, - (q31_t)0x7a7ed821, (q31_t)0xdaddf6ea, - (q31_t)0x7a7d055b, (q31_t)0xdad7f3a2, (q31_t)0x7a7b3249, (q31_t)0xdad1f072, (q31_t)0x7a795eec, (q31_t)0xdacbed58, - (q31_t)0x7a778b43, (q31_t)0xdac5ea56, - (q31_t)0x7a75b74f, (q31_t)0xdabfe76a, (q31_t)0x7a73e30f, (q31_t)0xdab9e495, (q31_t)0x7a720e84, (q31_t)0xdab3e1d8, - (q31_t)0x7a7039ad, (q31_t)0xdaaddf31, - (q31_t)0x7a6e648a, (q31_t)0xdaa7dca1, (q31_t)0x7a6c8f1c, (q31_t)0xdaa1da29, (q31_t)0x7a6ab963, (q31_t)0xda9bd7c7, - (q31_t)0x7a68e35e, (q31_t)0xda95d57d, - (q31_t)0x7a670d0d, (q31_t)0xda8fd349, (q31_t)0x7a653671, (q31_t)0xda89d12d, (q31_t)0x7a635f8a, (q31_t)0xda83cf28, - (q31_t)0x7a618857, (q31_t)0xda7dcd3a, - (q31_t)0x7a5fb0d8, (q31_t)0xda77cb63, (q31_t)0x7a5dd90e, (q31_t)0xda71c9a3, (q31_t)0x7a5c00f9, (q31_t)0xda6bc7fa, - (q31_t)0x7a5a2898, (q31_t)0xda65c669, - (q31_t)0x7a584feb, (q31_t)0xda5fc4ef, (q31_t)0x7a5676f3, (q31_t)0xda59c38c, (q31_t)0x7a549db0, (q31_t)0xda53c240, - (q31_t)0x7a52c421, (q31_t)0xda4dc10b, - (q31_t)0x7a50ea47, (q31_t)0xda47bfee, (q31_t)0x7a4f1021, (q31_t)0xda41bee8, (q31_t)0x7a4d35b0, (q31_t)0xda3bbdf9, - (q31_t)0x7a4b5af3, (q31_t)0xda35bd22, - (q31_t)0x7a497feb, (q31_t)0xda2fbc61, (q31_t)0x7a47a498, (q31_t)0xda29bbb9, (q31_t)0x7a45c8f9, (q31_t)0xda23bb27, - (q31_t)0x7a43ed0e, (q31_t)0xda1dbaad, - (q31_t)0x7a4210d8, (q31_t)0xda17ba4a, (q31_t)0x7a403457, (q31_t)0xda11b9ff, (q31_t)0x7a3e578b, (q31_t)0xda0bb9cb, - (q31_t)0x7a3c7a73, (q31_t)0xda05b9ae, - (q31_t)0x7a3a9d0f, (q31_t)0xd9ffb9a9, (q31_t)0x7a38bf60, (q31_t)0xd9f9b9bb, (q31_t)0x7a36e166, (q31_t)0xd9f3b9e5, - (q31_t)0x7a350321, (q31_t)0xd9edba26, - (q31_t)0x7a332490, (q31_t)0xd9e7ba7f, (q31_t)0x7a3145b3, (q31_t)0xd9e1baef, (q31_t)0x7a2f668c, (q31_t)0xd9dbbb77, - (q31_t)0x7a2d8719, (q31_t)0xd9d5bc16, - (q31_t)0x7a2ba75a, (q31_t)0xd9cfbccd, (q31_t)0x7a29c750, (q31_t)0xd9c9bd9b, (q31_t)0x7a27e6fb, (q31_t)0xd9c3be81, - (q31_t)0x7a26065b, (q31_t)0xd9bdbf7e, - (q31_t)0x7a24256f, (q31_t)0xd9b7c094, (q31_t)0x7a224437, (q31_t)0xd9b1c1c0, (q31_t)0x7a2062b5, (q31_t)0xd9abc305, - (q31_t)0x7a1e80e7, (q31_t)0xd9a5c461, - (q31_t)0x7a1c9ece, (q31_t)0xd99fc5d4, (q31_t)0x7a1abc69, (q31_t)0xd999c75f, (q31_t)0x7a18d9b9, (q31_t)0xd993c902, - (q31_t)0x7a16f6be, (q31_t)0xd98dcabd, - (q31_t)0x7a151378, (q31_t)0xd987cc90, (q31_t)0x7a132fe6, (q31_t)0xd981ce7a, (q31_t)0x7a114c09, (q31_t)0xd97bd07c, - (q31_t)0x7a0f67e0, (q31_t)0xd975d295, - (q31_t)0x7a0d836d, (q31_t)0xd96fd4c7, (q31_t)0x7a0b9eae, (q31_t)0xd969d710, (q31_t)0x7a09b9a4, (q31_t)0xd963d971, - (q31_t)0x7a07d44e, (q31_t)0xd95ddbea, - (q31_t)0x7a05eead, (q31_t)0xd957de7a, (q31_t)0x7a0408c1, (q31_t)0xd951e123, (q31_t)0x7a02228a, (q31_t)0xd94be3e3, - (q31_t)0x7a003c07, (q31_t)0xd945e6bb, - (q31_t)0x79fe5539, (q31_t)0xd93fe9ab, (q31_t)0x79fc6e20, (q31_t)0xd939ecb3, (q31_t)0x79fa86bc, (q31_t)0xd933efd3, - (q31_t)0x79f89f0c, (q31_t)0xd92df30b, - (q31_t)0x79f6b711, (q31_t)0xd927f65b, (q31_t)0x79f4cecb, (q31_t)0xd921f9c3, (q31_t)0x79f2e63a, (q31_t)0xd91bfd43, - (q31_t)0x79f0fd5d, (q31_t)0xd91600da, - (q31_t)0x79ef1436, (q31_t)0xd910048a, (q31_t)0x79ed2ac3, (q31_t)0xd90a0852, (q31_t)0x79eb4105, (q31_t)0xd9040c32, - (q31_t)0x79e956fb, (q31_t)0xd8fe1029, - (q31_t)0x79e76ca7, (q31_t)0xd8f81439, (q31_t)0x79e58207, (q31_t)0xd8f21861, (q31_t)0x79e3971c, (q31_t)0xd8ec1ca1, - (q31_t)0x79e1abe6, (q31_t)0xd8e620fa, - (q31_t)0x79dfc064, (q31_t)0xd8e0256a, (q31_t)0x79ddd498, (q31_t)0xd8da29f2, (q31_t)0x79dbe880, (q31_t)0xd8d42e93, - (q31_t)0x79d9fc1d, (q31_t)0xd8ce334c, - (q31_t)0x79d80f6f, (q31_t)0xd8c8381d, (q31_t)0x79d62276, (q31_t)0xd8c23d06, (q31_t)0x79d43532, (q31_t)0xd8bc4207, - (q31_t)0x79d247a2, (q31_t)0xd8b64720, - (q31_t)0x79d059c8, (q31_t)0xd8b04c52, (q31_t)0x79ce6ba2, (q31_t)0xd8aa519c, (q31_t)0x79cc7d31, (q31_t)0xd8a456ff, - (q31_t)0x79ca8e75, (q31_t)0xd89e5c79, - (q31_t)0x79c89f6e, (q31_t)0xd898620c, (q31_t)0x79c6b01b, (q31_t)0xd89267b7, (q31_t)0x79c4c07e, (q31_t)0xd88c6d7b, - (q31_t)0x79c2d095, (q31_t)0xd8867356, - (q31_t)0x79c0e062, (q31_t)0xd880794b, (q31_t)0x79beefe3, (q31_t)0xd87a7f57, (q31_t)0x79bcff19, (q31_t)0xd874857c, - (q31_t)0x79bb0e04, (q31_t)0xd86e8bb9, - (q31_t)0x79b91ca4, (q31_t)0xd868920f, (q31_t)0x79b72af9, (q31_t)0xd862987d, (q31_t)0x79b53903, (q31_t)0xd85c9f04, - (q31_t)0x79b346c2, (q31_t)0xd856a5a3, - (q31_t)0x79b15435, (q31_t)0xd850ac5a, (q31_t)0x79af615e, (q31_t)0xd84ab32a, (q31_t)0x79ad6e3c, (q31_t)0xd844ba13, - (q31_t)0x79ab7ace, (q31_t)0xd83ec114, - (q31_t)0x79a98715, (q31_t)0xd838c82d, (q31_t)0x79a79312, (q31_t)0xd832cf5f, (q31_t)0x79a59ec3, (q31_t)0xd82cd6aa, - (q31_t)0x79a3aa29, (q31_t)0xd826de0d, - (q31_t)0x79a1b545, (q31_t)0xd820e589, (q31_t)0x799fc015, (q31_t)0xd81aed1d, (q31_t)0x799dca9a, (q31_t)0xd814f4ca, - (q31_t)0x799bd4d4, (q31_t)0xd80efc8f, - (q31_t)0x7999dec4, (q31_t)0xd809046e, (q31_t)0x7997e868, (q31_t)0xd8030c64, (q31_t)0x7995f1c1, (q31_t)0xd7fd1474, - (q31_t)0x7993facf, (q31_t)0xd7f71c9c, - (q31_t)0x79920392, (q31_t)0xd7f124dd, (q31_t)0x79900c0a, (q31_t)0xd7eb2d37, (q31_t)0x798e1438, (q31_t)0xd7e535a9, - (q31_t)0x798c1c1a, (q31_t)0xd7df3e34, - (q31_t)0x798a23b1, (q31_t)0xd7d946d8, (q31_t)0x79882afd, (q31_t)0xd7d34f94, (q31_t)0x798631ff, (q31_t)0xd7cd586a, - (q31_t)0x798438b5, (q31_t)0xd7c76158, - (q31_t)0x79823f20, (q31_t)0xd7c16a5f, (q31_t)0x79804541, (q31_t)0xd7bb737f, (q31_t)0x797e4b16, (q31_t)0xd7b57cb7, - (q31_t)0x797c50a1, (q31_t)0xd7af8609, - (q31_t)0x797a55e0, (q31_t)0xd7a98f73, (q31_t)0x79785ad5, (q31_t)0xd7a398f6, (q31_t)0x79765f7f, (q31_t)0xd79da293, - (q31_t)0x797463de, (q31_t)0xd797ac48, - (q31_t)0x797267f2, (q31_t)0xd791b616, (q31_t)0x79706bbb, (q31_t)0xd78bbffc, (q31_t)0x796e6f39, (q31_t)0xd785c9fc, - (q31_t)0x796c726c, (q31_t)0xd77fd415, - (q31_t)0x796a7554, (q31_t)0xd779de47, (q31_t)0x796877f1, (q31_t)0xd773e892, (q31_t)0x79667a44, (q31_t)0xd76df2f6, - (q31_t)0x79647c4c, (q31_t)0xd767fd72, - (q31_t)0x79627e08, (q31_t)0xd7620808, (q31_t)0x79607f7a, (q31_t)0xd75c12b7, (q31_t)0x795e80a1, (q31_t)0xd7561d7f, - (q31_t)0x795c817d, (q31_t)0xd7502860, - (q31_t)0x795a820e, (q31_t)0xd74a335b, (q31_t)0x79588255, (q31_t)0xd7443e6e, (q31_t)0x79568250, (q31_t)0xd73e499a, - (q31_t)0x79548201, (q31_t)0xd73854e0, - (q31_t)0x79528167, (q31_t)0xd732603f, (q31_t)0x79508082, (q31_t)0xd72c6bb6, (q31_t)0x794e7f52, (q31_t)0xd7267748, - (q31_t)0x794c7dd7, (q31_t)0xd72082f2, - (q31_t)0x794a7c12, (q31_t)0xd71a8eb5, (q31_t)0x79487a01, (q31_t)0xd7149a92, (q31_t)0x794677a6, (q31_t)0xd70ea688, - (q31_t)0x79447500, (q31_t)0xd708b297, - (q31_t)0x79427210, (q31_t)0xd702bec0, (q31_t)0x79406ed4, (q31_t)0xd6fccb01, (q31_t)0x793e6b4e, (q31_t)0xd6f6d75d, - (q31_t)0x793c677d, (q31_t)0xd6f0e3d1, - (q31_t)0x793a6361, (q31_t)0xd6eaf05f, (q31_t)0x79385efa, (q31_t)0xd6e4fd06, (q31_t)0x79365a49, (q31_t)0xd6df09c6, - (q31_t)0x7934554d, (q31_t)0xd6d916a0, - (q31_t)0x79325006, (q31_t)0xd6d32393, (q31_t)0x79304a74, (q31_t)0xd6cd30a0, (q31_t)0x792e4497, (q31_t)0xd6c73dc6, - (q31_t)0x792c3e70, (q31_t)0xd6c14b05, - (q31_t)0x792a37fe, (q31_t)0xd6bb585e, (q31_t)0x79283141, (q31_t)0xd6b565d0, (q31_t)0x79262a3a, (q31_t)0xd6af735c, - (q31_t)0x792422e8, (q31_t)0xd6a98101, - (q31_t)0x79221b4b, (q31_t)0xd6a38ec0, (q31_t)0x79201363, (q31_t)0xd69d9c98, (q31_t)0x791e0b31, (q31_t)0xd697aa8a, - (q31_t)0x791c02b4, (q31_t)0xd691b895, - (q31_t)0x7919f9ec, (q31_t)0xd68bc6ba, (q31_t)0x7917f0d9, (q31_t)0xd685d4f9, (q31_t)0x7915e77c, (q31_t)0xd67fe351, - (q31_t)0x7913ddd4, (q31_t)0xd679f1c2, - (q31_t)0x7911d3e2, (q31_t)0xd674004e, (q31_t)0x790fc9a4, (q31_t)0xd66e0ef2, (q31_t)0x790dbf1d, (q31_t)0xd6681db1, - (q31_t)0x790bb44a, (q31_t)0xd6622c89, - (q31_t)0x7909a92d, (q31_t)0xd65c3b7b, (q31_t)0x79079dc5, (q31_t)0xd6564a87, (q31_t)0x79059212, (q31_t)0xd65059ac, - (q31_t)0x79038615, (q31_t)0xd64a68eb, - (q31_t)0x790179cd, (q31_t)0xd6447844, (q31_t)0x78ff6d3b, (q31_t)0xd63e87b6, (q31_t)0x78fd605d, (q31_t)0xd6389742, - (q31_t)0x78fb5336, (q31_t)0xd632a6e8, - (q31_t)0x78f945c3, (q31_t)0xd62cb6a8, (q31_t)0x78f73806, (q31_t)0xd626c681, (q31_t)0x78f529fe, (q31_t)0xd620d675, - (q31_t)0x78f31bac, (q31_t)0xd61ae682, - (q31_t)0x78f10d0f, (q31_t)0xd614f6a9, (q31_t)0x78eefe28, (q31_t)0xd60f06ea, (q31_t)0x78eceef6, (q31_t)0xd6091745, - (q31_t)0x78eadf79, (q31_t)0xd60327b9, - (q31_t)0x78e8cfb2, (q31_t)0xd5fd3848, (q31_t)0x78e6bfa0, (q31_t)0xd5f748f0, (q31_t)0x78e4af44, (q31_t)0xd5f159b3, - (q31_t)0x78e29e9d, (q31_t)0xd5eb6a8f, - (q31_t)0x78e08dab, (q31_t)0xd5e57b85, (q31_t)0x78de7c6f, (q31_t)0xd5df8c96, (q31_t)0x78dc6ae8, (q31_t)0xd5d99dc0, - (q31_t)0x78da5917, (q31_t)0xd5d3af04, - (q31_t)0x78d846fb, (q31_t)0xd5cdc062, (q31_t)0x78d63495, (q31_t)0xd5c7d1db, (q31_t)0x78d421e4, (q31_t)0xd5c1e36d, - (q31_t)0x78d20ee9, (q31_t)0xd5bbf519, - (q31_t)0x78cffba3, (q31_t)0xd5b606e0, (q31_t)0x78cde812, (q31_t)0xd5b018c0, (q31_t)0x78cbd437, (q31_t)0xd5aa2abb, - (q31_t)0x78c9c012, (q31_t)0xd5a43cd0, - (q31_t)0x78c7aba2, (q31_t)0xd59e4eff, (q31_t)0x78c596e7, (q31_t)0xd5986148, (q31_t)0x78c381e2, (q31_t)0xd59273ab, - (q31_t)0x78c16c93, (q31_t)0xd58c8628, - (q31_t)0x78bf56f9, (q31_t)0xd58698c0, (q31_t)0x78bd4114, (q31_t)0xd580ab72, (q31_t)0x78bb2ae5, (q31_t)0xd57abe3d, - (q31_t)0x78b9146c, (q31_t)0xd574d124, - (q31_t)0x78b6fda8, (q31_t)0xd56ee424, (q31_t)0x78b4e69a, (q31_t)0xd568f73f, (q31_t)0x78b2cf41, (q31_t)0xd5630a74, - (q31_t)0x78b0b79e, (q31_t)0xd55d1dc3, - (q31_t)0x78ae9fb0, (q31_t)0xd557312d, (q31_t)0x78ac8778, (q31_t)0xd55144b0, (q31_t)0x78aa6ef5, (q31_t)0xd54b584f, - (q31_t)0x78a85628, (q31_t)0xd5456c07, - (q31_t)0x78a63d11, (q31_t)0xd53f7fda, (q31_t)0x78a423af, (q31_t)0xd53993c7, (q31_t)0x78a20a03, (q31_t)0xd533a7cf, - (q31_t)0x789ff00c, (q31_t)0xd52dbbf1, - (q31_t)0x789dd5cb, (q31_t)0xd527d02e, (q31_t)0x789bbb3f, (q31_t)0xd521e484, (q31_t)0x7899a06a, (q31_t)0xd51bf8f6, - (q31_t)0x78978549, (q31_t)0xd5160d82, - (q31_t)0x789569df, (q31_t)0xd5102228, (q31_t)0x78934e2a, (q31_t)0xd50a36e9, (q31_t)0x7891322a, (q31_t)0xd5044bc4, - (q31_t)0x788f15e0, (q31_t)0xd4fe60ba, - (q31_t)0x788cf94c, (q31_t)0xd4f875ca, (q31_t)0x788adc6e, (q31_t)0xd4f28af5, (q31_t)0x7888bf45, (q31_t)0xd4eca03a, - (q31_t)0x7886a1d1, (q31_t)0xd4e6b59a, - (q31_t)0x78848414, (q31_t)0xd4e0cb15, (q31_t)0x7882660c, (q31_t)0xd4dae0aa, (q31_t)0x788047ba, (q31_t)0xd4d4f65a, - (q31_t)0x787e291d, (q31_t)0xd4cf0c24, - (q31_t)0x787c0a36, (q31_t)0xd4c92209, (q31_t)0x7879eb05, (q31_t)0xd4c33809, (q31_t)0x7877cb89, (q31_t)0xd4bd4e23, - (q31_t)0x7875abc3, (q31_t)0xd4b76458, - (q31_t)0x78738bb3, (q31_t)0xd4b17aa8, (q31_t)0x78716b59, (q31_t)0xd4ab9112, (q31_t)0x786f4ab4, (q31_t)0xd4a5a798, - (q31_t)0x786d29c5, (q31_t)0xd49fbe37, - (q31_t)0x786b088c, (q31_t)0xd499d4f2, (q31_t)0x7868e708, (q31_t)0xd493ebc8, (q31_t)0x7866c53a, (q31_t)0xd48e02b8, - (q31_t)0x7864a322, (q31_t)0xd48819c3, - (q31_t)0x786280bf, (q31_t)0xd48230e9, (q31_t)0x78605e13, (q31_t)0xd47c4829, (q31_t)0x785e3b1c, (q31_t)0xd4765f85, - (q31_t)0x785c17db, (q31_t)0xd47076fb, - (q31_t)0x7859f44f, (q31_t)0xd46a8e8d, (q31_t)0x7857d079, (q31_t)0xd464a639, (q31_t)0x7855ac5a, (q31_t)0xd45ebe00, - (q31_t)0x785387ef, (q31_t)0xd458d5e2, - (q31_t)0x7851633b, (q31_t)0xd452eddf, (q31_t)0x784f3e3c, (q31_t)0xd44d05f6, (q31_t)0x784d18f4, (q31_t)0xd4471e29, - (q31_t)0x784af361, (q31_t)0xd4413677, - (q31_t)0x7848cd83, (q31_t)0xd43b4ee0, (q31_t)0x7846a75c, (q31_t)0xd4356763, (q31_t)0x784480ea, (q31_t)0xd42f8002, - (q31_t)0x78425a2f, (q31_t)0xd42998bc, - (q31_t)0x78403329, (q31_t)0xd423b191, (q31_t)0x783e0bd9, (q31_t)0xd41dca81, (q31_t)0x783be43e, (q31_t)0xd417e38c, - (q31_t)0x7839bc5a, (q31_t)0xd411fcb2, - (q31_t)0x7837942b, (q31_t)0xd40c15f3, (q31_t)0x78356bb2, (q31_t)0xd4062f4f, (q31_t)0x783342ef, (q31_t)0xd40048c6, - (q31_t)0x783119e2, (q31_t)0xd3fa6259, - (q31_t)0x782ef08b, (q31_t)0xd3f47c06, (q31_t)0x782cc6ea, (q31_t)0xd3ee95cf, (q31_t)0x782a9cfe, (q31_t)0xd3e8afb3, - (q31_t)0x782872c8, (q31_t)0xd3e2c9b2, - (q31_t)0x78264849, (q31_t)0xd3dce3cd, (q31_t)0x78241d7f, (q31_t)0xd3d6fe03, (q31_t)0x7821f26b, (q31_t)0xd3d11853, - (q31_t)0x781fc70d, (q31_t)0xd3cb32c0, - (q31_t)0x781d9b65, (q31_t)0xd3c54d47, (q31_t)0x781b6f72, (q31_t)0xd3bf67ea, (q31_t)0x78194336, (q31_t)0xd3b982a8, - (q31_t)0x781716b0, (q31_t)0xd3b39d81, - (q31_t)0x7814e9df, (q31_t)0xd3adb876, (q31_t)0x7812bcc4, (q31_t)0xd3a7d385, (q31_t)0x78108f60, (q31_t)0xd3a1eeb1, - (q31_t)0x780e61b1, (q31_t)0xd39c09f7, - (q31_t)0x780c33b8, (q31_t)0xd396255a, (q31_t)0x780a0575, (q31_t)0xd39040d7, (q31_t)0x7807d6e9, (q31_t)0xd38a5c70, - (q31_t)0x7805a812, (q31_t)0xd3847824, - (q31_t)0x780378f1, (q31_t)0xd37e93f4, (q31_t)0x78014986, (q31_t)0xd378afdf, (q31_t)0x77ff19d1, (q31_t)0xd372cbe6, - (q31_t)0x77fce9d2, (q31_t)0xd36ce808, - (q31_t)0x77fab989, (q31_t)0xd3670446, (q31_t)0x77f888f6, (q31_t)0xd361209f, (q31_t)0x77f65819, (q31_t)0xd35b3d13, - (q31_t)0x77f426f2, (q31_t)0xd35559a4, - (q31_t)0x77f1f581, (q31_t)0xd34f764f, (q31_t)0x77efc3c5, (q31_t)0xd3499317, (q31_t)0x77ed91c0, (q31_t)0xd343affa, - (q31_t)0x77eb5f71, (q31_t)0xd33dccf8, - (q31_t)0x77e92cd9, (q31_t)0xd337ea12, (q31_t)0x77e6f9f6, (q31_t)0xd3320748, (q31_t)0x77e4c6c9, (q31_t)0xd32c2499, - (q31_t)0x77e29352, (q31_t)0xd3264206, - (q31_t)0x77e05f91, (q31_t)0xd3205f8f, (q31_t)0x77de2b86, (q31_t)0xd31a7d33, (q31_t)0x77dbf732, (q31_t)0xd3149af3, - (q31_t)0x77d9c293, (q31_t)0xd30eb8cf, - (q31_t)0x77d78daa, (q31_t)0xd308d6c7, (q31_t)0x77d55878, (q31_t)0xd302f4da, (q31_t)0x77d322fc, (q31_t)0xd2fd1309, - (q31_t)0x77d0ed35, (q31_t)0xd2f73154, - (q31_t)0x77ceb725, (q31_t)0xd2f14fba, (q31_t)0x77cc80cb, (q31_t)0xd2eb6e3c, (q31_t)0x77ca4a27, (q31_t)0xd2e58cdb, - (q31_t)0x77c81339, (q31_t)0xd2dfab95, - (q31_t)0x77c5dc01, (q31_t)0xd2d9ca6a, (q31_t)0x77c3a47f, (q31_t)0xd2d3e95c, (q31_t)0x77c16cb4, (q31_t)0xd2ce0869, - (q31_t)0x77bf349f, (q31_t)0xd2c82793, - (q31_t)0x77bcfc3f, (q31_t)0xd2c246d8, (q31_t)0x77bac396, (q31_t)0xd2bc6639, (q31_t)0x77b88aa3, (q31_t)0xd2b685b6, - (q31_t)0x77b65166, (q31_t)0xd2b0a54f, - (q31_t)0x77b417df, (q31_t)0xd2aac504, (q31_t)0x77b1de0f, (q31_t)0xd2a4e4d5, (q31_t)0x77afa3f5, (q31_t)0xd29f04c2, - (q31_t)0x77ad6990, (q31_t)0xd29924cb, - (q31_t)0x77ab2ee2, (q31_t)0xd29344f0, (q31_t)0x77a8f3ea, (q31_t)0xd28d6531, (q31_t)0x77a6b8a9, (q31_t)0xd287858e, - (q31_t)0x77a47d1d, (q31_t)0xd281a607, - (q31_t)0x77a24148, (q31_t)0xd27bc69c, (q31_t)0x77a00529, (q31_t)0xd275e74d, (q31_t)0x779dc8c0, (q31_t)0xd270081b, - (q31_t)0x779b8c0e, (q31_t)0xd26a2904, - (q31_t)0x77994f11, (q31_t)0xd2644a0a, (q31_t)0x779711cb, (q31_t)0xd25e6b2b, (q31_t)0x7794d43b, (q31_t)0xd2588c69, - (q31_t)0x77929661, (q31_t)0xd252adc3, - (q31_t)0x7790583e, (q31_t)0xd24ccf39, (q31_t)0x778e19d0, (q31_t)0xd246f0cb, (q31_t)0x778bdb19, (q31_t)0xd241127a, - (q31_t)0x77899c19, (q31_t)0xd23b3444, - (q31_t)0x77875cce, (q31_t)0xd235562b, (q31_t)0x77851d3a, (q31_t)0xd22f782f, (q31_t)0x7782dd5c, (q31_t)0xd2299a4e, - (q31_t)0x77809d35, (q31_t)0xd223bc8a, - (q31_t)0x777e5cc3, (q31_t)0xd21ddee2, (q31_t)0x777c1c08, (q31_t)0xd2180156, (q31_t)0x7779db03, (q31_t)0xd21223e7, - (q31_t)0x777799b5, (q31_t)0xd20c4694, - (q31_t)0x7775581d, (q31_t)0xd206695d, (q31_t)0x7773163b, (q31_t)0xd2008c43, (q31_t)0x7770d40f, (q31_t)0xd1faaf45, - (q31_t)0x776e919a, (q31_t)0xd1f4d263, - (q31_t)0x776c4edb, (q31_t)0xd1eef59e, (q31_t)0x776a0bd3, (q31_t)0xd1e918f5, (q31_t)0x7767c880, (q31_t)0xd1e33c69, - (q31_t)0x776584e5, (q31_t)0xd1dd5ff9, - (q31_t)0x776340ff, (q31_t)0xd1d783a6, (q31_t)0x7760fcd0, (q31_t)0xd1d1a76f, (q31_t)0x775eb857, (q31_t)0xd1cbcb54, - (q31_t)0x775c7395, (q31_t)0xd1c5ef56, - (q31_t)0x775a2e89, (q31_t)0xd1c01375, (q31_t)0x7757e933, (q31_t)0xd1ba37b0, (q31_t)0x7755a394, (q31_t)0xd1b45c08, - (q31_t)0x77535dab, (q31_t)0xd1ae807c, - (q31_t)0x77511778, (q31_t)0xd1a8a50d, (q31_t)0x774ed0fc, (q31_t)0xd1a2c9ba, (q31_t)0x774c8a36, (q31_t)0xd19cee84, - (q31_t)0x774a4327, (q31_t)0xd197136b, - (q31_t)0x7747fbce, (q31_t)0xd191386e, (q31_t)0x7745b42c, (q31_t)0xd18b5d8e, (q31_t)0x77436c40, (q31_t)0xd18582ca, - (q31_t)0x7741240a, (q31_t)0xd17fa823, - (q31_t)0x773edb8b, (q31_t)0xd179cd99, (q31_t)0x773c92c2, (q31_t)0xd173f32c, (q31_t)0x773a49b0, (q31_t)0xd16e18db, - (q31_t)0x77380054, (q31_t)0xd1683ea7, - (q31_t)0x7735b6af, (q31_t)0xd1626490, (q31_t)0x77336cc0, (q31_t)0xd15c8a95, (q31_t)0x77312287, (q31_t)0xd156b0b7, - (q31_t)0x772ed805, (q31_t)0xd150d6f6, - (q31_t)0x772c8d3a, (q31_t)0xd14afd52, (q31_t)0x772a4225, (q31_t)0xd14523cb, (q31_t)0x7727f6c6, (q31_t)0xd13f4a60, - (q31_t)0x7725ab1f, (q31_t)0xd1397113, - (q31_t)0x77235f2d, (q31_t)0xd13397e2, (q31_t)0x772112f2, (q31_t)0xd12dbece, (q31_t)0x771ec66e, (q31_t)0xd127e5d7, - (q31_t)0x771c79a0, (q31_t)0xd1220cfc, - (q31_t)0x771a2c88, (q31_t)0xd11c343f, (q31_t)0x7717df27, (q31_t)0xd1165b9f, (q31_t)0x7715917d, (q31_t)0xd110831b, - (q31_t)0x77134389, (q31_t)0xd10aaab5, - (q31_t)0x7710f54c, (q31_t)0xd104d26b, (q31_t)0x770ea6c5, (q31_t)0xd0fefa3f, (q31_t)0x770c57f5, (q31_t)0xd0f9222f, - (q31_t)0x770a08dc, (q31_t)0xd0f34a3d, - (q31_t)0x7707b979, (q31_t)0xd0ed7267, (q31_t)0x770569cc, (q31_t)0xd0e79aaf, (q31_t)0x770319d6, (q31_t)0xd0e1c313, - (q31_t)0x7700c997, (q31_t)0xd0dbeb95, - (q31_t)0x76fe790e, (q31_t)0xd0d61434, (q31_t)0x76fc283c, (q31_t)0xd0d03cf0, (q31_t)0x76f9d721, (q31_t)0xd0ca65c9, - (q31_t)0x76f785bc, (q31_t)0xd0c48ebf, - (q31_t)0x76f5340e, (q31_t)0xd0beb7d2, (q31_t)0x76f2e216, (q31_t)0xd0b8e102, (q31_t)0x76f08fd5, (q31_t)0xd0b30a50, - (q31_t)0x76ee3d4b, (q31_t)0xd0ad33ba, - (q31_t)0x76ebea77, (q31_t)0xd0a75d42, (q31_t)0x76e9975a, (q31_t)0xd0a186e7, (q31_t)0x76e743f4, (q31_t)0xd09bb0aa, - (q31_t)0x76e4f044, (q31_t)0xd095da89, - (q31_t)0x76e29c4b, (q31_t)0xd0900486, (q31_t)0x76e04808, (q31_t)0xd08a2ea0, (q31_t)0x76ddf37c, (q31_t)0xd08458d7, - (q31_t)0x76db9ea7, (q31_t)0xd07e832c, - (q31_t)0x76d94989, (q31_t)0xd078ad9e, (q31_t)0x76d6f421, (q31_t)0xd072d82d, (q31_t)0x76d49e70, (q31_t)0xd06d02da, - (q31_t)0x76d24876, (q31_t)0xd0672da3, - (q31_t)0x76cff232, (q31_t)0xd061588b, (q31_t)0x76cd9ba5, (q31_t)0xd05b838f, (q31_t)0x76cb44cf, (q31_t)0xd055aeb1, - (q31_t)0x76c8edb0, (q31_t)0xd04fd9f1, - (q31_t)0x76c69647, (q31_t)0xd04a054e, (q31_t)0x76c43e95, (q31_t)0xd04430c8, (q31_t)0x76c1e699, (q31_t)0xd03e5c60, - (q31_t)0x76bf8e55, (q31_t)0xd0388815, - (q31_t)0x76bd35c7, (q31_t)0xd032b3e7, (q31_t)0x76badcf0, (q31_t)0xd02cdfd8, (q31_t)0x76b883d0, (q31_t)0xd0270be5, - (q31_t)0x76b62a66, (q31_t)0xd0213810, - (q31_t)0x76b3d0b4, (q31_t)0xd01b6459, (q31_t)0x76b176b8, (q31_t)0xd01590bf, (q31_t)0x76af1c72, (q31_t)0xd00fbd43, - (q31_t)0x76acc1e4, (q31_t)0xd009e9e4, - (q31_t)0x76aa670d, (q31_t)0xd00416a3, (q31_t)0x76a80bec, (q31_t)0xcffe4380, (q31_t)0x76a5b082, (q31_t)0xcff8707a, - (q31_t)0x76a354cf, (q31_t)0xcff29d92, - (q31_t)0x76a0f8d2, (q31_t)0xcfeccac7, (q31_t)0x769e9c8d, (q31_t)0xcfe6f81a, (q31_t)0x769c3ffe, (q31_t)0xcfe1258b, - (q31_t)0x7699e326, (q31_t)0xcfdb531a, - (q31_t)0x76978605, (q31_t)0xcfd580c6, (q31_t)0x7695289b, (q31_t)0xcfcfae8f, (q31_t)0x7692cae8, (q31_t)0xcfc9dc77, - (q31_t)0x76906ceb, (q31_t)0xcfc40a7c, - (q31_t)0x768e0ea6, (q31_t)0xcfbe389f, (q31_t)0x768bb017, (q31_t)0xcfb866e0, (q31_t)0x7689513f, (q31_t)0xcfb2953f, - (q31_t)0x7686f21e, (q31_t)0xcfacc3bb, - (q31_t)0x768492b4, (q31_t)0xcfa6f255, (q31_t)0x76823301, (q31_t)0xcfa1210d, (q31_t)0x767fd304, (q31_t)0xcf9b4fe3, - (q31_t)0x767d72bf, (q31_t)0xcf957ed7, - (q31_t)0x767b1231, (q31_t)0xcf8fade9, (q31_t)0x7678b159, (q31_t)0xcf89dd18, (q31_t)0x76765038, (q31_t)0xcf840c65, - (q31_t)0x7673eecf, (q31_t)0xcf7e3bd1, - (q31_t)0x76718d1c, (q31_t)0xcf786b5a, (q31_t)0x766f2b20, (q31_t)0xcf729b01, (q31_t)0x766cc8db, (q31_t)0xcf6ccac6, - (q31_t)0x766a664d, (q31_t)0xcf66faa9, - (q31_t)0x76680376, (q31_t)0xcf612aaa, (q31_t)0x7665a056, (q31_t)0xcf5b5ac9, (q31_t)0x76633ced, (q31_t)0xcf558b06, - (q31_t)0x7660d93b, (q31_t)0xcf4fbb61, - (q31_t)0x765e7540, (q31_t)0xcf49ebda, (q31_t)0x765c10fc, (q31_t)0xcf441c71, (q31_t)0x7659ac6f, (q31_t)0xcf3e4d26, - (q31_t)0x76574798, (q31_t)0xcf387dfa, - (q31_t)0x7654e279, (q31_t)0xcf32aeeb, (q31_t)0x76527d11, (q31_t)0xcf2cdffa, (q31_t)0x76501760, (q31_t)0xcf271128, - (q31_t)0x764db166, (q31_t)0xcf214274, - (q31_t)0x764b4b23, (q31_t)0xcf1b73de, (q31_t)0x7648e497, (q31_t)0xcf15a566, (q31_t)0x76467dc2, (q31_t)0xcf0fd70c, - (q31_t)0x764416a4, (q31_t)0xcf0a08d0, - (q31_t)0x7641af3d, (q31_t)0xcf043ab3, (q31_t)0x763f478d, (q31_t)0xcefe6cb3, (q31_t)0x763cdf94, (q31_t)0xcef89ed2, - (q31_t)0x763a7752, (q31_t)0xcef2d110, - (q31_t)0x76380ec8, (q31_t)0xceed036b, (q31_t)0x7635a5f4, (q31_t)0xcee735e5, (q31_t)0x76333cd8, (q31_t)0xcee1687d, - (q31_t)0x7630d372, (q31_t)0xcedb9b33, - (q31_t)0x762e69c4, (q31_t)0xced5ce08, (q31_t)0x762bffcd, (q31_t)0xced000fb, (q31_t)0x7629958c, (q31_t)0xceca340c, - (q31_t)0x76272b03, (q31_t)0xcec4673c, - (q31_t)0x7624c031, (q31_t)0xcebe9a8a, (q31_t)0x76225517, (q31_t)0xceb8cdf7, (q31_t)0x761fe9b3, (q31_t)0xceb30181, - (q31_t)0x761d7e06, (q31_t)0xcead352b, - (q31_t)0x761b1211, (q31_t)0xcea768f2, (q31_t)0x7618a5d3, (q31_t)0xcea19cd8, (q31_t)0x7616394c, (q31_t)0xce9bd0dd, - (q31_t)0x7613cc7c, (q31_t)0xce960500, - (q31_t)0x76115f63, (q31_t)0xce903942, (q31_t)0x760ef201, (q31_t)0xce8a6da2, (q31_t)0x760c8457, (q31_t)0xce84a220, - (q31_t)0x760a1664, (q31_t)0xce7ed6bd, - (q31_t)0x7607a828, (q31_t)0xce790b79, (q31_t)0x760539a3, (q31_t)0xce734053, (q31_t)0x7602cad5, (q31_t)0xce6d754c, - (q31_t)0x76005bbf, (q31_t)0xce67aa63, - (q31_t)0x75fdec60, (q31_t)0xce61df99, (q31_t)0x75fb7cb8, (q31_t)0xce5c14ed, (q31_t)0x75f90cc7, (q31_t)0xce564a60, - (q31_t)0x75f69c8d, (q31_t)0xce507ff2, - (q31_t)0x75f42c0b, (q31_t)0xce4ab5a2, (q31_t)0x75f1bb40, (q31_t)0xce44eb71, (q31_t)0x75ef4a2c, (q31_t)0xce3f215f, - (q31_t)0x75ecd8cf, (q31_t)0xce39576c, - (q31_t)0x75ea672a, (q31_t)0xce338d97, (q31_t)0x75e7f53c, (q31_t)0xce2dc3e1, (q31_t)0x75e58305, (q31_t)0xce27fa49, - (q31_t)0x75e31086, (q31_t)0xce2230d0, - (q31_t)0x75e09dbd, (q31_t)0xce1c6777, (q31_t)0x75de2aac, (q31_t)0xce169e3b, (q31_t)0x75dbb753, (q31_t)0xce10d51f, - (q31_t)0x75d943b0, (q31_t)0xce0b0c21, - (q31_t)0x75d6cfc5, (q31_t)0xce054343, (q31_t)0x75d45b92, (q31_t)0xcdff7a83, (q31_t)0x75d1e715, (q31_t)0xcdf9b1e2, - (q31_t)0x75cf7250, (q31_t)0xcdf3e95f, - (q31_t)0x75ccfd42, (q31_t)0xcdee20fc, (q31_t)0x75ca87ec, (q31_t)0xcde858b8, (q31_t)0x75c8124d, (q31_t)0xcde29092, - (q31_t)0x75c59c65, (q31_t)0xcddcc88b, - (q31_t)0x75c32634, (q31_t)0xcdd700a4, (q31_t)0x75c0afbb, (q31_t)0xcdd138db, (q31_t)0x75be38fa, (q31_t)0xcdcb7131, - (q31_t)0x75bbc1ef, (q31_t)0xcdc5a9a6, - (q31_t)0x75b94a9c, (q31_t)0xcdbfe23a, (q31_t)0x75b6d301, (q31_t)0xcdba1aee, (q31_t)0x75b45b1d, (q31_t)0xcdb453c0, - (q31_t)0x75b1e2f0, (q31_t)0xcdae8cb1, - (q31_t)0x75af6a7b, (q31_t)0xcda8c5c1, (q31_t)0x75acf1bd, (q31_t)0xcda2fef0, (q31_t)0x75aa78b6, (q31_t)0xcd9d383f, - (q31_t)0x75a7ff67, (q31_t)0xcd9771ac, - (q31_t)0x75a585cf, (q31_t)0xcd91ab39, (q31_t)0x75a30bef, (q31_t)0xcd8be4e4, (q31_t)0x75a091c6, (q31_t)0xcd861eaf, - (q31_t)0x759e1755, (q31_t)0xcd805899, - (q31_t)0x759b9c9b, (q31_t)0xcd7a92a2, (q31_t)0x75992198, (q31_t)0xcd74ccca, (q31_t)0x7596a64d, (q31_t)0xcd6f0711, - (q31_t)0x75942ab9, (q31_t)0xcd694178, - (q31_t)0x7591aedd, (q31_t)0xcd637bfe, (q31_t)0x758f32b9, (q31_t)0xcd5db6a3, (q31_t)0x758cb64c, (q31_t)0xcd57f167, - (q31_t)0x758a3996, (q31_t)0xcd522c4a, - (q31_t)0x7587bc98, (q31_t)0xcd4c674d, (q31_t)0x75853f51, (q31_t)0xcd46a26f, (q31_t)0x7582c1c2, (q31_t)0xcd40ddb0, - (q31_t)0x758043ea, (q31_t)0xcd3b1911, - (q31_t)0x757dc5ca, (q31_t)0xcd355491, (q31_t)0x757b4762, (q31_t)0xcd2f9030, (q31_t)0x7578c8b0, (q31_t)0xcd29cbee, - (q31_t)0x757649b7, (q31_t)0xcd2407cc, - (q31_t)0x7573ca75, (q31_t)0xcd1e43ca, (q31_t)0x75714aea, (q31_t)0xcd187fe6, (q31_t)0x756ecb18, (q31_t)0xcd12bc22, - (q31_t)0x756c4afc, (q31_t)0xcd0cf87e, - (q31_t)0x7569ca99, (q31_t)0xcd0734f9, (q31_t)0x756749ec, (q31_t)0xcd017193, (q31_t)0x7564c8f8, (q31_t)0xccfbae4d, - (q31_t)0x756247bb, (q31_t)0xccf5eb26, - (q31_t)0x755fc635, (q31_t)0xccf0281f, (q31_t)0x755d4467, (q31_t)0xccea6538, (q31_t)0x755ac251, (q31_t)0xcce4a26f, - (q31_t)0x75583ff3, (q31_t)0xccdedfc7, - (q31_t)0x7555bd4c, (q31_t)0xccd91d3d, (q31_t)0x75533a5c, (q31_t)0xccd35ad4, (q31_t)0x7550b725, (q31_t)0xcccd988a, - (q31_t)0x754e33a4, (q31_t)0xccc7d65f, - (q31_t)0x754bafdc, (q31_t)0xccc21455, (q31_t)0x75492bcb, (q31_t)0xccbc5269, (q31_t)0x7546a772, (q31_t)0xccb6909e, - (q31_t)0x754422d0, (q31_t)0xccb0cef2, - (q31_t)0x75419de7, (q31_t)0xccab0d65, (q31_t)0x753f18b4, (q31_t)0xcca54bf9, (q31_t)0x753c933a, (q31_t)0xcc9f8aac, - (q31_t)0x753a0d77, (q31_t)0xcc99c97e, - (q31_t)0x7537876c, (q31_t)0xcc940871, (q31_t)0x75350118, (q31_t)0xcc8e4783, (q31_t)0x75327a7d, (q31_t)0xcc8886b5, - (q31_t)0x752ff399, (q31_t)0xcc82c607, - (q31_t)0x752d6c6c, (q31_t)0xcc7d0578, (q31_t)0x752ae4f8, (q31_t)0xcc774509, (q31_t)0x75285d3b, (q31_t)0xcc7184ba, - (q31_t)0x7525d536, (q31_t)0xcc6bc48b, - (q31_t)0x75234ce8, (q31_t)0xcc66047b, (q31_t)0x7520c453, (q31_t)0xcc60448c, (q31_t)0x751e3b75, (q31_t)0xcc5a84bc, - (q31_t)0x751bb24f, (q31_t)0xcc54c50c, - (q31_t)0x751928e0, (q31_t)0xcc4f057c, (q31_t)0x75169f2a, (q31_t)0xcc49460c, (q31_t)0x7514152b, (q31_t)0xcc4386bc, - (q31_t)0x75118ae4, (q31_t)0xcc3dc78b, - (q31_t)0x750f0054, (q31_t)0xcc38087b, (q31_t)0x750c757d, (q31_t)0xcc32498a, (q31_t)0x7509ea5d, (q31_t)0xcc2c8aba, - (q31_t)0x75075ef5, (q31_t)0xcc26cc09, - (q31_t)0x7504d345, (q31_t)0xcc210d79, (q31_t)0x7502474d, (q31_t)0xcc1b4f08, (q31_t)0x74ffbb0d, (q31_t)0xcc1590b8, - (q31_t)0x74fd2e84, (q31_t)0xcc0fd287, - (q31_t)0x74faa1b3, (q31_t)0xcc0a1477, (q31_t)0x74f8149a, (q31_t)0xcc045686, (q31_t)0x74f58739, (q31_t)0xcbfe98b6, - (q31_t)0x74f2f990, (q31_t)0xcbf8db05, - (q31_t)0x74f06b9e, (q31_t)0xcbf31d75, (q31_t)0x74eddd65, (q31_t)0xcbed6005, (q31_t)0x74eb4ee3, (q31_t)0xcbe7a2b5, - (q31_t)0x74e8c01a, (q31_t)0xcbe1e585, - (q31_t)0x74e63108, (q31_t)0xcbdc2876, (q31_t)0x74e3a1ae, (q31_t)0xcbd66b86, (q31_t)0x74e1120c, (q31_t)0xcbd0aeb7, - (q31_t)0x74de8221, (q31_t)0xcbcaf208, - (q31_t)0x74dbf1ef, (q31_t)0xcbc53579, (q31_t)0x74d96175, (q31_t)0xcbbf790a, (q31_t)0x74d6d0b2, (q31_t)0xcbb9bcbb, - (q31_t)0x74d43fa8, (q31_t)0xcbb4008d, - (q31_t)0x74d1ae55, (q31_t)0xcbae447f, (q31_t)0x74cf1cbb, (q31_t)0xcba88891, (q31_t)0x74cc8ad8, (q31_t)0xcba2ccc4, - (q31_t)0x74c9f8ad, (q31_t)0xcb9d1117, - (q31_t)0x74c7663a, (q31_t)0xcb97558a, (q31_t)0x74c4d380, (q31_t)0xcb919a1d, (q31_t)0x74c2407d, (q31_t)0xcb8bded1, - (q31_t)0x74bfad32, (q31_t)0xcb8623a5, - (q31_t)0x74bd199f, (q31_t)0xcb80689a, (q31_t)0x74ba85c4, (q31_t)0xcb7aadaf, (q31_t)0x74b7f1a1, (q31_t)0xcb74f2e4, - (q31_t)0x74b55d36, (q31_t)0xcb6f383a, - (q31_t)0x74b2c884, (q31_t)0xcb697db0, (q31_t)0x74b03389, (q31_t)0xcb63c347, (q31_t)0x74ad9e46, (q31_t)0xcb5e08fe, - (q31_t)0x74ab08bb, (q31_t)0xcb584ed6, - (q31_t)0x74a872e8, (q31_t)0xcb5294ce, (q31_t)0x74a5dccd, (q31_t)0xcb4cdae6, (q31_t)0x74a3466b, (q31_t)0xcb47211f, - (q31_t)0x74a0afc0, (q31_t)0xcb416779, - (q31_t)0x749e18cd, (q31_t)0xcb3badf3, (q31_t)0x749b8193, (q31_t)0xcb35f48d, (q31_t)0x7498ea11, (q31_t)0xcb303b49, - (q31_t)0x74965246, (q31_t)0xcb2a8224, - (q31_t)0x7493ba34, (q31_t)0xcb24c921, (q31_t)0x749121da, (q31_t)0xcb1f103e, (q31_t)0x748e8938, (q31_t)0xcb19577b, - (q31_t)0x748bf04d, (q31_t)0xcb139ed9, - (q31_t)0x7489571c, (q31_t)0xcb0de658, (q31_t)0x7486bda2, (q31_t)0xcb082df8, (q31_t)0x748423e0, (q31_t)0xcb0275b8, - (q31_t)0x748189d7, (q31_t)0xcafcbd99, - (q31_t)0x747eef85, (q31_t)0xcaf7059a, (q31_t)0x747c54ec, (q31_t)0xcaf14dbd, (q31_t)0x7479ba0b, (q31_t)0xcaeb9600, - (q31_t)0x74771ee2, (q31_t)0xcae5de64, - (q31_t)0x74748371, (q31_t)0xcae026e8, (q31_t)0x7471e7b8, (q31_t)0xcada6f8d, (q31_t)0x746f4bb8, (q31_t)0xcad4b853, - (q31_t)0x746caf70, (q31_t)0xcacf013a, - (q31_t)0x746a12df, (q31_t)0xcac94a42, (q31_t)0x74677608, (q31_t)0xcac3936b, (q31_t)0x7464d8e8, (q31_t)0xcabddcb4, - (q31_t)0x74623b80, (q31_t)0xcab8261e, - (q31_t)0x745f9dd1, (q31_t)0xcab26fa9, (q31_t)0x745cffda, (q31_t)0xcaacb955, (q31_t)0x745a619b, (q31_t)0xcaa70322, - (q31_t)0x7457c314, (q31_t)0xcaa14d10, - (q31_t)0x74552446, (q31_t)0xca9b971e, (q31_t)0x74528530, (q31_t)0xca95e14e, (q31_t)0x744fe5d2, (q31_t)0xca902b9f, - (q31_t)0x744d462c, (q31_t)0xca8a7610, - (q31_t)0x744aa63f, (q31_t)0xca84c0a3, (q31_t)0x7448060a, (q31_t)0xca7f0b56, (q31_t)0x7445658d, (q31_t)0xca79562b, - (q31_t)0x7442c4c8, (q31_t)0xca73a120, - (q31_t)0x744023bc, (q31_t)0xca6dec37, (q31_t)0x743d8268, (q31_t)0xca68376e, (q31_t)0x743ae0cc, (q31_t)0xca6282c7, - (q31_t)0x74383ee9, (q31_t)0xca5cce40, - (q31_t)0x74359cbd, (q31_t)0xca5719db, (q31_t)0x7432fa4b, (q31_t)0xca516597, (q31_t)0x74305790, (q31_t)0xca4bb174, - (q31_t)0x742db48e, (q31_t)0xca45fd72, - (q31_t)0x742b1144, (q31_t)0xca404992, (q31_t)0x74286db3, (q31_t)0xca3a95d2, (q31_t)0x7425c9da, (q31_t)0xca34e234, - (q31_t)0x742325b9, (q31_t)0xca2f2eb6, - (q31_t)0x74208150, (q31_t)0xca297b5a, (q31_t)0x741ddca0, (q31_t)0xca23c820, (q31_t)0x741b37a9, (q31_t)0xca1e1506, - (q31_t)0x74189269, (q31_t)0xca18620e, - (q31_t)0x7415ece2, (q31_t)0xca12af37, (q31_t)0x74134714, (q31_t)0xca0cfc81, (q31_t)0x7410a0fe, (q31_t)0xca0749ec, - (q31_t)0x740dfaa0, (q31_t)0xca019779, - (q31_t)0x740b53fb, (q31_t)0xc9fbe527, (q31_t)0x7408ad0e, (q31_t)0xc9f632f6, (q31_t)0x740605d9, (q31_t)0xc9f080e7, - (q31_t)0x74035e5d, (q31_t)0xc9eacef9, - (q31_t)0x7400b69a, (q31_t)0xc9e51d2d, (q31_t)0x73fe0e8f, (q31_t)0xc9df6b81, (q31_t)0x73fb663c, (q31_t)0xc9d9b9f7, - (q31_t)0x73f8bda2, (q31_t)0xc9d4088f, - (q31_t)0x73f614c0, (q31_t)0xc9ce5748, (q31_t)0x73f36b97, (q31_t)0xc9c8a622, (q31_t)0x73f0c226, (q31_t)0xc9c2f51e, - (q31_t)0x73ee186e, (q31_t)0xc9bd443c, - (q31_t)0x73eb6e6e, (q31_t)0xc9b7937a, (q31_t)0x73e8c426, (q31_t)0xc9b1e2db, (q31_t)0x73e61997, (q31_t)0xc9ac325d, - (q31_t)0x73e36ec1, (q31_t)0xc9a68200, - (q31_t)0x73e0c3a3, (q31_t)0xc9a0d1c5, (q31_t)0x73de183e, (q31_t)0xc99b21ab, (q31_t)0x73db6c91, (q31_t)0xc99571b3, - (q31_t)0x73d8c09d, (q31_t)0xc98fc1dc, - (q31_t)0x73d61461, (q31_t)0xc98a1227, (q31_t)0x73d367de, (q31_t)0xc9846294, (q31_t)0x73d0bb13, (q31_t)0xc97eb322, - (q31_t)0x73ce0e01, (q31_t)0xc97903d2, - (q31_t)0x73cb60a8, (q31_t)0xc97354a4, (q31_t)0x73c8b307, (q31_t)0xc96da597, (q31_t)0x73c6051f, (q31_t)0xc967f6ac, - (q31_t)0x73c356ef, (q31_t)0xc96247e2, - (q31_t)0x73c0a878, (q31_t)0xc95c993a, (q31_t)0x73bdf9b9, (q31_t)0xc956eab4, (q31_t)0x73bb4ab3, (q31_t)0xc9513c50, - (q31_t)0x73b89b66, (q31_t)0xc94b8e0d, - (q31_t)0x73b5ebd1, (q31_t)0xc945dfec, (q31_t)0x73b33bf5, (q31_t)0xc94031ed, (q31_t)0x73b08bd1, (q31_t)0xc93a8410, - (q31_t)0x73addb67, (q31_t)0xc934d654, - (q31_t)0x73ab2ab4, (q31_t)0xc92f28ba, (q31_t)0x73a879bb, (q31_t)0xc9297b42, (q31_t)0x73a5c87a, (q31_t)0xc923cdec, - (q31_t)0x73a316f2, (q31_t)0xc91e20b8, - (q31_t)0x73a06522, (q31_t)0xc91873a5, (q31_t)0x739db30b, (q31_t)0xc912c6b5, (q31_t)0x739b00ad, (q31_t)0xc90d19e6, - (q31_t)0x73984e07, (q31_t)0xc9076d39, - (q31_t)0x73959b1b, (q31_t)0xc901c0ae, (q31_t)0x7392e7e6, (q31_t)0xc8fc1445, (q31_t)0x7390346b, (q31_t)0xc8f667fe, - (q31_t)0x738d80a8, (q31_t)0xc8f0bbd9, - (q31_t)0x738acc9e, (q31_t)0xc8eb0fd6, (q31_t)0x7388184d, (q31_t)0xc8e563f5, (q31_t)0x738563b5, (q31_t)0xc8dfb836, - (q31_t)0x7382aed5, (q31_t)0xc8da0c99, - (q31_t)0x737ff9ae, (q31_t)0xc8d4611d, (q31_t)0x737d4440, (q31_t)0xc8ceb5c4, (q31_t)0x737a8e8a, (q31_t)0xc8c90a8d, - (q31_t)0x7377d88d, (q31_t)0xc8c35f78, - (q31_t)0x73752249, (q31_t)0xc8bdb485, (q31_t)0x73726bbe, (q31_t)0xc8b809b4, (q31_t)0x736fb4ec, (q31_t)0xc8b25f06, - (q31_t)0x736cfdd2, (q31_t)0xc8acb479, - (q31_t)0x736a4671, (q31_t)0xc8a70a0e, (q31_t)0x73678ec9, (q31_t)0xc8a15fc6, (q31_t)0x7364d6da, (q31_t)0xc89bb5a0, - (q31_t)0x73621ea4, (q31_t)0xc8960b9c, - (q31_t)0x735f6626, (q31_t)0xc89061ba, (q31_t)0x735cad61, (q31_t)0xc88ab7fa, (q31_t)0x7359f456, (q31_t)0xc8850e5d, - (q31_t)0x73573b03, (q31_t)0xc87f64e2, - (q31_t)0x73548168, (q31_t)0xc879bb89, (q31_t)0x7351c787, (q31_t)0xc8741252, (q31_t)0x734f0d5f, (q31_t)0xc86e693d, - (q31_t)0x734c52ef, (q31_t)0xc868c04b, - (q31_t)0x73499838, (q31_t)0xc863177b, (q31_t)0x7346dd3a, (q31_t)0xc85d6ece, (q31_t)0x734421f6, (q31_t)0xc857c642, - (q31_t)0x7341666a, (q31_t)0xc8521dd9, - (q31_t)0x733eaa96, (q31_t)0xc84c7593, (q31_t)0x733bee7c, (q31_t)0xc846cd6e, (q31_t)0x7339321b, (q31_t)0xc841256d, - (q31_t)0x73367572, (q31_t)0xc83b7d8d, - (q31_t)0x7333b883, (q31_t)0xc835d5d0, (q31_t)0x7330fb4d, (q31_t)0xc8302e35, (q31_t)0x732e3dcf, (q31_t)0xc82a86bd, - (q31_t)0x732b800a, (q31_t)0xc824df67, - (q31_t)0x7328c1ff, (q31_t)0xc81f3834, (q31_t)0x732603ac, (q31_t)0xc8199123, (q31_t)0x73234512, (q31_t)0xc813ea35, - (q31_t)0x73208632, (q31_t)0xc80e4369, - (q31_t)0x731dc70a, (q31_t)0xc8089cbf, (q31_t)0x731b079b, (q31_t)0xc802f638, (q31_t)0x731847e5, (q31_t)0xc7fd4fd4, - (q31_t)0x731587e8, (q31_t)0xc7f7a992, - (q31_t)0x7312c7a5, (q31_t)0xc7f20373, (q31_t)0x7310071a, (q31_t)0xc7ec5d76, (q31_t)0x730d4648, (q31_t)0xc7e6b79c, - (q31_t)0x730a8530, (q31_t)0xc7e111e5, - (q31_t)0x7307c3d0, (q31_t)0xc7db6c50, (q31_t)0x73050229, (q31_t)0xc7d5c6de, (q31_t)0x7302403c, (q31_t)0xc7d0218e, - (q31_t)0x72ff7e07, (q31_t)0xc7ca7c61, - (q31_t)0x72fcbb8c, (q31_t)0xc7c4d757, (q31_t)0x72f9f8c9, (q31_t)0xc7bf3270, (q31_t)0x72f735c0, (q31_t)0xc7b98dab, - (q31_t)0x72f47270, (q31_t)0xc7b3e909, - (q31_t)0x72f1aed9, (q31_t)0xc7ae4489, (q31_t)0x72eeeafb, (q31_t)0xc7a8a02c, (q31_t)0x72ec26d6, (q31_t)0xc7a2fbf3, - (q31_t)0x72e9626a, (q31_t)0xc79d57db, - (q31_t)0x72e69db7, (q31_t)0xc797b3e7, (q31_t)0x72e3d8be, (q31_t)0xc7921015, (q31_t)0x72e1137d, (q31_t)0xc78c6c67, - (q31_t)0x72de4df6, (q31_t)0xc786c8db, - (q31_t)0x72db8828, (q31_t)0xc7812572, (q31_t)0x72d8c213, (q31_t)0xc77b822b, (q31_t)0x72d5fbb7, (q31_t)0xc775df08, - (q31_t)0x72d33514, (q31_t)0xc7703c08, - (q31_t)0x72d06e2b, (q31_t)0xc76a992a, (q31_t)0x72cda6fb, (q31_t)0xc764f66f, (q31_t)0x72cadf83, (q31_t)0xc75f53d7, - (q31_t)0x72c817c6, (q31_t)0xc759b163, - (q31_t)0x72c54fc1, (q31_t)0xc7540f11, (q31_t)0x72c28775, (q31_t)0xc74e6ce2, (q31_t)0x72bfbee3, (q31_t)0xc748cad6, - (q31_t)0x72bcf60a, (q31_t)0xc74328ed, - (q31_t)0x72ba2cea, (q31_t)0xc73d8727, (q31_t)0x72b76383, (q31_t)0xc737e584, (q31_t)0x72b499d6, (q31_t)0xc7324404, - (q31_t)0x72b1cfe1, (q31_t)0xc72ca2a7, - (q31_t)0x72af05a7, (q31_t)0xc727016d, (q31_t)0x72ac3b25, (q31_t)0xc7216056, (q31_t)0x72a9705c, (q31_t)0xc71bbf62, - (q31_t)0x72a6a54d, (q31_t)0xc7161e92, - (q31_t)0x72a3d9f7, (q31_t)0xc7107de4, (q31_t)0x72a10e5b, (q31_t)0xc70add5a, (q31_t)0x729e4277, (q31_t)0xc7053cf2, - (q31_t)0x729b764d, (q31_t)0xc6ff9cae, - (q31_t)0x7298a9dd, (q31_t)0xc6f9fc8d, (q31_t)0x7295dd25, (q31_t)0xc6f45c8f, (q31_t)0x72931027, (q31_t)0xc6eebcb5, - (q31_t)0x729042e3, (q31_t)0xc6e91cfd, - (q31_t)0x728d7557, (q31_t)0xc6e37d69, (q31_t)0x728aa785, (q31_t)0xc6ddddf8, (q31_t)0x7287d96c, (q31_t)0xc6d83eab, - (q31_t)0x72850b0d, (q31_t)0xc6d29f80, - (q31_t)0x72823c67, (q31_t)0xc6cd0079, (q31_t)0x727f6d7a, (q31_t)0xc6c76195, (q31_t)0x727c9e47, (q31_t)0xc6c1c2d4, - (q31_t)0x7279cecd, (q31_t)0xc6bc2437, - (q31_t)0x7276ff0d, (q31_t)0xc6b685bd, (q31_t)0x72742f05, (q31_t)0xc6b0e767, (q31_t)0x72715eb8, (q31_t)0xc6ab4933, - (q31_t)0x726e8e23, (q31_t)0xc6a5ab23, - (q31_t)0x726bbd48, (q31_t)0xc6a00d37, (q31_t)0x7268ec27, (q31_t)0xc69a6f6e, (q31_t)0x72661abf, (q31_t)0xc694d1c8, - (q31_t)0x72634910, (q31_t)0xc68f3446, - (q31_t)0x7260771b, (q31_t)0xc68996e7, (q31_t)0x725da4df, (q31_t)0xc683f9ab, (q31_t)0x725ad25d, (q31_t)0xc67e5c93, - (q31_t)0x7257ff94, (q31_t)0xc678bf9f, - (q31_t)0x72552c85, (q31_t)0xc67322ce, (q31_t)0x7252592f, (q31_t)0xc66d8620, (q31_t)0x724f8593, (q31_t)0xc667e996, - (q31_t)0x724cb1b0, (q31_t)0xc6624d30, - (q31_t)0x7249dd86, (q31_t)0xc65cb0ed, (q31_t)0x72470916, (q31_t)0xc65714cd, (q31_t)0x72443460, (q31_t)0xc65178d1, - (q31_t)0x72415f63, (q31_t)0xc64bdcf9, - (q31_t)0x723e8a20, (q31_t)0xc6464144, (q31_t)0x723bb496, (q31_t)0xc640a5b3, (q31_t)0x7238dec5, (q31_t)0xc63b0a46, - (q31_t)0x723608af, (q31_t)0xc6356efc, - (q31_t)0x72333251, (q31_t)0xc62fd3d6, (q31_t)0x72305bae, (q31_t)0xc62a38d4, (q31_t)0x722d84c4, (q31_t)0xc6249df5, - (q31_t)0x722aad93, (q31_t)0xc61f033a, - (q31_t)0x7227d61c, (q31_t)0xc61968a2, (q31_t)0x7224fe5f, (q31_t)0xc613ce2f, (q31_t)0x7222265b, (q31_t)0xc60e33df, - (q31_t)0x721f4e11, (q31_t)0xc60899b2, - (q31_t)0x721c7580, (q31_t)0xc602ffaa, (q31_t)0x72199ca9, (q31_t)0xc5fd65c5, (q31_t)0x7216c38c, (q31_t)0xc5f7cc04, - (q31_t)0x7213ea28, (q31_t)0xc5f23267, - (q31_t)0x7211107e, (q31_t)0xc5ec98ee, (q31_t)0x720e368d, (q31_t)0xc5e6ff98, (q31_t)0x720b5c57, (q31_t)0xc5e16667, - (q31_t)0x720881d9, (q31_t)0xc5dbcd59, - (q31_t)0x7205a716, (q31_t)0xc5d6346f, (q31_t)0x7202cc0c, (q31_t)0xc5d09ba9, (q31_t)0x71fff0bc, (q31_t)0xc5cb0307, - (q31_t)0x71fd1525, (q31_t)0xc5c56a89, - (q31_t)0x71fa3949, (q31_t)0xc5bfd22e, (q31_t)0x71f75d25, (q31_t)0xc5ba39f8, (q31_t)0x71f480bc, (q31_t)0xc5b4a1e5, - (q31_t)0x71f1a40c, (q31_t)0xc5af09f7, - (q31_t)0x71eec716, (q31_t)0xc5a9722c, (q31_t)0x71ebe9da, (q31_t)0xc5a3da86, (q31_t)0x71e90c57, (q31_t)0xc59e4303, - (q31_t)0x71e62e8f, (q31_t)0xc598aba5, - (q31_t)0x71e35080, (q31_t)0xc593146a, (q31_t)0x71e0722a, (q31_t)0xc58d7d54, (q31_t)0x71dd938f, (q31_t)0xc587e661, - (q31_t)0x71dab4ad, (q31_t)0xc5824f93, - (q31_t)0x71d7d585, (q31_t)0xc57cb8e9, (q31_t)0x71d4f617, (q31_t)0xc5772263, (q31_t)0x71d21662, (q31_t)0xc5718c00, - (q31_t)0x71cf3667, (q31_t)0xc56bf5c2, - (q31_t)0x71cc5626, (q31_t)0xc5665fa9, (q31_t)0x71c9759f, (q31_t)0xc560c9b3, (q31_t)0x71c694d2, (q31_t)0xc55b33e2, - (q31_t)0x71c3b3bf, (q31_t)0xc5559e34, - (q31_t)0x71c0d265, (q31_t)0xc55008ab, (q31_t)0x71bdf0c5, (q31_t)0xc54a7346, (q31_t)0x71bb0edf, (q31_t)0xc544de05, - (q31_t)0x71b82cb3, (q31_t)0xc53f48e9, - (q31_t)0x71b54a41, (q31_t)0xc539b3f1, (q31_t)0x71b26788, (q31_t)0xc5341f1d, (q31_t)0x71af848a, (q31_t)0xc52e8a6d, - (q31_t)0x71aca145, (q31_t)0xc528f5e1, - (q31_t)0x71a9bdba, (q31_t)0xc523617a, (q31_t)0x71a6d9e9, (q31_t)0xc51dcd37, (q31_t)0x71a3f5d2, (q31_t)0xc5183919, - (q31_t)0x71a11175, (q31_t)0xc512a51f, - (q31_t)0x719e2cd2, (q31_t)0xc50d1149, (q31_t)0x719b47e9, (q31_t)0xc5077d97, (q31_t)0x719862b9, (q31_t)0xc501ea0a, - (q31_t)0x71957d44, (q31_t)0xc4fc56a2, - (q31_t)0x71929789, (q31_t)0xc4f6c35d, (q31_t)0x718fb187, (q31_t)0xc4f1303d, (q31_t)0x718ccb3f, (q31_t)0xc4eb9d42, - (q31_t)0x7189e4b2, (q31_t)0xc4e60a6b, - (q31_t)0x7186fdde, (q31_t)0xc4e077b8, (q31_t)0x718416c4, (q31_t)0xc4dae52a, (q31_t)0x71812f65, (q31_t)0xc4d552c1, - (q31_t)0x717e47bf, (q31_t)0xc4cfc07c, - (q31_t)0x717b5fd3, (q31_t)0xc4ca2e5b, (q31_t)0x717877a1, (q31_t)0xc4c49c5f, (q31_t)0x71758f29, (q31_t)0xc4bf0a87, - (q31_t)0x7172a66c, (q31_t)0xc4b978d4, - (q31_t)0x716fbd68, (q31_t)0xc4b3e746, (q31_t)0x716cd41e, (q31_t)0xc4ae55dc, (q31_t)0x7169ea8f, (q31_t)0xc4a8c497, - (q31_t)0x716700b9, (q31_t)0xc4a33376, - (q31_t)0x7164169d, (q31_t)0xc49da27a, (q31_t)0x71612c3c, (q31_t)0xc49811a3, (q31_t)0x715e4194, (q31_t)0xc49280f0, - (q31_t)0x715b56a7, (q31_t)0xc48cf062, - (q31_t)0x71586b74, (q31_t)0xc4875ff9, (q31_t)0x71557ffa, (q31_t)0xc481cfb4, (q31_t)0x7152943b, (q31_t)0xc47c3f94, - (q31_t)0x714fa836, (q31_t)0xc476af98, - (q31_t)0x714cbbeb, (q31_t)0xc4711fc2, (q31_t)0x7149cf5a, (q31_t)0xc46b9010, (q31_t)0x7146e284, (q31_t)0xc4660083, - (q31_t)0x7143f567, (q31_t)0xc460711b, - (q31_t)0x71410805, (q31_t)0xc45ae1d7, (q31_t)0x713e1a5c, (q31_t)0xc45552b8, (q31_t)0x713b2c6e, (q31_t)0xc44fc3be, - (q31_t)0x71383e3a, (q31_t)0xc44a34e9, - (q31_t)0x71354fc0, (q31_t)0xc444a639, (q31_t)0x71326101, (q31_t)0xc43f17ad, (q31_t)0x712f71fb, (q31_t)0xc4398947, - (q31_t)0x712c82b0, (q31_t)0xc433fb05, - (q31_t)0x7129931f, (q31_t)0xc42e6ce8, (q31_t)0x7126a348, (q31_t)0xc428def0, (q31_t)0x7123b32b, (q31_t)0xc423511d, - (q31_t)0x7120c2c8, (q31_t)0xc41dc36f, - (q31_t)0x711dd220, (q31_t)0xc41835e6, (q31_t)0x711ae132, (q31_t)0xc412a882, (q31_t)0x7117effe, (q31_t)0xc40d1b42, - (q31_t)0x7114fe84, (q31_t)0xc4078e28, - (q31_t)0x71120cc5, (q31_t)0xc4020133, (q31_t)0x710f1ac0, (q31_t)0xc3fc7462, (q31_t)0x710c2875, (q31_t)0xc3f6e7b7, - (q31_t)0x710935e4, (q31_t)0xc3f15b31, - (q31_t)0x7106430e, (q31_t)0xc3ebced0, (q31_t)0x71034ff2, (q31_t)0xc3e64294, (q31_t)0x71005c90, (q31_t)0xc3e0b67d, - (q31_t)0x70fd68e9, (q31_t)0xc3db2a8b, - (q31_t)0x70fa74fc, (q31_t)0xc3d59ebe, (q31_t)0x70f780c9, (q31_t)0xc3d01316, (q31_t)0x70f48c50, (q31_t)0xc3ca8793, - (q31_t)0x70f19792, (q31_t)0xc3c4fc36, - (q31_t)0x70eea28e, (q31_t)0xc3bf70fd, (q31_t)0x70ebad45, (q31_t)0xc3b9e5ea, (q31_t)0x70e8b7b5, (q31_t)0xc3b45afc, - (q31_t)0x70e5c1e1, (q31_t)0xc3aed034, - (q31_t)0x70e2cbc6, (q31_t)0xc3a94590, (q31_t)0x70dfd566, (q31_t)0xc3a3bb12, (q31_t)0x70dcdec0, (q31_t)0xc39e30b8, - (q31_t)0x70d9e7d5, (q31_t)0xc398a685, - (q31_t)0x70d6f0a4, (q31_t)0xc3931c76, (q31_t)0x70d3f92d, (q31_t)0xc38d928d, (q31_t)0x70d10171, (q31_t)0xc38808c9, - (q31_t)0x70ce096f, (q31_t)0xc3827f2a, - (q31_t)0x70cb1128, (q31_t)0xc37cf5b0, (q31_t)0x70c8189b, (q31_t)0xc3776c5c, (q31_t)0x70c51fc8, (q31_t)0xc371e32d, - (q31_t)0x70c226b0, (q31_t)0xc36c5a24, - (q31_t)0x70bf2d53, (q31_t)0xc366d140, (q31_t)0x70bc33b0, (q31_t)0xc3614881, (q31_t)0x70b939c7, (q31_t)0xc35bbfe8, - (q31_t)0x70b63f99, (q31_t)0xc3563774, - (q31_t)0x70b34525, (q31_t)0xc350af26, (q31_t)0x70b04a6b, (q31_t)0xc34b26fc, (q31_t)0x70ad4f6d, (q31_t)0xc3459ef9, - (q31_t)0x70aa5428, (q31_t)0xc340171b, - (q31_t)0x70a7589f, (q31_t)0xc33a8f62, (q31_t)0x70a45ccf, (q31_t)0xc33507cf, (q31_t)0x70a160ba, (q31_t)0xc32f8061, - (q31_t)0x709e6460, (q31_t)0xc329f919, - (q31_t)0x709b67c0, (q31_t)0xc32471f7, (q31_t)0x70986adb, (q31_t)0xc31eeaf9, (q31_t)0x70956db1, (q31_t)0xc3196422, - (q31_t)0x70927041, (q31_t)0xc313dd70, - (q31_t)0x708f728b, (q31_t)0xc30e56e4, (q31_t)0x708c7490, (q31_t)0xc308d07d, (q31_t)0x70897650, (q31_t)0xc3034a3c, - (q31_t)0x708677ca, (q31_t)0xc2fdc420, - (q31_t)0x708378ff, (q31_t)0xc2f83e2a, (q31_t)0x708079ee, (q31_t)0xc2f2b85a, (q31_t)0x707d7a98, (q31_t)0xc2ed32af, - (q31_t)0x707a7afd, (q31_t)0xc2e7ad2a, - (q31_t)0x70777b1c, (q31_t)0xc2e227cb, (q31_t)0x70747af6, (q31_t)0xc2dca291, (q31_t)0x70717a8a, (q31_t)0xc2d71d7e, - (q31_t)0x706e79d9, (q31_t)0xc2d1988f, - (q31_t)0x706b78e3, (q31_t)0xc2cc13c7, (q31_t)0x706877a7, (q31_t)0xc2c68f24, (q31_t)0x70657626, (q31_t)0xc2c10aa7, - (q31_t)0x70627460, (q31_t)0xc2bb8650, - (q31_t)0x705f7255, (q31_t)0xc2b6021f, (q31_t)0x705c7004, (q31_t)0xc2b07e14, (q31_t)0x70596d6d, (q31_t)0xc2aafa2e, - (q31_t)0x70566a92, (q31_t)0xc2a5766e, - (q31_t)0x70536771, (q31_t)0xc29ff2d4, (q31_t)0x7050640b, (q31_t)0xc29a6f60, (q31_t)0x704d6060, (q31_t)0xc294ec12, - (q31_t)0x704a5c6f, (q31_t)0xc28f68e9, - (q31_t)0x70475839, (q31_t)0xc289e5e7, (q31_t)0x704453be, (q31_t)0xc284630a, (q31_t)0x70414efd, (q31_t)0xc27ee054, - (q31_t)0x703e49f8, (q31_t)0xc2795dc3, - (q31_t)0x703b44ad, (q31_t)0xc273db58, (q31_t)0x70383f1d, (q31_t)0xc26e5913, (q31_t)0x70353947, (q31_t)0xc268d6f5, - (q31_t)0x7032332d, (q31_t)0xc26354fc, - (q31_t)0x702f2ccd, (q31_t)0xc25dd329, (q31_t)0x702c2628, (q31_t)0xc258517c, (q31_t)0x70291f3e, (q31_t)0xc252cff5, - (q31_t)0x7026180e, (q31_t)0xc24d4e95, - (q31_t)0x7023109a, (q31_t)0xc247cd5a, (q31_t)0x702008e0, (q31_t)0xc2424c46, (q31_t)0x701d00e1, (q31_t)0xc23ccb57, - (q31_t)0x7019f89d, (q31_t)0xc2374a8f, - (q31_t)0x7016f014, (q31_t)0xc231c9ec, (q31_t)0x7013e746, (q31_t)0xc22c4970, (q31_t)0x7010de32, (q31_t)0xc226c91a, - (q31_t)0x700dd4da, (q31_t)0xc22148ea, - (q31_t)0x700acb3c, (q31_t)0xc21bc8e1, (q31_t)0x7007c159, (q31_t)0xc21648fd, (q31_t)0x7004b731, (q31_t)0xc210c940, - (q31_t)0x7001acc4, (q31_t)0xc20b49a9, - (q31_t)0x6ffea212, (q31_t)0xc205ca38, (q31_t)0x6ffb971b, (q31_t)0xc2004aed, (q31_t)0x6ff88bde, (q31_t)0xc1facbc9, - (q31_t)0x6ff5805d, (q31_t)0xc1f54cca, - (q31_t)0x6ff27497, (q31_t)0xc1efcdf3, (q31_t)0x6fef688b, (q31_t)0xc1ea4f41, (q31_t)0x6fec5c3b, (q31_t)0xc1e4d0b6, - (q31_t)0x6fe94fa5, (q31_t)0xc1df5251, - (q31_t)0x6fe642ca, (q31_t)0xc1d9d412, (q31_t)0x6fe335ab, (q31_t)0xc1d455f9, (q31_t)0x6fe02846, (q31_t)0xc1ced807, - (q31_t)0x6fdd1a9c, (q31_t)0xc1c95a3c, - (q31_t)0x6fda0cae, (q31_t)0xc1c3dc97, (q31_t)0x6fd6fe7a, (q31_t)0xc1be5f18, (q31_t)0x6fd3f001, (q31_t)0xc1b8e1bf, - (q31_t)0x6fd0e144, (q31_t)0xc1b3648d, - (q31_t)0x6fcdd241, (q31_t)0xc1ade781, (q31_t)0x6fcac2fa, (q31_t)0xc1a86a9c, (q31_t)0x6fc7b36d, (q31_t)0xc1a2edde, - (q31_t)0x6fc4a39c, (q31_t)0xc19d7145, - (q31_t)0x6fc19385, (q31_t)0xc197f4d4, (q31_t)0x6fbe832a, (q31_t)0xc1927888, (q31_t)0x6fbb728a, (q31_t)0xc18cfc63, - (q31_t)0x6fb861a4, (q31_t)0xc1878065, - (q31_t)0x6fb5507a, (q31_t)0xc182048d, (q31_t)0x6fb23f0b, (q31_t)0xc17c88dc, (q31_t)0x6faf2d57, (q31_t)0xc1770d52, - (q31_t)0x6fac1b5f, (q31_t)0xc17191ee, - (q31_t)0x6fa90921, (q31_t)0xc16c16b0, (q31_t)0x6fa5f69e, (q31_t)0xc1669b99, (q31_t)0x6fa2e3d7, (q31_t)0xc16120a9, - (q31_t)0x6f9fd0cb, (q31_t)0xc15ba5df, - (q31_t)0x6f9cbd79, (q31_t)0xc1562b3d, (q31_t)0x6f99a9e3, (q31_t)0xc150b0c0, (q31_t)0x6f969608, (q31_t)0xc14b366b, - (q31_t)0x6f9381e9, (q31_t)0xc145bc3c, - (q31_t)0x6f906d84, (q31_t)0xc1404233, (q31_t)0x6f8d58db, (q31_t)0xc13ac852, (q31_t)0x6f8a43ed, (q31_t)0xc1354e97, - (q31_t)0x6f872eba, (q31_t)0xc12fd503, - (q31_t)0x6f841942, (q31_t)0xc12a5b95, (q31_t)0x6f810386, (q31_t)0xc124e24f, (q31_t)0x6f7ded84, (q31_t)0xc11f692f, - (q31_t)0x6f7ad73e, (q31_t)0xc119f036, - (q31_t)0x6f77c0b3, (q31_t)0xc1147764, (q31_t)0x6f74a9e4, (q31_t)0xc10efeb8, (q31_t)0x6f7192cf, (q31_t)0xc1098634, - (q31_t)0x6f6e7b76, (q31_t)0xc1040dd6, - (q31_t)0x6f6b63d8, (q31_t)0xc0fe959f, (q31_t)0x6f684bf6, (q31_t)0xc0f91d8f, (q31_t)0x6f6533ce, (q31_t)0xc0f3a5a6, - (q31_t)0x6f621b62, (q31_t)0xc0ee2de3, - (q31_t)0x6f5f02b2, (q31_t)0xc0e8b648, (q31_t)0x6f5be9bc, (q31_t)0xc0e33ed4, (q31_t)0x6f58d082, (q31_t)0xc0ddc786, - (q31_t)0x6f55b703, (q31_t)0xc0d8505f, - (q31_t)0x6f529d40, (q31_t)0xc0d2d960, (q31_t)0x6f4f8338, (q31_t)0xc0cd6287, (q31_t)0x6f4c68eb, (q31_t)0xc0c7ebd6, - (q31_t)0x6f494e5a, (q31_t)0xc0c2754b, - (q31_t)0x6f463383, (q31_t)0xc0bcfee7, (q31_t)0x6f431869, (q31_t)0xc0b788ab, (q31_t)0x6f3ffd09, (q31_t)0xc0b21295, - (q31_t)0x6f3ce165, (q31_t)0xc0ac9ca6, - (q31_t)0x6f39c57d, (q31_t)0xc0a726df, (q31_t)0x6f36a94f, (q31_t)0xc0a1b13e, (q31_t)0x6f338cde, (q31_t)0xc09c3bc5, - (q31_t)0x6f307027, (q31_t)0xc096c673, - (q31_t)0x6f2d532c, (q31_t)0xc0915148, (q31_t)0x6f2a35ed, (q31_t)0xc08bdc44, (q31_t)0x6f271868, (q31_t)0xc0866767, - (q31_t)0x6f23faa0, (q31_t)0xc080f2b1, - (q31_t)0x6f20dc92, (q31_t)0xc07b7e23, (q31_t)0x6f1dbe41, (q31_t)0xc07609bb, (q31_t)0x6f1a9faa, (q31_t)0xc070957b, - (q31_t)0x6f1780cf, (q31_t)0xc06b2162, - (q31_t)0x6f1461b0, (q31_t)0xc065ad70, (q31_t)0x6f11424c, (q31_t)0xc06039a6, (q31_t)0x6f0e22a3, (q31_t)0xc05ac603, - (q31_t)0x6f0b02b6, (q31_t)0xc0555287, - (q31_t)0x6f07e285, (q31_t)0xc04fdf32, (q31_t)0x6f04c20f, (q31_t)0xc04a6c05, (q31_t)0x6f01a155, (q31_t)0xc044f8fe, - (q31_t)0x6efe8056, (q31_t)0xc03f8620, - (q31_t)0x6efb5f12, (q31_t)0xc03a1368, (q31_t)0x6ef83d8a, (q31_t)0xc034a0d8, (q31_t)0x6ef51bbe, (q31_t)0xc02f2e6f, - (q31_t)0x6ef1f9ad, (q31_t)0xc029bc2e, - (q31_t)0x6eeed758, (q31_t)0xc0244a14, (q31_t)0x6eebb4bf, (q31_t)0xc01ed821, (q31_t)0x6ee891e1, (q31_t)0xc0196656, - (q31_t)0x6ee56ebe, (q31_t)0xc013f4b2, - (q31_t)0x6ee24b57, (q31_t)0xc00e8336, (q31_t)0x6edf27ac, (q31_t)0xc00911e1, (q31_t)0x6edc03bc, (q31_t)0xc003a0b3, - (q31_t)0x6ed8df88, (q31_t)0xbffe2fad, - (q31_t)0x6ed5bb10, (q31_t)0xbff8bece, (q31_t)0x6ed29653, (q31_t)0xbff34e17, (q31_t)0x6ecf7152, (q31_t)0xbfeddd88, - (q31_t)0x6ecc4c0d, (q31_t)0xbfe86d20, - (q31_t)0x6ec92683, (q31_t)0xbfe2fcdf, (q31_t)0x6ec600b5, (q31_t)0xbfdd8cc6, (q31_t)0x6ec2daa2, (q31_t)0xbfd81cd5, - (q31_t)0x6ebfb44b, (q31_t)0xbfd2ad0b, - (q31_t)0x6ebc8db0, (q31_t)0xbfcd3d69, (q31_t)0x6eb966d1, (q31_t)0xbfc7cdee, (q31_t)0x6eb63fad, (q31_t)0xbfc25e9b, - (q31_t)0x6eb31845, (q31_t)0xbfbcef70, - (q31_t)0x6eaff099, (q31_t)0xbfb7806c, (q31_t)0x6eacc8a8, (q31_t)0xbfb21190, (q31_t)0x6ea9a073, (q31_t)0xbfaca2dc, - (q31_t)0x6ea677fa, (q31_t)0xbfa7344f, - (q31_t)0x6ea34f3d, (q31_t)0xbfa1c5ea, (q31_t)0x6ea0263b, (q31_t)0xbf9c57ac, (q31_t)0x6e9cfcf5, (q31_t)0xbf96e997, - (q31_t)0x6e99d36b, (q31_t)0xbf917ba9, - (q31_t)0x6e96a99d, (q31_t)0xbf8c0de3, (q31_t)0x6e937f8a, (q31_t)0xbf86a044, (q31_t)0x6e905534, (q31_t)0xbf8132ce, - (q31_t)0x6e8d2a99, (q31_t)0xbf7bc57f, - (q31_t)0x6e89ffb9, (q31_t)0xbf765858, (q31_t)0x6e86d496, (q31_t)0xbf70eb59, (q31_t)0x6e83a92f, (q31_t)0xbf6b7e81, - (q31_t)0x6e807d83, (q31_t)0xbf6611d2, - (q31_t)0x6e7d5193, (q31_t)0xbf60a54a, (q31_t)0x6e7a255f, (q31_t)0xbf5b38ea, (q31_t)0x6e76f8e7, (q31_t)0xbf55ccb2, - (q31_t)0x6e73cc2b, (q31_t)0xbf5060a2, - (q31_t)0x6e709f2a, (q31_t)0xbf4af4ba, (q31_t)0x6e6d71e6, (q31_t)0xbf4588fa, (q31_t)0x6e6a445d, (q31_t)0xbf401d61, - (q31_t)0x6e671690, (q31_t)0xbf3ab1f1, - (q31_t)0x6e63e87f, (q31_t)0xbf3546a8, (q31_t)0x6e60ba2a, (q31_t)0xbf2fdb88, (q31_t)0x6e5d8b91, (q31_t)0xbf2a708f, - (q31_t)0x6e5a5cb4, (q31_t)0xbf2505bf, - (q31_t)0x6e572d93, (q31_t)0xbf1f9b16, (q31_t)0x6e53fe2e, (q31_t)0xbf1a3096, (q31_t)0x6e50ce84, (q31_t)0xbf14c63d, - (q31_t)0x6e4d9e97, (q31_t)0xbf0f5c0d, - (q31_t)0x6e4a6e66, (q31_t)0xbf09f205, (q31_t)0x6e473df0, (q31_t)0xbf048824, (q31_t)0x6e440d37, (q31_t)0xbeff1e6c, - (q31_t)0x6e40dc39, (q31_t)0xbef9b4dc, - (q31_t)0x6e3daaf8, (q31_t)0xbef44b74, (q31_t)0x6e3a7972, (q31_t)0xbeeee234, (q31_t)0x6e3747a9, (q31_t)0xbee9791c, - (q31_t)0x6e34159b, (q31_t)0xbee4102d, - (q31_t)0x6e30e34a, (q31_t)0xbedea765, (q31_t)0x6e2db0b4, (q31_t)0xbed93ec6, (q31_t)0x6e2a7ddb, (q31_t)0xbed3d64f, - (q31_t)0x6e274abe, (q31_t)0xbece6e00, - (q31_t)0x6e24175c, (q31_t)0xbec905d9, (q31_t)0x6e20e3b7, (q31_t)0xbec39ddb, (q31_t)0x6e1dafce, (q31_t)0xbebe3605, - (q31_t)0x6e1a7ba1, (q31_t)0xbeb8ce57, - (q31_t)0x6e174730, (q31_t)0xbeb366d1, (q31_t)0x6e14127b, (q31_t)0xbeadff74, (q31_t)0x6e10dd82, (q31_t)0xbea8983f, - (q31_t)0x6e0da845, (q31_t)0xbea33132, - (q31_t)0x6e0a72c5, (q31_t)0xbe9dca4e, (q31_t)0x6e073d00, (q31_t)0xbe986391, (q31_t)0x6e0406f8, (q31_t)0xbe92fcfe, - (q31_t)0x6e00d0ac, (q31_t)0xbe8d9692, - (q31_t)0x6dfd9a1c, (q31_t)0xbe88304f, (q31_t)0x6dfa6348, (q31_t)0xbe82ca35, (q31_t)0x6df72c30, (q31_t)0xbe7d6442, - (q31_t)0x6df3f4d4, (q31_t)0xbe77fe78, - (q31_t)0x6df0bd35, (q31_t)0xbe7298d7, (q31_t)0x6ded8552, (q31_t)0xbe6d335e, (q31_t)0x6dea4d2b, (q31_t)0xbe67ce0d, - (q31_t)0x6de714c0, (q31_t)0xbe6268e5, - (q31_t)0x6de3dc11, (q31_t)0xbe5d03e6, (q31_t)0x6de0a31f, (q31_t)0xbe579f0f, (q31_t)0x6ddd69e9, (q31_t)0xbe523a60, - (q31_t)0x6dda306f, (q31_t)0xbe4cd5da, - (q31_t)0x6dd6f6b1, (q31_t)0xbe47717c, (q31_t)0x6dd3bcaf, (q31_t)0xbe420d47, (q31_t)0x6dd0826a, (q31_t)0xbe3ca93b, - (q31_t)0x6dcd47e1, (q31_t)0xbe374557, - (q31_t)0x6dca0d14, (q31_t)0xbe31e19b, (q31_t)0x6dc6d204, (q31_t)0xbe2c7e09, (q31_t)0x6dc396b0, (q31_t)0xbe271a9f, - (q31_t)0x6dc05b18, (q31_t)0xbe21b75d, - (q31_t)0x6dbd1f3c, (q31_t)0xbe1c5444, (q31_t)0x6db9e31d, (q31_t)0xbe16f154, (q31_t)0x6db6a6ba, (q31_t)0xbe118e8c, - (q31_t)0x6db36a14, (q31_t)0xbe0c2bed, - (q31_t)0x6db02d29, (q31_t)0xbe06c977, (q31_t)0x6daceffb, (q31_t)0xbe01672a, (q31_t)0x6da9b28a, (q31_t)0xbdfc0505, - (q31_t)0x6da674d5, (q31_t)0xbdf6a309, - (q31_t)0x6da336dc, (q31_t)0xbdf14135, (q31_t)0x6d9ff89f, (q31_t)0xbdebdf8b, (q31_t)0x6d9cba1f, (q31_t)0xbde67e09, - (q31_t)0x6d997b5b, (q31_t)0xbde11cb0, - (q31_t)0x6d963c54, (q31_t)0xbddbbb7f, (q31_t)0x6d92fd09, (q31_t)0xbdd65a78, (q31_t)0x6d8fbd7a, (q31_t)0xbdd0f999, - (q31_t)0x6d8c7da8, (q31_t)0xbdcb98e3, - (q31_t)0x6d893d93, (q31_t)0xbdc63856, (q31_t)0x6d85fd39, (q31_t)0xbdc0d7f2, (q31_t)0x6d82bc9d, (q31_t)0xbdbb77b7, - (q31_t)0x6d7f7bbc, (q31_t)0xbdb617a4, - (q31_t)0x6d7c3a98, (q31_t)0xbdb0b7bb, (q31_t)0x6d78f931, (q31_t)0xbdab57fa, (q31_t)0x6d75b786, (q31_t)0xbda5f862, - (q31_t)0x6d727597, (q31_t)0xbda098f3, - (q31_t)0x6d6f3365, (q31_t)0xbd9b39ad, (q31_t)0x6d6bf0f0, (q31_t)0xbd95da91, (q31_t)0x6d68ae37, (q31_t)0xbd907b9d, - (q31_t)0x6d656b3a, (q31_t)0xbd8b1cd2, - (q31_t)0x6d6227fa, (q31_t)0xbd85be30, (q31_t)0x6d5ee477, (q31_t)0xbd805fb7, (q31_t)0x6d5ba0b0, (q31_t)0xbd7b0167, - (q31_t)0x6d585ca6, (q31_t)0xbd75a340, - (q31_t)0x6d551858, (q31_t)0xbd704542, (q31_t)0x6d51d3c6, (q31_t)0xbd6ae76d, (q31_t)0x6d4e8ef2, (q31_t)0xbd6589c1, - (q31_t)0x6d4b49da, (q31_t)0xbd602c3f, - (q31_t)0x6d48047e, (q31_t)0xbd5acee5, (q31_t)0x6d44bedf, (q31_t)0xbd5571b5, (q31_t)0x6d4178fd, (q31_t)0xbd5014ad, - (q31_t)0x6d3e32d7, (q31_t)0xbd4ab7cf, - (q31_t)0x6d3aec6e, (q31_t)0xbd455b1a, (q31_t)0x6d37a5c1, (q31_t)0xbd3ffe8e, (q31_t)0x6d345ed1, (q31_t)0xbd3aa22c, - (q31_t)0x6d31179e, (q31_t)0xbd3545f2, - (q31_t)0x6d2dd027, (q31_t)0xbd2fe9e2, (q31_t)0x6d2a886e, (q31_t)0xbd2a8dfb, (q31_t)0x6d274070, (q31_t)0xbd25323d, - (q31_t)0x6d23f830, (q31_t)0xbd1fd6a8, - (q31_t)0x6d20afac, (q31_t)0xbd1a7b3d, (q31_t)0x6d1d66e4, (q31_t)0xbd151ffb, (q31_t)0x6d1a1dda, (q31_t)0xbd0fc4e2, - (q31_t)0x6d16d48c, (q31_t)0xbd0a69f2, - (q31_t)0x6d138afb, (q31_t)0xbd050f2c, (q31_t)0x6d104126, (q31_t)0xbcffb48f, (q31_t)0x6d0cf70f, (q31_t)0xbcfa5a1b, - (q31_t)0x6d09acb4, (q31_t)0xbcf4ffd1, - (q31_t)0x6d066215, (q31_t)0xbcefa5b0, (q31_t)0x6d031734, (q31_t)0xbcea4bb9, (q31_t)0x6cffcc0f, (q31_t)0xbce4f1eb, - (q31_t)0x6cfc80a7, (q31_t)0xbcdf9846, - (q31_t)0x6cf934fc, (q31_t)0xbcda3ecb, (q31_t)0x6cf5e90d, (q31_t)0xbcd4e579, (q31_t)0x6cf29cdc, (q31_t)0xbccf8c50, - (q31_t)0x6cef5067, (q31_t)0xbcca3351, - (q31_t)0x6cec03af, (q31_t)0xbcc4da7b, (q31_t)0x6ce8b6b4, (q31_t)0xbcbf81cf, (q31_t)0x6ce56975, (q31_t)0xbcba294d, - (q31_t)0x6ce21bf4, (q31_t)0xbcb4d0f4, - (q31_t)0x6cdece2f, (q31_t)0xbcaf78c4, (q31_t)0x6cdb8027, (q31_t)0xbcaa20be, (q31_t)0x6cd831dc, (q31_t)0xbca4c8e1, - (q31_t)0x6cd4e34e, (q31_t)0xbc9f712e, - (q31_t)0x6cd1947c, (q31_t)0xbc9a19a5, (q31_t)0x6cce4568, (q31_t)0xbc94c245, (q31_t)0x6ccaf610, (q31_t)0xbc8f6b0f, - (q31_t)0x6cc7a676, (q31_t)0xbc8a1402, - (q31_t)0x6cc45698, (q31_t)0xbc84bd1f, (q31_t)0x6cc10677, (q31_t)0xbc7f6665, (q31_t)0x6cbdb613, (q31_t)0xbc7a0fd6, - (q31_t)0x6cba656c, (q31_t)0xbc74b96f, - (q31_t)0x6cb71482, (q31_t)0xbc6f6333, (q31_t)0x6cb3c355, (q31_t)0xbc6a0d20, (q31_t)0x6cb071e4, (q31_t)0xbc64b737, - (q31_t)0x6cad2031, (q31_t)0xbc5f6177, - (q31_t)0x6ca9ce3b, (q31_t)0xbc5a0be2, (q31_t)0x6ca67c01, (q31_t)0xbc54b676, (q31_t)0x6ca32985, (q31_t)0xbc4f6134, - (q31_t)0x6c9fd6c6, (q31_t)0xbc4a0c1b, - (q31_t)0x6c9c83c3, (q31_t)0xbc44b72c, (q31_t)0x6c99307e, (q31_t)0xbc3f6267, (q31_t)0x6c95dcf6, (q31_t)0xbc3a0dcc, - (q31_t)0x6c92892a, (q31_t)0xbc34b95b, - (q31_t)0x6c8f351c, (q31_t)0xbc2f6513, (q31_t)0x6c8be0cb, (q31_t)0xbc2a10f6, (q31_t)0x6c888c36, (q31_t)0xbc24bd02, - (q31_t)0x6c85375f, (q31_t)0xbc1f6938, - (q31_t)0x6c81e245, (q31_t)0xbc1a1598, (q31_t)0x6c7e8ce8, (q31_t)0xbc14c221, (q31_t)0x6c7b3748, (q31_t)0xbc0f6ed5, - (q31_t)0x6c77e165, (q31_t)0xbc0a1bb3, - (q31_t)0x6c748b3f, (q31_t)0xbc04c8ba, (q31_t)0x6c7134d7, (q31_t)0xbbff75ec, (q31_t)0x6c6dde2b, (q31_t)0xbbfa2347, - (q31_t)0x6c6a873d, (q31_t)0xbbf4d0cc, - (q31_t)0x6c67300b, (q31_t)0xbbef7e7c, (q31_t)0x6c63d897, (q31_t)0xbbea2c55, (q31_t)0x6c6080e0, (q31_t)0xbbe4da58, - (q31_t)0x6c5d28e6, (q31_t)0xbbdf8885, - (q31_t)0x6c59d0a9, (q31_t)0xbbda36dd, (q31_t)0x6c56782a, (q31_t)0xbbd4e55e, (q31_t)0x6c531f67, (q31_t)0xbbcf940a, - (q31_t)0x6c4fc662, (q31_t)0xbbca42df, - (q31_t)0x6c4c6d1a, (q31_t)0xbbc4f1df, (q31_t)0x6c49138f, (q31_t)0xbbbfa108, (q31_t)0x6c45b9c1, (q31_t)0xbbba505c, - (q31_t)0x6c425fb1, (q31_t)0xbbb4ffda, - (q31_t)0x6c3f055d, (q31_t)0xbbafaf82, (q31_t)0x6c3baac7, (q31_t)0xbbaa5f54, (q31_t)0x6c384fef, (q31_t)0xbba50f50, - (q31_t)0x6c34f4d3, (q31_t)0xbb9fbf77, - (q31_t)0x6c319975, (q31_t)0xbb9a6fc7, (q31_t)0x6c2e3dd4, (q31_t)0xbb952042, (q31_t)0x6c2ae1f0, (q31_t)0xbb8fd0e7, - (q31_t)0x6c2785ca, (q31_t)0xbb8a81b6, - (q31_t)0x6c242960, (q31_t)0xbb8532b0, (q31_t)0x6c20ccb4, (q31_t)0xbb7fe3d3, (q31_t)0x6c1d6fc6, (q31_t)0xbb7a9521, - (q31_t)0x6c1a1295, (q31_t)0xbb754699, - (q31_t)0x6c16b521, (q31_t)0xbb6ff83c, (q31_t)0x6c13576a, (q31_t)0xbb6aaa09, (q31_t)0x6c0ff971, (q31_t)0xbb655c00, - (q31_t)0x6c0c9b35, (q31_t)0xbb600e21, - (q31_t)0x6c093cb6, (q31_t)0xbb5ac06d, (q31_t)0x6c05ddf5, (q31_t)0xbb5572e3, (q31_t)0x6c027ef1, (q31_t)0xbb502583, - (q31_t)0x6bff1faa, (q31_t)0xbb4ad84e, - (q31_t)0x6bfbc021, (q31_t)0xbb458b43, (q31_t)0x6bf86055, (q31_t)0xbb403e63, (q31_t)0x6bf50047, (q31_t)0xbb3af1ad, - (q31_t)0x6bf19ff6, (q31_t)0xbb35a521, - (q31_t)0x6bee3f62, (q31_t)0xbb3058c0, (q31_t)0x6beade8c, (q31_t)0xbb2b0c8a, (q31_t)0x6be77d74, (q31_t)0xbb25c07d, - (q31_t)0x6be41c18, (q31_t)0xbb20749c, - (q31_t)0x6be0ba7b, (q31_t)0xbb1b28e4, (q31_t)0x6bdd589a, (q31_t)0xbb15dd57, (q31_t)0x6bd9f677, (q31_t)0xbb1091f5, - (q31_t)0x6bd69412, (q31_t)0xbb0b46bd, - (q31_t)0x6bd3316a, (q31_t)0xbb05fbb0, (q31_t)0x6bcfce80, (q31_t)0xbb00b0ce, (q31_t)0x6bcc6b53, (q31_t)0xbafb6615, - (q31_t)0x6bc907e3, (q31_t)0xbaf61b88, - (q31_t)0x6bc5a431, (q31_t)0xbaf0d125, (q31_t)0x6bc2403d, (q31_t)0xbaeb86ed, (q31_t)0x6bbedc06, (q31_t)0xbae63cdf, - (q31_t)0x6bbb778d, (q31_t)0xbae0f2fc, - (q31_t)0x6bb812d1, (q31_t)0xbadba943, (q31_t)0x6bb4add3, (q31_t)0xbad65fb5, (q31_t)0x6bb14892, (q31_t)0xbad11652, - (q31_t)0x6bade30f, (q31_t)0xbacbcd1a, - (q31_t)0x6baa7d49, (q31_t)0xbac6840c, (q31_t)0x6ba71741, (q31_t)0xbac13b29, (q31_t)0x6ba3b0f7, (q31_t)0xbabbf270, - (q31_t)0x6ba04a6a, (q31_t)0xbab6a9e3, - (q31_t)0x6b9ce39b, (q31_t)0xbab16180, (q31_t)0x6b997c8a, (q31_t)0xbaac1948, (q31_t)0x6b961536, (q31_t)0xbaa6d13a, - (q31_t)0x6b92ada0, (q31_t)0xbaa18958, - (q31_t)0x6b8f45c7, (q31_t)0xba9c41a0, (q31_t)0x6b8bddac, (q31_t)0xba96fa13, (q31_t)0x6b88754f, (q31_t)0xba91b2b1, - (q31_t)0x6b850caf, (q31_t)0xba8c6b79, - (q31_t)0x6b81a3cd, (q31_t)0xba87246d, (q31_t)0x6b7e3aa9, (q31_t)0xba81dd8b, (q31_t)0x6b7ad142, (q31_t)0xba7c96d4, - (q31_t)0x6b776799, (q31_t)0xba775048, - (q31_t)0x6b73fdae, (q31_t)0xba7209e7, (q31_t)0x6b709381, (q31_t)0xba6cc3b1, (q31_t)0x6b6d2911, (q31_t)0xba677da6, - (q31_t)0x6b69be5f, (q31_t)0xba6237c5, - (q31_t)0x6b66536b, (q31_t)0xba5cf210, (q31_t)0x6b62e834, (q31_t)0xba57ac86, (q31_t)0x6b5f7cbc, (q31_t)0xba526726, - (q31_t)0x6b5c1101, (q31_t)0xba4d21f2, - (q31_t)0x6b58a503, (q31_t)0xba47dce8, (q31_t)0x6b5538c4, (q31_t)0xba42980a, (q31_t)0x6b51cc42, (q31_t)0xba3d5356, - (q31_t)0x6b4e5f7f, (q31_t)0xba380ece, - (q31_t)0x6b4af279, (q31_t)0xba32ca71, (q31_t)0x6b478530, (q31_t)0xba2d863e, (q31_t)0x6b4417a6, (q31_t)0xba284237, - (q31_t)0x6b40a9d9, (q31_t)0xba22fe5b, - (q31_t)0x6b3d3bcb, (q31_t)0xba1dbaaa, (q31_t)0x6b39cd7a, (q31_t)0xba187724, (q31_t)0x6b365ee7, (q31_t)0xba1333c9, - (q31_t)0x6b32f012, (q31_t)0xba0df099, - (q31_t)0x6b2f80fb, (q31_t)0xba08ad95, (q31_t)0x6b2c11a1, (q31_t)0xba036abb, (q31_t)0x6b28a206, (q31_t)0xb9fe280d, - (q31_t)0x6b253228, (q31_t)0xb9f8e58a, - (q31_t)0x6b21c208, (q31_t)0xb9f3a332, (q31_t)0x6b1e51a7, (q31_t)0xb9ee6106, (q31_t)0x6b1ae103, (q31_t)0xb9e91f04, - (q31_t)0x6b17701d, (q31_t)0xb9e3dd2e, - (q31_t)0x6b13fef5, (q31_t)0xb9de9b83, (q31_t)0x6b108d8b, (q31_t)0xb9d95a03, (q31_t)0x6b0d1bdf, (q31_t)0xb9d418af, - (q31_t)0x6b09a9f1, (q31_t)0xb9ced786, - (q31_t)0x6b0637c1, (q31_t)0xb9c99688, (q31_t)0x6b02c54f, (q31_t)0xb9c455b6, (q31_t)0x6aff529a, (q31_t)0xb9bf150e, - (q31_t)0x6afbdfa4, (q31_t)0xb9b9d493, - (q31_t)0x6af86c6c, (q31_t)0xb9b49442, (q31_t)0x6af4f8f2, (q31_t)0xb9af541d, (q31_t)0x6af18536, (q31_t)0xb9aa1423, - (q31_t)0x6aee1138, (q31_t)0xb9a4d455, - (q31_t)0x6aea9cf8, (q31_t)0xb99f94b2, (q31_t)0x6ae72876, (q31_t)0xb99a553a, (q31_t)0x6ae3b3b2, (q31_t)0xb99515ee, - (q31_t)0x6ae03eac, (q31_t)0xb98fd6cd, - (q31_t)0x6adcc964, (q31_t)0xb98a97d8, (q31_t)0x6ad953db, (q31_t)0xb985590e, (q31_t)0x6ad5de0f, (q31_t)0xb9801a70, - (q31_t)0x6ad26802, (q31_t)0xb97adbfd, - (q31_t)0x6acef1b2, (q31_t)0xb9759db6, (q31_t)0x6acb7b21, (q31_t)0xb9705f9a, (q31_t)0x6ac8044e, (q31_t)0xb96b21aa, - (q31_t)0x6ac48d39, (q31_t)0xb965e3e5, - (q31_t)0x6ac115e2, (q31_t)0xb960a64c, (q31_t)0x6abd9e49, (q31_t)0xb95b68de, (q31_t)0x6aba266e, (q31_t)0xb9562b9c, - (q31_t)0x6ab6ae52, (q31_t)0xb950ee86, - (q31_t)0x6ab335f4, (q31_t)0xb94bb19b, (q31_t)0x6aafbd54, (q31_t)0xb94674dc, (q31_t)0x6aac4472, (q31_t)0xb9413848, - (q31_t)0x6aa8cb4e, (q31_t)0xb93bfbe0, - (q31_t)0x6aa551e9, (q31_t)0xb936bfa4, (q31_t)0x6aa1d841, (q31_t)0xb9318393, (q31_t)0x6a9e5e58, (q31_t)0xb92c47ae, - (q31_t)0x6a9ae42e, (q31_t)0xb9270bf5, - (q31_t)0x6a9769c1, (q31_t)0xb921d067, (q31_t)0x6a93ef13, (q31_t)0xb91c9505, (q31_t)0x6a907423, (q31_t)0xb91759cf, - (q31_t)0x6a8cf8f1, (q31_t)0xb9121ec5, - (q31_t)0x6a897d7d, (q31_t)0xb90ce3e6, (q31_t)0x6a8601c8, (q31_t)0xb907a933, (q31_t)0x6a8285d1, (q31_t)0xb9026eac, - (q31_t)0x6a7f0999, (q31_t)0xb8fd3451, - (q31_t)0x6a7b8d1e, (q31_t)0xb8f7fa21, (q31_t)0x6a781062, (q31_t)0xb8f2c01d, (q31_t)0x6a749365, (q31_t)0xb8ed8646, - (q31_t)0x6a711625, (q31_t)0xb8e84c99, - (q31_t)0x6a6d98a4, (q31_t)0xb8e31319, (q31_t)0x6a6a1ae2, (q31_t)0xb8ddd9c5, (q31_t)0x6a669cdd, (q31_t)0xb8d8a09d, - (q31_t)0x6a631e97, (q31_t)0xb8d367a0, - (q31_t)0x6a5fa010, (q31_t)0xb8ce2ecf, (q31_t)0x6a5c2147, (q31_t)0xb8c8f62b, (q31_t)0x6a58a23c, (q31_t)0xb8c3bdb2, - (q31_t)0x6a5522ef, (q31_t)0xb8be8565, - (q31_t)0x6a51a361, (q31_t)0xb8b94d44, (q31_t)0x6a4e2392, (q31_t)0xb8b4154f, (q31_t)0x6a4aa381, (q31_t)0xb8aedd86, - (q31_t)0x6a47232e, (q31_t)0xb8a9a5e9, - (q31_t)0x6a43a29a, (q31_t)0xb8a46e78, (q31_t)0x6a4021c4, (q31_t)0xb89f3733, (q31_t)0x6a3ca0ad, (q31_t)0xb89a001a, - (q31_t)0x6a391f54, (q31_t)0xb894c92d, - (q31_t)0x6a359db9, (q31_t)0xb88f926d, (q31_t)0x6a321bdd, (q31_t)0xb88a5bd8, (q31_t)0x6a2e99c0, (q31_t)0xb885256f, - (q31_t)0x6a2b1761, (q31_t)0xb87fef33, - (q31_t)0x6a2794c1, (q31_t)0xb87ab922, (q31_t)0x6a2411df, (q31_t)0xb875833e, (q31_t)0x6a208ebb, (q31_t)0xb8704d85, - (q31_t)0x6a1d0b57, (q31_t)0xb86b17f9, - (q31_t)0x6a1987b0, (q31_t)0xb865e299, (q31_t)0x6a1603c8, (q31_t)0xb860ad66, (q31_t)0x6a127f9f, (q31_t)0xb85b785e, - (q31_t)0x6a0efb35, (q31_t)0xb8564383, - (q31_t)0x6a0b7689, (q31_t)0xb8510ed4, (q31_t)0x6a07f19b, (q31_t)0xb84bda51, (q31_t)0x6a046c6c, (q31_t)0xb846a5fa, - (q31_t)0x6a00e6fc, (q31_t)0xb84171cf, - (q31_t)0x69fd614a, (q31_t)0xb83c3dd1, (q31_t)0x69f9db57, (q31_t)0xb83709ff, (q31_t)0x69f65523, (q31_t)0xb831d659, - (q31_t)0x69f2cead, (q31_t)0xb82ca2e0, - (q31_t)0x69ef47f6, (q31_t)0xb8276f93, (q31_t)0x69ebc0fe, (q31_t)0xb8223c72, (q31_t)0x69e839c4, (q31_t)0xb81d097e, - (q31_t)0x69e4b249, (q31_t)0xb817d6b6, - (q31_t)0x69e12a8c, (q31_t)0xb812a41a, (q31_t)0x69dda28f, (q31_t)0xb80d71aa, (q31_t)0x69da1a50, (q31_t)0xb8083f67, - (q31_t)0x69d691cf, (q31_t)0xb8030d51, - (q31_t)0x69d3090e, (q31_t)0xb7fddb67, (q31_t)0x69cf800b, (q31_t)0xb7f8a9a9, (q31_t)0x69cbf6c7, (q31_t)0xb7f37818, - (q31_t)0x69c86d41, (q31_t)0xb7ee46b3, - (q31_t)0x69c4e37a, (q31_t)0xb7e9157a, (q31_t)0x69c15973, (q31_t)0xb7e3e46e, (q31_t)0x69bdcf29, (q31_t)0xb7deb38f, - (q31_t)0x69ba449f, (q31_t)0xb7d982dc, - (q31_t)0x69b6b9d3, (q31_t)0xb7d45255, (q31_t)0x69b32ec7, (q31_t)0xb7cf21fb, (q31_t)0x69afa378, (q31_t)0xb7c9f1ce, - (q31_t)0x69ac17e9, (q31_t)0xb7c4c1cd, - (q31_t)0x69a88c19, (q31_t)0xb7bf91f8, (q31_t)0x69a50007, (q31_t)0xb7ba6251, (q31_t)0x69a173b5, (q31_t)0xb7b532d6, - (q31_t)0x699de721, (q31_t)0xb7b00387, - (q31_t)0x699a5a4c, (q31_t)0xb7aad465, (q31_t)0x6996cd35, (q31_t)0xb7a5a570, (q31_t)0x69933fde, (q31_t)0xb7a076a7, - (q31_t)0x698fb246, (q31_t)0xb79b480b, - (q31_t)0x698c246c, (q31_t)0xb796199b, (q31_t)0x69889651, (q31_t)0xb790eb58, (q31_t)0x698507f6, (q31_t)0xb78bbd42, - (q31_t)0x69817959, (q31_t)0xb7868f59, - (q31_t)0x697dea7b, (q31_t)0xb781619c, (q31_t)0x697a5b5c, (q31_t)0xb77c340c, (q31_t)0x6976cbfc, (q31_t)0xb77706a9, - (q31_t)0x69733c5b, (q31_t)0xb771d972, - (q31_t)0x696fac78, (q31_t)0xb76cac69, (q31_t)0x696c1c55, (q31_t)0xb7677f8c, (q31_t)0x69688bf1, (q31_t)0xb76252db, - (q31_t)0x6964fb4c, (q31_t)0xb75d2658, - (q31_t)0x69616a65, (q31_t)0xb757fa01, (q31_t)0x695dd93e, (q31_t)0xb752cdd8, (q31_t)0x695a47d6, (q31_t)0xb74da1db, - (q31_t)0x6956b62d, (q31_t)0xb748760b, - (q31_t)0x69532442, (q31_t)0xb7434a67, (q31_t)0x694f9217, (q31_t)0xb73e1ef1, (q31_t)0x694bffab, (q31_t)0xb738f3a7, - (q31_t)0x69486cfe, (q31_t)0xb733c88b, - (q31_t)0x6944da10, (q31_t)0xb72e9d9b, (q31_t)0x694146e1, (q31_t)0xb72972d8, (q31_t)0x693db371, (q31_t)0xb7244842, - (q31_t)0x693a1fc0, (q31_t)0xb71f1dd9, - (q31_t)0x69368bce, (q31_t)0xb719f39e, (q31_t)0x6932f79b, (q31_t)0xb714c98e, (q31_t)0x692f6328, (q31_t)0xb70f9fac, - (q31_t)0x692bce73, (q31_t)0xb70a75f7, - (q31_t)0x6928397e, (q31_t)0xb7054c6f, (q31_t)0x6924a448, (q31_t)0xb7002314, (q31_t)0x69210ed1, (q31_t)0xb6faf9e6, - (q31_t)0x691d7919, (q31_t)0xb6f5d0e5, - (q31_t)0x6919e320, (q31_t)0xb6f0a812, (q31_t)0x69164ce7, (q31_t)0xb6eb7f6b, (q31_t)0x6912b66c, (q31_t)0xb6e656f1, - (q31_t)0x690f1fb1, (q31_t)0xb6e12ea4, - (q31_t)0x690b88b5, (q31_t)0xb6dc0685, (q31_t)0x6907f178, (q31_t)0xb6d6de92, (q31_t)0x690459fb, (q31_t)0xb6d1b6cd, - (q31_t)0x6900c23c, (q31_t)0xb6cc8f35, - (q31_t)0x68fd2a3d, (q31_t)0xb6c767ca, (q31_t)0x68f991fd, (q31_t)0xb6c2408c, (q31_t)0x68f5f97d, (q31_t)0xb6bd197c, - (q31_t)0x68f260bb, (q31_t)0xb6b7f298, - (q31_t)0x68eec7b9, (q31_t)0xb6b2cbe2, (q31_t)0x68eb2e76, (q31_t)0xb6ada559, (q31_t)0x68e794f3, (q31_t)0xb6a87efd, - (q31_t)0x68e3fb2e, (q31_t)0xb6a358ce, - (q31_t)0x68e06129, (q31_t)0xb69e32cd, (q31_t)0x68dcc6e4, (q31_t)0xb6990cf9, (q31_t)0x68d92c5d, (q31_t)0xb693e752, - (q31_t)0x68d59196, (q31_t)0xb68ec1d9, - (q31_t)0x68d1f68f, (q31_t)0xb6899c8d, (q31_t)0x68ce5b46, (q31_t)0xb684776e, (q31_t)0x68cabfbd, (q31_t)0xb67f527c, - (q31_t)0x68c723f3, (q31_t)0xb67a2db8, - (q31_t)0x68c387e9, (q31_t)0xb6750921, (q31_t)0x68bfeb9e, (q31_t)0xb66fe4b8, (q31_t)0x68bc4f13, (q31_t)0xb66ac07c, - (q31_t)0x68b8b247, (q31_t)0xb6659c6d, - (q31_t)0x68b5153a, (q31_t)0xb660788c, (q31_t)0x68b177ed, (q31_t)0xb65b54d8, (q31_t)0x68adda5f, (q31_t)0xb6563151, - (q31_t)0x68aa3c90, (q31_t)0xb6510df8, - (q31_t)0x68a69e81, (q31_t)0xb64beacd, (q31_t)0x68a30031, (q31_t)0xb646c7ce, (q31_t)0x689f61a1, (q31_t)0xb641a4fe, - (q31_t)0x689bc2d1, (q31_t)0xb63c825b, - (q31_t)0x689823bf, (q31_t)0xb6375fe5, (q31_t)0x6894846e, (q31_t)0xb6323d9d, (q31_t)0x6890e4dc, (q31_t)0xb62d1b82, - (q31_t)0x688d4509, (q31_t)0xb627f995, - (q31_t)0x6889a4f6, (q31_t)0xb622d7d6, (q31_t)0x688604a2, (q31_t)0xb61db644, (q31_t)0x6882640e, (q31_t)0xb61894df, - (q31_t)0x687ec339, (q31_t)0xb61373a9, - (q31_t)0x687b2224, (q31_t)0xb60e529f, (q31_t)0x687780ce, (q31_t)0xb60931c4, (q31_t)0x6873df38, (q31_t)0xb6041116, - (q31_t)0x68703d62, (q31_t)0xb5fef095, - (q31_t)0x686c9b4b, (q31_t)0xb5f9d043, (q31_t)0x6868f8f4, (q31_t)0xb5f4b01e, (q31_t)0x6865565c, (q31_t)0xb5ef9026, - (q31_t)0x6861b384, (q31_t)0xb5ea705d, - (q31_t)0x685e106c, (q31_t)0xb5e550c1, (q31_t)0x685a6d13, (q31_t)0xb5e03153, (q31_t)0x6856c979, (q31_t)0xb5db1212, - (q31_t)0x685325a0, (q31_t)0xb5d5f2ff, - (q31_t)0x684f8186, (q31_t)0xb5d0d41a, (q31_t)0x684bdd2c, (q31_t)0xb5cbb563, (q31_t)0x68483891, (q31_t)0xb5c696da, - (q31_t)0x684493b6, (q31_t)0xb5c1787e, - (q31_t)0x6840ee9b, (q31_t)0xb5bc5a50, (q31_t)0x683d493f, (q31_t)0xb5b73c50, (q31_t)0x6839a3a4, (q31_t)0xb5b21e7e, - (q31_t)0x6835fdc7, (q31_t)0xb5ad00d9, - (q31_t)0x683257ab, (q31_t)0xb5a7e362, (q31_t)0x682eb14e, (q31_t)0xb5a2c61a, (q31_t)0x682b0ab1, (q31_t)0xb59da8ff, - (q31_t)0x682763d4, (q31_t)0xb5988c12, - (q31_t)0x6823bcb7, (q31_t)0xb5936f53, (q31_t)0x68201559, (q31_t)0xb58e52c2, (q31_t)0x681c6dbb, (q31_t)0xb589365e, - (q31_t)0x6818c5dd, (q31_t)0xb5841a29, - (q31_t)0x68151dbe, (q31_t)0xb57efe22, (q31_t)0x68117560, (q31_t)0xb579e248, (q31_t)0x680dccc1, (q31_t)0xb574c69d, - (q31_t)0x680a23e2, (q31_t)0xb56fab1f, - (q31_t)0x68067ac3, (q31_t)0xb56a8fd0, (q31_t)0x6802d164, (q31_t)0xb56574ae, (q31_t)0x67ff27c4, (q31_t)0xb56059bb, - (q31_t)0x67fb7de5, (q31_t)0xb55b3ef5, - (q31_t)0x67f7d3c5, (q31_t)0xb556245e, (q31_t)0x67f42965, (q31_t)0xb55109f5, (q31_t)0x67f07ec5, (q31_t)0xb54befba, - (q31_t)0x67ecd3e5, (q31_t)0xb546d5ac, - (q31_t)0x67e928c5, (q31_t)0xb541bbcd, (q31_t)0x67e57d64, (q31_t)0xb53ca21c, (q31_t)0x67e1d1c4, (q31_t)0xb5378899, - (q31_t)0x67de25e3, (q31_t)0xb5326f45, - (q31_t)0x67da79c3, (q31_t)0xb52d561e, (q31_t)0x67d6cd62, (q31_t)0xb5283d26, (q31_t)0x67d320c1, (q31_t)0xb523245b, - (q31_t)0x67cf73e1, (q31_t)0xb51e0bbf, - (q31_t)0x67cbc6c0, (q31_t)0xb518f351, (q31_t)0x67c8195f, (q31_t)0xb513db12, (q31_t)0x67c46bbe, (q31_t)0xb50ec300, - (q31_t)0x67c0bddd, (q31_t)0xb509ab1d, - (q31_t)0x67bd0fbd, (q31_t)0xb5049368, (q31_t)0x67b9615c, (q31_t)0xb4ff7be1, (q31_t)0x67b5b2bb, (q31_t)0xb4fa6489, - (q31_t)0x67b203da, (q31_t)0xb4f54d5f, - (q31_t)0x67ae54ba, (q31_t)0xb4f03663, (q31_t)0x67aaa559, (q31_t)0xb4eb1f95, (q31_t)0x67a6f5b8, (q31_t)0xb4e608f6, - (q31_t)0x67a345d8, (q31_t)0xb4e0f285, - (q31_t)0x679f95b7, (q31_t)0xb4dbdc42, (q31_t)0x679be557, (q31_t)0xb4d6c62e, (q31_t)0x679834b6, (q31_t)0xb4d1b048, - (q31_t)0x679483d6, (q31_t)0xb4cc9a90, - (q31_t)0x6790d2b6, (q31_t)0xb4c78507, (q31_t)0x678d2156, (q31_t)0xb4c26fad, (q31_t)0x67896fb6, (q31_t)0xb4bd5a80, - (q31_t)0x6785bdd6, (q31_t)0xb4b84582, - (q31_t)0x67820bb7, (q31_t)0xb4b330b3, (q31_t)0x677e5957, (q31_t)0xb4ae1c12, (q31_t)0x677aa6b8, (q31_t)0xb4a9079f, - (q31_t)0x6776f3d9, (q31_t)0xb4a3f35b, - (q31_t)0x677340ba, (q31_t)0xb49edf45, (q31_t)0x676f8d5b, (q31_t)0xb499cb5e, (q31_t)0x676bd9bd, (q31_t)0xb494b7a6, - (q31_t)0x676825de, (q31_t)0xb48fa41c, - (q31_t)0x676471c0, (q31_t)0xb48a90c0, (q31_t)0x6760bd62, (q31_t)0xb4857d93, (q31_t)0x675d08c4, (q31_t)0xb4806a95, - (q31_t)0x675953e7, (q31_t)0xb47b57c5, - (q31_t)0x67559eca, (q31_t)0xb4764523, (q31_t)0x6751e96d, (q31_t)0xb47132b1, (q31_t)0x674e33d0, (q31_t)0xb46c206d, - (q31_t)0x674a7df4, (q31_t)0xb4670e57, - (q31_t)0x6746c7d8, (q31_t)0xb461fc70, (q31_t)0x6743117c, (q31_t)0xb45ceab8, (q31_t)0x673f5ae0, (q31_t)0xb457d92f, - (q31_t)0x673ba405, (q31_t)0xb452c7d4, - (q31_t)0x6737ecea, (q31_t)0xb44db6a8, (q31_t)0x67343590, (q31_t)0xb448a5aa, (q31_t)0x67307df5, (q31_t)0xb44394db, - (q31_t)0x672cc61c, (q31_t)0xb43e843b, - (q31_t)0x67290e02, (q31_t)0xb43973ca, (q31_t)0x672555a9, (q31_t)0xb4346387, (q31_t)0x67219d10, (q31_t)0xb42f5373, - (q31_t)0x671de438, (q31_t)0xb42a438e, - (q31_t)0x671a2b20, (q31_t)0xb42533d8, (q31_t)0x671671c8, (q31_t)0xb4202451, (q31_t)0x6712b831, (q31_t)0xb41b14f8, - (q31_t)0x670efe5a, (q31_t)0xb41605ce, - (q31_t)0x670b4444, (q31_t)0xb410f6d3, (q31_t)0x670789ee, (q31_t)0xb40be807, (q31_t)0x6703cf58, (q31_t)0xb406d969, - (q31_t)0x67001483, (q31_t)0xb401cafb, - (q31_t)0x66fc596f, (q31_t)0xb3fcbcbb, (q31_t)0x66f89e1b, (q31_t)0xb3f7aeaa, (q31_t)0x66f4e287, (q31_t)0xb3f2a0c9, - (q31_t)0x66f126b4, (q31_t)0xb3ed9316, - (q31_t)0x66ed6aa1, (q31_t)0xb3e88592, (q31_t)0x66e9ae4f, (q31_t)0xb3e3783d, (q31_t)0x66e5f1be, (q31_t)0xb3de6b17, - (q31_t)0x66e234ed, (q31_t)0xb3d95e1f, - (q31_t)0x66de77dc, (q31_t)0xb3d45157, (q31_t)0x66daba8c, (q31_t)0xb3cf44be, (q31_t)0x66d6fcfd, (q31_t)0xb3ca3854, - (q31_t)0x66d33f2e, (q31_t)0xb3c52c19, - (q31_t)0x66cf8120, (q31_t)0xb3c0200c, (q31_t)0x66cbc2d2, (q31_t)0xb3bb142f, (q31_t)0x66c80445, (q31_t)0xb3b60881, - (q31_t)0x66c44579, (q31_t)0xb3b0fd02, - (q31_t)0x66c0866d, (q31_t)0xb3abf1b2, (q31_t)0x66bcc721, (q31_t)0xb3a6e691, (q31_t)0x66b90797, (q31_t)0xb3a1dba0, - (q31_t)0x66b547cd, (q31_t)0xb39cd0dd, - (q31_t)0x66b187c3, (q31_t)0xb397c649, (q31_t)0x66adc77b, (q31_t)0xb392bbe5, (q31_t)0x66aa06f3, (q31_t)0xb38db1b0, - (q31_t)0x66a6462b, (q31_t)0xb388a7aa, - (q31_t)0x66a28524, (q31_t)0xb3839dd3, (q31_t)0x669ec3de, (q31_t)0xb37e942b, (q31_t)0x669b0259, (q31_t)0xb3798ab2, - (q31_t)0x66974095, (q31_t)0xb3748169, - (q31_t)0x66937e91, (q31_t)0xb36f784f, (q31_t)0x668fbc4e, (q31_t)0xb36a6f64, (q31_t)0x668bf9cb, (q31_t)0xb36566a8, - (q31_t)0x66883709, (q31_t)0xb3605e1c, - (q31_t)0x66847408, (q31_t)0xb35b55bf, (q31_t)0x6680b0c8, (q31_t)0xb3564d91, (q31_t)0x667ced49, (q31_t)0xb3514592, - (q31_t)0x6679298a, (q31_t)0xb34c3dc3, - (q31_t)0x6675658c, (q31_t)0xb3473623, (q31_t)0x6671a14f, (q31_t)0xb3422eb2, (q31_t)0x666ddcd3, (q31_t)0xb33d2771, - (q31_t)0x666a1818, (q31_t)0xb338205f, - (q31_t)0x6666531d, (q31_t)0xb333197c, (q31_t)0x66628de4, (q31_t)0xb32e12c9, (q31_t)0x665ec86b, (q31_t)0xb3290c45, - (q31_t)0x665b02b3, (q31_t)0xb32405f1, - (q31_t)0x66573cbb, (q31_t)0xb31effcc, (q31_t)0x66537685, (q31_t)0xb319f9d6, (q31_t)0x664fb010, (q31_t)0xb314f410, - (q31_t)0x664be95b, (q31_t)0xb30fee79, - (q31_t)0x66482267, (q31_t)0xb30ae912, (q31_t)0x66445b35, (q31_t)0xb305e3da, (q31_t)0x664093c3, (q31_t)0xb300ded2, - (q31_t)0x663ccc12, (q31_t)0xb2fbd9f9, - (q31_t)0x66390422, (q31_t)0xb2f6d550, (q31_t)0x66353bf3, (q31_t)0xb2f1d0d6, (q31_t)0x66317385, (q31_t)0xb2eccc8c, - (q31_t)0x662daad8, (q31_t)0xb2e7c871, - (q31_t)0x6629e1ec, (q31_t)0xb2e2c486, (q31_t)0x662618c1, (q31_t)0xb2ddc0ca, (q31_t)0x66224f56, (q31_t)0xb2d8bd3e, - (q31_t)0x661e85ad, (q31_t)0xb2d3b9e2, - (q31_t)0x661abbc5, (q31_t)0xb2ceb6b5, (q31_t)0x6616f19e, (q31_t)0xb2c9b3b8, (q31_t)0x66132738, (q31_t)0xb2c4b0ea, - (q31_t)0x660f5c93, (q31_t)0xb2bfae4c, - (q31_t)0x660b91af, (q31_t)0xb2baabde, (q31_t)0x6607c68c, (q31_t)0xb2b5a99f, (q31_t)0x6603fb2a, (q31_t)0xb2b0a790, - (q31_t)0x66002f89, (q31_t)0xb2aba5b1, - (q31_t)0x65fc63a9, (q31_t)0xb2a6a402, (q31_t)0x65f8978b, (q31_t)0xb2a1a282, (q31_t)0x65f4cb2d, (q31_t)0xb29ca132, - (q31_t)0x65f0fe91, (q31_t)0xb297a011, - (q31_t)0x65ed31b5, (q31_t)0xb2929f21, (q31_t)0x65e9649b, (q31_t)0xb28d9e60, (q31_t)0x65e59742, (q31_t)0xb2889dcf, - (q31_t)0x65e1c9aa, (q31_t)0xb2839d6d, - (q31_t)0x65ddfbd3, (q31_t)0xb27e9d3c, (q31_t)0x65da2dbd, (q31_t)0xb2799d3a, (q31_t)0x65d65f69, (q31_t)0xb2749d68, - (q31_t)0x65d290d6, (q31_t)0xb26f9dc6, - (q31_t)0x65cec204, (q31_t)0xb26a9e54, (q31_t)0x65caf2f3, (q31_t)0xb2659f12, (q31_t)0x65c723a3, (q31_t)0xb2609fff, - (q31_t)0x65c35415, (q31_t)0xb25ba11d, - (q31_t)0x65bf8447, (q31_t)0xb256a26a, (q31_t)0x65bbb43b, (q31_t)0xb251a3e7, (q31_t)0x65b7e3f1, (q31_t)0xb24ca594, - (q31_t)0x65b41367, (q31_t)0xb247a771, - (q31_t)0x65b0429f, (q31_t)0xb242a97e, (q31_t)0x65ac7198, (q31_t)0xb23dabbb, (q31_t)0x65a8a052, (q31_t)0xb238ae28, - (q31_t)0x65a4cece, (q31_t)0xb233b0c5, - (q31_t)0x65a0fd0b, (q31_t)0xb22eb392, (q31_t)0x659d2b09, (q31_t)0xb229b68f, (q31_t)0x659958c9, (q31_t)0xb224b9bc, - (q31_t)0x6595864a, (q31_t)0xb21fbd19, - (q31_t)0x6591b38c, (q31_t)0xb21ac0a6, (q31_t)0x658de08f, (q31_t)0xb215c463, (q31_t)0x658a0d54, (q31_t)0xb210c850, - (q31_t)0x658639db, (q31_t)0xb20bcc6d, - (q31_t)0x65826622, (q31_t)0xb206d0ba, (q31_t)0x657e922b, (q31_t)0xb201d537, (q31_t)0x657abdf6, (q31_t)0xb1fcd9e5, - (q31_t)0x6576e982, (q31_t)0xb1f7dec2, - (q31_t)0x657314cf, (q31_t)0xb1f2e3d0, (q31_t)0x656f3fde, (q31_t)0xb1ede90e, (q31_t)0x656b6aae, (q31_t)0xb1e8ee7c, - (q31_t)0x6567953f, (q31_t)0xb1e3f41a, - (q31_t)0x6563bf92, (q31_t)0xb1def9e9, (q31_t)0x655fe9a7, (q31_t)0xb1d9ffe7, (q31_t)0x655c137d, (q31_t)0xb1d50616, - (q31_t)0x65583d14, (q31_t)0xb1d00c75, - (q31_t)0x6554666d, (q31_t)0xb1cb1304, (q31_t)0x65508f87, (q31_t)0xb1c619c3, (q31_t)0x654cb863, (q31_t)0xb1c120b3, - (q31_t)0x6548e101, (q31_t)0xb1bc27d3, - (q31_t)0x6545095f, (q31_t)0xb1b72f23, (q31_t)0x65413180, (q31_t)0xb1b236a4, (q31_t)0x653d5962, (q31_t)0xb1ad3e55, - (q31_t)0x65398105, (q31_t)0xb1a84636, - (q31_t)0x6535a86b, (q31_t)0xb1a34e47, (q31_t)0x6531cf91, (q31_t)0xb19e5689, (q31_t)0x652df679, (q31_t)0xb1995efb, - (q31_t)0x652a1d23, (q31_t)0xb194679e, - (q31_t)0x6526438f, (q31_t)0xb18f7071, (q31_t)0x652269bc, (q31_t)0xb18a7974, (q31_t)0x651e8faa, (q31_t)0xb18582a8, - (q31_t)0x651ab55b, (q31_t)0xb1808c0c, - (q31_t)0x6516dacd, (q31_t)0xb17b95a0, (q31_t)0x65130000, (q31_t)0xb1769f65, (q31_t)0x650f24f5, (q31_t)0xb171a95b, - (q31_t)0x650b49ac, (q31_t)0xb16cb380, - (q31_t)0x65076e25, (q31_t)0xb167bdd7, (q31_t)0x6503925f, (q31_t)0xb162c85d, (q31_t)0x64ffb65b, (q31_t)0xb15dd315, - (q31_t)0x64fbda18, (q31_t)0xb158ddfd, - (q31_t)0x64f7fd98, (q31_t)0xb153e915, (q31_t)0x64f420d9, (q31_t)0xb14ef45e, (q31_t)0x64f043dc, (q31_t)0xb149ffd7, - (q31_t)0x64ec66a0, (q31_t)0xb1450b81, - (q31_t)0x64e88926, (q31_t)0xb140175b, (q31_t)0x64e4ab6e, (q31_t)0xb13b2367, (q31_t)0x64e0cd78, (q31_t)0xb1362fa2, - (q31_t)0x64dcef44, (q31_t)0xb1313c0e, - (q31_t)0x64d910d1, (q31_t)0xb12c48ab, (q31_t)0x64d53220, (q31_t)0xb1275579, (q31_t)0x64d15331, (q31_t)0xb1226277, - (q31_t)0x64cd7404, (q31_t)0xb11d6fa6, - (q31_t)0x64c99498, (q31_t)0xb1187d05, (q31_t)0x64c5b4ef, (q31_t)0xb1138a95, (q31_t)0x64c1d507, (q31_t)0xb10e9856, - (q31_t)0x64bdf4e1, (q31_t)0xb109a648, - (q31_t)0x64ba147d, (q31_t)0xb104b46a, (q31_t)0x64b633da, (q31_t)0xb0ffc2bd, (q31_t)0x64b252fa, (q31_t)0xb0fad140, - (q31_t)0x64ae71dc, (q31_t)0xb0f5dff5, - (q31_t)0x64aa907f, (q31_t)0xb0f0eeda, (q31_t)0x64a6aee4, (q31_t)0xb0ebfdf0, (q31_t)0x64a2cd0c, (q31_t)0xb0e70d37, - (q31_t)0x649eeaf5, (q31_t)0xb0e21cae, - (q31_t)0x649b08a0, (q31_t)0xb0dd2c56, (q31_t)0x6497260d, (q31_t)0xb0d83c2f, (q31_t)0x6493433c, (q31_t)0xb0d34c39, - (q31_t)0x648f602d, (q31_t)0xb0ce5c74, - (q31_t)0x648b7ce0, (q31_t)0xb0c96ce0, (q31_t)0x64879955, (q31_t)0xb0c47d7c, (q31_t)0x6483b58c, (q31_t)0xb0bf8e4a, - (q31_t)0x647fd185, (q31_t)0xb0ba9f48, - (q31_t)0x647bed3f, (q31_t)0xb0b5b077, (q31_t)0x647808bc, (q31_t)0xb0b0c1d7, (q31_t)0x647423fb, (q31_t)0xb0abd368, - (q31_t)0x64703efc, (q31_t)0xb0a6e52a, - (q31_t)0x646c59bf, (q31_t)0xb0a1f71d, (q31_t)0x64687444, (q31_t)0xb09d0941, (q31_t)0x64648e8c, (q31_t)0xb0981b96, - (q31_t)0x6460a895, (q31_t)0xb0932e1b, - (q31_t)0x645cc260, (q31_t)0xb08e40d2, (q31_t)0x6458dbed, (q31_t)0xb08953ba, (q31_t)0x6454f53d, (q31_t)0xb08466d3, - (q31_t)0x64510e4e, (q31_t)0xb07f7a1c, - (q31_t)0x644d2722, (q31_t)0xb07a8d97, (q31_t)0x64493fb8, (q31_t)0xb075a143, (q31_t)0x64455810, (q31_t)0xb070b520, - (q31_t)0x6441702a, (q31_t)0xb06bc92e, - (q31_t)0x643d8806, (q31_t)0xb066dd6d, (q31_t)0x64399fa5, (q31_t)0xb061f1de, (q31_t)0x6435b706, (q31_t)0xb05d067f, - (q31_t)0x6431ce28, (q31_t)0xb0581b51, - (q31_t)0x642de50d, (q31_t)0xb0533055, (q31_t)0x6429fbb5, (q31_t)0xb04e458a, (q31_t)0x6426121e, (q31_t)0xb0495af0, - (q31_t)0x6422284a, (q31_t)0xb0447087, - (q31_t)0x641e3e38, (q31_t)0xb03f864f, (q31_t)0x641a53e8, (q31_t)0xb03a9c49, (q31_t)0x6416695a, (q31_t)0xb035b273, - (q31_t)0x64127e8f, (q31_t)0xb030c8cf, - (q31_t)0x640e9386, (q31_t)0xb02bdf5c, (q31_t)0x640aa83f, (q31_t)0xb026f61b, (q31_t)0x6406bcba, (q31_t)0xb0220d0a, - (q31_t)0x6402d0f8, (q31_t)0xb01d242b, - (q31_t)0x63fee4f8, (q31_t)0xb0183b7d, (q31_t)0x63faf8bb, (q31_t)0xb0135301, (q31_t)0x63f70c3f, (q31_t)0xb00e6ab5, - (q31_t)0x63f31f86, (q31_t)0xb009829c, - (q31_t)0x63ef3290, (q31_t)0xb0049ab3, (q31_t)0x63eb455c, (q31_t)0xafffb2fc, (q31_t)0x63e757ea, (q31_t)0xaffacb76, - (q31_t)0x63e36a3a, (q31_t)0xaff5e421, - (q31_t)0x63df7c4d, (q31_t)0xaff0fcfe, (q31_t)0x63db8e22, (q31_t)0xafec160c, (q31_t)0x63d79fba, (q31_t)0xafe72f4c, - (q31_t)0x63d3b114, (q31_t)0xafe248bd, - (q31_t)0x63cfc231, (q31_t)0xafdd625f, (q31_t)0x63cbd310, (q31_t)0xafd87c33, (q31_t)0x63c7e3b1, (q31_t)0xafd39638, - (q31_t)0x63c3f415, (q31_t)0xafceb06f, - (q31_t)0x63c0043b, (q31_t)0xafc9cad7, (q31_t)0x63bc1424, (q31_t)0xafc4e571, (q31_t)0x63b823cf, (q31_t)0xafc0003c, - (q31_t)0x63b4333d, (q31_t)0xafbb1b39, - (q31_t)0x63b0426d, (q31_t)0xafb63667, (q31_t)0x63ac5160, (q31_t)0xafb151c7, (q31_t)0x63a86015, (q31_t)0xafac6d58, - (q31_t)0x63a46e8d, (q31_t)0xafa7891b, - (q31_t)0x63a07cc7, (q31_t)0xafa2a50f, (q31_t)0x639c8ac4, (q31_t)0xaf9dc135, (q31_t)0x63989884, (q31_t)0xaf98dd8d, - (q31_t)0x6394a606, (q31_t)0xaf93fa16, - (q31_t)0x6390b34a, (q31_t)0xaf8f16d1, (q31_t)0x638cc051, (q31_t)0xaf8a33bd, (q31_t)0x6388cd1b, (q31_t)0xaf8550db, - (q31_t)0x6384d9a7, (q31_t)0xaf806e2b, - (q31_t)0x6380e5f6, (q31_t)0xaf7b8bac, (q31_t)0x637cf208, (q31_t)0xaf76a95f, (q31_t)0x6378fddc, (q31_t)0xaf71c743, - (q31_t)0x63750973, (q31_t)0xaf6ce55a, - (q31_t)0x637114cc, (q31_t)0xaf6803a2, (q31_t)0x636d1fe9, (q31_t)0xaf63221c, (q31_t)0x63692ac7, (q31_t)0xaf5e40c7, - (q31_t)0x63653569, (q31_t)0xaf595fa4, - (q31_t)0x63613fcd, (q31_t)0xaf547eb3, (q31_t)0x635d49f4, (q31_t)0xaf4f9df4, (q31_t)0x635953dd, (q31_t)0xaf4abd66, - (q31_t)0x63555d8a, (q31_t)0xaf45dd0b, - (q31_t)0x635166f9, (q31_t)0xaf40fce1, (q31_t)0x634d702b, (q31_t)0xaf3c1ce9, (q31_t)0x6349791f, (q31_t)0xaf373d22, - (q31_t)0x634581d6, (q31_t)0xaf325d8e, - (q31_t)0x63418a50, (q31_t)0xaf2d7e2b, (q31_t)0x633d928d, (q31_t)0xaf289efa, (q31_t)0x63399a8d, (q31_t)0xaf23bffb, - (q31_t)0x6335a24f, (q31_t)0xaf1ee12e, - (q31_t)0x6331a9d4, (q31_t)0xaf1a0293, (q31_t)0x632db11c, (q31_t)0xaf15242a, (q31_t)0x6329b827, (q31_t)0xaf1045f3, - (q31_t)0x6325bef5, (q31_t)0xaf0b67ed, - (q31_t)0x6321c585, (q31_t)0xaf068a1a, (q31_t)0x631dcbd9, (q31_t)0xaf01ac78, (q31_t)0x6319d1ef, (q31_t)0xaefccf09, - (q31_t)0x6315d7c8, (q31_t)0xaef7f1cb, - (q31_t)0x6311dd64, (q31_t)0xaef314c0, (q31_t)0x630de2c3, (q31_t)0xaeee37e6, (q31_t)0x6309e7e4, (q31_t)0xaee95b3f, - (q31_t)0x6305ecc9, (q31_t)0xaee47ec9, - (q31_t)0x6301f171, (q31_t)0xaedfa285, (q31_t)0x62fdf5db, (q31_t)0xaedac674, (q31_t)0x62f9fa09, (q31_t)0xaed5ea95, - (q31_t)0x62f5fdf9, (q31_t)0xaed10ee7, - (q31_t)0x62f201ac, (q31_t)0xaecc336c, (q31_t)0x62ee0523, (q31_t)0xaec75823, (q31_t)0x62ea085c, (q31_t)0xaec27d0c, - (q31_t)0x62e60b58, (q31_t)0xaebda227, - (q31_t)0x62e20e17, (q31_t)0xaeb8c774, (q31_t)0x62de109a, (q31_t)0xaeb3ecf3, (q31_t)0x62da12df, (q31_t)0xaeaf12a4, - (q31_t)0x62d614e7, (q31_t)0xaeaa3888, - (q31_t)0x62d216b3, (q31_t)0xaea55e9e, (q31_t)0x62ce1841, (q31_t)0xaea084e6, (q31_t)0x62ca1992, (q31_t)0xae9bab60, - (q31_t)0x62c61aa7, (q31_t)0xae96d20c, - (q31_t)0x62c21b7e, (q31_t)0xae91f8eb, (q31_t)0x62be1c19, (q31_t)0xae8d1ffb, (q31_t)0x62ba1c77, (q31_t)0xae88473e, - (q31_t)0x62b61c98, (q31_t)0xae836eb4, - (q31_t)0x62b21c7b, (q31_t)0xae7e965b, (q31_t)0x62ae1c23, (q31_t)0xae79be35, (q31_t)0x62aa1b8d, (q31_t)0xae74e641, - (q31_t)0x62a61aba, (q31_t)0xae700e80, - (q31_t)0x62a219aa, (q31_t)0xae6b36f0, (q31_t)0x629e185e, (q31_t)0xae665f93, (q31_t)0x629a16d5, (q31_t)0xae618869, - (q31_t)0x6296150f, (q31_t)0xae5cb171, - (q31_t)0x6292130c, (q31_t)0xae57daab, (q31_t)0x628e10cc, (q31_t)0xae530417, (q31_t)0x628a0e50, (q31_t)0xae4e2db6, - (q31_t)0x62860b97, (q31_t)0xae495787, - (q31_t)0x628208a1, (q31_t)0xae44818b, (q31_t)0x627e056e, (q31_t)0xae3fabc1, (q31_t)0x627a01fe, (q31_t)0xae3ad629, - (q31_t)0x6275fe52, (q31_t)0xae3600c4, - (q31_t)0x6271fa69, (q31_t)0xae312b92, (q31_t)0x626df643, (q31_t)0xae2c5691, (q31_t)0x6269f1e1, (q31_t)0xae2781c4, - (q31_t)0x6265ed42, (q31_t)0xae22ad29, - (q31_t)0x6261e866, (q31_t)0xae1dd8c0, (q31_t)0x625de34e, (q31_t)0xae19048a, (q31_t)0x6259ddf8, (q31_t)0xae143086, - (q31_t)0x6255d866, (q31_t)0xae0f5cb5, - (q31_t)0x6251d298, (q31_t)0xae0a8916, (q31_t)0x624dcc8d, (q31_t)0xae05b5aa, (q31_t)0x6249c645, (q31_t)0xae00e271, - (q31_t)0x6245bfc0, (q31_t)0xadfc0f6a, - (q31_t)0x6241b8ff, (q31_t)0xadf73c96, (q31_t)0x623db202, (q31_t)0xadf269f4, (q31_t)0x6239aac7, (q31_t)0xaded9785, - (q31_t)0x6235a351, (q31_t)0xade8c548, - (q31_t)0x62319b9d, (q31_t)0xade3f33e, (q31_t)0x622d93ad, (q31_t)0xaddf2167, (q31_t)0x62298b81, (q31_t)0xadda4fc3, - (q31_t)0x62258317, (q31_t)0xadd57e51, - (q31_t)0x62217a72, (q31_t)0xadd0ad12, (q31_t)0x621d7190, (q31_t)0xadcbdc05, (q31_t)0x62196871, (q31_t)0xadc70b2c, - (q31_t)0x62155f16, (q31_t)0xadc23a85, - (q31_t)0x6211557e, (q31_t)0xadbd6a10, (q31_t)0x620d4baa, (q31_t)0xadb899cf, (q31_t)0x62094199, (q31_t)0xadb3c9c0, - (q31_t)0x6205374c, (q31_t)0xadaef9e4, - (q31_t)0x62012cc2, (q31_t)0xadaa2a3b, (q31_t)0x61fd21fc, (q31_t)0xada55ac4, (q31_t)0x61f916f9, (q31_t)0xada08b80, - (q31_t)0x61f50bba, (q31_t)0xad9bbc70, - (q31_t)0x61f1003f, (q31_t)0xad96ed92, (q31_t)0x61ecf487, (q31_t)0xad921ee6, (q31_t)0x61e8e893, (q31_t)0xad8d506e, - (q31_t)0x61e4dc62, (q31_t)0xad888229, - (q31_t)0x61e0cff5, (q31_t)0xad83b416, (q31_t)0x61dcc34c, (q31_t)0xad7ee636, (q31_t)0x61d8b666, (q31_t)0xad7a1889, - (q31_t)0x61d4a944, (q31_t)0xad754b0f, - (q31_t)0x61d09be5, (q31_t)0xad707dc8, (q31_t)0x61cc8e4b, (q31_t)0xad6bb0b4, (q31_t)0x61c88074, (q31_t)0xad66e3d3, - (q31_t)0x61c47260, (q31_t)0xad621725, - (q31_t)0x61c06410, (q31_t)0xad5d4aaa, (q31_t)0x61bc5584, (q31_t)0xad587e61, (q31_t)0x61b846bc, (q31_t)0xad53b24c, - (q31_t)0x61b437b7, (q31_t)0xad4ee66a, - (q31_t)0x61b02876, (q31_t)0xad4a1aba, (q31_t)0x61ac18f9, (q31_t)0xad454f3e, (q31_t)0x61a80940, (q31_t)0xad4083f5, - (q31_t)0x61a3f94a, (q31_t)0xad3bb8df, - (q31_t)0x619fe918, (q31_t)0xad36edfc, (q31_t)0x619bd8aa, (q31_t)0xad32234b, (q31_t)0x6197c800, (q31_t)0xad2d58ce, - (q31_t)0x6193b719, (q31_t)0xad288e85, - (q31_t)0x618fa5f7, (q31_t)0xad23c46e, (q31_t)0x618b9498, (q31_t)0xad1efa8a, (q31_t)0x618782fd, (q31_t)0xad1a30d9, - (q31_t)0x61837126, (q31_t)0xad15675c, - (q31_t)0x617f5f12, (q31_t)0xad109e12, (q31_t)0x617b4cc3, (q31_t)0xad0bd4fb, (q31_t)0x61773a37, (q31_t)0xad070c17, - (q31_t)0x61732770, (q31_t)0xad024366, - (q31_t)0x616f146c, (q31_t)0xacfd7ae8, (q31_t)0x616b012c, (q31_t)0xacf8b29e, (q31_t)0x6166edb0, (q31_t)0xacf3ea87, - (q31_t)0x6162d9f8, (q31_t)0xacef22a3, - (q31_t)0x615ec603, (q31_t)0xacea5af2, (q31_t)0x615ab1d3, (q31_t)0xace59375, (q31_t)0x61569d67, (q31_t)0xace0cc2b, - (q31_t)0x615288be, (q31_t)0xacdc0514, - (q31_t)0x614e73da, (q31_t)0xacd73e30, (q31_t)0x614a5eba, (q31_t)0xacd27780, (q31_t)0x6146495d, (q31_t)0xaccdb103, - (q31_t)0x614233c5, (q31_t)0xacc8eab9, - (q31_t)0x613e1df0, (q31_t)0xacc424a3, (q31_t)0x613a07e0, (q31_t)0xacbf5ec0, (q31_t)0x6135f193, (q31_t)0xacba9910, - (q31_t)0x6131db0b, (q31_t)0xacb5d394, - (q31_t)0x612dc447, (q31_t)0xacb10e4b, (q31_t)0x6129ad46, (q31_t)0xacac4935, (q31_t)0x6125960a, (q31_t)0xaca78453, - (q31_t)0x61217e92, (q31_t)0xaca2bfa4, - (q31_t)0x611d66de, (q31_t)0xac9dfb29, (q31_t)0x61194eee, (q31_t)0xac9936e1, (q31_t)0x611536c2, (q31_t)0xac9472cd, - (q31_t)0x61111e5b, (q31_t)0xac8faeec, - (q31_t)0x610d05b7, (q31_t)0xac8aeb3e, (q31_t)0x6108ecd8, (q31_t)0xac8627c4, (q31_t)0x6104d3bc, (q31_t)0xac81647e, - (q31_t)0x6100ba65, (q31_t)0xac7ca16b, - (q31_t)0x60fca0d2, (q31_t)0xac77de8b, (q31_t)0x60f88703, (q31_t)0xac731bdf, (q31_t)0x60f46cf9, (q31_t)0xac6e5967, - (q31_t)0x60f052b2, (q31_t)0xac699722, - (q31_t)0x60ec3830, (q31_t)0xac64d510, (q31_t)0x60e81d72, (q31_t)0xac601333, (q31_t)0x60e40278, (q31_t)0xac5b5189, - (q31_t)0x60dfe743, (q31_t)0xac569012, - (q31_t)0x60dbcbd1, (q31_t)0xac51cecf, (q31_t)0x60d7b024, (q31_t)0xac4d0dc0, (q31_t)0x60d3943b, (q31_t)0xac484ce4, - (q31_t)0x60cf7817, (q31_t)0xac438c3c, - (q31_t)0x60cb5bb7, (q31_t)0xac3ecbc7, (q31_t)0x60c73f1b, (q31_t)0xac3a0b87, (q31_t)0x60c32243, (q31_t)0xac354b7a, - (q31_t)0x60bf0530, (q31_t)0xac308ba0, - (q31_t)0x60bae7e1, (q31_t)0xac2bcbfa, (q31_t)0x60b6ca56, (q31_t)0xac270c88, (q31_t)0x60b2ac8f, (q31_t)0xac224d4a, - (q31_t)0x60ae8e8d, (q31_t)0xac1d8e40, - (q31_t)0x60aa7050, (q31_t)0xac18cf69, (q31_t)0x60a651d7, (q31_t)0xac1410c6, (q31_t)0x60a23322, (q31_t)0xac0f5256, - (q31_t)0x609e1431, (q31_t)0xac0a941b, - (q31_t)0x6099f505, (q31_t)0xac05d613, (q31_t)0x6095d59d, (q31_t)0xac01183f, (q31_t)0x6091b5fa, (q31_t)0xabfc5a9f, - (q31_t)0x608d961b, (q31_t)0xabf79d33, - (q31_t)0x60897601, (q31_t)0xabf2dffb, (q31_t)0x608555ab, (q31_t)0xabee22f6, (q31_t)0x60813519, (q31_t)0xabe96625, - (q31_t)0x607d144c, (q31_t)0xabe4a988, - (q31_t)0x6078f344, (q31_t)0xabdfed1f, (q31_t)0x6074d200, (q31_t)0xabdb30ea, (q31_t)0x6070b080, (q31_t)0xabd674e9, - (q31_t)0x606c8ec5, (q31_t)0xabd1b91c, - (q31_t)0x60686ccf, (q31_t)0xabccfd83, (q31_t)0x60644a9d, (q31_t)0xabc8421d, (q31_t)0x6060282f, (q31_t)0xabc386ec, - (q31_t)0x605c0587, (q31_t)0xabbecbee, - (q31_t)0x6057e2a2, (q31_t)0xabba1125, (q31_t)0x6053bf82, (q31_t)0xabb5568f, (q31_t)0x604f9c27, (q31_t)0xabb09c2e, - (q31_t)0x604b7891, (q31_t)0xababe200, - (q31_t)0x604754bf, (q31_t)0xaba72807, (q31_t)0x604330b1, (q31_t)0xaba26e41, (q31_t)0x603f0c69, (q31_t)0xab9db4b0, - (q31_t)0x603ae7e5, (q31_t)0xab98fb52, - (q31_t)0x6036c325, (q31_t)0xab944229, (q31_t)0x60329e2a, (q31_t)0xab8f8934, (q31_t)0x602e78f4, (q31_t)0xab8ad073, - (q31_t)0x602a5383, (q31_t)0xab8617e6, - (q31_t)0x60262dd6, (q31_t)0xab815f8d, (q31_t)0x602207ee, (q31_t)0xab7ca768, (q31_t)0x601de1ca, (q31_t)0xab77ef77, - (q31_t)0x6019bb6b, (q31_t)0xab7337bb, - (q31_t)0x601594d1, (q31_t)0xab6e8032, (q31_t)0x60116dfc, (q31_t)0xab69c8de, (q31_t)0x600d46ec, (q31_t)0xab6511be, - (q31_t)0x60091fa0, (q31_t)0xab605ad2, - (q31_t)0x6004f819, (q31_t)0xab5ba41a, (q31_t)0x6000d057, (q31_t)0xab56ed97, (q31_t)0x5ffca859, (q31_t)0xab523748, - (q31_t)0x5ff88021, (q31_t)0xab4d812d, - (q31_t)0x5ff457ad, (q31_t)0xab48cb46, (q31_t)0x5ff02efe, (q31_t)0xab441593, (q31_t)0x5fec0613, (q31_t)0xab3f6015, - (q31_t)0x5fe7dcee, (q31_t)0xab3aaacb, - (q31_t)0x5fe3b38d, (q31_t)0xab35f5b5, (q31_t)0x5fdf89f2, (q31_t)0xab3140d4, (q31_t)0x5fdb601b, (q31_t)0xab2c8c27, - (q31_t)0x5fd73609, (q31_t)0xab27d7ae, - (q31_t)0x5fd30bbc, (q31_t)0xab23236a, (q31_t)0x5fcee133, (q31_t)0xab1e6f5a, (q31_t)0x5fcab670, (q31_t)0xab19bb7e, - (q31_t)0x5fc68b72, (q31_t)0xab1507d7, - (q31_t)0x5fc26038, (q31_t)0xab105464, (q31_t)0x5fbe34c4, (q31_t)0xab0ba125, (q31_t)0x5fba0914, (q31_t)0xab06ee1b, - (q31_t)0x5fb5dd29, (q31_t)0xab023b46, - (q31_t)0x5fb1b104, (q31_t)0xaafd88a4, (q31_t)0x5fad84a3, (q31_t)0xaaf8d637, (q31_t)0x5fa95807, (q31_t)0xaaf423ff, - (q31_t)0x5fa52b31, (q31_t)0xaaef71fb, - (q31_t)0x5fa0fe1f, (q31_t)0xaaeac02c, (q31_t)0x5f9cd0d2, (q31_t)0xaae60e91, (q31_t)0x5f98a34a, (q31_t)0xaae15d2a, - (q31_t)0x5f947588, (q31_t)0xaadcabf8, - (q31_t)0x5f90478a, (q31_t)0xaad7fafb, (q31_t)0x5f8c1951, (q31_t)0xaad34a32, (q31_t)0x5f87eade, (q31_t)0xaace999d, - (q31_t)0x5f83bc2f, (q31_t)0xaac9e93e, - (q31_t)0x5f7f8d46, (q31_t)0xaac53912, (q31_t)0x5f7b5e22, (q31_t)0xaac0891c, (q31_t)0x5f772ec2, (q31_t)0xaabbd959, - (q31_t)0x5f72ff28, (q31_t)0xaab729cc, - (q31_t)0x5f6ecf53, (q31_t)0xaab27a73, (q31_t)0x5f6a9f44, (q31_t)0xaaadcb4f, (q31_t)0x5f666ef9, (q31_t)0xaaa91c5f, - (q31_t)0x5f623e73, (q31_t)0xaaa46da4, - (q31_t)0x5f5e0db3, (q31_t)0xaa9fbf1e, (q31_t)0x5f59dcb8, (q31_t)0xaa9b10cc, (q31_t)0x5f55ab82, (q31_t)0xaa9662af, - (q31_t)0x5f517a11, (q31_t)0xaa91b4c7, - (q31_t)0x5f4d4865, (q31_t)0xaa8d0713, (q31_t)0x5f49167f, (q31_t)0xaa885994, (q31_t)0x5f44e45e, (q31_t)0xaa83ac4a, - (q31_t)0x5f40b202, (q31_t)0xaa7eff34, - (q31_t)0x5f3c7f6b, (q31_t)0xaa7a5253, (q31_t)0x5f384c9a, (q31_t)0xaa75a5a8, (q31_t)0x5f34198e, (q31_t)0xaa70f930, - (q31_t)0x5f2fe647, (q31_t)0xaa6c4cee, - (q31_t)0x5f2bb2c5, (q31_t)0xaa67a0e0, (q31_t)0x5f277f09, (q31_t)0xaa62f507, (q31_t)0x5f234b12, (q31_t)0xaa5e4963, - (q31_t)0x5f1f16e0, (q31_t)0xaa599df4, - (q31_t)0x5f1ae274, (q31_t)0xaa54f2ba, (q31_t)0x5f16adcc, (q31_t)0xaa5047b4, (q31_t)0x5f1278eb, (q31_t)0xaa4b9ce3, - (q31_t)0x5f0e43ce, (q31_t)0xaa46f248, - (q31_t)0x5f0a0e77, (q31_t)0xaa4247e1, (q31_t)0x5f05d8e6, (q31_t)0xaa3d9daf, (q31_t)0x5f01a31a, (q31_t)0xaa38f3b1, - (q31_t)0x5efd6d13, (q31_t)0xaa3449e9, - (q31_t)0x5ef936d1, (q31_t)0xaa2fa056, (q31_t)0x5ef50055, (q31_t)0xaa2af6f7, (q31_t)0x5ef0c99f, (q31_t)0xaa264dce, - (q31_t)0x5eec92ae, (q31_t)0xaa21a4d9, - (q31_t)0x5ee85b82, (q31_t)0xaa1cfc1a, (q31_t)0x5ee4241c, (q31_t)0xaa18538f, (q31_t)0x5edfec7b, (q31_t)0xaa13ab3a, - (q31_t)0x5edbb49f, (q31_t)0xaa0f0319, - (q31_t)0x5ed77c8a, (q31_t)0xaa0a5b2e, (q31_t)0x5ed34439, (q31_t)0xaa05b377, (q31_t)0x5ecf0baf, (q31_t)0xaa010bf6, - (q31_t)0x5ecad2e9, (q31_t)0xa9fc64a9, - (q31_t)0x5ec699e9, (q31_t)0xa9f7bd92, (q31_t)0x5ec260af, (q31_t)0xa9f316b0, (q31_t)0x5ebe273b, (q31_t)0xa9ee7002, - (q31_t)0x5eb9ed8b, (q31_t)0xa9e9c98a, - (q31_t)0x5eb5b3a2, (q31_t)0xa9e52347, (q31_t)0x5eb1797e, (q31_t)0xa9e07d39, (q31_t)0x5ead3f1f, (q31_t)0xa9dbd761, - (q31_t)0x5ea90487, (q31_t)0xa9d731bd, - (q31_t)0x5ea4c9b3, (q31_t)0xa9d28c4e, (q31_t)0x5ea08ea6, (q31_t)0xa9cde715, (q31_t)0x5e9c535e, (q31_t)0xa9c94211, - (q31_t)0x5e9817dc, (q31_t)0xa9c49d42, - (q31_t)0x5e93dc1f, (q31_t)0xa9bff8a8, (q31_t)0x5e8fa028, (q31_t)0xa9bb5444, (q31_t)0x5e8b63f7, (q31_t)0xa9b6b014, - (q31_t)0x5e87278b, (q31_t)0xa9b20c1a, - (q31_t)0x5e82eae5, (q31_t)0xa9ad6855, (q31_t)0x5e7eae05, (q31_t)0xa9a8c4c5, (q31_t)0x5e7a70ea, (q31_t)0xa9a4216b, - (q31_t)0x5e763395, (q31_t)0xa99f7e46, - (q31_t)0x5e71f606, (q31_t)0xa99adb56, (q31_t)0x5e6db83d, (q31_t)0xa996389b, (q31_t)0x5e697a39, (q31_t)0xa9919616, - (q31_t)0x5e653bfc, (q31_t)0xa98cf3c6, - (q31_t)0x5e60fd84, (q31_t)0xa98851ac, (q31_t)0x5e5cbed1, (q31_t)0xa983afc6, (q31_t)0x5e587fe5, (q31_t)0xa97f0e16, - (q31_t)0x5e5440be, (q31_t)0xa97a6c9c, - (q31_t)0x5e50015d, (q31_t)0xa975cb57, (q31_t)0x5e4bc1c2, (q31_t)0xa9712a47, (q31_t)0x5e4781ed, (q31_t)0xa96c896c, - (q31_t)0x5e4341de, (q31_t)0xa967e8c7, - (q31_t)0x5e3f0194, (q31_t)0xa9634858, (q31_t)0x5e3ac110, (q31_t)0xa95ea81d, (q31_t)0x5e368053, (q31_t)0xa95a0819, - (q31_t)0x5e323f5b, (q31_t)0xa9556849, - (q31_t)0x5e2dfe29, (q31_t)0xa950c8b0, (q31_t)0x5e29bcbd, (q31_t)0xa94c294b, (q31_t)0x5e257b17, (q31_t)0xa9478a1c, - (q31_t)0x5e213936, (q31_t)0xa942eb23, - (q31_t)0x5e1cf71c, (q31_t)0xa93e4c5f, (q31_t)0x5e18b4c8, (q31_t)0xa939add1, (q31_t)0x5e147239, (q31_t)0xa9350f78, - (q31_t)0x5e102f71, (q31_t)0xa9307155, - (q31_t)0x5e0bec6e, (q31_t)0xa92bd367, (q31_t)0x5e07a932, (q31_t)0xa92735af, (q31_t)0x5e0365bb, (q31_t)0xa922982c, - (q31_t)0x5dff220b, (q31_t)0xa91dfadf, - (q31_t)0x5dfade20, (q31_t)0xa9195dc7, (q31_t)0x5df699fc, (q31_t)0xa914c0e6, (q31_t)0x5df2559e, (q31_t)0xa9102439, - (q31_t)0x5dee1105, (q31_t)0xa90b87c3, - (q31_t)0x5de9cc33, (q31_t)0xa906eb82, (q31_t)0x5de58727, (q31_t)0xa9024f76, (q31_t)0x5de141e1, (q31_t)0xa8fdb3a1, - (q31_t)0x5ddcfc61, (q31_t)0xa8f91801, - (q31_t)0x5dd8b6a7, (q31_t)0xa8f47c97, (q31_t)0x5dd470b3, (q31_t)0xa8efe162, (q31_t)0x5dd02a85, (q31_t)0xa8eb4663, - (q31_t)0x5dcbe41d, (q31_t)0xa8e6ab9a, - (q31_t)0x5dc79d7c, (q31_t)0xa8e21106, (q31_t)0x5dc356a1, (q31_t)0xa8dd76a9, (q31_t)0x5dbf0f8c, (q31_t)0xa8d8dc81, - (q31_t)0x5dbac83d, (q31_t)0xa8d4428f, - (q31_t)0x5db680b4, (q31_t)0xa8cfa8d2, (q31_t)0x5db238f1, (q31_t)0xa8cb0f4b, (q31_t)0x5dadf0f5, (q31_t)0xa8c675fb, - (q31_t)0x5da9a8bf, (q31_t)0xa8c1dce0, - (q31_t)0x5da5604f, (q31_t)0xa8bd43fa, (q31_t)0x5da117a5, (q31_t)0xa8b8ab4b, (q31_t)0x5d9ccec2, (q31_t)0xa8b412d1, - (q31_t)0x5d9885a5, (q31_t)0xa8af7a8e, - (q31_t)0x5d943c4e, (q31_t)0xa8aae280, (q31_t)0x5d8ff2bd, (q31_t)0xa8a64aa8, (q31_t)0x5d8ba8f3, (q31_t)0xa8a1b306, - (q31_t)0x5d875eef, (q31_t)0xa89d1b99, - (q31_t)0x5d8314b1, (q31_t)0xa8988463, (q31_t)0x5d7eca39, (q31_t)0xa893ed63, (q31_t)0x5d7a7f88, (q31_t)0xa88f5698, - (q31_t)0x5d76349d, (q31_t)0xa88ac004, - (q31_t)0x5d71e979, (q31_t)0xa88629a5, (q31_t)0x5d6d9e1b, (q31_t)0xa881937c, (q31_t)0x5d695283, (q31_t)0xa87cfd8a, - (q31_t)0x5d6506b2, (q31_t)0xa87867cd, - (q31_t)0x5d60baa7, (q31_t)0xa873d246, (q31_t)0x5d5c6e62, (q31_t)0xa86f3cf6, (q31_t)0x5d5821e4, (q31_t)0xa86aa7db, - (q31_t)0x5d53d52d, (q31_t)0xa86612f6, - (q31_t)0x5d4f883b, (q31_t)0xa8617e48, (q31_t)0x5d4b3b10, (q31_t)0xa85ce9cf, (q31_t)0x5d46edac, (q31_t)0xa858558d, - (q31_t)0x5d42a00e, (q31_t)0xa853c180, - (q31_t)0x5d3e5237, (q31_t)0xa84f2daa, (q31_t)0x5d3a0426, (q31_t)0xa84a9a0a, (q31_t)0x5d35b5db, (q31_t)0xa84606a0, - (q31_t)0x5d316757, (q31_t)0xa841736c, - (q31_t)0x5d2d189a, (q31_t)0xa83ce06e, (q31_t)0x5d28c9a3, (q31_t)0xa8384da6, (q31_t)0x5d247a72, (q31_t)0xa833bb14, - (q31_t)0x5d202b09, (q31_t)0xa82f28b9, - (q31_t)0x5d1bdb65, (q31_t)0xa82a9693, (q31_t)0x5d178b89, (q31_t)0xa82604a4, (q31_t)0x5d133b72, (q31_t)0xa82172eb, - (q31_t)0x5d0eeb23, (q31_t)0xa81ce169, - (q31_t)0x5d0a9a9a, (q31_t)0xa818501c, (q31_t)0x5d0649d7, (q31_t)0xa813bf06, (q31_t)0x5d01f8dc, (q31_t)0xa80f2e26, - (q31_t)0x5cfda7a7, (q31_t)0xa80a9d7c, - (q31_t)0x5cf95638, (q31_t)0xa8060d08, (q31_t)0x5cf50490, (q31_t)0xa8017ccb, (q31_t)0x5cf0b2af, (q31_t)0xa7fcecc4, - (q31_t)0x5cec6095, (q31_t)0xa7f85cf3, - (q31_t)0x5ce80e41, (q31_t)0xa7f3cd59, (q31_t)0x5ce3bbb4, (q31_t)0xa7ef3df5, (q31_t)0x5cdf68ed, (q31_t)0xa7eaaec7, - (q31_t)0x5cdb15ed, (q31_t)0xa7e61fd0, - (q31_t)0x5cd6c2b5, (q31_t)0xa7e1910f, (q31_t)0x5cd26f42, (q31_t)0xa7dd0284, (q31_t)0x5cce1b97, (q31_t)0xa7d8742f, - (q31_t)0x5cc9c7b2, (q31_t)0xa7d3e611, - (q31_t)0x5cc57394, (q31_t)0xa7cf582a, (q31_t)0x5cc11f3d, (q31_t)0xa7caca79, (q31_t)0x5cbccaac, (q31_t)0xa7c63cfe, - (q31_t)0x5cb875e3, (q31_t)0xa7c1afb9, - (q31_t)0x5cb420e0, (q31_t)0xa7bd22ac, (q31_t)0x5cafcba4, (q31_t)0xa7b895d4, (q31_t)0x5cab762f, (q31_t)0xa7b40933, - (q31_t)0x5ca72080, (q31_t)0xa7af7cc8, - (q31_t)0x5ca2ca99, (q31_t)0xa7aaf094, (q31_t)0x5c9e7478, (q31_t)0xa7a66497, (q31_t)0x5c9a1e1e, (q31_t)0xa7a1d8d0, - (q31_t)0x5c95c78b, (q31_t)0xa79d4d3f, - (q31_t)0x5c9170bf, (q31_t)0xa798c1e5, (q31_t)0x5c8d19ba, (q31_t)0xa79436c1, (q31_t)0x5c88c27c, (q31_t)0xa78fabd4, - (q31_t)0x5c846b05, (q31_t)0xa78b211e, - (q31_t)0x5c801354, (q31_t)0xa786969e, (q31_t)0x5c7bbb6b, (q31_t)0xa7820c55, (q31_t)0x5c776348, (q31_t)0xa77d8242, - (q31_t)0x5c730aed, (q31_t)0xa778f866, - (q31_t)0x5c6eb258, (q31_t)0xa7746ec0, (q31_t)0x5c6a598b, (q31_t)0xa76fe551, (q31_t)0x5c660084, (q31_t)0xa76b5c19, - (q31_t)0x5c61a745, (q31_t)0xa766d317, - (q31_t)0x5c5d4dcc, (q31_t)0xa7624a4d, (q31_t)0x5c58f41a, (q31_t)0xa75dc1b8, (q31_t)0x5c549a30, (q31_t)0xa759395b, - (q31_t)0x5c50400d, (q31_t)0xa754b134, - (q31_t)0x5c4be5b0, (q31_t)0xa7502943, (q31_t)0x5c478b1b, (q31_t)0xa74ba18a, (q31_t)0x5c43304d, (q31_t)0xa7471a07, - (q31_t)0x5c3ed545, (q31_t)0xa74292bb, - (q31_t)0x5c3a7a05, (q31_t)0xa73e0ba5, (q31_t)0x5c361e8c, (q31_t)0xa73984c7, (q31_t)0x5c31c2db, (q31_t)0xa734fe1f, - (q31_t)0x5c2d66f0, (q31_t)0xa73077ae, - (q31_t)0x5c290acc, (q31_t)0xa72bf174, (q31_t)0x5c24ae70, (q31_t)0xa7276b70, (q31_t)0x5c2051db, (q31_t)0xa722e5a3, - (q31_t)0x5c1bf50d, (q31_t)0xa71e600d, - (q31_t)0x5c179806, (q31_t)0xa719daae, (q31_t)0x5c133ac6, (q31_t)0xa7155586, (q31_t)0x5c0edd4e, (q31_t)0xa710d095, - (q31_t)0x5c0a7f9c, (q31_t)0xa70c4bda, - (q31_t)0x5c0621b2, (q31_t)0xa707c757, (q31_t)0x5c01c38f, (q31_t)0xa703430a, (q31_t)0x5bfd6534, (q31_t)0xa6febef4, - (q31_t)0x5bf906a0, (q31_t)0xa6fa3b15, - (q31_t)0x5bf4a7d2, (q31_t)0xa6f5b76d, (q31_t)0x5bf048cd, (q31_t)0xa6f133fc, (q31_t)0x5bebe98e, (q31_t)0xa6ecb0c2, - (q31_t)0x5be78a17, (q31_t)0xa6e82dbe, - (q31_t)0x5be32a67, (q31_t)0xa6e3aaf2, (q31_t)0x5bdeca7f, (q31_t)0xa6df285d, (q31_t)0x5bda6a5d, (q31_t)0xa6daa5fe, - (q31_t)0x5bd60a03, (q31_t)0xa6d623d7, - (q31_t)0x5bd1a971, (q31_t)0xa6d1a1e7, (q31_t)0x5bcd48a6, (q31_t)0xa6cd202d, (q31_t)0x5bc8e7a2, (q31_t)0xa6c89eab, - (q31_t)0x5bc48666, (q31_t)0xa6c41d60, - (q31_t)0x5bc024f0, (q31_t)0xa6bf9c4b, (q31_t)0x5bbbc343, (q31_t)0xa6bb1b6e, (q31_t)0x5bb7615d, (q31_t)0xa6b69ac8, - (q31_t)0x5bb2ff3e, (q31_t)0xa6b21a59, - (q31_t)0x5bae9ce7, (q31_t)0xa6ad9a21, (q31_t)0x5baa3a57, (q31_t)0xa6a91a20, (q31_t)0x5ba5d78e, (q31_t)0xa6a49a56, - (q31_t)0x5ba1748d, (q31_t)0xa6a01ac4, - (q31_t)0x5b9d1154, (q31_t)0xa69b9b68, (q31_t)0x5b98ade2, (q31_t)0xa6971c44, (q31_t)0x5b944a37, (q31_t)0xa6929d57, - (q31_t)0x5b8fe654, (q31_t)0xa68e1ea1, - (q31_t)0x5b8b8239, (q31_t)0xa689a022, (q31_t)0x5b871de5, (q31_t)0xa68521da, (q31_t)0x5b82b958, (q31_t)0xa680a3ca, - (q31_t)0x5b7e5493, (q31_t)0xa67c25f0, - (q31_t)0x5b79ef96, (q31_t)0xa677a84e, (q31_t)0x5b758a60, (q31_t)0xa6732ae3, (q31_t)0x5b7124f2, (q31_t)0xa66eadb0, - (q31_t)0x5b6cbf4c, (q31_t)0xa66a30b3, - (q31_t)0x5b68596d, (q31_t)0xa665b3ee, (q31_t)0x5b63f355, (q31_t)0xa6613760, (q31_t)0x5b5f8d06, (q31_t)0xa65cbb0a, - (q31_t)0x5b5b267e, (q31_t)0xa6583eeb, - (q31_t)0x5b56bfbd, (q31_t)0xa653c303, (q31_t)0x5b5258c4, (q31_t)0xa64f4752, (q31_t)0x5b4df193, (q31_t)0xa64acbd9, - (q31_t)0x5b498a2a, (q31_t)0xa6465097, - (q31_t)0x5b452288, (q31_t)0xa641d58c, (q31_t)0x5b40baae, (q31_t)0xa63d5ab9, (q31_t)0x5b3c529c, (q31_t)0xa638e01d, - (q31_t)0x5b37ea51, (q31_t)0xa63465b9, - (q31_t)0x5b3381ce, (q31_t)0xa62feb8b, (q31_t)0x5b2f1913, (q31_t)0xa62b7196, (q31_t)0x5b2ab020, (q31_t)0xa626f7d7, - (q31_t)0x5b2646f4, (q31_t)0xa6227e50, - (q31_t)0x5b21dd90, (q31_t)0xa61e0501, (q31_t)0x5b1d73f4, (q31_t)0xa6198be9, (q31_t)0x5b190a20, (q31_t)0xa6151308, - (q31_t)0x5b14a014, (q31_t)0xa6109a5f, - (q31_t)0x5b1035cf, (q31_t)0xa60c21ee, (q31_t)0x5b0bcb52, (q31_t)0xa607a9b4, (q31_t)0x5b07609d, (q31_t)0xa60331b1, - (q31_t)0x5b02f5b0, (q31_t)0xa5feb9e6, - (q31_t)0x5afe8a8b, (q31_t)0xa5fa4252, (q31_t)0x5afa1f2e, (q31_t)0xa5f5caf6, (q31_t)0x5af5b398, (q31_t)0xa5f153d2, - (q31_t)0x5af147ca, (q31_t)0xa5ecdce5, - (q31_t)0x5aecdbc5, (q31_t)0xa5e8662f, (q31_t)0x5ae86f87, (q31_t)0xa5e3efb1, (q31_t)0x5ae40311, (q31_t)0xa5df796b, - (q31_t)0x5adf9663, (q31_t)0xa5db035c, - (q31_t)0x5adb297d, (q31_t)0xa5d68d85, (q31_t)0x5ad6bc5f, (q31_t)0xa5d217e6, (q31_t)0x5ad24f09, (q31_t)0xa5cda27e, - (q31_t)0x5acde17b, (q31_t)0xa5c92d4e, - (q31_t)0x5ac973b5, (q31_t)0xa5c4b855, (q31_t)0x5ac505b7, (q31_t)0xa5c04395, (q31_t)0x5ac09781, (q31_t)0xa5bbcf0b, - (q31_t)0x5abc2912, (q31_t)0xa5b75aba, - (q31_t)0x5ab7ba6c, (q31_t)0xa5b2e6a0, (q31_t)0x5ab34b8e, (q31_t)0xa5ae72be, (q31_t)0x5aaedc78, (q31_t)0xa5a9ff14, - (q31_t)0x5aaa6d2b, (q31_t)0xa5a58ba1, - (q31_t)0x5aa5fda5, (q31_t)0xa5a11866, (q31_t)0x5aa18de7, (q31_t)0xa59ca563, (q31_t)0x5a9d1df1, (q31_t)0xa5983297, - (q31_t)0x5a98adc4, (q31_t)0xa593c004, - (q31_t)0x5a943d5e, (q31_t)0xa58f4da8, (q31_t)0x5a8fccc1, (q31_t)0xa58adb84, (q31_t)0x5a8b5bec, (q31_t)0xa5866997, - (q31_t)0x5a86eadf, (q31_t)0xa581f7e3, - (q31_t)0x5a82799a, (q31_t)0xa57d8666, (q31_t)0x5a7e081d, (q31_t)0xa5791521, (q31_t)0x5a799669, (q31_t)0xa574a414, - (q31_t)0x5a75247c, (q31_t)0xa570333f, - (q31_t)0x5a70b258, (q31_t)0xa56bc2a2, (q31_t)0x5a6c3ffc, (q31_t)0xa567523c, (q31_t)0x5a67cd69, (q31_t)0xa562e20f, - (q31_t)0x5a635a9d, (q31_t)0xa55e7219, - (q31_t)0x5a5ee79a, (q31_t)0xa55a025b, (q31_t)0x5a5a745f, (q31_t)0xa55592d5, (q31_t)0x5a5600ec, (q31_t)0xa5512388, - (q31_t)0x5a518d42, (q31_t)0xa54cb472, - (q31_t)0x5a4d1960, (q31_t)0xa5484594, (q31_t)0x5a48a546, (q31_t)0xa543d6ee, (q31_t)0x5a4430f5, (q31_t)0xa53f687f, - (q31_t)0x5a3fbc6b, (q31_t)0xa53afa49, - (q31_t)0x5a3b47ab, (q31_t)0xa5368c4b, (q31_t)0x5a36d2b2, (q31_t)0xa5321e85, (q31_t)0x5a325d82, (q31_t)0xa52db0f7, - (q31_t)0x5a2de81a, (q31_t)0xa52943a1, - (q31_t)0x5a29727b, (q31_t)0xa524d683, (q31_t)0x5a24fca4, (q31_t)0xa520699d, (q31_t)0x5a208695, (q31_t)0xa51bfcef, - (q31_t)0x5a1c104f, (q31_t)0xa5179079, - (q31_t)0x5a1799d1, (q31_t)0xa513243b, (q31_t)0x5a13231b, (q31_t)0xa50eb836, (q31_t)0x5a0eac2e, (q31_t)0xa50a4c68, - (q31_t)0x5a0a350a, (q31_t)0xa505e0d2, - (q31_t)0x5a05bdae, (q31_t)0xa5017575, (q31_t)0x5a01461a, (q31_t)0xa4fd0a50, (q31_t)0x59fcce4f, (q31_t)0xa4f89f63, - (q31_t)0x59f8564c, (q31_t)0xa4f434ae, - (q31_t)0x59f3de12, (q31_t)0xa4efca31, (q31_t)0x59ef65a1, (q31_t)0xa4eb5fec, (q31_t)0x59eaecf8, (q31_t)0xa4e6f5e0, - (q31_t)0x59e67417, (q31_t)0xa4e28c0c, - (q31_t)0x59e1faff, (q31_t)0xa4de2270, (q31_t)0x59dd81b0, (q31_t)0xa4d9b90c, (q31_t)0x59d90829, (q31_t)0xa4d54fe0, - (q31_t)0x59d48e6a, (q31_t)0xa4d0e6ed, - (q31_t)0x59d01475, (q31_t)0xa4cc7e32, (q31_t)0x59cb9a47, (q31_t)0xa4c815af, (q31_t)0x59c71fe3, (q31_t)0xa4c3ad64, - (q31_t)0x59c2a547, (q31_t)0xa4bf4552, - (q31_t)0x59be2a74, (q31_t)0xa4badd78, (q31_t)0x59b9af69, (q31_t)0xa4b675d6, (q31_t)0x59b53427, (q31_t)0xa4b20e6d, - (q31_t)0x59b0b8ae, (q31_t)0xa4ada73c, - (q31_t)0x59ac3cfd, (q31_t)0xa4a94043, (q31_t)0x59a7c115, (q31_t)0xa4a4d982, (q31_t)0x59a344f6, (q31_t)0xa4a072fa, - (q31_t)0x599ec8a0, (q31_t)0xa49c0cab, - (q31_t)0x599a4c12, (q31_t)0xa497a693, (q31_t)0x5995cf4d, (q31_t)0xa49340b4, (q31_t)0x59915250, (q31_t)0xa48edb0e, - (q31_t)0x598cd51d, (q31_t)0xa48a75a0, - (q31_t)0x598857b2, (q31_t)0xa486106a, (q31_t)0x5983da10, (q31_t)0xa481ab6d, (q31_t)0x597f5c36, (q31_t)0xa47d46a8, - (q31_t)0x597ade26, (q31_t)0xa478e21b, - (q31_t)0x59765fde, (q31_t)0xa4747dc7, (q31_t)0x5971e15f, (q31_t)0xa47019ac, (q31_t)0x596d62a9, (q31_t)0xa46bb5c9, - (q31_t)0x5968e3bc, (q31_t)0xa467521e, - (q31_t)0x59646498, (q31_t)0xa462eeac, (q31_t)0x595fe53c, (q31_t)0xa45e8b73, (q31_t)0x595b65aa, (q31_t)0xa45a2872, - (q31_t)0x5956e5e0, (q31_t)0xa455c5a9, - (q31_t)0x595265df, (q31_t)0xa4516319, (q31_t)0x594de5a7, (q31_t)0xa44d00c2, (q31_t)0x59496538, (q31_t)0xa4489ea3, - (q31_t)0x5944e492, (q31_t)0xa4443cbd, - (q31_t)0x594063b5, (q31_t)0xa43fdb10, (q31_t)0x593be2a0, (q31_t)0xa43b799a, (q31_t)0x59376155, (q31_t)0xa437185e, - (q31_t)0x5932dfd3, (q31_t)0xa432b75a, - (q31_t)0x592e5e19, (q31_t)0xa42e568f, (q31_t)0x5929dc29, (q31_t)0xa429f5fd, (q31_t)0x59255a02, (q31_t)0xa42595a3, - (q31_t)0x5920d7a3, (q31_t)0xa4213581, - (q31_t)0x591c550e, (q31_t)0xa41cd599, (q31_t)0x5917d242, (q31_t)0xa41875e9, (q31_t)0x59134f3e, (q31_t)0xa4141672, - (q31_t)0x590ecc04, (q31_t)0xa40fb733, - (q31_t)0x590a4893, (q31_t)0xa40b582e, (q31_t)0x5905c4eb, (q31_t)0xa406f960, (q31_t)0x5901410c, (q31_t)0xa4029acc, - (q31_t)0x58fcbcf6, (q31_t)0xa3fe3c71, - (q31_t)0x58f838a9, (q31_t)0xa3f9de4e, (q31_t)0x58f3b426, (q31_t)0xa3f58064, (q31_t)0x58ef2f6b, (q31_t)0xa3f122b2, - (q31_t)0x58eaaa7a, (q31_t)0xa3ecc53a, - (q31_t)0x58e62552, (q31_t)0xa3e867fa, (q31_t)0x58e19ff3, (q31_t)0xa3e40af3, (q31_t)0x58dd1a5d, (q31_t)0xa3dfae25, - (q31_t)0x58d89490, (q31_t)0xa3db5190, - (q31_t)0x58d40e8c, (q31_t)0xa3d6f534, (q31_t)0x58cf8852, (q31_t)0xa3d29910, (q31_t)0x58cb01e1, (q31_t)0xa3ce3d25, - (q31_t)0x58c67b39, (q31_t)0xa3c9e174, - (q31_t)0x58c1f45b, (q31_t)0xa3c585fb, (q31_t)0x58bd6d45, (q31_t)0xa3c12abb, (q31_t)0x58b8e5f9, (q31_t)0xa3bccfb3, - (q31_t)0x58b45e76, (q31_t)0xa3b874e5, - (q31_t)0x58afd6bd, (q31_t)0xa3b41a50, (q31_t)0x58ab4ecc, (q31_t)0xa3afbff3, (q31_t)0x58a6c6a5, (q31_t)0xa3ab65d0, - (q31_t)0x58a23e48, (q31_t)0xa3a70be6, - (q31_t)0x589db5b3, (q31_t)0xa3a2b234, (q31_t)0x58992ce9, (q31_t)0xa39e58bb, (q31_t)0x5894a3e7, (q31_t)0xa399ff7c, - (q31_t)0x58901aaf, (q31_t)0xa395a675, - (q31_t)0x588b9140, (q31_t)0xa3914da8, (q31_t)0x5887079a, (q31_t)0xa38cf513, (q31_t)0x58827dbe, (q31_t)0xa3889cb8, - (q31_t)0x587df3ab, (q31_t)0xa3844495, - (q31_t)0x58796962, (q31_t)0xa37fecac, (q31_t)0x5874dee2, (q31_t)0xa37b94fb, (q31_t)0x5870542c, (q31_t)0xa3773d84, - (q31_t)0x586bc93f, (q31_t)0xa372e646, - (q31_t)0x58673e1b, (q31_t)0xa36e8f41, (q31_t)0x5862b2c1, (q31_t)0xa36a3875, (q31_t)0x585e2730, (q31_t)0xa365e1e2, - (q31_t)0x58599b69, (q31_t)0xa3618b88, - (q31_t)0x58550f6c, (q31_t)0xa35d3567, (q31_t)0x58508338, (q31_t)0xa358df80, (q31_t)0x584bf6cd, (q31_t)0xa35489d1, - (q31_t)0x58476a2c, (q31_t)0xa350345c, - (q31_t)0x5842dd54, (q31_t)0xa34bdf20, (q31_t)0x583e5047, (q31_t)0xa3478a1d, (q31_t)0x5839c302, (q31_t)0xa3433554, - (q31_t)0x58353587, (q31_t)0xa33ee0c3, - (q31_t)0x5830a7d6, (q31_t)0xa33a8c6c, (q31_t)0x582c19ef, (q31_t)0xa336384e, (q31_t)0x58278bd1, (q31_t)0xa331e469, - (q31_t)0x5822fd7c, (q31_t)0xa32d90be, - (q31_t)0x581e6ef1, (q31_t)0xa3293d4b, (q31_t)0x5819e030, (q31_t)0xa324ea13, (q31_t)0x58155139, (q31_t)0xa3209713, - (q31_t)0x5810c20b, (q31_t)0xa31c444c, - (q31_t)0x580c32a7, (q31_t)0xa317f1bf, (q31_t)0x5807a30d, (q31_t)0xa3139f6b, (q31_t)0x5803133c, (q31_t)0xa30f4d51, - (q31_t)0x57fe8335, (q31_t)0xa30afb70, - (q31_t)0x57f9f2f8, (q31_t)0xa306a9c8, (q31_t)0x57f56284, (q31_t)0xa3025859, (q31_t)0x57f0d1da, (q31_t)0xa2fe0724, - (q31_t)0x57ec40fa, (q31_t)0xa2f9b629, - (q31_t)0x57e7afe4, (q31_t)0xa2f56566, (q31_t)0x57e31e97, (q31_t)0xa2f114dd, (q31_t)0x57de8d15, (q31_t)0xa2ecc48e, - (q31_t)0x57d9fb5c, (q31_t)0xa2e87477, - (q31_t)0x57d5696d, (q31_t)0xa2e4249b, (q31_t)0x57d0d747, (q31_t)0xa2dfd4f7, (q31_t)0x57cc44ec, (q31_t)0xa2db858e, - (q31_t)0x57c7b25a, (q31_t)0xa2d7365d, - (q31_t)0x57c31f92, (q31_t)0xa2d2e766, (q31_t)0x57be8c94, (q31_t)0xa2ce98a9, (q31_t)0x57b9f960, (q31_t)0xa2ca4a25, - (q31_t)0x57b565f6, (q31_t)0xa2c5fbda, - (q31_t)0x57b0d256, (q31_t)0xa2c1adc9, (q31_t)0x57ac3e80, (q31_t)0xa2bd5ff2, (q31_t)0x57a7aa73, (q31_t)0xa2b91254, - (q31_t)0x57a31631, (q31_t)0xa2b4c4f0, - (q31_t)0x579e81b8, (q31_t)0xa2b077c5, (q31_t)0x5799ed0a, (q31_t)0xa2ac2ad3, (q31_t)0x57955825, (q31_t)0xa2a7de1c, - (q31_t)0x5790c30a, (q31_t)0xa2a3919e, - (q31_t)0x578c2dba, (q31_t)0xa29f4559, (q31_t)0x57879833, (q31_t)0xa29af94e, (q31_t)0x57830276, (q31_t)0xa296ad7d, - (q31_t)0x577e6c84, (q31_t)0xa29261e5, - (q31_t)0x5779d65b, (q31_t)0xa28e1687, (q31_t)0x57753ffc, (q31_t)0xa289cb63, (q31_t)0x5770a968, (q31_t)0xa2858078, - (q31_t)0x576c129d, (q31_t)0xa28135c7, - (q31_t)0x57677b9d, (q31_t)0xa27ceb4f, (q31_t)0x5762e467, (q31_t)0xa278a111, (q31_t)0x575e4cfa, (q31_t)0xa274570d, - (q31_t)0x5759b558, (q31_t)0xa2700d43, - (q31_t)0x57551d80, (q31_t)0xa26bc3b2, (q31_t)0x57508572, (q31_t)0xa2677a5b, (q31_t)0x574bed2f, (q31_t)0xa263313e, - (q31_t)0x574754b5, (q31_t)0xa25ee85b, - (q31_t)0x5742bc06, (q31_t)0xa25a9fb1, (q31_t)0x573e2320, (q31_t)0xa2565741, (q31_t)0x57398a05, (q31_t)0xa2520f0b, - (q31_t)0x5734f0b5, (q31_t)0xa24dc70f, - (q31_t)0x5730572e, (q31_t)0xa2497f4c, (q31_t)0x572bbd71, (q31_t)0xa24537c3, (q31_t)0x5727237f, (q31_t)0xa240f074, - (q31_t)0x57228957, (q31_t)0xa23ca95f, - (q31_t)0x571deefa, (q31_t)0xa2386284, (q31_t)0x57195466, (q31_t)0xa2341be3, (q31_t)0x5714b99d, (q31_t)0xa22fd57b, - (q31_t)0x57101e9e, (q31_t)0xa22b8f4d, - (q31_t)0x570b8369, (q31_t)0xa2274959, (q31_t)0x5706e7ff, (q31_t)0xa223039f, (q31_t)0x57024c5f, (q31_t)0xa21ebe1f, - (q31_t)0x56fdb08a, (q31_t)0xa21a78d9, - (q31_t)0x56f9147e, (q31_t)0xa21633cd, (q31_t)0x56f4783d, (q31_t)0xa211eefb, (q31_t)0x56efdbc7, (q31_t)0xa20daa62, - (q31_t)0x56eb3f1a, (q31_t)0xa2096604, - (q31_t)0x56e6a239, (q31_t)0xa20521e0, (q31_t)0x56e20521, (q31_t)0xa200ddf5, (q31_t)0x56dd67d4, (q31_t)0xa1fc9a45, - (q31_t)0x56d8ca51, (q31_t)0xa1f856ce, - (q31_t)0x56d42c99, (q31_t)0xa1f41392, (q31_t)0x56cf8eab, (q31_t)0xa1efd08f, (q31_t)0x56caf088, (q31_t)0xa1eb8dc7, - (q31_t)0x56c6522f, (q31_t)0xa1e74b38, - (q31_t)0x56c1b3a1, (q31_t)0xa1e308e4, (q31_t)0x56bd14dd, (q31_t)0xa1dec6ca, (q31_t)0x56b875e4, (q31_t)0xa1da84e9, - (q31_t)0x56b3d6b5, (q31_t)0xa1d64343, - (q31_t)0x56af3750, (q31_t)0xa1d201d7, (q31_t)0x56aa97b7, (q31_t)0xa1cdc0a5, (q31_t)0x56a5f7e7, (q31_t)0xa1c97fad, - (q31_t)0x56a157e3, (q31_t)0xa1c53ef0, - (q31_t)0x569cb7a8, (q31_t)0xa1c0fe6c, (q31_t)0x56981739, (q31_t)0xa1bcbe22, (q31_t)0x56937694, (q31_t)0xa1b87e13, - (q31_t)0x568ed5b9, (q31_t)0xa1b43e3e, - (q31_t)0x568a34a9, (q31_t)0xa1affea3, (q31_t)0x56859364, (q31_t)0xa1abbf42, (q31_t)0x5680f1ea, (q31_t)0xa1a7801b, - (q31_t)0x567c503a, (q31_t)0xa1a3412f, - (q31_t)0x5677ae54, (q31_t)0xa19f027c, (q31_t)0x56730c3a, (q31_t)0xa19ac404, (q31_t)0x566e69ea, (q31_t)0xa19685c7, - (q31_t)0x5669c765, (q31_t)0xa19247c3, - (q31_t)0x566524aa, (q31_t)0xa18e09fa, (q31_t)0x566081ba, (q31_t)0xa189cc6b, (q31_t)0x565bde95, (q31_t)0xa1858f16, - (q31_t)0x56573b3b, (q31_t)0xa18151fb, - (q31_t)0x565297ab, (q31_t)0xa17d151b, (q31_t)0x564df3e6, (q31_t)0xa178d875, (q31_t)0x56494fec, (q31_t)0xa1749c09, - (q31_t)0x5644abbc, (q31_t)0xa1705fd8, - (q31_t)0x56400758, (q31_t)0xa16c23e1, (q31_t)0x563b62be, (q31_t)0xa167e824, (q31_t)0x5636bdef, (q31_t)0xa163aca2, - (q31_t)0x563218eb, (q31_t)0xa15f715a, - (q31_t)0x562d73b2, (q31_t)0xa15b364d, (q31_t)0x5628ce43, (q31_t)0xa156fb79, (q31_t)0x5624289f, (q31_t)0xa152c0e1, - (q31_t)0x561f82c7, (q31_t)0xa14e8682, - (q31_t)0x561adcb9, (q31_t)0xa14a4c5e, (q31_t)0x56163676, (q31_t)0xa1461275, (q31_t)0x56118ffe, (q31_t)0xa141d8c5, - (q31_t)0x560ce950, (q31_t)0xa13d9f51, - (q31_t)0x5608426e, (q31_t)0xa1396617, (q31_t)0x56039b57, (q31_t)0xa1352d17, (q31_t)0x55fef40a, (q31_t)0xa130f451, - (q31_t)0x55fa4c89, (q31_t)0xa12cbbc7, - (q31_t)0x55f5a4d2, (q31_t)0xa1288376, (q31_t)0x55f0fce7, (q31_t)0xa1244b61, (q31_t)0x55ec54c6, (q31_t)0xa1201385, - (q31_t)0x55e7ac71, (q31_t)0xa11bdbe4, - (q31_t)0x55e303e6, (q31_t)0xa117a47e, (q31_t)0x55de5b27, (q31_t)0xa1136d52, (q31_t)0x55d9b232, (q31_t)0xa10f3661, - (q31_t)0x55d50909, (q31_t)0xa10affab, - (q31_t)0x55d05faa, (q31_t)0xa106c92f, (q31_t)0x55cbb617, (q31_t)0xa10292ed, (q31_t)0x55c70c4f, (q31_t)0xa0fe5ce6, - (q31_t)0x55c26251, (q31_t)0xa0fa271a, - (q31_t)0x55bdb81f, (q31_t)0xa0f5f189, (q31_t)0x55b90db8, (q31_t)0xa0f1bc32, (q31_t)0x55b4631d, (q31_t)0xa0ed8715, - (q31_t)0x55afb84c, (q31_t)0xa0e95234, - (q31_t)0x55ab0d46, (q31_t)0xa0e51d8c, (q31_t)0x55a6620c, (q31_t)0xa0e0e920, (q31_t)0x55a1b69d, (q31_t)0xa0dcb4ee, - (q31_t)0x559d0af9, (q31_t)0xa0d880f7, - (q31_t)0x55985f20, (q31_t)0xa0d44d3b, (q31_t)0x5593b312, (q31_t)0xa0d019b9, (q31_t)0x558f06d0, (q31_t)0xa0cbe672, - (q31_t)0x558a5a58, (q31_t)0xa0c7b366, - (q31_t)0x5585adad, (q31_t)0xa0c38095, (q31_t)0x558100cc, (q31_t)0xa0bf4dfe, (q31_t)0x557c53b6, (q31_t)0xa0bb1ba2, - (q31_t)0x5577a66c, (q31_t)0xa0b6e981, - (q31_t)0x5572f8ed, (q31_t)0xa0b2b79b, (q31_t)0x556e4b39, (q31_t)0xa0ae85ef, (q31_t)0x55699d51, (q31_t)0xa0aa547e, - (q31_t)0x5564ef34, (q31_t)0xa0a62348, - (q31_t)0x556040e2, (q31_t)0xa0a1f24d, (q31_t)0x555b925c, (q31_t)0xa09dc18d, (q31_t)0x5556e3a1, (q31_t)0xa0999107, - (q31_t)0x555234b1, (q31_t)0xa09560bc, - (q31_t)0x554d858d, (q31_t)0xa09130ad, (q31_t)0x5548d634, (q31_t)0xa08d00d8, (q31_t)0x554426a7, (q31_t)0xa088d13e, - (q31_t)0x553f76e4, (q31_t)0xa084a1de, - (q31_t)0x553ac6ee, (q31_t)0xa08072ba, (q31_t)0x553616c2, (q31_t)0xa07c43d1, (q31_t)0x55316663, (q31_t)0xa0781522, - (q31_t)0x552cb5ce, (q31_t)0xa073e6af, - (q31_t)0x55280505, (q31_t)0xa06fb876, (q31_t)0x55235408, (q31_t)0xa06b8a78, (q31_t)0x551ea2d6, (q31_t)0xa0675cb6, - (q31_t)0x5519f16f, (q31_t)0xa0632f2e, - (q31_t)0x55153fd4, (q31_t)0xa05f01e1, (q31_t)0x55108e05, (q31_t)0xa05ad4cf, (q31_t)0x550bdc01, (q31_t)0xa056a7f9, - (q31_t)0x550729c9, (q31_t)0xa0527b5d, - (q31_t)0x5502775c, (q31_t)0xa04e4efc, (q31_t)0x54fdc4ba, (q31_t)0xa04a22d7, (q31_t)0x54f911e5, (q31_t)0xa045f6ec, - (q31_t)0x54f45edb, (q31_t)0xa041cb3c, - (q31_t)0x54efab9c, (q31_t)0xa03d9fc8, (q31_t)0x54eaf829, (q31_t)0xa039748e, (q31_t)0x54e64482, (q31_t)0xa0354990, - (q31_t)0x54e190a6, (q31_t)0xa0311ecd, - (q31_t)0x54dcdc96, (q31_t)0xa02cf444, (q31_t)0x54d82852, (q31_t)0xa028c9f7, (q31_t)0x54d373d9, (q31_t)0xa0249fe5, - (q31_t)0x54cebf2c, (q31_t)0xa020760e, - (q31_t)0x54ca0a4b, (q31_t)0xa01c4c73, (q31_t)0x54c55535, (q31_t)0xa0182312, (q31_t)0x54c09feb, (q31_t)0xa013f9ed, - (q31_t)0x54bbea6d, (q31_t)0xa00fd102, - (q31_t)0x54b734ba, (q31_t)0xa00ba853, (q31_t)0x54b27ed3, (q31_t)0xa0077fdf, (q31_t)0x54adc8b8, (q31_t)0xa00357a7, - (q31_t)0x54a91269, (q31_t)0x9fff2fa9, - (q31_t)0x54a45be6, (q31_t)0x9ffb07e7, (q31_t)0x549fa52e, (q31_t)0x9ff6e060, (q31_t)0x549aee42, (q31_t)0x9ff2b914, - (q31_t)0x54963722, (q31_t)0x9fee9204, - (q31_t)0x54917fce, (q31_t)0x9fea6b2f, (q31_t)0x548cc845, (q31_t)0x9fe64495, (q31_t)0x54881089, (q31_t)0x9fe21e36, - (q31_t)0x54835898, (q31_t)0x9fddf812, - (q31_t)0x547ea073, (q31_t)0x9fd9d22a, (q31_t)0x5479e81a, (q31_t)0x9fd5ac7d, (q31_t)0x54752f8d, (q31_t)0x9fd1870c, - (q31_t)0x547076cc, (q31_t)0x9fcd61d6, - (q31_t)0x546bbdd7, (q31_t)0x9fc93cdb, (q31_t)0x546704ae, (q31_t)0x9fc5181b, (q31_t)0x54624b50, (q31_t)0x9fc0f397, - (q31_t)0x545d91bf, (q31_t)0x9fbccf4f, - (q31_t)0x5458d7f9, (q31_t)0x9fb8ab41, (q31_t)0x54541e00, (q31_t)0x9fb4876f, (q31_t)0x544f63d2, (q31_t)0x9fb063d9, - (q31_t)0x544aa971, (q31_t)0x9fac407e, - (q31_t)0x5445eedb, (q31_t)0x9fa81d5e, (q31_t)0x54413412, (q31_t)0x9fa3fa79, (q31_t)0x543c7914, (q31_t)0x9f9fd7d1, - (q31_t)0x5437bde3, (q31_t)0x9f9bb563, - (q31_t)0x5433027d, (q31_t)0x9f979331, (q31_t)0x542e46e4, (q31_t)0x9f93713b, (q31_t)0x54298b17, (q31_t)0x9f8f4f80, - (q31_t)0x5424cf16, (q31_t)0x9f8b2e00, - (q31_t)0x542012e1, (q31_t)0x9f870cbc, (q31_t)0x541b5678, (q31_t)0x9f82ebb4, (q31_t)0x541699db, (q31_t)0x9f7ecae7, - (q31_t)0x5411dd0a, (q31_t)0x9f7aaa55, - (q31_t)0x540d2005, (q31_t)0x9f7689ff, (q31_t)0x540862cd, (q31_t)0x9f7269e5, (q31_t)0x5403a561, (q31_t)0x9f6e4a06, - (q31_t)0x53fee7c1, (q31_t)0x9f6a2a63, - (q31_t)0x53fa29ed, (q31_t)0x9f660afb, (q31_t)0x53f56be5, (q31_t)0x9f61ebcf, (q31_t)0x53f0adaa, (q31_t)0x9f5dccde, - (q31_t)0x53ebef3a, (q31_t)0x9f59ae29, - (q31_t)0x53e73097, (q31_t)0x9f558fb0, (q31_t)0x53e271c0, (q31_t)0x9f517173, (q31_t)0x53ddb2b6, (q31_t)0x9f4d5371, - (q31_t)0x53d8f378, (q31_t)0x9f4935aa, - (q31_t)0x53d43406, (q31_t)0x9f45181f, (q31_t)0x53cf7460, (q31_t)0x9f40fad0, (q31_t)0x53cab486, (q31_t)0x9f3cddbd, - (q31_t)0x53c5f479, (q31_t)0x9f38c0e5, - (q31_t)0x53c13439, (q31_t)0x9f34a449, (q31_t)0x53bc73c4, (q31_t)0x9f3087e9, (q31_t)0x53b7b31c, (q31_t)0x9f2c6bc5, - (q31_t)0x53b2f240, (q31_t)0x9f284fdc, - (q31_t)0x53ae3131, (q31_t)0x9f24342f, (q31_t)0x53a96fee, (q31_t)0x9f2018bd, (q31_t)0x53a4ae77, (q31_t)0x9f1bfd88, - (q31_t)0x539feccd, (q31_t)0x9f17e28e, - (q31_t)0x539b2af0, (q31_t)0x9f13c7d0, (q31_t)0x539668de, (q31_t)0x9f0fad4e, (q31_t)0x5391a699, (q31_t)0x9f0b9307, - (q31_t)0x538ce421, (q31_t)0x9f0778fd, - (q31_t)0x53882175, (q31_t)0x9f035f2e, (q31_t)0x53835e95, (q31_t)0x9eff459b, (q31_t)0x537e9b82, (q31_t)0x9efb2c44, - (q31_t)0x5379d83c, (q31_t)0x9ef71328, - (q31_t)0x537514c2, (q31_t)0x9ef2fa49, (q31_t)0x53705114, (q31_t)0x9eeee1a5, (q31_t)0x536b8d33, (q31_t)0x9eeac93e, - (q31_t)0x5366c91f, (q31_t)0x9ee6b112, - (q31_t)0x536204d7, (q31_t)0x9ee29922, (q31_t)0x535d405c, (q31_t)0x9ede816e, (q31_t)0x53587bad, (q31_t)0x9eda69f6, - (q31_t)0x5353b6cb, (q31_t)0x9ed652ba, - (q31_t)0x534ef1b5, (q31_t)0x9ed23bb9, (q31_t)0x534a2c6c, (q31_t)0x9ece24f5, (q31_t)0x534566f0, (q31_t)0x9eca0e6d, - (q31_t)0x5340a140, (q31_t)0x9ec5f820, - (q31_t)0x533bdb5d, (q31_t)0x9ec1e210, (q31_t)0x53371547, (q31_t)0x9ebdcc3b, (q31_t)0x53324efd, (q31_t)0x9eb9b6a3, - (q31_t)0x532d8880, (q31_t)0x9eb5a146, - (q31_t)0x5328c1d0, (q31_t)0x9eb18c26, (q31_t)0x5323faec, (q31_t)0x9ead7742, (q31_t)0x531f33d5, (q31_t)0x9ea96299, - (q31_t)0x531a6c8b, (q31_t)0x9ea54e2d, - (q31_t)0x5315a50e, (q31_t)0x9ea139fd, (q31_t)0x5310dd5d, (q31_t)0x9e9d2608, (q31_t)0x530c1579, (q31_t)0x9e991250, - (q31_t)0x53074d62, (q31_t)0x9e94fed4, - (q31_t)0x53028518, (q31_t)0x9e90eb94, (q31_t)0x52fdbc9a, (q31_t)0x9e8cd890, (q31_t)0x52f8f3e9, (q31_t)0x9e88c5c9, - (q31_t)0x52f42b05, (q31_t)0x9e84b33d, - (q31_t)0x52ef61ee, (q31_t)0x9e80a0ee, (q31_t)0x52ea98a4, (q31_t)0x9e7c8eda, (q31_t)0x52e5cf27, (q31_t)0x9e787d03, - (q31_t)0x52e10576, (q31_t)0x9e746b68, - (q31_t)0x52dc3b92, (q31_t)0x9e705a09, (q31_t)0x52d7717b, (q31_t)0x9e6c48e7, (q31_t)0x52d2a732, (q31_t)0x9e683800, - (q31_t)0x52cddcb5, (q31_t)0x9e642756, - (q31_t)0x52c91204, (q31_t)0x9e6016e8, (q31_t)0x52c44721, (q31_t)0x9e5c06b6, (q31_t)0x52bf7c0b, (q31_t)0x9e57f6c0, - (q31_t)0x52bab0c2, (q31_t)0x9e53e707, - (q31_t)0x52b5e546, (q31_t)0x9e4fd78a, (q31_t)0x52b11996, (q31_t)0x9e4bc849, (q31_t)0x52ac4db4, (q31_t)0x9e47b944, - (q31_t)0x52a7819f, (q31_t)0x9e43aa7c, - (q31_t)0x52a2b556, (q31_t)0x9e3f9bf0, (q31_t)0x529de8db, (q31_t)0x9e3b8da0, (q31_t)0x52991c2d, (q31_t)0x9e377f8c, - (q31_t)0x52944f4c, (q31_t)0x9e3371b5, - (q31_t)0x528f8238, (q31_t)0x9e2f641b, (q31_t)0x528ab4f1, (q31_t)0x9e2b56bc, (q31_t)0x5285e777, (q31_t)0x9e27499a, - (q31_t)0x528119ca, (q31_t)0x9e233cb4, - (q31_t)0x527c4bea, (q31_t)0x9e1f300b, (q31_t)0x52777dd7, (q31_t)0x9e1b239e, (q31_t)0x5272af92, (q31_t)0x9e17176d, - (q31_t)0x526de11a, (q31_t)0x9e130b79, - (q31_t)0x5269126e, (q31_t)0x9e0effc1, (q31_t)0x52644390, (q31_t)0x9e0af446, (q31_t)0x525f7480, (q31_t)0x9e06e907, - (q31_t)0x525aa53c, (q31_t)0x9e02de04, - (q31_t)0x5255d5c5, (q31_t)0x9dfed33e, (q31_t)0x5251061c, (q31_t)0x9dfac8b4, (q31_t)0x524c3640, (q31_t)0x9df6be67, - (q31_t)0x52476631, (q31_t)0x9df2b456, - (q31_t)0x524295f0, (q31_t)0x9deeaa82, (q31_t)0x523dc57b, (q31_t)0x9deaa0ea, (q31_t)0x5238f4d4, (q31_t)0x9de6978f, - (q31_t)0x523423fb, (q31_t)0x9de28e70, - (q31_t)0x522f52ee, (q31_t)0x9dde858e, (q31_t)0x522a81af, (q31_t)0x9dda7ce9, (q31_t)0x5225b03d, (q31_t)0x9dd6747f, - (q31_t)0x5220de99, (q31_t)0x9dd26c53, - (q31_t)0x521c0cc2, (q31_t)0x9dce6463, (q31_t)0x52173ab8, (q31_t)0x9dca5caf, (q31_t)0x5212687b, (q31_t)0x9dc65539, - (q31_t)0x520d960c, (q31_t)0x9dc24dfe, - (q31_t)0x5208c36a, (q31_t)0x9dbe4701, (q31_t)0x5203f096, (q31_t)0x9dba4040, (q31_t)0x51ff1d8f, (q31_t)0x9db639bb, - (q31_t)0x51fa4a56, (q31_t)0x9db23373, - (q31_t)0x51f576ea, (q31_t)0x9dae2d68, (q31_t)0x51f0a34b, (q31_t)0x9daa279a, (q31_t)0x51ebcf7a, (q31_t)0x9da62208, - (q31_t)0x51e6fb76, (q31_t)0x9da21cb2, - (q31_t)0x51e22740, (q31_t)0x9d9e179a, (q31_t)0x51dd52d7, (q31_t)0x9d9a12be, (q31_t)0x51d87e3c, (q31_t)0x9d960e1f, - (q31_t)0x51d3a96f, (q31_t)0x9d9209bd, - (q31_t)0x51ced46e, (q31_t)0x9d8e0597, (q31_t)0x51c9ff3c, (q31_t)0x9d8a01ae, (q31_t)0x51c529d7, (q31_t)0x9d85fe02, - (q31_t)0x51c0543f, (q31_t)0x9d81fa92, - (q31_t)0x51bb7e75, (q31_t)0x9d7df75f, (q31_t)0x51b6a879, (q31_t)0x9d79f469, (q31_t)0x51b1d24a, (q31_t)0x9d75f1b0, - (q31_t)0x51acfbe9, (q31_t)0x9d71ef34, - (q31_t)0x51a82555, (q31_t)0x9d6decf4, (q31_t)0x51a34e8f, (q31_t)0x9d69eaf1, (q31_t)0x519e7797, (q31_t)0x9d65e92b, - (q31_t)0x5199a06d, (q31_t)0x9d61e7a2, - (q31_t)0x5194c910, (q31_t)0x9d5de656, (q31_t)0x518ff180, (q31_t)0x9d59e546, (q31_t)0x518b19bf, (q31_t)0x9d55e473, - (q31_t)0x518641cb, (q31_t)0x9d51e3dd, - (q31_t)0x518169a5, (q31_t)0x9d4de385, (q31_t)0x517c914c, (q31_t)0x9d49e368, (q31_t)0x5177b8c2, (q31_t)0x9d45e389, - (q31_t)0x5172e005, (q31_t)0x9d41e3e7, - (q31_t)0x516e0715, (q31_t)0x9d3de482, (q31_t)0x51692df4, (q31_t)0x9d39e559, (q31_t)0x516454a0, (q31_t)0x9d35e66e, - (q31_t)0x515f7b1a, (q31_t)0x9d31e7bf, - (q31_t)0x515aa162, (q31_t)0x9d2de94d, (q31_t)0x5155c778, (q31_t)0x9d29eb19, (q31_t)0x5150ed5c, (q31_t)0x9d25ed21, - (q31_t)0x514c130d, (q31_t)0x9d21ef66, - (q31_t)0x5147388c, (q31_t)0x9d1df1e9, (q31_t)0x51425dd9, (q31_t)0x9d19f4a8, (q31_t)0x513d82f4, (q31_t)0x9d15f7a4, - (q31_t)0x5138a7dd, (q31_t)0x9d11fadd, - (q31_t)0x5133cc94, (q31_t)0x9d0dfe54, (q31_t)0x512ef119, (q31_t)0x9d0a0207, (q31_t)0x512a156b, (q31_t)0x9d0605f7, - (q31_t)0x5125398c, (q31_t)0x9d020a25, - (q31_t)0x51205d7b, (q31_t)0x9cfe0e8f, (q31_t)0x511b8137, (q31_t)0x9cfa1337, (q31_t)0x5116a4c1, (q31_t)0x9cf6181c, - (q31_t)0x5111c81a, (q31_t)0x9cf21d3d, - (q31_t)0x510ceb40, (q31_t)0x9cee229c, (q31_t)0x51080e35, (q31_t)0x9cea2838, (q31_t)0x510330f7, (q31_t)0x9ce62e11, - (q31_t)0x50fe5388, (q31_t)0x9ce23427, - (q31_t)0x50f975e6, (q31_t)0x9cde3a7b, (q31_t)0x50f49813, (q31_t)0x9cda410b, (q31_t)0x50efba0d, (q31_t)0x9cd647d9, - (q31_t)0x50eadbd6, (q31_t)0x9cd24ee4, - (q31_t)0x50e5fd6d, (q31_t)0x9cce562c, (q31_t)0x50e11ed2, (q31_t)0x9cca5db1, (q31_t)0x50dc4005, (q31_t)0x9cc66573, - (q31_t)0x50d76106, (q31_t)0x9cc26d73, - (q31_t)0x50d281d5, (q31_t)0x9cbe75b0, (q31_t)0x50cda272, (q31_t)0x9cba7e2a, (q31_t)0x50c8c2de, (q31_t)0x9cb686e1, - (q31_t)0x50c3e317, (q31_t)0x9cb28fd5, - (q31_t)0x50bf031f, (q31_t)0x9cae9907, (q31_t)0x50ba22f5, (q31_t)0x9caaa276, (q31_t)0x50b5429a, (q31_t)0x9ca6ac23, - (q31_t)0x50b0620c, (q31_t)0x9ca2b60c, - (q31_t)0x50ab814d, (q31_t)0x9c9ec033, (q31_t)0x50a6a05c, (q31_t)0x9c9aca97, (q31_t)0x50a1bf39, (q31_t)0x9c96d539, - (q31_t)0x509cdde4, (q31_t)0x9c92e017, - (q31_t)0x5097fc5e, (q31_t)0x9c8eeb34, (q31_t)0x50931aa6, (q31_t)0x9c8af68d, (q31_t)0x508e38bd, (q31_t)0x9c870224, - (q31_t)0x508956a1, (q31_t)0x9c830df8, - (q31_t)0x50847454, (q31_t)0x9c7f1a0a, (q31_t)0x507f91d5, (q31_t)0x9c7b2659, (q31_t)0x507aaf25, (q31_t)0x9c7732e5, - (q31_t)0x5075cc43, (q31_t)0x9c733faf, - (q31_t)0x5070e92f, (q31_t)0x9c6f4cb6, (q31_t)0x506c05ea, (q31_t)0x9c6b59fa, (q31_t)0x50672273, (q31_t)0x9c67677c, - (q31_t)0x50623ecb, (q31_t)0x9c63753c, - (q31_t)0x505d5af1, (q31_t)0x9c5f8339, (q31_t)0x505876e5, (q31_t)0x9c5b9173, (q31_t)0x505392a8, (q31_t)0x9c579feb, - (q31_t)0x504eae39, (q31_t)0x9c53aea0, - (q31_t)0x5049c999, (q31_t)0x9c4fbd93, (q31_t)0x5044e4c7, (q31_t)0x9c4bccc3, (q31_t)0x503fffc4, (q31_t)0x9c47dc31, - (q31_t)0x503b1a8f, (q31_t)0x9c43ebdc, - (q31_t)0x50363529, (q31_t)0x9c3ffbc5, (q31_t)0x50314f91, (q31_t)0x9c3c0beb, (q31_t)0x502c69c8, (q31_t)0x9c381c4f, - (q31_t)0x502783cd, (q31_t)0x9c342cf0, - (q31_t)0x50229da1, (q31_t)0x9c303dcf, (q31_t)0x501db743, (q31_t)0x9c2c4eec, (q31_t)0x5018d0b4, (q31_t)0x9c286046, - (q31_t)0x5013e9f4, (q31_t)0x9c2471de, - (q31_t)0x500f0302, (q31_t)0x9c2083b3, (q31_t)0x500a1bdf, (q31_t)0x9c1c95c6, (q31_t)0x5005348a, (q31_t)0x9c18a816, - (q31_t)0x50004d04, (q31_t)0x9c14baa4, - (q31_t)0x4ffb654d, (q31_t)0x9c10cd70, (q31_t)0x4ff67d64, (q31_t)0x9c0ce07a, (q31_t)0x4ff1954b, (q31_t)0x9c08f3c1, - (q31_t)0x4fecacff, (q31_t)0x9c050745, - (q31_t)0x4fe7c483, (q31_t)0x9c011b08, (q31_t)0x4fe2dbd5, (q31_t)0x9bfd2f08, (q31_t)0x4fddf2f6, (q31_t)0x9bf94346, - (q31_t)0x4fd909e5, (q31_t)0x9bf557c1, - (q31_t)0x4fd420a4, (q31_t)0x9bf16c7a, (q31_t)0x4fcf3731, (q31_t)0x9bed8171, (q31_t)0x4fca4d8d, (q31_t)0x9be996a6, - (q31_t)0x4fc563b7, (q31_t)0x9be5ac18, - (q31_t)0x4fc079b1, (q31_t)0x9be1c1c8, (q31_t)0x4fbb8f79, (q31_t)0x9bddd7b6, (q31_t)0x4fb6a510, (q31_t)0x9bd9ede2, - (q31_t)0x4fb1ba76, (q31_t)0x9bd6044b, - (q31_t)0x4faccfab, (q31_t)0x9bd21af3, (q31_t)0x4fa7e4af, (q31_t)0x9bce31d8, (q31_t)0x4fa2f981, (q31_t)0x9bca48fa, - (q31_t)0x4f9e0e22, (q31_t)0x9bc6605b, - (q31_t)0x4f992293, (q31_t)0x9bc277fa, (q31_t)0x4f9436d2, (q31_t)0x9bbe8fd6, (q31_t)0x4f8f4ae0, (q31_t)0x9bbaa7f0, - (q31_t)0x4f8a5ebd, (q31_t)0x9bb6c048, - (q31_t)0x4f857269, (q31_t)0x9bb2d8de, (q31_t)0x4f8085e4, (q31_t)0x9baef1b2, (q31_t)0x4f7b992d, (q31_t)0x9bab0ac3, - (q31_t)0x4f76ac46, (q31_t)0x9ba72413, - (q31_t)0x4f71bf2e, (q31_t)0x9ba33da0, (q31_t)0x4f6cd1e5, (q31_t)0x9b9f576b, (q31_t)0x4f67e46a, (q31_t)0x9b9b7174, - (q31_t)0x4f62f6bf, (q31_t)0x9b978bbc, - (q31_t)0x4f5e08e3, (q31_t)0x9b93a641, (q31_t)0x4f591ad6, (q31_t)0x9b8fc104, (q31_t)0x4f542c98, (q31_t)0x9b8bdc05, - (q31_t)0x4f4f3e29, (q31_t)0x9b87f744, - (q31_t)0x4f4a4f89, (q31_t)0x9b8412c1, (q31_t)0x4f4560b8, (q31_t)0x9b802e7b, (q31_t)0x4f4071b6, (q31_t)0x9b7c4a74, - (q31_t)0x4f3b8284, (q31_t)0x9b7866ab, - (q31_t)0x4f369320, (q31_t)0x9b748320, (q31_t)0x4f31a38c, (q31_t)0x9b709fd3, (q31_t)0x4f2cb3c7, (q31_t)0x9b6cbcc4, - (q31_t)0x4f27c3d1, (q31_t)0x9b68d9f3, - (q31_t)0x4f22d3aa, (q31_t)0x9b64f760, (q31_t)0x4f1de352, (q31_t)0x9b61150b, (q31_t)0x4f18f2c9, (q31_t)0x9b5d32f4, - (q31_t)0x4f140210, (q31_t)0x9b59511c, - (q31_t)0x4f0f1126, (q31_t)0x9b556f81, (q31_t)0x4f0a200b, (q31_t)0x9b518e24, (q31_t)0x4f052ec0, (q31_t)0x9b4dad06, - (q31_t)0x4f003d43, (q31_t)0x9b49cc26, - (q31_t)0x4efb4b96, (q31_t)0x9b45eb83, (q31_t)0x4ef659b8, (q31_t)0x9b420b1f, (q31_t)0x4ef167aa, (q31_t)0x9b3e2af9, - (q31_t)0x4eec756b, (q31_t)0x9b3a4b11, - (q31_t)0x4ee782fb, (q31_t)0x9b366b68, (q31_t)0x4ee2905a, (q31_t)0x9b328bfc, (q31_t)0x4edd9d89, (q31_t)0x9b2eaccf, - (q31_t)0x4ed8aa87, (q31_t)0x9b2acde0, - (q31_t)0x4ed3b755, (q31_t)0x9b26ef2f, (q31_t)0x4ecec3f2, (q31_t)0x9b2310bc, (q31_t)0x4ec9d05e, (q31_t)0x9b1f3288, - (q31_t)0x4ec4dc99, (q31_t)0x9b1b5492, - (q31_t)0x4ebfe8a5, (q31_t)0x9b1776da, (q31_t)0x4ebaf47f, (q31_t)0x9b139960, (q31_t)0x4eb60029, (q31_t)0x9b0fbc24, - (q31_t)0x4eb10ba2, (q31_t)0x9b0bdf27, - (q31_t)0x4eac16eb, (q31_t)0x9b080268, (q31_t)0x4ea72203, (q31_t)0x9b0425e8, (q31_t)0x4ea22ceb, (q31_t)0x9b0049a5, - (q31_t)0x4e9d37a3, (q31_t)0x9afc6da1, - (q31_t)0x4e984229, (q31_t)0x9af891db, (q31_t)0x4e934c80, (q31_t)0x9af4b654, (q31_t)0x4e8e56a5, (q31_t)0x9af0db0b, - (q31_t)0x4e89609b, (q31_t)0x9aed0000, - (q31_t)0x4e846a60, (q31_t)0x9ae92533, (q31_t)0x4e7f73f4, (q31_t)0x9ae54aa5, (q31_t)0x4e7a7d58, (q31_t)0x9ae17056, - (q31_t)0x4e75868c, (q31_t)0x9add9644, - (q31_t)0x4e708f8f, (q31_t)0x9ad9bc71, (q31_t)0x4e6b9862, (q31_t)0x9ad5e2dd, (q31_t)0x4e66a105, (q31_t)0x9ad20987, - (q31_t)0x4e61a977, (q31_t)0x9ace306f, - (q31_t)0x4e5cb1b9, (q31_t)0x9aca5795, (q31_t)0x4e57b9ca, (q31_t)0x9ac67efb, (q31_t)0x4e52c1ab, (q31_t)0x9ac2a69e, - (q31_t)0x4e4dc95c, (q31_t)0x9abece80, - (q31_t)0x4e48d0dd, (q31_t)0x9abaf6a1, (q31_t)0x4e43d82d, (q31_t)0x9ab71eff, (q31_t)0x4e3edf4d, (q31_t)0x9ab3479d, - (q31_t)0x4e39e63d, (q31_t)0x9aaf7079, - (q31_t)0x4e34ecfc, (q31_t)0x9aab9993, (q31_t)0x4e2ff38b, (q31_t)0x9aa7c2ec, (q31_t)0x4e2af9ea, (q31_t)0x9aa3ec83, - (q31_t)0x4e260019, (q31_t)0x9aa01659, - (q31_t)0x4e210617, (q31_t)0x9a9c406e, (q31_t)0x4e1c0be6, (q31_t)0x9a986ac1, (q31_t)0x4e171184, (q31_t)0x9a949552, - (q31_t)0x4e1216f2, (q31_t)0x9a90c022, - (q31_t)0x4e0d1c30, (q31_t)0x9a8ceb31, (q31_t)0x4e08213e, (q31_t)0x9a89167e, (q31_t)0x4e03261b, (q31_t)0x9a85420a, - (q31_t)0x4dfe2ac9, (q31_t)0x9a816dd5, - (q31_t)0x4df92f46, (q31_t)0x9a7d99de, (q31_t)0x4df43393, (q31_t)0x9a79c625, (q31_t)0x4def37b0, (q31_t)0x9a75f2ac, - (q31_t)0x4dea3b9d, (q31_t)0x9a721f71, - (q31_t)0x4de53f5a, (q31_t)0x9a6e4c74, (q31_t)0x4de042e7, (q31_t)0x9a6a79b6, (q31_t)0x4ddb4644, (q31_t)0x9a66a737, - (q31_t)0x4dd64971, (q31_t)0x9a62d4f7, - (q31_t)0x4dd14c6e, (q31_t)0x9a5f02f5, (q31_t)0x4dcc4f3b, (q31_t)0x9a5b3132, (q31_t)0x4dc751d8, (q31_t)0x9a575fae, - (q31_t)0x4dc25445, (q31_t)0x9a538e68, - (q31_t)0x4dbd5682, (q31_t)0x9a4fbd61, (q31_t)0x4db8588f, (q31_t)0x9a4bec99, (q31_t)0x4db35a6c, (q31_t)0x9a481c0f, - (q31_t)0x4dae5c19, (q31_t)0x9a444bc5, - (q31_t)0x4da95d96, (q31_t)0x9a407bb9, (q31_t)0x4da45ee3, (q31_t)0x9a3cabeb, (q31_t)0x4d9f6001, (q31_t)0x9a38dc5d, - (q31_t)0x4d9a60ee, (q31_t)0x9a350d0d, - (q31_t)0x4d9561ac, (q31_t)0x9a313dfc, (q31_t)0x4d90623a, (q31_t)0x9a2d6f2a, (q31_t)0x4d8b6298, (q31_t)0x9a29a097, - (q31_t)0x4d8662c6, (q31_t)0x9a25d243, - (q31_t)0x4d8162c4, (q31_t)0x9a22042d, (q31_t)0x4d7c6293, (q31_t)0x9a1e3656, (q31_t)0x4d776231, (q31_t)0x9a1a68be, - (q31_t)0x4d7261a0, (q31_t)0x9a169b65, - (q31_t)0x4d6d60df, (q31_t)0x9a12ce4b, (q31_t)0x4d685fef, (q31_t)0x9a0f016f, (q31_t)0x4d635ece, (q31_t)0x9a0b34d3, - (q31_t)0x4d5e5d7e, (q31_t)0x9a076875, - (q31_t)0x4d595bfe, (q31_t)0x9a039c57, (q31_t)0x4d545a4f, (q31_t)0x99ffd077, (q31_t)0x4d4f5870, (q31_t)0x99fc04d6, - (q31_t)0x4d4a5661, (q31_t)0x99f83974, - (q31_t)0x4d455422, (q31_t)0x99f46e51, (q31_t)0x4d4051b4, (q31_t)0x99f0a36d, (q31_t)0x4d3b4f16, (q31_t)0x99ecd8c8, - (q31_t)0x4d364c48, (q31_t)0x99e90e62, - (q31_t)0x4d31494b, (q31_t)0x99e5443b, (q31_t)0x4d2c461e, (q31_t)0x99e17a53, (q31_t)0x4d2742c2, (q31_t)0x99ddb0aa, - (q31_t)0x4d223f36, (q31_t)0x99d9e73f, - (q31_t)0x4d1d3b7a, (q31_t)0x99d61e14, (q31_t)0x4d18378f, (q31_t)0x99d25528, (q31_t)0x4d133374, (q31_t)0x99ce8c7b, - (q31_t)0x4d0e2f2a, (q31_t)0x99cac40d, - (q31_t)0x4d092ab0, (q31_t)0x99c6fbde, (q31_t)0x4d042607, (q31_t)0x99c333ee, (q31_t)0x4cff212e, (q31_t)0x99bf6c3d, - (q31_t)0x4cfa1c26, (q31_t)0x99bba4cb, - (q31_t)0x4cf516ee, (q31_t)0x99b7dd99, (q31_t)0x4cf01187, (q31_t)0x99b416a5, (q31_t)0x4ceb0bf0, (q31_t)0x99b04ff0, - (q31_t)0x4ce6062a, (q31_t)0x99ac897b, - (q31_t)0x4ce10034, (q31_t)0x99a8c345, (q31_t)0x4cdbfa0f, (q31_t)0x99a4fd4d, (q31_t)0x4cd6f3bb, (q31_t)0x99a13795, - (q31_t)0x4cd1ed37, (q31_t)0x999d721c, - (q31_t)0x4ccce684, (q31_t)0x9999ace3, (q31_t)0x4cc7dfa1, (q31_t)0x9995e7e8, (q31_t)0x4cc2d88f, (q31_t)0x9992232d, - (q31_t)0x4cbdd14e, (q31_t)0x998e5eb1, - (q31_t)0x4cb8c9dd, (q31_t)0x998a9a74, (q31_t)0x4cb3c23d, (q31_t)0x9986d676, (q31_t)0x4caeba6e, (q31_t)0x998312b7, - (q31_t)0x4ca9b26f, (q31_t)0x997f4f38, - (q31_t)0x4ca4aa41, (q31_t)0x997b8bf8, (q31_t)0x4c9fa1e4, (q31_t)0x9977c8f7, (q31_t)0x4c9a9958, (q31_t)0x99740635, - (q31_t)0x4c95909c, (q31_t)0x997043b2, - (q31_t)0x4c9087b1, (q31_t)0x996c816f, (q31_t)0x4c8b7e97, (q31_t)0x9968bf6b, (q31_t)0x4c86754e, (q31_t)0x9964fda7, - (q31_t)0x4c816bd5, (q31_t)0x99613c22, - (q31_t)0x4c7c622d, (q31_t)0x995d7adc, (q31_t)0x4c775856, (q31_t)0x9959b9d5, (q31_t)0x4c724e50, (q31_t)0x9955f90d, - (q31_t)0x4c6d441b, (q31_t)0x99523885, - (q31_t)0x4c6839b7, (q31_t)0x994e783d, (q31_t)0x4c632f23, (q31_t)0x994ab833, (q31_t)0x4c5e2460, (q31_t)0x9946f869, - (q31_t)0x4c59196f, (q31_t)0x994338df, - (q31_t)0x4c540e4e, (q31_t)0x993f7993, (q31_t)0x4c4f02fe, (q31_t)0x993bba87, (q31_t)0x4c49f77f, (q31_t)0x9937fbbb, - (q31_t)0x4c44ebd1, (q31_t)0x99343d2e, - (q31_t)0x4c3fdff4, (q31_t)0x99307ee0, (q31_t)0x4c3ad3e7, (q31_t)0x992cc0d2, (q31_t)0x4c35c7ac, (q31_t)0x99290303, - (q31_t)0x4c30bb42, (q31_t)0x99254574, - (q31_t)0x4c2baea9, (q31_t)0x99218824, (q31_t)0x4c26a1e1, (q31_t)0x991dcb13, (q31_t)0x4c2194e9, (q31_t)0x991a0e42, - (q31_t)0x4c1c87c3, (q31_t)0x991651b1, - (q31_t)0x4c177a6e, (q31_t)0x9912955f, (q31_t)0x4c126cea, (q31_t)0x990ed94c, (q31_t)0x4c0d5f37, (q31_t)0x990b1d79, - (q31_t)0x4c085156, (q31_t)0x990761e5, - (q31_t)0x4c034345, (q31_t)0x9903a691, (q31_t)0x4bfe3505, (q31_t)0x98ffeb7d, (q31_t)0x4bf92697, (q31_t)0x98fc30a8, - (q31_t)0x4bf417f9, (q31_t)0x98f87612, - (q31_t)0x4bef092d, (q31_t)0x98f4bbbc, (q31_t)0x4be9fa32, (q31_t)0x98f101a6, (q31_t)0x4be4eb08, (q31_t)0x98ed47cf, - (q31_t)0x4bdfdbaf, (q31_t)0x98e98e38, - (q31_t)0x4bdacc28, (q31_t)0x98e5d4e0, (q31_t)0x4bd5bc72, (q31_t)0x98e21bc8, (q31_t)0x4bd0ac8d, (q31_t)0x98de62f0, - (q31_t)0x4bcb9c79, (q31_t)0x98daaa57, - (q31_t)0x4bc68c36, (q31_t)0x98d6f1fe, (q31_t)0x4bc17bc5, (q31_t)0x98d339e4, (q31_t)0x4bbc6b25, (q31_t)0x98cf820b, - (q31_t)0x4bb75a56, (q31_t)0x98cbca70, - (q31_t)0x4bb24958, (q31_t)0x98c81316, (q31_t)0x4bad382c, (q31_t)0x98c45bfb, (q31_t)0x4ba826d1, (q31_t)0x98c0a520, - (q31_t)0x4ba31548, (q31_t)0x98bcee84, - (q31_t)0x4b9e0390, (q31_t)0x98b93828, (q31_t)0x4b98f1a9, (q31_t)0x98b5820c, (q31_t)0x4b93df93, (q31_t)0x98b1cc30, - (q31_t)0x4b8ecd4f, (q31_t)0x98ae1693, - (q31_t)0x4b89badd, (q31_t)0x98aa6136, (q31_t)0x4b84a83b, (q31_t)0x98a6ac19, (q31_t)0x4b7f956b, (q31_t)0x98a2f73c, - (q31_t)0x4b7a826d, (q31_t)0x989f429e, - (q31_t)0x4b756f40, (q31_t)0x989b8e40, (q31_t)0x4b705be4, (q31_t)0x9897da22, (q31_t)0x4b6b485a, (q31_t)0x98942643, - (q31_t)0x4b6634a2, (q31_t)0x989072a5, - (q31_t)0x4b6120bb, (q31_t)0x988cbf46, (q31_t)0x4b5c0ca5, (q31_t)0x98890c27, (q31_t)0x4b56f861, (q31_t)0x98855948, - (q31_t)0x4b51e3ee, (q31_t)0x9881a6a9, - (q31_t)0x4b4ccf4d, (q31_t)0x987df449, (q31_t)0x4b47ba7e, (q31_t)0x987a422a, (q31_t)0x4b42a580, (q31_t)0x9876904a, - (q31_t)0x4b3d9053, (q31_t)0x9872deaa, - (q31_t)0x4b387af9, (q31_t)0x986f2d4a, (q31_t)0x4b336570, (q31_t)0x986b7c2a, (q31_t)0x4b2e4fb8, (q31_t)0x9867cb4a, - (q31_t)0x4b2939d2, (q31_t)0x98641aa9, - (q31_t)0x4b2423be, (q31_t)0x98606a49, (q31_t)0x4b1f0d7b, (q31_t)0x985cba28, (q31_t)0x4b19f70a, (q31_t)0x98590a48, - (q31_t)0x4b14e06b, (q31_t)0x98555aa7, - (q31_t)0x4b0fc99d, (q31_t)0x9851ab46, (q31_t)0x4b0ab2a1, (q31_t)0x984dfc26, (q31_t)0x4b059b77, (q31_t)0x984a4d45, - (q31_t)0x4b00841f, (q31_t)0x98469ea4, - (q31_t)0x4afb6c98, (q31_t)0x9842f043, (q31_t)0x4af654e3, (q31_t)0x983f4223, (q31_t)0x4af13d00, (q31_t)0x983b9442, - (q31_t)0x4aec24ee, (q31_t)0x9837e6a1, - (q31_t)0x4ae70caf, (q31_t)0x98343940, (q31_t)0x4ae1f441, (q31_t)0x98308c1f, (q31_t)0x4adcdba5, (q31_t)0x982cdf3f, - (q31_t)0x4ad7c2da, (q31_t)0x9829329e, - (q31_t)0x4ad2a9e2, (q31_t)0x9825863d, (q31_t)0x4acd90bb, (q31_t)0x9821da1d, (q31_t)0x4ac87767, (q31_t)0x981e2e3c, - (q31_t)0x4ac35de4, (q31_t)0x981a829c, - (q31_t)0x4abe4433, (q31_t)0x9816d73b, (q31_t)0x4ab92a54, (q31_t)0x98132c1b, (q31_t)0x4ab41046, (q31_t)0x980f813b, - (q31_t)0x4aaef60b, (q31_t)0x980bd69b, - (q31_t)0x4aa9dba2, (q31_t)0x98082c3b, (q31_t)0x4aa4c10b, (q31_t)0x9804821b, (q31_t)0x4a9fa645, (q31_t)0x9800d83c, - (q31_t)0x4a9a8b52, (q31_t)0x97fd2e9c, - (q31_t)0x4a957030, (q31_t)0x97f9853d, (q31_t)0x4a9054e1, (q31_t)0x97f5dc1e, (q31_t)0x4a8b3963, (q31_t)0x97f2333f, - (q31_t)0x4a861db8, (q31_t)0x97ee8aa0, - (q31_t)0x4a8101de, (q31_t)0x97eae242, (q31_t)0x4a7be5d7, (q31_t)0x97e73a23, (q31_t)0x4a76c9a2, (q31_t)0x97e39245, - (q31_t)0x4a71ad3e, (q31_t)0x97dfeaa7, - (q31_t)0x4a6c90ad, (q31_t)0x97dc4349, (q31_t)0x4a6773ee, (q31_t)0x97d89c2c, (q31_t)0x4a625701, (q31_t)0x97d4f54f, - (q31_t)0x4a5d39e6, (q31_t)0x97d14eb2, - (q31_t)0x4a581c9e, (q31_t)0x97cda855, (q31_t)0x4a52ff27, (q31_t)0x97ca0239, (q31_t)0x4a4de182, (q31_t)0x97c65c5c, - (q31_t)0x4a48c3b0, (q31_t)0x97c2b6c1, - (q31_t)0x4a43a5b0, (q31_t)0x97bf1165, (q31_t)0x4a3e8782, (q31_t)0x97bb6c4a, (q31_t)0x4a396926, (q31_t)0x97b7c76f, - (q31_t)0x4a344a9d, (q31_t)0x97b422d4, - (q31_t)0x4a2f2be6, (q31_t)0x97b07e7a, (q31_t)0x4a2a0d01, (q31_t)0x97acda60, (q31_t)0x4a24edee, (q31_t)0x97a93687, - (q31_t)0x4a1fcead, (q31_t)0x97a592ed, - (q31_t)0x4a1aaf3f, (q31_t)0x97a1ef94, (q31_t)0x4a158fa3, (q31_t)0x979e4c7c, (q31_t)0x4a106fda, (q31_t)0x979aa9a4, - (q31_t)0x4a0b4fe2, (q31_t)0x9797070c, - (q31_t)0x4a062fbd, (q31_t)0x979364b5, (q31_t)0x4a010f6b, (q31_t)0x978fc29e, (q31_t)0x49fbeeea, (q31_t)0x978c20c8, - (q31_t)0x49f6ce3c, (q31_t)0x97887f32, - (q31_t)0x49f1ad61, (q31_t)0x9784dddc, (q31_t)0x49ec8c57, (q31_t)0x97813cc7, (q31_t)0x49e76b21, (q31_t)0x977d9bf2, - (q31_t)0x49e249bc, (q31_t)0x9779fb5e, - (q31_t)0x49dd282a, (q31_t)0x97765b0a, (q31_t)0x49d8066b, (q31_t)0x9772baf7, (q31_t)0x49d2e47e, (q31_t)0x976f1b24, - (q31_t)0x49cdc263, (q31_t)0x976b7b92, - (q31_t)0x49c8a01b, (q31_t)0x9767dc41, (q31_t)0x49c37da5, (q31_t)0x97643d2f, (q31_t)0x49be5b02, (q31_t)0x97609e5f, - (q31_t)0x49b93832, (q31_t)0x975cffcf, - (q31_t)0x49b41533, (q31_t)0x9759617f, (q31_t)0x49aef208, (q31_t)0x9755c370, (q31_t)0x49a9ceaf, (q31_t)0x975225a1, - (q31_t)0x49a4ab28, (q31_t)0x974e8813, - (q31_t)0x499f8774, (q31_t)0x974aeac6, (q31_t)0x499a6393, (q31_t)0x97474db9, (q31_t)0x49953f84, (q31_t)0x9743b0ed, - (q31_t)0x49901b48, (q31_t)0x97401462, - (q31_t)0x498af6df, (q31_t)0x973c7817, (q31_t)0x4985d248, (q31_t)0x9738dc0d, (q31_t)0x4980ad84, (q31_t)0x97354043, - (q31_t)0x497b8892, (q31_t)0x9731a4ba, - (q31_t)0x49766373, (q31_t)0x972e0971, (q31_t)0x49713e27, (q31_t)0x972a6e6a, (q31_t)0x496c18ae, (q31_t)0x9726d3a3, - (q31_t)0x4966f307, (q31_t)0x9723391c, - (q31_t)0x4961cd33, (q31_t)0x971f9ed7, (q31_t)0x495ca732, (q31_t)0x971c04d2, (q31_t)0x49578103, (q31_t)0x97186b0d, - (q31_t)0x49525aa7, (q31_t)0x9714d18a, - (q31_t)0x494d341e, (q31_t)0x97113847, (q31_t)0x49480d68, (q31_t)0x970d9f45, (q31_t)0x4942e684, (q31_t)0x970a0683, - (q31_t)0x493dbf74, (q31_t)0x97066e03, - (q31_t)0x49389836, (q31_t)0x9702d5c3, (q31_t)0x493370cb, (q31_t)0x96ff3dc4, (q31_t)0x492e4933, (q31_t)0x96fba605, - (q31_t)0x4929216e, (q31_t)0x96f80e88, - (q31_t)0x4923f97b, (q31_t)0x96f4774b, (q31_t)0x491ed15c, (q31_t)0x96f0e04f, (q31_t)0x4919a90f, (q31_t)0x96ed4994, - (q31_t)0x49148095, (q31_t)0x96e9b319, - (q31_t)0x490f57ee, (q31_t)0x96e61ce0, (q31_t)0x490a2f1b, (q31_t)0x96e286e7, (q31_t)0x4905061a, (q31_t)0x96def12f, - (q31_t)0x48ffdcec, (q31_t)0x96db5bb8, - (q31_t)0x48fab391, (q31_t)0x96d7c682, (q31_t)0x48f58a09, (q31_t)0x96d4318d, (q31_t)0x48f06054, (q31_t)0x96d09cd8, - (q31_t)0x48eb3672, (q31_t)0x96cd0865, - (q31_t)0x48e60c62, (q31_t)0x96c97432, (q31_t)0x48e0e227, (q31_t)0x96c5e040, (q31_t)0x48dbb7be, (q31_t)0x96c24c8f, - (q31_t)0x48d68d28, (q31_t)0x96beb91f, - (q31_t)0x48d16265, (q31_t)0x96bb25f0, (q31_t)0x48cc3775, (q31_t)0x96b79302, (q31_t)0x48c70c59, (q31_t)0x96b40055, - (q31_t)0x48c1e10f, (q31_t)0x96b06de9, - (q31_t)0x48bcb599, (q31_t)0x96acdbbe, (q31_t)0x48b789f5, (q31_t)0x96a949d3, (q31_t)0x48b25e25, (q31_t)0x96a5b82a, - (q31_t)0x48ad3228, (q31_t)0x96a226c2, - (q31_t)0x48a805ff, (q31_t)0x969e959b, (q31_t)0x48a2d9a8, (q31_t)0x969b04b4, (q31_t)0x489dad25, (q31_t)0x9697740f, - (q31_t)0x48988074, (q31_t)0x9693e3ab, - (q31_t)0x48935397, (q31_t)0x96905388, (q31_t)0x488e268e, (q31_t)0x968cc3a5, (q31_t)0x4888f957, (q31_t)0x96893404, - (q31_t)0x4883cbf4, (q31_t)0x9685a4a4, - (q31_t)0x487e9e64, (q31_t)0x96821585, (q31_t)0x487970a7, (q31_t)0x967e86a7, (q31_t)0x487442be, (q31_t)0x967af80a, - (q31_t)0x486f14a8, (q31_t)0x967769af, - (q31_t)0x4869e665, (q31_t)0x9673db94, (q31_t)0x4864b7f5, (q31_t)0x96704dba, (q31_t)0x485f8959, (q31_t)0x966cc022, - (q31_t)0x485a5a90, (q31_t)0x966932cb, - (q31_t)0x48552b9b, (q31_t)0x9665a5b4, (q31_t)0x484ffc79, (q31_t)0x966218df, (q31_t)0x484acd2a, (q31_t)0x965e8c4b, - (q31_t)0x48459daf, (q31_t)0x965afff9, - (q31_t)0x48406e08, (q31_t)0x965773e7, (q31_t)0x483b3e33, (q31_t)0x9653e817, (q31_t)0x48360e32, (q31_t)0x96505c88, - (q31_t)0x4830de05, (q31_t)0x964cd139, - (q31_t)0x482badab, (q31_t)0x9649462d, (q31_t)0x48267d24, (q31_t)0x9645bb61, (q31_t)0x48214c71, (q31_t)0x964230d7, - (q31_t)0x481c1b92, (q31_t)0x963ea68d, - (q31_t)0x4816ea86, (q31_t)0x963b1c86, (q31_t)0x4811b94d, (q31_t)0x963792bf, (q31_t)0x480c87e8, (q31_t)0x96340939, - (q31_t)0x48075657, (q31_t)0x96307ff5, - (q31_t)0x48022499, (q31_t)0x962cf6f2, (q31_t)0x47fcf2af, (q31_t)0x96296e31, (q31_t)0x47f7c099, (q31_t)0x9625e5b0, - (q31_t)0x47f28e56, (q31_t)0x96225d71, - (q31_t)0x47ed5be6, (q31_t)0x961ed574, (q31_t)0x47e8294a, (q31_t)0x961b4db7, (q31_t)0x47e2f682, (q31_t)0x9617c63c, - (q31_t)0x47ddc38e, (q31_t)0x96143f02, - (q31_t)0x47d8906d, (q31_t)0x9610b80a, (q31_t)0x47d35d20, (q31_t)0x960d3153, (q31_t)0x47ce29a7, (q31_t)0x9609aadd, - (q31_t)0x47c8f601, (q31_t)0x960624a9, - (q31_t)0x47c3c22f, (q31_t)0x96029eb6, (q31_t)0x47be8e31, (q31_t)0x95ff1904, (q31_t)0x47b95a06, (q31_t)0x95fb9394, - (q31_t)0x47b425af, (q31_t)0x95f80e65, - (q31_t)0x47aef12c, (q31_t)0x95f48977, (q31_t)0x47a9bc7d, (q31_t)0x95f104cb, (q31_t)0x47a487a2, (q31_t)0x95ed8061, - (q31_t)0x479f529a, (q31_t)0x95e9fc38, - (q31_t)0x479a1d67, (q31_t)0x95e67850, (q31_t)0x4794e807, (q31_t)0x95e2f4a9, (q31_t)0x478fb27b, (q31_t)0x95df7145, - (q31_t)0x478a7cc2, (q31_t)0x95dbee21, - (q31_t)0x478546de, (q31_t)0x95d86b3f, (q31_t)0x478010cd, (q31_t)0x95d4e89f, (q31_t)0x477ada91, (q31_t)0x95d16640, - (q31_t)0x4775a428, (q31_t)0x95cde423, - (q31_t)0x47706d93, (q31_t)0x95ca6247, (q31_t)0x476b36d3, (q31_t)0x95c6e0ac, (q31_t)0x4765ffe6, (q31_t)0x95c35f53, - (q31_t)0x4760c8cd, (q31_t)0x95bfde3c, - (q31_t)0x475b9188, (q31_t)0x95bc5d66, (q31_t)0x47565a17, (q31_t)0x95b8dcd2, (q31_t)0x4751227a, (q31_t)0x95b55c7f, - (q31_t)0x474beab1, (q31_t)0x95b1dc6e, - (q31_t)0x4746b2bc, (q31_t)0x95ae5c9f, (q31_t)0x47417a9b, (q31_t)0x95aadd11, (q31_t)0x473c424e, (q31_t)0x95a75dc4, - (q31_t)0x473709d5, (q31_t)0x95a3deb9, - (q31_t)0x4731d131, (q31_t)0x95a05ff0, (q31_t)0x472c9860, (q31_t)0x959ce169, (q31_t)0x47275f63, (q31_t)0x95996323, - (q31_t)0x4722263b, (q31_t)0x9595e51e, - (q31_t)0x471cece7, (q31_t)0x9592675c, (q31_t)0x4717b367, (q31_t)0x958ee9db, (q31_t)0x471279ba, (q31_t)0x958b6c9b, - (q31_t)0x470d3fe3, (q31_t)0x9587ef9e, - (q31_t)0x470805df, (q31_t)0x958472e2, (q31_t)0x4702cbaf, (q31_t)0x9580f667, (q31_t)0x46fd9154, (q31_t)0x957d7a2f, - (q31_t)0x46f856cd, (q31_t)0x9579fe38, - (q31_t)0x46f31c1a, (q31_t)0x95768283, (q31_t)0x46ede13b, (q31_t)0x9573070f, (q31_t)0x46e8a631, (q31_t)0x956f8bdd, - (q31_t)0x46e36afb, (q31_t)0x956c10ed, - (q31_t)0x46de2f99, (q31_t)0x9568963f, (q31_t)0x46d8f40b, (q31_t)0x95651bd2, (q31_t)0x46d3b852, (q31_t)0x9561a1a8, - (q31_t)0x46ce7c6d, (q31_t)0x955e27bf, - (q31_t)0x46c9405c, (q31_t)0x955aae17, (q31_t)0x46c40420, (q31_t)0x955734b2, (q31_t)0x46bec7b8, (q31_t)0x9553bb8e, - (q31_t)0x46b98b24, (q31_t)0x955042ac, - (q31_t)0x46b44e65, (q31_t)0x954cca0c, (q31_t)0x46af117a, (q31_t)0x954951ae, (q31_t)0x46a9d464, (q31_t)0x9545d992, - (q31_t)0x46a49722, (q31_t)0x954261b7, - (q31_t)0x469f59b4, (q31_t)0x953eea1e, (q31_t)0x469a1c1b, (q31_t)0x953b72c7, (q31_t)0x4694de56, (q31_t)0x9537fbb2, - (q31_t)0x468fa066, (q31_t)0x953484df, - (q31_t)0x468a624a, (q31_t)0x95310e4e, (q31_t)0x46852403, (q31_t)0x952d97fe, (q31_t)0x467fe590, (q31_t)0x952a21f1, - (q31_t)0x467aa6f2, (q31_t)0x9526ac25, - (q31_t)0x46756828, (q31_t)0x9523369c, (q31_t)0x46702933, (q31_t)0x951fc154, (q31_t)0x466aea12, (q31_t)0x951c4c4e, - (q31_t)0x4665aac6, (q31_t)0x9518d78a, - (q31_t)0x46606b4e, (q31_t)0x95156308, (q31_t)0x465b2bab, (q31_t)0x9511eec8, (q31_t)0x4655ebdd, (q31_t)0x950e7aca, - (q31_t)0x4650abe3, (q31_t)0x950b070e, - (q31_t)0x464b6bbe, (q31_t)0x95079394, (q31_t)0x46462b6d, (q31_t)0x9504205c, (q31_t)0x4640eaf2, (q31_t)0x9500ad66, - (q31_t)0x463baa4a, (q31_t)0x94fd3ab1, - (q31_t)0x46366978, (q31_t)0x94f9c83f, (q31_t)0x4631287a, (q31_t)0x94f6560f, (q31_t)0x462be751, (q31_t)0x94f2e421, - (q31_t)0x4626a5fd, (q31_t)0x94ef7275, - (q31_t)0x4621647d, (q31_t)0x94ec010b, (q31_t)0x461c22d2, (q31_t)0x94e88fe3, (q31_t)0x4616e0fc, (q31_t)0x94e51efd, - (q31_t)0x46119efa, (q31_t)0x94e1ae59, - (q31_t)0x460c5cce, (q31_t)0x94de3df8, (q31_t)0x46071a76, (q31_t)0x94dacdd8, (q31_t)0x4601d7f3, (q31_t)0x94d75dfa, - (q31_t)0x45fc9545, (q31_t)0x94d3ee5f, - (q31_t)0x45f7526b, (q31_t)0x94d07f05, (q31_t)0x45f20f67, (q31_t)0x94cd0fee, (q31_t)0x45eccc37, (q31_t)0x94c9a119, - (q31_t)0x45e788dc, (q31_t)0x94c63286, - (q31_t)0x45e24556, (q31_t)0x94c2c435, (q31_t)0x45dd01a5, (q31_t)0x94bf5627, (q31_t)0x45d7bdc9, (q31_t)0x94bbe85a, - (q31_t)0x45d279c2, (q31_t)0x94b87ad0, - (q31_t)0x45cd358f, (q31_t)0x94b50d87, (q31_t)0x45c7f132, (q31_t)0x94b1a081, (q31_t)0x45c2acaa, (q31_t)0x94ae33be, - (q31_t)0x45bd67f6, (q31_t)0x94aac73c, - (q31_t)0x45b82318, (q31_t)0x94a75afd, (q31_t)0x45b2de0e, (q31_t)0x94a3eeff, (q31_t)0x45ad98da, (q31_t)0x94a08344, - (q31_t)0x45a8537a, (q31_t)0x949d17cc, - (q31_t)0x45a30df0, (q31_t)0x9499ac95, (q31_t)0x459dc83b, (q31_t)0x949641a1, (q31_t)0x4598825a, (q31_t)0x9492d6ef, - (q31_t)0x45933c4f, (q31_t)0x948f6c7f, - (q31_t)0x458df619, (q31_t)0x948c0252, (q31_t)0x4588afb8, (q31_t)0x94889867, (q31_t)0x4583692c, (q31_t)0x94852ebe, - (q31_t)0x457e2275, (q31_t)0x9481c557, - (q31_t)0x4578db93, (q31_t)0x947e5c33, (q31_t)0x45739487, (q31_t)0x947af351, (q31_t)0x456e4d4f, (q31_t)0x94778ab1, - (q31_t)0x456905ed, (q31_t)0x94742254, - (q31_t)0x4563be60, (q31_t)0x9470ba39, (q31_t)0x455e76a8, (q31_t)0x946d5260, (q31_t)0x45592ec6, (q31_t)0x9469eaca, - (q31_t)0x4553e6b8, (q31_t)0x94668376, - (q31_t)0x454e9e80, (q31_t)0x94631c65, (q31_t)0x4549561d, (q31_t)0x945fb596, (q31_t)0x45440d90, (q31_t)0x945c4f09, - (q31_t)0x453ec4d7, (q31_t)0x9458e8bf, - (q31_t)0x45397bf4, (q31_t)0x945582b7, (q31_t)0x453432e6, (q31_t)0x94521cf1, (q31_t)0x452ee9ae, (q31_t)0x944eb76e, - (q31_t)0x4529a04b, (q31_t)0x944b522d, - (q31_t)0x452456bd, (q31_t)0x9447ed2f, (q31_t)0x451f0d04, (q31_t)0x94448873, (q31_t)0x4519c321, (q31_t)0x944123fa, - (q31_t)0x45147913, (q31_t)0x943dbfc3, - (q31_t)0x450f2edb, (q31_t)0x943a5bcf, (q31_t)0x4509e478, (q31_t)0x9436f81d, (q31_t)0x450499eb, (q31_t)0x943394ad, - (q31_t)0x44ff4f32, (q31_t)0x94303180, - (q31_t)0x44fa0450, (q31_t)0x942cce96, (q31_t)0x44f4b943, (q31_t)0x94296bee, (q31_t)0x44ef6e0b, (q31_t)0x94260989, - (q31_t)0x44ea22a9, (q31_t)0x9422a766, - (q31_t)0x44e4d71c, (q31_t)0x941f4585, (q31_t)0x44df8b64, (q31_t)0x941be3e8, (q31_t)0x44da3f83, (q31_t)0x9418828c, - (q31_t)0x44d4f376, (q31_t)0x94152174, - (q31_t)0x44cfa740, (q31_t)0x9411c09e, (q31_t)0x44ca5adf, (q31_t)0x940e600a, (q31_t)0x44c50e53, (q31_t)0x940affb9, - (q31_t)0x44bfc19d, (q31_t)0x94079fab, - (q31_t)0x44ba74bd, (q31_t)0x94043fdf, (q31_t)0x44b527b2, (q31_t)0x9400e056, (q31_t)0x44afda7d, (q31_t)0x93fd810f, - (q31_t)0x44aa8d1d, (q31_t)0x93fa220b, - (q31_t)0x44a53f93, (q31_t)0x93f6c34a, (q31_t)0x449ff1df, (q31_t)0x93f364cb, (q31_t)0x449aa400, (q31_t)0x93f0068f, - (q31_t)0x449555f7, (q31_t)0x93eca896, - (q31_t)0x449007c4, (q31_t)0x93e94adf, (q31_t)0x448ab967, (q31_t)0x93e5ed6b, (q31_t)0x44856adf, (q31_t)0x93e2903a, - (q31_t)0x44801c2d, (q31_t)0x93df334c, - (q31_t)0x447acd50, (q31_t)0x93dbd6a0, (q31_t)0x44757e4a, (q31_t)0x93d87a36, (q31_t)0x44702f19, (q31_t)0x93d51e10, - (q31_t)0x446adfbe, (q31_t)0x93d1c22c, - (q31_t)0x44659039, (q31_t)0x93ce668b, (q31_t)0x44604089, (q31_t)0x93cb0b2d, (q31_t)0x445af0b0, (q31_t)0x93c7b011, - (q31_t)0x4455a0ac, (q31_t)0x93c45539, - (q31_t)0x4450507e, (q31_t)0x93c0faa3, (q31_t)0x444b0026, (q31_t)0x93bda04f, (q31_t)0x4445afa4, (q31_t)0x93ba463f, - (q31_t)0x44405ef8, (q31_t)0x93b6ec71, - (q31_t)0x443b0e21, (q31_t)0x93b392e6, (q31_t)0x4435bd21, (q31_t)0x93b0399e, (q31_t)0x44306bf6, (q31_t)0x93ace099, - (q31_t)0x442b1aa2, (q31_t)0x93a987d6, - (q31_t)0x4425c923, (q31_t)0x93a62f57, (q31_t)0x4420777b, (q31_t)0x93a2d71a, (q31_t)0x441b25a8, (q31_t)0x939f7f20, - (q31_t)0x4415d3ab, (q31_t)0x939c2769, - (q31_t)0x44108184, (q31_t)0x9398cff5, (q31_t)0x440b2f34, (q31_t)0x939578c3, (q31_t)0x4405dcb9, (q31_t)0x939221d5, - (q31_t)0x44008a14, (q31_t)0x938ecb29, - (q31_t)0x43fb3746, (q31_t)0x938b74c1, (q31_t)0x43f5e44d, (q31_t)0x93881e9b, (q31_t)0x43f0912b, (q31_t)0x9384c8b8, - (q31_t)0x43eb3ddf, (q31_t)0x93817318, - (q31_t)0x43e5ea68, (q31_t)0x937e1dbb, (q31_t)0x43e096c8, (q31_t)0x937ac8a1, (q31_t)0x43db42fe, (q31_t)0x937773ca, - (q31_t)0x43d5ef0a, (q31_t)0x93741f35, - (q31_t)0x43d09aed, (q31_t)0x9370cae4, (q31_t)0x43cb46a5, (q31_t)0x936d76d6, (q31_t)0x43c5f234, (q31_t)0x936a230a, - (q31_t)0x43c09d99, (q31_t)0x9366cf82, - (q31_t)0x43bb48d4, (q31_t)0x93637c3d, (q31_t)0x43b5f3e5, (q31_t)0x9360293a, (q31_t)0x43b09ecc, (q31_t)0x935cd67b, - (q31_t)0x43ab498a, (q31_t)0x935983ff, - (q31_t)0x43a5f41e, (q31_t)0x935631c5, (q31_t)0x43a09e89, (q31_t)0x9352dfcf, (q31_t)0x439b48c9, (q31_t)0x934f8e1c, - (q31_t)0x4395f2e0, (q31_t)0x934c3cab, - (q31_t)0x43909ccd, (q31_t)0x9348eb7e, (q31_t)0x438b4691, (q31_t)0x93459a94, (q31_t)0x4385f02a, (q31_t)0x934249ed, - (q31_t)0x4380999b, (q31_t)0x933ef989, - (q31_t)0x437b42e1, (q31_t)0x933ba968, (q31_t)0x4375ebfe, (q31_t)0x9338598a, (q31_t)0x437094f1, (q31_t)0x933509f0, - (q31_t)0x436b3dbb, (q31_t)0x9331ba98, - (q31_t)0x4365e65b, (q31_t)0x932e6b84, (q31_t)0x43608ed2, (q31_t)0x932b1cb2, (q31_t)0x435b371f, (q31_t)0x9327ce24, - (q31_t)0x4355df42, (q31_t)0x93247fd9, - (q31_t)0x4350873c, (q31_t)0x932131d1, (q31_t)0x434b2f0c, (q31_t)0x931de40c, (q31_t)0x4345d6b3, (q31_t)0x931a968b, - (q31_t)0x43407e31, (q31_t)0x9317494c, - (q31_t)0x433b2585, (q31_t)0x9313fc51, (q31_t)0x4335ccaf, (q31_t)0x9310af99, (q31_t)0x433073b0, (q31_t)0x930d6324, - (q31_t)0x432b1a87, (q31_t)0x930a16f3, - (q31_t)0x4325c135, (q31_t)0x9306cb04, (q31_t)0x432067ba, (q31_t)0x93037f59, (q31_t)0x431b0e15, (q31_t)0x930033f1, - (q31_t)0x4315b447, (q31_t)0x92fce8cc, - (q31_t)0x43105a50, (q31_t)0x92f99deb, (q31_t)0x430b002f, (q31_t)0x92f6534c, (q31_t)0x4305a5e5, (q31_t)0x92f308f1, - (q31_t)0x43004b71, (q31_t)0x92efbeda, - (q31_t)0x42faf0d4, (q31_t)0x92ec7505, (q31_t)0x42f5960e, (q31_t)0x92e92b74, (q31_t)0x42f03b1e, (q31_t)0x92e5e226, - (q31_t)0x42eae005, (q31_t)0x92e2991c, - (q31_t)0x42e584c3, (q31_t)0x92df5054, (q31_t)0x42e02958, (q31_t)0x92dc07d0, (q31_t)0x42dacdc3, (q31_t)0x92d8bf90, - (q31_t)0x42d57205, (q31_t)0x92d57792, - (q31_t)0x42d0161e, (q31_t)0x92d22fd9, (q31_t)0x42caba0e, (q31_t)0x92cee862, (q31_t)0x42c55dd4, (q31_t)0x92cba12f, - (q31_t)0x42c00172, (q31_t)0x92c85a3f, - (q31_t)0x42baa4e6, (q31_t)0x92c51392, (q31_t)0x42b54831, (q31_t)0x92c1cd29, (q31_t)0x42afeb53, (q31_t)0x92be8703, - (q31_t)0x42aa8e4b, (q31_t)0x92bb4121, - (q31_t)0x42a5311b, (q31_t)0x92b7fb82, (q31_t)0x429fd3c1, (q31_t)0x92b4b626, (q31_t)0x429a763f, (q31_t)0x92b1710e, - (q31_t)0x42951893, (q31_t)0x92ae2c3a, - (q31_t)0x428fbabe, (q31_t)0x92aae7a8, (q31_t)0x428a5cc0, (q31_t)0x92a7a35a, (q31_t)0x4284fe99, (q31_t)0x92a45f50, - (q31_t)0x427fa049, (q31_t)0x92a11b89, - (q31_t)0x427a41d0, (q31_t)0x929dd806, (q31_t)0x4274e32e, (q31_t)0x929a94c6, (q31_t)0x426f8463, (q31_t)0x929751c9, - (q31_t)0x426a256f, (q31_t)0x92940f10, - (q31_t)0x4264c653, (q31_t)0x9290cc9b, (q31_t)0x425f670d, (q31_t)0x928d8a69, (q31_t)0x425a079e, (q31_t)0x928a487a, - (q31_t)0x4254a806, (q31_t)0x928706cf, - (q31_t)0x424f4845, (q31_t)0x9283c568, (q31_t)0x4249e85c, (q31_t)0x92808444, (q31_t)0x42448849, (q31_t)0x927d4363, - (q31_t)0x423f280e, (q31_t)0x927a02c7, - (q31_t)0x4239c7aa, (q31_t)0x9276c26d, (q31_t)0x4234671d, (q31_t)0x92738258, (q31_t)0x422f0667, (q31_t)0x92704286, - (q31_t)0x4229a588, (q31_t)0x926d02f7, - (q31_t)0x42244481, (q31_t)0x9269c3ac, (q31_t)0x421ee350, (q31_t)0x926684a5, (q31_t)0x421981f7, (q31_t)0x926345e1, - (q31_t)0x42142075, (q31_t)0x92600761, - (q31_t)0x420ebecb, (q31_t)0x925cc924, (q31_t)0x42095cf7, (q31_t)0x92598b2b, (q31_t)0x4203fafb, (q31_t)0x92564d76, - (q31_t)0x41fe98d6, (q31_t)0x92531005, - (q31_t)0x41f93689, (q31_t)0x924fd2d7, (q31_t)0x41f3d413, (q31_t)0x924c95ec, (q31_t)0x41ee7174, (q31_t)0x92495946, - (q31_t)0x41e90eac, (q31_t)0x92461ce3, - (q31_t)0x41e3abbc, (q31_t)0x9242e0c4, (q31_t)0x41de48a3, (q31_t)0x923fa4e8, (q31_t)0x41d8e561, (q31_t)0x923c6950, - (q31_t)0x41d381f7, (q31_t)0x92392dfc, - (q31_t)0x41ce1e65, (q31_t)0x9235f2ec, (q31_t)0x41c8baa9, (q31_t)0x9232b81f, (q31_t)0x41c356c5, (q31_t)0x922f7d96, - (q31_t)0x41bdf2b9, (q31_t)0x922c4351, - (q31_t)0x41b88e84, (q31_t)0x9229094f, (q31_t)0x41b32a26, (q31_t)0x9225cf91, (q31_t)0x41adc5a0, (q31_t)0x92229617, - (q31_t)0x41a860f1, (q31_t)0x921f5ce1, - (q31_t)0x41a2fc1a, (q31_t)0x921c23ef, (q31_t)0x419d971b, (q31_t)0x9218eb40, (q31_t)0x419831f3, (q31_t)0x9215b2d5, - (q31_t)0x4192cca2, (q31_t)0x92127aae, - (q31_t)0x418d6729, (q31_t)0x920f42cb, (q31_t)0x41880188, (q31_t)0x920c0b2c, (q31_t)0x41829bbe, (q31_t)0x9208d3d0, - (q31_t)0x417d35cb, (q31_t)0x92059cb8, - (q31_t)0x4177cfb1, (q31_t)0x920265e4, (q31_t)0x4172696e, (q31_t)0x91ff2f54, (q31_t)0x416d0302, (q31_t)0x91fbf908, - (q31_t)0x41679c6f, (q31_t)0x91f8c300, - (q31_t)0x416235b2, (q31_t)0x91f58d3b, (q31_t)0x415ccece, (q31_t)0x91f257bb, (q31_t)0x415767c1, (q31_t)0x91ef227e, - (q31_t)0x4152008c, (q31_t)0x91ebed85, - (q31_t)0x414c992f, (q31_t)0x91e8b8d0, (q31_t)0x414731a9, (q31_t)0x91e5845f, (q31_t)0x4141c9fb, (q31_t)0x91e25032, - (q31_t)0x413c6225, (q31_t)0x91df1c49, - (q31_t)0x4136fa27, (q31_t)0x91dbe8a4, (q31_t)0x41319200, (q31_t)0x91d8b542, (q31_t)0x412c29b1, (q31_t)0x91d58225, - (q31_t)0x4126c13a, (q31_t)0x91d24f4c, - (q31_t)0x4121589b, (q31_t)0x91cf1cb6, (q31_t)0x411befd3, (q31_t)0x91cbea65, (q31_t)0x411686e4, (q31_t)0x91c8b857, - (q31_t)0x41111dcc, (q31_t)0x91c5868e, - (q31_t)0x410bb48c, (q31_t)0x91c25508, (q31_t)0x41064b24, (q31_t)0x91bf23c7, (q31_t)0x4100e194, (q31_t)0x91bbf2c9, - (q31_t)0x40fb77dc, (q31_t)0x91b8c210, - (q31_t)0x40f60dfb, (q31_t)0x91b5919a, (q31_t)0x40f0a3f3, (q31_t)0x91b26169, (q31_t)0x40eb39c3, (q31_t)0x91af317c, - (q31_t)0x40e5cf6a, (q31_t)0x91ac01d2, - (q31_t)0x40e064ea, (q31_t)0x91a8d26d, (q31_t)0x40dafa41, (q31_t)0x91a5a34c, (q31_t)0x40d58f71, (q31_t)0x91a2746f, - (q31_t)0x40d02478, (q31_t)0x919f45d6, - (q31_t)0x40cab958, (q31_t)0x919c1781, (q31_t)0x40c54e0f, (q31_t)0x9198e970, (q31_t)0x40bfe29f, (q31_t)0x9195bba3, - (q31_t)0x40ba7706, (q31_t)0x91928e1a, - (q31_t)0x40b50b46, (q31_t)0x918f60d6, (q31_t)0x40af9f5e, (q31_t)0x918c33d5, (q31_t)0x40aa334e, (q31_t)0x91890719, - (q31_t)0x40a4c716, (q31_t)0x9185daa1, - (q31_t)0x409f5ab6, (q31_t)0x9182ae6d, (q31_t)0x4099ee2e, (q31_t)0x917f827d, (q31_t)0x4094817f, (q31_t)0x917c56d1, - (q31_t)0x408f14a7, (q31_t)0x91792b6a, - (q31_t)0x4089a7a8, (q31_t)0x91760047, (q31_t)0x40843a81, (q31_t)0x9172d567, (q31_t)0x407ecd32, (q31_t)0x916faacc, - (q31_t)0x40795fbc, (q31_t)0x916c8076, - (q31_t)0x4073f21d, (q31_t)0x91695663, (q31_t)0x406e8457, (q31_t)0x91662c95, (q31_t)0x40691669, (q31_t)0x9163030b, - (q31_t)0x4063a854, (q31_t)0x915fd9c5, - (q31_t)0x405e3a16, (q31_t)0x915cb0c3, (q31_t)0x4058cbb1, (q31_t)0x91598806, (q31_t)0x40535d24, (q31_t)0x91565f8d, - (q31_t)0x404dee70, (q31_t)0x91533758, - (q31_t)0x40487f94, (q31_t)0x91500f67, (q31_t)0x40431090, (q31_t)0x914ce7bb, (q31_t)0x403da165, (q31_t)0x9149c053, - (q31_t)0x40383212, (q31_t)0x9146992f, - (q31_t)0x4032c297, (q31_t)0x91437250, (q31_t)0x402d52f5, (q31_t)0x91404bb5, (q31_t)0x4027e32b, (q31_t)0x913d255e, - (q31_t)0x4022733a, (q31_t)0x9139ff4b, - (q31_t)0x401d0321, (q31_t)0x9136d97d, (q31_t)0x401792e0, (q31_t)0x9133b3f3, (q31_t)0x40122278, (q31_t)0x91308eae, - (q31_t)0x400cb1e9, (q31_t)0x912d69ad, - (q31_t)0x40074132, (q31_t)0x912a44f0, (q31_t)0x4001d053, (q31_t)0x91272078, (q31_t)0x3ffc5f4d, (q31_t)0x9123fc44, - (q31_t)0x3ff6ee1f, (q31_t)0x9120d854, - (q31_t)0x3ff17cca, (q31_t)0x911db4a9, (q31_t)0x3fec0b4e, (q31_t)0x911a9142, (q31_t)0x3fe699aa, (q31_t)0x91176e1f, - (q31_t)0x3fe127df, (q31_t)0x91144b41, - (q31_t)0x3fdbb5ec, (q31_t)0x911128a8, (q31_t)0x3fd643d2, (q31_t)0x910e0653, (q31_t)0x3fd0d191, (q31_t)0x910ae442, - (q31_t)0x3fcb5f28, (q31_t)0x9107c276, - (q31_t)0x3fc5ec98, (q31_t)0x9104a0ee, (q31_t)0x3fc079e0, (q31_t)0x91017faa, (q31_t)0x3fbb0702, (q31_t)0x90fe5eab, - (q31_t)0x3fb593fb, (q31_t)0x90fb3df1, - (q31_t)0x3fb020ce, (q31_t)0x90f81d7b, (q31_t)0x3faaad79, (q31_t)0x90f4fd4a, (q31_t)0x3fa539fd, (q31_t)0x90f1dd5d, - (q31_t)0x3f9fc65a, (q31_t)0x90eebdb4, - (q31_t)0x3f9a5290, (q31_t)0x90eb9e50, (q31_t)0x3f94de9e, (q31_t)0x90e87f31, (q31_t)0x3f8f6a85, (q31_t)0x90e56056, - (q31_t)0x3f89f645, (q31_t)0x90e241bf, - (q31_t)0x3f8481dd, (q31_t)0x90df236e, (q31_t)0x3f7f0d4f, (q31_t)0x90dc0560, (q31_t)0x3f799899, (q31_t)0x90d8e798, - (q31_t)0x3f7423bc, (q31_t)0x90d5ca13, - (q31_t)0x3f6eaeb8, (q31_t)0x90d2acd4, (q31_t)0x3f69398d, (q31_t)0x90cf8fd9, (q31_t)0x3f63c43b, (q31_t)0x90cc7322, - (q31_t)0x3f5e4ec2, (q31_t)0x90c956b1, - (q31_t)0x3f58d921, (q31_t)0x90c63a83, (q31_t)0x3f53635a, (q31_t)0x90c31e9b, (q31_t)0x3f4ded6b, (q31_t)0x90c002f7, - (q31_t)0x3f487755, (q31_t)0x90bce797, - (q31_t)0x3f430119, (q31_t)0x90b9cc7d, (q31_t)0x3f3d8ab5, (q31_t)0x90b6b1a6, (q31_t)0x3f38142a, (q31_t)0x90b39715, - (q31_t)0x3f329d79, (q31_t)0x90b07cc8, - (q31_t)0x3f2d26a0, (q31_t)0x90ad62c0, (q31_t)0x3f27afa1, (q31_t)0x90aa48fd, (q31_t)0x3f22387a, (q31_t)0x90a72f7e, - (q31_t)0x3f1cc12c, (q31_t)0x90a41644, - (q31_t)0x3f1749b8, (q31_t)0x90a0fd4e, (q31_t)0x3f11d21d, (q31_t)0x909de49e, (q31_t)0x3f0c5a5a, (q31_t)0x909acc32, - (q31_t)0x3f06e271, (q31_t)0x9097b40a, - (q31_t)0x3f016a61, (q31_t)0x90949c28, (q31_t)0x3efbf22a, (q31_t)0x9091848a, (q31_t)0x3ef679cc, (q31_t)0x908e6d31, - (q31_t)0x3ef10148, (q31_t)0x908b561c, - (q31_t)0x3eeb889c, (q31_t)0x90883f4d, (q31_t)0x3ee60fca, (q31_t)0x908528c2, (q31_t)0x3ee096d1, (q31_t)0x9082127c, - (q31_t)0x3edb1db1, (q31_t)0x907efc7a, - (q31_t)0x3ed5a46b, (q31_t)0x907be6be, (q31_t)0x3ed02afd, (q31_t)0x9078d146, (q31_t)0x3ecab169, (q31_t)0x9075bc13, - (q31_t)0x3ec537ae, (q31_t)0x9072a725, - (q31_t)0x3ebfbdcd, (q31_t)0x906f927c, (q31_t)0x3eba43c4, (q31_t)0x906c7e17, (q31_t)0x3eb4c995, (q31_t)0x906969f8, - (q31_t)0x3eaf4f40, (q31_t)0x9066561d, - (q31_t)0x3ea9d4c3, (q31_t)0x90634287, (q31_t)0x3ea45a21, (q31_t)0x90602f35, (q31_t)0x3e9edf57, (q31_t)0x905d1c29, - (q31_t)0x3e996467, (q31_t)0x905a0962, - (q31_t)0x3e93e950, (q31_t)0x9056f6df, (q31_t)0x3e8e6e12, (q31_t)0x9053e4a1, (q31_t)0x3e88f2ae, (q31_t)0x9050d2a9, - (q31_t)0x3e837724, (q31_t)0x904dc0f5, - (q31_t)0x3e7dfb73, (q31_t)0x904aaf86, (q31_t)0x3e787f9b, (q31_t)0x90479e5c, (q31_t)0x3e73039d, (q31_t)0x90448d76, - (q31_t)0x3e6d8778, (q31_t)0x90417cd6, - (q31_t)0x3e680b2c, (q31_t)0x903e6c7b, (q31_t)0x3e628ebb, (q31_t)0x903b5c64, (q31_t)0x3e5d1222, (q31_t)0x90384c93, - (q31_t)0x3e579564, (q31_t)0x90353d06, - (q31_t)0x3e52187f, (q31_t)0x90322dbf, (q31_t)0x3e4c9b73, (q31_t)0x902f1ebc, (q31_t)0x3e471e41, (q31_t)0x902c0fff, - (q31_t)0x3e41a0e8, (q31_t)0x90290186, - (q31_t)0x3e3c2369, (q31_t)0x9025f352, (q31_t)0x3e36a5c4, (q31_t)0x9022e564, (q31_t)0x3e3127f9, (q31_t)0x901fd7ba, - (q31_t)0x3e2baa07, (q31_t)0x901cca55, - (q31_t)0x3e262bee, (q31_t)0x9019bd36, (q31_t)0x3e20adaf, (q31_t)0x9016b05b, (q31_t)0x3e1b2f4a, (q31_t)0x9013a3c5, - (q31_t)0x3e15b0bf, (q31_t)0x90109775, - (q31_t)0x3e10320d, (q31_t)0x900d8b69, (q31_t)0x3e0ab336, (q31_t)0x900a7fa3, (q31_t)0x3e053437, (q31_t)0x90077422, - (q31_t)0x3dffb513, (q31_t)0x900468e5, - (q31_t)0x3dfa35c8, (q31_t)0x90015dee, (q31_t)0x3df4b657, (q31_t)0x8ffe533c, (q31_t)0x3def36c0, (q31_t)0x8ffb48cf, - (q31_t)0x3de9b703, (q31_t)0x8ff83ea7, - (q31_t)0x3de4371f, (q31_t)0x8ff534c4, (q31_t)0x3ddeb716, (q31_t)0x8ff22b26, (q31_t)0x3dd936e6, (q31_t)0x8fef21ce, - (q31_t)0x3dd3b690, (q31_t)0x8fec18ba, - (q31_t)0x3dce3614, (q31_t)0x8fe90fec, (q31_t)0x3dc8b571, (q31_t)0x8fe60763, (q31_t)0x3dc334a9, (q31_t)0x8fe2ff1f, - (q31_t)0x3dbdb3ba, (q31_t)0x8fdff720, - (q31_t)0x3db832a6, (q31_t)0x8fdcef66, (q31_t)0x3db2b16b, (q31_t)0x8fd9e7f2, (q31_t)0x3dad300b, (q31_t)0x8fd6e0c2, - (q31_t)0x3da7ae84, (q31_t)0x8fd3d9d8, - (q31_t)0x3da22cd7, (q31_t)0x8fd0d333, (q31_t)0x3d9cab04, (q31_t)0x8fcdccd3, (q31_t)0x3d97290b, (q31_t)0x8fcac6b9, - (q31_t)0x3d91a6ed, (q31_t)0x8fc7c0e3, - (q31_t)0x3d8c24a8, (q31_t)0x8fc4bb53, (q31_t)0x3d86a23d, (q31_t)0x8fc1b608, (q31_t)0x3d811fac, (q31_t)0x8fbeb103, - (q31_t)0x3d7b9cf6, (q31_t)0x8fbbac42, - (q31_t)0x3d761a19, (q31_t)0x8fb8a7c7, (q31_t)0x3d709717, (q31_t)0x8fb5a391, (q31_t)0x3d6b13ee, (q31_t)0x8fb29fa0, - (q31_t)0x3d6590a0, (q31_t)0x8faf9bf5, - (q31_t)0x3d600d2c, (q31_t)0x8fac988f, (q31_t)0x3d5a8992, (q31_t)0x8fa9956e, (q31_t)0x3d5505d2, (q31_t)0x8fa69293, - (q31_t)0x3d4f81ec, (q31_t)0x8fa38ffc, - (q31_t)0x3d49fde1, (q31_t)0x8fa08dab, (q31_t)0x3d4479b0, (q31_t)0x8f9d8ba0, (q31_t)0x3d3ef559, (q31_t)0x8f9a89da, - (q31_t)0x3d3970dc, (q31_t)0x8f978859, - (q31_t)0x3d33ec39, (q31_t)0x8f94871d, (q31_t)0x3d2e6771, (q31_t)0x8f918627, (q31_t)0x3d28e282, (q31_t)0x8f8e8576, - (q31_t)0x3d235d6f, (q31_t)0x8f8b850a, - (q31_t)0x3d1dd835, (q31_t)0x8f8884e4, (q31_t)0x3d1852d6, (q31_t)0x8f858503, (q31_t)0x3d12cd51, (q31_t)0x8f828568, - (q31_t)0x3d0d47a6, (q31_t)0x8f7f8612, - (q31_t)0x3d07c1d6, (q31_t)0x8f7c8701, (q31_t)0x3d023be0, (q31_t)0x8f798836, (q31_t)0x3cfcb5c4, (q31_t)0x8f7689b0, - (q31_t)0x3cf72f83, (q31_t)0x8f738b70, - (q31_t)0x3cf1a91c, (q31_t)0x8f708d75, (q31_t)0x3cec2290, (q31_t)0x8f6d8fbf, (q31_t)0x3ce69bde, (q31_t)0x8f6a924f, - (q31_t)0x3ce11507, (q31_t)0x8f679525, - (q31_t)0x3cdb8e09, (q31_t)0x8f649840, (q31_t)0x3cd606e7, (q31_t)0x8f619ba0, (q31_t)0x3cd07f9f, (q31_t)0x8f5e9f46, - (q31_t)0x3ccaf831, (q31_t)0x8f5ba331, - (q31_t)0x3cc5709e, (q31_t)0x8f58a761, (q31_t)0x3cbfe8e5, (q31_t)0x8f55abd8, (q31_t)0x3cba6107, (q31_t)0x8f52b093, - (q31_t)0x3cb4d904, (q31_t)0x8f4fb595, - (q31_t)0x3caf50da, (q31_t)0x8f4cbadb, (q31_t)0x3ca9c88c, (q31_t)0x8f49c067, (q31_t)0x3ca44018, (q31_t)0x8f46c639, - (q31_t)0x3c9eb77f, (q31_t)0x8f43cc50, - (q31_t)0x3c992ec0, (q31_t)0x8f40d2ad, (q31_t)0x3c93a5dc, (q31_t)0x8f3dd950, (q31_t)0x3c8e1cd3, (q31_t)0x8f3ae038, - (q31_t)0x3c8893a4, (q31_t)0x8f37e765, - (q31_t)0x3c830a50, (q31_t)0x8f34eed8, (q31_t)0x3c7d80d6, (q31_t)0x8f31f691, (q31_t)0x3c77f737, (q31_t)0x8f2efe8f, - (q31_t)0x3c726d73, (q31_t)0x8f2c06d3, - (q31_t)0x3c6ce38a, (q31_t)0x8f290f5c, (q31_t)0x3c67597b, (q31_t)0x8f26182b, (q31_t)0x3c61cf48, (q31_t)0x8f232140, - (q31_t)0x3c5c44ee, (q31_t)0x8f202a9a, - (q31_t)0x3c56ba70, (q31_t)0x8f1d343a, (q31_t)0x3c512fcc, (q31_t)0x8f1a3e1f, (q31_t)0x3c4ba504, (q31_t)0x8f17484b, - (q31_t)0x3c461a16, (q31_t)0x8f1452bb, - (q31_t)0x3c408f03, (q31_t)0x8f115d72, (q31_t)0x3c3b03ca, (q31_t)0x8f0e686e, (q31_t)0x3c35786d, (q31_t)0x8f0b73b0, - (q31_t)0x3c2fecea, (q31_t)0x8f087f37, - (q31_t)0x3c2a6142, (q31_t)0x8f058b04, (q31_t)0x3c24d575, (q31_t)0x8f029717, (q31_t)0x3c1f4983, (q31_t)0x8effa370, - (q31_t)0x3c19bd6c, (q31_t)0x8efcb00e, - (q31_t)0x3c143130, (q31_t)0x8ef9bcf2, (q31_t)0x3c0ea4cf, (q31_t)0x8ef6ca1c, (q31_t)0x3c091849, (q31_t)0x8ef3d78b, - (q31_t)0x3c038b9e, (q31_t)0x8ef0e540, - (q31_t)0x3bfdfecd, (q31_t)0x8eedf33b, (q31_t)0x3bf871d8, (q31_t)0x8eeb017c, (q31_t)0x3bf2e4be, (q31_t)0x8ee81002, - (q31_t)0x3bed577e, (q31_t)0x8ee51ece, - (q31_t)0x3be7ca1a, (q31_t)0x8ee22de0, (q31_t)0x3be23c91, (q31_t)0x8edf3d38, (q31_t)0x3bdcaee3, (q31_t)0x8edc4cd5, - (q31_t)0x3bd72110, (q31_t)0x8ed95cb8, - (q31_t)0x3bd19318, (q31_t)0x8ed66ce1, (q31_t)0x3bcc04fb, (q31_t)0x8ed37d50, (q31_t)0x3bc676b9, (q31_t)0x8ed08e05, - (q31_t)0x3bc0e853, (q31_t)0x8ecd9eff, - (q31_t)0x3bbb59c7, (q31_t)0x8ecab040, (q31_t)0x3bb5cb17, (q31_t)0x8ec7c1c6, (q31_t)0x3bb03c42, (q31_t)0x8ec4d392, - (q31_t)0x3baaad48, (q31_t)0x8ec1e5a4, - (q31_t)0x3ba51e29, (q31_t)0x8ebef7fb, (q31_t)0x3b9f8ee5, (q31_t)0x8ebc0a99, (q31_t)0x3b99ff7d, (q31_t)0x8eb91d7c, - (q31_t)0x3b946ff0, (q31_t)0x8eb630a6, - (q31_t)0x3b8ee03e, (q31_t)0x8eb34415, (q31_t)0x3b895068, (q31_t)0x8eb057ca, (q31_t)0x3b83c06c, (q31_t)0x8ead6bc5, - (q31_t)0x3b7e304c, (q31_t)0x8eaa8006, - (q31_t)0x3b78a007, (q31_t)0x8ea7948c, (q31_t)0x3b730f9e, (q31_t)0x8ea4a959, (q31_t)0x3b6d7f10, (q31_t)0x8ea1be6c, - (q31_t)0x3b67ee5d, (q31_t)0x8e9ed3c4, - (q31_t)0x3b625d86, (q31_t)0x8e9be963, (q31_t)0x3b5ccc8a, (q31_t)0x8e98ff47, (q31_t)0x3b573b69, (q31_t)0x8e961571, - (q31_t)0x3b51aa24, (q31_t)0x8e932be2, - (q31_t)0x3b4c18ba, (q31_t)0x8e904298, (q31_t)0x3b46872c, (q31_t)0x8e8d5994, (q31_t)0x3b40f579, (q31_t)0x8e8a70d7, - (q31_t)0x3b3b63a1, (q31_t)0x8e87885f, - (q31_t)0x3b35d1a5, (q31_t)0x8e84a02d, (q31_t)0x3b303f84, (q31_t)0x8e81b841, (q31_t)0x3b2aad3f, (q31_t)0x8e7ed09b, - (q31_t)0x3b251ad6, (q31_t)0x8e7be93c, - (q31_t)0x3b1f8848, (q31_t)0x8e790222, (q31_t)0x3b19f595, (q31_t)0x8e761b4e, (q31_t)0x3b1462be, (q31_t)0x8e7334c1, - (q31_t)0x3b0ecfc3, (q31_t)0x8e704e79, - (q31_t)0x3b093ca3, (q31_t)0x8e6d6877, (q31_t)0x3b03a95e, (q31_t)0x8e6a82bc, (q31_t)0x3afe15f6, (q31_t)0x8e679d47, - (q31_t)0x3af88269, (q31_t)0x8e64b817, - (q31_t)0x3af2eeb7, (q31_t)0x8e61d32e, (q31_t)0x3aed5ae1, (q31_t)0x8e5eee8b, (q31_t)0x3ae7c6e7, (q31_t)0x8e5c0a2e, - (q31_t)0x3ae232c9, (q31_t)0x8e592617, - (q31_t)0x3adc9e86, (q31_t)0x8e564246, (q31_t)0x3ad70a1f, (q31_t)0x8e535ebb, (q31_t)0x3ad17593, (q31_t)0x8e507b76, - (q31_t)0x3acbe0e3, (q31_t)0x8e4d9878, - (q31_t)0x3ac64c0f, (q31_t)0x8e4ab5bf, (q31_t)0x3ac0b717, (q31_t)0x8e47d34d, (q31_t)0x3abb21fb, (q31_t)0x8e44f121, - (q31_t)0x3ab58cba, (q31_t)0x8e420f3b, - (q31_t)0x3aaff755, (q31_t)0x8e3f2d9b, (q31_t)0x3aaa61cc, (q31_t)0x8e3c4c41, (q31_t)0x3aa4cc1e, (q31_t)0x8e396b2e, - (q31_t)0x3a9f364d, (q31_t)0x8e368a61, - (q31_t)0x3a99a057, (q31_t)0x8e33a9da, (q31_t)0x3a940a3e, (q31_t)0x8e30c999, (q31_t)0x3a8e7400, (q31_t)0x8e2de99e, - (q31_t)0x3a88dd9d, (q31_t)0x8e2b09e9, - (q31_t)0x3a834717, (q31_t)0x8e282a7b, (q31_t)0x3a7db06d, (q31_t)0x8e254b53, (q31_t)0x3a78199f, (q31_t)0x8e226c71, - (q31_t)0x3a7282ac, (q31_t)0x8e1f8dd6, - (q31_t)0x3a6ceb96, (q31_t)0x8e1caf80, (q31_t)0x3a67545b, (q31_t)0x8e19d171, (q31_t)0x3a61bcfd, (q31_t)0x8e16f3a9, - (q31_t)0x3a5c257a, (q31_t)0x8e141626, - (q31_t)0x3a568dd4, (q31_t)0x8e1138ea, (q31_t)0x3a50f609, (q31_t)0x8e0e5bf4, (q31_t)0x3a4b5e1b, (q31_t)0x8e0b7f44, - (q31_t)0x3a45c608, (q31_t)0x8e08a2db, - (q31_t)0x3a402dd2, (q31_t)0x8e05c6b7, (q31_t)0x3a3a9577, (q31_t)0x8e02eadb, (q31_t)0x3a34fcf9, (q31_t)0x8e000f44, - (q31_t)0x3a2f6457, (q31_t)0x8dfd33f4, - (q31_t)0x3a29cb91, (q31_t)0x8dfa58ea, (q31_t)0x3a2432a7, (q31_t)0x8df77e27, (q31_t)0x3a1e9999, (q31_t)0x8df4a3a9, - (q31_t)0x3a190068, (q31_t)0x8df1c973, - (q31_t)0x3a136712, (q31_t)0x8deeef82, (q31_t)0x3a0dcd99, (q31_t)0x8dec15d8, (q31_t)0x3a0833fc, (q31_t)0x8de93c74, - (q31_t)0x3a029a3b, (q31_t)0x8de66357, - (q31_t)0x39fd0056, (q31_t)0x8de38a80, (q31_t)0x39f7664e, (q31_t)0x8de0b1ef, (q31_t)0x39f1cc21, (q31_t)0x8dddd9a5, - (q31_t)0x39ec31d1, (q31_t)0x8ddb01a1, - (q31_t)0x39e6975e, (q31_t)0x8dd829e4, (q31_t)0x39e0fcc6, (q31_t)0x8dd5526d, (q31_t)0x39db620b, (q31_t)0x8dd27b3c, - (q31_t)0x39d5c72c, (q31_t)0x8dcfa452, - (q31_t)0x39d02c2a, (q31_t)0x8dcccdaf, (q31_t)0x39ca9104, (q31_t)0x8dc9f751, (q31_t)0x39c4f5ba, (q31_t)0x8dc7213b, - (q31_t)0x39bf5a4d, (q31_t)0x8dc44b6a, - (q31_t)0x39b9bebc, (q31_t)0x8dc175e0, (q31_t)0x39b42307, (q31_t)0x8dbea09d, (q31_t)0x39ae872f, (q31_t)0x8dbbcba0, - (q31_t)0x39a8eb33, (q31_t)0x8db8f6ea, - (q31_t)0x39a34f13, (q31_t)0x8db6227a, (q31_t)0x399db2d0, (q31_t)0x8db34e50, (q31_t)0x3998166a, (q31_t)0x8db07a6d, - (q31_t)0x399279e0, (q31_t)0x8dada6d1, - (q31_t)0x398cdd32, (q31_t)0x8daad37b, (q31_t)0x39874061, (q31_t)0x8da8006c, (q31_t)0x3981a36d, (q31_t)0x8da52da3, - (q31_t)0x397c0655, (q31_t)0x8da25b21, - (q31_t)0x39766919, (q31_t)0x8d9f88e5, (q31_t)0x3970cbba, (q31_t)0x8d9cb6f0, (q31_t)0x396b2e38, (q31_t)0x8d99e541, - (q31_t)0x39659092, (q31_t)0x8d9713d9, - (q31_t)0x395ff2c9, (q31_t)0x8d9442b8, (q31_t)0x395a54dd, (q31_t)0x8d9171dd, (q31_t)0x3954b6cd, (q31_t)0x8d8ea148, - (q31_t)0x394f1899, (q31_t)0x8d8bd0fb, - (q31_t)0x39497a43, (q31_t)0x8d8900f3, (q31_t)0x3943dbc9, (q31_t)0x8d863133, (q31_t)0x393e3d2c, (q31_t)0x8d8361b9, - (q31_t)0x39389e6b, (q31_t)0x8d809286, - (q31_t)0x3932ff87, (q31_t)0x8d7dc399, (q31_t)0x392d6080, (q31_t)0x8d7af4f3, (q31_t)0x3927c155, (q31_t)0x8d782694, - (q31_t)0x39222208, (q31_t)0x8d75587b, - (q31_t)0x391c8297, (q31_t)0x8d728aa9, (q31_t)0x3916e303, (q31_t)0x8d6fbd1d, (q31_t)0x3911434b, (q31_t)0x8d6cefd9, - (q31_t)0x390ba371, (q31_t)0x8d6a22db, - (q31_t)0x39060373, (q31_t)0x8d675623, (q31_t)0x39006352, (q31_t)0x8d6489b3, (q31_t)0x38fac30e, (q31_t)0x8d61bd89, - (q31_t)0x38f522a6, (q31_t)0x8d5ef1a5, - (q31_t)0x38ef821c, (q31_t)0x8d5c2609, (q31_t)0x38e9e16e, (q31_t)0x8d595ab3, (q31_t)0x38e4409e, (q31_t)0x8d568fa4, - (q31_t)0x38de9faa, (q31_t)0x8d53c4db, - (q31_t)0x38d8fe93, (q31_t)0x8d50fa59, (q31_t)0x38d35d59, (q31_t)0x8d4e301f, (q31_t)0x38cdbbfc, (q31_t)0x8d4b662a, - (q31_t)0x38c81a7c, (q31_t)0x8d489c7d, - (q31_t)0x38c278d9, (q31_t)0x8d45d316, (q31_t)0x38bcd713, (q31_t)0x8d4309f6, (q31_t)0x38b7352a, (q31_t)0x8d40411d, - (q31_t)0x38b1931e, (q31_t)0x8d3d788b, - (q31_t)0x38abf0ef, (q31_t)0x8d3ab03f, (q31_t)0x38a64e9d, (q31_t)0x8d37e83a, (q31_t)0x38a0ac29, (q31_t)0x8d35207d, - (q31_t)0x389b0991, (q31_t)0x8d325905, - (q31_t)0x389566d6, (q31_t)0x8d2f91d5, (q31_t)0x388fc3f8, (q31_t)0x8d2ccaec, (q31_t)0x388a20f8, (q31_t)0x8d2a0449, - (q31_t)0x38847dd5, (q31_t)0x8d273ded, - (q31_t)0x387eda8e, (q31_t)0x8d2477d8, (q31_t)0x38793725, (q31_t)0x8d21b20a, (q31_t)0x38739399, (q31_t)0x8d1eec83, - (q31_t)0x386defeb, (q31_t)0x8d1c2742, - (q31_t)0x38684c19, (q31_t)0x8d196249, (q31_t)0x3862a825, (q31_t)0x8d169d96, (q31_t)0x385d040d, (q31_t)0x8d13d92a, - (q31_t)0x38575fd4, (q31_t)0x8d111505, - (q31_t)0x3851bb77, (q31_t)0x8d0e5127, (q31_t)0x384c16f7, (q31_t)0x8d0b8d90, (q31_t)0x38467255, (q31_t)0x8d08ca40, - (q31_t)0x3840cd90, (q31_t)0x8d060737, - (q31_t)0x383b28a9, (q31_t)0x8d034474, (q31_t)0x3835839f, (q31_t)0x8d0081f9, (q31_t)0x382fde72, (q31_t)0x8cfdbfc4, - (q31_t)0x382a3922, (q31_t)0x8cfafdd7, - (q31_t)0x382493b0, (q31_t)0x8cf83c30, (q31_t)0x381eee1b, (q31_t)0x8cf57ad0, (q31_t)0x38194864, (q31_t)0x8cf2b9b8, - (q31_t)0x3813a28a, (q31_t)0x8ceff8e6, - (q31_t)0x380dfc8d, (q31_t)0x8ced385b, (q31_t)0x3808566e, (q31_t)0x8cea7818, (q31_t)0x3802b02c, (q31_t)0x8ce7b81b, - (q31_t)0x37fd09c8, (q31_t)0x8ce4f865, - (q31_t)0x37f76341, (q31_t)0x8ce238f6, (q31_t)0x37f1bc97, (q31_t)0x8cdf79ce, (q31_t)0x37ec15cb, (q31_t)0x8cdcbaee, - (q31_t)0x37e66edd, (q31_t)0x8cd9fc54, - (q31_t)0x37e0c7cc, (q31_t)0x8cd73e01, (q31_t)0x37db2099, (q31_t)0x8cd47ff6, (q31_t)0x37d57943, (q31_t)0x8cd1c231, - (q31_t)0x37cfd1cb, (q31_t)0x8ccf04b3, - (q31_t)0x37ca2a30, (q31_t)0x8ccc477d, (q31_t)0x37c48273, (q31_t)0x8cc98a8e, (q31_t)0x37beda93, (q31_t)0x8cc6cde5, - (q31_t)0x37b93292, (q31_t)0x8cc41184, - (q31_t)0x37b38a6d, (q31_t)0x8cc1556a, (q31_t)0x37ade227, (q31_t)0x8cbe9996, (q31_t)0x37a839be, (q31_t)0x8cbbde0a, - (q31_t)0x37a29132, (q31_t)0x8cb922c6, - (q31_t)0x379ce885, (q31_t)0x8cb667c8, (q31_t)0x37973fb5, (q31_t)0x8cb3ad11, (q31_t)0x379196c3, (q31_t)0x8cb0f2a1, - (q31_t)0x378bedae, (q31_t)0x8cae3879, - (q31_t)0x37864477, (q31_t)0x8cab7e98, (q31_t)0x37809b1e, (q31_t)0x8ca8c4fd, (q31_t)0x377af1a3, (q31_t)0x8ca60baa, - (q31_t)0x37754806, (q31_t)0x8ca3529f, - (q31_t)0x376f9e46, (q31_t)0x8ca099da, (q31_t)0x3769f464, (q31_t)0x8c9de15c, (q31_t)0x37644a60, (q31_t)0x8c9b2926, - (q31_t)0x375ea03a, (q31_t)0x8c987137, - (q31_t)0x3758f5f2, (q31_t)0x8c95b98f, (q31_t)0x37534b87, (q31_t)0x8c93022e, (q31_t)0x374da0fa, (q31_t)0x8c904b14, - (q31_t)0x3747f64c, (q31_t)0x8c8d9442, - (q31_t)0x37424b7b, (q31_t)0x8c8addb7, (q31_t)0x373ca088, (q31_t)0x8c882773, (q31_t)0x3736f573, (q31_t)0x8c857176, - (q31_t)0x37314a3c, (q31_t)0x8c82bbc0, - (q31_t)0x372b9ee3, (q31_t)0x8c800652, (q31_t)0x3725f367, (q31_t)0x8c7d512b, (q31_t)0x372047ca, (q31_t)0x8c7a9c4b, - (q31_t)0x371a9c0b, (q31_t)0x8c77e7b3, - (q31_t)0x3714f02a, (q31_t)0x8c753362, (q31_t)0x370f4427, (q31_t)0x8c727f58, (q31_t)0x37099802, (q31_t)0x8c6fcb95, - (q31_t)0x3703ebbb, (q31_t)0x8c6d181a, - (q31_t)0x36fe3f52, (q31_t)0x8c6a64e5, (q31_t)0x36f892c7, (q31_t)0x8c67b1f9, (q31_t)0x36f2e61a, (q31_t)0x8c64ff53, - (q31_t)0x36ed394b, (q31_t)0x8c624cf5, - (q31_t)0x36e78c5b, (q31_t)0x8c5f9ade, (q31_t)0x36e1df48, (q31_t)0x8c5ce90e, (q31_t)0x36dc3214, (q31_t)0x8c5a3786, - (q31_t)0x36d684be, (q31_t)0x8c578645, - (q31_t)0x36d0d746, (q31_t)0x8c54d54c, (q31_t)0x36cb29ac, (q31_t)0x8c522499, (q31_t)0x36c57bf0, (q31_t)0x8c4f742f, - (q31_t)0x36bfce13, (q31_t)0x8c4cc40b, - (q31_t)0x36ba2014, (q31_t)0x8c4a142f, (q31_t)0x36b471f3, (q31_t)0x8c47649a, (q31_t)0x36aec3b0, (q31_t)0x8c44b54d, - (q31_t)0x36a9154c, (q31_t)0x8c420647, - (q31_t)0x36a366c6, (q31_t)0x8c3f5788, (q31_t)0x369db81e, (q31_t)0x8c3ca911, (q31_t)0x36980954, (q31_t)0x8c39fae1, - (q31_t)0x36925a69, (q31_t)0x8c374cf9, - (q31_t)0x368cab5c, (q31_t)0x8c349f58, (q31_t)0x3686fc2e, (q31_t)0x8c31f1ff, (q31_t)0x36814cde, (q31_t)0x8c2f44ed, - (q31_t)0x367b9d6c, (q31_t)0x8c2c9822, - (q31_t)0x3675edd9, (q31_t)0x8c29eb9f, (q31_t)0x36703e24, (q31_t)0x8c273f63, (q31_t)0x366a8e4d, (q31_t)0x8c24936f, - (q31_t)0x3664de55, (q31_t)0x8c21e7c2, - (q31_t)0x365f2e3b, (q31_t)0x8c1f3c5d, (q31_t)0x36597e00, (q31_t)0x8c1c913f, (q31_t)0x3653cda3, (q31_t)0x8c19e669, - (q31_t)0x364e1d25, (q31_t)0x8c173bda, - (q31_t)0x36486c86, (q31_t)0x8c149192, (q31_t)0x3642bbc4, (q31_t)0x8c11e792, (q31_t)0x363d0ae2, (q31_t)0x8c0f3dda, - (q31_t)0x363759de, (q31_t)0x8c0c9469, - (q31_t)0x3631a8b8, (q31_t)0x8c09eb40, (q31_t)0x362bf771, (q31_t)0x8c07425e, (q31_t)0x36264609, (q31_t)0x8c0499c4, - (q31_t)0x3620947f, (q31_t)0x8c01f171, - (q31_t)0x361ae2d3, (q31_t)0x8bff4966, (q31_t)0x36153107, (q31_t)0x8bfca1a3, (q31_t)0x360f7f19, (q31_t)0x8bf9fa27, - (q31_t)0x3609cd0a, (q31_t)0x8bf752f2, - (q31_t)0x36041ad9, (q31_t)0x8bf4ac05, (q31_t)0x35fe6887, (q31_t)0x8bf20560, (q31_t)0x35f8b614, (q31_t)0x8bef5f02, - (q31_t)0x35f3037f, (q31_t)0x8becb8ec, - (q31_t)0x35ed50c9, (q31_t)0x8bea131e, (q31_t)0x35e79df2, (q31_t)0x8be76d97, (q31_t)0x35e1eafa, (q31_t)0x8be4c857, - (q31_t)0x35dc37e0, (q31_t)0x8be22360, - (q31_t)0x35d684a6, (q31_t)0x8bdf7eb0, (q31_t)0x35d0d14a, (q31_t)0x8bdcda47, (q31_t)0x35cb1dcc, (q31_t)0x8bda3626, - (q31_t)0x35c56a2e, (q31_t)0x8bd7924d, - (q31_t)0x35bfb66e, (q31_t)0x8bd4eebc, (q31_t)0x35ba028e, (q31_t)0x8bd24b72, (q31_t)0x35b44e8c, (q31_t)0x8bcfa870, - (q31_t)0x35ae9a69, (q31_t)0x8bcd05b5, - (q31_t)0x35a8e625, (q31_t)0x8bca6343, (q31_t)0x35a331c0, (q31_t)0x8bc7c117, (q31_t)0x359d7d39, (q31_t)0x8bc51f34, - (q31_t)0x3597c892, (q31_t)0x8bc27d98, - (q31_t)0x359213c9, (q31_t)0x8bbfdc44, (q31_t)0x358c5ee0, (q31_t)0x8bbd3b38, (q31_t)0x3586a9d5, (q31_t)0x8bba9a73, - (q31_t)0x3580f4aa, (q31_t)0x8bb7f9f6, - (q31_t)0x357b3f5d, (q31_t)0x8bb559c1, (q31_t)0x357589f0, (q31_t)0x8bb2b9d4, (q31_t)0x356fd461, (q31_t)0x8bb01a2e, - (q31_t)0x356a1eb2, (q31_t)0x8bad7ad0, - (q31_t)0x356468e2, (q31_t)0x8baadbba, (q31_t)0x355eb2f0, (q31_t)0x8ba83cec, (q31_t)0x3558fcde, (q31_t)0x8ba59e65, - (q31_t)0x355346ab, (q31_t)0x8ba30026, - (q31_t)0x354d9057, (q31_t)0x8ba0622f, (q31_t)0x3547d9e2, (q31_t)0x8b9dc480, (q31_t)0x3542234c, (q31_t)0x8b9b2718, - (q31_t)0x353c6c95, (q31_t)0x8b9889f8, - (q31_t)0x3536b5be, (q31_t)0x8b95ed21, (q31_t)0x3530fec6, (q31_t)0x8b935090, (q31_t)0x352b47ad, (q31_t)0x8b90b448, - (q31_t)0x35259073, (q31_t)0x8b8e1848, - (q31_t)0x351fd918, (q31_t)0x8b8b7c8f, (q31_t)0x351a219c, (q31_t)0x8b88e11e, (q31_t)0x35146a00, (q31_t)0x8b8645f5, - (q31_t)0x350eb243, (q31_t)0x8b83ab14, - (q31_t)0x3508fa66, (q31_t)0x8b81107b, (q31_t)0x35034267, (q31_t)0x8b7e7629, (q31_t)0x34fd8a48, (q31_t)0x8b7bdc20, - (q31_t)0x34f7d208, (q31_t)0x8b79425e, - (q31_t)0x34f219a8, (q31_t)0x8b76a8e4, (q31_t)0x34ec6127, (q31_t)0x8b740fb3, (q31_t)0x34e6a885, (q31_t)0x8b7176c8, - (q31_t)0x34e0efc2, (q31_t)0x8b6ede26, - (q31_t)0x34db36df, (q31_t)0x8b6c45cc, (q31_t)0x34d57ddc, (q31_t)0x8b69adba, (q31_t)0x34cfc4b7, (q31_t)0x8b6715ef, - (q31_t)0x34ca0b73, (q31_t)0x8b647e6d, - (q31_t)0x34c4520d, (q31_t)0x8b61e733, (q31_t)0x34be9887, (q31_t)0x8b5f5040, (q31_t)0x34b8dee1, (q31_t)0x8b5cb995, - (q31_t)0x34b3251a, (q31_t)0x8b5a2333, - (q31_t)0x34ad6b32, (q31_t)0x8b578d18, (q31_t)0x34a7b12a, (q31_t)0x8b54f745, (q31_t)0x34a1f702, (q31_t)0x8b5261ba, - (q31_t)0x349c3cb9, (q31_t)0x8b4fcc77, - (q31_t)0x34968250, (q31_t)0x8b4d377c, (q31_t)0x3490c7c6, (q31_t)0x8b4aa2ca, (q31_t)0x348b0d1c, (q31_t)0x8b480e5f, - (q31_t)0x34855251, (q31_t)0x8b457a3c, - (q31_t)0x347f9766, (q31_t)0x8b42e661, (q31_t)0x3479dc5b, (q31_t)0x8b4052ce, (q31_t)0x3474212f, (q31_t)0x8b3dbf83, - (q31_t)0x346e65e3, (q31_t)0x8b3b2c80, - (q31_t)0x3468aa76, (q31_t)0x8b3899c6, (q31_t)0x3462eee9, (q31_t)0x8b360753, (q31_t)0x345d333c, (q31_t)0x8b337528, - (q31_t)0x3457776f, (q31_t)0x8b30e345, - (q31_t)0x3451bb81, (q31_t)0x8b2e51ab, (q31_t)0x344bff73, (q31_t)0x8b2bc058, (q31_t)0x34464345, (q31_t)0x8b292f4e, - (q31_t)0x344086f6, (q31_t)0x8b269e8b, - (q31_t)0x343aca87, (q31_t)0x8b240e11, (q31_t)0x34350df8, (q31_t)0x8b217ddf, (q31_t)0x342f5149, (q31_t)0x8b1eedf4, - (q31_t)0x3429947a, (q31_t)0x8b1c5e52, - (q31_t)0x3423d78a, (q31_t)0x8b19cef8, (q31_t)0x341e1a7b, (q31_t)0x8b173fe6, (q31_t)0x34185d4b, (q31_t)0x8b14b11d, - (q31_t)0x34129ffb, (q31_t)0x8b12229b, - (q31_t)0x340ce28b, (q31_t)0x8b0f9462, (q31_t)0x340724fb, (q31_t)0x8b0d0670, (q31_t)0x3401674a, (q31_t)0x8b0a78c7, - (q31_t)0x33fba97a, (q31_t)0x8b07eb66, - (q31_t)0x33f5eb89, (q31_t)0x8b055e4d, (q31_t)0x33f02d79, (q31_t)0x8b02d17c, (q31_t)0x33ea6f48, (q31_t)0x8b0044f3, - (q31_t)0x33e4b0f8, (q31_t)0x8afdb8b3, - (q31_t)0x33def287, (q31_t)0x8afb2cbb, (q31_t)0x33d933f7, (q31_t)0x8af8a10b, (q31_t)0x33d37546, (q31_t)0x8af615a3, - (q31_t)0x33cdb676, (q31_t)0x8af38a83, - (q31_t)0x33c7f785, (q31_t)0x8af0ffac, (q31_t)0x33c23875, (q31_t)0x8aee751c, (q31_t)0x33bc7944, (q31_t)0x8aebead5, - (q31_t)0x33b6b9f4, (q31_t)0x8ae960d6, - (q31_t)0x33b0fa84, (q31_t)0x8ae6d720, (q31_t)0x33ab3af4, (q31_t)0x8ae44db1, (q31_t)0x33a57b44, (q31_t)0x8ae1c48b, - (q31_t)0x339fbb74, (q31_t)0x8adf3bad, - (q31_t)0x3399fb85, (q31_t)0x8adcb318, (q31_t)0x33943b75, (q31_t)0x8ada2aca, (q31_t)0x338e7b46, (q31_t)0x8ad7a2c5, - (q31_t)0x3388baf7, (q31_t)0x8ad51b08, - (q31_t)0x3382fa88, (q31_t)0x8ad29394, (q31_t)0x337d39f9, (q31_t)0x8ad00c67, (q31_t)0x3377794b, (q31_t)0x8acd8583, - (q31_t)0x3371b87d, (q31_t)0x8acafee8, - (q31_t)0x336bf78f, (q31_t)0x8ac87894, (q31_t)0x33663682, (q31_t)0x8ac5f289, (q31_t)0x33607554, (q31_t)0x8ac36cc6, - (q31_t)0x335ab407, (q31_t)0x8ac0e74c, - (q31_t)0x3354f29b, (q31_t)0x8abe6219, (q31_t)0x334f310e, (q31_t)0x8abbdd30, (q31_t)0x33496f62, (q31_t)0x8ab9588e, - (q31_t)0x3343ad97, (q31_t)0x8ab6d435, - (q31_t)0x333debab, (q31_t)0x8ab45024, (q31_t)0x333829a1, (q31_t)0x8ab1cc5c, (q31_t)0x33326776, (q31_t)0x8aaf48db, - (q31_t)0x332ca52c, (q31_t)0x8aacc5a4, - (q31_t)0x3326e2c3, (q31_t)0x8aaa42b4, (q31_t)0x33212039, (q31_t)0x8aa7c00d, (q31_t)0x331b5d91, (q31_t)0x8aa53daf, - (q31_t)0x33159ac8, (q31_t)0x8aa2bb99, - (q31_t)0x330fd7e1, (q31_t)0x8aa039cb, (q31_t)0x330a14da, (q31_t)0x8a9db845, (q31_t)0x330451b3, (q31_t)0x8a9b3708, - (q31_t)0x32fe8e6d, (q31_t)0x8a98b614, - (q31_t)0x32f8cb07, (q31_t)0x8a963567, (q31_t)0x32f30782, (q31_t)0x8a93b504, (q31_t)0x32ed43de, (q31_t)0x8a9134e8, - (q31_t)0x32e7801a, (q31_t)0x8a8eb516, - (q31_t)0x32e1bc36, (q31_t)0x8a8c358b, (q31_t)0x32dbf834, (q31_t)0x8a89b649, (q31_t)0x32d63412, (q31_t)0x8a873750, - (q31_t)0x32d06fd0, (q31_t)0x8a84b89e, - (q31_t)0x32caab6f, (q31_t)0x8a823a36, (q31_t)0x32c4e6ef, (q31_t)0x8a7fbc16, (q31_t)0x32bf2250, (q31_t)0x8a7d3e3e, - (q31_t)0x32b95d91, (q31_t)0x8a7ac0af, - (q31_t)0x32b398b3, (q31_t)0x8a784368, (q31_t)0x32add3b6, (q31_t)0x8a75c66a, (q31_t)0x32a80e99, (q31_t)0x8a7349b4, - (q31_t)0x32a2495d, (q31_t)0x8a70cd47, - (q31_t)0x329c8402, (q31_t)0x8a6e5123, (q31_t)0x3296be88, (q31_t)0x8a6bd547, (q31_t)0x3290f8ef, (q31_t)0x8a6959b3, - (q31_t)0x328b3336, (q31_t)0x8a66de68, - (q31_t)0x32856d5e, (q31_t)0x8a646365, (q31_t)0x327fa767, (q31_t)0x8a61e8ab, (q31_t)0x3279e151, (q31_t)0x8a5f6e3a, - (q31_t)0x32741b1c, (q31_t)0x8a5cf411, - (q31_t)0x326e54c7, (q31_t)0x8a5a7a31, (q31_t)0x32688e54, (q31_t)0x8a580099, (q31_t)0x3262c7c1, (q31_t)0x8a55874a, - (q31_t)0x325d0110, (q31_t)0x8a530e43, - (q31_t)0x32573a3f, (q31_t)0x8a509585, (q31_t)0x3251734f, (q31_t)0x8a4e1d10, (q31_t)0x324bac40, (q31_t)0x8a4ba4e3, - (q31_t)0x3245e512, (q31_t)0x8a492cff, - (q31_t)0x32401dc6, (q31_t)0x8a46b564, (q31_t)0x323a565a, (q31_t)0x8a443e11, (q31_t)0x32348ecf, (q31_t)0x8a41c706, - (q31_t)0x322ec725, (q31_t)0x8a3f5045, - (q31_t)0x3228ff5c, (q31_t)0x8a3cd9cc, (q31_t)0x32233775, (q31_t)0x8a3a639b, (q31_t)0x321d6f6e, (q31_t)0x8a37edb3, - (q31_t)0x3217a748, (q31_t)0x8a357814, - (q31_t)0x3211df04, (q31_t)0x8a3302be, (q31_t)0x320c16a1, (q31_t)0x8a308db0, (q31_t)0x32064e1e, (q31_t)0x8a2e18eb, - (q31_t)0x3200857d, (q31_t)0x8a2ba46e, - (q31_t)0x31fabcbd, (q31_t)0x8a29303b, (q31_t)0x31f4f3df, (q31_t)0x8a26bc50, (q31_t)0x31ef2ae1, (q31_t)0x8a2448ad, - (q31_t)0x31e961c5, (q31_t)0x8a21d554, - (q31_t)0x31e39889, (q31_t)0x8a1f6243, (q31_t)0x31ddcf30, (q31_t)0x8a1cef7a, (q31_t)0x31d805b7, (q31_t)0x8a1a7cfb, - (q31_t)0x31d23c1f, (q31_t)0x8a180ac4, - (q31_t)0x31cc7269, (q31_t)0x8a1598d6, (q31_t)0x31c6a894, (q31_t)0x8a132731, (q31_t)0x31c0dea1, (q31_t)0x8a10b5d4, - (q31_t)0x31bb148f, (q31_t)0x8a0e44c0, - (q31_t)0x31b54a5e, (q31_t)0x8a0bd3f5, (q31_t)0x31af800e, (q31_t)0x8a096373, (q31_t)0x31a9b5a0, (q31_t)0x8a06f339, - (q31_t)0x31a3eb13, (q31_t)0x8a048348, - (q31_t)0x319e2067, (q31_t)0x8a0213a0, (q31_t)0x3198559d, (q31_t)0x89ffa441, (q31_t)0x31928ab4, (q31_t)0x89fd352b, - (q31_t)0x318cbfad, (q31_t)0x89fac65d, - (q31_t)0x3186f487, (q31_t)0x89f857d8, (q31_t)0x31812943, (q31_t)0x89f5e99c, (q31_t)0x317b5de0, (q31_t)0x89f37ba9, - (q31_t)0x3175925e, (q31_t)0x89f10dff, - (q31_t)0x316fc6be, (q31_t)0x89eea09d, (q31_t)0x3169fb00, (q31_t)0x89ec3384, (q31_t)0x31642f23, (q31_t)0x89e9c6b4, - (q31_t)0x315e6328, (q31_t)0x89e75a2d, - (q31_t)0x3158970e, (q31_t)0x89e4edef, (q31_t)0x3152cad5, (q31_t)0x89e281fa, (q31_t)0x314cfe7f, (q31_t)0x89e0164d, - (q31_t)0x31473209, (q31_t)0x89ddaae9, - (q31_t)0x31416576, (q31_t)0x89db3fcf, (q31_t)0x313b98c4, (q31_t)0x89d8d4fd, (q31_t)0x3135cbf4, (q31_t)0x89d66a74, - (q31_t)0x312fff05, (q31_t)0x89d40033, - (q31_t)0x312a31f8, (q31_t)0x89d1963c, (q31_t)0x312464cd, (q31_t)0x89cf2c8e, (q31_t)0x311e9783, (q31_t)0x89ccc328, - (q31_t)0x3118ca1b, (q31_t)0x89ca5a0c, - (q31_t)0x3112fc95, (q31_t)0x89c7f138, (q31_t)0x310d2ef0, (q31_t)0x89c588ae, (q31_t)0x3107612e, (q31_t)0x89c3206c, - (q31_t)0x3101934d, (q31_t)0x89c0b873, - (q31_t)0x30fbc54d, (q31_t)0x89be50c3, (q31_t)0x30f5f730, (q31_t)0x89bbe95c, (q31_t)0x30f028f4, (q31_t)0x89b9823e, - (q31_t)0x30ea5a9a, (q31_t)0x89b71b69, - (q31_t)0x30e48c22, (q31_t)0x89b4b4dd, (q31_t)0x30debd8c, (q31_t)0x89b24e9a, (q31_t)0x30d8eed8, (q31_t)0x89afe8a0, - (q31_t)0x30d32006, (q31_t)0x89ad82ef, - (q31_t)0x30cd5115, (q31_t)0x89ab1d87, (q31_t)0x30c78206, (q31_t)0x89a8b868, (q31_t)0x30c1b2da, (q31_t)0x89a65391, - (q31_t)0x30bbe38f, (q31_t)0x89a3ef04, - (q31_t)0x30b61426, (q31_t)0x89a18ac0, (q31_t)0x30b0449f, (q31_t)0x899f26c5, (q31_t)0x30aa74fa, (q31_t)0x899cc313, - (q31_t)0x30a4a537, (q31_t)0x899a5faa, - (q31_t)0x309ed556, (q31_t)0x8997fc8a, (q31_t)0x30990557, (q31_t)0x899599b3, (q31_t)0x3093353a, (q31_t)0x89933725, - (q31_t)0x308d64ff, (q31_t)0x8990d4e0, - (q31_t)0x308794a6, (q31_t)0x898e72e4, (q31_t)0x3081c42f, (q31_t)0x898c1131, (q31_t)0x307bf39b, (q31_t)0x8989afc8, - (q31_t)0x307622e8, (q31_t)0x89874ea7, - (q31_t)0x30705217, (q31_t)0x8984edcf, (q31_t)0x306a8129, (q31_t)0x89828d41, (q31_t)0x3064b01d, (q31_t)0x89802cfc, - (q31_t)0x305edef3, (q31_t)0x897dccff, - (q31_t)0x30590dab, (q31_t)0x897b6d4c, (q31_t)0x30533c45, (q31_t)0x89790de2, (q31_t)0x304d6ac1, (q31_t)0x8976aec1, - (q31_t)0x30479920, (q31_t)0x89744fe9, - (q31_t)0x3041c761, (q31_t)0x8971f15a, (q31_t)0x303bf584, (q31_t)0x896f9315, (q31_t)0x30362389, (q31_t)0x896d3518, - (q31_t)0x30305171, (q31_t)0x896ad765, - (q31_t)0x302a7f3a, (q31_t)0x896879fb, (q31_t)0x3024ace6, (q31_t)0x89661cda, (q31_t)0x301eda75, (q31_t)0x8963c002, - (q31_t)0x301907e6, (q31_t)0x89616373, - (q31_t)0x30133539, (q31_t)0x895f072e, (q31_t)0x300d626e, (q31_t)0x895cab31, (q31_t)0x30078f86, (q31_t)0x895a4f7e, - (q31_t)0x3001bc80, (q31_t)0x8957f414, - (q31_t)0x2ffbe95d, (q31_t)0x895598f3, (q31_t)0x2ff6161c, (q31_t)0x89533e1c, (q31_t)0x2ff042bd, (q31_t)0x8950e38e, - (q31_t)0x2fea6f41, (q31_t)0x894e8948, - (q31_t)0x2fe49ba7, (q31_t)0x894c2f4c, (q31_t)0x2fdec7f0, (q31_t)0x8949d59a, (q31_t)0x2fd8f41b, (q31_t)0x89477c30, - (q31_t)0x2fd32028, (q31_t)0x89452310, - (q31_t)0x2fcd4c19, (q31_t)0x8942ca39, (q31_t)0x2fc777eb, (q31_t)0x894071ab, (q31_t)0x2fc1a3a0, (q31_t)0x893e1967, - (q31_t)0x2fbbcf38, (q31_t)0x893bc16b, - (q31_t)0x2fb5fab2, (q31_t)0x893969b9, (q31_t)0x2fb0260f, (q31_t)0x89371250, (q31_t)0x2faa514f, (q31_t)0x8934bb31, - (q31_t)0x2fa47c71, (q31_t)0x8932645b, - (q31_t)0x2f9ea775, (q31_t)0x89300dce, (q31_t)0x2f98d25d, (q31_t)0x892db78a, (q31_t)0x2f92fd26, (q31_t)0x892b6190, - (q31_t)0x2f8d27d3, (q31_t)0x89290bdf, - (q31_t)0x2f875262, (q31_t)0x8926b677, (q31_t)0x2f817cd4, (q31_t)0x89246159, (q31_t)0x2f7ba729, (q31_t)0x89220c84, - (q31_t)0x2f75d160, (q31_t)0x891fb7f8, - (q31_t)0x2f6ffb7a, (q31_t)0x891d63b5, (q31_t)0x2f6a2577, (q31_t)0x891b0fbc, (q31_t)0x2f644f56, (q31_t)0x8918bc0c, - (q31_t)0x2f5e7919, (q31_t)0x891668a6, - (q31_t)0x2f58a2be, (q31_t)0x89141589, (q31_t)0x2f52cc46, (q31_t)0x8911c2b5, (q31_t)0x2f4cf5b0, (q31_t)0x890f702b, - (q31_t)0x2f471efe, (q31_t)0x890d1dea, - (q31_t)0x2f41482e, (q31_t)0x890acbf2, (q31_t)0x2f3b7141, (q31_t)0x89087a44, (q31_t)0x2f359a37, (q31_t)0x890628df, - (q31_t)0x2f2fc310, (q31_t)0x8903d7c4, - (q31_t)0x2f29ebcc, (q31_t)0x890186f2, (q31_t)0x2f24146b, (q31_t)0x88ff3669, (q31_t)0x2f1e3ced, (q31_t)0x88fce62a, - (q31_t)0x2f186551, (q31_t)0x88fa9634, - (q31_t)0x2f128d99, (q31_t)0x88f84687, (q31_t)0x2f0cb5c3, (q31_t)0x88f5f724, (q31_t)0x2f06ddd1, (q31_t)0x88f3a80b, - (q31_t)0x2f0105c1, (q31_t)0x88f1593b, - (q31_t)0x2efb2d95, (q31_t)0x88ef0ab4, (q31_t)0x2ef5554b, (q31_t)0x88ecbc77, (q31_t)0x2eef7ce5, (q31_t)0x88ea6e83, - (q31_t)0x2ee9a461, (q31_t)0x88e820d9, - (q31_t)0x2ee3cbc1, (q31_t)0x88e5d378, (q31_t)0x2eddf304, (q31_t)0x88e38660, (q31_t)0x2ed81a29, (q31_t)0x88e13992, - (q31_t)0x2ed24132, (q31_t)0x88deed0e, - (q31_t)0x2ecc681e, (q31_t)0x88dca0d3, (q31_t)0x2ec68eed, (q31_t)0x88da54e1, (q31_t)0x2ec0b5a0, (q31_t)0x88d8093a, - (q31_t)0x2ebadc35, (q31_t)0x88d5bddb, - (q31_t)0x2eb502ae, (q31_t)0x88d372c6, (q31_t)0x2eaf290a, (q31_t)0x88d127fb, (q31_t)0x2ea94f49, (q31_t)0x88cedd79, - (q31_t)0x2ea3756b, (q31_t)0x88cc9340, - (q31_t)0x2e9d9b70, (q31_t)0x88ca4951, (q31_t)0x2e97c159, (q31_t)0x88c7ffac, (q31_t)0x2e91e725, (q31_t)0x88c5b650, - (q31_t)0x2e8c0cd4, (q31_t)0x88c36d3e, - (q31_t)0x2e863267, (q31_t)0x88c12475, (q31_t)0x2e8057dd, (q31_t)0x88bedbf6, (q31_t)0x2e7a7d36, (q31_t)0x88bc93c0, - (q31_t)0x2e74a272, (q31_t)0x88ba4bd4, - (q31_t)0x2e6ec792, (q31_t)0x88b80432, (q31_t)0x2e68ec95, (q31_t)0x88b5bcd9, (q31_t)0x2e63117c, (q31_t)0x88b375ca, - (q31_t)0x2e5d3646, (q31_t)0x88b12f04, - (q31_t)0x2e575af3, (q31_t)0x88aee888, (q31_t)0x2e517f84, (q31_t)0x88aca255, (q31_t)0x2e4ba3f8, (q31_t)0x88aa5c6c, - (q31_t)0x2e45c850, (q31_t)0x88a816cd, - (q31_t)0x2e3fec8b, (q31_t)0x88a5d177, (q31_t)0x2e3a10aa, (q31_t)0x88a38c6b, (q31_t)0x2e3434ac, (q31_t)0x88a147a9, - (q31_t)0x2e2e5891, (q31_t)0x889f0330, - (q31_t)0x2e287c5a, (q31_t)0x889cbf01, (q31_t)0x2e22a007, (q31_t)0x889a7b1b, (q31_t)0x2e1cc397, (q31_t)0x88983780, - (q31_t)0x2e16e70b, (q31_t)0x8895f42d, - (q31_t)0x2e110a62, (q31_t)0x8893b125, (q31_t)0x2e0b2d9d, (q31_t)0x88916e66, (q31_t)0x2e0550bb, (q31_t)0x888f2bf1, - (q31_t)0x2dff73bd, (q31_t)0x888ce9c5, - (q31_t)0x2df996a3, (q31_t)0x888aa7e3, (q31_t)0x2df3b96c, (q31_t)0x8888664b, (q31_t)0x2deddc19, (q31_t)0x888624fd, - (q31_t)0x2de7feaa, (q31_t)0x8883e3f8, - (q31_t)0x2de2211e, (q31_t)0x8881a33d, (q31_t)0x2ddc4376, (q31_t)0x887f62cb, (q31_t)0x2dd665b2, (q31_t)0x887d22a4, - (q31_t)0x2dd087d1, (q31_t)0x887ae2c6, - (q31_t)0x2dcaa9d5, (q31_t)0x8878a332, (q31_t)0x2dc4cbbc, (q31_t)0x887663e7, (q31_t)0x2dbeed86, (q31_t)0x887424e7, - (q31_t)0x2db90f35, (q31_t)0x8871e630, - (q31_t)0x2db330c7, (q31_t)0x886fa7c2, (q31_t)0x2dad523d, (q31_t)0x886d699f, (q31_t)0x2da77397, (q31_t)0x886b2bc5, - (q31_t)0x2da194d5, (q31_t)0x8868ee35, - (q31_t)0x2d9bb5f6, (q31_t)0x8866b0ef, (q31_t)0x2d95d6fc, (q31_t)0x886473f2, (q31_t)0x2d8ff7e5, (q31_t)0x88623740, - (q31_t)0x2d8a18b3, (q31_t)0x885ffad7, - (q31_t)0x2d843964, (q31_t)0x885dbeb8, (q31_t)0x2d7e59f9, (q31_t)0x885b82e3, (q31_t)0x2d787a72, (q31_t)0x88594757, - (q31_t)0x2d729acf, (q31_t)0x88570c16, - (q31_t)0x2d6cbb10, (q31_t)0x8854d11e, (q31_t)0x2d66db35, (q31_t)0x88529670, (q31_t)0x2d60fb3e, (q31_t)0x88505c0b, - (q31_t)0x2d5b1b2b, (q31_t)0x884e21f1, - (q31_t)0x2d553afc, (q31_t)0x884be821, (q31_t)0x2d4f5ab1, (q31_t)0x8849ae9a, (q31_t)0x2d497a4a, (q31_t)0x8847755d, - (q31_t)0x2d4399c7, (q31_t)0x88453c6a, - (q31_t)0x2d3db928, (q31_t)0x884303c1, (q31_t)0x2d37d86d, (q31_t)0x8840cb61, (q31_t)0x2d31f797, (q31_t)0x883e934c, - (q31_t)0x2d2c16a4, (q31_t)0x883c5b81, - (q31_t)0x2d263596, (q31_t)0x883a23ff, (q31_t)0x2d20546b, (q31_t)0x8837ecc7, (q31_t)0x2d1a7325, (q31_t)0x8835b5d9, - (q31_t)0x2d1491c4, (q31_t)0x88337f35, - (q31_t)0x2d0eb046, (q31_t)0x883148db, (q31_t)0x2d08ceac, (q31_t)0x882f12cb, (q31_t)0x2d02ecf7, (q31_t)0x882cdd04, - (q31_t)0x2cfd0b26, (q31_t)0x882aa788, - (q31_t)0x2cf72939, (q31_t)0x88287256, (q31_t)0x2cf14731, (q31_t)0x88263d6d, (q31_t)0x2ceb650d, (q31_t)0x882408ce, - (q31_t)0x2ce582cd, (q31_t)0x8821d47a, - (q31_t)0x2cdfa071, (q31_t)0x881fa06f, (q31_t)0x2cd9bdfa, (q31_t)0x881d6cae, (q31_t)0x2cd3db67, (q31_t)0x881b3937, - (q31_t)0x2ccdf8b8, (q31_t)0x8819060a, - (q31_t)0x2cc815ee, (q31_t)0x8816d327, (q31_t)0x2cc23308, (q31_t)0x8814a08f, (q31_t)0x2cbc5006, (q31_t)0x88126e40, - (q31_t)0x2cb66ce9, (q31_t)0x88103c3b, - (q31_t)0x2cb089b1, (q31_t)0x880e0a7f, (q31_t)0x2caaa65c, (q31_t)0x880bd90e, (q31_t)0x2ca4c2ed, (q31_t)0x8809a7e7, - (q31_t)0x2c9edf61, (q31_t)0x8807770a, - (q31_t)0x2c98fbba, (q31_t)0x88054677, (q31_t)0x2c9317f8, (q31_t)0x8803162e, (q31_t)0x2c8d341a, (q31_t)0x8800e62f, - (q31_t)0x2c875021, (q31_t)0x87feb67a, - (q31_t)0x2c816c0c, (q31_t)0x87fc870f, (q31_t)0x2c7b87dc, (q31_t)0x87fa57ee, (q31_t)0x2c75a390, (q31_t)0x87f82917, - (q31_t)0x2c6fbf29, (q31_t)0x87f5fa8b, - (q31_t)0x2c69daa6, (q31_t)0x87f3cc48, (q31_t)0x2c63f609, (q31_t)0x87f19e4f, (q31_t)0x2c5e114f, (q31_t)0x87ef70a0, - (q31_t)0x2c582c7b, (q31_t)0x87ed433c, - (q31_t)0x2c52478a, (q31_t)0x87eb1621, (q31_t)0x2c4c627f, (q31_t)0x87e8e950, (q31_t)0x2c467d58, (q31_t)0x87e6bcca, - (q31_t)0x2c409816, (q31_t)0x87e4908e, - (q31_t)0x2c3ab2b9, (q31_t)0x87e2649b, (q31_t)0x2c34cd40, (q31_t)0x87e038f3, (q31_t)0x2c2ee7ad, (q31_t)0x87de0d95, - (q31_t)0x2c2901fd, (q31_t)0x87dbe281, - (q31_t)0x2c231c33, (q31_t)0x87d9b7b7, (q31_t)0x2c1d364e, (q31_t)0x87d78d38, (q31_t)0x2c17504d, (q31_t)0x87d56302, - (q31_t)0x2c116a31, (q31_t)0x87d33916, - (q31_t)0x2c0b83fa, (q31_t)0x87d10f75, (q31_t)0x2c059da7, (q31_t)0x87cee61e, (q31_t)0x2bffb73a, (q31_t)0x87ccbd11, - (q31_t)0x2bf9d0b1, (q31_t)0x87ca944e, - (q31_t)0x2bf3ea0d, (q31_t)0x87c86bd5, (q31_t)0x2bee034e, (q31_t)0x87c643a6, (q31_t)0x2be81c74, (q31_t)0x87c41bc2, - (q31_t)0x2be2357f, (q31_t)0x87c1f427, - (q31_t)0x2bdc4e6f, (q31_t)0x87bfccd7, (q31_t)0x2bd66744, (q31_t)0x87bda5d1, (q31_t)0x2bd07ffe, (q31_t)0x87bb7f16, - (q31_t)0x2bca989d, (q31_t)0x87b958a4, - (q31_t)0x2bc4b120, (q31_t)0x87b7327d, (q31_t)0x2bbec989, (q31_t)0x87b50c9f, (q31_t)0x2bb8e1d7, (q31_t)0x87b2e70c, - (q31_t)0x2bb2fa0a, (q31_t)0x87b0c1c4, - (q31_t)0x2bad1221, (q31_t)0x87ae9cc5, (q31_t)0x2ba72a1e, (q31_t)0x87ac7811, (q31_t)0x2ba14200, (q31_t)0x87aa53a6, - (q31_t)0x2b9b59c7, (q31_t)0x87a82f87, - (q31_t)0x2b957173, (q31_t)0x87a60bb1, (q31_t)0x2b8f8905, (q31_t)0x87a3e825, (q31_t)0x2b89a07b, (q31_t)0x87a1c4e4, - (q31_t)0x2b83b7d7, (q31_t)0x879fa1ed, - (q31_t)0x2b7dcf17, (q31_t)0x879d7f41, (q31_t)0x2b77e63d, (q31_t)0x879b5cde, (q31_t)0x2b71fd48, (q31_t)0x87993ac6, - (q31_t)0x2b6c1438, (q31_t)0x879718f8, - (q31_t)0x2b662b0e, (q31_t)0x8794f774, (q31_t)0x2b6041c9, (q31_t)0x8792d63b, (q31_t)0x2b5a5868, (q31_t)0x8790b54c, - (q31_t)0x2b546eee, (q31_t)0x878e94a7, - (q31_t)0x2b4e8558, (q31_t)0x878c744d, (q31_t)0x2b489ba8, (q31_t)0x878a543d, (q31_t)0x2b42b1dd, (q31_t)0x87883477, - (q31_t)0x2b3cc7f7, (q31_t)0x878614fb, - (q31_t)0x2b36ddf7, (q31_t)0x8783f5ca, (q31_t)0x2b30f3dc, (q31_t)0x8781d6e3, (q31_t)0x2b2b09a6, (q31_t)0x877fb846, - (q31_t)0x2b251f56, (q31_t)0x877d99f4, - (q31_t)0x2b1f34eb, (q31_t)0x877b7bec, (q31_t)0x2b194a66, (q31_t)0x87795e2f, (q31_t)0x2b135fc6, (q31_t)0x877740bb, - (q31_t)0x2b0d750b, (q31_t)0x87752392, - (q31_t)0x2b078a36, (q31_t)0x877306b4, (q31_t)0x2b019f46, (q31_t)0x8770ea20, (q31_t)0x2afbb43c, (q31_t)0x876ecdd6, - (q31_t)0x2af5c917, (q31_t)0x876cb1d6, - (q31_t)0x2aefddd8, (q31_t)0x876a9621, (q31_t)0x2ae9f27e, (q31_t)0x87687ab7, (q31_t)0x2ae4070a, (q31_t)0x87665f96, - (q31_t)0x2ade1b7c, (q31_t)0x876444c1, - (q31_t)0x2ad82fd2, (q31_t)0x87622a35, (q31_t)0x2ad2440f, (q31_t)0x87600ff4, (q31_t)0x2acc5831, (q31_t)0x875df5fd, - (q31_t)0x2ac66c39, (q31_t)0x875bdc51, - (q31_t)0x2ac08026, (q31_t)0x8759c2ef, (q31_t)0x2aba93f9, (q31_t)0x8757a9d8, (q31_t)0x2ab4a7b1, (q31_t)0x8755910b, - (q31_t)0x2aaebb50, (q31_t)0x87537888, - (q31_t)0x2aa8ced3, (q31_t)0x87516050, (q31_t)0x2aa2e23d, (q31_t)0x874f4862, (q31_t)0x2a9cf58c, (q31_t)0x874d30bf, - (q31_t)0x2a9708c1, (q31_t)0x874b1966, - (q31_t)0x2a911bdc, (q31_t)0x87490258, (q31_t)0x2a8b2edc, (q31_t)0x8746eb94, (q31_t)0x2a8541c3, (q31_t)0x8744d51b, - (q31_t)0x2a7f548e, (q31_t)0x8742beec, - (q31_t)0x2a796740, (q31_t)0x8740a907, (q31_t)0x2a7379d8, (q31_t)0x873e936d, (q31_t)0x2a6d8c55, (q31_t)0x873c7e1e, - (q31_t)0x2a679eb8, (q31_t)0x873a6919, - (q31_t)0x2a61b101, (q31_t)0x8738545e, (q31_t)0x2a5bc330, (q31_t)0x87363fee, (q31_t)0x2a55d545, (q31_t)0x87342bc9, - (q31_t)0x2a4fe740, (q31_t)0x873217ee, - (q31_t)0x2a49f920, (q31_t)0x8730045d, (q31_t)0x2a440ae7, (q31_t)0x872df117, (q31_t)0x2a3e1c93, (q31_t)0x872bde1c, - (q31_t)0x2a382e25, (q31_t)0x8729cb6b, - (q31_t)0x2a323f9e, (q31_t)0x8727b905, (q31_t)0x2a2c50fc, (q31_t)0x8725a6e9, (q31_t)0x2a266240, (q31_t)0x87239518, - (q31_t)0x2a20736a, (q31_t)0x87218391, - (q31_t)0x2a1a847b, (q31_t)0x871f7255, (q31_t)0x2a149571, (q31_t)0x871d6163, (q31_t)0x2a0ea64d, (q31_t)0x871b50bc, - (q31_t)0x2a08b710, (q31_t)0x87194060, - (q31_t)0x2a02c7b8, (q31_t)0x8717304e, (q31_t)0x29fcd847, (q31_t)0x87152087, (q31_t)0x29f6e8bb, (q31_t)0x8713110a, - (q31_t)0x29f0f916, (q31_t)0x871101d8, - (q31_t)0x29eb0957, (q31_t)0x870ef2f1, (q31_t)0x29e5197e, (q31_t)0x870ce454, (q31_t)0x29df298b, (q31_t)0x870ad602, - (q31_t)0x29d9397f, (q31_t)0x8708c7fa, - (q31_t)0x29d34958, (q31_t)0x8706ba3d, (q31_t)0x29cd5918, (q31_t)0x8704acca, (q31_t)0x29c768be, (q31_t)0x87029fa3, - (q31_t)0x29c1784a, (q31_t)0x870092c5, - (q31_t)0x29bb87bc, (q31_t)0x86fe8633, (q31_t)0x29b59715, (q31_t)0x86fc79eb, (q31_t)0x29afa654, (q31_t)0x86fa6dee, - (q31_t)0x29a9b579, (q31_t)0x86f8623b, - (q31_t)0x29a3c485, (q31_t)0x86f656d3, (q31_t)0x299dd377, (q31_t)0x86f44bb6, (q31_t)0x2997e24f, (q31_t)0x86f240e3, - (q31_t)0x2991f10e, (q31_t)0x86f0365c, - (q31_t)0x298bffb2, (q31_t)0x86ee2c1e, (q31_t)0x29860e3e, (q31_t)0x86ec222c, (q31_t)0x29801caf, (q31_t)0x86ea1884, - (q31_t)0x297a2b07, (q31_t)0x86e80f27, - (q31_t)0x29743946, (q31_t)0x86e60614, (q31_t)0x296e476b, (q31_t)0x86e3fd4c, (q31_t)0x29685576, (q31_t)0x86e1f4cf, - (q31_t)0x29626368, (q31_t)0x86dfec9d, - (q31_t)0x295c7140, (q31_t)0x86dde4b5, (q31_t)0x29567eff, (q31_t)0x86dbdd18, (q31_t)0x29508ca4, (q31_t)0x86d9d5c6, - (q31_t)0x294a9a30, (q31_t)0x86d7cebf, - (q31_t)0x2944a7a2, (q31_t)0x86d5c802, (q31_t)0x293eb4fb, (q31_t)0x86d3c190, (q31_t)0x2938c23a, (q31_t)0x86d1bb69, - (q31_t)0x2932cf60, (q31_t)0x86cfb58c, - (q31_t)0x292cdc6d, (q31_t)0x86cdaffa, (q31_t)0x2926e960, (q31_t)0x86cbaab3, (q31_t)0x2920f63a, (q31_t)0x86c9a5b7, - (q31_t)0x291b02fa, (q31_t)0x86c7a106, - (q31_t)0x29150fa1, (q31_t)0x86c59c9f, (q31_t)0x290f1c2f, (q31_t)0x86c39883, (q31_t)0x290928a3, (q31_t)0x86c194b2, - (q31_t)0x290334ff, (q31_t)0x86bf912c, - (q31_t)0x28fd4140, (q31_t)0x86bd8df0, (q31_t)0x28f74d69, (q31_t)0x86bb8b00, (q31_t)0x28f15978, (q31_t)0x86b9885a, - (q31_t)0x28eb656e, (q31_t)0x86b785ff, - (q31_t)0x28e5714b, (q31_t)0x86b583ee, (q31_t)0x28df7d0e, (q31_t)0x86b38229, (q31_t)0x28d988b8, (q31_t)0x86b180ae, - (q31_t)0x28d3944a, (q31_t)0x86af7f7e, - (q31_t)0x28cd9fc1, (q31_t)0x86ad7e99, (q31_t)0x28c7ab20, (q31_t)0x86ab7dff, (q31_t)0x28c1b666, (q31_t)0x86a97db0, - (q31_t)0x28bbc192, (q31_t)0x86a77dab, - (q31_t)0x28b5cca5, (q31_t)0x86a57df2, (q31_t)0x28afd7a0, (q31_t)0x86a37e83, (q31_t)0x28a9e281, (q31_t)0x86a17f5f, - (q31_t)0x28a3ed49, (q31_t)0x869f8086, - (q31_t)0x289df7f8, (q31_t)0x869d81f8, (q31_t)0x2898028e, (q31_t)0x869b83b4, (q31_t)0x28920d0a, (q31_t)0x869985bc, - (q31_t)0x288c176e, (q31_t)0x8697880f, - (q31_t)0x288621b9, (q31_t)0x86958aac, (q31_t)0x28802beb, (q31_t)0x86938d94, (q31_t)0x287a3604, (q31_t)0x869190c7, - (q31_t)0x28744004, (q31_t)0x868f9445, - (q31_t)0x286e49ea, (q31_t)0x868d980e, (q31_t)0x286853b8, (q31_t)0x868b9c22, (q31_t)0x28625d6d, (q31_t)0x8689a081, - (q31_t)0x285c670a, (q31_t)0x8687a52b, - (q31_t)0x2856708d, (q31_t)0x8685aa20, (q31_t)0x285079f7, (q31_t)0x8683af5f, (q31_t)0x284a8349, (q31_t)0x8681b4ea, - (q31_t)0x28448c81, (q31_t)0x867fbabf, - (q31_t)0x283e95a1, (q31_t)0x867dc0e0, (q31_t)0x28389ea8, (q31_t)0x867bc74b, (q31_t)0x2832a796, (q31_t)0x8679ce01, - (q31_t)0x282cb06c, (q31_t)0x8677d503, - (q31_t)0x2826b928, (q31_t)0x8675dc4f, (q31_t)0x2820c1cc, (q31_t)0x8673e3e6, (q31_t)0x281aca57, (q31_t)0x8671ebc8, - (q31_t)0x2814d2c9, (q31_t)0x866ff3f6, - (q31_t)0x280edb23, (q31_t)0x866dfc6e, (q31_t)0x2808e364, (q31_t)0x866c0531, (q31_t)0x2802eb8c, (q31_t)0x866a0e3f, - (q31_t)0x27fcf39c, (q31_t)0x86681798, - (q31_t)0x27f6fb92, (q31_t)0x8666213c, (q31_t)0x27f10371, (q31_t)0x86642b2c, (q31_t)0x27eb0b36, (q31_t)0x86623566, - (q31_t)0x27e512e3, (q31_t)0x86603feb, - (q31_t)0x27df1a77, (q31_t)0x865e4abb, (q31_t)0x27d921f3, (q31_t)0x865c55d7, (q31_t)0x27d32956, (q31_t)0x865a613d, - (q31_t)0x27cd30a1, (q31_t)0x86586cee, - (q31_t)0x27c737d3, (q31_t)0x865678eb, (q31_t)0x27c13eec, (q31_t)0x86548532, (q31_t)0x27bb45ed, (q31_t)0x865291c4, - (q31_t)0x27b54cd6, (q31_t)0x86509ea2, - (q31_t)0x27af53a6, (q31_t)0x864eabcb, (q31_t)0x27a95a5d, (q31_t)0x864cb93e, (q31_t)0x27a360fc, (q31_t)0x864ac6fd, - (q31_t)0x279d6783, (q31_t)0x8648d507, - (q31_t)0x27976df1, (q31_t)0x8646e35c, (q31_t)0x27917447, (q31_t)0x8644f1fc, (q31_t)0x278b7a84, (q31_t)0x864300e7, - (q31_t)0x278580a9, (q31_t)0x8641101d, - (q31_t)0x277f86b5, (q31_t)0x863f1f9e, (q31_t)0x27798caa, (q31_t)0x863d2f6b, (q31_t)0x27739285, (q31_t)0x863b3f82, - (q31_t)0x276d9849, (q31_t)0x86394fe5, - (q31_t)0x27679df4, (q31_t)0x86376092, (q31_t)0x2761a387, (q31_t)0x8635718b, (q31_t)0x275ba901, (q31_t)0x863382cf, - (q31_t)0x2755ae64, (q31_t)0x8631945e, - (q31_t)0x274fb3ae, (q31_t)0x862fa638, (q31_t)0x2749b8e0, (q31_t)0x862db85e, (q31_t)0x2743bdf9, (q31_t)0x862bcace, - (q31_t)0x273dc2fa, (q31_t)0x8629dd8a, - (q31_t)0x2737c7e3, (q31_t)0x8627f091, (q31_t)0x2731ccb4, (q31_t)0x862603e3, (q31_t)0x272bd16d, (q31_t)0x86241780, - (q31_t)0x2725d60e, (q31_t)0x86222b68, - (q31_t)0x271fda96, (q31_t)0x86203f9c, (q31_t)0x2719df06, (q31_t)0x861e541a, (q31_t)0x2713e35f, (q31_t)0x861c68e4, - (q31_t)0x270de79f, (q31_t)0x861a7df9, - (q31_t)0x2707ebc7, (q31_t)0x86189359, (q31_t)0x2701efd7, (q31_t)0x8616a905, (q31_t)0x26fbf3ce, (q31_t)0x8614befb, - (q31_t)0x26f5f7ae, (q31_t)0x8612d53d, - (q31_t)0x26effb76, (q31_t)0x8610ebca, (q31_t)0x26e9ff26, (q31_t)0x860f02a3, (q31_t)0x26e402bd, (q31_t)0x860d19c6, - (q31_t)0x26de063d, (q31_t)0x860b3135, - (q31_t)0x26d809a5, (q31_t)0x860948ef, (q31_t)0x26d20cf5, (q31_t)0x860760f4, (q31_t)0x26cc102d, (q31_t)0x86057944, - (q31_t)0x26c6134d, (q31_t)0x860391e0, - (q31_t)0x26c01655, (q31_t)0x8601aac7, (q31_t)0x26ba1945, (q31_t)0x85ffc3f9, (q31_t)0x26b41c1d, (q31_t)0x85fddd76, - (q31_t)0x26ae1edd, (q31_t)0x85fbf73f, - (q31_t)0x26a82186, (q31_t)0x85fa1153, (q31_t)0x26a22416, (q31_t)0x85f82bb2, (q31_t)0x269c268f, (q31_t)0x85f6465c, - (q31_t)0x269628f0, (q31_t)0x85f46152, - (q31_t)0x26902b39, (q31_t)0x85f27c93, (q31_t)0x268a2d6b, (q31_t)0x85f09820, (q31_t)0x26842f84, (q31_t)0x85eeb3f7, - (q31_t)0x267e3186, (q31_t)0x85ecd01a, - (q31_t)0x26783370, (q31_t)0x85eaec88, (q31_t)0x26723543, (q31_t)0x85e90942, (q31_t)0x266c36fe, (q31_t)0x85e72647, - (q31_t)0x266638a1, (q31_t)0x85e54397, - (q31_t)0x26603a2c, (q31_t)0x85e36132, (q31_t)0x265a3b9f, (q31_t)0x85e17f19, (q31_t)0x26543cfb, (q31_t)0x85df9d4b, - (q31_t)0x264e3e40, (q31_t)0x85ddbbc9, - (q31_t)0x26483f6c, (q31_t)0x85dbda91, (q31_t)0x26424082, (q31_t)0x85d9f9a5, (q31_t)0x263c417f, (q31_t)0x85d81905, - (q31_t)0x26364265, (q31_t)0x85d638b0, - (q31_t)0x26304333, (q31_t)0x85d458a6, (q31_t)0x262a43ea, (q31_t)0x85d278e7, (q31_t)0x26244489, (q31_t)0x85d09974, - (q31_t)0x261e4511, (q31_t)0x85ceba4d, - (q31_t)0x26184581, (q31_t)0x85ccdb70, (q31_t)0x261245da, (q31_t)0x85cafcdf, (q31_t)0x260c461b, (q31_t)0x85c91e9a, - (q31_t)0x26064645, (q31_t)0x85c740a0, - (q31_t)0x26004657, (q31_t)0x85c562f1, (q31_t)0x25fa4652, (q31_t)0x85c3858d, (q31_t)0x25f44635, (q31_t)0x85c1a875, - (q31_t)0x25ee4601, (q31_t)0x85bfcba9, - (q31_t)0x25e845b6, (q31_t)0x85bdef28, (q31_t)0x25e24553, (q31_t)0x85bc12f2, (q31_t)0x25dc44d9, (q31_t)0x85ba3707, - (q31_t)0x25d64447, (q31_t)0x85b85b68, - (q31_t)0x25d0439f, (q31_t)0x85b68015, (q31_t)0x25ca42de, (q31_t)0x85b4a50d, (q31_t)0x25c44207, (q31_t)0x85b2ca50, - (q31_t)0x25be4118, (q31_t)0x85b0efdf, - (q31_t)0x25b84012, (q31_t)0x85af15b9, (q31_t)0x25b23ef5, (q31_t)0x85ad3bdf, (q31_t)0x25ac3dc0, (q31_t)0x85ab6250, - (q31_t)0x25a63c74, (q31_t)0x85a9890d, - (q31_t)0x25a03b11, (q31_t)0x85a7b015, (q31_t)0x259a3997, (q31_t)0x85a5d768, (q31_t)0x25943806, (q31_t)0x85a3ff07, - (q31_t)0x258e365d, (q31_t)0x85a226f2, - (q31_t)0x2588349d, (q31_t)0x85a04f28, (q31_t)0x258232c6, (q31_t)0x859e77a9, (q31_t)0x257c30d8, (q31_t)0x859ca076, - (q31_t)0x25762ed3, (q31_t)0x859ac98f, - (q31_t)0x25702cb7, (q31_t)0x8598f2f3, (q31_t)0x256a2a83, (q31_t)0x85971ca2, (q31_t)0x25642839, (q31_t)0x8595469d, - (q31_t)0x255e25d7, (q31_t)0x859370e4, - (q31_t)0x2558235f, (q31_t)0x85919b76, (q31_t)0x255220cf, (q31_t)0x858fc653, (q31_t)0x254c1e28, (q31_t)0x858df17c, - (q31_t)0x25461b6b, (q31_t)0x858c1cf1, - (q31_t)0x25401896, (q31_t)0x858a48b1, (q31_t)0x253a15aa, (q31_t)0x858874bd, (q31_t)0x253412a8, (q31_t)0x8586a114, - (q31_t)0x252e0f8e, (q31_t)0x8584cdb7, - (q31_t)0x25280c5e, (q31_t)0x8582faa5, (q31_t)0x25220916, (q31_t)0x858127df, (q31_t)0x251c05b8, (q31_t)0x857f5564, - (q31_t)0x25160243, (q31_t)0x857d8335, - (q31_t)0x250ffeb7, (q31_t)0x857bb152, (q31_t)0x2509fb14, (q31_t)0x8579dfba, (q31_t)0x2503f75a, (q31_t)0x85780e6e, - (q31_t)0x24fdf389, (q31_t)0x85763d6d, - (q31_t)0x24f7efa2, (q31_t)0x85746cb8, (q31_t)0x24f1eba4, (q31_t)0x85729c4e, (q31_t)0x24ebe78f, (q31_t)0x8570cc30, - (q31_t)0x24e5e363, (q31_t)0x856efc5e, - (q31_t)0x24dfdf20, (q31_t)0x856d2cd7, (q31_t)0x24d9dac7, (q31_t)0x856b5d9c, (q31_t)0x24d3d657, (q31_t)0x85698ead, - (q31_t)0x24cdd1d0, (q31_t)0x8567c009, - (q31_t)0x24c7cd33, (q31_t)0x8565f1b0, (q31_t)0x24c1c87f, (q31_t)0x856423a4, (q31_t)0x24bbc3b4, (q31_t)0x856255e3, - (q31_t)0x24b5bed2, (q31_t)0x8560886d, - (q31_t)0x24afb9da, (q31_t)0x855ebb44, (q31_t)0x24a9b4cb, (q31_t)0x855cee66, (q31_t)0x24a3afa6, (q31_t)0x855b21d3, - (q31_t)0x249daa6a, (q31_t)0x8559558c, - (q31_t)0x2497a517, (q31_t)0x85578991, (q31_t)0x24919fae, (q31_t)0x8555bde2, (q31_t)0x248b9a2f, (q31_t)0x8553f27e, - (q31_t)0x24859498, (q31_t)0x85522766, - (q31_t)0x247f8eec, (q31_t)0x85505c99, (q31_t)0x24798928, (q31_t)0x854e9219, (q31_t)0x2473834f, (q31_t)0x854cc7e3, - (q31_t)0x246d7d5e, (q31_t)0x854afdfa, - (q31_t)0x24677758, (q31_t)0x8549345c, (q31_t)0x2461713a, (q31_t)0x85476b0a, (q31_t)0x245b6b07, (q31_t)0x8545a204, - (q31_t)0x245564bd, (q31_t)0x8543d949, - (q31_t)0x244f5e5c, (q31_t)0x854210db, (q31_t)0x244957e5, (q31_t)0x854048b7, (q31_t)0x24435158, (q31_t)0x853e80e0, - (q31_t)0x243d4ab4, (q31_t)0x853cb954, - (q31_t)0x243743fa, (q31_t)0x853af214, (q31_t)0x24313d2a, (q31_t)0x85392b20, (q31_t)0x242b3644, (q31_t)0x85376477, - (q31_t)0x24252f47, (q31_t)0x85359e1a, - (q31_t)0x241f2833, (q31_t)0x8533d809, (q31_t)0x2419210a, (q31_t)0x85321244, (q31_t)0x241319ca, (q31_t)0x85304cca, - (q31_t)0x240d1274, (q31_t)0x852e879d, - (q31_t)0x24070b08, (q31_t)0x852cc2bb, (q31_t)0x24010385, (q31_t)0x852afe24, (q31_t)0x23fafbec, (q31_t)0x852939da, - (q31_t)0x23f4f43e, (q31_t)0x852775db, - (q31_t)0x23eeec78, (q31_t)0x8525b228, (q31_t)0x23e8e49d, (q31_t)0x8523eec1, (q31_t)0x23e2dcac, (q31_t)0x85222ba5, - (q31_t)0x23dcd4a4, (q31_t)0x852068d6, - (q31_t)0x23d6cc87, (q31_t)0x851ea652, (q31_t)0x23d0c453, (q31_t)0x851ce41a, (q31_t)0x23cabc09, (q31_t)0x851b222e, - (q31_t)0x23c4b3a9, (q31_t)0x8519608d, - (q31_t)0x23beab33, (q31_t)0x85179f39, (q31_t)0x23b8a2a7, (q31_t)0x8515de30, (q31_t)0x23b29a05, (q31_t)0x85141d73, - (q31_t)0x23ac914d, (q31_t)0x85125d02, - (q31_t)0x23a6887f, (q31_t)0x85109cdd, (q31_t)0x23a07f9a, (q31_t)0x850edd03, (q31_t)0x239a76a0, (q31_t)0x850d1d75, - (q31_t)0x23946d90, (q31_t)0x850b5e34, - (q31_t)0x238e646a, (q31_t)0x85099f3e, (q31_t)0x23885b2e, (q31_t)0x8507e094, (q31_t)0x238251dd, (q31_t)0x85062235, - (q31_t)0x237c4875, (q31_t)0x85046423, - (q31_t)0x23763ef7, (q31_t)0x8502a65c, (q31_t)0x23703564, (q31_t)0x8500e8e2, (q31_t)0x236a2bba, (q31_t)0x84ff2bb3, - (q31_t)0x236421fb, (q31_t)0x84fd6ed0, - (q31_t)0x235e1826, (q31_t)0x84fbb239, (q31_t)0x23580e3b, (q31_t)0x84f9f5ee, (q31_t)0x2352043b, (q31_t)0x84f839ee, - (q31_t)0x234bfa24, (q31_t)0x84f67e3b, - (q31_t)0x2345eff8, (q31_t)0x84f4c2d4, (q31_t)0x233fe5b6, (q31_t)0x84f307b8, (q31_t)0x2339db5e, (q31_t)0x84f14ce8, - (q31_t)0x2333d0f1, (q31_t)0x84ef9265, - (q31_t)0x232dc66d, (q31_t)0x84edd82d, (q31_t)0x2327bbd5, (q31_t)0x84ec1e41, (q31_t)0x2321b126, (q31_t)0x84ea64a1, - (q31_t)0x231ba662, (q31_t)0x84e8ab4d, - (q31_t)0x23159b88, (q31_t)0x84e6f244, (q31_t)0x230f9098, (q31_t)0x84e53988, (q31_t)0x23098593, (q31_t)0x84e38118, - (q31_t)0x23037a78, (q31_t)0x84e1c8f3, - (q31_t)0x22fd6f48, (q31_t)0x84e0111b, (q31_t)0x22f76402, (q31_t)0x84de598f, (q31_t)0x22f158a7, (q31_t)0x84dca24e, - (q31_t)0x22eb4d36, (q31_t)0x84daeb5a, - (q31_t)0x22e541af, (q31_t)0x84d934b1, (q31_t)0x22df3613, (q31_t)0x84d77e54, (q31_t)0x22d92a61, (q31_t)0x84d5c844, - (q31_t)0x22d31e9a, (q31_t)0x84d4127f, - (q31_t)0x22cd12bd, (q31_t)0x84d25d06, (q31_t)0x22c706cb, (q31_t)0x84d0a7da, (q31_t)0x22c0fac4, (q31_t)0x84cef2f9, - (q31_t)0x22baeea7, (q31_t)0x84cd3e64, - (q31_t)0x22b4e274, (q31_t)0x84cb8a1b, (q31_t)0x22aed62c, (q31_t)0x84c9d61f, (q31_t)0x22a8c9cf, (q31_t)0x84c8226e, - (q31_t)0x22a2bd5d, (q31_t)0x84c66f09, - (q31_t)0x229cb0d5, (q31_t)0x84c4bbf0, (q31_t)0x2296a437, (q31_t)0x84c30924, (q31_t)0x22909785, (q31_t)0x84c156a3, - (q31_t)0x228a8abd, (q31_t)0x84bfa46e, - (q31_t)0x22847de0, (q31_t)0x84bdf286, (q31_t)0x227e70ed, (q31_t)0x84bc40e9, (q31_t)0x227863e5, (q31_t)0x84ba8f98, - (q31_t)0x227256c8, (q31_t)0x84b8de94, - (q31_t)0x226c4996, (q31_t)0x84b72ddb, (q31_t)0x22663c4e, (q31_t)0x84b57d6f, (q31_t)0x22602ef1, (q31_t)0x84b3cd4f, - (q31_t)0x225a217f, (q31_t)0x84b21d7a, - (q31_t)0x225413f8, (q31_t)0x84b06df2, (q31_t)0x224e065c, (q31_t)0x84aebeb6, (q31_t)0x2247f8aa, (q31_t)0x84ad0fc6, - (q31_t)0x2241eae3, (q31_t)0x84ab6122, - (q31_t)0x223bdd08, (q31_t)0x84a9b2ca, (q31_t)0x2235cf17, (q31_t)0x84a804be, (q31_t)0x222fc111, (q31_t)0x84a656fe, - (q31_t)0x2229b2f6, (q31_t)0x84a4a98a, - (q31_t)0x2223a4c5, (q31_t)0x84a2fc62, (q31_t)0x221d9680, (q31_t)0x84a14f87, (q31_t)0x22178826, (q31_t)0x849fa2f7, - (q31_t)0x221179b7, (q31_t)0x849df6b4, - (q31_t)0x220b6b32, (q31_t)0x849c4abd, (q31_t)0x22055c99, (q31_t)0x849a9f12, (q31_t)0x21ff4dea, (q31_t)0x8498f3b3, - (q31_t)0x21f93f27, (q31_t)0x849748a0, - (q31_t)0x21f3304f, (q31_t)0x84959dd9, (q31_t)0x21ed2162, (q31_t)0x8493f35e, (q31_t)0x21e71260, (q31_t)0x84924930, - (q31_t)0x21e10349, (q31_t)0x84909f4e, - (q31_t)0x21daf41d, (q31_t)0x848ef5b7, (q31_t)0x21d4e4dc, (q31_t)0x848d4c6d, (q31_t)0x21ced586, (q31_t)0x848ba36f, - (q31_t)0x21c8c61c, (q31_t)0x8489fabe, - (q31_t)0x21c2b69c, (q31_t)0x84885258, (q31_t)0x21bca708, (q31_t)0x8486aa3e, (q31_t)0x21b6975f, (q31_t)0x84850271, - (q31_t)0x21b087a1, (q31_t)0x84835af0, - (q31_t)0x21aa77cf, (q31_t)0x8481b3bb, (q31_t)0x21a467e7, (q31_t)0x84800cd2, (q31_t)0x219e57eb, (q31_t)0x847e6636, - (q31_t)0x219847da, (q31_t)0x847cbfe5, - (q31_t)0x219237b5, (q31_t)0x847b19e1, (q31_t)0x218c277a, (q31_t)0x84797429, (q31_t)0x2186172b, (q31_t)0x8477cebd, - (q31_t)0x218006c8, (q31_t)0x8476299e, - (q31_t)0x2179f64f, (q31_t)0x847484ca, (q31_t)0x2173e5c2, (q31_t)0x8472e043, (q31_t)0x216dd521, (q31_t)0x84713c08, - (q31_t)0x2167c46b, (q31_t)0x846f9819, - (q31_t)0x2161b3a0, (q31_t)0x846df477, (q31_t)0x215ba2c0, (q31_t)0x846c5120, (q31_t)0x215591cc, (q31_t)0x846aae16, - (q31_t)0x214f80c4, (q31_t)0x84690b58, - (q31_t)0x21496fa7, (q31_t)0x846768e7, (q31_t)0x21435e75, (q31_t)0x8465c6c1, (q31_t)0x213d4d2f, (q31_t)0x846424e8, - (q31_t)0x21373bd4, (q31_t)0x8462835b, - (q31_t)0x21312a65, (q31_t)0x8460e21a, (q31_t)0x212b18e1, (q31_t)0x845f4126, (q31_t)0x21250749, (q31_t)0x845da07e, - (q31_t)0x211ef59d, (q31_t)0x845c0022, - (q31_t)0x2118e3dc, (q31_t)0x845a6012, (q31_t)0x2112d206, (q31_t)0x8458c04f, (q31_t)0x210cc01d, (q31_t)0x845720d8, - (q31_t)0x2106ae1e, (q31_t)0x845581ad, - (q31_t)0x21009c0c, (q31_t)0x8453e2cf, (q31_t)0x20fa89e5, (q31_t)0x8452443d, (q31_t)0x20f477aa, (q31_t)0x8450a5f7, - (q31_t)0x20ee655a, (q31_t)0x844f07fd, - (q31_t)0x20e852f6, (q31_t)0x844d6a50, (q31_t)0x20e2407e, (q31_t)0x844bccef, (q31_t)0x20dc2df2, (q31_t)0x844a2fda, - (q31_t)0x20d61b51, (q31_t)0x84489311, - (q31_t)0x20d0089c, (q31_t)0x8446f695, (q31_t)0x20c9f5d3, (q31_t)0x84455a66, (q31_t)0x20c3e2f5, (q31_t)0x8443be82, - (q31_t)0x20bdd003, (q31_t)0x844222eb, - (q31_t)0x20b7bcfe, (q31_t)0x844087a0, (q31_t)0x20b1a9e4, (q31_t)0x843eeca2, (q31_t)0x20ab96b5, (q31_t)0x843d51f0, - (q31_t)0x20a58373, (q31_t)0x843bb78a, - (q31_t)0x209f701c, (q31_t)0x843a1d70, (q31_t)0x20995cb2, (q31_t)0x843883a3, (q31_t)0x20934933, (q31_t)0x8436ea23, - (q31_t)0x208d35a0, (q31_t)0x843550ee, - (q31_t)0x208721f9, (q31_t)0x8433b806, (q31_t)0x20810e3e, (q31_t)0x84321f6b, (q31_t)0x207afa6f, (q31_t)0x8430871b, - (q31_t)0x2074e68c, (q31_t)0x842eef18, - (q31_t)0x206ed295, (q31_t)0x842d5762, (q31_t)0x2068be8a, (q31_t)0x842bbff8, (q31_t)0x2062aa6b, (q31_t)0x842a28da, - (q31_t)0x205c9638, (q31_t)0x84289209, - (q31_t)0x205681f1, (q31_t)0x8426fb84, (q31_t)0x20506d96, (q31_t)0x8425654b, (q31_t)0x204a5927, (q31_t)0x8423cf5f, - (q31_t)0x204444a4, (q31_t)0x842239bf, - (q31_t)0x203e300d, (q31_t)0x8420a46c, (q31_t)0x20381b63, (q31_t)0x841f0f65, (q31_t)0x203206a4, (q31_t)0x841d7aaa, - (q31_t)0x202bf1d2, (q31_t)0x841be63c, - (q31_t)0x2025dcec, (q31_t)0x841a521a, (q31_t)0x201fc7f2, (q31_t)0x8418be45, (q31_t)0x2019b2e4, (q31_t)0x84172abc, - (q31_t)0x20139dc2, (q31_t)0x84159780, - (q31_t)0x200d888d, (q31_t)0x84140490, (q31_t)0x20077344, (q31_t)0x841271ec, (q31_t)0x20015de7, (q31_t)0x8410df95, - (q31_t)0x1ffb4876, (q31_t)0x840f4d8a, - (q31_t)0x1ff532f2, (q31_t)0x840dbbcc, (q31_t)0x1fef1d59, (q31_t)0x840c2a5a, (q31_t)0x1fe907ae, (q31_t)0x840a9935, - (q31_t)0x1fe2f1ee, (q31_t)0x8409085c, - (q31_t)0x1fdcdc1b, (q31_t)0x840777d0, (q31_t)0x1fd6c634, (q31_t)0x8405e790, (q31_t)0x1fd0b03a, (q31_t)0x8404579d, - (q31_t)0x1fca9a2b, (q31_t)0x8402c7f6, - (q31_t)0x1fc4840a, (q31_t)0x8401389b, (q31_t)0x1fbe6dd4, (q31_t)0x83ffa98d, (q31_t)0x1fb8578b, (q31_t)0x83fe1acc, - (q31_t)0x1fb2412f, (q31_t)0x83fc8c57, - (q31_t)0x1fac2abf, (q31_t)0x83fafe2e, (q31_t)0x1fa6143b, (q31_t)0x83f97052, (q31_t)0x1f9ffda4, (q31_t)0x83f7e2c3, - (q31_t)0x1f99e6fa, (q31_t)0x83f65580, - (q31_t)0x1f93d03c, (q31_t)0x83f4c889, (q31_t)0x1f8db96a, (q31_t)0x83f33bdf, (q31_t)0x1f87a285, (q31_t)0x83f1af82, - (q31_t)0x1f818b8d, (q31_t)0x83f02371, - (q31_t)0x1f7b7481, (q31_t)0x83ee97ad, (q31_t)0x1f755d61, (q31_t)0x83ed0c35, (q31_t)0x1f6f462f, (q31_t)0x83eb810a, - (q31_t)0x1f692ee9, (q31_t)0x83e9f62b, - (q31_t)0x1f63178f, (q31_t)0x83e86b99, (q31_t)0x1f5d0022, (q31_t)0x83e6e153, (q31_t)0x1f56e8a2, (q31_t)0x83e5575a, - (q31_t)0x1f50d10e, (q31_t)0x83e3cdad, - (q31_t)0x1f4ab968, (q31_t)0x83e2444d, (q31_t)0x1f44a1ad, (q31_t)0x83e0bb3a, (q31_t)0x1f3e89e0, (q31_t)0x83df3273, - (q31_t)0x1f3871ff, (q31_t)0x83dda9f9, - (q31_t)0x1f325a0b, (q31_t)0x83dc21cb, (q31_t)0x1f2c4204, (q31_t)0x83da99ea, (q31_t)0x1f2629ea, (q31_t)0x83d91255, - (q31_t)0x1f2011bc, (q31_t)0x83d78b0d, - (q31_t)0x1f19f97b, (q31_t)0x83d60412, (q31_t)0x1f13e127, (q31_t)0x83d47d63, (q31_t)0x1f0dc8c0, (q31_t)0x83d2f701, - (q31_t)0x1f07b045, (q31_t)0x83d170eb, - (q31_t)0x1f0197b8, (q31_t)0x83cfeb22, (q31_t)0x1efb7f17, (q31_t)0x83ce65a6, (q31_t)0x1ef56664, (q31_t)0x83cce076, - (q31_t)0x1eef4d9d, (q31_t)0x83cb5b93, - (q31_t)0x1ee934c3, (q31_t)0x83c9d6fc, (q31_t)0x1ee31bd6, (q31_t)0x83c852b2, (q31_t)0x1edd02d6, (q31_t)0x83c6ceb5, - (q31_t)0x1ed6e9c3, (q31_t)0x83c54b04, - (q31_t)0x1ed0d09d, (q31_t)0x83c3c7a0, (q31_t)0x1ecab763, (q31_t)0x83c24488, (q31_t)0x1ec49e17, (q31_t)0x83c0c1be, - (q31_t)0x1ebe84b8, (q31_t)0x83bf3f3f, - (q31_t)0x1eb86b46, (q31_t)0x83bdbd0e, (q31_t)0x1eb251c1, (q31_t)0x83bc3b29, (q31_t)0x1eac3829, (q31_t)0x83bab991, - (q31_t)0x1ea61e7e, (q31_t)0x83b93845, - (q31_t)0x1ea004c1, (q31_t)0x83b7b746, (q31_t)0x1e99eaf0, (q31_t)0x83b63694, (q31_t)0x1e93d10c, (q31_t)0x83b4b62e, - (q31_t)0x1e8db716, (q31_t)0x83b33616, - (q31_t)0x1e879d0d, (q31_t)0x83b1b649, (q31_t)0x1e8182f1, (q31_t)0x83b036ca, (q31_t)0x1e7b68c2, (q31_t)0x83aeb797, - (q31_t)0x1e754e80, (q31_t)0x83ad38b1, - (q31_t)0x1e6f342c, (q31_t)0x83abba17, (q31_t)0x1e6919c4, (q31_t)0x83aa3bca, (q31_t)0x1e62ff4a, (q31_t)0x83a8bdca, - (q31_t)0x1e5ce4be, (q31_t)0x83a74017, - (q31_t)0x1e56ca1e, (q31_t)0x83a5c2b0, (q31_t)0x1e50af6c, (q31_t)0x83a44596, (q31_t)0x1e4a94a7, (q31_t)0x83a2c8c9, - (q31_t)0x1e4479cf, (q31_t)0x83a14c48, - (q31_t)0x1e3e5ee5, (q31_t)0x839fd014, (q31_t)0x1e3843e8, (q31_t)0x839e542d, (q31_t)0x1e3228d9, (q31_t)0x839cd893, - (q31_t)0x1e2c0db6, (q31_t)0x839b5d45, - (q31_t)0x1e25f282, (q31_t)0x8399e244, (q31_t)0x1e1fd73a, (q31_t)0x83986790, (q31_t)0x1e19bbe0, (q31_t)0x8396ed29, - (q31_t)0x1e13a074, (q31_t)0x8395730e, - (q31_t)0x1e0d84f5, (q31_t)0x8393f940, (q31_t)0x1e076963, (q31_t)0x83927fbf, (q31_t)0x1e014dbf, (q31_t)0x8391068a, - (q31_t)0x1dfb3208, (q31_t)0x838f8da2, - (q31_t)0x1df5163f, (q31_t)0x838e1507, (q31_t)0x1deefa63, (q31_t)0x838c9cb9, (q31_t)0x1de8de75, (q31_t)0x838b24b8, - (q31_t)0x1de2c275, (q31_t)0x8389ad03, - (q31_t)0x1ddca662, (q31_t)0x8388359b, (q31_t)0x1dd68a3c, (q31_t)0x8386be80, (q31_t)0x1dd06e04, (q31_t)0x838547b2, - (q31_t)0x1dca51ba, (q31_t)0x8383d130, - (q31_t)0x1dc4355e, (q31_t)0x83825afb, (q31_t)0x1dbe18ef, (q31_t)0x8380e513, (q31_t)0x1db7fc6d, (q31_t)0x837f6f78, - (q31_t)0x1db1dfda, (q31_t)0x837dfa2a, - (q31_t)0x1dabc334, (q31_t)0x837c8528, (q31_t)0x1da5a67c, (q31_t)0x837b1074, (q31_t)0x1d9f89b1, (q31_t)0x83799c0c, - (q31_t)0x1d996cd4, (q31_t)0x837827f0, - (q31_t)0x1d934fe5, (q31_t)0x8376b422, (q31_t)0x1d8d32e4, (q31_t)0x837540a1, (q31_t)0x1d8715d0, (q31_t)0x8373cd6c, - (q31_t)0x1d80f8ab, (q31_t)0x83725a84, - (q31_t)0x1d7adb73, (q31_t)0x8370e7e9, (q31_t)0x1d74be29, (q31_t)0x836f759b, (q31_t)0x1d6ea0cc, (q31_t)0x836e039a, - (q31_t)0x1d68835e, (q31_t)0x836c91e5, - (q31_t)0x1d6265dd, (q31_t)0x836b207d, (q31_t)0x1d5c484b, (q31_t)0x8369af63, (q31_t)0x1d562aa6, (q31_t)0x83683e95, - (q31_t)0x1d500cef, (q31_t)0x8366ce14, - (q31_t)0x1d49ef26, (q31_t)0x83655ddf, (q31_t)0x1d43d14b, (q31_t)0x8363edf8, (q31_t)0x1d3db35e, (q31_t)0x83627e5d, - (q31_t)0x1d37955e, (q31_t)0x83610f10, - (q31_t)0x1d31774d, (q31_t)0x835fa00f, (q31_t)0x1d2b592a, (q31_t)0x835e315b, (q31_t)0x1d253af5, (q31_t)0x835cc2f4, - (q31_t)0x1d1f1cae, (q31_t)0x835b54da, - (q31_t)0x1d18fe54, (q31_t)0x8359e70d, (q31_t)0x1d12dfe9, (q31_t)0x8358798c, (q31_t)0x1d0cc16c, (q31_t)0x83570c59, - (q31_t)0x1d06a2dd, (q31_t)0x83559f72, - (q31_t)0x1d00843d, (q31_t)0x835432d8, (q31_t)0x1cfa658a, (q31_t)0x8352c68c, (q31_t)0x1cf446c5, (q31_t)0x83515a8c, - (q31_t)0x1cee27ef, (q31_t)0x834feed9, - (q31_t)0x1ce80906, (q31_t)0x834e8373, (q31_t)0x1ce1ea0c, (q31_t)0x834d185a, (q31_t)0x1cdbcb00, (q31_t)0x834bad8e, - (q31_t)0x1cd5abe3, (q31_t)0x834a430e, - (q31_t)0x1ccf8cb3, (q31_t)0x8348d8dc, (q31_t)0x1cc96d72, (q31_t)0x83476ef6, (q31_t)0x1cc34e1f, (q31_t)0x8346055e, - (q31_t)0x1cbd2eba, (q31_t)0x83449c12, - (q31_t)0x1cb70f43, (q31_t)0x83433314, (q31_t)0x1cb0efbb, (q31_t)0x8341ca62, (q31_t)0x1caad021, (q31_t)0x834061fd, - (q31_t)0x1ca4b075, (q31_t)0x833ef9e6, - (q31_t)0x1c9e90b8, (q31_t)0x833d921b, (q31_t)0x1c9870e9, (q31_t)0x833c2a9d, (q31_t)0x1c925109, (q31_t)0x833ac36c, - (q31_t)0x1c8c3116, (q31_t)0x83395c88, - (q31_t)0x1c861113, (q31_t)0x8337f5f1, (q31_t)0x1c7ff0fd, (q31_t)0x83368fa7, (q31_t)0x1c79d0d6, (q31_t)0x833529aa, - (q31_t)0x1c73b09d, (q31_t)0x8333c3fa, - (q31_t)0x1c6d9053, (q31_t)0x83325e97, (q31_t)0x1c676ff8, (q31_t)0x8330f981, (q31_t)0x1c614f8b, (q31_t)0x832f94b8, - (q31_t)0x1c5b2f0c, (q31_t)0x832e303c, - (q31_t)0x1c550e7c, (q31_t)0x832ccc0d, (q31_t)0x1c4eedda, (q31_t)0x832b682b, (q31_t)0x1c48cd27, (q31_t)0x832a0496, - (q31_t)0x1c42ac62, (q31_t)0x8328a14d, - (q31_t)0x1c3c8b8c, (q31_t)0x83273e52, (q31_t)0x1c366aa5, (q31_t)0x8325dba4, (q31_t)0x1c3049ac, (q31_t)0x83247943, - (q31_t)0x1c2a28a2, (q31_t)0x8323172f, - (q31_t)0x1c240786, (q31_t)0x8321b568, (q31_t)0x1c1de659, (q31_t)0x832053ee, (q31_t)0x1c17c51b, (q31_t)0x831ef2c1, - (q31_t)0x1c11a3cb, (q31_t)0x831d91e1, - (q31_t)0x1c0b826a, (q31_t)0x831c314e, (q31_t)0x1c0560f8, (q31_t)0x831ad109, (q31_t)0x1bff3f75, (q31_t)0x83197110, - (q31_t)0x1bf91de0, (q31_t)0x83181164, - (q31_t)0x1bf2fc3a, (q31_t)0x8316b205, (q31_t)0x1becda83, (q31_t)0x831552f4, (q31_t)0x1be6b8ba, (q31_t)0x8313f42f, - (q31_t)0x1be096e0, (q31_t)0x831295b7, - (q31_t)0x1bda74f6, (q31_t)0x8311378d, (q31_t)0x1bd452f9, (q31_t)0x830fd9af, (q31_t)0x1bce30ec, (q31_t)0x830e7c1f, - (q31_t)0x1bc80ece, (q31_t)0x830d1edc, - (q31_t)0x1bc1ec9e, (q31_t)0x830bc1e6, (q31_t)0x1bbbca5e, (q31_t)0x830a653c, (q31_t)0x1bb5a80c, (q31_t)0x830908e0, - (q31_t)0x1baf85a9, (q31_t)0x8307acd1, - (q31_t)0x1ba96335, (q31_t)0x83065110, (q31_t)0x1ba340b0, (q31_t)0x8304f59b, (q31_t)0x1b9d1e1a, (q31_t)0x83039a73, - (q31_t)0x1b96fb73, (q31_t)0x83023f98, - (q31_t)0x1b90d8bb, (q31_t)0x8300e50b, (q31_t)0x1b8ab5f2, (q31_t)0x82ff8acb, (q31_t)0x1b849317, (q31_t)0x82fe30d7, - (q31_t)0x1b7e702c, (q31_t)0x82fcd731, - (q31_t)0x1b784d30, (q31_t)0x82fb7dd8, (q31_t)0x1b722a23, (q31_t)0x82fa24cc, (q31_t)0x1b6c0705, (q31_t)0x82f8cc0d, - (q31_t)0x1b65e3d7, (q31_t)0x82f7739c, - (q31_t)0x1b5fc097, (q31_t)0x82f61b77, (q31_t)0x1b599d46, (q31_t)0x82f4c3a0, (q31_t)0x1b5379e5, (q31_t)0x82f36c15, - (q31_t)0x1b4d5672, (q31_t)0x82f214d8, - (q31_t)0x1b4732ef, (q31_t)0x82f0bde8, (q31_t)0x1b410f5b, (q31_t)0x82ef6745, (q31_t)0x1b3aebb6, (q31_t)0x82ee10ef, - (q31_t)0x1b34c801, (q31_t)0x82ecbae7, - (q31_t)0x1b2ea43a, (q31_t)0x82eb652b, (q31_t)0x1b288063, (q31_t)0x82ea0fbd, (q31_t)0x1b225c7b, (q31_t)0x82e8ba9c, - (q31_t)0x1b1c3883, (q31_t)0x82e765c8, - (q31_t)0x1b161479, (q31_t)0x82e61141, (q31_t)0x1b0ff05f, (q31_t)0x82e4bd07, (q31_t)0x1b09cc34, (q31_t)0x82e3691b, - (q31_t)0x1b03a7f9, (q31_t)0x82e2157c, - (q31_t)0x1afd83ad, (q31_t)0x82e0c22a, (q31_t)0x1af75f50, (q31_t)0x82df6f25, (q31_t)0x1af13ae3, (q31_t)0x82de1c6d, - (q31_t)0x1aeb1665, (q31_t)0x82dcca02, - (q31_t)0x1ae4f1d6, (q31_t)0x82db77e5, (q31_t)0x1adecd37, (q31_t)0x82da2615, (q31_t)0x1ad8a887, (q31_t)0x82d8d492, - (q31_t)0x1ad283c7, (q31_t)0x82d7835c, - (q31_t)0x1acc5ef6, (q31_t)0x82d63274, (q31_t)0x1ac63a14, (q31_t)0x82d4e1d8, (q31_t)0x1ac01522, (q31_t)0x82d3918a, - (q31_t)0x1ab9f020, (q31_t)0x82d24189, - (q31_t)0x1ab3cb0d, (q31_t)0x82d0f1d5, (q31_t)0x1aada5e9, (q31_t)0x82cfa26f, (q31_t)0x1aa780b6, (q31_t)0x82ce5356, - (q31_t)0x1aa15b71, (q31_t)0x82cd048a, - (q31_t)0x1a9b361d, (q31_t)0x82cbb60b, (q31_t)0x1a9510b7, (q31_t)0x82ca67d9, (q31_t)0x1a8eeb42, (q31_t)0x82c919f5, - (q31_t)0x1a88c5bc, (q31_t)0x82c7cc5e, - (q31_t)0x1a82a026, (q31_t)0x82c67f14, (q31_t)0x1a7c7a7f, (q31_t)0x82c53217, (q31_t)0x1a7654c8, (q31_t)0x82c3e568, - (q31_t)0x1a702f01, (q31_t)0x82c29906, - (q31_t)0x1a6a0929, (q31_t)0x82c14cf1, (q31_t)0x1a63e341, (q31_t)0x82c00129, (q31_t)0x1a5dbd49, (q31_t)0x82beb5af, - (q31_t)0x1a579741, (q31_t)0x82bd6a82, - (q31_t)0x1a517128, (q31_t)0x82bc1fa2, (q31_t)0x1a4b4aff, (q31_t)0x82bad50f, (q31_t)0x1a4524c6, (q31_t)0x82b98aca, - (q31_t)0x1a3efe7c, (q31_t)0x82b840d2, - (q31_t)0x1a38d823, (q31_t)0x82b6f727, (q31_t)0x1a32b1b9, (q31_t)0x82b5adca, (q31_t)0x1a2c8b3f, (q31_t)0x82b464ba, - (q31_t)0x1a2664b5, (q31_t)0x82b31bf7, - (q31_t)0x1a203e1b, (q31_t)0x82b1d381, (q31_t)0x1a1a1771, (q31_t)0x82b08b59, (q31_t)0x1a13f0b6, (q31_t)0x82af437e, - (q31_t)0x1a0dc9ec, (q31_t)0x82adfbf0, - (q31_t)0x1a07a311, (q31_t)0x82acb4b0, (q31_t)0x1a017c27, (q31_t)0x82ab6dbd, (q31_t)0x19fb552c, (q31_t)0x82aa2717, - (q31_t)0x19f52e22, (q31_t)0x82a8e0bf, - (q31_t)0x19ef0707, (q31_t)0x82a79ab3, (q31_t)0x19e8dfdc, (q31_t)0x82a654f6, (q31_t)0x19e2b8a2, (q31_t)0x82a50f85, - (q31_t)0x19dc9157, (q31_t)0x82a3ca62, - (q31_t)0x19d669fc, (q31_t)0x82a2858c, (q31_t)0x19d04292, (q31_t)0x82a14104, (q31_t)0x19ca1b17, (q31_t)0x829ffcc8, - (q31_t)0x19c3f38d, (q31_t)0x829eb8db, - (q31_t)0x19bdcbf3, (q31_t)0x829d753a, (q31_t)0x19b7a449, (q31_t)0x829c31e7, (q31_t)0x19b17c8f, (q31_t)0x829aeee1, - (q31_t)0x19ab54c5, (q31_t)0x8299ac29, - (q31_t)0x19a52ceb, (q31_t)0x829869be, (q31_t)0x199f0502, (q31_t)0x829727a0, (q31_t)0x1998dd09, (q31_t)0x8295e5cf, - (q31_t)0x1992b4ff, (q31_t)0x8294a44c, - (q31_t)0x198c8ce7, (q31_t)0x82936317, (q31_t)0x198664be, (q31_t)0x8292222e, (q31_t)0x19803c86, (q31_t)0x8290e194, - (q31_t)0x197a143e, (q31_t)0x828fa146, - (q31_t)0x1973ebe6, (q31_t)0x828e6146, (q31_t)0x196dc37e, (q31_t)0x828d2193, (q31_t)0x19679b07, (q31_t)0x828be22e, - (q31_t)0x19617280, (q31_t)0x828aa316, - (q31_t)0x195b49ea, (q31_t)0x8289644b, (q31_t)0x19552144, (q31_t)0x828825ce, (q31_t)0x194ef88e, (q31_t)0x8286e79e, - (q31_t)0x1948cfc8, (q31_t)0x8285a9bb, - (q31_t)0x1942a6f3, (q31_t)0x82846c26, (q31_t)0x193c7e0f, (q31_t)0x82832edf, (q31_t)0x1936551b, (q31_t)0x8281f1e4, - (q31_t)0x19302c17, (q31_t)0x8280b538, - (q31_t)0x192a0304, (q31_t)0x827f78d8, (q31_t)0x1923d9e1, (q31_t)0x827e3cc6, (q31_t)0x191db0af, (q31_t)0x827d0102, - (q31_t)0x1917876d, (q31_t)0x827bc58a, - (q31_t)0x19115e1c, (q31_t)0x827a8a61, (q31_t)0x190b34bb, (q31_t)0x82794f84, (q31_t)0x19050b4b, (q31_t)0x827814f6, - (q31_t)0x18fee1cb, (q31_t)0x8276dab4, - (q31_t)0x18f8b83c, (q31_t)0x8275a0c0, (q31_t)0x18f28e9e, (q31_t)0x8274671a, (q31_t)0x18ec64f0, (q31_t)0x82732dc0, - (q31_t)0x18e63b33, (q31_t)0x8271f4b5, - (q31_t)0x18e01167, (q31_t)0x8270bbf7, (q31_t)0x18d9e78b, (q31_t)0x826f8386, (q31_t)0x18d3bda0, (q31_t)0x826e4b62, - (q31_t)0x18cd93a5, (q31_t)0x826d138d, - (q31_t)0x18c7699b, (q31_t)0x826bdc04, (q31_t)0x18c13f82, (q31_t)0x826aa4c9, (q31_t)0x18bb155a, (q31_t)0x82696ddc, - (q31_t)0x18b4eb22, (q31_t)0x8268373c, - (q31_t)0x18aec0db, (q31_t)0x826700e9, (q31_t)0x18a89685, (q31_t)0x8265cae4, (q31_t)0x18a26c20, (q31_t)0x8264952d, - (q31_t)0x189c41ab, (q31_t)0x82635fc2, - (q31_t)0x18961728, (q31_t)0x82622aa6, (q31_t)0x188fec95, (q31_t)0x8260f5d7, (q31_t)0x1889c1f3, (q31_t)0x825fc155, - (q31_t)0x18839742, (q31_t)0x825e8d21, - (q31_t)0x187d6c82, (q31_t)0x825d593a, (q31_t)0x187741b2, (q31_t)0x825c25a1, (q31_t)0x187116d4, (q31_t)0x825af255, - (q31_t)0x186aebe6, (q31_t)0x8259bf57, - (q31_t)0x1864c0ea, (q31_t)0x82588ca7, (q31_t)0x185e95de, (q31_t)0x82575a44, (q31_t)0x18586ac3, (q31_t)0x8256282e, - (q31_t)0x18523f9a, (q31_t)0x8254f666, - (q31_t)0x184c1461, (q31_t)0x8253c4eb, (q31_t)0x1845e919, (q31_t)0x825293be, (q31_t)0x183fbdc3, (q31_t)0x825162df, - (q31_t)0x1839925d, (q31_t)0x8250324d, - (q31_t)0x183366e9, (q31_t)0x824f0208, (q31_t)0x182d3b65, (q31_t)0x824dd211, (q31_t)0x18270fd3, (q31_t)0x824ca268, - (q31_t)0x1820e431, (q31_t)0x824b730c, - (q31_t)0x181ab881, (q31_t)0x824a43fe, (q31_t)0x18148cc2, (q31_t)0x8249153d, (q31_t)0x180e60f4, (q31_t)0x8247e6ca, - (q31_t)0x18083518, (q31_t)0x8246b8a4, - (q31_t)0x1802092c, (q31_t)0x82458acc, (q31_t)0x17fbdd32, (q31_t)0x82445d41, (q31_t)0x17f5b129, (q31_t)0x82433004, - (q31_t)0x17ef8511, (q31_t)0x82420315, - (q31_t)0x17e958ea, (q31_t)0x8240d673, (q31_t)0x17e32cb5, (q31_t)0x823faa1e, (q31_t)0x17dd0070, (q31_t)0x823e7e18, - (q31_t)0x17d6d41d, (q31_t)0x823d525e, - (q31_t)0x17d0a7bc, (q31_t)0x823c26f3, (q31_t)0x17ca7b4c, (q31_t)0x823afbd5, (q31_t)0x17c44ecd, (q31_t)0x8239d104, - (q31_t)0x17be223f, (q31_t)0x8238a681, - (q31_t)0x17b7f5a3, (q31_t)0x82377c4c, (q31_t)0x17b1c8f8, (q31_t)0x82365264, (q31_t)0x17ab9c3e, (q31_t)0x823528ca, - (q31_t)0x17a56f76, (q31_t)0x8233ff7e, - (q31_t)0x179f429f, (q31_t)0x8232d67f, (q31_t)0x179915ba, (q31_t)0x8231adce, (q31_t)0x1792e8c6, (q31_t)0x8230856a, - (q31_t)0x178cbbc4, (q31_t)0x822f5d54, - (q31_t)0x17868eb3, (q31_t)0x822e358b, (q31_t)0x17806194, (q31_t)0x822d0e10, (q31_t)0x177a3466, (q31_t)0x822be6e3, - (q31_t)0x17740729, (q31_t)0x822ac004, - (q31_t)0x176dd9de, (q31_t)0x82299971, (q31_t)0x1767ac85, (q31_t)0x8228732d, (q31_t)0x17617f1d, (q31_t)0x82274d36, - (q31_t)0x175b51a7, (q31_t)0x8226278d, - (q31_t)0x17552422, (q31_t)0x82250232, (q31_t)0x174ef68f, (q31_t)0x8223dd24, (q31_t)0x1748c8ee, (q31_t)0x8222b863, - (q31_t)0x17429b3e, (q31_t)0x822193f1, - (q31_t)0x173c6d80, (q31_t)0x82206fcc, (q31_t)0x17363fb4, (q31_t)0x821f4bf5, (q31_t)0x173011d9, (q31_t)0x821e286b, - (q31_t)0x1729e3f0, (q31_t)0x821d052f, - (q31_t)0x1723b5f9, (q31_t)0x821be240, (q31_t)0x171d87f3, (q31_t)0x821abfa0, (q31_t)0x171759df, (q31_t)0x82199d4d, - (q31_t)0x17112bbd, (q31_t)0x82187b47, - (q31_t)0x170afd8d, (q31_t)0x82175990, (q31_t)0x1704cf4f, (q31_t)0x82163826, (q31_t)0x16fea102, (q31_t)0x82151709, - (q31_t)0x16f872a7, (q31_t)0x8213f63a, - (q31_t)0x16f2443e, (q31_t)0x8212d5b9, (q31_t)0x16ec15c7, (q31_t)0x8211b586, (q31_t)0x16e5e741, (q31_t)0x821095a0, - (q31_t)0x16dfb8ae, (q31_t)0x820f7608, - (q31_t)0x16d98a0c, (q31_t)0x820e56be, (q31_t)0x16d35b5c, (q31_t)0x820d37c1, (q31_t)0x16cd2c9f, (q31_t)0x820c1912, - (q31_t)0x16c6fdd3, (q31_t)0x820afab1, - (q31_t)0x16c0cef9, (q31_t)0x8209dc9e, (q31_t)0x16baa011, (q31_t)0x8208bed8, (q31_t)0x16b4711b, (q31_t)0x8207a160, - (q31_t)0x16ae4217, (q31_t)0x82068435, - (q31_t)0x16a81305, (q31_t)0x82056758, (q31_t)0x16a1e3e5, (q31_t)0x82044ac9, (q31_t)0x169bb4b7, (q31_t)0x82032e88, - (q31_t)0x1695857b, (q31_t)0x82021294, - (q31_t)0x168f5632, (q31_t)0x8200f6ef, (q31_t)0x168926da, (q31_t)0x81ffdb96, (q31_t)0x1682f774, (q31_t)0x81fec08c, - (q31_t)0x167cc801, (q31_t)0x81fda5cf, - (q31_t)0x1676987f, (q31_t)0x81fc8b60, (q31_t)0x167068f0, (q31_t)0x81fb713f, (q31_t)0x166a3953, (q31_t)0x81fa576c, - (q31_t)0x166409a8, (q31_t)0x81f93de6, - (q31_t)0x165dd9f0, (q31_t)0x81f824ae, (q31_t)0x1657aa29, (q31_t)0x81f70bc3, (q31_t)0x16517a55, (q31_t)0x81f5f327, - (q31_t)0x164b4a73, (q31_t)0x81f4dad8, - (q31_t)0x16451a83, (q31_t)0x81f3c2d7, (q31_t)0x163eea86, (q31_t)0x81f2ab24, (q31_t)0x1638ba7a, (q31_t)0x81f193be, - (q31_t)0x16328a61, (q31_t)0x81f07ca6, - (q31_t)0x162c5a3b, (q31_t)0x81ef65dc, (q31_t)0x16262a06, (q31_t)0x81ee4f60, (q31_t)0x161ff9c4, (q31_t)0x81ed3932, - (q31_t)0x1619c975, (q31_t)0x81ec2351, - (q31_t)0x16139918, (q31_t)0x81eb0dbe, (q31_t)0x160d68ad, (q31_t)0x81e9f879, (q31_t)0x16073834, (q31_t)0x81e8e381, - (q31_t)0x160107ae, (q31_t)0x81e7ced8, - (q31_t)0x15fad71b, (q31_t)0x81e6ba7c, (q31_t)0x15f4a679, (q31_t)0x81e5a66e, (q31_t)0x15ee75cb, (q31_t)0x81e492ad, - (q31_t)0x15e8450e, (q31_t)0x81e37f3b, - (q31_t)0x15e21445, (q31_t)0x81e26c16, (q31_t)0x15dbe36d, (q31_t)0x81e1593f, (q31_t)0x15d5b288, (q31_t)0x81e046b6, - (q31_t)0x15cf8196, (q31_t)0x81df347b, - (q31_t)0x15c95097, (q31_t)0x81de228d, (q31_t)0x15c31f89, (q31_t)0x81dd10ee, (q31_t)0x15bcee6f, (q31_t)0x81dbff9c, - (q31_t)0x15b6bd47, (q31_t)0x81daee98, - (q31_t)0x15b08c12, (q31_t)0x81d9dde1, (q31_t)0x15aa5acf, (q31_t)0x81d8cd79, (q31_t)0x15a4297f, (q31_t)0x81d7bd5e, - (q31_t)0x159df821, (q31_t)0x81d6ad92, - (q31_t)0x1597c6b7, (q31_t)0x81d59e13, (q31_t)0x1591953e, (q31_t)0x81d48ee1, (q31_t)0x158b63b9, (q31_t)0x81d37ffe, - (q31_t)0x15853226, (q31_t)0x81d27169, - (q31_t)0x157f0086, (q31_t)0x81d16321, (q31_t)0x1578ced9, (q31_t)0x81d05527, (q31_t)0x15729d1f, (q31_t)0x81cf477b, - (q31_t)0x156c6b57, (q31_t)0x81ce3a1d, - (q31_t)0x15663982, (q31_t)0x81cd2d0c, (q31_t)0x156007a0, (q31_t)0x81cc204a, (q31_t)0x1559d5b1, (q31_t)0x81cb13d5, - (q31_t)0x1553a3b4, (q31_t)0x81ca07af, - (q31_t)0x154d71aa, (q31_t)0x81c8fbd6, (q31_t)0x15473f94, (q31_t)0x81c7f04b, (q31_t)0x15410d70, (q31_t)0x81c6e50d, - (q31_t)0x153adb3f, (q31_t)0x81c5da1e, - (q31_t)0x1534a901, (q31_t)0x81c4cf7d, (q31_t)0x152e76b5, (q31_t)0x81c3c529, (q31_t)0x1528445d, (q31_t)0x81c2bb23, - (q31_t)0x152211f8, (q31_t)0x81c1b16b, - (q31_t)0x151bdf86, (q31_t)0x81c0a801, (q31_t)0x1515ad06, (q31_t)0x81bf9ee5, (q31_t)0x150f7a7a, (q31_t)0x81be9617, - (q31_t)0x150947e1, (q31_t)0x81bd8d97, - (q31_t)0x1503153a, (q31_t)0x81bc8564, (q31_t)0x14fce287, (q31_t)0x81bb7d7f, (q31_t)0x14f6afc7, (q31_t)0x81ba75e9, - (q31_t)0x14f07cf9, (q31_t)0x81b96ea0, - (q31_t)0x14ea4a1f, (q31_t)0x81b867a5, (q31_t)0x14e41738, (q31_t)0x81b760f8, (q31_t)0x14dde445, (q31_t)0x81b65a99, - (q31_t)0x14d7b144, (q31_t)0x81b55488, - (q31_t)0x14d17e36, (q31_t)0x81b44ec4, (q31_t)0x14cb4b1c, (q31_t)0x81b3494f, (q31_t)0x14c517f4, (q31_t)0x81b24427, - (q31_t)0x14bee4c0, (q31_t)0x81b13f4e, - (q31_t)0x14b8b17f, (q31_t)0x81b03ac2, (q31_t)0x14b27e32, (q31_t)0x81af3684, (q31_t)0x14ac4ad7, (q31_t)0x81ae3294, - (q31_t)0x14a61770, (q31_t)0x81ad2ef2, - (q31_t)0x149fe3fc, (q31_t)0x81ac2b9e, (q31_t)0x1499b07c, (q31_t)0x81ab2898, (q31_t)0x14937cee, (q31_t)0x81aa25e0, - (q31_t)0x148d4954, (q31_t)0x81a92376, - (q31_t)0x148715ae, (q31_t)0x81a82159, (q31_t)0x1480e1fa, (q31_t)0x81a71f8b, (q31_t)0x147aae3a, (q31_t)0x81a61e0b, - (q31_t)0x14747a6d, (q31_t)0x81a51cd8, - (q31_t)0x146e4694, (q31_t)0x81a41bf4, (q31_t)0x146812ae, (q31_t)0x81a31b5d, (q31_t)0x1461debc, (q31_t)0x81a21b14, - (q31_t)0x145baabd, (q31_t)0x81a11b1a, - (q31_t)0x145576b1, (q31_t)0x81a01b6d, (q31_t)0x144f4299, (q31_t)0x819f1c0e, (q31_t)0x14490e74, (q31_t)0x819e1cfd, - (q31_t)0x1442da43, (q31_t)0x819d1e3a, - (q31_t)0x143ca605, (q31_t)0x819c1fc5, (q31_t)0x143671bb, (q31_t)0x819b219e, (q31_t)0x14303d65, (q31_t)0x819a23c5, - (q31_t)0x142a0902, (q31_t)0x8199263a, - (q31_t)0x1423d492, (q31_t)0x819828fd, (q31_t)0x141da016, (q31_t)0x81972c0e, (q31_t)0x14176b8e, (q31_t)0x81962f6d, - (q31_t)0x141136f9, (q31_t)0x8195331a, - (q31_t)0x140b0258, (q31_t)0x81943715, (q31_t)0x1404cdaa, (q31_t)0x81933b5e, (q31_t)0x13fe98f1, (q31_t)0x81923ff4, - (q31_t)0x13f8642a, (q31_t)0x819144d9, - (q31_t)0x13f22f58, (q31_t)0x81904a0c, (q31_t)0x13ebfa79, (q31_t)0x818f4f8d, (q31_t)0x13e5c58e, (q31_t)0x818e555c, - (q31_t)0x13df9097, (q31_t)0x818d5b78, - (q31_t)0x13d95b93, (q31_t)0x818c61e3, (q31_t)0x13d32683, (q31_t)0x818b689c, (q31_t)0x13ccf167, (q31_t)0x818a6fa3, - (q31_t)0x13c6bc3f, (q31_t)0x818976f8, - (q31_t)0x13c0870a, (q31_t)0x81887e9a, (q31_t)0x13ba51ca, (q31_t)0x8187868b, (q31_t)0x13b41c7d, (q31_t)0x81868eca, - (q31_t)0x13ade724, (q31_t)0x81859757, - (q31_t)0x13a7b1bf, (q31_t)0x8184a032, (q31_t)0x13a17c4d, (q31_t)0x8183a95b, (q31_t)0x139b46d0, (q31_t)0x8182b2d1, - (q31_t)0x13951146, (q31_t)0x8181bc96, - (q31_t)0x138edbb1, (q31_t)0x8180c6a9, (q31_t)0x1388a60f, (q31_t)0x817fd10a, (q31_t)0x13827062, (q31_t)0x817edbb9, - (q31_t)0x137c3aa8, (q31_t)0x817de6b6, - (q31_t)0x137604e2, (q31_t)0x817cf201, (q31_t)0x136fcf10, (q31_t)0x817bfd9b, (q31_t)0x13699933, (q31_t)0x817b0982, - (q31_t)0x13636349, (q31_t)0x817a15b7, - (q31_t)0x135d2d53, (q31_t)0x8179223a, (q31_t)0x1356f752, (q31_t)0x81782f0b, (q31_t)0x1350c144, (q31_t)0x81773c2b, - (q31_t)0x134a8b2b, (q31_t)0x81764998, - (q31_t)0x13445505, (q31_t)0x81755754, (q31_t)0x133e1ed4, (q31_t)0x8174655d, (q31_t)0x1337e897, (q31_t)0x817373b5, - (q31_t)0x1331b24e, (q31_t)0x8172825a, - (q31_t)0x132b7bf9, (q31_t)0x8171914e, (q31_t)0x13254599, (q31_t)0x8170a090, (q31_t)0x131f0f2c, (q31_t)0x816fb020, - (q31_t)0x1318d8b4, (q31_t)0x816ebffe, - (q31_t)0x1312a230, (q31_t)0x816dd02a, (q31_t)0x130c6ba0, (q31_t)0x816ce0a4, (q31_t)0x13063505, (q31_t)0x816bf16c, - (q31_t)0x12fffe5d, (q31_t)0x816b0282, - (q31_t)0x12f9c7aa, (q31_t)0x816a13e6, (q31_t)0x12f390ec, (q31_t)0x81692599, (q31_t)0x12ed5a21, (q31_t)0x81683799, - (q31_t)0x12e7234b, (q31_t)0x816749e8, - (q31_t)0x12e0ec6a, (q31_t)0x81665c84, (q31_t)0x12dab57c, (q31_t)0x81656f6f, (q31_t)0x12d47e83, (q31_t)0x816482a8, - (q31_t)0x12ce477f, (q31_t)0x8163962f, - (q31_t)0x12c8106f, (q31_t)0x8162aa04, (q31_t)0x12c1d953, (q31_t)0x8161be27, (q31_t)0x12bba22b, (q31_t)0x8160d298, - (q31_t)0x12b56af9, (q31_t)0x815fe758, - (q31_t)0x12af33ba, (q31_t)0x815efc65, (q31_t)0x12a8fc70, (q31_t)0x815e11c1, (q31_t)0x12a2c51b, (q31_t)0x815d276a, - (q31_t)0x129c8dba, (q31_t)0x815c3d62, - (q31_t)0x1296564d, (q31_t)0x815b53a8, (q31_t)0x12901ed5, (q31_t)0x815a6a3c, (q31_t)0x1289e752, (q31_t)0x8159811e, - (q31_t)0x1283afc3, (q31_t)0x8158984e, - (q31_t)0x127d7829, (q31_t)0x8157afcd, (q31_t)0x12774083, (q31_t)0x8156c799, (q31_t)0x127108d2, (q31_t)0x8155dfb4, - (q31_t)0x126ad116, (q31_t)0x8154f81d, - (q31_t)0x1264994e, (q31_t)0x815410d4, (q31_t)0x125e617b, (q31_t)0x815329d9, (q31_t)0x1258299c, (q31_t)0x8152432c, - (q31_t)0x1251f1b3, (q31_t)0x81515ccd, - (q31_t)0x124bb9be, (q31_t)0x815076bd, (q31_t)0x124581bd, (q31_t)0x814f90fb, (q31_t)0x123f49b2, (q31_t)0x814eab86, - (q31_t)0x1239119b, (q31_t)0x814dc660, - (q31_t)0x1232d979, (q31_t)0x814ce188, (q31_t)0x122ca14b, (q31_t)0x814bfcff, (q31_t)0x12266913, (q31_t)0x814b18c3, - (q31_t)0x122030cf, (q31_t)0x814a34d6, - (q31_t)0x1219f880, (q31_t)0x81495136, (q31_t)0x1213c026, (q31_t)0x81486de5, (q31_t)0x120d87c1, (q31_t)0x81478ae2, - (q31_t)0x12074f50, (q31_t)0x8146a82e, - (q31_t)0x120116d5, (q31_t)0x8145c5c7, (q31_t)0x11fade4e, (q31_t)0x8144e3ae, (q31_t)0x11f4a5bd, (q31_t)0x814401e4, - (q31_t)0x11ee6d20, (q31_t)0x81432068, - (q31_t)0x11e83478, (q31_t)0x81423f3a, (q31_t)0x11e1fbc5, (q31_t)0x81415e5a, (q31_t)0x11dbc307, (q31_t)0x81407dc9, - (q31_t)0x11d58a3e, (q31_t)0x813f9d86, - (q31_t)0x11cf516a, (q31_t)0x813ebd90, (q31_t)0x11c9188b, (q31_t)0x813ddde9, (q31_t)0x11c2dfa2, (q31_t)0x813cfe91, - (q31_t)0x11bca6ad, (q31_t)0x813c1f86, - (q31_t)0x11b66dad, (q31_t)0x813b40ca, (q31_t)0x11b034a2, (q31_t)0x813a625b, (q31_t)0x11a9fb8d, (q31_t)0x8139843b, - (q31_t)0x11a3c26c, (q31_t)0x8138a66a, - (q31_t)0x119d8941, (q31_t)0x8137c8e6, (q31_t)0x1197500a, (q31_t)0x8136ebb1, (q31_t)0x119116c9, (q31_t)0x81360ec9, - (q31_t)0x118add7d, (q31_t)0x81353230, - (q31_t)0x1184a427, (q31_t)0x813455e6, (q31_t)0x117e6ac5, (q31_t)0x813379e9, (q31_t)0x11783159, (q31_t)0x81329e3b, - (q31_t)0x1171f7e2, (q31_t)0x8131c2db, - (q31_t)0x116bbe60, (q31_t)0x8130e7c9, (q31_t)0x116584d3, (q31_t)0x81300d05, (q31_t)0x115f4b3c, (q31_t)0x812f3290, - (q31_t)0x1159119a, (q31_t)0x812e5868, - (q31_t)0x1152d7ed, (q31_t)0x812d7e8f, (q31_t)0x114c9e35, (q31_t)0x812ca505, (q31_t)0x11466473, (q31_t)0x812bcbc8, - (q31_t)0x11402aa6, (q31_t)0x812af2da, - (q31_t)0x1139f0cf, (q31_t)0x812a1a3a, (q31_t)0x1133b6ed, (q31_t)0x812941e8, (q31_t)0x112d7d00, (q31_t)0x812869e4, - (q31_t)0x11274309, (q31_t)0x8127922f, - (q31_t)0x11210907, (q31_t)0x8126bac8, (q31_t)0x111acefb, (q31_t)0x8125e3af, (q31_t)0x111494e4, (q31_t)0x81250ce4, - (q31_t)0x110e5ac2, (q31_t)0x81243668, - (q31_t)0x11082096, (q31_t)0x8123603a, (q31_t)0x1101e65f, (q31_t)0x81228a5a, (q31_t)0x10fbac1e, (q31_t)0x8121b4c8, - (q31_t)0x10f571d3, (q31_t)0x8120df85, - (q31_t)0x10ef377d, (q31_t)0x81200a90, (q31_t)0x10e8fd1c, (q31_t)0x811f35e9, (q31_t)0x10e2c2b2, (q31_t)0x811e6191, - (q31_t)0x10dc883c, (q31_t)0x811d8d86, - (q31_t)0x10d64dbd, (q31_t)0x811cb9ca, (q31_t)0x10d01333, (q31_t)0x811be65d, (q31_t)0x10c9d89e, (q31_t)0x811b133d, - (q31_t)0x10c39dff, (q31_t)0x811a406c, - (q31_t)0x10bd6356, (q31_t)0x81196de9, (q31_t)0x10b728a3, (q31_t)0x81189bb4, (q31_t)0x10b0ede5, (q31_t)0x8117c9ce, - (q31_t)0x10aab31d, (q31_t)0x8116f836, - (q31_t)0x10a4784b, (q31_t)0x811626ec, (q31_t)0x109e3d6e, (q31_t)0x811555f1, (q31_t)0x10980287, (q31_t)0x81148544, - (q31_t)0x1091c796, (q31_t)0x8113b4e5, - (q31_t)0x108b8c9b, (q31_t)0x8112e4d4, (q31_t)0x10855195, (q31_t)0x81121512, (q31_t)0x107f1686, (q31_t)0x8111459e, - (q31_t)0x1078db6c, (q31_t)0x81107678, - (q31_t)0x1072a048, (q31_t)0x810fa7a0, (q31_t)0x106c651a, (q31_t)0x810ed917, (q31_t)0x106629e1, (q31_t)0x810e0adc, - (q31_t)0x105fee9f, (q31_t)0x810d3cf0, - (q31_t)0x1059b352, (q31_t)0x810c6f52, (q31_t)0x105377fc, (q31_t)0x810ba202, (q31_t)0x104d3c9b, (q31_t)0x810ad500, - (q31_t)0x10470130, (q31_t)0x810a084d, - (q31_t)0x1040c5bb, (q31_t)0x81093be8, (q31_t)0x103a8a3d, (q31_t)0x81086fd1, (q31_t)0x10344eb4, (q31_t)0x8107a409, - (q31_t)0x102e1321, (q31_t)0x8106d88f, - (q31_t)0x1027d784, (q31_t)0x81060d63, (q31_t)0x10219bdd, (q31_t)0x81054286, (q31_t)0x101b602d, (q31_t)0x810477f7, - (q31_t)0x10152472, (q31_t)0x8103adb6, - (q31_t)0x100ee8ad, (q31_t)0x8102e3c4, (q31_t)0x1008acdf, (q31_t)0x81021a20, (q31_t)0x10027107, (q31_t)0x810150ca, - (q31_t)0xffc3524, (q31_t)0x810087c3, - (q31_t)0xff5f938, (q31_t)0x80ffbf0a, (q31_t)0xfefbd42, (q31_t)0x80fef69f, (q31_t)0xfe98143, (q31_t)0x80fe2e83, - (q31_t)0xfe34539, (q31_t)0x80fd66b5, - (q31_t)0xfdd0926, (q31_t)0x80fc9f35, (q31_t)0xfd6cd08, (q31_t)0x80fbd804, (q31_t)0xfd090e1, (q31_t)0x80fb1121, - (q31_t)0xfca54b1, (q31_t)0x80fa4a8c, - (q31_t)0xfc41876, (q31_t)0x80f98446, (q31_t)0xfbddc32, (q31_t)0x80f8be4e, (q31_t)0xfb79fe4, (q31_t)0x80f7f8a4, - (q31_t)0xfb1638d, (q31_t)0x80f73349, - (q31_t)0xfab272b, (q31_t)0x80f66e3c, (q31_t)0xfa4eac0, (q31_t)0x80f5a97e, (q31_t)0xf9eae4c, (q31_t)0x80f4e50e, - (q31_t)0xf9871ce, (q31_t)0x80f420ec, - (q31_t)0xf923546, (q31_t)0x80f35d19, (q31_t)0xf8bf8b4, (q31_t)0x80f29994, (q31_t)0xf85bc19, (q31_t)0x80f1d65d, - (q31_t)0xf7f7f75, (q31_t)0x80f11375, - (q31_t)0xf7942c7, (q31_t)0x80f050db, (q31_t)0xf73060f, (q31_t)0x80ef8e90, (q31_t)0xf6cc94e, (q31_t)0x80eecc93, - (q31_t)0xf668c83, (q31_t)0x80ee0ae4, - (q31_t)0xf604faf, (q31_t)0x80ed4984, (q31_t)0xf5a12d1, (q31_t)0x80ec8872, (q31_t)0xf53d5ea, (q31_t)0x80ebc7ae, - (q31_t)0xf4d98f9, (q31_t)0x80eb0739, - (q31_t)0xf475bff, (q31_t)0x80ea4712, (q31_t)0xf411efb, (q31_t)0x80e9873a, (q31_t)0xf3ae1ee, (q31_t)0x80e8c7b0, - (q31_t)0xf34a4d8, (q31_t)0x80e80874, - (q31_t)0xf2e67b8, (q31_t)0x80e74987, (q31_t)0xf282a8f, (q31_t)0x80e68ae8, (q31_t)0xf21ed5d, (q31_t)0x80e5cc98, - (q31_t)0xf1bb021, (q31_t)0x80e50e96, - (q31_t)0xf1572dc, (q31_t)0x80e450e2, (q31_t)0xf0f358e, (q31_t)0x80e3937d, (q31_t)0xf08f836, (q31_t)0x80e2d666, - (q31_t)0xf02bad5, (q31_t)0x80e2199e, - (q31_t)0xefc7d6b, (q31_t)0x80e15d24, (q31_t)0xef63ff7, (q31_t)0x80e0a0f8, (q31_t)0xef0027b, (q31_t)0x80dfe51b, - (q31_t)0xee9c4f5, (q31_t)0x80df298c, - (q31_t)0xee38766, (q31_t)0x80de6e4c, (q31_t)0xedd49ce, (q31_t)0x80ddb35a, (q31_t)0xed70c2c, (q31_t)0x80dcf8b7, - (q31_t)0xed0ce82, (q31_t)0x80dc3e62, - (q31_t)0xeca90ce, (q31_t)0x80db845b, (q31_t)0xec45311, (q31_t)0x80dacaa3, (q31_t)0xebe154b, (q31_t)0x80da1139, - (q31_t)0xeb7d77c, (q31_t)0x80d9581e, - (q31_t)0xeb199a4, (q31_t)0x80d89f51, (q31_t)0xeab5bc3, (q31_t)0x80d7e6d3, (q31_t)0xea51dd8, (q31_t)0x80d72ea3, - (q31_t)0xe9edfe5, (q31_t)0x80d676c1, - (q31_t)0xe98a1e9, (q31_t)0x80d5bf2e, (q31_t)0xe9263e3, (q31_t)0x80d507e9, (q31_t)0xe8c25d5, (q31_t)0x80d450f3, - (q31_t)0xe85e7be, (q31_t)0x80d39a4b, - (q31_t)0xe7fa99e, (q31_t)0x80d2e3f2, (q31_t)0xe796b74, (q31_t)0x80d22de7, (q31_t)0xe732d42, (q31_t)0x80d1782a, - (q31_t)0xe6cef07, (q31_t)0x80d0c2bc, - (q31_t)0xe66b0c3, (q31_t)0x80d00d9d, (q31_t)0xe607277, (q31_t)0x80cf58cc, (q31_t)0xe5a3421, (q31_t)0x80cea449, - (q31_t)0xe53f5c2, (q31_t)0x80cdf015, - (q31_t)0xe4db75b, (q31_t)0x80cd3c2f, (q31_t)0xe4778eb, (q31_t)0x80cc8898, (q31_t)0xe413a72, (q31_t)0x80cbd54f, - (q31_t)0xe3afbf0, (q31_t)0x80cb2255, - (q31_t)0xe34bd66, (q31_t)0x80ca6fa9, (q31_t)0xe2e7ed2, (q31_t)0x80c9bd4c, (q31_t)0xe284036, (q31_t)0x80c90b3d, - (q31_t)0xe220191, (q31_t)0x80c8597c, - (q31_t)0xe1bc2e4, (q31_t)0x80c7a80a, (q31_t)0xe15842e, (q31_t)0x80c6f6e7, (q31_t)0xe0f456f, (q31_t)0x80c64612, - (q31_t)0xe0906a7, (q31_t)0x80c5958b, - (q31_t)0xe02c7d7, (q31_t)0x80c4e553, (q31_t)0xdfc88fe, (q31_t)0x80c4356a, (q31_t)0xdf64a1c, (q31_t)0x80c385cf, - (q31_t)0xdf00b32, (q31_t)0x80c2d682, - (q31_t)0xde9cc40, (q31_t)0x80c22784, (q31_t)0xde38d44, (q31_t)0x80c178d4, (q31_t)0xddd4e40, (q31_t)0x80c0ca73, - (q31_t)0xdd70f34, (q31_t)0x80c01c60, - (q31_t)0xdd0d01f, (q31_t)0x80bf6e9c, (q31_t)0xdca9102, (q31_t)0x80bec127, (q31_t)0xdc451dc, (q31_t)0x80be13ff, - (q31_t)0xdbe12ad, (q31_t)0x80bd6727, - (q31_t)0xdb7d376, (q31_t)0x80bcba9d, (q31_t)0xdb19437, (q31_t)0x80bc0e61, (q31_t)0xdab54ef, (q31_t)0x80bb6274, - (q31_t)0xda5159f, (q31_t)0x80bab6d5, - (q31_t)0xd9ed646, (q31_t)0x80ba0b85, (q31_t)0xd9896e5, (q31_t)0x80b96083, (q31_t)0xd92577b, (q31_t)0x80b8b5d0, - (q31_t)0xd8c1809, (q31_t)0x80b80b6c, - (q31_t)0xd85d88f, (q31_t)0x80b76156, (q31_t)0xd7f990c, (q31_t)0x80b6b78e, (q31_t)0xd795982, (q31_t)0x80b60e15, - (q31_t)0xd7319ee, (q31_t)0x80b564ea, - (q31_t)0xd6cda53, (q31_t)0x80b4bc0e, (q31_t)0xd669aaf, (q31_t)0x80b41381, (q31_t)0xd605b03, (q31_t)0x80b36b42, - (q31_t)0xd5a1b4f, (q31_t)0x80b2c351, - (q31_t)0xd53db92, (q31_t)0x80b21baf, (q31_t)0xd4d9bcd, (q31_t)0x80b1745c, (q31_t)0xd475c00, (q31_t)0x80b0cd57, - (q31_t)0xd411c2b, (q31_t)0x80b026a1, - (q31_t)0xd3adc4e, (q31_t)0x80af8039, (q31_t)0xd349c68, (q31_t)0x80aeda20, (q31_t)0xd2e5c7b, (q31_t)0x80ae3455, - (q31_t)0xd281c85, (q31_t)0x80ad8ed9, - (q31_t)0xd21dc87, (q31_t)0x80ace9ab, (q31_t)0xd1b9c81, (q31_t)0x80ac44cc, (q31_t)0xd155c73, (q31_t)0x80aba03b, - (q31_t)0xd0f1c5d, (q31_t)0x80aafbf9, - (q31_t)0xd08dc3f, (q31_t)0x80aa5806, (q31_t)0xd029c18, (q31_t)0x80a9b461, (q31_t)0xcfc5bea, (q31_t)0x80a9110b, - (q31_t)0xcf61bb4, (q31_t)0x80a86e03, - (q31_t)0xcefdb76, (q31_t)0x80a7cb49, (q31_t)0xce99b2f, (q31_t)0x80a728df, (q31_t)0xce35ae1, (q31_t)0x80a686c2, - (q31_t)0xcdd1a8b, (q31_t)0x80a5e4f5, - (q31_t)0xcd6da2d, (q31_t)0x80a54376, (q31_t)0xcd099c7, (q31_t)0x80a4a245, (q31_t)0xcca5959, (q31_t)0x80a40163, - (q31_t)0xcc418e3, (q31_t)0x80a360d0, - (q31_t)0xcbdd865, (q31_t)0x80a2c08b, (q31_t)0xcb797e0, (q31_t)0x80a22095, (q31_t)0xcb15752, (q31_t)0x80a180ed, - (q31_t)0xcab16bd, (q31_t)0x80a0e194, - (q31_t)0xca4d620, (q31_t)0x80a04289, (q31_t)0xc9e957b, (q31_t)0x809fa3cd, (q31_t)0xc9854cf, (q31_t)0x809f0560, - (q31_t)0xc92141a, (q31_t)0x809e6741, - (q31_t)0xc8bd35e, (q31_t)0x809dc971, (q31_t)0xc85929a, (q31_t)0x809d2bef, (q31_t)0xc7f51cf, (q31_t)0x809c8ebc, - (q31_t)0xc7910fb, (q31_t)0x809bf1d7, - (q31_t)0xc72d020, (q31_t)0x809b5541, (q31_t)0xc6c8f3e, (q31_t)0x809ab8fa, (q31_t)0xc664e53, (q31_t)0x809a1d01, - (q31_t)0xc600d61, (q31_t)0x80998157, - (q31_t)0xc59cc68, (q31_t)0x8098e5fb, (q31_t)0xc538b66, (q31_t)0x80984aee, (q31_t)0xc4d4a5d, (q31_t)0x8097b030, - (q31_t)0xc47094d, (q31_t)0x809715c0, - (q31_t)0xc40c835, (q31_t)0x80967b9f, (q31_t)0xc3a8715, (q31_t)0x8095e1cc, (q31_t)0xc3445ee, (q31_t)0x80954848, - (q31_t)0xc2e04c0, (q31_t)0x8094af13, - (q31_t)0xc27c389, (q31_t)0x8094162c, (q31_t)0xc21824c, (q31_t)0x80937d93, (q31_t)0xc1b4107, (q31_t)0x8092e54a, - (q31_t)0xc14ffba, (q31_t)0x80924d4f, - (q31_t)0xc0ebe66, (q31_t)0x8091b5a2, (q31_t)0xc087d0a, (q31_t)0x80911e44, (q31_t)0xc023ba7, (q31_t)0x80908735, - (q31_t)0xbfbfa3d, (q31_t)0x808ff074, - (q31_t)0xbf5b8cb, (q31_t)0x808f5a02, (q31_t)0xbef7752, (q31_t)0x808ec3df, (q31_t)0xbe935d2, (q31_t)0x808e2e0a, - (q31_t)0xbe2f44a, (q31_t)0x808d9884, - (q31_t)0xbdcb2bb, (q31_t)0x808d034c, (q31_t)0xbd67124, (q31_t)0x808c6e63, (q31_t)0xbd02f87, (q31_t)0x808bd9c9, - (q31_t)0xbc9ede2, (q31_t)0x808b457d, - (q31_t)0xbc3ac35, (q31_t)0x808ab180, (q31_t)0xbbd6a82, (q31_t)0x808a1dd2, (q31_t)0xbb728c7, (q31_t)0x80898a72, - (q31_t)0xbb0e705, (q31_t)0x8088f761, - (q31_t)0xbaaa53b, (q31_t)0x8088649e, (q31_t)0xba4636b, (q31_t)0x8087d22a, (q31_t)0xb9e2193, (q31_t)0x80874005, - (q31_t)0xb97dfb5, (q31_t)0x8086ae2e, - (q31_t)0xb919dcf, (q31_t)0x80861ca6, (q31_t)0xb8b5be1, (q31_t)0x80858b6c, (q31_t)0xb8519ed, (q31_t)0x8084fa82, - (q31_t)0xb7ed7f2, (q31_t)0x808469e5, - (q31_t)0xb7895f0, (q31_t)0x8083d998, (q31_t)0xb7253e6, (q31_t)0x80834999, (q31_t)0xb6c11d5, (q31_t)0x8082b9e9, - (q31_t)0xb65cfbe, (q31_t)0x80822a87, - (q31_t)0xb5f8d9f, (q31_t)0x80819b74, (q31_t)0xb594b7a, (q31_t)0x80810cb0, (q31_t)0xb53094d, (q31_t)0x80807e3a, - (q31_t)0xb4cc719, (q31_t)0x807ff013, - (q31_t)0xb4684df, (q31_t)0x807f623b, (q31_t)0xb40429d, (q31_t)0x807ed4b1, (q31_t)0xb3a0055, (q31_t)0x807e4776, - (q31_t)0xb33be05, (q31_t)0x807dba89, - (q31_t)0xb2d7baf, (q31_t)0x807d2dec, (q31_t)0xb273952, (q31_t)0x807ca19c, (q31_t)0xb20f6ee, (q31_t)0x807c159c, - (q31_t)0xb1ab483, (q31_t)0x807b89ea, - (q31_t)0xb147211, (q31_t)0x807afe87, (q31_t)0xb0e2f98, (q31_t)0x807a7373, (q31_t)0xb07ed19, (q31_t)0x8079e8ad, - (q31_t)0xb01aa92, (q31_t)0x80795e36, - (q31_t)0xafb6805, (q31_t)0x8078d40d, (q31_t)0xaf52571, (q31_t)0x80784a33, (q31_t)0xaeee2d7, (q31_t)0x8077c0a8, - (q31_t)0xae8a036, (q31_t)0x8077376c, - (q31_t)0xae25d8d, (q31_t)0x8076ae7e, (q31_t)0xadc1adf, (q31_t)0x807625df, (q31_t)0xad5d829, (q31_t)0x80759d8e, - (q31_t)0xacf956d, (q31_t)0x8075158c, - (q31_t)0xac952aa, (q31_t)0x80748dd9, (q31_t)0xac30fe1, (q31_t)0x80740675, (q31_t)0xabccd11, (q31_t)0x80737f5f, - (q31_t)0xab68a3a, (q31_t)0x8072f898, - (q31_t)0xab0475c, (q31_t)0x8072721f, (q31_t)0xaaa0478, (q31_t)0x8071ebf6, (q31_t)0xaa3c18e, (q31_t)0x8071661a, - (q31_t)0xa9d7e9d, (q31_t)0x8070e08e, - (q31_t)0xa973ba5, (q31_t)0x80705b50, (q31_t)0xa90f8a7, (q31_t)0x806fd661, (q31_t)0xa8ab5a2, (q31_t)0x806f51c1, - (q31_t)0xa847297, (q31_t)0x806ecd6f, - (q31_t)0xa7e2f85, (q31_t)0x806e496c, (q31_t)0xa77ec6d, (q31_t)0x806dc5b8, (q31_t)0xa71a94f, (q31_t)0x806d4253, - (q31_t)0xa6b662a, (q31_t)0x806cbf3c, - (q31_t)0xa6522fe, (q31_t)0x806c3c74, (q31_t)0xa5edfcc, (q31_t)0x806bb9fa, (q31_t)0xa589c94, (q31_t)0x806b37cf, - (q31_t)0xa525955, (q31_t)0x806ab5f3, - (q31_t)0xa4c1610, (q31_t)0x806a3466, (q31_t)0xa45d2c5, (q31_t)0x8069b327, (q31_t)0xa3f8f73, (q31_t)0x80693237, - (q31_t)0xa394c1b, (q31_t)0x8068b196, - (q31_t)0xa3308bd, (q31_t)0x80683143, (q31_t)0xa2cc558, (q31_t)0x8067b13f, (q31_t)0xa2681ed, (q31_t)0x8067318a, - (q31_t)0xa203e7c, (q31_t)0x8066b224, - (q31_t)0xa19fb04, (q31_t)0x8066330c, (q31_t)0xa13b787, (q31_t)0x8065b443, (q31_t)0xa0d7403, (q31_t)0x806535c9, - (q31_t)0xa073079, (q31_t)0x8064b79d, - (q31_t)0xa00ece8, (q31_t)0x806439c0, (q31_t)0x9faa952, (q31_t)0x8063bc32, (q31_t)0x9f465b5, (q31_t)0x80633ef3, - (q31_t)0x9ee2213, (q31_t)0x8062c202, - (q31_t)0x9e7de6a, (q31_t)0x80624560, (q31_t)0x9e19abb, (q31_t)0x8061c90c, (q31_t)0x9db5706, (q31_t)0x80614d08, - (q31_t)0x9d5134b, (q31_t)0x8060d152, - (q31_t)0x9cecf89, (q31_t)0x806055eb, (q31_t)0x9c88bc2, (q31_t)0x805fdad2, (q31_t)0x9c247f5, (q31_t)0x805f6009, - (q31_t)0x9bc0421, (q31_t)0x805ee58e, - (q31_t)0x9b5c048, (q31_t)0x805e6b62, (q31_t)0x9af7c69, (q31_t)0x805df184, (q31_t)0x9a93884, (q31_t)0x805d77f5, - (q31_t)0x9a2f498, (q31_t)0x805cfeb5, - (q31_t)0x99cb0a7, (q31_t)0x805c85c4, (q31_t)0x9966cb0, (q31_t)0x805c0d21, (q31_t)0x99028b3, (q31_t)0x805b94ce, - (q31_t)0x989e4b0, (q31_t)0x805b1cc8, - (q31_t)0x983a0a7, (q31_t)0x805aa512, (q31_t)0x97d5c99, (q31_t)0x805a2daa, (q31_t)0x9771884, (q31_t)0x8059b692, - (q31_t)0x970d46a, (q31_t)0x80593fc7, - (q31_t)0x96a9049, (q31_t)0x8058c94c, (q31_t)0x9644c23, (q31_t)0x8058531f, (q31_t)0x95e07f8, (q31_t)0x8057dd41, - (q31_t)0x957c3c6, (q31_t)0x805767b2, - (q31_t)0x9517f8f, (q31_t)0x8056f272, (q31_t)0x94b3b52, (q31_t)0x80567d80, (q31_t)0x944f70f, (q31_t)0x805608dd, - (q31_t)0x93eb2c6, (q31_t)0x80559489, - (q31_t)0x9386e78, (q31_t)0x80552084, (q31_t)0x9322a24, (q31_t)0x8054accd, (q31_t)0x92be5ca, (q31_t)0x80543965, - (q31_t)0x925a16b, (q31_t)0x8053c64c, - (q31_t)0x91f5d06, (q31_t)0x80535381, (q31_t)0x919189c, (q31_t)0x8052e106, (q31_t)0x912d42c, (q31_t)0x80526ed9, - (q31_t)0x90c8fb6, (q31_t)0x8051fcfb, - (q31_t)0x9064b3a, (q31_t)0x80518b6b, (q31_t)0x90006ba, (q31_t)0x80511a2b, (q31_t)0x8f9c233, (q31_t)0x8050a939, - (q31_t)0x8f37da7, (q31_t)0x80503896, - (q31_t)0x8ed3916, (q31_t)0x804fc841, (q31_t)0x8e6f47f, (q31_t)0x804f583c, (q31_t)0x8e0afe2, (q31_t)0x804ee885, - (q31_t)0x8da6b40, (q31_t)0x804e791d, - (q31_t)0x8d42699, (q31_t)0x804e0a04, (q31_t)0x8cde1ec, (q31_t)0x804d9b39, (q31_t)0x8c79d3a, (q31_t)0x804d2cbd, - (q31_t)0x8c15882, (q31_t)0x804cbe90, - (q31_t)0x8bb13c5, (q31_t)0x804c50b2, (q31_t)0x8b4cf02, (q31_t)0x804be323, (q31_t)0x8ae8a3a, (q31_t)0x804b75e2, - (q31_t)0x8a8456d, (q31_t)0x804b08f0, - (q31_t)0x8a2009a, (q31_t)0x804a9c4d, (q31_t)0x89bbbc3, (q31_t)0x804a2ff9, (q31_t)0x89576e5, (q31_t)0x8049c3f3, - (q31_t)0x88f3203, (q31_t)0x8049583d, - (q31_t)0x888ed1b, (q31_t)0x8048ecd5, (q31_t)0x882a82e, (q31_t)0x804881bb, (q31_t)0x87c633c, (q31_t)0x804816f1, - (q31_t)0x8761e44, (q31_t)0x8047ac75, - (q31_t)0x86fd947, (q31_t)0x80474248, (q31_t)0x8699445, (q31_t)0x8046d86a, (q31_t)0x8634f3e, (q31_t)0x80466edb, - (q31_t)0x85d0a32, (q31_t)0x8046059b, - (q31_t)0x856c520, (q31_t)0x80459ca9, (q31_t)0x850800a, (q31_t)0x80453406, (q31_t)0x84a3aee, (q31_t)0x8044cbb2, - (q31_t)0x843f5cd, (q31_t)0x804463ad, - (q31_t)0x83db0a7, (q31_t)0x8043fbf6, (q31_t)0x8376b7c, (q31_t)0x8043948e, (q31_t)0x831264c, (q31_t)0x80432d75, - (q31_t)0x82ae117, (q31_t)0x8042c6ab, - (q31_t)0x8249bdd, (q31_t)0x80426030, (q31_t)0x81e569d, (q31_t)0x8041fa03, (q31_t)0x8181159, (q31_t)0x80419425, - (q31_t)0x811cc10, (q31_t)0x80412e96, - (q31_t)0x80b86c2, (q31_t)0x8040c956, (q31_t)0x805416e, (q31_t)0x80406465, (q31_t)0x7fefc16, (q31_t)0x803fffc2, - (q31_t)0x7f8b6b9, (q31_t)0x803f9b6f, - (q31_t)0x7f27157, (q31_t)0x803f376a, (q31_t)0x7ec2bf0, (q31_t)0x803ed3b3, (q31_t)0x7e5e685, (q31_t)0x803e704c, - (q31_t)0x7dfa114, (q31_t)0x803e0d34, - (q31_t)0x7d95b9e, (q31_t)0x803daa6a, (q31_t)0x7d31624, (q31_t)0x803d47ef, (q31_t)0x7ccd0a5, (q31_t)0x803ce5c3, - (q31_t)0x7c68b21, (q31_t)0x803c83e5, - (q31_t)0x7c04598, (q31_t)0x803c2257, (q31_t)0x7ba000b, (q31_t)0x803bc117, (q31_t)0x7b3ba78, (q31_t)0x803b6026, - (q31_t)0x7ad74e1, (q31_t)0x803aff84, - (q31_t)0x7a72f45, (q31_t)0x803a9f31, (q31_t)0x7a0e9a5, (q31_t)0x803a3f2d, (q31_t)0x79aa400, (q31_t)0x8039df77, - (q31_t)0x7945e56, (q31_t)0x80398010, - (q31_t)0x78e18a7, (q31_t)0x803920f8, (q31_t)0x787d2f4, (q31_t)0x8038c22f, (q31_t)0x7818d3c, (q31_t)0x803863b5, - (q31_t)0x77b4780, (q31_t)0x80380589, - (q31_t)0x77501be, (q31_t)0x8037a7ac, (q31_t)0x76ebbf9, (q31_t)0x80374a1f, (q31_t)0x768762e, (q31_t)0x8036ece0, - (q31_t)0x762305f, (q31_t)0x80368fef, - (q31_t)0x75bea8c, (q31_t)0x8036334e, (q31_t)0x755a4b4, (q31_t)0x8035d6fb, (q31_t)0x74f5ed7, (q31_t)0x80357af8, - (q31_t)0x74918f6, (q31_t)0x80351f43, - (q31_t)0x742d311, (q31_t)0x8034c3dd, (q31_t)0x73c8d27, (q31_t)0x803468c5, (q31_t)0x7364738, (q31_t)0x80340dfd, - (q31_t)0x7300145, (q31_t)0x8033b383, - (q31_t)0x729bb4e, (q31_t)0x80335959, (q31_t)0x7237552, (q31_t)0x8032ff7d, (q31_t)0x71d2f52, (q31_t)0x8032a5ef, - (q31_t)0x716e94e, (q31_t)0x80324cb1, - (q31_t)0x710a345, (q31_t)0x8031f3c2, (q31_t)0x70a5d37, (q31_t)0x80319b21, (q31_t)0x7041726, (q31_t)0x803142cf, - (q31_t)0x6fdd110, (q31_t)0x8030eacd, - (q31_t)0x6f78af6, (q31_t)0x80309318, (q31_t)0x6f144d7, (q31_t)0x80303bb3, (q31_t)0x6eafeb4, (q31_t)0x802fe49d, - (q31_t)0x6e4b88d, (q31_t)0x802f8dd5, - (q31_t)0x6de7262, (q31_t)0x802f375d, (q31_t)0x6d82c32, (q31_t)0x802ee133, (q31_t)0x6d1e5fe, (q31_t)0x802e8b58, - (q31_t)0x6cb9fc6, (q31_t)0x802e35cb, - (q31_t)0x6c5598a, (q31_t)0x802de08e, (q31_t)0x6bf1349, (q31_t)0x802d8ba0, (q31_t)0x6b8cd05, (q31_t)0x802d3700, - (q31_t)0x6b286bc, (q31_t)0x802ce2af, - (q31_t)0x6ac406f, (q31_t)0x802c8ead, (q31_t)0x6a5fa1e, (q31_t)0x802c3afa, (q31_t)0x69fb3c9, (q31_t)0x802be796, - (q31_t)0x6996d70, (q31_t)0x802b9480, - (q31_t)0x6932713, (q31_t)0x802b41ba, (q31_t)0x68ce0b2, (q31_t)0x802aef42, (q31_t)0x6869a4c, (q31_t)0x802a9d19, - (q31_t)0x68053e3, (q31_t)0x802a4b3f, - (q31_t)0x67a0d76, (q31_t)0x8029f9b4, (q31_t)0x673c704, (q31_t)0x8029a878, (q31_t)0x66d808f, (q31_t)0x8029578b, - (q31_t)0x6673a16, (q31_t)0x802906ec, - (q31_t)0x660f398, (q31_t)0x8028b69c, (q31_t)0x65aad17, (q31_t)0x8028669b, (q31_t)0x6546692, (q31_t)0x802816e9, - (q31_t)0x64e2009, (q31_t)0x8027c786, - (q31_t)0x647d97c, (q31_t)0x80277872, (q31_t)0x64192eb, (q31_t)0x802729ad, (q31_t)0x63b4c57, (q31_t)0x8026db36, - (q31_t)0x63505be, (q31_t)0x80268d0e, - (q31_t)0x62ebf22, (q31_t)0x80263f36, (q31_t)0x6287882, (q31_t)0x8025f1ac, (q31_t)0x62231de, (q31_t)0x8025a471, - (q31_t)0x61beb36, (q31_t)0x80255784, - (q31_t)0x615a48b, (q31_t)0x80250ae7, (q31_t)0x60f5ddc, (q31_t)0x8024be99, (q31_t)0x6091729, (q31_t)0x80247299, - (q31_t)0x602d072, (q31_t)0x802426e8, - (q31_t)0x5fc89b8, (q31_t)0x8023db86, (q31_t)0x5f642fa, (q31_t)0x80239073, (q31_t)0x5effc38, (q31_t)0x802345af, - (q31_t)0x5e9b572, (q31_t)0x8022fb3a, - (q31_t)0x5e36ea9, (q31_t)0x8022b114, (q31_t)0x5dd27dd, (q31_t)0x8022673c, (q31_t)0x5d6e10c, (q31_t)0x80221db3, - (q31_t)0x5d09a38, (q31_t)0x8021d47a, - (q31_t)0x5ca5361, (q31_t)0x80218b8f, (q31_t)0x5c40c86, (q31_t)0x802142f3, (q31_t)0x5bdc5a7, (q31_t)0x8020faa6, - (q31_t)0x5b77ec5, (q31_t)0x8020b2a7, - (q31_t)0x5b137df, (q31_t)0x80206af8, (q31_t)0x5aaf0f6, (q31_t)0x80202397, (q31_t)0x5a4aa09, (q31_t)0x801fdc86, - (q31_t)0x59e6319, (q31_t)0x801f95c3, - (q31_t)0x5981c26, (q31_t)0x801f4f4f, (q31_t)0x591d52f, (q31_t)0x801f092a, (q31_t)0x58b8e34, (q31_t)0x801ec354, - (q31_t)0x5854736, (q31_t)0x801e7dcd, - (q31_t)0x57f0035, (q31_t)0x801e3895, (q31_t)0x578b930, (q31_t)0x801df3ab, (q31_t)0x5727228, (q31_t)0x801daf11, - (q31_t)0x56c2b1c, (q31_t)0x801d6ac5, - (q31_t)0x565e40d, (q31_t)0x801d26c8, (q31_t)0x55f9cfb, (q31_t)0x801ce31a, (q31_t)0x55955e6, (q31_t)0x801c9fbb, - (q31_t)0x5530ecd, (q31_t)0x801c5cab, - (q31_t)0x54cc7b1, (q31_t)0x801c19ea, (q31_t)0x5468092, (q31_t)0x801bd777, (q31_t)0x540396f, (q31_t)0x801b9554, - (q31_t)0x539f249, (q31_t)0x801b537f, - (q31_t)0x533ab20, (q31_t)0x801b11fa, (q31_t)0x52d63f4, (q31_t)0x801ad0c3, (q31_t)0x5271cc4, (q31_t)0x801a8fdb, - (q31_t)0x520d592, (q31_t)0x801a4f42, - (q31_t)0x51a8e5c, (q31_t)0x801a0ef8, (q31_t)0x5144723, (q31_t)0x8019cefd, (q31_t)0x50dffe7, (q31_t)0x80198f50, - (q31_t)0x507b8a8, (q31_t)0x80194ff3, - (q31_t)0x5017165, (q31_t)0x801910e4, (q31_t)0x4fb2a20, (q31_t)0x8018d225, (q31_t)0x4f4e2d8, (q31_t)0x801893b4, - (q31_t)0x4ee9b8c, (q31_t)0x80185592, - (q31_t)0x4e8543e, (q31_t)0x801817bf, (q31_t)0x4e20cec, (q31_t)0x8017da3b, (q31_t)0x4dbc597, (q31_t)0x80179d06, - (q31_t)0x4d57e40, (q31_t)0x80176020, - (q31_t)0x4cf36e5, (q31_t)0x80172388, (q31_t)0x4c8ef88, (q31_t)0x8016e740, (q31_t)0x4c2a827, (q31_t)0x8016ab46, - (q31_t)0x4bc60c4, (q31_t)0x80166f9c, - (q31_t)0x4b6195d, (q31_t)0x80163440, (q31_t)0x4afd1f4, (q31_t)0x8015f933, (q31_t)0x4a98a88, (q31_t)0x8015be75, - (q31_t)0x4a34319, (q31_t)0x80158406, - (q31_t)0x49cfba7, (q31_t)0x801549e6, (q31_t)0x496b432, (q31_t)0x80151015, (q31_t)0x4906cbb, (q31_t)0x8014d693, - (q31_t)0x48a2540, (q31_t)0x80149d5f, - (q31_t)0x483ddc3, (q31_t)0x8014647b, (q31_t)0x47d9643, (q31_t)0x80142be5, (q31_t)0x4774ec1, (q31_t)0x8013f39e, - (q31_t)0x471073b, (q31_t)0x8013bba7, - (q31_t)0x46abfb3, (q31_t)0x801383fe, (q31_t)0x4647828, (q31_t)0x80134ca4, (q31_t)0x45e309a, (q31_t)0x80131599, - (q31_t)0x457e90a, (q31_t)0x8012dedd, - (q31_t)0x451a177, (q31_t)0x8012a86f, (q31_t)0x44b59e1, (q31_t)0x80127251, (q31_t)0x4451249, (q31_t)0x80123c82, - (q31_t)0x43ecaae, (q31_t)0x80120701, - (q31_t)0x4388310, (q31_t)0x8011d1d0, (q31_t)0x4323b70, (q31_t)0x80119ced, (q31_t)0x42bf3cd, (q31_t)0x80116859, - (q31_t)0x425ac28, (q31_t)0x80113414, - (q31_t)0x41f6480, (q31_t)0x8011001f, (q31_t)0x4191cd5, (q31_t)0x8010cc78, (q31_t)0x412d528, (q31_t)0x8010991f, - (q31_t)0x40c8d79, (q31_t)0x80106616, - (q31_t)0x40645c7, (q31_t)0x8010335c, (q31_t)0x3fffe12, (q31_t)0x801000f1, (q31_t)0x3f9b65b, (q31_t)0x800fced4, - (q31_t)0x3f36ea2, (q31_t)0x800f9d07, - (q31_t)0x3ed26e6, (q31_t)0x800f6b88, (q31_t)0x3e6df28, (q31_t)0x800f3a59, (q31_t)0x3e09767, (q31_t)0x800f0978, - (q31_t)0x3da4fa4, (q31_t)0x800ed8e6, - (q31_t)0x3d407df, (q31_t)0x800ea8a3, (q31_t)0x3cdc017, (q31_t)0x800e78af, (q31_t)0x3c7784d, (q31_t)0x800e490a, - (q31_t)0x3c13080, (q31_t)0x800e19b4, - (q31_t)0x3bae8b2, (q31_t)0x800deaad, (q31_t)0x3b4a0e0, (q31_t)0x800dbbf5, (q31_t)0x3ae590d, (q31_t)0x800d8d8b, - (q31_t)0x3a81137, (q31_t)0x800d5f71, - (q31_t)0x3a1c960, (q31_t)0x800d31a5, (q31_t)0x39b8185, (q31_t)0x800d0429, (q31_t)0x39539a9, (q31_t)0x800cd6fb, - (q31_t)0x38ef1ca, (q31_t)0x800caa1c, - (q31_t)0x388a9ea, (q31_t)0x800c7d8c, (q31_t)0x3826207, (q31_t)0x800c514c, (q31_t)0x37c1a22, (q31_t)0x800c255a, - (q31_t)0x375d23a, (q31_t)0x800bf9b7, - (q31_t)0x36f8a51, (q31_t)0x800bce63, (q31_t)0x3694265, (q31_t)0x800ba35d, (q31_t)0x362fa78, (q31_t)0x800b78a7, - (q31_t)0x35cb288, (q31_t)0x800b4e40, - (q31_t)0x3566a96, (q31_t)0x800b2427, (q31_t)0x35022a2, (q31_t)0x800afa5e, (q31_t)0x349daac, (q31_t)0x800ad0e3, - (q31_t)0x34392b4, (q31_t)0x800aa7b8, - (q31_t)0x33d4abb, (q31_t)0x800a7edb, (q31_t)0x33702bf, (q31_t)0x800a564e, (q31_t)0x330bac1, (q31_t)0x800a2e0f, - (q31_t)0x32a72c1, (q31_t)0x800a061f, - (q31_t)0x3242abf, (q31_t)0x8009de7e, (q31_t)0x31de2bb, (q31_t)0x8009b72c, (q31_t)0x3179ab5, (q31_t)0x80099029, - (q31_t)0x31152ae, (q31_t)0x80096975, - (q31_t)0x30b0aa4, (q31_t)0x80094310, (q31_t)0x304c299, (q31_t)0x80091cf9, (q31_t)0x2fe7a8c, (q31_t)0x8008f732, - (q31_t)0x2f8327d, (q31_t)0x8008d1ba, - (q31_t)0x2f1ea6c, (q31_t)0x8008ac90, (q31_t)0x2eba259, (q31_t)0x800887b6, (q31_t)0x2e55a44, (q31_t)0x8008632a, - (q31_t)0x2df122e, (q31_t)0x80083eed, - (q31_t)0x2d8ca16, (q31_t)0x80081b00, (q31_t)0x2d281fc, (q31_t)0x8007f761, (q31_t)0x2cc39e1, (q31_t)0x8007d411, - (q31_t)0x2c5f1c3, (q31_t)0x8007b110, - (q31_t)0x2bfa9a4, (q31_t)0x80078e5e, (q31_t)0x2b96184, (q31_t)0x80076bfb, (q31_t)0x2b31961, (q31_t)0x800749e7, - (q31_t)0x2acd13d, (q31_t)0x80072822, - (q31_t)0x2a68917, (q31_t)0x800706ac, (q31_t)0x2a040f0, (q31_t)0x8006e585, (q31_t)0x299f8c7, (q31_t)0x8006c4ac, - (q31_t)0x293b09c, (q31_t)0x8006a423, - (q31_t)0x28d6870, (q31_t)0x800683e8, (q31_t)0x2872043, (q31_t)0x800663fd, (q31_t)0x280d813, (q31_t)0x80064460, - (q31_t)0x27a8fe2, (q31_t)0x80062513, - (q31_t)0x27447b0, (q31_t)0x80060614, (q31_t)0x26dff7c, (q31_t)0x8005e764, (q31_t)0x267b747, (q31_t)0x8005c904, - (q31_t)0x2616f10, (q31_t)0x8005aaf2, - (q31_t)0x25b26d7, (q31_t)0x80058d2f, (q31_t)0x254de9e, (q31_t)0x80056fbb, (q31_t)0x24e9662, (q31_t)0x80055296, - (q31_t)0x2484e26, (q31_t)0x800535c0, - (q31_t)0x24205e8, (q31_t)0x80051939, (q31_t)0x23bbda8, (q31_t)0x8004fd00, (q31_t)0x2357567, (q31_t)0x8004e117, - (q31_t)0x22f2d25, (q31_t)0x8004c57d, - (q31_t)0x228e4e2, (q31_t)0x8004aa32, (q31_t)0x2229c9d, (q31_t)0x80048f35, (q31_t)0x21c5457, (q31_t)0x80047488, - (q31_t)0x2160c0f, (q31_t)0x80045a29, - (q31_t)0x20fc3c6, (q31_t)0x8004401a, (q31_t)0x2097b7c, (q31_t)0x80042659, (q31_t)0x2033331, (q31_t)0x80040ce7, - (q31_t)0x1fceae4, (q31_t)0x8003f3c5, - (q31_t)0x1f6a297, (q31_t)0x8003daf1, (q31_t)0x1f05a48, (q31_t)0x8003c26c, (q31_t)0x1ea11f7, (q31_t)0x8003aa36, - (q31_t)0x1e3c9a6, (q31_t)0x8003924f, - (q31_t)0x1dd8154, (q31_t)0x80037ab7, (q31_t)0x1d73900, (q31_t)0x8003636e, (q31_t)0x1d0f0ab, (q31_t)0x80034c74, - (q31_t)0x1caa855, (q31_t)0x800335c9, - (q31_t)0x1c45ffe, (q31_t)0x80031f6d, (q31_t)0x1be17a6, (q31_t)0x80030960, (q31_t)0x1b7cf4d, (q31_t)0x8002f3a1, - (q31_t)0x1b186f3, (q31_t)0x8002de32, - (q31_t)0x1ab3e97, (q31_t)0x8002c912, (q31_t)0x1a4f63b, (q31_t)0x8002b440, (q31_t)0x19eaddd, (q31_t)0x80029fbe, - (q31_t)0x198657f, (q31_t)0x80028b8a, - (q31_t)0x1921d20, (q31_t)0x800277a6, (q31_t)0x18bd4bf, (q31_t)0x80026410, (q31_t)0x1858c5e, (q31_t)0x800250c9, - (q31_t)0x17f43fc, (q31_t)0x80023dd2, - (q31_t)0x178fb99, (q31_t)0x80022b29, (q31_t)0x172b335, (q31_t)0x800218cf, (q31_t)0x16c6ad0, (q31_t)0x800206c4, - (q31_t)0x166226a, (q31_t)0x8001f508, - (q31_t)0x15fda03, (q31_t)0x8001e39b, (q31_t)0x159919c, (q31_t)0x8001d27d, (q31_t)0x1534934, (q31_t)0x8001c1ae, - (q31_t)0x14d00ca, (q31_t)0x8001b12e, - (q31_t)0x146b860, (q31_t)0x8001a0fd, (q31_t)0x1406ff6, (q31_t)0x8001911b, (q31_t)0x13a278a, (q31_t)0x80018187, - (q31_t)0x133df1e, (q31_t)0x80017243, - (q31_t)0x12d96b1, (q31_t)0x8001634e, (q31_t)0x1274e43, (q31_t)0x800154a7, (q31_t)0x12105d5, (q31_t)0x80014650, - (q31_t)0x11abd66, (q31_t)0x80013847, - (q31_t)0x11474f6, (q31_t)0x80012a8e, (q31_t)0x10e2c85, (q31_t)0x80011d23, (q31_t)0x107e414, (q31_t)0x80011008, - (q31_t)0x1019ba2, (q31_t)0x8001033b, - (q31_t)0xfb5330, (q31_t)0x8000f6bd, (q31_t)0xf50abd, (q31_t)0x8000ea8e, (q31_t)0xeec249, (q31_t)0x8000deaf, (q31_t)0xe879d5, - (q31_t)0x8000d31e, - (q31_t)0xe23160, (q31_t)0x8000c7dc, (q31_t)0xdbe8eb, (q31_t)0x8000bce9, (q31_t)0xd5a075, (q31_t)0x8000b245, (q31_t)0xcf57ff, - (q31_t)0x8000a7f0, - (q31_t)0xc90f88, (q31_t)0x80009dea, (q31_t)0xc2c711, (q31_t)0x80009433, (q31_t)0xbc7e99, (q31_t)0x80008aca, (q31_t)0xb63621, - (q31_t)0x800081b1, - (q31_t)0xafeda8, (q31_t)0x800078e7, (q31_t)0xa9a52f, (q31_t)0x8000706c, (q31_t)0xa35cb5, (q31_t)0x8000683f, (q31_t)0x9d143b, - (q31_t)0x80006062, - (q31_t)0x96cbc1, (q31_t)0x800058d4, (q31_t)0x908346, (q31_t)0x80005194, (q31_t)0x8a3acb, (q31_t)0x80004aa4, (q31_t)0x83f250, - (q31_t)0x80004402, - (q31_t)0x7da9d4, (q31_t)0x80003daf, (q31_t)0x776159, (q31_t)0x800037ac, (q31_t)0x7118dc, (q31_t)0x800031f7, (q31_t)0x6ad060, - (q31_t)0x80002c91, - (q31_t)0x6487e3, (q31_t)0x8000277a, (q31_t)0x5e3f66, (q31_t)0x800022b3, (q31_t)0x57f6e9, (q31_t)0x80001e3a, (q31_t)0x51ae6b, - (q31_t)0x80001a10, - (q31_t)0x4b65ee, (q31_t)0x80001635, (q31_t)0x451d70, (q31_t)0x800012a9, (q31_t)0x3ed4f2, (q31_t)0x80000f6c, (q31_t)0x388c74, - (q31_t)0x80000c7e, - (q31_t)0x3243f5, (q31_t)0x800009df, (q31_t)0x2bfb77, (q31_t)0x8000078e, (q31_t)0x25b2f8, (q31_t)0x8000058d, (q31_t)0x1f6a7a, - (q31_t)0x800003db, - (q31_t)0x1921fb, (q31_t)0x80000278, (q31_t)0x12d97c, (q31_t)0x80000163, (q31_t)0xc90fe, (q31_t)0x8000009e, (q31_t)0x6487f, - (q31_t)0x80000027 - -}; - -/** -* \par -* cosFactor tables are generated using the formula :
cos_factors[n] = 2 * cos((2n+1)*pi/(4*N))
-* \par -* C command to generate the table -*
-* for(i = 0; i< N; i++)
-* {
-*   cos_factors[i]= 2 * cos((2*i+1)*c/2);
-* } 
-* \par -* where N is the number of factors to generate and c is pi/(2*N) -* \par -* Then converted to q31 format by multiplying with 2^31 and saturated if required. -*/ - - -static const q31_t cos_factorsQ31_128[128] = { - (q31_t)0x7fff6216, (q31_t)0x7ffa72d1, (q31_t)0x7ff09478, (q31_t)0x7fe1c76b, (q31_t)0x7fce0c3e, (q31_t)0x7fb563b3, - (q31_t)0x7f97cebd, (q31_t)0x7f754e80, - (q31_t)0x7f4de451, (q31_t)0x7f2191b4, (q31_t)0x7ef05860, (q31_t)0x7eba3a39, (q31_t)0x7e7f3957, (q31_t)0x7e3f57ff, - (q31_t)0x7dfa98a8, (q31_t)0x7db0fdf8, - (q31_t)0x7d628ac6, (q31_t)0x7d0f4218, (q31_t)0x7cb72724, (q31_t)0x7c5a3d50, (q31_t)0x7bf88830, (q31_t)0x7b920b89, - (q31_t)0x7b26cb4f, (q31_t)0x7ab6cba4, - (q31_t)0x7a4210d8, (q31_t)0x79c89f6e, (q31_t)0x794a7c12, (q31_t)0x78c7aba2, (q31_t)0x78403329, (q31_t)0x77b417df, - (q31_t)0x77235f2d, (q31_t)0x768e0ea6, - (q31_t)0x75f42c0b, (q31_t)0x7555bd4c, (q31_t)0x74b2c884, (q31_t)0x740b53fb, (q31_t)0x735f6626, (q31_t)0x72af05a7, - (q31_t)0x71fa3949, (q31_t)0x71410805, - (q31_t)0x708378ff, (q31_t)0x6fc19385, (q31_t)0x6efb5f12, (q31_t)0x6e30e34a, (q31_t)0x6d6227fa, (q31_t)0x6c8f351c, - (q31_t)0x6bb812d1, (q31_t)0x6adcc964, - (q31_t)0x69fd614a, (q31_t)0x6919e320, (q31_t)0x683257ab, (q31_t)0x6746c7d8, (q31_t)0x66573cbb, (q31_t)0x6563bf92, - (q31_t)0x646c59bf, (q31_t)0x637114cc, - (q31_t)0x6271fa69, (q31_t)0x616f146c, (q31_t)0x60686ccf, (q31_t)0x5f5e0db3, (q31_t)0x5e50015d, (q31_t)0x5d3e5237, - (q31_t)0x5c290acc, (q31_t)0x5b1035cf, - (q31_t)0x59f3de12, (q31_t)0x58d40e8c, (q31_t)0x57b0d256, (q31_t)0x568a34a9, (q31_t)0x556040e2, (q31_t)0x5433027d, - (q31_t)0x53028518, (q31_t)0x51ced46e, - (q31_t)0x5097fc5e, (q31_t)0x4f5e08e3, (q31_t)0x4e210617, (q31_t)0x4ce10034, (q31_t)0x4b9e0390, (q31_t)0x4a581c9e, - (q31_t)0x490f57ee, (q31_t)0x47c3c22f, - (q31_t)0x46756828, (q31_t)0x452456bd, (q31_t)0x43d09aed, (q31_t)0x427a41d0, (q31_t)0x4121589b, (q31_t)0x3fc5ec98, - (q31_t)0x3e680b2c, (q31_t)0x3d07c1d6, - (q31_t)0x3ba51e29, (q31_t)0x3a402dd2, (q31_t)0x38d8fe93, (q31_t)0x376f9e46, (q31_t)0x36041ad9, (q31_t)0x34968250, - (q31_t)0x3326e2c3, (q31_t)0x31b54a5e, - (q31_t)0x3041c761, (q31_t)0x2ecc681e, (q31_t)0x2d553afc, (q31_t)0x2bdc4e6f, (q31_t)0x2a61b101, (q31_t)0x28e5714b, - (q31_t)0x27679df4, (q31_t)0x25e845b6, - (q31_t)0x24677758, (q31_t)0x22e541af, (q31_t)0x2161b3a0, (q31_t)0x1fdcdc1b, (q31_t)0x1e56ca1e, (q31_t)0x1ccf8cb3, - (q31_t)0x1b4732ef, (q31_t)0x19bdcbf3, - (q31_t)0x183366e9, (q31_t)0x16a81305, (q31_t)0x151bdf86, (q31_t)0x138edbb1, (q31_t)0x120116d5, (q31_t)0x1072a048, - (q31_t)0xee38766, (q31_t)0xd53db92, - (q31_t)0xbc3ac35, (q31_t)0xa3308bd, (q31_t)0x8a2009a, (q31_t)0x710a345, (q31_t)0x57f0035, (q31_t)0x3ed26e6, (q31_t)0x25b26d7, - (q31_t)0xc90f88 -}; - -static const q31_t cos_factorsQ31_512[512] = { - (q31_t)0x7ffff621, (q31_t)0x7fffa72c, (q31_t)0x7fff0943, (q31_t)0x7ffe1c65, (q31_t)0x7ffce093, (q31_t)0x7ffb55ce, - (q31_t)0x7ff97c18, (q31_t)0x7ff75370, - (q31_t)0x7ff4dbd9, (q31_t)0x7ff21553, (q31_t)0x7feeffe1, (q31_t)0x7feb9b85, (q31_t)0x7fe7e841, (q31_t)0x7fe3e616, - (q31_t)0x7fdf9508, (q31_t)0x7fdaf519, - (q31_t)0x7fd6064c, (q31_t)0x7fd0c8a3, (q31_t)0x7fcb3c23, (q31_t)0x7fc560cf, (q31_t)0x7fbf36aa, (q31_t)0x7fb8bdb8, - (q31_t)0x7fb1f5fc, (q31_t)0x7faadf7c, - (q31_t)0x7fa37a3c, (q31_t)0x7f9bc640, (q31_t)0x7f93c38c, (q31_t)0x7f8b7227, (q31_t)0x7f82d214, (q31_t)0x7f79e35a, - (q31_t)0x7f70a5fe, (q31_t)0x7f671a05, - (q31_t)0x7f5d3f75, (q31_t)0x7f531655, (q31_t)0x7f489eaa, (q31_t)0x7f3dd87c, (q31_t)0x7f32c3d1, (q31_t)0x7f2760af, - (q31_t)0x7f1baf1e, (q31_t)0x7f0faf25, - (q31_t)0x7f0360cb, (q31_t)0x7ef6c418, (q31_t)0x7ee9d914, (q31_t)0x7edc9fc6, (q31_t)0x7ecf1837, (q31_t)0x7ec14270, - (q31_t)0x7eb31e78, (q31_t)0x7ea4ac58, - (q31_t)0x7e95ec1a, (q31_t)0x7e86ddc6, (q31_t)0x7e778166, (q31_t)0x7e67d703, (q31_t)0x7e57dea7, (q31_t)0x7e47985b, - (q31_t)0x7e37042a, (q31_t)0x7e26221f, - (q31_t)0x7e14f242, (q31_t)0x7e0374a0, (q31_t)0x7df1a942, (q31_t)0x7ddf9034, (q31_t)0x7dcd2981, (q31_t)0x7dba7534, - (q31_t)0x7da77359, (q31_t)0x7d9423fc, - (q31_t)0x7d808728, (q31_t)0x7d6c9ce9, (q31_t)0x7d58654d, (q31_t)0x7d43e05e, (q31_t)0x7d2f0e2b, (q31_t)0x7d19eebf, - (q31_t)0x7d048228, (q31_t)0x7ceec873, - (q31_t)0x7cd8c1ae, (q31_t)0x7cc26de5, (q31_t)0x7cabcd28, (q31_t)0x7c94df83, (q31_t)0x7c7da505, (q31_t)0x7c661dbc, - (q31_t)0x7c4e49b7, (q31_t)0x7c362904, - (q31_t)0x7c1dbbb3, (q31_t)0x7c0501d2, (q31_t)0x7bebfb70, (q31_t)0x7bd2a89e, (q31_t)0x7bb9096b, (q31_t)0x7b9f1de6, - (q31_t)0x7b84e61f, (q31_t)0x7b6a6227, - (q31_t)0x7b4f920e, (q31_t)0x7b3475e5, (q31_t)0x7b190dbc, (q31_t)0x7afd59a4, (q31_t)0x7ae159ae, (q31_t)0x7ac50dec, - (q31_t)0x7aa8766f, (q31_t)0x7a8b9348, - (q31_t)0x7a6e648a, (q31_t)0x7a50ea47, (q31_t)0x7a332490, (q31_t)0x7a151378, (q31_t)0x79f6b711, (q31_t)0x79d80f6f, - (q31_t)0x79b91ca4, (q31_t)0x7999dec4, - (q31_t)0x797a55e0, (q31_t)0x795a820e, (q31_t)0x793a6361, (q31_t)0x7919f9ec, (q31_t)0x78f945c3, (q31_t)0x78d846fb, - (q31_t)0x78b6fda8, (q31_t)0x789569df, - (q31_t)0x78738bb3, (q31_t)0x7851633b, (q31_t)0x782ef08b, (q31_t)0x780c33b8, (q31_t)0x77e92cd9, (q31_t)0x77c5dc01, - (q31_t)0x77a24148, (q31_t)0x777e5cc3, - (q31_t)0x775a2e89, (q31_t)0x7735b6af, (q31_t)0x7710f54c, (q31_t)0x76ebea77, (q31_t)0x76c69647, (q31_t)0x76a0f8d2, - (q31_t)0x767b1231, (q31_t)0x7654e279, - (q31_t)0x762e69c4, (q31_t)0x7607a828, (q31_t)0x75e09dbd, (q31_t)0x75b94a9c, (q31_t)0x7591aedd, (q31_t)0x7569ca99, - (q31_t)0x75419de7, (q31_t)0x751928e0, - (q31_t)0x74f06b9e, (q31_t)0x74c7663a, (q31_t)0x749e18cd, (q31_t)0x74748371, (q31_t)0x744aa63f, (q31_t)0x74208150, - (q31_t)0x73f614c0, (q31_t)0x73cb60a8, - (q31_t)0x73a06522, (q31_t)0x73752249, (q31_t)0x73499838, (q31_t)0x731dc70a, (q31_t)0x72f1aed9, (q31_t)0x72c54fc1, - (q31_t)0x7298a9dd, (q31_t)0x726bbd48, - (q31_t)0x723e8a20, (q31_t)0x7211107e, (q31_t)0x71e35080, (q31_t)0x71b54a41, (q31_t)0x7186fdde, (q31_t)0x71586b74, - (q31_t)0x7129931f, (q31_t)0x70fa74fc, - (q31_t)0x70cb1128, (q31_t)0x709b67c0, (q31_t)0x706b78e3, (q31_t)0x703b44ad, (q31_t)0x700acb3c, (q31_t)0x6fda0cae, - (q31_t)0x6fa90921, (q31_t)0x6f77c0b3, - (q31_t)0x6f463383, (q31_t)0x6f1461b0, (q31_t)0x6ee24b57, (q31_t)0x6eaff099, (q31_t)0x6e7d5193, (q31_t)0x6e4a6e66, - (q31_t)0x6e174730, (q31_t)0x6de3dc11, - (q31_t)0x6db02d29, (q31_t)0x6d7c3a98, (q31_t)0x6d48047e, (q31_t)0x6d138afb, (q31_t)0x6cdece2f, (q31_t)0x6ca9ce3b, - (q31_t)0x6c748b3f, (q31_t)0x6c3f055d, - (q31_t)0x6c093cb6, (q31_t)0x6bd3316a, (q31_t)0x6b9ce39b, (q31_t)0x6b66536b, (q31_t)0x6b2f80fb, (q31_t)0x6af86c6c, - (q31_t)0x6ac115e2, (q31_t)0x6a897d7d, - (q31_t)0x6a51a361, (q31_t)0x6a1987b0, (q31_t)0x69e12a8c, (q31_t)0x69a88c19, (q31_t)0x696fac78, (q31_t)0x69368bce, - (q31_t)0x68fd2a3d, (q31_t)0x68c387e9, - (q31_t)0x6889a4f6, (q31_t)0x684f8186, (q31_t)0x68151dbe, (q31_t)0x67da79c3, (q31_t)0x679f95b7, (q31_t)0x676471c0, - (q31_t)0x67290e02, (q31_t)0x66ed6aa1, - (q31_t)0x66b187c3, (q31_t)0x6675658c, (q31_t)0x66390422, (q31_t)0x65fc63a9, (q31_t)0x65bf8447, (q31_t)0x65826622, - (q31_t)0x6545095f, (q31_t)0x65076e25, - (q31_t)0x64c99498, (q31_t)0x648b7ce0, (q31_t)0x644d2722, (q31_t)0x640e9386, (q31_t)0x63cfc231, (q31_t)0x6390b34a, - (q31_t)0x635166f9, (q31_t)0x6311dd64, - (q31_t)0x62d216b3, (q31_t)0x6292130c, (q31_t)0x6251d298, (q31_t)0x6211557e, (q31_t)0x61d09be5, (q31_t)0x618fa5f7, - (q31_t)0x614e73da, (q31_t)0x610d05b7, - (q31_t)0x60cb5bb7, (q31_t)0x60897601, (q31_t)0x604754bf, (q31_t)0x6004f819, (q31_t)0x5fc26038, (q31_t)0x5f7f8d46, - (q31_t)0x5f3c7f6b, (q31_t)0x5ef936d1, - (q31_t)0x5eb5b3a2, (q31_t)0x5e71f606, (q31_t)0x5e2dfe29, (q31_t)0x5de9cc33, (q31_t)0x5da5604f, (q31_t)0x5d60baa7, - (q31_t)0x5d1bdb65, (q31_t)0x5cd6c2b5, - (q31_t)0x5c9170bf, (q31_t)0x5c4be5b0, (q31_t)0x5c0621b2, (q31_t)0x5bc024f0, (q31_t)0x5b79ef96, (q31_t)0x5b3381ce, - (q31_t)0x5aecdbc5, (q31_t)0x5aa5fda5, - (q31_t)0x5a5ee79a, (q31_t)0x5a1799d1, (q31_t)0x59d01475, (q31_t)0x598857b2, (q31_t)0x594063b5, (q31_t)0x58f838a9, - (q31_t)0x58afd6bd, (q31_t)0x58673e1b, - (q31_t)0x581e6ef1, (q31_t)0x57d5696d, (q31_t)0x578c2dba, (q31_t)0x5742bc06, (q31_t)0x56f9147e, (q31_t)0x56af3750, - (q31_t)0x566524aa, (q31_t)0x561adcb9, - (q31_t)0x55d05faa, (q31_t)0x5585adad, (q31_t)0x553ac6ee, (q31_t)0x54efab9c, (q31_t)0x54a45be6, (q31_t)0x5458d7f9, - (q31_t)0x540d2005, (q31_t)0x53c13439, - (q31_t)0x537514c2, (q31_t)0x5328c1d0, (q31_t)0x52dc3b92, (q31_t)0x528f8238, (q31_t)0x524295f0, (q31_t)0x51f576ea, - (q31_t)0x51a82555, (q31_t)0x515aa162, - (q31_t)0x510ceb40, (q31_t)0x50bf031f, (q31_t)0x5070e92f, (q31_t)0x50229da1, (q31_t)0x4fd420a4, (q31_t)0x4f857269, - (q31_t)0x4f369320, (q31_t)0x4ee782fb, - (q31_t)0x4e984229, (q31_t)0x4e48d0dd, (q31_t)0x4df92f46, (q31_t)0x4da95d96, (q31_t)0x4d595bfe, (q31_t)0x4d092ab0, - (q31_t)0x4cb8c9dd, (q31_t)0x4c6839b7, - (q31_t)0x4c177a6e, (q31_t)0x4bc68c36, (q31_t)0x4b756f40, (q31_t)0x4b2423be, (q31_t)0x4ad2a9e2, (q31_t)0x4a8101de, - (q31_t)0x4a2f2be6, (q31_t)0x49dd282a, - (q31_t)0x498af6df, (q31_t)0x49389836, (q31_t)0x48e60c62, (q31_t)0x48935397, (q31_t)0x48406e08, (q31_t)0x47ed5be6, - (q31_t)0x479a1d67, (q31_t)0x4746b2bc, - (q31_t)0x46f31c1a, (q31_t)0x469f59b4, (q31_t)0x464b6bbe, (q31_t)0x45f7526b, (q31_t)0x45a30df0, (q31_t)0x454e9e80, - (q31_t)0x44fa0450, (q31_t)0x44a53f93, - (q31_t)0x4450507e, (q31_t)0x43fb3746, (q31_t)0x43a5f41e, (q31_t)0x4350873c, (q31_t)0x42faf0d4, (q31_t)0x42a5311b, - (q31_t)0x424f4845, (q31_t)0x41f93689, - (q31_t)0x41a2fc1a, (q31_t)0x414c992f, (q31_t)0x40f60dfb, (q31_t)0x409f5ab6, (q31_t)0x40487f94, (q31_t)0x3ff17cca, - (q31_t)0x3f9a5290, (q31_t)0x3f430119, - (q31_t)0x3eeb889c, (q31_t)0x3e93e950, (q31_t)0x3e3c2369, (q31_t)0x3de4371f, (q31_t)0x3d8c24a8, (q31_t)0x3d33ec39, - (q31_t)0x3cdb8e09, (q31_t)0x3c830a50, - (q31_t)0x3c2a6142, (q31_t)0x3bd19318, (q31_t)0x3b78a007, (q31_t)0x3b1f8848, (q31_t)0x3ac64c0f, (q31_t)0x3a6ceb96, - (q31_t)0x3a136712, (q31_t)0x39b9bebc, - (q31_t)0x395ff2c9, (q31_t)0x39060373, (q31_t)0x38abf0ef, (q31_t)0x3851bb77, (q31_t)0x37f76341, (q31_t)0x379ce885, - (q31_t)0x37424b7b, (q31_t)0x36e78c5b, - (q31_t)0x368cab5c, (q31_t)0x3631a8b8, (q31_t)0x35d684a6, (q31_t)0x357b3f5d, (q31_t)0x351fd918, (q31_t)0x34c4520d, - (q31_t)0x3468aa76, (q31_t)0x340ce28b, - (q31_t)0x33b0fa84, (q31_t)0x3354f29b, (q31_t)0x32f8cb07, (q31_t)0x329c8402, (q31_t)0x32401dc6, (q31_t)0x31e39889, - (q31_t)0x3186f487, (q31_t)0x312a31f8, - (q31_t)0x30cd5115, (q31_t)0x30705217, (q31_t)0x30133539, (q31_t)0x2fb5fab2, (q31_t)0x2f58a2be, (q31_t)0x2efb2d95, - (q31_t)0x2e9d9b70, (q31_t)0x2e3fec8b, - (q31_t)0x2de2211e, (q31_t)0x2d843964, (q31_t)0x2d263596, (q31_t)0x2cc815ee, (q31_t)0x2c69daa6, (q31_t)0x2c0b83fa, - (q31_t)0x2bad1221, (q31_t)0x2b4e8558, - (q31_t)0x2aefddd8, (q31_t)0x2a911bdc, (q31_t)0x2a323f9e, (q31_t)0x29d34958, (q31_t)0x29743946, (q31_t)0x29150fa1, - (q31_t)0x28b5cca5, (q31_t)0x2856708d, - (q31_t)0x27f6fb92, (q31_t)0x27976df1, (q31_t)0x2737c7e3, (q31_t)0x26d809a5, (q31_t)0x26783370, (q31_t)0x26184581, - (q31_t)0x25b84012, (q31_t)0x2558235f, - (q31_t)0x24f7efa2, (q31_t)0x2497a517, (q31_t)0x243743fa, (q31_t)0x23d6cc87, (q31_t)0x23763ef7, (q31_t)0x23159b88, - (q31_t)0x22b4e274, (q31_t)0x225413f8, - (q31_t)0x21f3304f, (q31_t)0x219237b5, (q31_t)0x21312a65, (q31_t)0x20d0089c, (q31_t)0x206ed295, (q31_t)0x200d888d, - (q31_t)0x1fac2abf, (q31_t)0x1f4ab968, - (q31_t)0x1ee934c3, (q31_t)0x1e879d0d, (q31_t)0x1e25f282, (q31_t)0x1dc4355e, (q31_t)0x1d6265dd, (q31_t)0x1d00843d, - (q31_t)0x1c9e90b8, (q31_t)0x1c3c8b8c, - (q31_t)0x1bda74f6, (q31_t)0x1b784d30, (q31_t)0x1b161479, (q31_t)0x1ab3cb0d, (q31_t)0x1a517128, (q31_t)0x19ef0707, - (q31_t)0x198c8ce7, (q31_t)0x192a0304, - (q31_t)0x18c7699b, (q31_t)0x1864c0ea, (q31_t)0x1802092c, (q31_t)0x179f429f, (q31_t)0x173c6d80, (q31_t)0x16d98a0c, - (q31_t)0x1676987f, (q31_t)0x16139918, - (q31_t)0x15b08c12, (q31_t)0x154d71aa, (q31_t)0x14ea4a1f, (q31_t)0x148715ae, (q31_t)0x1423d492, (q31_t)0x13c0870a, - (q31_t)0x135d2d53, (q31_t)0x12f9c7aa, - (q31_t)0x1296564d, (q31_t)0x1232d979, (q31_t)0x11cf516a, (q31_t)0x116bbe60, (q31_t)0x11082096, (q31_t)0x10a4784b, - (q31_t)0x1040c5bb, (q31_t)0xfdd0926, - (q31_t)0xf7942c7, (q31_t)0xf1572dc, (q31_t)0xeb199a4, (q31_t)0xe4db75b, (q31_t)0xde9cc40, (q31_t)0xd85d88f, (q31_t)0xd21dc87, - (q31_t)0xcbdd865, - (q31_t)0xc59cc68, (q31_t)0xbf5b8cb, (q31_t)0xb919dcf, (q31_t)0xb2d7baf, (q31_t)0xac952aa, (q31_t)0xa6522fe, (q31_t)0xa00ece8, - (q31_t)0x99cb0a7, - (q31_t)0x9386e78, (q31_t)0x8d42699, (q31_t)0x86fd947, (q31_t)0x80b86c2, (q31_t)0x7a72f45, (q31_t)0x742d311, (q31_t)0x6de7262, - (q31_t)0x67a0d76, - (q31_t)0x615a48b, (q31_t)0x5b137df, (q31_t)0x54cc7b1, (q31_t)0x4e8543e, (q31_t)0x483ddc3, (q31_t)0x41f6480, (q31_t)0x3bae8b2, - (q31_t)0x3566a96, - (q31_t)0x2f1ea6c, (q31_t)0x28d6870, (q31_t)0x228e4e2, (q31_t)0x1c45ffe, (q31_t)0x15fda03, (q31_t)0xfb5330, (q31_t)0x96cbc1, - (q31_t)0x3243f5 -}; - -static const q31_t cos_factorsQ31_2048[2048] = { - (q31_t)0x7fffff62, (q31_t)0x7ffffa73, (q31_t)0x7ffff094, (q31_t)0x7fffe1c6, (q31_t)0x7fffce09, (q31_t)0x7fffb55c, - (q31_t)0x7fff97c1, (q31_t)0x7fff7536, - (q31_t)0x7fff4dbb, (q31_t)0x7fff2151, (q31_t)0x7ffeeff8, (q31_t)0x7ffeb9b0, (q31_t)0x7ffe7e79, (q31_t)0x7ffe3e52, - (q31_t)0x7ffdf93c, (q31_t)0x7ffdaf37, - (q31_t)0x7ffd6042, (q31_t)0x7ffd0c5f, (q31_t)0x7ffcb38c, (q31_t)0x7ffc55ca, (q31_t)0x7ffbf319, (q31_t)0x7ffb8b78, - (q31_t)0x7ffb1ee9, (q31_t)0x7ffaad6a, - (q31_t)0x7ffa36fc, (q31_t)0x7ff9bba0, (q31_t)0x7ff93b54, (q31_t)0x7ff8b619, (q31_t)0x7ff82bef, (q31_t)0x7ff79cd6, - (q31_t)0x7ff708ce, (q31_t)0x7ff66fd7, - (q31_t)0x7ff5d1f1, (q31_t)0x7ff52f1d, (q31_t)0x7ff48759, (q31_t)0x7ff3daa6, (q31_t)0x7ff32905, (q31_t)0x7ff27275, - (q31_t)0x7ff1b6f6, (q31_t)0x7ff0f688, - (q31_t)0x7ff0312c, (q31_t)0x7fef66e1, (q31_t)0x7fee97a7, (q31_t)0x7fedc37e, (q31_t)0x7fecea67, (q31_t)0x7fec0c62, - (q31_t)0x7feb296d, (q31_t)0x7fea418b, - (q31_t)0x7fe954ba, (q31_t)0x7fe862fa, (q31_t)0x7fe76c4c, (q31_t)0x7fe670b0, (q31_t)0x7fe57025, (q31_t)0x7fe46aac, - (q31_t)0x7fe36045, (q31_t)0x7fe250ef, - (q31_t)0x7fe13cac, (q31_t)0x7fe0237a, (q31_t)0x7fdf055a, (q31_t)0x7fdde24d, (q31_t)0x7fdcba51, (q31_t)0x7fdb8d67, - (q31_t)0x7fda5b8f, (q31_t)0x7fd924ca, - (q31_t)0x7fd7e917, (q31_t)0x7fd6a875, (q31_t)0x7fd562e7, (q31_t)0x7fd4186a, (q31_t)0x7fd2c900, (q31_t)0x7fd174a8, - (q31_t)0x7fd01b63, (q31_t)0x7fcebd31, - (q31_t)0x7fcd5a11, (q31_t)0x7fcbf203, (q31_t)0x7fca8508, (q31_t)0x7fc91320, (q31_t)0x7fc79c4b, (q31_t)0x7fc62089, - (q31_t)0x7fc49fda, (q31_t)0x7fc31a3d, - (q31_t)0x7fc18fb4, (q31_t)0x7fc0003e, (q31_t)0x7fbe6bdb, (q31_t)0x7fbcd28b, (q31_t)0x7fbb344e, (q31_t)0x7fb99125, - (q31_t)0x7fb7e90f, (q31_t)0x7fb63c0d, - (q31_t)0x7fb48a1e, (q31_t)0x7fb2d343, (q31_t)0x7fb1177b, (q31_t)0x7faf56c7, (q31_t)0x7fad9127, (q31_t)0x7fabc69b, - (q31_t)0x7fa9f723, (q31_t)0x7fa822bf, - (q31_t)0x7fa6496e, (q31_t)0x7fa46b32, (q31_t)0x7fa2880b, (q31_t)0x7fa09ff7, (q31_t)0x7f9eb2f8, (q31_t)0x7f9cc10d, - (q31_t)0x7f9aca37, (q31_t)0x7f98ce76, - (q31_t)0x7f96cdc9, (q31_t)0x7f94c831, (q31_t)0x7f92bdad, (q31_t)0x7f90ae3f, (q31_t)0x7f8e99e6, (q31_t)0x7f8c80a1, - (q31_t)0x7f8a6272, (q31_t)0x7f883f58, - (q31_t)0x7f861753, (q31_t)0x7f83ea64, (q31_t)0x7f81b88a, (q31_t)0x7f7f81c6, (q31_t)0x7f7d4617, (q31_t)0x7f7b057e, - (q31_t)0x7f78bffb, (q31_t)0x7f76758e, - (q31_t)0x7f742637, (q31_t)0x7f71d1f6, (q31_t)0x7f6f78cb, (q31_t)0x7f6d1ab6, (q31_t)0x7f6ab7b8, (q31_t)0x7f684fd0, - (q31_t)0x7f65e2ff, (q31_t)0x7f637144, - (q31_t)0x7f60faa0, (q31_t)0x7f5e7f13, (q31_t)0x7f5bfe9d, (q31_t)0x7f59793e, (q31_t)0x7f56eef5, (q31_t)0x7f545fc5, - (q31_t)0x7f51cbab, (q31_t)0x7f4f32a9, - (q31_t)0x7f4c94be, (q31_t)0x7f49f1eb, (q31_t)0x7f474a30, (q31_t)0x7f449d8c, (q31_t)0x7f41ec01, (q31_t)0x7f3f358d, - (q31_t)0x7f3c7a31, (q31_t)0x7f39b9ee, - (q31_t)0x7f36f4c3, (q31_t)0x7f342ab1, (q31_t)0x7f315bb7, (q31_t)0x7f2e87d6, (q31_t)0x7f2baf0d, (q31_t)0x7f28d15d, - (q31_t)0x7f25eec7, (q31_t)0x7f230749, - (q31_t)0x7f201ae5, (q31_t)0x7f1d299a, (q31_t)0x7f1a3368, (q31_t)0x7f173850, (q31_t)0x7f143852, (q31_t)0x7f11336d, - (q31_t)0x7f0e29a3, (q31_t)0x7f0b1af2, - (q31_t)0x7f08075c, (q31_t)0x7f04eedf, (q31_t)0x7f01d17d, (q31_t)0x7efeaf36, (q31_t)0x7efb8809, (q31_t)0x7ef85bf7, - (q31_t)0x7ef52b00, (q31_t)0x7ef1f524, - (q31_t)0x7eeeba62, (q31_t)0x7eeb7abc, (q31_t)0x7ee83632, (q31_t)0x7ee4ecc3, (q31_t)0x7ee19e6f, (q31_t)0x7ede4b38, - (q31_t)0x7edaf31c, (q31_t)0x7ed7961c, - (q31_t)0x7ed43438, (q31_t)0x7ed0cd70, (q31_t)0x7ecd61c5, (q31_t)0x7ec9f137, (q31_t)0x7ec67bc5, (q31_t)0x7ec3016f, - (q31_t)0x7ebf8237, (q31_t)0x7ebbfe1c, - (q31_t)0x7eb8751e, (q31_t)0x7eb4e73d, (q31_t)0x7eb1547a, (q31_t)0x7eadbcd4, (q31_t)0x7eaa204c, (q31_t)0x7ea67ee2, - (q31_t)0x7ea2d896, (q31_t)0x7e9f2d68, - (q31_t)0x7e9b7d58, (q31_t)0x7e97c867, (q31_t)0x7e940e94, (q31_t)0x7e904fe0, (q31_t)0x7e8c8c4b, (q31_t)0x7e88c3d5, - (q31_t)0x7e84f67e, (q31_t)0x7e812447, - (q31_t)0x7e7d4d2f, (q31_t)0x7e797136, (q31_t)0x7e75905d, (q31_t)0x7e71aaa4, (q31_t)0x7e6dc00c, (q31_t)0x7e69d093, - (q31_t)0x7e65dc3b, (q31_t)0x7e61e303, - (q31_t)0x7e5de4ec, (q31_t)0x7e59e1f5, (q31_t)0x7e55da20, (q31_t)0x7e51cd6c, (q31_t)0x7e4dbbd9, (q31_t)0x7e49a567, - (q31_t)0x7e458a17, (q31_t)0x7e4169e9, - (q31_t)0x7e3d44dd, (q31_t)0x7e391af3, (q31_t)0x7e34ec2b, (q31_t)0x7e30b885, (q31_t)0x7e2c8002, (q31_t)0x7e2842a2, - (q31_t)0x7e240064, (q31_t)0x7e1fb94a, - (q31_t)0x7e1b6d53, (q31_t)0x7e171c7f, (q31_t)0x7e12c6ce, (q31_t)0x7e0e6c42, (q31_t)0x7e0a0cd9, (q31_t)0x7e05a894, - (q31_t)0x7e013f74, (q31_t)0x7dfcd178, - (q31_t)0x7df85ea0, (q31_t)0x7df3e6ee, (q31_t)0x7def6a60, (q31_t)0x7deae8f7, (q31_t)0x7de662b3, (q31_t)0x7de1d795, - (q31_t)0x7ddd479d, (q31_t)0x7dd8b2ca, - (q31_t)0x7dd4191d, (q31_t)0x7dcf7a96, (q31_t)0x7dcad736, (q31_t)0x7dc62efc, (q31_t)0x7dc181e8, (q31_t)0x7dbccffc, - (q31_t)0x7db81936, (q31_t)0x7db35d98, - (q31_t)0x7dae9d21, (q31_t)0x7da9d7d2, (q31_t)0x7da50dab, (q31_t)0x7da03eab, (q31_t)0x7d9b6ad3, (q31_t)0x7d969224, - (q31_t)0x7d91b49e, (q31_t)0x7d8cd240, - (q31_t)0x7d87eb0a, (q31_t)0x7d82fefe, (q31_t)0x7d7e0e1c, (q31_t)0x7d791862, (q31_t)0x7d741dd2, (q31_t)0x7d6f1e6c, - (q31_t)0x7d6a1a31, (q31_t)0x7d65111f, - (q31_t)0x7d600338, (q31_t)0x7d5af07b, (q31_t)0x7d55d8e9, (q31_t)0x7d50bc82, (q31_t)0x7d4b9b46, (q31_t)0x7d467536, - (q31_t)0x7d414a51, (q31_t)0x7d3c1a98, - (q31_t)0x7d36e60b, (q31_t)0x7d31acaa, (q31_t)0x7d2c6e76, (q31_t)0x7d272b6e, (q31_t)0x7d21e393, (q31_t)0x7d1c96e5, - (q31_t)0x7d174564, (q31_t)0x7d11ef11, - (q31_t)0x7d0c93eb, (q31_t)0x7d0733f3, (q31_t)0x7d01cf29, (q31_t)0x7cfc658d, (q31_t)0x7cf6f720, (q31_t)0x7cf183e1, - (q31_t)0x7cec0bd1, (q31_t)0x7ce68ef0, - (q31_t)0x7ce10d3f, (q31_t)0x7cdb86bd, (q31_t)0x7cd5fb6a, (q31_t)0x7cd06b48, (q31_t)0x7ccad656, (q31_t)0x7cc53c94, - (q31_t)0x7cbf9e03, (q31_t)0x7cb9faa2, - (q31_t)0x7cb45272, (q31_t)0x7caea574, (q31_t)0x7ca8f3a7, (q31_t)0x7ca33d0c, (q31_t)0x7c9d81a3, (q31_t)0x7c97c16b, - (q31_t)0x7c91fc66, (q31_t)0x7c8c3294, - (q31_t)0x7c8663f4, (q31_t)0x7c809088, (q31_t)0x7c7ab84e, (q31_t)0x7c74db48, (q31_t)0x7c6ef976, (q31_t)0x7c6912d7, - (q31_t)0x7c63276d, (q31_t)0x7c5d3737, - (q31_t)0x7c574236, (q31_t)0x7c514869, (q31_t)0x7c4b49d2, (q31_t)0x7c45466f, (q31_t)0x7c3f3e42, (q31_t)0x7c39314b, - (q31_t)0x7c331f8a, (q31_t)0x7c2d08ff, - (q31_t)0x7c26edab, (q31_t)0x7c20cd8d, (q31_t)0x7c1aa8a6, (q31_t)0x7c147ef6, (q31_t)0x7c0e507e, (q31_t)0x7c081d3d, - (q31_t)0x7c01e534, (q31_t)0x7bfba863, - (q31_t)0x7bf566cb, (q31_t)0x7bef206b, (q31_t)0x7be8d544, (q31_t)0x7be28556, (q31_t)0x7bdc30a1, (q31_t)0x7bd5d726, - (q31_t)0x7bcf78e5, (q31_t)0x7bc915dd, - (q31_t)0x7bc2ae10, (q31_t)0x7bbc417e, (q31_t)0x7bb5d026, (q31_t)0x7baf5a09, (q31_t)0x7ba8df28, (q31_t)0x7ba25f82, - (q31_t)0x7b9bdb18, (q31_t)0x7b9551ea, - (q31_t)0x7b8ec3f8, (q31_t)0x7b883143, (q31_t)0x7b8199ca, (q31_t)0x7b7afd8f, (q31_t)0x7b745c91, (q31_t)0x7b6db6d0, - (q31_t)0x7b670c4d, (q31_t)0x7b605d09, - (q31_t)0x7b59a902, (q31_t)0x7b52f03a, (q31_t)0x7b4c32b1, (q31_t)0x7b457068, (q31_t)0x7b3ea95d, (q31_t)0x7b37dd92, - (q31_t)0x7b310d07, (q31_t)0x7b2a37bc, - (q31_t)0x7b235db2, (q31_t)0x7b1c7ee8, (q31_t)0x7b159b5f, (q31_t)0x7b0eb318, (q31_t)0x7b07c612, (q31_t)0x7b00d44d, - (q31_t)0x7af9ddcb, (q31_t)0x7af2e28b, - (q31_t)0x7aebe28d, (q31_t)0x7ae4ddd2, (q31_t)0x7addd45b, (q31_t)0x7ad6c626, (q31_t)0x7acfb336, (q31_t)0x7ac89b89, - (q31_t)0x7ac17f20, (q31_t)0x7aba5dfc, - (q31_t)0x7ab3381d, (q31_t)0x7aac0d82, (q31_t)0x7aa4de2d, (q31_t)0x7a9daa1d, (q31_t)0x7a967153, (q31_t)0x7a8f33d0, - (q31_t)0x7a87f192, (q31_t)0x7a80aa9c, - (q31_t)0x7a795eec, (q31_t)0x7a720e84, (q31_t)0x7a6ab963, (q31_t)0x7a635f8a, (q31_t)0x7a5c00f9, (q31_t)0x7a549db0, - (q31_t)0x7a4d35b0, (q31_t)0x7a45c8f9, - (q31_t)0x7a3e578b, (q31_t)0x7a36e166, (q31_t)0x7a2f668c, (q31_t)0x7a27e6fb, (q31_t)0x7a2062b5, (q31_t)0x7a18d9b9, - (q31_t)0x7a114c09, (q31_t)0x7a09b9a4, - (q31_t)0x7a02228a, (q31_t)0x79fa86bc, (q31_t)0x79f2e63a, (q31_t)0x79eb4105, (q31_t)0x79e3971c, (q31_t)0x79dbe880, - (q31_t)0x79d43532, (q31_t)0x79cc7d31, - (q31_t)0x79c4c07e, (q31_t)0x79bcff19, (q31_t)0x79b53903, (q31_t)0x79ad6e3c, (q31_t)0x79a59ec3, (q31_t)0x799dca9a, - (q31_t)0x7995f1c1, (q31_t)0x798e1438, - (q31_t)0x798631ff, (q31_t)0x797e4b16, (q31_t)0x79765f7f, (q31_t)0x796e6f39, (q31_t)0x79667a44, (q31_t)0x795e80a1, - (q31_t)0x79568250, (q31_t)0x794e7f52, - (q31_t)0x794677a6, (q31_t)0x793e6b4e, (q31_t)0x79365a49, (q31_t)0x792e4497, (q31_t)0x79262a3a, (q31_t)0x791e0b31, - (q31_t)0x7915e77c, (q31_t)0x790dbf1d, - (q31_t)0x79059212, (q31_t)0x78fd605d, (q31_t)0x78f529fe, (q31_t)0x78eceef6, (q31_t)0x78e4af44, (q31_t)0x78dc6ae8, - (q31_t)0x78d421e4, (q31_t)0x78cbd437, - (q31_t)0x78c381e2, (q31_t)0x78bb2ae5, (q31_t)0x78b2cf41, (q31_t)0x78aa6ef5, (q31_t)0x78a20a03, (q31_t)0x7899a06a, - (q31_t)0x7891322a, (q31_t)0x7888bf45, - (q31_t)0x788047ba, (q31_t)0x7877cb89, (q31_t)0x786f4ab4, (q31_t)0x7866c53a, (q31_t)0x785e3b1c, (q31_t)0x7855ac5a, - (q31_t)0x784d18f4, (q31_t)0x784480ea, - (q31_t)0x783be43e, (q31_t)0x783342ef, (q31_t)0x782a9cfe, (q31_t)0x7821f26b, (q31_t)0x78194336, (q31_t)0x78108f60, - (q31_t)0x7807d6e9, (q31_t)0x77ff19d1, - (q31_t)0x77f65819, (q31_t)0x77ed91c0, (q31_t)0x77e4c6c9, (q31_t)0x77dbf732, (q31_t)0x77d322fc, (q31_t)0x77ca4a27, - (q31_t)0x77c16cb4, (q31_t)0x77b88aa3, - (q31_t)0x77afa3f5, (q31_t)0x77a6b8a9, (q31_t)0x779dc8c0, (q31_t)0x7794d43b, (q31_t)0x778bdb19, (q31_t)0x7782dd5c, - (q31_t)0x7779db03, (q31_t)0x7770d40f, - (q31_t)0x7767c880, (q31_t)0x775eb857, (q31_t)0x7755a394, (q31_t)0x774c8a36, (q31_t)0x77436c40, (q31_t)0x773a49b0, - (q31_t)0x77312287, (q31_t)0x7727f6c6, - (q31_t)0x771ec66e, (q31_t)0x7715917d, (q31_t)0x770c57f5, (q31_t)0x770319d6, (q31_t)0x76f9d721, (q31_t)0x76f08fd5, - (q31_t)0x76e743f4, (q31_t)0x76ddf37c, - (q31_t)0x76d49e70, (q31_t)0x76cb44cf, (q31_t)0x76c1e699, (q31_t)0x76b883d0, (q31_t)0x76af1c72, (q31_t)0x76a5b082, - (q31_t)0x769c3ffe, (q31_t)0x7692cae8, - (q31_t)0x7689513f, (q31_t)0x767fd304, (q31_t)0x76765038, (q31_t)0x766cc8db, (q31_t)0x76633ced, (q31_t)0x7659ac6f, - (q31_t)0x76501760, (q31_t)0x76467dc2, - (q31_t)0x763cdf94, (q31_t)0x76333cd8, (q31_t)0x7629958c, (q31_t)0x761fe9b3, (q31_t)0x7616394c, (q31_t)0x760c8457, - (q31_t)0x7602cad5, (q31_t)0x75f90cc7, - (q31_t)0x75ef4a2c, (q31_t)0x75e58305, (q31_t)0x75dbb753, (q31_t)0x75d1e715, (q31_t)0x75c8124d, (q31_t)0x75be38fa, - (q31_t)0x75b45b1d, (q31_t)0x75aa78b6, - (q31_t)0x75a091c6, (q31_t)0x7596a64d, (q31_t)0x758cb64c, (q31_t)0x7582c1c2, (q31_t)0x7578c8b0, (q31_t)0x756ecb18, - (q31_t)0x7564c8f8, (q31_t)0x755ac251, - (q31_t)0x7550b725, (q31_t)0x7546a772, (q31_t)0x753c933a, (q31_t)0x75327a7d, (q31_t)0x75285d3b, (q31_t)0x751e3b75, - (q31_t)0x7514152b, (q31_t)0x7509ea5d, - (q31_t)0x74ffbb0d, (q31_t)0x74f58739, (q31_t)0x74eb4ee3, (q31_t)0x74e1120c, (q31_t)0x74d6d0b2, (q31_t)0x74cc8ad8, - (q31_t)0x74c2407d, (q31_t)0x74b7f1a1, - (q31_t)0x74ad9e46, (q31_t)0x74a3466b, (q31_t)0x7498ea11, (q31_t)0x748e8938, (q31_t)0x748423e0, (q31_t)0x7479ba0b, - (q31_t)0x746f4bb8, (q31_t)0x7464d8e8, - (q31_t)0x745a619b, (q31_t)0x744fe5d2, (q31_t)0x7445658d, (q31_t)0x743ae0cc, (q31_t)0x74305790, (q31_t)0x7425c9da, - (q31_t)0x741b37a9, (q31_t)0x7410a0fe, - (q31_t)0x740605d9, (q31_t)0x73fb663c, (q31_t)0x73f0c226, (q31_t)0x73e61997, (q31_t)0x73db6c91, (q31_t)0x73d0bb13, - (q31_t)0x73c6051f, (q31_t)0x73bb4ab3, - (q31_t)0x73b08bd1, (q31_t)0x73a5c87a, (q31_t)0x739b00ad, (q31_t)0x7390346b, (q31_t)0x738563b5, (q31_t)0x737a8e8a, - (q31_t)0x736fb4ec, (q31_t)0x7364d6da, - (q31_t)0x7359f456, (q31_t)0x734f0d5f, (q31_t)0x734421f6, (q31_t)0x7339321b, (q31_t)0x732e3dcf, (q31_t)0x73234512, - (q31_t)0x731847e5, (q31_t)0x730d4648, - (q31_t)0x7302403c, (q31_t)0x72f735c0, (q31_t)0x72ec26d6, (q31_t)0x72e1137d, (q31_t)0x72d5fbb7, (q31_t)0x72cadf83, - (q31_t)0x72bfbee3, (q31_t)0x72b499d6, - (q31_t)0x72a9705c, (q31_t)0x729e4277, (q31_t)0x72931027, (q31_t)0x7287d96c, (q31_t)0x727c9e47, (q31_t)0x72715eb8, - (q31_t)0x72661abf, (q31_t)0x725ad25d, - (q31_t)0x724f8593, (q31_t)0x72443460, (q31_t)0x7238dec5, (q31_t)0x722d84c4, (q31_t)0x7222265b, (q31_t)0x7216c38c, - (q31_t)0x720b5c57, (q31_t)0x71fff0bc, - (q31_t)0x71f480bc, (q31_t)0x71e90c57, (q31_t)0x71dd938f, (q31_t)0x71d21662, (q31_t)0x71c694d2, (q31_t)0x71bb0edf, - (q31_t)0x71af848a, (q31_t)0x71a3f5d2, - (q31_t)0x719862b9, (q31_t)0x718ccb3f, (q31_t)0x71812f65, (q31_t)0x71758f29, (q31_t)0x7169ea8f, (q31_t)0x715e4194, - (q31_t)0x7152943b, (q31_t)0x7146e284, - (q31_t)0x713b2c6e, (q31_t)0x712f71fb, (q31_t)0x7123b32b, (q31_t)0x7117effe, (q31_t)0x710c2875, (q31_t)0x71005c90, - (q31_t)0x70f48c50, (q31_t)0x70e8b7b5, - (q31_t)0x70dcdec0, (q31_t)0x70d10171, (q31_t)0x70c51fc8, (q31_t)0x70b939c7, (q31_t)0x70ad4f6d, (q31_t)0x70a160ba, - (q31_t)0x70956db1, (q31_t)0x70897650, - (q31_t)0x707d7a98, (q31_t)0x70717a8a, (q31_t)0x70657626, (q31_t)0x70596d6d, (q31_t)0x704d6060, (q31_t)0x70414efd, - (q31_t)0x70353947, (q31_t)0x70291f3e, - (q31_t)0x701d00e1, (q31_t)0x7010de32, (q31_t)0x7004b731, (q31_t)0x6ff88bde, (q31_t)0x6fec5c3b, (q31_t)0x6fe02846, - (q31_t)0x6fd3f001, (q31_t)0x6fc7b36d, - (q31_t)0x6fbb728a, (q31_t)0x6faf2d57, (q31_t)0x6fa2e3d7, (q31_t)0x6f969608, (q31_t)0x6f8a43ed, (q31_t)0x6f7ded84, - (q31_t)0x6f7192cf, (q31_t)0x6f6533ce, - (q31_t)0x6f58d082, (q31_t)0x6f4c68eb, (q31_t)0x6f3ffd09, (q31_t)0x6f338cde, (q31_t)0x6f271868, (q31_t)0x6f1a9faa, - (q31_t)0x6f0e22a3, (q31_t)0x6f01a155, - (q31_t)0x6ef51bbe, (q31_t)0x6ee891e1, (q31_t)0x6edc03bc, (q31_t)0x6ecf7152, (q31_t)0x6ec2daa2, (q31_t)0x6eb63fad, - (q31_t)0x6ea9a073, (q31_t)0x6e9cfcf5, - (q31_t)0x6e905534, (q31_t)0x6e83a92f, (q31_t)0x6e76f8e7, (q31_t)0x6e6a445d, (q31_t)0x6e5d8b91, (q31_t)0x6e50ce84, - (q31_t)0x6e440d37, (q31_t)0x6e3747a9, - (q31_t)0x6e2a7ddb, (q31_t)0x6e1dafce, (q31_t)0x6e10dd82, (q31_t)0x6e0406f8, (q31_t)0x6df72c30, (q31_t)0x6dea4d2b, - (q31_t)0x6ddd69e9, (q31_t)0x6dd0826a, - (q31_t)0x6dc396b0, (q31_t)0x6db6a6ba, (q31_t)0x6da9b28a, (q31_t)0x6d9cba1f, (q31_t)0x6d8fbd7a, (q31_t)0x6d82bc9d, - (q31_t)0x6d75b786, (q31_t)0x6d68ae37, - (q31_t)0x6d5ba0b0, (q31_t)0x6d4e8ef2, (q31_t)0x6d4178fd, (q31_t)0x6d345ed1, (q31_t)0x6d274070, (q31_t)0x6d1a1dda, - (q31_t)0x6d0cf70f, (q31_t)0x6cffcc0f, - (q31_t)0x6cf29cdc, (q31_t)0x6ce56975, (q31_t)0x6cd831dc, (q31_t)0x6ccaf610, (q31_t)0x6cbdb613, (q31_t)0x6cb071e4, - (q31_t)0x6ca32985, (q31_t)0x6c95dcf6, - (q31_t)0x6c888c36, (q31_t)0x6c7b3748, (q31_t)0x6c6dde2b, (q31_t)0x6c6080e0, (q31_t)0x6c531f67, (q31_t)0x6c45b9c1, - (q31_t)0x6c384fef, (q31_t)0x6c2ae1f0, - (q31_t)0x6c1d6fc6, (q31_t)0x6c0ff971, (q31_t)0x6c027ef1, (q31_t)0x6bf50047, (q31_t)0x6be77d74, (q31_t)0x6bd9f677, - (q31_t)0x6bcc6b53, (q31_t)0x6bbedc06, - (q31_t)0x6bb14892, (q31_t)0x6ba3b0f7, (q31_t)0x6b961536, (q31_t)0x6b88754f, (q31_t)0x6b7ad142, (q31_t)0x6b6d2911, - (q31_t)0x6b5f7cbc, (q31_t)0x6b51cc42, - (q31_t)0x6b4417a6, (q31_t)0x6b365ee7, (q31_t)0x6b28a206, (q31_t)0x6b1ae103, (q31_t)0x6b0d1bdf, (q31_t)0x6aff529a, - (q31_t)0x6af18536, (q31_t)0x6ae3b3b2, - (q31_t)0x6ad5de0f, (q31_t)0x6ac8044e, (q31_t)0x6aba266e, (q31_t)0x6aac4472, (q31_t)0x6a9e5e58, (q31_t)0x6a907423, - (q31_t)0x6a8285d1, (q31_t)0x6a749365, - (q31_t)0x6a669cdd, (q31_t)0x6a58a23c, (q31_t)0x6a4aa381, (q31_t)0x6a3ca0ad, (q31_t)0x6a2e99c0, (q31_t)0x6a208ebb, - (q31_t)0x6a127f9f, (q31_t)0x6a046c6c, - (q31_t)0x69f65523, (q31_t)0x69e839c4, (q31_t)0x69da1a50, (q31_t)0x69cbf6c7, (q31_t)0x69bdcf29, (q31_t)0x69afa378, - (q31_t)0x69a173b5, (q31_t)0x69933fde, - (q31_t)0x698507f6, (q31_t)0x6976cbfc, (q31_t)0x69688bf1, (q31_t)0x695a47d6, (q31_t)0x694bffab, (q31_t)0x693db371, - (q31_t)0x692f6328, (q31_t)0x69210ed1, - (q31_t)0x6912b66c, (q31_t)0x690459fb, (q31_t)0x68f5f97d, (q31_t)0x68e794f3, (q31_t)0x68d92c5d, (q31_t)0x68cabfbd, - (q31_t)0x68bc4f13, (q31_t)0x68adda5f, - (q31_t)0x689f61a1, (q31_t)0x6890e4dc, (q31_t)0x6882640e, (q31_t)0x6873df38, (q31_t)0x6865565c, (q31_t)0x6856c979, - (q31_t)0x68483891, (q31_t)0x6839a3a4, - (q31_t)0x682b0ab1, (q31_t)0x681c6dbb, (q31_t)0x680dccc1, (q31_t)0x67ff27c4, (q31_t)0x67f07ec5, (q31_t)0x67e1d1c4, - (q31_t)0x67d320c1, (q31_t)0x67c46bbe, - (q31_t)0x67b5b2bb, (q31_t)0x67a6f5b8, (q31_t)0x679834b6, (q31_t)0x67896fb6, (q31_t)0x677aa6b8, (q31_t)0x676bd9bd, - (q31_t)0x675d08c4, (q31_t)0x674e33d0, - (q31_t)0x673f5ae0, (q31_t)0x67307df5, (q31_t)0x67219d10, (q31_t)0x6712b831, (q31_t)0x6703cf58, (q31_t)0x66f4e287, - (q31_t)0x66e5f1be, (q31_t)0x66d6fcfd, - (q31_t)0x66c80445, (q31_t)0x66b90797, (q31_t)0x66aa06f3, (q31_t)0x669b0259, (q31_t)0x668bf9cb, (q31_t)0x667ced49, - (q31_t)0x666ddcd3, (q31_t)0x665ec86b, - (q31_t)0x664fb010, (q31_t)0x664093c3, (q31_t)0x66317385, (q31_t)0x66224f56, (q31_t)0x66132738, (q31_t)0x6603fb2a, - (q31_t)0x65f4cb2d, (q31_t)0x65e59742, - (q31_t)0x65d65f69, (q31_t)0x65c723a3, (q31_t)0x65b7e3f1, (q31_t)0x65a8a052, (q31_t)0x659958c9, (q31_t)0x658a0d54, - (q31_t)0x657abdf6, (q31_t)0x656b6aae, - (q31_t)0x655c137d, (q31_t)0x654cb863, (q31_t)0x653d5962, (q31_t)0x652df679, (q31_t)0x651e8faa, (q31_t)0x650f24f5, - (q31_t)0x64ffb65b, (q31_t)0x64f043dc, - (q31_t)0x64e0cd78, (q31_t)0x64d15331, (q31_t)0x64c1d507, (q31_t)0x64b252fa, (q31_t)0x64a2cd0c, (q31_t)0x6493433c, - (q31_t)0x6483b58c, (q31_t)0x647423fb, - (q31_t)0x64648e8c, (q31_t)0x6454f53d, (q31_t)0x64455810, (q31_t)0x6435b706, (q31_t)0x6426121e, (q31_t)0x6416695a, - (q31_t)0x6406bcba, (q31_t)0x63f70c3f, - (q31_t)0x63e757ea, (q31_t)0x63d79fba, (q31_t)0x63c7e3b1, (q31_t)0x63b823cf, (q31_t)0x63a86015, (q31_t)0x63989884, - (q31_t)0x6388cd1b, (q31_t)0x6378fddc, - (q31_t)0x63692ac7, (q31_t)0x635953dd, (q31_t)0x6349791f, (q31_t)0x63399a8d, (q31_t)0x6329b827, (q31_t)0x6319d1ef, - (q31_t)0x6309e7e4, (q31_t)0x62f9fa09, - (q31_t)0x62ea085c, (q31_t)0x62da12df, (q31_t)0x62ca1992, (q31_t)0x62ba1c77, (q31_t)0x62aa1b8d, (q31_t)0x629a16d5, - (q31_t)0x628a0e50, (q31_t)0x627a01fe, - (q31_t)0x6269f1e1, (q31_t)0x6259ddf8, (q31_t)0x6249c645, (q31_t)0x6239aac7, (q31_t)0x62298b81, (q31_t)0x62196871, - (q31_t)0x62094199, (q31_t)0x61f916f9, - (q31_t)0x61e8e893, (q31_t)0x61d8b666, (q31_t)0x61c88074, (q31_t)0x61b846bc, (q31_t)0x61a80940, (q31_t)0x6197c800, - (q31_t)0x618782fd, (q31_t)0x61773a37, - (q31_t)0x6166edb0, (q31_t)0x61569d67, (q31_t)0x6146495d, (q31_t)0x6135f193, (q31_t)0x6125960a, (q31_t)0x611536c2, - (q31_t)0x6104d3bc, (q31_t)0x60f46cf9, - (q31_t)0x60e40278, (q31_t)0x60d3943b, (q31_t)0x60c32243, (q31_t)0x60b2ac8f, (q31_t)0x60a23322, (q31_t)0x6091b5fa, - (q31_t)0x60813519, (q31_t)0x6070b080, - (q31_t)0x6060282f, (q31_t)0x604f9c27, (q31_t)0x603f0c69, (q31_t)0x602e78f4, (q31_t)0x601de1ca, (q31_t)0x600d46ec, - (q31_t)0x5ffca859, (q31_t)0x5fec0613, - (q31_t)0x5fdb601b, (q31_t)0x5fcab670, (q31_t)0x5fba0914, (q31_t)0x5fa95807, (q31_t)0x5f98a34a, (q31_t)0x5f87eade, - (q31_t)0x5f772ec2, (q31_t)0x5f666ef9, - (q31_t)0x5f55ab82, (q31_t)0x5f44e45e, (q31_t)0x5f34198e, (q31_t)0x5f234b12, (q31_t)0x5f1278eb, (q31_t)0x5f01a31a, - (q31_t)0x5ef0c99f, (q31_t)0x5edfec7b, - (q31_t)0x5ecf0baf, (q31_t)0x5ebe273b, (q31_t)0x5ead3f1f, (q31_t)0x5e9c535e, (q31_t)0x5e8b63f7, (q31_t)0x5e7a70ea, - (q31_t)0x5e697a39, (q31_t)0x5e587fe5, - (q31_t)0x5e4781ed, (q31_t)0x5e368053, (q31_t)0x5e257b17, (q31_t)0x5e147239, (q31_t)0x5e0365bb, (q31_t)0x5df2559e, - (q31_t)0x5de141e1, (q31_t)0x5dd02a85, - (q31_t)0x5dbf0f8c, (q31_t)0x5dadf0f5, (q31_t)0x5d9ccec2, (q31_t)0x5d8ba8f3, (q31_t)0x5d7a7f88, (q31_t)0x5d695283, - (q31_t)0x5d5821e4, (q31_t)0x5d46edac, - (q31_t)0x5d35b5db, (q31_t)0x5d247a72, (q31_t)0x5d133b72, (q31_t)0x5d01f8dc, (q31_t)0x5cf0b2af, (q31_t)0x5cdf68ed, - (q31_t)0x5cce1b97, (q31_t)0x5cbccaac, - (q31_t)0x5cab762f, (q31_t)0x5c9a1e1e, (q31_t)0x5c88c27c, (q31_t)0x5c776348, (q31_t)0x5c660084, (q31_t)0x5c549a30, - (q31_t)0x5c43304d, (q31_t)0x5c31c2db, - (q31_t)0x5c2051db, (q31_t)0x5c0edd4e, (q31_t)0x5bfd6534, (q31_t)0x5bebe98e, (q31_t)0x5bda6a5d, (q31_t)0x5bc8e7a2, - (q31_t)0x5bb7615d, (q31_t)0x5ba5d78e, - (q31_t)0x5b944a37, (q31_t)0x5b82b958, (q31_t)0x5b7124f2, (q31_t)0x5b5f8d06, (q31_t)0x5b4df193, (q31_t)0x5b3c529c, - (q31_t)0x5b2ab020, (q31_t)0x5b190a20, - (q31_t)0x5b07609d, (q31_t)0x5af5b398, (q31_t)0x5ae40311, (q31_t)0x5ad24f09, (q31_t)0x5ac09781, (q31_t)0x5aaedc78, - (q31_t)0x5a9d1df1, (q31_t)0x5a8b5bec, - (q31_t)0x5a799669, (q31_t)0x5a67cd69, (q31_t)0x5a5600ec, (q31_t)0x5a4430f5, (q31_t)0x5a325d82, (q31_t)0x5a208695, - (q31_t)0x5a0eac2e, (q31_t)0x59fcce4f, - (q31_t)0x59eaecf8, (q31_t)0x59d90829, (q31_t)0x59c71fe3, (q31_t)0x59b53427, (q31_t)0x59a344f6, (q31_t)0x59915250, - (q31_t)0x597f5c36, (q31_t)0x596d62a9, - (q31_t)0x595b65aa, (q31_t)0x59496538, (q31_t)0x59376155, (q31_t)0x59255a02, (q31_t)0x59134f3e, (q31_t)0x5901410c, - (q31_t)0x58ef2f6b, (q31_t)0x58dd1a5d, - (q31_t)0x58cb01e1, (q31_t)0x58b8e5f9, (q31_t)0x58a6c6a5, (q31_t)0x5894a3e7, (q31_t)0x58827dbe, (q31_t)0x5870542c, - (q31_t)0x585e2730, (q31_t)0x584bf6cd, - (q31_t)0x5839c302, (q31_t)0x58278bd1, (q31_t)0x58155139, (q31_t)0x5803133c, (q31_t)0x57f0d1da, (q31_t)0x57de8d15, - (q31_t)0x57cc44ec, (q31_t)0x57b9f960, - (q31_t)0x57a7aa73, (q31_t)0x57955825, (q31_t)0x57830276, (q31_t)0x5770a968, (q31_t)0x575e4cfa, (q31_t)0x574bed2f, - (q31_t)0x57398a05, (q31_t)0x5727237f, - (q31_t)0x5714b99d, (q31_t)0x57024c5f, (q31_t)0x56efdbc7, (q31_t)0x56dd67d4, (q31_t)0x56caf088, (q31_t)0x56b875e4, - (q31_t)0x56a5f7e7, (q31_t)0x56937694, - (q31_t)0x5680f1ea, (q31_t)0x566e69ea, (q31_t)0x565bde95, (q31_t)0x56494fec, (q31_t)0x5636bdef, (q31_t)0x5624289f, - (q31_t)0x56118ffe, (q31_t)0x55fef40a, - (q31_t)0x55ec54c6, (q31_t)0x55d9b232, (q31_t)0x55c70c4f, (q31_t)0x55b4631d, (q31_t)0x55a1b69d, (q31_t)0x558f06d0, - (q31_t)0x557c53b6, (q31_t)0x55699d51, - (q31_t)0x5556e3a1, (q31_t)0x554426a7, (q31_t)0x55316663, (q31_t)0x551ea2d6, (q31_t)0x550bdc01, (q31_t)0x54f911e5, - (q31_t)0x54e64482, (q31_t)0x54d373d9, - (q31_t)0x54c09feb, (q31_t)0x54adc8b8, (q31_t)0x549aee42, (q31_t)0x54881089, (q31_t)0x54752f8d, (q31_t)0x54624b50, - (q31_t)0x544f63d2, (q31_t)0x543c7914, - (q31_t)0x54298b17, (q31_t)0x541699db, (q31_t)0x5403a561, (q31_t)0x53f0adaa, (q31_t)0x53ddb2b6, (q31_t)0x53cab486, - (q31_t)0x53b7b31c, (q31_t)0x53a4ae77, - (q31_t)0x5391a699, (q31_t)0x537e9b82, (q31_t)0x536b8d33, (q31_t)0x53587bad, (q31_t)0x534566f0, (q31_t)0x53324efd, - (q31_t)0x531f33d5, (q31_t)0x530c1579, - (q31_t)0x52f8f3e9, (q31_t)0x52e5cf27, (q31_t)0x52d2a732, (q31_t)0x52bf7c0b, (q31_t)0x52ac4db4, (q31_t)0x52991c2d, - (q31_t)0x5285e777, (q31_t)0x5272af92, - (q31_t)0x525f7480, (q31_t)0x524c3640, (q31_t)0x5238f4d4, (q31_t)0x5225b03d, (q31_t)0x5212687b, (q31_t)0x51ff1d8f, - (q31_t)0x51ebcf7a, (q31_t)0x51d87e3c, - (q31_t)0x51c529d7, (q31_t)0x51b1d24a, (q31_t)0x519e7797, (q31_t)0x518b19bf, (q31_t)0x5177b8c2, (q31_t)0x516454a0, - (q31_t)0x5150ed5c, (q31_t)0x513d82f4, - (q31_t)0x512a156b, (q31_t)0x5116a4c1, (q31_t)0x510330f7, (q31_t)0x50efba0d, (q31_t)0x50dc4005, (q31_t)0x50c8c2de, - (q31_t)0x50b5429a, (q31_t)0x50a1bf39, - (q31_t)0x508e38bd, (q31_t)0x507aaf25, (q31_t)0x50672273, (q31_t)0x505392a8, (q31_t)0x503fffc4, (q31_t)0x502c69c8, - (q31_t)0x5018d0b4, (q31_t)0x5005348a, - (q31_t)0x4ff1954b, (q31_t)0x4fddf2f6, (q31_t)0x4fca4d8d, (q31_t)0x4fb6a510, (q31_t)0x4fa2f981, (q31_t)0x4f8f4ae0, - (q31_t)0x4f7b992d, (q31_t)0x4f67e46a, - (q31_t)0x4f542c98, (q31_t)0x4f4071b6, (q31_t)0x4f2cb3c7, (q31_t)0x4f18f2c9, (q31_t)0x4f052ec0, (q31_t)0x4ef167aa, - (q31_t)0x4edd9d89, (q31_t)0x4ec9d05e, - (q31_t)0x4eb60029, (q31_t)0x4ea22ceb, (q31_t)0x4e8e56a5, (q31_t)0x4e7a7d58, (q31_t)0x4e66a105, (q31_t)0x4e52c1ab, - (q31_t)0x4e3edf4d, (q31_t)0x4e2af9ea, - (q31_t)0x4e171184, (q31_t)0x4e03261b, (q31_t)0x4def37b0, (q31_t)0x4ddb4644, (q31_t)0x4dc751d8, (q31_t)0x4db35a6c, - (q31_t)0x4d9f6001, (q31_t)0x4d8b6298, - (q31_t)0x4d776231, (q31_t)0x4d635ece, (q31_t)0x4d4f5870, (q31_t)0x4d3b4f16, (q31_t)0x4d2742c2, (q31_t)0x4d133374, - (q31_t)0x4cff212e, (q31_t)0x4ceb0bf0, - (q31_t)0x4cd6f3bb, (q31_t)0x4cc2d88f, (q31_t)0x4caeba6e, (q31_t)0x4c9a9958, (q31_t)0x4c86754e, (q31_t)0x4c724e50, - (q31_t)0x4c5e2460, (q31_t)0x4c49f77f, - (q31_t)0x4c35c7ac, (q31_t)0x4c2194e9, (q31_t)0x4c0d5f37, (q31_t)0x4bf92697, (q31_t)0x4be4eb08, (q31_t)0x4bd0ac8d, - (q31_t)0x4bbc6b25, (q31_t)0x4ba826d1, - (q31_t)0x4b93df93, (q31_t)0x4b7f956b, (q31_t)0x4b6b485a, (q31_t)0x4b56f861, (q31_t)0x4b42a580, (q31_t)0x4b2e4fb8, - (q31_t)0x4b19f70a, (q31_t)0x4b059b77, - (q31_t)0x4af13d00, (q31_t)0x4adcdba5, (q31_t)0x4ac87767, (q31_t)0x4ab41046, (q31_t)0x4a9fa645, (q31_t)0x4a8b3963, - (q31_t)0x4a76c9a2, (q31_t)0x4a625701, - (q31_t)0x4a4de182, (q31_t)0x4a396926, (q31_t)0x4a24edee, (q31_t)0x4a106fda, (q31_t)0x49fbeeea, (q31_t)0x49e76b21, - (q31_t)0x49d2e47e, (q31_t)0x49be5b02, - (q31_t)0x49a9ceaf, (q31_t)0x49953f84, (q31_t)0x4980ad84, (q31_t)0x496c18ae, (q31_t)0x49578103, (q31_t)0x4942e684, - (q31_t)0x492e4933, (q31_t)0x4919a90f, - (q31_t)0x4905061a, (q31_t)0x48f06054, (q31_t)0x48dbb7be, (q31_t)0x48c70c59, (q31_t)0x48b25e25, (q31_t)0x489dad25, - (q31_t)0x4888f957, (q31_t)0x487442be, - (q31_t)0x485f8959, (q31_t)0x484acd2a, (q31_t)0x48360e32, (q31_t)0x48214c71, (q31_t)0x480c87e8, (q31_t)0x47f7c099, - (q31_t)0x47e2f682, (q31_t)0x47ce29a7, - (q31_t)0x47b95a06, (q31_t)0x47a487a2, (q31_t)0x478fb27b, (q31_t)0x477ada91, (q31_t)0x4765ffe6, (q31_t)0x4751227a, - (q31_t)0x473c424e, (q31_t)0x47275f63, - (q31_t)0x471279ba, (q31_t)0x46fd9154, (q31_t)0x46e8a631, (q31_t)0x46d3b852, (q31_t)0x46bec7b8, (q31_t)0x46a9d464, - (q31_t)0x4694de56, (q31_t)0x467fe590, - (q31_t)0x466aea12, (q31_t)0x4655ebdd, (q31_t)0x4640eaf2, (q31_t)0x462be751, (q31_t)0x4616e0fc, (q31_t)0x4601d7f3, - (q31_t)0x45eccc37, (q31_t)0x45d7bdc9, - (q31_t)0x45c2acaa, (q31_t)0x45ad98da, (q31_t)0x4598825a, (q31_t)0x4583692c, (q31_t)0x456e4d4f, (q31_t)0x45592ec6, - (q31_t)0x45440d90, (q31_t)0x452ee9ae, - (q31_t)0x4519c321, (q31_t)0x450499eb, (q31_t)0x44ef6e0b, (q31_t)0x44da3f83, (q31_t)0x44c50e53, (q31_t)0x44afda7d, - (q31_t)0x449aa400, (q31_t)0x44856adf, - (q31_t)0x44702f19, (q31_t)0x445af0b0, (q31_t)0x4445afa4, (q31_t)0x44306bf6, (q31_t)0x441b25a8, (q31_t)0x4405dcb9, - (q31_t)0x43f0912b, (q31_t)0x43db42fe, - (q31_t)0x43c5f234, (q31_t)0x43b09ecc, (q31_t)0x439b48c9, (q31_t)0x4385f02a, (q31_t)0x437094f1, (q31_t)0x435b371f, - (q31_t)0x4345d6b3, (q31_t)0x433073b0, - (q31_t)0x431b0e15, (q31_t)0x4305a5e5, (q31_t)0x42f03b1e, (q31_t)0x42dacdc3, (q31_t)0x42c55dd4, (q31_t)0x42afeb53, - (q31_t)0x429a763f, (q31_t)0x4284fe99, - (q31_t)0x426f8463, (q31_t)0x425a079e, (q31_t)0x42448849, (q31_t)0x422f0667, (q31_t)0x421981f7, (q31_t)0x4203fafb, - (q31_t)0x41ee7174, (q31_t)0x41d8e561, - (q31_t)0x41c356c5, (q31_t)0x41adc5a0, (q31_t)0x419831f3, (q31_t)0x41829bbe, (q31_t)0x416d0302, (q31_t)0x415767c1, - (q31_t)0x4141c9fb, (q31_t)0x412c29b1, - (q31_t)0x411686e4, (q31_t)0x4100e194, (q31_t)0x40eb39c3, (q31_t)0x40d58f71, (q31_t)0x40bfe29f, (q31_t)0x40aa334e, - (q31_t)0x4094817f, (q31_t)0x407ecd32, - (q31_t)0x40691669, (q31_t)0x40535d24, (q31_t)0x403da165, (q31_t)0x4027e32b, (q31_t)0x40122278, (q31_t)0x3ffc5f4d, - (q31_t)0x3fe699aa, (q31_t)0x3fd0d191, - (q31_t)0x3fbb0702, (q31_t)0x3fa539fd, (q31_t)0x3f8f6a85, (q31_t)0x3f799899, (q31_t)0x3f63c43b, (q31_t)0x3f4ded6b, - (q31_t)0x3f38142a, (q31_t)0x3f22387a, - (q31_t)0x3f0c5a5a, (q31_t)0x3ef679cc, (q31_t)0x3ee096d1, (q31_t)0x3ecab169, (q31_t)0x3eb4c995, (q31_t)0x3e9edf57, - (q31_t)0x3e88f2ae, (q31_t)0x3e73039d, - (q31_t)0x3e5d1222, (q31_t)0x3e471e41, (q31_t)0x3e3127f9, (q31_t)0x3e1b2f4a, (q31_t)0x3e053437, (q31_t)0x3def36c0, - (q31_t)0x3dd936e6, (q31_t)0x3dc334a9, - (q31_t)0x3dad300b, (q31_t)0x3d97290b, (q31_t)0x3d811fac, (q31_t)0x3d6b13ee, (q31_t)0x3d5505d2, (q31_t)0x3d3ef559, - (q31_t)0x3d28e282, (q31_t)0x3d12cd51, - (q31_t)0x3cfcb5c4, (q31_t)0x3ce69bde, (q31_t)0x3cd07f9f, (q31_t)0x3cba6107, (q31_t)0x3ca44018, (q31_t)0x3c8e1cd3, - (q31_t)0x3c77f737, (q31_t)0x3c61cf48, - (q31_t)0x3c4ba504, (q31_t)0x3c35786d, (q31_t)0x3c1f4983, (q31_t)0x3c091849, (q31_t)0x3bf2e4be, (q31_t)0x3bdcaee3, - (q31_t)0x3bc676b9, (q31_t)0x3bb03c42, - (q31_t)0x3b99ff7d, (q31_t)0x3b83c06c, (q31_t)0x3b6d7f10, (q31_t)0x3b573b69, (q31_t)0x3b40f579, (q31_t)0x3b2aad3f, - (q31_t)0x3b1462be, (q31_t)0x3afe15f6, - (q31_t)0x3ae7c6e7, (q31_t)0x3ad17593, (q31_t)0x3abb21fb, (q31_t)0x3aa4cc1e, (q31_t)0x3a8e7400, (q31_t)0x3a78199f, - (q31_t)0x3a61bcfd, (q31_t)0x3a4b5e1b, - (q31_t)0x3a34fcf9, (q31_t)0x3a1e9999, (q31_t)0x3a0833fc, (q31_t)0x39f1cc21, (q31_t)0x39db620b, (q31_t)0x39c4f5ba, - (q31_t)0x39ae872f, (q31_t)0x3998166a, - (q31_t)0x3981a36d, (q31_t)0x396b2e38, (q31_t)0x3954b6cd, (q31_t)0x393e3d2c, (q31_t)0x3927c155, (q31_t)0x3911434b, - (q31_t)0x38fac30e, (q31_t)0x38e4409e, - (q31_t)0x38cdbbfc, (q31_t)0x38b7352a, (q31_t)0x38a0ac29, (q31_t)0x388a20f8, (q31_t)0x38739399, (q31_t)0x385d040d, - (q31_t)0x38467255, (q31_t)0x382fde72, - (q31_t)0x38194864, (q31_t)0x3802b02c, (q31_t)0x37ec15cb, (q31_t)0x37d57943, (q31_t)0x37beda93, (q31_t)0x37a839be, - (q31_t)0x379196c3, (q31_t)0x377af1a3, - (q31_t)0x37644a60, (q31_t)0x374da0fa, (q31_t)0x3736f573, (q31_t)0x372047ca, (q31_t)0x37099802, (q31_t)0x36f2e61a, - (q31_t)0x36dc3214, (q31_t)0x36c57bf0, - (q31_t)0x36aec3b0, (q31_t)0x36980954, (q31_t)0x36814cde, (q31_t)0x366a8e4d, (q31_t)0x3653cda3, (q31_t)0x363d0ae2, - (q31_t)0x36264609, (q31_t)0x360f7f19, - (q31_t)0x35f8b614, (q31_t)0x35e1eafa, (q31_t)0x35cb1dcc, (q31_t)0x35b44e8c, (q31_t)0x359d7d39, (q31_t)0x3586a9d5, - (q31_t)0x356fd461, (q31_t)0x3558fcde, - (q31_t)0x3542234c, (q31_t)0x352b47ad, (q31_t)0x35146a00, (q31_t)0x34fd8a48, (q31_t)0x34e6a885, (q31_t)0x34cfc4b7, - (q31_t)0x34b8dee1, (q31_t)0x34a1f702, - (q31_t)0x348b0d1c, (q31_t)0x3474212f, (q31_t)0x345d333c, (q31_t)0x34464345, (q31_t)0x342f5149, (q31_t)0x34185d4b, - (q31_t)0x3401674a, (q31_t)0x33ea6f48, - (q31_t)0x33d37546, (q31_t)0x33bc7944, (q31_t)0x33a57b44, (q31_t)0x338e7b46, (q31_t)0x3377794b, (q31_t)0x33607554, - (q31_t)0x33496f62, (q31_t)0x33326776, - (q31_t)0x331b5d91, (q31_t)0x330451b3, (q31_t)0x32ed43de, (q31_t)0x32d63412, (q31_t)0x32bf2250, (q31_t)0x32a80e99, - (q31_t)0x3290f8ef, (q31_t)0x3279e151, - (q31_t)0x3262c7c1, (q31_t)0x324bac40, (q31_t)0x32348ecf, (q31_t)0x321d6f6e, (q31_t)0x32064e1e, (q31_t)0x31ef2ae1, - (q31_t)0x31d805b7, (q31_t)0x31c0dea1, - (q31_t)0x31a9b5a0, (q31_t)0x31928ab4, (q31_t)0x317b5de0, (q31_t)0x31642f23, (q31_t)0x314cfe7f, (q31_t)0x3135cbf4, - (q31_t)0x311e9783, (q31_t)0x3107612e, - (q31_t)0x30f028f4, (q31_t)0x30d8eed8, (q31_t)0x30c1b2da, (q31_t)0x30aa74fa, (q31_t)0x3093353a, (q31_t)0x307bf39b, - (q31_t)0x3064b01d, (q31_t)0x304d6ac1, - (q31_t)0x30362389, (q31_t)0x301eda75, (q31_t)0x30078f86, (q31_t)0x2ff042bd, (q31_t)0x2fd8f41b, (q31_t)0x2fc1a3a0, - (q31_t)0x2faa514f, (q31_t)0x2f92fd26, - (q31_t)0x2f7ba729, (q31_t)0x2f644f56, (q31_t)0x2f4cf5b0, (q31_t)0x2f359a37, (q31_t)0x2f1e3ced, (q31_t)0x2f06ddd1, - (q31_t)0x2eef7ce5, (q31_t)0x2ed81a29, - (q31_t)0x2ec0b5a0, (q31_t)0x2ea94f49, (q31_t)0x2e91e725, (q31_t)0x2e7a7d36, (q31_t)0x2e63117c, (q31_t)0x2e4ba3f8, - (q31_t)0x2e3434ac, (q31_t)0x2e1cc397, - (q31_t)0x2e0550bb, (q31_t)0x2deddc19, (q31_t)0x2dd665b2, (q31_t)0x2dbeed86, (q31_t)0x2da77397, (q31_t)0x2d8ff7e5, - (q31_t)0x2d787a72, (q31_t)0x2d60fb3e, - (q31_t)0x2d497a4a, (q31_t)0x2d31f797, (q31_t)0x2d1a7325, (q31_t)0x2d02ecf7, (q31_t)0x2ceb650d, (q31_t)0x2cd3db67, - (q31_t)0x2cbc5006, (q31_t)0x2ca4c2ed, - (q31_t)0x2c8d341a, (q31_t)0x2c75a390, (q31_t)0x2c5e114f, (q31_t)0x2c467d58, (q31_t)0x2c2ee7ad, (q31_t)0x2c17504d, - (q31_t)0x2bffb73a, (q31_t)0x2be81c74, - (q31_t)0x2bd07ffe, (q31_t)0x2bb8e1d7, (q31_t)0x2ba14200, (q31_t)0x2b89a07b, (q31_t)0x2b71fd48, (q31_t)0x2b5a5868, - (q31_t)0x2b42b1dd, (q31_t)0x2b2b09a6, - (q31_t)0x2b135fc6, (q31_t)0x2afbb43c, (q31_t)0x2ae4070a, (q31_t)0x2acc5831, (q31_t)0x2ab4a7b1, (q31_t)0x2a9cf58c, - (q31_t)0x2a8541c3, (q31_t)0x2a6d8c55, - (q31_t)0x2a55d545, (q31_t)0x2a3e1c93, (q31_t)0x2a266240, (q31_t)0x2a0ea64d, (q31_t)0x29f6e8bb, (q31_t)0x29df298b, - (q31_t)0x29c768be, (q31_t)0x29afa654, - (q31_t)0x2997e24f, (q31_t)0x29801caf, (q31_t)0x29685576, (q31_t)0x29508ca4, (q31_t)0x2938c23a, (q31_t)0x2920f63a, - (q31_t)0x290928a3, (q31_t)0x28f15978, - (q31_t)0x28d988b8, (q31_t)0x28c1b666, (q31_t)0x28a9e281, (q31_t)0x28920d0a, (q31_t)0x287a3604, (q31_t)0x28625d6d, - (q31_t)0x284a8349, (q31_t)0x2832a796, - (q31_t)0x281aca57, (q31_t)0x2802eb8c, (q31_t)0x27eb0b36, (q31_t)0x27d32956, (q31_t)0x27bb45ed, (q31_t)0x27a360fc, - (q31_t)0x278b7a84, (q31_t)0x27739285, - (q31_t)0x275ba901, (q31_t)0x2743bdf9, (q31_t)0x272bd16d, (q31_t)0x2713e35f, (q31_t)0x26fbf3ce, (q31_t)0x26e402bd, - (q31_t)0x26cc102d, (q31_t)0x26b41c1d, - (q31_t)0x269c268f, (q31_t)0x26842f84, (q31_t)0x266c36fe, (q31_t)0x26543cfb, (q31_t)0x263c417f, (q31_t)0x26244489, - (q31_t)0x260c461b, (q31_t)0x25f44635, - (q31_t)0x25dc44d9, (q31_t)0x25c44207, (q31_t)0x25ac3dc0, (q31_t)0x25943806, (q31_t)0x257c30d8, (q31_t)0x25642839, - (q31_t)0x254c1e28, (q31_t)0x253412a8, - (q31_t)0x251c05b8, (q31_t)0x2503f75a, (q31_t)0x24ebe78f, (q31_t)0x24d3d657, (q31_t)0x24bbc3b4, (q31_t)0x24a3afa6, - (q31_t)0x248b9a2f, (q31_t)0x2473834f, - (q31_t)0x245b6b07, (q31_t)0x24435158, (q31_t)0x242b3644, (q31_t)0x241319ca, (q31_t)0x23fafbec, (q31_t)0x23e2dcac, - (q31_t)0x23cabc09, (q31_t)0x23b29a05, - (q31_t)0x239a76a0, (q31_t)0x238251dd, (q31_t)0x236a2bba, (q31_t)0x2352043b, (q31_t)0x2339db5e, (q31_t)0x2321b126, - (q31_t)0x23098593, (q31_t)0x22f158a7, - (q31_t)0x22d92a61, (q31_t)0x22c0fac4, (q31_t)0x22a8c9cf, (q31_t)0x22909785, (q31_t)0x227863e5, (q31_t)0x22602ef1, - (q31_t)0x2247f8aa, (q31_t)0x222fc111, - (q31_t)0x22178826, (q31_t)0x21ff4dea, (q31_t)0x21e71260, (q31_t)0x21ced586, (q31_t)0x21b6975f, (q31_t)0x219e57eb, - (q31_t)0x2186172b, (q31_t)0x216dd521, - (q31_t)0x215591cc, (q31_t)0x213d4d2f, (q31_t)0x21250749, (q31_t)0x210cc01d, (q31_t)0x20f477aa, (q31_t)0x20dc2df2, - (q31_t)0x20c3e2f5, (q31_t)0x20ab96b5, - (q31_t)0x20934933, (q31_t)0x207afa6f, (q31_t)0x2062aa6b, (q31_t)0x204a5927, (q31_t)0x203206a4, (q31_t)0x2019b2e4, - (q31_t)0x20015de7, (q31_t)0x1fe907ae, - (q31_t)0x1fd0b03a, (q31_t)0x1fb8578b, (q31_t)0x1f9ffda4, (q31_t)0x1f87a285, (q31_t)0x1f6f462f, (q31_t)0x1f56e8a2, - (q31_t)0x1f3e89e0, (q31_t)0x1f2629ea, - (q31_t)0x1f0dc8c0, (q31_t)0x1ef56664, (q31_t)0x1edd02d6, (q31_t)0x1ec49e17, (q31_t)0x1eac3829, (q31_t)0x1e93d10c, - (q31_t)0x1e7b68c2, (q31_t)0x1e62ff4a, - (q31_t)0x1e4a94a7, (q31_t)0x1e3228d9, (q31_t)0x1e19bbe0, (q31_t)0x1e014dbf, (q31_t)0x1de8de75, (q31_t)0x1dd06e04, - (q31_t)0x1db7fc6d, (q31_t)0x1d9f89b1, - (q31_t)0x1d8715d0, (q31_t)0x1d6ea0cc, (q31_t)0x1d562aa6, (q31_t)0x1d3db35e, (q31_t)0x1d253af5, (q31_t)0x1d0cc16c, - (q31_t)0x1cf446c5, (q31_t)0x1cdbcb00, - (q31_t)0x1cc34e1f, (q31_t)0x1caad021, (q31_t)0x1c925109, (q31_t)0x1c79d0d6, (q31_t)0x1c614f8b, (q31_t)0x1c48cd27, - (q31_t)0x1c3049ac, (q31_t)0x1c17c51b, - (q31_t)0x1bff3f75, (q31_t)0x1be6b8ba, (q31_t)0x1bce30ec, (q31_t)0x1bb5a80c, (q31_t)0x1b9d1e1a, (q31_t)0x1b849317, - (q31_t)0x1b6c0705, (q31_t)0x1b5379e5, - (q31_t)0x1b3aebb6, (q31_t)0x1b225c7b, (q31_t)0x1b09cc34, (q31_t)0x1af13ae3, (q31_t)0x1ad8a887, (q31_t)0x1ac01522, - (q31_t)0x1aa780b6, (q31_t)0x1a8eeb42, - (q31_t)0x1a7654c8, (q31_t)0x1a5dbd49, (q31_t)0x1a4524c6, (q31_t)0x1a2c8b3f, (q31_t)0x1a13f0b6, (q31_t)0x19fb552c, - (q31_t)0x19e2b8a2, (q31_t)0x19ca1b17, - (q31_t)0x19b17c8f, (q31_t)0x1998dd09, (q31_t)0x19803c86, (q31_t)0x19679b07, (q31_t)0x194ef88e, (q31_t)0x1936551b, - (q31_t)0x191db0af, (q31_t)0x19050b4b, - (q31_t)0x18ec64f0, (q31_t)0x18d3bda0, (q31_t)0x18bb155a, (q31_t)0x18a26c20, (q31_t)0x1889c1f3, (q31_t)0x187116d4, - (q31_t)0x18586ac3, (q31_t)0x183fbdc3, - (q31_t)0x18270fd3, (q31_t)0x180e60f4, (q31_t)0x17f5b129, (q31_t)0x17dd0070, (q31_t)0x17c44ecd, (q31_t)0x17ab9c3e, - (q31_t)0x1792e8c6, (q31_t)0x177a3466, - (q31_t)0x17617f1d, (q31_t)0x1748c8ee, (q31_t)0x173011d9, (q31_t)0x171759df, (q31_t)0x16fea102, (q31_t)0x16e5e741, - (q31_t)0x16cd2c9f, (q31_t)0x16b4711b, - (q31_t)0x169bb4b7, (q31_t)0x1682f774, (q31_t)0x166a3953, (q31_t)0x16517a55, (q31_t)0x1638ba7a, (q31_t)0x161ff9c4, - (q31_t)0x16073834, (q31_t)0x15ee75cb, - (q31_t)0x15d5b288, (q31_t)0x15bcee6f, (q31_t)0x15a4297f, (q31_t)0x158b63b9, (q31_t)0x15729d1f, (q31_t)0x1559d5b1, - (q31_t)0x15410d70, (q31_t)0x1528445d, - (q31_t)0x150f7a7a, (q31_t)0x14f6afc7, (q31_t)0x14dde445, (q31_t)0x14c517f4, (q31_t)0x14ac4ad7, (q31_t)0x14937cee, - (q31_t)0x147aae3a, (q31_t)0x1461debc, - (q31_t)0x14490e74, (q31_t)0x14303d65, (q31_t)0x14176b8e, (q31_t)0x13fe98f1, (q31_t)0x13e5c58e, (q31_t)0x13ccf167, - (q31_t)0x13b41c7d, (q31_t)0x139b46d0, - (q31_t)0x13827062, (q31_t)0x13699933, (q31_t)0x1350c144, (q31_t)0x1337e897, (q31_t)0x131f0f2c, (q31_t)0x13063505, - (q31_t)0x12ed5a21, (q31_t)0x12d47e83, - (q31_t)0x12bba22b, (q31_t)0x12a2c51b, (q31_t)0x1289e752, (q31_t)0x127108d2, (q31_t)0x1258299c, (q31_t)0x123f49b2, - (q31_t)0x12266913, (q31_t)0x120d87c1, - (q31_t)0x11f4a5bd, (q31_t)0x11dbc307, (q31_t)0x11c2dfa2, (q31_t)0x11a9fb8d, (q31_t)0x119116c9, (q31_t)0x11783159, - (q31_t)0x115f4b3c, (q31_t)0x11466473, - (q31_t)0x112d7d00, (q31_t)0x111494e4, (q31_t)0x10fbac1e, (q31_t)0x10e2c2b2, (q31_t)0x10c9d89e, (q31_t)0x10b0ede5, - (q31_t)0x10980287, (q31_t)0x107f1686, - (q31_t)0x106629e1, (q31_t)0x104d3c9b, (q31_t)0x10344eb4, (q31_t)0x101b602d, (q31_t)0x10027107, (q31_t)0xfe98143, - (q31_t)0xfd090e1, (q31_t)0xfb79fe4, - (q31_t)0xf9eae4c, (q31_t)0xf85bc19, (q31_t)0xf6cc94e, (q31_t)0xf53d5ea, (q31_t)0xf3ae1ee, (q31_t)0xf21ed5d, (q31_t)0xf08f836, - (q31_t)0xef0027b, - (q31_t)0xed70c2c, (q31_t)0xebe154b, (q31_t)0xea51dd8, (q31_t)0xe8c25d5, (q31_t)0xe732d42, (q31_t)0xe5a3421, (q31_t)0xe413a72, - (q31_t)0xe284036, - (q31_t)0xe0f456f, (q31_t)0xdf64a1c, (q31_t)0xddd4e40, (q31_t)0xdc451dc, (q31_t)0xdab54ef, (q31_t)0xd92577b, (q31_t)0xd795982, - (q31_t)0xd605b03, - (q31_t)0xd475c00, (q31_t)0xd2e5c7b, (q31_t)0xd155c73, (q31_t)0xcfc5bea, (q31_t)0xce35ae1, (q31_t)0xcca5959, (q31_t)0xcb15752, - (q31_t)0xc9854cf, - (q31_t)0xc7f51cf, (q31_t)0xc664e53, (q31_t)0xc4d4a5d, (q31_t)0xc3445ee, (q31_t)0xc1b4107, (q31_t)0xc023ba7, (q31_t)0xbe935d2, - (q31_t)0xbd02f87, - (q31_t)0xbb728c7, (q31_t)0xb9e2193, (q31_t)0xb8519ed, (q31_t)0xb6c11d5, (q31_t)0xb53094d, (q31_t)0xb3a0055, (q31_t)0xb20f6ee, - (q31_t)0xb07ed19, - (q31_t)0xaeee2d7, (q31_t)0xad5d829, (q31_t)0xabccd11, (q31_t)0xaa3c18e, (q31_t)0xa8ab5a2, (q31_t)0xa71a94f, (q31_t)0xa589c94, - (q31_t)0xa3f8f73, - (q31_t)0xa2681ed, (q31_t)0xa0d7403, (q31_t)0x9f465b5, (q31_t)0x9db5706, (q31_t)0x9c247f5, (q31_t)0x9a93884, (q31_t)0x99028b3, - (q31_t)0x9771884, - (q31_t)0x95e07f8, (q31_t)0x944f70f, (q31_t)0x92be5ca, (q31_t)0x912d42c, (q31_t)0x8f9c233, (q31_t)0x8e0afe2, (q31_t)0x8c79d3a, - (q31_t)0x8ae8a3a, - (q31_t)0x89576e5, (q31_t)0x87c633c, (q31_t)0x8634f3e, (q31_t)0x84a3aee, (q31_t)0x831264c, (q31_t)0x8181159, (q31_t)0x7fefc16, - (q31_t)0x7e5e685, - (q31_t)0x7ccd0a5, (q31_t)0x7b3ba78, (q31_t)0x79aa400, (q31_t)0x7818d3c, (q31_t)0x768762e, (q31_t)0x74f5ed7, (q31_t)0x7364738, - (q31_t)0x71d2f52, - (q31_t)0x7041726, (q31_t)0x6eafeb4, (q31_t)0x6d1e5fe, (q31_t)0x6b8cd05, (q31_t)0x69fb3c9, (q31_t)0x6869a4c, (q31_t)0x66d808f, - (q31_t)0x6546692, - (q31_t)0x63b4c57, (q31_t)0x62231de, (q31_t)0x6091729, (q31_t)0x5effc38, (q31_t)0x5d6e10c, (q31_t)0x5bdc5a7, (q31_t)0x5a4aa09, - (q31_t)0x58b8e34, - (q31_t)0x5727228, (q31_t)0x55955e6, (q31_t)0x540396f, (q31_t)0x5271cc4, (q31_t)0x50dffe7, (q31_t)0x4f4e2d8, (q31_t)0x4dbc597, - (q31_t)0x4c2a827, - (q31_t)0x4a98a88, (q31_t)0x4906cbb, (q31_t)0x4774ec1, (q31_t)0x45e309a, (q31_t)0x4451249, (q31_t)0x42bf3cd, (q31_t)0x412d528, - (q31_t)0x3f9b65b, - (q31_t)0x3e09767, (q31_t)0x3c7784d, (q31_t)0x3ae590d, (q31_t)0x39539a9, (q31_t)0x37c1a22, (q31_t)0x362fa78, (q31_t)0x349daac, - (q31_t)0x330bac1, - (q31_t)0x3179ab5, (q31_t)0x2fe7a8c, (q31_t)0x2e55a44, (q31_t)0x2cc39e1, (q31_t)0x2b31961, (q31_t)0x299f8c7, (q31_t)0x280d813, - (q31_t)0x267b747, - (q31_t)0x24e9662, (q31_t)0x2357567, (q31_t)0x21c5457, (q31_t)0x2033331, (q31_t)0x1ea11f7, (q31_t)0x1d0f0ab, (q31_t)0x1b7cf4d, - (q31_t)0x19eaddd, - (q31_t)0x1858c5e, (q31_t)0x16c6ad0, (q31_t)0x1534934, (q31_t)0x13a278a, (q31_t)0x12105d5, (q31_t)0x107e414, (q31_t)0xeec249, - (q31_t)0xd5a075, - (q31_t)0xbc7e99, (q31_t)0xa35cb5, (q31_t)0x8a3acb, (q31_t)0x7118dc, (q31_t)0x57f6e9, (q31_t)0x3ed4f2, (q31_t)0x25b2f8, - (q31_t)0xc90fe -}; - -static const q31_t cos_factorsQ31_8192[8192] = { - (q31_t)0x7ffffff6, (q31_t)0x7fffffa7, (q31_t)0x7fffff09, (q31_t)0x7ffffe1c, (q31_t)0x7ffffce1, (q31_t)0x7ffffb56, - (q31_t)0x7ffff97c, (q31_t)0x7ffff753, - (q31_t)0x7ffff4dc, (q31_t)0x7ffff215, (q31_t)0x7fffef00, (q31_t)0x7fffeb9b, (q31_t)0x7fffe7e8, (q31_t)0x7fffe3e5, - (q31_t)0x7fffdf94, (q31_t)0x7fffdaf3, - (q31_t)0x7fffd604, (q31_t)0x7fffd0c6, (q31_t)0x7fffcb39, (q31_t)0x7fffc55c, (q31_t)0x7fffbf31, (q31_t)0x7fffb8b7, - (q31_t)0x7fffb1ee, (q31_t)0x7fffaad6, - (q31_t)0x7fffa36f, (q31_t)0x7fff9bb9, (q31_t)0x7fff93b4, (q31_t)0x7fff8b61, (q31_t)0x7fff82be, (q31_t)0x7fff79cc, - (q31_t)0x7fff708b, (q31_t)0x7fff66fc, - (q31_t)0x7fff5d1d, (q31_t)0x7fff52ef, (q31_t)0x7fff4873, (q31_t)0x7fff3da8, (q31_t)0x7fff328d, (q31_t)0x7fff2724, - (q31_t)0x7fff1b6b, (q31_t)0x7fff0f64, - (q31_t)0x7fff030e, (q31_t)0x7ffef669, (q31_t)0x7ffee975, (q31_t)0x7ffedc31, (q31_t)0x7ffece9f, (q31_t)0x7ffec0be, - (q31_t)0x7ffeb28e, (q31_t)0x7ffea40f, - (q31_t)0x7ffe9542, (q31_t)0x7ffe8625, (q31_t)0x7ffe76b9, (q31_t)0x7ffe66fe, (q31_t)0x7ffe56f5, (q31_t)0x7ffe469c, - (q31_t)0x7ffe35f4, (q31_t)0x7ffe24fe, - (q31_t)0x7ffe13b8, (q31_t)0x7ffe0224, (q31_t)0x7ffdf040, (q31_t)0x7ffdde0e, (q31_t)0x7ffdcb8d, (q31_t)0x7ffdb8bc, - (q31_t)0x7ffda59d, (q31_t)0x7ffd922f, - (q31_t)0x7ffd7e72, (q31_t)0x7ffd6a66, (q31_t)0x7ffd560b, (q31_t)0x7ffd4161, (q31_t)0x7ffd2c68, (q31_t)0x7ffd1720, - (q31_t)0x7ffd0189, (q31_t)0x7ffceba4, - (q31_t)0x7ffcd56f, (q31_t)0x7ffcbeeb, (q31_t)0x7ffca819, (q31_t)0x7ffc90f7, (q31_t)0x7ffc7987, (q31_t)0x7ffc61c7, - (q31_t)0x7ffc49b9, (q31_t)0x7ffc315b, - (q31_t)0x7ffc18af, (q31_t)0x7ffbffb4, (q31_t)0x7ffbe66a, (q31_t)0x7ffbccd0, (q31_t)0x7ffbb2e8, (q31_t)0x7ffb98b1, - (q31_t)0x7ffb7e2b, (q31_t)0x7ffb6356, - (q31_t)0x7ffb4833, (q31_t)0x7ffb2cc0, (q31_t)0x7ffb10fe, (q31_t)0x7ffaf4ed, (q31_t)0x7ffad88e, (q31_t)0x7ffabbdf, - (q31_t)0x7ffa9ee2, (q31_t)0x7ffa8195, - (q31_t)0x7ffa63fa, (q31_t)0x7ffa460f, (q31_t)0x7ffa27d6, (q31_t)0x7ffa094e, (q31_t)0x7ff9ea76, (q31_t)0x7ff9cb50, - (q31_t)0x7ff9abdb, (q31_t)0x7ff98c17, - (q31_t)0x7ff96c04, (q31_t)0x7ff94ba2, (q31_t)0x7ff92af1, (q31_t)0x7ff909f2, (q31_t)0x7ff8e8a3, (q31_t)0x7ff8c705, - (q31_t)0x7ff8a519, (q31_t)0x7ff882dd, - (q31_t)0x7ff86053, (q31_t)0x7ff83d79, (q31_t)0x7ff81a51, (q31_t)0x7ff7f6da, (q31_t)0x7ff7d313, (q31_t)0x7ff7aefe, - (q31_t)0x7ff78a9a, (q31_t)0x7ff765e7, - (q31_t)0x7ff740e5, (q31_t)0x7ff71b94, (q31_t)0x7ff6f5f4, (q31_t)0x7ff6d005, (q31_t)0x7ff6a9c8, (q31_t)0x7ff6833b, - (q31_t)0x7ff65c5f, (q31_t)0x7ff63535, - (q31_t)0x7ff60dbb, (q31_t)0x7ff5e5f3, (q31_t)0x7ff5bddc, (q31_t)0x7ff59576, (q31_t)0x7ff56cc0, (q31_t)0x7ff543bc, - (q31_t)0x7ff51a69, (q31_t)0x7ff4f0c7, - (q31_t)0x7ff4c6d6, (q31_t)0x7ff49c96, (q31_t)0x7ff47208, (q31_t)0x7ff4472a, (q31_t)0x7ff41bfd, (q31_t)0x7ff3f082, - (q31_t)0x7ff3c4b7, (q31_t)0x7ff3989e, - (q31_t)0x7ff36c36, (q31_t)0x7ff33f7e, (q31_t)0x7ff31278, (q31_t)0x7ff2e523, (q31_t)0x7ff2b77f, (q31_t)0x7ff2898c, - (q31_t)0x7ff25b4a, (q31_t)0x7ff22cb9, - (q31_t)0x7ff1fdd9, (q31_t)0x7ff1ceab, (q31_t)0x7ff19f2d, (q31_t)0x7ff16f61, (q31_t)0x7ff13f45, (q31_t)0x7ff10edb, - (q31_t)0x7ff0de22, (q31_t)0x7ff0ad19, - (q31_t)0x7ff07bc2, (q31_t)0x7ff04a1c, (q31_t)0x7ff01827, (q31_t)0x7fefe5e4, (q31_t)0x7fefb351, (q31_t)0x7fef806f, - (q31_t)0x7fef4d3e, (q31_t)0x7fef19bf, - (q31_t)0x7feee5f0, (q31_t)0x7feeb1d3, (q31_t)0x7fee7d67, (q31_t)0x7fee48ac, (q31_t)0x7fee13a1, (q31_t)0x7fedde48, - (q31_t)0x7feda8a0, (q31_t)0x7fed72aa, - (q31_t)0x7fed3c64, (q31_t)0x7fed05cf, (q31_t)0x7fecceec, (q31_t)0x7fec97b9, (q31_t)0x7fec6038, (q31_t)0x7fec2867, - (q31_t)0x7febf048, (q31_t)0x7febb7da, - (q31_t)0x7feb7f1d, (q31_t)0x7feb4611, (q31_t)0x7feb0cb6, (q31_t)0x7fead30c, (q31_t)0x7fea9914, (q31_t)0x7fea5ecc, - (q31_t)0x7fea2436, (q31_t)0x7fe9e950, - (q31_t)0x7fe9ae1c, (q31_t)0x7fe97299, (q31_t)0x7fe936c7, (q31_t)0x7fe8faa6, (q31_t)0x7fe8be36, (q31_t)0x7fe88177, - (q31_t)0x7fe84469, (q31_t)0x7fe8070d, - (q31_t)0x7fe7c961, (q31_t)0x7fe78b67, (q31_t)0x7fe74d1e, (q31_t)0x7fe70e85, (q31_t)0x7fe6cf9e, (q31_t)0x7fe69068, - (q31_t)0x7fe650e3, (q31_t)0x7fe61110, - (q31_t)0x7fe5d0ed, (q31_t)0x7fe5907b, (q31_t)0x7fe54fbb, (q31_t)0x7fe50eac, (q31_t)0x7fe4cd4d, (q31_t)0x7fe48ba0, - (q31_t)0x7fe449a4, (q31_t)0x7fe40759, - (q31_t)0x7fe3c4bf, (q31_t)0x7fe381d7, (q31_t)0x7fe33e9f, (q31_t)0x7fe2fb19, (q31_t)0x7fe2b743, (q31_t)0x7fe2731f, - (q31_t)0x7fe22eac, (q31_t)0x7fe1e9ea, - (q31_t)0x7fe1a4d9, (q31_t)0x7fe15f79, (q31_t)0x7fe119cb, (q31_t)0x7fe0d3cd, (q31_t)0x7fe08d81, (q31_t)0x7fe046e5, - (q31_t)0x7fdffffb, (q31_t)0x7fdfb8c2, - (q31_t)0x7fdf713a, (q31_t)0x7fdf2963, (q31_t)0x7fdee13e, (q31_t)0x7fde98c9, (q31_t)0x7fde5006, (q31_t)0x7fde06f3, - (q31_t)0x7fddbd92, (q31_t)0x7fdd73e2, - (q31_t)0x7fdd29e3, (q31_t)0x7fdcdf95, (q31_t)0x7fdc94f9, (q31_t)0x7fdc4a0d, (q31_t)0x7fdbfed3, (q31_t)0x7fdbb349, - (q31_t)0x7fdb6771, (q31_t)0x7fdb1b4a, - (q31_t)0x7fdaced4, (q31_t)0x7fda820f, (q31_t)0x7fda34fc, (q31_t)0x7fd9e799, (q31_t)0x7fd999e8, (q31_t)0x7fd94be8, - (q31_t)0x7fd8fd98, (q31_t)0x7fd8aefa, - (q31_t)0x7fd8600e, (q31_t)0x7fd810d2, (q31_t)0x7fd7c147, (q31_t)0x7fd7716e, (q31_t)0x7fd72146, (q31_t)0x7fd6d0cf, - (q31_t)0x7fd68009, (q31_t)0x7fd62ef4, - (q31_t)0x7fd5dd90, (q31_t)0x7fd58bdd, (q31_t)0x7fd539dc, (q31_t)0x7fd4e78c, (q31_t)0x7fd494ed, (q31_t)0x7fd441ff, - (q31_t)0x7fd3eec2, (q31_t)0x7fd39b36, - (q31_t)0x7fd3475c, (q31_t)0x7fd2f332, (q31_t)0x7fd29eba, (q31_t)0x7fd249f3, (q31_t)0x7fd1f4dd, (q31_t)0x7fd19f78, - (q31_t)0x7fd149c5, (q31_t)0x7fd0f3c2, - (q31_t)0x7fd09d71, (q31_t)0x7fd046d1, (q31_t)0x7fcfefe2, (q31_t)0x7fcf98a4, (q31_t)0x7fcf4117, (q31_t)0x7fcee93c, - (q31_t)0x7fce9112, (q31_t)0x7fce3898, - (q31_t)0x7fcddfd0, (q31_t)0x7fcd86b9, (q31_t)0x7fcd2d54, (q31_t)0x7fccd39f, (q31_t)0x7fcc799c, (q31_t)0x7fcc1f4a, - (q31_t)0x7fcbc4a9, (q31_t)0x7fcb69b9, - (q31_t)0x7fcb0e7a, (q31_t)0x7fcab2ed, (q31_t)0x7fca5710, (q31_t)0x7fc9fae5, (q31_t)0x7fc99e6b, (q31_t)0x7fc941a2, - (q31_t)0x7fc8e48b, (q31_t)0x7fc88724, - (q31_t)0x7fc8296f, (q31_t)0x7fc7cb6b, (q31_t)0x7fc76d18, (q31_t)0x7fc70e76, (q31_t)0x7fc6af86, (q31_t)0x7fc65046, - (q31_t)0x7fc5f0b8, (q31_t)0x7fc590db, - (q31_t)0x7fc530af, (q31_t)0x7fc4d035, (q31_t)0x7fc46f6b, (q31_t)0x7fc40e53, (q31_t)0x7fc3acec, (q31_t)0x7fc34b36, - (q31_t)0x7fc2e931, (q31_t)0x7fc286de, - (q31_t)0x7fc2243b, (q31_t)0x7fc1c14a, (q31_t)0x7fc15e0a, (q31_t)0x7fc0fa7b, (q31_t)0x7fc0969e, (q31_t)0x7fc03271, - (q31_t)0x7fbfcdf6, (q31_t)0x7fbf692c, - (q31_t)0x7fbf0414, (q31_t)0x7fbe9eac, (q31_t)0x7fbe38f6, (q31_t)0x7fbdd2f0, (q31_t)0x7fbd6c9c, (q31_t)0x7fbd05fa, - (q31_t)0x7fbc9f08, (q31_t)0x7fbc37c8, - (q31_t)0x7fbbd039, (q31_t)0x7fbb685b, (q31_t)0x7fbb002e, (q31_t)0x7fba97b2, (q31_t)0x7fba2ee8, (q31_t)0x7fb9c5cf, - (q31_t)0x7fb95c67, (q31_t)0x7fb8f2b0, - (q31_t)0x7fb888ab, (q31_t)0x7fb81e57, (q31_t)0x7fb7b3b4, (q31_t)0x7fb748c2, (q31_t)0x7fb6dd81, (q31_t)0x7fb671f2, - (q31_t)0x7fb60614, (q31_t)0x7fb599e7, - (q31_t)0x7fb52d6b, (q31_t)0x7fb4c0a1, (q31_t)0x7fb45387, (q31_t)0x7fb3e61f, (q31_t)0x7fb37869, (q31_t)0x7fb30a63, - (q31_t)0x7fb29c0f, (q31_t)0x7fb22d6c, - (q31_t)0x7fb1be7a, (q31_t)0x7fb14f39, (q31_t)0x7fb0dfaa, (q31_t)0x7fb06fcb, (q31_t)0x7fafff9e, (q31_t)0x7faf8f23, - (q31_t)0x7faf1e58, (q31_t)0x7faead3f, - (q31_t)0x7fae3bd7, (q31_t)0x7fadca20, (q31_t)0x7fad581b, (q31_t)0x7face5c6, (q31_t)0x7fac7323, (q31_t)0x7fac0031, - (q31_t)0x7fab8cf1, (q31_t)0x7fab1962, - (q31_t)0x7faaa584, (q31_t)0x7faa3157, (q31_t)0x7fa9bcdb, (q31_t)0x7fa94811, (q31_t)0x7fa8d2f8, (q31_t)0x7fa85d90, - (q31_t)0x7fa7e7d9, (q31_t)0x7fa771d4, - (q31_t)0x7fa6fb80, (q31_t)0x7fa684dd, (q31_t)0x7fa60dec, (q31_t)0x7fa596ac, (q31_t)0x7fa51f1d, (q31_t)0x7fa4a73f, - (q31_t)0x7fa42f12, (q31_t)0x7fa3b697, - (q31_t)0x7fa33dcd, (q31_t)0x7fa2c4b5, (q31_t)0x7fa24b4d, (q31_t)0x7fa1d197, (q31_t)0x7fa15792, (q31_t)0x7fa0dd3f, - (q31_t)0x7fa0629c, (q31_t)0x7f9fe7ab, - (q31_t)0x7f9f6c6b, (q31_t)0x7f9ef0dd, (q31_t)0x7f9e7500, (q31_t)0x7f9df8d4, (q31_t)0x7f9d7c59, (q31_t)0x7f9cff90, - (q31_t)0x7f9c8278, (q31_t)0x7f9c0511, - (q31_t)0x7f9b875b, (q31_t)0x7f9b0957, (q31_t)0x7f9a8b04, (q31_t)0x7f9a0c62, (q31_t)0x7f998d72, (q31_t)0x7f990e33, - (q31_t)0x7f988ea5, (q31_t)0x7f980ec8, - (q31_t)0x7f978e9d, (q31_t)0x7f970e23, (q31_t)0x7f968d5b, (q31_t)0x7f960c43, (q31_t)0x7f958add, (q31_t)0x7f950929, - (q31_t)0x7f948725, (q31_t)0x7f9404d3, - (q31_t)0x7f938232, (q31_t)0x7f92ff43, (q31_t)0x7f927c04, (q31_t)0x7f91f878, (q31_t)0x7f91749c, (q31_t)0x7f90f072, - (q31_t)0x7f906bf9, (q31_t)0x7f8fe731, - (q31_t)0x7f8f621b, (q31_t)0x7f8edcb6, (q31_t)0x7f8e5702, (q31_t)0x7f8dd0ff, (q31_t)0x7f8d4aae, (q31_t)0x7f8cc40f, - (q31_t)0x7f8c3d20, (q31_t)0x7f8bb5e3, - (q31_t)0x7f8b2e57, (q31_t)0x7f8aa67d, (q31_t)0x7f8a1e54, (q31_t)0x7f8995dc, (q31_t)0x7f890d15, (q31_t)0x7f888400, - (q31_t)0x7f87fa9c, (q31_t)0x7f8770ea, - (q31_t)0x7f86e6e9, (q31_t)0x7f865c99, (q31_t)0x7f85d1fa, (q31_t)0x7f85470d, (q31_t)0x7f84bbd1, (q31_t)0x7f843047, - (q31_t)0x7f83a46e, (q31_t)0x7f831846, - (q31_t)0x7f828bcf, (q31_t)0x7f81ff0a, (q31_t)0x7f8171f6, (q31_t)0x7f80e494, (q31_t)0x7f8056e3, (q31_t)0x7f7fc8e3, - (q31_t)0x7f7f3a95, (q31_t)0x7f7eabf8, - (q31_t)0x7f7e1d0c, (q31_t)0x7f7d8dd2, (q31_t)0x7f7cfe49, (q31_t)0x7f7c6e71, (q31_t)0x7f7bde4b, (q31_t)0x7f7b4dd6, - (q31_t)0x7f7abd13, (q31_t)0x7f7a2c01, - (q31_t)0x7f799aa0, (q31_t)0x7f7908f0, (q31_t)0x7f7876f2, (q31_t)0x7f77e4a6, (q31_t)0x7f77520a, (q31_t)0x7f76bf21, - (q31_t)0x7f762be8, (q31_t)0x7f759861, - (q31_t)0x7f75048b, (q31_t)0x7f747067, (q31_t)0x7f73dbf4, (q31_t)0x7f734732, (q31_t)0x7f72b222, (q31_t)0x7f721cc3, - (q31_t)0x7f718715, (q31_t)0x7f70f119, - (q31_t)0x7f705ace, (q31_t)0x7f6fc435, (q31_t)0x7f6f2d4d, (q31_t)0x7f6e9617, (q31_t)0x7f6dfe91, (q31_t)0x7f6d66be, - (q31_t)0x7f6cce9b, (q31_t)0x7f6c362a, - (q31_t)0x7f6b9d6b, (q31_t)0x7f6b045d, (q31_t)0x7f6a6b00, (q31_t)0x7f69d154, (q31_t)0x7f69375a, (q31_t)0x7f689d12, - (q31_t)0x7f68027b, (q31_t)0x7f676795, - (q31_t)0x7f66cc61, (q31_t)0x7f6630de, (q31_t)0x7f65950c, (q31_t)0x7f64f8ec, (q31_t)0x7f645c7d, (q31_t)0x7f63bfc0, - (q31_t)0x7f6322b4, (q31_t)0x7f62855a, - (q31_t)0x7f61e7b1, (q31_t)0x7f6149b9, (q31_t)0x7f60ab73, (q31_t)0x7f600cdf, (q31_t)0x7f5f6dfb, (q31_t)0x7f5ecec9, - (q31_t)0x7f5e2f49, (q31_t)0x7f5d8f7a, - (q31_t)0x7f5cef5c, (q31_t)0x7f5c4ef0, (q31_t)0x7f5bae36, (q31_t)0x7f5b0d2c, (q31_t)0x7f5a6bd5, (q31_t)0x7f59ca2e, - (q31_t)0x7f592839, (q31_t)0x7f5885f6, - (q31_t)0x7f57e364, (q31_t)0x7f574083, (q31_t)0x7f569d54, (q31_t)0x7f55f9d6, (q31_t)0x7f55560a, (q31_t)0x7f54b1ef, - (q31_t)0x7f540d86, (q31_t)0x7f5368ce, - (q31_t)0x7f52c3c8, (q31_t)0x7f521e73, (q31_t)0x7f5178cf, (q31_t)0x7f50d2dd, (q31_t)0x7f502c9d, (q31_t)0x7f4f860e, - (q31_t)0x7f4edf30, (q31_t)0x7f4e3804, - (q31_t)0x7f4d9089, (q31_t)0x7f4ce8c0, (q31_t)0x7f4c40a8, (q31_t)0x7f4b9842, (q31_t)0x7f4aef8d, (q31_t)0x7f4a468a, - (q31_t)0x7f499d38, (q31_t)0x7f48f398, - (q31_t)0x7f4849a9, (q31_t)0x7f479f6c, (q31_t)0x7f46f4e0, (q31_t)0x7f464a06, (q31_t)0x7f459edd, (q31_t)0x7f44f365, - (q31_t)0x7f44479f, (q31_t)0x7f439b8b, - (q31_t)0x7f42ef28, (q31_t)0x7f424277, (q31_t)0x7f419577, (q31_t)0x7f40e828, (q31_t)0x7f403a8b, (q31_t)0x7f3f8ca0, - (q31_t)0x7f3ede66, (q31_t)0x7f3e2fde, - (q31_t)0x7f3d8107, (q31_t)0x7f3cd1e2, (q31_t)0x7f3c226e, (q31_t)0x7f3b72ab, (q31_t)0x7f3ac29b, (q31_t)0x7f3a123b, - (q31_t)0x7f39618e, (q31_t)0x7f38b091, - (q31_t)0x7f37ff47, (q31_t)0x7f374dad, (q31_t)0x7f369bc6, (q31_t)0x7f35e990, (q31_t)0x7f35370b, (q31_t)0x7f348438, - (q31_t)0x7f33d116, (q31_t)0x7f331da6, - (q31_t)0x7f3269e8, (q31_t)0x7f31b5db, (q31_t)0x7f31017f, (q31_t)0x7f304cd6, (q31_t)0x7f2f97dd, (q31_t)0x7f2ee296, - (q31_t)0x7f2e2d01, (q31_t)0x7f2d771e, - (q31_t)0x7f2cc0eb, (q31_t)0x7f2c0a6b, (q31_t)0x7f2b539c, (q31_t)0x7f2a9c7e, (q31_t)0x7f29e512, (q31_t)0x7f292d58, - (q31_t)0x7f28754f, (q31_t)0x7f27bcf8, - (q31_t)0x7f270452, (q31_t)0x7f264b5e, (q31_t)0x7f25921c, (q31_t)0x7f24d88b, (q31_t)0x7f241eab, (q31_t)0x7f23647e, - (q31_t)0x7f22aa01, (q31_t)0x7f21ef37, - (q31_t)0x7f21341e, (q31_t)0x7f2078b6, (q31_t)0x7f1fbd00, (q31_t)0x7f1f00fc, (q31_t)0x7f1e44a9, (q31_t)0x7f1d8808, - (q31_t)0x7f1ccb18, (q31_t)0x7f1c0dda, - (q31_t)0x7f1b504e, (q31_t)0x7f1a9273, (q31_t)0x7f19d44a, (q31_t)0x7f1915d2, (q31_t)0x7f18570c, (q31_t)0x7f1797f8, - (q31_t)0x7f16d895, (q31_t)0x7f1618e4, - (q31_t)0x7f1558e4, (q31_t)0x7f149896, (q31_t)0x7f13d7fa, (q31_t)0x7f13170f, (q31_t)0x7f1255d6, (q31_t)0x7f11944f, - (q31_t)0x7f10d279, (q31_t)0x7f101054, - (q31_t)0x7f0f4de2, (q31_t)0x7f0e8b21, (q31_t)0x7f0dc811, (q31_t)0x7f0d04b3, (q31_t)0x7f0c4107, (q31_t)0x7f0b7d0d, - (q31_t)0x7f0ab8c4, (q31_t)0x7f09f42d, - (q31_t)0x7f092f47, (q31_t)0x7f086a13, (q31_t)0x7f07a491, (q31_t)0x7f06dec0, (q31_t)0x7f0618a1, (q31_t)0x7f055233, - (q31_t)0x7f048b78, (q31_t)0x7f03c46d, - (q31_t)0x7f02fd15, (q31_t)0x7f02356e, (q31_t)0x7f016d79, (q31_t)0x7f00a535, (q31_t)0x7effdca4, (q31_t)0x7eff13c3, - (q31_t)0x7efe4a95, (q31_t)0x7efd8118, - (q31_t)0x7efcb74d, (q31_t)0x7efbed33, (q31_t)0x7efb22cb, (q31_t)0x7efa5815, (q31_t)0x7ef98d11, (q31_t)0x7ef8c1be, - (q31_t)0x7ef7f61d, (q31_t)0x7ef72a2d, - (q31_t)0x7ef65def, (q31_t)0x7ef59163, (q31_t)0x7ef4c489, (q31_t)0x7ef3f760, (q31_t)0x7ef329e9, (q31_t)0x7ef25c24, - (q31_t)0x7ef18e10, (q31_t)0x7ef0bfae, - (q31_t)0x7eeff0fe, (q31_t)0x7eef21ff, (q31_t)0x7eee52b2, (q31_t)0x7eed8317, (q31_t)0x7eecb32d, (q31_t)0x7eebe2f6, - (q31_t)0x7eeb1270, (q31_t)0x7eea419b, - (q31_t)0x7ee97079, (q31_t)0x7ee89f08, (q31_t)0x7ee7cd49, (q31_t)0x7ee6fb3b, (q31_t)0x7ee628df, (q31_t)0x7ee55635, - (q31_t)0x7ee4833d, (q31_t)0x7ee3aff6, - (q31_t)0x7ee2dc61, (q31_t)0x7ee2087e, (q31_t)0x7ee1344d, (q31_t)0x7ee05fcd, (q31_t)0x7edf8aff, (q31_t)0x7edeb5e3, - (q31_t)0x7edde079, (q31_t)0x7edd0ac0, - (q31_t)0x7edc34b9, (q31_t)0x7edb5e64, (q31_t)0x7eda87c0, (q31_t)0x7ed9b0ce, (q31_t)0x7ed8d98e, (q31_t)0x7ed80200, - (q31_t)0x7ed72a24, (q31_t)0x7ed651f9, - (q31_t)0x7ed57980, (q31_t)0x7ed4a0b9, (q31_t)0x7ed3c7a3, (q31_t)0x7ed2ee40, (q31_t)0x7ed2148e, (q31_t)0x7ed13a8e, - (q31_t)0x7ed0603f, (q31_t)0x7ecf85a3, - (q31_t)0x7eceaab8, (q31_t)0x7ecdcf7f, (q31_t)0x7eccf3f8, (q31_t)0x7ecc1822, (q31_t)0x7ecb3bff, (q31_t)0x7eca5f8d, - (q31_t)0x7ec982cd, (q31_t)0x7ec8a5bf, - (q31_t)0x7ec7c862, (q31_t)0x7ec6eab7, (q31_t)0x7ec60cbe, (q31_t)0x7ec52e77, (q31_t)0x7ec44fe2, (q31_t)0x7ec370fe, - (q31_t)0x7ec291cd, (q31_t)0x7ec1b24d, - (q31_t)0x7ec0d27f, (q31_t)0x7ebff263, (q31_t)0x7ebf11f8, (q31_t)0x7ebe313f, (q31_t)0x7ebd5039, (q31_t)0x7ebc6ee4, - (q31_t)0x7ebb8d40, (q31_t)0x7ebaab4f, - (q31_t)0x7eb9c910, (q31_t)0x7eb8e682, (q31_t)0x7eb803a6, (q31_t)0x7eb7207c, (q31_t)0x7eb63d04, (q31_t)0x7eb5593d, - (q31_t)0x7eb47529, (q31_t)0x7eb390c6, - (q31_t)0x7eb2ac15, (q31_t)0x7eb1c716, (q31_t)0x7eb0e1c9, (q31_t)0x7eaffc2e, (q31_t)0x7eaf1645, (q31_t)0x7eae300d, - (q31_t)0x7ead4987, (q31_t)0x7eac62b3, - (q31_t)0x7eab7b91, (q31_t)0x7eaa9421, (q31_t)0x7ea9ac63, (q31_t)0x7ea8c457, (q31_t)0x7ea7dbfc, (q31_t)0x7ea6f353, - (q31_t)0x7ea60a5d, (q31_t)0x7ea52118, - (q31_t)0x7ea43785, (q31_t)0x7ea34da4, (q31_t)0x7ea26374, (q31_t)0x7ea178f7, (q31_t)0x7ea08e2b, (q31_t)0x7e9fa312, - (q31_t)0x7e9eb7aa, (q31_t)0x7e9dcbf4, - (q31_t)0x7e9cdff0, (q31_t)0x7e9bf39e, (q31_t)0x7e9b06fe, (q31_t)0x7e9a1a10, (q31_t)0x7e992cd4, (q31_t)0x7e983f49, - (q31_t)0x7e975171, (q31_t)0x7e96634a, - (q31_t)0x7e9574d6, (q31_t)0x7e948613, (q31_t)0x7e939702, (q31_t)0x7e92a7a3, (q31_t)0x7e91b7f6, (q31_t)0x7e90c7fb, - (q31_t)0x7e8fd7b2, (q31_t)0x7e8ee71b, - (q31_t)0x7e8df636, (q31_t)0x7e8d0502, (q31_t)0x7e8c1381, (q31_t)0x7e8b21b1, (q31_t)0x7e8a2f94, (q31_t)0x7e893d28, - (q31_t)0x7e884a6f, (q31_t)0x7e875767, - (q31_t)0x7e866411, (q31_t)0x7e85706d, (q31_t)0x7e847c7c, (q31_t)0x7e83883c, (q31_t)0x7e8293ae, (q31_t)0x7e819ed2, - (q31_t)0x7e80a9a8, (q31_t)0x7e7fb430, - (q31_t)0x7e7ebe6a, (q31_t)0x7e7dc856, (q31_t)0x7e7cd1f4, (q31_t)0x7e7bdb44, (q31_t)0x7e7ae446, (q31_t)0x7e79ecf9, - (q31_t)0x7e78f55f, (q31_t)0x7e77fd77, - (q31_t)0x7e770541, (q31_t)0x7e760cbd, (q31_t)0x7e7513ea, (q31_t)0x7e741aca, (q31_t)0x7e73215c, (q31_t)0x7e7227a0, - (q31_t)0x7e712d96, (q31_t)0x7e70333d, - (q31_t)0x7e6f3897, (q31_t)0x7e6e3da3, (q31_t)0x7e6d4261, (q31_t)0x7e6c46d1, (q31_t)0x7e6b4af2, (q31_t)0x7e6a4ec6, - (q31_t)0x7e69524c, (q31_t)0x7e685584, - (q31_t)0x7e67586e, (q31_t)0x7e665b0a, (q31_t)0x7e655d58, (q31_t)0x7e645f58, (q31_t)0x7e63610a, (q31_t)0x7e62626e, - (q31_t)0x7e616384, (q31_t)0x7e60644c, - (q31_t)0x7e5f64c7, (q31_t)0x7e5e64f3, (q31_t)0x7e5d64d1, (q31_t)0x7e5c6461, (q31_t)0x7e5b63a4, (q31_t)0x7e5a6298, - (q31_t)0x7e59613f, (q31_t)0x7e585f97, - (q31_t)0x7e575da2, (q31_t)0x7e565b5f, (q31_t)0x7e5558ce, (q31_t)0x7e5455ef, (q31_t)0x7e5352c1, (q31_t)0x7e524f46, - (q31_t)0x7e514b7e, (q31_t)0x7e504767, - (q31_t)0x7e4f4302, (q31_t)0x7e4e3e4f, (q31_t)0x7e4d394f, (q31_t)0x7e4c3400, (q31_t)0x7e4b2e64, (q31_t)0x7e4a287a, - (q31_t)0x7e492241, (q31_t)0x7e481bbb, - (q31_t)0x7e4714e7, (q31_t)0x7e460dc5, (q31_t)0x7e450656, (q31_t)0x7e43fe98, (q31_t)0x7e42f68c, (q31_t)0x7e41ee33, - (q31_t)0x7e40e58c, (q31_t)0x7e3fdc97, - (q31_t)0x7e3ed353, (q31_t)0x7e3dc9c3, (q31_t)0x7e3cbfe4, (q31_t)0x7e3bb5b7, (q31_t)0x7e3aab3c, (q31_t)0x7e39a074, - (q31_t)0x7e38955e, (q31_t)0x7e3789fa, - (q31_t)0x7e367e48, (q31_t)0x7e357248, (q31_t)0x7e3465fa, (q31_t)0x7e33595e, (q31_t)0x7e324c75, (q31_t)0x7e313f3e, - (q31_t)0x7e3031b9, (q31_t)0x7e2f23e6, - (q31_t)0x7e2e15c5, (q31_t)0x7e2d0756, (q31_t)0x7e2bf89a, (q31_t)0x7e2ae990, (q31_t)0x7e29da38, (q31_t)0x7e28ca92, - (q31_t)0x7e27ba9e, (q31_t)0x7e26aa5d, - (q31_t)0x7e2599cd, (q31_t)0x7e2488f0, (q31_t)0x7e2377c5, (q31_t)0x7e22664c, (q31_t)0x7e215486, (q31_t)0x7e204271, - (q31_t)0x7e1f300f, (q31_t)0x7e1e1d5f, - (q31_t)0x7e1d0a61, (q31_t)0x7e1bf716, (q31_t)0x7e1ae37c, (q31_t)0x7e19cf95, (q31_t)0x7e18bb60, (q31_t)0x7e17a6dd, - (q31_t)0x7e16920d, (q31_t)0x7e157cee, - (q31_t)0x7e146782, (q31_t)0x7e1351c9, (q31_t)0x7e123bc1, (q31_t)0x7e11256c, (q31_t)0x7e100ec8, (q31_t)0x7e0ef7d7, - (q31_t)0x7e0de099, (q31_t)0x7e0cc90c, - (q31_t)0x7e0bb132, (q31_t)0x7e0a990a, (q31_t)0x7e098095, (q31_t)0x7e0867d1, (q31_t)0x7e074ec0, (q31_t)0x7e063561, - (q31_t)0x7e051bb4, (q31_t)0x7e0401ba, - (q31_t)0x7e02e772, (q31_t)0x7e01ccdc, (q31_t)0x7e00b1f9, (q31_t)0x7dff96c7, (q31_t)0x7dfe7b48, (q31_t)0x7dfd5f7b, - (q31_t)0x7dfc4361, (q31_t)0x7dfb26f9, - (q31_t)0x7dfa0a43, (q31_t)0x7df8ed3f, (q31_t)0x7df7cfee, (q31_t)0x7df6b24f, (q31_t)0x7df59462, (q31_t)0x7df47628, - (q31_t)0x7df357a0, (q31_t)0x7df238ca, - (q31_t)0x7df119a7, (q31_t)0x7deffa35, (q31_t)0x7deeda77, (q31_t)0x7dedba6a, (q31_t)0x7dec9a10, (q31_t)0x7deb7968, - (q31_t)0x7dea5872, (q31_t)0x7de9372f, - (q31_t)0x7de8159e, (q31_t)0x7de6f3c0, (q31_t)0x7de5d193, (q31_t)0x7de4af1a, (q31_t)0x7de38c52, (q31_t)0x7de2693d, - (q31_t)0x7de145da, (q31_t)0x7de02229, - (q31_t)0x7ddefe2b, (q31_t)0x7dddd9e0, (q31_t)0x7ddcb546, (q31_t)0x7ddb905f, (q31_t)0x7dda6b2a, (q31_t)0x7dd945a8, - (q31_t)0x7dd81fd8, (q31_t)0x7dd6f9ba, - (q31_t)0x7dd5d34f, (q31_t)0x7dd4ac96, (q31_t)0x7dd38590, (q31_t)0x7dd25e3c, (q31_t)0x7dd1369a, (q31_t)0x7dd00eab, - (q31_t)0x7dcee66e, (q31_t)0x7dcdbde3, - (q31_t)0x7dcc950b, (q31_t)0x7dcb6be6, (q31_t)0x7dca4272, (q31_t)0x7dc918b1, (q31_t)0x7dc7eea3, (q31_t)0x7dc6c447, - (q31_t)0x7dc5999d, (q31_t)0x7dc46ea6, - (q31_t)0x7dc34361, (q31_t)0x7dc217cf, (q31_t)0x7dc0ebef, (q31_t)0x7dbfbfc1, (q31_t)0x7dbe9346, (q31_t)0x7dbd667d, - (q31_t)0x7dbc3967, (q31_t)0x7dbb0c03, - (q31_t)0x7db9de52, (q31_t)0x7db8b053, (q31_t)0x7db78207, (q31_t)0x7db6536d, (q31_t)0x7db52485, (q31_t)0x7db3f550, - (q31_t)0x7db2c5cd, (q31_t)0x7db195fd, - (q31_t)0x7db065df, (q31_t)0x7daf3574, (q31_t)0x7dae04bb, (q31_t)0x7dacd3b5, (q31_t)0x7daba261, (q31_t)0x7daa70c0, - (q31_t)0x7da93ed1, (q31_t)0x7da80c95, - (q31_t)0x7da6da0b, (q31_t)0x7da5a733, (q31_t)0x7da4740e, (q31_t)0x7da3409c, (q31_t)0x7da20cdc, (q31_t)0x7da0d8cf, - (q31_t)0x7d9fa474, (q31_t)0x7d9e6fcb, - (q31_t)0x7d9d3ad6, (q31_t)0x7d9c0592, (q31_t)0x7d9ad001, (q31_t)0x7d999a23, (q31_t)0x7d9863f7, (q31_t)0x7d972d7e, - (q31_t)0x7d95f6b7, (q31_t)0x7d94bfa3, - (q31_t)0x7d938841, (q31_t)0x7d925092, (q31_t)0x7d911896, (q31_t)0x7d8fe04c, (q31_t)0x7d8ea7b4, (q31_t)0x7d8d6ecf, - (q31_t)0x7d8c359d, (q31_t)0x7d8afc1d, - (q31_t)0x7d89c250, (q31_t)0x7d888835, (q31_t)0x7d874dcd, (q31_t)0x7d861317, (q31_t)0x7d84d814, (q31_t)0x7d839cc4, - (q31_t)0x7d826126, (q31_t)0x7d81253a, - (q31_t)0x7d7fe902, (q31_t)0x7d7eac7c, (q31_t)0x7d7d6fa8, (q31_t)0x7d7c3287, (q31_t)0x7d7af519, (q31_t)0x7d79b75d, - (q31_t)0x7d787954, (q31_t)0x7d773afd, - (q31_t)0x7d75fc59, (q31_t)0x7d74bd68, (q31_t)0x7d737e29, (q31_t)0x7d723e9d, (q31_t)0x7d70fec4, (q31_t)0x7d6fbe9d, - (q31_t)0x7d6e7e29, (q31_t)0x7d6d3d67, - (q31_t)0x7d6bfc58, (q31_t)0x7d6abafc, (q31_t)0x7d697952, (q31_t)0x7d68375b, (q31_t)0x7d66f517, (q31_t)0x7d65b285, - (q31_t)0x7d646fa6, (q31_t)0x7d632c79, - (q31_t)0x7d61e8ff, (q31_t)0x7d60a538, (q31_t)0x7d5f6124, (q31_t)0x7d5e1cc2, (q31_t)0x7d5cd813, (q31_t)0x7d5b9316, - (q31_t)0x7d5a4dcc, (q31_t)0x7d590835, - (q31_t)0x7d57c251, (q31_t)0x7d567c1f, (q31_t)0x7d5535a0, (q31_t)0x7d53eed3, (q31_t)0x7d52a7ba, (q31_t)0x7d516053, - (q31_t)0x7d50189e, (q31_t)0x7d4ed09d, - (q31_t)0x7d4d884e, (q31_t)0x7d4c3fb1, (q31_t)0x7d4af6c8, (q31_t)0x7d49ad91, (q31_t)0x7d48640d, (q31_t)0x7d471a3c, - (q31_t)0x7d45d01d, (q31_t)0x7d4485b1, - (q31_t)0x7d433af8, (q31_t)0x7d41eff1, (q31_t)0x7d40a49e, (q31_t)0x7d3f58fd, (q31_t)0x7d3e0d0e, (q31_t)0x7d3cc0d3, - (q31_t)0x7d3b744a, (q31_t)0x7d3a2774, - (q31_t)0x7d38da51, (q31_t)0x7d378ce0, (q31_t)0x7d363f23, (q31_t)0x7d34f118, (q31_t)0x7d33a2bf, (q31_t)0x7d32541a, - (q31_t)0x7d310527, (q31_t)0x7d2fb5e7, - (q31_t)0x7d2e665a, (q31_t)0x7d2d1680, (q31_t)0x7d2bc659, (q31_t)0x7d2a75e4, (q31_t)0x7d292522, (q31_t)0x7d27d413, - (q31_t)0x7d2682b6, (q31_t)0x7d25310d, - (q31_t)0x7d23df16, (q31_t)0x7d228cd2, (q31_t)0x7d213a41, (q31_t)0x7d1fe762, (q31_t)0x7d1e9437, (q31_t)0x7d1d40be, - (q31_t)0x7d1becf8, (q31_t)0x7d1a98e5, - (q31_t)0x7d194485, (q31_t)0x7d17efd8, (q31_t)0x7d169add, (q31_t)0x7d154595, (q31_t)0x7d13f001, (q31_t)0x7d129a1f, - (q31_t)0x7d1143ef, (q31_t)0x7d0fed73, - (q31_t)0x7d0e96aa, (q31_t)0x7d0d3f93, (q31_t)0x7d0be82f, (q31_t)0x7d0a907e, (q31_t)0x7d093880, (q31_t)0x7d07e035, - (q31_t)0x7d06879d, (q31_t)0x7d052eb8, - (q31_t)0x7d03d585, (q31_t)0x7d027c05, (q31_t)0x7d012239, (q31_t)0x7cffc81f, (q31_t)0x7cfe6db8, (q31_t)0x7cfd1304, - (q31_t)0x7cfbb803, (q31_t)0x7cfa5cb4, - (q31_t)0x7cf90119, (q31_t)0x7cf7a531, (q31_t)0x7cf648fb, (q31_t)0x7cf4ec79, (q31_t)0x7cf38fa9, (q31_t)0x7cf2328c, - (q31_t)0x7cf0d522, (q31_t)0x7cef776b, - (q31_t)0x7cee1967, (q31_t)0x7cecbb16, (q31_t)0x7ceb5c78, (q31_t)0x7ce9fd8d, (q31_t)0x7ce89e55, (q31_t)0x7ce73ed0, - (q31_t)0x7ce5defd, (q31_t)0x7ce47ede, - (q31_t)0x7ce31e72, (q31_t)0x7ce1bdb8, (q31_t)0x7ce05cb2, (q31_t)0x7cdefb5e, (q31_t)0x7cdd99be, (q31_t)0x7cdc37d0, - (q31_t)0x7cdad596, (q31_t)0x7cd9730e, - (q31_t)0x7cd8103a, (q31_t)0x7cd6ad18, (q31_t)0x7cd549aa, (q31_t)0x7cd3e5ee, (q31_t)0x7cd281e5, (q31_t)0x7cd11d90, - (q31_t)0x7ccfb8ed, (q31_t)0x7cce53fe, - (q31_t)0x7ccceec1, (q31_t)0x7ccb8937, (q31_t)0x7cca2361, (q31_t)0x7cc8bd3d, (q31_t)0x7cc756cd, (q31_t)0x7cc5f010, - (q31_t)0x7cc48905, (q31_t)0x7cc321ae, - (q31_t)0x7cc1ba09, (q31_t)0x7cc05218, (q31_t)0x7cbee9da, (q31_t)0x7cbd814f, (q31_t)0x7cbc1877, (q31_t)0x7cbaaf51, - (q31_t)0x7cb945df, (q31_t)0x7cb7dc20, - (q31_t)0x7cb67215, (q31_t)0x7cb507bc, (q31_t)0x7cb39d16, (q31_t)0x7cb23223, (q31_t)0x7cb0c6e4, (q31_t)0x7caf5b57, - (q31_t)0x7cadef7e, (q31_t)0x7cac8358, - (q31_t)0x7cab16e4, (q31_t)0x7ca9aa24, (q31_t)0x7ca83d17, (q31_t)0x7ca6cfbd, (q31_t)0x7ca56216, (q31_t)0x7ca3f423, - (q31_t)0x7ca285e2, (q31_t)0x7ca11755, - (q31_t)0x7c9fa87a, (q31_t)0x7c9e3953, (q31_t)0x7c9cc9df, (q31_t)0x7c9b5a1e, (q31_t)0x7c99ea10, (q31_t)0x7c9879b6, - (q31_t)0x7c97090e, (q31_t)0x7c95981a, - (q31_t)0x7c9426d8, (q31_t)0x7c92b54a, (q31_t)0x7c91436f, (q31_t)0x7c8fd148, (q31_t)0x7c8e5ed3, (q31_t)0x7c8cec12, - (q31_t)0x7c8b7903, (q31_t)0x7c8a05a8, - (q31_t)0x7c889200, (q31_t)0x7c871e0c, (q31_t)0x7c85a9ca, (q31_t)0x7c84353c, (q31_t)0x7c82c060, (q31_t)0x7c814b39, - (q31_t)0x7c7fd5c4, (q31_t)0x7c7e6002, - (q31_t)0x7c7ce9f4, (q31_t)0x7c7b7399, (q31_t)0x7c79fcf1, (q31_t)0x7c7885fc, (q31_t)0x7c770eba, (q31_t)0x7c75972c, - (q31_t)0x7c741f51, (q31_t)0x7c72a729, - (q31_t)0x7c712eb5, (q31_t)0x7c6fb5f3, (q31_t)0x7c6e3ce5, (q31_t)0x7c6cc38a, (q31_t)0x7c6b49e3, (q31_t)0x7c69cfee, - (q31_t)0x7c6855ad, (q31_t)0x7c66db1f, - (q31_t)0x7c656045, (q31_t)0x7c63e51e, (q31_t)0x7c6269aa, (q31_t)0x7c60ede9, (q31_t)0x7c5f71db, (q31_t)0x7c5df581, - (q31_t)0x7c5c78da, (q31_t)0x7c5afbe6, - (q31_t)0x7c597ea6, (q31_t)0x7c580119, (q31_t)0x7c56833f, (q31_t)0x7c550519, (q31_t)0x7c5386a6, (q31_t)0x7c5207e6, - (q31_t)0x7c5088d9, (q31_t)0x7c4f0980, - (q31_t)0x7c4d89da, (q31_t)0x7c4c09e8, (q31_t)0x7c4a89a8, (q31_t)0x7c49091c, (q31_t)0x7c478844, (q31_t)0x7c46071f, - (q31_t)0x7c4485ad, (q31_t)0x7c4303ee, - (q31_t)0x7c4181e3, (q31_t)0x7c3fff8b, (q31_t)0x7c3e7ce7, (q31_t)0x7c3cf9f5, (q31_t)0x7c3b76b8, (q31_t)0x7c39f32d, - (q31_t)0x7c386f56, (q31_t)0x7c36eb33, - (q31_t)0x7c3566c2, (q31_t)0x7c33e205, (q31_t)0x7c325cfc, (q31_t)0x7c30d7a6, (q31_t)0x7c2f5203, (q31_t)0x7c2dcc14, - (q31_t)0x7c2c45d8, (q31_t)0x7c2abf4f, - (q31_t)0x7c29387a, (q31_t)0x7c27b158, (q31_t)0x7c2629ea, (q31_t)0x7c24a22f, (q31_t)0x7c231a28, (q31_t)0x7c2191d4, - (q31_t)0x7c200933, (q31_t)0x7c1e8046, - (q31_t)0x7c1cf70c, (q31_t)0x7c1b6d86, (q31_t)0x7c19e3b3, (q31_t)0x7c185994, (q31_t)0x7c16cf28, (q31_t)0x7c15446f, - (q31_t)0x7c13b96a, (q31_t)0x7c122e19, - (q31_t)0x7c10a27b, (q31_t)0x7c0f1690, (q31_t)0x7c0d8a59, (q31_t)0x7c0bfdd5, (q31_t)0x7c0a7105, (q31_t)0x7c08e3e8, - (q31_t)0x7c07567f, (q31_t)0x7c05c8c9, - (q31_t)0x7c043ac7, (q31_t)0x7c02ac78, (q31_t)0x7c011ddd, (q31_t)0x7bff8ef5, (q31_t)0x7bfdffc1, (q31_t)0x7bfc7041, - (q31_t)0x7bfae073, (q31_t)0x7bf9505a, - (q31_t)0x7bf7bff4, (q31_t)0x7bf62f41, (q31_t)0x7bf49e42, (q31_t)0x7bf30cf6, (q31_t)0x7bf17b5e, (q31_t)0x7befe97a, - (q31_t)0x7bee5749, (q31_t)0x7becc4cc, - (q31_t)0x7beb3202, (q31_t)0x7be99eec, (q31_t)0x7be80b89, (q31_t)0x7be677da, (q31_t)0x7be4e3df, (q31_t)0x7be34f97, - (q31_t)0x7be1bb02, (q31_t)0x7be02621, - (q31_t)0x7bde90f4, (q31_t)0x7bdcfb7b, (q31_t)0x7bdb65b5, (q31_t)0x7bd9cfa2, (q31_t)0x7bd83944, (q31_t)0x7bd6a298, - (q31_t)0x7bd50ba1, (q31_t)0x7bd3745d, - (q31_t)0x7bd1dccc, (q31_t)0x7bd044f0, (q31_t)0x7bceacc7, (q31_t)0x7bcd1451, (q31_t)0x7bcb7b8f, (q31_t)0x7bc9e281, - (q31_t)0x7bc84927, (q31_t)0x7bc6af80, - (q31_t)0x7bc5158c, (q31_t)0x7bc37b4d, (q31_t)0x7bc1e0c1, (q31_t)0x7bc045e9, (q31_t)0x7bbeaac4, (q31_t)0x7bbd0f53, - (q31_t)0x7bbb7396, (q31_t)0x7bb9d78c, - (q31_t)0x7bb83b36, (q31_t)0x7bb69e94, (q31_t)0x7bb501a5, (q31_t)0x7bb3646a, (q31_t)0x7bb1c6e3, (q31_t)0x7bb02910, - (q31_t)0x7bae8af0, (q31_t)0x7bacec84, - (q31_t)0x7bab4dcc, (q31_t)0x7ba9aec7, (q31_t)0x7ba80f76, (q31_t)0x7ba66fd9, (q31_t)0x7ba4cfef, (q31_t)0x7ba32fba, - (q31_t)0x7ba18f38, (q31_t)0x7b9fee69, - (q31_t)0x7b9e4d4f, (q31_t)0x7b9cabe8, (q31_t)0x7b9b0a35, (q31_t)0x7b996836, (q31_t)0x7b97c5ea, (q31_t)0x7b962352, - (q31_t)0x7b94806e, (q31_t)0x7b92dd3e, - (q31_t)0x7b9139c2, (q31_t)0x7b8f95f9, (q31_t)0x7b8df1e4, (q31_t)0x7b8c4d83, (q31_t)0x7b8aa8d6, (q31_t)0x7b8903dc, - (q31_t)0x7b875e96, (q31_t)0x7b85b904, - (q31_t)0x7b841326, (q31_t)0x7b826cfc, (q31_t)0x7b80c686, (q31_t)0x7b7f1fc3, (q31_t)0x7b7d78b4, (q31_t)0x7b7bd159, - (q31_t)0x7b7a29b2, (q31_t)0x7b7881be, - (q31_t)0x7b76d97f, (q31_t)0x7b7530f3, (q31_t)0x7b73881b, (q31_t)0x7b71def7, (q31_t)0x7b703587, (q31_t)0x7b6e8bcb, - (q31_t)0x7b6ce1c2, (q31_t)0x7b6b376e, - (q31_t)0x7b698ccd, (q31_t)0x7b67e1e0, (q31_t)0x7b6636a7, (q31_t)0x7b648b22, (q31_t)0x7b62df51, (q31_t)0x7b613334, - (q31_t)0x7b5f86ca, (q31_t)0x7b5dda15, - (q31_t)0x7b5c2d13, (q31_t)0x7b5a7fc6, (q31_t)0x7b58d22c, (q31_t)0x7b572446, (q31_t)0x7b557614, (q31_t)0x7b53c796, - (q31_t)0x7b5218cc, (q31_t)0x7b5069b6, - (q31_t)0x7b4eba53, (q31_t)0x7b4d0aa5, (q31_t)0x7b4b5aab, (q31_t)0x7b49aa64, (q31_t)0x7b47f9d2, (q31_t)0x7b4648f3, - (q31_t)0x7b4497c9, (q31_t)0x7b42e652, - (q31_t)0x7b413490, (q31_t)0x7b3f8281, (q31_t)0x7b3dd026, (q31_t)0x7b3c1d80, (q31_t)0x7b3a6a8d, (q31_t)0x7b38b74e, - (q31_t)0x7b3703c3, (q31_t)0x7b354fed, - (q31_t)0x7b339bca, (q31_t)0x7b31e75b, (q31_t)0x7b3032a0, (q31_t)0x7b2e7d9a, (q31_t)0x7b2cc847, (q31_t)0x7b2b12a8, - (q31_t)0x7b295cbe, (q31_t)0x7b27a687, - (q31_t)0x7b25f004, (q31_t)0x7b243936, (q31_t)0x7b22821b, (q31_t)0x7b20cab5, (q31_t)0x7b1f1302, (q31_t)0x7b1d5b04, - (q31_t)0x7b1ba2b9, (q31_t)0x7b19ea23, - (q31_t)0x7b183141, (q31_t)0x7b167813, (q31_t)0x7b14be99, (q31_t)0x7b1304d3, (q31_t)0x7b114ac1, (q31_t)0x7b0f9063, - (q31_t)0x7b0dd5b9, (q31_t)0x7b0c1ac4, - (q31_t)0x7b0a5f82, (q31_t)0x7b08a3f5, (q31_t)0x7b06e81b, (q31_t)0x7b052bf6, (q31_t)0x7b036f85, (q31_t)0x7b01b2c8, - (q31_t)0x7afff5bf, (q31_t)0x7afe386a, - (q31_t)0x7afc7aca, (q31_t)0x7afabcdd, (q31_t)0x7af8fea5, (q31_t)0x7af74021, (q31_t)0x7af58151, (q31_t)0x7af3c235, - (q31_t)0x7af202cd, (q31_t)0x7af0431a, - (q31_t)0x7aee831a, (q31_t)0x7aecc2cf, (q31_t)0x7aeb0238, (q31_t)0x7ae94155, (q31_t)0x7ae78026, (q31_t)0x7ae5beac, - (q31_t)0x7ae3fce6, (q31_t)0x7ae23ad4, - (q31_t)0x7ae07876, (q31_t)0x7adeb5cc, (q31_t)0x7adcf2d6, (q31_t)0x7adb2f95, (q31_t)0x7ad96c08, (q31_t)0x7ad7a82f, - (q31_t)0x7ad5e40a, (q31_t)0x7ad41f9a, - (q31_t)0x7ad25ade, (q31_t)0x7ad095d6, (q31_t)0x7aced082, (q31_t)0x7acd0ae3, (q31_t)0x7acb44f8, (q31_t)0x7ac97ec1, - (q31_t)0x7ac7b83e, (q31_t)0x7ac5f170, - (q31_t)0x7ac42a55, (q31_t)0x7ac262ef, (q31_t)0x7ac09b3e, (q31_t)0x7abed341, (q31_t)0x7abd0af7, (q31_t)0x7abb4263, - (q31_t)0x7ab97982, (q31_t)0x7ab7b056, - (q31_t)0x7ab5e6de, (q31_t)0x7ab41d1b, (q31_t)0x7ab2530b, (q31_t)0x7ab088b0, (q31_t)0x7aaebe0a, (q31_t)0x7aacf318, - (q31_t)0x7aab27da, (q31_t)0x7aa95c50, - (q31_t)0x7aa7907b, (q31_t)0x7aa5c45a, (q31_t)0x7aa3f7ed, (q31_t)0x7aa22b35, (q31_t)0x7aa05e31, (q31_t)0x7a9e90e1, - (q31_t)0x7a9cc346, (q31_t)0x7a9af55f, - (q31_t)0x7a99272d, (q31_t)0x7a9758af, (q31_t)0x7a9589e5, (q31_t)0x7a93bad0, (q31_t)0x7a91eb6f, (q31_t)0x7a901bc2, - (q31_t)0x7a8e4bca, (q31_t)0x7a8c7b87, - (q31_t)0x7a8aaaf7, (q31_t)0x7a88da1c, (q31_t)0x7a8708f6, (q31_t)0x7a853784, (q31_t)0x7a8365c6, (q31_t)0x7a8193bd, - (q31_t)0x7a7fc168, (q31_t)0x7a7deec8, - (q31_t)0x7a7c1bdc, (q31_t)0x7a7a48a4, (q31_t)0x7a787521, (q31_t)0x7a76a153, (q31_t)0x7a74cd38, (q31_t)0x7a72f8d3, - (q31_t)0x7a712422, (q31_t)0x7a6f4f25, - (q31_t)0x7a6d79dd, (q31_t)0x7a6ba449, (q31_t)0x7a69ce6a, (q31_t)0x7a67f83f, (q31_t)0x7a6621c9, (q31_t)0x7a644b07, - (q31_t)0x7a6273fa, (q31_t)0x7a609ca1, - (q31_t)0x7a5ec4fc, (q31_t)0x7a5ced0d, (q31_t)0x7a5b14d1, (q31_t)0x7a593c4b, (q31_t)0x7a576379, (q31_t)0x7a558a5b, - (q31_t)0x7a53b0f2, (q31_t)0x7a51d73d, - (q31_t)0x7a4ffd3d, (q31_t)0x7a4e22f2, (q31_t)0x7a4c485b, (q31_t)0x7a4a6d78, (q31_t)0x7a48924b, (q31_t)0x7a46b6d1, - (q31_t)0x7a44db0d, (q31_t)0x7a42fefd, - (q31_t)0x7a4122a1, (q31_t)0x7a3f45fa, (q31_t)0x7a3d6908, (q31_t)0x7a3b8bca, (q31_t)0x7a39ae41, (q31_t)0x7a37d06d, - (q31_t)0x7a35f24d, (q31_t)0x7a3413e2, - (q31_t)0x7a32352b, (q31_t)0x7a305629, (q31_t)0x7a2e76dc, (q31_t)0x7a2c9743, (q31_t)0x7a2ab75f, (q31_t)0x7a28d72f, - (q31_t)0x7a26f6b4, (q31_t)0x7a2515ee, - (q31_t)0x7a2334dd, (q31_t)0x7a215380, (q31_t)0x7a1f71d7, (q31_t)0x7a1d8fe4, (q31_t)0x7a1bada5, (q31_t)0x7a19cb1b, - (q31_t)0x7a17e845, (q31_t)0x7a160524, - (q31_t)0x7a1421b8, (q31_t)0x7a123e01, (q31_t)0x7a1059fe, (q31_t)0x7a0e75b0, (q31_t)0x7a0c9117, (q31_t)0x7a0aac32, - (q31_t)0x7a08c702, (q31_t)0x7a06e187, - (q31_t)0x7a04fbc1, (q31_t)0x7a0315af, (q31_t)0x7a012f52, (q31_t)0x79ff48aa, (q31_t)0x79fd61b6, (q31_t)0x79fb7a77, - (q31_t)0x79f992ed, (q31_t)0x79f7ab18, - (q31_t)0x79f5c2f8, (q31_t)0x79f3da8c, (q31_t)0x79f1f1d5, (q31_t)0x79f008d3, (q31_t)0x79ee1f86, (q31_t)0x79ec35ed, - (q31_t)0x79ea4c09, (q31_t)0x79e861da, - (q31_t)0x79e67760, (q31_t)0x79e48c9b, (q31_t)0x79e2a18a, (q31_t)0x79e0b62e, (q31_t)0x79deca87, (q31_t)0x79dcde95, - (q31_t)0x79daf258, (q31_t)0x79d905d0, - (q31_t)0x79d718fc, (q31_t)0x79d52bdd, (q31_t)0x79d33e73, (q31_t)0x79d150be, (q31_t)0x79cf62be, (q31_t)0x79cd7473, - (q31_t)0x79cb85dc, (q31_t)0x79c996fb, - (q31_t)0x79c7a7ce, (q31_t)0x79c5b856, (q31_t)0x79c3c893, (q31_t)0x79c1d885, (q31_t)0x79bfe82c, (q31_t)0x79bdf788, - (q31_t)0x79bc0698, (q31_t)0x79ba155e, - (q31_t)0x79b823d8, (q31_t)0x79b63207, (q31_t)0x79b43fec, (q31_t)0x79b24d85, (q31_t)0x79b05ad3, (q31_t)0x79ae67d6, - (q31_t)0x79ac748e, (q31_t)0x79aa80fb, - (q31_t)0x79a88d1d, (q31_t)0x79a698f4, (q31_t)0x79a4a480, (q31_t)0x79a2afc1, (q31_t)0x79a0bab6, (q31_t)0x799ec561, - (q31_t)0x799ccfc1, (q31_t)0x799ad9d5, - (q31_t)0x7998e39f, (q31_t)0x7996ed1e, (q31_t)0x7994f651, (q31_t)0x7992ff3a, (q31_t)0x799107d8, (q31_t)0x798f102a, - (q31_t)0x798d1832, (q31_t)0x798b1fef, - (q31_t)0x79892761, (q31_t)0x79872e87, (q31_t)0x79853563, (q31_t)0x79833bf4, (q31_t)0x7981423a, (q31_t)0x797f4835, - (q31_t)0x797d4de5, (q31_t)0x797b534a, - (q31_t)0x79795864, (q31_t)0x79775d33, (q31_t)0x797561b8, (q31_t)0x797365f1, (q31_t)0x797169df, (q31_t)0x796f6d83, - (q31_t)0x796d70dc, (q31_t)0x796b73e9, - (q31_t)0x796976ac, (q31_t)0x79677924, (q31_t)0x79657b51, (q31_t)0x79637d33, (q31_t)0x79617eca, (q31_t)0x795f8017, - (q31_t)0x795d8118, (q31_t)0x795b81cf, - (q31_t)0x7959823b, (q31_t)0x7957825c, (q31_t)0x79558232, (q31_t)0x795381bd, (q31_t)0x795180fe, (q31_t)0x794f7ff3, - (q31_t)0x794d7e9e, (q31_t)0x794b7cfe, - (q31_t)0x79497b13, (q31_t)0x794778dd, (q31_t)0x7945765d, (q31_t)0x79437391, (q31_t)0x7941707b, (q31_t)0x793f6d1a, - (q31_t)0x793d696f, (q31_t)0x793b6578, - (q31_t)0x79396137, (q31_t)0x79375cab, (q31_t)0x793557d4, (q31_t)0x793352b2, (q31_t)0x79314d46, (q31_t)0x792f478f, - (q31_t)0x792d418d, (q31_t)0x792b3b40, - (q31_t)0x792934a9, (q31_t)0x79272dc7, (q31_t)0x7925269a, (q31_t)0x79231f22, (q31_t)0x79211760, (q31_t)0x791f0f53, - (q31_t)0x791d06fb, (q31_t)0x791afe59, - (q31_t)0x7918f56c, (q31_t)0x7916ec34, (q31_t)0x7914e2b2, (q31_t)0x7912d8e4, (q31_t)0x7910cecc, (q31_t)0x790ec46a, - (q31_t)0x790cb9bd, (q31_t)0x790aaec5, - (q31_t)0x7908a382, (q31_t)0x790697f5, (q31_t)0x79048c1d, (q31_t)0x79027ffa, (q31_t)0x7900738d, (q31_t)0x78fe66d5, - (q31_t)0x78fc59d3, (q31_t)0x78fa4c86, - (q31_t)0x78f83eee, (q31_t)0x78f6310c, (q31_t)0x78f422df, (q31_t)0x78f21467, (q31_t)0x78f005a5, (q31_t)0x78edf698, - (q31_t)0x78ebe741, (q31_t)0x78e9d79f, - (q31_t)0x78e7c7b2, (q31_t)0x78e5b77b, (q31_t)0x78e3a6f9, (q31_t)0x78e1962d, (q31_t)0x78df8516, (q31_t)0x78dd73b5, - (q31_t)0x78db6209, (q31_t)0x78d95012, - (q31_t)0x78d73dd1, (q31_t)0x78d52b46, (q31_t)0x78d31870, (q31_t)0x78d1054f, (q31_t)0x78cef1e4, (q31_t)0x78ccde2e, - (q31_t)0x78caca2e, (q31_t)0x78c8b5e3, - (q31_t)0x78c6a14e, (q31_t)0x78c48c6e, (q31_t)0x78c27744, (q31_t)0x78c061cf, (q31_t)0x78be4c10, (q31_t)0x78bc3606, - (q31_t)0x78ba1fb2, (q31_t)0x78b80913, - (q31_t)0x78b5f22a, (q31_t)0x78b3daf7, (q31_t)0x78b1c379, (q31_t)0x78afabb0, (q31_t)0x78ad939d, (q31_t)0x78ab7b40, - (q31_t)0x78a96298, (q31_t)0x78a749a6, - (q31_t)0x78a53069, (q31_t)0x78a316e2, (q31_t)0x78a0fd11, (q31_t)0x789ee2f5, (q31_t)0x789cc88f, (q31_t)0x789aadde, - (q31_t)0x789892e3, (q31_t)0x7896779d, - (q31_t)0x78945c0d, (q31_t)0x78924033, (q31_t)0x7890240e, (q31_t)0x788e07a0, (q31_t)0x788beae6, (q31_t)0x7889cde2, - (q31_t)0x7887b094, (q31_t)0x788592fc, - (q31_t)0x78837519, (q31_t)0x788156ec, (q31_t)0x787f3875, (q31_t)0x787d19b3, (q31_t)0x787afaa7, (q31_t)0x7878db50, - (q31_t)0x7876bbb0, (q31_t)0x78749bc5, - (q31_t)0x78727b8f, (q31_t)0x78705b10, (q31_t)0x786e3a46, (q31_t)0x786c1932, (q31_t)0x7869f7d3, (q31_t)0x7867d62a, - (q31_t)0x7865b437, (q31_t)0x786391fa, - (q31_t)0x78616f72, (q31_t)0x785f4ca1, (q31_t)0x785d2984, (q31_t)0x785b061e, (q31_t)0x7858e26e, (q31_t)0x7856be73, - (q31_t)0x78549a2e, (q31_t)0x7852759e, - (q31_t)0x785050c5, (q31_t)0x784e2ba1, (q31_t)0x784c0633, (q31_t)0x7849e07b, (q31_t)0x7847ba79, (q31_t)0x7845942c, - (q31_t)0x78436d96, (q31_t)0x784146b5, - (q31_t)0x783f1f8a, (q31_t)0x783cf815, (q31_t)0x783ad055, (q31_t)0x7838a84c, (q31_t)0x78367ff8, (q31_t)0x7834575a, - (q31_t)0x78322e72, (q31_t)0x78300540, - (q31_t)0x782ddbc4, (q31_t)0x782bb1fd, (q31_t)0x782987ed, (q31_t)0x78275d92, (q31_t)0x782532ed, (q31_t)0x782307fe, - (q31_t)0x7820dcc5, (q31_t)0x781eb142, - (q31_t)0x781c8575, (q31_t)0x781a595d, (q31_t)0x78182cfc, (q31_t)0x78160051, (q31_t)0x7813d35b, (q31_t)0x7811a61b, - (q31_t)0x780f7892, (q31_t)0x780d4abe, - (q31_t)0x780b1ca0, (q31_t)0x7808ee38, (q31_t)0x7806bf86, (q31_t)0x7804908a, (q31_t)0x78026145, (q31_t)0x780031b5, - (q31_t)0x77fe01db, (q31_t)0x77fbd1b6, - (q31_t)0x77f9a148, (q31_t)0x77f77090, (q31_t)0x77f53f8e, (q31_t)0x77f30e42, (q31_t)0x77f0dcac, (q31_t)0x77eeaacc, - (q31_t)0x77ec78a2, (q31_t)0x77ea462e, - (q31_t)0x77e81370, (q31_t)0x77e5e068, (q31_t)0x77e3ad17, (q31_t)0x77e1797b, (q31_t)0x77df4595, (q31_t)0x77dd1165, - (q31_t)0x77dadcec, (q31_t)0x77d8a828, - (q31_t)0x77d6731a, (q31_t)0x77d43dc3, (q31_t)0x77d20822, (q31_t)0x77cfd236, (q31_t)0x77cd9c01, (q31_t)0x77cb6582, - (q31_t)0x77c92eb9, (q31_t)0x77c6f7a6, - (q31_t)0x77c4c04a, (q31_t)0x77c288a3, (q31_t)0x77c050b2, (q31_t)0x77be1878, (q31_t)0x77bbdff4, (q31_t)0x77b9a726, - (q31_t)0x77b76e0e, (q31_t)0x77b534ac, - (q31_t)0x77b2fb00, (q31_t)0x77b0c10b, (q31_t)0x77ae86cc, (q31_t)0x77ac4c43, (q31_t)0x77aa1170, (q31_t)0x77a7d653, - (q31_t)0x77a59aec, (q31_t)0x77a35f3c, - (q31_t)0x77a12342, (q31_t)0x779ee6fe, (q31_t)0x779caa70, (q31_t)0x779a6d99, (q31_t)0x77983077, (q31_t)0x7795f30c, - (q31_t)0x7793b557, (q31_t)0x77917759, - (q31_t)0x778f3910, (q31_t)0x778cfa7e, (q31_t)0x778abba2, (q31_t)0x77887c7d, (q31_t)0x77863d0d, (q31_t)0x7783fd54, - (q31_t)0x7781bd52, (q31_t)0x777f7d05, - (q31_t)0x777d3c6f, (q31_t)0x777afb8f, (q31_t)0x7778ba65, (q31_t)0x777678f2, (q31_t)0x77743735, (q31_t)0x7771f52e, - (q31_t)0x776fb2de, (q31_t)0x776d7044, - (q31_t)0x776b2d60, (q31_t)0x7768ea33, (q31_t)0x7766a6bc, (q31_t)0x776462fb, (q31_t)0x77621ef1, (q31_t)0x775fda9d, - (q31_t)0x775d95ff, (q31_t)0x775b5118, - (q31_t)0x77590be7, (q31_t)0x7756c66c, (q31_t)0x775480a8, (q31_t)0x77523a9b, (q31_t)0x774ff443, (q31_t)0x774dada2, - (q31_t)0x774b66b8, (q31_t)0x77491f84, - (q31_t)0x7746d806, (q31_t)0x7744903f, (q31_t)0x7742482e, (q31_t)0x773fffd4, (q31_t)0x773db730, (q31_t)0x773b6e42, - (q31_t)0x7739250b, (q31_t)0x7736db8b, - (q31_t)0x773491c0, (q31_t)0x773247ad, (q31_t)0x772ffd50, (q31_t)0x772db2a9, (q31_t)0x772b67b9, (q31_t)0x77291c7f, - (q31_t)0x7726d0fc, (q31_t)0x7724852f, - (q31_t)0x77223919, (q31_t)0x771fecb9, (q31_t)0x771da010, (q31_t)0x771b531d, (q31_t)0x771905e1, (q31_t)0x7716b85b, - (q31_t)0x77146a8c, (q31_t)0x77121c74, - (q31_t)0x770fce12, (q31_t)0x770d7f66, (q31_t)0x770b3072, (q31_t)0x7708e133, (q31_t)0x770691ab, (q31_t)0x770441da, - (q31_t)0x7701f1c0, (q31_t)0x76ffa15c, - (q31_t)0x76fd50ae, (q31_t)0x76faffb8, (q31_t)0x76f8ae78, (q31_t)0x76f65cee, (q31_t)0x76f40b1b, (q31_t)0x76f1b8ff, - (q31_t)0x76ef6699, (q31_t)0x76ed13ea, - (q31_t)0x76eac0f2, (q31_t)0x76e86db0, (q31_t)0x76e61a25, (q31_t)0x76e3c650, (q31_t)0x76e17233, (q31_t)0x76df1dcb, - (q31_t)0x76dcc91b, (q31_t)0x76da7421, - (q31_t)0x76d81ede, (q31_t)0x76d5c952, (q31_t)0x76d3737c, (q31_t)0x76d11d5d, (q31_t)0x76cec6f5, (q31_t)0x76cc7043, - (q31_t)0x76ca1948, (q31_t)0x76c7c204, - (q31_t)0x76c56a77, (q31_t)0x76c312a0, (q31_t)0x76c0ba80, (q31_t)0x76be6217, (q31_t)0x76bc0965, (q31_t)0x76b9b069, - (q31_t)0x76b75724, (q31_t)0x76b4fd96, - (q31_t)0x76b2a3bf, (q31_t)0x76b0499e, (q31_t)0x76adef34, (q31_t)0x76ab9481, (q31_t)0x76a93985, (q31_t)0x76a6de40, - (q31_t)0x76a482b1, (q31_t)0x76a226da, - (q31_t)0x769fcab9, (q31_t)0x769d6e4f, (q31_t)0x769b119b, (q31_t)0x7698b49f, (q31_t)0x76965759, (q31_t)0x7693f9ca, - (q31_t)0x76919bf3, (q31_t)0x768f3dd2, - (q31_t)0x768cdf67, (q31_t)0x768a80b4, (q31_t)0x768821b8, (q31_t)0x7685c272, (q31_t)0x768362e4, (q31_t)0x7681030c, - (q31_t)0x767ea2eb, (q31_t)0x767c4281, - (q31_t)0x7679e1ce, (q31_t)0x767780d2, (q31_t)0x76751f8d, (q31_t)0x7672bdfe, (q31_t)0x76705c27, (q31_t)0x766dfa07, - (q31_t)0x766b979d, (q31_t)0x766934eb, - (q31_t)0x7666d1ef, (q31_t)0x76646eab, (q31_t)0x76620b1d, (q31_t)0x765fa747, (q31_t)0x765d4327, (q31_t)0x765adebe, - (q31_t)0x76587a0d, (q31_t)0x76561512, - (q31_t)0x7653afce, (q31_t)0x76514a42, (q31_t)0x764ee46c, (q31_t)0x764c7e4d, (q31_t)0x764a17e6, (q31_t)0x7647b135, - (q31_t)0x76454a3c, (q31_t)0x7642e2f9, - (q31_t)0x76407b6e, (q31_t)0x763e139a, (q31_t)0x763bab7c, (q31_t)0x76394316, (q31_t)0x7636da67, (q31_t)0x7634716f, - (q31_t)0x7632082e, (q31_t)0x762f9ea4, - (q31_t)0x762d34d1, (q31_t)0x762acab6, (q31_t)0x76286051, (q31_t)0x7625f5a3, (q31_t)0x76238aad, (q31_t)0x76211f6e, - (q31_t)0x761eb3e6, (q31_t)0x761c4815, - (q31_t)0x7619dbfb, (q31_t)0x76176f98, (q31_t)0x761502ed, (q31_t)0x761295f9, (q31_t)0x761028bb, (q31_t)0x760dbb35, - (q31_t)0x760b4d67, (q31_t)0x7608df4f, - (q31_t)0x760670ee, (q31_t)0x76040245, (q31_t)0x76019353, (q31_t)0x75ff2418, (q31_t)0x75fcb495, (q31_t)0x75fa44c8, - (q31_t)0x75f7d4b3, (q31_t)0x75f56455, - (q31_t)0x75f2f3ae, (q31_t)0x75f082bf, (q31_t)0x75ee1187, (q31_t)0x75eba006, (q31_t)0x75e92e3c, (q31_t)0x75e6bc2a, - (q31_t)0x75e449ce, (q31_t)0x75e1d72b, - (q31_t)0x75df643e, (q31_t)0x75dcf109, (q31_t)0x75da7d8b, (q31_t)0x75d809c4, (q31_t)0x75d595b4, (q31_t)0x75d3215c, - (q31_t)0x75d0acbc, (q31_t)0x75ce37d2, - (q31_t)0x75cbc2a0, (q31_t)0x75c94d25, (q31_t)0x75c6d762, (q31_t)0x75c46156, (q31_t)0x75c1eb01, (q31_t)0x75bf7464, - (q31_t)0x75bcfd7e, (q31_t)0x75ba864f, - (q31_t)0x75b80ed8, (q31_t)0x75b59718, (q31_t)0x75b31f0f, (q31_t)0x75b0a6be, (q31_t)0x75ae2e25, (q31_t)0x75abb542, - (q31_t)0x75a93c18, (q31_t)0x75a6c2a4, - (q31_t)0x75a448e8, (q31_t)0x75a1cee4, (q31_t)0x759f5496, (q31_t)0x759cda01, (q31_t)0x759a5f22, (q31_t)0x7597e3fc, - (q31_t)0x7595688c, (q31_t)0x7592ecd4, - (q31_t)0x759070d4, (q31_t)0x758df48b, (q31_t)0x758b77fa, (q31_t)0x7588fb20, (q31_t)0x75867dfd, (q31_t)0x75840093, - (q31_t)0x758182df, (q31_t)0x757f04e3, - (q31_t)0x757c869f, (q31_t)0x757a0812, (q31_t)0x7577893d, (q31_t)0x75750a1f, (q31_t)0x75728ab9, (q31_t)0x75700b0a, - (q31_t)0x756d8b13, (q31_t)0x756b0ad3, - (q31_t)0x75688a4b, (q31_t)0x7566097b, (q31_t)0x75638862, (q31_t)0x75610701, (q31_t)0x755e8557, (q31_t)0x755c0365, - (q31_t)0x7559812b, (q31_t)0x7556fea8, - (q31_t)0x75547bdd, (q31_t)0x7551f8c9, (q31_t)0x754f756e, (q31_t)0x754cf1c9, (q31_t)0x754a6ddd, (q31_t)0x7547e9a8, - (q31_t)0x7545652a, (q31_t)0x7542e065, - (q31_t)0x75405b57, (q31_t)0x753dd600, (q31_t)0x753b5061, (q31_t)0x7538ca7b, (q31_t)0x7536444b, (q31_t)0x7533bdd4, - (q31_t)0x75313714, (q31_t)0x752eb00c, - (q31_t)0x752c28bb, (q31_t)0x7529a122, (q31_t)0x75271941, (q31_t)0x75249118, (q31_t)0x752208a7, (q31_t)0x751f7fed, - (q31_t)0x751cf6eb, (q31_t)0x751a6da0, - (q31_t)0x7517e40e, (q31_t)0x75155a33, (q31_t)0x7512d010, (q31_t)0x751045a5, (q31_t)0x750dbaf2, (q31_t)0x750b2ff6, - (q31_t)0x7508a4b2, (q31_t)0x75061926, - (q31_t)0x75038d52, (q31_t)0x75010136, (q31_t)0x74fe74d1, (q31_t)0x74fbe825, (q31_t)0x74f95b30, (q31_t)0x74f6cdf3, - (q31_t)0x74f4406d, (q31_t)0x74f1b2a0, - (q31_t)0x74ef248b, (q31_t)0x74ec962d, (q31_t)0x74ea0787, (q31_t)0x74e7789a, (q31_t)0x74e4e964, (q31_t)0x74e259e6, - (q31_t)0x74dfca20, (q31_t)0x74dd3a11, - (q31_t)0x74daa9bb, (q31_t)0x74d8191d, (q31_t)0x74d58836, (q31_t)0x74d2f708, (q31_t)0x74d06591, (q31_t)0x74cdd3d2, - (q31_t)0x74cb41cc, (q31_t)0x74c8af7d, - (q31_t)0x74c61ce6, (q31_t)0x74c38a07, (q31_t)0x74c0f6e0, (q31_t)0x74be6372, (q31_t)0x74bbcfbb, (q31_t)0x74b93bbc, - (q31_t)0x74b6a775, (q31_t)0x74b412e6, - (q31_t)0x74b17e0f, (q31_t)0x74aee8f0, (q31_t)0x74ac5389, (q31_t)0x74a9bddb, (q31_t)0x74a727e4, (q31_t)0x74a491a5, - (q31_t)0x74a1fb1e, (q31_t)0x749f6450, - (q31_t)0x749ccd39, (q31_t)0x749a35db, (q31_t)0x74979e34, (q31_t)0x74950646, (q31_t)0x74926e10, (q31_t)0x748fd592, - (q31_t)0x748d3ccb, (q31_t)0x748aa3be, - (q31_t)0x74880a68, (q31_t)0x748570ca, (q31_t)0x7482d6e4, (q31_t)0x74803cb7, (q31_t)0x747da242, (q31_t)0x747b0784, - (q31_t)0x74786c7f, (q31_t)0x7475d132, - (q31_t)0x7473359e, (q31_t)0x747099c1, (q31_t)0x746dfd9d, (q31_t)0x746b6131, (q31_t)0x7468c47c, (q31_t)0x74662781, - (q31_t)0x74638a3d, (q31_t)0x7460ecb2, - (q31_t)0x745e4ede, (q31_t)0x745bb0c3, (q31_t)0x74591261, (q31_t)0x745673b6, (q31_t)0x7453d4c4, (q31_t)0x7451358a, - (q31_t)0x744e9608, (q31_t)0x744bf63e, - (q31_t)0x7449562d, (q31_t)0x7446b5d4, (q31_t)0x74441533, (q31_t)0x7441744b, (q31_t)0x743ed31b, (q31_t)0x743c31a3, - (q31_t)0x74398fe3, (q31_t)0x7436eddc, - (q31_t)0x74344b8d, (q31_t)0x7431a8f6, (q31_t)0x742f0618, (q31_t)0x742c62f2, (q31_t)0x7429bf84, (q31_t)0x74271bcf, - (q31_t)0x742477d2, (q31_t)0x7421d38e, - (q31_t)0x741f2f01, (q31_t)0x741c8a2d, (q31_t)0x7419e512, (q31_t)0x74173faf, (q31_t)0x74149a04, (q31_t)0x7411f412, - (q31_t)0x740f4dd8, (q31_t)0x740ca756, - (q31_t)0x740a008d, (q31_t)0x7407597d, (q31_t)0x7404b224, (q31_t)0x74020a85, (q31_t)0x73ff629d, (q31_t)0x73fcba6e, - (q31_t)0x73fa11f8, (q31_t)0x73f7693a, - (q31_t)0x73f4c034, (q31_t)0x73f216e7, (q31_t)0x73ef6d53, (q31_t)0x73ecc377, (q31_t)0x73ea1953, (q31_t)0x73e76ee8, - (q31_t)0x73e4c435, (q31_t)0x73e2193b, - (q31_t)0x73df6df9, (q31_t)0x73dcc270, (q31_t)0x73da16a0, (q31_t)0x73d76a88, (q31_t)0x73d4be28, (q31_t)0x73d21182, - (q31_t)0x73cf6493, (q31_t)0x73ccb75d, - (q31_t)0x73ca09e0, (q31_t)0x73c75c1c, (q31_t)0x73c4ae10, (q31_t)0x73c1ffbc, (q31_t)0x73bf5121, (q31_t)0x73bca23f, - (q31_t)0x73b9f315, (q31_t)0x73b743a4, - (q31_t)0x73b493ec, (q31_t)0x73b1e3ec, (q31_t)0x73af33a5, (q31_t)0x73ac8316, (q31_t)0x73a9d240, (q31_t)0x73a72123, - (q31_t)0x73a46fbf, (q31_t)0x73a1be13, - (q31_t)0x739f0c20, (q31_t)0x739c59e5, (q31_t)0x7399a763, (q31_t)0x7396f49a, (q31_t)0x73944189, (q31_t)0x73918e32, - (q31_t)0x738eda93, (q31_t)0x738c26ac, - (q31_t)0x7389727f, (q31_t)0x7386be0a, (q31_t)0x7384094e, (q31_t)0x7381544a, (q31_t)0x737e9f00, (q31_t)0x737be96e, - (q31_t)0x73793395, (q31_t)0x73767d74, - (q31_t)0x7373c70d, (q31_t)0x7371105e, (q31_t)0x736e5968, (q31_t)0x736ba22b, (q31_t)0x7368eaa6, (q31_t)0x736632db, - (q31_t)0x73637ac8, (q31_t)0x7360c26e, - (q31_t)0x735e09cd, (q31_t)0x735b50e4, (q31_t)0x735897b5, (q31_t)0x7355de3e, (q31_t)0x73532481, (q31_t)0x73506a7c, - (q31_t)0x734db030, (q31_t)0x734af59d, - (q31_t)0x73483ac2, (q31_t)0x73457fa1, (q31_t)0x7342c438, (q31_t)0x73400889, (q31_t)0x733d4c92, (q31_t)0x733a9054, - (q31_t)0x7337d3d0, (q31_t)0x73351704, - (q31_t)0x733259f1, (q31_t)0x732f9c97, (q31_t)0x732cdef6, (q31_t)0x732a210d, (q31_t)0x732762de, (q31_t)0x7324a468, - (q31_t)0x7321e5ab, (q31_t)0x731f26a7, - (q31_t)0x731c675b, (q31_t)0x7319a7c9, (q31_t)0x7316e7f0, (q31_t)0x731427cf, (q31_t)0x73116768, (q31_t)0x730ea6ba, - (q31_t)0x730be5c5, (q31_t)0x73092489, - (q31_t)0x73066306, (q31_t)0x7303a13b, (q31_t)0x7300df2a, (q31_t)0x72fe1cd2, (q31_t)0x72fb5a34, (q31_t)0x72f8974e, - (q31_t)0x72f5d421, (q31_t)0x72f310ad, - (q31_t)0x72f04cf3, (q31_t)0x72ed88f1, (q31_t)0x72eac4a9, (q31_t)0x72e8001a, (q31_t)0x72e53b44, (q31_t)0x72e27627, - (q31_t)0x72dfb0c3, (q31_t)0x72dceb18, - (q31_t)0x72da2526, (q31_t)0x72d75eee, (q31_t)0x72d4986f, (q31_t)0x72d1d1a9, (q31_t)0x72cf0a9c, (q31_t)0x72cc4348, - (q31_t)0x72c97bad, (q31_t)0x72c6b3cc, - (q31_t)0x72c3eba4, (q31_t)0x72c12335, (q31_t)0x72be5a7f, (q31_t)0x72bb9183, (q31_t)0x72b8c83f, (q31_t)0x72b5feb5, - (q31_t)0x72b334e4, (q31_t)0x72b06acd, - (q31_t)0x72ada06f, (q31_t)0x72aad5c9, (q31_t)0x72a80ade, (q31_t)0x72a53fab, (q31_t)0x72a27432, (q31_t)0x729fa872, - (q31_t)0x729cdc6b, (q31_t)0x729a101e, - (q31_t)0x7297438a, (q31_t)0x729476af, (q31_t)0x7291a98e, (q31_t)0x728edc26, (q31_t)0x728c0e77, (q31_t)0x72894082, - (q31_t)0x72867245, (q31_t)0x7283a3c3, - (q31_t)0x7280d4f9, (q31_t)0x727e05e9, (q31_t)0x727b3693, (q31_t)0x727866f6, (q31_t)0x72759712, (q31_t)0x7272c6e7, - (q31_t)0x726ff676, (q31_t)0x726d25bf, - (q31_t)0x726a54c1, (q31_t)0x7267837c, (q31_t)0x7264b1f0, (q31_t)0x7261e01e, (q31_t)0x725f0e06, (q31_t)0x725c3ba7, - (q31_t)0x72596901, (q31_t)0x72569615, - (q31_t)0x7253c2e3, (q31_t)0x7250ef6a, (q31_t)0x724e1baa, (q31_t)0x724b47a4, (q31_t)0x72487357, (q31_t)0x72459ec4, - (q31_t)0x7242c9ea, (q31_t)0x723ff4ca, - (q31_t)0x723d1f63, (q31_t)0x723a49b6, (q31_t)0x723773c3, (q31_t)0x72349d89, (q31_t)0x7231c708, (q31_t)0x722ef041, - (q31_t)0x722c1934, (q31_t)0x722941e0, - (q31_t)0x72266a46, (q31_t)0x72239266, (q31_t)0x7220ba3f, (q31_t)0x721de1d1, (q31_t)0x721b091d, (q31_t)0x72183023, - (q31_t)0x721556e3, (q31_t)0x72127d5c, - (q31_t)0x720fa38e, (q31_t)0x720cc97b, (q31_t)0x7209ef21, (q31_t)0x72071480, (q31_t)0x7204399a, (q31_t)0x72015e6d, - (q31_t)0x71fe82f9, (q31_t)0x71fba740, - (q31_t)0x71f8cb40, (q31_t)0x71f5eefa, (q31_t)0x71f3126d, (q31_t)0x71f0359a, (q31_t)0x71ed5881, (q31_t)0x71ea7b22, - (q31_t)0x71e79d7c, (q31_t)0x71e4bf90, - (q31_t)0x71e1e15e, (q31_t)0x71df02e5, (q31_t)0x71dc2427, (q31_t)0x71d94522, (q31_t)0x71d665d6, (q31_t)0x71d38645, - (q31_t)0x71d0a66d, (q31_t)0x71cdc650, - (q31_t)0x71cae5ec, (q31_t)0x71c80542, (q31_t)0x71c52451, (q31_t)0x71c2431b, (q31_t)0x71bf619e, (q31_t)0x71bc7fdb, - (q31_t)0x71b99dd2, (q31_t)0x71b6bb83, - (q31_t)0x71b3d8ed, (q31_t)0x71b0f612, (q31_t)0x71ae12f0, (q31_t)0x71ab2f89, (q31_t)0x71a84bdb, (q31_t)0x71a567e7, - (q31_t)0x71a283ad, (q31_t)0x719f9f2c, - (q31_t)0x719cba66, (q31_t)0x7199d55a, (q31_t)0x7196f008, (q31_t)0x71940a6f, (q31_t)0x71912490, (q31_t)0x718e3e6c, - (q31_t)0x718b5801, (q31_t)0x71887151, - (q31_t)0x71858a5a, (q31_t)0x7182a31d, (q31_t)0x717fbb9a, (q31_t)0x717cd3d2, (q31_t)0x7179ebc3, (q31_t)0x7177036e, - (q31_t)0x71741ad3, (q31_t)0x717131f3, - (q31_t)0x716e48cc, (q31_t)0x716b5f5f, (q31_t)0x716875ad, (q31_t)0x71658bb4, (q31_t)0x7162a175, (q31_t)0x715fb6f1, - (q31_t)0x715ccc26, (q31_t)0x7159e116, - (q31_t)0x7156f5c0, (q31_t)0x71540a24, (q31_t)0x71511e42, (q31_t)0x714e321a, (q31_t)0x714b45ac, (q31_t)0x714858f8, - (q31_t)0x71456bfe, (q31_t)0x71427ebf, - (q31_t)0x713f9139, (q31_t)0x713ca36e, (q31_t)0x7139b55d, (q31_t)0x7136c706, (q31_t)0x7133d869, (q31_t)0x7130e987, - (q31_t)0x712dfa5e, (q31_t)0x712b0af0, - (q31_t)0x71281b3c, (q31_t)0x71252b42, (q31_t)0x71223b02, (q31_t)0x711f4a7d, (q31_t)0x711c59b2, (q31_t)0x711968a1, - (q31_t)0x7116774a, (q31_t)0x711385ad, - (q31_t)0x711093cb, (q31_t)0x710da1a3, (q31_t)0x710aaf35, (q31_t)0x7107bc82, (q31_t)0x7104c989, (q31_t)0x7101d64a, - (q31_t)0x70fee2c5, (q31_t)0x70fbeefb, - (q31_t)0x70f8faeb, (q31_t)0x70f60695, (q31_t)0x70f311fa, (q31_t)0x70f01d19, (q31_t)0x70ed27f2, (q31_t)0x70ea3286, - (q31_t)0x70e73cd4, (q31_t)0x70e446dc, - (q31_t)0x70e1509f, (q31_t)0x70de5a1c, (q31_t)0x70db6353, (q31_t)0x70d86c45, (q31_t)0x70d574f1, (q31_t)0x70d27d58, - (q31_t)0x70cf8579, (q31_t)0x70cc8d54, - (q31_t)0x70c994ea, (q31_t)0x70c69c3a, (q31_t)0x70c3a345, (q31_t)0x70c0aa0a, (q31_t)0x70bdb08a, (q31_t)0x70bab6c4, - (q31_t)0x70b7bcb8, (q31_t)0x70b4c267, - (q31_t)0x70b1c7d1, (q31_t)0x70aeccf5, (q31_t)0x70abd1d3, (q31_t)0x70a8d66c, (q31_t)0x70a5dac0, (q31_t)0x70a2dece, - (q31_t)0x709fe296, (q31_t)0x709ce619, - (q31_t)0x7099e957, (q31_t)0x7096ec4f, (q31_t)0x7093ef01, (q31_t)0x7090f16e, (q31_t)0x708df396, (q31_t)0x708af579, - (q31_t)0x7087f715, (q31_t)0x7084f86d, - (q31_t)0x7081f97f, (q31_t)0x707efa4c, (q31_t)0x707bfad3, (q31_t)0x7078fb15, (q31_t)0x7075fb11, (q31_t)0x7072fac9, - (q31_t)0x706ffa3a, (q31_t)0x706cf967, - (q31_t)0x7069f84e, (q31_t)0x7066f6f0, (q31_t)0x7063f54c, (q31_t)0x7060f363, (q31_t)0x705df135, (q31_t)0x705aeec1, - (q31_t)0x7057ec08, (q31_t)0x7054e90a, - (q31_t)0x7051e5c7, (q31_t)0x704ee23e, (q31_t)0x704bde70, (q31_t)0x7048da5d, (q31_t)0x7045d604, (q31_t)0x7042d166, - (q31_t)0x703fcc83, (q31_t)0x703cc75b, - (q31_t)0x7039c1ed, (q31_t)0x7036bc3b, (q31_t)0x7033b643, (q31_t)0x7030b005, (q31_t)0x702da983, (q31_t)0x702aa2bb, - (q31_t)0x70279baf, (q31_t)0x7024945d, - (q31_t)0x70218cc6, (q31_t)0x701e84e9, (q31_t)0x701b7cc8, (q31_t)0x70187461, (q31_t)0x70156bb5, (q31_t)0x701262c4, - (q31_t)0x700f598e, (q31_t)0x700c5013, - (q31_t)0x70094653, (q31_t)0x70063c4e, (q31_t)0x70033203, (q31_t)0x70002774, (q31_t)0x6ffd1c9f, (q31_t)0x6ffa1185, - (q31_t)0x6ff70626, (q31_t)0x6ff3fa82, - (q31_t)0x6ff0ee99, (q31_t)0x6fede26b, (q31_t)0x6fead5f8, (q31_t)0x6fe7c940, (q31_t)0x6fe4bc43, (q31_t)0x6fe1af01, - (q31_t)0x6fdea17a, (q31_t)0x6fdb93ae, - (q31_t)0x6fd8859d, (q31_t)0x6fd57746, (q31_t)0x6fd268ab, (q31_t)0x6fcf59cb, (q31_t)0x6fcc4aa6, (q31_t)0x6fc93b3c, - (q31_t)0x6fc62b8d, (q31_t)0x6fc31b99, - (q31_t)0x6fc00b60, (q31_t)0x6fbcfae2, (q31_t)0x6fb9ea20, (q31_t)0x6fb6d918, (q31_t)0x6fb3c7cb, (q31_t)0x6fb0b63a, - (q31_t)0x6fada464, (q31_t)0x6faa9248, - (q31_t)0x6fa77fe8, (q31_t)0x6fa46d43, (q31_t)0x6fa15a59, (q31_t)0x6f9e472b, (q31_t)0x6f9b33b7, (q31_t)0x6f981fff, - (q31_t)0x6f950c01, (q31_t)0x6f91f7bf, - (q31_t)0x6f8ee338, (q31_t)0x6f8bce6c, (q31_t)0x6f88b95c, (q31_t)0x6f85a407, (q31_t)0x6f828e6c, (q31_t)0x6f7f788d, - (q31_t)0x6f7c626a, (q31_t)0x6f794c01, - (q31_t)0x6f763554, (q31_t)0x6f731e62, (q31_t)0x6f70072b, (q31_t)0x6f6cefb0, (q31_t)0x6f69d7f0, (q31_t)0x6f66bfeb, - (q31_t)0x6f63a7a1, (q31_t)0x6f608f13, - (q31_t)0x6f5d7640, (q31_t)0x6f5a5d28, (q31_t)0x6f5743cb, (q31_t)0x6f542a2a, (q31_t)0x6f511044, (q31_t)0x6f4df61a, - (q31_t)0x6f4adbab, (q31_t)0x6f47c0f7, - (q31_t)0x6f44a5ff, (q31_t)0x6f418ac2, (q31_t)0x6f3e6f40, (q31_t)0x6f3b537a, (q31_t)0x6f38376f, (q31_t)0x6f351b1f, - (q31_t)0x6f31fe8b, (q31_t)0x6f2ee1b2, - (q31_t)0x6f2bc495, (q31_t)0x6f28a733, (q31_t)0x6f25898d, (q31_t)0x6f226ba2, (q31_t)0x6f1f4d72, (q31_t)0x6f1c2efe, - (q31_t)0x6f191045, (q31_t)0x6f15f148, - (q31_t)0x6f12d206, (q31_t)0x6f0fb280, (q31_t)0x6f0c92b6, (q31_t)0x6f0972a6, (q31_t)0x6f065253, (q31_t)0x6f0331ba, - (q31_t)0x6f0010de, (q31_t)0x6efcefbd, - (q31_t)0x6ef9ce57, (q31_t)0x6ef6acad, (q31_t)0x6ef38abe, (q31_t)0x6ef0688b, (q31_t)0x6eed4614, (q31_t)0x6eea2358, - (q31_t)0x6ee70058, (q31_t)0x6ee3dd13, - (q31_t)0x6ee0b98a, (q31_t)0x6edd95bd, (q31_t)0x6eda71ab, (q31_t)0x6ed74d55, (q31_t)0x6ed428ba, (q31_t)0x6ed103db, - (q31_t)0x6ecddeb8, (q31_t)0x6ecab950, - (q31_t)0x6ec793a4, (q31_t)0x6ec46db4, (q31_t)0x6ec1477f, (q31_t)0x6ebe2106, (q31_t)0x6ebafa49, (q31_t)0x6eb7d347, - (q31_t)0x6eb4ac02, (q31_t)0x6eb18477, - (q31_t)0x6eae5ca9, (q31_t)0x6eab3496, (q31_t)0x6ea80c3f, (q31_t)0x6ea4e3a4, (q31_t)0x6ea1bac4, (q31_t)0x6e9e91a1, - (q31_t)0x6e9b6839, (q31_t)0x6e983e8d, - (q31_t)0x6e95149c, (q31_t)0x6e91ea67, (q31_t)0x6e8ebfef, (q31_t)0x6e8b9532, (q31_t)0x6e886a30, (q31_t)0x6e853eeb, - (q31_t)0x6e821361, (q31_t)0x6e7ee794, - (q31_t)0x6e7bbb82, (q31_t)0x6e788f2c, (q31_t)0x6e756291, (q31_t)0x6e7235b3, (q31_t)0x6e6f0890, (q31_t)0x6e6bdb2a, - (q31_t)0x6e68ad7f, (q31_t)0x6e657f90, - (q31_t)0x6e62515d, (q31_t)0x6e5f22e6, (q31_t)0x6e5bf42b, (q31_t)0x6e58c52c, (q31_t)0x6e5595e9, (q31_t)0x6e526662, - (q31_t)0x6e4f3696, (q31_t)0x6e4c0687, - (q31_t)0x6e48d633, (q31_t)0x6e45a59c, (q31_t)0x6e4274c1, (q31_t)0x6e3f43a1, (q31_t)0x6e3c123e, (q31_t)0x6e38e096, - (q31_t)0x6e35aeab, (q31_t)0x6e327c7b, - (q31_t)0x6e2f4a08, (q31_t)0x6e2c1750, (q31_t)0x6e28e455, (q31_t)0x6e25b115, (q31_t)0x6e227d92, (q31_t)0x6e1f49cb, - (q31_t)0x6e1c15c0, (q31_t)0x6e18e171, - (q31_t)0x6e15acde, (q31_t)0x6e127807, (q31_t)0x6e0f42ec, (q31_t)0x6e0c0d8e, (q31_t)0x6e08d7eb, (q31_t)0x6e05a205, - (q31_t)0x6e026bda, (q31_t)0x6dff356c, - (q31_t)0x6dfbfeba, (q31_t)0x6df8c7c4, (q31_t)0x6df5908b, (q31_t)0x6df2590d, (q31_t)0x6def214c, (q31_t)0x6debe947, - (q31_t)0x6de8b0fe, (q31_t)0x6de57871, - (q31_t)0x6de23fa0, (q31_t)0x6ddf068c, (q31_t)0x6ddbcd34, (q31_t)0x6dd89398, (q31_t)0x6dd559b9, (q31_t)0x6dd21f95, - (q31_t)0x6dcee52e, (q31_t)0x6dcbaa83, - (q31_t)0x6dc86f95, (q31_t)0x6dc53462, (q31_t)0x6dc1f8ec, (q31_t)0x6dbebd33, (q31_t)0x6dbb8135, (q31_t)0x6db844f4, - (q31_t)0x6db5086f, (q31_t)0x6db1cba7, - (q31_t)0x6dae8e9b, (q31_t)0x6dab514b, (q31_t)0x6da813b8, (q31_t)0x6da4d5e1, (q31_t)0x6da197c6, (q31_t)0x6d9e5968, - (q31_t)0x6d9b1ac6, (q31_t)0x6d97dbe0, - (q31_t)0x6d949cb7, (q31_t)0x6d915d4a, (q31_t)0x6d8e1d9a, (q31_t)0x6d8adda6, (q31_t)0x6d879d6e, (q31_t)0x6d845cf3, - (q31_t)0x6d811c35, (q31_t)0x6d7ddb33, - (q31_t)0x6d7a99ed, (q31_t)0x6d775864, (q31_t)0x6d741697, (q31_t)0x6d70d487, (q31_t)0x6d6d9233, (q31_t)0x6d6a4f9c, - (q31_t)0x6d670cc1, (q31_t)0x6d63c9a3, - (q31_t)0x6d608641, (q31_t)0x6d5d429c, (q31_t)0x6d59feb3, (q31_t)0x6d56ba87, (q31_t)0x6d537617, (q31_t)0x6d503164, - (q31_t)0x6d4cec6e, (q31_t)0x6d49a734, - (q31_t)0x6d4661b7, (q31_t)0x6d431bf6, (q31_t)0x6d3fd5f2, (q31_t)0x6d3c8fab, (q31_t)0x6d394920, (q31_t)0x6d360252, - (q31_t)0x6d32bb40, (q31_t)0x6d2f73eb, - (q31_t)0x6d2c2c53, (q31_t)0x6d28e477, (q31_t)0x6d259c58, (q31_t)0x6d2253f6, (q31_t)0x6d1f0b50, (q31_t)0x6d1bc267, - (q31_t)0x6d18793b, (q31_t)0x6d152fcc, - (q31_t)0x6d11e619, (q31_t)0x6d0e9c23, (q31_t)0x6d0b51e9, (q31_t)0x6d08076d, (q31_t)0x6d04bcad, (q31_t)0x6d0171aa, - (q31_t)0x6cfe2663, (q31_t)0x6cfadada, - (q31_t)0x6cf78f0d, (q31_t)0x6cf442fd, (q31_t)0x6cf0f6aa, (q31_t)0x6cedaa13, (q31_t)0x6cea5d3a, (q31_t)0x6ce7101d, - (q31_t)0x6ce3c2bd, (q31_t)0x6ce0751a, - (q31_t)0x6cdd2733, (q31_t)0x6cd9d90a, (q31_t)0x6cd68a9d, (q31_t)0x6cd33bed, (q31_t)0x6ccfecfa, (q31_t)0x6ccc9dc4, - (q31_t)0x6cc94e4b, (q31_t)0x6cc5fe8f, - (q31_t)0x6cc2ae90, (q31_t)0x6cbf5e4d, (q31_t)0x6cbc0dc8, (q31_t)0x6cb8bcff, (q31_t)0x6cb56bf4, (q31_t)0x6cb21aa5, - (q31_t)0x6caec913, (q31_t)0x6cab773e, - (q31_t)0x6ca82527, (q31_t)0x6ca4d2cc, (q31_t)0x6ca1802e, (q31_t)0x6c9e2d4d, (q31_t)0x6c9ada29, (q31_t)0x6c9786c2, - (q31_t)0x6c943318, (q31_t)0x6c90df2c, - (q31_t)0x6c8d8afc, (q31_t)0x6c8a3689, (q31_t)0x6c86e1d3, (q31_t)0x6c838cdb, (q31_t)0x6c80379f, (q31_t)0x6c7ce220, - (q31_t)0x6c798c5f, (q31_t)0x6c76365b, - (q31_t)0x6c72e013, (q31_t)0x6c6f8989, (q31_t)0x6c6c32bc, (q31_t)0x6c68dbac, (q31_t)0x6c658459, (q31_t)0x6c622cc4, - (q31_t)0x6c5ed4eb, (q31_t)0x6c5b7cd0, - (q31_t)0x6c582472, (q31_t)0x6c54cbd1, (q31_t)0x6c5172ed, (q31_t)0x6c4e19c6, (q31_t)0x6c4ac05d, (q31_t)0x6c4766b0, - (q31_t)0x6c440cc1, (q31_t)0x6c40b28f, - (q31_t)0x6c3d581b, (q31_t)0x6c39fd63, (q31_t)0x6c36a269, (q31_t)0x6c33472c, (q31_t)0x6c2febad, (q31_t)0x6c2c8fea, - (q31_t)0x6c2933e5, (q31_t)0x6c25d79d, - (q31_t)0x6c227b13, (q31_t)0x6c1f1e45, (q31_t)0x6c1bc136, (q31_t)0x6c1863e3, (q31_t)0x6c15064e, (q31_t)0x6c11a876, - (q31_t)0x6c0e4a5b, (q31_t)0x6c0aebfe, - (q31_t)0x6c078d5e, (q31_t)0x6c042e7b, (q31_t)0x6c00cf56, (q31_t)0x6bfd6fee, (q31_t)0x6bfa1044, (q31_t)0x6bf6b056, - (q31_t)0x6bf35027, (q31_t)0x6befefb5, - (q31_t)0x6bec8f00, (q31_t)0x6be92e08, (q31_t)0x6be5ccce, (q31_t)0x6be26b52, (q31_t)0x6bdf0993, (q31_t)0x6bdba791, - (q31_t)0x6bd8454d, (q31_t)0x6bd4e2c6, - (q31_t)0x6bd17ffd, (q31_t)0x6bce1cf1, (q31_t)0x6bcab9a3, (q31_t)0x6bc75613, (q31_t)0x6bc3f23f, (q31_t)0x6bc08e2a, - (q31_t)0x6bbd29d2, (q31_t)0x6bb9c537, - (q31_t)0x6bb6605a, (q31_t)0x6bb2fb3b, (q31_t)0x6baf95d9, (q31_t)0x6bac3034, (q31_t)0x6ba8ca4e, (q31_t)0x6ba56425, - (q31_t)0x6ba1fdb9, (q31_t)0x6b9e970b, - (q31_t)0x6b9b301b, (q31_t)0x6b97c8e8, (q31_t)0x6b946173, (q31_t)0x6b90f9bc, (q31_t)0x6b8d91c2, (q31_t)0x6b8a2986, - (q31_t)0x6b86c107, (q31_t)0x6b835846, - (q31_t)0x6b7fef43, (q31_t)0x6b7c85fe, (q31_t)0x6b791c76, (q31_t)0x6b75b2ac, (q31_t)0x6b7248a0, (q31_t)0x6b6ede51, - (q31_t)0x6b6b73c0, (q31_t)0x6b6808ed, - (q31_t)0x6b649dd8, (q31_t)0x6b613280, (q31_t)0x6b5dc6e6, (q31_t)0x6b5a5b0a, (q31_t)0x6b56eeec, (q31_t)0x6b53828b, - (q31_t)0x6b5015e9, (q31_t)0x6b4ca904, - (q31_t)0x6b493bdd, (q31_t)0x6b45ce73, (q31_t)0x6b4260c8, (q31_t)0x6b3ef2da, (q31_t)0x6b3b84ab, (q31_t)0x6b381639, - (q31_t)0x6b34a785, (q31_t)0x6b31388e, - (q31_t)0x6b2dc956, (q31_t)0x6b2a59dc, (q31_t)0x6b26ea1f, (q31_t)0x6b237a21, (q31_t)0x6b2009e0, (q31_t)0x6b1c995d, - (q31_t)0x6b192898, (q31_t)0x6b15b791, - (q31_t)0x6b124648, (q31_t)0x6b0ed4bd, (q31_t)0x6b0b62f0, (q31_t)0x6b07f0e1, (q31_t)0x6b047e90, (q31_t)0x6b010bfd, - (q31_t)0x6afd9928, (q31_t)0x6afa2610, - (q31_t)0x6af6b2b7, (q31_t)0x6af33f1c, (q31_t)0x6aefcb3f, (q31_t)0x6aec5720, (q31_t)0x6ae8e2bf, (q31_t)0x6ae56e1c, - (q31_t)0x6ae1f937, (q31_t)0x6ade8410, - (q31_t)0x6adb0ea8, (q31_t)0x6ad798fd, (q31_t)0x6ad42311, (q31_t)0x6ad0ace2, (q31_t)0x6acd3672, (q31_t)0x6ac9bfc0, - (q31_t)0x6ac648cb, (q31_t)0x6ac2d195, - (q31_t)0x6abf5a1e, (q31_t)0x6abbe264, (q31_t)0x6ab86a68, (q31_t)0x6ab4f22b, (q31_t)0x6ab179ac, (q31_t)0x6aae00eb, - (q31_t)0x6aaa87e8, (q31_t)0x6aa70ea4, - (q31_t)0x6aa3951d, (q31_t)0x6aa01b55, (q31_t)0x6a9ca14b, (q31_t)0x6a992700, (q31_t)0x6a95ac72, (q31_t)0x6a9231a3, - (q31_t)0x6a8eb692, (q31_t)0x6a8b3b3f, - (q31_t)0x6a87bfab, (q31_t)0x6a8443d5, (q31_t)0x6a80c7bd, (q31_t)0x6a7d4b64, (q31_t)0x6a79cec8, (q31_t)0x6a7651ec, - (q31_t)0x6a72d4cd, (q31_t)0x6a6f576d, - (q31_t)0x6a6bd9cb, (q31_t)0x6a685be8, (q31_t)0x6a64ddc2, (q31_t)0x6a615f5c, (q31_t)0x6a5de0b3, (q31_t)0x6a5a61c9, - (q31_t)0x6a56e29e, (q31_t)0x6a536331, - (q31_t)0x6a4fe382, (q31_t)0x6a4c6391, (q31_t)0x6a48e360, (q31_t)0x6a4562ec, (q31_t)0x6a41e237, (q31_t)0x6a3e6140, - (q31_t)0x6a3ae008, (q31_t)0x6a375e8f, - (q31_t)0x6a33dcd4, (q31_t)0x6a305ad7, (q31_t)0x6a2cd899, (q31_t)0x6a295619, (q31_t)0x6a25d358, (q31_t)0x6a225055, - (q31_t)0x6a1ecd11, (q31_t)0x6a1b498c, - (q31_t)0x6a17c5c5, (q31_t)0x6a1441bc, (q31_t)0x6a10bd72, (q31_t)0x6a0d38e7, (q31_t)0x6a09b41a, (q31_t)0x6a062f0c, - (q31_t)0x6a02a9bc, (q31_t)0x69ff242b, - (q31_t)0x69fb9e59, (q31_t)0x69f81845, (q31_t)0x69f491f0, (q31_t)0x69f10b5a, (q31_t)0x69ed8482, (q31_t)0x69e9fd69, - (q31_t)0x69e6760f, (q31_t)0x69e2ee73, - (q31_t)0x69df6696, (q31_t)0x69dbde77, (q31_t)0x69d85618, (q31_t)0x69d4cd77, (q31_t)0x69d14494, (q31_t)0x69cdbb71, - (q31_t)0x69ca320c, (q31_t)0x69c6a866, - (q31_t)0x69c31e7f, (q31_t)0x69bf9456, (q31_t)0x69bc09ec, (q31_t)0x69b87f41, (q31_t)0x69b4f455, (q31_t)0x69b16928, - (q31_t)0x69adddb9, (q31_t)0x69aa5209, - (q31_t)0x69a6c618, (q31_t)0x69a339e6, (q31_t)0x699fad73, (q31_t)0x699c20be, (q31_t)0x699893c9, (q31_t)0x69950692, - (q31_t)0x6991791a, (q31_t)0x698deb61, - (q31_t)0x698a5d67, (q31_t)0x6986cf2c, (q31_t)0x698340af, (q31_t)0x697fb1f2, (q31_t)0x697c22f3, (q31_t)0x697893b4, - (q31_t)0x69750433, (q31_t)0x69717472, - (q31_t)0x696de46f, (q31_t)0x696a542b, (q31_t)0x6966c3a6, (q31_t)0x696332e1, (q31_t)0x695fa1da, (q31_t)0x695c1092, - (q31_t)0x69587f09, (q31_t)0x6954ed40, - (q31_t)0x69515b35, (q31_t)0x694dc8e9, (q31_t)0x694a365c, (q31_t)0x6946a38f, (q31_t)0x69431080, (q31_t)0x693f7d31, - (q31_t)0x693be9a0, (q31_t)0x693855cf, - (q31_t)0x6934c1bd, (q31_t)0x69312d6a, (q31_t)0x692d98d6, (q31_t)0x692a0401, (q31_t)0x69266eeb, (q31_t)0x6922d995, - (q31_t)0x691f43fd, (q31_t)0x691bae25, - (q31_t)0x6918180c, (q31_t)0x691481b2, (q31_t)0x6910eb17, (q31_t)0x690d543b, (q31_t)0x6909bd1f, (q31_t)0x690625c2, - (q31_t)0x69028e24, (q31_t)0x68fef645, - (q31_t)0x68fb5e25, (q31_t)0x68f7c5c5, (q31_t)0x68f42d24, (q31_t)0x68f09442, (q31_t)0x68ecfb20, (q31_t)0x68e961bd, - (q31_t)0x68e5c819, (q31_t)0x68e22e34, - (q31_t)0x68de940f, (q31_t)0x68daf9a9, (q31_t)0x68d75f02, (q31_t)0x68d3c41b, (q31_t)0x68d028f2, (q31_t)0x68cc8d8a, - (q31_t)0x68c8f1e0, (q31_t)0x68c555f6, - (q31_t)0x68c1b9cc, (q31_t)0x68be1d61, (q31_t)0x68ba80b5, (q31_t)0x68b6e3c8, (q31_t)0x68b3469b, (q31_t)0x68afa92e, - (q31_t)0x68ac0b7f, (q31_t)0x68a86d91, - (q31_t)0x68a4cf61, (q31_t)0x68a130f1, (q31_t)0x689d9241, (q31_t)0x6899f350, (q31_t)0x6896541f, (q31_t)0x6892b4ad, - (q31_t)0x688f14fa, (q31_t)0x688b7507, - (q31_t)0x6887d4d4, (q31_t)0x68843460, (q31_t)0x688093ab, (q31_t)0x687cf2b6, (q31_t)0x68795181, (q31_t)0x6875b00b, - (q31_t)0x68720e55, (q31_t)0x686e6c5e, - (q31_t)0x686aca27, (q31_t)0x686727b0, (q31_t)0x686384f8, (q31_t)0x685fe200, (q31_t)0x685c3ec7, (q31_t)0x68589b4e, - (q31_t)0x6854f795, (q31_t)0x6851539b, - (q31_t)0x684daf61, (q31_t)0x684a0ae6, (q31_t)0x6846662c, (q31_t)0x6842c131, (q31_t)0x683f1bf5, (q31_t)0x683b7679, - (q31_t)0x6837d0bd, (q31_t)0x68342ac1, - (q31_t)0x68308485, (q31_t)0x682cde08, (q31_t)0x6829374b, (q31_t)0x6825904d, (q31_t)0x6821e910, (q31_t)0x681e4192, - (q31_t)0x681a99d4, (q31_t)0x6816f1d6, - (q31_t)0x68134997, (q31_t)0x680fa118, (q31_t)0x680bf85a, (q31_t)0x68084f5a, (q31_t)0x6804a61b, (q31_t)0x6800fc9c, - (q31_t)0x67fd52dc, (q31_t)0x67f9a8dd, - (q31_t)0x67f5fe9d, (q31_t)0x67f2541d, (q31_t)0x67eea95d, (q31_t)0x67eafe5d, (q31_t)0x67e7531c, (q31_t)0x67e3a79c, - (q31_t)0x67dffbdc, (q31_t)0x67dc4fdb, - (q31_t)0x67d8a39a, (q31_t)0x67d4f71a, (q31_t)0x67d14a59, (q31_t)0x67cd9d58, (q31_t)0x67c9f017, (q31_t)0x67c64297, - (q31_t)0x67c294d6, (q31_t)0x67bee6d5, - (q31_t)0x67bb3894, (q31_t)0x67b78a13, (q31_t)0x67b3db53, (q31_t)0x67b02c52, (q31_t)0x67ac7d11, (q31_t)0x67a8cd91, - (q31_t)0x67a51dd0, (q31_t)0x67a16dcf, - (q31_t)0x679dbd8f, (q31_t)0x679a0d0f, (q31_t)0x67965c4e, (q31_t)0x6792ab4e, (q31_t)0x678efa0e, (q31_t)0x678b488e, - (q31_t)0x678796ce, (q31_t)0x6783e4cf, - (q31_t)0x6780328f, (q31_t)0x677c8010, (q31_t)0x6778cd50, (q31_t)0x67751a51, (q31_t)0x67716713, (q31_t)0x676db394, - (q31_t)0x6769ffd5, (q31_t)0x67664bd7, - (q31_t)0x67629799, (q31_t)0x675ee31b, (q31_t)0x675b2e5e, (q31_t)0x67577960, (q31_t)0x6753c423, (q31_t)0x67500ea7, - (q31_t)0x674c58ea, (q31_t)0x6748a2ee, - (q31_t)0x6744ecb2, (q31_t)0x67413636, (q31_t)0x673d7f7b, (q31_t)0x6739c880, (q31_t)0x67361145, (q31_t)0x673259ca, - (q31_t)0x672ea210, (q31_t)0x672aea17, - (q31_t)0x672731dd, (q31_t)0x67237964, (q31_t)0x671fc0ac, (q31_t)0x671c07b4, (q31_t)0x67184e7c, (q31_t)0x67149504, - (q31_t)0x6710db4d, (q31_t)0x670d2157, - (q31_t)0x67096721, (q31_t)0x6705acab, (q31_t)0x6701f1f6, (q31_t)0x66fe3701, (q31_t)0x66fa7bcd, (q31_t)0x66f6c059, - (q31_t)0x66f304a6, (q31_t)0x66ef48b3, - (q31_t)0x66eb8c80, (q31_t)0x66e7d00f, (q31_t)0x66e4135d, (q31_t)0x66e0566c, (q31_t)0x66dc993c, (q31_t)0x66d8dbcd, - (q31_t)0x66d51e1d, (q31_t)0x66d1602f, - (q31_t)0x66cda201, (q31_t)0x66c9e393, (q31_t)0x66c624e7, (q31_t)0x66c265fa, (q31_t)0x66bea6cf, (q31_t)0x66bae764, - (q31_t)0x66b727ba, (q31_t)0x66b367d0, - (q31_t)0x66afa7a7, (q31_t)0x66abe73f, (q31_t)0x66a82697, (q31_t)0x66a465b0, (q31_t)0x66a0a489, (q31_t)0x669ce324, - (q31_t)0x6699217f, (q31_t)0x66955f9b, - (q31_t)0x66919d77, (q31_t)0x668ddb14, (q31_t)0x668a1872, (q31_t)0x66865591, (q31_t)0x66829270, (q31_t)0x667ecf11, - (q31_t)0x667b0b72, (q31_t)0x66774793, - (q31_t)0x66738376, (q31_t)0x666fbf19, (q31_t)0x666bfa7d, (q31_t)0x666835a2, (q31_t)0x66647088, (q31_t)0x6660ab2f, - (q31_t)0x665ce596, (q31_t)0x66591fbf, - (q31_t)0x665559a8, (q31_t)0x66519352, (q31_t)0x664dccbd, (q31_t)0x664a05e9, (q31_t)0x66463ed6, (q31_t)0x66427784, - (q31_t)0x663eaff2, (q31_t)0x663ae822, - (q31_t)0x66372012, (q31_t)0x663357c4, (q31_t)0x662f8f36, (q31_t)0x662bc66a, (q31_t)0x6627fd5e, (q31_t)0x66243413, - (q31_t)0x66206a8a, (q31_t)0x661ca0c1, - (q31_t)0x6618d6b9, (q31_t)0x66150c73, (q31_t)0x661141ed, (q31_t)0x660d7729, (q31_t)0x6609ac25, (q31_t)0x6605e0e3, - (q31_t)0x66021561, (q31_t)0x65fe49a1, - (q31_t)0x65fa7da2, (q31_t)0x65f6b164, (q31_t)0x65f2e4e7, (q31_t)0x65ef182b, (q31_t)0x65eb4b30, (q31_t)0x65e77df6, - (q31_t)0x65e3b07e, (q31_t)0x65dfe2c6, - (q31_t)0x65dc14d0, (q31_t)0x65d8469b, (q31_t)0x65d47827, (q31_t)0x65d0a975, (q31_t)0x65ccda83, (q31_t)0x65c90b53, - (q31_t)0x65c53be4, (q31_t)0x65c16c36, - (q31_t)0x65bd9c49, (q31_t)0x65b9cc1e, (q31_t)0x65b5fbb4, (q31_t)0x65b22b0b, (q31_t)0x65ae5a23, (q31_t)0x65aa88fd, - (q31_t)0x65a6b798, (q31_t)0x65a2e5f4, - (q31_t)0x659f1412, (q31_t)0x659b41f1, (q31_t)0x65976f91, (q31_t)0x65939cf3, (q31_t)0x658fca15, (q31_t)0x658bf6fa, - (q31_t)0x6588239f, (q31_t)0x65845006, - (q31_t)0x65807c2f, (q31_t)0x657ca818, (q31_t)0x6578d3c4, (q31_t)0x6574ff30, (q31_t)0x65712a5e, (q31_t)0x656d554d, - (q31_t)0x65697ffe, (q31_t)0x6565aa71, - (q31_t)0x6561d4a4, (q31_t)0x655dfe99, (q31_t)0x655a2850, (q31_t)0x655651c8, (q31_t)0x65527b02, (q31_t)0x654ea3fd, - (q31_t)0x654accba, (q31_t)0x6546f538, - (q31_t)0x65431d77, (q31_t)0x653f4579, (q31_t)0x653b6d3b, (q31_t)0x653794c0, (q31_t)0x6533bc06, (q31_t)0x652fe30d, - (q31_t)0x652c09d6, (q31_t)0x65283061, - (q31_t)0x652456ad, (q31_t)0x65207cbb, (q31_t)0x651ca28a, (q31_t)0x6518c81b, (q31_t)0x6514ed6e, (q31_t)0x65111283, - (q31_t)0x650d3759, (q31_t)0x65095bf0, - (q31_t)0x6505804a, (q31_t)0x6501a465, (q31_t)0x64fdc841, (q31_t)0x64f9ebe0, (q31_t)0x64f60f40, (q31_t)0x64f23262, - (q31_t)0x64ee5546, (q31_t)0x64ea77eb, - (q31_t)0x64e69a52, (q31_t)0x64e2bc7b, (q31_t)0x64dede66, (q31_t)0x64db0012, (q31_t)0x64d72180, (q31_t)0x64d342b0, - (q31_t)0x64cf63a2, (q31_t)0x64cb8456, - (q31_t)0x64c7a4cb, (q31_t)0x64c3c502, (q31_t)0x64bfe4fc, (q31_t)0x64bc04b6, (q31_t)0x64b82433, (q31_t)0x64b44372, - (q31_t)0x64b06273, (q31_t)0x64ac8135, - (q31_t)0x64a89fba, (q31_t)0x64a4be00, (q31_t)0x64a0dc08, (q31_t)0x649cf9d2, (q31_t)0x6499175e, (q31_t)0x649534ac, - (q31_t)0x649151bc, (q31_t)0x648d6e8e, - (q31_t)0x64898b22, (q31_t)0x6485a778, (q31_t)0x6481c390, (q31_t)0x647ddf6a, (q31_t)0x6479fb06, (q31_t)0x64761664, - (q31_t)0x64723184, (q31_t)0x646e4c66, - (q31_t)0x646a670a, (q31_t)0x64668170, (q31_t)0x64629b98, (q31_t)0x645eb582, (q31_t)0x645acf2e, (q31_t)0x6456e89d, - (q31_t)0x645301cd, (q31_t)0x644f1ac0, - (q31_t)0x644b3375, (q31_t)0x64474bec, (q31_t)0x64436425, (q31_t)0x643f7c20, (q31_t)0x643b93dd, (q31_t)0x6437ab5d, - (q31_t)0x6433c29f, (q31_t)0x642fd9a3, - (q31_t)0x642bf069, (q31_t)0x642806f1, (q31_t)0x64241d3c, (q31_t)0x64203348, (q31_t)0x641c4917, (q31_t)0x64185ea9, - (q31_t)0x641473fc, (q31_t)0x64108912, - (q31_t)0x640c9dea, (q31_t)0x6408b284, (q31_t)0x6404c6e1, (q31_t)0x6400db00, (q31_t)0x63fceee1, (q31_t)0x63f90285, - (q31_t)0x63f515eb, (q31_t)0x63f12913, - (q31_t)0x63ed3bfd, (q31_t)0x63e94eaa, (q31_t)0x63e5611a, (q31_t)0x63e1734b, (q31_t)0x63dd853f, (q31_t)0x63d996f6, - (q31_t)0x63d5a86f, (q31_t)0x63d1b9aa, - (q31_t)0x63cdcaa8, (q31_t)0x63c9db68, (q31_t)0x63c5ebeb, (q31_t)0x63c1fc30, (q31_t)0x63be0c37, (q31_t)0x63ba1c01, - (q31_t)0x63b62b8e, (q31_t)0x63b23add, - (q31_t)0x63ae49ee, (q31_t)0x63aa58c2, (q31_t)0x63a66759, (q31_t)0x63a275b2, (q31_t)0x639e83cd, (q31_t)0x639a91ac, - (q31_t)0x63969f4c, (q31_t)0x6392acaf, - (q31_t)0x638eb9d5, (q31_t)0x638ac6be, (q31_t)0x6386d369, (q31_t)0x6382dfd6, (q31_t)0x637eec07, (q31_t)0x637af7fa, - (q31_t)0x637703af, (q31_t)0x63730f27, - (q31_t)0x636f1a62, (q31_t)0x636b2560, (q31_t)0x63673020, (q31_t)0x63633aa3, (q31_t)0x635f44e8, (q31_t)0x635b4ef0, - (q31_t)0x635758bb, (q31_t)0x63536249, - (q31_t)0x634f6b99, (q31_t)0x634b74ad, (q31_t)0x63477d82, (q31_t)0x6343861b, (q31_t)0x633f8e76, (q31_t)0x633b9695, - (q31_t)0x63379e76, (q31_t)0x6333a619, - (q31_t)0x632fad80, (q31_t)0x632bb4a9, (q31_t)0x6327bb96, (q31_t)0x6323c245, (q31_t)0x631fc8b7, (q31_t)0x631bceeb, - (q31_t)0x6317d4e3, (q31_t)0x6313da9e, - (q31_t)0x630fe01b, (q31_t)0x630be55b, (q31_t)0x6307ea5e, (q31_t)0x6303ef25, (q31_t)0x62fff3ae, (q31_t)0x62fbf7fa, - (q31_t)0x62f7fc08, (q31_t)0x62f3ffda, - (q31_t)0x62f0036f, (q31_t)0x62ec06c7, (q31_t)0x62e809e2, (q31_t)0x62e40cbf, (q31_t)0x62e00f60, (q31_t)0x62dc11c4, - (q31_t)0x62d813eb, (q31_t)0x62d415d4, - (q31_t)0x62d01781, (q31_t)0x62cc18f1, (q31_t)0x62c81a24, (q31_t)0x62c41b1a, (q31_t)0x62c01bd3, (q31_t)0x62bc1c4f, - (q31_t)0x62b81c8f, (q31_t)0x62b41c91, - (q31_t)0x62b01c57, (q31_t)0x62ac1bdf, (q31_t)0x62a81b2b, (q31_t)0x62a41a3a, (q31_t)0x62a0190c, (q31_t)0x629c17a1, - (q31_t)0x629815fa, (q31_t)0x62941415, - (q31_t)0x629011f4, (q31_t)0x628c0f96, (q31_t)0x62880cfb, (q31_t)0x62840a23, (q31_t)0x6280070f, (q31_t)0x627c03be, - (q31_t)0x62780030, (q31_t)0x6273fc65, - (q31_t)0x626ff85e, (q31_t)0x626bf41a, (q31_t)0x6267ef99, (q31_t)0x6263eadc, (q31_t)0x625fe5e1, (q31_t)0x625be0ab, - (q31_t)0x6257db37, (q31_t)0x6253d587, - (q31_t)0x624fcf9a, (q31_t)0x624bc970, (q31_t)0x6247c30a, (q31_t)0x6243bc68, (q31_t)0x623fb588, (q31_t)0x623bae6c, - (q31_t)0x6237a714, (q31_t)0x62339f7e, - (q31_t)0x622f97ad, (q31_t)0x622b8f9e, (q31_t)0x62278754, (q31_t)0x62237ecc, (q31_t)0x621f7608, (q31_t)0x621b6d08, - (q31_t)0x621763cb, (q31_t)0x62135a51, - (q31_t)0x620f509b, (q31_t)0x620b46a9, (q31_t)0x62073c7a, (q31_t)0x6203320e, (q31_t)0x61ff2766, (q31_t)0x61fb1c82, - (q31_t)0x61f71161, (q31_t)0x61f30604, - (q31_t)0x61eefa6b, (q31_t)0x61eaee95, (q31_t)0x61e6e282, (q31_t)0x61e2d633, (q31_t)0x61dec9a8, (q31_t)0x61dabce0, - (q31_t)0x61d6afdd, (q31_t)0x61d2a29c, - (q31_t)0x61ce9520, (q31_t)0x61ca8767, (q31_t)0x61c67971, (q31_t)0x61c26b40, (q31_t)0x61be5cd2, (q31_t)0x61ba4e28, - (q31_t)0x61b63f41, (q31_t)0x61b2301e, - (q31_t)0x61ae20bf, (q31_t)0x61aa1124, (q31_t)0x61a6014d, (q31_t)0x61a1f139, (q31_t)0x619de0e9, (q31_t)0x6199d05d, - (q31_t)0x6195bf94, (q31_t)0x6191ae90, - (q31_t)0x618d9d4f, (q31_t)0x61898bd2, (q31_t)0x61857a19, (q31_t)0x61816824, (q31_t)0x617d55f2, (q31_t)0x61794385, - (q31_t)0x617530db, (q31_t)0x61711df5, - (q31_t)0x616d0ad3, (q31_t)0x6168f775, (q31_t)0x6164e3db, (q31_t)0x6160d005, (q31_t)0x615cbbf3, (q31_t)0x6158a7a4, - (q31_t)0x6154931a, (q31_t)0x61507e54, - (q31_t)0x614c6951, (q31_t)0x61485413, (q31_t)0x61443e98, (q31_t)0x614028e2, (q31_t)0x613c12f0, (q31_t)0x6137fcc1, - (q31_t)0x6133e657, (q31_t)0x612fcfb0, - (q31_t)0x612bb8ce, (q31_t)0x6127a1b0, (q31_t)0x61238a56, (q31_t)0x611f72c0, (q31_t)0x611b5aee, (q31_t)0x611742e0, - (q31_t)0x61132a96, (q31_t)0x610f1210, - (q31_t)0x610af94f, (q31_t)0x6106e051, (q31_t)0x6102c718, (q31_t)0x60feada3, (q31_t)0x60fa93f2, (q31_t)0x60f67a05, - (q31_t)0x60f25fdd, (q31_t)0x60ee4579, - (q31_t)0x60ea2ad8, (q31_t)0x60e60ffd, (q31_t)0x60e1f4e5, (q31_t)0x60ddd991, (q31_t)0x60d9be02, (q31_t)0x60d5a237, - (q31_t)0x60d18631, (q31_t)0x60cd69ee, - (q31_t)0x60c94d70, (q31_t)0x60c530b6, (q31_t)0x60c113c1, (q31_t)0x60bcf690, (q31_t)0x60b8d923, (q31_t)0x60b4bb7a, - (q31_t)0x60b09d96, (q31_t)0x60ac7f76, - (q31_t)0x60a8611b, (q31_t)0x60a44284, (q31_t)0x60a023b1, (q31_t)0x609c04a3, (q31_t)0x6097e559, (q31_t)0x6093c5d3, - (q31_t)0x608fa612, (q31_t)0x608b8616, - (q31_t)0x608765dd, (q31_t)0x6083456a, (q31_t)0x607f24ba, (q31_t)0x607b03d0, (q31_t)0x6076e2a9, (q31_t)0x6072c148, - (q31_t)0x606e9faa, (q31_t)0x606a7dd2, - (q31_t)0x60665bbd, (q31_t)0x6062396e, (q31_t)0x605e16e2, (q31_t)0x6059f41c, (q31_t)0x6055d11a, (q31_t)0x6051addc, - (q31_t)0x604d8a63, (q31_t)0x604966af, - (q31_t)0x604542bf, (q31_t)0x60411e94, (q31_t)0x603cfa2e, (q31_t)0x6038d58c, (q31_t)0x6034b0af, (q31_t)0x60308b97, - (q31_t)0x602c6643, (q31_t)0x602840b4, - (q31_t)0x60241ae9, (q31_t)0x601ff4e3, (q31_t)0x601bcea2, (q31_t)0x6017a826, (q31_t)0x6013816e, (q31_t)0x600f5a7b, - (q31_t)0x600b334d, (q31_t)0x60070be4, - (q31_t)0x6002e43f, (q31_t)0x5ffebc5f, (q31_t)0x5ffa9444, (q31_t)0x5ff66bee, (q31_t)0x5ff2435d, (q31_t)0x5fee1a90, - (q31_t)0x5fe9f188, (q31_t)0x5fe5c845, - (q31_t)0x5fe19ec7, (q31_t)0x5fdd750e, (q31_t)0x5fd94b19, (q31_t)0x5fd520ea, (q31_t)0x5fd0f67f, (q31_t)0x5fcccbd9, - (q31_t)0x5fc8a0f8, (q31_t)0x5fc475dc, - (q31_t)0x5fc04a85, (q31_t)0x5fbc1ef3, (q31_t)0x5fb7f326, (q31_t)0x5fb3c71e, (q31_t)0x5faf9adb, (q31_t)0x5fab6e5d, - (q31_t)0x5fa741a3, (q31_t)0x5fa314af, - (q31_t)0x5f9ee780, (q31_t)0x5f9aba16, (q31_t)0x5f968c70, (q31_t)0x5f925e90, (q31_t)0x5f8e3075, (q31_t)0x5f8a021f, - (q31_t)0x5f85d38e, (q31_t)0x5f81a4c2, - (q31_t)0x5f7d75bb, (q31_t)0x5f794679, (q31_t)0x5f7516fd, (q31_t)0x5f70e745, (q31_t)0x5f6cb753, (q31_t)0x5f688726, - (q31_t)0x5f6456be, (q31_t)0x5f60261b, - (q31_t)0x5f5bf53d, (q31_t)0x5f57c424, (q31_t)0x5f5392d1, (q31_t)0x5f4f6143, (q31_t)0x5f4b2f7a, (q31_t)0x5f46fd76, - (q31_t)0x5f42cb37, (q31_t)0x5f3e98be, - (q31_t)0x5f3a660a, (q31_t)0x5f36331b, (q31_t)0x5f31fff1, (q31_t)0x5f2dcc8d, (q31_t)0x5f2998ee, (q31_t)0x5f256515, - (q31_t)0x5f213100, (q31_t)0x5f1cfcb1, - (q31_t)0x5f18c827, (q31_t)0x5f149363, (q31_t)0x5f105e64, (q31_t)0x5f0c292a, (q31_t)0x5f07f3b6, (q31_t)0x5f03be07, - (q31_t)0x5eff881d, (q31_t)0x5efb51f9, - (q31_t)0x5ef71b9b, (q31_t)0x5ef2e501, (q31_t)0x5eeeae2d, (q31_t)0x5eea771f, (q31_t)0x5ee63fd6, (q31_t)0x5ee20853, - (q31_t)0x5eddd094, (q31_t)0x5ed9989c, - (q31_t)0x5ed56069, (q31_t)0x5ed127fb, (q31_t)0x5eccef53, (q31_t)0x5ec8b671, (q31_t)0x5ec47d54, (q31_t)0x5ec043fc, - (q31_t)0x5ebc0a6a, (q31_t)0x5eb7d09e, - (q31_t)0x5eb39697, (q31_t)0x5eaf5c56, (q31_t)0x5eab21da, (q31_t)0x5ea6e724, (q31_t)0x5ea2ac34, (q31_t)0x5e9e7109, - (q31_t)0x5e9a35a4, (q31_t)0x5e95fa05, - (q31_t)0x5e91be2b, (q31_t)0x5e8d8217, (q31_t)0x5e8945c8, (q31_t)0x5e85093f, (q31_t)0x5e80cc7c, (q31_t)0x5e7c8f7f, - (q31_t)0x5e785247, (q31_t)0x5e7414d5, - (q31_t)0x5e6fd729, (q31_t)0x5e6b9943, (q31_t)0x5e675b22, (q31_t)0x5e631cc7, (q31_t)0x5e5ede32, (q31_t)0x5e5a9f62, - (q31_t)0x5e566059, (q31_t)0x5e522115, - (q31_t)0x5e4de197, (q31_t)0x5e49a1df, (q31_t)0x5e4561ed, (q31_t)0x5e4121c0, (q31_t)0x5e3ce15a, (q31_t)0x5e38a0b9, - (q31_t)0x5e345fde, (q31_t)0x5e301ec9, - (q31_t)0x5e2bdd7a, (q31_t)0x5e279bf1, (q31_t)0x5e235a2e, (q31_t)0x5e1f1830, (q31_t)0x5e1ad5f9, (q31_t)0x5e169388, - (q31_t)0x5e1250dc, (q31_t)0x5e0e0df7, - (q31_t)0x5e09cad7, (q31_t)0x5e05877e, (q31_t)0x5e0143ea, (q31_t)0x5dfd001d, (q31_t)0x5df8bc15, (q31_t)0x5df477d4, - (q31_t)0x5df03359, (q31_t)0x5debeea3, - (q31_t)0x5de7a9b4, (q31_t)0x5de3648b, (q31_t)0x5ddf1f28, (q31_t)0x5ddad98b, (q31_t)0x5dd693b4, (q31_t)0x5dd24da3, - (q31_t)0x5dce0759, (q31_t)0x5dc9c0d4, - (q31_t)0x5dc57a16, (q31_t)0x5dc1331d, (q31_t)0x5dbcebeb, (q31_t)0x5db8a480, (q31_t)0x5db45cda, (q31_t)0x5db014fa, - (q31_t)0x5dabcce1, (q31_t)0x5da7848e, - (q31_t)0x5da33c01, (q31_t)0x5d9ef33b, (q31_t)0x5d9aaa3a, (q31_t)0x5d966100, (q31_t)0x5d92178d, (q31_t)0x5d8dcddf, - (q31_t)0x5d8983f8, (q31_t)0x5d8539d7, - (q31_t)0x5d80ef7c, (q31_t)0x5d7ca4e8, (q31_t)0x5d785a1a, (q31_t)0x5d740f12, (q31_t)0x5d6fc3d1, (q31_t)0x5d6b7856, - (q31_t)0x5d672ca2, (q31_t)0x5d62e0b4, - (q31_t)0x5d5e948c, (q31_t)0x5d5a482a, (q31_t)0x5d55fb90, (q31_t)0x5d51aebb, (q31_t)0x5d4d61ad, (q31_t)0x5d491465, - (q31_t)0x5d44c6e4, (q31_t)0x5d40792a, - (q31_t)0x5d3c2b35, (q31_t)0x5d37dd08, (q31_t)0x5d338ea0, (q31_t)0x5d2f4000, (q31_t)0x5d2af125, (q31_t)0x5d26a212, - (q31_t)0x5d2252c5, (q31_t)0x5d1e033e, - (q31_t)0x5d19b37e, (q31_t)0x5d156385, (q31_t)0x5d111352, (q31_t)0x5d0cc2e5, (q31_t)0x5d087240, (q31_t)0x5d042161, - (q31_t)0x5cffd048, (q31_t)0x5cfb7ef7, - (q31_t)0x5cf72d6b, (q31_t)0x5cf2dba7, (q31_t)0x5cee89a9, (q31_t)0x5cea3772, (q31_t)0x5ce5e501, (q31_t)0x5ce19258, - (q31_t)0x5cdd3f75, (q31_t)0x5cd8ec58, - (q31_t)0x5cd49903, (q31_t)0x5cd04574, (q31_t)0x5ccbf1ab, (q31_t)0x5cc79daa, (q31_t)0x5cc3496f, (q31_t)0x5cbef4fc, - (q31_t)0x5cbaa04f, (q31_t)0x5cb64b68, - (q31_t)0x5cb1f649, (q31_t)0x5cada0f0, (q31_t)0x5ca94b5e, (q31_t)0x5ca4f594, (q31_t)0x5ca09f8f, (q31_t)0x5c9c4952, - (q31_t)0x5c97f2dc, (q31_t)0x5c939c2c, - (q31_t)0x5c8f4544, (q31_t)0x5c8aee22, (q31_t)0x5c8696c7, (q31_t)0x5c823f34, (q31_t)0x5c7de767, (q31_t)0x5c798f61, - (q31_t)0x5c753722, (q31_t)0x5c70deaa, - (q31_t)0x5c6c85f9, (q31_t)0x5c682d0f, (q31_t)0x5c63d3eb, (q31_t)0x5c5f7a8f, (q31_t)0x5c5b20fa, (q31_t)0x5c56c72c, - (q31_t)0x5c526d25, (q31_t)0x5c4e12e5, - (q31_t)0x5c49b86d, (q31_t)0x5c455dbb, (q31_t)0x5c4102d0, (q31_t)0x5c3ca7ad, (q31_t)0x5c384c50, (q31_t)0x5c33f0bb, - (q31_t)0x5c2f94ec, (q31_t)0x5c2b38e5, - (q31_t)0x5c26dca5, (q31_t)0x5c22802c, (q31_t)0x5c1e237b, (q31_t)0x5c19c690, (q31_t)0x5c15696d, (q31_t)0x5c110c11, - (q31_t)0x5c0cae7c, (q31_t)0x5c0850ae, - (q31_t)0x5c03f2a8, (q31_t)0x5bff9469, (q31_t)0x5bfb35f1, (q31_t)0x5bf6d740, (q31_t)0x5bf27857, (q31_t)0x5bee1935, - (q31_t)0x5be9b9da, (q31_t)0x5be55a46, - (q31_t)0x5be0fa7a, (q31_t)0x5bdc9a75, (q31_t)0x5bd83a37, (q31_t)0x5bd3d9c1, (q31_t)0x5bcf7912, (q31_t)0x5bcb182b, - (q31_t)0x5bc6b70b, (q31_t)0x5bc255b2, - (q31_t)0x5bbdf421, (q31_t)0x5bb99257, (q31_t)0x5bb53054, (q31_t)0x5bb0ce19, (q31_t)0x5bac6ba6, (q31_t)0x5ba808f9, - (q31_t)0x5ba3a615, (q31_t)0x5b9f42f7, - (q31_t)0x5b9adfa2, (q31_t)0x5b967c13, (q31_t)0x5b92184d, (q31_t)0x5b8db44d, (q31_t)0x5b895016, (q31_t)0x5b84eba6, - (q31_t)0x5b8086fd, (q31_t)0x5b7c221c, - (q31_t)0x5b77bd02, (q31_t)0x5b7357b0, (q31_t)0x5b6ef226, (q31_t)0x5b6a8c63, (q31_t)0x5b662668, (q31_t)0x5b61c035, - (q31_t)0x5b5d59c9, (q31_t)0x5b58f324, - (q31_t)0x5b548c48, (q31_t)0x5b502533, (q31_t)0x5b4bbde6, (q31_t)0x5b475660, (q31_t)0x5b42eea2, (q31_t)0x5b3e86ac, - (q31_t)0x5b3a1e7e, (q31_t)0x5b35b617, - (q31_t)0x5b314d78, (q31_t)0x5b2ce4a1, (q31_t)0x5b287b91, (q31_t)0x5b241249, (q31_t)0x5b1fa8c9, (q31_t)0x5b1b3f11, - (q31_t)0x5b16d521, (q31_t)0x5b126af8, - (q31_t)0x5b0e0098, (q31_t)0x5b0995ff, (q31_t)0x5b052b2e, (q31_t)0x5b00c025, (q31_t)0x5afc54e3, (q31_t)0x5af7e96a, - (q31_t)0x5af37db8, (q31_t)0x5aef11cf, - (q31_t)0x5aeaa5ad, (q31_t)0x5ae63953, (q31_t)0x5ae1ccc1, (q31_t)0x5add5ff7, (q31_t)0x5ad8f2f5, (q31_t)0x5ad485bb, - (q31_t)0x5ad01849, (q31_t)0x5acbaa9f, - (q31_t)0x5ac73cbd, (q31_t)0x5ac2cea3, (q31_t)0x5abe6050, (q31_t)0x5ab9f1c6, (q31_t)0x5ab58304, (q31_t)0x5ab1140a, - (q31_t)0x5aaca4d8, (q31_t)0x5aa8356f, - (q31_t)0x5aa3c5cd, (q31_t)0x5a9f55f3, (q31_t)0x5a9ae5e2, (q31_t)0x5a967598, (q31_t)0x5a920517, (q31_t)0x5a8d945d, - (q31_t)0x5a89236c, (q31_t)0x5a84b243, - (q31_t)0x5a8040e3, (q31_t)0x5a7bcf4a, (q31_t)0x5a775d7a, (q31_t)0x5a72eb71, (q31_t)0x5a6e7931, (q31_t)0x5a6a06ba, - (q31_t)0x5a65940a, (q31_t)0x5a612123, - (q31_t)0x5a5cae04, (q31_t)0x5a583aad, (q31_t)0x5a53c71e, (q31_t)0x5a4f5358, (q31_t)0x5a4adf5a, (q31_t)0x5a466b24, - (q31_t)0x5a41f6b7, (q31_t)0x5a3d8212, - (q31_t)0x5a390d35, (q31_t)0x5a349821, (q31_t)0x5a3022d5, (q31_t)0x5a2bad51, (q31_t)0x5a273796, (q31_t)0x5a22c1a3, - (q31_t)0x5a1e4b79, (q31_t)0x5a19d517, - (q31_t)0x5a155e7d, (q31_t)0x5a10e7ac, (q31_t)0x5a0c70a3, (q31_t)0x5a07f963, (q31_t)0x5a0381eb, (q31_t)0x59ff0a3c, - (q31_t)0x59fa9255, (q31_t)0x59f61a36, - (q31_t)0x59f1a1e0, (q31_t)0x59ed2953, (q31_t)0x59e8b08e, (q31_t)0x59e43792, (q31_t)0x59dfbe5e, (q31_t)0x59db44f3, - (q31_t)0x59d6cb50, (q31_t)0x59d25176, - (q31_t)0x59cdd765, (q31_t)0x59c95d1c, (q31_t)0x59c4e29c, (q31_t)0x59c067e4, (q31_t)0x59bbecf5, (q31_t)0x59b771cf, - (q31_t)0x59b2f671, (q31_t)0x59ae7add, - (q31_t)0x59a9ff10, (q31_t)0x59a5830d, (q31_t)0x59a106d2, (q31_t)0x599c8a60, (q31_t)0x59980db6, (q31_t)0x599390d5, - (q31_t)0x598f13bd, (q31_t)0x598a966e, - (q31_t)0x598618e8, (q31_t)0x59819b2a, (q31_t)0x597d1d35, (q31_t)0x59789f09, (q31_t)0x597420a6, (q31_t)0x596fa20b, - (q31_t)0x596b233a, (q31_t)0x5966a431, - (q31_t)0x596224f1, (q31_t)0x595da57a, (q31_t)0x595925cc, (q31_t)0x5954a5e6, (q31_t)0x595025ca, (q31_t)0x594ba576, - (q31_t)0x594724ec, (q31_t)0x5942a42a, - (q31_t)0x593e2331, (q31_t)0x5939a202, (q31_t)0x5935209b, (q31_t)0x59309efd, (q31_t)0x592c1d28, (q31_t)0x59279b1c, - (q31_t)0x592318d9, (q31_t)0x591e9660, - (q31_t)0x591a13af, (q31_t)0x591590c7, (q31_t)0x59110da8, (q31_t)0x590c8a53, (q31_t)0x590806c6, (q31_t)0x59038302, - (q31_t)0x58feff08, (q31_t)0x58fa7ad7, - (q31_t)0x58f5f66e, (q31_t)0x58f171cf, (q31_t)0x58ececf9, (q31_t)0x58e867ed, (q31_t)0x58e3e2a9, (q31_t)0x58df5d2e, - (q31_t)0x58dad77d, (q31_t)0x58d65195, - (q31_t)0x58d1cb76, (q31_t)0x58cd4520, (q31_t)0x58c8be94, (q31_t)0x58c437d1, (q31_t)0x58bfb0d7, (q31_t)0x58bb29a6, - (q31_t)0x58b6a23e, (q31_t)0x58b21aa0, - (q31_t)0x58ad92cb, (q31_t)0x58a90ac0, (q31_t)0x58a4827d, (q31_t)0x589ffa04, (q31_t)0x589b7155, (q31_t)0x5896e86f, - (q31_t)0x58925f52, (q31_t)0x588dd5fe, - (q31_t)0x58894c74, (q31_t)0x5884c2b3, (q31_t)0x588038bb, (q31_t)0x587bae8d, (q31_t)0x58772429, (q31_t)0x5872998e, - (q31_t)0x586e0ebc, (q31_t)0x586983b4, - (q31_t)0x5864f875, (q31_t)0x58606d00, (q31_t)0x585be154, (q31_t)0x58575571, (q31_t)0x5852c958, (q31_t)0x584e3d09, - (q31_t)0x5849b083, (q31_t)0x584523c7, - (q31_t)0x584096d4, (q31_t)0x583c09ab, (q31_t)0x58377c4c, (q31_t)0x5832eeb6, (q31_t)0x582e60e9, (q31_t)0x5829d2e6, - (q31_t)0x582544ad, (q31_t)0x5820b63e, - (q31_t)0x581c2798, (q31_t)0x581798bb, (q31_t)0x581309a9, (q31_t)0x580e7a60, (q31_t)0x5809eae1, (q31_t)0x58055b2b, - (q31_t)0x5800cb3f, (q31_t)0x57fc3b1d, - (q31_t)0x57f7aac5, (q31_t)0x57f31a36, (q31_t)0x57ee8971, (q31_t)0x57e9f876, (q31_t)0x57e56744, (q31_t)0x57e0d5dd, - (q31_t)0x57dc443f, (q31_t)0x57d7b26b, - (q31_t)0x57d32061, (q31_t)0x57ce8e20, (q31_t)0x57c9fbaa, (q31_t)0x57c568fd, (q31_t)0x57c0d61a, (q31_t)0x57bc4301, - (q31_t)0x57b7afb2, (q31_t)0x57b31c2d, - (q31_t)0x57ae8872, (q31_t)0x57a9f480, (q31_t)0x57a56059, (q31_t)0x57a0cbfb, (q31_t)0x579c3768, (q31_t)0x5797a29e, - (q31_t)0x57930d9e, (q31_t)0x578e7869, - (q31_t)0x5789e2fd, (q31_t)0x57854d5b, (q31_t)0x5780b784, (q31_t)0x577c2176, (q31_t)0x57778b32, (q31_t)0x5772f4b9, - (q31_t)0x576e5e09, (q31_t)0x5769c724, - (q31_t)0x57653009, (q31_t)0x576098b7, (q31_t)0x575c0130, (q31_t)0x57576973, (q31_t)0x5752d180, (q31_t)0x574e3957, - (q31_t)0x5749a0f9, (q31_t)0x57450864, - (q31_t)0x57406f9a, (q31_t)0x573bd69a, (q31_t)0x57373d64, (q31_t)0x5732a3f8, (q31_t)0x572e0a56, (q31_t)0x5729707f, - (q31_t)0x5724d672, (q31_t)0x57203c2f, - (q31_t)0x571ba1b7, (q31_t)0x57170708, (q31_t)0x57126c24, (q31_t)0x570dd10a, (q31_t)0x570935bb, (q31_t)0x57049a36, - (q31_t)0x56fffe7b, (q31_t)0x56fb628b, - (q31_t)0x56f6c664, (q31_t)0x56f22a09, (q31_t)0x56ed8d77, (q31_t)0x56e8f0b0, (q31_t)0x56e453b4, (q31_t)0x56dfb681, - (q31_t)0x56db1919, (q31_t)0x56d67b7c, - (q31_t)0x56d1dda9, (q31_t)0x56cd3fa1, (q31_t)0x56c8a162, (q31_t)0x56c402ef, (q31_t)0x56bf6446, (q31_t)0x56bac567, - (q31_t)0x56b62653, (q31_t)0x56b18709, - (q31_t)0x56ace78a, (q31_t)0x56a847d6, (q31_t)0x56a3a7ec, (q31_t)0x569f07cc, (q31_t)0x569a6777, (q31_t)0x5695c6ed, - (q31_t)0x5691262d, (q31_t)0x568c8538, - (q31_t)0x5687e40e, (q31_t)0x568342ae, (q31_t)0x567ea118, (q31_t)0x5679ff4e, (q31_t)0x56755d4e, (q31_t)0x5670bb19, - (q31_t)0x566c18ae, (q31_t)0x5667760e, - (q31_t)0x5662d339, (q31_t)0x565e302e, (q31_t)0x56598cee, (q31_t)0x5654e979, (q31_t)0x565045cf, (q31_t)0x564ba1f0, - (q31_t)0x5646fddb, (q31_t)0x56425991, - (q31_t)0x563db512, (q31_t)0x5639105d, (q31_t)0x56346b74, (q31_t)0x562fc655, (q31_t)0x562b2101, (q31_t)0x56267b78, - (q31_t)0x5621d5ba, (q31_t)0x561d2fc6, - (q31_t)0x5618899e, (q31_t)0x5613e340, (q31_t)0x560f3cae, (q31_t)0x560a95e6, (q31_t)0x5605eee9, (q31_t)0x560147b7, - (q31_t)0x55fca050, (q31_t)0x55f7f8b4, - (q31_t)0x55f350e3, (q31_t)0x55eea8dd, (q31_t)0x55ea00a2, (q31_t)0x55e55832, (q31_t)0x55e0af8d, (q31_t)0x55dc06b3, - (q31_t)0x55d75da4, (q31_t)0x55d2b460, - (q31_t)0x55ce0ae7, (q31_t)0x55c96139, (q31_t)0x55c4b757, (q31_t)0x55c00d3f, (q31_t)0x55bb62f3, (q31_t)0x55b6b871, - (q31_t)0x55b20dbb, (q31_t)0x55ad62d0, - (q31_t)0x55a8b7b0, (q31_t)0x55a40c5b, (q31_t)0x559f60d1, (q31_t)0x559ab513, (q31_t)0x55960920, (q31_t)0x55915cf8, - (q31_t)0x558cb09b, (q31_t)0x55880409, - (q31_t)0x55835743, (q31_t)0x557eaa48, (q31_t)0x5579fd18, (q31_t)0x55754fb3, (q31_t)0x5570a21a, (q31_t)0x556bf44c, - (q31_t)0x55674649, (q31_t)0x55629812, - (q31_t)0x555de9a6, (q31_t)0x55593b05, (q31_t)0x55548c30, (q31_t)0x554fdd26, (q31_t)0x554b2de7, (q31_t)0x55467e74, - (q31_t)0x5541cecc, (q31_t)0x553d1ef0, - (q31_t)0x55386edf, (q31_t)0x5533be99, (q31_t)0x552f0e1f, (q31_t)0x552a5d70, (q31_t)0x5525ac8d, (q31_t)0x5520fb75, - (q31_t)0x551c4a29, (q31_t)0x551798a8, - (q31_t)0x5512e6f3, (q31_t)0x550e3509, (q31_t)0x550982eb, (q31_t)0x5504d099, (q31_t)0x55001e12, (q31_t)0x54fb6b56, - (q31_t)0x54f6b866, (q31_t)0x54f20542, - (q31_t)0x54ed51e9, (q31_t)0x54e89e5c, (q31_t)0x54e3ea9a, (q31_t)0x54df36a5, (q31_t)0x54da827a, (q31_t)0x54d5ce1c, - (q31_t)0x54d11989, (q31_t)0x54cc64c2, - (q31_t)0x54c7afc6, (q31_t)0x54c2fa96, (q31_t)0x54be4532, (q31_t)0x54b98f9a, (q31_t)0x54b4d9cd, (q31_t)0x54b023cc, - (q31_t)0x54ab6d97, (q31_t)0x54a6b72e, - (q31_t)0x54a20090, (q31_t)0x549d49bf, (q31_t)0x549892b9, (q31_t)0x5493db7f, (q31_t)0x548f2410, (q31_t)0x548a6c6e, - (q31_t)0x5485b497, (q31_t)0x5480fc8c, - (q31_t)0x547c444d, (q31_t)0x54778bda, (q31_t)0x5472d333, (q31_t)0x546e1a58, (q31_t)0x54696149, (q31_t)0x5464a805, - (q31_t)0x545fee8e, (q31_t)0x545b34e3, - (q31_t)0x54567b03, (q31_t)0x5451c0f0, (q31_t)0x544d06a8, (q31_t)0x54484c2d, (q31_t)0x5443917d, (q31_t)0x543ed699, - (q31_t)0x543a1b82, (q31_t)0x54356037, - (q31_t)0x5430a4b7, (q31_t)0x542be904, (q31_t)0x54272d1d, (q31_t)0x54227102, (q31_t)0x541db4b3, (q31_t)0x5418f830, - (q31_t)0x54143b79, (q31_t)0x540f7e8e, - (q31_t)0x540ac170, (q31_t)0x5406041d, (q31_t)0x54014697, (q31_t)0x53fc88dd, (q31_t)0x53f7caef, (q31_t)0x53f30cce, - (q31_t)0x53ee4e78, (q31_t)0x53e98fef, - (q31_t)0x53e4d132, (q31_t)0x53e01242, (q31_t)0x53db531d, (q31_t)0x53d693c5, (q31_t)0x53d1d439, (q31_t)0x53cd147a, - (q31_t)0x53c85486, (q31_t)0x53c3945f, - (q31_t)0x53bed405, (q31_t)0x53ba1377, (q31_t)0x53b552b5, (q31_t)0x53b091bf, (q31_t)0x53abd096, (q31_t)0x53a70f39, - (q31_t)0x53a24da9, (q31_t)0x539d8be5, - (q31_t)0x5398c9ed, (q31_t)0x539407c2, (q31_t)0x538f4564, (q31_t)0x538a82d1, (q31_t)0x5385c00c, (q31_t)0x5380fd12, - (q31_t)0x537c39e6, (q31_t)0x53777685, - (q31_t)0x5372b2f2, (q31_t)0x536def2a, (q31_t)0x53692b30, (q31_t)0x53646701, (q31_t)0x535fa2a0, (q31_t)0x535ade0b, - (q31_t)0x53561942, (q31_t)0x53515447, - (q31_t)0x534c8f17, (q31_t)0x5347c9b5, (q31_t)0x5343041f, (q31_t)0x533e3e55, (q31_t)0x53397859, (q31_t)0x5334b229, - (q31_t)0x532febc5, (q31_t)0x532b252f, - (q31_t)0x53265e65, (q31_t)0x53219767, (q31_t)0x531cd037, (q31_t)0x531808d3, (q31_t)0x5313413c, (q31_t)0x530e7972, - (q31_t)0x5309b174, (q31_t)0x5304e943, - (q31_t)0x530020df, (q31_t)0x52fb5848, (q31_t)0x52f68f7e, (q31_t)0x52f1c680, (q31_t)0x52ecfd4f, (q31_t)0x52e833ec, - (q31_t)0x52e36a55, (q31_t)0x52dea08a, - (q31_t)0x52d9d68d, (q31_t)0x52d50c5d, (q31_t)0x52d041f9, (q31_t)0x52cb7763, (q31_t)0x52c6ac99, (q31_t)0x52c1e19d, - (q31_t)0x52bd166d, (q31_t)0x52b84b0a, - (q31_t)0x52b37f74, (q31_t)0x52aeb3ac, (q31_t)0x52a9e7b0, (q31_t)0x52a51b81, (q31_t)0x52a04f1f, (q31_t)0x529b828a, - (q31_t)0x5296b5c3, (q31_t)0x5291e8c8, - (q31_t)0x528d1b9b, (q31_t)0x52884e3a, (q31_t)0x528380a7, (q31_t)0x527eb2e0, (q31_t)0x5279e4e7, (q31_t)0x527516bb, - (q31_t)0x5270485c, (q31_t)0x526b79ca, - (q31_t)0x5266ab06, (q31_t)0x5261dc0e, (q31_t)0x525d0ce4, (q31_t)0x52583d87, (q31_t)0x52536df7, (q31_t)0x524e9e34, - (q31_t)0x5249ce3f, (q31_t)0x5244fe17, - (q31_t)0x52402dbc, (q31_t)0x523b5d2e, (q31_t)0x52368c6e, (q31_t)0x5231bb7b, (q31_t)0x522cea55, (q31_t)0x522818fc, - (q31_t)0x52234771, (q31_t)0x521e75b3, - (q31_t)0x5219a3c3, (q31_t)0x5214d1a0, (q31_t)0x520fff4a, (q31_t)0x520b2cc2, (q31_t)0x52065a07, (q31_t)0x52018719, - (q31_t)0x51fcb3f9, (q31_t)0x51f7e0a6, - (q31_t)0x51f30d21, (q31_t)0x51ee3969, (q31_t)0x51e9657e, (q31_t)0x51e49162, (q31_t)0x51dfbd12, (q31_t)0x51dae890, - (q31_t)0x51d613dc, (q31_t)0x51d13ef5, - (q31_t)0x51cc69db, (q31_t)0x51c79490, (q31_t)0x51c2bf11, (q31_t)0x51bde960, (q31_t)0x51b9137d, (q31_t)0x51b43d68, - (q31_t)0x51af6720, (q31_t)0x51aa90a5, - (q31_t)0x51a5b9f9, (q31_t)0x51a0e31a, (q31_t)0x519c0c08, (q31_t)0x519734c4, (q31_t)0x51925d4e, (q31_t)0x518d85a6, - (q31_t)0x5188adcb, (q31_t)0x5183d5be, - (q31_t)0x517efd7f, (q31_t)0x517a250d, (q31_t)0x51754c69, (q31_t)0x51707393, (q31_t)0x516b9a8b, (q31_t)0x5166c150, - (q31_t)0x5161e7e4, (q31_t)0x515d0e45, - (q31_t)0x51583473, (q31_t)0x51535a70, (q31_t)0x514e803b, (q31_t)0x5149a5d3, (q31_t)0x5144cb39, (q31_t)0x513ff06d, - (q31_t)0x513b156f, (q31_t)0x51363a3f, - (q31_t)0x51315edd, (q31_t)0x512c8348, (q31_t)0x5127a782, (q31_t)0x5122cb8a, (q31_t)0x511def5f, (q31_t)0x51191302, - (q31_t)0x51143674, (q31_t)0x510f59b3, - (q31_t)0x510a7cc1, (q31_t)0x51059f9c, (q31_t)0x5100c246, (q31_t)0x50fbe4bd, (q31_t)0x50f70703, (q31_t)0x50f22916, - (q31_t)0x50ed4af8, (q31_t)0x50e86ca8, - (q31_t)0x50e38e25, (q31_t)0x50deaf71, (q31_t)0x50d9d08b, (q31_t)0x50d4f173, (q31_t)0x50d0122a, (q31_t)0x50cb32ae, - (q31_t)0x50c65301, (q31_t)0x50c17322, - (q31_t)0x50bc9311, (q31_t)0x50b7b2ce, (q31_t)0x50b2d259, (q31_t)0x50adf1b3, (q31_t)0x50a910db, (q31_t)0x50a42fd1, - (q31_t)0x509f4e95, (q31_t)0x509a6d28, - (q31_t)0x50958b88, (q31_t)0x5090a9b8, (q31_t)0x508bc7b5, (q31_t)0x5086e581, (q31_t)0x5082031b, (q31_t)0x507d2083, - (q31_t)0x50783dba, (q31_t)0x50735abf, - (q31_t)0x506e7793, (q31_t)0x50699435, (q31_t)0x5064b0a5, (q31_t)0x505fcce4, (q31_t)0x505ae8f1, (q31_t)0x505604cd, - (q31_t)0x50512077, (q31_t)0x504c3bef, - (q31_t)0x50475736, (q31_t)0x5042724c, (q31_t)0x503d8d30, (q31_t)0x5038a7e2, (q31_t)0x5033c263, (q31_t)0x502edcb2, - (q31_t)0x5029f6d1, (q31_t)0x502510bd, - (q31_t)0x50202a78, (q31_t)0x501b4402, (q31_t)0x50165d5a, (q31_t)0x50117681, (q31_t)0x500c8f77, (q31_t)0x5007a83b, - (q31_t)0x5002c0cd, (q31_t)0x4ffdd92f, - (q31_t)0x4ff8f15f, (q31_t)0x4ff4095e, (q31_t)0x4fef212b, (q31_t)0x4fea38c7, (q31_t)0x4fe55032, (q31_t)0x4fe0676c, - (q31_t)0x4fdb7e74, (q31_t)0x4fd6954b, - (q31_t)0x4fd1abf0, (q31_t)0x4fccc265, (q31_t)0x4fc7d8a8, (q31_t)0x4fc2eeba, (q31_t)0x4fbe049b, (q31_t)0x4fb91a4b, - (q31_t)0x4fb42fc9, (q31_t)0x4faf4517, - (q31_t)0x4faa5a33, (q31_t)0x4fa56f1e, (q31_t)0x4fa083d8, (q31_t)0x4f9b9861, (q31_t)0x4f96acb8, (q31_t)0x4f91c0df, - (q31_t)0x4f8cd4d4, (q31_t)0x4f87e899, - (q31_t)0x4f82fc2c, (q31_t)0x4f7e0f8f, (q31_t)0x4f7922c0, (q31_t)0x4f7435c0, (q31_t)0x4f6f488f, (q31_t)0x4f6a5b2e, - (q31_t)0x4f656d9b, (q31_t)0x4f607fd7, - (q31_t)0x4f5b91e3, (q31_t)0x4f56a3bd, (q31_t)0x4f51b566, (q31_t)0x4f4cc6df, (q31_t)0x4f47d827, (q31_t)0x4f42e93d, - (q31_t)0x4f3dfa23, (q31_t)0x4f390ad8, - (q31_t)0x4f341b5c, (q31_t)0x4f2f2baf, (q31_t)0x4f2a3bd2, (q31_t)0x4f254bc3, (q31_t)0x4f205b84, (q31_t)0x4f1b6b14, - (q31_t)0x4f167a73, (q31_t)0x4f1189a1, - (q31_t)0x4f0c989f, (q31_t)0x4f07a76b, (q31_t)0x4f02b608, (q31_t)0x4efdc473, (q31_t)0x4ef8d2ad, (q31_t)0x4ef3e0b7, - (q31_t)0x4eeeee90, (q31_t)0x4ee9fc39, - (q31_t)0x4ee509b1, (q31_t)0x4ee016f8, (q31_t)0x4edb240e, (q31_t)0x4ed630f4, (q31_t)0x4ed13da9, (q31_t)0x4ecc4a2e, - (q31_t)0x4ec75682, (q31_t)0x4ec262a5, - (q31_t)0x4ebd6e98, (q31_t)0x4eb87a5a, (q31_t)0x4eb385ec, (q31_t)0x4eae914d, (q31_t)0x4ea99c7d, (q31_t)0x4ea4a77d, - (q31_t)0x4e9fb24d, (q31_t)0x4e9abcec, - (q31_t)0x4e95c75b, (q31_t)0x4e90d199, (q31_t)0x4e8bdba6, (q31_t)0x4e86e583, (q31_t)0x4e81ef30, (q31_t)0x4e7cf8ac, - (q31_t)0x4e7801f8, (q31_t)0x4e730b14, - (q31_t)0x4e6e13ff, (q31_t)0x4e691cba, (q31_t)0x4e642544, (q31_t)0x4e5f2d9e, (q31_t)0x4e5a35c7, (q31_t)0x4e553dc1, - (q31_t)0x4e50458a, (q31_t)0x4e4b4d22, - (q31_t)0x4e46548b, (q31_t)0x4e415bc3, (q31_t)0x4e3c62cb, (q31_t)0x4e3769a2, (q31_t)0x4e32704a, (q31_t)0x4e2d76c1, - (q31_t)0x4e287d08, (q31_t)0x4e23831e, - (q31_t)0x4e1e8905, (q31_t)0x4e198ebb, (q31_t)0x4e149441, (q31_t)0x4e0f9997, (q31_t)0x4e0a9ebd, (q31_t)0x4e05a3b2, - (q31_t)0x4e00a878, (q31_t)0x4dfbad0d, - (q31_t)0x4df6b173, (q31_t)0x4df1b5a8, (q31_t)0x4decb9ad, (q31_t)0x4de7bd82, (q31_t)0x4de2c127, (q31_t)0x4dddc49c, - (q31_t)0x4dd8c7e1, (q31_t)0x4dd3caf6, - (q31_t)0x4dcecdda, (q31_t)0x4dc9d08f, (q31_t)0x4dc4d314, (q31_t)0x4dbfd569, (q31_t)0x4dbad78e, (q31_t)0x4db5d983, - (q31_t)0x4db0db48, (q31_t)0x4dabdcdd, - (q31_t)0x4da6de43, (q31_t)0x4da1df78, (q31_t)0x4d9ce07d, (q31_t)0x4d97e153, (q31_t)0x4d92e1f9, (q31_t)0x4d8de26f, - (q31_t)0x4d88e2b5, (q31_t)0x4d83e2cb, - (q31_t)0x4d7ee2b1, (q31_t)0x4d79e268, (q31_t)0x4d74e1ef, (q31_t)0x4d6fe146, (q31_t)0x4d6ae06d, (q31_t)0x4d65df64, - (q31_t)0x4d60de2c, (q31_t)0x4d5bdcc4, - (q31_t)0x4d56db2d, (q31_t)0x4d51d965, (q31_t)0x4d4cd76e, (q31_t)0x4d47d547, (q31_t)0x4d42d2f1, (q31_t)0x4d3dd06b, - (q31_t)0x4d38cdb5, (q31_t)0x4d33cad0, - (q31_t)0x4d2ec7bb, (q31_t)0x4d29c476, (q31_t)0x4d24c102, (q31_t)0x4d1fbd5e, (q31_t)0x4d1ab98b, (q31_t)0x4d15b588, - (q31_t)0x4d10b155, (q31_t)0x4d0bacf3, - (q31_t)0x4d06a862, (q31_t)0x4d01a3a0, (q31_t)0x4cfc9eb0, (q31_t)0x4cf79990, (q31_t)0x4cf29440, (q31_t)0x4ced8ec1, - (q31_t)0x4ce88913, (q31_t)0x4ce38335, - (q31_t)0x4cde7d28, (q31_t)0x4cd976eb, (q31_t)0x4cd4707f, (q31_t)0x4ccf69e3, (q31_t)0x4cca6318, (q31_t)0x4cc55c1e, - (q31_t)0x4cc054f4, (q31_t)0x4cbb4d9b, - (q31_t)0x4cb64613, (q31_t)0x4cb13e5b, (q31_t)0x4cac3674, (q31_t)0x4ca72e5e, (q31_t)0x4ca22619, (q31_t)0x4c9d1da4, - (q31_t)0x4c981500, (q31_t)0x4c930c2d, - (q31_t)0x4c8e032a, (q31_t)0x4c88f9f8, (q31_t)0x4c83f097, (q31_t)0x4c7ee707, (q31_t)0x4c79dd48, (q31_t)0x4c74d359, - (q31_t)0x4c6fc93b, (q31_t)0x4c6abeef, - (q31_t)0x4c65b473, (q31_t)0x4c60a9c8, (q31_t)0x4c5b9eed, (q31_t)0x4c5693e4, (q31_t)0x4c5188ac, (q31_t)0x4c4c7d44, - (q31_t)0x4c4771ae, (q31_t)0x4c4265e8, - (q31_t)0x4c3d59f3, (q31_t)0x4c384dd0, (q31_t)0x4c33417d, (q31_t)0x4c2e34fb, (q31_t)0x4c29284b, (q31_t)0x4c241b6b, - (q31_t)0x4c1f0e5c, (q31_t)0x4c1a011f, - (q31_t)0x4c14f3b2, (q31_t)0x4c0fe617, (q31_t)0x4c0ad84c, (q31_t)0x4c05ca53, (q31_t)0x4c00bc2b, (q31_t)0x4bfbadd4, - (q31_t)0x4bf69f4e, (q31_t)0x4bf19099, - (q31_t)0x4bec81b5, (q31_t)0x4be772a3, (q31_t)0x4be26362, (q31_t)0x4bdd53f2, (q31_t)0x4bd84453, (q31_t)0x4bd33485, - (q31_t)0x4bce2488, (q31_t)0x4bc9145d, - (q31_t)0x4bc40403, (q31_t)0x4bbef37b, (q31_t)0x4bb9e2c3, (q31_t)0x4bb4d1dd, (q31_t)0x4bafc0c8, (q31_t)0x4baaaf85, - (q31_t)0x4ba59e12, (q31_t)0x4ba08c72, - (q31_t)0x4b9b7aa2, (q31_t)0x4b9668a4, (q31_t)0x4b915677, (q31_t)0x4b8c441c, (q31_t)0x4b873192, (q31_t)0x4b821ed9, - (q31_t)0x4b7d0bf2, (q31_t)0x4b77f8dc, - (q31_t)0x4b72e598, (q31_t)0x4b6dd225, (q31_t)0x4b68be84, (q31_t)0x4b63aab4, (q31_t)0x4b5e96b6, (q31_t)0x4b598289, - (q31_t)0x4b546e2d, (q31_t)0x4b4f59a4, - (q31_t)0x4b4a44eb, (q31_t)0x4b453005, (q31_t)0x4b401aef, (q31_t)0x4b3b05ac, (q31_t)0x4b35f03a, (q31_t)0x4b30da9a, - (q31_t)0x4b2bc4cb, (q31_t)0x4b26aece, - (q31_t)0x4b2198a2, (q31_t)0x4b1c8248, (q31_t)0x4b176bc0, (q31_t)0x4b12550a, (q31_t)0x4b0d3e25, (q31_t)0x4b082712, - (q31_t)0x4b030fd1, (q31_t)0x4afdf861, - (q31_t)0x4af8e0c3, (q31_t)0x4af3c8f7, (q31_t)0x4aeeb0fd, (q31_t)0x4ae998d4, (q31_t)0x4ae4807d, (q31_t)0x4adf67f8, - (q31_t)0x4ada4f45, (q31_t)0x4ad53664, - (q31_t)0x4ad01d54, (q31_t)0x4acb0417, (q31_t)0x4ac5eaab, (q31_t)0x4ac0d111, (q31_t)0x4abbb749, (q31_t)0x4ab69d53, - (q31_t)0x4ab1832f, (q31_t)0x4aac68dc, - (q31_t)0x4aa74e5c, (q31_t)0x4aa233ae, (q31_t)0x4a9d18d1, (q31_t)0x4a97fdc7, (q31_t)0x4a92e28e, (q31_t)0x4a8dc728, - (q31_t)0x4a88ab93, (q31_t)0x4a838fd1, - (q31_t)0x4a7e73e0, (q31_t)0x4a7957c2, (q31_t)0x4a743b76, (q31_t)0x4a6f1efc, (q31_t)0x4a6a0253, (q31_t)0x4a64e57d, - (q31_t)0x4a5fc879, (q31_t)0x4a5aab48, - (q31_t)0x4a558de8, (q31_t)0x4a50705a, (q31_t)0x4a4b529f, (q31_t)0x4a4634b6, (q31_t)0x4a41169f, (q31_t)0x4a3bf85a, - (q31_t)0x4a36d9e7, (q31_t)0x4a31bb47, - (q31_t)0x4a2c9c79, (q31_t)0x4a277d7d, (q31_t)0x4a225e53, (q31_t)0x4a1d3efc, (q31_t)0x4a181f77, (q31_t)0x4a12ffc4, - (q31_t)0x4a0ddfe4, (q31_t)0x4a08bfd5, - (q31_t)0x4a039f9a, (q31_t)0x49fe7f30, (q31_t)0x49f95e99, (q31_t)0x49f43dd4, (q31_t)0x49ef1ce2, (q31_t)0x49e9fbc2, - (q31_t)0x49e4da74, (q31_t)0x49dfb8f9, - (q31_t)0x49da9750, (q31_t)0x49d5757a, (q31_t)0x49d05376, (q31_t)0x49cb3145, (q31_t)0x49c60ee6, (q31_t)0x49c0ec59, - (q31_t)0x49bbc9a0, (q31_t)0x49b6a6b8, - (q31_t)0x49b183a3, (q31_t)0x49ac6061, (q31_t)0x49a73cf1, (q31_t)0x49a21954, (q31_t)0x499cf589, (q31_t)0x4997d191, - (q31_t)0x4992ad6c, (q31_t)0x498d8919, - (q31_t)0x49886499, (q31_t)0x49833fec, (q31_t)0x497e1b11, (q31_t)0x4978f609, (q31_t)0x4973d0d3, (q31_t)0x496eab70, - (q31_t)0x496985e0, (q31_t)0x49646023, - (q31_t)0x495f3a38, (q31_t)0x495a1420, (q31_t)0x4954eddb, (q31_t)0x494fc768, (q31_t)0x494aa0c9, (q31_t)0x494579fc, - (q31_t)0x49405302, (q31_t)0x493b2bdb, - (q31_t)0x49360486, (q31_t)0x4930dd05, (q31_t)0x492bb556, (q31_t)0x49268d7a, (q31_t)0x49216571, (q31_t)0x491c3d3b, - (q31_t)0x491714d8, (q31_t)0x4911ec47, - (q31_t)0x490cc38a, (q31_t)0x49079aa0, (q31_t)0x49027188, (q31_t)0x48fd4844, (q31_t)0x48f81ed2, (q31_t)0x48f2f534, - (q31_t)0x48edcb68, (q31_t)0x48e8a170, - (q31_t)0x48e3774a, (q31_t)0x48de4cf8, (q31_t)0x48d92278, (q31_t)0x48d3f7cc, (q31_t)0x48ceccf3, (q31_t)0x48c9a1ed, - (q31_t)0x48c476b9, (q31_t)0x48bf4b59, - (q31_t)0x48ba1fcd, (q31_t)0x48b4f413, (q31_t)0x48afc82c, (q31_t)0x48aa9c19, (q31_t)0x48a56fd9, (q31_t)0x48a0436c, - (q31_t)0x489b16d2, (q31_t)0x4895ea0b, - (q31_t)0x4890bd18, (q31_t)0x488b8ff8, (q31_t)0x488662ab, (q31_t)0x48813531, (q31_t)0x487c078b, (q31_t)0x4876d9b8, - (q31_t)0x4871abb8, (q31_t)0x486c7d8c, - (q31_t)0x48674f33, (q31_t)0x486220ad, (q31_t)0x485cf1fa, (q31_t)0x4857c31b, (q31_t)0x48529410, (q31_t)0x484d64d7, - (q31_t)0x48483572, (q31_t)0x484305e1, - (q31_t)0x483dd623, (q31_t)0x4838a638, (q31_t)0x48337621, (q31_t)0x482e45dd, (q31_t)0x4829156d, (q31_t)0x4823e4d0, - (q31_t)0x481eb407, (q31_t)0x48198311, - (q31_t)0x481451ef, (q31_t)0x480f20a0, (q31_t)0x4809ef25, (q31_t)0x4804bd7e, (q31_t)0x47ff8baa, (q31_t)0x47fa59a9, - (q31_t)0x47f5277d, (q31_t)0x47eff523, - (q31_t)0x47eac29e, (q31_t)0x47e58fec, (q31_t)0x47e05d0e, (q31_t)0x47db2a03, (q31_t)0x47d5f6cc, (q31_t)0x47d0c369, - (q31_t)0x47cb8fd9, (q31_t)0x47c65c1d, - (q31_t)0x47c12835, (q31_t)0x47bbf421, (q31_t)0x47b6bfe0, (q31_t)0x47b18b74, (q31_t)0x47ac56da, (q31_t)0x47a72215, - (q31_t)0x47a1ed24, (q31_t)0x479cb806, - (q31_t)0x479782bc, (q31_t)0x47924d46, (q31_t)0x478d17a4, (q31_t)0x4787e1d6, (q31_t)0x4782abdb, (q31_t)0x477d75b5, - (q31_t)0x47783f62, (q31_t)0x477308e3, - (q31_t)0x476dd239, (q31_t)0x47689b62, (q31_t)0x4763645f, (q31_t)0x475e2d30, (q31_t)0x4758f5d5, (q31_t)0x4753be4e, - (q31_t)0x474e869b, (q31_t)0x47494ebc, - (q31_t)0x474416b1, (q31_t)0x473ede7a, (q31_t)0x4739a617, (q31_t)0x47346d89, (q31_t)0x472f34ce, (q31_t)0x4729fbe7, - (q31_t)0x4724c2d5, (q31_t)0x471f8996, - (q31_t)0x471a502c, (q31_t)0x47151696, (q31_t)0x470fdcd4, (q31_t)0x470aa2e6, (q31_t)0x470568cd, (q31_t)0x47002e87, - (q31_t)0x46faf416, (q31_t)0x46f5b979, - (q31_t)0x46f07eb0, (q31_t)0x46eb43bc, (q31_t)0x46e6089b, (q31_t)0x46e0cd4f, (q31_t)0x46db91d8, (q31_t)0x46d65634, - (q31_t)0x46d11a65, (q31_t)0x46cbde6a, - (q31_t)0x46c6a244, (q31_t)0x46c165f1, (q31_t)0x46bc2974, (q31_t)0x46b6ecca, (q31_t)0x46b1aff5, (q31_t)0x46ac72f4, - (q31_t)0x46a735c8, (q31_t)0x46a1f870, - (q31_t)0x469cbaed, (q31_t)0x46977d3e, (q31_t)0x46923f63, (q31_t)0x468d015d, (q31_t)0x4687c32c, (q31_t)0x468284cf, - (q31_t)0x467d4646, (q31_t)0x46780792, - (q31_t)0x4672c8b3, (q31_t)0x466d89a8, (q31_t)0x46684a71, (q31_t)0x46630b0f, (q31_t)0x465dcb82, (q31_t)0x46588bc9, - (q31_t)0x46534be5, (q31_t)0x464e0bd6, - (q31_t)0x4648cb9b, (q31_t)0x46438b35, (q31_t)0x463e4aa3, (q31_t)0x463909e7, (q31_t)0x4633c8fe, (q31_t)0x462e87eb, - (q31_t)0x462946ac, (q31_t)0x46240542, - (q31_t)0x461ec3ad, (q31_t)0x461981ec, (q31_t)0x46144001, (q31_t)0x460efde9, (q31_t)0x4609bba7, (q31_t)0x4604793a, - (q31_t)0x45ff36a1, (q31_t)0x45f9f3dd, - (q31_t)0x45f4b0ee, (q31_t)0x45ef6dd4, (q31_t)0x45ea2a8f, (q31_t)0x45e4e71f, (q31_t)0x45dfa383, (q31_t)0x45da5fbc, - (q31_t)0x45d51bcb, (q31_t)0x45cfd7ae, - (q31_t)0x45ca9366, (q31_t)0x45c54ef3, (q31_t)0x45c00a55, (q31_t)0x45bac58c, (q31_t)0x45b58098, (q31_t)0x45b03b79, - (q31_t)0x45aaf630, (q31_t)0x45a5b0bb, - (q31_t)0x45a06b1b, (q31_t)0x459b2550, (q31_t)0x4595df5a, (q31_t)0x45909939, (q31_t)0x458b52ee, (q31_t)0x45860c77, - (q31_t)0x4580c5d6, (q31_t)0x457b7f0a, - (q31_t)0x45763813, (q31_t)0x4570f0f1, (q31_t)0x456ba9a4, (q31_t)0x4566622c, (q31_t)0x45611a8a, (q31_t)0x455bd2bc, - (q31_t)0x45568ac4, (q31_t)0x455142a2, - (q31_t)0x454bfa54, (q31_t)0x4546b1dc, (q31_t)0x45416939, (q31_t)0x453c206b, (q31_t)0x4536d773, (q31_t)0x45318e4f, - (q31_t)0x452c4502, (q31_t)0x4526fb89, - (q31_t)0x4521b1e6, (q31_t)0x451c6818, (q31_t)0x45171e20, (q31_t)0x4511d3fd, (q31_t)0x450c89af, (q31_t)0x45073f37, - (q31_t)0x4501f494, (q31_t)0x44fca9c6, - (q31_t)0x44f75ecf, (q31_t)0x44f213ac, (q31_t)0x44ecc85f, (q31_t)0x44e77ce7, (q31_t)0x44e23145, (q31_t)0x44dce579, - (q31_t)0x44d79982, (q31_t)0x44d24d60, - (q31_t)0x44cd0114, (q31_t)0x44c7b49e, (q31_t)0x44c267fd, (q31_t)0x44bd1b32, (q31_t)0x44b7ce3c, (q31_t)0x44b2811c, - (q31_t)0x44ad33d2, (q31_t)0x44a7e65d, - (q31_t)0x44a298be, (q31_t)0x449d4af5, (q31_t)0x4497fd01, (q31_t)0x4492aee3, (q31_t)0x448d609b, (q31_t)0x44881228, - (q31_t)0x4482c38b, (q31_t)0x447d74c4, - (q31_t)0x447825d2, (q31_t)0x4472d6b7, (q31_t)0x446d8771, (q31_t)0x44683801, (q31_t)0x4462e866, (q31_t)0x445d98a2, - (q31_t)0x445848b3, (q31_t)0x4452f89b, - (q31_t)0x444da858, (q31_t)0x444857ea, (q31_t)0x44430753, (q31_t)0x443db692, (q31_t)0x443865a7, (q31_t)0x44331491, - (q31_t)0x442dc351, (q31_t)0x442871e8, - (q31_t)0x44232054, (q31_t)0x441dce96, (q31_t)0x44187caf, (q31_t)0x44132a9d, (q31_t)0x440dd861, (q31_t)0x440885fc, - (q31_t)0x4403336c, (q31_t)0x43fde0b2, - (q31_t)0x43f88dcf, (q31_t)0x43f33ac1, (q31_t)0x43ede78a, (q31_t)0x43e89429, (q31_t)0x43e3409d, (q31_t)0x43ddece8, - (q31_t)0x43d8990a, (q31_t)0x43d34501, - (q31_t)0x43cdf0ce, (q31_t)0x43c89c72, (q31_t)0x43c347eb, (q31_t)0x43bdf33b, (q31_t)0x43b89e62, (q31_t)0x43b3495e, - (q31_t)0x43adf431, (q31_t)0x43a89ed9, - (q31_t)0x43a34959, (q31_t)0x439df3ae, (q31_t)0x43989dda, (q31_t)0x439347dc, (q31_t)0x438df1b4, (q31_t)0x43889b63, - (q31_t)0x438344e8, (q31_t)0x437dee43, - (q31_t)0x43789775, (q31_t)0x4373407d, (q31_t)0x436de95b, (q31_t)0x43689210, (q31_t)0x43633a9c, (q31_t)0x435de2fd, - (q31_t)0x43588b36, (q31_t)0x43533344, - (q31_t)0x434ddb29, (q31_t)0x434882e5, (q31_t)0x43432a77, (q31_t)0x433dd1e0, (q31_t)0x4338791f, (q31_t)0x43332035, - (q31_t)0x432dc721, (q31_t)0x43286de4, - (q31_t)0x4323147d, (q31_t)0x431dbaed, (q31_t)0x43186133, (q31_t)0x43130751, (q31_t)0x430dad44, (q31_t)0x4308530f, - (q31_t)0x4302f8b0, (q31_t)0x42fd9e28, - (q31_t)0x42f84376, (q31_t)0x42f2e89b, (q31_t)0x42ed8d97, (q31_t)0x42e83269, (q31_t)0x42e2d713, (q31_t)0x42dd7b93, - (q31_t)0x42d81fe9, (q31_t)0x42d2c417, - (q31_t)0x42cd681b, (q31_t)0x42c80bf6, (q31_t)0x42c2afa8, (q31_t)0x42bd5331, (q31_t)0x42b7f690, (q31_t)0x42b299c7, - (q31_t)0x42ad3cd4, (q31_t)0x42a7dfb8, - (q31_t)0x42a28273, (q31_t)0x429d2505, (q31_t)0x4297c76e, (q31_t)0x429269ae, (q31_t)0x428d0bc4, (q31_t)0x4287adb2, - (q31_t)0x42824f76, (q31_t)0x427cf112, - (q31_t)0x42779285, (q31_t)0x427233ce, (q31_t)0x426cd4ef, (q31_t)0x426775e6, (q31_t)0x426216b5, (q31_t)0x425cb75a, - (q31_t)0x425757d7, (q31_t)0x4251f82b, - (q31_t)0x424c9856, (q31_t)0x42473858, (q31_t)0x4241d831, (q31_t)0x423c77e1, (q31_t)0x42371769, (q31_t)0x4231b6c7, - (q31_t)0x422c55fd, (q31_t)0x4226f50a, - (q31_t)0x422193ee, (q31_t)0x421c32a9, (q31_t)0x4216d13c, (q31_t)0x42116fa5, (q31_t)0x420c0de6, (q31_t)0x4206abfe, - (q31_t)0x420149ee, (q31_t)0x41fbe7b5, - (q31_t)0x41f68553, (q31_t)0x41f122c8, (q31_t)0x41ebc015, (q31_t)0x41e65d39, (q31_t)0x41e0fa35, (q31_t)0x41db9707, - (q31_t)0x41d633b1, (q31_t)0x41d0d033, - (q31_t)0x41cb6c8c, (q31_t)0x41c608bc, (q31_t)0x41c0a4c4, (q31_t)0x41bb40a3, (q31_t)0x41b5dc5a, (q31_t)0x41b077e8, - (q31_t)0x41ab134e, (q31_t)0x41a5ae8b, - (q31_t)0x41a049a0, (q31_t)0x419ae48c, (q31_t)0x41957f4f, (q31_t)0x419019eb, (q31_t)0x418ab45d, (q31_t)0x41854ea8, - (q31_t)0x417fe8ca, (q31_t)0x417a82c3, - (q31_t)0x41751c94, (q31_t)0x416fb63d, (q31_t)0x416a4fbd, (q31_t)0x4164e916, (q31_t)0x415f8245, (q31_t)0x415a1b4d, - (q31_t)0x4154b42c, (q31_t)0x414f4ce2, - (q31_t)0x4149e571, (q31_t)0x41447dd7, (q31_t)0x413f1615, (q31_t)0x4139ae2b, (q31_t)0x41344618, (q31_t)0x412edddd, - (q31_t)0x4129757b, (q31_t)0x41240cef, - (q31_t)0x411ea43c, (q31_t)0x41193b61, (q31_t)0x4113d25d, (q31_t)0x410e6931, (q31_t)0x4108ffdd, (q31_t)0x41039661, - (q31_t)0x40fe2cbd, (q31_t)0x40f8c2f1, - (q31_t)0x40f358fc, (q31_t)0x40edeee0, (q31_t)0x40e8849b, (q31_t)0x40e31a2f, (q31_t)0x40ddaf9b, (q31_t)0x40d844de, - (q31_t)0x40d2d9f9, (q31_t)0x40cd6eed, - (q31_t)0x40c803b8, (q31_t)0x40c2985c, (q31_t)0x40bd2cd8, (q31_t)0x40b7c12b, (q31_t)0x40b25557, (q31_t)0x40ace95b, - (q31_t)0x40a77d37, (q31_t)0x40a210eb, - (q31_t)0x409ca477, (q31_t)0x409737dc, (q31_t)0x4091cb18, (q31_t)0x408c5e2d, (q31_t)0x4086f11a, (q31_t)0x408183df, - (q31_t)0x407c167c, (q31_t)0x4076a8f1, - (q31_t)0x40713b3f, (q31_t)0x406bcd65, (q31_t)0x40665f63, (q31_t)0x4060f13a, (q31_t)0x405b82e9, (q31_t)0x40561470, - (q31_t)0x4050a5cf, (q31_t)0x404b3707, - (q31_t)0x4045c817, (q31_t)0x404058ff, (q31_t)0x403ae9c0, (q31_t)0x40357a59, (q31_t)0x40300acb, (q31_t)0x402a9b15, - (q31_t)0x40252b37, (q31_t)0x401fbb32, - (q31_t)0x401a4b05, (q31_t)0x4014dab1, (q31_t)0x400f6a35, (q31_t)0x4009f992, (q31_t)0x400488c7, (q31_t)0x3fff17d5, - (q31_t)0x3ff9a6bb, (q31_t)0x3ff4357a, - (q31_t)0x3feec411, (q31_t)0x3fe95281, (q31_t)0x3fe3e0c9, (q31_t)0x3fde6eeb, (q31_t)0x3fd8fce4, (q31_t)0x3fd38ab6, - (q31_t)0x3fce1861, (q31_t)0x3fc8a5e5, - (q31_t)0x3fc33341, (q31_t)0x3fbdc076, (q31_t)0x3fb84d83, (q31_t)0x3fb2da6a, (q31_t)0x3fad6729, (q31_t)0x3fa7f3c0, - (q31_t)0x3fa28031, (q31_t)0x3f9d0c7a, - (q31_t)0x3f97989c, (q31_t)0x3f922496, (q31_t)0x3f8cb06a, (q31_t)0x3f873c16, (q31_t)0x3f81c79b, (q31_t)0x3f7c52f9, - (q31_t)0x3f76de30, (q31_t)0x3f71693f, - (q31_t)0x3f6bf428, (q31_t)0x3f667ee9, (q31_t)0x3f610983, (q31_t)0x3f5b93f6, (q31_t)0x3f561e42, (q31_t)0x3f50a867, - (q31_t)0x3f4b3265, (q31_t)0x3f45bc3c, - (q31_t)0x3f4045ec, (q31_t)0x3f3acf75, (q31_t)0x3f3558d7, (q31_t)0x3f2fe211, (q31_t)0x3f2a6b25, (q31_t)0x3f24f412, - (q31_t)0x3f1f7cd8, (q31_t)0x3f1a0577, - (q31_t)0x3f148def, (q31_t)0x3f0f1640, (q31_t)0x3f099e6b, (q31_t)0x3f04266e, (q31_t)0x3efeae4a, (q31_t)0x3ef93600, - (q31_t)0x3ef3bd8f, (q31_t)0x3eee44f7, - (q31_t)0x3ee8cc38, (q31_t)0x3ee35352, (q31_t)0x3eddda46, (q31_t)0x3ed86113, (q31_t)0x3ed2e7b9, (q31_t)0x3ecd6e38, - (q31_t)0x3ec7f491, (q31_t)0x3ec27ac2, - (q31_t)0x3ebd00cd, (q31_t)0x3eb786b2, (q31_t)0x3eb20c6f, (q31_t)0x3eac9206, (q31_t)0x3ea71777, (q31_t)0x3ea19cc1, - (q31_t)0x3e9c21e4, (q31_t)0x3e96a6e0, - (q31_t)0x3e912bb6, (q31_t)0x3e8bb065, (q31_t)0x3e8634ee, (q31_t)0x3e80b950, (q31_t)0x3e7b3d8c, (q31_t)0x3e75c1a1, - (q31_t)0x3e70458f, (q31_t)0x3e6ac957, - (q31_t)0x3e654cf8, (q31_t)0x3e5fd073, (q31_t)0x3e5a53c8, (q31_t)0x3e54d6f6, (q31_t)0x3e4f59fe, (q31_t)0x3e49dcdf, - (q31_t)0x3e445f99, (q31_t)0x3e3ee22e, - (q31_t)0x3e39649c, (q31_t)0x3e33e6e3, (q31_t)0x3e2e6904, (q31_t)0x3e28eaff, (q31_t)0x3e236cd4, (q31_t)0x3e1dee82, - (q31_t)0x3e18700a, (q31_t)0x3e12f16b, - (q31_t)0x3e0d72a6, (q31_t)0x3e07f3bb, (q31_t)0x3e0274aa, (q31_t)0x3dfcf572, (q31_t)0x3df77615, (q31_t)0x3df1f691, - (q31_t)0x3dec76e6, (q31_t)0x3de6f716, - (q31_t)0x3de1771f, (q31_t)0x3ddbf703, (q31_t)0x3dd676c0, (q31_t)0x3dd0f656, (q31_t)0x3dcb75c7, (q31_t)0x3dc5f512, - (q31_t)0x3dc07436, (q31_t)0x3dbaf335, - (q31_t)0x3db5720d, (q31_t)0x3daff0c0, (q31_t)0x3daa6f4c, (q31_t)0x3da4edb2, (q31_t)0x3d9f6bf2, (q31_t)0x3d99ea0d, - (q31_t)0x3d946801, (q31_t)0x3d8ee5cf, - (q31_t)0x3d896377, (q31_t)0x3d83e0f9, (q31_t)0x3d7e5e56, (q31_t)0x3d78db8c, (q31_t)0x3d73589d, (q31_t)0x3d6dd587, - (q31_t)0x3d68524c, (q31_t)0x3d62ceeb, - (q31_t)0x3d5d4b64, (q31_t)0x3d57c7b7, (q31_t)0x3d5243e4, (q31_t)0x3d4cbfeb, (q31_t)0x3d473bcd, (q31_t)0x3d41b789, - (q31_t)0x3d3c331f, (q31_t)0x3d36ae8f, - (q31_t)0x3d3129da, (q31_t)0x3d2ba4fe, (q31_t)0x3d261ffd, (q31_t)0x3d209ad7, (q31_t)0x3d1b158a, (q31_t)0x3d159018, - (q31_t)0x3d100a80, (q31_t)0x3d0a84c3, - (q31_t)0x3d04fee0, (q31_t)0x3cff78d7, (q31_t)0x3cf9f2a9, (q31_t)0x3cf46c55, (q31_t)0x3ceee5db, (q31_t)0x3ce95f3c, - (q31_t)0x3ce3d877, (q31_t)0x3cde518d, - (q31_t)0x3cd8ca7d, (q31_t)0x3cd34347, (q31_t)0x3ccdbbed, (q31_t)0x3cc8346c, (q31_t)0x3cc2acc6, (q31_t)0x3cbd24fb, - (q31_t)0x3cb79d0a, (q31_t)0x3cb214f4, - (q31_t)0x3cac8cb8, (q31_t)0x3ca70457, (q31_t)0x3ca17bd0, (q31_t)0x3c9bf324, (q31_t)0x3c966a53, (q31_t)0x3c90e15c, - (q31_t)0x3c8b5840, (q31_t)0x3c85cefe, - (q31_t)0x3c804598, (q31_t)0x3c7abc0c, (q31_t)0x3c75325a, (q31_t)0x3c6fa883, (q31_t)0x3c6a1e87, (q31_t)0x3c649466, - (q31_t)0x3c5f0a20, (q31_t)0x3c597fb4, - (q31_t)0x3c53f523, (q31_t)0x3c4e6a6d, (q31_t)0x3c48df91, (q31_t)0x3c435491, (q31_t)0x3c3dc96b, (q31_t)0x3c383e20, - (q31_t)0x3c32b2b0, (q31_t)0x3c2d271b, - (q31_t)0x3c279b61, (q31_t)0x3c220f81, (q31_t)0x3c1c837d, (q31_t)0x3c16f753, (q31_t)0x3c116b04, (q31_t)0x3c0bde91, - (q31_t)0x3c0651f8, (q31_t)0x3c00c53a, - (q31_t)0x3bfb3857, (q31_t)0x3bf5ab50, (q31_t)0x3bf01e23, (q31_t)0x3bea90d1, (q31_t)0x3be5035a, (q31_t)0x3bdf75bf, - (q31_t)0x3bd9e7fe, (q31_t)0x3bd45a19, - (q31_t)0x3bcecc0e, (q31_t)0x3bc93ddf, (q31_t)0x3bc3af8b, (q31_t)0x3bbe2112, (q31_t)0x3bb89274, (q31_t)0x3bb303b1, - (q31_t)0x3bad74c9, (q31_t)0x3ba7e5bd, - (q31_t)0x3ba2568c, (q31_t)0x3b9cc736, (q31_t)0x3b9737bb, (q31_t)0x3b91a81c, (q31_t)0x3b8c1857, (q31_t)0x3b86886e, - (q31_t)0x3b80f861, (q31_t)0x3b7b682e, - (q31_t)0x3b75d7d7, (q31_t)0x3b70475c, (q31_t)0x3b6ab6bb, (q31_t)0x3b6525f6, (q31_t)0x3b5f950c, (q31_t)0x3b5a03fe, - (q31_t)0x3b5472cb, (q31_t)0x3b4ee173, - (q31_t)0x3b494ff7, (q31_t)0x3b43be57, (q31_t)0x3b3e2c91, (q31_t)0x3b389aa8, (q31_t)0x3b330899, (q31_t)0x3b2d7666, - (q31_t)0x3b27e40f, (q31_t)0x3b225193, - (q31_t)0x3b1cbef3, (q31_t)0x3b172c2e, (q31_t)0x3b119945, (q31_t)0x3b0c0637, (q31_t)0x3b067305, (q31_t)0x3b00dfaf, - (q31_t)0x3afb4c34, (q31_t)0x3af5b894, - (q31_t)0x3af024d1, (q31_t)0x3aea90e9, (q31_t)0x3ae4fcdc, (q31_t)0x3adf68ac, (q31_t)0x3ad9d457, (q31_t)0x3ad43fdd, - (q31_t)0x3aceab40, (q31_t)0x3ac9167e, - (q31_t)0x3ac38198, (q31_t)0x3abdec8d, (q31_t)0x3ab8575f, (q31_t)0x3ab2c20c, (q31_t)0x3aad2c95, (q31_t)0x3aa796fa, - (q31_t)0x3aa2013a, (q31_t)0x3a9c6b57, - (q31_t)0x3a96d54f, (q31_t)0x3a913f23, (q31_t)0x3a8ba8d3, (q31_t)0x3a86125f, (q31_t)0x3a807bc7, (q31_t)0x3a7ae50a, - (q31_t)0x3a754e2a, (q31_t)0x3a6fb726, - (q31_t)0x3a6a1ffd, (q31_t)0x3a6488b1, (q31_t)0x3a5ef140, (q31_t)0x3a5959ab, (q31_t)0x3a53c1f3, (q31_t)0x3a4e2a16, - (q31_t)0x3a489216, (q31_t)0x3a42f9f2, - (q31_t)0x3a3d61a9, (q31_t)0x3a37c93d, (q31_t)0x3a3230ad, (q31_t)0x3a2c97f9, (q31_t)0x3a26ff21, (q31_t)0x3a216625, - (q31_t)0x3a1bcd05, (q31_t)0x3a1633c1, - (q31_t)0x3a109a5a, (q31_t)0x3a0b00cf, (q31_t)0x3a056720, (q31_t)0x39ffcd4d, (q31_t)0x39fa3356, (q31_t)0x39f4993c, - (q31_t)0x39eefefe, (q31_t)0x39e9649c, - (q31_t)0x39e3ca17, (q31_t)0x39de2f6d, (q31_t)0x39d894a0, (q31_t)0x39d2f9b0, (q31_t)0x39cd5e9b, (q31_t)0x39c7c363, - (q31_t)0x39c22808, (q31_t)0x39bc8c89, - (q31_t)0x39b6f0e6, (q31_t)0x39b1551f, (q31_t)0x39abb935, (q31_t)0x39a61d28, (q31_t)0x39a080f6, (q31_t)0x399ae4a2, - (q31_t)0x39954829, (q31_t)0x398fab8e, - (q31_t)0x398a0ece, (q31_t)0x398471ec, (q31_t)0x397ed4e5, (q31_t)0x397937bc, (q31_t)0x39739a6e, (q31_t)0x396dfcfe, - (q31_t)0x39685f6a, (q31_t)0x3962c1b2, - (q31_t)0x395d23d7, (q31_t)0x395785d9, (q31_t)0x3951e7b8, (q31_t)0x394c4973, (q31_t)0x3946ab0a, (q31_t)0x39410c7f, - (q31_t)0x393b6dd0, (q31_t)0x3935cefd, - (q31_t)0x39303008, (q31_t)0x392a90ef, (q31_t)0x3924f1b3, (q31_t)0x391f5254, (q31_t)0x3919b2d1, (q31_t)0x3914132b, - (q31_t)0x390e7362, (q31_t)0x3908d376, - (q31_t)0x39033367, (q31_t)0x38fd9334, (q31_t)0x38f7f2de, (q31_t)0x38f25266, (q31_t)0x38ecb1ca, (q31_t)0x38e7110a, - (q31_t)0x38e17028, (q31_t)0x38dbcf23, - (q31_t)0x38d62dfb, (q31_t)0x38d08caf, (q31_t)0x38caeb41, (q31_t)0x38c549af, (q31_t)0x38bfa7fb, (q31_t)0x38ba0623, - (q31_t)0x38b46429, (q31_t)0x38aec20b, - (q31_t)0x38a91fcb, (q31_t)0x38a37d67, (q31_t)0x389ddae1, (q31_t)0x38983838, (q31_t)0x3892956c, (q31_t)0x388cf27d, - (q31_t)0x38874f6b, (q31_t)0x3881ac36, - (q31_t)0x387c08de, (q31_t)0x38766564, (q31_t)0x3870c1c6, (q31_t)0x386b1e06, (q31_t)0x38657a23, (q31_t)0x385fd61d, - (q31_t)0x385a31f5, (q31_t)0x38548daa, - (q31_t)0x384ee93b, (q31_t)0x384944ab, (q31_t)0x38439ff7, (q31_t)0x383dfb21, (q31_t)0x38385628, (q31_t)0x3832b10d, - (q31_t)0x382d0bce, (q31_t)0x3827666d, - (q31_t)0x3821c0ea, (q31_t)0x381c1b44, (q31_t)0x3816757b, (q31_t)0x3810cf90, (q31_t)0x380b2982, (q31_t)0x38058351, - (q31_t)0x37ffdcfe, (q31_t)0x37fa3688, - (q31_t)0x37f48ff0, (q31_t)0x37eee936, (q31_t)0x37e94259, (q31_t)0x37e39b59, (q31_t)0x37ddf437, (q31_t)0x37d84cf2, - (q31_t)0x37d2a58b, (q31_t)0x37ccfe02, - (q31_t)0x37c75656, (q31_t)0x37c1ae87, (q31_t)0x37bc0697, (q31_t)0x37b65e84, (q31_t)0x37b0b64e, (q31_t)0x37ab0df6, - (q31_t)0x37a5657c, (q31_t)0x379fbce0, - (q31_t)0x379a1421, (q31_t)0x37946b40, (q31_t)0x378ec23d, (q31_t)0x37891917, (q31_t)0x37836fcf, (q31_t)0x377dc665, - (q31_t)0x37781cd9, (q31_t)0x3772732a, - (q31_t)0x376cc959, (q31_t)0x37671f66, (q31_t)0x37617551, (q31_t)0x375bcb1a, (q31_t)0x375620c1, (q31_t)0x37507645, - (q31_t)0x374acba7, (q31_t)0x374520e7, - (q31_t)0x373f7606, (q31_t)0x3739cb02, (q31_t)0x37341fdc, (q31_t)0x372e7493, (q31_t)0x3728c929, (q31_t)0x37231d9d, - (q31_t)0x371d71ef, (q31_t)0x3717c61f, - (q31_t)0x37121a2d, (q31_t)0x370c6e19, (q31_t)0x3706c1e2, (q31_t)0x3701158a, (q31_t)0x36fb6910, (q31_t)0x36f5bc75, - (q31_t)0x36f00fb7, (q31_t)0x36ea62d7, - (q31_t)0x36e4b5d6, (q31_t)0x36df08b2, (q31_t)0x36d95b6d, (q31_t)0x36d3ae06, (q31_t)0x36ce007d, (q31_t)0x36c852d2, - (q31_t)0x36c2a506, (q31_t)0x36bcf718, - (q31_t)0x36b74908, (q31_t)0x36b19ad6, (q31_t)0x36abec82, (q31_t)0x36a63e0d, (q31_t)0x36a08f76, (q31_t)0x369ae0bd, - (q31_t)0x369531e3, (q31_t)0x368f82e7, - (q31_t)0x3689d3c9, (q31_t)0x3684248a, (q31_t)0x367e7529, (q31_t)0x3678c5a7, (q31_t)0x36731602, (q31_t)0x366d663d, - (q31_t)0x3667b655, (q31_t)0x3662064c, - (q31_t)0x365c5622, (q31_t)0x3656a5d6, (q31_t)0x3650f569, (q31_t)0x364b44da, (q31_t)0x36459429, (q31_t)0x363fe357, - (q31_t)0x363a3264, (q31_t)0x3634814f, - (q31_t)0x362ed019, (q31_t)0x36291ec1, (q31_t)0x36236d48, (q31_t)0x361dbbad, (q31_t)0x361809f1, (q31_t)0x36125814, - (q31_t)0x360ca615, (q31_t)0x3606f3f5, - (q31_t)0x360141b4, (q31_t)0x35fb8f52, (q31_t)0x35f5dcce, (q31_t)0x35f02a28, (q31_t)0x35ea7762, (q31_t)0x35e4c47a, - (q31_t)0x35df1171, (q31_t)0x35d95e47, - (q31_t)0x35d3aafc, (q31_t)0x35cdf78f, (q31_t)0x35c84401, (q31_t)0x35c29052, (q31_t)0x35bcdc82, (q31_t)0x35b72891, - (q31_t)0x35b1747e, (q31_t)0x35abc04b, - (q31_t)0x35a60bf6, (q31_t)0x35a05781, (q31_t)0x359aa2ea, (q31_t)0x3594ee32, (q31_t)0x358f3959, (q31_t)0x3589845f, - (q31_t)0x3583cf44, (q31_t)0x357e1a08, - (q31_t)0x357864ab, (q31_t)0x3572af2d, (q31_t)0x356cf98e, (q31_t)0x356743ce, (q31_t)0x35618ded, (q31_t)0x355bd7eb, - (q31_t)0x355621c9, (q31_t)0x35506b85, - (q31_t)0x354ab520, (q31_t)0x3544fe9b, (q31_t)0x353f47f5, (q31_t)0x3539912e, (q31_t)0x3533da46, (q31_t)0x352e233d, - (q31_t)0x35286c14, (q31_t)0x3522b4c9, - (q31_t)0x351cfd5e, (q31_t)0x351745d2, (q31_t)0x35118e26, (q31_t)0x350bd658, (q31_t)0x35061e6a, (q31_t)0x3500665c, - (q31_t)0x34faae2c, (q31_t)0x34f4f5dc, - (q31_t)0x34ef3d6b, (q31_t)0x34e984da, (q31_t)0x34e3cc28, (q31_t)0x34de1355, (q31_t)0x34d85a62, (q31_t)0x34d2a14e, - (q31_t)0x34cce819, (q31_t)0x34c72ec4, - (q31_t)0x34c1754e, (q31_t)0x34bbbbb8, (q31_t)0x34b60202, (q31_t)0x34b0482a, (q31_t)0x34aa8e33, (q31_t)0x34a4d41a, - (q31_t)0x349f19e2, (q31_t)0x34995f88, - (q31_t)0x3493a50f, (q31_t)0x348dea75, (q31_t)0x34882fba, (q31_t)0x348274e0, (q31_t)0x347cb9e4, (q31_t)0x3476fec9, - (q31_t)0x3471438d, (q31_t)0x346b8830, - (q31_t)0x3465ccb4, (q31_t)0x34601117, (q31_t)0x345a5559, (q31_t)0x3454997c, (q31_t)0x344edd7e, (q31_t)0x34492160, - (q31_t)0x34436521, (q31_t)0x343da8c3, - (q31_t)0x3437ec44, (q31_t)0x34322fa5, (q31_t)0x342c72e6, (q31_t)0x3426b606, (q31_t)0x3420f907, (q31_t)0x341b3be7, - (q31_t)0x34157ea7, (q31_t)0x340fc147, - (q31_t)0x340a03c7, (q31_t)0x34044626, (q31_t)0x33fe8866, (q31_t)0x33f8ca86, (q31_t)0x33f30c85, (q31_t)0x33ed4e65, - (q31_t)0x33e79024, (q31_t)0x33e1d1c4, - (q31_t)0x33dc1343, (q31_t)0x33d654a2, (q31_t)0x33d095e2, (q31_t)0x33cad701, (q31_t)0x33c51801, (q31_t)0x33bf58e1, - (q31_t)0x33b999a0, (q31_t)0x33b3da40, - (q31_t)0x33ae1ac0, (q31_t)0x33a85b20, (q31_t)0x33a29b60, (q31_t)0x339cdb81, (q31_t)0x33971b81, (q31_t)0x33915b62, - (q31_t)0x338b9b22, (q31_t)0x3385dac4, - (q31_t)0x33801a45, (q31_t)0x337a59a6, (q31_t)0x337498e8, (q31_t)0x336ed80a, (q31_t)0x3369170c, (q31_t)0x336355ef, - (q31_t)0x335d94b2, (q31_t)0x3357d355, - (q31_t)0x335211d8, (q31_t)0x334c503c, (q31_t)0x33468e80, (q31_t)0x3340cca5, (q31_t)0x333b0aaa, (q31_t)0x3335488f, - (q31_t)0x332f8655, (q31_t)0x3329c3fb, - (q31_t)0x33240182, (q31_t)0x331e3ee9, (q31_t)0x33187c31, (q31_t)0x3312b959, (q31_t)0x330cf661, (q31_t)0x3307334a, - (q31_t)0x33017014, (q31_t)0x32fbacbe, - (q31_t)0x32f5e948, (q31_t)0x32f025b4, (q31_t)0x32ea61ff, (q31_t)0x32e49e2c, (q31_t)0x32deda39, (q31_t)0x32d91626, - (q31_t)0x32d351f5, (q31_t)0x32cd8da4, - (q31_t)0x32c7c933, (q31_t)0x32c204a3, (q31_t)0x32bc3ff4, (q31_t)0x32b67b26, (q31_t)0x32b0b638, (q31_t)0x32aaf12b, - (q31_t)0x32a52bff, (q31_t)0x329f66b4, - (q31_t)0x3299a149, (q31_t)0x3293dbbf, (q31_t)0x328e1616, (q31_t)0x3288504e, (q31_t)0x32828a67, (q31_t)0x327cc460, - (q31_t)0x3276fe3a, (q31_t)0x327137f6, - (q31_t)0x326b7192, (q31_t)0x3265ab0f, (q31_t)0x325fe46c, (q31_t)0x325a1dab, (q31_t)0x325456cb, (q31_t)0x324e8fcc, - (q31_t)0x3248c8ad, (q31_t)0x32430170, - (q31_t)0x323d3a14, (q31_t)0x32377298, (q31_t)0x3231aafe, (q31_t)0x322be345, (q31_t)0x32261b6c, (q31_t)0x32205375, - (q31_t)0x321a8b5f, (q31_t)0x3214c32a, - (q31_t)0x320efad6, (q31_t)0x32093263, (q31_t)0x320369d2, (q31_t)0x31fda121, (q31_t)0x31f7d852, (q31_t)0x31f20f64, - (q31_t)0x31ec4657, (q31_t)0x31e67d2b, - (q31_t)0x31e0b3e0, (q31_t)0x31daea77, (q31_t)0x31d520ef, (q31_t)0x31cf5748, (q31_t)0x31c98d83, (q31_t)0x31c3c39e, - (q31_t)0x31bdf99b, (q31_t)0x31b82f7a, - (q31_t)0x31b2653a, (q31_t)0x31ac9adb, (q31_t)0x31a6d05d, (q31_t)0x31a105c1, (q31_t)0x319b3b06, (q31_t)0x3195702d, - (q31_t)0x318fa535, (q31_t)0x3189da1e, - (q31_t)0x31840ee9, (q31_t)0x317e4395, (q31_t)0x31787823, (q31_t)0x3172ac92, (q31_t)0x316ce0e3, (q31_t)0x31671515, - (q31_t)0x31614929, (q31_t)0x315b7d1e, - (q31_t)0x3155b0f5, (q31_t)0x314fe4ae, (q31_t)0x314a1848, (q31_t)0x31444bc3, (q31_t)0x313e7f21, (q31_t)0x3138b260, - (q31_t)0x3132e580, (q31_t)0x312d1882, - (q31_t)0x31274b66, (q31_t)0x31217e2c, (q31_t)0x311bb0d3, (q31_t)0x3115e35c, (q31_t)0x311015c6, (q31_t)0x310a4813, - (q31_t)0x31047a41, (q31_t)0x30feac51, - (q31_t)0x30f8de42, (q31_t)0x30f31016, (q31_t)0x30ed41cb, (q31_t)0x30e77362, (q31_t)0x30e1a4db, (q31_t)0x30dbd636, - (q31_t)0x30d60772, (q31_t)0x30d03891, - (q31_t)0x30ca6991, (q31_t)0x30c49a74, (q31_t)0x30becb38, (q31_t)0x30b8fbde, (q31_t)0x30b32c66, (q31_t)0x30ad5cd0, - (q31_t)0x30a78d1c, (q31_t)0x30a1bd4a, - (q31_t)0x309bed5a, (q31_t)0x30961d4c, (q31_t)0x30904d20, (q31_t)0x308a7cd6, (q31_t)0x3084ac6e, (q31_t)0x307edbe9, - (q31_t)0x30790b45, (q31_t)0x30733a83, - (q31_t)0x306d69a4, (q31_t)0x306798a7, (q31_t)0x3061c78b, (q31_t)0x305bf652, (q31_t)0x305624fb, (q31_t)0x30505387, - (q31_t)0x304a81f4, (q31_t)0x3044b044, - (q31_t)0x303ede76, (q31_t)0x30390c8a, (q31_t)0x30333a80, (q31_t)0x302d6859, (q31_t)0x30279614, (q31_t)0x3021c3b1, - (q31_t)0x301bf131, (q31_t)0x30161e93, - (q31_t)0x30104bd7, (q31_t)0x300a78fe, (q31_t)0x3004a607, (q31_t)0x2ffed2f2, (q31_t)0x2ff8ffc0, (q31_t)0x2ff32c70, - (q31_t)0x2fed5902, (q31_t)0x2fe78577, - (q31_t)0x2fe1b1cf, (q31_t)0x2fdbde09, (q31_t)0x2fd60a25, (q31_t)0x2fd03624, (q31_t)0x2fca6206, (q31_t)0x2fc48dc9, - (q31_t)0x2fbeb970, (q31_t)0x2fb8e4f9, - (q31_t)0x2fb31064, (q31_t)0x2fad3bb3, (q31_t)0x2fa766e3, (q31_t)0x2fa191f7, (q31_t)0x2f9bbced, (q31_t)0x2f95e7c5, - (q31_t)0x2f901280, (q31_t)0x2f8a3d1e, - (q31_t)0x2f84679f, (q31_t)0x2f7e9202, (q31_t)0x2f78bc48, (q31_t)0x2f72e671, (q31_t)0x2f6d107c, (q31_t)0x2f673a6a, - (q31_t)0x2f61643b, (q31_t)0x2f5b8def, - (q31_t)0x2f55b785, (q31_t)0x2f4fe0ff, (q31_t)0x2f4a0a5b, (q31_t)0x2f44339a, (q31_t)0x2f3e5cbb, (q31_t)0x2f3885c0, - (q31_t)0x2f32aea8, (q31_t)0x2f2cd772, - (q31_t)0x2f27001f, (q31_t)0x2f2128af, (q31_t)0x2f1b5122, (q31_t)0x2f157979, (q31_t)0x2f0fa1b2, (q31_t)0x2f09c9ce, - (q31_t)0x2f03f1cd, (q31_t)0x2efe19ae, - (q31_t)0x2ef84173, (q31_t)0x2ef2691b, (q31_t)0x2eec90a7, (q31_t)0x2ee6b815, (q31_t)0x2ee0df66, (q31_t)0x2edb069a, - (q31_t)0x2ed52db1, (q31_t)0x2ecf54ac, - (q31_t)0x2ec97b89, (q31_t)0x2ec3a24a, (q31_t)0x2ebdc8ee, (q31_t)0x2eb7ef75, (q31_t)0x2eb215df, (q31_t)0x2eac3c2d, - (q31_t)0x2ea6625d, (q31_t)0x2ea08871, - (q31_t)0x2e9aae68, (q31_t)0x2e94d443, (q31_t)0x2e8efa00, (q31_t)0x2e891fa1, (q31_t)0x2e834525, (q31_t)0x2e7d6a8d, - (q31_t)0x2e778fd8, (q31_t)0x2e71b506, - (q31_t)0x2e6bda17, (q31_t)0x2e65ff0c, (q31_t)0x2e6023e5, (q31_t)0x2e5a48a0, (q31_t)0x2e546d3f, (q31_t)0x2e4e91c2, - (q31_t)0x2e48b628, (q31_t)0x2e42da71, - (q31_t)0x2e3cfe9e, (q31_t)0x2e3722ae, (q31_t)0x2e3146a2, (q31_t)0x2e2b6a79, (q31_t)0x2e258e34, (q31_t)0x2e1fb1d3, - (q31_t)0x2e19d554, (q31_t)0x2e13f8ba, - (q31_t)0x2e0e1c03, (q31_t)0x2e083f30, (q31_t)0x2e026240, (q31_t)0x2dfc8534, (q31_t)0x2df6a80b, (q31_t)0x2df0cac6, - (q31_t)0x2deaed65, (q31_t)0x2de50fe8, - (q31_t)0x2ddf324e, (q31_t)0x2dd95498, (q31_t)0x2dd376c5, (q31_t)0x2dcd98d7, (q31_t)0x2dc7bacc, (q31_t)0x2dc1dca4, - (q31_t)0x2dbbfe61, (q31_t)0x2db62001, - (q31_t)0x2db04186, (q31_t)0x2daa62ee, (q31_t)0x2da4843a, (q31_t)0x2d9ea569, (q31_t)0x2d98c67d, (q31_t)0x2d92e774, - (q31_t)0x2d8d084f, (q31_t)0x2d87290f, - (q31_t)0x2d8149b2, (q31_t)0x2d7b6a39, (q31_t)0x2d758aa4, (q31_t)0x2d6faaf3, (q31_t)0x2d69cb26, (q31_t)0x2d63eb3d, - (q31_t)0x2d5e0b38, (q31_t)0x2d582b17, - (q31_t)0x2d524ada, (q31_t)0x2d4c6a81, (q31_t)0x2d468a0c, (q31_t)0x2d40a97b, (q31_t)0x2d3ac8ce, (q31_t)0x2d34e805, - (q31_t)0x2d2f0721, (q31_t)0x2d292620, - (q31_t)0x2d234504, (q31_t)0x2d1d63cc, (q31_t)0x2d178278, (q31_t)0x2d11a108, (q31_t)0x2d0bbf7d, (q31_t)0x2d05ddd5, - (q31_t)0x2cfffc12, (q31_t)0x2cfa1a33, - (q31_t)0x2cf43839, (q31_t)0x2cee5622, (q31_t)0x2ce873f0, (q31_t)0x2ce291a2, (q31_t)0x2cdcaf39, (q31_t)0x2cd6ccb4, - (q31_t)0x2cd0ea13, (q31_t)0x2ccb0756, - (q31_t)0x2cc5247e, (q31_t)0x2cbf418b, (q31_t)0x2cb95e7b, (q31_t)0x2cb37b51, (q31_t)0x2cad980a, (q31_t)0x2ca7b4a8, - (q31_t)0x2ca1d12a, (q31_t)0x2c9bed91, - (q31_t)0x2c9609dd, (q31_t)0x2c90260d, (q31_t)0x2c8a4221, (q31_t)0x2c845e1a, (q31_t)0x2c7e79f7, (q31_t)0x2c7895b9, - (q31_t)0x2c72b160, (q31_t)0x2c6ccceb, - (q31_t)0x2c66e85b, (q31_t)0x2c6103af, (q31_t)0x2c5b1ee8, (q31_t)0x2c553a06, (q31_t)0x2c4f5508, (q31_t)0x2c496fef, - (q31_t)0x2c438abb, (q31_t)0x2c3da56b, - (q31_t)0x2c37c000, (q31_t)0x2c31da7a, (q31_t)0x2c2bf4d8, (q31_t)0x2c260f1c, (q31_t)0x2c202944, (q31_t)0x2c1a4351, - (q31_t)0x2c145d42, (q31_t)0x2c0e7719, - (q31_t)0x2c0890d4, (q31_t)0x2c02aa74, (q31_t)0x2bfcc3f9, (q31_t)0x2bf6dd63, (q31_t)0x2bf0f6b1, (q31_t)0x2beb0fe5, - (q31_t)0x2be528fd, (q31_t)0x2bdf41fb, - (q31_t)0x2bd95add, (q31_t)0x2bd373a4, (q31_t)0x2bcd8c51, (q31_t)0x2bc7a4e2, (q31_t)0x2bc1bd58, (q31_t)0x2bbbd5b3, - (q31_t)0x2bb5edf4, (q31_t)0x2bb00619, - (q31_t)0x2baa1e23, (q31_t)0x2ba43613, (q31_t)0x2b9e4de7, (q31_t)0x2b9865a1, (q31_t)0x2b927d3f, (q31_t)0x2b8c94c3, - (q31_t)0x2b86ac2c, (q31_t)0x2b80c37a, - (q31_t)0x2b7adaae, (q31_t)0x2b74f1c6, (q31_t)0x2b6f08c4, (q31_t)0x2b691fa6, (q31_t)0x2b63366f, (q31_t)0x2b5d4d1c, - (q31_t)0x2b5763ae, (q31_t)0x2b517a26, - (q31_t)0x2b4b9083, (q31_t)0x2b45a6c6, (q31_t)0x2b3fbced, (q31_t)0x2b39d2fa, (q31_t)0x2b33e8ed, (q31_t)0x2b2dfec5, - (q31_t)0x2b281482, (q31_t)0x2b222a24, - (q31_t)0x2b1c3fac, (q31_t)0x2b165519, (q31_t)0x2b106a6c, (q31_t)0x2b0a7fa4, (q31_t)0x2b0494c2, (q31_t)0x2afea9c5, - (q31_t)0x2af8bead, (q31_t)0x2af2d37b, - (q31_t)0x2aece82f, (q31_t)0x2ae6fcc8, (q31_t)0x2ae11146, (q31_t)0x2adb25aa, (q31_t)0x2ad539f4, (q31_t)0x2acf4e23, - (q31_t)0x2ac96238, (q31_t)0x2ac37633, - (q31_t)0x2abd8a13, (q31_t)0x2ab79dd8, (q31_t)0x2ab1b184, (q31_t)0x2aabc515, (q31_t)0x2aa5d88b, (q31_t)0x2a9febe8, - (q31_t)0x2a99ff2a, (q31_t)0x2a941252, - (q31_t)0x2a8e255f, (q31_t)0x2a883853, (q31_t)0x2a824b2c, (q31_t)0x2a7c5deb, (q31_t)0x2a76708f, (q31_t)0x2a70831a, - (q31_t)0x2a6a958a, (q31_t)0x2a64a7e0, - (q31_t)0x2a5eba1c, (q31_t)0x2a58cc3e, (q31_t)0x2a52de46, (q31_t)0x2a4cf033, (q31_t)0x2a470207, (q31_t)0x2a4113c0, - (q31_t)0x2a3b2560, (q31_t)0x2a3536e5, - (q31_t)0x2a2f4850, (q31_t)0x2a2959a1, (q31_t)0x2a236ad9, (q31_t)0x2a1d7bf6, (q31_t)0x2a178cf9, (q31_t)0x2a119de2, - (q31_t)0x2a0baeb2, (q31_t)0x2a05bf67, - (q31_t)0x29ffd003, (q31_t)0x29f9e084, (q31_t)0x29f3f0ec, (q31_t)0x29ee013a, (q31_t)0x29e8116e, (q31_t)0x29e22188, - (q31_t)0x29dc3188, (q31_t)0x29d6416f, - (q31_t)0x29d0513b, (q31_t)0x29ca60ee, (q31_t)0x29c47087, (q31_t)0x29be8007, (q31_t)0x29b88f6c, (q31_t)0x29b29eb8, - (q31_t)0x29acadea, (q31_t)0x29a6bd02, - (q31_t)0x29a0cc01, (q31_t)0x299adae6, (q31_t)0x2994e9b1, (q31_t)0x298ef863, (q31_t)0x298906fb, (q31_t)0x2983157a, - (q31_t)0x297d23df, (q31_t)0x2977322a, - (q31_t)0x2971405b, (q31_t)0x296b4e74, (q31_t)0x29655c72, (q31_t)0x295f6a57, (q31_t)0x29597823, (q31_t)0x295385d5, - (q31_t)0x294d936d, (q31_t)0x2947a0ec, - (q31_t)0x2941ae52, (q31_t)0x293bbb9e, (q31_t)0x2935c8d1, (q31_t)0x292fd5ea, (q31_t)0x2929e2ea, (q31_t)0x2923efd0, - (q31_t)0x291dfc9d, (q31_t)0x29180951, - (q31_t)0x291215eb, (q31_t)0x290c226c, (q31_t)0x29062ed4, (q31_t)0x29003b23, (q31_t)0x28fa4758, (q31_t)0x28f45374, - (q31_t)0x28ee5f76, (q31_t)0x28e86b5f, - (q31_t)0x28e27730, (q31_t)0x28dc82e6, (q31_t)0x28d68e84, (q31_t)0x28d09a09, (q31_t)0x28caa574, (q31_t)0x28c4b0c6, - (q31_t)0x28bebbff, (q31_t)0x28b8c71f, - (q31_t)0x28b2d226, (q31_t)0x28acdd13, (q31_t)0x28a6e7e8, (q31_t)0x28a0f2a3, (q31_t)0x289afd46, (q31_t)0x289507cf, - (q31_t)0x288f123f, (q31_t)0x28891c97, - (q31_t)0x288326d5, (q31_t)0x287d30fa, (q31_t)0x28773b07, (q31_t)0x287144fa, (q31_t)0x286b4ed5, (q31_t)0x28655896, - (q31_t)0x285f623f, (q31_t)0x28596bce, - (q31_t)0x28537545, (q31_t)0x284d7ea3, (q31_t)0x284787e8, (q31_t)0x28419114, (q31_t)0x283b9a28, (q31_t)0x2835a322, - (q31_t)0x282fac04, (q31_t)0x2829b4cd, - (q31_t)0x2823bd7d, (q31_t)0x281dc615, (q31_t)0x2817ce93, (q31_t)0x2811d6f9, (q31_t)0x280bdf46, (q31_t)0x2805e77b, - (q31_t)0x27ffef97, (q31_t)0x27f9f79a, - (q31_t)0x27f3ff85, (q31_t)0x27ee0756, (q31_t)0x27e80f10, (q31_t)0x27e216b0, (q31_t)0x27dc1e38, (q31_t)0x27d625a8, - (q31_t)0x27d02cff, (q31_t)0x27ca343d, - (q31_t)0x27c43b63, (q31_t)0x27be4270, (q31_t)0x27b84965, (q31_t)0x27b25041, (q31_t)0x27ac5705, (q31_t)0x27a65db0, - (q31_t)0x27a06443, (q31_t)0x279a6abd, - (q31_t)0x2794711f, (q31_t)0x278e7768, (q31_t)0x27887d99, (q31_t)0x278283b2, (q31_t)0x277c89b3, (q31_t)0x27768f9b, - (q31_t)0x2770956a, (q31_t)0x276a9b21, - (q31_t)0x2764a0c0, (q31_t)0x275ea647, (q31_t)0x2758abb6, (q31_t)0x2752b10c, (q31_t)0x274cb64a, (q31_t)0x2746bb6f, - (q31_t)0x2740c07d, (q31_t)0x273ac572, - (q31_t)0x2734ca4f, (q31_t)0x272ecf14, (q31_t)0x2728d3c0, (q31_t)0x2722d855, (q31_t)0x271cdcd1, (q31_t)0x2716e136, - (q31_t)0x2710e582, (q31_t)0x270ae9b6, - (q31_t)0x2704edd2, (q31_t)0x26fef1d5, (q31_t)0x26f8f5c1, (q31_t)0x26f2f995, (q31_t)0x26ecfd51, (q31_t)0x26e700f5, - (q31_t)0x26e10480, (q31_t)0x26db07f4, - (q31_t)0x26d50b50, (q31_t)0x26cf0e94, (q31_t)0x26c911c0, (q31_t)0x26c314d4, (q31_t)0x26bd17d0, (q31_t)0x26b71ab4, - (q31_t)0x26b11d80, (q31_t)0x26ab2034, - (q31_t)0x26a522d1, (q31_t)0x269f2556, (q31_t)0x269927c3, (q31_t)0x26932a18, (q31_t)0x268d2c55, (q31_t)0x26872e7b, - (q31_t)0x26813088, (q31_t)0x267b327e, - (q31_t)0x2675345d, (q31_t)0x266f3623, (q31_t)0x266937d2, (q31_t)0x26633969, (q31_t)0x265d3ae9, (q31_t)0x26573c50, - (q31_t)0x26513da1, (q31_t)0x264b3ed9, - (q31_t)0x26453ffa, (q31_t)0x263f4103, (q31_t)0x263941f5, (q31_t)0x263342cf, (q31_t)0x262d4392, (q31_t)0x2627443d, - (q31_t)0x262144d0, (q31_t)0x261b454c, - (q31_t)0x261545b0, (q31_t)0x260f45fd, (q31_t)0x26094633, (q31_t)0x26034651, (q31_t)0x25fd4657, (q31_t)0x25f74646, - (q31_t)0x25f1461e, (q31_t)0x25eb45de, - (q31_t)0x25e54587, (q31_t)0x25df4519, (q31_t)0x25d94493, (q31_t)0x25d343f6, (q31_t)0x25cd4341, (q31_t)0x25c74276, - (q31_t)0x25c14192, (q31_t)0x25bb4098, - (q31_t)0x25b53f86, (q31_t)0x25af3e5d, (q31_t)0x25a93d1d, (q31_t)0x25a33bc6, (q31_t)0x259d3a57, (q31_t)0x259738d1, - (q31_t)0x25913734, (q31_t)0x258b3580, - (q31_t)0x258533b5, (q31_t)0x257f31d2, (q31_t)0x25792fd8, (q31_t)0x25732dc8, (q31_t)0x256d2ba0, (q31_t)0x25672961, - (q31_t)0x2561270b, (q31_t)0x255b249e, - (q31_t)0x2555221a, (q31_t)0x254f1f7e, (q31_t)0x25491ccc, (q31_t)0x25431a03, (q31_t)0x253d1723, (q31_t)0x2537142c, - (q31_t)0x2531111e, (q31_t)0x252b0df9, - (q31_t)0x25250abd, (q31_t)0x251f076a, (q31_t)0x25190400, (q31_t)0x25130080, (q31_t)0x250cfce8, (q31_t)0x2506f93a, - (q31_t)0x2500f574, (q31_t)0x24faf198, - (q31_t)0x24f4eda6, (q31_t)0x24eee99c, (q31_t)0x24e8e57c, (q31_t)0x24e2e144, (q31_t)0x24dcdcf6, (q31_t)0x24d6d892, - (q31_t)0x24d0d416, (q31_t)0x24cacf84, - (q31_t)0x24c4cadb, (q31_t)0x24bec61c, (q31_t)0x24b8c146, (q31_t)0x24b2bc59, (q31_t)0x24acb756, (q31_t)0x24a6b23b, - (q31_t)0x24a0ad0b, (q31_t)0x249aa7c4, - (q31_t)0x2494a266, (q31_t)0x248e9cf1, (q31_t)0x24889766, (q31_t)0x248291c5, (q31_t)0x247c8c0d, (q31_t)0x2476863e, - (q31_t)0x24708059, (q31_t)0x246a7a5e, - (q31_t)0x2464744c, (q31_t)0x245e6e23, (q31_t)0x245867e4, (q31_t)0x2452618f, (q31_t)0x244c5b24, (q31_t)0x244654a1, - (q31_t)0x24404e09, (q31_t)0x243a475a, - (q31_t)0x24344095, (q31_t)0x242e39ba, (q31_t)0x242832c8, (q31_t)0x24222bc0, (q31_t)0x241c24a1, (q31_t)0x24161d6d, - (q31_t)0x24101622, (q31_t)0x240a0ec1, - (q31_t)0x24040749, (q31_t)0x23fdffbc, (q31_t)0x23f7f818, (q31_t)0x23f1f05e, (q31_t)0x23ebe88e, (q31_t)0x23e5e0a7, - (q31_t)0x23dfd8ab, (q31_t)0x23d9d098, - (q31_t)0x23d3c86f, (q31_t)0x23cdc031, (q31_t)0x23c7b7dc, (q31_t)0x23c1af71, (q31_t)0x23bba6f0, (q31_t)0x23b59e59, - (q31_t)0x23af95ac, (q31_t)0x23a98ce8, - (q31_t)0x23a3840f, (q31_t)0x239d7b20, (q31_t)0x2397721b, (q31_t)0x23916900, (q31_t)0x238b5fcf, (q31_t)0x23855688, - (q31_t)0x237f4d2b, (q31_t)0x237943b9, - (q31_t)0x23733a30, (q31_t)0x236d3092, (q31_t)0x236726dd, (q31_t)0x23611d13, (q31_t)0x235b1333, (q31_t)0x2355093e, - (q31_t)0x234eff32, (q31_t)0x2348f511, - (q31_t)0x2342eada, (q31_t)0x233ce08d, (q31_t)0x2336d62a, (q31_t)0x2330cbb2, (q31_t)0x232ac124, (q31_t)0x2324b680, - (q31_t)0x231eabc7, (q31_t)0x2318a0f8, - (q31_t)0x23129613, (q31_t)0x230c8b19, (q31_t)0x23068009, (q31_t)0x230074e3, (q31_t)0x22fa69a8, (q31_t)0x22f45e57, - (q31_t)0x22ee52f1, (q31_t)0x22e84775, - (q31_t)0x22e23be4, (q31_t)0x22dc303d, (q31_t)0x22d62480, (q31_t)0x22d018ae, (q31_t)0x22ca0cc7, (q31_t)0x22c400ca, - (q31_t)0x22bdf4b8, (q31_t)0x22b7e890, - (q31_t)0x22b1dc53, (q31_t)0x22abd001, (q31_t)0x22a5c399, (q31_t)0x229fb71b, (q31_t)0x2299aa89, (q31_t)0x22939de1, - (q31_t)0x228d9123, (q31_t)0x22878451, - (q31_t)0x22817769, (q31_t)0x227b6a6c, (q31_t)0x22755d59, (q31_t)0x226f5032, (q31_t)0x226942f5, (q31_t)0x226335a2, - (q31_t)0x225d283b, (q31_t)0x22571abe, - (q31_t)0x22510d2d, (q31_t)0x224aff86, (q31_t)0x2244f1c9, (q31_t)0x223ee3f8, (q31_t)0x2238d612, (q31_t)0x2232c816, - (q31_t)0x222cba06, (q31_t)0x2226abe0, - (q31_t)0x22209da5, (q31_t)0x221a8f56, (q31_t)0x221480f1, (q31_t)0x220e7277, (q31_t)0x220863e8, (q31_t)0x22025544, - (q31_t)0x21fc468b, (q31_t)0x21f637be, - (q31_t)0x21f028db, (q31_t)0x21ea19e3, (q31_t)0x21e40ad7, (q31_t)0x21ddfbb5, (q31_t)0x21d7ec7f, (q31_t)0x21d1dd34, - (q31_t)0x21cbcdd3, (q31_t)0x21c5be5e, - (q31_t)0x21bfaed5, (q31_t)0x21b99f36, (q31_t)0x21b38f83, (q31_t)0x21ad7fba, (q31_t)0x21a76fdd, (q31_t)0x21a15fec, - (q31_t)0x219b4fe5, (q31_t)0x21953fca, - (q31_t)0x218f2f9a, (q31_t)0x21891f55, (q31_t)0x21830efc, (q31_t)0x217cfe8e, (q31_t)0x2176ee0b, (q31_t)0x2170dd74, - (q31_t)0x216accc8, (q31_t)0x2164bc08, - (q31_t)0x215eab33, (q31_t)0x21589a49, (q31_t)0x2152894b, (q31_t)0x214c7838, (q31_t)0x21466710, (q31_t)0x214055d4, - (q31_t)0x213a4484, (q31_t)0x2134331f, - (q31_t)0x212e21a6, (q31_t)0x21281018, (q31_t)0x2121fe76, (q31_t)0x211becbf, (q31_t)0x2115daf4, (q31_t)0x210fc914, - (q31_t)0x2109b720, (q31_t)0x2103a518, - (q31_t)0x20fd92fb, (q31_t)0x20f780ca, (q31_t)0x20f16e84, (q31_t)0x20eb5c2b, (q31_t)0x20e549bd, (q31_t)0x20df373a, - (q31_t)0x20d924a4, (q31_t)0x20d311f9, - (q31_t)0x20ccff3a, (q31_t)0x20c6ec66, (q31_t)0x20c0d97f, (q31_t)0x20bac683, (q31_t)0x20b4b373, (q31_t)0x20aea04f, - (q31_t)0x20a88d17, (q31_t)0x20a279ca, - (q31_t)0x209c666a, (q31_t)0x209652f5, (q31_t)0x20903f6c, (q31_t)0x208a2bcf, (q31_t)0x2084181e, (q31_t)0x207e0459, - (q31_t)0x2077f080, (q31_t)0x2071dc93, - (q31_t)0x206bc892, (q31_t)0x2065b47d, (q31_t)0x205fa054, (q31_t)0x20598c17, (q31_t)0x205377c6, (q31_t)0x204d6361, - (q31_t)0x20474ee8, (q31_t)0x20413a5b, - (q31_t)0x203b25bb, (q31_t)0x20351106, (q31_t)0x202efc3e, (q31_t)0x2028e761, (q31_t)0x2022d271, (q31_t)0x201cbd6d, - (q31_t)0x2016a856, (q31_t)0x2010932a, - (q31_t)0x200a7deb, (q31_t)0x20046898, (q31_t)0x1ffe5331, (q31_t)0x1ff83db6, (q31_t)0x1ff22828, (q31_t)0x1fec1286, - (q31_t)0x1fe5fcd0, (q31_t)0x1fdfe707, - (q31_t)0x1fd9d12a, (q31_t)0x1fd3bb39, (q31_t)0x1fcda535, (q31_t)0x1fc78f1d, (q31_t)0x1fc178f1, (q31_t)0x1fbb62b2, - (q31_t)0x1fb54c60, (q31_t)0x1faf35f9, - (q31_t)0x1fa91f80, (q31_t)0x1fa308f2, (q31_t)0x1f9cf252, (q31_t)0x1f96db9d, (q31_t)0x1f90c4d5, (q31_t)0x1f8aadfa, - (q31_t)0x1f84970b, (q31_t)0x1f7e8009, - (q31_t)0x1f7868f4, (q31_t)0x1f7251ca, (q31_t)0x1f6c3a8e, (q31_t)0x1f66233e, (q31_t)0x1f600bdb, (q31_t)0x1f59f465, - (q31_t)0x1f53dcdb, (q31_t)0x1f4dc53d, - (q31_t)0x1f47ad8d, (q31_t)0x1f4195c9, (q31_t)0x1f3b7df2, (q31_t)0x1f356608, (q31_t)0x1f2f4e0a, (q31_t)0x1f2935f9, - (q31_t)0x1f231dd5, (q31_t)0x1f1d059e, - (q31_t)0x1f16ed54, (q31_t)0x1f10d4f6, (q31_t)0x1f0abc85, (q31_t)0x1f04a401, (q31_t)0x1efe8b6a, (q31_t)0x1ef872c0, - (q31_t)0x1ef25a03, (q31_t)0x1eec4132, - (q31_t)0x1ee6284f, (q31_t)0x1ee00f58, (q31_t)0x1ed9f64f, (q31_t)0x1ed3dd32, (q31_t)0x1ecdc402, (q31_t)0x1ec7aac0, - (q31_t)0x1ec1916a, (q31_t)0x1ebb7802, - (q31_t)0x1eb55e86, (q31_t)0x1eaf44f8, (q31_t)0x1ea92b56, (q31_t)0x1ea311a2, (q31_t)0x1e9cf7db, (q31_t)0x1e96de01, - (q31_t)0x1e90c414, (q31_t)0x1e8aaa14, - (q31_t)0x1e849001, (q31_t)0x1e7e75dc, (q31_t)0x1e785ba3, (q31_t)0x1e724158, (q31_t)0x1e6c26fa, (q31_t)0x1e660c8a, - (q31_t)0x1e5ff206, (q31_t)0x1e59d770, - (q31_t)0x1e53bcc7, (q31_t)0x1e4da20c, (q31_t)0x1e47873d, (q31_t)0x1e416c5d, (q31_t)0x1e3b5169, (q31_t)0x1e353663, - (q31_t)0x1e2f1b4a, (q31_t)0x1e29001e, - (q31_t)0x1e22e4e0, (q31_t)0x1e1cc990, (q31_t)0x1e16ae2c, (q31_t)0x1e1092b6, (q31_t)0x1e0a772e, (q31_t)0x1e045b93, - (q31_t)0x1dfe3fe6, (q31_t)0x1df82426, - (q31_t)0x1df20853, (q31_t)0x1debec6f, (q31_t)0x1de5d077, (q31_t)0x1ddfb46e, (q31_t)0x1dd99851, (q31_t)0x1dd37c23, - (q31_t)0x1dcd5fe2, (q31_t)0x1dc7438e, - (q31_t)0x1dc12729, (q31_t)0x1dbb0ab0, (q31_t)0x1db4ee26, (q31_t)0x1daed189, (q31_t)0x1da8b4da, (q31_t)0x1da29819, - (q31_t)0x1d9c7b45, (q31_t)0x1d965e5f, - (q31_t)0x1d904167, (q31_t)0x1d8a245c, (q31_t)0x1d840740, (q31_t)0x1d7dea11, (q31_t)0x1d77ccd0, (q31_t)0x1d71af7d, - (q31_t)0x1d6b9217, (q31_t)0x1d6574a0, - (q31_t)0x1d5f5716, (q31_t)0x1d59397a, (q31_t)0x1d531bcc, (q31_t)0x1d4cfe0d, (q31_t)0x1d46e03a, (q31_t)0x1d40c256, - (q31_t)0x1d3aa460, (q31_t)0x1d348658, - (q31_t)0x1d2e683e, (q31_t)0x1d284a12, (q31_t)0x1d222bd3, (q31_t)0x1d1c0d83, (q31_t)0x1d15ef21, (q31_t)0x1d0fd0ad, - (q31_t)0x1d09b227, (q31_t)0x1d03938f, - (q31_t)0x1cfd74e5, (q31_t)0x1cf7562a, (q31_t)0x1cf1375c, (q31_t)0x1ceb187d, (q31_t)0x1ce4f98c, (q31_t)0x1cdeda89, - (q31_t)0x1cd8bb74, (q31_t)0x1cd29c4d, - (q31_t)0x1ccc7d15, (q31_t)0x1cc65dca, (q31_t)0x1cc03e6e, (q31_t)0x1cba1f01, (q31_t)0x1cb3ff81, (q31_t)0x1caddff0, - (q31_t)0x1ca7c04d, (q31_t)0x1ca1a099, - (q31_t)0x1c9b80d3, (q31_t)0x1c9560fb, (q31_t)0x1c8f4112, (q31_t)0x1c892117, (q31_t)0x1c83010a, (q31_t)0x1c7ce0ec, - (q31_t)0x1c76c0bc, (q31_t)0x1c70a07b, - (q31_t)0x1c6a8028, (q31_t)0x1c645fc3, (q31_t)0x1c5e3f4d, (q31_t)0x1c581ec6, (q31_t)0x1c51fe2d, (q31_t)0x1c4bdd83, - (q31_t)0x1c45bcc7, (q31_t)0x1c3f9bf9, - (q31_t)0x1c397b1b, (q31_t)0x1c335a2b, (q31_t)0x1c2d3929, (q31_t)0x1c271816, (q31_t)0x1c20f6f2, (q31_t)0x1c1ad5bc, - (q31_t)0x1c14b475, (q31_t)0x1c0e931d, - (q31_t)0x1c0871b4, (q31_t)0x1c025039, (q31_t)0x1bfc2ead, (q31_t)0x1bf60d0f, (q31_t)0x1befeb60, (q31_t)0x1be9c9a1, - (q31_t)0x1be3a7cf, (q31_t)0x1bdd85ed, - (q31_t)0x1bd763fa, (q31_t)0x1bd141f5, (q31_t)0x1bcb1fdf, (q31_t)0x1bc4fdb8, (q31_t)0x1bbedb80, (q31_t)0x1bb8b937, - (q31_t)0x1bb296dc, (q31_t)0x1bac7471, - (q31_t)0x1ba651f5, (q31_t)0x1ba02f67, (q31_t)0x1b9a0cc8, (q31_t)0x1b93ea19, (q31_t)0x1b8dc758, (q31_t)0x1b87a487, - (q31_t)0x1b8181a4, (q31_t)0x1b7b5eb0, - (q31_t)0x1b753bac, (q31_t)0x1b6f1897, (q31_t)0x1b68f570, (q31_t)0x1b62d239, (q31_t)0x1b5caef1, (q31_t)0x1b568b98, - (q31_t)0x1b50682e, (q31_t)0x1b4a44b3, - (q31_t)0x1b442127, (q31_t)0x1b3dfd8b, (q31_t)0x1b37d9de, (q31_t)0x1b31b620, (q31_t)0x1b2b9251, (q31_t)0x1b256e71, - (q31_t)0x1b1f4a81, (q31_t)0x1b192680, - (q31_t)0x1b13026e, (q31_t)0x1b0cde4c, (q31_t)0x1b06ba19, (q31_t)0x1b0095d5, (q31_t)0x1afa7180, (q31_t)0x1af44d1b, - (q31_t)0x1aee28a6, (q31_t)0x1ae8041f, - (q31_t)0x1ae1df88, (q31_t)0x1adbbae1, (q31_t)0x1ad59629, (q31_t)0x1acf7160, (q31_t)0x1ac94c87, (q31_t)0x1ac3279d, - (q31_t)0x1abd02a3, (q31_t)0x1ab6dd98, - (q31_t)0x1ab0b87d, (q31_t)0x1aaa9352, (q31_t)0x1aa46e16, (q31_t)0x1a9e48c9, (q31_t)0x1a98236c, (q31_t)0x1a91fdff, - (q31_t)0x1a8bd881, (q31_t)0x1a85b2f3, - (q31_t)0x1a7f8d54, (q31_t)0x1a7967a6, (q31_t)0x1a7341e6, (q31_t)0x1a6d1c17, (q31_t)0x1a66f637, (q31_t)0x1a60d047, - (q31_t)0x1a5aaa47, (q31_t)0x1a548436, - (q31_t)0x1a4e5e15, (q31_t)0x1a4837e4, (q31_t)0x1a4211a3, (q31_t)0x1a3beb52, (q31_t)0x1a35c4f0, (q31_t)0x1a2f9e7e, - (q31_t)0x1a2977fc, (q31_t)0x1a23516a, - (q31_t)0x1a1d2ac8, (q31_t)0x1a170416, (q31_t)0x1a10dd53, (q31_t)0x1a0ab681, (q31_t)0x1a048f9e, (q31_t)0x19fe68ac, - (q31_t)0x19f841a9, (q31_t)0x19f21a96, - (q31_t)0x19ebf374, (q31_t)0x19e5cc41, (q31_t)0x19dfa4fe, (q31_t)0x19d97dac, (q31_t)0x19d35649, (q31_t)0x19cd2ed7, - (q31_t)0x19c70754, (q31_t)0x19c0dfc2, - (q31_t)0x19bab820, (q31_t)0x19b4906e, (q31_t)0x19ae68ac, (q31_t)0x19a840da, (q31_t)0x19a218f9, (q31_t)0x199bf107, - (q31_t)0x1995c906, (q31_t)0x198fa0f5, - (q31_t)0x198978d4, (q31_t)0x198350a4, (q31_t)0x197d2864, (q31_t)0x19770014, (q31_t)0x1970d7b4, (q31_t)0x196aaf45, - (q31_t)0x196486c6, (q31_t)0x195e5e37, - (q31_t)0x19583599, (q31_t)0x19520ceb, (q31_t)0x194be42d, (q31_t)0x1945bb60, (q31_t)0x193f9283, (q31_t)0x19396997, - (q31_t)0x1933409b, (q31_t)0x192d178f, - (q31_t)0x1926ee74, (q31_t)0x1920c54a, (q31_t)0x191a9c10, (q31_t)0x191472c6, (q31_t)0x190e496d, (q31_t)0x19082005, - (q31_t)0x1901f68d, (q31_t)0x18fbcd06, - (q31_t)0x18f5a36f, (q31_t)0x18ef79c9, (q31_t)0x18e95014, (q31_t)0x18e3264f, (q31_t)0x18dcfc7b, (q31_t)0x18d6d297, - (q31_t)0x18d0a8a4, (q31_t)0x18ca7ea2, - (q31_t)0x18c45491, (q31_t)0x18be2a70, (q31_t)0x18b80040, (q31_t)0x18b1d601, (q31_t)0x18ababb2, (q31_t)0x18a58154, - (q31_t)0x189f56e8, (q31_t)0x18992c6b, - (q31_t)0x189301e0, (q31_t)0x188cd746, (q31_t)0x1886ac9c, (q31_t)0x188081e4, (q31_t)0x187a571c, (q31_t)0x18742c45, - (q31_t)0x186e015f, (q31_t)0x1867d66a, - (q31_t)0x1861ab66, (q31_t)0x185b8053, (q31_t)0x18555530, (q31_t)0x184f29ff, (q31_t)0x1848febf, (q31_t)0x1842d370, - (q31_t)0x183ca812, (q31_t)0x18367ca5, - (q31_t)0x18305129, (q31_t)0x182a259e, (q31_t)0x1823fa04, (q31_t)0x181dce5b, (q31_t)0x1817a2a4, (q31_t)0x181176dd, - (q31_t)0x180b4b08, (q31_t)0x18051f24, - (q31_t)0x17fef331, (q31_t)0x17f8c72f, (q31_t)0x17f29b1e, (q31_t)0x17ec6eff, (q31_t)0x17e642d1, (q31_t)0x17e01694, - (q31_t)0x17d9ea49, (q31_t)0x17d3bdee, - (q31_t)0x17cd9186, (q31_t)0x17c7650e, (q31_t)0x17c13888, (q31_t)0x17bb0bf3, (q31_t)0x17b4df4f, (q31_t)0x17aeb29d, - (q31_t)0x17a885dc, (q31_t)0x17a2590d, - (q31_t)0x179c2c2f, (q31_t)0x1795ff42, (q31_t)0x178fd247, (q31_t)0x1789a53d, (q31_t)0x17837825, (q31_t)0x177d4afe, - (q31_t)0x17771dc9, (q31_t)0x1770f086, - (q31_t)0x176ac333, (q31_t)0x176495d3, (q31_t)0x175e6864, (q31_t)0x17583ae7, (q31_t)0x17520d5b, (q31_t)0x174bdfc1, - (q31_t)0x1745b218, (q31_t)0x173f8461, - (q31_t)0x1739569c, (q31_t)0x173328c8, (q31_t)0x172cfae6, (q31_t)0x1726ccf6, (q31_t)0x17209ef8, (q31_t)0x171a70eb, - (q31_t)0x171442d0, (q31_t)0x170e14a7, - (q31_t)0x1707e670, (q31_t)0x1701b82a, (q31_t)0x16fb89d6, (q31_t)0x16f55b74, (q31_t)0x16ef2d04, (q31_t)0x16e8fe86, - (q31_t)0x16e2cff9, (q31_t)0x16dca15f, - (q31_t)0x16d672b6, (q31_t)0x16d043ff, (q31_t)0x16ca153a, (q31_t)0x16c3e667, (q31_t)0x16bdb787, (q31_t)0x16b78898, - (q31_t)0x16b1599b, (q31_t)0x16ab2a90, - (q31_t)0x16a4fb77, (q31_t)0x169ecc50, (q31_t)0x16989d1b, (q31_t)0x16926dd8, (q31_t)0x168c3e87, (q31_t)0x16860f29, - (q31_t)0x167fdfbc, (q31_t)0x1679b042, - (q31_t)0x167380ba, (q31_t)0x166d5123, (q31_t)0x1667217f, (q31_t)0x1660f1ce, (q31_t)0x165ac20e, (q31_t)0x16549241, - (q31_t)0x164e6266, (q31_t)0x1648327d, - (q31_t)0x16420286, (q31_t)0x163bd282, (q31_t)0x1635a270, (q31_t)0x162f7250, (q31_t)0x16294222, (q31_t)0x162311e7, - (q31_t)0x161ce19e, (q31_t)0x1616b148, - (q31_t)0x161080e4, (q31_t)0x160a5072, (q31_t)0x16041ff3, (q31_t)0x15fdef66, (q31_t)0x15f7becc, (q31_t)0x15f18e24, - (q31_t)0x15eb5d6e, (q31_t)0x15e52cab, - (q31_t)0x15defbdb, (q31_t)0x15d8cafd, (q31_t)0x15d29a11, (q31_t)0x15cc6918, (q31_t)0x15c63812, (q31_t)0x15c006fe, - (q31_t)0x15b9d5dd, (q31_t)0x15b3a4ae, - (q31_t)0x15ad7372, (q31_t)0x15a74228, (q31_t)0x15a110d2, (q31_t)0x159adf6e, (q31_t)0x1594adfc, (q31_t)0x158e7c7d, - (q31_t)0x15884af1, (q31_t)0x15821958, - (q31_t)0x157be7b1, (q31_t)0x1575b5fe, (q31_t)0x156f843c, (q31_t)0x1569526e, (q31_t)0x15632093, (q31_t)0x155ceeaa, - (q31_t)0x1556bcb4, (q31_t)0x15508ab1, - (q31_t)0x154a58a1, (q31_t)0x15442683, (q31_t)0x153df459, (q31_t)0x1537c221, (q31_t)0x15318fdd, (q31_t)0x152b5d8b, - (q31_t)0x15252b2c, (q31_t)0x151ef8c0, - (q31_t)0x1518c648, (q31_t)0x151293c2, (q31_t)0x150c612f, (q31_t)0x15062e8f, (q31_t)0x14fffbe2, (q31_t)0x14f9c928, - (q31_t)0x14f39662, (q31_t)0x14ed638e, - (q31_t)0x14e730ae, (q31_t)0x14e0fdc0, (q31_t)0x14dacac6, (q31_t)0x14d497bf, (q31_t)0x14ce64ab, (q31_t)0x14c8318a, - (q31_t)0x14c1fe5c, (q31_t)0x14bbcb22, - (q31_t)0x14b597da, (q31_t)0x14af6486, (q31_t)0x14a93125, (q31_t)0x14a2fdb8, (q31_t)0x149cca3e, (q31_t)0x149696b7, - (q31_t)0x14906323, (q31_t)0x148a2f82, - (q31_t)0x1483fbd5, (q31_t)0x147dc81c, (q31_t)0x14779455, (q31_t)0x14716082, (q31_t)0x146b2ca3, (q31_t)0x1464f8b7, - (q31_t)0x145ec4be, (q31_t)0x145890b9, - (q31_t)0x14525ca7, (q31_t)0x144c2888, (q31_t)0x1445f45d, (q31_t)0x143fc026, (q31_t)0x14398be2, (q31_t)0x14335792, - (q31_t)0x142d2335, (q31_t)0x1426eecb, - (q31_t)0x1420ba56, (q31_t)0x141a85d3, (q31_t)0x14145145, (q31_t)0x140e1caa, (q31_t)0x1407e803, (q31_t)0x1401b34f, - (q31_t)0x13fb7e8f, (q31_t)0x13f549c3, - (q31_t)0x13ef14ea, (q31_t)0x13e8e005, (q31_t)0x13e2ab14, (q31_t)0x13dc7616, (q31_t)0x13d6410d, (q31_t)0x13d00bf7, - (q31_t)0x13c9d6d4, (q31_t)0x13c3a1a6, - (q31_t)0x13bd6c6b, (q31_t)0x13b73725, (q31_t)0x13b101d2, (q31_t)0x13aacc73, (q31_t)0x13a49707, (q31_t)0x139e6190, - (q31_t)0x13982c0d, (q31_t)0x1391f67d, - (q31_t)0x138bc0e1, (q31_t)0x13858b3a, (q31_t)0x137f5586, (q31_t)0x13791fc6, (q31_t)0x1372e9fb, (q31_t)0x136cb423, - (q31_t)0x13667e3f, (q31_t)0x13604850, - (q31_t)0x135a1254, (q31_t)0x1353dc4c, (q31_t)0x134da639, (q31_t)0x1347701a, (q31_t)0x134139ee, (q31_t)0x133b03b7, - (q31_t)0x1334cd74, (q31_t)0x132e9725, - (q31_t)0x132860ca, (q31_t)0x13222a64, (q31_t)0x131bf3f2, (q31_t)0x1315bd73, (q31_t)0x130f86ea, (q31_t)0x13095054, - (q31_t)0x130319b3, (q31_t)0x12fce305, - (q31_t)0x12f6ac4d, (q31_t)0x12f07588, (q31_t)0x12ea3eb8, (q31_t)0x12e407dc, (q31_t)0x12ddd0f4, (q31_t)0x12d79a01, - (q31_t)0x12d16303, (q31_t)0x12cb2bf8, - (q31_t)0x12c4f4e2, (q31_t)0x12bebdc1, (q31_t)0x12b88693, (q31_t)0x12b24f5b, (q31_t)0x12ac1817, (q31_t)0x12a5e0c7, - (q31_t)0x129fa96c, (q31_t)0x12997205, - (q31_t)0x12933a93, (q31_t)0x128d0315, (q31_t)0x1286cb8c, (q31_t)0x128093f7, (q31_t)0x127a5c57, (q31_t)0x127424ac, - (q31_t)0x126decf5, (q31_t)0x1267b533, - (q31_t)0x12617d66, (q31_t)0x125b458d, (q31_t)0x12550da9, (q31_t)0x124ed5ba, (q31_t)0x12489dbf, (q31_t)0x124265b9, - (q31_t)0x123c2da8, (q31_t)0x1235f58b, - (q31_t)0x122fbd63, (q31_t)0x12298530, (q31_t)0x12234cf2, (q31_t)0x121d14a9, (q31_t)0x1216dc54, (q31_t)0x1210a3f5, - (q31_t)0x120a6b8a, (q31_t)0x12043314, - (q31_t)0x11fdfa93, (q31_t)0x11f7c207, (q31_t)0x11f18970, (q31_t)0x11eb50cd, (q31_t)0x11e51820, (q31_t)0x11dedf68, - (q31_t)0x11d8a6a4, (q31_t)0x11d26dd6, - (q31_t)0x11cc34fc, (q31_t)0x11c5fc18, (q31_t)0x11bfc329, (q31_t)0x11b98a2e, (q31_t)0x11b35129, (q31_t)0x11ad1819, - (q31_t)0x11a6defe, (q31_t)0x11a0a5d8, - (q31_t)0x119a6ca7, (q31_t)0x1194336b, (q31_t)0x118dfa25, (q31_t)0x1187c0d3, (q31_t)0x11818777, (q31_t)0x117b4e10, - (q31_t)0x1175149e, (q31_t)0x116edb22, - (q31_t)0x1168a19b, (q31_t)0x11626809, (q31_t)0x115c2e6c, (q31_t)0x1155f4c4, (q31_t)0x114fbb12, (q31_t)0x11498156, - (q31_t)0x1143478e, (q31_t)0x113d0dbc, - (q31_t)0x1136d3df, (q31_t)0x113099f8, (q31_t)0x112a6006, (q31_t)0x11242609, (q31_t)0x111dec02, (q31_t)0x1117b1f0, - (q31_t)0x111177d4, (q31_t)0x110b3dad, - (q31_t)0x1105037c, (q31_t)0x10fec940, (q31_t)0x10f88efa, (q31_t)0x10f254a9, (q31_t)0x10ec1a4e, (q31_t)0x10e5dfe8, - (q31_t)0x10dfa578, (q31_t)0x10d96afe, - (q31_t)0x10d33079, (q31_t)0x10ccf5ea, (q31_t)0x10c6bb50, (q31_t)0x10c080ac, (q31_t)0x10ba45fe, (q31_t)0x10b40b45, - (q31_t)0x10add082, (q31_t)0x10a795b5, - (q31_t)0x10a15ade, (q31_t)0x109b1ffc, (q31_t)0x1094e510, (q31_t)0x108eaa1a, (q31_t)0x10886f19, (q31_t)0x1082340f, - (q31_t)0x107bf8fa, (q31_t)0x1075bddb, - (q31_t)0x106f82b2, (q31_t)0x1069477f, (q31_t)0x10630c41, (q31_t)0x105cd0fa, (q31_t)0x105695a8, (q31_t)0x10505a4d, - (q31_t)0x104a1ee7, (q31_t)0x1043e377, - (q31_t)0x103da7fd, (q31_t)0x10376c79, (q31_t)0x103130ec, (q31_t)0x102af554, (q31_t)0x1024b9b2, (q31_t)0x101e7e06, - (q31_t)0x10184251, (q31_t)0x10120691, - (q31_t)0x100bcac7, (q31_t)0x10058ef4, (q31_t)0xfff5317, (q31_t)0xff91730, (q31_t)0xff2db3e, (q31_t)0xfec9f44, - (q31_t)0xfe6633f, (q31_t)0xfe02730, - (q31_t)0xfd9eb18, (q31_t)0xfd3aef6, (q31_t)0xfcd72ca, (q31_t)0xfc73695, (q31_t)0xfc0fa55, (q31_t)0xfbabe0c, (q31_t)0xfb481ba, - (q31_t)0xfae455d, - (q31_t)0xfa808f7, (q31_t)0xfa1cc87, (q31_t)0xf9b900e, (q31_t)0xf95538b, (q31_t)0xf8f16fe, (q31_t)0xf88da68, (q31_t)0xf829dc8, - (q31_t)0xf7c611f, - (q31_t)0xf76246c, (q31_t)0xf6fe7af, (q31_t)0xf69aae9, (q31_t)0xf636e1a, (q31_t)0xf5d3141, (q31_t)0xf56f45e, (q31_t)0xf50b773, - (q31_t)0xf4a7a7d, - (q31_t)0xf443d7e, (q31_t)0xf3e0076, (q31_t)0xf37c365, (q31_t)0xf318649, (q31_t)0xf2b4925, (q31_t)0xf250bf7, (q31_t)0xf1ecec0, - (q31_t)0xf189180, - (q31_t)0xf125436, (q31_t)0xf0c16e3, (q31_t)0xf05d987, (q31_t)0xeff9c21, (q31_t)0xef95eb2, (q31_t)0xef3213a, (q31_t)0xeece3b9, - (q31_t)0xee6a62f, - (q31_t)0xee0689b, (q31_t)0xeda2afe, (q31_t)0xed3ed58, (q31_t)0xecdafa9, (q31_t)0xec771f1, (q31_t)0xec1342f, (q31_t)0xebaf665, - (q31_t)0xeb4b891, - (q31_t)0xeae7ab4, (q31_t)0xea83ccf, (q31_t)0xea1fee0, (q31_t)0xe9bc0e8, (q31_t)0xe9582e7, (q31_t)0xe8f44dd, (q31_t)0xe8906cb, - (q31_t)0xe82c8af, - (q31_t)0xe7c8a8a, (q31_t)0xe764c5c, (q31_t)0xe700e26, (q31_t)0xe69cfe6, (q31_t)0xe63919e, (q31_t)0xe5d534d, (q31_t)0xe5714f3, - (q31_t)0xe50d690, - (q31_t)0xe4a9824, (q31_t)0xe4459af, (q31_t)0xe3e1b32, (q31_t)0xe37dcac, (q31_t)0xe319e1d, (q31_t)0xe2b5f85, (q31_t)0xe2520e5, - (q31_t)0xe1ee23c, - (q31_t)0xe18a38a, (q31_t)0xe1264cf, (q31_t)0xe0c260c, (q31_t)0xe05e740, (q31_t)0xdffa86b, (q31_t)0xdf9698e, (q31_t)0xdf32aa8, - (q31_t)0xdecebba, - (q31_t)0xde6acc3, (q31_t)0xde06dc3, (q31_t)0xdda2ebb, (q31_t)0xdd3efab, (q31_t)0xdcdb091, (q31_t)0xdc77170, (q31_t)0xdc13245, - (q31_t)0xdbaf313, - (q31_t)0xdb4b3d7, (q31_t)0xdae7494, (q31_t)0xda83548, (q31_t)0xda1f5f3, (q31_t)0xd9bb696, (q31_t)0xd957731, (q31_t)0xd8f37c3, - (q31_t)0xd88f84d, - (q31_t)0xd82b8cf, (q31_t)0xd7c7948, (q31_t)0xd7639b9, (q31_t)0xd6ffa22, (q31_t)0xd69ba82, (q31_t)0xd637ada, (q31_t)0xd5d3b2a, - (q31_t)0xd56fb71, - (q31_t)0xd50bbb1, (q31_t)0xd4a7be8, (q31_t)0xd443c17, (q31_t)0xd3dfc3e, (q31_t)0xd37bc5c, (q31_t)0xd317c73, (q31_t)0xd2b3c81, - (q31_t)0xd24fc87, - (q31_t)0xd1ebc85, (q31_t)0xd187c7b, (q31_t)0xd123c69, (q31_t)0xd0bfc4f, (q31_t)0xd05bc2d, (q31_t)0xcff7c02, (q31_t)0xcf93bd0, - (q31_t)0xcf2fb96, - (q31_t)0xcecbb53, (q31_t)0xce67b09, (q31_t)0xce03ab7, (q31_t)0xcd9fa5d, (q31_t)0xcd3b9fb, (q31_t)0xccd7991, (q31_t)0xcc7391f, - (q31_t)0xcc0f8a5, - (q31_t)0xcbab824, (q31_t)0xcb4779a, (q31_t)0xcae3709, (q31_t)0xca7f670, (q31_t)0xca1b5cf, (q31_t)0xc9b7526, (q31_t)0xc953475, - (q31_t)0xc8ef3bd, - (q31_t)0xc88b2fd, (q31_t)0xc827235, (q31_t)0xc7c3166, (q31_t)0xc75f08f, (q31_t)0xc6fafb0, (q31_t)0xc696ec9, (q31_t)0xc632ddb, - (q31_t)0xc5cece5, - (q31_t)0xc56abe8, (q31_t)0xc506ae3, (q31_t)0xc4a29d6, (q31_t)0xc43e8c2, (q31_t)0xc3da7a6, (q31_t)0xc376683, (q31_t)0xc312558, - (q31_t)0xc2ae425, - (q31_t)0xc24a2eb, (q31_t)0xc1e61aa, (q31_t)0xc182061, (q31_t)0xc11df11, (q31_t)0xc0b9db9, (q31_t)0xc055c5a, (q31_t)0xbff1af3, - (q31_t)0xbf8d985, - (q31_t)0xbf29810, (q31_t)0xbec5693, (q31_t)0xbe6150f, (q31_t)0xbdfd383, (q31_t)0xbd991f0, (q31_t)0xbd35056, (q31_t)0xbcd0eb5, - (q31_t)0xbc6cd0c, - (q31_t)0xbc08b5c, (q31_t)0xbba49a5, (q31_t)0xbb407e7, (q31_t)0xbadc621, (q31_t)0xba78454, (q31_t)0xba14280, (q31_t)0xb9b00a5, - (q31_t)0xb94bec2, - (q31_t)0xb8e7cd9, (q31_t)0xb883ae8, (q31_t)0xb81f8f0, (q31_t)0xb7bb6f2, (q31_t)0xb7574ec, (q31_t)0xb6f32df, (q31_t)0xb68f0cb, - (q31_t)0xb62aeaf, - (q31_t)0xb5c6c8d, (q31_t)0xb562a64, (q31_t)0xb4fe834, (q31_t)0xb49a5fd, (q31_t)0xb4363bf, (q31_t)0xb3d217a, (q31_t)0xb36df2e, - (q31_t)0xb309cdb, - (q31_t)0xb2a5a81, (q31_t)0xb241820, (q31_t)0xb1dd5b9, (q31_t)0xb17934b, (q31_t)0xb1150d5, (q31_t)0xb0b0e59, (q31_t)0xb04cbd6, - (q31_t)0xafe894d, - (q31_t)0xaf846bc, (q31_t)0xaf20425, (q31_t)0xaebc187, (q31_t)0xae57ee2, (q31_t)0xadf3c37, (q31_t)0xad8f985, (q31_t)0xad2b6cc, - (q31_t)0xacc740c, - (q31_t)0xac63146, (q31_t)0xabfee79, (q31_t)0xab9aba6, (q31_t)0xab368cc, (q31_t)0xaad25eb, (q31_t)0xaa6e304, (q31_t)0xaa0a016, - (q31_t)0xa9a5d22, - (q31_t)0xa941a27, (q31_t)0xa8dd725, (q31_t)0xa87941d, (q31_t)0xa81510f, (q31_t)0xa7b0dfa, (q31_t)0xa74cadf, (q31_t)0xa6e87bd, - (q31_t)0xa684495, - (q31_t)0xa620166, (q31_t)0xa5bbe31, (q31_t)0xa557af5, (q31_t)0xa4f37b3, (q31_t)0xa48f46b, (q31_t)0xa42b11d, (q31_t)0xa3c6dc8, - (q31_t)0xa362a6d, - (q31_t)0xa2fe70b, (q31_t)0xa29a3a3, (q31_t)0xa236035, (q31_t)0xa1d1cc1, (q31_t)0xa16d946, (q31_t)0xa1095c6, (q31_t)0xa0a523f, - (q31_t)0xa040eb1, - (q31_t)0x9fdcb1e, (q31_t)0x9f78784, (q31_t)0x9f143e5, (q31_t)0x9eb003f, (q31_t)0x9e4bc93, (q31_t)0x9de78e1, (q31_t)0x9d83529, - (q31_t)0x9d1f16b, - (q31_t)0x9cbada7, (q31_t)0x9c569dc, (q31_t)0x9bf260c, (q31_t)0x9b8e236, (q31_t)0x9b29e59, (q31_t)0x9ac5a77, (q31_t)0x9a6168f, - (q31_t)0x99fd2a0, - (q31_t)0x9998eac, (q31_t)0x9934ab2, (q31_t)0x98d06b2, (q31_t)0x986c2ac, (q31_t)0x9807ea1, (q31_t)0x97a3a8f, (q31_t)0x973f678, - (q31_t)0x96db25a, - (q31_t)0x9676e37, (q31_t)0x9612a0e, (q31_t)0x95ae5e0, (q31_t)0x954a1ab, (q31_t)0x94e5d71, (q31_t)0x9481931, (q31_t)0x941d4eb, - (q31_t)0x93b90a0, - (q31_t)0x9354c4f, (q31_t)0x92f07f8, (q31_t)0x928c39b, (q31_t)0x9227f39, (q31_t)0x91c3ad2, (q31_t)0x915f664, (q31_t)0x90fb1f1, - (q31_t)0x9096d79, - (q31_t)0x90328fb, (q31_t)0x8fce477, (q31_t)0x8f69fee, (q31_t)0x8f05b5f, (q31_t)0x8ea16cb, (q31_t)0x8e3d231, (q31_t)0x8dd8d92, - (q31_t)0x8d748ed, - (q31_t)0x8d10443, (q31_t)0x8cabf93, (q31_t)0x8c47ade, (q31_t)0x8be3624, (q31_t)0x8b7f164, (q31_t)0x8b1ac9f, (q31_t)0x8ab67d4, - (q31_t)0x8a52304, - (q31_t)0x89ede2f, (q31_t)0x8989955, (q31_t)0x8925475, (q31_t)0x88c0f90, (q31_t)0x885caa5, (q31_t)0x87f85b5, (q31_t)0x87940c1, - (q31_t)0x872fbc6, - (q31_t)0x86cb6c7, (q31_t)0x86671c2, (q31_t)0x8602cb9, (q31_t)0x859e7aa, (q31_t)0x853a296, (q31_t)0x84d5d7d, (q31_t)0x847185e, - (q31_t)0x840d33b, - (q31_t)0x83a8e12, (q31_t)0x83448e5, (q31_t)0x82e03b2, (q31_t)0x827be7a, (q31_t)0x821793e, (q31_t)0x81b33fc, (q31_t)0x814eeb5, - (q31_t)0x80ea969, - (q31_t)0x8086419, (q31_t)0x8021ec3, (q31_t)0x7fbd968, (q31_t)0x7f59409, (q31_t)0x7ef4ea4, (q31_t)0x7e9093b, (q31_t)0x7e2c3cd, - (q31_t)0x7dc7e5a, - (q31_t)0x7d638e2, (q31_t)0x7cff365, (q31_t)0x7c9ade4, (q31_t)0x7c3685d, (q31_t)0x7bd22d2, (q31_t)0x7b6dd42, (q31_t)0x7b097ad, - (q31_t)0x7aa5214, - (q31_t)0x7a40c76, (q31_t)0x79dc6d3, (q31_t)0x797812b, (q31_t)0x7913b7f, (q31_t)0x78af5ce, (q31_t)0x784b019, (q31_t)0x77e6a5e, - (q31_t)0x77824a0, - (q31_t)0x771dedc, (q31_t)0x76b9914, (q31_t)0x7655347, (q31_t)0x75f0d76, (q31_t)0x758c7a1, (q31_t)0x75281c6, (q31_t)0x74c3be7, - (q31_t)0x745f604, - (q31_t)0x73fb01c, (q31_t)0x7396a30, (q31_t)0x733243f, (q31_t)0x72cde4a, (q31_t)0x7269851, (q31_t)0x7205253, (q31_t)0x71a0c50, - (q31_t)0x713c64a, - (q31_t)0x70d803f, (q31_t)0x7073a2f, (q31_t)0x700f41b, (q31_t)0x6faae03, (q31_t)0x6f467e7, (q31_t)0x6ee21c6, (q31_t)0x6e7dba1, - (q31_t)0x6e19578, - (q31_t)0x6db4f4a, (q31_t)0x6d50919, (q31_t)0x6cec2e3, (q31_t)0x6c87ca9, (q31_t)0x6c2366a, (q31_t)0x6bbf028, (q31_t)0x6b5a9e1, - (q31_t)0x6af6396, - (q31_t)0x6a91d47, (q31_t)0x6a2d6f4, (q31_t)0x69c909d, (q31_t)0x6964a42, (q31_t)0x69003e3, (q31_t)0x689bd80, (q31_t)0x6837718, - (q31_t)0x67d30ad, - (q31_t)0x676ea3d, (q31_t)0x670a3ca, (q31_t)0x66a5d53, (q31_t)0x66416d8, (q31_t)0x65dd058, (q31_t)0x65789d5, (q31_t)0x651434e, - (q31_t)0x64afcc3, - (q31_t)0x644b634, (q31_t)0x63e6fa2, (q31_t)0x638290b, (q31_t)0x631e271, (q31_t)0x62b9bd3, (q31_t)0x6255531, (q31_t)0x61f0e8b, - (q31_t)0x618c7e1, - (q31_t)0x6128134, (q31_t)0x60c3a83, (q31_t)0x605f3ce, (q31_t)0x5ffad15, (q31_t)0x5f96659, (q31_t)0x5f31f99, (q31_t)0x5ecd8d6, - (q31_t)0x5e6920e, - (q31_t)0x5e04b43, (q31_t)0x5da0475, (q31_t)0x5d3bda3, (q31_t)0x5cd76cd, (q31_t)0x5c72ff4, (q31_t)0x5c0e917, (q31_t)0x5baa237, - (q31_t)0x5b45b53, - (q31_t)0x5ae146b, (q31_t)0x5a7cd80, (q31_t)0x5a18692, (q31_t)0x59b3fa0, (q31_t)0x594f8aa, (q31_t)0x58eb1b2, (q31_t)0x5886ab5, - (q31_t)0x58223b6, - (q31_t)0x57bdcb3, (q31_t)0x57595ac, (q31_t)0x56f4ea2, (q31_t)0x5690795, (q31_t)0x562c085, (q31_t)0x55c7971, (q31_t)0x556325a, - (q31_t)0x54feb3f, - (q31_t)0x549a422, (q31_t)0x5435d01, (q31_t)0x53d15dd, (q31_t)0x536ceb5, (q31_t)0x530878a, (q31_t)0x52a405d, (q31_t)0x523f92c, - (q31_t)0x51db1f7, - (q31_t)0x5176ac0, (q31_t)0x5112385, (q31_t)0x50adc48, (q31_t)0x5049507, (q31_t)0x4fe4dc3, (q31_t)0x4f8067c, (q31_t)0x4f1bf32, - (q31_t)0x4eb77e5, - (q31_t)0x4e53095, (q31_t)0x4dee942, (q31_t)0x4d8a1ec, (q31_t)0x4d25a93, (q31_t)0x4cc1337, (q31_t)0x4c5cbd8, (q31_t)0x4bf8476, - (q31_t)0x4b93d11, - (q31_t)0x4b2f5a9, (q31_t)0x4acae3e, (q31_t)0x4a666d1, (q31_t)0x4a01f60, (q31_t)0x499d7ed, (q31_t)0x4939077, (q31_t)0x48d48fe, - (q31_t)0x4870182, - (q31_t)0x480ba04, (q31_t)0x47a7282, (q31_t)0x4742afe, (q31_t)0x46de377, (q31_t)0x4679bee, (q31_t)0x4615461, (q31_t)0x45b0cd2, - (q31_t)0x454c541, - (q31_t)0x44e7dac, (q31_t)0x4483615, (q31_t)0x441ee7c, (q31_t)0x43ba6df, (q31_t)0x4355f40, (q31_t)0x42f179f, (q31_t)0x428cffb, - (q31_t)0x4228854, - (q31_t)0x41c40ab, (q31_t)0x415f8ff, (q31_t)0x40fb151, (q31_t)0x40969a0, (q31_t)0x40321ed, (q31_t)0x3fcda37, (q31_t)0x3f6927f, - (q31_t)0x3f04ac4, - (q31_t)0x3ea0307, (q31_t)0x3e3bb48, (q31_t)0x3dd7386, (q31_t)0x3d72bc2, (q31_t)0x3d0e3fb, (q31_t)0x3ca9c32, (q31_t)0x3c45467, - (q31_t)0x3be0c99, - (q31_t)0x3b7c4c9, (q31_t)0x3b17cf7, (q31_t)0x3ab3523, (q31_t)0x3a4ed4c, (q31_t)0x39ea573, (q31_t)0x3985d97, (q31_t)0x39215ba, - (q31_t)0x38bcdda, - (q31_t)0x38585f8, (q31_t)0x37f3e14, (q31_t)0x378f62e, (q31_t)0x372ae46, (q31_t)0x36c665b, (q31_t)0x3661e6f, (q31_t)0x35fd680, - (q31_t)0x3598e8f, - (q31_t)0x353469c, (q31_t)0x34cfea8, (q31_t)0x346b6b1, (q31_t)0x3406eb8, (q31_t)0x33a26bd, (q31_t)0x333dec0, (q31_t)0x32d96c1, - (q31_t)0x3274ec0, - (q31_t)0x32106bd, (q31_t)0x31abeb9, (q31_t)0x31476b2, (q31_t)0x30e2ea9, (q31_t)0x307e69f, (q31_t)0x3019e93, (q31_t)0x2fb5684, - (q31_t)0x2f50e74, - (q31_t)0x2eec663, (q31_t)0x2e87e4f, (q31_t)0x2e2363a, (q31_t)0x2dbee22, (q31_t)0x2d5a609, (q31_t)0x2cf5def, (q31_t)0x2c915d2, - (q31_t)0x2c2cdb4, - (q31_t)0x2bc8594, (q31_t)0x2b63d73, (q31_t)0x2aff54f, (q31_t)0x2a9ad2a, (q31_t)0x2a36504, (q31_t)0x29d1cdc, (q31_t)0x296d4b2, - (q31_t)0x2908c87, - (q31_t)0x28a445a, (q31_t)0x283fc2b, (q31_t)0x27db3fb, (q31_t)0x2776bc9, (q31_t)0x2712396, (q31_t)0x26adb62, (q31_t)0x264932b, - (q31_t)0x25e4af4, - (q31_t)0x25802bb, (q31_t)0x251ba80, (q31_t)0x24b7244, (q31_t)0x2452a07, (q31_t)0x23ee1c8, (q31_t)0x2389988, (q31_t)0x2325147, - (q31_t)0x22c0904, - (q31_t)0x225c0bf, (q31_t)0x21f787a, (q31_t)0x2193033, (q31_t)0x212e7eb, (q31_t)0x20c9fa1, (q31_t)0x2065757, (q31_t)0x2000f0b, - (q31_t)0x1f9c6be, - (q31_t)0x1f37e6f, (q31_t)0x1ed3620, (q31_t)0x1e6edcf, (q31_t)0x1e0a57d, (q31_t)0x1da5d2a, (q31_t)0x1d414d6, (q31_t)0x1cdcc80, - (q31_t)0x1c7842a, - (q31_t)0x1c13bd2, (q31_t)0x1baf37a, (q31_t)0x1b4ab20, (q31_t)0x1ae62c5, (q31_t)0x1a81a69, (q31_t)0x1a1d20c, (q31_t)0x19b89ae, - (q31_t)0x1954150, - (q31_t)0x18ef8f0, (q31_t)0x188b08f, (q31_t)0x182682d, (q31_t)0x17c1fcb, (q31_t)0x175d767, (q31_t)0x16f8f03, (q31_t)0x169469d, - (q31_t)0x162fe37, - (q31_t)0x15cb5d0, (q31_t)0x1566d68, (q31_t)0x15024ff, (q31_t)0x149dc96, (q31_t)0x143942b, (q31_t)0x13d4bc0, (q31_t)0x1370354, - (q31_t)0x130bae7, - (q31_t)0x12a727a, (q31_t)0x1242a0c, (q31_t)0x11de19d, (q31_t)0x117992e, (q31_t)0x11150be, (q31_t)0x10b084d, (q31_t)0x104bfdb, - (q31_t)0xfe7769, - (q31_t)0xf82ef6, (q31_t)0xf1e683, (q31_t)0xeb9e0f, (q31_t)0xe5559b, (q31_t)0xdf0d26, (q31_t)0xd8c4b0, (q31_t)0xd27c3a, - (q31_t)0xcc33c3, - (q31_t)0xc5eb4c, (q31_t)0xbfa2d5, (q31_t)0xb95a5d, (q31_t)0xb311e4, (q31_t)0xacc96b, (q31_t)0xa680f2, (q31_t)0xa03878, - (q31_t)0x99effe, - (q31_t)0x93a784, (q31_t)0x8d5f09, (q31_t)0x87168e, (q31_t)0x80ce12, (q31_t)0x7a8597, (q31_t)0x743d1a, (q31_t)0x6df49e, - (q31_t)0x67ac21, - (q31_t)0x6163a5, (q31_t)0x5b1b27, (q31_t)0x54d2aa, (q31_t)0x4e8a2c, (q31_t)0x4841af, (q31_t)0x41f931, (q31_t)0x3bb0b3, - (q31_t)0x356835, - (q31_t)0x2f1fb6, (q31_t)0x28d738, (q31_t)0x228eb9, (q31_t)0x1c463b, (q31_t)0x15fdbc, (q31_t)0xfb53d, (q31_t)0x96cbe, (q31_t)0x3243f -}; - -/** - * @} end of DCT4_IDCT4_Table group - */ - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Initialization function for the Q31 DCT4/IDCT4. - * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure. - * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure - * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure - * @param[in] N length of the DCT4. - * @param[in] Nby2 half of the length of the DCT4. - * @param[in] normalize normalizing factor. - * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. - * \par Normalizing factor: - * The normalizing factor is sqrt(2/N), which depends on the size of transform N. - * Normalizing factors in 1.31 format are mentioned in the table below for different DCT sizes: - * \image html dct4NormalizingQ31Table.gif - */ - -arm_status arm_dct4_init_q31( - arm_dct4_instance_q31 * S, - arm_rfft_instance_q31 * S_RFFT, - arm_cfft_radix4_instance_q31 * S_CFFT, - uint16_t N, - uint16_t Nby2, - q31_t normalize) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initializing the pointer array with the weight table base addresses of different lengths */ - q31_t *twiddlePtr[4] = { (q31_t *) WeightsQ31_128, (q31_t *) WeightsQ31_512, - (q31_t *) WeightsQ31_2048, (q31_t *) WeightsQ31_8192 - }; - - /* Initializing the pointer array with the cos factor table base addresses of different lengths */ - q31_t *pCosFactor[4] = - { (q31_t *) cos_factorsQ31_128, (q31_t *) cos_factorsQ31_512, - (q31_t *) cos_factorsQ31_2048, (q31_t *) cos_factorsQ31_8192 - }; - - /* Initialize the DCT4 length */ - S->N = N; - - /* Initialize the half of DCT4 length */ - S->Nby2 = Nby2; - - /* Initialize the DCT4 Normalizing factor */ - S->normalize = normalize; - - /* Initialize Real FFT Instance */ - S->pRfft = S_RFFT; - - /* Initialize Complex FFT Instance */ - S->pCfft = S_CFFT; - - switch (N) - { - /* Initialize the table modifier values */ - case 8192U: - S->pTwiddle = twiddlePtr[3]; - S->pCosFactor = pCosFactor[3]; - break; - case 2048U: - S->pTwiddle = twiddlePtr[2]; - S->pCosFactor = pCosFactor[2]; - break; - case 512U: - S->pTwiddle = twiddlePtr[1]; - S->pCosFactor = pCosFactor[1]; - break; - case 128U: - S->pTwiddle = twiddlePtr[0]; - S->pCosFactor = pCosFactor[0]; - break; - default: - status = ARM_MATH_ARGUMENT_ERROR; - } - - /* Initialize the RFFT/RIFFT Function */ - arm_rfft_init_q31(S->pRfft, S->N, 0, 1); - - /* return the status of DCT4 Init function */ - return (status); -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q15.c deleted file mode 100644 index 918f0bd..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q15.c +++ /dev/null @@ -1,382 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_q15.c - * Description: Processing function of DCT4 & IDCT4 Q15 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the Q15 DCT4/IDCT4. - * @param[in] *S points to an instance of the Q15 DCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - * - * \par Input an output formats: - * Internally inputs are downscaled in the RFFT process function to avoid overflows. - * Number of bits downscaled, depends on the size of the transform. - * The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below: - * - * \image html dct4FormatsQ15Table.gif - */ - -void arm_dct4_q15( - const arm_dct4_instance_q15 * S, - q15_t * pState, - q15_t * pInlineBuffer) -{ - uint32_t i; /* Loop counter */ - q15_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - q15_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - q15_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - q15_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_mult_q15(pInlineBuffer, cosFact, pInlineBuffer, S->N); - arm_shift_q15(pInlineBuffer, 1, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = (uint32_t) S->Nby2 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2U; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q15(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q15(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.13 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.15 format by shifting left by 2 bits. */ - arm_shift_q15(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = ((uint32_t) S->N - 1U) >> 2U; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1U; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = ((uint32_t) S->N - 1U) % 0x4U; - - while (i > 0U) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = (uint32_t) S->N >> 2U; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = (uint32_t) S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q15(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q15(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.13 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.15 format by shifting left by 2 bits. */ - arm_shift_q15(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter */ - i = ((uint32_t) S->N - 1U); - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1U; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = (uint32_t) S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q15_t) (((q31_t) in * S->normalize) >> 15)); - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q31.c deleted file mode 100644 index 0569778..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_dct4_q31.c +++ /dev/null @@ -1,383 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_dct4_q31.c - * Description: Processing function of DCT4 & IDCT4 Q31 - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @addtogroup DCT4_IDCT4 - * @{ - */ - -/** - * @brief Processing function for the Q31 DCT4/IDCT4. - * @param[in] *S points to an instance of the Q31 DCT4 structure. - * @param[in] *pState points to state buffer. - * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. - * @return none. - * \par Input an output formats: - * Input samples need to be downscaled by 1 bit to avoid saturations in the Q31 DCT process, - * as the conversion from DCT2 to DCT4 involves one subtraction. - * Internally inputs are downscaled in the RFFT process function to avoid overflows. - * Number of bits downscaled, depends on the size of the transform. - * The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below: - * - * \image html dct4FormatsQ31Table.gif - */ - -void arm_dct4_q31( - const arm_dct4_instance_q31 * S, - q31_t * pState, - q31_t * pInlineBuffer) -{ - uint16_t i; /* Loop counter */ - q31_t *weights = S->pTwiddle; /* Pointer to the Weights table */ - q31_t *cosFact = S->pCosFactor; /* Pointer to the cos factors table */ - q31_t *pS1, *pS2, *pbuff; /* Temporary pointers for input buffer and pState buffer */ - q31_t in; /* Temporary variable */ - - - /* DCT4 computation involves DCT2 (which is calculated using RFFT) - * along with some pre-processing and post-processing. - * Computational procedure is explained as follows: - * (a) Pre-processing involves multiplying input with cos factor, - * r(n) = 2 * u(n) * cos(pi*(2*n+1)/(4*n)) - * where, - * r(n) -- output of preprocessing - * u(n) -- input to preprocessing(actual Source buffer) - * (b) Calculation of DCT2 using FFT is divided into three steps: - * Step1: Re-ordering of even and odd elements of input. - * Step2: Calculating FFT of the re-ordered input. - * Step3: Taking the real part of the product of FFT output and weights. - * (c) Post-processing - DCT4 can be obtained from DCT2 output using the following equation: - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * where, - * Y4 -- DCT4 output, Y2 -- DCT2 output - * (d) Multiplying the output with the normalizing factor sqrt(2/N). - */ - - /*-------- Pre-processing ------------*/ - /* Multiplying input with cos factor i.e. r(n) = 2 * x(n) * cos(pi*(2*n+1)/(4*n)) */ - arm_mult_q31(pInlineBuffer, cosFact, pInlineBuffer, S->N); - arm_shift_q31(pInlineBuffer, 1, pInlineBuffer, S->N); - - /* ---------------------------------------------------------------- - * Step1: Re-ordering of even and odd elements as - * pState[i] = pInlineBuffer[2*i] and - * pState[N-i-1] = pInlineBuffer[2*i+1] where i = 0 to N/2 - ---------------------------------------------------------------------*/ - - /* pS1 initialized to pState */ - pS1 = pState; - - /* pS2 initialized to pState+N-1, so that it points to the end of the state buffer */ - pS2 = pState + (S->N - 1U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - - /* Initializing the loop counter to N/2 >> 2 for loop unrolling by 4 */ - i = S->Nby2 >> 2U; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - *pS1++ = *pbuff++; - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = S->N >> 2U; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. - * Compute 4 outputs at a time */ - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q31(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q31(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.29 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.31 format by shifting left by 2 bits. */ - arm_shift_q31(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* Initializing the loop counter to N >> 2 for loop unrolling by 4 */ - i = (S->N - 1U) >> 2U; - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1U; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* First part of the processing with loop unrolling. Compute 4 outputs at a time. - ** a second loop below computes the remaining 1 to 3 samples. */ - do - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - in = *pS1++ - in; - *pbuff++ = in; - pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* If the blockSize is not a multiple of 4, compute any remaining output samples here. - ** No loop unrolling is used. */ - i = (S->N - 1U) % 0x4U; - - while (i > 0U) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter to N/4 instead of N for loop unrolling */ - i = S->N >> 2U; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - /* Processing with loop unrolling 4 times as N is always multiple of 4. Compute 4 outputs at a time */ - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - -#else - - /* Run the below code for Cortex-M0 */ - - /* Initializing the loop counter to N/2 */ - i = S->Nby2; - - do - { - /* Re-ordering of even and odd elements */ - /* pState[i] = pInlineBuffer[2*i] */ - *pS1++ = *pbuff++; - /* pState[N-i-1] = pInlineBuffer[2*i+1] */ - *pS2-- = *pbuff++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - /* pbuff initialized to input buffer */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Initializing the loop counter */ - i = S->N; - - do - { - /* Writing the re-ordered output back to inplace input buffer */ - *pbuff++ = *pS1++; - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - - - /* --------------------------------------------------------- - * Step2: Calculate RFFT for N-point input - * ---------------------------------------------------------- */ - /* pInlineBuffer is real input of length N , pState is the complex output of length 2N */ - arm_rfft_q31(S->pRfft, pInlineBuffer, pState); - - /*---------------------------------------------------------------------- - * Step3: Multiply the FFT output with the weights. - *----------------------------------------------------------------------*/ - arm_cmplx_mult_cmplx_q31(pState, weights, pState, S->N); - - /* The output of complex multiplication is in 3.29 format. - * Hence changing the format of N (i.e. 2*N elements) complex numbers to 1.31 format by shifting left by 2 bits. */ - arm_shift_q31(pState, 2, pState, S->N * 2); - - /* ----------- Post-processing ---------- */ - /* DCT-IV can be obtained from DCT-II by the equation, - * Y4(k) = Y2(k) - Y4(k-1) and Y4(-1) = Y4(0) - * Hence, Y4(0) = Y2(0)/2 */ - /* Getting only real part from the output and Converting to DCT-IV */ - - /* pbuff initialized to input buffer. */ - pbuff = pInlineBuffer; - - /* pS1 initialized to pState */ - pS1 = pState; - - /* Calculating Y4(0) from Y2(0) using Y4(0) = Y2(0)/2 */ - in = *pS1++ >> 1U; - /* input buffer acts as inplace, so output values are stored in the input itself. */ - *pbuff++ = in; - - /* pState pointer is incremented twice as the real values are located alternatively in the array */ - pS1++; - - /* Initializing the loop counter */ - i = (S->N - 1U); - - while (i > 0U) - { - /* Calculating Y4(1) to Y4(N-1) from Y2 using equation Y4(k) = Y2(k) - Y4(k-1) */ - /* pState pointer (pS1) is incremented twice as the real values are located alternatively in the array */ - in = *pS1++ - in; - *pbuff++ = in; - /* points to the next real value */ - pS1++; - - /* Decrement the loop counter */ - i--; - } - - - /*------------ Normalizing the output by multiplying with the normalizing factor ----------*/ - - /* Initializing the loop counter */ - i = S->N; - - /* pbuff initialized to the pInlineBuffer(now contains the output values) */ - pbuff = pInlineBuffer; - - do - { - /* Multiplying pInlineBuffer with the normalizing factor sqrt(2/N) */ - in = *pbuff; - *pbuff++ = ((q31_t) (((q63_t) in * S->normalize) >> 31)); - - /* Decrement the loop counter */ - i--; - } while (i > 0U); - -#endif /* #if defined (ARM_MATH_DSP) */ - -} - -/** - * @} end of DCT4_IDCT4 group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_f32.c deleted file mode 100644 index a1bd81b..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_f32.c +++ /dev/null @@ -1,318 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_f32.c - * Description: RFFT & RIFFT Floating point process function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/* ---------------------------------------------------------------------- - * Internal functions prototypes - * -------------------------------------------------------------------- */ - -extern void arm_radix4_butterfly_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier); - -extern void arm_radix4_butterfly_inverse_f32( - float32_t * pSrc, - uint16_t fftLen, - float32_t * pCoef, - uint16_t twidCoefModifier, - float32_t onebyfftLen); - -extern void arm_bitreversal_f32( - float32_t * pSrc, - uint16_t fftSize, - uint16_t bitRevFactor, - uint16_t * pBitRevTab); - -void arm_split_rfft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier); - -void arm_split_rifft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier); - -/** -* @ingroup groupTransforms -*/ - -/** - * @addtogroup RealFFT - * @{ - */ - -/** - * @brief Processing function for the floating-point RFFT/RIFFT. - * @deprecated Do not use this function. It has been superceded by \ref arm_rfft_fast_f32 and will be removed - * in the future. - * @param[in] *S points to an instance of the floating-point RFFT/RIFFT structure. - * @param[in] *pSrc points to the input buffer. - * @param[out] *pDst points to the output buffer. - * @return none. - */ - -void arm_rfft_f32( - const arm_rfft_instance_f32 * S, - float32_t * pSrc, - float32_t * pDst) -{ - const arm_cfft_radix4_instance_f32 *S_CFFT = S->pCfft; - - - /* Calculation of Real IFFT of input */ - if (S->ifftFlagR == 1U) - { - /* Real IFFT core process */ - arm_split_rifft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - - /* Complex radix-4 IFFT process */ - arm_radix4_butterfly_inverse_f32(pDst, S_CFFT->fftLen, - S_CFFT->pTwiddle, - S_CFFT->twidCoefModifier, - S_CFFT->onebyfftLen); - - /* Bit reversal process */ - if (S->bitReverseFlagR == 1U) - { - arm_bitreversal_f32(pDst, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - } - else - { - - /* Calculation of RFFT of input */ - - /* Complex radix-4 FFT process */ - arm_radix4_butterfly_f32(pSrc, S_CFFT->fftLen, - S_CFFT->pTwiddle, S_CFFT->twidCoefModifier); - - /* Bit reversal process */ - if (S->bitReverseFlagR == 1U) - { - arm_bitreversal_f32(pSrc, S_CFFT->fftLen, - S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); - } - - - /* Real FFT core process */ - arm_split_rfft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } - -} - -/** - * @} end of RealFFT group - */ - -/** - * @brief Core Real FFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rfft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - float32_t outR, outI; /* Temporary variables for output */ - float32_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - float32_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - float32_t *pDst1 = &pDst[2], *pDst2 = &pDst[(4U * fftLen) - 1U]; /* temp pointers for output buffer */ - float32_t *pSrc1 = &pSrc[2], *pSrc2 = &pSrc[(2U * fftLen) - 1U]; /* temp pointers for input buffer */ - - /* Init coefficient pointers */ - pCoefA = &pATable[modifier * 2U]; - pCoefB = &pBTable[modifier * 2U]; - - i = fftLen - 1U; - - while (i > 0U) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - /* read pATable[2 * i] */ - CoefA1 = *pCoefA++; - /* pATable[2 * i + 1] */ - CoefA2 = *pCoefA; - - /* pSrc[2 * i] * pATable[2 * i] */ - outR = *pSrc1 * CoefA1; - /* pSrc[2 * i] * CoefA2 */ - outI = *pSrc1++ * CoefA2; - - /* (pSrc[2 * i + 1] + pSrc[2 * fftLen - 2 * i + 1]) * CoefA2 */ - outR -= (*pSrc1 + *pSrc2) * CoefA2; - /* pSrc[2 * i + 1] * CoefA1 */ - outI += *pSrc1++ * CoefA1; - - CoefB1 = *pCoefB; - - /* pSrc[2 * fftLen - 2 * i + 1] * CoefB1 */ - outI -= *pSrc2-- * CoefB1; - /* pSrc[2 * fftLen - 2 * i] * CoefA2 */ - outI -= *pSrc2 * CoefA2; - - /* pSrc[2 * fftLen - 2 * i] * CoefB1 */ - outR += *pSrc2-- * CoefB1; - - /* write output */ - *pDst1++ = outR; - *pDst1++ = outI; - - /* write complex conjugate output */ - *pDst2-- = -outI; - *pDst2-- = outR; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2U); - pCoefA = pCoefA + ((modifier * 2U) - 1U); - - i--; - - } - - pDst[2U * fftLen] = pSrc[0] - pSrc[1]; - pDst[(2U * fftLen) + 1U] = 0.0f; - - pDst[0] = pSrc[0] + pSrc[1]; - pDst[1] = 0.0f; - -} - - -/** - * @brief Core Real IFFT process - * @param[in] *pSrc points to the input buffer. - * @param[in] fftLen length of FFT. - * @param[in] *pATable points to the twiddle Coef A buffer. - * @param[in] *pBTable points to the twiddle Coef B buffer. - * @param[out] *pDst points to the output buffer. - * @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. - * @return none. - */ - -void arm_split_rifft_f32( - float32_t * pSrc, - uint32_t fftLen, - float32_t * pATable, - float32_t * pBTable, - float32_t * pDst, - uint32_t modifier) -{ - float32_t outR, outI; /* Temporary variables for output */ - float32_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - float32_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - float32_t *pSrc1 = &pSrc[0], *pSrc2 = &pSrc[(2U * fftLen) + 1U]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - while (fftLen > 0U) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - - */ - - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pSrc[2 * i] * CoefA1 */ - outR = *pSrc1 * CoefA1; - - /* - pSrc[2 * i] * CoefA2 */ - outI = -(*pSrc1++) * CoefA2; - - /* (pSrc[2 * i + 1] + pSrc[2 * fftLen - 2 * i + 1]) * CoefA2 */ - outR += (*pSrc1 + *pSrc2) * CoefA2; - - /* pSrc[2 * i + 1] * CoefA1 */ - outI += (*pSrc1++) * CoefA1; - - CoefB1 = *pCoefB; - - /* - pSrc[2 * fftLen - 2 * i + 1] * CoefB1 */ - outI -= *pSrc2-- * CoefB1; - - /* pSrc[2 * fftLen - 2 * i] * CoefB1 */ - outR += *pSrc2 * CoefB1; - - /* pSrc[2 * fftLen - 2 * i] * CoefA2 */ - outI += *pSrc2-- * CoefA2; - - /* write output */ - *pDst++ = outR; - *pDst++ = outI; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2U); - pCoefA = pCoefA + ((modifier * 2U) - 1U); - - /* Decrement loop count */ - fftLen--; - } - -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c deleted file mode 100644 index f7c52e9..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c +++ /dev/null @@ -1,317 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_f32.c - * Description: RFFT & RIFFT Floating point process function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -void stage_rfft_f32( - arm_rfft_fast_instance_f32 * S, - float32_t * p, float32_t * pOut) -{ - uint32_t k; /* Loop Counter */ - float32_t twR, twI; /* RFFT Twiddle coefficients */ - float32_t * pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ - float32_t *pA = p; /* increasing pointer */ - float32_t *pB = p; /* decreasing pointer */ - float32_t xAR, xAI, xBR, xBI; /* temporary variables */ - float32_t t1a, t1b; /* temporary variables */ - float32_t p0, p1, p2, p3; /* temporary variables */ - - - k = (S->Sint).fftLen - 1; - - /* Pack first and last sample of the frequency domain together */ - - xBR = pB[0]; - xBI = pB[1]; - xAR = pA[0]; - xAI = pA[1]; - - twR = *pCoeff++ ; - twI = *pCoeff++ ; - - // U1 = XA(1) + XB(1); % It is real - t1a = xBR + xAR ; - - // U2 = XB(1) - XA(1); % It is imaginary - t1b = xBI + xAI ; - - // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); - // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); - *pOut++ = 0.5f * ( t1a + t1b ); - *pOut++ = 0.5f * ( t1a - t1b ); - - // XA(1) = 1/2*( U1 - imag(U2) + i*( U1 +imag(U2) )); - pB = p + 2*k; - pA += 2; - - do - { - /* - function X = my_split_rfft(X, ifftFlag) - % X is a series of real numbers - L = length(X); - XC = X(1:2:end) +i*X(2:2:end); - XA = fft(XC); - XB = conj(XA([1 end:-1:2])); - TW = i*exp(-2*pi*i*[0:L/2-1]/L).'; - for l = 2:L/2 - XA(l) = 1/2 * (XA(l) + XB(l) + TW(l) * (XB(l) - XA(l))); - end - XA(1) = 1/2* (XA(1) + XB(1) + TW(1) * (XB(1) - XA(1))) + i*( 1/2*( XA(1) + XB(1) + i*( XA(1) - XB(1)))); - X = XA; - */ - - xBI = pB[1]; - xBR = pB[0]; - xAR = pA[0]; - xAI = pA[1]; - - twR = *pCoeff++; - twI = *pCoeff++; - - t1a = xBR - xAR ; - t1b = xBI + xAI ; - - // real(tw * (xB - xA)) = twR * (xBR - xAR) - twI * (xBI - xAI); - // imag(tw * (xB - xA)) = twI * (xBR - xAR) + twR * (xBI - xAI); - p0 = twR * t1a; - p1 = twI * t1a; - p2 = twR * t1b; - p3 = twI * t1b; - - *pOut++ = 0.5f * (xAR + xBR + p0 + p3 ); //xAR - *pOut++ = 0.5f * (xAI - xBI + p1 - p2 ); //xAI - - pA += 2; - pB -= 2; - k--; - } while (k > 0U); -} - -/* Prepares data for inverse cfft */ -void merge_rfft_f32( -arm_rfft_fast_instance_f32 * S, -float32_t * p, float32_t * pOut) -{ - uint32_t k; /* Loop Counter */ - float32_t twR, twI; /* RFFT Twiddle coefficients */ - float32_t *pCoeff = S->pTwiddleRFFT; /* Points to RFFT Twiddle factors */ - float32_t *pA = p; /* increasing pointer */ - float32_t *pB = p; /* decreasing pointer */ - float32_t xAR, xAI, xBR, xBI; /* temporary variables */ - float32_t t1a, t1b, r, s, t, u; /* temporary variables */ - - k = (S->Sint).fftLen - 1; - - xAR = pA[0]; - xAI = pA[1]; - - pCoeff += 2 ; - - *pOut++ = 0.5f * ( xAR + xAI ); - *pOut++ = 0.5f * ( xAR - xAI ); - - pB = p + 2*k ; - pA += 2 ; - - while (k > 0U) - { - /* G is half of the frequency complex spectrum */ - //for k = 2:N - // Xk(k) = 1/2 * (G(k) + conj(G(N-k+2)) + Tw(k)*( G(k) - conj(G(N-k+2)))); - xBI = pB[1] ; - xBR = pB[0] ; - xAR = pA[0]; - xAI = pA[1]; - - twR = *pCoeff++; - twI = *pCoeff++; - - t1a = xAR - xBR ; - t1b = xAI + xBI ; - - r = twR * t1a; - s = twI * t1b; - t = twI * t1a; - u = twR * t1b; - - // real(tw * (xA - xB)) = twR * (xAR - xBR) - twI * (xAI - xBI); - // imag(tw * (xA - xB)) = twI * (xAR - xBR) + twR * (xAI - xBI); - *pOut++ = 0.5f * (xAR + xBR - r - s ); //xAR - *pOut++ = 0.5f * (xAI - xBI + t - u ); //xAI - - pA += 2; - pB -= 2; - k--; - } - -} - -/** -* @ingroup groupTransforms -*/ - -/** - * @defgroup RealFFT Real FFT Functions - * - * \par - * The CMSIS DSP library includes specialized algorithms for computing the - * FFT of real data sequences. The FFT is defined over complex data but - * in many applications the input is real. Real FFT algorithms take advantage - * of the symmetry properties of the FFT and have a speed advantage over complex - * algorithms of the same length. - * \par - * The Fast RFFT algorith relays on the mixed radix CFFT that save processor usage. - * \par - * The real length N forward FFT of a sequence is computed using the steps shown below. - * \par - * \image html RFFT.gif "Real Fast Fourier Transform" - * \par - * The real sequence is initially treated as if it were complex to perform a CFFT. - * Later, a processing stage reshapes the data to obtain half of the frequency spectrum - * in complex format. Except the first complex number that contains the two real numbers - * X[0] and X[N/2] all the data is complex. In other words, the first complex sample - * contains two real values packed. - * \par - * The input for the inverse RFFT should keep the same format as the output of the - * forward RFFT. A first processing stage pre-process the data to later perform an - * inverse CFFT. - * \par - * \image html RIFFT.gif "Real Inverse Fast Fourier Transform" - * \par - * The algorithms for floating-point, Q15, and Q31 data are slightly different - * and we describe each algorithm in turn. - * \par Floating-point - * The main functions are arm_rfft_fast_f32() and arm_rfft_fast_init_f32(). - * The older functions arm_rfft_f32() and arm_rfft_init_f32() have been - * deprecated but are still documented. - * \par - * The FFT of a real N-point sequence has even symmetry in the frequency - * domain. The second half of the data equals the conjugate of the first - * half flipped in frequency. Looking at the data, we see that we can - * uniquely represent the FFT using only N/2 complex numbers. These are - * packed into the output array in alternating real and imaginary - * components: - * \par - * X = { real[0], imag[0], real[1], imag[1], real[2], imag[2] ... - * real[(N/2)-1], imag[(N/2)-1 } - * \par - * It happens that the first complex number (real[0], imag[0]) is actually - * all real. real[0] represents the DC offset, and imag[0] should be 0. - * (real[1], imag[1]) is the fundamental frequency, (real[2], imag[2]) is - * the first harmonic and so on. - * \par - * The real FFT functions pack the frequency domain data in this fashion. - * The forward transform outputs the data in this form and the inverse - * transform expects input data in this form. The function always performs - * the needed bitreversal so that the input and output data is always in - * normal order. The functions support lengths of [32, 64, 128, ..., 4096] - * samples. - * \par Q15 and Q31 - * The real algorithms are defined in a similar manner and utilize N/2 complex - * transforms behind the scenes. - * \par - * The complex transforms used internally include scaling to prevent fixed-point - * overflows. The overall scaling equals 1/(fftLen/2). - * \par - * A separate instance structure must be defined for each transform used but - * twiddle factor and bit reversal tables can be reused. - * \par - * There is also an associated initialization function for each data type. - * The initialization function performs the following operations: - * - Sets the values of the internal structure fields. - * - Initializes twiddle factor table and bit reversal table pointers. - * - Initializes the internal complex FFT data structure. - * \par - * Use of the initialization function is optional. - * However, if the initialization function is used, then the instance structure - * cannot be placed into a const data section. To place an instance structure - * into a const data section, the instance structure should be manually - * initialized as follows: - *
- *arm_rfft_instance_q31 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};
- *arm_rfft_instance_q15 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};
- * 
- * where fftLenReal is the length of the real transform; - * fftLenBy2 length of the internal complex transform. - * ifftFlagR Selects forward (=0) or inverse (=1) transform. - * bitReverseFlagR Selects bit reversed output (=0) or normal order - * output (=1). - * twidCoefRModifier stride modifier for the twiddle factor table. - * The value is based on the FFT length; - * pTwiddleARealpoints to the A array of twiddle coefficients; - * pTwiddleBRealpoints to the B array of twiddle coefficients; - * pCfft points to the CFFT Instance structure. The CFFT structure - * must also be initialized. Refer to arm_cfft_radix4_f32() for details regarding - * static initialization of the complex FFT instance structure. - */ - -/** -* @addtogroup RealFFT -* @{ -*/ - -/** -* @brief Processing function for the floating-point real FFT. -* @param[in] *S points to an arm_rfft_fast_instance_f32 structure. -* @param[in] *p points to the input buffer. -* @param[in] *pOut points to the output buffer. -* @param[in] ifftFlag RFFT if flag is 0, RIFFT if flag is 1 -* @return none. -*/ - -void arm_rfft_fast_f32( -arm_rfft_fast_instance_f32 * S, -float32_t * p, float32_t * pOut, -uint8_t ifftFlag) -{ - arm_cfft_instance_f32 * Sint = &(S->Sint); - Sint->fftLen = S->fftLenRFFT / 2; - - /* Calculation of Real FFT */ - if (ifftFlag) - { - /* Real FFT compression */ - merge_rfft_f32(S, p, pOut); - - /* Complex radix-4 IFFT process */ - arm_cfft_f32( Sint, pOut, ifftFlag, 1); - } - else - { - /* Calculation of RFFT of input */ - arm_cfft_f32( Sint, p, ifftFlag, 1); - - /* Real FFT extraction */ - stage_rfft_f32(S, p, pOut); - } -} - -/** -* @} end of RealFFT group -*/ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c deleted file mode 100644 index 2f8dfe6..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_cfft_init_f32.c - * Description: Split Radix Decimation in Frequency CFFT Floating point processing function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" - -/** - * @ingroup groupTransforms - */ - -/** - * @addtogroup RealFFT - * @{ - */ - -/** -* @brief Initialization function for the floating-point real FFT. -* @param[in,out] *S points to an arm_rfft_fast_instance_f32 structure. -* @param[in] fftLen length of the Real Sequence. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLen is not a supported value. -* -* \par Description: -* \par -* The parameter fftLen Specifies length of RFFT/CIFFT process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096. -* \par -* This Function also initializes Twiddle factor table pointer and Bit reversal table pointer. -*/ -arm_status arm_rfft_fast_init_f32( - arm_rfft_fast_instance_f32 * S, - uint16_t fftLen) -{ - arm_cfft_instance_f32 * Sint; - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - /* Initialise the FFT length */ - Sint = &(S->Sint); - Sint->fftLen = fftLen/2; - S->fftLenRFFT = fftLen; - - /* Initializations of structure parameters depending on the FFT length */ - switch (Sint->fftLen) - { - case 2048U: - /* Initializations of structure parameters for 2048 point FFT */ - /* Initialise the bit reversal table length */ - Sint->bitRevLength = ARMBITREVINDEXTABLE_2048_TABLE_LENGTH; - /* Initialise the bit reversal table pointer */ - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable2048; - /* Initialise the Twiddle coefficient pointers */ - Sint->pTwiddle = (float32_t *) twiddleCoef_2048; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_4096; - break; - case 1024U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_1024_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable1024; - Sint->pTwiddle = (float32_t *) twiddleCoef_1024; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_2048; - break; - case 512U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_512_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable512; - Sint->pTwiddle = (float32_t *) twiddleCoef_512; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_1024; - break; - case 256U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_256_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable256; - Sint->pTwiddle = (float32_t *) twiddleCoef_256; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_512; - break; - case 128U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_128_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable128; - Sint->pTwiddle = (float32_t *) twiddleCoef_128; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_256; - break; - case 64U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_64_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable64; - Sint->pTwiddle = (float32_t *) twiddleCoef_64; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_128; - break; - case 32U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_32_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable32; - Sint->pTwiddle = (float32_t *) twiddleCoef_32; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_64; - break; - case 16U: - Sint->bitRevLength = ARMBITREVINDEXTABLE_16_TABLE_LENGTH; - Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable16; - Sint->pTwiddle = (float32_t *) twiddleCoef_16; - S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_32; - break; - default: - /* Reporting argument error if fftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - return (status); -} - -/** - * @} end of RealFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_f32.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_f32.c deleted file mode 100644 index bb3213a..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_f32.c +++ /dev/null @@ -1,4273 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_init_f32.c - * Description: RFFT & RIFFT Floating point initialisation function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/** - * @ingroup RealFFT - */ - -/** - * @addtogroup RealFFT_Table Real FFT Tables - * @{ - */ - -/** -* \par -* Generation of realCoefA array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-*  {
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-*  } 
-*/ -static const float32_t realCoefA[8192] = { - 0.500000000000000f, -0.500000000000000f, 0.499616503715515f, -0.499999850988388f, - 0.499233007431030f, -0.499999403953552f, 0.498849511146545f, -0.499998688697815f, - 0.498466014862061f, -0.499997645616531f, 0.498082518577576f, -0.499996334314346f, - 0.497699022293091f, -0.499994695186615f, 0.497315555810928f, -0.499992787837982f, - 0.496932059526443f, -0.499990582466125f, 0.496548563241959f, -0.499988079071045f, - 0.496165096759796f, -0.499985307455063f, 0.495781600475311f, -0.499982208013535f, - 0.495398133993149f, -0.499978810548782f, 0.495014637708664f, -0.499975144863129f, - 0.494631171226501f, -0.499971181154251f, 0.494247704744339f, -0.499966919422150f, - 0.493864238262177f, -0.499962359666824f, 0.493480771780014f, -0.499957501888275f, - 0.493097305297852f, -0.499952346086502f, 0.492713838815689f, -0.499946922063828f, - 0.492330402135849f, -0.499941170215607f, 0.491946935653687f, -0.499935150146484f, - 0.491563498973846f, -0.499928832054138f, 0.491180062294006f, -0.499922215938568f, - 0.490796625614166f, -0.499915301799774f, 0.490413218736649f, -0.499908089637756f, - 0.490029782056808f, -0.499900579452515f, 0.489646375179291f, -0.499892801046371f, - 0.489262968301773f, -0.499884694814682f, 0.488879561424255f, -0.499876320362091f, - 0.488496154546738f, -0.499867647886276f, 0.488112777471542f, -0.499858677387238f, - 0.487729400396347f, -0.499849408864975f, 0.487346023321152f, -0.499839842319489f, - 0.486962646245956f, -0.499830007553101f, 0.486579269170761f, -0.499819844961166f, - 0.486195921897888f, -0.499809414148331f, 0.485812574625015f, -0.499798685312271f, - 0.485429257154465f, -0.499787658452988f, 0.485045909881592f, -0.499776333570480f, - 0.484662592411041f, -0.499764710664749f, 0.484279274940491f, -0.499752789735794f, - 0.483895987272263f, -0.499740600585938f, 0.483512699604034f, -0.499728083610535f, - 0.483129411935806f, -0.499715298414230f, 0.482746154069901f, -0.499702215194702f, - 0.482362866401672f, -0.499688833951950f, 0.481979638338089f, -0.499675154685974f, - 0.481596380472183f, -0.499661177396774f, 0.481213152408600f, -0.499646931886673f, - 0.480829954147339f, -0.499632388353348f, 0.480446726083755f, -0.499617516994476f, - 0.480063527822495f, -0.499602377414703f, 0.479680359363556f, -0.499586939811707f, - 0.479297190904617f, -0.499571204185486f, 0.478914022445679f, -0.499555170536041f, - 0.478530883789063f, -0.499538868665695f, 0.478147745132446f, -0.499522238969803f, - 0.477764606475830f, -0.499505341053009f, 0.477381497621536f, -0.499488145112991f, - 0.476998418569565f, -0.499470651149750f, 0.476615339517593f, -0.499452859163284f, - 0.476232260465622f, -0.499434769153595f, 0.475849211215973f, -0.499416410923004f, - 0.475466161966324f, -0.499397724866867f, 0.475083142518997f, -0.499378770589828f, - 0.474700123071671f, -0.499359518289566f, 0.474317133426666f, -0.499339967966080f, - 0.473934143781662f, -0.499320119619370f, 0.473551183938980f, -0.499299973249435f, - 0.473168224096298f, -0.499279528856277f, 0.472785294055939f, -0.499258816242218f, - 0.472402364015579f, -0.499237775802612f, 0.472019463777542f, -0.499216467142105f, - 0.471636593341827f, -0.499194860458374f, 0.471253722906113f, -0.499172955751419f, - 0.470870882272720f, -0.499150782823563f, 0.470488041639328f, -0.499128282070160f, - 0.470105201005936f, -0.499105513095856f, 0.469722419977188f, -0.499082416296005f, - 0.469339638948441f, -0.499059051275253f, 0.468956857919693f, -0.499035388231277f, - 0.468574106693268f, -0.499011427164078f, 0.468191385269165f, -0.498987197875977f, - 0.467808693647385f, -0.498962640762329f, 0.467426002025604f, -0.498937815427780f, - 0.467043310403824f, -0.498912662267685f, 0.466660678386688f, -0.498887240886688f, - 0.466278046369553f, -0.498861521482468f, 0.465895414352417f, -0.498835533857346f, - 0.465512841939926f, -0.498809218406677f, 0.465130269527435f, -0.498782604932785f, - 0.464747726917267f, -0.498755723237991f, 0.464365184307098f, -0.498728543519974f, - 0.463982671499252f, -0.498701065778732f, 0.463600188493729f, -0.498673290014267f, - 0.463217705488205f, -0.498645216226578f, 0.462835282087326f, -0.498616874217987f, - 0.462452858686447f, -0.498588204383850f, 0.462070435285568f, -0.498559266328812f, - 0.461688071489334f, -0.498530030250549f, 0.461305707693100f, -0.498500496149063f, - 0.460923373699188f, -0.498470664024353f, 0.460541069507599f, -0.498440563678741f, - 0.460158795118332f, -0.498410135507584f, 0.459776520729065f, -0.498379439115524f, - 0.459394276142120f, -0.498348444700241f, 0.459012061357498f, -0.498317152261734f, - 0.458629876375198f, -0.498285561800003f, 0.458247691392899f, -0.498253703117371f, - 0.457865566015244f, -0.498221516609192f, 0.457483440637589f, -0.498189061880112f, - 0.457101345062256f, -0.498156309127808f, 0.456719279289246f, -0.498123258352280f, - 0.456337243318558f, -0.498089909553528f, 0.455955207347870f, -0.498056292533875f, - 0.455573230981827f, -0.498022347688675f, 0.455191254615784f, -0.497988134622574f, - 0.454809308052063f, -0.497953623533249f, 0.454427421092987f, -0.497918814420700f, - 0.454045534133911f, -0.497883707284927f, 0.453663676977158f, -0.497848302125931f, - 0.453281819820404f, -0.497812628746033f, 0.452900022268295f, -0.497776657342911f, - 0.452518254518509f, -0.497740387916565f, 0.452136516571045f, -0.497703820466995f, - 0.451754778623581f, -0.497666954994202f, 0.451373100280762f, -0.497629791498184f, - 0.450991421937943f, -0.497592359781265f, 0.450609803199768f, -0.497554630041122f, - 0.450228184461594f, -0.497516602277756f, 0.449846625328064f, -0.497478276491165f, - 0.449465066194534f, -0.497439652681351f, 0.449083566665649f, -0.497400760650635f, - 0.448702067136765f, -0.497361570596695f, 0.448320597410202f, -0.497322082519531f, - 0.447939187288284f, -0.497282296419144f, 0.447557777166367f, -0.497242212295532f, - 0.447176426649094f, -0.497201830148697f, 0.446795076131821f, -0.497161179780960f, - 0.446413785219193f, -0.497120231389999f, 0.446032524108887f, -0.497078984975815f, - 0.445651292800903f, -0.497037440538406f, 0.445270061492920f, -0.496995598077774f, - 0.444888889789581f, -0.496953487396240f, 0.444507747888565f, -0.496911078691483f, - 0.444126635789871f, -0.496868371963501f, 0.443745553493500f, -0.496825367212296f, - 0.443364530801773f, -0.496782064437866f, 0.442983508110046f, -0.496738493442535f, - 0.442602545022964f, -0.496694594621658f, 0.442221581935883f, -0.496650427579880f, - 0.441840678453445f, -0.496605962514877f, 0.441459804773331f, -0.496561229228973f, - 0.441078960895538f, -0.496516168117523f, 0.440698176622391f, -0.496470838785172f, - 0.440317392349243f, -0.496425211429596f, 0.439936667680740f, -0.496379286050797f, - 0.439555943012238f, -0.496333062648773f, 0.439175277948380f, -0.496286571025848f, - 0.438794672489166f, -0.496239781379700f, 0.438414067029953f, -0.496192663908005f, - 0.438033521175385f, -0.496145308017731f, 0.437653005123138f, -0.496097624301910f, - 0.437272518873215f, -0.496049642562866f, 0.436892062425613f, -0.496001392602921f, - 0.436511665582657f, -0.495952844619751f, 0.436131268739700f, -0.495903998613358f, - 0.435750931501389f, -0.495854884386063f, 0.435370653867722f, -0.495805442333221f, - 0.434990376234055f, -0.495755732059479f, 0.434610158205032f, -0.495705723762512f, - 0.434229999780655f, -0.495655417442322f, 0.433849841356277f, -0.495604842901230f, - 0.433469742536545f, -0.495553970336914f, 0.433089673519135f, -0.495502769947052f, - 0.432709634304047f, -0.495451331138611f, 0.432329654693604f, -0.495399564504623f, - 0.431949704885483f, -0.495347499847412f, 0.431569814682007f, -0.495295166969299f, - 0.431189924478531f, -0.495242536067963f, 0.430810123682022f, -0.495189607143402f, - 0.430430322885513f, -0.495136409997940f, 0.430050581693649f, -0.495082914829254f, - 0.429670870304108f, -0.495029091835022f, 0.429291218519211f, -0.494975030422211f, - 0.428911596536636f, -0.494920641183853f, 0.428532034158707f, -0.494865983724594f, - 0.428152471780777f, -0.494810998439789f, 0.427772998809814f, -0.494755744934082f, - 0.427393525838852f, -0.494700223207474f, 0.427014142274857f, -0.494644373655319f, - 0.426634758710861f, -0.494588255882263f, 0.426255434751511f, -0.494531840085983f, - 0.425876170396805f, -0.494475126266479f, 0.425496935844421f, -0.494418144226074f, - 0.425117731094360f, -0.494360834360123f, 0.424738585948944f, -0.494303256273270f, - 0.424359470605850f, -0.494245409965515f, 0.423980414867401f, -0.494187235832214f, - 0.423601418733597f, -0.494128793478012f, 0.423222452402115f, -0.494070053100586f, - 0.422843515872955f, -0.494011014699936f, 0.422464638948441f, -0.493951678276062f, - 0.422085791826248f, -0.493892073631287f, 0.421707004308701f, -0.493832170963287f, - 0.421328276395798f, -0.493771970272064f, 0.420949578285217f, -0.493711471557617f, - 0.420570939779282f, -0.493650704622269f, 0.420192331075668f, -0.493589639663696f, - 0.419813781976700f, -0.493528276681900f, 0.419435262680054f, -0.493466645479202f, - 0.419056802988052f, -0.493404686450958f, 0.418678402900696f, -0.493342459201813f, - 0.418300032615662f, -0.493279963731766f, 0.417921721935272f, -0.493217140436172f, - 0.417543441057205f, -0.493154048919678f, 0.417165219783783f, -0.493090659379959f, - 0.416787058115005f, -0.493026971817017f, 0.416408926248550f, -0.492963016033173f, - 0.416030853986740f, -0.492898762226105f, 0.415652841329575f, -0.492834210395813f, - 0.415274858474731f, -0.492769360542297f, 0.414896935224533f, -0.492704242467880f, - 0.414519041776657f, -0.492638826370239f, 0.414141237735748f, -0.492573112249374f, - 0.413763463497162f, -0.492507129907608f, 0.413385748863220f, -0.492440819740295f, - 0.413008064031601f, -0.492374241352081f, 0.412630438804626f, -0.492307394742966f, - 0.412252873182297f, -0.492240220308304f, 0.411875367164612f, -0.492172777652740f, - 0.411497890949249f, -0.492105036973953f, 0.411120474338531f, -0.492037028074265f, - 0.410743117332459f, -0.491968721151352f, 0.410365819931030f, -0.491900116205215f, - 0.409988552331924f, -0.491831213235855f, 0.409611344337463f, -0.491762012243271f, - 0.409234195947647f, -0.491692543029785f, 0.408857107162476f, -0.491622805595398f, - 0.408480048179626f, -0.491552740335464f, 0.408103078603745f, -0.491482406854630f, - 0.407726138830185f, -0.491411775350571f, 0.407349258661270f, -0.491340845823288f, - 0.406972438097000f, -0.491269648075104f, 0.406595647335052f, -0.491198152303696f, - 0.406218945980072f, -0.491126358509064f, 0.405842274427414f, -0.491054296493530f, - 0.405465662479401f, -0.490981936454773f, 0.405089110136032f, -0.490909278392792f, - 0.404712617397308f, -0.490836352109909f, 0.404336184263229f, -0.490763127803802f, - 0.403959810733795f, -0.490689605474472f, 0.403583467006683f, -0.490615785121918f, - 0.403207212686539f, -0.490541696548462f, 0.402830988168716f, -0.490467309951782f, - 0.402454853057861f, -0.490392625331879f, 0.402078747749329f, -0.490317672491074f, - 0.401702702045441f, -0.490242421627045f, 0.401326715946198f, -0.490166902542114f, - 0.400950789451599f, -0.490091055631638f, 0.400574922561646f, -0.490014940500259f, - 0.400199115276337f, -0.489938557147980f, 0.399823367595673f, -0.489861875772476f, - 0.399447679519653f, -0.489784896373749f, 0.399072051048279f, -0.489707618951797f, - 0.398696482181549f, -0.489630073308945f, 0.398320972919464f, -0.489552229642868f, - 0.397945523262024f, -0.489474087953568f, 0.397570133209229f, -0.489395678043365f, - 0.397194802761078f, -0.489316970109940f, 0.396819531917572f, -0.489237964153290f, - 0.396444320678711f, -0.489158689975739f, 0.396069169044495f, -0.489079117774963f, - 0.395694077014923f, -0.488999247550964f, 0.395319044589996f, -0.488919109106064f, - 0.394944071769714f, -0.488838672637939f, 0.394569188356400f, -0.488757967948914f, - 0.394194334745407f, -0.488676935434341f, 0.393819570541382f, -0.488595664501190f, - 0.393444836139679f, -0.488514065742493f, 0.393070191144943f, -0.488432198762894f, - 0.392695605754852f, -0.488350033760071f, 0.392321079969406f, -0.488267600536346f, - 0.391946613788605f, -0.488184869289398f, 0.391572207212448f, -0.488101840019226f, - 0.391197860240936f, -0.488018542528152f, 0.390823602676392f, -0.487934947013855f, - 0.390449374914169f, -0.487851053476334f, 0.390075236558914f, -0.487766891717911f, - 0.389701157808304f, -0.487682431936264f, 0.389327138662338f, -0.487597703933716f, - 0.388953179121017f, -0.487512677907944f, 0.388579308986664f, -0.487427353858948f, - 0.388205498456955f, -0.487341761589050f, 0.387831717729568f, -0.487255871295929f, - 0.387458056211472f, -0.487169682979584f, 0.387084424495697f, -0.487083226442337f, - 0.386710882186890f, -0.486996471881866f, 0.386337369680405f, -0.486909449100494f, - 0.385963946580887f, -0.486822128295898f, 0.385590612888336f, -0.486734509468079f, - 0.385217308998108f, -0.486646622419357f, 0.384844094514847f, -0.486558437347412f, - 0.384470939636230f, -0.486469984054565f, 0.384097874164581f, -0.486381232738495f, - 0.383724838495255f, -0.486292183399200f, 0.383351892232895f, -0.486202865839005f, - 0.382979035377502f, -0.486113250255585f, 0.382606208324432f, -0.486023366451263f, - 0.382233470678329f, -0.485933154821396f, 0.381860792636871f, -0.485842704772949f, - 0.381488204002380f, -0.485751956701279f, 0.381115674972534f, -0.485660910606384f, - 0.380743205547333f, -0.485569566488266f, 0.380370795726776f, -0.485477954149246f, - 0.379998475313187f, -0.485386073589325f, 0.379626244306564f, -0.485293895006180f, - 0.379254043102264f, -0.485201418399811f, 0.378881961107254f, -0.485108673572540f, - 0.378509908914566f, -0.485015630722046f, 0.378137946128845f, -0.484922289848328f, - 0.377766042947769f, -0.484828680753708f, 0.377394229173660f, -0.484734803438187f, - 0.377022475004196f, -0.484640628099442f, 0.376650810241699f, -0.484546154737473f, - 0.376279205083847f, -0.484451413154602f, 0.375907659530640f, -0.484356373548508f, - 0.375536203384399f, -0.484261035919189f, 0.375164806842804f, -0.484165430068970f, - 0.374793499708176f, -0.484069555997849f, 0.374422252178192f, -0.483973383903503f, - 0.374051094055176f, -0.483876913785934f, 0.373679995536804f, -0.483780175447464f, - 0.373308986425400f, -0.483683139085770f, 0.372938036918640f, -0.483585834503174f, - 0.372567176818848f, -0.483488231897354f, 0.372196376323700f, -0.483390361070633f, - 0.371825665235519f, -0.483292192220688f, 0.371455013751984f, -0.483193725347519f, - 0.371084451675415f, -0.483094990253448f, 0.370713949203491f, -0.482995986938477f, - 0.370343536138535f, -0.482896685600281f, 0.369973212480545f, -0.482797086238861f, - 0.369602948427200f, -0.482697218656540f, 0.369232743978500f, -0.482597053050995f, - 0.368862658739090f, -0.482496619224548f, 0.368492603302002f, -0.482395917177200f, - 0.368122667074203f, -0.482294887304306f, 0.367752790451050f, -0.482193619012833f, - 0.367382973432541f, -0.482092022895813f, 0.367013275623322f, -0.481990188360214f, - 0.366643607616425f, -0.481888025999069f, 0.366274058818817f, -0.481785595417023f, - 0.365904569625854f, -0.481682896614075f, 0.365535169839859f, -0.481579899787903f, - 0.365165829658508f, -0.481476634740829f, 0.364796578884125f, -0.481373071670532f, - 0.364427417516708f, -0.481269240379334f, 0.364058345556259f, -0.481165111064911f, - 0.363689333200455f, -0.481060713529587f, 0.363320380449295f, -0.480956017971039f, - 0.362951546907425f, -0.480851024389267f, 0.362582772970200f, -0.480745792388916f, - 0.362214088439941f, -0.480640232563019f, 0.361845493316650f, -0.480534434318542f, - 0.361476957798004f, -0.480428308248520f, 0.361108511686325f, -0.480321943759918f, - 0.360740154981613f, -0.480215251445770f, 0.360371887683868f, -0.480108320713043f, - 0.360003679990768f, -0.480001062154770f, 0.359635561704636f, -0.479893565177917f, - 0.359267532825470f, -0.479785770177841f, 0.358899593353271f, -0.479677677154541f, - 0.358531713485718f, -0.479569315910339f, 0.358163923025131f, -0.479460656642914f, - 0.357796221971512f, -0.479351729154587f, 0.357428610324860f, -0.479242533445358f, - 0.357061088085175f, -0.479133039712906f, 0.356693625450134f, -0.479023247957230f, - 0.356326282024384f, -0.478913217782974f, 0.355958998203278f, -0.478802859783173f, - 0.355591803789139f, -0.478692263364792f, 0.355224698781967f, -0.478581339120865f, - 0.354857653379440f, -0.478470176458359f, 0.354490727186203f, -0.478358715772629f, - 0.354123860597610f, -0.478246957063675f, 0.353757113218308f, -0.478134930133820f, - 0.353390425443649f, -0.478022634983063f, 0.353023827075958f, -0.477910041809082f, - 0.352657318115234f, -0.477797180414200f, 0.352290898561478f, -0.477684020996094f, - 0.351924568414688f, -0.477570593357086f, 0.351558297872543f, -0.477456867694855f, - 0.351192146539688f, -0.477342873811722f, 0.350826084613800f, -0.477228611707687f, - 0.350460082292557f, -0.477114051580429f, 0.350094199180603f, -0.476999223232269f, - 0.349728375673294f, -0.476884096860886f, 0.349362671375275f, -0.476768702268600f, - 0.348997026681900f, -0.476653009653091f, 0.348631471395493f, -0.476537048816681f, - 0.348266035318375f, -0.476420819759369f, 0.347900658845901f, -0.476304292678833f, - 0.347535371780396f, -0.476187497377396f, 0.347170203924179f, -0.476070433855057f, - 0.346805095672607f, -0.475953072309494f, 0.346440106630325f, -0.475835442543030f, - 0.346075177192688f, -0.475717514753342f, 0.345710366964340f, -0.475599318742752f, - 0.345345616340637f, -0.475480824708939f, 0.344980984926224f, -0.475362062454224f, - 0.344616413116455f, -0.475243031978607f, 0.344251960515976f, -0.475123733282089f, - 0.343887597322464f, -0.475004136562347f, 0.343523323535919f, -0.474884241819382f, - 0.343159139156342f, -0.474764078855515f, 0.342795044183731f, -0.474643647670746f, - 0.342431038618088f, -0.474522948265076f, 0.342067122459412f, -0.474401950836182f, - 0.341703325510025f, -0.474280685186386f, 0.341339588165283f, -0.474159121513367f, - 0.340975970029831f, -0.474037289619446f, 0.340612411499023f, -0.473915189504623f, - 0.340248972177505f, -0.473792791366577f, 0.339885622262955f, -0.473670125007629f, - 0.339522391557693f, -0.473547190427780f, 0.339159220457077f, -0.473423957824707f, - 0.338796168565750f, -0.473300457000732f, 0.338433176279068f, -0.473176687955856f, - 0.338070303201675f, -0.473052620887756f, 0.337707549333572f, -0.472928285598755f, - 0.337344855070114f, -0.472803652286530f, 0.336982280015945f, -0.472678780555725f, - 0.336619764566422f, -0.472553610801697f, 0.336257368326187f, -0.472428143024445f, - 0.335895091295242f, -0.472302407026291f, 0.335532873868942f, -0.472176402807236f, - 0.335170775651932f, -0.472050130367279f, 0.334808766841888f, -0.471923559904099f, - 0.334446847438812f, -0.471796721220016f, 0.334085017442703f, -0.471669614315033f, - 0.333723306655884f, -0.471542209386826f, 0.333361685276031f, -0.471414536237717f, - 0.333000183105469f, -0.471286594867706f, 0.332638740539551f, -0.471158385276794f, - 0.332277417182922f, -0.471029877662659f, 0.331916213035584f, -0.470901101827621f, - 0.331555068492889f, -0.470772027969360f, 0.331194043159485f, -0.470642685890198f, - 0.330833107233047f, -0.470513075590134f, 0.330472290515900f, -0.470383197069168f, - 0.330111563205719f, -0.470253020524979f, 0.329750925302505f, -0.470122605562210f, - 0.329390406608582f, -0.469991862773895f, 0.329029977321625f, -0.469860881567001f, - 0.328669637441635f, -0.469729602336884f, 0.328309416770935f, -0.469598054885864f, - 0.327949285507202f, -0.469466239213943f, 0.327589273452759f, -0.469334155321121f, - 0.327229350805283f, -0.469201773405075f, 0.326869517564774f, -0.469069123268127f, - 0.326509803533554f, -0.468936175107956f, 0.326150178909302f, -0.468802988529205f, - 0.325790673494339f, -0.468669503927231f, 0.325431257486343f, -0.468535751104355f, - 0.325071930885315f, -0.468401730060577f, 0.324712723493576f, -0.468267410993576f, - 0.324353635311127f, -0.468132823705673f, 0.323994606733322f, -0.467997968196869f, - 0.323635727167130f, -0.467862844467163f, 0.323276937007904f, -0.467727422714233f, - 0.322918236255646f, -0.467591762542725f, 0.322559654712677f, -0.467455804347992f, - 0.322201162576675f, -0.467319577932358f, 0.321842789649963f, -0.467183053493500f, - 0.321484506130219f, -0.467046260833740f, 0.321126341819763f, -0.466909229755402f, - 0.320768296718597f, -0.466771900653839f, 0.320410341024399f, -0.466634273529053f, - 0.320052474737167f, -0.466496407985687f, 0.319694727659225f, -0.466358244419098f, - 0.319337099790573f, -0.466219812631607f, 0.318979561328888f, -0.466081112623215f, - 0.318622142076492f, -0.465942144393921f, 0.318264812231064f, -0.465802878141403f, - 0.317907601594925f, -0.465663343667984f, 0.317550510168076f, -0.465523540973663f, - 0.317193508148193f, -0.465383470058441f, 0.316836595535278f, -0.465243130922318f, - 0.316479831933975f, -0.465102523565292f, 0.316123157739639f, -0.464961618185043f, - 0.315766572952271f, -0.464820444583893f, 0.315410137176514f, -0.464679002761841f, - 0.315053790807724f, -0.464537292718887f, 0.314697533845901f, -0.464395314455032f, - 0.314341396093369f, -0.464253038167953f, 0.313985377550125f, -0.464110493659973f, - 0.313629478216171f, -0.463967710733414f, 0.313273668289185f, -0.463824629783630f, - 0.312917977571487f, -0.463681250810623f, 0.312562376260757f, -0.463537633419037f, - 0.312206923961639f, -0.463393747806549f, 0.311851561069489f, -0.463249564170837f, - 0.311496287584305f, -0.463105112314224f, 0.311141163110733f, -0.462960392236710f, - 0.310786128044128f, -0.462815403938293f, 0.310431212186813f, -0.462670147418976f, - 0.310076385736465f, -0.462524622678757f, 0.309721708297729f, -0.462378799915314f, - 0.309367120265961f, -0.462232738733292f, 0.309012651443481f, -0.462086379528046f, - 0.308658272027969f, -0.461939752101898f, 0.308304041624069f, -0.461792886257172f, - 0.307949900627136f, -0.461645722389221f, 0.307595878839493f, -0.461498260498047f, - 0.307241976261139f, -0.461350560188293f, 0.306888192892075f, -0.461202591657639f, - 0.306534498929977f, -0.461054325103760f, 0.306180924177170f, -0.460905820131302f, - 0.305827468633652f, -0.460757017135620f, 0.305474132299423f, -0.460607945919037f, - 0.305120915174484f, -0.460458606481552f, 0.304767817258835f, -0.460309028625488f, - 0.304414808750153f, -0.460159152746201f, 0.304061919450760f, -0.460008978843689f, - 0.303709149360657f, -0.459858566522598f, 0.303356528282166f, -0.459707885980606f, - 0.303003966808319f, -0.459556937217712f, 0.302651554346085f, -0.459405690431595f, - 0.302299261093140f, -0.459254205226898f, 0.301947087049484f, -0.459102421998978f, - 0.301595002412796f, -0.458950400352478f, 0.301243066787720f, -0.458798080682755f, - 0.300891220569611f, -0.458645492792130f, 0.300539493560791f, -0.458492636680603f, - 0.300187885761261f, -0.458339542150497f, 0.299836426973343f, -0.458186149597168f, - 0.299485057592392f, -0.458032488822937f, 0.299133807420731f, -0.457878559827805f, - 0.298782676458359f, -0.457724362611771f, 0.298431664705276f, -0.457569897174835f, - 0.298080772161484f, -0.457415163516998f, 0.297729998826981f, -0.457260161638260f, - 0.297379344701767f, -0.457104891538620f, 0.297028809785843f, -0.456949323415756f, - 0.296678394079208f, -0.456793516874313f, 0.296328097581863f, -0.456637442111969f, - 0.295977920293808f, -0.456481099128723f, 0.295627862215042f, -0.456324487924576f, - 0.295277923345566f, -0.456167578697205f, 0.294928103685379f, -0.456010431051254f, - 0.294578403234482f, -0.455853015184402f, 0.294228851795197f, -0.455695331096649f, - 0.293879389762878f, -0.455537378787994f, 0.293530046939850f, -0.455379128456116f, - 0.293180853128433f, -0.455220639705658f, 0.292831748723984f, -0.455061882734299f, - 0.292482793331146f, -0.454902857542038f, 0.292133957147598f, -0.454743564128876f, - 0.291785210371017f, -0.454584002494812f, 0.291436612606049f, -0.454424172639847f, - 0.291088134050369f, -0.454264044761658f, 0.290739774703979f, -0.454103678464890f, - 0.290391564369202f, -0.453943043947220f, 0.290043443441391f, -0.453782171010971f, - 0.289695471525192f, -0.453621000051498f, 0.289347589015961f, -0.453459560871124f, - 0.288999855518341f, -0.453297853469849f, 0.288652241230011f, -0.453135877847672f, - 0.288304775953293f, -0.452973634004593f, 0.287957400083542f, -0.452811151742935f, - 0.287610173225403f, -0.452648371458054f, 0.287263035774231f, -0.452485352754593f, - 0.286916047334671f, -0.452322036027908f, 0.286569178104401f, -0.452158480882645f, - 0.286222457885742f, -0.451994657516479f, 0.285875827074051f, -0.451830536127090f, - 0.285529345273972f, -0.451666176319122f, 0.285182982683182f, -0.451501548290253f, - 0.284836769104004f, -0.451336652040482f, 0.284490644931793f, -0.451171487569809f, - 0.284144669771194f, -0.451006084680557f, 0.283798813819885f, -0.450840383768082f, - 0.283453077077866f, -0.450674414634705f, 0.283107489347458f, -0.450508207082748f, - 0.282762020826340f, -0.450341701507568f, 0.282416671514511f, -0.450174957513809f, - 0.282071471214294f, -0.450007945299149f, 0.281726360321045f, -0.449840664863586f, - 0.281381398439407f, -0.449673116207123f, 0.281036585569382f, -0.449505299329758f, - 0.280691891908646f, -0.449337244033813f, 0.280347317457199f, -0.449168890714645f, - 0.280002862215042f, -0.449000298976898f, 0.279658555984497f, -0.448831409215927f, - 0.279314368963242f, -0.448662281036377f, 0.278970301151276f, -0.448492884635925f, - 0.278626382350922f, -0.448323249816895f, 0.278282582759857f, -0.448153316974640f, - 0.277938932180405f, -0.447983115911484f, 0.277595400810242f, -0.447812676429749f, - 0.277251988649368f, -0.447641968727112f, 0.276908725500107f, -0.447470992803574f, - 0.276565581560135f, -0.447299748659134f, 0.276222556829453f, -0.447128236293793f, - 0.275879681110382f, -0.446956485509872f, 0.275536954402924f, -0.446784436702728f, - 0.275194346904755f, -0.446612149477005f, 0.274851858615875f, -0.446439594030380f, - 0.274509519338608f, -0.446266770362854f, 0.274167299270630f, -0.446093708276749f, - 0.273825198411942f, -0.445920348167419f, 0.273483246564865f, -0.445746749639511f, - 0.273141443729401f, -0.445572882890701f, 0.272799760103226f, -0.445398747920990f, - 0.272458195686340f, -0.445224374532700f, 0.272116780281067f, -0.445049703121185f, - 0.271775513887405f, -0.444874793291092f, 0.271434366703033f, -0.444699615240097f, - 0.271093338727951f, -0.444524168968201f, 0.270752459764481f, -0.444348484277725f, - 0.270411729812622f, -0.444172531366348f, 0.270071119070053f, -0.443996280431747f, - 0.269730657339096f, -0.443819820880890f, 0.269390314817429f, -0.443643063306808f, - 0.269050091505051f, -0.443466067314148f, 0.268710047006607f, -0.443288803100586f, - 0.268370121717453f, -0.443111270666122f, 0.268030315637589f, -0.442933470010757f, - 0.267690658569336f, -0.442755430936813f, 0.267351150512695f, -0.442577123641968f, - 0.267011761665344f, -0.442398548126221f, 0.266672492027283f, -0.442219734191895f, - 0.266333401203156f, -0.442040622234344f, 0.265994429588318f, -0.441861271858215f, - 0.265655577182770f, -0.441681683063507f, 0.265316903591156f, -0.441501796245575f, - 0.264978319406509f, -0.441321671009064f, 0.264639914035797f, -0.441141277551651f, - 0.264301627874374f, -0.440960645675659f, 0.263963490724564f, -0.440779715776443f, - 0.263625472784042f, -0.440598547458649f, 0.263287603855133f, -0.440417140722275f, - 0.262949883937836f, -0.440235435962677f, 0.262612313032150f, -0.440053492784500f, - 0.262274861335754f, -0.439871311187744f, 0.261937558650970f, -0.439688831567764f, - 0.261600375175476f, -0.439506113529205f, 0.261263370513916f, -0.439323127269745f, - 0.260926485061646f, -0.439139902591705f, 0.260589718818665f, -0.438956409692764f, - 0.260253131389618f, -0.438772648572922f, 0.259916663169861f, -0.438588619232178f, - 0.259580343961716f, -0.438404351472855f, 0.259244143962860f, -0.438219845294952f, - 0.258908122777939f, -0.438035041093826f, 0.258572220802307f, -0.437849998474121f, - 0.258236467838287f, -0.437664687633514f, 0.257900834083557f, -0.437479138374329f, - 0.257565379142761f, -0.437293320894241f, 0.257230043411255f, -0.437107264995575f, - 0.256894856691360f, -0.436920911073685f, 0.256559818983078f, -0.436734348535538f, - 0.256224930286407f, -0.436547487974167f, 0.255890160799026f, -0.436360388994217f, - 0.255555540323257f, -0.436173021793365f, 0.255221068859100f, -0.435985416173935f, - 0.254886746406555f, -0.435797542333603f, 0.254552572965622f, -0.435609430074692f, - 0.254218548536301f, -0.435421019792557f, 0.253884643316269f, -0.435232400894165f, - 0.253550916910172f, -0.435043483972549f, 0.253217309713364f, -0.434854328632355f, - 0.252883851528168f, -0.434664934873581f, 0.252550542354584f, -0.434475272893906f, - 0.252217382192612f, -0.434285342693329f, 0.251884341239929f, -0.434095174074173f, - 0.251551479101181f, -0.433904737234116f, 0.251218736171722f, -0.433714061975479f, - 0.250886172056198f, -0.433523118495941f, 0.250553727149963f, -0.433331936597824f, - 0.250221431255341f, -0.433140486478806f, 0.249889299273491f, -0.432948768138886f, - 0.249557301402092f, -0.432756811380386f, 0.249225467443466f, -0.432564586400986f, - 0.248893767595291f, -0.432372123003006f, 0.248562216758728f, -0.432179391384125f, - 0.248230814933777f, -0.431986421346664f, 0.247899547219276f, -0.431793183088303f, - 0.247568443417549f, -0.431599706411362f, 0.247237488627434f, -0.431405961513519f, - 0.246906682848930f, -0.431211978197098f, 0.246576011180878f, -0.431017726659775f, - 0.246245503425598f, -0.430823236703873f, 0.245915144681931f, -0.430628478527069f, - 0.245584934949875f, -0.430433481931686f, 0.245254859328270f, -0.430238217115402f, - 0.244924947619438f, -0.430042684078217f, 0.244595184922218f, -0.429846942424774f, - 0.244265571236610f, -0.429650902748108f, 0.243936106562614f, -0.429454624652863f, - 0.243606805801392f, -0.429258108139038f, 0.243277639150620f, -0.429061323404312f, - 0.242948621511459f, -0.428864300251007f, 0.242619767785072f, -0.428667008876801f, - 0.242291063070297f, -0.428469479084015f, 0.241962507367134f, -0.428271710872650f, - 0.241634100675583f, -0.428073674440384f, 0.241305842995644f, -0.427875369787216f, - 0.240977749228477f, -0.427676826715469f, 0.240649804472923f, -0.427478045225143f, - 0.240322008728981f, -0.427278995513916f, 0.239994361996651f, -0.427079707384110f, - 0.239666879177094f, -0.426880151033401f, 0.239339530467987f, -0.426680356264114f, - 0.239012360572815f, -0.426480293273926f, 0.238685324788094f, -0.426279991865158f, - 0.238358452916145f, -0.426079452037811f, 0.238031730055809f, -0.425878643989563f, - 0.237705156207085f, -0.425677597522736f, 0.237378746271133f, -0.425476282835007f, - 0.237052485346794f, -0.425274729728699f, 0.236726388335228f, -0.425072938203812f, - 0.236400425434113f, -0.424870878458023f, 0.236074641346931f, -0.424668580293655f, - 0.235749006271362f, -0.424466013908386f, 0.235423520207405f, -0.424263238906860f, - 0.235098183155060f, -0.424060165882111f, 0.234773010015488f, -0.423856884241104f, - 0.234448000788689f, -0.423653304576874f, 0.234123140573502f, -0.423449516296387f, - 0.233798429369926f, -0.423245459794998f, 0.233473882079124f, -0.423041164875031f, - 0.233149498701096f, -0.422836631536484f, 0.232825264334679f, -0.422631829977036f, - 0.232501193881035f, -0.422426789999008f, 0.232177272439003f, -0.422221481800079f, - 0.231853514909744f, -0.422015935182571f, 0.231529906392097f, -0.421810150146484f, - 0.231206461787224f, -0.421604126691818f, 0.230883181095123f, -0.421397835016251f, - 0.230560049414635f, -0.421191304922104f, 0.230237081646919f, -0.420984506607056f, - 0.229914262890816f, -0.420777499675751f, 0.229591608047485f, -0.420570224523544f, - 0.229269117116928f, -0.420362681150436f, 0.228946775197983f, -0.420154929161072f, - 0.228624612092972f, -0.419946908950806f, 0.228302597999573f, -0.419738620519638f, - 0.227980732917786f, -0.419530123472214f, 0.227659046649933f, -0.419321358203888f, - 0.227337509393692f, -0.419112354516983f, 0.227016136050224f, -0.418903112411499f, - 0.226694911718369f, -0.418693602085114f, 0.226373866200447f, -0.418483853340149f, - 0.226052969694138f, -0.418273866176605f, 0.225732237100601f, -0.418063640594482f, - 0.225411668419838f, -0.417853146791458f, 0.225091263651848f, -0.417642414569855f, - 0.224771007895470f, -0.417431443929672f, 0.224450930953026f, -0.417220205068588f, - 0.224131003022194f, -0.417008757591248f, 0.223811239004135f, -0.416797041893005f, - 0.223491653800011f, -0.416585087776184f, 0.223172217607498f, -0.416372895240784f, - 0.222852945327759f, -0.416160434484482f, 0.222533836960793f, -0.415947735309601f, - 0.222214877605438f, -0.415734797716141f, 0.221896097064018f, -0.415521621704102f, - 0.221577480435371f, -0.415308207273483f, 0.221259027719498f, -0.415094524621964f, - 0.220940738916397f, -0.414880603551865f, 0.220622614026070f, -0.414666473865509f, - 0.220304638147354f, -0.414452046155930f, 0.219986841082573f, -0.414237409830093f, - 0.219669207930565f, -0.414022535085678f, 0.219351738691330f, -0.413807392120361f, - 0.219034433364868f, -0.413592010736465f, 0.218717306852341f, -0.413376390933990f, - 0.218400329351425f, -0.413160532712936f, 0.218083515763283f, -0.412944436073303f, - 0.217766880989075f, -0.412728071212769f, 0.217450410127640f, -0.412511497735977f, - 0.217134088277817f, -0.412294656038284f, 0.216817945241928f, -0.412077575922012f, - 0.216501981019974f, -0.411860257387161f, 0.216186165809631f, -0.411642700433731f, - 0.215870529413223f, -0.411424905061722f, 0.215555042028427f, -0.411206841468811f, - 0.215239733457565f, -0.410988569259644f, 0.214924603700638f, -0.410770028829575f, - 0.214609622955322f, -0.410551249980927f, 0.214294821023941f, -0.410332232713699f, - 0.213980183005333f, -0.410112977027893f, 0.213665723800659f, -0.409893482923508f, - 0.213351413607597f, -0.409673750400543f, 0.213037282228470f, -0.409453779459000f, - 0.212723329663277f, -0.409233570098877f, 0.212409526109695f, -0.409013092517853f, - 0.212095901370049f, -0.408792406320572f, 0.211782455444336f, -0.408571451902390f, - 0.211469158530235f, -0.408350288867950f, 0.211156040430069f, -0.408128857612610f, - 0.210843101143837f, -0.407907217741013f, 0.210530325770378f, -0.407685309648514f, - 0.210217714309692f, -0.407463163137436f, 0.209905281662941f, -0.407240778207779f, - 0.209593027830124f, -0.407018154859543f, 0.209280923008919f, -0.406795293092728f, - 0.208969011902809f, -0.406572192907333f, 0.208657249808311f, -0.406348884105682f, - 0.208345666527748f, -0.406125307083130f, 0.208034262061119f, -0.405901491641998f, - 0.207723021507263f, -0.405677437782288f, 0.207411959767342f, -0.405453115701675f, - 0.207101076841354f, -0.405228585004807f, 0.206790357828140f, -0.405003815889359f, - 0.206479802727699f, -0.404778808355331f, 0.206169426441193f, -0.404553562402725f, - 0.205859228968620f, -0.404328078031540f, 0.205549195408821f, -0.404102355241776f, - 0.205239340662956f, -0.403876423835754f, 0.204929664731026f, -0.403650224208832f, - 0.204620152711868f, -0.403423786163330f, 0.204310819506645f, -0.403197109699249f, - 0.204001650214195f, -0.402970194816589f, 0.203692659735680f, -0.402743041515350f, - 0.203383848071098f, -0.402515679597855f, 0.203075215220451f, -0.402288049459457f, - 0.202766746282578f, -0.402060180902481f, 0.202458456158638f, -0.401832103729248f, - 0.202150344848633f, -0.401603758335114f, 0.201842412352562f, -0.401375204324722f, - 0.201534643769264f, -0.401146411895752f, 0.201227053999901f, -0.400917351245880f, - 0.200919643044472f, -0.400688081979752f, 0.200612410902977f, -0.400458574295044f, - 0.200305357575417f, -0.400228828191757f, 0.199998468160629f, -0.399998843669891f, - 0.199691757559776f, -0.399768620729446f, 0.199385225772858f, -0.399538189172745f, - 0.199078872799873f, -0.399307489395142f, 0.198772698640823f, -0.399076581001282f, - 0.198466703295708f, -0.398845434188843f, 0.198160871863365f, -0.398614019155502f, - 0.197855234146118f, -0.398382395505905f, 0.197549775242805f, -0.398150533437729f, - 0.197244480252266f, -0.397918462753296f, 0.196939364075661f, -0.397686123847961f, - 0.196634441614151f, -0.397453576326370f, 0.196329683065414f, -0.397220760583878f, - 0.196025103330612f, -0.396987736225128f, 0.195720717310905f, -0.396754473447800f, - 0.195416495203972f, -0.396520972251892f, 0.195112451910973f, -0.396287262439728f, - 0.194808602333069f, -0.396053284406662f, 0.194504916667938f, -0.395819097757339f, - 0.194201424717903f, -0.395584672689438f, 0.193898096680641f, -0.395350009202957f, - 0.193594962358475f, -0.395115107297897f, 0.193292006850243f, -0.394879996776581f, - 0.192989215254784f, -0.394644618034363f, 0.192686617374420f, -0.394409030675888f, - 0.192384198307991f, -0.394173204898834f, 0.192081972956657f, -0.393937170505524f, - 0.191779911518097f, -0.393700867891312f, 0.191478043794632f, -0.393464356660843f, - 0.191176339983940f, -0.393227607011795f, 0.190874829888344f, -0.392990618944168f, - 0.190573498606682f, -0.392753422260284f, 0.190272361040115f, -0.392515957355499f, - 0.189971387386322f, -0.392278283834457f, 0.189670607447624f, -0.392040401697159f, - 0.189370006322861f, -0.391802251338959f, 0.189069598913193f, -0.391563892364502f, - 0.188769355416298f, -0.391325294971466f, 0.188469305634499f, -0.391086459159851f, - 0.188169434666634f, -0.390847414731979f, 0.187869757413864f, -0.390608131885529f, - 0.187570258975029f, -0.390368610620499f, 0.187270939350128f, -0.390128880739212f, - 0.186971798539162f, -0.389888882637024f, 0.186672851443291f, -0.389648675918579f, - 0.186374098062515f, -0.389408260583878f, 0.186075508594513f, -0.389167606830597f, - 0.185777112841606f, -0.388926714658737f, 0.185478910803795f, -0.388685584068298f, - 0.185180887579918f, -0.388444244861603f, 0.184883043169975f, -0.388202667236328f, - 0.184585392475128f, -0.387960851192474f, 0.184287920594215f, -0.387718826532364f, - 0.183990627527237f, -0.387476563453674f, 0.183693528175354f, -0.387234061956406f, - 0.183396622538567f, -0.386991351842880f, 0.183099895715714f, -0.386748403310776f, - 0.182803362607956f, -0.386505216360092f, 0.182507008314133f, -0.386261820793152f, - 0.182210832834244f, -0.386018186807632f, 0.181914865970612f, -0.385774344205856f, - 0.181619063019753f, -0.385530263185501f, 0.181323468685150f, -0.385285943746567f, - 0.181028053164482f, -0.385041415691376f, 0.180732816457748f, -0.384796649217606f, - 0.180437773466110f, -0.384551674127579f, 0.180142924189568f, -0.384306460618973f, - 0.179848253726959f, -0.384061008691788f, 0.179553776979446f, -0.383815348148346f, - 0.179259493947029f, -0.383569449186325f, 0.178965389728546f, -0.383323341608047f, - 0.178671479225159f, -0.383076995611191f, 0.178377762436867f, -0.382830440998077f, - 0.178084224462509f, -0.382583618164063f, 0.177790880203247f, -0.382336616516113f, - 0.177497729659081f, -0.382089376449585f, 0.177204772830009f, -0.381841897964478f, - 0.176911994814873f, -0.381594210863113f, 0.176619410514832f, -0.381346285343170f, - 0.176327019929886f, -0.381098151206970f, 0.176034808158875f, -0.380849778652191f, - 0.175742805004120f, -0.380601197481155f, 0.175450980663300f, -0.380352377891541f, - 0.175159350037575f, -0.380103349685669f, 0.174867913126946f, -0.379854083061218f, - 0.174576655030251f, -0.379604607820511f, 0.174285605549812f, -0.379354894161224f, - 0.173994734883308f, -0.379104942083359f, 0.173704057931900f, -0.378854811191559f, - 0.173413574695587f, -0.378604412078857f, 0.173123285174370f, -0.378353834152222f, - 0.172833189368248f, -0.378102988004684f, 0.172543287277222f, -0.377851963043213f, - 0.172253578901291f, -0.377600699663162f, 0.171964049339294f, -0.377349197864532f, - 0.171674728393555f, -0.377097487449646f, 0.171385586261749f, -0.376845568418503f, - 0.171096652746201f, -0.376593410968781f, 0.170807912945747f, -0.376341015100479f, - 0.170519351959229f, -0.376088410615921f, 0.170230999588966f, -0.375835597515106f, - 0.169942826032639f, -0.375582575798035f, 0.169654861092567f, -0.375329315662384f, - 0.169367074966431f, -0.375075817108154f, 0.169079497456551f, -0.374822109937668f, - 0.168792113661766f, -0.374568194150925f, 0.168504923582077f, -0.374314039945602f, - 0.168217927217484f, -0.374059677124023f, 0.167931124567986f, -0.373805105686188f, - 0.167644515633583f, -0.373550295829773f, 0.167358100414276f, -0.373295277357101f, - 0.167071878910065f, -0.373040050268173f, 0.166785866022110f, -0.372784584760666f, - 0.166500031948090f, -0.372528880834579f, 0.166214406490326f, -0.372272998094559f, - 0.165928974747658f, -0.372016876935959f, 0.165643751621246f, -0.371760547161102f, - 0.165358707308769f, -0.371503978967667f, 0.165073871612549f, -0.371247202157974f, - 0.164789214730263f, -0.370990216732025f, 0.164504766464233f, -0.370732992887497f, - 0.164220526814461f, -0.370475560426712f, 0.163936465978622f, -0.370217919349670f, - 0.163652613759041f, -0.369960039854050f, 0.163368955254555f, -0.369701951742172f, - 0.163085505366325f, -0.369443655014038f, 0.162802234292030f, -0.369185149669647f, - 0.162519171833992f, -0.368926405906677f, 0.162236317992210f, -0.368667453527451f, - 0.161953642964363f, -0.368408292531967f, 0.161671176552773f, -0.368148893117905f, - 0.161388918757439f, -0.367889285087585f, 0.161106839776039f, -0.367629468441010f, - 0.160824984312058f, -0.367369443178177f, 0.160543307662010f, -0.367109179496765f, - 0.160261839628220f, -0.366848707199097f, 0.159980565309525f, -0.366588026285172f, - 0.159699499607086f, -0.366327136754990f, 0.159418627619743f, -0.366066008806229f, - 0.159137964248657f, -0.365804702043533f, 0.158857494592667f, -0.365543156862259f, - 0.158577233552933f, -0.365281373262405f, 0.158297166228294f, -0.365019410848618f, - 0.158017292618752f, -0.364757210016251f, 0.157737627625465f, -0.364494800567627f, - 0.157458171248436f, -0.364232182502747f, 0.157178908586502f, -0.363969355821610f, - 0.156899839639664f, -0.363706320524216f, 0.156620979309082f, -0.363443046808243f, - 0.156342327594757f, -0.363179564476013f, 0.156063869595528f, -0.362915903329849f, - 0.155785620212555f, -0.362651973962784f, 0.155507579445839f, -0.362387865781784f, - 0.155229732394218f, -0.362123548984528f, 0.154952079057693f, -0.361858993768692f, - 0.154674649238586f, -0.361594229936600f, 0.154397398233414f, -0.361329287290573f, - 0.154120370745659f, -0.361064106225967f, 0.153843536973000f, -0.360798716545105f, - 0.153566911816597f, -0.360533088445663f, 0.153290495276451f, -0.360267281532288f, - 0.153014272451401f, -0.360001266002655f, 0.152738258242607f, -0.359735012054443f, - 0.152462437748909f, -0.359468549489975f, 0.152186840772629f, -0.359201908111572f, - 0.151911437511444f, -0.358935028314590f, 0.151636242866516f, -0.358667939901352f, - 0.151361241936684f, -0.358400642871857f, 0.151086464524269f, -0.358133137226105f, - 0.150811880826950f, -0.357865422964096f, 0.150537505745888f, -0.357597470283508f, - 0.150263324379921f, -0.357329338788986f, 0.149989366531372f, -0.357060998678207f, - 0.149715602397919f, -0.356792420148849f, 0.149442046880722f, -0.356523662805557f, - 0.149168699979782f, -0.356254696846008f, 0.148895561695099f, -0.355985492467880f, - 0.148622632026672f, -0.355716109275818f, 0.148349896073341f, -0.355446487665176f, - 0.148077383637428f, -0.355176687240601f, 0.147805064916611f, -0.354906648397446f, - 0.147532954812050f, -0.354636400938034f, 0.147261068224907f, -0.354365974664688f, - 0.146989375352860f, -0.354095309972763f, 0.146717891097069f, -0.353824466466904f, - 0.146446615457535f, -0.353553384542465f, 0.146175548434258f, -0.353282123804092f, - 0.145904675126076f, -0.353010624647141f, 0.145634025335312f, -0.352738946676254f, - 0.145363584160805f, -0.352467030286789f, 0.145093351602554f, -0.352194935083389f, - 0.144823327660561f, -0.351922631263733f, 0.144553512334824f, -0.351650089025497f, - 0.144283905625343f, -0.351377367973328f, 0.144014507532120f, -0.351104438304901f, - 0.143745318055153f, -0.350831300020218f, 0.143476337194443f, -0.350557953119278f, - 0.143207564949989f, -0.350284397602081f, 0.142939001321793f, -0.350010633468628f, - 0.142670661211014f, -0.349736660718918f, 0.142402514815331f, -0.349462509155273f, - 0.142134591937065f, -0.349188119173050f, 0.141866862773895f, -0.348913550376892f, - 0.141599357128143f, -0.348638743162155f, 0.141332060098648f, -0.348363757133484f, - 0.141064971685410f, -0.348088562488556f, 0.140798106789589f, -0.347813159227371f, - 0.140531435608864f, -0.347537547349930f, 0.140264987945557f, -0.347261756658554f, - 0.139998748898506f, -0.346985727548599f, 0.139732718467712f, -0.346709519624710f, - 0.139466896653175f, -0.346433073282242f, 0.139201298356056f, -0.346156448125839f, - 0.138935908675194f, -0.345879614353180f, 0.138670727610588f, -0.345602601766586f, - 0.138405755162239f, -0.345325350761414f, 0.138141006231308f, -0.345047920942307f, - 0.137876465916634f, -0.344770282506943f, 0.137612134218216f, -0.344492435455322f, - 0.137348011136055f, -0.344214379787445f, 0.137084111571312f, -0.343936115503311f, - 0.136820420622826f, -0.343657672405243f, 0.136556953191757f, -0.343379020690918f, - 0.136293679475784f, -0.343100160360336f, 0.136030644178391f, -0.342821091413498f, - 0.135767802596092f, -0.342541843652725f, 0.135505184531212f, -0.342262357473373f, - 0.135242775082588f, -0.341982692480087f, 0.134980589151382f, -0.341702848672867f, - 0.134718611836433f, -0.341422766447067f, 0.134456858038902f, -0.341142505407333f, - 0.134195312857628f, -0.340862035751343f, 0.133933976292610f, -0.340581357479095f, - 0.133672863245010f, -0.340300500392914f, 0.133411958813667f, -0.340019434690475f, - 0.133151277899742f, -0.339738160371780f, 0.132890805602074f, -0.339456677436829f, - 0.132630556821823f, -0.339175015687943f, 0.132370531558990f, -0.338893145322800f, - 0.132110700011253f, -0.338611096143723f, 0.131851106882095f, -0.338328808546066f, - 0.131591722369194f, -0.338046342134476f, 0.131332546472549f, -0.337763696908951f, - 0.131073594093323f, -0.337480813264847f, 0.130814850330353f, -0.337197750806808f, - 0.130556344985962f, -0.336914509534836f, 0.130298033356667f, -0.336631029844284f, - 0.130039945244789f, -0.336347371339798f, 0.129782080650330f, -0.336063534021378f, - 0.129524439573288f, -0.335779488086700f, 0.129267007112503f, -0.335495233535767f, - 0.129009798169136f, -0.335210770368576f, 0.128752797842026f, -0.334926128387451f, - 0.128496021032333f, -0.334641307592392f, 0.128239467740059f, -0.334356248378754f, - 0.127983123064041f, -0.334071010351181f, 0.127727001905441f, -0.333785593509674f, - 0.127471104264259f, -0.333499968051910f, 0.127215430140495f, -0.333214133977890f, - 0.126959964632988f, -0.332928121089935f, 0.126704722642899f, -0.332641899585724f, - 0.126449704170227f, -0.332355499267578f, 0.126194894313812f, -0.332068890333176f, - 0.125940307974815f, -0.331782072782516f, 0.125685945153236f, -0.331495076417923f, - 0.125431805849075f, -0.331207901239395f, 0.125177875161171f, -0.330920487642288f, - 0.124924175441265f, -0.330632925033569f, 0.124670691788197f, -0.330345153808594f, - 0.124417431652546f, -0.330057173967361f, 0.124164395034313f, -0.329769015312195f, - 0.123911574482918f, -0.329480648040771f, 0.123658977448940f, -0.329192101955414f, - 0.123406603932381f, -0.328903347253799f, 0.123154446482658f, -0.328614413738251f, - 0.122902512550354f, -0.328325271606445f, 0.122650802135468f, -0.328035950660706f, - 0.122399315237999f, -0.327746421098709f, 0.122148044407368f, -0.327456712722778f, - 0.121896997094154f, -0.327166795730591f, 0.121646173298359f, -0.326876699924469f, - 0.121395580470562f, -0.326586425304413f, 0.121145196259022f, -0.326295942068100f, - 0.120895043015480f, -0.326005280017853f, 0.120645113289356f, -0.325714409351349f, - 0.120395407080650f, -0.325423330068588f, 0.120145916938782f, -0.325132101774216f, - 0.119896657764912f, -0.324840664863586f, 0.119647622108459f, -0.324549019336700f, - 0.119398809969425f, -0.324257194995880f, 0.119150213897228f, -0.323965191841125f, - 0.118901848793030f, -0.323672980070114f, 0.118653707206249f, -0.323380589485168f, - 0.118405789136887f, -0.323088020086288f, 0.118158094584942f, -0.322795242071152f, - 0.117910631000996f, -0.322502255439758f, 0.117663383483887f, -0.322209119796753f, - 0.117416366934776f, -0.321915775537491f, 0.117169573903084f, -0.321622252464294f, - 0.116923004388809f, -0.321328520774841f, 0.116676658391953f, -0.321034610271454f, - 0.116430543363094f, -0.320740520954132f, 0.116184651851654f, -0.320446223020554f, - 0.115938983857632f, -0.320151746273041f, 0.115693546831608f, -0.319857090711594f, - 0.115448333323002f, -0.319562226533890f, 0.115203343331814f, -0.319267183542252f, - 0.114958584308624f, -0.318971961736679f, 0.114714048802853f, -0.318676531314850f, - 0.114469736814499f, -0.318380922079086f, 0.114225655794144f, -0.318085134029388f, - 0.113981798291206f, -0.317789167165756f, 0.113738171756268f, -0.317492991685867f, - 0.113494776189327f, -0.317196637392044f, 0.113251596689224f, -0.316900104284287f, - 0.113008655607700f, -0.316603392362595f, 0.112765938043594f, -0.316306471824646f, - 0.112523443996906f, -0.316009372472763f, 0.112281180918217f, -0.315712094306946f, - 0.112039148807526f, -0.315414607524872f, 0.111797347664833f, -0.315116971731186f, - 0.111555770039558f, -0.314819127321243f, 0.111314415931702f, -0.314521104097366f, - 0.111073300242424f, -0.314222872257233f, 0.110832408070564f, -0.313924491405487f, - 0.110591746866703f, -0.313625901937485f, 0.110351309180260f, -0.313327133655548f, - 0.110111102461815f, -0.313028186559677f, 0.109871134161949f, -0.312729060649872f, - 0.109631389379501f, -0.312429755926132f, 0.109391868114471f, -0.312130242586136f, - 0.109152585268021f, -0.311830550432205f, 0.108913525938988f, -0.311530679464340f, - 0.108674705028534f, -0.311230629682541f, 0.108436107635498f, -0.310930401086807f, - 0.108197741210461f, -0.310629993677139f, 0.107959605753422f, -0.310329377651215f, - 0.107721701264381f, -0.310028612613678f, 0.107484027743340f, -0.309727638959885f, - 0.107246585190296f, -0.309426486492157f, 0.107009373605251f, -0.309125155210495f, - 0.106772392988205f, -0.308823645114899f, 0.106535643339157f, -0.308521956205368f, - 0.106299124658108f, -0.308220088481903f, 0.106062836945057f, -0.307918041944504f, - 0.105826787650585f, -0.307615786790848f, 0.105590961873531f, -0.307313382625580f, - 0.105355374515057f, -0.307010769844055f, 0.105120018124580f, -0.306708008050919f, - 0.104884892702103f, -0.306405037641525f, 0.104649998247623f, -0.306101888418198f, - 0.104415334761143f, -0.305798590183258f, 0.104180909693241f, -0.305495083332062f, - 0.103946708142757f, -0.305191397666931f, 0.103712752461433f, -0.304887533187866f, - 0.103479020297527f, -0.304583519697189f, 0.103245526552200f, -0.304279297590256f, - 0.103012263774872f, -0.303974896669388f, 0.102779231965542f, -0.303670316934586f, - 0.102546438574791f, -0.303365558385849f, 0.102313876152039f, -0.303060621023178f, - 0.102081544697285f, -0.302755534648895f, 0.101849451661110f, -0.302450239658356f, - 0.101617597043514f, -0.302144765853882f, 0.101385973393917f, -0.301839113235474f, - 0.101154580712318f, -0.301533311605453f, 0.100923426449299f, -0.301227301359177f, - 0.100692503154278f, -0.300921112298965f, 0.100461818277836f, -0.300614774227142f, - 0.100231364369392f, -0.300308227539063f, 0.100001148879528f, -0.300001531839371f, - 0.099771171808243f, -0.299694657325745f, 0.099541425704956f, -0.299387603998184f, - 0.099311910569668f, -0.299080342054367f, 0.099082641303539f, -0.298772931098938f, - 0.098853603005409f, -0.298465341329575f, 0.098624803125858f, -0.298157602548599f, - 0.098396234214306f, -0.297849655151367f, 0.098167903721333f, -0.297541528940201f, - 0.097939811646938f, -0.297233253717422f, 0.097711957991123f, -0.296924799680710f, - 0.097484335303307f, -0.296616137027740f, 0.097256951034069f, -0.296307325363159f, - 0.097029805183411f, -0.295998334884644f, 0.096802897751331f, -0.295689195394516f, - 0.096576221287251f, -0.295379847288132f, 0.096349790692329f, -0.295070350170136f, - 0.096123591065407f, -0.294760644435883f, 0.095897629857063f, -0.294450789690018f, - 0.095671907067299f, -0.294140785932541f, 0.095446422696114f, -0.293830573558807f, - 0.095221176743507f, -0.293520182371140f, 0.094996169209480f, -0.293209642171860f, - 0.094771400094032f, -0.292898923158646f, 0.094546869397163f, -0.292588025331497f, - 0.094322577118874f, -0.292276978492737f, 0.094098523259163f, -0.291965723037720f, - 0.093874707818031f, -0.291654318571091f, 0.093651130795479f, -0.291342735290527f, - 0.093427792191505f, -0.291031002998352f, 0.093204692006111f, -0.290719062089920f, - 0.092981837689877f, -0.290406972169876f, 0.092759214341640f, -0.290094703435898f, - 0.092536836862564f, -0.289782285690308f, 0.092314697802067f, -0.289469659328461f, - 0.092092797160149f, -0.289156883955002f, 0.091871134936810f, -0.288843959569931f, - 0.091649711132050f, -0.288530826568604f, 0.091428533196449f, -0.288217544555664f, - 0.091207593679428f, -0.287904083728790f, 0.090986892580986f, -0.287590473890305f, - 0.090766437351704f, -0.287276685237885f, 0.090546220541000f, -0.286962717771530f, - 0.090326242148876f, -0.286648571491241f, 0.090106502175331f, -0.286334276199341f, - 0.089887008070946f, -0.286019802093506f, 0.089667752385139f, -0.285705178976059f, - 0.089448742568493f, -0.285390377044678f, 0.089229971170425f, -0.285075396299362f, - 0.089011445641518f, -0.284760266542435f, 0.088793158531189f, -0.284444957971573f, - 0.088575109839439f, -0.284129470586777f, 0.088357307016850f, -0.283813834190369f, - 0.088139742612839f, -0.283498018980026f, 0.087922424077988f, -0.283182054758072f, - 0.087705351412296f, -0.282865911722183f, 0.087488517165184f, -0.282549589872360f, - 0.087271921336651f, -0.282233119010925f, 0.087055571377277f, -0.281916469335556f, - 0.086839467287064f, -0.281599670648575f, 0.086623609066010f, -0.281282693147659f, - 0.086407989263535f, -0.280965566635132f, 0.086192607879639f, -0.280648261308670f, - 0.085977479815483f, -0.280330777168274f, 0.085762590169907f, -0.280013144016266f, - 0.085547938942909f, -0.279695361852646f, 0.085333541035652f, -0.279377400875092f, - 0.085119381546974f, -0.279059261083603f, 0.084905467927456f, -0.278740972280502f, - 0.084691800177097f, -0.278422504663467f, 0.084478378295898f, -0.278103888034821f, - 0.084265194833279f, -0.277785122394562f, 0.084052257239819f, -0.277466177940369f, - 0.083839565515518f, -0.277147054672241f, 0.083627119660378f, -0.276827782392502f, - 0.083414919674397f, -0.276508361101151f, 0.083202958106995f, -0.276188760995865f, - 0.082991249859333f, -0.275868982076645f, 0.082779780030251f, -0.275549083948135f, - 0.082568563520908f, -0.275228977203369f, 0.082357585430145f, -0.274908751249313f, - 0.082146860659122f, -0.274588316679001f, 0.081936374306679f, -0.274267762899399f, - 0.081726133823395f, -0.273947030305862f, 0.081516146659851f, -0.273626148700714f, - 0.081306397914886f, -0.273305088281631f, 0.081096902489662f, -0.272983878850937f, - 0.080887645483017f, -0.272662490606308f, 0.080678641796112f, -0.272340953350067f, - 0.080469883978367f, -0.272019267082214f, 0.080261372029781f, -0.271697402000427f, - 0.080053105950356f, -0.271375387907028f, 0.079845085740089f, -0.271053224802017f, - 0.079637311398983f, -0.270730882883072f, 0.079429790377617f, -0.270408391952515f, - 0.079222507774830f, -0.270085722208023f, 0.079015478491783f, -0.269762933254242f, - 0.078808702528477f, -0.269439965486526f, 0.078602164983749f, -0.269116818904877f, - 0.078395880758762f, -0.268793523311615f, 0.078189842402935f, -0.268470078706741f, - 0.077984049916267f, -0.268146485090256f, 0.077778510749340f, -0.267822742462158f, - 0.077573217451572f, -0.267498821020126f, 0.077368170022964f, -0.267174720764160f, - 0.077163375914097f, -0.266850501298904f, 0.076958827674389f, -0.266526103019714f, - 0.076754532754421f, -0.266201555728912f, 0.076550483703613f, -0.265876859426498f, - 0.076346680521965f, -0.265552014112473f, 0.076143130660057f, -0.265226989984512f, - 0.075939826667309f, -0.264901816844940f, 0.075736775994301f, -0.264576494693756f, - 0.075533971190453f, -0.264250993728638f, 0.075331419706345f, -0.263925373554230f, - 0.075129114091396f, -0.263599574565887f, 0.074927061796188f, -0.263273626565933f, - 0.074725262820721f, -0.262947499752045f, 0.074523709714413f, -0.262621253728867f, - 0.074322402477264f, -0.262294828891754f, 0.074121348559856f, -0.261968284845352f, - 0.073920547962189f, -0.261641561985016f, 0.073720000684261f, -0.261314690113068f, - 0.073519699275494f, -0.260987639427185f, 0.073319651186466f, -0.260660469532013f, - 0.073119848966599f, -0.260333120822906f, 0.072920300066471f, -0.260005623102188f, - 0.072721004486084f, -0.259678006172180f, 0.072521962225437f, -0.259350210428238f, - 0.072323165833950f, -0.259022265672684f, 0.072124622762203f, -0.258694142103195f, - 0.071926333010197f, -0.258365899324417f, 0.071728296577930f, -0.258037507534027f, - 0.071530513465405f, -0.257708936929703f, 0.071332976222038f, -0.257380217313766f, - 0.071135692298412f, -0.257051378488541f, 0.070938661694527f, -0.256722360849380f, - 0.070741884410381f, -0.256393194198608f, 0.070545360445976f, -0.256063878536224f, - 0.070349089801311f, -0.255734413862228f, 0.070153072476387f, -0.255404800176620f, - 0.069957308471203f, -0.255075037479401f, 0.069761790335178f, -0.254745125770569f, - 0.069566532969475f, -0.254415065050125f, 0.069371521472931f, -0.254084855318069f, - 0.069176770746708f, -0.253754496574402f, 0.068982265889645f, -0.253423988819122f, - 0.068788021802902f, -0.253093332052231f, 0.068594031035900f, -0.252762526273727f, - 0.068400286138058f, -0.252431541681290f, 0.068206802010536f, -0.252100437879562f, - 0.068013571202755f, -0.251769185066223f, 0.067820593714714f, -0.251437783241272f, - 0.067627869546413f, -0.251106232404709f, 0.067435398697853f, -0.250774532556534f, - 0.067243188619614f, -0.250442683696747f, 0.067051224410534f, -0.250110685825348f, - 0.066859520971775f, -0.249778553843498f, 0.066668070852757f, -0.249446272850037f, - 0.066476874053478f, -0.249113827943802f, 0.066285938024521f, -0.248781248927116f, - 0.066095255315304f, -0.248448520898819f, 0.065904818475246f, -0.248115643858910f, - 0.065714649856091f, -0.247782632708550f, 0.065524727106094f, -0.247449472546577f, - 0.065335065126419f, -0.247116148471832f, 0.065145656466484f, -0.246782705187798f, - 0.064956501126289f, -0.246449097990990f, 0.064767606556416f, -0.246115356683731f, - 0.064578965306282f, -0.245781451463699f, 0.064390584826469f, -0.245447427034378f, - 0.064202457666397f, -0.245113238692284f, 0.064014583826065f, -0.244778916239738f, - 0.063826970756054f, -0.244444444775581f, 0.063639611005783f, -0.244109839200974f, - 0.063452512025833f, -0.243775084614754f, 0.063265666365623f, -0.243440181016922f, - 0.063079081475735f, -0.243105143308640f, 0.062892749905586f, -0.242769956588745f, - 0.062706671655178f, -0.242434620857239f, 0.062520854175091f, -0.242099151015282f, - 0.062335297465324f, -0.241763532161713f, 0.062149997800589f, -0.241427779197693f, - 0.061964951455593f, -0.241091892123222f, 0.061780165880919f, -0.240755841135979f, - 0.061595637351274f, -0.240419670939446f, 0.061411365866661f, -0.240083336830139f, - 0.061227355152369f, -0.239746883511543f, 0.061043601483107f, -0.239410281181335f, - 0.060860104858875f, -0.239073529839516f, 0.060676865279675f, -0.238736644387245f, - 0.060493886470795f, -0.238399609923363f, 0.060311164706945f, -0.238062441349030f, - 0.060128703713417f, -0.237725138664246f, 0.059946499764919f, -0.237387686967850f, - 0.059764556586742f, -0.237050101161003f, 0.059582870453596f, -0.236712381243706f, - 0.059401445090771f, -0.236374512314796f, 0.059220276772976f, -0.236036509275436f, - 0.059039369225502f, -0.235698372125626f, 0.058858718723059f, -0.235360085964203f, - 0.058678328990936f, -0.235021665692329f, 0.058498200029135f, -0.234683111310005f, - 0.058318331837654f, -0.234344407916069f, 0.058138720691204f, -0.234005570411682f, - 0.057959370315075f, -0.233666598796844f, 0.057780280709267f, -0.233327493071556f, - 0.057601451873779f, -0.232988253235817f, 0.057422880083323f, -0.232648864388466f, - 0.057244572788477f, -0.232309341430664f, 0.057066522538662f, -0.231969684362412f, - 0.056888736784458f, -0.231629893183708f, 0.056711208075285f, -0.231289967894554f, - 0.056533940136433f, -0.230949893593788f, 0.056356932967901f, -0.230609700083733f, - 0.056180190294981f, -0.230269357562065f, 0.056003704667091f, -0.229928880929947f, - 0.055827483534813f, -0.229588270187378f, 0.055651523172855f, -0.229247525334358f, - 0.055475823581219f, -0.228906646370888f, 0.055300384759903f, -0.228565633296967f, - 0.055125206708908f, -0.228224486112595f, 0.054950293153524f, -0.227883204817772f, - 0.054775636643171f, -0.227541789412498f, 0.054601248353720f, -0.227200239896774f, - 0.054427117109299f, -0.226858556270599f, 0.054253250360489f, -0.226516738533974f, - 0.054079644382000f, -0.226174786686897f, 0.053906302899122f, -0.225832715630531f, - 0.053733222186565f, -0.225490495562553f, 0.053560405969620f, -0.225148141384125f, - 0.053387850522995f, -0.224805667996407f, 0.053215555846691f, -0.224463045597076f, - 0.053043525665998f, -0.224120303988457f, 0.052871759980917f, -0.223777428269386f, - 0.052700258791447f, -0.223434418439865f, 0.052529018372297f, -0.223091274499893f, - 0.052358038723469f, -0.222748011350632f, 0.052187327295542f, -0.222404599189758f, - 0.052016876637936f, -0.222061067819595f, 0.051846686750650f, -0.221717402338982f, - 0.051676765084267f, -0.221373617649078f, 0.051507104188204f, -0.221029683947563f, - 0.051337707787752f, -0.220685631036758f, 0.051168579608202f, -0.220341444015503f, - 0.050999708473682f, -0.219997137784958f, 0.050831105560064f, -0.219652697443962f, - 0.050662767142057f, -0.219308122992516f, 0.050494693219662f, -0.218963414430618f, - 0.050326880067587f, -0.218618586659431f, 0.050159335136414f, -0.218273624777794f, - 0.049992054700851f, -0.217928543686867f, 0.049825038760900f, -0.217583328485489f, - 0.049658283591270f, -0.217237979173660f, 0.049491796642542f, -0.216892510652542f, - 0.049325577914715f, -0.216546908020973f, 0.049159619957209f, -0.216201186180115f, - 0.048993926495314f, -0.215855330228806f, 0.048828501254320f, -0.215509355068207f, - 0.048663340508938f, -0.215163245797157f, 0.048498444259167f, -0.214817002415657f, - 0.048333816230297f, -0.214470639824867f, 0.048169452697039f, -0.214124158024788f, - 0.048005353659391f, -0.213777542114258f, 0.047841522842646f, -0.213430806994438f, - 0.047677956521511f, -0.213083937764168f, 0.047514654695988f, -0.212736949324608f, - 0.047351621091366f, -0.212389841675758f, 0.047188851982355f, -0.212042599916458f, - 0.047026351094246f, -0.211695238947868f, 0.046864114701748f, -0.211347743868828f, - 0.046702146530151f, -0.211000129580498f, 0.046540446579456f, -0.210652396082878f, - 0.046379011124372f, -0.210304543375969f, 0.046217843890190f, -0.209956556558609f, - 0.046056941151619f, -0.209608450531960f, 0.045896306633949f, -0.209260210394859f, - 0.045735940337181f, -0.208911851048470f, 0.045575842261314f, -0.208563387393951f, - 0.045416008681059f, -0.208214774727821f, 0.045256443321705f, -0.207866057753563f, - 0.045097146183252f, -0.207517206668854f, 0.044938117265701f, -0.207168251276016f, - 0.044779352843761f, -0.206819161772728f, 0.044620860368013f, -0.206469938158989f, - 0.044462632387877f, -0.206120610237122f, 0.044304672628641f, -0.205771163105965f, - 0.044146984815598f, -0.205421581864357f, 0.043989561498165f, -0.205071896314621f, - 0.043832406401634f, -0.204722076654434f, 0.043675523251295f, -0.204372137784958f, - 0.043518904596567f, -0.204022079706192f, 0.043362557888031f, -0.203671902418137f, - 0.043206475675106f, -0.203321605920792f, 0.043050665408373f, -0.202971190214157f, - 0.042895123362541f, -0.202620655298233f, 0.042739849537611f, -0.202270001173019f, - 0.042584843933582f, -0.201919227838516f, 0.042430106550455f, -0.201568335294724f, - 0.042275641113520f, -0.201217323541641f, 0.042121443897486f, -0.200866192579269f, - 0.041967518627644f, -0.200514942407608f, 0.041813857853413f, -0.200163587927818f, - 0.041660469025373f, -0.199812099337578f, 0.041507352143526f, -0.199460506439209f, - 0.041354499757290f, -0.199108779430389f, 0.041201923042536f, -0.198756948113441f, - 0.041049610823393f, -0.198404997587204f, 0.040897574275732f, -0.198052927851677f, - 0.040745802223682f, -0.197700738906860f, 0.040594302117825f, -0.197348430752754f, - 0.040443073958158f, -0.196996018290520f, 0.040292114019394f, -0.196643486618996f, - 0.040141426026821f, -0.196290835738182f, 0.039991009980440f, -0.195938065648079f, - 0.039840862154961f, -0.195585191249847f, 0.039690986275673f, -0.195232197642326f, - 0.039541378617287f, -0.194879084825516f, 0.039392042905092f, -0.194525867700577f, - 0.039242979139090f, -0.194172516465187f, 0.039094187319279f, -0.193819075822830f, - 0.038945667445660f, -0.193465501070023f, 0.038797415792942f, -0.193111822009087f, - 0.038649436086416f, -0.192758023738861f, 0.038501728326082f, -0.192404121160507f, - 0.038354292511940f, -0.192050099372864f, 0.038207128643990f, -0.191695958375931f, - 0.038060232996941f, -0.191341713070869f, 0.037913613021374f, -0.190987363457680f, - 0.037767261266708f, -0.190632879734039f, 0.037621185183525f, -0.190278306603432f, - 0.037475381046534f, -0.189923599362373f, 0.037329845130444f, -0.189568802714348f, - 0.037184584885836f, -0.189213871955872f, 0.037039596587420f, -0.188858851790428f, - 0.036894880235195f, -0.188503712415695f, 0.036750435829163f, -0.188148453831673f, - 0.036606263369322f, -0.187793090939522f, 0.036462362855673f, -0.187437608838081f, - 0.036318738013506f, -0.187082037329674f, 0.036175385117531f, -0.186726331710815f, - 0.036032304167747f, -0.186370536684990f, 0.035889495164156f, -0.186014622449875f, - 0.035746958106756f, -0.185658603906631f, 0.035604696720839f, -0.185302466154099f, - 0.035462711006403f, -0.184946224093437f, 0.035320993512869f, -0.184589877724648f, - 0.035179551690817f, -0.184233412146568f, 0.035038381814957f, -0.183876842260361f, - 0.034897487610579f, -0.183520168066025f, 0.034756865352392f, -0.183163389563560f, - 0.034616518765688f, -0.182806491851807f, 0.034476444125175f, -0.182449504733086f, - 0.034336645156145f, -0.182092398405075f, 0.034197118133307f, -0.181735187768936f, - 0.034057866781950f, -0.181377857923508f, 0.033918887376785f, -0.181020438671112f, - 0.033780183643103f, -0.180662900209427f, 0.033641755580902f, -0.180305257439613f, - 0.033503599464893f, -0.179947525262833f, 0.033365719020367f, -0.179589673876762f, - 0.033228114247322f, -0.179231703281403f, 0.033090781420469f, -0.178873643279076f, - 0.032953724265099f, -0.178515478968620f, 0.032816942781210f, -0.178157210350037f, - 0.032680433243513f, -0.177798837423325f, 0.032544203102589f, -0.177440345287323f, - 0.032408244907856f, -0.177081763744354f, 0.032272562384605f, -0.176723077893257f, - 0.032137155532837f, -0.176364272832870f, 0.032002024352551f, -0.176005378365517f, - 0.031867165118456f, -0.175646379590034f, 0.031732585281134f, -0.175287276506424f, - 0.031598277390003f, -0.174928069114685f, 0.031464248895645f, -0.174568757414818f, - 0.031330492347479f, -0.174209341406822f, 0.031197015196085f, -0.173849821090698f, - 0.031063811853528f, -0.173490211367607f, 0.030930884182453f, -0.173130482435226f, - 0.030798232182860f, -0.172770664095879f, 0.030665857717395f, -0.172410741448402f, - 0.030533758923411f, -0.172050714492798f, 0.030401935800910f, -0.171690583229065f, - 0.030270388349891f, -0.171330362558365f, 0.030139118432999f, -0.170970037579536f, - 0.030008124187589f, -0.170609608292580f, 0.029877405613661f, -0.170249074697495f, - 0.029746964573860f, -0.169888436794281f, 0.029616801068187f, -0.169527709484100f, - 0.029486913233995f, -0.169166877865791f, 0.029357301071286f, -0.168805956840515f, - 0.029227968305349f, -0.168444931507111f, 0.029098909348249f, -0.168083801865578f, - 0.028970129787922f, -0.167722567915916f, 0.028841627761722f, -0.167361244559288f, - 0.028713401407003f, -0.166999831795692f, 0.028585452586412f, -0.166638299822807f, - 0.028457781299949f, -0.166276678442955f, 0.028330387547612f, -0.165914967656136f, - 0.028203271329403f, -0.165553152561188f, 0.028076432645321f, -0.165191248059273f, - 0.027949871495366f, -0.164829224348068f, 0.027823587879539f, -0.164467126131058f, - 0.027697581797838f, -0.164104923605919f, 0.027571853250265f, -0.163742616772652f, - 0.027446404099464f, -0.163380220532417f, 0.027321230620146f, -0.163017734885216f, - 0.027196336537600f, -0.162655144929886f, 0.027071721851826f, -0.162292465567589f, - 0.026947384700179f, -0.161929681897163f, 0.026823325082660f, -0.161566808819771f, - 0.026699542999268f, -0.161203846335411f, 0.026576040312648f, -0.160840779542923f, - 0.026452817022800f, -0.160477623343468f, 0.026329871267080f, -0.160114362835884f, - 0.026207204908133f, -0.159751012921333f, 0.026084816083312f, -0.159387573599815f, - 0.025962706655264f, -0.159024044871330f, 0.025840876623988f, -0.158660411834717f, - 0.025719324126840f, -0.158296689391136f, 0.025598052889109f, -0.157932877540588f, - 0.025477059185505f, -0.157568961381912f, 0.025356344878674f, -0.157204970717430f, - 0.025235909968615f, -0.156840875744820f, 0.025115754455328f, -0.156476691365242f, - 0.024995878338814f, -0.156112402677536f, 0.024876279756427f, -0.155748039484024f, - 0.024756962433457f, -0.155383571982384f, 0.024637924507260f, -0.155019029974937f, - 0.024519165977836f, -0.154654383659363f, 0.024400688707829f, -0.154289647936821f, - 0.024282488971949f, -0.153924822807312f, 0.024164570495486f, -0.153559908270836f, - 0.024046931415796f, -0.153194904327393f, 0.023929571732879f, -0.152829796075821f, - 0.023812493309379f, -0.152464613318443f, 0.023695694282651f, -0.152099341154099f, - 0.023579176515341f, -0.151733979582787f, 0.023462938144803f, -0.151368513703346f, - 0.023346979171038f, -0.151002973318100f, 0.023231301456690f, -0.150637343525887f, - 0.023115905001760f, -0.150271624326706f, 0.023000787943602f, -0.149905815720558f, - 0.022885952144861f, -0.149539917707443f, 0.022771397605538f, -0.149173930287361f, - 0.022657122462988f, -0.148807853460312f, 0.022543128579855f, -0.148441687226295f, - 0.022429415956140f, -0.148075446486473f, 0.022315984591842f, -0.147709101438522f, - 0.022202832624316f, -0.147342681884766f, 0.022089963778853f, -0.146976172924042f, - 0.021977374330163f, -0.146609574556351f, 0.021865066140890f, -0.146242901682854f, - 0.021753041073680f, -0.145876124501228f, 0.021641295403242f, -0.145509272813797f, - 0.021529832854867f, -0.145142331719399f, 0.021418649703264f, -0.144775316119194f, - 0.021307749673724f, -0.144408211112022f, 0.021197130903602f, -0.144041016697884f, - 0.021086793392897f, -0.143673732876778f, 0.020976737141609f, -0.143306359648705f, - 0.020866964012384f, -0.142938911914825f, 0.020757472142577f, -0.142571389675140f, - 0.020648263394833f, -0.142203763127327f, 0.020539334043860f, -0.141836062073708f, - 0.020430689677596f, -0.141468286514282f, 0.020322324708104f, -0.141100421547890f, - 0.020214242860675f, -0.140732467174530f, 0.020106444135308f, -0.140364438295364f, - 0.019998926669359f, -0.139996320009232f, 0.019891692325473f, -0.139628127217293f, - 0.019784741103649f, -0.139259845018387f, 0.019678071141243f, -0.138891488313675f, - 0.019571684300900f, -0.138523042201996f, 0.019465578719974f, -0.138154521584511f, - 0.019359756261110f, -0.137785911560059f, 0.019254218786955f, -0.137417227029800f, - 0.019148962572217f, -0.137048453092575f, 0.019043987616897f, -0.136679604649544f, - 0.018939297646284f, -0.136310681700706f, 0.018834890797734f, -0.135941669344902f, - 0.018730765208602f, -0.135572582483292f, 0.018626924604177f, -0.135203406214714f, - 0.018523367121816f, -0.134834155440331f, 0.018420090898871f, -0.134464830160141f, - 0.018317099660635f, -0.134095430374146f, 0.018214391544461f, -0.133725941181183f, - 0.018111966550350f, -0.133356377482414f, 0.018009826540947f, -0.132986739277840f, - 0.017907967790961f, -0.132617011666298f, 0.017806394025683f, -0.132247209548950f, - 0.017705103382468f, -0.131877332925797f, 0.017604095861316f, -0.131507381796837f, - 0.017503373324871f, -0.131137356162071f, 0.017402933910489f, -0.130767241120338f, - 0.017302779480815f, -0.130397051572800f, 0.017202908173203f, -0.130026802420616f, - 0.017103319987655f, -0.129656463861465f, 0.017004016786814f, -0.129286035895348f, - 0.016904998570681f, -0.128915548324585f, 0.016806263476610f, -0.128544986248016f, - 0.016707813367248f, -0.128174334764481f, 0.016609646379948f, -0.127803623676300f, - 0.016511764377356f, -0.127432823181152f, 0.016414167359471f, -0.127061963081360f, - 0.016316853463650f, -0.126691013574600f, 0.016219824552536f, -0.126320004463196f, - 0.016123080626130f, -0.125948905944824f, 0.016026621684432f, -0.125577747821808f, - 0.015930447727442f, -0.125206500291824f, 0.015834558755159f, -0.124835193157196f, - 0.015738952904940f, -0.124463804066181f, 0.015643632039428f, -0.124092340469360f, - 0.015548598021269f, -0.123720809817314f, 0.015453847125173f, -0.123349204659462f, - 0.015359382145107f, -0.122977524995804f, 0.015265202149749f, -0.122605770826340f, - 0.015171307139099f, -0.122233949601650f, 0.015077698044479f, -0.121862053871155f, - 0.014984373003244f, -0.121490091085434f, 0.014891333878040f, -0.121118053793907f, - 0.014798580668867f, -0.120745941996574f, 0.014706112444401f, -0.120373763144016f, - 0.014613929204643f, -0.120001509785652f, 0.014522032812238f, -0.119629189372063f, - 0.014430420473218f, -0.119256794452667f, 0.014339094981551f, -0.118884332478046f, - 0.014248054474592f, -0.118511803448200f, 0.014157299883664f, -0.118139199912548f, - 0.014066831208766f, -0.117766529321671f, 0.013976648449898f, -0.117393791675568f, - 0.013886751607060f, -0.117020979523659f, 0.013797140680254f, -0.116648100316525f, - 0.013707815669477f, -0.116275154054165f, 0.013618776574731f, -0.115902140736580f, - 0.013530024327338f, -0.115529052913189f, 0.013441557064652f, -0.115155905485153f, - 0.013353376649320f, -0.114782683551311f, 0.013265483081341f, -0.114409394562244f, - 0.013177875429392f, -0.114036038517952f, 0.013090553693473f, -0.113662622869015f, - 0.013003518804908f, -0.113289132714272f, 0.012916770763695f, -0.112915575504303f, - 0.012830308638513f, -0.112541958689690f, 0.012744133360684f, -0.112168267369270f, - 0.012658244930208f, -0.111794516444206f, 0.012572642415762f, -0.111420698463917f, - 0.012487327679992f, -0.111046813428402f, 0.012402298860252f, -0.110672861337662f, - 0.012317557819188f, -0.110298842191696f, 0.012233102694154f, -0.109924763441086f, - 0.012148935347795f, -0.109550617635250f, 0.012065053917468f, -0.109176412224770f, - 0.011981460265815f, -0.108802139759064f, 0.011898153461516f, -0.108427800238132f, - 0.011815134435892f, -0.108053401112556f, 0.011732402257621f, -0.107678934931755f, - 0.011649956926703f, -0.107304409146309f, 0.011567799374461f, -0.106929816305637f, - 0.011485928669572f, -0.106555156409740f, 0.011404345743358f, -0.106180444359779f, - 0.011323049664497f, -0.105805665254593f, 0.011242041364312f, -0.105430819094181f, - 0.011161320842803f, -0.105055920779705f, 0.011080888099968f, -0.104680955410004f, - 0.011000742204487f, -0.104305922985077f, 0.010920885019004f, -0.103930838406086f, - 0.010841314680874f, -0.103555686771870f, 0.010762032121420f, -0.103180475533009f, - 0.010683037340641f, -0.102805204689503f, 0.010604331269860f, -0.102429874241352f, - 0.010525912046432f, -0.102054484188557f, 0.010447781533003f, -0.101679034531116f, - 0.010369938798249f, -0.101303517818451f, 0.010292383842170f, -0.100927948951721f, - 0.010215117596090f, -0.100552320480347f, 0.010138138197362f, -0.100176624953747f, - 0.010061448439956f, -0.099800877273083f, 0.009985045529902f, -0.099425069987774f, - 0.009908932261169f, -0.099049203097820f, 0.009833106771111f, -0.098673284053802f, - 0.009757569059730f, -0.098297297954559f, 0.009682320058346f, -0.097921259701252f, - 0.009607359766960f, -0.097545161843300f, 0.009532688185573f, -0.097169004380703f, - 0.009458304382861f, -0.096792794764042f, 0.009384209290147f, -0.096416525542736f, - 0.009310402907431f, -0.096040196716785f, 0.009236886166036f, -0.095663815736771f, - 0.009163657203317f, -0.095287375152111f, 0.009090716950595f, -0.094910882413387f, - 0.009018065407872f, -0.094534330070019f, 0.008945702575147f, -0.094157725572586f, - 0.008873629383743f, -0.093781061470509f, 0.008801844902337f, -0.093404345214367f, - 0.008730349130929f, -0.093027576804161f, 0.008659142069519f, -0.092650748789310f, - 0.008588224649429f, -0.092273868620396f, 0.008517595939338f, -0.091896936297417f, - 0.008447255939245f, -0.091519944369793f, 0.008377205580473f, -0.091142900288105f, - 0.008307444863021f, -0.090765804052353f, 0.008237972855568f, -0.090388655662537f, - 0.008168790489435f, -0.090011447668076f, 0.008099896833301f, -0.089634194970131f, - 0.008031292818487f, -0.089256882667542f, 0.007962978444993f, -0.088879525661469f, - 0.007894953712821f, -0.088502109050751f, 0.007827218621969f, -0.088124647736549f, - 0.007759772241116f, -0.087747126817703f, 0.007692615967244f, -0.087369553744793f, - 0.007625748869032f, -0.086991935968399f, 0.007559171877801f, -0.086614266037941f, - 0.007492884527892f, -0.086236543953419f, 0.007426886819303f, -0.085858769714832f, - 0.007361178752035f, -0.085480943322182f, 0.007295760791749f, -0.085103072226048f, - 0.007230632472783f, -0.084725148975849f, 0.007165793795139f, -0.084347173571587f, - 0.007101245224476f, -0.083969146013260f, 0.007036986760795f, -0.083591073751450f, - 0.006973018404096f, -0.083212949335575f, 0.006909339688718f, -0.082834780216217f, - 0.006845951545984f, -0.082456558942795f, 0.006782853044569f, -0.082078292965889f, - 0.006720044650137f, -0.081699974834919f, 0.006657526828349f, -0.081321612000465f, - 0.006595299113542f, -0.080943197011948f, 0.006533361505717f, -0.080564737319946f, - 0.006471714470536f, -0.080186225473881f, 0.006410357542336f, -0.079807676374912f, - 0.006349290721118f, -0.079429075121880f, 0.006288514938205f, -0.079050421714783f, - 0.006228029262275f, -0.078671731054783f, 0.006167833693326f, -0.078292988240719f, - 0.006107929162681f, -0.077914200723171f, 0.006048315204680f, -0.077535368502140f, - 0.005988991353661f, -0.077156484127045f, 0.005929958540946f, -0.076777562499046f, - 0.005871216300875f, -0.076398596167564f, 0.005812764633447f, -0.076019577682018f, - 0.005754603538662f, -0.075640521943569f, 0.005696733482182f, -0.075261414051056f, - 0.005639153998345f, -0.074882268905640f, 0.005581865552813f, -0.074503071606159f, - 0.005524867679924f, -0.074123837053776f, 0.005468160845339f, -0.073744557797909f, - 0.005411745049059f, -0.073365233838558f, 0.005355620291084f, -0.072985872626305f, - 0.005299786105752f, -0.072606459259987f, 0.005244242958724f, -0.072227008640766f, - 0.005188991315663f, -0.071847513318062f, 0.005134030245245f, -0.071467980742455f, - 0.005079360678792f, -0.071088403463364f, 0.005024982150644f, -0.070708781480789f, - 0.004970894660801f, -0.070329122245312f, 0.004917098674923f, -0.069949418306351f, - 0.004863593727350f, -0.069569669663906f, 0.004810380283743f, -0.069189883768559f, - 0.004757457878441f, -0.068810060620308f, 0.004704826977104f, -0.068430192768574f, - 0.004652487114072f, -0.068050287663937f, 0.004600439220667f, -0.067670337855816f, - 0.004548682365566f, -0.067290350794792f, 0.004497217014432f, -0.066910326480865f, - 0.004446043167263f, -0.066530264914036f, 0.004395160824060f, -0.066150158643723f, - 0.004344569984823f, -0.065770015120506f, 0.004294271115214f, -0.065389834344387f, - 0.004244263283908f, -0.065009608864784f, 0.004194547422230f, -0.064629353582859f, - 0.004145123064518f, -0.064249053597450f, 0.004095990676433f, -0.063868723809719f, - 0.004047149792314f, -0.063488349318504f, 0.003998600877821f, -0.063107937574387f, - 0.003950343467295f, -0.062727488577366f, 0.003902378026396f, -0.062347009778023f, - 0.003854704322293f, -0.061966486275196f, 0.003807322587818f, -0.061585929244757f, - 0.003760232590139f, -0.061205338686705f, 0.003713434794918f, -0.060824707150459f, - 0.003666928736493f, -0.060444042086601f, 0.003620714880526f, -0.060063343495131f, - 0.003574792761356f, -0.059682607650757f, 0.003529162844643f, -0.059301838278770f, - 0.003483824897557f, -0.058921031653881f, 0.003438779152930f, -0.058540191501379f, - 0.003394025377929f, -0.058159314095974f, 0.003349563805386f, -0.057778406888247f, - 0.003305394435301f, -0.057397462427616f, 0.003261517267674f, -0.057016488164663f, - 0.003217932302505f, -0.056635476648808f, 0.003174639539793f, -0.056254431605339f, - 0.003131638979539f, -0.055873356759548f, 0.003088930854574f, -0.055492244660854f, - 0.003046514932066f, -0.055111102759838f, 0.003004391444847f, -0.054729927331209f, - 0.002962560392916f, -0.054348722100258f, 0.002921021543443f, -0.053967483341694f, - 0.002879775362089f, -0.053586211055517f, 0.002838821383193f, -0.053204908967018f, - 0.002798160072416f, -0.052823577076197f, 0.002757790964097f, -0.052442211657763f, - 0.002717714523897f, -0.052060816437006f, 0.002677930751815f, -0.051679391413927f, - 0.002638439415023f, -0.051297932863235f, 0.002599240746349f, -0.050916448235512f, - 0.002560334512964f, -0.050534930080175f, 0.002521721180528f, -0.050153385847807f, - 0.002483400283381f, -0.049771808087826f, 0.002445372054353f, -0.049390204250813f, - 0.002407636726275f, -0.049008570611477f, 0.002370193833485f, -0.048626907169819f, - 0.002333043841645f, -0.048245213925838f, 0.002296186750755f, -0.047863494604826f, - 0.002259622327983f, -0.047481749206781f, 0.002223350573331f, -0.047099970281124f, - 0.002187371719629f, -0.046718169003725f, 0.002151685766876f, -0.046336337924004f, - 0.002116292715073f, -0.045954477041960f, 0.002081192564219f, -0.045572593808174f, - 0.002046385314316f, -0.045190680772066f, 0.002011870965362f, -0.044808741658926f, - 0.001977649517357f, -0.044426776468754f, 0.001943721086718f, -0.044044785201550f, - 0.001910085673444f, -0.043662767857313f, 0.001876743277535f, -0.043280724436045f, - 0.001843693898991f, -0.042898654937744f, 0.001810937537812f, -0.042516563087702f, - 0.001778474310413f, -0.042134445160627f, 0.001746304216795f, -0.041752301156521f, - 0.001714427140541f, -0.041370131075382f, 0.001682843198068f, -0.040987938642502f, - 0.001651552389376f, -0.040605723857880f, 0.001620554830879f, -0.040223482996225f, - 0.001589850406162f, -0.039841219782829f, 0.001559439115226f, -0.039458930492401f, - 0.001529321074486f, -0.039076622575521f, 0.001499496400356f, -0.038694288581610f, - 0.001469964860007f, -0.038311932235956f, 0.001440726569854f, -0.037929553538561f, - 0.001411781646311f, -0.037547148764133f, 0.001383129972965f, -0.037164725363255f, - 0.001354771666229f, -0.036782283335924f, 0.001326706726104f, -0.036399815231562f, - 0.001298935036175f, -0.036017324775457f, 0.001271456829272f, -0.035634815692902f, - 0.001244271872565f, -0.035252287983894f, 0.001217380515300f, -0.034869734197855f, - 0.001190782408230f, -0.034487165510654f, 0.001164477784187f, -0.034104570746422f, - 0.001138466643170f, -0.033721961081028f, 0.001112748985179f, -0.033339329063892f, - 0.001087324810214f, -0.032956674695015f, 0.001062194118276f, -0.032574005424976f, - 0.001037356909364f, -0.032191313803196f, 0.001012813183479f, -0.031808607280254f, - 0.000988563057035f, -0.031425878405571f, 0.000964606530033f, -0.031043132767081f, - 0.000940943544265f, -0.030660368502140f, 0.000917574157938f, -0.030277585610747f, - 0.000894498312846f, -0.029894785955548f, 0.000871716125403f, -0.029511967673898f, - 0.000849227537401f, -0.029129132628441f, 0.000827032607049f, -0.028746278956532f, - 0.000805131276138f, -0.028363410383463f, 0.000783523661084f, -0.027980525046587f, - 0.000762209703680f, -0.027597622945905f, 0.000741189462133f, -0.027214704081416f, - 0.000720462878235f, -0.026831768453121f, 0.000700030010194f, -0.026448817923665f, - 0.000679890916217f, -0.026065852493048f, 0.000660045538098f, -0.025682870298624f, - 0.000640493875835f, -0.025299875065684f, 0.000621235987637f, -0.024916863068938f, - 0.000602271873504f, -0.024533838033676f, 0.000583601591643f, -0.024150796234608f, - 0.000565225025639f, -0.023767741397023f, 0.000547142291907f, -0.023384673520923f, - 0.000529353390448f, -0.023001590743661f, 0.000511858321261f, -0.022618494927883f, - 0.000494657084346f, -0.022235386073589f, 0.000477749679703f, -0.021852264180779f, - 0.000461136136437f, -0.021469129249454f, 0.000444816454547f, -0.021085981279612f, - 0.000428790634032f, -0.020702820271254f, 0.000413058703998f, -0.020319648087025f, - 0.000397620693548f, -0.019936462864280f, 0.000382476573577f, -0.019553268328309f, - 0.000367626344087f, -0.019170060753822f, 0.000353070063284f, -0.018786842003465f, - 0.000338807702065f, -0.018403612077236f, 0.000324839289533f, -0.018020370975137f, - 0.000311164796585f, -0.017637118697166f, 0.000297784281429f, -0.017253857105970f, - 0.000284697714960f, -0.016870586201549f, 0.000271905126283f, -0.016487304121256f, - 0.000259406515397f, -0.016104012727737f, 0.000247201882303f, -0.015720712020993f, - 0.000235291256104f, -0.015337402001023f, 0.000223674607696f, -0.014954082667828f, - 0.000212351980736f, -0.014570754021406f, 0.000201323360670f, -0.014187417924404f, - 0.000190588747500f, -0.013804072514176f, 0.000180148170330f, -0.013420719653368f, - 0.000170001629158f, -0.013037359341979f, 0.000160149123985f, -0.012653990648687f, - 0.000150590654812f, -0.012270614504814f, 0.000141326236189f, -0.011887230910361f, - 0.000132355868118f, -0.011503840796649f, 0.000123679565149f, -0.011120444163680f, - 0.000115297327284f, -0.010737040080130f, 0.000107209154521f, -0.010353630408645f, - 0.000099415054137f, -0.009970214217901f, 0.000091915040684f, -0.009586792439222f, - 0.000084709099610f, -0.009203365072608f, 0.000077797252743f, -0.008819932118058f, - 0.000071179500083f, -0.008436493575573f, 0.000064855834353f, -0.008053051307797f, - 0.000058826273744f, -0.007669602986425f, 0.000053090810979f, -0.007286150939763f, - 0.000047649456974f, -0.006902694236487f, 0.000042502211727f, -0.006519233807921f, - 0.000037649078877f, -0.006135769188404f, 0.000033090062061f, -0.005752300843596f, - 0.000028825161280f, -0.005368829704821f, 0.000024854381991f, -0.004985354840755f, - 0.000021177724193f, -0.004601877182722f, 0.000017795191525f, -0.004218397196382f, - 0.000014706784896f, -0.003834914416075f, 0.000011912506125f, -0.003451429307461f, - 0.000009412358850f, -0.003067942336202f, 0.000007206342616f, -0.002684453502297f, - 0.000005294459243f, -0.002300963038579f, 0.000003676709639f, -0.001917471294291f, - 0.000002353095169f, -0.001533978385851f, 0.000001323616516f, -0.001150484546088f, - 0.000000588274133f, -0.000766990066040f, 0.000000147068562f, -0.000383495149435f, - 0.000000000000000f, -0.000000000000023f, 0.000000147068562f, 0.000383495149435f, - 0.000000588274133f, 0.000766990066040f, 0.000001323616516f, 0.001150484546088f, - 0.000002353095169f, 0.001533978385851f, 0.000003676709639f, 0.001917471294291f, - 0.000005294459243f, 0.002300963038579f, 0.000007206342616f, 0.002684453502297f, - 0.000009412358850f, 0.003067942336202f, 0.000011912506125f, 0.003451429307461f, - 0.000014706784896f, 0.003834914416075f, 0.000017795191525f, 0.004218397196382f, - 0.000021177724193f, 0.004601877182722f, 0.000024854381991f, 0.004985354840755f, - 0.000028825161280f, 0.005368829704821f, 0.000033090062061f, 0.005752300843596f, - 0.000037649078877f, 0.006135769188404f, 0.000042502211727f, 0.006519233807921f, - 0.000047649456974f, 0.006902694236487f, 0.000053090810979f, 0.007286150939763f, - 0.000058826273744f, 0.007669602986425f, 0.000064855834353f, 0.008053051307797f, - 0.000071179500083f, 0.008436493575573f, 0.000077797252743f, 0.008819932118058f, - 0.000084709099610f, 0.009203365072608f, 0.000091915040684f, 0.009586792439222f, - 0.000099415054137f, 0.009970214217901f, 0.000107209154521f, 0.010353630408645f, - 0.000115297327284f, 0.010737040080130f, 0.000123679565149f, 0.011120444163680f, - 0.000132355868118f, 0.011503840796649f, 0.000141326236189f, 0.011887230910361f, - 0.000150590654812f, 0.012270614504814f, 0.000160149123985f, 0.012653990648687f, - 0.000170001629158f, 0.013037359341979f, 0.000180148170330f, 0.013420719653368f, - 0.000190588747500f, 0.013804072514176f, 0.000201323360670f, 0.014187417924404f, - 0.000212351980736f, 0.014570754021406f, 0.000223674607696f, 0.014954082667828f, - 0.000235291256104f, 0.015337402001023f, 0.000247201882303f, 0.015720712020993f, - 0.000259406515397f, 0.016104012727737f, 0.000271905126283f, 0.016487304121256f, - 0.000284697714960f, 0.016870586201549f, 0.000297784281429f, 0.017253857105970f, - 0.000311164796585f, 0.017637118697166f, 0.000324839289533f, 0.018020370975137f, - 0.000338807702065f, 0.018403612077236f, 0.000353070063284f, 0.018786842003465f, - 0.000367626344087f, 0.019170060753822f, 0.000382476573577f, 0.019553268328309f, - 0.000397620693548f, 0.019936462864280f, 0.000413058703998f, 0.020319648087025f, - 0.000428790634032f, 0.020702820271254f, 0.000444816454547f, 0.021085981279612f, - 0.000461136136437f, 0.021469129249454f, 0.000477749679703f, 0.021852264180779f, - 0.000494657084346f, 0.022235386073589f, 0.000511858321261f, 0.022618494927883f, - 0.000529353390448f, 0.023001590743661f, 0.000547142291907f, 0.023384673520923f, - 0.000565225025639f, 0.023767741397023f, 0.000583601591643f, 0.024150796234608f, - 0.000602271873504f, 0.024533838033676f, 0.000621235987637f, 0.024916863068938f, - 0.000640493875835f, 0.025299875065684f, 0.000660045538098f, 0.025682870298624f, - 0.000679890916217f, 0.026065852493048f, 0.000700030010194f, 0.026448817923665f, - 0.000720462878235f, 0.026831768453121f, 0.000741189462133f, 0.027214704081416f, - 0.000762209703680f, 0.027597622945905f, 0.000783523661084f, 0.027980525046587f, - 0.000805131276138f, 0.028363410383463f, 0.000827032607049f, 0.028746278956532f, - 0.000849227537401f, 0.029129132628441f, 0.000871716125403f, 0.029511967673898f, - 0.000894498312846f, 0.029894785955548f, 0.000917574157938f, 0.030277585610747f, - 0.000940943544265f, 0.030660368502140f, 0.000964606530033f, 0.031043132767081f, - 0.000988563057035f, 0.031425878405571f, 0.001012813183479f, 0.031808607280254f, - 0.001037356909364f, 0.032191313803196f, 0.001062194118276f, 0.032574005424976f, - 0.001087324810214f, 0.032956674695015f, 0.001112748985179f, 0.033339329063892f, - 0.001138466643170f, 0.033721961081028f, 0.001164477784187f, 0.034104570746422f, - 0.001190782408230f, 0.034487165510654f, 0.001217380515300f, 0.034869734197855f, - 0.001244271872565f, 0.035252287983894f, 0.001271456829272f, 0.035634815692902f, - 0.001298935036175f, 0.036017324775457f, 0.001326706726104f, 0.036399815231562f, - 0.001354771666229f, 0.036782283335924f, 0.001383129972965f, 0.037164725363255f, - 0.001411781646311f, 0.037547148764133f, 0.001440726569854f, 0.037929553538561f, - 0.001469964860007f, 0.038311932235956f, 0.001499496400356f, 0.038694288581610f, - 0.001529321074486f, 0.039076622575521f, 0.001559439115226f, 0.039458930492401f, - 0.001589850406162f, 0.039841219782829f, 0.001620554830879f, 0.040223482996225f, - 0.001651552389376f, 0.040605723857880f, 0.001682843198068f, 0.040987938642502f, - 0.001714427140541f, 0.041370131075382f, 0.001746304216795f, 0.041752301156521f, - 0.001778474310413f, 0.042134445160627f, 0.001810937537812f, 0.042516563087702f, - 0.001843693898991f, 0.042898654937744f, 0.001876743277535f, 0.043280724436045f, - 0.001910085673444f, 0.043662767857313f, 0.001943721086718f, 0.044044785201550f, - 0.001977649517357f, 0.044426776468754f, 0.002011870965362f, 0.044808741658926f, - 0.002046385314316f, 0.045190680772066f, 0.002081192564219f, 0.045572593808174f, - 0.002116292715073f, 0.045954477041960f, 0.002151685766876f, 0.046336337924004f, - 0.002187371719629f, 0.046718169003725f, 0.002223350573331f, 0.047099970281124f, - 0.002259622327983f, 0.047481749206781f, 0.002296186750755f, 0.047863494604826f, - 0.002333043841645f, 0.048245213925838f, 0.002370193833485f, 0.048626907169819f, - 0.002407636726275f, 0.049008570611477f, 0.002445372054353f, 0.049390204250813f, - 0.002483400283381f, 0.049771808087826f, 0.002521721180528f, 0.050153385847807f, - 0.002560334512964f, 0.050534930080175f, 0.002599240746349f, 0.050916448235512f, - 0.002638439415023f, 0.051297932863235f, 0.002677930751815f, 0.051679391413927f, - 0.002717714523897f, 0.052060816437006f, 0.002757790964097f, 0.052442211657763f, - 0.002798160072416f, 0.052823577076197f, 0.002838821383193f, 0.053204908967018f, - 0.002879775362089f, 0.053586211055517f, 0.002921021543443f, 0.053967483341694f, - 0.002962560392916f, 0.054348722100258f, 0.003004391444847f, 0.054729927331209f, - 0.003046514932066f, 0.055111102759838f, 0.003088930854574f, 0.055492244660854f, - 0.003131638979539f, 0.055873356759548f, 0.003174639539793f, 0.056254431605339f, - 0.003217932302505f, 0.056635476648808f, 0.003261517267674f, 0.057016488164663f, - 0.003305394435301f, 0.057397462427616f, 0.003349563805386f, 0.057778406888247f, - 0.003394025377929f, 0.058159314095974f, 0.003438779152930f, 0.058540191501379f, - 0.003483824897557f, 0.058921031653881f, 0.003529162844643f, 0.059301838278770f, - 0.003574792761356f, 0.059682607650757f, 0.003620714880526f, 0.060063343495131f, - 0.003666928736493f, 0.060444042086601f, 0.003713434794918f, 0.060824707150459f, - 0.003760232590139f, 0.061205338686705f, 0.003807322587818f, 0.061585929244757f, - 0.003854704322293f, 0.061966486275196f, 0.003902378026396f, 0.062347009778023f, - 0.003950343467295f, 0.062727488577366f, 0.003998600877821f, 0.063107937574387f, - 0.004047149792314f, 0.063488349318504f, 0.004095990676433f, 0.063868723809719f, - 0.004145123064518f, 0.064249053597450f, 0.004194547422230f, 0.064629353582859f, - 0.004244263283908f, 0.065009608864784f, 0.004294271115214f, 0.065389834344387f, - 0.004344569984823f, 0.065770015120506f, 0.004395160824060f, 0.066150158643723f, - 0.004446043167263f, 0.066530264914036f, 0.004497217014432f, 0.066910326480865f, - 0.004548682365566f, 0.067290350794792f, 0.004600439220667f, 0.067670337855816f, - 0.004652487114072f, 0.068050287663937f, 0.004704826977104f, 0.068430192768574f, - 0.004757457878441f, 0.068810060620308f, 0.004810380283743f, 0.069189883768559f, - 0.004863593727350f, 0.069569669663906f, 0.004917098674923f, 0.069949418306351f, - 0.004970894660801f, 0.070329122245312f, 0.005024982150644f, 0.070708781480789f, - 0.005079360678792f, 0.071088403463364f, 0.005134030245245f, 0.071467980742455f, - 0.005188991315663f, 0.071847513318062f, 0.005244242958724f, 0.072227008640766f, - 0.005299786105752f, 0.072606459259987f, 0.005355620291084f, 0.072985872626305f, - 0.005411745049059f, 0.073365233838558f, 0.005468160845339f, 0.073744557797909f, - 0.005524867679924f, 0.074123837053776f, 0.005581865552813f, 0.074503071606159f, - 0.005639153998345f, 0.074882268905640f, 0.005696733482182f, 0.075261414051056f, - 0.005754603538662f, 0.075640521943569f, 0.005812764633447f, 0.076019577682018f, - 0.005871216300875f, 0.076398596167564f, 0.005929958540946f, 0.076777562499046f, - 0.005988991353661f, 0.077156484127045f, 0.006048315204680f, 0.077535368502140f, - 0.006107929162681f, 0.077914200723171f, 0.006167833693326f, 0.078292988240719f, - 0.006228029262275f, 0.078671731054783f, 0.006288514938205f, 0.079050421714783f, - 0.006349290721118f, 0.079429075121880f, 0.006410357542336f, 0.079807676374912f, - 0.006471714470536f, 0.080186225473881f, 0.006533361505717f, 0.080564737319946f, - 0.006595299113542f, 0.080943197011948f, 0.006657526828349f, 0.081321612000465f, - 0.006720044650137f, 0.081699974834919f, 0.006782853044569f, 0.082078292965889f, - 0.006845951545984f, 0.082456558942795f, 0.006909339688718f, 0.082834780216217f, - 0.006973018404096f, 0.083212949335575f, 0.007036986760795f, 0.083591073751450f, - 0.007101245224476f, 0.083969146013260f, 0.007165793795139f, 0.084347173571587f, - 0.007230632472783f, 0.084725148975849f, 0.007295760791749f, 0.085103072226048f, - 0.007361178752035f, 0.085480943322182f, 0.007426886819303f, 0.085858769714832f, - 0.007492884527892f, 0.086236543953419f, 0.007559171877801f, 0.086614266037941f, - 0.007625748869032f, 0.086991935968399f, 0.007692615967244f, 0.087369553744793f, - 0.007759772241116f, 0.087747126817703f, 0.007827218621969f, 0.088124647736549f, - 0.007894953712821f, 0.088502109050751f, 0.007962978444993f, 0.088879525661469f, - 0.008031292818487f, 0.089256882667542f, 0.008099896833301f, 0.089634194970131f, - 0.008168790489435f, 0.090011447668076f, 0.008237972855568f, 0.090388655662537f, - 0.008307444863021f, 0.090765804052353f, 0.008377205580473f, 0.091142900288105f, - 0.008447255939245f, 0.091519944369793f, 0.008517595939338f, 0.091896936297417f, - 0.008588224649429f, 0.092273868620396f, 0.008659142069519f, 0.092650748789310f, - 0.008730349130929f, 0.093027576804161f, 0.008801844902337f, 0.093404345214367f, - 0.008873629383743f, 0.093781061470509f, 0.008945702575147f, 0.094157725572586f, - 0.009018065407872f, 0.094534330070019f, 0.009090716950595f, 0.094910882413387f, - 0.009163657203317f, 0.095287375152111f, 0.009236886166036f, 0.095663815736771f, - 0.009310402907431f, 0.096040196716785f, 0.009384209290147f, 0.096416525542736f, - 0.009458304382861f, 0.096792794764042f, 0.009532688185573f, 0.097169004380703f, - 0.009607359766960f, 0.097545161843300f, 0.009682320058346f, 0.097921259701252f, - 0.009757569059730f, 0.098297297954559f, 0.009833106771111f, 0.098673284053802f, - 0.009908932261169f, 0.099049203097820f, 0.009985045529902f, 0.099425069987774f, - 0.010061448439956f, 0.099800877273083f, 0.010138138197362f, 0.100176624953747f, - 0.010215117596090f, 0.100552320480347f, 0.010292383842170f, 0.100927948951721f, - 0.010369938798249f, 0.101303517818451f, 0.010447781533003f, 0.101679034531116f, - 0.010525912046432f, 0.102054484188557f, 0.010604331269860f, 0.102429874241352f, - 0.010683037340641f, 0.102805204689503f, 0.010762032121420f, 0.103180475533009f, - 0.010841314680874f, 0.103555686771870f, 0.010920885019004f, 0.103930838406086f, - 0.011000742204487f, 0.104305922985077f, 0.011080888099968f, 0.104680955410004f, - 0.011161320842803f, 0.105055920779705f, 0.011242041364312f, 0.105430819094181f, - 0.011323049664497f, 0.105805665254593f, 0.011404345743358f, 0.106180444359779f, - 0.011485928669572f, 0.106555156409740f, 0.011567799374461f, 0.106929816305637f, - 0.011649956926703f, 0.107304409146309f, 0.011732402257621f, 0.107678934931755f, - 0.011815134435892f, 0.108053401112556f, 0.011898153461516f, 0.108427800238132f, - 0.011981460265815f, 0.108802139759064f, 0.012065053917468f, 0.109176412224770f, - 0.012148935347795f, 0.109550617635250f, 0.012233102694154f, 0.109924763441086f, - 0.012317557819188f, 0.110298842191696f, 0.012402298860252f, 0.110672861337662f, - 0.012487327679992f, 0.111046813428402f, 0.012572642415762f, 0.111420698463917f, - 0.012658244930208f, 0.111794516444206f, 0.012744133360684f, 0.112168267369270f, - 0.012830308638513f, 0.112541958689690f, 0.012916770763695f, 0.112915575504303f, - 0.013003518804908f, 0.113289132714272f, 0.013090553693473f, 0.113662622869015f, - 0.013177875429392f, 0.114036038517952f, 0.013265483081341f, 0.114409394562244f, - 0.013353376649320f, 0.114782683551311f, 0.013441557064652f, 0.115155905485153f, - 0.013530024327338f, 0.115529052913189f, 0.013618776574731f, 0.115902140736580f, - 0.013707815669477f, 0.116275154054165f, 0.013797140680254f, 0.116648100316525f, - 0.013886751607060f, 0.117020979523659f, 0.013976648449898f, 0.117393791675568f, - 0.014066831208766f, 0.117766529321671f, 0.014157299883664f, 0.118139199912548f, - 0.014248054474592f, 0.118511803448200f, 0.014339094981551f, 0.118884332478046f, - 0.014430420473218f, 0.119256794452667f, 0.014522032812238f, 0.119629189372063f, - 0.014613929204643f, 0.120001509785652f, 0.014706112444401f, 0.120373763144016f, - 0.014798580668867f, 0.120745941996574f, 0.014891333878040f, 0.121118053793907f, - 0.014984373003244f, 0.121490091085434f, 0.015077698044479f, 0.121862053871155f, - 0.015171307139099f, 0.122233949601650f, 0.015265202149749f, 0.122605770826340f, - 0.015359382145107f, 0.122977524995804f, 0.015453847125173f, 0.123349204659462f, - 0.015548598021269f, 0.123720809817314f, 0.015643632039428f, 0.124092340469360f, - 0.015738952904940f, 0.124463804066181f, 0.015834558755159f, 0.124835193157196f, - 0.015930447727442f, 0.125206500291824f, 0.016026621684432f, 0.125577747821808f, - 0.016123080626130f, 0.125948905944824f, 0.016219824552536f, 0.126320004463196f, - 0.016316853463650f, 0.126691013574600f, 0.016414167359471f, 0.127061963081360f, - 0.016511764377356f, 0.127432823181152f, 0.016609646379948f, 0.127803623676300f, - 0.016707813367248f, 0.128174334764481f, 0.016806263476610f, 0.128544986248016f, - 0.016904998570681f, 0.128915548324585f, 0.017004016786814f, 0.129286035895348f, - 0.017103319987655f, 0.129656463861465f, 0.017202908173203f, 0.130026802420616f, - 0.017302779480815f, 0.130397051572800f, 0.017402933910489f, 0.130767241120338f, - 0.017503373324871f, 0.131137356162071f, 0.017604095861316f, 0.131507381796837f, - 0.017705103382468f, 0.131877332925797f, 0.017806394025683f, 0.132247209548950f, - 0.017907967790961f, 0.132617011666298f, 0.018009826540947f, 0.132986739277840f, - 0.018111966550350f, 0.133356377482414f, 0.018214391544461f, 0.133725941181183f, - 0.018317099660635f, 0.134095430374146f, 0.018420090898871f, 0.134464830160141f, - 0.018523367121816f, 0.134834155440331f, 0.018626924604177f, 0.135203406214714f, - 0.018730765208602f, 0.135572582483292f, 0.018834890797734f, 0.135941669344902f, - 0.018939297646284f, 0.136310681700706f, 0.019043987616897f, 0.136679604649544f, - 0.019148962572217f, 0.137048453092575f, 0.019254218786955f, 0.137417227029800f, - 0.019359756261110f, 0.137785911560059f, 0.019465578719974f, 0.138154521584511f, - 0.019571684300900f, 0.138523042201996f, 0.019678071141243f, 0.138891488313675f, - 0.019784741103649f, 0.139259845018387f, 0.019891692325473f, 0.139628127217293f, - 0.019998926669359f, 0.139996320009232f, 0.020106444135308f, 0.140364438295364f, - 0.020214242860675f, 0.140732467174530f, 0.020322324708104f, 0.141100421547890f, - 0.020430689677596f, 0.141468286514282f, 0.020539334043860f, 0.141836062073708f, - 0.020648263394833f, 0.142203763127327f, 0.020757472142577f, 0.142571389675140f, - 0.020866964012384f, 0.142938911914825f, 0.020976737141609f, 0.143306359648705f, - 0.021086793392897f, 0.143673732876778f, 0.021197130903602f, 0.144041016697884f, - 0.021307749673724f, 0.144408211112022f, 0.021418649703264f, 0.144775316119194f, - 0.021529832854867f, 0.145142331719399f, 0.021641295403242f, 0.145509272813797f, - 0.021753041073680f, 0.145876124501228f, 0.021865066140890f, 0.146242901682854f, - 0.021977374330163f, 0.146609574556351f, 0.022089963778853f, 0.146976172924042f, - 0.022202832624316f, 0.147342681884766f, 0.022315984591842f, 0.147709101438522f, - 0.022429415956140f, 0.148075446486473f, 0.022543128579855f, 0.148441687226295f, - 0.022657122462988f, 0.148807853460312f, 0.022771397605538f, 0.149173930287361f, - 0.022885952144861f, 0.149539917707443f, 0.023000787943602f, 0.149905815720558f, - 0.023115905001760f, 0.150271624326706f, 0.023231301456690f, 0.150637343525887f, - 0.023346979171038f, 0.151002973318100f, 0.023462938144803f, 0.151368513703346f, - 0.023579176515341f, 0.151733979582787f, 0.023695694282651f, 0.152099341154099f, - 0.023812493309379f, 0.152464613318443f, 0.023929571732879f, 0.152829796075821f, - 0.024046931415796f, 0.153194904327393f, 0.024164570495486f, 0.153559908270836f, - 0.024282488971949f, 0.153924822807312f, 0.024400688707829f, 0.154289647936821f, - 0.024519165977836f, 0.154654383659363f, 0.024637924507260f, 0.155019029974937f, - 0.024756962433457f, 0.155383571982384f, 0.024876279756427f, 0.155748039484024f, - 0.024995878338814f, 0.156112402677536f, 0.025115754455328f, 0.156476691365242f, - 0.025235909968615f, 0.156840875744820f, 0.025356344878674f, 0.157204970717430f, - 0.025477059185505f, 0.157568961381912f, 0.025598052889109f, 0.157932877540588f, - 0.025719324126840f, 0.158296689391136f, 0.025840876623988f, 0.158660411834717f, - 0.025962706655264f, 0.159024044871330f, 0.026084816083312f, 0.159387573599815f, - 0.026207204908133f, 0.159751012921333f, 0.026329871267080f, 0.160114362835884f, - 0.026452817022800f, 0.160477623343468f, 0.026576040312648f, 0.160840779542923f, - 0.026699542999268f, 0.161203846335411f, 0.026823325082660f, 0.161566808819771f, - 0.026947384700179f, 0.161929681897163f, 0.027071721851826f, 0.162292465567589f, - 0.027196336537600f, 0.162655144929886f, 0.027321230620146f, 0.163017734885216f, - 0.027446404099464f, 0.163380220532417f, 0.027571853250265f, 0.163742616772652f, - 0.027697581797838f, 0.164104923605919f, 0.027823587879539f, 0.164467126131058f, - 0.027949871495366f, 0.164829224348068f, 0.028076432645321f, 0.165191248059273f, - 0.028203271329403f, 0.165553152561188f, 0.028330387547612f, 0.165914967656136f, - 0.028457781299949f, 0.166276678442955f, 0.028585452586412f, 0.166638299822807f, - 0.028713401407003f, 0.166999831795692f, 0.028841627761722f, 0.167361244559288f, - 0.028970129787922f, 0.167722567915916f, 0.029098909348249f, 0.168083801865578f, - 0.029227968305349f, 0.168444931507111f, 0.029357301071286f, 0.168805956840515f, - 0.029486913233995f, 0.169166877865791f, 0.029616801068187f, 0.169527709484100f, - 0.029746964573860f, 0.169888436794281f, 0.029877405613661f, 0.170249074697495f, - 0.030008124187589f, 0.170609608292580f, 0.030139118432999f, 0.170970037579536f, - 0.030270388349891f, 0.171330362558365f, 0.030401935800910f, 0.171690583229065f, - 0.030533758923411f, 0.172050714492798f, 0.030665857717395f, 0.172410741448402f, - 0.030798232182860f, 0.172770664095879f, 0.030930884182453f, 0.173130482435226f, - 0.031063811853528f, 0.173490211367607f, 0.031197015196085f, 0.173849821090698f, - 0.031330492347479f, 0.174209341406822f, 0.031464248895645f, 0.174568757414818f, - 0.031598277390003f, 0.174928069114685f, 0.031732585281134f, 0.175287276506424f, - 0.031867165118456f, 0.175646379590034f, 0.032002024352551f, 0.176005378365517f, - 0.032137155532837f, 0.176364272832870f, 0.032272562384605f, 0.176723077893257f, - 0.032408244907856f, 0.177081763744354f, 0.032544203102589f, 0.177440345287323f, - 0.032680433243513f, 0.177798837423325f, 0.032816942781210f, 0.178157210350037f, - 0.032953724265099f, 0.178515478968620f, 0.033090781420469f, 0.178873643279076f, - 0.033228114247322f, 0.179231703281403f, 0.033365719020367f, 0.179589673876762f, - 0.033503599464893f, 0.179947525262833f, 0.033641755580902f, 0.180305257439613f, - 0.033780183643103f, 0.180662900209427f, 0.033918887376785f, 0.181020438671112f, - 0.034057866781950f, 0.181377857923508f, 0.034197118133307f, 0.181735187768936f, - 0.034336645156145f, 0.182092398405075f, 0.034476444125175f, 0.182449504733086f, - 0.034616518765688f, 0.182806491851807f, 0.034756865352392f, 0.183163389563560f, - 0.034897487610579f, 0.183520168066025f, 0.035038381814957f, 0.183876842260361f, - 0.035179551690817f, 0.184233412146568f, 0.035320993512869f, 0.184589877724648f, - 0.035462711006403f, 0.184946224093437f, 0.035604696720839f, 0.185302466154099f, - 0.035746958106756f, 0.185658603906631f, 0.035889495164156f, 0.186014622449875f, - 0.036032304167747f, 0.186370536684990f, 0.036175385117531f, 0.186726331710815f, - 0.036318738013506f, 0.187082037329674f, 0.036462362855673f, 0.187437608838081f, - 0.036606263369322f, 0.187793090939522f, 0.036750435829163f, 0.188148453831673f, - 0.036894880235195f, 0.188503712415695f, 0.037039596587420f, 0.188858851790428f, - 0.037184584885836f, 0.189213871955872f, 0.037329845130444f, 0.189568802714348f, - 0.037475381046534f, 0.189923599362373f, 0.037621185183525f, 0.190278306603432f, - 0.037767261266708f, 0.190632879734039f, 0.037913613021374f, 0.190987363457680f, - 0.038060232996941f, 0.191341713070869f, 0.038207128643990f, 0.191695958375931f, - 0.038354292511940f, 0.192050099372864f, 0.038501728326082f, 0.192404121160507f, - 0.038649436086416f, 0.192758023738861f, 0.038797415792942f, 0.193111822009087f, - 0.038945667445660f, 0.193465501070023f, 0.039094187319279f, 0.193819075822830f, - 0.039242979139090f, 0.194172516465187f, 0.039392042905092f, 0.194525867700577f, - 0.039541378617287f, 0.194879084825516f, 0.039690986275673f, 0.195232197642326f, - 0.039840862154961f, 0.195585191249847f, 0.039991009980440f, 0.195938065648079f, - 0.040141426026821f, 0.196290835738182f, 0.040292114019394f, 0.196643486618996f, - 0.040443073958158f, 0.196996018290520f, 0.040594302117825f, 0.197348430752754f, - 0.040745802223682f, 0.197700738906860f, 0.040897574275732f, 0.198052927851677f, - 0.041049610823393f, 0.198404997587204f, 0.041201923042536f, 0.198756948113441f, - 0.041354499757290f, 0.199108779430389f, 0.041507352143526f, 0.199460506439209f, - 0.041660469025373f, 0.199812099337578f, 0.041813857853413f, 0.200163587927818f, - 0.041967518627644f, 0.200514942407608f, 0.042121443897486f, 0.200866192579269f, - 0.042275641113520f, 0.201217323541641f, 0.042430106550455f, 0.201568335294724f, - 0.042584843933582f, 0.201919227838516f, 0.042739849537611f, 0.202270001173019f, - 0.042895123362541f, 0.202620655298233f, 0.043050665408373f, 0.202971190214157f, - 0.043206475675106f, 0.203321605920792f, 0.043362557888031f, 0.203671902418137f, - 0.043518904596567f, 0.204022079706192f, 0.043675523251295f, 0.204372137784958f, - 0.043832406401634f, 0.204722076654434f, 0.043989561498165f, 0.205071896314621f, - 0.044146984815598f, 0.205421581864357f, 0.044304672628641f, 0.205771163105965f, - 0.044462632387877f, 0.206120610237122f, 0.044620860368013f, 0.206469938158989f, - 0.044779352843761f, 0.206819161772728f, 0.044938117265701f, 0.207168251276016f, - 0.045097146183252f, 0.207517206668854f, 0.045256443321705f, 0.207866057753563f, - 0.045416008681059f, 0.208214774727821f, 0.045575842261314f, 0.208563387393951f, - 0.045735940337181f, 0.208911851048470f, 0.045896306633949f, 0.209260210394859f, - 0.046056941151619f, 0.209608450531960f, 0.046217843890190f, 0.209956556558609f, - 0.046379011124372f, 0.210304543375969f, 0.046540446579456f, 0.210652396082878f, - 0.046702146530151f, 0.211000129580498f, 0.046864114701748f, 0.211347743868828f, - 0.047026351094246f, 0.211695238947868f, 0.047188851982355f, 0.212042599916458f, - 0.047351621091366f, 0.212389841675758f, 0.047514654695988f, 0.212736949324608f, - 0.047677956521511f, 0.213083937764168f, 0.047841522842646f, 0.213430806994438f, - 0.048005353659391f, 0.213777542114258f, 0.048169452697039f, 0.214124158024788f, - 0.048333816230297f, 0.214470639824867f, 0.048498444259167f, 0.214817002415657f, - 0.048663340508938f, 0.215163245797157f, 0.048828501254320f, 0.215509355068207f, - 0.048993926495314f, 0.215855330228806f, 0.049159619957209f, 0.216201186180115f, - 0.049325577914715f, 0.216546908020973f, 0.049491796642542f, 0.216892510652542f, - 0.049658283591270f, 0.217237979173660f, 0.049825038760900f, 0.217583328485489f, - 0.049992054700851f, 0.217928543686867f, 0.050159335136414f, 0.218273624777794f, - 0.050326880067587f, 0.218618586659431f, 0.050494693219662f, 0.218963414430618f, - 0.050662767142057f, 0.219308122992516f, 0.050831105560064f, 0.219652697443962f, - 0.050999708473682f, 0.219997137784958f, 0.051168579608202f, 0.220341444015503f, - 0.051337707787752f, 0.220685631036758f, 0.051507104188204f, 0.221029683947563f, - 0.051676765084267f, 0.221373617649078f, 0.051846686750650f, 0.221717402338982f, - 0.052016876637936f, 0.222061067819595f, 0.052187327295542f, 0.222404599189758f, - 0.052358038723469f, 0.222748011350632f, 0.052529018372297f, 0.223091274499893f, - 0.052700258791447f, 0.223434418439865f, 0.052871759980917f, 0.223777428269386f, - 0.053043525665998f, 0.224120303988457f, 0.053215555846691f, 0.224463045597076f, - 0.053387850522995f, 0.224805667996407f, 0.053560405969620f, 0.225148141384125f, - 0.053733222186565f, 0.225490495562553f, 0.053906302899122f, 0.225832715630531f, - 0.054079644382000f, 0.226174786686897f, 0.054253250360489f, 0.226516738533974f, - 0.054427117109299f, 0.226858556270599f, 0.054601248353720f, 0.227200239896774f, - 0.054775636643171f, 0.227541789412498f, 0.054950293153524f, 0.227883204817772f, - 0.055125206708908f, 0.228224486112595f, 0.055300384759903f, 0.228565633296967f, - 0.055475823581219f, 0.228906646370888f, 0.055651523172855f, 0.229247525334358f, - 0.055827483534813f, 0.229588270187378f, 0.056003704667091f, 0.229928880929947f, - 0.056180190294981f, 0.230269357562065f, 0.056356932967901f, 0.230609700083733f, - 0.056533940136433f, 0.230949893593788f, 0.056711208075285f, 0.231289967894554f, - 0.056888736784458f, 0.231629893183708f, 0.057066522538662f, 0.231969684362412f, - 0.057244572788477f, 0.232309341430664f, 0.057422880083323f, 0.232648864388466f, - 0.057601451873779f, 0.232988253235817f, 0.057780280709267f, 0.233327493071556f, - 0.057959370315075f, 0.233666598796844f, 0.058138720691204f, 0.234005570411682f, - 0.058318331837654f, 0.234344407916069f, 0.058498200029135f, 0.234683111310005f, - 0.058678328990936f, 0.235021665692329f, 0.058858718723059f, 0.235360085964203f, - 0.059039369225502f, 0.235698372125626f, 0.059220276772976f, 0.236036509275436f, - 0.059401445090771f, 0.236374512314796f, 0.059582870453596f, 0.236712381243706f, - 0.059764556586742f, 0.237050101161003f, 0.059946499764919f, 0.237387686967850f, - 0.060128703713417f, 0.237725138664246f, 0.060311164706945f, 0.238062441349030f, - 0.060493886470795f, 0.238399609923363f, 0.060676865279675f, 0.238736644387245f, - 0.060860104858875f, 0.239073529839516f, 0.061043601483107f, 0.239410281181335f, - 0.061227355152369f, 0.239746883511543f, 0.061411365866661f, 0.240083336830139f, - 0.061595637351274f, 0.240419670939446f, 0.061780165880919f, 0.240755841135979f, - 0.061964951455593f, 0.241091892123222f, 0.062149997800589f, 0.241427779197693f, - 0.062335297465324f, 0.241763532161713f, 0.062520854175091f, 0.242099151015282f, - 0.062706671655178f, 0.242434620857239f, 0.062892749905586f, 0.242769956588745f, - 0.063079081475735f, 0.243105143308640f, 0.063265666365623f, 0.243440181016922f, - 0.063452512025833f, 0.243775084614754f, 0.063639611005783f, 0.244109839200974f, - 0.063826970756054f, 0.244444444775581f, 0.064014583826065f, 0.244778916239738f, - 0.064202457666397f, 0.245113238692284f, 0.064390584826469f, 0.245447427034378f, - 0.064578965306282f, 0.245781451463699f, 0.064767606556416f, 0.246115356683731f, - 0.064956501126289f, 0.246449097990990f, 0.065145656466484f, 0.246782705187798f, - 0.065335065126419f, 0.247116148471832f, 0.065524727106094f, 0.247449472546577f, - 0.065714649856091f, 0.247782632708550f, 0.065904818475246f, 0.248115643858910f, - 0.066095255315304f, 0.248448520898819f, 0.066285938024521f, 0.248781248927116f, - 0.066476874053478f, 0.249113827943802f, 0.066668070852757f, 0.249446272850037f, - 0.066859520971775f, 0.249778553843498f, 0.067051224410534f, 0.250110685825348f, - 0.067243188619614f, 0.250442683696747f, 0.067435398697853f, 0.250774532556534f, - 0.067627869546413f, 0.251106232404709f, 0.067820593714714f, 0.251437783241272f, - 0.068013571202755f, 0.251769185066223f, 0.068206802010536f, 0.252100437879562f, - 0.068400286138058f, 0.252431541681290f, 0.068594031035900f, 0.252762526273727f, - 0.068788021802902f, 0.253093332052231f, 0.068982265889645f, 0.253423988819122f, - 0.069176770746708f, 0.253754496574402f, 0.069371521472931f, 0.254084855318069f, - 0.069566532969475f, 0.254415065050125f, 0.069761790335178f, 0.254745125770569f, - 0.069957308471203f, 0.255075037479401f, 0.070153072476387f, 0.255404800176620f, - 0.070349089801311f, 0.255734413862228f, 0.070545360445976f, 0.256063878536224f, - 0.070741884410381f, 0.256393194198608f, 0.070938661694527f, 0.256722360849380f, - 0.071135692298412f, 0.257051378488541f, 0.071332976222038f, 0.257380217313766f, - 0.071530513465405f, 0.257708936929703f, 0.071728296577930f, 0.258037507534027f, - 0.071926333010197f, 0.258365899324417f, 0.072124622762203f, 0.258694142103195f, - 0.072323165833950f, 0.259022265672684f, 0.072521962225437f, 0.259350210428238f, - 0.072721004486084f, 0.259678006172180f, 0.072920300066471f, 0.260005623102188f, - 0.073119848966599f, 0.260333120822906f, 0.073319651186466f, 0.260660469532013f, - 0.073519699275494f, 0.260987639427185f, 0.073720000684261f, 0.261314690113068f, - 0.073920547962189f, 0.261641561985016f, 0.074121348559856f, 0.261968284845352f, - 0.074322402477264f, 0.262294828891754f, 0.074523709714413f, 0.262621253728867f, - 0.074725262820721f, 0.262947499752045f, 0.074927061796188f, 0.263273626565933f, - 0.075129114091396f, 0.263599574565887f, 0.075331419706345f, 0.263925373554230f, - 0.075533971190453f, 0.264250993728638f, 0.075736775994301f, 0.264576494693756f, - 0.075939826667309f, 0.264901816844940f, 0.076143130660057f, 0.265226989984512f, - 0.076346680521965f, 0.265552014112473f, 0.076550483703613f, 0.265876859426498f, - 0.076754532754421f, 0.266201555728912f, 0.076958827674389f, 0.266526103019714f, - 0.077163375914097f, 0.266850501298904f, 0.077368170022964f, 0.267174720764160f, - 0.077573217451572f, 0.267498821020126f, 0.077778510749340f, 0.267822742462158f, - 0.077984049916267f, 0.268146485090256f, 0.078189842402935f, 0.268470078706741f, - 0.078395880758762f, 0.268793523311615f, 0.078602164983749f, 0.269116818904877f, - 0.078808702528477f, 0.269439965486526f, 0.079015478491783f, 0.269762933254242f, - 0.079222507774830f, 0.270085722208023f, 0.079429790377617f, 0.270408391952515f, - 0.079637311398983f, 0.270730882883072f, 0.079845085740089f, 0.271053224802017f, - 0.080053105950356f, 0.271375387907028f, 0.080261372029781f, 0.271697402000427f, - 0.080469883978367f, 0.272019267082214f, 0.080678641796112f, 0.272340953350067f, - 0.080887645483017f, 0.272662490606308f, 0.081096902489662f, 0.272983878850937f, - 0.081306397914886f, 0.273305088281631f, 0.081516146659851f, 0.273626148700714f, - 0.081726133823395f, 0.273947030305862f, 0.081936374306679f, 0.274267762899399f, - 0.082146860659122f, 0.274588316679001f, 0.082357585430145f, 0.274908751249313f, - 0.082568563520908f, 0.275228977203369f, 0.082779780030251f, 0.275549083948135f, - 0.082991249859333f, 0.275868982076645f, 0.083202958106995f, 0.276188760995865f, - 0.083414919674397f, 0.276508361101151f, 0.083627119660378f, 0.276827782392502f, - 0.083839565515518f, 0.277147054672241f, 0.084052257239819f, 0.277466177940369f, - 0.084265194833279f, 0.277785122394562f, 0.084478378295898f, 0.278103888034821f, - 0.084691800177097f, 0.278422504663467f, 0.084905467927456f, 0.278740972280502f, - 0.085119381546974f, 0.279059261083603f, 0.085333541035652f, 0.279377400875092f, - 0.085547938942909f, 0.279695361852646f, 0.085762590169907f, 0.280013144016266f, - 0.085977479815483f, 0.280330777168274f, 0.086192607879639f, 0.280648261308670f, - 0.086407989263535f, 0.280965566635132f, 0.086623609066010f, 0.281282693147659f, - 0.086839467287064f, 0.281599670648575f, 0.087055571377277f, 0.281916469335556f, - 0.087271921336651f, 0.282233119010925f, 0.087488517165184f, 0.282549589872360f, - 0.087705351412296f, 0.282865911722183f, 0.087922424077988f, 0.283182054758072f, - 0.088139742612839f, 0.283498018980026f, 0.088357307016850f, 0.283813834190369f, - 0.088575109839439f, 0.284129470586777f, 0.088793158531189f, 0.284444957971573f, - 0.089011445641518f, 0.284760266542435f, 0.089229971170425f, 0.285075396299362f, - 0.089448742568493f, 0.285390377044678f, 0.089667752385139f, 0.285705178976059f, - 0.089887008070946f, 0.286019802093506f, 0.090106502175331f, 0.286334276199341f, - 0.090326242148876f, 0.286648571491241f, 0.090546220541000f, 0.286962717771530f, - 0.090766437351704f, 0.287276685237885f, 0.090986892580986f, 0.287590473890305f, - 0.091207593679428f, 0.287904083728790f, 0.091428533196449f, 0.288217544555664f, - 0.091649711132050f, 0.288530826568604f, 0.091871134936810f, 0.288843959569931f, - 0.092092797160149f, 0.289156883955002f, 0.092314697802067f, 0.289469659328461f, - 0.092536836862564f, 0.289782285690308f, 0.092759214341640f, 0.290094703435898f, - 0.092981837689877f, 0.290406972169876f, 0.093204692006111f, 0.290719062089920f, - 0.093427792191505f, 0.291031002998352f, 0.093651130795479f, 0.291342735290527f, - 0.093874707818031f, 0.291654318571091f, 0.094098523259163f, 0.291965723037720f, - 0.094322577118874f, 0.292276978492737f, 0.094546869397163f, 0.292588025331497f, - 0.094771400094032f, 0.292898923158646f, 0.094996169209480f, 0.293209642171860f, - 0.095221176743507f, 0.293520182371140f, 0.095446422696114f, 0.293830573558807f, - 0.095671907067299f, 0.294140785932541f, 0.095897629857063f, 0.294450789690018f, - 0.096123591065407f, 0.294760644435883f, 0.096349790692329f, 0.295070350170136f, - 0.096576221287251f, 0.295379847288132f, 0.096802897751331f, 0.295689195394516f, - 0.097029805183411f, 0.295998334884644f, 0.097256951034069f, 0.296307325363159f, - 0.097484335303307f, 0.296616137027740f, 0.097711957991123f, 0.296924799680710f, - 0.097939811646938f, 0.297233253717422f, 0.098167903721333f, 0.297541528940201f, - 0.098396234214306f, 0.297849655151367f, 0.098624803125858f, 0.298157602548599f, - 0.098853603005409f, 0.298465341329575f, 0.099082641303539f, 0.298772931098938f, - 0.099311910569668f, 0.299080342054367f, 0.099541425704956f, 0.299387603998184f, - 0.099771171808243f, 0.299694657325745f, 0.100001148879528f, 0.300001531839371f, - 0.100231364369392f, 0.300308227539063f, 0.100461818277836f, 0.300614774227142f, - 0.100692503154278f, 0.300921112298965f, 0.100923426449299f, 0.301227301359177f, - 0.101154580712318f, 0.301533311605453f, 0.101385973393917f, 0.301839113235474f, - 0.101617597043514f, 0.302144765853882f, 0.101849451661110f, 0.302450239658356f, - 0.102081544697285f, 0.302755534648895f, 0.102313876152039f, 0.303060621023178f, - 0.102546438574791f, 0.303365558385849f, 0.102779231965542f, 0.303670316934586f, - 0.103012263774872f, 0.303974896669388f, 0.103245526552200f, 0.304279297590256f, - 0.103479020297527f, 0.304583519697189f, 0.103712752461433f, 0.304887533187866f, - 0.103946708142757f, 0.305191397666931f, 0.104180909693241f, 0.305495083332062f, - 0.104415334761143f, 0.305798590183258f, 0.104649998247623f, 0.306101888418198f, - 0.104884892702103f, 0.306405037641525f, 0.105120018124580f, 0.306708008050919f, - 0.105355374515057f, 0.307010769844055f, 0.105590961873531f, 0.307313382625580f, - 0.105826787650585f, 0.307615786790848f, 0.106062836945057f, 0.307918041944504f, - 0.106299124658108f, 0.308220088481903f, 0.106535643339157f, 0.308521956205368f, - 0.106772392988205f, 0.308823645114899f, 0.107009373605251f, 0.309125155210495f, - 0.107246585190296f, 0.309426486492157f, 0.107484027743340f, 0.309727638959885f, - 0.107721701264381f, 0.310028612613678f, 0.107959605753422f, 0.310329377651215f, - 0.108197741210461f, 0.310629993677139f, 0.108436107635498f, 0.310930401086807f, - 0.108674705028534f, 0.311230629682541f, 0.108913525938988f, 0.311530679464340f, - 0.109152585268021f, 0.311830550432205f, 0.109391868114471f, 0.312130242586136f, - 0.109631389379501f, 0.312429755926132f, 0.109871134161949f, 0.312729060649872f, - 0.110111102461815f, 0.313028186559677f, 0.110351309180260f, 0.313327133655548f, - 0.110591746866703f, 0.313625901937485f, 0.110832408070564f, 0.313924491405487f, - 0.111073300242424f, 0.314222872257233f, 0.111314415931702f, 0.314521104097366f, - 0.111555770039558f, 0.314819127321243f, 0.111797347664833f, 0.315116971731186f, - 0.112039148807526f, 0.315414607524872f, 0.112281180918217f, 0.315712094306946f, - 0.112523443996906f, 0.316009372472763f, 0.112765938043594f, 0.316306471824646f, - 0.113008655607700f, 0.316603392362595f, 0.113251596689224f, 0.316900104284287f, - 0.113494776189327f, 0.317196637392044f, 0.113738171756268f, 0.317492991685867f, - 0.113981798291206f, 0.317789167165756f, 0.114225655794144f, 0.318085134029388f, - 0.114469736814499f, 0.318380922079086f, 0.114714048802853f, 0.318676531314850f, - 0.114958584308624f, 0.318971961736679f, 0.115203343331814f, 0.319267183542252f, - 0.115448333323002f, 0.319562226533890f, 0.115693546831608f, 0.319857090711594f, - 0.115938983857632f, 0.320151746273041f, 0.116184651851654f, 0.320446223020554f, - 0.116430543363094f, 0.320740520954132f, 0.116676658391953f, 0.321034610271454f, - 0.116923004388809f, 0.321328520774841f, 0.117169573903084f, 0.321622252464294f, - 0.117416366934776f, 0.321915775537491f, 0.117663383483887f, 0.322209119796753f, - 0.117910631000996f, 0.322502255439758f, 0.118158094584942f, 0.322795242071152f, - 0.118405789136887f, 0.323088020086288f, 0.118653707206249f, 0.323380589485168f, - 0.118901848793030f, 0.323672980070114f, 0.119150213897228f, 0.323965191841125f, - 0.119398809969425f, 0.324257194995880f, 0.119647622108459f, 0.324549019336700f, - 0.119896657764912f, 0.324840664863586f, 0.120145916938782f, 0.325132101774216f, - 0.120395407080650f, 0.325423330068588f, 0.120645113289356f, 0.325714409351349f, - 0.120895043015480f, 0.326005280017853f, 0.121145196259022f, 0.326295942068100f, - 0.121395580470562f, 0.326586425304413f, 0.121646173298359f, 0.326876699924469f, - 0.121896997094154f, 0.327166795730591f, 0.122148044407368f, 0.327456712722778f, - 0.122399315237999f, 0.327746421098709f, 0.122650802135468f, 0.328035950660706f, - 0.122902512550354f, 0.328325271606445f, 0.123154446482658f, 0.328614413738251f, - 0.123406603932381f, 0.328903347253799f, 0.123658977448940f, 0.329192101955414f, - 0.123911574482918f, 0.329480648040771f, 0.124164395034313f, 0.329769015312195f, - 0.124417431652546f, 0.330057173967361f, 0.124670691788197f, 0.330345153808594f, - 0.124924175441265f, 0.330632925033569f, 0.125177875161171f, 0.330920487642288f, - 0.125431805849075f, 0.331207901239395f, 0.125685945153236f, 0.331495076417923f, - 0.125940307974815f, 0.331782072782516f, 0.126194894313812f, 0.332068890333176f, - 0.126449704170227f, 0.332355499267578f, 0.126704722642899f, 0.332641899585724f, - 0.126959964632988f, 0.332928121089935f, 0.127215430140495f, 0.333214133977890f, - 0.127471104264259f, 0.333499968051910f, 0.127727001905441f, 0.333785593509674f, - 0.127983123064041f, 0.334071010351181f, 0.128239467740059f, 0.334356248378754f, - 0.128496021032333f, 0.334641307592392f, 0.128752797842026f, 0.334926128387451f, - 0.129009798169136f, 0.335210770368576f, 0.129267007112503f, 0.335495233535767f, - 0.129524439573288f, 0.335779488086700f, 0.129782080650330f, 0.336063534021378f, - 0.130039945244789f, 0.336347371339798f, 0.130298033356667f, 0.336631029844284f, - 0.130556344985962f, 0.336914509534836f, 0.130814850330353f, 0.337197750806808f, - 0.131073594093323f, 0.337480813264847f, 0.131332546472549f, 0.337763696908951f, - 0.131591722369194f, 0.338046342134476f, 0.131851106882095f, 0.338328808546066f, - 0.132110700011253f, 0.338611096143723f, 0.132370531558990f, 0.338893145322800f, - 0.132630556821823f, 0.339175015687943f, 0.132890805602074f, 0.339456677436829f, - 0.133151277899742f, 0.339738160371780f, 0.133411958813667f, 0.340019434690475f, - 0.133672863245010f, 0.340300500392914f, 0.133933976292610f, 0.340581357479095f, - 0.134195312857628f, 0.340862035751343f, 0.134456858038902f, 0.341142505407333f, - 0.134718611836433f, 0.341422766447067f, 0.134980589151382f, 0.341702848672867f, - 0.135242775082588f, 0.341982692480087f, 0.135505184531212f, 0.342262357473373f, - 0.135767802596092f, 0.342541843652725f, 0.136030644178391f, 0.342821091413498f, - 0.136293679475784f, 0.343100160360336f, 0.136556953191757f, 0.343379020690918f, - 0.136820420622826f, 0.343657672405243f, 0.137084111571312f, 0.343936115503311f, - 0.137348011136055f, 0.344214379787445f, 0.137612134218216f, 0.344492435455322f, - 0.137876465916634f, 0.344770282506943f, 0.138141006231308f, 0.345047920942307f, - 0.138405755162239f, 0.345325350761414f, 0.138670727610588f, 0.345602601766586f, - 0.138935908675194f, 0.345879614353180f, 0.139201298356056f, 0.346156448125839f, - 0.139466896653175f, 0.346433073282242f, 0.139732718467712f, 0.346709519624710f, - 0.139998748898506f, 0.346985727548599f, 0.140264987945557f, 0.347261756658554f, - 0.140531435608864f, 0.347537547349930f, 0.140798106789589f, 0.347813159227371f, - 0.141064971685410f, 0.348088562488556f, 0.141332060098648f, 0.348363757133484f, - 0.141599357128143f, 0.348638743162155f, 0.141866862773895f, 0.348913550376892f, - 0.142134591937065f, 0.349188119173050f, 0.142402514815331f, 0.349462509155273f, - 0.142670661211014f, 0.349736660718918f, 0.142939001321793f, 0.350010633468628f, - 0.143207564949989f, 0.350284397602081f, 0.143476337194443f, 0.350557953119278f, - 0.143745318055153f, 0.350831300020218f, 0.144014507532120f, 0.351104438304901f, - 0.144283905625343f, 0.351377367973328f, 0.144553512334824f, 0.351650089025497f, - 0.144823327660561f, 0.351922631263733f, 0.145093351602554f, 0.352194935083389f, - 0.145363584160805f, 0.352467030286789f, 0.145634025335312f, 0.352738946676254f, - 0.145904675126076f, 0.353010624647141f, 0.146175548434258f, 0.353282123804092f, - 0.146446615457535f, 0.353553384542465f, 0.146717891097069f, 0.353824466466904f, - 0.146989375352860f, 0.354095309972763f, 0.147261068224907f, 0.354365974664688f, - 0.147532954812050f, 0.354636400938034f, 0.147805064916611f, 0.354906648397446f, - 0.148077383637428f, 0.355176687240601f, 0.148349896073341f, 0.355446487665176f, - 0.148622632026672f, 0.355716109275818f, 0.148895561695099f, 0.355985492467880f, - 0.149168699979782f, 0.356254696846008f, 0.149442046880722f, 0.356523662805557f, - 0.149715602397919f, 0.356792420148849f, 0.149989366531372f, 0.357060998678207f, - 0.150263324379921f, 0.357329338788986f, 0.150537505745888f, 0.357597470283508f, - 0.150811880826950f, 0.357865422964096f, 0.151086464524269f, 0.358133137226105f, - 0.151361241936684f, 0.358400642871857f, 0.151636242866516f, 0.358667939901352f, - 0.151911437511444f, 0.358935028314590f, 0.152186840772629f, 0.359201908111572f, - 0.152462437748909f, 0.359468549489975f, 0.152738258242607f, 0.359735012054443f, - 0.153014272451401f, 0.360001266002655f, 0.153290495276451f, 0.360267281532288f, - 0.153566911816597f, 0.360533088445663f, 0.153843536973000f, 0.360798716545105f, - 0.154120370745659f, 0.361064106225967f, 0.154397398233414f, 0.361329287290573f, - 0.154674649238586f, 0.361594229936600f, 0.154952079057693f, 0.361858993768692f, - 0.155229732394218f, 0.362123548984528f, 0.155507579445839f, 0.362387865781784f, - 0.155785620212555f, 0.362651973962784f, 0.156063869595528f, 0.362915903329849f, - 0.156342327594757f, 0.363179564476013f, 0.156620979309082f, 0.363443046808243f, - 0.156899839639664f, 0.363706320524216f, 0.157178908586502f, 0.363969355821610f, - 0.157458171248436f, 0.364232182502747f, 0.157737627625465f, 0.364494800567627f, - 0.158017292618752f, 0.364757210016251f, 0.158297166228294f, 0.365019410848618f, - 0.158577233552933f, 0.365281373262405f, 0.158857494592667f, 0.365543156862259f, - 0.159137964248657f, 0.365804702043533f, 0.159418627619743f, 0.366066008806229f, - 0.159699499607086f, 0.366327136754990f, 0.159980565309525f, 0.366588026285172f, - 0.160261839628220f, 0.366848707199097f, 0.160543307662010f, 0.367109179496765f, - 0.160824984312058f, 0.367369443178177f, 0.161106839776039f, 0.367629468441010f, - 0.161388918757439f, 0.367889285087585f, 0.161671176552773f, 0.368148893117905f, - 0.161953642964363f, 0.368408292531967f, 0.162236317992210f, 0.368667453527451f, - 0.162519171833992f, 0.368926405906677f, 0.162802234292030f, 0.369185149669647f, - 0.163085505366325f, 0.369443655014038f, 0.163368955254555f, 0.369701951742172f, - 0.163652613759041f, 0.369960039854050f, 0.163936465978622f, 0.370217919349670f, - 0.164220526814461f, 0.370475560426712f, 0.164504766464233f, 0.370732992887497f, - 0.164789214730263f, 0.370990216732025f, 0.165073871612549f, 0.371247202157974f, - 0.165358707308769f, 0.371503978967667f, 0.165643751621246f, 0.371760547161102f, - 0.165928974747658f, 0.372016876935959f, 0.166214406490326f, 0.372272998094559f, - 0.166500031948090f, 0.372528880834579f, 0.166785866022110f, 0.372784584760666f, - 0.167071878910065f, 0.373040050268173f, 0.167358100414276f, 0.373295277357101f, - 0.167644515633583f, 0.373550295829773f, 0.167931124567986f, 0.373805105686188f, - 0.168217927217484f, 0.374059677124023f, 0.168504923582077f, 0.374314039945602f, - 0.168792113661766f, 0.374568194150925f, 0.169079497456551f, 0.374822109937668f, - 0.169367074966431f, 0.375075817108154f, 0.169654861092567f, 0.375329315662384f, - 0.169942826032639f, 0.375582575798035f, 0.170230999588966f, 0.375835597515106f, - 0.170519351959229f, 0.376088410615921f, 0.170807912945747f, 0.376341015100479f, - 0.171096652746201f, 0.376593410968781f, 0.171385586261749f, 0.376845568418503f, - 0.171674728393555f, 0.377097487449646f, 0.171964049339294f, 0.377349197864532f, - 0.172253578901291f, 0.377600699663162f, 0.172543287277222f, 0.377851963043213f, - 0.172833189368248f, 0.378102988004684f, 0.173123285174370f, 0.378353834152222f, - 0.173413574695587f, 0.378604412078857f, 0.173704057931900f, 0.378854811191559f, - 0.173994734883308f, 0.379104942083359f, 0.174285605549812f, 0.379354894161224f, - 0.174576655030251f, 0.379604607820511f, 0.174867913126946f, 0.379854083061218f, - 0.175159350037575f, 0.380103349685669f, 0.175450980663300f, 0.380352377891541f, - 0.175742805004120f, 0.380601197481155f, 0.176034808158875f, 0.380849778652191f, - 0.176327019929886f, 0.381098151206970f, 0.176619410514832f, 0.381346285343170f, - 0.176911994814873f, 0.381594210863113f, 0.177204772830009f, 0.381841897964478f, - 0.177497729659081f, 0.382089376449585f, 0.177790880203247f, 0.382336616516113f, - 0.178084224462509f, 0.382583618164063f, 0.178377762436867f, 0.382830440998077f, - 0.178671479225159f, 0.383076995611191f, 0.178965389728546f, 0.383323341608047f, - 0.179259493947029f, 0.383569449186325f, 0.179553776979446f, 0.383815348148346f, - 0.179848253726959f, 0.384061008691788f, 0.180142924189568f, 0.384306460618973f, - 0.180437773466110f, 0.384551674127579f, 0.180732816457748f, 0.384796649217606f, - 0.181028053164482f, 0.385041415691376f, 0.181323468685150f, 0.385285943746567f, - 0.181619063019753f, 0.385530263185501f, 0.181914865970612f, 0.385774344205856f, - 0.182210832834244f, 0.386018186807632f, 0.182507008314133f, 0.386261820793152f, - 0.182803362607956f, 0.386505216360092f, 0.183099895715714f, 0.386748403310776f, - 0.183396622538567f, 0.386991351842880f, 0.183693528175354f, 0.387234061956406f, - 0.183990627527237f, 0.387476563453674f, 0.184287920594215f, 0.387718826532364f, - 0.184585392475128f, 0.387960851192474f, 0.184883043169975f, 0.388202667236328f, - 0.185180887579918f, 0.388444244861603f, 0.185478910803795f, 0.388685584068298f, - 0.185777112841606f, 0.388926714658737f, 0.186075508594513f, 0.389167606830597f, - 0.186374098062515f, 0.389408260583878f, 0.186672851443291f, 0.389648675918579f, - 0.186971798539162f, 0.389888882637024f, 0.187270939350128f, 0.390128880739212f, - 0.187570258975029f, 0.390368610620499f, 0.187869757413864f, 0.390608131885529f, - 0.188169434666634f, 0.390847414731979f, 0.188469305634499f, 0.391086459159851f, - 0.188769355416298f, 0.391325294971466f, 0.189069598913193f, 0.391563892364502f, - 0.189370006322861f, 0.391802251338959f, 0.189670607447624f, 0.392040401697159f, - 0.189971387386322f, 0.392278283834457f, 0.190272361040115f, 0.392515957355499f, - 0.190573498606682f, 0.392753422260284f, 0.190874829888344f, 0.392990618944168f, - 0.191176339983940f, 0.393227607011795f, 0.191478043794632f, 0.393464356660843f, - 0.191779911518097f, 0.393700867891312f, 0.192081972956657f, 0.393937170505524f, - 0.192384198307991f, 0.394173204898834f, 0.192686617374420f, 0.394409030675888f, - 0.192989215254784f, 0.394644618034363f, 0.193292006850243f, 0.394879996776581f, - 0.193594962358475f, 0.395115107297897f, 0.193898096680641f, 0.395350009202957f, - 0.194201424717903f, 0.395584672689438f, 0.194504916667938f, 0.395819097757339f, - 0.194808602333069f, 0.396053284406662f, 0.195112451910973f, 0.396287262439728f, - 0.195416495203972f, 0.396520972251892f, 0.195720717310905f, 0.396754473447800f, - 0.196025103330612f, 0.396987736225128f, 0.196329683065414f, 0.397220760583878f, - 0.196634441614151f, 0.397453576326370f, 0.196939364075661f, 0.397686123847961f, - 0.197244480252266f, 0.397918462753296f, 0.197549775242805f, 0.398150533437729f, - 0.197855234146118f, 0.398382395505905f, 0.198160871863365f, 0.398614019155502f, - 0.198466703295708f, 0.398845434188843f, 0.198772698640823f, 0.399076581001282f, - 0.199078872799873f, 0.399307489395142f, 0.199385225772858f, 0.399538189172745f, - 0.199691757559776f, 0.399768620729446f, 0.199998468160629f, 0.399998843669891f, - 0.200305357575417f, 0.400228828191757f, 0.200612410902977f, 0.400458574295044f, - 0.200919643044472f, 0.400688081979752f, 0.201227053999901f, 0.400917351245880f, - 0.201534643769264f, 0.401146411895752f, 0.201842412352562f, 0.401375204324722f, - 0.202150344848633f, 0.401603758335114f, 0.202458456158638f, 0.401832103729248f, - 0.202766746282578f, 0.402060180902481f, 0.203075215220451f, 0.402288049459457f, - 0.203383848071098f, 0.402515679597855f, 0.203692659735680f, 0.402743041515350f, - 0.204001650214195f, 0.402970194816589f, 0.204310819506645f, 0.403197109699249f, - 0.204620152711868f, 0.403423786163330f, 0.204929664731026f, 0.403650224208832f, - 0.205239340662956f, 0.403876423835754f, 0.205549195408821f, 0.404102355241776f, - 0.205859228968620f, 0.404328078031540f, 0.206169426441193f, 0.404553562402725f, - 0.206479802727699f, 0.404778808355331f, 0.206790357828140f, 0.405003815889359f, - 0.207101076841354f, 0.405228585004807f, 0.207411959767342f, 0.405453115701675f, - 0.207723021507263f, 0.405677437782288f, 0.208034262061119f, 0.405901491641998f, - 0.208345666527748f, 0.406125307083130f, 0.208657249808311f, 0.406348884105682f, - 0.208969011902809f, 0.406572192907333f, 0.209280923008919f, 0.406795293092728f, - 0.209593027830124f, 0.407018154859543f, 0.209905281662941f, 0.407240778207779f, - 0.210217714309692f, 0.407463163137436f, 0.210530325770378f, 0.407685309648514f, - 0.210843101143837f, 0.407907217741013f, 0.211156040430069f, 0.408128857612610f, - 0.211469158530235f, 0.408350288867950f, 0.211782455444336f, 0.408571451902390f, - 0.212095901370049f, 0.408792406320572f, 0.212409526109695f, 0.409013092517853f, - 0.212723329663277f, 0.409233570098877f, 0.213037282228470f, 0.409453779459000f, - 0.213351413607597f, 0.409673750400543f, 0.213665723800659f, 0.409893482923508f, - 0.213980183005333f, 0.410112977027893f, 0.214294821023941f, 0.410332232713699f, - 0.214609622955322f, 0.410551249980927f, 0.214924603700638f, 0.410770028829575f, - 0.215239733457565f, 0.410988569259644f, 0.215555042028427f, 0.411206841468811f, - 0.215870529413223f, 0.411424905061722f, 0.216186165809631f, 0.411642700433731f, - 0.216501981019974f, 0.411860257387161f, 0.216817945241928f, 0.412077575922012f, - 0.217134088277817f, 0.412294656038284f, 0.217450410127640f, 0.412511497735977f, - 0.217766880989075f, 0.412728071212769f, 0.218083515763283f, 0.412944436073303f, - 0.218400329351425f, 0.413160532712936f, 0.218717306852341f, 0.413376390933990f, - 0.219034433364868f, 0.413592010736465f, 0.219351738691330f, 0.413807392120361f, - 0.219669207930565f, 0.414022535085678f, 0.219986841082573f, 0.414237409830093f, - 0.220304638147354f, 0.414452046155930f, 0.220622614026070f, 0.414666473865509f, - 0.220940738916397f, 0.414880603551865f, 0.221259027719498f, 0.415094524621964f, - 0.221577480435371f, 0.415308207273483f, 0.221896097064018f, 0.415521621704102f, - 0.222214877605438f, 0.415734797716141f, 0.222533836960793f, 0.415947735309601f, - 0.222852945327759f, 0.416160434484482f, 0.223172217607498f, 0.416372895240784f, - 0.223491653800011f, 0.416585087776184f, 0.223811239004135f, 0.416797041893005f, - 0.224131003022194f, 0.417008757591248f, 0.224450930953026f, 0.417220205068588f, - 0.224771007895470f, 0.417431443929672f, 0.225091263651848f, 0.417642414569855f, - 0.225411668419838f, 0.417853146791458f, 0.225732237100601f, 0.418063640594482f, - 0.226052969694138f, 0.418273866176605f, 0.226373866200447f, 0.418483853340149f, - 0.226694911718369f, 0.418693602085114f, 0.227016136050224f, 0.418903112411499f, - 0.227337509393692f, 0.419112354516983f, 0.227659046649933f, 0.419321358203888f, - 0.227980732917786f, 0.419530123472214f, 0.228302597999573f, 0.419738620519638f, - 0.228624612092972f, 0.419946908950806f, 0.228946775197983f, 0.420154929161072f, - 0.229269117116928f, 0.420362681150436f, 0.229591608047485f, 0.420570224523544f, - 0.229914262890816f, 0.420777499675751f, 0.230237081646919f, 0.420984506607056f, - 0.230560049414635f, 0.421191304922104f, 0.230883181095123f, 0.421397835016251f, - 0.231206461787224f, 0.421604126691818f, 0.231529906392097f, 0.421810150146484f, - 0.231853514909744f, 0.422015935182571f, 0.232177272439003f, 0.422221481800079f, - 0.232501193881035f, 0.422426789999008f, 0.232825264334679f, 0.422631829977036f, - 0.233149498701096f, 0.422836631536484f, 0.233473882079124f, 0.423041164875031f, - 0.233798429369926f, 0.423245459794998f, 0.234123140573502f, 0.423449516296387f, - 0.234448000788689f, 0.423653304576874f, 0.234773010015488f, 0.423856884241104f, - 0.235098183155060f, 0.424060165882111f, 0.235423520207405f, 0.424263238906860f, - 0.235749006271362f, 0.424466013908386f, 0.236074641346931f, 0.424668580293655f, - 0.236400425434113f, 0.424870878458023f, 0.236726388335228f, 0.425072938203812f, - 0.237052485346794f, 0.425274729728699f, 0.237378746271133f, 0.425476282835007f, - 0.237705156207085f, 0.425677597522736f, 0.238031730055809f, 0.425878643989563f, - 0.238358452916145f, 0.426079452037811f, 0.238685324788094f, 0.426279991865158f, - 0.239012360572815f, 0.426480293273926f, 0.239339530467987f, 0.426680356264114f, - 0.239666879177094f, 0.426880151033401f, 0.239994361996651f, 0.427079707384110f, - 0.240322008728981f, 0.427278995513916f, 0.240649804472923f, 0.427478045225143f, - 0.240977749228477f, 0.427676826715469f, 0.241305842995644f, 0.427875369787216f, - 0.241634100675583f, 0.428073674440384f, 0.241962507367134f, 0.428271710872650f, - 0.242291063070297f, 0.428469479084015f, 0.242619767785072f, 0.428667008876801f, - 0.242948621511459f, 0.428864300251007f, 0.243277639150620f, 0.429061323404312f, - 0.243606805801392f, 0.429258108139038f, 0.243936106562614f, 0.429454624652863f, - 0.244265571236610f, 0.429650902748108f, 0.244595184922218f, 0.429846942424774f, - 0.244924947619438f, 0.430042684078217f, 0.245254859328270f, 0.430238217115402f, - 0.245584934949875f, 0.430433481931686f, 0.245915144681931f, 0.430628478527069f, - 0.246245503425598f, 0.430823236703873f, 0.246576011180878f, 0.431017726659775f, - 0.246906682848930f, 0.431211978197098f, 0.247237488627434f, 0.431405961513519f, - 0.247568443417549f, 0.431599706411362f, 0.247899547219276f, 0.431793183088303f, - 0.248230814933777f, 0.431986421346664f, 0.248562216758728f, 0.432179391384125f, - 0.248893767595291f, 0.432372123003006f, 0.249225467443466f, 0.432564586400986f, - 0.249557301402092f, 0.432756811380386f, 0.249889299273491f, 0.432948768138886f, - 0.250221431255341f, 0.433140486478806f, 0.250553727149963f, 0.433331936597824f, - 0.250886172056198f, 0.433523118495941f, 0.251218736171722f, 0.433714061975479f, - 0.251551479101181f, 0.433904737234116f, 0.251884341239929f, 0.434095174074173f, - 0.252217382192612f, 0.434285342693329f, 0.252550542354584f, 0.434475272893906f, - 0.252883851528168f, 0.434664934873581f, 0.253217309713364f, 0.434854328632355f, - 0.253550916910172f, 0.435043483972549f, 0.253884643316269f, 0.435232400894165f, - 0.254218548536301f, 0.435421019792557f, 0.254552572965622f, 0.435609430074692f, - 0.254886746406555f, 0.435797542333603f, 0.255221068859100f, 0.435985416173935f, - 0.255555540323257f, 0.436173021793365f, 0.255890160799026f, 0.436360388994217f, - 0.256224930286407f, 0.436547487974167f, 0.256559818983078f, 0.436734348535538f, - 0.256894856691360f, 0.436920911073685f, 0.257230043411255f, 0.437107264995575f, - 0.257565379142761f, 0.437293320894241f, 0.257900834083557f, 0.437479138374329f, - 0.258236467838287f, 0.437664687633514f, 0.258572220802307f, 0.437849998474121f, - 0.258908122777939f, 0.438035041093826f, 0.259244143962860f, 0.438219845294952f, - 0.259580343961716f, 0.438404351472855f, 0.259916663169861f, 0.438588619232178f, - 0.260253131389618f, 0.438772648572922f, 0.260589718818665f, 0.438956409692764f, - 0.260926485061646f, 0.439139902591705f, 0.261263370513916f, 0.439323127269745f, - 0.261600375175476f, 0.439506113529205f, 0.261937558650970f, 0.439688831567764f, - 0.262274861335754f, 0.439871311187744f, 0.262612313032150f, 0.440053492784500f, - 0.262949883937836f, 0.440235435962677f, 0.263287603855133f, 0.440417140722275f, - 0.263625472784042f, 0.440598547458649f, 0.263963490724564f, 0.440779715776443f, - 0.264301627874374f, 0.440960645675659f, 0.264639914035797f, 0.441141277551651f, - 0.264978319406509f, 0.441321671009064f, 0.265316903591156f, 0.441501796245575f, - 0.265655577182770f, 0.441681683063507f, 0.265994429588318f, 0.441861271858215f, - 0.266333401203156f, 0.442040622234344f, 0.266672492027283f, 0.442219734191895f, - 0.267011761665344f, 0.442398548126221f, 0.267351150512695f, 0.442577123641968f, - 0.267690658569336f, 0.442755430936813f, 0.268030315637589f, 0.442933470010757f, - 0.268370121717453f, 0.443111270666122f, 0.268710047006607f, 0.443288803100586f, - 0.269050091505051f, 0.443466067314148f, 0.269390314817429f, 0.443643063306808f, - 0.269730657339096f, 0.443819820880890f, 0.270071119070053f, 0.443996280431747f, - 0.270411729812622f, 0.444172531366348f, 0.270752459764481f, 0.444348484277725f, - 0.271093338727951f, 0.444524168968201f, 0.271434366703033f, 0.444699615240097f, - 0.271775513887405f, 0.444874793291092f, 0.272116780281067f, 0.445049703121185f, - 0.272458195686340f, 0.445224374532700f, 0.272799760103226f, 0.445398747920990f, - 0.273141443729401f, 0.445572882890701f, 0.273483246564865f, 0.445746749639511f, - 0.273825198411942f, 0.445920348167419f, 0.274167299270630f, 0.446093708276749f, - 0.274509519338608f, 0.446266770362854f, 0.274851858615875f, 0.446439594030380f, - 0.275194346904755f, 0.446612149477005f, 0.275536954402924f, 0.446784436702728f, - 0.275879681110382f, 0.446956485509872f, 0.276222556829453f, 0.447128236293793f, - 0.276565581560135f, 0.447299748659134f, 0.276908725500107f, 0.447470992803574f, - 0.277251988649368f, 0.447641968727112f, 0.277595400810242f, 0.447812676429749f, - 0.277938932180405f, 0.447983115911484f, 0.278282582759857f, 0.448153316974640f, - 0.278626382350922f, 0.448323249816895f, 0.278970301151276f, 0.448492884635925f, - 0.279314368963242f, 0.448662281036377f, 0.279658555984497f, 0.448831409215927f, - 0.280002862215042f, 0.449000298976898f, 0.280347317457199f, 0.449168890714645f, - 0.280691891908646f, 0.449337244033813f, 0.281036585569382f, 0.449505299329758f, - 0.281381398439407f, 0.449673116207123f, 0.281726360321045f, 0.449840664863586f, - 0.282071471214294f, 0.450007945299149f, 0.282416671514511f, 0.450174957513809f, - 0.282762020826340f, 0.450341701507568f, 0.283107489347458f, 0.450508207082748f, - 0.283453077077866f, 0.450674414634705f, 0.283798813819885f, 0.450840383768082f, - 0.284144669771194f, 0.451006084680557f, 0.284490644931793f, 0.451171487569809f, - 0.284836769104004f, 0.451336652040482f, 0.285182982683182f, 0.451501548290253f, - 0.285529345273972f, 0.451666176319122f, 0.285875827074051f, 0.451830536127090f, - 0.286222457885742f, 0.451994657516479f, 0.286569178104401f, 0.452158480882645f, - 0.286916047334671f, 0.452322036027908f, 0.287263035774231f, 0.452485352754593f, - 0.287610173225403f, 0.452648371458054f, 0.287957400083542f, 0.452811151742935f, - 0.288304775953293f, 0.452973634004593f, 0.288652241230011f, 0.453135877847672f, - 0.288999855518341f, 0.453297853469849f, 0.289347589015961f, 0.453459560871124f, - 0.289695471525192f, 0.453621000051498f, 0.290043443441391f, 0.453782171010971f, - 0.290391564369202f, 0.453943043947220f, 0.290739774703979f, 0.454103678464890f, - 0.291088134050369f, 0.454264044761658f, 0.291436612606049f, 0.454424172639847f, - 0.291785210371017f, 0.454584002494812f, 0.292133957147598f, 0.454743564128876f, - 0.292482793331146f, 0.454902857542038f, 0.292831748723984f, 0.455061882734299f, - 0.293180853128433f, 0.455220639705658f, 0.293530046939850f, 0.455379128456116f, - 0.293879389762878f, 0.455537378787994f, 0.294228851795197f, 0.455695331096649f, - 0.294578403234482f, 0.455853015184402f, 0.294928103685379f, 0.456010431051254f, - 0.295277923345566f, 0.456167578697205f, 0.295627862215042f, 0.456324487924576f, - 0.295977920293808f, 0.456481099128723f, 0.296328097581863f, 0.456637442111969f, - 0.296678394079208f, 0.456793516874313f, 0.297028809785843f, 0.456949323415756f, - 0.297379344701767f, 0.457104891538620f, 0.297729998826981f, 0.457260161638260f, - 0.298080772161484f, 0.457415163516998f, 0.298431664705276f, 0.457569897174835f, - 0.298782676458359f, 0.457724362611771f, 0.299133807420731f, 0.457878559827805f, - 0.299485057592392f, 0.458032488822937f, 0.299836426973343f, 0.458186149597168f, - 0.300187885761261f, 0.458339542150497f, 0.300539493560791f, 0.458492636680603f, - 0.300891220569611f, 0.458645492792130f, 0.301243066787720f, 0.458798080682755f, - 0.301595002412796f, 0.458950400352478f, 0.301947087049484f, 0.459102421998978f, - 0.302299261093140f, 0.459254205226898f, 0.302651554346085f, 0.459405690431595f, - 0.303003966808319f, 0.459556937217712f, 0.303356528282166f, 0.459707885980606f, - 0.303709149360657f, 0.459858566522598f, 0.304061919450760f, 0.460008978843689f, - 0.304414808750153f, 0.460159152746201f, 0.304767817258835f, 0.460309028625488f, - 0.305120915174484f, 0.460458606481552f, 0.305474132299423f, 0.460607945919037f, - 0.305827468633652f, 0.460757017135620f, 0.306180924177170f, 0.460905820131302f, - 0.306534498929977f, 0.461054325103760f, 0.306888192892075f, 0.461202591657639f, - 0.307241976261139f, 0.461350560188293f, 0.307595878839493f, 0.461498260498047f, - 0.307949900627136f, 0.461645722389221f, 0.308304041624069f, 0.461792886257172f, - 0.308658272027969f, 0.461939752101898f, 0.309012651443481f, 0.462086379528046f, - 0.309367120265961f, 0.462232738733292f, 0.309721708297729f, 0.462378799915314f, - 0.310076385736465f, 0.462524622678757f, 0.310431212186813f, 0.462670147418976f, - 0.310786128044128f, 0.462815403938293f, 0.311141163110733f, 0.462960392236710f, - 0.311496287584305f, 0.463105112314224f, 0.311851561069489f, 0.463249564170837f, - 0.312206923961639f, 0.463393747806549f, 0.312562376260757f, 0.463537633419037f, - 0.312917977571487f, 0.463681250810623f, 0.313273668289185f, 0.463824629783630f, - 0.313629478216171f, 0.463967710733414f, 0.313985377550125f, 0.464110493659973f, - 0.314341396093369f, 0.464253038167953f, 0.314697533845901f, 0.464395314455032f, - 0.315053790807724f, 0.464537292718887f, 0.315410137176514f, 0.464679002761841f, - 0.315766572952271f, 0.464820444583893f, 0.316123157739639f, 0.464961618185043f, - 0.316479831933975f, 0.465102523565292f, 0.316836595535278f, 0.465243130922318f, - 0.317193508148193f, 0.465383470058441f, 0.317550510168076f, 0.465523540973663f, - 0.317907601594925f, 0.465663343667984f, 0.318264812231064f, 0.465802878141403f, - 0.318622142076492f, 0.465942144393921f, 0.318979561328888f, 0.466081112623215f, - 0.319337099790573f, 0.466219812631607f, 0.319694727659225f, 0.466358244419098f, - 0.320052474737167f, 0.466496407985687f, 0.320410341024399f, 0.466634273529053f, - 0.320768296718597f, 0.466771900653839f, 0.321126341819763f, 0.466909229755402f, - 0.321484506130219f, 0.467046260833740f, 0.321842789649963f, 0.467183053493500f, - 0.322201162576675f, 0.467319577932358f, 0.322559654712677f, 0.467455804347992f, - 0.322918236255646f, 0.467591762542725f, 0.323276937007904f, 0.467727422714233f, - 0.323635727167130f, 0.467862844467163f, 0.323994606733322f, 0.467997968196869f, - 0.324353635311127f, 0.468132823705673f, 0.324712723493576f, 0.468267410993576f, - 0.325071930885315f, 0.468401730060577f, 0.325431257486343f, 0.468535751104355f, - 0.325790673494339f, 0.468669503927231f, 0.326150178909302f, 0.468802988529205f, - 0.326509803533554f, 0.468936175107956f, 0.326869517564774f, 0.469069123268127f, - 0.327229350805283f, 0.469201773405075f, 0.327589273452759f, 0.469334155321121f, - 0.327949285507202f, 0.469466239213943f, 0.328309416770935f, 0.469598054885864f, - 0.328669637441635f, 0.469729602336884f, 0.329029977321625f, 0.469860881567001f, - 0.329390406608582f, 0.469991862773895f, 0.329750925302505f, 0.470122605562210f, - 0.330111563205719f, 0.470253020524979f, 0.330472290515900f, 0.470383197069168f, - 0.330833107233047f, 0.470513075590134f, 0.331194043159485f, 0.470642685890198f, - 0.331555068492889f, 0.470772027969360f, 0.331916213035584f, 0.470901101827621f, - 0.332277417182922f, 0.471029877662659f, 0.332638740539551f, 0.471158385276794f, - 0.333000183105469f, 0.471286594867706f, 0.333361685276031f, 0.471414536237717f, - 0.333723306655884f, 0.471542209386826f, 0.334085017442703f, 0.471669614315033f, - 0.334446847438812f, 0.471796721220016f, 0.334808766841888f, 0.471923559904099f, - 0.335170775651932f, 0.472050130367279f, 0.335532873868942f, 0.472176402807236f, - 0.335895091295242f, 0.472302407026291f, 0.336257368326187f, 0.472428143024445f, - 0.336619764566422f, 0.472553610801697f, 0.336982280015945f, 0.472678780555725f, - 0.337344855070114f, 0.472803652286530f, 0.337707549333572f, 0.472928285598755f, - 0.338070303201675f, 0.473052620887756f, 0.338433176279068f, 0.473176687955856f, - 0.338796168565750f, 0.473300457000732f, 0.339159220457077f, 0.473423957824707f, - 0.339522391557693f, 0.473547190427780f, 0.339885622262955f, 0.473670125007629f, - 0.340248972177505f, 0.473792791366577f, 0.340612411499023f, 0.473915189504623f, - 0.340975970029831f, 0.474037289619446f, 0.341339588165283f, 0.474159121513367f, - 0.341703325510025f, 0.474280685186386f, 0.342067122459412f, 0.474401950836182f, - 0.342431038618088f, 0.474522948265076f, 0.342795044183731f, 0.474643647670746f, - 0.343159139156342f, 0.474764078855515f, 0.343523323535919f, 0.474884241819382f, - 0.343887597322464f, 0.475004136562347f, 0.344251960515976f, 0.475123733282089f, - 0.344616413116455f, 0.475243031978607f, 0.344980984926224f, 0.475362062454224f, - 0.345345616340637f, 0.475480824708939f, 0.345710366964340f, 0.475599318742752f, - 0.346075177192688f, 0.475717514753342f, 0.346440106630325f, 0.475835442543030f, - 0.346805095672607f, 0.475953072309494f, 0.347170203924179f, 0.476070433855057f, - 0.347535371780396f, 0.476187497377396f, 0.347900658845901f, 0.476304292678833f, - 0.348266035318375f, 0.476420819759369f, 0.348631471395493f, 0.476537048816681f, - 0.348997026681900f, 0.476653009653091f, 0.349362671375275f, 0.476768702268600f, - 0.349728375673294f, 0.476884096860886f, 0.350094199180603f, 0.476999223232269f, - 0.350460082292557f, 0.477114051580429f, 0.350826084613800f, 0.477228611707687f, - 0.351192146539688f, 0.477342873811722f, 0.351558297872543f, 0.477456867694855f, - 0.351924568414688f, 0.477570593357086f, 0.352290898561478f, 0.477684020996094f, - 0.352657318115234f, 0.477797180414200f, 0.353023827075958f, 0.477910041809082f, - 0.353390425443649f, 0.478022634983063f, 0.353757113218308f, 0.478134930133820f, - 0.354123860597610f, 0.478246957063675f, 0.354490727186203f, 0.478358715772629f, - 0.354857653379440f, 0.478470176458359f, 0.355224698781967f, 0.478581339120865f, - 0.355591803789139f, 0.478692263364792f, 0.355958998203278f, 0.478802859783173f, - 0.356326282024384f, 0.478913217782974f, 0.356693625450134f, 0.479023247957230f, - 0.357061088085175f, 0.479133039712906f, 0.357428610324860f, 0.479242533445358f, - 0.357796221971512f, 0.479351729154587f, 0.358163923025131f, 0.479460656642914f, - 0.358531713485718f, 0.479569315910339f, 0.358899593353271f, 0.479677677154541f, - 0.359267532825470f, 0.479785770177841f, 0.359635561704636f, 0.479893565177917f, - 0.360003679990768f, 0.480001062154770f, 0.360371887683868f, 0.480108320713043f, - 0.360740154981613f, 0.480215251445770f, 0.361108511686325f, 0.480321943759918f, - 0.361476957798004f, 0.480428308248520f, 0.361845493316650f, 0.480534434318542f, - 0.362214088439941f, 0.480640232563019f, 0.362582772970200f, 0.480745792388916f, - 0.362951546907425f, 0.480851024389267f, 0.363320380449295f, 0.480956017971039f, - 0.363689333200455f, 0.481060713529587f, 0.364058345556259f, 0.481165111064911f, - 0.364427417516708f, 0.481269240379334f, 0.364796578884125f, 0.481373071670532f, - 0.365165829658508f, 0.481476634740829f, 0.365535169839859f, 0.481579899787903f, - 0.365904569625854f, 0.481682896614075f, 0.366274058818817f, 0.481785595417023f, - 0.366643607616425f, 0.481888025999069f, 0.367013275623322f, 0.481990188360214f, - 0.367382973432541f, 0.482092022895813f, 0.367752790451050f, 0.482193619012833f, - 0.368122667074203f, 0.482294887304306f, 0.368492603302002f, 0.482395917177200f, - 0.368862658739090f, 0.482496619224548f, 0.369232743978500f, 0.482597053050995f, - 0.369602948427200f, 0.482697218656540f, 0.369973212480545f, 0.482797086238861f, - 0.370343536138535f, 0.482896685600281f, 0.370713949203491f, 0.482995986938477f, - 0.371084451675415f, 0.483094990253448f, 0.371455013751984f, 0.483193725347519f, - 0.371825665235519f, 0.483292192220688f, 0.372196376323700f, 0.483390361070633f, - 0.372567176818848f, 0.483488231897354f, 0.372938036918640f, 0.483585834503174f, - 0.373308986425400f, 0.483683139085770f, 0.373679995536804f, 0.483780175447464f, - 0.374051094055176f, 0.483876913785934f, 0.374422252178192f, 0.483973383903503f, - 0.374793499708176f, 0.484069555997849f, 0.375164806842804f, 0.484165430068970f, - 0.375536203384399f, 0.484261035919189f, 0.375907659530640f, 0.484356373548508f, - 0.376279205083847f, 0.484451413154602f, 0.376650810241699f, 0.484546154737473f, - 0.377022475004196f, 0.484640628099442f, 0.377394229173660f, 0.484734803438187f, - 0.377766042947769f, 0.484828680753708f, 0.378137946128845f, 0.484922289848328f, - 0.378509908914566f, 0.485015630722046f, 0.378881961107254f, 0.485108673572540f, - 0.379254043102264f, 0.485201418399811f, 0.379626244306564f, 0.485293895006180f, - 0.379998475313187f, 0.485386073589325f, 0.380370795726776f, 0.485477954149246f, - 0.380743205547333f, 0.485569566488266f, 0.381115674972534f, 0.485660910606384f, - 0.381488204002380f, 0.485751956701279f, 0.381860792636871f, 0.485842704772949f, - 0.382233470678329f, 0.485933154821396f, 0.382606208324432f, 0.486023366451263f, - 0.382979035377502f, 0.486113250255585f, 0.383351892232895f, 0.486202865839005f, - 0.383724838495255f, 0.486292183399200f, 0.384097874164581f, 0.486381232738495f, - 0.384470939636230f, 0.486469984054565f, 0.384844094514847f, 0.486558437347412f, - 0.385217308998108f, 0.486646622419357f, 0.385590612888336f, 0.486734509468079f, - 0.385963946580887f, 0.486822128295898f, 0.386337369680405f, 0.486909449100494f, - 0.386710882186890f, 0.486996471881866f, 0.387084424495697f, 0.487083226442337f, - 0.387458056211472f, 0.487169682979584f, 0.387831717729568f, 0.487255871295929f, - 0.388205498456955f, 0.487341761589050f, 0.388579308986664f, 0.487427353858948f, - 0.388953179121017f, 0.487512677907944f, 0.389327138662338f, 0.487597703933716f, - 0.389701157808304f, 0.487682431936264f, 0.390075236558914f, 0.487766891717911f, - 0.390449374914169f, 0.487851053476334f, 0.390823602676392f, 0.487934947013855f, - 0.391197860240936f, 0.488018542528152f, 0.391572207212448f, 0.488101840019226f, - 0.391946613788605f, 0.488184869289398f, 0.392321079969406f, 0.488267600536346f, - 0.392695605754852f, 0.488350033760071f, 0.393070191144943f, 0.488432198762894f, - 0.393444836139679f, 0.488514065742493f, 0.393819570541382f, 0.488595664501190f, - 0.394194334745407f, 0.488676935434341f, 0.394569188356400f, 0.488757967948914f, - 0.394944071769714f, 0.488838672637939f, 0.395319044589996f, 0.488919109106064f, - 0.395694077014923f, 0.488999247550964f, 0.396069169044495f, 0.489079117774963f, - 0.396444320678711f, 0.489158689975739f, 0.396819531917572f, 0.489237964153290f, - 0.397194802761078f, 0.489316970109940f, 0.397570133209229f, 0.489395678043365f, - 0.397945523262024f, 0.489474087953568f, 0.398320972919464f, 0.489552229642868f, - 0.398696482181549f, 0.489630073308945f, 0.399072051048279f, 0.489707618951797f, - 0.399447679519653f, 0.489784896373749f, 0.399823367595673f, 0.489861875772476f, - 0.400199115276337f, 0.489938557147980f, 0.400574922561646f, 0.490014940500259f, - 0.400950789451599f, 0.490091055631638f, 0.401326715946198f, 0.490166902542114f, - 0.401702702045441f, 0.490242421627045f, 0.402078747749329f, 0.490317672491074f, - 0.402454853057861f, 0.490392625331879f, 0.402830988168716f, 0.490467309951782f, - 0.403207212686539f, 0.490541696548462f, 0.403583467006683f, 0.490615785121918f, - 0.403959810733795f, 0.490689605474472f, 0.404336184263229f, 0.490763127803802f, - 0.404712617397308f, 0.490836352109909f, 0.405089110136032f, 0.490909278392792f, - 0.405465662479401f, 0.490981936454773f, 0.405842274427414f, 0.491054296493530f, - 0.406218945980072f, 0.491126358509064f, 0.406595647335052f, 0.491198152303696f, - 0.406972438097000f, 0.491269648075104f, 0.407349258661270f, 0.491340845823288f, - 0.407726138830185f, 0.491411775350571f, 0.408103078603745f, 0.491482406854630f, - 0.408480048179626f, 0.491552740335464f, 0.408857107162476f, 0.491622805595398f, - 0.409234195947647f, 0.491692543029785f, 0.409611344337463f, 0.491762012243271f, - 0.409988552331924f, 0.491831213235855f, 0.410365819931030f, 0.491900116205215f, - 0.410743117332459f, 0.491968721151352f, 0.411120474338531f, 0.492037028074265f, - 0.411497890949249f, 0.492105036973953f, 0.411875367164612f, 0.492172777652740f, - 0.412252873182297f, 0.492240220308304f, 0.412630438804626f, 0.492307394742966f, - 0.413008064031601f, 0.492374241352081f, 0.413385748863220f, 0.492440819740295f, - 0.413763463497162f, 0.492507129907608f, 0.414141237735748f, 0.492573112249374f, - 0.414519041776657f, 0.492638826370239f, 0.414896935224533f, 0.492704242467880f, - 0.415274858474731f, 0.492769360542297f, 0.415652841329575f, 0.492834210395813f, - 0.416030853986740f, 0.492898762226105f, 0.416408926248550f, 0.492963016033173f, - 0.416787058115005f, 0.493026971817017f, 0.417165219783783f, 0.493090659379959f, - 0.417543441057205f, 0.493154048919678f, 0.417921721935272f, 0.493217140436172f, - 0.418300032615662f, 0.493279963731766f, 0.418678402900696f, 0.493342459201813f, - 0.419056802988052f, 0.493404686450958f, 0.419435262680054f, 0.493466645479202f, - 0.419813781976700f, 0.493528276681900f, 0.420192331075668f, 0.493589639663696f, - 0.420570939779282f, 0.493650704622269f, 0.420949578285217f, 0.493711471557617f, - 0.421328276395798f, 0.493771970272064f, 0.421707004308701f, 0.493832170963287f, - 0.422085791826248f, 0.493892073631287f, 0.422464638948441f, 0.493951678276062f, - 0.422843515872955f, 0.494011014699936f, 0.423222452402115f, 0.494070053100586f, - 0.423601418733597f, 0.494128793478012f, 0.423980414867401f, 0.494187235832214f, - 0.424359470605850f, 0.494245409965515f, 0.424738585948944f, 0.494303256273270f, - 0.425117731094360f, 0.494360834360123f, 0.425496935844421f, 0.494418144226074f, - 0.425876170396805f, 0.494475126266479f, 0.426255434751511f, 0.494531840085983f, - 0.426634758710861f, 0.494588255882263f, 0.427014142274857f, 0.494644373655319f, - 0.427393525838852f, 0.494700223207474f, 0.427772998809814f, 0.494755744934082f, - 0.428152471780777f, 0.494810998439789f, 0.428532034158707f, 0.494865983724594f, - 0.428911596536636f, 0.494920641183853f, 0.429291218519211f, 0.494975030422211f, - 0.429670870304108f, 0.495029091835022f, 0.430050581693649f, 0.495082914829254f, - 0.430430322885513f, 0.495136409997940f, 0.430810123682022f, 0.495189607143402f, - 0.431189924478531f, 0.495242536067963f, 0.431569814682007f, 0.495295166969299f, - 0.431949704885483f, 0.495347499847412f, 0.432329654693604f, 0.495399564504623f, - 0.432709634304047f, 0.495451331138611f, 0.433089673519135f, 0.495502769947052f, - 0.433469742536545f, 0.495553970336914f, 0.433849841356277f, 0.495604842901230f, - 0.434229999780655f, 0.495655417442322f, 0.434610158205032f, 0.495705723762512f, - 0.434990376234055f, 0.495755732059479f, 0.435370653867722f, 0.495805442333221f, - 0.435750931501389f, 0.495854884386063f, 0.436131268739700f, 0.495903998613358f, - 0.436511665582657f, 0.495952844619751f, 0.436892062425613f, 0.496001392602921f, - 0.437272518873215f, 0.496049642562866f, 0.437653005123138f, 0.496097624301910f, - 0.438033521175385f, 0.496145308017731f, 0.438414067029953f, 0.496192663908005f, - 0.438794672489166f, 0.496239781379700f, 0.439175277948380f, 0.496286571025848f, - 0.439555943012238f, 0.496333062648773f, 0.439936667680740f, 0.496379286050797f, - 0.440317392349243f, 0.496425211429596f, 0.440698176622391f, 0.496470838785172f, - 0.441078960895538f, 0.496516168117523f, 0.441459804773331f, 0.496561229228973f, - 0.441840678453445f, 0.496605962514877f, 0.442221581935883f, 0.496650427579880f, - 0.442602545022964f, 0.496694594621658f, 0.442983508110046f, 0.496738493442535f, - 0.443364530801773f, 0.496782064437866f, 0.443745553493500f, 0.496825367212296f, - 0.444126635789871f, 0.496868371963501f, 0.444507747888565f, 0.496911078691483f, - 0.444888889789581f, 0.496953487396240f, 0.445270061492920f, 0.496995598077774f, - 0.445651292800903f, 0.497037440538406f, 0.446032524108887f, 0.497078984975815f, - 0.446413785219193f, 0.497120231389999f, 0.446795076131821f, 0.497161179780960f, - 0.447176426649094f, 0.497201830148697f, 0.447557777166367f, 0.497242212295532f, - 0.447939187288284f, 0.497282296419144f, 0.448320597410202f, 0.497322082519531f, - 0.448702067136765f, 0.497361570596695f, 0.449083566665649f, 0.497400760650635f, - 0.449465066194534f, 0.497439652681351f, 0.449846625328064f, 0.497478276491165f, - 0.450228184461594f, 0.497516602277756f, 0.450609803199768f, 0.497554630041122f, - 0.450991421937943f, 0.497592359781265f, 0.451373100280762f, 0.497629791498184f, - 0.451754778623581f, 0.497666954994202f, 0.452136516571045f, 0.497703820466995f, - 0.452518254518509f, 0.497740387916565f, 0.452900022268295f, 0.497776657342911f, - 0.453281819820404f, 0.497812628746033f, 0.453663676977158f, 0.497848302125931f, - 0.454045534133911f, 0.497883707284927f, 0.454427421092987f, 0.497918814420700f, - 0.454809308052063f, 0.497953623533249f, 0.455191254615784f, 0.497988134622574f, - 0.455573230981827f, 0.498022347688675f, 0.455955207347870f, 0.498056292533875f, - 0.456337243318558f, 0.498089909553528f, 0.456719279289246f, 0.498123258352280f, - 0.457101345062256f, 0.498156309127808f, 0.457483440637589f, 0.498189061880112f, - 0.457865566015244f, 0.498221516609192f, 0.458247691392899f, 0.498253703117371f, - 0.458629876375198f, 0.498285561800003f, 0.459012061357498f, 0.498317152261734f, - 0.459394276142120f, 0.498348444700241f, 0.459776520729065f, 0.498379439115524f, - 0.460158795118332f, 0.498410135507584f, 0.460541069507599f, 0.498440563678741f, - 0.460923373699188f, 0.498470664024353f, 0.461305707693100f, 0.498500496149063f, - 0.461688071489334f, 0.498530030250549f, 0.462070435285568f, 0.498559266328812f, - 0.462452858686447f, 0.498588204383850f, 0.462835282087326f, 0.498616874217987f, - 0.463217705488205f, 0.498645216226578f, 0.463600188493729f, 0.498673290014267f, - 0.463982671499252f, 0.498701065778732f, 0.464365184307098f, 0.498728543519974f, - 0.464747726917267f, 0.498755723237991f, 0.465130269527435f, 0.498782604932785f, - 0.465512841939926f, 0.498809218406677f, 0.465895414352417f, 0.498835533857346f, - 0.466278046369553f, 0.498861521482468f, 0.466660678386688f, 0.498887240886688f, - 0.467043310403824f, 0.498912662267685f, 0.467426002025604f, 0.498937815427780f, - 0.467808693647385f, 0.498962640762329f, 0.468191385269165f, 0.498987197875977f, - 0.468574106693268f, 0.499011427164078f, 0.468956857919693f, 0.499035388231277f, - 0.469339638948441f, 0.499059051275253f, 0.469722419977188f, 0.499082416296005f, - 0.470105201005936f, 0.499105513095856f, 0.470488041639328f, 0.499128282070160f, - 0.470870882272720f, 0.499150782823563f, 0.471253722906113f, 0.499172955751419f, - 0.471636593341827f, 0.499194860458374f, 0.472019463777542f, 0.499216467142105f, - 0.472402364015579f, 0.499237775802612f, 0.472785294055939f, 0.499258816242218f, - 0.473168224096298f, 0.499279528856277f, 0.473551183938980f, 0.499299973249435f, - 0.473934143781662f, 0.499320119619370f, 0.474317133426666f, 0.499339967966080f, - 0.474700123071671f, 0.499359518289566f, 0.475083142518997f, 0.499378770589828f, - 0.475466161966324f, 0.499397724866867f, 0.475849211215973f, 0.499416410923004f, - 0.476232260465622f, 0.499434769153595f, 0.476615339517593f, 0.499452859163284f, - 0.476998418569565f, 0.499470651149750f, 0.477381497621536f, 0.499488145112991f, - 0.477764606475830f, 0.499505341053009f, 0.478147745132446f, 0.499522238969803f, - 0.478530883789063f, 0.499538868665695f, 0.478914022445679f, 0.499555170536041f, - 0.479297190904617f, 0.499571204185486f, 0.479680359363556f, 0.499586939811707f, - 0.480063527822495f, 0.499602377414703f, 0.480446726083755f, 0.499617516994476f, - 0.480829954147339f, 0.499632388353348f, 0.481213152408600f, 0.499646931886673f, - 0.481596380472183f, 0.499661177396774f, 0.481979638338089f, 0.499675154685974f, - 0.482362866401672f, 0.499688833951950f, 0.482746154069901f, 0.499702215194702f, - 0.483129411935806f, 0.499715298414230f, 0.483512699604034f, 0.499728083610535f, - 0.483895987272263f, 0.499740600585938f, 0.484279274940491f, 0.499752789735794f, - 0.484662592411041f, 0.499764710664749f, 0.485045909881592f, 0.499776333570480f, - 0.485429257154465f, 0.499787658452988f, 0.485812574625015f, 0.499798685312271f, - 0.486195921897888f, 0.499809414148331f, 0.486579269170761f, 0.499819844961166f, - 0.486962646245956f, 0.499830007553101f, 0.487346023321152f, 0.499839842319489f, - 0.487729400396347f, 0.499849408864975f, 0.488112777471542f, 0.499858677387238f, - 0.488496154546738f, 0.499867647886276f, 0.488879561424255f, 0.499876320362091f, - 0.489262968301773f, 0.499884694814682f, 0.489646375179291f, 0.499892801046371f, - 0.490029782056808f, 0.499900579452515f, 0.490413218736649f, 0.499908089637756f, - 0.490796625614166f, 0.499915301799774f, 0.491180062294006f, 0.499922215938568f, - 0.491563498973846f, 0.499928832054138f, 0.491946935653687f, 0.499935150146484f, - 0.492330402135849f, 0.499941170215607f, 0.492713838815689f, 0.499946922063828f, - 0.493097305297852f, 0.499952346086502f, 0.493480771780014f, 0.499957501888275f, - 0.493864238262177f, 0.499962359666824f, 0.494247704744339f, 0.499966919422150f, - 0.494631171226501f, 0.499971181154251f, 0.495014637708664f, 0.499975144863129f, - 0.495398133993149f, 0.499978810548782f, 0.495781600475311f, 0.499982208013535f, - 0.496165096759796f, 0.499985307455063f, 0.496548563241959f, 0.499988079071045f, - 0.496932059526443f, 0.499990582466125f, 0.497315555810928f, 0.499992787837982f, - 0.497699022293091f, 0.499994695186615f, 0.498082518577576f, 0.499996334314346f, - 0.498466014862061f, 0.499997645616531f, 0.498849511146545f, 0.499998688697815f, - 0.499233007431030f, 0.499999403953552f, 0.499616503715515f, 0.499999850988388f, -}; - - -/** -* \par -* Generation of realCoefB array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-* {
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-*  } 
-* -*/ -static const float32_t realCoefB[8192] = { - 0.500000000000000f, 0.500000000000000f, 0.500383496284485f, 0.499999850988388f, - 0.500766992568970f, 0.499999403953552f, 0.501150488853455f, 0.499998688697815f, - 0.501533985137939f, 0.499997645616531f, 0.501917481422424f, 0.499996334314346f, - 0.502300977706909f, 0.499994695186615f, 0.502684473991394f, 0.499992787837982f, - 0.503067970275879f, 0.499990582466125f, 0.503451406955719f, 0.499988079071045f, - 0.503834903240204f, 0.499985307455063f, 0.504218399524689f, 0.499982208013535f, - 0.504601895809174f, 0.499978810548782f, 0.504985332489014f, 0.499975144863129f, - 0.505368828773499f, 0.499971181154251f, 0.505752325057983f, 0.499966919422150f, - 0.506135761737823f, 0.499962359666824f, 0.506519258022308f, 0.499957501888275f, - 0.506902694702148f, 0.499952346086502f, 0.507286131381989f, 0.499946922063828f, - 0.507669627666473f, 0.499941170215607f, 0.508053064346313f, 0.499935150146484f, - 0.508436501026154f, 0.499928832054138f, 0.508819937705994f, 0.499922215938568f, - 0.509203374385834f, 0.499915301799774f, 0.509586811065674f, 0.499908089637756f, - 0.509970188140869f, 0.499900579452515f, 0.510353624820709f, 0.499892801046371f, - 0.510737061500549f, 0.499884694814682f, 0.511120438575745f, 0.499876320362091f, - 0.511503815650940f, 0.499867647886276f, 0.511887252330780f, 0.499858677387238f, - 0.512270629405975f, 0.499849408864975f, 0.512654006481171f, 0.499839842319489f, - 0.513037383556366f, 0.499830007553101f, 0.513420701026917f, 0.499819844961166f, - 0.513804078102112f, 0.499809414148331f, 0.514187395572662f, 0.499798685312271f, - 0.514570772647858f, 0.499787658452988f, 0.514954090118408f, 0.499776333570480f, - 0.515337407588959f, 0.499764710664749f, 0.515720725059509f, 0.499752789735794f, - 0.516103982925415f, 0.499740600585938f, 0.516487300395966f, 0.499728083610535f, - 0.516870558261871f, 0.499715298414230f, 0.517253875732422f, 0.499702215194702f, - 0.517637133598328f, 0.499688833951950f, 0.518020391464233f, 0.499675154685974f, - 0.518403589725494f, 0.499661177396774f, 0.518786847591400f, 0.499646931886673f, - 0.519170045852661f, 0.499632388353348f, 0.519553244113922f, 0.499617516994476f, - 0.519936442375183f, 0.499602377414703f, 0.520319640636444f, 0.499586939811707f, - 0.520702838897705f, 0.499571204185486f, 0.521085977554321f, 0.499555170536041f, - 0.521469116210938f, 0.499538868665695f, 0.521852254867554f, 0.499522238969803f, - 0.522235393524170f, 0.499505341053009f, 0.522618472576141f, 0.499488145112991f, - 0.523001611232758f, 0.499470651149750f, 0.523384690284729f, 0.499452859163284f, - 0.523767769336700f, 0.499434769153595f, 0.524150788784027f, 0.499416410923004f, - 0.524533808231354f, 0.499397724866867f, 0.524916887283325f, 0.499378770589828f, - 0.525299847126007f, 0.499359518289566f, 0.525682866573334f, 0.499339967966080f, - 0.526065826416016f, 0.499320119619370f, 0.526448845863342f, 0.499299973249435f, - 0.526831746101379f, 0.499279528856277f, 0.527214705944061f, 0.499258816242218f, - 0.527597606182098f, 0.499237775802612f, 0.527980506420136f, 0.499216467142105f, - 0.528363406658173f, 0.499194860458374f, 0.528746306896210f, 0.499172955751419f, - 0.529129147529602f, 0.499150782823563f, 0.529511988162994f, 0.499128282070160f, - 0.529894769191742f, 0.499105513095856f, 0.530277609825134f, 0.499082416296005f, - 0.530660390853882f, 0.499059051275253f, 0.531043112277985f, 0.499035388231277f, - 0.531425893306732f, 0.499011427164078f, 0.531808614730835f, 0.498987197875977f, - 0.532191336154938f, 0.498962640762329f, 0.532573997974396f, 0.498937815427780f, - 0.532956659793854f, 0.498912662267685f, 0.533339321613312f, 0.498887240886688f, - 0.533721983432770f, 0.498861521482468f, 0.534104585647583f, 0.498835533857346f, - 0.534487187862396f, 0.498809218406677f, 0.534869730472565f, 0.498782604932785f, - 0.535252273082733f, 0.498755723237991f, 0.535634815692902f, 0.498728543519974f, - 0.536017298698425f, 0.498701065778732f, 0.536399841308594f, 0.498673290014267f, - 0.536782264709473f, 0.498645216226578f, 0.537164747714996f, 0.498616874217987f, - 0.537547171115875f, 0.498588204383850f, 0.537929534912109f, 0.498559266328812f, - 0.538311958312988f, 0.498530030250549f, 0.538694262504578f, 0.498500496149063f, - 0.539076626300812f, 0.498470664024353f, 0.539458930492401f, 0.498440563678741f, - 0.539841234683990f, 0.498410135507584f, 0.540223479270935f, 0.498379439115524f, - 0.540605723857880f, 0.498348444700241f, 0.540987968444824f, 0.498317152261734f, - 0.541370153427124f, 0.498285561800003f, 0.541752278804779f, 0.498253703117371f, - 0.542134463787079f, 0.498221516609192f, 0.542516589164734f, 0.498189061880112f, - 0.542898654937744f, 0.498156309127808f, 0.543280720710754f, 0.498123258352280f, - 0.543662786483765f, 0.498089909553528f, 0.544044792652130f, 0.498056292533875f, - 0.544426798820496f, 0.498022347688675f, 0.544808745384216f, 0.497988134622574f, - 0.545190691947937f, 0.497953623533249f, 0.545572578907013f, 0.497918814420700f, - 0.545954465866089f, 0.497883707284927f, 0.546336352825165f, 0.497848302125931f, - 0.546718180179596f, 0.497812628746033f, 0.547099947929382f, 0.497776657342911f, - 0.547481775283813f, 0.497740387916565f, 0.547863483428955f, 0.497703820466995f, - 0.548245191574097f, 0.497666954994202f, 0.548626899719238f, 0.497629791498184f, - 0.549008548259735f, 0.497592359781265f, 0.549390196800232f, 0.497554630041122f, - 0.549771785736084f, 0.497516602277756f, 0.550153374671936f, 0.497478276491165f, - 0.550534904003143f, 0.497439652681351f, 0.550916433334351f, 0.497400760650635f, - 0.551297962665558f, 0.497361570596695f, 0.551679372787476f, 0.497322082519531f, - 0.552060842514038f, 0.497282296419144f, 0.552442193031311f, 0.497242212295532f, - 0.552823603153229f, 0.497201830148697f, 0.553204894065857f, 0.497161179780960f, - 0.553586184978485f, 0.497120231389999f, 0.553967475891113f, 0.497078984975815f, - 0.554348707199097f, 0.497037440538406f, 0.554729938507080f, 0.496995598077774f, - 0.555111110210419f, 0.496953487396240f, 0.555492222309113f, 0.496911078691483f, - 0.555873334407806f, 0.496868371963501f, 0.556254446506500f, 0.496825367212296f, - 0.556635499000549f, 0.496782064437866f, 0.557016491889954f, 0.496738493442535f, - 0.557397484779358f, 0.496694594621658f, 0.557778418064117f, 0.496650427579880f, - 0.558159291744232f, 0.496605962514877f, 0.558540165424347f, 0.496561229228973f, - 0.558921039104462f, 0.496516168117523f, 0.559301853179932f, 0.496470838785172f, - 0.559682607650757f, 0.496425211429596f, 0.560063362121582f, 0.496379286050797f, - 0.560444056987762f, 0.496333062648773f, 0.560824692249298f, 0.496286571025848f, - 0.561205327510834f, 0.496239781379700f, 0.561585903167725f, 0.496192663908005f, - 0.561966478824615f, 0.496145308017731f, 0.562346994876862f, 0.496097624301910f, - 0.562727510929108f, 0.496049642562866f, 0.563107967376709f, 0.496001392602921f, - 0.563488364219666f, 0.495952844619751f, 0.563868701457977f, 0.495903998613358f, - 0.564249038696289f, 0.495854884386063f, 0.564629375934601f, 0.495805442333221f, - 0.565009593963623f, 0.495755732059479f, 0.565389811992645f, 0.495705723762512f, - 0.565770030021667f, 0.495655417442322f, 0.566150128841400f, 0.495604842901230f, - 0.566530287265778f, 0.495553970336914f, 0.566910326480865f, 0.495502769947052f, - 0.567290365695953f, 0.495451331138611f, 0.567670345306396f, 0.495399564504623f, - 0.568050265312195f, 0.495347499847412f, 0.568430185317993f, 0.495295166969299f, - 0.568810045719147f, 0.495242536067963f, 0.569189906120300f, 0.495189607143402f, - 0.569569647312164f, 0.495136409997940f, 0.569949388504028f, 0.495082914829254f, - 0.570329129695892f, 0.495029091835022f, 0.570708811283112f, 0.494975030422211f, - 0.571088373661041f, 0.494920641183853f, 0.571467995643616f, 0.494865983724594f, - 0.571847498416901f, 0.494810998439789f, 0.572227001190186f, 0.494755744934082f, - 0.572606444358826f, 0.494700223207474f, 0.572985887527466f, 0.494644373655319f, - 0.573365211486816f, 0.494588255882263f, 0.573744535446167f, 0.494531840085983f, - 0.574123859405518f, 0.494475126266479f, 0.574503064155579f, 0.494418144226074f, - 0.574882268905640f, 0.494360834360123f, 0.575261414051056f, 0.494303256273270f, - 0.575640499591827f, 0.494245409965515f, 0.576019585132599f, 0.494187235832214f, - 0.576398611068726f, 0.494128793478012f, 0.576777577400208f, 0.494070053100586f, - 0.577156484127045f, 0.494011014699936f, 0.577535390853882f, 0.493951678276062f, - 0.577914178371429f, 0.493892073631287f, 0.578292965888977f, 0.493832170963287f, - 0.578671753406525f, 0.493771970272064f, 0.579050421714783f, 0.493711471557617f, - 0.579429090023041f, 0.493650704622269f, 0.579807698726654f, 0.493589639663696f, - 0.580186247825623f, 0.493528276681900f, 0.580564737319946f, 0.493466645479202f, - 0.580943167209625f, 0.493404686450958f, 0.581321597099304f, 0.493342459201813f, - 0.581699967384338f, 0.493279963731766f, 0.582078278064728f, 0.493217140436172f, - 0.582456588745117f, 0.493154048919678f, 0.582834780216217f, 0.493090659379959f, - 0.583212971687317f, 0.493026971817017f, 0.583591103553772f, 0.492963016033173f, - 0.583969175815582f, 0.492898762226105f, 0.584347188472748f, 0.492834210395813f, - 0.584725141525269f, 0.492769360542297f, 0.585103094577789f, 0.492704242467880f, - 0.585480928421021f, 0.492638826370239f, 0.585858762264252f, 0.492573112249374f, - 0.586236536502838f, 0.492507129907608f, 0.586614251136780f, 0.492440819740295f, - 0.586991965770721f, 0.492374241352081f, 0.587369561195374f, 0.492307394742966f, - 0.587747097015381f, 0.492240220308304f, 0.588124632835388f, 0.492172777652740f, - 0.588502109050751f, 0.492105036973953f, 0.588879525661469f, 0.492037028074265f, - 0.589256882667542f, 0.491968721151352f, 0.589634180068970f, 0.491900116205215f, - 0.590011477470398f, 0.491831213235855f, 0.590388655662537f, 0.491762012243271f, - 0.590765833854675f, 0.491692543029785f, 0.591142892837524f, 0.491622805595398f, - 0.591519951820374f, 0.491552740335464f, 0.591896951198578f, 0.491482406854630f, - 0.592273890972137f, 0.491411775350571f, 0.592650771141052f, 0.491340845823288f, - 0.593027591705322f, 0.491269648075104f, 0.593404352664948f, 0.491198152303696f, - 0.593781054019928f, 0.491126358509064f, 0.594157755374908f, 0.491054296493530f, - 0.594534337520599f, 0.490981936454773f, 0.594910860061646f, 0.490909278392792f, - 0.595287382602692f, 0.490836352109909f, 0.595663845539093f, 0.490763127803802f, - 0.596040189266205f, 0.490689605474472f, 0.596416532993317f, 0.490615785121918f, - 0.596792817115784f, 0.490541696548462f, 0.597168982028961f, 0.490467309951782f, - 0.597545146942139f, 0.490392625331879f, 0.597921252250671f, 0.490317672491074f, - 0.598297297954559f, 0.490242421627045f, 0.598673284053802f, 0.490166902542114f, - 0.599049210548401f, 0.490091055631638f, 0.599425077438354f, 0.490014940500259f, - 0.599800884723663f, 0.489938557147980f, 0.600176632404327f, 0.489861875772476f, - 0.600552320480347f, 0.489784896373749f, 0.600927948951721f, 0.489707618951797f, - 0.601303517818451f, 0.489630073308945f, 0.601679027080536f, 0.489552229642868f, - 0.602054476737976f, 0.489474087953568f, 0.602429866790771f, 0.489395678043365f, - 0.602805197238922f, 0.489316970109940f, 0.603180468082428f, 0.489237964153290f, - 0.603555679321289f, 0.489158689975739f, 0.603930830955505f, 0.489079117774963f, - 0.604305922985077f, 0.488999247550964f, 0.604680955410004f, 0.488919109106064f, - 0.605055928230286f, 0.488838672637939f, 0.605430841445923f, 0.488757967948914f, - 0.605805635452271f, 0.488676935434341f, 0.606180429458618f, 0.488595664501190f, - 0.606555163860321f, 0.488514065742493f, 0.606929838657379f, 0.488432198762894f, - 0.607304394245148f, 0.488350033760071f, 0.607678949832916f, 0.488267600536346f, - 0.608053386211395f, 0.488184869289398f, 0.608427822589874f, 0.488101840019226f, - 0.608802139759064f, 0.488018542528152f, 0.609176397323608f, 0.487934947013855f, - 0.609550595283508f, 0.487851053476334f, 0.609924793243408f, 0.487766891717911f, - 0.610298871994019f, 0.487682431936264f, 0.610672831535339f, 0.487597703933716f, - 0.611046791076660f, 0.487512677907944f, 0.611420691013336f, 0.487427353858948f, - 0.611794531345367f, 0.487341761589050f, 0.612168252468109f, 0.487255871295929f, - 0.612541973590851f, 0.487169682979584f, 0.612915575504303f, 0.487083226442337f, - 0.613289117813110f, 0.486996471881866f, 0.613662600517273f, 0.486909449100494f, - 0.614036023616791f, 0.486822128295898f, 0.614409387111664f, 0.486734509468079f, - 0.614782691001892f, 0.486646622419357f, 0.615155875682831f, 0.486558437347412f, - 0.615529060363770f, 0.486469984054565f, 0.615902125835419f, 0.486381232738495f, - 0.616275131702423f, 0.486292183399200f, 0.616648077964783f, 0.486202865839005f, - 0.617020964622498f, 0.486113250255585f, 0.617393791675568f, 0.486023366451263f, - 0.617766559123993f, 0.485933154821396f, 0.618139207363129f, 0.485842704772949f, - 0.618511795997620f, 0.485751956701279f, 0.618884325027466f, 0.485660910606384f, - 0.619256794452667f, 0.485569566488266f, 0.619629204273224f, 0.485477954149246f, - 0.620001494884491f, 0.485386073589325f, 0.620373785495758f, 0.485293895006180f, - 0.620745956897736f, 0.485201418399811f, 0.621118068695068f, 0.485108673572540f, - 0.621490061283112f, 0.485015630722046f, 0.621862053871155f, 0.484922289848328f, - 0.622233927249908f, 0.484828680753708f, 0.622605800628662f, 0.484734803438187f, - 0.622977554798126f, 0.484640628099442f, 0.623349189758301f, 0.484546154737473f, - 0.623720824718475f, 0.484451413154602f, 0.624092340469360f, 0.484356373548508f, - 0.624463796615601f, 0.484261035919189f, 0.624835193157196f, 0.484165430068970f, - 0.625206530094147f, 0.484069555997849f, 0.625577747821808f, 0.483973383903503f, - 0.625948905944824f, 0.483876913785934f, 0.626320004463196f, 0.483780175447464f, - 0.626691043376923f, 0.483683139085770f, 0.627061963081360f, 0.483585834503174f, - 0.627432823181152f, 0.483488231897354f, 0.627803623676300f, 0.483390361070633f, - 0.628174364566803f, 0.483292192220688f, 0.628544986248016f, 0.483193725347519f, - 0.628915548324585f, 0.483094990253448f, 0.629286050796509f, 0.482995986938477f, - 0.629656434059143f, 0.482896685600281f, 0.630026817321777f, 0.482797086238861f, - 0.630397081375122f, 0.482697218656540f, 0.630767226219177f, 0.482597053050995f, - 0.631137371063232f, 0.482496619224548f, 0.631507396697998f, 0.482395917177200f, - 0.631877362728119f, 0.482294887304306f, 0.632247209548950f, 0.482193619012833f, - 0.632616996765137f, 0.482092022895813f, 0.632986724376678f, 0.481990188360214f, - 0.633356392383575f, 0.481888025999069f, 0.633725941181183f, 0.481785595417023f, - 0.634095430374146f, 0.481682896614075f, 0.634464859962463f, 0.481579899787903f, - 0.634834170341492f, 0.481476634740829f, 0.635203421115875f, 0.481373071670532f, - 0.635572552680969f, 0.481269240379334f, 0.635941684246063f, 0.481165111064911f, - 0.636310696601868f, 0.481060713529587f, 0.636679589748383f, 0.480956017971039f, - 0.637048482894897f, 0.480851024389267f, 0.637417197227478f, 0.480745792388916f, - 0.637785911560059f, 0.480640232563019f, 0.638154506683350f, 0.480534434318542f, - 0.638523042201996f, 0.480428308248520f, 0.638891458511353f, 0.480321943759918f, - 0.639259815216064f, 0.480215251445770f, 0.639628112316132f, 0.480108320713043f, - 0.639996349811554f, 0.480001062154770f, 0.640364408493042f, 0.479893565177917f, - 0.640732467174530f, 0.479785770177841f, 0.641100406646729f, 0.479677677154541f, - 0.641468286514282f, 0.479569315910339f, 0.641836047172546f, 0.479460656642914f, - 0.642203748226166f, 0.479351729154587f, 0.642571389675140f, 0.479242533445358f, - 0.642938911914825f, 0.479133039712906f, 0.643306374549866f, 0.479023247957230f, - 0.643673717975616f, 0.478913217782974f, 0.644041001796722f, 0.478802859783173f, - 0.644408226013184f, 0.478692263364792f, 0.644775331020355f, 0.478581339120865f, - 0.645142316818237f, 0.478470176458359f, 0.645509302616119f, 0.478358715772629f, - 0.645876109600067f, 0.478246957063675f, 0.646242916584015f, 0.478134930133820f, - 0.646609604358673f, 0.478022634983063f, 0.646976172924042f, 0.477910041809082f, - 0.647342681884766f, 0.477797180414200f, 0.647709131240845f, 0.477684020996094f, - 0.648075461387634f, 0.477570593357086f, 0.648441672325134f, 0.477456867694855f, - 0.648807883262634f, 0.477342873811722f, 0.649173915386200f, 0.477228611707687f, - 0.649539887905121f, 0.477114051580429f, 0.649905800819397f, 0.476999223232269f, - 0.650271594524384f, 0.476884096860886f, 0.650637328624725f, 0.476768702268600f, - 0.651003003120422f, 0.476653009653091f, 0.651368498802185f, 0.476537048816681f, - 0.651733994483948f, 0.476420819759369f, 0.652099311351776f, 0.476304292678833f, - 0.652464628219604f, 0.476187497377396f, 0.652829825878143f, 0.476070433855057f, - 0.653194904327393f, 0.475953072309494f, 0.653559923171997f, 0.475835442543030f, - 0.653924822807312f, 0.475717514753342f, 0.654289662837982f, 0.475599318742752f, - 0.654654383659363f, 0.475480824708939f, 0.655019044876099f, 0.475362062454224f, - 0.655383586883545f, 0.475243031978607f, 0.655748009681702f, 0.475123733282089f, - 0.656112432479858f, 0.475004136562347f, 0.656476676464081f, 0.474884241819382f, - 0.656840860843658f, 0.474764078855515f, 0.657204985618591f, 0.474643647670746f, - 0.657568991184235f, 0.474522948265076f, 0.657932877540588f, 0.474401950836182f, - 0.658296704292297f, 0.474280685186386f, 0.658660411834717f, 0.474159121513367f, - 0.659024059772491f, 0.474037289619446f, 0.659387588500977f, 0.473915189504623f, - 0.659750998020172f, 0.473792791366577f, 0.660114347934723f, 0.473670125007629f, - 0.660477638244629f, 0.473547190427780f, 0.660840749740601f, 0.473423957824707f, - 0.661203861236572f, 0.473300457000732f, 0.661566793918610f, 0.473176687955856f, - 0.661929666996002f, 0.473052620887756f, 0.662292480468750f, 0.472928285598755f, - 0.662655174732208f, 0.472803652286530f, 0.663017749786377f, 0.472678780555725f, - 0.663380205631256f, 0.472553610801697f, 0.663742601871490f, 0.472428143024445f, - 0.664104938507080f, 0.472302407026291f, 0.664467096328735f, 0.472176402807236f, - 0.664829254150391f, 0.472050130367279f, 0.665191233158112f, 0.471923559904099f, - 0.665553152561188f, 0.471796721220016f, 0.665914952754974f, 0.471669614315033f, - 0.666276693344116f, 0.471542209386826f, 0.666638314723969f, 0.471414536237717f, - 0.666999816894531f, 0.471286594867706f, 0.667361259460449f, 0.471158385276794f, - 0.667722582817078f, 0.471029877662659f, 0.668083786964417f, 0.470901101827621f, - 0.668444931507111f, 0.470772027969360f, 0.668805956840515f, 0.470642685890198f, - 0.669166862964630f, 0.470513075590134f, 0.669527709484100f, 0.470383197069168f, - 0.669888436794281f, 0.470253020524979f, 0.670249044895172f, 0.470122605562210f, - 0.670609593391418f, 0.469991862773895f, 0.670970022678375f, 0.469860881567001f, - 0.671330332756042f, 0.469729602336884f, 0.671690583229065f, 0.469598054885864f, - 0.672050714492798f, 0.469466239213943f, 0.672410726547241f, 0.469334155321121f, - 0.672770678997040f, 0.469201773405075f, 0.673130512237549f, 0.469069123268127f, - 0.673490226268768f, 0.468936175107956f, 0.673849821090698f, 0.468802988529205f, - 0.674209356307983f, 0.468669503927231f, 0.674568772315979f, 0.468535751104355f, - 0.674928069114685f, 0.468401730060577f, 0.675287246704102f, 0.468267410993576f, - 0.675646364688873f, 0.468132823705673f, 0.676005363464355f, 0.467997968196869f, - 0.676364302635193f, 0.467862844467163f, 0.676723062992096f, 0.467727422714233f, - 0.677081763744354f, 0.467591762542725f, 0.677440345287323f, 0.467455804347992f, - 0.677798807621002f, 0.467319577932358f, 0.678157210350037f, 0.467183053493500f, - 0.678515493869781f, 0.467046260833740f, 0.678873658180237f, 0.466909229755402f, - 0.679231703281403f, 0.466771900653839f, 0.679589688777924f, 0.466634273529053f, - 0.679947495460510f, 0.466496407985687f, 0.680305242538452f, 0.466358244419098f, - 0.680662930011749f, 0.466219812631607f, 0.681020438671112f, 0.466081112623215f, - 0.681377887725830f, 0.465942144393921f, 0.681735157966614f, 0.465802878141403f, - 0.682092368602753f, 0.465663343667984f, 0.682449519634247f, 0.465523540973663f, - 0.682806491851807f, 0.465383470058441f, 0.683163404464722f, 0.465243130922318f, - 0.683520197868347f, 0.465102523565292f, 0.683876872062683f, 0.464961618185043f, - 0.684233427047729f, 0.464820444583893f, 0.684589862823486f, 0.464679002761841f, - 0.684946238994598f, 0.464537292718887f, 0.685302436351776f, 0.464395314455032f, - 0.685658574104309f, 0.464253038167953f, 0.686014592647552f, 0.464110493659973f, - 0.686370551586151f, 0.463967710733414f, 0.686726331710815f, 0.463824629783630f, - 0.687082052230835f, 0.463681250810623f, 0.687437593936920f, 0.463537633419037f, - 0.687793076038361f, 0.463393747806549f, 0.688148438930511f, 0.463249564170837f, - 0.688503682613373f, 0.463105112314224f, 0.688858866691589f, 0.462960392236710f, - 0.689213871955872f, 0.462815403938293f, 0.689568817615509f, 0.462670147418976f, - 0.689923584461212f, 0.462524622678757f, 0.690278291702271f, 0.462378799915314f, - 0.690632879734039f, 0.462232738733292f, 0.690987348556519f, 0.462086379528046f, - 0.691341698169708f, 0.461939752101898f, 0.691695988178253f, 0.461792886257172f, - 0.692050099372864f, 0.461645722389221f, 0.692404091358185f, 0.461498260498047f, - 0.692758023738861f, 0.461350560188293f, 0.693111836910248f, 0.461202591657639f, - 0.693465530872345f, 0.461054325103760f, 0.693819046020508f, 0.460905820131302f, - 0.694172501564026f, 0.460757017135620f, 0.694525837898254f, 0.460607945919037f, - 0.694879114627838f, 0.460458606481552f, 0.695232212543488f, 0.460309028625488f, - 0.695585191249847f, 0.460159152746201f, 0.695938050746918f, 0.460008978843689f, - 0.696290850639343f, 0.459858566522598f, 0.696643471717834f, 0.459707885980606f, - 0.696996033191681f, 0.459556937217712f, 0.697348415851593f, 0.459405690431595f, - 0.697700738906860f, 0.459254205226898f, 0.698052942752838f, 0.459102421998978f, - 0.698404967784882f, 0.458950400352478f, 0.698756933212280f, 0.458798080682755f, - 0.699108779430389f, 0.458645492792130f, 0.699460506439209f, 0.458492636680603f, - 0.699812114238739f, 0.458339542150497f, 0.700163602828979f, 0.458186149597168f, - 0.700514972209930f, 0.458032488822937f, 0.700866222381592f, 0.457878559827805f, - 0.701217353343964f, 0.457724362611771f, 0.701568365097046f, 0.457569897174835f, - 0.701919257640839f, 0.457415163516998f, 0.702270030975342f, 0.457260161638260f, - 0.702620685100555f, 0.457104891538620f, 0.702971220016479f, 0.456949323415756f, - 0.703321635723114f, 0.456793516874313f, 0.703671932220459f, 0.456637442111969f, - 0.704022109508514f, 0.456481099128723f, 0.704372167587280f, 0.456324487924576f, - 0.704722046852112f, 0.456167578697205f, 0.705071866512299f, 0.456010431051254f, - 0.705421566963196f, 0.455853015184402f, 0.705771148204803f, 0.455695331096649f, - 0.706120610237122f, 0.455537378787994f, 0.706469953060150f, 0.455379128456116f, - 0.706819176673889f, 0.455220639705658f, 0.707168221473694f, 0.455061882734299f, - 0.707517206668854f, 0.454902857542038f, 0.707866072654724f, 0.454743564128876f, - 0.708214759826660f, 0.454584002494812f, 0.708563387393951f, 0.454424172639847f, - 0.708911836147308f, 0.454264044761658f, 0.709260225296021f, 0.454103678464890f, - 0.709608435630798f, 0.453943043947220f, 0.709956526756287f, 0.453782171010971f, - 0.710304558277130f, 0.453621000051498f, 0.710652410984039f, 0.453459560871124f, - 0.711000144481659f, 0.453297853469849f, 0.711347758769989f, 0.453135877847672f, - 0.711695253849030f, 0.452973634004593f, 0.712042629718781f, 0.452811151742935f, - 0.712389826774597f, 0.452648371458054f, 0.712736964225769f, 0.452485352754593f, - 0.713083922863007f, 0.452322036027908f, 0.713430821895599f, 0.452158480882645f, - 0.713777542114258f, 0.451994657516479f, 0.714124143123627f, 0.451830536127090f, - 0.714470624923706f, 0.451666176319122f, 0.714816987514496f, 0.451501548290253f, - 0.715163230895996f, 0.451336652040482f, 0.715509355068207f, 0.451171487569809f, - 0.715855300426483f, 0.451006084680557f, 0.716201186180115f, 0.450840383768082f, - 0.716546893119812f, 0.450674414634705f, 0.716892480850220f, 0.450508207082748f, - 0.717238008975983f, 0.450341701507568f, 0.717583298683167f, 0.450174957513809f, - 0.717928528785706f, 0.450007945299149f, 0.718273639678955f, 0.449840664863586f, - 0.718618571758270f, 0.449673116207123f, 0.718963444232941f, 0.449505299329758f, - 0.719308137893677f, 0.449337244033813f, 0.719652712345123f, 0.449168890714645f, - 0.719997107982636f, 0.449000298976898f, 0.720341444015503f, 0.448831409215927f, - 0.720685660839081f, 0.448662281036377f, 0.721029698848724f, 0.448492884635925f, - 0.721373617649078f, 0.448323249816895f, 0.721717417240143f, 0.448153316974640f, - 0.722061097621918f, 0.447983115911484f, 0.722404599189758f, 0.447812676429749f, - 0.722747981548309f, 0.447641968727112f, 0.723091304302216f, 0.447470992803574f, - 0.723434448242188f, 0.447299748659134f, 0.723777413368225f, 0.447128236293793f, - 0.724120318889618f, 0.446956485509872f, 0.724463045597076f, 0.446784436702728f, - 0.724805653095245f, 0.446612149477005f, 0.725148141384125f, 0.446439594030380f, - 0.725490510463715f, 0.446266770362854f, 0.725832700729370f, 0.446093708276749f, - 0.726174771785736f, 0.445920348167419f, 0.726516723632813f, 0.445746749639511f, - 0.726858556270599f, 0.445572882890701f, 0.727200269699097f, 0.445398747920990f, - 0.727541804313660f, 0.445224374532700f, 0.727883219718933f, 0.445049703121185f, - 0.728224515914917f, 0.444874793291092f, 0.728565633296967f, 0.444699615240097f, - 0.728906631469727f, 0.444524168968201f, 0.729247510433197f, 0.444348484277725f, - 0.729588270187378f, 0.444172531366348f, 0.729928910732269f, 0.443996280431747f, - 0.730269372463226f, 0.443819820880890f, 0.730609714984894f, 0.443643063306808f, - 0.730949878692627f, 0.443466067314148f, 0.731289982795715f, 0.443288803100586f, - 0.731629908084869f, 0.443111270666122f, 0.731969714164734f, 0.442933470010757f, - 0.732309341430664f, 0.442755430936813f, 0.732648849487305f, 0.442577123641968f, - 0.732988238334656f, 0.442398548126221f, 0.733327507972717f, 0.442219734191895f, - 0.733666598796844f, 0.442040622234344f, 0.734005570411682f, 0.441861271858215f, - 0.734344422817230f, 0.441681683063507f, 0.734683096408844f, 0.441501796245575f, - 0.735021650791168f, 0.441321671009064f, 0.735360085964203f, 0.441141277551651f, - 0.735698342323303f, 0.440960645675659f, 0.736036539077759f, 0.440779715776443f, - 0.736374497413635f, 0.440598547458649f, 0.736712396144867f, 0.440417140722275f, - 0.737050116062164f, 0.440235435962677f, 0.737387716770172f, 0.440053492784500f, - 0.737725138664246f, 0.439871311187744f, 0.738062441349030f, 0.439688831567764f, - 0.738399624824524f, 0.439506113529205f, 0.738736629486084f, 0.439323127269745f, - 0.739073514938354f, 0.439139902591705f, 0.739410281181335f, 0.438956409692764f, - 0.739746868610382f, 0.438772648572922f, 0.740083336830139f, 0.438588619232178f, - 0.740419685840607f, 0.438404351472855f, 0.740755856037140f, 0.438219845294952f, - 0.741091907024384f, 0.438035041093826f, 0.741427779197693f, 0.437849998474121f, - 0.741763532161713f, 0.437664687633514f, 0.742099165916443f, 0.437479138374329f, - 0.742434620857239f, 0.437293320894241f, 0.742769956588745f, 0.437107264995575f, - 0.743105113506317f, 0.436920911073685f, 0.743440151214600f, 0.436734348535538f, - 0.743775069713593f, 0.436547487974167f, 0.744109809398651f, 0.436360388994217f, - 0.744444429874420f, 0.436173021793365f, 0.744778931140900f, 0.435985416173935f, - 0.745113253593445f, 0.435797542333603f, 0.745447397232056f, 0.435609430074692f, - 0.745781481266022f, 0.435421019792557f, 0.746115326881409f, 0.435232400894165f, - 0.746449112892151f, 0.435043483972549f, 0.746782720088959f, 0.434854328632355f, - 0.747116148471832f, 0.434664934873581f, 0.747449457645416f, 0.434475272893906f, - 0.747782647609711f, 0.434285342693329f, 0.748115658760071f, 0.434095174074173f, - 0.748448550701141f, 0.433904737234116f, 0.748781263828278f, 0.433714061975479f, - 0.749113857746124f, 0.433523118495941f, 0.749446272850037f, 0.433331936597824f, - 0.749778568744659f, 0.433140486478806f, 0.750110685825348f, 0.432948768138886f, - 0.750442683696747f, 0.432756811380386f, 0.750774562358856f, 0.432564586400986f, - 0.751106262207031f, 0.432372123003006f, 0.751437783241272f, 0.432179391384125f, - 0.751769185066223f, 0.431986421346664f, 0.752100467681885f, 0.431793183088303f, - 0.752431571483612f, 0.431599706411362f, 0.752762496471405f, 0.431405961513519f, - 0.753093302249908f, 0.431211978197098f, 0.753423988819122f, 0.431017726659775f, - 0.753754496574402f, 0.430823236703873f, 0.754084885120392f, 0.430628478527069f, - 0.754415094852448f, 0.430433481931686f, 0.754745125770569f, 0.430238217115402f, - 0.755075037479401f, 0.430042684078217f, 0.755404829978943f, 0.429846942424774f, - 0.755734443664551f, 0.429650902748108f, 0.756063878536224f, 0.429454624652863f, - 0.756393194198608f, 0.429258108139038f, 0.756722390651703f, 0.429061323404312f, - 0.757051348686218f, 0.428864300251007f, 0.757380247116089f, 0.428667008876801f, - 0.757708966732025f, 0.428469479084015f, 0.758037507534027f, 0.428271710872650f, - 0.758365929126740f, 0.428073674440384f, 0.758694171905518f, 0.427875369787216f, - 0.759022235870361f, 0.427676826715469f, 0.759350180625916f, 0.427478045225143f, - 0.759678006172180f, 0.427278995513916f, 0.760005652904511f, 0.427079707384110f, - 0.760333120822906f, 0.426880151033401f, 0.760660469532013f, 0.426680356264114f, - 0.760987639427185f, 0.426480293273926f, 0.761314690113068f, 0.426279991865158f, - 0.761641561985016f, 0.426079452037811f, 0.761968255043030f, 0.425878643989563f, - 0.762294828891754f, 0.425677597522736f, 0.762621283531189f, 0.425476282835007f, - 0.762947499752045f, 0.425274729728699f, 0.763273596763611f, 0.425072938203812f, - 0.763599574565887f, 0.424870878458023f, 0.763925373554230f, 0.424668580293655f, - 0.764250993728638f, 0.424466013908386f, 0.764576494693756f, 0.424263238906860f, - 0.764901816844940f, 0.424060165882111f, 0.765226960182190f, 0.423856884241104f, - 0.765551984310150f, 0.423653304576874f, 0.765876889228821f, 0.423449516296387f, - 0.766201555728912f, 0.423245459794998f, 0.766526103019714f, 0.423041164875031f, - 0.766850471496582f, 0.422836631536484f, 0.767174720764160f, 0.422631829977036f, - 0.767498791217804f, 0.422426789999008f, 0.767822742462158f, 0.422221481800079f, - 0.768146514892578f, 0.422015935182571f, 0.768470108509064f, 0.421810150146484f, - 0.768793523311615f, 0.421604126691818f, 0.769116818904877f, 0.421397835016251f, - 0.769439935684204f, 0.421191304922104f, 0.769762933254242f, 0.420984506607056f, - 0.770085752010345f, 0.420777499675751f, 0.770408391952515f, 0.420570224523544f, - 0.770730912685394f, 0.420362681150436f, 0.771053194999695f, 0.420154929161072f, - 0.771375417709351f, 0.419946908950806f, 0.771697402000427f, 0.419738620519638f, - 0.772019267082214f, 0.419530123472214f, 0.772340953350067f, 0.419321358203888f, - 0.772662520408630f, 0.419112354516983f, 0.772983849048615f, 0.418903112411499f, - 0.773305058479309f, 0.418693602085114f, 0.773626148700714f, 0.418483853340149f, - 0.773947000503540f, 0.418273866176605f, 0.774267733097076f, 0.418063640594482f, - 0.774588346481323f, 0.417853146791458f, 0.774908721446991f, 0.417642414569855f, - 0.775228977203369f, 0.417431443929672f, 0.775549054145813f, 0.417220205068588f, - 0.775869011878967f, 0.417008757591248f, 0.776188731193542f, 0.416797041893005f, - 0.776508331298828f, 0.416585087776184f, 0.776827812194824f, 0.416372895240784f, - 0.777147054672241f, 0.416160434484482f, 0.777466177940369f, 0.415947735309601f, - 0.777785122394562f, 0.415734797716141f, 0.778103888034821f, 0.415521621704102f, - 0.778422534465790f, 0.415308207273483f, 0.778741002082825f, 0.415094524621964f, - 0.779059290885925f, 0.414880603551865f, 0.779377400875092f, 0.414666473865509f, - 0.779695332050323f, 0.414452046155930f, 0.780013144016266f, 0.414237409830093f, - 0.780330777168274f, 0.414022535085678f, 0.780648231506348f, 0.413807392120361f, - 0.780965566635132f, 0.413592010736465f, 0.781282722949982f, 0.413376390933990f, - 0.781599700450897f, 0.413160532712936f, 0.781916499137878f, 0.412944436073303f, - 0.782233119010925f, 0.412728071212769f, 0.782549619674683f, 0.412511497735977f, - 0.782865881919861f, 0.412294656038284f, 0.783182024955750f, 0.412077575922012f, - 0.783498048782349f, 0.411860257387161f, 0.783813834190369f, 0.411642700433731f, - 0.784129500389099f, 0.411424905061722f, 0.784444928169250f, 0.411206841468811f, - 0.784760236740112f, 0.410988569259644f, 0.785075426101685f, 0.410770028829575f, - 0.785390377044678f, 0.410551249980927f, 0.785705149173737f, 0.410332232713699f, - 0.786019802093506f, 0.410112977027893f, 0.786334276199341f, 0.409893482923508f, - 0.786648571491241f, 0.409673750400543f, 0.786962687969208f, 0.409453779459000f, - 0.787276685237885f, 0.409233570098877f, 0.787590444087982f, 0.409013092517853f, - 0.787904083728790f, 0.408792406320572f, 0.788217544555664f, 0.408571451902390f, - 0.788530826568604f, 0.408350288867950f, 0.788843929767609f, 0.408128857612610f, - 0.789156913757324f, 0.407907217741013f, 0.789469659328461f, 0.407685309648514f, - 0.789782285690308f, 0.407463163137436f, 0.790094733238220f, 0.407240778207779f, - 0.790407001972198f, 0.407018154859543f, 0.790719091892242f, 0.406795293092728f, - 0.791031002998352f, 0.406572192907333f, 0.791342735290527f, 0.406348884105682f, - 0.791654348373413f, 0.406125307083130f, 0.791965723037720f, 0.405901491641998f, - 0.792276978492737f, 0.405677437782288f, 0.792588055133820f, 0.405453115701675f, - 0.792898952960968f, 0.405228585004807f, 0.793209671974182f, 0.405003815889359f, - 0.793520212173462f, 0.404778808355331f, 0.793830573558807f, 0.404553562402725f, - 0.794140756130219f, 0.404328078031540f, 0.794450819492340f, 0.404102355241776f, - 0.794760644435883f, 0.403876423835754f, 0.795070350170136f, 0.403650224208832f, - 0.795379877090454f, 0.403423786163330f, 0.795689165592194f, 0.403197109699249f, - 0.795998334884644f, 0.402970194816589f, 0.796307325363159f, 0.402743041515350f, - 0.796616137027740f, 0.402515679597855f, 0.796924769878387f, 0.402288049459457f, - 0.797233223915100f, 0.402060180902481f, 0.797541558742523f, 0.401832103729248f, - 0.797849655151367f, 0.401603758335114f, 0.798157572746277f, 0.401375204324722f, - 0.798465371131897f, 0.401146411895752f, 0.798772931098938f, 0.400917351245880f, - 0.799080371856689f, 0.400688081979752f, 0.799387574195862f, 0.400458574295044f, - 0.799694657325745f, 0.400228828191757f, 0.800001561641693f, 0.399998843669891f, - 0.800308227539063f, 0.399768620729446f, 0.800614774227142f, 0.399538189172745f, - 0.800921142101288f, 0.399307489395142f, 0.801227271556854f, 0.399076581001282f, - 0.801533281803131f, 0.398845434188843f, 0.801839113235474f, 0.398614019155502f, - 0.802144765853882f, 0.398382395505905f, 0.802450239658356f, 0.398150533437729f, - 0.802755534648895f, 0.397918462753296f, 0.803060650825500f, 0.397686123847961f, - 0.803365588188171f, 0.397453576326370f, 0.803670346736908f, 0.397220760583878f, - 0.803974866867065f, 0.396987736225128f, 0.804279267787933f, 0.396754473447800f, - 0.804583489894867f, 0.396520972251892f, 0.804887533187866f, 0.396287262439728f, - 0.805191397666931f, 0.396053284406662f, 0.805495083332062f, 0.395819097757339f, - 0.805798590183258f, 0.395584672689438f, 0.806101918220520f, 0.395350009202957f, - 0.806405067443848f, 0.395115107297897f, 0.806707978248596f, 0.394879996776581f, - 0.807010769844055f, 0.394644618034363f, 0.807313382625580f, 0.394409030675888f, - 0.807615816593170f, 0.394173204898834f, 0.807918012142181f, 0.393937170505524f, - 0.808220088481903f, 0.393700867891312f, 0.808521986007690f, 0.393464356660843f, - 0.808823645114899f, 0.393227607011795f, 0.809125185012817f, 0.392990618944168f, - 0.809426486492157f, 0.392753422260284f, 0.809727668762207f, 0.392515957355499f, - 0.810028612613678f, 0.392278283834457f, 0.810329377651215f, 0.392040401697159f, - 0.810629963874817f, 0.391802251338959f, 0.810930430889130f, 0.391563892364502f, - 0.811230659484863f, 0.391325294971466f, 0.811530709266663f, 0.391086459159851f, - 0.811830580234528f, 0.390847414731979f, 0.812130272388458f, 0.390608131885529f, - 0.812429726123810f, 0.390368610620499f, 0.812729060649872f, 0.390128880739212f, - 0.813028216362000f, 0.389888882637024f, 0.813327133655548f, 0.389648675918579f, - 0.813625931739807f, 0.389408260583878f, 0.813924491405487f, 0.389167606830597f, - 0.814222872257233f, 0.388926714658737f, 0.814521074295044f, 0.388685584068298f, - 0.814819097518921f, 0.388444244861603f, 0.815116941928864f, 0.388202667236328f, - 0.815414607524872f, 0.387960851192474f, 0.815712094306946f, 0.387718826532364f, - 0.816009342670441f, 0.387476563453674f, 0.816306471824646f, 0.387234061956406f, - 0.816603362560272f, 0.386991351842880f, 0.816900074481964f, 0.386748403310776f, - 0.817196667194366f, 0.386505216360092f, 0.817493021488190f, 0.386261820793152f, - 0.817789137363434f, 0.386018186807632f, 0.818085134029388f, 0.385774344205856f, - 0.818380951881409f, 0.385530263185501f, 0.818676531314850f, 0.385285943746567f, - 0.818971931934357f, 0.385041415691376f, 0.819267153739929f, 0.384796649217606f, - 0.819562196731567f, 0.384551674127579f, 0.819857060909271f, 0.384306460618973f, - 0.820151746273041f, 0.384061008691788f, 0.820446193218231f, 0.383815348148346f, - 0.820740520954132f, 0.383569449186325f, 0.821034610271454f, 0.383323341608047f, - 0.821328520774841f, 0.383076995611191f, 0.821622252464294f, 0.382830440998077f, - 0.821915745735168f, 0.382583618164063f, 0.822209119796753f, 0.382336616516113f, - 0.822502255439758f, 0.382089376449585f, 0.822795212268829f, 0.381841897964478f, - 0.823087990283966f, 0.381594210863113f, 0.823380589485168f, 0.381346285343170f, - 0.823673009872437f, 0.381098151206970f, 0.823965191841125f, 0.380849778652191f, - 0.824257194995880f, 0.380601197481155f, 0.824549019336700f, 0.380352377891541f, - 0.824840664863586f, 0.380103349685669f, 0.825132071971893f, 0.379854083061218f, - 0.825423359870911f, 0.379604607820511f, 0.825714409351349f, 0.379354894161224f, - 0.826005280017853f, 0.379104942083359f, 0.826295912265778f, 0.378854811191559f, - 0.826586425304413f, 0.378604412078857f, 0.826876699924469f, 0.378353834152222f, - 0.827166795730591f, 0.378102988004684f, 0.827456712722778f, 0.377851963043213f, - 0.827746450901031f, 0.377600699663162f, 0.828035950660706f, 0.377349197864532f, - 0.828325271606445f, 0.377097487449646f, 0.828614413738251f, 0.376845568418503f, - 0.828903317451477f, 0.376593410968781f, 0.829192101955414f, 0.376341015100479f, - 0.829480648040771f, 0.376088410615921f, 0.829769015312195f, 0.375835597515106f, - 0.830057144165039f, 0.375582575798035f, 0.830345153808594f, 0.375329315662384f, - 0.830632925033569f, 0.375075817108154f, 0.830920517444611f, 0.374822109937668f, - 0.831207871437073f, 0.374568194150925f, 0.831495106220245f, 0.374314039945602f, - 0.831782102584839f, 0.374059677124023f, 0.832068860530853f, 0.373805105686188f, - 0.832355499267578f, 0.373550295829773f, 0.832641899585724f, 0.373295277357101f, - 0.832928121089935f, 0.373040050268173f, 0.833214163780212f, 0.372784584760666f, - 0.833499968051910f, 0.372528880834579f, 0.833785593509674f, 0.372272998094559f, - 0.834071040153503f, 0.372016876935959f, 0.834356248378754f, 0.371760547161102f, - 0.834641277790070f, 0.371503978967667f, 0.834926128387451f, 0.371247202157974f, - 0.835210800170898f, 0.370990216732025f, 0.835495233535767f, 0.370732992887497f, - 0.835779488086700f, 0.370475560426712f, 0.836063504219055f, 0.370217919349670f, - 0.836347401142120f, 0.369960039854050f, 0.836631059646606f, 0.369701951742172f, - 0.836914479732513f, 0.369443655014038f, 0.837197780609131f, 0.369185149669647f, - 0.837480843067169f, 0.368926405906677f, 0.837763667106628f, 0.368667453527451f, - 0.838046371936798f, 0.368408292531967f, 0.838328838348389f, 0.368148893117905f, - 0.838611066341400f, 0.367889285087585f, 0.838893175125122f, 0.367629468441010f, - 0.839175045490265f, 0.367369443178177f, 0.839456677436829f, 0.367109179496765f, - 0.839738130569458f, 0.366848707199097f, 0.840019404888153f, 0.366588026285172f, - 0.840300500392914f, 0.366327136754990f, 0.840581357479095f, 0.366066008806229f, - 0.840862035751343f, 0.365804702043533f, 0.841142535209656f, 0.365543156862259f, - 0.841422796249390f, 0.365281373262405f, 0.841702818870544f, 0.365019410848618f, - 0.841982722282410f, 0.364757210016251f, 0.842262387275696f, 0.364494800567627f, - 0.842541813850403f, 0.364232182502747f, 0.842821121215820f, 0.363969355821610f, - 0.843100130558014f, 0.363706320524216f, 0.843379020690918f, 0.363443046808243f, - 0.843657672405243f, 0.363179564476013f, 0.843936145305634f, 0.362915903329849f, - 0.844214379787445f, 0.362651973962784f, 0.844492435455322f, 0.362387865781784f, - 0.844770252704620f, 0.362123548984528f, 0.845047891139984f, 0.361858993768692f, - 0.845325350761414f, 0.361594229936600f, 0.845602571964264f, 0.361329287290573f, - 0.845879614353180f, 0.361064106225967f, 0.846156477928162f, 0.360798716545105f, - 0.846433103084564f, 0.360533088445663f, 0.846709489822388f, 0.360267281532288f, - 0.846985757350922f, 0.360001266002655f, 0.847261726856232f, 0.359735012054443f, - 0.847537577152252f, 0.359468549489975f, 0.847813189029694f, 0.359201908111572f, - 0.848088562488556f, 0.358935028314590f, 0.848363757133484f, 0.358667939901352f, - 0.848638772964478f, 0.358400642871857f, 0.848913550376892f, 0.358133137226105f, - 0.849188148975372f, 0.357865422964096f, 0.849462509155273f, 0.357597470283508f, - 0.849736690521240f, 0.357329338788986f, 0.850010633468628f, 0.357060998678207f, - 0.850284397602081f, 0.356792420148849f, 0.850557923316956f, 0.356523662805557f, - 0.850831270217896f, 0.356254696846008f, 0.851104438304901f, 0.355985492467880f, - 0.851377367973328f, 0.355716109275818f, 0.851650118827820f, 0.355446487665176f, - 0.851922631263733f, 0.355176687240601f, 0.852194905281067f, 0.354906648397446f, - 0.852467060089111f, 0.354636400938034f, 0.852738916873932f, 0.354365974664688f, - 0.853010654449463f, 0.354095309972763f, 0.853282094001770f, 0.353824466466904f, - 0.853553414344788f, 0.353553384542465f, 0.853824436664581f, 0.353282123804092f, - 0.854095339775085f, 0.353010624647141f, 0.854365944862366f, 0.352738946676254f, - 0.854636430740356f, 0.352467030286789f, 0.854906618595123f, 0.352194935083389f, - 0.855176687240601f, 0.351922631263733f, 0.855446517467499f, 0.351650089025497f, - 0.855716109275818f, 0.351377367973328f, 0.855985522270203f, 0.351104438304901f, - 0.856254696846008f, 0.350831300020218f, 0.856523692607880f, 0.350557953119278f, - 0.856792449951172f, 0.350284397602081f, 0.857060968875885f, 0.350010633468628f, - 0.857329368591309f, 0.349736660718918f, 0.857597470283508f, 0.349462509155273f, - 0.857865393161774f, 0.349188119173050f, 0.858133137226105f, 0.348913550376892f, - 0.858400642871857f, 0.348638743162155f, 0.858667910099030f, 0.348363757133484f, - 0.858934998512268f, 0.348088562488556f, 0.859201908111572f, 0.347813159227371f, - 0.859468579292297f, 0.347537547349930f, 0.859735012054443f, 0.347261756658554f, - 0.860001266002655f, 0.346985727548599f, 0.860267281532288f, 0.346709519624710f, - 0.860533118247986f, 0.346433073282242f, 0.860798716545105f, 0.346156448125839f, - 0.861064076423645f, 0.345879614353180f, 0.861329257488251f, 0.345602601766586f, - 0.861594259738922f, 0.345325350761414f, 0.861859023571014f, 0.345047920942307f, - 0.862123548984528f, 0.344770282506943f, 0.862387895584106f, 0.344492435455322f, - 0.862652003765106f, 0.344214379787445f, 0.862915873527527f, 0.343936115503311f, - 0.863179564476013f, 0.343657672405243f, 0.863443076610565f, 0.343379020690918f, - 0.863706290721893f, 0.343100160360336f, 0.863969385623932f, 0.342821091413498f, - 0.864232182502747f, 0.342541843652725f, 0.864494800567627f, 0.342262357473373f, - 0.864757239818573f, 0.341982692480087f, 0.865019381046295f, 0.341702848672867f, - 0.865281403064728f, 0.341422766447067f, 0.865543127059937f, 0.341142505407333f, - 0.865804672241211f, 0.340862035751343f, 0.866066038608551f, 0.340581357479095f, - 0.866327106952667f, 0.340300500392914f, 0.866588056087494f, 0.340019434690475f, - 0.866848707199097f, 0.339738160371780f, 0.867109179496765f, 0.339456677436829f, - 0.867369413375854f, 0.339175015687943f, 0.867629468441010f, 0.338893145322800f, - 0.867889285087585f, 0.338611096143723f, 0.868148922920227f, 0.338328808546066f, - 0.868408262729645f, 0.338046342134476f, 0.868667483329773f, 0.337763696908951f, - 0.868926405906677f, 0.337480813264847f, 0.869185149669647f, 0.337197750806808f, - 0.869443655014038f, 0.336914509534836f, 0.869701981544495f, 0.336631029844284f, - 0.869960069656372f, 0.336347371339798f, 0.870217919349670f, 0.336063534021378f, - 0.870475590229034f, 0.335779488086700f, 0.870733022689819f, 0.335495233535767f, - 0.870990216732025f, 0.335210770368576f, 0.871247172355652f, 0.334926128387451f, - 0.871503949165344f, 0.334641307592392f, 0.871760547161102f, 0.334356248378754f, - 0.872016847133636f, 0.334071010351181f, 0.872272968292236f, 0.333785593509674f, - 0.872528910636902f, 0.333499968051910f, 0.872784554958344f, 0.333214133977890f, - 0.873040020465851f, 0.332928121089935f, 0.873295307159424f, 0.332641899585724f, - 0.873550295829773f, 0.332355499267578f, 0.873805105686188f, 0.332068890333176f, - 0.874059677124023f, 0.331782072782516f, 0.874314069747925f, 0.331495076417923f, - 0.874568223953247f, 0.331207901239395f, 0.874822139739990f, 0.330920487642288f, - 0.875075817108154f, 0.330632925033569f, 0.875329315662384f, 0.330345153808594f, - 0.875582575798035f, 0.330057173967361f, 0.875835597515106f, 0.329769015312195f, - 0.876088440418243f, 0.329480648040771f, 0.876341044902802f, 0.329192101955414f, - 0.876593410968781f, 0.328903347253799f, 0.876845538616180f, 0.328614413738251f, - 0.877097487449646f, 0.328325271606445f, 0.877349197864532f, 0.328035950660706f, - 0.877600669860840f, 0.327746421098709f, 0.877851963043213f, 0.327456712722778f, - 0.878103017807007f, 0.327166795730591f, 0.878353834152222f, 0.326876699924469f, - 0.878604412078857f, 0.326586425304413f, 0.878854811191559f, 0.326295942068100f, - 0.879104971885681f, 0.326005280017853f, 0.879354894161224f, 0.325714409351349f, - 0.879604578018188f, 0.325423330068588f, 0.879854083061218f, 0.325132101774216f, - 0.880103349685669f, 0.324840664863586f, 0.880352377891541f, 0.324549019336700f, - 0.880601167678833f, 0.324257194995880f, 0.880849778652191f, 0.323965191841125f, - 0.881098151206970f, 0.323672980070114f, 0.881346285343170f, 0.323380589485168f, - 0.881594181060791f, 0.323088020086288f, 0.881841897964478f, 0.322795242071152f, - 0.882089376449585f, 0.322502255439758f, 0.882336616516113f, 0.322209119796753f, - 0.882583618164063f, 0.321915775537491f, 0.882830440998077f, 0.321622252464294f, - 0.883076965808868f, 0.321328520774841f, 0.883323311805725f, 0.321034610271454f, - 0.883569478988647f, 0.320740520954132f, 0.883815348148346f, 0.320446223020554f, - 0.884061038494110f, 0.320151746273041f, 0.884306430816650f, 0.319857090711594f, - 0.884551644325256f, 0.319562226533890f, 0.884796679019928f, 0.319267183542252f, - 0.885041415691376f, 0.318971961736679f, 0.885285973548889f, 0.318676531314850f, - 0.885530233383179f, 0.318380922079086f, 0.885774314403534f, 0.318085134029388f, - 0.886018216609955f, 0.317789167165756f, 0.886261820793152f, 0.317492991685867f, - 0.886505246162415f, 0.317196637392044f, 0.886748373508453f, 0.316900104284287f, - 0.886991322040558f, 0.316603392362595f, 0.887234091758728f, 0.316306471824646f, - 0.887476563453674f, 0.316009372472763f, 0.887718796730042f, 0.315712094306946f, - 0.887960851192474f, 0.315414607524872f, 0.888202667236328f, 0.315116971731186f, - 0.888444244861603f, 0.314819127321243f, 0.888685584068298f, 0.314521104097366f, - 0.888926684856415f, 0.314222872257233f, 0.889167606830597f, 0.313924491405487f, - 0.889408230781555f, 0.313625901937485f, 0.889648675918579f, 0.313327133655548f, - 0.889888882637024f, 0.313028186559677f, 0.890128850936890f, 0.312729060649872f, - 0.890368640422821f, 0.312429755926132f, 0.890608131885529f, 0.312130242586136f, - 0.890847444534302f, 0.311830550432205f, 0.891086459159851f, 0.311530679464340f, - 0.891325294971466f, 0.311230629682541f, 0.891563892364502f, 0.310930401086807f, - 0.891802251338959f, 0.310629993677139f, 0.892040371894836f, 0.310329377651215f, - 0.892278313636780f, 0.310028612613678f, 0.892515957355499f, 0.309727638959885f, - 0.892753422260284f, 0.309426486492157f, 0.892990648746490f, 0.309125155210495f, - 0.893227577209473f, 0.308823645114899f, 0.893464326858521f, 0.308521956205368f, - 0.893700897693634f, 0.308220088481903f, 0.893937170505524f, 0.307918041944504f, - 0.894173204898834f, 0.307615786790848f, 0.894409060478210f, 0.307313382625580f, - 0.894644618034363f, 0.307010769844055f, 0.894879996776581f, 0.306708008050919f, - 0.895115137100220f, 0.306405037641525f, 0.895349979400635f, 0.306101888418198f, - 0.895584642887115f, 0.305798590183258f, 0.895819067955017f, 0.305495083332062f, - 0.896053314208984f, 0.305191397666931f, 0.896287262439728f, 0.304887533187866f, - 0.896520972251892f, 0.304583519697189f, 0.896754503250122f, 0.304279297590256f, - 0.896987736225128f, 0.303974896669388f, 0.897220790386200f, 0.303670316934586f, - 0.897453546524048f, 0.303365558385849f, 0.897686123847961f, 0.303060621023178f, - 0.897918462753296f, 0.302755534648895f, 0.898150563240051f, 0.302450239658356f, - 0.898382425308228f, 0.302144765853882f, 0.898614048957825f, 0.301839113235474f, - 0.898845434188843f, 0.301533311605453f, 0.899076581001282f, 0.301227301359177f, - 0.899307489395142f, 0.300921112298965f, 0.899538159370422f, 0.300614774227142f, - 0.899768650531769f, 0.300308227539063f, 0.899998843669891f, 0.300001531839371f, - 0.900228857994080f, 0.299694657325745f, 0.900458574295044f, 0.299387603998184f, - 0.900688111782074f, 0.299080342054367f, 0.900917351245880f, 0.298772931098938f, - 0.901146411895752f, 0.298465341329575f, 0.901375174522400f, 0.298157602548599f, - 0.901603758335114f, 0.297849655151367f, 0.901832103729248f, 0.297541528940201f, - 0.902060210704803f, 0.297233253717422f, 0.902288019657135f, 0.296924799680710f, - 0.902515649795532f, 0.296616137027740f, 0.902743041515350f, 0.296307325363159f, - 0.902970194816589f, 0.295998334884644f, 0.903197109699249f, 0.295689195394516f, - 0.903423786163330f, 0.295379847288132f, 0.903650224208832f, 0.295070350170136f, - 0.903876423835754f, 0.294760644435883f, 0.904102385044098f, 0.294450789690018f, - 0.904328107833862f, 0.294140785932541f, 0.904553592205048f, 0.293830573558807f, - 0.904778838157654f, 0.293520182371140f, 0.905003845691681f, 0.293209642171860f, - 0.905228614807129f, 0.292898923158646f, 0.905453145503998f, 0.292588025331497f, - 0.905677437782288f, 0.292276978492737f, 0.905901491641998f, 0.291965723037720f, - 0.906125307083130f, 0.291654318571091f, 0.906348884105682f, 0.291342735290527f, - 0.906572222709656f, 0.291031002998352f, 0.906795322895050f, 0.290719062089920f, - 0.907018184661865f, 0.290406972169876f, 0.907240808010101f, 0.290094703435898f, - 0.907463192939758f, 0.289782285690308f, 0.907685279846191f, 0.289469659328461f, - 0.907907187938690f, 0.289156883955002f, 0.908128857612610f, 0.288843959569931f, - 0.908350288867950f, 0.288530826568604f, 0.908571481704712f, 0.288217544555664f, - 0.908792436122894f, 0.287904083728790f, 0.909013092517853f, 0.287590473890305f, - 0.909233570098877f, 0.287276685237885f, 0.909453809261322f, 0.286962717771530f, - 0.909673750400543f, 0.286648571491241f, 0.909893512725830f, 0.286334276199341f, - 0.910112977027893f, 0.286019802093506f, 0.910332262516022f, 0.285705178976059f, - 0.910551249980927f, 0.285390377044678f, 0.910769999027252f, 0.285075396299362f, - 0.910988569259644f, 0.284760266542435f, 0.911206841468811f, 0.284444957971573f, - 0.911424875259399f, 0.284129470586777f, 0.911642670631409f, 0.283813834190369f, - 0.911860227584839f, 0.283498018980026f, 0.912077546119690f, 0.283182054758072f, - 0.912294626235962f, 0.282865911722183f, 0.912511467933655f, 0.282549589872360f, - 0.912728071212769f, 0.282233119010925f, 0.912944436073303f, 0.281916469335556f, - 0.913160502910614f, 0.281599670648575f, 0.913376390933990f, 0.281282693147659f, - 0.913592040538788f, 0.280965566635132f, 0.913807392120361f, 0.280648261308670f, - 0.914022505283356f, 0.280330777168274f, 0.914237439632416f, 0.280013144016266f, - 0.914452075958252f, 0.279695361852646f, 0.914666473865509f, 0.279377400875092f, - 0.914880633354187f, 0.279059261083603f, 0.915094554424286f, 0.278740972280502f, - 0.915308177471161f, 0.278422504663467f, 0.915521621704102f, 0.278103888034821f, - 0.915734827518463f, 0.277785122394562f, 0.915947735309601f, 0.277466177940369f, - 0.916160404682159f, 0.277147054672241f, 0.916372895240784f, 0.276827782392502f, - 0.916585087776184f, 0.276508361101151f, 0.916797041893005f, 0.276188760995865f, - 0.917008757591248f, 0.275868982076645f, 0.917220234870911f, 0.275549083948135f, - 0.917431414127350f, 0.275228977203369f, 0.917642414569855f, 0.274908751249313f, - 0.917853116989136f, 0.274588316679001f, 0.918063640594482f, 0.274267762899399f, - 0.918273866176605f, 0.273947030305862f, 0.918483853340149f, 0.273626148700714f, - 0.918693602085114f, 0.273305088281631f, 0.918903112411499f, 0.272983878850937f, - 0.919112324714661f, 0.272662490606308f, 0.919321358203888f, 0.272340953350067f, - 0.919530093669891f, 0.272019267082214f, 0.919738650321960f, 0.271697402000427f, - 0.919946908950806f, 0.271375387907028f, 0.920154929161072f, 0.271053224802017f, - 0.920362710952759f, 0.270730882883072f, 0.920570194721222f, 0.270408391952515f, - 0.920777499675751f, 0.270085722208023f, 0.920984506607056f, 0.269762933254242f, - 0.921191275119781f, 0.269439965486526f, 0.921397805213928f, 0.269116818904877f, - 0.921604096889496f, 0.268793523311615f, 0.921810150146484f, 0.268470078706741f, - 0.922015964984894f, 0.268146485090256f, 0.922221481800079f, 0.267822742462158f, - 0.922426760196686f, 0.267498821020126f, 0.922631800174713f, 0.267174720764160f, - 0.922836601734161f, 0.266850501298904f, 0.923041164875031f, 0.266526103019714f, - 0.923245489597321f, 0.266201555728912f, 0.923449516296387f, 0.265876859426498f, - 0.923653304576874f, 0.265552014112473f, 0.923856854438782f, 0.265226989984512f, - 0.924060165882111f, 0.264901816844940f, 0.924263238906860f, 0.264576494693756f, - 0.924466013908386f, 0.264250993728638f, 0.924668610095978f, 0.263925373554230f, - 0.924870908260345f, 0.263599574565887f, 0.925072908401489f, 0.263273626565933f, - 0.925274729728699f, 0.262947499752045f, 0.925476312637329f, 0.262621253728867f, - 0.925677597522736f, 0.262294828891754f, 0.925878643989563f, 0.261968284845352f, - 0.926079452037811f, 0.261641561985016f, 0.926280021667480f, 0.261314690113068f, - 0.926480293273926f, 0.260987639427185f, 0.926680326461792f, 0.260660469532013f, - 0.926880121231079f, 0.260333120822906f, 0.927079677581787f, 0.260005623102188f, - 0.927278995513916f, 0.259678006172180f, 0.927478015422821f, 0.259350210428238f, - 0.927676856517792f, 0.259022265672684f, 0.927875399589539f, 0.258694142103195f, - 0.928073644638062f, 0.258365899324417f, 0.928271710872650f, 0.258037507534027f, - 0.928469479084015f, 0.257708936929703f, 0.928667008876801f, 0.257380217313766f, - 0.928864300251007f, 0.257051378488541f, 0.929061353206635f, 0.256722360849380f, - 0.929258108139038f, 0.256393194198608f, 0.929454624652863f, 0.256063878536224f, - 0.929650902748108f, 0.255734413862228f, 0.929846942424774f, 0.255404800176620f, - 0.930042684078217f, 0.255075037479401f, 0.930238187313080f, 0.254745125770569f, - 0.930433452129364f, 0.254415065050125f, 0.930628478527069f, 0.254084855318069f, - 0.930823206901550f, 0.253754496574402f, 0.931017756462097f, 0.253423988819122f, - 0.931211948394775f, 0.253093332052231f, 0.931405961513519f, 0.252762526273727f, - 0.931599736213684f, 0.252431541681290f, 0.931793212890625f, 0.252100437879562f, - 0.931986451148987f, 0.251769185066223f, 0.932179391384125f, 0.251437783241272f, - 0.932372152805328f, 0.251106232404709f, 0.932564616203308f, 0.250774532556534f, - 0.932756841182709f, 0.250442683696747f, 0.932948768138886f, 0.250110685825348f, - 0.933140456676483f, 0.249778553843498f, 0.933331906795502f, 0.249446272850037f, - 0.933523118495941f, 0.249113827943802f, 0.933714091777802f, 0.248781248927116f, - 0.933904767036438f, 0.248448520898819f, 0.934095203876495f, 0.248115643858910f, - 0.934285342693329f, 0.247782632708550f, 0.934475243091583f, 0.247449472546577f, - 0.934664964675903f, 0.247116148471832f, 0.934854328632355f, 0.246782705187798f, - 0.935043513774872f, 0.246449097990990f, 0.935232400894165f, 0.246115356683731f, - 0.935421049594879f, 0.245781451463699f, 0.935609400272369f, 0.245447427034378f, - 0.935797572135925f, 0.245113238692284f, 0.935985386371613f, 0.244778916239738f, - 0.936173021793365f, 0.244444444775581f, 0.936360359191895f, 0.244109839200974f, - 0.936547517776489f, 0.243775084614754f, 0.936734318733215f, 0.243440181016922f, - 0.936920940876007f, 0.243105143308640f, 0.937107264995575f, 0.242769956588745f, - 0.937293350696564f, 0.242434620857239f, 0.937479138374329f, 0.242099151015282f, - 0.937664687633514f, 0.241763532161713f, 0.937849998474121f, 0.241427779197693f, - 0.938035070896149f, 0.241091892123222f, 0.938219845294952f, 0.240755841135979f, - 0.938404381275177f, 0.240419670939446f, 0.938588619232178f, 0.240083336830139f, - 0.938772618770599f, 0.239746883511543f, 0.938956379890442f, 0.239410281181335f, - 0.939139902591705f, 0.239073529839516f, 0.939323127269745f, 0.238736644387245f, - 0.939506113529205f, 0.238399609923363f, 0.939688861370087f, 0.238062441349030f, - 0.939871311187744f, 0.237725138664246f, 0.940053522586823f, 0.237387686967850f, - 0.940235435962677f, 0.237050101161003f, 0.940417110919952f, 0.236712381243706f, - 0.940598547458649f, 0.236374512314796f, 0.940779745578766f, 0.236036509275436f, - 0.940960645675659f, 0.235698372125626f, 0.941141307353973f, 0.235360085964203f, - 0.941321671009064f, 0.235021665692329f, 0.941501796245575f, 0.234683111310005f, - 0.941681683063507f, 0.234344407916069f, 0.941861271858215f, 0.234005570411682f, - 0.942040622234344f, 0.233666598796844f, 0.942219734191895f, 0.233327493071556f, - 0.942398548126221f, 0.232988253235817f, 0.942577123641968f, 0.232648864388466f, - 0.942755401134491f, 0.232309341430664f, 0.942933499813080f, 0.231969684362412f, - 0.943111240863800f, 0.231629893183708f, 0.943288803100586f, 0.231289967894554f, - 0.943466067314148f, 0.230949893593788f, 0.943643093109131f, 0.230609700083733f, - 0.943819820880890f, 0.230269357562065f, 0.943996310234070f, 0.229928880929947f, - 0.944172501564026f, 0.229588270187378f, 0.944348454475403f, 0.229247525334358f, - 0.944524168968201f, 0.228906646370888f, 0.944699645042419f, 0.228565633296967f, - 0.944874763488770f, 0.228224486112595f, 0.945049703121185f, 0.227883204817772f, - 0.945224344730377f, 0.227541789412498f, 0.945398747920990f, 0.227200239896774f, - 0.945572853088379f, 0.226858556270599f, 0.945746779441834f, 0.226516738533974f, - 0.945920348167419f, 0.226174786686897f, 0.946093678474426f, 0.225832715630531f, - 0.946266770362854f, 0.225490495562553f, 0.946439623832703f, 0.225148141384125f, - 0.946612179279327f, 0.224805667996407f, 0.946784436702728f, 0.224463045597076f, - 0.946956455707550f, 0.224120303988457f, 0.947128236293793f, 0.223777428269386f, - 0.947299718856812f, 0.223434418439865f, 0.947470963001251f, 0.223091274499893f, - 0.947641968727112f, 0.222748011350632f, 0.947812676429749f, 0.222404599189758f, - 0.947983145713806f, 0.222061067819595f, 0.948153316974640f, 0.221717402338982f, - 0.948323249816895f, 0.221373617649078f, 0.948492884635925f, 0.221029683947563f, - 0.948662281036377f, 0.220685631036758f, 0.948831439018250f, 0.220341444015503f, - 0.949000298976898f, 0.219997137784958f, 0.949168920516968f, 0.219652697443962f, - 0.949337244033813f, 0.219308122992516f, 0.949505329132080f, 0.218963414430618f, - 0.949673116207123f, 0.218618586659431f, 0.949840664863586f, 0.218273624777794f, - 0.950007975101471f, 0.217928543686867f, 0.950174987316132f, 0.217583328485489f, - 0.950341701507568f, 0.217237979173660f, 0.950508177280426f, 0.216892510652542f, - 0.950674414634705f, 0.216546908020973f, 0.950840353965759f, 0.216201186180115f, - 0.951006054878235f, 0.215855330228806f, 0.951171517372131f, 0.215509355068207f, - 0.951336681842804f, 0.215163245797157f, 0.951501548290253f, 0.214817002415657f, - 0.951666176319122f, 0.214470639824867f, 0.951830565929413f, 0.214124158024788f, - 0.951994657516479f, 0.213777542114258f, 0.952158451080322f, 0.213430806994438f, - 0.952322065830231f, 0.213083937764168f, 0.952485322952271f, 0.212736949324608f, - 0.952648401260376f, 0.212389841675758f, 0.952811121940613f, 0.212042599916458f, - 0.952973663806915f, 0.211695238947868f, 0.953135907649994f, 0.211347743868828f, - 0.953297853469849f, 0.211000129580498f, 0.953459560871124f, 0.210652396082878f, - 0.953620970249176f, 0.210304543375969f, 0.953782141208649f, 0.209956556558609f, - 0.953943073749542f, 0.209608450531960f, 0.954103708267212f, 0.209260210394859f, - 0.954264044761658f, 0.208911851048470f, 0.954424142837524f, 0.208563387393951f, - 0.954584002494812f, 0.208214774727821f, 0.954743564128876f, 0.207866057753563f, - 0.954902827739716f, 0.207517206668854f, 0.955061912536621f, 0.207168251276016f, - 0.955220639705658f, 0.206819161772728f, 0.955379128456116f, 0.206469938158989f, - 0.955537378787994f, 0.206120610237122f, 0.955695331096649f, 0.205771163105965f, - 0.955853044986725f, 0.205421581864357f, 0.956010460853577f, 0.205071896314621f, - 0.956167578697205f, 0.204722076654434f, 0.956324458122253f, 0.204372137784958f, - 0.956481099128723f, 0.204022079706192f, 0.956637442111969f, 0.203671902418137f, - 0.956793546676636f, 0.203321605920792f, 0.956949353218079f, 0.202971190214157f, - 0.957104861736298f, 0.202620655298233f, 0.957260131835938f, 0.202270001173019f, - 0.957415163516998f, 0.201919227838516f, 0.957569897174835f, 0.201568335294724f, - 0.957724332809448f, 0.201217323541641f, 0.957878530025482f, 0.200866192579269f, - 0.958032488822937f, 0.200514942407608f, 0.958186149597168f, 0.200163587927818f, - 0.958339512348175f, 0.199812099337578f, 0.958492636680603f, 0.199460506439209f, - 0.958645522594452f, 0.199108779430389f, 0.958798050880432f, 0.198756948113441f, - 0.958950400352478f, 0.198404997587204f, 0.959102451801300f, 0.198052927851677f, - 0.959254205226898f, 0.197700738906860f, 0.959405720233917f, 0.197348430752754f, - 0.959556937217712f, 0.196996018290520f, 0.959707856178284f, 0.196643486618996f, - 0.959858596324921f, 0.196290835738182f, 0.960008978843689f, 0.195938065648079f, - 0.960159122943878f, 0.195585191249847f, 0.960309028625488f, 0.195232197642326f, - 0.960458636283875f, 0.194879084825516f, 0.960607945919037f, 0.194525867700577f, - 0.960757017135620f, 0.194172516465187f, 0.960905790328979f, 0.193819075822830f, - 0.961054325103760f, 0.193465501070023f, 0.961202561855316f, 0.193111822009087f, - 0.961350560188293f, 0.192758023738861f, 0.961498260498047f, 0.192404121160507f, - 0.961645722389221f, 0.192050099372864f, 0.961792886257172f, 0.191695958375931f, - 0.961939752101898f, 0.191341713070869f, 0.962086379528046f, 0.190987363457680f, - 0.962232708930969f, 0.190632879734039f, 0.962378799915314f, 0.190278306603432f, - 0.962524592876434f, 0.189923599362373f, 0.962670147418976f, 0.189568802714348f, - 0.962815403938293f, 0.189213871955872f, 0.962960422039032f, 0.188858851790428f, - 0.963105142116547f, 0.188503712415695f, 0.963249564170837f, 0.188148453831673f, - 0.963393747806549f, 0.187793090939522f, 0.963537633419037f, 0.187437608838081f, - 0.963681280612946f, 0.187082037329674f, 0.963824629783630f, 0.186726331710815f, - 0.963967680931091f, 0.186370536684990f, 0.964110493659973f, 0.186014622449875f, - 0.964253067970276f, 0.185658603906631f, 0.964395284652710f, 0.185302466154099f, - 0.964537262916565f, 0.184946224093437f, 0.964679002761841f, 0.184589877724648f, - 0.964820444583893f, 0.184233412146568f, 0.964961588382721f, 0.183876842260361f, - 0.965102493762970f, 0.183520168066025f, 0.965243160724640f, 0.183163389563560f, - 0.965383470058441f, 0.182806491851807f, 0.965523540973663f, 0.182449504733086f, - 0.965663373470306f, 0.182092398405075f, 0.965802907943726f, 0.181735187768936f, - 0.965942144393921f, 0.181377857923508f, 0.966081082820892f, 0.181020438671112f, - 0.966219842433929f, 0.180662900209427f, 0.966358244419098f, 0.180305257439613f, - 0.966496407985687f, 0.179947525262833f, 0.966634273529053f, 0.179589673876762f, - 0.966771900653839f, 0.179231703281403f, 0.966909229755402f, 0.178873643279076f, - 0.967046260833740f, 0.178515478968620f, 0.967183053493500f, 0.178157210350037f, - 0.967319548130035f, 0.177798837423325f, 0.967455804347992f, 0.177440345287323f, - 0.967591762542725f, 0.177081763744354f, 0.967727422714233f, 0.176723077893257f, - 0.967862844467163f, 0.176364272832870f, 0.967997968196869f, 0.176005378365517f, - 0.968132853507996f, 0.175646379590034f, 0.968267440795898f, 0.175287276506424f, - 0.968401730060577f, 0.174928069114685f, 0.968535780906677f, 0.174568757414818f, - 0.968669533729553f, 0.174209341406822f, 0.968802988529205f, 0.173849821090698f, - 0.968936204910278f, 0.173490211367607f, 0.969069123268127f, 0.173130482435226f, - 0.969201743602753f, 0.172770664095879f, 0.969334125518799f, 0.172410741448402f, - 0.969466269016266f, 0.172050714492798f, 0.969598054885864f, 0.171690583229065f, - 0.969729602336884f, 0.171330362558365f, 0.969860911369324f, 0.170970037579536f, - 0.969991862773895f, 0.170609608292580f, 0.970122575759888f, 0.170249074697495f, - 0.970253050327301f, 0.169888436794281f, 0.970383226871490f, 0.169527709484100f, - 0.970513105392456f, 0.169166877865791f, 0.970642685890198f, 0.168805956840515f, - 0.970772027969360f, 0.168444931507111f, 0.970901072025299f, 0.168083801865578f, - 0.971029877662659f, 0.167722567915916f, 0.971158385276794f, 0.167361244559288f, - 0.971286594867706f, 0.166999831795692f, 0.971414566040039f, 0.166638299822807f, - 0.971542239189148f, 0.166276678442955f, 0.971669614315033f, 0.165914967656136f, - 0.971796751022339f, 0.165553152561188f, 0.971923589706421f, 0.165191248059273f, - 0.972050130367279f, 0.164829224348068f, 0.972176432609558f, 0.164467126131058f, - 0.972302436828613f, 0.164104923605919f, 0.972428143024445f, 0.163742616772652f, - 0.972553610801697f, 0.163380220532417f, 0.972678780555725f, 0.163017734885216f, - 0.972803652286530f, 0.162655144929886f, 0.972928285598755f, 0.162292465567589f, - 0.973052620887756f, 0.161929681897163f, 0.973176658153534f, 0.161566808819771f, - 0.973300457000732f, 0.161203846335411f, 0.973423957824707f, 0.160840779542923f, - 0.973547160625458f, 0.160477623343468f, 0.973670125007629f, 0.160114362835884f, - 0.973792791366577f, 0.159751012921333f, 0.973915159702301f, 0.159387573599815f, - 0.974037289619446f, 0.159024044871330f, 0.974159121513367f, 0.158660411834717f, - 0.974280655384064f, 0.158296689391136f, 0.974401950836182f, 0.157932877540588f, - 0.974522948265076f, 0.157568961381912f, 0.974643647670746f, 0.157204970717430f, - 0.974764108657837f, 0.156840875744820f, 0.974884271621704f, 0.156476691365242f, - 0.975004136562347f, 0.156112402677536f, 0.975123703479767f, 0.155748039484024f, - 0.975243031978607f, 0.155383571982384f, 0.975362062454224f, 0.155019029974937f, - 0.975480854511261f, 0.154654383659363f, 0.975599288940430f, 0.154289647936821f, - 0.975717484951019f, 0.153924822807312f, 0.975835442543030f, 0.153559908270836f, - 0.975953042507172f, 0.153194904327393f, 0.976070404052734f, 0.152829796075821f, - 0.976187527179718f, 0.152464613318443f, 0.976304292678833f, 0.152099341154099f, - 0.976420819759369f, 0.151733979582787f, 0.976537048816681f, 0.151368513703346f, - 0.976653039455414f, 0.151002973318100f, 0.976768672466278f, 0.150637343525887f, - 0.976884067058563f, 0.150271624326706f, 0.976999223232269f, 0.149905815720558f, - 0.977114021778107f, 0.149539917707443f, 0.977228581905365f, 0.149173930287361f, - 0.977342903614044f, 0.148807853460312f, 0.977456867694855f, 0.148441687226295f, - 0.977570593357086f, 0.148075446486473f, 0.977684020996094f, 0.147709101438522f, - 0.977797150611877f, 0.147342681884766f, 0.977910041809082f, 0.146976172924042f, - 0.978022634983063f, 0.146609574556351f, 0.978134930133820f, 0.146242901682854f, - 0.978246986865997f, 0.145876124501228f, 0.978358685970306f, 0.145509272813797f, - 0.978470146656036f, 0.145142331719399f, 0.978581368923187f, 0.144775316119194f, - 0.978692233562469f, 0.144408211112022f, 0.978802859783173f, 0.144041016697884f, - 0.978913187980652f, 0.143673732876778f, 0.979023277759552f, 0.143306359648705f, - 0.979133009910584f, 0.142938911914825f, 0.979242503643036f, 0.142571389675140f, - 0.979351758956909f, 0.142203763127327f, 0.979460656642914f, 0.141836062073708f, - 0.979569315910339f, 0.141468286514282f, 0.979677677154541f, 0.141100421547890f, - 0.979785740375519f, 0.140732467174530f, 0.979893565177917f, 0.140364438295364f, - 0.980001091957092f, 0.139996320009232f, 0.980108320713043f, 0.139628127217293f, - 0.980215251445770f, 0.139259845018387f, 0.980321943759918f, 0.138891488313675f, - 0.980428338050842f, 0.138523042201996f, 0.980534434318542f, 0.138154521584511f, - 0.980640232563019f, 0.137785911560059f, 0.980745792388916f, 0.137417227029800f, - 0.980851054191589f, 0.137048453092575f, 0.980956017971039f, 0.136679604649544f, - 0.981060683727264f, 0.136310681700706f, 0.981165111064911f, 0.135941669344902f, - 0.981269240379334f, 0.135572582483292f, 0.981373071670532f, 0.135203406214714f, - 0.981476604938507f, 0.134834155440331f, 0.981579899787903f, 0.134464830160141f, - 0.981682896614075f, 0.134095430374146f, 0.981785595417023f, 0.133725941181183f, - 0.981888055801392f, 0.133356377482414f, 0.981990158557892f, 0.132986739277840f, - 0.982092022895813f, 0.132617011666298f, 0.982193589210510f, 0.132247209548950f, - 0.982294917106628f, 0.131877332925797f, 0.982395887374878f, 0.131507381796837f, - 0.982496619224548f, 0.131137356162071f, 0.982597053050995f, 0.130767241120338f, - 0.982697248458862f, 0.130397051572800f, 0.982797086238861f, 0.130026802420616f, - 0.982896685600281f, 0.129656463861465f, 0.982995986938477f, 0.129286035895348f, - 0.983094990253448f, 0.128915548324585f, 0.983193755149841f, 0.128544986248016f, - 0.983292162418365f, 0.128174334764481f, 0.983390331268311f, 0.127803623676300f, - 0.983488261699677f, 0.127432823181152f, 0.983585834503174f, 0.127061963081360f, - 0.983683168888092f, 0.126691013574600f, 0.983780145645142f, 0.126320004463196f, - 0.983876943588257f, 0.125948905944824f, 0.983973383903503f, 0.125577747821808f, - 0.984069526195526f, 0.125206500291824f, 0.984165430068970f, 0.124835193157196f, - 0.984261035919189f, 0.124463804066181f, 0.984356343746185f, 0.124092340469360f, - 0.984451413154602f, 0.123720809817314f, 0.984546124935150f, 0.123349204659462f, - 0.984640598297119f, 0.122977524995804f, 0.984734773635864f, 0.122605770826340f, - 0.984828710556030f, 0.122233949601650f, 0.984922289848328f, 0.121862053871155f, - 0.985015630722046f, 0.121490091085434f, 0.985108673572540f, 0.121118053793907f, - 0.985201418399811f, 0.120745941996574f, 0.985293865203857f, 0.120373763144016f, - 0.985386073589325f, 0.120001509785652f, 0.985477983951569f, 0.119629189372063f, - 0.985569596290588f, 0.119256794452667f, 0.985660910606384f, 0.118884332478046f, - 0.985751926898956f, 0.118511803448200f, 0.985842704772949f, 0.118139199912548f, - 0.985933184623718f, 0.117766529321671f, 0.986023366451263f, 0.117393791675568f, - 0.986113250255585f, 0.117020979523659f, 0.986202836036682f, 0.116648100316525f, - 0.986292183399200f, 0.116275154054165f, 0.986381232738495f, 0.115902140736580f, - 0.986469984054565f, 0.115529052913189f, 0.986558437347412f, 0.115155905485153f, - 0.986646652221680f, 0.114782683551311f, 0.986734509468079f, 0.114409394562244f, - 0.986822128295898f, 0.114036038517952f, 0.986909449100494f, 0.113662622869015f, - 0.986996471881866f, 0.113289132714272f, 0.987083256244659f, 0.112915575504303f, - 0.987169682979584f, 0.112541958689690f, 0.987255871295929f, 0.112168267369270f, - 0.987341761589050f, 0.111794516444206f, 0.987427353858948f, 0.111420698463917f, - 0.987512648105621f, 0.111046813428402f, 0.987597703933716f, 0.110672861337662f, - 0.987682461738586f, 0.110298842191696f, 0.987766921520233f, 0.109924763441086f, - 0.987851083278656f, 0.109550617635250f, 0.987934947013855f, 0.109176412224770f, - 0.988018512725830f, 0.108802139759064f, 0.988101840019226f, 0.108427800238132f, - 0.988184869289398f, 0.108053401112556f, 0.988267600536346f, 0.107678934931755f, - 0.988350033760071f, 0.107304409146309f, 0.988432228565216f, 0.106929816305637f, - 0.988514065742493f, 0.106555156409740f, 0.988595664501190f, 0.106180444359779f, - 0.988676965236664f, 0.105805665254593f, 0.988757967948914f, 0.105430819094181f, - 0.988838672637939f, 0.105055920779705f, 0.988919138908386f, 0.104680955410004f, - 0.988999247550964f, 0.104305922985077f, 0.989079117774963f, 0.103930838406086f, - 0.989158689975739f, 0.103555686771870f, 0.989237964153290f, 0.103180475533009f, - 0.989316940307617f, 0.102805204689503f, 0.989395678043365f, 0.102429874241352f, - 0.989474058151245f, 0.102054484188557f, 0.989552199840546f, 0.101679034531116f, - 0.989630043506622f, 0.101303517818451f, 0.989707589149475f, 0.100927948951721f, - 0.989784896373749f, 0.100552320480347f, 0.989861845970154f, 0.100176624953747f, - 0.989938557147980f, 0.099800877273083f, 0.990014970302582f, 0.099425069987774f, - 0.990091085433960f, 0.099049203097820f, 0.990166902542114f, 0.098673284053802f, - 0.990242421627045f, 0.098297297954559f, 0.990317702293396f, 0.097921259701252f, - 0.990392625331879f, 0.097545161843300f, 0.990467309951782f, 0.097169004380703f, - 0.990541696548462f, 0.096792794764042f, 0.990615785121918f, 0.096416525542736f, - 0.990689575672150f, 0.096040196716785f, 0.990763127803802f, 0.095663815736771f, - 0.990836322307587f, 0.095287375152111f, 0.990909278392792f, 0.094910882413387f, - 0.990981936454773f, 0.094534330070019f, 0.991054296493530f, 0.094157725572586f, - 0.991126358509064f, 0.093781061470509f, 0.991198182106018f, 0.093404345214367f, - 0.991269648075104f, 0.093027576804161f, 0.991340875625610f, 0.092650748789310f, - 0.991411805152893f, 0.092273868620396f, 0.991482377052307f, 0.091896936297417f, - 0.991552770137787f, 0.091519944369793f, 0.991622805595398f, 0.091142900288105f, - 0.991692543029785f, 0.090765804052353f, 0.991762042045593f, 0.090388655662537f, - 0.991831183433533f, 0.090011447668076f, 0.991900086402893f, 0.089634194970131f, - 0.991968691349030f, 0.089256882667542f, 0.992036998271942f, 0.088879525661469f, - 0.992105066776276f, 0.088502109050751f, 0.992172777652740f, 0.088124647736549f, - 0.992240250110626f, 0.087747126817703f, 0.992307364940643f, 0.087369553744793f, - 0.992374241352081f, 0.086991935968399f, 0.992440819740295f, 0.086614266037941f, - 0.992507100105286f, 0.086236543953419f, 0.992573142051697f, 0.085858769714832f, - 0.992638826370239f, 0.085480943322182f, 0.992704212665558f, 0.085103072226048f, - 0.992769360542297f, 0.084725148975849f, 0.992834210395813f, 0.084347173571587f, - 0.992898762226105f, 0.083969146013260f, 0.992963016033173f, 0.083591073751450f, - 0.993026971817017f, 0.083212949335575f, 0.993090689182281f, 0.082834780216217f, - 0.993154048919678f, 0.082456558942795f, 0.993217170238495f, 0.082078292965889f, - 0.993279933929443f, 0.081699974834919f, 0.993342459201813f, 0.081321612000465f, - 0.993404686450958f, 0.080943197011948f, 0.993466615676880f, 0.080564737319946f, - 0.993528306484222f, 0.080186225473881f, 0.993589639663696f, 0.079807676374912f, - 0.993650734424591f, 0.079429075121880f, 0.993711471557617f, 0.079050421714783f, - 0.993771970272064f, 0.078671731054783f, 0.993832170963287f, 0.078292988240719f, - 0.993892073631287f, 0.077914200723171f, 0.993951678276062f, 0.077535368502140f, - 0.994010984897614f, 0.077156484127045f, 0.994070053100586f, 0.076777562499046f, - 0.994128763675690f, 0.076398596167564f, 0.994187235832214f, 0.076019577682018f, - 0.994245409965515f, 0.075640521943569f, 0.994303286075592f, 0.075261414051056f, - 0.994360864162445f, 0.074882268905640f, 0.994418144226074f, 0.074503071606159f, - 0.994475126266479f, 0.074123837053776f, 0.994531810283661f, 0.073744557797909f, - 0.994588255882263f, 0.073365233838558f, 0.994644403457642f, 0.072985872626305f, - 0.994700193405151f, 0.072606459259987f, 0.994755744934082f, 0.072227008640766f, - 0.994810998439789f, 0.071847513318062f, 0.994865953922272f, 0.071467980742455f, - 0.994920611381531f, 0.071088403463364f, 0.994975030422211f, 0.070708781480789f, - 0.995029091835022f, 0.070329122245312f, 0.995082914829254f, 0.069949418306351f, - 0.995136380195618f, 0.069569669663906f, 0.995189607143402f, 0.069189883768559f, - 0.995242536067963f, 0.068810060620308f, 0.995295166969299f, 0.068430192768574f, - 0.995347499847412f, 0.068050287663937f, 0.995399534702301f, 0.067670337855816f, - 0.995451331138611f, 0.067290350794792f, 0.995502769947052f, 0.066910326480865f, - 0.995553970336914f, 0.066530264914036f, 0.995604813098907f, 0.066150158643723f, - 0.995655417442322f, 0.065770015120506f, 0.995705723762512f, 0.065389834344387f, - 0.995755732059479f, 0.065009608864784f, 0.995805442333221f, 0.064629353582859f, - 0.995854854583740f, 0.064249053597450f, 0.995904028415680f, 0.063868723809719f, - 0.995952844619751f, 0.063488349318504f, 0.996001422405243f, 0.063107937574387f, - 0.996049642562866f, 0.062727488577366f, 0.996097624301910f, 0.062347009778023f, - 0.996145308017731f, 0.061966486275196f, 0.996192693710327f, 0.061585929244757f, - 0.996239781379700f, 0.061205338686705f, 0.996286571025848f, 0.060824707150459f, - 0.996333062648773f, 0.060444042086601f, 0.996379256248474f, 0.060063343495131f, - 0.996425211429596f, 0.059682607650757f, 0.996470808982849f, 0.059301838278770f, - 0.996516168117523f, 0.058921031653881f, 0.996561229228973f, 0.058540191501379f, - 0.996605992317200f, 0.058159314095974f, 0.996650457382202f, 0.057778406888247f, - 0.996694624423981f, 0.057397462427616f, 0.996738493442535f, 0.057016488164663f, - 0.996782064437866f, 0.056635476648808f, 0.996825337409973f, 0.056254431605339f, - 0.996868371963501f, 0.055873356759548f, 0.996911048889160f, 0.055492244660854f, - 0.996953487396240f, 0.055111102759838f, 0.996995627880096f, 0.054729927331209f, - 0.997037410736084f, 0.054348722100258f, 0.997078955173492f, 0.053967483341694f, - 0.997120201587677f, 0.053586211055517f, 0.997161149978638f, 0.053204908967018f, - 0.997201859951019f, 0.052823577076197f, 0.997242212295532f, 0.052442211657763f, - 0.997282266616821f, 0.052060816437006f, 0.997322082519531f, 0.051679391413927f, - 0.997361540794373f, 0.051297932863235f, 0.997400760650635f, 0.050916448235512f, - 0.997439682483673f, 0.050534930080175f, 0.997478306293488f, 0.050153385847807f, - 0.997516572475433f, 0.049771808087826f, 0.997554600238800f, 0.049390204250813f, - 0.997592389583588f, 0.049008570611477f, 0.997629821300507f, 0.048626907169819f, - 0.997666954994202f, 0.048245213925838f, 0.997703790664673f, 0.047863494604826f, - 0.997740387916565f, 0.047481749206781f, 0.997776627540588f, 0.047099970281124f, - 0.997812628746033f, 0.046718169003725f, 0.997848331928253f, 0.046336337924004f, - 0.997883677482605f, 0.045954477041960f, 0.997918784618378f, 0.045572593808174f, - 0.997953593730927f, 0.045190680772066f, 0.997988104820251f, 0.044808741658926f, - 0.998022377490997f, 0.044426776468754f, 0.998056292533875f, 0.044044785201550f, - 0.998089909553528f, 0.043662767857313f, 0.998123228549957f, 0.043280724436045f, - 0.998156309127808f, 0.042898654937744f, 0.998189091682434f, 0.042516563087702f, - 0.998221516609192f, 0.042134445160627f, 0.998253703117371f, 0.041752301156521f, - 0.998285591602325f, 0.041370131075382f, 0.998317182064056f, 0.040987938642502f, - 0.998348474502563f, 0.040605723857880f, 0.998379468917847f, 0.040223482996225f, - 0.998410165309906f, 0.039841219782829f, 0.998440563678741f, 0.039458930492401f, - 0.998470664024353f, 0.039076622575521f, 0.998500525951386f, 0.038694288581610f, - 0.998530030250549f, 0.038311932235956f, 0.998559296131134f, 0.037929553538561f, - 0.998588204383850f, 0.037547148764133f, 0.998616874217987f, 0.037164725363255f, - 0.998645246028900f, 0.036782283335924f, 0.998673319816589f, 0.036399815231562f, - 0.998701035976410f, 0.036017324775457f, 0.998728513717651f, 0.035634815692902f, - 0.998755753040314f, 0.035252287983894f, 0.998782634735107f, 0.034869734197855f, - 0.998809218406677f, 0.034487165510654f, 0.998835504055023f, 0.034104570746422f, - 0.998861551284790f, 0.033721961081028f, 0.998887240886688f, 0.033339329063892f, - 0.998912692070007f, 0.032956674695015f, 0.998937785625458f, 0.032574005424976f, - 0.998962640762329f, 0.032191313803196f, 0.998987197875977f, 0.031808607280254f, - 0.999011456966400f, 0.031425878405571f, 0.999035418033600f, 0.031043132767081f, - 0.999059081077576f, 0.030660368502140f, 0.999082446098328f, 0.030277585610747f, - 0.999105513095856f, 0.029894785955548f, 0.999128282070160f, 0.029511967673898f, - 0.999150753021240f, 0.029129132628441f, 0.999172985553741f, 0.028746278956532f, - 0.999194860458374f, 0.028363410383463f, 0.999216496944427f, 0.027980525046587f, - 0.999237775802612f, 0.027597622945905f, 0.999258816242218f, 0.027214704081416f, - 0.999279558658600f, 0.026831768453121f, 0.999299943447113f, 0.026448817923665f, - 0.999320089817047f, 0.026065852493048f, 0.999339938163757f, 0.025682870298624f, - 0.999359488487244f, 0.025299875065684f, 0.999378740787506f, 0.024916863068938f, - 0.999397754669189f, 0.024533838033676f, 0.999416410923004f, 0.024150796234608f, - 0.999434769153595f, 0.023767741397023f, 0.999452829360962f, 0.023384673520923f, - 0.999470651149750f, 0.023001590743661f, 0.999488115310669f, 0.022618494927883f, - 0.999505341053009f, 0.022235386073589f, 0.999522268772125f, 0.021852264180779f, - 0.999538838863373f, 0.021469129249454f, 0.999555170536041f, 0.021085981279612f, - 0.999571204185486f, 0.020702820271254f, 0.999586939811707f, 0.020319648087025f, - 0.999602377414703f, 0.019936462864280f, 0.999617516994476f, 0.019553268328309f, - 0.999632358551025f, 0.019170060753822f, 0.999646902084351f, 0.018786842003465f, - 0.999661207199097f, 0.018403612077236f, 0.999675154685974f, 0.018020370975137f, - 0.999688863754272f, 0.017637118697166f, 0.999702215194702f, 0.017253857105970f, - 0.999715328216553f, 0.016870586201549f, 0.999728083610535f, 0.016487304121256f, - 0.999740600585938f, 0.016104012727737f, 0.999752819538116f, 0.015720712020993f, - 0.999764680862427f, 0.015337402001023f, 0.999776303768158f, 0.014954082667828f, - 0.999787628650665f, 0.014570754021406f, 0.999798655509949f, 0.014187417924404f, - 0.999809384346008f, 0.013804072514176f, 0.999819874763489f, 0.013420719653368f, - 0.999830007553101f, 0.013037359341979f, 0.999839842319489f, 0.012653990648687f, - 0.999849438667297f, 0.012270614504814f, 0.999858677387238f, 0.011887230910361f, - 0.999867618083954f, 0.011503840796649f, 0.999876320362091f, 0.011120444163680f, - 0.999884724617004f, 0.010737040080130f, 0.999892771244049f, 0.010353630408645f, - 0.999900579452515f, 0.009970214217901f, 0.999908089637756f, 0.009586792439222f, - 0.999915301799774f, 0.009203365072608f, 0.999922215938568f, 0.008819932118058f, - 0.999928832054138f, 0.008436493575573f, 0.999935150146484f, 0.008053051307797f, - 0.999941170215607f, 0.007669602986425f, 0.999946892261505f, 0.007286150939763f, - 0.999952375888824f, 0.006902694236487f, 0.999957501888275f, 0.006519233807921f, - 0.999962329864502f, 0.006135769188404f, 0.999966919422150f, 0.005752300843596f, - 0.999971151351929f, 0.005368829704821f, 0.999975144863129f, 0.004985354840755f, - 0.999978840351105f, 0.004601877182722f, 0.999982178211212f, 0.004218397196382f, - 0.999985277652740f, 0.003834914416075f, 0.999988079071045f, 0.003451429307461f, - 0.999990582466125f, 0.003067942336202f, 0.999992787837982f, 0.002684453502297f, - 0.999994695186615f, 0.002300963038579f, 0.999996304512024f, 0.001917471294291f, - 0.999997675418854f, 0.001533978385851f, 0.999998688697815f, 0.001150484546088f, - 0.999999403953552f, 0.000766990066040f, 0.999999880790710f, 0.000383495149435f, - 1.000000000000000f, 0.000000000000023f, 0.999999880790710f, -0.000383495149435f, - 0.999999403953552f, -0.000766990066040f, 0.999998688697815f, -0.001150484546088f, - 0.999997675418854f, -0.001533978385851f, 0.999996304512024f, -0.001917471294291f, - 0.999994695186615f, -0.002300963038579f, 0.999992787837982f, -0.002684453502297f, - 0.999990582466125f, -0.003067942336202f, 0.999988079071045f, -0.003451429307461f, - 0.999985277652740f, -0.003834914416075f, 0.999982178211212f, -0.004218397196382f, - 0.999978840351105f, -0.004601877182722f, 0.999975144863129f, -0.004985354840755f, - 0.999971151351929f, -0.005368829704821f, 0.999966919422150f, -0.005752300843596f, - 0.999962329864502f, -0.006135769188404f, 0.999957501888275f, -0.006519233807921f, - 0.999952375888824f, -0.006902694236487f, 0.999946892261505f, -0.007286150939763f, - 0.999941170215607f, -0.007669602986425f, 0.999935150146484f, -0.008053051307797f, - 0.999928832054138f, -0.008436493575573f, 0.999922215938568f, -0.008819932118058f, - 0.999915301799774f, -0.009203365072608f, 0.999908089637756f, -0.009586792439222f, - 0.999900579452515f, -0.009970214217901f, 0.999892771244049f, -0.010353630408645f, - 0.999884724617004f, -0.010737040080130f, 0.999876320362091f, -0.011120444163680f, - 0.999867618083954f, -0.011503840796649f, 0.999858677387238f, -0.011887230910361f, - 0.999849438667297f, -0.012270614504814f, 0.999839842319489f, -0.012653990648687f, - 0.999830007553101f, -0.013037359341979f, 0.999819874763489f, -0.013420719653368f, - 0.999809384346008f, -0.013804072514176f, 0.999798655509949f, -0.014187417924404f, - 0.999787628650665f, -0.014570754021406f, 0.999776303768158f, -0.014954082667828f, - 0.999764680862427f, -0.015337402001023f, 0.999752819538116f, -0.015720712020993f, - 0.999740600585938f, -0.016104012727737f, 0.999728083610535f, -0.016487304121256f, - 0.999715328216553f, -0.016870586201549f, 0.999702215194702f, -0.017253857105970f, - 0.999688863754272f, -0.017637118697166f, 0.999675154685974f, -0.018020370975137f, - 0.999661207199097f, -0.018403612077236f, 0.999646902084351f, -0.018786842003465f, - 0.999632358551025f, -0.019170060753822f, 0.999617516994476f, -0.019553268328309f, - 0.999602377414703f, -0.019936462864280f, 0.999586939811707f, -0.020319648087025f, - 0.999571204185486f, -0.020702820271254f, 0.999555170536041f, -0.021085981279612f, - 0.999538838863373f, -0.021469129249454f, 0.999522268772125f, -0.021852264180779f, - 0.999505341053009f, -0.022235386073589f, 0.999488115310669f, -0.022618494927883f, - 0.999470651149750f, -0.023001590743661f, 0.999452829360962f, -0.023384673520923f, - 0.999434769153595f, -0.023767741397023f, 0.999416410923004f, -0.024150796234608f, - 0.999397754669189f, -0.024533838033676f, 0.999378740787506f, -0.024916863068938f, - 0.999359488487244f, -0.025299875065684f, 0.999339938163757f, -0.025682870298624f, - 0.999320089817047f, -0.026065852493048f, 0.999299943447113f, -0.026448817923665f, - 0.999279558658600f, -0.026831768453121f, 0.999258816242218f, -0.027214704081416f, - 0.999237775802612f, -0.027597622945905f, 0.999216496944427f, -0.027980525046587f, - 0.999194860458374f, -0.028363410383463f, 0.999172985553741f, -0.028746278956532f, - 0.999150753021240f, -0.029129132628441f, 0.999128282070160f, -0.029511967673898f, - 0.999105513095856f, -0.029894785955548f, 0.999082446098328f, -0.030277585610747f, - 0.999059081077576f, -0.030660368502140f, 0.999035418033600f, -0.031043132767081f, - 0.999011456966400f, -0.031425878405571f, 0.998987197875977f, -0.031808607280254f, - 0.998962640762329f, -0.032191313803196f, 0.998937785625458f, -0.032574005424976f, - 0.998912692070007f, -0.032956674695015f, 0.998887240886688f, -0.033339329063892f, - 0.998861551284790f, -0.033721961081028f, 0.998835504055023f, -0.034104570746422f, - 0.998809218406677f, -0.034487165510654f, 0.998782634735107f, -0.034869734197855f, - 0.998755753040314f, -0.035252287983894f, 0.998728513717651f, -0.035634815692902f, - 0.998701035976410f, -0.036017324775457f, 0.998673319816589f, -0.036399815231562f, - 0.998645246028900f, -0.036782283335924f, 0.998616874217987f, -0.037164725363255f, - 0.998588204383850f, -0.037547148764133f, 0.998559296131134f, -0.037929553538561f, - 0.998530030250549f, -0.038311932235956f, 0.998500525951386f, -0.038694288581610f, - 0.998470664024353f, -0.039076622575521f, 0.998440563678741f, -0.039458930492401f, - 0.998410165309906f, -0.039841219782829f, 0.998379468917847f, -0.040223482996225f, - 0.998348474502563f, -0.040605723857880f, 0.998317182064056f, -0.040987938642502f, - 0.998285591602325f, -0.041370131075382f, 0.998253703117371f, -0.041752301156521f, - 0.998221516609192f, -0.042134445160627f, 0.998189091682434f, -0.042516563087702f, - 0.998156309127808f, -0.042898654937744f, 0.998123228549957f, -0.043280724436045f, - 0.998089909553528f, -0.043662767857313f, 0.998056292533875f, -0.044044785201550f, - 0.998022377490997f, -0.044426776468754f, 0.997988104820251f, -0.044808741658926f, - 0.997953593730927f, -0.045190680772066f, 0.997918784618378f, -0.045572593808174f, - 0.997883677482605f, -0.045954477041960f, 0.997848331928253f, -0.046336337924004f, - 0.997812628746033f, -0.046718169003725f, 0.997776627540588f, -0.047099970281124f, - 0.997740387916565f, -0.047481749206781f, 0.997703790664673f, -0.047863494604826f, - 0.997666954994202f, -0.048245213925838f, 0.997629821300507f, -0.048626907169819f, - 0.997592389583588f, -0.049008570611477f, 0.997554600238800f, -0.049390204250813f, - 0.997516572475433f, -0.049771808087826f, 0.997478306293488f, -0.050153385847807f, - 0.997439682483673f, -0.050534930080175f, 0.997400760650635f, -0.050916448235512f, - 0.997361540794373f, -0.051297932863235f, 0.997322082519531f, -0.051679391413927f, - 0.997282266616821f, -0.052060816437006f, 0.997242212295532f, -0.052442211657763f, - 0.997201859951019f, -0.052823577076197f, 0.997161149978638f, -0.053204908967018f, - 0.997120201587677f, -0.053586211055517f, 0.997078955173492f, -0.053967483341694f, - 0.997037410736084f, -0.054348722100258f, 0.996995627880096f, -0.054729927331209f, - 0.996953487396240f, -0.055111102759838f, 0.996911048889160f, -0.055492244660854f, - 0.996868371963501f, -0.055873356759548f, 0.996825337409973f, -0.056254431605339f, - 0.996782064437866f, -0.056635476648808f, 0.996738493442535f, -0.057016488164663f, - 0.996694624423981f, -0.057397462427616f, 0.996650457382202f, -0.057778406888247f, - 0.996605992317200f, -0.058159314095974f, 0.996561229228973f, -0.058540191501379f, - 0.996516168117523f, -0.058921031653881f, 0.996470808982849f, -0.059301838278770f, - 0.996425211429596f, -0.059682607650757f, 0.996379256248474f, -0.060063343495131f, - 0.996333062648773f, -0.060444042086601f, 0.996286571025848f, -0.060824707150459f, - 0.996239781379700f, -0.061205338686705f, 0.996192693710327f, -0.061585929244757f, - 0.996145308017731f, -0.061966486275196f, 0.996097624301910f, -0.062347009778023f, - 0.996049642562866f, -0.062727488577366f, 0.996001422405243f, -0.063107937574387f, - 0.995952844619751f, -0.063488349318504f, 0.995904028415680f, -0.063868723809719f, - 0.995854854583740f, -0.064249053597450f, 0.995805442333221f, -0.064629353582859f, - 0.995755732059479f, -0.065009608864784f, 0.995705723762512f, -0.065389834344387f, - 0.995655417442322f, -0.065770015120506f, 0.995604813098907f, -0.066150158643723f, - 0.995553970336914f, -0.066530264914036f, 0.995502769947052f, -0.066910326480865f, - 0.995451331138611f, -0.067290350794792f, 0.995399534702301f, -0.067670337855816f, - 0.995347499847412f, -0.068050287663937f, 0.995295166969299f, -0.068430192768574f, - 0.995242536067963f, -0.068810060620308f, 0.995189607143402f, -0.069189883768559f, - 0.995136380195618f, -0.069569669663906f, 0.995082914829254f, -0.069949418306351f, - 0.995029091835022f, -0.070329122245312f, 0.994975030422211f, -0.070708781480789f, - 0.994920611381531f, -0.071088403463364f, 0.994865953922272f, -0.071467980742455f, - 0.994810998439789f, -0.071847513318062f, 0.994755744934082f, -0.072227008640766f, - 0.994700193405151f, -0.072606459259987f, 0.994644403457642f, -0.072985872626305f, - 0.994588255882263f, -0.073365233838558f, 0.994531810283661f, -0.073744557797909f, - 0.994475126266479f, -0.074123837053776f, 0.994418144226074f, -0.074503071606159f, - 0.994360864162445f, -0.074882268905640f, 0.994303286075592f, -0.075261414051056f, - 0.994245409965515f, -0.075640521943569f, 0.994187235832214f, -0.076019577682018f, - 0.994128763675690f, -0.076398596167564f, 0.994070053100586f, -0.076777562499046f, - 0.994010984897614f, -0.077156484127045f, 0.993951678276062f, -0.077535368502140f, - 0.993892073631287f, -0.077914200723171f, 0.993832170963287f, -0.078292988240719f, - 0.993771970272064f, -0.078671731054783f, 0.993711471557617f, -0.079050421714783f, - 0.993650734424591f, -0.079429075121880f, 0.993589639663696f, -0.079807676374912f, - 0.993528306484222f, -0.080186225473881f, 0.993466615676880f, -0.080564737319946f, - 0.993404686450958f, -0.080943197011948f, 0.993342459201813f, -0.081321612000465f, - 0.993279933929443f, -0.081699974834919f, 0.993217170238495f, -0.082078292965889f, - 0.993154048919678f, -0.082456558942795f, 0.993090689182281f, -0.082834780216217f, - 0.993026971817017f, -0.083212949335575f, 0.992963016033173f, -0.083591073751450f, - 0.992898762226105f, -0.083969146013260f, 0.992834210395813f, -0.084347173571587f, - 0.992769360542297f, -0.084725148975849f, 0.992704212665558f, -0.085103072226048f, - 0.992638826370239f, -0.085480943322182f, 0.992573142051697f, -0.085858769714832f, - 0.992507100105286f, -0.086236543953419f, 0.992440819740295f, -0.086614266037941f, - 0.992374241352081f, -0.086991935968399f, 0.992307364940643f, -0.087369553744793f, - 0.992240250110626f, -0.087747126817703f, 0.992172777652740f, -0.088124647736549f, - 0.992105066776276f, -0.088502109050751f, 0.992036998271942f, -0.088879525661469f, - 0.991968691349030f, -0.089256882667542f, 0.991900086402893f, -0.089634194970131f, - 0.991831183433533f, -0.090011447668076f, 0.991762042045593f, -0.090388655662537f, - 0.991692543029785f, -0.090765804052353f, 0.991622805595398f, -0.091142900288105f, - 0.991552770137787f, -0.091519944369793f, 0.991482377052307f, -0.091896936297417f, - 0.991411805152893f, -0.092273868620396f, 0.991340875625610f, -0.092650748789310f, - 0.991269648075104f, -0.093027576804161f, 0.991198182106018f, -0.093404345214367f, - 0.991126358509064f, -0.093781061470509f, 0.991054296493530f, -0.094157725572586f, - 0.990981936454773f, -0.094534330070019f, 0.990909278392792f, -0.094910882413387f, - 0.990836322307587f, -0.095287375152111f, 0.990763127803802f, -0.095663815736771f, - 0.990689575672150f, -0.096040196716785f, 0.990615785121918f, -0.096416525542736f, - 0.990541696548462f, -0.096792794764042f, 0.990467309951782f, -0.097169004380703f, - 0.990392625331879f, -0.097545161843300f, 0.990317702293396f, -0.097921259701252f, - 0.990242421627045f, -0.098297297954559f, 0.990166902542114f, -0.098673284053802f, - 0.990091085433960f, -0.099049203097820f, 0.990014970302582f, -0.099425069987774f, - 0.989938557147980f, -0.099800877273083f, 0.989861845970154f, -0.100176624953747f, - 0.989784896373749f, -0.100552320480347f, 0.989707589149475f, -0.100927948951721f, - 0.989630043506622f, -0.101303517818451f, 0.989552199840546f, -0.101679034531116f, - 0.989474058151245f, -0.102054484188557f, 0.989395678043365f, -0.102429874241352f, - 0.989316940307617f, -0.102805204689503f, 0.989237964153290f, -0.103180475533009f, - 0.989158689975739f, -0.103555686771870f, 0.989079117774963f, -0.103930838406086f, - 0.988999247550964f, -0.104305922985077f, 0.988919138908386f, -0.104680955410004f, - 0.988838672637939f, -0.105055920779705f, 0.988757967948914f, -0.105430819094181f, - 0.988676965236664f, -0.105805665254593f, 0.988595664501190f, -0.106180444359779f, - 0.988514065742493f, -0.106555156409740f, 0.988432228565216f, -0.106929816305637f, - 0.988350033760071f, -0.107304409146309f, 0.988267600536346f, -0.107678934931755f, - 0.988184869289398f, -0.108053401112556f, 0.988101840019226f, -0.108427800238132f, - 0.988018512725830f, -0.108802139759064f, 0.987934947013855f, -0.109176412224770f, - 0.987851083278656f, -0.109550617635250f, 0.987766921520233f, -0.109924763441086f, - 0.987682461738586f, -0.110298842191696f, 0.987597703933716f, -0.110672861337662f, - 0.987512648105621f, -0.111046813428402f, 0.987427353858948f, -0.111420698463917f, - 0.987341761589050f, -0.111794516444206f, 0.987255871295929f, -0.112168267369270f, - 0.987169682979584f, -0.112541958689690f, 0.987083256244659f, -0.112915575504303f, - 0.986996471881866f, -0.113289132714272f, 0.986909449100494f, -0.113662622869015f, - 0.986822128295898f, -0.114036038517952f, 0.986734509468079f, -0.114409394562244f, - 0.986646652221680f, -0.114782683551311f, 0.986558437347412f, -0.115155905485153f, - 0.986469984054565f, -0.115529052913189f, 0.986381232738495f, -0.115902140736580f, - 0.986292183399200f, -0.116275154054165f, 0.986202836036682f, -0.116648100316525f, - 0.986113250255585f, -0.117020979523659f, 0.986023366451263f, -0.117393791675568f, - 0.985933184623718f, -0.117766529321671f, 0.985842704772949f, -0.118139199912548f, - 0.985751926898956f, -0.118511803448200f, 0.985660910606384f, -0.118884332478046f, - 0.985569596290588f, -0.119256794452667f, 0.985477983951569f, -0.119629189372063f, - 0.985386073589325f, -0.120001509785652f, 0.985293865203857f, -0.120373763144016f, - 0.985201418399811f, -0.120745941996574f, 0.985108673572540f, -0.121118053793907f, - 0.985015630722046f, -0.121490091085434f, 0.984922289848328f, -0.121862053871155f, - 0.984828710556030f, -0.122233949601650f, 0.984734773635864f, -0.122605770826340f, - 0.984640598297119f, -0.122977524995804f, 0.984546124935150f, -0.123349204659462f, - 0.984451413154602f, -0.123720809817314f, 0.984356343746185f, -0.124092340469360f, - 0.984261035919189f, -0.124463804066181f, 0.984165430068970f, -0.124835193157196f, - 0.984069526195526f, -0.125206500291824f, 0.983973383903503f, -0.125577747821808f, - 0.983876943588257f, -0.125948905944824f, 0.983780145645142f, -0.126320004463196f, - 0.983683168888092f, -0.126691013574600f, 0.983585834503174f, -0.127061963081360f, - 0.983488261699677f, -0.127432823181152f, 0.983390331268311f, -0.127803623676300f, - 0.983292162418365f, -0.128174334764481f, 0.983193755149841f, -0.128544986248016f, - 0.983094990253448f, -0.128915548324585f, 0.982995986938477f, -0.129286035895348f, - 0.982896685600281f, -0.129656463861465f, 0.982797086238861f, -0.130026802420616f, - 0.982697248458862f, -0.130397051572800f, 0.982597053050995f, -0.130767241120338f, - 0.982496619224548f, -0.131137356162071f, 0.982395887374878f, -0.131507381796837f, - 0.982294917106628f, -0.131877332925797f, 0.982193589210510f, -0.132247209548950f, - 0.982092022895813f, -0.132617011666298f, 0.981990158557892f, -0.132986739277840f, - 0.981888055801392f, -0.133356377482414f, 0.981785595417023f, -0.133725941181183f, - 0.981682896614075f, -0.134095430374146f, 0.981579899787903f, -0.134464830160141f, - 0.981476604938507f, -0.134834155440331f, 0.981373071670532f, -0.135203406214714f, - 0.981269240379334f, -0.135572582483292f, 0.981165111064911f, -0.135941669344902f, - 0.981060683727264f, -0.136310681700706f, 0.980956017971039f, -0.136679604649544f, - 0.980851054191589f, -0.137048453092575f, 0.980745792388916f, -0.137417227029800f, - 0.980640232563019f, -0.137785911560059f, 0.980534434318542f, -0.138154521584511f, - 0.980428338050842f, -0.138523042201996f, 0.980321943759918f, -0.138891488313675f, - 0.980215251445770f, -0.139259845018387f, 0.980108320713043f, -0.139628127217293f, - 0.980001091957092f, -0.139996320009232f, 0.979893565177917f, -0.140364438295364f, - 0.979785740375519f, -0.140732467174530f, 0.979677677154541f, -0.141100421547890f, - 0.979569315910339f, -0.141468286514282f, 0.979460656642914f, -0.141836062073708f, - 0.979351758956909f, -0.142203763127327f, 0.979242503643036f, -0.142571389675140f, - 0.979133009910584f, -0.142938911914825f, 0.979023277759552f, -0.143306359648705f, - 0.978913187980652f, -0.143673732876778f, 0.978802859783173f, -0.144041016697884f, - 0.978692233562469f, -0.144408211112022f, 0.978581368923187f, -0.144775316119194f, - 0.978470146656036f, -0.145142331719399f, 0.978358685970306f, -0.145509272813797f, - 0.978246986865997f, -0.145876124501228f, 0.978134930133820f, -0.146242901682854f, - 0.978022634983063f, -0.146609574556351f, 0.977910041809082f, -0.146976172924042f, - 0.977797150611877f, -0.147342681884766f, 0.977684020996094f, -0.147709101438522f, - 0.977570593357086f, -0.148075446486473f, 0.977456867694855f, -0.148441687226295f, - 0.977342903614044f, -0.148807853460312f, 0.977228581905365f, -0.149173930287361f, - 0.977114021778107f, -0.149539917707443f, 0.976999223232269f, -0.149905815720558f, - 0.976884067058563f, -0.150271624326706f, 0.976768672466278f, -0.150637343525887f, - 0.976653039455414f, -0.151002973318100f, 0.976537048816681f, -0.151368513703346f, - 0.976420819759369f, -0.151733979582787f, 0.976304292678833f, -0.152099341154099f, - 0.976187527179718f, -0.152464613318443f, 0.976070404052734f, -0.152829796075821f, - 0.975953042507172f, -0.153194904327393f, 0.975835442543030f, -0.153559908270836f, - 0.975717484951019f, -0.153924822807312f, 0.975599288940430f, -0.154289647936821f, - 0.975480854511261f, -0.154654383659363f, 0.975362062454224f, -0.155019029974937f, - 0.975243031978607f, -0.155383571982384f, 0.975123703479767f, -0.155748039484024f, - 0.975004136562347f, -0.156112402677536f, 0.974884271621704f, -0.156476691365242f, - 0.974764108657837f, -0.156840875744820f, 0.974643647670746f, -0.157204970717430f, - 0.974522948265076f, -0.157568961381912f, 0.974401950836182f, -0.157932877540588f, - 0.974280655384064f, -0.158296689391136f, 0.974159121513367f, -0.158660411834717f, - 0.974037289619446f, -0.159024044871330f, 0.973915159702301f, -0.159387573599815f, - 0.973792791366577f, -0.159751012921333f, 0.973670125007629f, -0.160114362835884f, - 0.973547160625458f, -0.160477623343468f, 0.973423957824707f, -0.160840779542923f, - 0.973300457000732f, -0.161203846335411f, 0.973176658153534f, -0.161566808819771f, - 0.973052620887756f, -0.161929681897163f, 0.972928285598755f, -0.162292465567589f, - 0.972803652286530f, -0.162655144929886f, 0.972678780555725f, -0.163017734885216f, - 0.972553610801697f, -0.163380220532417f, 0.972428143024445f, -0.163742616772652f, - 0.972302436828613f, -0.164104923605919f, 0.972176432609558f, -0.164467126131058f, - 0.972050130367279f, -0.164829224348068f, 0.971923589706421f, -0.165191248059273f, - 0.971796751022339f, -0.165553152561188f, 0.971669614315033f, -0.165914967656136f, - 0.971542239189148f, -0.166276678442955f, 0.971414566040039f, -0.166638299822807f, - 0.971286594867706f, -0.166999831795692f, 0.971158385276794f, -0.167361244559288f, - 0.971029877662659f, -0.167722567915916f, 0.970901072025299f, -0.168083801865578f, - 0.970772027969360f, -0.168444931507111f, 0.970642685890198f, -0.168805956840515f, - 0.970513105392456f, -0.169166877865791f, 0.970383226871490f, -0.169527709484100f, - 0.970253050327301f, -0.169888436794281f, 0.970122575759888f, -0.170249074697495f, - 0.969991862773895f, -0.170609608292580f, 0.969860911369324f, -0.170970037579536f, - 0.969729602336884f, -0.171330362558365f, 0.969598054885864f, -0.171690583229065f, - 0.969466269016266f, -0.172050714492798f, 0.969334125518799f, -0.172410741448402f, - 0.969201743602753f, -0.172770664095879f, 0.969069123268127f, -0.173130482435226f, - 0.968936204910278f, -0.173490211367607f, 0.968802988529205f, -0.173849821090698f, - 0.968669533729553f, -0.174209341406822f, 0.968535780906677f, -0.174568757414818f, - 0.968401730060577f, -0.174928069114685f, 0.968267440795898f, -0.175287276506424f, - 0.968132853507996f, -0.175646379590034f, 0.967997968196869f, -0.176005378365517f, - 0.967862844467163f, -0.176364272832870f, 0.967727422714233f, -0.176723077893257f, - 0.967591762542725f, -0.177081763744354f, 0.967455804347992f, -0.177440345287323f, - 0.967319548130035f, -0.177798837423325f, 0.967183053493500f, -0.178157210350037f, - 0.967046260833740f, -0.178515478968620f, 0.966909229755402f, -0.178873643279076f, - 0.966771900653839f, -0.179231703281403f, 0.966634273529053f, -0.179589673876762f, - 0.966496407985687f, -0.179947525262833f, 0.966358244419098f, -0.180305257439613f, - 0.966219842433929f, -0.180662900209427f, 0.966081082820892f, -0.181020438671112f, - 0.965942144393921f, -0.181377857923508f, 0.965802907943726f, -0.181735187768936f, - 0.965663373470306f, -0.182092398405075f, 0.965523540973663f, -0.182449504733086f, - 0.965383470058441f, -0.182806491851807f, 0.965243160724640f, -0.183163389563560f, - 0.965102493762970f, -0.183520168066025f, 0.964961588382721f, -0.183876842260361f, - 0.964820444583893f, -0.184233412146568f, 0.964679002761841f, -0.184589877724648f, - 0.964537262916565f, -0.184946224093437f, 0.964395284652710f, -0.185302466154099f, - 0.964253067970276f, -0.185658603906631f, 0.964110493659973f, -0.186014622449875f, - 0.963967680931091f, -0.186370536684990f, 0.963824629783630f, -0.186726331710815f, - 0.963681280612946f, -0.187082037329674f, 0.963537633419037f, -0.187437608838081f, - 0.963393747806549f, -0.187793090939522f, 0.963249564170837f, -0.188148453831673f, - 0.963105142116547f, -0.188503712415695f, 0.962960422039032f, -0.188858851790428f, - 0.962815403938293f, -0.189213871955872f, 0.962670147418976f, -0.189568802714348f, - 0.962524592876434f, -0.189923599362373f, 0.962378799915314f, -0.190278306603432f, - 0.962232708930969f, -0.190632879734039f, 0.962086379528046f, -0.190987363457680f, - 0.961939752101898f, -0.191341713070869f, 0.961792886257172f, -0.191695958375931f, - 0.961645722389221f, -0.192050099372864f, 0.961498260498047f, -0.192404121160507f, - 0.961350560188293f, -0.192758023738861f, 0.961202561855316f, -0.193111822009087f, - 0.961054325103760f, -0.193465501070023f, 0.960905790328979f, -0.193819075822830f, - 0.960757017135620f, -0.194172516465187f, 0.960607945919037f, -0.194525867700577f, - 0.960458636283875f, -0.194879084825516f, 0.960309028625488f, -0.195232197642326f, - 0.960159122943878f, -0.195585191249847f, 0.960008978843689f, -0.195938065648079f, - 0.959858596324921f, -0.196290835738182f, 0.959707856178284f, -0.196643486618996f, - 0.959556937217712f, -0.196996018290520f, 0.959405720233917f, -0.197348430752754f, - 0.959254205226898f, -0.197700738906860f, 0.959102451801300f, -0.198052927851677f, - 0.958950400352478f, -0.198404997587204f, 0.958798050880432f, -0.198756948113441f, - 0.958645522594452f, -0.199108779430389f, 0.958492636680603f, -0.199460506439209f, - 0.958339512348175f, -0.199812099337578f, 0.958186149597168f, -0.200163587927818f, - 0.958032488822937f, -0.200514942407608f, 0.957878530025482f, -0.200866192579269f, - 0.957724332809448f, -0.201217323541641f, 0.957569897174835f, -0.201568335294724f, - 0.957415163516998f, -0.201919227838516f, 0.957260131835938f, -0.202270001173019f, - 0.957104861736298f, -0.202620655298233f, 0.956949353218079f, -0.202971190214157f, - 0.956793546676636f, -0.203321605920792f, 0.956637442111969f, -0.203671902418137f, - 0.956481099128723f, -0.204022079706192f, 0.956324458122253f, -0.204372137784958f, - 0.956167578697205f, -0.204722076654434f, 0.956010460853577f, -0.205071896314621f, - 0.955853044986725f, -0.205421581864357f, 0.955695331096649f, -0.205771163105965f, - 0.955537378787994f, -0.206120610237122f, 0.955379128456116f, -0.206469938158989f, - 0.955220639705658f, -0.206819161772728f, 0.955061912536621f, -0.207168251276016f, - 0.954902827739716f, -0.207517206668854f, 0.954743564128876f, -0.207866057753563f, - 0.954584002494812f, -0.208214774727821f, 0.954424142837524f, -0.208563387393951f, - 0.954264044761658f, -0.208911851048470f, 0.954103708267212f, -0.209260210394859f, - 0.953943073749542f, -0.209608450531960f, 0.953782141208649f, -0.209956556558609f, - 0.953620970249176f, -0.210304543375969f, 0.953459560871124f, -0.210652396082878f, - 0.953297853469849f, -0.211000129580498f, 0.953135907649994f, -0.211347743868828f, - 0.952973663806915f, -0.211695238947868f, 0.952811121940613f, -0.212042599916458f, - 0.952648401260376f, -0.212389841675758f, 0.952485322952271f, -0.212736949324608f, - 0.952322065830231f, -0.213083937764168f, 0.952158451080322f, -0.213430806994438f, - 0.951994657516479f, -0.213777542114258f, 0.951830565929413f, -0.214124158024788f, - 0.951666176319122f, -0.214470639824867f, 0.951501548290253f, -0.214817002415657f, - 0.951336681842804f, -0.215163245797157f, 0.951171517372131f, -0.215509355068207f, - 0.951006054878235f, -0.215855330228806f, 0.950840353965759f, -0.216201186180115f, - 0.950674414634705f, -0.216546908020973f, 0.950508177280426f, -0.216892510652542f, - 0.950341701507568f, -0.217237979173660f, 0.950174987316132f, -0.217583328485489f, - 0.950007975101471f, -0.217928543686867f, 0.949840664863586f, -0.218273624777794f, - 0.949673116207123f, -0.218618586659431f, 0.949505329132080f, -0.218963414430618f, - 0.949337244033813f, -0.219308122992516f, 0.949168920516968f, -0.219652697443962f, - 0.949000298976898f, -0.219997137784958f, 0.948831439018250f, -0.220341444015503f, - 0.948662281036377f, -0.220685631036758f, 0.948492884635925f, -0.221029683947563f, - 0.948323249816895f, -0.221373617649078f, 0.948153316974640f, -0.221717402338982f, - 0.947983145713806f, -0.222061067819595f, 0.947812676429749f, -0.222404599189758f, - 0.947641968727112f, -0.222748011350632f, 0.947470963001251f, -0.223091274499893f, - 0.947299718856812f, -0.223434418439865f, 0.947128236293793f, -0.223777428269386f, - 0.946956455707550f, -0.224120303988457f, 0.946784436702728f, -0.224463045597076f, - 0.946612179279327f, -0.224805667996407f, 0.946439623832703f, -0.225148141384125f, - 0.946266770362854f, -0.225490495562553f, 0.946093678474426f, -0.225832715630531f, - 0.945920348167419f, -0.226174786686897f, 0.945746779441834f, -0.226516738533974f, - 0.945572853088379f, -0.226858556270599f, 0.945398747920990f, -0.227200239896774f, - 0.945224344730377f, -0.227541789412498f, 0.945049703121185f, -0.227883204817772f, - 0.944874763488770f, -0.228224486112595f, 0.944699645042419f, -0.228565633296967f, - 0.944524168968201f, -0.228906646370888f, 0.944348454475403f, -0.229247525334358f, - 0.944172501564026f, -0.229588270187378f, 0.943996310234070f, -0.229928880929947f, - 0.943819820880890f, -0.230269357562065f, 0.943643093109131f, -0.230609700083733f, - 0.943466067314148f, -0.230949893593788f, 0.943288803100586f, -0.231289967894554f, - 0.943111240863800f, -0.231629893183708f, 0.942933499813080f, -0.231969684362412f, - 0.942755401134491f, -0.232309341430664f, 0.942577123641968f, -0.232648864388466f, - 0.942398548126221f, -0.232988253235817f, 0.942219734191895f, -0.233327493071556f, - 0.942040622234344f, -0.233666598796844f, 0.941861271858215f, -0.234005570411682f, - 0.941681683063507f, -0.234344407916069f, 0.941501796245575f, -0.234683111310005f, - 0.941321671009064f, -0.235021665692329f, 0.941141307353973f, -0.235360085964203f, - 0.940960645675659f, -0.235698372125626f, 0.940779745578766f, -0.236036509275436f, - 0.940598547458649f, -0.236374512314796f, 0.940417110919952f, -0.236712381243706f, - 0.940235435962677f, -0.237050101161003f, 0.940053522586823f, -0.237387686967850f, - 0.939871311187744f, -0.237725138664246f, 0.939688861370087f, -0.238062441349030f, - 0.939506113529205f, -0.238399609923363f, 0.939323127269745f, -0.238736644387245f, - 0.939139902591705f, -0.239073529839516f, 0.938956379890442f, -0.239410281181335f, - 0.938772618770599f, -0.239746883511543f, 0.938588619232178f, -0.240083336830139f, - 0.938404381275177f, -0.240419670939446f, 0.938219845294952f, -0.240755841135979f, - 0.938035070896149f, -0.241091892123222f, 0.937849998474121f, -0.241427779197693f, - 0.937664687633514f, -0.241763532161713f, 0.937479138374329f, -0.242099151015282f, - 0.937293350696564f, -0.242434620857239f, 0.937107264995575f, -0.242769956588745f, - 0.936920940876007f, -0.243105143308640f, 0.936734318733215f, -0.243440181016922f, - 0.936547517776489f, -0.243775084614754f, 0.936360359191895f, -0.244109839200974f, - 0.936173021793365f, -0.244444444775581f, 0.935985386371613f, -0.244778916239738f, - 0.935797572135925f, -0.245113238692284f, 0.935609400272369f, -0.245447427034378f, - 0.935421049594879f, -0.245781451463699f, 0.935232400894165f, -0.246115356683731f, - 0.935043513774872f, -0.246449097990990f, 0.934854328632355f, -0.246782705187798f, - 0.934664964675903f, -0.247116148471832f, 0.934475243091583f, -0.247449472546577f, - 0.934285342693329f, -0.247782632708550f, 0.934095203876495f, -0.248115643858910f, - 0.933904767036438f, -0.248448520898819f, 0.933714091777802f, -0.248781248927116f, - 0.933523118495941f, -0.249113827943802f, 0.933331906795502f, -0.249446272850037f, - 0.933140456676483f, -0.249778553843498f, 0.932948768138886f, -0.250110685825348f, - 0.932756841182709f, -0.250442683696747f, 0.932564616203308f, -0.250774532556534f, - 0.932372152805328f, -0.251106232404709f, 0.932179391384125f, -0.251437783241272f, - 0.931986451148987f, -0.251769185066223f, 0.931793212890625f, -0.252100437879562f, - 0.931599736213684f, -0.252431541681290f, 0.931405961513519f, -0.252762526273727f, - 0.931211948394775f, -0.253093332052231f, 0.931017756462097f, -0.253423988819122f, - 0.930823206901550f, -0.253754496574402f, 0.930628478527069f, -0.254084855318069f, - 0.930433452129364f, -0.254415065050125f, 0.930238187313080f, -0.254745125770569f, - 0.930042684078217f, -0.255075037479401f, 0.929846942424774f, -0.255404800176620f, - 0.929650902748108f, -0.255734413862228f, 0.929454624652863f, -0.256063878536224f, - 0.929258108139038f, -0.256393194198608f, 0.929061353206635f, -0.256722360849380f, - 0.928864300251007f, -0.257051378488541f, 0.928667008876801f, -0.257380217313766f, - 0.928469479084015f, -0.257708936929703f, 0.928271710872650f, -0.258037507534027f, - 0.928073644638062f, -0.258365899324417f, 0.927875399589539f, -0.258694142103195f, - 0.927676856517792f, -0.259022265672684f, 0.927478015422821f, -0.259350210428238f, - 0.927278995513916f, -0.259678006172180f, 0.927079677581787f, -0.260005623102188f, - 0.926880121231079f, -0.260333120822906f, 0.926680326461792f, -0.260660469532013f, - 0.926480293273926f, -0.260987639427185f, 0.926280021667480f, -0.261314690113068f, - 0.926079452037811f, -0.261641561985016f, 0.925878643989563f, -0.261968284845352f, - 0.925677597522736f, -0.262294828891754f, 0.925476312637329f, -0.262621253728867f, - 0.925274729728699f, -0.262947499752045f, 0.925072908401489f, -0.263273626565933f, - 0.924870908260345f, -0.263599574565887f, 0.924668610095978f, -0.263925373554230f, - 0.924466013908386f, -0.264250993728638f, 0.924263238906860f, -0.264576494693756f, - 0.924060165882111f, -0.264901816844940f, 0.923856854438782f, -0.265226989984512f, - 0.923653304576874f, -0.265552014112473f, 0.923449516296387f, -0.265876859426498f, - 0.923245489597321f, -0.266201555728912f, 0.923041164875031f, -0.266526103019714f, - 0.922836601734161f, -0.266850501298904f, 0.922631800174713f, -0.267174720764160f, - 0.922426760196686f, -0.267498821020126f, 0.922221481800079f, -0.267822742462158f, - 0.922015964984894f, -0.268146485090256f, 0.921810150146484f, -0.268470078706741f, - 0.921604096889496f, -0.268793523311615f, 0.921397805213928f, -0.269116818904877f, - 0.921191275119781f, -0.269439965486526f, 0.920984506607056f, -0.269762933254242f, - 0.920777499675751f, -0.270085722208023f, 0.920570194721222f, -0.270408391952515f, - 0.920362710952759f, -0.270730882883072f, 0.920154929161072f, -0.271053224802017f, - 0.919946908950806f, -0.271375387907028f, 0.919738650321960f, -0.271697402000427f, - 0.919530093669891f, -0.272019267082214f, 0.919321358203888f, -0.272340953350067f, - 0.919112324714661f, -0.272662490606308f, 0.918903112411499f, -0.272983878850937f, - 0.918693602085114f, -0.273305088281631f, 0.918483853340149f, -0.273626148700714f, - 0.918273866176605f, -0.273947030305862f, 0.918063640594482f, -0.274267762899399f, - 0.917853116989136f, -0.274588316679001f, 0.917642414569855f, -0.274908751249313f, - 0.917431414127350f, -0.275228977203369f, 0.917220234870911f, -0.275549083948135f, - 0.917008757591248f, -0.275868982076645f, 0.916797041893005f, -0.276188760995865f, - 0.916585087776184f, -0.276508361101151f, 0.916372895240784f, -0.276827782392502f, - 0.916160404682159f, -0.277147054672241f, 0.915947735309601f, -0.277466177940369f, - 0.915734827518463f, -0.277785122394562f, 0.915521621704102f, -0.278103888034821f, - 0.915308177471161f, -0.278422504663467f, 0.915094554424286f, -0.278740972280502f, - 0.914880633354187f, -0.279059261083603f, 0.914666473865509f, -0.279377400875092f, - 0.914452075958252f, -0.279695361852646f, 0.914237439632416f, -0.280013144016266f, - 0.914022505283356f, -0.280330777168274f, 0.913807392120361f, -0.280648261308670f, - 0.913592040538788f, -0.280965566635132f, 0.913376390933990f, -0.281282693147659f, - 0.913160502910614f, -0.281599670648575f, 0.912944436073303f, -0.281916469335556f, - 0.912728071212769f, -0.282233119010925f, 0.912511467933655f, -0.282549589872360f, - 0.912294626235962f, -0.282865911722183f, 0.912077546119690f, -0.283182054758072f, - 0.911860227584839f, -0.283498018980026f, 0.911642670631409f, -0.283813834190369f, - 0.911424875259399f, -0.284129470586777f, 0.911206841468811f, -0.284444957971573f, - 0.910988569259644f, -0.284760266542435f, 0.910769999027252f, -0.285075396299362f, - 0.910551249980927f, -0.285390377044678f, 0.910332262516022f, -0.285705178976059f, - 0.910112977027893f, -0.286019802093506f, 0.909893512725830f, -0.286334276199341f, - 0.909673750400543f, -0.286648571491241f, 0.909453809261322f, -0.286962717771530f, - 0.909233570098877f, -0.287276685237885f, 0.909013092517853f, -0.287590473890305f, - 0.908792436122894f, -0.287904083728790f, 0.908571481704712f, -0.288217544555664f, - 0.908350288867950f, -0.288530826568604f, 0.908128857612610f, -0.288843959569931f, - 0.907907187938690f, -0.289156883955002f, 0.907685279846191f, -0.289469659328461f, - 0.907463192939758f, -0.289782285690308f, 0.907240808010101f, -0.290094703435898f, - 0.907018184661865f, -0.290406972169876f, 0.906795322895050f, -0.290719062089920f, - 0.906572222709656f, -0.291031002998352f, 0.906348884105682f, -0.291342735290527f, - 0.906125307083130f, -0.291654318571091f, 0.905901491641998f, -0.291965723037720f, - 0.905677437782288f, -0.292276978492737f, 0.905453145503998f, -0.292588025331497f, - 0.905228614807129f, -0.292898923158646f, 0.905003845691681f, -0.293209642171860f, - 0.904778838157654f, -0.293520182371140f, 0.904553592205048f, -0.293830573558807f, - 0.904328107833862f, -0.294140785932541f, 0.904102385044098f, -0.294450789690018f, - 0.903876423835754f, -0.294760644435883f, 0.903650224208832f, -0.295070350170136f, - 0.903423786163330f, -0.295379847288132f, 0.903197109699249f, -0.295689195394516f, - 0.902970194816589f, -0.295998334884644f, 0.902743041515350f, -0.296307325363159f, - 0.902515649795532f, -0.296616137027740f, 0.902288019657135f, -0.296924799680710f, - 0.902060210704803f, -0.297233253717422f, 0.901832103729248f, -0.297541528940201f, - 0.901603758335114f, -0.297849655151367f, 0.901375174522400f, -0.298157602548599f, - 0.901146411895752f, -0.298465341329575f, 0.900917351245880f, -0.298772931098938f, - 0.900688111782074f, -0.299080342054367f, 0.900458574295044f, -0.299387603998184f, - 0.900228857994080f, -0.299694657325745f, 0.899998843669891f, -0.300001531839371f, - 0.899768650531769f, -0.300308227539063f, 0.899538159370422f, -0.300614774227142f, - 0.899307489395142f, -0.300921112298965f, 0.899076581001282f, -0.301227301359177f, - 0.898845434188843f, -0.301533311605453f, 0.898614048957825f, -0.301839113235474f, - 0.898382425308228f, -0.302144765853882f, 0.898150563240051f, -0.302450239658356f, - 0.897918462753296f, -0.302755534648895f, 0.897686123847961f, -0.303060621023178f, - 0.897453546524048f, -0.303365558385849f, 0.897220790386200f, -0.303670316934586f, - 0.896987736225128f, -0.303974896669388f, 0.896754503250122f, -0.304279297590256f, - 0.896520972251892f, -0.304583519697189f, 0.896287262439728f, -0.304887533187866f, - 0.896053314208984f, -0.305191397666931f, 0.895819067955017f, -0.305495083332062f, - 0.895584642887115f, -0.305798590183258f, 0.895349979400635f, -0.306101888418198f, - 0.895115137100220f, -0.306405037641525f, 0.894879996776581f, -0.306708008050919f, - 0.894644618034363f, -0.307010769844055f, 0.894409060478210f, -0.307313382625580f, - 0.894173204898834f, -0.307615786790848f, 0.893937170505524f, -0.307918041944504f, - 0.893700897693634f, -0.308220088481903f, 0.893464326858521f, -0.308521956205368f, - 0.893227577209473f, -0.308823645114899f, 0.892990648746490f, -0.309125155210495f, - 0.892753422260284f, -0.309426486492157f, 0.892515957355499f, -0.309727638959885f, - 0.892278313636780f, -0.310028612613678f, 0.892040371894836f, -0.310329377651215f, - 0.891802251338959f, -0.310629993677139f, 0.891563892364502f, -0.310930401086807f, - 0.891325294971466f, -0.311230629682541f, 0.891086459159851f, -0.311530679464340f, - 0.890847444534302f, -0.311830550432205f, 0.890608131885529f, -0.312130242586136f, - 0.890368640422821f, -0.312429755926132f, 0.890128850936890f, -0.312729060649872f, - 0.889888882637024f, -0.313028186559677f, 0.889648675918579f, -0.313327133655548f, - 0.889408230781555f, -0.313625901937485f, 0.889167606830597f, -0.313924491405487f, - 0.888926684856415f, -0.314222872257233f, 0.888685584068298f, -0.314521104097366f, - 0.888444244861603f, -0.314819127321243f, 0.888202667236328f, -0.315116971731186f, - 0.887960851192474f, -0.315414607524872f, 0.887718796730042f, -0.315712094306946f, - 0.887476563453674f, -0.316009372472763f, 0.887234091758728f, -0.316306471824646f, - 0.886991322040558f, -0.316603392362595f, 0.886748373508453f, -0.316900104284287f, - 0.886505246162415f, -0.317196637392044f, 0.886261820793152f, -0.317492991685867f, - 0.886018216609955f, -0.317789167165756f, 0.885774314403534f, -0.318085134029388f, - 0.885530233383179f, -0.318380922079086f, 0.885285973548889f, -0.318676531314850f, - 0.885041415691376f, -0.318971961736679f, 0.884796679019928f, -0.319267183542252f, - 0.884551644325256f, -0.319562226533890f, 0.884306430816650f, -0.319857090711594f, - 0.884061038494110f, -0.320151746273041f, 0.883815348148346f, -0.320446223020554f, - 0.883569478988647f, -0.320740520954132f, 0.883323311805725f, -0.321034610271454f, - 0.883076965808868f, -0.321328520774841f, 0.882830440998077f, -0.321622252464294f, - 0.882583618164063f, -0.321915775537491f, 0.882336616516113f, -0.322209119796753f, - 0.882089376449585f, -0.322502255439758f, 0.881841897964478f, -0.322795242071152f, - 0.881594181060791f, -0.323088020086288f, 0.881346285343170f, -0.323380589485168f, - 0.881098151206970f, -0.323672980070114f, 0.880849778652191f, -0.323965191841125f, - 0.880601167678833f, -0.324257194995880f, 0.880352377891541f, -0.324549019336700f, - 0.880103349685669f, -0.324840664863586f, 0.879854083061218f, -0.325132101774216f, - 0.879604578018188f, -0.325423330068588f, 0.879354894161224f, -0.325714409351349f, - 0.879104971885681f, -0.326005280017853f, 0.878854811191559f, -0.326295942068100f, - 0.878604412078857f, -0.326586425304413f, 0.878353834152222f, -0.326876699924469f, - 0.878103017807007f, -0.327166795730591f, 0.877851963043213f, -0.327456712722778f, - 0.877600669860840f, -0.327746421098709f, 0.877349197864532f, -0.328035950660706f, - 0.877097487449646f, -0.328325271606445f, 0.876845538616180f, -0.328614413738251f, - 0.876593410968781f, -0.328903347253799f, 0.876341044902802f, -0.329192101955414f, - 0.876088440418243f, -0.329480648040771f, 0.875835597515106f, -0.329769015312195f, - 0.875582575798035f, -0.330057173967361f, 0.875329315662384f, -0.330345153808594f, - 0.875075817108154f, -0.330632925033569f, 0.874822139739990f, -0.330920487642288f, - 0.874568223953247f, -0.331207901239395f, 0.874314069747925f, -0.331495076417923f, - 0.874059677124023f, -0.331782072782516f, 0.873805105686188f, -0.332068890333176f, - 0.873550295829773f, -0.332355499267578f, 0.873295307159424f, -0.332641899585724f, - 0.873040020465851f, -0.332928121089935f, 0.872784554958344f, -0.333214133977890f, - 0.872528910636902f, -0.333499968051910f, 0.872272968292236f, -0.333785593509674f, - 0.872016847133636f, -0.334071010351181f, 0.871760547161102f, -0.334356248378754f, - 0.871503949165344f, -0.334641307592392f, 0.871247172355652f, -0.334926128387451f, - 0.870990216732025f, -0.335210770368576f, 0.870733022689819f, -0.335495233535767f, - 0.870475590229034f, -0.335779488086700f, 0.870217919349670f, -0.336063534021378f, - 0.869960069656372f, -0.336347371339798f, 0.869701981544495f, -0.336631029844284f, - 0.869443655014038f, -0.336914509534836f, 0.869185149669647f, -0.337197750806808f, - 0.868926405906677f, -0.337480813264847f, 0.868667483329773f, -0.337763696908951f, - 0.868408262729645f, -0.338046342134476f, 0.868148922920227f, -0.338328808546066f, - 0.867889285087585f, -0.338611096143723f, 0.867629468441010f, -0.338893145322800f, - 0.867369413375854f, -0.339175015687943f, 0.867109179496765f, -0.339456677436829f, - 0.866848707199097f, -0.339738160371780f, 0.866588056087494f, -0.340019434690475f, - 0.866327106952667f, -0.340300500392914f, 0.866066038608551f, -0.340581357479095f, - 0.865804672241211f, -0.340862035751343f, 0.865543127059937f, -0.341142505407333f, - 0.865281403064728f, -0.341422766447067f, 0.865019381046295f, -0.341702848672867f, - 0.864757239818573f, -0.341982692480087f, 0.864494800567627f, -0.342262357473373f, - 0.864232182502747f, -0.342541843652725f, 0.863969385623932f, -0.342821091413498f, - 0.863706290721893f, -0.343100160360336f, 0.863443076610565f, -0.343379020690918f, - 0.863179564476013f, -0.343657672405243f, 0.862915873527527f, -0.343936115503311f, - 0.862652003765106f, -0.344214379787445f, 0.862387895584106f, -0.344492435455322f, - 0.862123548984528f, -0.344770282506943f, 0.861859023571014f, -0.345047920942307f, - 0.861594259738922f, -0.345325350761414f, 0.861329257488251f, -0.345602601766586f, - 0.861064076423645f, -0.345879614353180f, 0.860798716545105f, -0.346156448125839f, - 0.860533118247986f, -0.346433073282242f, 0.860267281532288f, -0.346709519624710f, - 0.860001266002655f, -0.346985727548599f, 0.859735012054443f, -0.347261756658554f, - 0.859468579292297f, -0.347537547349930f, 0.859201908111572f, -0.347813159227371f, - 0.858934998512268f, -0.348088562488556f, 0.858667910099030f, -0.348363757133484f, - 0.858400642871857f, -0.348638743162155f, 0.858133137226105f, -0.348913550376892f, - 0.857865393161774f, -0.349188119173050f, 0.857597470283508f, -0.349462509155273f, - 0.857329368591309f, -0.349736660718918f, 0.857060968875885f, -0.350010633468628f, - 0.856792449951172f, -0.350284397602081f, 0.856523692607880f, -0.350557953119278f, - 0.856254696846008f, -0.350831300020218f, 0.855985522270203f, -0.351104438304901f, - 0.855716109275818f, -0.351377367973328f, 0.855446517467499f, -0.351650089025497f, - 0.855176687240601f, -0.351922631263733f, 0.854906618595123f, -0.352194935083389f, - 0.854636430740356f, -0.352467030286789f, 0.854365944862366f, -0.352738946676254f, - 0.854095339775085f, -0.353010624647141f, 0.853824436664581f, -0.353282123804092f, - 0.853553414344788f, -0.353553384542465f, 0.853282094001770f, -0.353824466466904f, - 0.853010654449463f, -0.354095309972763f, 0.852738916873932f, -0.354365974664688f, - 0.852467060089111f, -0.354636400938034f, 0.852194905281067f, -0.354906648397446f, - 0.851922631263733f, -0.355176687240601f, 0.851650118827820f, -0.355446487665176f, - 0.851377367973328f, -0.355716109275818f, 0.851104438304901f, -0.355985492467880f, - 0.850831270217896f, -0.356254696846008f, 0.850557923316956f, -0.356523662805557f, - 0.850284397602081f, -0.356792420148849f, 0.850010633468628f, -0.357060998678207f, - 0.849736690521240f, -0.357329338788986f, 0.849462509155273f, -0.357597470283508f, - 0.849188148975372f, -0.357865422964096f, 0.848913550376892f, -0.358133137226105f, - 0.848638772964478f, -0.358400642871857f, 0.848363757133484f, -0.358667939901352f, - 0.848088562488556f, -0.358935028314590f, 0.847813189029694f, -0.359201908111572f, - 0.847537577152252f, -0.359468549489975f, 0.847261726856232f, -0.359735012054443f, - 0.846985757350922f, -0.360001266002655f, 0.846709489822388f, -0.360267281532288f, - 0.846433103084564f, -0.360533088445663f, 0.846156477928162f, -0.360798716545105f, - 0.845879614353180f, -0.361064106225967f, 0.845602571964264f, -0.361329287290573f, - 0.845325350761414f, -0.361594229936600f, 0.845047891139984f, -0.361858993768692f, - 0.844770252704620f, -0.362123548984528f, 0.844492435455322f, -0.362387865781784f, - 0.844214379787445f, -0.362651973962784f, 0.843936145305634f, -0.362915903329849f, - 0.843657672405243f, -0.363179564476013f, 0.843379020690918f, -0.363443046808243f, - 0.843100130558014f, -0.363706320524216f, 0.842821121215820f, -0.363969355821610f, - 0.842541813850403f, -0.364232182502747f, 0.842262387275696f, -0.364494800567627f, - 0.841982722282410f, -0.364757210016251f, 0.841702818870544f, -0.365019410848618f, - 0.841422796249390f, -0.365281373262405f, 0.841142535209656f, -0.365543156862259f, - 0.840862035751343f, -0.365804702043533f, 0.840581357479095f, -0.366066008806229f, - 0.840300500392914f, -0.366327136754990f, 0.840019404888153f, -0.366588026285172f, - 0.839738130569458f, -0.366848707199097f, 0.839456677436829f, -0.367109179496765f, - 0.839175045490265f, -0.367369443178177f, 0.838893175125122f, -0.367629468441010f, - 0.838611066341400f, -0.367889285087585f, 0.838328838348389f, -0.368148893117905f, - 0.838046371936798f, -0.368408292531967f, 0.837763667106628f, -0.368667453527451f, - 0.837480843067169f, -0.368926405906677f, 0.837197780609131f, -0.369185149669647f, - 0.836914479732513f, -0.369443655014038f, 0.836631059646606f, -0.369701951742172f, - 0.836347401142120f, -0.369960039854050f, 0.836063504219055f, -0.370217919349670f, - 0.835779488086700f, -0.370475560426712f, 0.835495233535767f, -0.370732992887497f, - 0.835210800170898f, -0.370990216732025f, 0.834926128387451f, -0.371247202157974f, - 0.834641277790070f, -0.371503978967667f, 0.834356248378754f, -0.371760547161102f, - 0.834071040153503f, -0.372016876935959f, 0.833785593509674f, -0.372272998094559f, - 0.833499968051910f, -0.372528880834579f, 0.833214163780212f, -0.372784584760666f, - 0.832928121089935f, -0.373040050268173f, 0.832641899585724f, -0.373295277357101f, - 0.832355499267578f, -0.373550295829773f, 0.832068860530853f, -0.373805105686188f, - 0.831782102584839f, -0.374059677124023f, 0.831495106220245f, -0.374314039945602f, - 0.831207871437073f, -0.374568194150925f, 0.830920517444611f, -0.374822109937668f, - 0.830632925033569f, -0.375075817108154f, 0.830345153808594f, -0.375329315662384f, - 0.830057144165039f, -0.375582575798035f, 0.829769015312195f, -0.375835597515106f, - 0.829480648040771f, -0.376088410615921f, 0.829192101955414f, -0.376341015100479f, - 0.828903317451477f, -0.376593410968781f, 0.828614413738251f, -0.376845568418503f, - 0.828325271606445f, -0.377097487449646f, 0.828035950660706f, -0.377349197864532f, - 0.827746450901031f, -0.377600699663162f, 0.827456712722778f, -0.377851963043213f, - 0.827166795730591f, -0.378102988004684f, 0.826876699924469f, -0.378353834152222f, - 0.826586425304413f, -0.378604412078857f, 0.826295912265778f, -0.378854811191559f, - 0.826005280017853f, -0.379104942083359f, 0.825714409351349f, -0.379354894161224f, - 0.825423359870911f, -0.379604607820511f, 0.825132071971893f, -0.379854083061218f, - 0.824840664863586f, -0.380103349685669f, 0.824549019336700f, -0.380352377891541f, - 0.824257194995880f, -0.380601197481155f, 0.823965191841125f, -0.380849778652191f, - 0.823673009872437f, -0.381098151206970f, 0.823380589485168f, -0.381346285343170f, - 0.823087990283966f, -0.381594210863113f, 0.822795212268829f, -0.381841897964478f, - 0.822502255439758f, -0.382089376449585f, 0.822209119796753f, -0.382336616516113f, - 0.821915745735168f, -0.382583618164063f, 0.821622252464294f, -0.382830440998077f, - 0.821328520774841f, -0.383076995611191f, 0.821034610271454f, -0.383323341608047f, - 0.820740520954132f, -0.383569449186325f, 0.820446193218231f, -0.383815348148346f, - 0.820151746273041f, -0.384061008691788f, 0.819857060909271f, -0.384306460618973f, - 0.819562196731567f, -0.384551674127579f, 0.819267153739929f, -0.384796649217606f, - 0.818971931934357f, -0.385041415691376f, 0.818676531314850f, -0.385285943746567f, - 0.818380951881409f, -0.385530263185501f, 0.818085134029388f, -0.385774344205856f, - 0.817789137363434f, -0.386018186807632f, 0.817493021488190f, -0.386261820793152f, - 0.817196667194366f, -0.386505216360092f, 0.816900074481964f, -0.386748403310776f, - 0.816603362560272f, -0.386991351842880f, 0.816306471824646f, -0.387234061956406f, - 0.816009342670441f, -0.387476563453674f, 0.815712094306946f, -0.387718826532364f, - 0.815414607524872f, -0.387960851192474f, 0.815116941928864f, -0.388202667236328f, - 0.814819097518921f, -0.388444244861603f, 0.814521074295044f, -0.388685584068298f, - 0.814222872257233f, -0.388926714658737f, 0.813924491405487f, -0.389167606830597f, - 0.813625931739807f, -0.389408260583878f, 0.813327133655548f, -0.389648675918579f, - 0.813028216362000f, -0.389888882637024f, 0.812729060649872f, -0.390128880739212f, - 0.812429726123810f, -0.390368610620499f, 0.812130272388458f, -0.390608131885529f, - 0.811830580234528f, -0.390847414731979f, 0.811530709266663f, -0.391086459159851f, - 0.811230659484863f, -0.391325294971466f, 0.810930430889130f, -0.391563892364502f, - 0.810629963874817f, -0.391802251338959f, 0.810329377651215f, -0.392040401697159f, - 0.810028612613678f, -0.392278283834457f, 0.809727668762207f, -0.392515957355499f, - 0.809426486492157f, -0.392753422260284f, 0.809125185012817f, -0.392990618944168f, - 0.808823645114899f, -0.393227607011795f, 0.808521986007690f, -0.393464356660843f, - 0.808220088481903f, -0.393700867891312f, 0.807918012142181f, -0.393937170505524f, - 0.807615816593170f, -0.394173204898834f, 0.807313382625580f, -0.394409030675888f, - 0.807010769844055f, -0.394644618034363f, 0.806707978248596f, -0.394879996776581f, - 0.806405067443848f, -0.395115107297897f, 0.806101918220520f, -0.395350009202957f, - 0.805798590183258f, -0.395584672689438f, 0.805495083332062f, -0.395819097757339f, - 0.805191397666931f, -0.396053284406662f, 0.804887533187866f, -0.396287262439728f, - 0.804583489894867f, -0.396520972251892f, 0.804279267787933f, -0.396754473447800f, - 0.803974866867065f, -0.396987736225128f, 0.803670346736908f, -0.397220760583878f, - 0.803365588188171f, -0.397453576326370f, 0.803060650825500f, -0.397686123847961f, - 0.802755534648895f, -0.397918462753296f, 0.802450239658356f, -0.398150533437729f, - 0.802144765853882f, -0.398382395505905f, 0.801839113235474f, -0.398614019155502f, - 0.801533281803131f, -0.398845434188843f, 0.801227271556854f, -0.399076581001282f, - 0.800921142101288f, -0.399307489395142f, 0.800614774227142f, -0.399538189172745f, - 0.800308227539063f, -0.399768620729446f, 0.800001561641693f, -0.399998843669891f, - 0.799694657325745f, -0.400228828191757f, 0.799387574195862f, -0.400458574295044f, - 0.799080371856689f, -0.400688081979752f, 0.798772931098938f, -0.400917351245880f, - 0.798465371131897f, -0.401146411895752f, 0.798157572746277f, -0.401375204324722f, - 0.797849655151367f, -0.401603758335114f, 0.797541558742523f, -0.401832103729248f, - 0.797233223915100f, -0.402060180902481f, 0.796924769878387f, -0.402288049459457f, - 0.796616137027740f, -0.402515679597855f, 0.796307325363159f, -0.402743041515350f, - 0.795998334884644f, -0.402970194816589f, 0.795689165592194f, -0.403197109699249f, - 0.795379877090454f, -0.403423786163330f, 0.795070350170136f, -0.403650224208832f, - 0.794760644435883f, -0.403876423835754f, 0.794450819492340f, -0.404102355241776f, - 0.794140756130219f, -0.404328078031540f, 0.793830573558807f, -0.404553562402725f, - 0.793520212173462f, -0.404778808355331f, 0.793209671974182f, -0.405003815889359f, - 0.792898952960968f, -0.405228585004807f, 0.792588055133820f, -0.405453115701675f, - 0.792276978492737f, -0.405677437782288f, 0.791965723037720f, -0.405901491641998f, - 0.791654348373413f, -0.406125307083130f, 0.791342735290527f, -0.406348884105682f, - 0.791031002998352f, -0.406572192907333f, 0.790719091892242f, -0.406795293092728f, - 0.790407001972198f, -0.407018154859543f, 0.790094733238220f, -0.407240778207779f, - 0.789782285690308f, -0.407463163137436f, 0.789469659328461f, -0.407685309648514f, - 0.789156913757324f, -0.407907217741013f, 0.788843929767609f, -0.408128857612610f, - 0.788530826568604f, -0.408350288867950f, 0.788217544555664f, -0.408571451902390f, - 0.787904083728790f, -0.408792406320572f, 0.787590444087982f, -0.409013092517853f, - 0.787276685237885f, -0.409233570098877f, 0.786962687969208f, -0.409453779459000f, - 0.786648571491241f, -0.409673750400543f, 0.786334276199341f, -0.409893482923508f, - 0.786019802093506f, -0.410112977027893f, 0.785705149173737f, -0.410332232713699f, - 0.785390377044678f, -0.410551249980927f, 0.785075426101685f, -0.410770028829575f, - 0.784760236740112f, -0.410988569259644f, 0.784444928169250f, -0.411206841468811f, - 0.784129500389099f, -0.411424905061722f, 0.783813834190369f, -0.411642700433731f, - 0.783498048782349f, -0.411860257387161f, 0.783182024955750f, -0.412077575922012f, - 0.782865881919861f, -0.412294656038284f, 0.782549619674683f, -0.412511497735977f, - 0.782233119010925f, -0.412728071212769f, 0.781916499137878f, -0.412944436073303f, - 0.781599700450897f, -0.413160532712936f, 0.781282722949982f, -0.413376390933990f, - 0.780965566635132f, -0.413592010736465f, 0.780648231506348f, -0.413807392120361f, - 0.780330777168274f, -0.414022535085678f, 0.780013144016266f, -0.414237409830093f, - 0.779695332050323f, -0.414452046155930f, 0.779377400875092f, -0.414666473865509f, - 0.779059290885925f, -0.414880603551865f, 0.778741002082825f, -0.415094524621964f, - 0.778422534465790f, -0.415308207273483f, 0.778103888034821f, -0.415521621704102f, - 0.777785122394562f, -0.415734797716141f, 0.777466177940369f, -0.415947735309601f, - 0.777147054672241f, -0.416160434484482f, 0.776827812194824f, -0.416372895240784f, - 0.776508331298828f, -0.416585087776184f, 0.776188731193542f, -0.416797041893005f, - 0.775869011878967f, -0.417008757591248f, 0.775549054145813f, -0.417220205068588f, - 0.775228977203369f, -0.417431443929672f, 0.774908721446991f, -0.417642414569855f, - 0.774588346481323f, -0.417853146791458f, 0.774267733097076f, -0.418063640594482f, - 0.773947000503540f, -0.418273866176605f, 0.773626148700714f, -0.418483853340149f, - 0.773305058479309f, -0.418693602085114f, 0.772983849048615f, -0.418903112411499f, - 0.772662520408630f, -0.419112354516983f, 0.772340953350067f, -0.419321358203888f, - 0.772019267082214f, -0.419530123472214f, 0.771697402000427f, -0.419738620519638f, - 0.771375417709351f, -0.419946908950806f, 0.771053194999695f, -0.420154929161072f, - 0.770730912685394f, -0.420362681150436f, 0.770408391952515f, -0.420570224523544f, - 0.770085752010345f, -0.420777499675751f, 0.769762933254242f, -0.420984506607056f, - 0.769439935684204f, -0.421191304922104f, 0.769116818904877f, -0.421397835016251f, - 0.768793523311615f, -0.421604126691818f, 0.768470108509064f, -0.421810150146484f, - 0.768146514892578f, -0.422015935182571f, 0.767822742462158f, -0.422221481800079f, - 0.767498791217804f, -0.422426789999008f, 0.767174720764160f, -0.422631829977036f, - 0.766850471496582f, -0.422836631536484f, 0.766526103019714f, -0.423041164875031f, - 0.766201555728912f, -0.423245459794998f, 0.765876889228821f, -0.423449516296387f, - 0.765551984310150f, -0.423653304576874f, 0.765226960182190f, -0.423856884241104f, - 0.764901816844940f, -0.424060165882111f, 0.764576494693756f, -0.424263238906860f, - 0.764250993728638f, -0.424466013908386f, 0.763925373554230f, -0.424668580293655f, - 0.763599574565887f, -0.424870878458023f, 0.763273596763611f, -0.425072938203812f, - 0.762947499752045f, -0.425274729728699f, 0.762621283531189f, -0.425476282835007f, - 0.762294828891754f, -0.425677597522736f, 0.761968255043030f, -0.425878643989563f, - 0.761641561985016f, -0.426079452037811f, 0.761314690113068f, -0.426279991865158f, - 0.760987639427185f, -0.426480293273926f, 0.760660469532013f, -0.426680356264114f, - 0.760333120822906f, -0.426880151033401f, 0.760005652904511f, -0.427079707384110f, - 0.759678006172180f, -0.427278995513916f, 0.759350180625916f, -0.427478045225143f, - 0.759022235870361f, -0.427676826715469f, 0.758694171905518f, -0.427875369787216f, - 0.758365929126740f, -0.428073674440384f, 0.758037507534027f, -0.428271710872650f, - 0.757708966732025f, -0.428469479084015f, 0.757380247116089f, -0.428667008876801f, - 0.757051348686218f, -0.428864300251007f, 0.756722390651703f, -0.429061323404312f, - 0.756393194198608f, -0.429258108139038f, 0.756063878536224f, -0.429454624652863f, - 0.755734443664551f, -0.429650902748108f, 0.755404829978943f, -0.429846942424774f, - 0.755075037479401f, -0.430042684078217f, 0.754745125770569f, -0.430238217115402f, - 0.754415094852448f, -0.430433481931686f, 0.754084885120392f, -0.430628478527069f, - 0.753754496574402f, -0.430823236703873f, 0.753423988819122f, -0.431017726659775f, - 0.753093302249908f, -0.431211978197098f, 0.752762496471405f, -0.431405961513519f, - 0.752431571483612f, -0.431599706411362f, 0.752100467681885f, -0.431793183088303f, - 0.751769185066223f, -0.431986421346664f, 0.751437783241272f, -0.432179391384125f, - 0.751106262207031f, -0.432372123003006f, 0.750774562358856f, -0.432564586400986f, - 0.750442683696747f, -0.432756811380386f, 0.750110685825348f, -0.432948768138886f, - 0.749778568744659f, -0.433140486478806f, 0.749446272850037f, -0.433331936597824f, - 0.749113857746124f, -0.433523118495941f, 0.748781263828278f, -0.433714061975479f, - 0.748448550701141f, -0.433904737234116f, 0.748115658760071f, -0.434095174074173f, - 0.747782647609711f, -0.434285342693329f, 0.747449457645416f, -0.434475272893906f, - 0.747116148471832f, -0.434664934873581f, 0.746782720088959f, -0.434854328632355f, - 0.746449112892151f, -0.435043483972549f, 0.746115326881409f, -0.435232400894165f, - 0.745781481266022f, -0.435421019792557f, 0.745447397232056f, -0.435609430074692f, - 0.745113253593445f, -0.435797542333603f, 0.744778931140900f, -0.435985416173935f, - 0.744444429874420f, -0.436173021793365f, 0.744109809398651f, -0.436360388994217f, - 0.743775069713593f, -0.436547487974167f, 0.743440151214600f, -0.436734348535538f, - 0.743105113506317f, -0.436920911073685f, 0.742769956588745f, -0.437107264995575f, - 0.742434620857239f, -0.437293320894241f, 0.742099165916443f, -0.437479138374329f, - 0.741763532161713f, -0.437664687633514f, 0.741427779197693f, -0.437849998474121f, - 0.741091907024384f, -0.438035041093826f, 0.740755856037140f, -0.438219845294952f, - 0.740419685840607f, -0.438404351472855f, 0.740083336830139f, -0.438588619232178f, - 0.739746868610382f, -0.438772648572922f, 0.739410281181335f, -0.438956409692764f, - 0.739073514938354f, -0.439139902591705f, 0.738736629486084f, -0.439323127269745f, - 0.738399624824524f, -0.439506113529205f, 0.738062441349030f, -0.439688831567764f, - 0.737725138664246f, -0.439871311187744f, 0.737387716770172f, -0.440053492784500f, - 0.737050116062164f, -0.440235435962677f, 0.736712396144867f, -0.440417140722275f, - 0.736374497413635f, -0.440598547458649f, 0.736036539077759f, -0.440779715776443f, - 0.735698342323303f, -0.440960645675659f, 0.735360085964203f, -0.441141277551651f, - 0.735021650791168f, -0.441321671009064f, 0.734683096408844f, -0.441501796245575f, - 0.734344422817230f, -0.441681683063507f, 0.734005570411682f, -0.441861271858215f, - 0.733666598796844f, -0.442040622234344f, 0.733327507972717f, -0.442219734191895f, - 0.732988238334656f, -0.442398548126221f, 0.732648849487305f, -0.442577123641968f, - 0.732309341430664f, -0.442755430936813f, 0.731969714164734f, -0.442933470010757f, - 0.731629908084869f, -0.443111270666122f, 0.731289982795715f, -0.443288803100586f, - 0.730949878692627f, -0.443466067314148f, 0.730609714984894f, -0.443643063306808f, - 0.730269372463226f, -0.443819820880890f, 0.729928910732269f, -0.443996280431747f, - 0.729588270187378f, -0.444172531366348f, 0.729247510433197f, -0.444348484277725f, - 0.728906631469727f, -0.444524168968201f, 0.728565633296967f, -0.444699615240097f, - 0.728224515914917f, -0.444874793291092f, 0.727883219718933f, -0.445049703121185f, - 0.727541804313660f, -0.445224374532700f, 0.727200269699097f, -0.445398747920990f, - 0.726858556270599f, -0.445572882890701f, 0.726516723632813f, -0.445746749639511f, - 0.726174771785736f, -0.445920348167419f, 0.725832700729370f, -0.446093708276749f, - 0.725490510463715f, -0.446266770362854f, 0.725148141384125f, -0.446439594030380f, - 0.724805653095245f, -0.446612149477005f, 0.724463045597076f, -0.446784436702728f, - 0.724120318889618f, -0.446956485509872f, 0.723777413368225f, -0.447128236293793f, - 0.723434448242188f, -0.447299748659134f, 0.723091304302216f, -0.447470992803574f, - 0.722747981548309f, -0.447641968727112f, 0.722404599189758f, -0.447812676429749f, - 0.722061097621918f, -0.447983115911484f, 0.721717417240143f, -0.448153316974640f, - 0.721373617649078f, -0.448323249816895f, 0.721029698848724f, -0.448492884635925f, - 0.720685660839081f, -0.448662281036377f, 0.720341444015503f, -0.448831409215927f, - 0.719997107982636f, -0.449000298976898f, 0.719652712345123f, -0.449168890714645f, - 0.719308137893677f, -0.449337244033813f, 0.718963444232941f, -0.449505299329758f, - 0.718618571758270f, -0.449673116207123f, 0.718273639678955f, -0.449840664863586f, - 0.717928528785706f, -0.450007945299149f, 0.717583298683167f, -0.450174957513809f, - 0.717238008975983f, -0.450341701507568f, 0.716892480850220f, -0.450508207082748f, - 0.716546893119812f, -0.450674414634705f, 0.716201186180115f, -0.450840383768082f, - 0.715855300426483f, -0.451006084680557f, 0.715509355068207f, -0.451171487569809f, - 0.715163230895996f, -0.451336652040482f, 0.714816987514496f, -0.451501548290253f, - 0.714470624923706f, -0.451666176319122f, 0.714124143123627f, -0.451830536127090f, - 0.713777542114258f, -0.451994657516479f, 0.713430821895599f, -0.452158480882645f, - 0.713083922863007f, -0.452322036027908f, 0.712736964225769f, -0.452485352754593f, - 0.712389826774597f, -0.452648371458054f, 0.712042629718781f, -0.452811151742935f, - 0.711695253849030f, -0.452973634004593f, 0.711347758769989f, -0.453135877847672f, - 0.711000144481659f, -0.453297853469849f, 0.710652410984039f, -0.453459560871124f, - 0.710304558277130f, -0.453621000051498f, 0.709956526756287f, -0.453782171010971f, - 0.709608435630798f, -0.453943043947220f, 0.709260225296021f, -0.454103678464890f, - 0.708911836147308f, -0.454264044761658f, 0.708563387393951f, -0.454424172639847f, - 0.708214759826660f, -0.454584002494812f, 0.707866072654724f, -0.454743564128876f, - 0.707517206668854f, -0.454902857542038f, 0.707168221473694f, -0.455061882734299f, - 0.706819176673889f, -0.455220639705658f, 0.706469953060150f, -0.455379128456116f, - 0.706120610237122f, -0.455537378787994f, 0.705771148204803f, -0.455695331096649f, - 0.705421566963196f, -0.455853015184402f, 0.705071866512299f, -0.456010431051254f, - 0.704722046852112f, -0.456167578697205f, 0.704372167587280f, -0.456324487924576f, - 0.704022109508514f, -0.456481099128723f, 0.703671932220459f, -0.456637442111969f, - 0.703321635723114f, -0.456793516874313f, 0.702971220016479f, -0.456949323415756f, - 0.702620685100555f, -0.457104891538620f, 0.702270030975342f, -0.457260161638260f, - 0.701919257640839f, -0.457415163516998f, 0.701568365097046f, -0.457569897174835f, - 0.701217353343964f, -0.457724362611771f, 0.700866222381592f, -0.457878559827805f, - 0.700514972209930f, -0.458032488822937f, 0.700163602828979f, -0.458186149597168f, - 0.699812114238739f, -0.458339542150497f, 0.699460506439209f, -0.458492636680603f, - 0.699108779430389f, -0.458645492792130f, 0.698756933212280f, -0.458798080682755f, - 0.698404967784882f, -0.458950400352478f, 0.698052942752838f, -0.459102421998978f, - 0.697700738906860f, -0.459254205226898f, 0.697348415851593f, -0.459405690431595f, - 0.696996033191681f, -0.459556937217712f, 0.696643471717834f, -0.459707885980606f, - 0.696290850639343f, -0.459858566522598f, 0.695938050746918f, -0.460008978843689f, - 0.695585191249847f, -0.460159152746201f, 0.695232212543488f, -0.460309028625488f, - 0.694879114627838f, -0.460458606481552f, 0.694525837898254f, -0.460607945919037f, - 0.694172501564026f, -0.460757017135620f, 0.693819046020508f, -0.460905820131302f, - 0.693465530872345f, -0.461054325103760f, 0.693111836910248f, -0.461202591657639f, - 0.692758023738861f, -0.461350560188293f, 0.692404091358185f, -0.461498260498047f, - 0.692050099372864f, -0.461645722389221f, 0.691695988178253f, -0.461792886257172f, - 0.691341698169708f, -0.461939752101898f, 0.690987348556519f, -0.462086379528046f, - 0.690632879734039f, -0.462232738733292f, 0.690278291702271f, -0.462378799915314f, - 0.689923584461212f, -0.462524622678757f, 0.689568817615509f, -0.462670147418976f, - 0.689213871955872f, -0.462815403938293f, 0.688858866691589f, -0.462960392236710f, - 0.688503682613373f, -0.463105112314224f, 0.688148438930511f, -0.463249564170837f, - 0.687793076038361f, -0.463393747806549f, 0.687437593936920f, -0.463537633419037f, - 0.687082052230835f, -0.463681250810623f, 0.686726331710815f, -0.463824629783630f, - 0.686370551586151f, -0.463967710733414f, 0.686014592647552f, -0.464110493659973f, - 0.685658574104309f, -0.464253038167953f, 0.685302436351776f, -0.464395314455032f, - 0.684946238994598f, -0.464537292718887f, 0.684589862823486f, -0.464679002761841f, - 0.684233427047729f, -0.464820444583893f, 0.683876872062683f, -0.464961618185043f, - 0.683520197868347f, -0.465102523565292f, 0.683163404464722f, -0.465243130922318f, - 0.682806491851807f, -0.465383470058441f, 0.682449519634247f, -0.465523540973663f, - 0.682092368602753f, -0.465663343667984f, 0.681735157966614f, -0.465802878141403f, - 0.681377887725830f, -0.465942144393921f, 0.681020438671112f, -0.466081112623215f, - 0.680662930011749f, -0.466219812631607f, 0.680305242538452f, -0.466358244419098f, - 0.679947495460510f, -0.466496407985687f, 0.679589688777924f, -0.466634273529053f, - 0.679231703281403f, -0.466771900653839f, 0.678873658180237f, -0.466909229755402f, - 0.678515493869781f, -0.467046260833740f, 0.678157210350037f, -0.467183053493500f, - 0.677798807621002f, -0.467319577932358f, 0.677440345287323f, -0.467455804347992f, - 0.677081763744354f, -0.467591762542725f, 0.676723062992096f, -0.467727422714233f, - 0.676364302635193f, -0.467862844467163f, 0.676005363464355f, -0.467997968196869f, - 0.675646364688873f, -0.468132823705673f, 0.675287246704102f, -0.468267410993576f, - 0.674928069114685f, -0.468401730060577f, 0.674568772315979f, -0.468535751104355f, - 0.674209356307983f, -0.468669503927231f, 0.673849821090698f, -0.468802988529205f, - 0.673490226268768f, -0.468936175107956f, 0.673130512237549f, -0.469069123268127f, - 0.672770678997040f, -0.469201773405075f, 0.672410726547241f, -0.469334155321121f, - 0.672050714492798f, -0.469466239213943f, 0.671690583229065f, -0.469598054885864f, - 0.671330332756042f, -0.469729602336884f, 0.670970022678375f, -0.469860881567001f, - 0.670609593391418f, -0.469991862773895f, 0.670249044895172f, -0.470122605562210f, - 0.669888436794281f, -0.470253020524979f, 0.669527709484100f, -0.470383197069168f, - 0.669166862964630f, -0.470513075590134f, 0.668805956840515f, -0.470642685890198f, - 0.668444931507111f, -0.470772027969360f, 0.668083786964417f, -0.470901101827621f, - 0.667722582817078f, -0.471029877662659f, 0.667361259460449f, -0.471158385276794f, - 0.666999816894531f, -0.471286594867706f, 0.666638314723969f, -0.471414536237717f, - 0.666276693344116f, -0.471542209386826f, 0.665914952754974f, -0.471669614315033f, - 0.665553152561188f, -0.471796721220016f, 0.665191233158112f, -0.471923559904099f, - 0.664829254150391f, -0.472050130367279f, 0.664467096328735f, -0.472176402807236f, - 0.664104938507080f, -0.472302407026291f, 0.663742601871490f, -0.472428143024445f, - 0.663380205631256f, -0.472553610801697f, 0.663017749786377f, -0.472678780555725f, - 0.662655174732208f, -0.472803652286530f, 0.662292480468750f, -0.472928285598755f, - 0.661929666996002f, -0.473052620887756f, 0.661566793918610f, -0.473176687955856f, - 0.661203861236572f, -0.473300457000732f, 0.660840749740601f, -0.473423957824707f, - 0.660477638244629f, -0.473547190427780f, 0.660114347934723f, -0.473670125007629f, - 0.659750998020172f, -0.473792791366577f, 0.659387588500977f, -0.473915189504623f, - 0.659024059772491f, -0.474037289619446f, 0.658660411834717f, -0.474159121513367f, - 0.658296704292297f, -0.474280685186386f, 0.657932877540588f, -0.474401950836182f, - 0.657568991184235f, -0.474522948265076f, 0.657204985618591f, -0.474643647670746f, - 0.656840860843658f, -0.474764078855515f, 0.656476676464081f, -0.474884241819382f, - 0.656112432479858f, -0.475004136562347f, 0.655748009681702f, -0.475123733282089f, - 0.655383586883545f, -0.475243031978607f, 0.655019044876099f, -0.475362062454224f, - 0.654654383659363f, -0.475480824708939f, 0.654289662837982f, -0.475599318742752f, - 0.653924822807312f, -0.475717514753342f, 0.653559923171997f, -0.475835442543030f, - 0.653194904327393f, -0.475953072309494f, 0.652829825878143f, -0.476070433855057f, - 0.652464628219604f, -0.476187497377396f, 0.652099311351776f, -0.476304292678833f, - 0.651733994483948f, -0.476420819759369f, 0.651368498802185f, -0.476537048816681f, - 0.651003003120422f, -0.476653009653091f, 0.650637328624725f, -0.476768702268600f, - 0.650271594524384f, -0.476884096860886f, 0.649905800819397f, -0.476999223232269f, - 0.649539887905121f, -0.477114051580429f, 0.649173915386200f, -0.477228611707687f, - 0.648807883262634f, -0.477342873811722f, 0.648441672325134f, -0.477456867694855f, - 0.648075461387634f, -0.477570593357086f, 0.647709131240845f, -0.477684020996094f, - 0.647342681884766f, -0.477797180414200f, 0.646976172924042f, -0.477910041809082f, - 0.646609604358673f, -0.478022634983063f, 0.646242916584015f, -0.478134930133820f, - 0.645876109600067f, -0.478246957063675f, 0.645509302616119f, -0.478358715772629f, - 0.645142316818237f, -0.478470176458359f, 0.644775331020355f, -0.478581339120865f, - 0.644408226013184f, -0.478692263364792f, 0.644041001796722f, -0.478802859783173f, - 0.643673717975616f, -0.478913217782974f, 0.643306374549866f, -0.479023247957230f, - 0.642938911914825f, -0.479133039712906f, 0.642571389675140f, -0.479242533445358f, - 0.642203748226166f, -0.479351729154587f, 0.641836047172546f, -0.479460656642914f, - 0.641468286514282f, -0.479569315910339f, 0.641100406646729f, -0.479677677154541f, - 0.640732467174530f, -0.479785770177841f, 0.640364408493042f, -0.479893565177917f, - 0.639996349811554f, -0.480001062154770f, 0.639628112316132f, -0.480108320713043f, - 0.639259815216064f, -0.480215251445770f, 0.638891458511353f, -0.480321943759918f, - 0.638523042201996f, -0.480428308248520f, 0.638154506683350f, -0.480534434318542f, - 0.637785911560059f, -0.480640232563019f, 0.637417197227478f, -0.480745792388916f, - 0.637048482894897f, -0.480851024389267f, 0.636679589748383f, -0.480956017971039f, - 0.636310696601868f, -0.481060713529587f, 0.635941684246063f, -0.481165111064911f, - 0.635572552680969f, -0.481269240379334f, 0.635203421115875f, -0.481373071670532f, - 0.634834170341492f, -0.481476634740829f, 0.634464859962463f, -0.481579899787903f, - 0.634095430374146f, -0.481682896614075f, 0.633725941181183f, -0.481785595417023f, - 0.633356392383575f, -0.481888025999069f, 0.632986724376678f, -0.481990188360214f, - 0.632616996765137f, -0.482092022895813f, 0.632247209548950f, -0.482193619012833f, - 0.631877362728119f, -0.482294887304306f, 0.631507396697998f, -0.482395917177200f, - 0.631137371063232f, -0.482496619224548f, 0.630767226219177f, -0.482597053050995f, - 0.630397081375122f, -0.482697218656540f, 0.630026817321777f, -0.482797086238861f, - 0.629656434059143f, -0.482896685600281f, 0.629286050796509f, -0.482995986938477f, - 0.628915548324585f, -0.483094990253448f, 0.628544986248016f, -0.483193725347519f, - 0.628174364566803f, -0.483292192220688f, 0.627803623676300f, -0.483390361070633f, - 0.627432823181152f, -0.483488231897354f, 0.627061963081360f, -0.483585834503174f, - 0.626691043376923f, -0.483683139085770f, 0.626320004463196f, -0.483780175447464f, - 0.625948905944824f, -0.483876913785934f, 0.625577747821808f, -0.483973383903503f, - 0.625206530094147f, -0.484069555997849f, 0.624835193157196f, -0.484165430068970f, - 0.624463796615601f, -0.484261035919189f, 0.624092340469360f, -0.484356373548508f, - 0.623720824718475f, -0.484451413154602f, 0.623349189758301f, -0.484546154737473f, - 0.622977554798126f, -0.484640628099442f, 0.622605800628662f, -0.484734803438187f, - 0.622233927249908f, -0.484828680753708f, 0.621862053871155f, -0.484922289848328f, - 0.621490061283112f, -0.485015630722046f, 0.621118068695068f, -0.485108673572540f, - 0.620745956897736f, -0.485201418399811f, 0.620373785495758f, -0.485293895006180f, - 0.620001494884491f, -0.485386073589325f, 0.619629204273224f, -0.485477954149246f, - 0.619256794452667f, -0.485569566488266f, 0.618884325027466f, -0.485660910606384f, - 0.618511795997620f, -0.485751956701279f, 0.618139207363129f, -0.485842704772949f, - 0.617766559123993f, -0.485933154821396f, 0.617393791675568f, -0.486023366451263f, - 0.617020964622498f, -0.486113250255585f, 0.616648077964783f, -0.486202865839005f, - 0.616275131702423f, -0.486292183399200f, 0.615902125835419f, -0.486381232738495f, - 0.615529060363770f, -0.486469984054565f, 0.615155875682831f, -0.486558437347412f, - 0.614782691001892f, -0.486646622419357f, 0.614409387111664f, -0.486734509468079f, - 0.614036023616791f, -0.486822128295898f, 0.613662600517273f, -0.486909449100494f, - 0.613289117813110f, -0.486996471881866f, 0.612915575504303f, -0.487083226442337f, - 0.612541973590851f, -0.487169682979584f, 0.612168252468109f, -0.487255871295929f, - 0.611794531345367f, -0.487341761589050f, 0.611420691013336f, -0.487427353858948f, - 0.611046791076660f, -0.487512677907944f, 0.610672831535339f, -0.487597703933716f, - 0.610298871994019f, -0.487682431936264f, 0.609924793243408f, -0.487766891717911f, - 0.609550595283508f, -0.487851053476334f, 0.609176397323608f, -0.487934947013855f, - 0.608802139759064f, -0.488018542528152f, 0.608427822589874f, -0.488101840019226f, - 0.608053386211395f, -0.488184869289398f, 0.607678949832916f, -0.488267600536346f, - 0.607304394245148f, -0.488350033760071f, 0.606929838657379f, -0.488432198762894f, - 0.606555163860321f, -0.488514065742493f, 0.606180429458618f, -0.488595664501190f, - 0.605805635452271f, -0.488676935434341f, 0.605430841445923f, -0.488757967948914f, - 0.605055928230286f, -0.488838672637939f, 0.604680955410004f, -0.488919109106064f, - 0.604305922985077f, -0.488999247550964f, 0.603930830955505f, -0.489079117774963f, - 0.603555679321289f, -0.489158689975739f, 0.603180468082428f, -0.489237964153290f, - 0.602805197238922f, -0.489316970109940f, 0.602429866790771f, -0.489395678043365f, - 0.602054476737976f, -0.489474087953568f, 0.601679027080536f, -0.489552229642868f, - 0.601303517818451f, -0.489630073308945f, 0.600927948951721f, -0.489707618951797f, - 0.600552320480347f, -0.489784896373749f, 0.600176632404327f, -0.489861875772476f, - 0.599800884723663f, -0.489938557147980f, 0.599425077438354f, -0.490014940500259f, - 0.599049210548401f, -0.490091055631638f, 0.598673284053802f, -0.490166902542114f, - 0.598297297954559f, -0.490242421627045f, 0.597921252250671f, -0.490317672491074f, - 0.597545146942139f, -0.490392625331879f, 0.597168982028961f, -0.490467309951782f, - 0.596792817115784f, -0.490541696548462f, 0.596416532993317f, -0.490615785121918f, - 0.596040189266205f, -0.490689605474472f, 0.595663845539093f, -0.490763127803802f, - 0.595287382602692f, -0.490836352109909f, 0.594910860061646f, -0.490909278392792f, - 0.594534337520599f, -0.490981936454773f, 0.594157755374908f, -0.491054296493530f, - 0.593781054019928f, -0.491126358509064f, 0.593404352664948f, -0.491198152303696f, - 0.593027591705322f, -0.491269648075104f, 0.592650771141052f, -0.491340845823288f, - 0.592273890972137f, -0.491411775350571f, 0.591896951198578f, -0.491482406854630f, - 0.591519951820374f, -0.491552740335464f, 0.591142892837524f, -0.491622805595398f, - 0.590765833854675f, -0.491692543029785f, 0.590388655662537f, -0.491762012243271f, - 0.590011477470398f, -0.491831213235855f, 0.589634180068970f, -0.491900116205215f, - 0.589256882667542f, -0.491968721151352f, 0.588879525661469f, -0.492037028074265f, - 0.588502109050751f, -0.492105036973953f, 0.588124632835388f, -0.492172777652740f, - 0.587747097015381f, -0.492240220308304f, 0.587369561195374f, -0.492307394742966f, - 0.586991965770721f, -0.492374241352081f, 0.586614251136780f, -0.492440819740295f, - 0.586236536502838f, -0.492507129907608f, 0.585858762264252f, -0.492573112249374f, - 0.585480928421021f, -0.492638826370239f, 0.585103094577789f, -0.492704242467880f, - 0.584725141525269f, -0.492769360542297f, 0.584347188472748f, -0.492834210395813f, - 0.583969175815582f, -0.492898762226105f, 0.583591103553772f, -0.492963016033173f, - 0.583212971687317f, -0.493026971817017f, 0.582834780216217f, -0.493090659379959f, - 0.582456588745117f, -0.493154048919678f, 0.582078278064728f, -0.493217140436172f, - 0.581699967384338f, -0.493279963731766f, 0.581321597099304f, -0.493342459201813f, - 0.580943167209625f, -0.493404686450958f, 0.580564737319946f, -0.493466645479202f, - 0.580186247825623f, -0.493528276681900f, 0.579807698726654f, -0.493589639663696f, - 0.579429090023041f, -0.493650704622269f, 0.579050421714783f, -0.493711471557617f, - 0.578671753406525f, -0.493771970272064f, 0.578292965888977f, -0.493832170963287f, - 0.577914178371429f, -0.493892073631287f, 0.577535390853882f, -0.493951678276062f, - 0.577156484127045f, -0.494011014699936f, 0.576777577400208f, -0.494070053100586f, - 0.576398611068726f, -0.494128793478012f, 0.576019585132599f, -0.494187235832214f, - 0.575640499591827f, -0.494245409965515f, 0.575261414051056f, -0.494303256273270f, - 0.574882268905640f, -0.494360834360123f, 0.574503064155579f, -0.494418144226074f, - 0.574123859405518f, -0.494475126266479f, 0.573744535446167f, -0.494531840085983f, - 0.573365211486816f, -0.494588255882263f, 0.572985887527466f, -0.494644373655319f, - 0.572606444358826f, -0.494700223207474f, 0.572227001190186f, -0.494755744934082f, - 0.571847498416901f, -0.494810998439789f, 0.571467995643616f, -0.494865983724594f, - 0.571088373661041f, -0.494920641183853f, 0.570708811283112f, -0.494975030422211f, - 0.570329129695892f, -0.495029091835022f, 0.569949388504028f, -0.495082914829254f, - 0.569569647312164f, -0.495136409997940f, 0.569189906120300f, -0.495189607143402f, - 0.568810045719147f, -0.495242536067963f, 0.568430185317993f, -0.495295166969299f, - 0.568050265312195f, -0.495347499847412f, 0.567670345306396f, -0.495399564504623f, - 0.567290365695953f, -0.495451331138611f, 0.566910326480865f, -0.495502769947052f, - 0.566530287265778f, -0.495553970336914f, 0.566150128841400f, -0.495604842901230f, - 0.565770030021667f, -0.495655417442322f, 0.565389811992645f, -0.495705723762512f, - 0.565009593963623f, -0.495755732059479f, 0.564629375934601f, -0.495805442333221f, - 0.564249038696289f, -0.495854884386063f, 0.563868701457977f, -0.495903998613358f, - 0.563488364219666f, -0.495952844619751f, 0.563107967376709f, -0.496001392602921f, - 0.562727510929108f, -0.496049642562866f, 0.562346994876862f, -0.496097624301910f, - 0.561966478824615f, -0.496145308017731f, 0.561585903167725f, -0.496192663908005f, - 0.561205327510834f, -0.496239781379700f, 0.560824692249298f, -0.496286571025848f, - 0.560444056987762f, -0.496333062648773f, 0.560063362121582f, -0.496379286050797f, - 0.559682607650757f, -0.496425211429596f, 0.559301853179932f, -0.496470838785172f, - 0.558921039104462f, -0.496516168117523f, 0.558540165424347f, -0.496561229228973f, - 0.558159291744232f, -0.496605962514877f, 0.557778418064117f, -0.496650427579880f, - 0.557397484779358f, -0.496694594621658f, 0.557016491889954f, -0.496738493442535f, - 0.556635499000549f, -0.496782064437866f, 0.556254446506500f, -0.496825367212296f, - 0.555873334407806f, -0.496868371963501f, 0.555492222309113f, -0.496911078691483f, - 0.555111110210419f, -0.496953487396240f, 0.554729938507080f, -0.496995598077774f, - 0.554348707199097f, -0.497037440538406f, 0.553967475891113f, -0.497078984975815f, - 0.553586184978485f, -0.497120231389999f, 0.553204894065857f, -0.497161179780960f, - 0.552823603153229f, -0.497201830148697f, 0.552442193031311f, -0.497242212295532f, - 0.552060842514038f, -0.497282296419144f, 0.551679372787476f, -0.497322082519531f, - 0.551297962665558f, -0.497361570596695f, 0.550916433334351f, -0.497400760650635f, - 0.550534904003143f, -0.497439652681351f, 0.550153374671936f, -0.497478276491165f, - 0.549771785736084f, -0.497516602277756f, 0.549390196800232f, -0.497554630041122f, - 0.549008548259735f, -0.497592359781265f, 0.548626899719238f, -0.497629791498184f, - 0.548245191574097f, -0.497666954994202f, 0.547863483428955f, -0.497703820466995f, - 0.547481775283813f, -0.497740387916565f, 0.547099947929382f, -0.497776657342911f, - 0.546718180179596f, -0.497812628746033f, 0.546336352825165f, -0.497848302125931f, - 0.545954465866089f, -0.497883707284927f, 0.545572578907013f, -0.497918814420700f, - 0.545190691947937f, -0.497953623533249f, 0.544808745384216f, -0.497988134622574f, - 0.544426798820496f, -0.498022347688675f, 0.544044792652130f, -0.498056292533875f, - 0.543662786483765f, -0.498089909553528f, 0.543280720710754f, -0.498123258352280f, - 0.542898654937744f, -0.498156309127808f, 0.542516589164734f, -0.498189061880112f, - 0.542134463787079f, -0.498221516609192f, 0.541752278804779f, -0.498253703117371f, - 0.541370153427124f, -0.498285561800003f, 0.540987968444824f, -0.498317152261734f, - 0.540605723857880f, -0.498348444700241f, 0.540223479270935f, -0.498379439115524f, - 0.539841234683990f, -0.498410135507584f, 0.539458930492401f, -0.498440563678741f, - 0.539076626300812f, -0.498470664024353f, 0.538694262504578f, -0.498500496149063f, - 0.538311958312988f, -0.498530030250549f, 0.537929534912109f, -0.498559266328812f, - 0.537547171115875f, -0.498588204383850f, 0.537164747714996f, -0.498616874217987f, - 0.536782264709473f, -0.498645216226578f, 0.536399841308594f, -0.498673290014267f, - 0.536017298698425f, -0.498701065778732f, 0.535634815692902f, -0.498728543519974f, - 0.535252273082733f, -0.498755723237991f, 0.534869730472565f, -0.498782604932785f, - 0.534487187862396f, -0.498809218406677f, 0.534104585647583f, -0.498835533857346f, - 0.533721983432770f, -0.498861521482468f, 0.533339321613312f, -0.498887240886688f, - 0.532956659793854f, -0.498912662267685f, 0.532573997974396f, -0.498937815427780f, - 0.532191336154938f, -0.498962640762329f, 0.531808614730835f, -0.498987197875977f, - 0.531425893306732f, -0.499011427164078f, 0.531043112277985f, -0.499035388231277f, - 0.530660390853882f, -0.499059051275253f, 0.530277609825134f, -0.499082416296005f, - 0.529894769191742f, -0.499105513095856f, 0.529511988162994f, -0.499128282070160f, - 0.529129147529602f, -0.499150782823563f, 0.528746306896210f, -0.499172955751419f, - 0.528363406658173f, -0.499194860458374f, 0.527980506420136f, -0.499216467142105f, - 0.527597606182098f, -0.499237775802612f, 0.527214705944061f, -0.499258816242218f, - 0.526831746101379f, -0.499279528856277f, 0.526448845863342f, -0.499299973249435f, - 0.526065826416016f, -0.499320119619370f, 0.525682866573334f, -0.499339967966080f, - 0.525299847126007f, -0.499359518289566f, 0.524916887283325f, -0.499378770589828f, - 0.524533808231354f, -0.499397724866867f, 0.524150788784027f, -0.499416410923004f, - 0.523767769336700f, -0.499434769153595f, 0.523384690284729f, -0.499452859163284f, - 0.523001611232758f, -0.499470651149750f, 0.522618472576141f, -0.499488145112991f, - 0.522235393524170f, -0.499505341053009f, 0.521852254867554f, -0.499522238969803f, - 0.521469116210938f, -0.499538868665695f, 0.521085977554321f, -0.499555170536041f, - 0.520702838897705f, -0.499571204185486f, 0.520319640636444f, -0.499586939811707f, - 0.519936442375183f, -0.499602377414703f, 0.519553244113922f, -0.499617516994476f, - 0.519170045852661f, -0.499632388353348f, 0.518786847591400f, -0.499646931886673f, - 0.518403589725494f, -0.499661177396774f, 0.518020391464233f, -0.499675154685974f, - 0.517637133598328f, -0.499688833951950f, 0.517253875732422f, -0.499702215194702f, - 0.516870558261871f, -0.499715298414230f, 0.516487300395966f, -0.499728083610535f, - 0.516103982925415f, -0.499740600585938f, 0.515720725059509f, -0.499752789735794f, - 0.515337407588959f, -0.499764710664749f, 0.514954090118408f, -0.499776333570480f, - 0.514570772647858f, -0.499787658452988f, 0.514187395572662f, -0.499798685312271f, - 0.513804078102112f, -0.499809414148331f, 0.513420701026917f, -0.499819844961166f, - 0.513037383556366f, -0.499830007553101f, 0.512654006481171f, -0.499839842319489f, - 0.512270629405975f, -0.499849408864975f, 0.511887252330780f, -0.499858677387238f, - 0.511503815650940f, -0.499867647886276f, 0.511120438575745f, -0.499876320362091f, - 0.510737061500549f, -0.499884694814682f, 0.510353624820709f, -0.499892801046371f, - 0.509970188140869f, -0.499900579452515f, 0.509586811065674f, -0.499908089637756f, - 0.509203374385834f, -0.499915301799774f, 0.508819937705994f, -0.499922215938568f, - 0.508436501026154f, -0.499928832054138f, 0.508053064346313f, -0.499935150146484f, - 0.507669627666473f, -0.499941170215607f, 0.507286131381989f, -0.499946922063828f, - 0.506902694702148f, -0.499952346086502f, 0.506519258022308f, -0.499957501888275f, - 0.506135761737823f, -0.499962359666824f, 0.505752325057983f, -0.499966919422150f, - 0.505368828773499f, -0.499971181154251f, 0.504985332489014f, -0.499975144863129f, - 0.504601895809174f, -0.499978810548782f, 0.504218399524689f, -0.499982208013535f, - 0.503834903240204f, -0.499985307455063f, 0.503451406955719f, -0.499988079071045f, - 0.503067970275879f, -0.499990582466125f, 0.502684473991394f, -0.499992787837982f, - 0.502300977706909f, -0.499994695186615f, 0.501917481422424f, -0.499996334314346f, - 0.501533985137939f, -0.499997645616531f, 0.501150488853455f, -0.499998688697815f, - 0.500766992568970f, -0.499999403953552f, 0.500383496284485f, -0.499999850988388f, -}; - - - -/** -* @brief Initialization function for the floating-point RFFT/RIFFT. -* @deprecated Do not use this function. It has been superceded by \ref arm_rfft_fast_init_f32 and will be removed -* in the future. -* @param[in,out] *S points to an instance of the floating-point RFFT/RIFFT structure. -* @param[in,out] *S_CFFT points to an instance of the floating-point CFFT/CIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* This function also initializes Twiddle factor table. -*/ - -/** -* @} end of RealFFT_Table group -*/ - -/** -* @addtogroup RealFFT -* @{ -*/ - -arm_status arm_rfft_init_f32( - arm_rfft_instance_f32 * S, - arm_cfft_radix4_instance_f32 * S_CFFT, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Complex FFT length */ - S->fftLenBy2 = (uint16_t) fftLenReal / 2U; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (float32_t *) realCoefA; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (float32_t *) realCoefB; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initializations of structure parameters depending on the FFT length */ - switch (S->fftLenReal) - { - /* Init table modifier value */ - case 8192U: - S->twidCoefRModifier = 1U; - break; - case 2048U: - S->twidCoefRModifier = 4U; - break; - case 512U: - S->twidCoefRModifier = 16U; - break; - case 128U: - S->twidCoefRModifier = 64U; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* Init Complex FFT Instance */ - S->pCfft = S_CFFT; - - if (S->ifftFlagR) - { - /* Initializes the CIFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_f32(S->pCfft, S->fftLenBy2, 1U, 0U); - } - else - { - /* Initializes the CFFT Module for fftLenreal/2 length */ - arm_cfft_radix4_init_f32(S->pCfft, S->fftLenBy2, 0U, 0U); - } - - /* return the status of RFFT Init function */ - return (status); - -} - - /** - * @} end of RealFFT group - */ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q15.c deleted file mode 100644 index 0e09737..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q15.c +++ /dev/null @@ -1,2229 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_init_q15.c - * Description: RFFT & RIFFT Q15 initialisation function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" -#include "arm_const_structs.h" - -/** -* @ingroup RealFFT -*/ - -/** - * @addtogroup RealFFT_Table Real FFT Tables -* @{ -*/ - -/** -* \par -* Generation fixed-point realCoefAQ15 array in Q15 format: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-*  {
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-*  } 
-* \par -* Convert to fixed point Q15 format -* round(pATable[i] * pow(2, 15)) -*/ -const q15_t ALIGN4 realCoefAQ15[8192] = { - (q15_t)0x4000, (q15_t)0xc000, (q15_t)0x3ff3, (q15_t)0xc000, (q15_t)0x3fe7, (q15_t)0xc000, (q15_t)0x3fda, (q15_t)0xc000, - (q15_t)0x3fce, (q15_t)0xc000, (q15_t)0x3fc1, (q15_t)0xc000, (q15_t)0x3fb5, (q15_t)0xc000, (q15_t)0x3fa8, (q15_t)0xc000, - (q15_t)0x3f9b, (q15_t)0xc000, (q15_t)0x3f8f, (q15_t)0xc000, (q15_t)0x3f82, (q15_t)0xc000, (q15_t)0x3f76, (q15_t)0xc001, - (q15_t)0x3f69, (q15_t)0xc001, (q15_t)0x3f5d, (q15_t)0xc001, (q15_t)0x3f50, (q15_t)0xc001, (q15_t)0x3f44, (q15_t)0xc001, - (q15_t)0x3f37, (q15_t)0xc001, (q15_t)0x3f2a, (q15_t)0xc001, (q15_t)0x3f1e, (q15_t)0xc002, (q15_t)0x3f11, (q15_t)0xc002, - (q15_t)0x3f05, (q15_t)0xc002, (q15_t)0x3ef8, (q15_t)0xc002, (q15_t)0x3eec, (q15_t)0xc002, (q15_t)0x3edf, (q15_t)0xc003, - (q15_t)0x3ed2, (q15_t)0xc003, (q15_t)0x3ec6, (q15_t)0xc003, (q15_t)0x3eb9, (q15_t)0xc003, (q15_t)0x3ead, (q15_t)0xc004, - (q15_t)0x3ea0, (q15_t)0xc004, (q15_t)0x3e94, (q15_t)0xc004, (q15_t)0x3e87, (q15_t)0xc004, (q15_t)0x3e7a, (q15_t)0xc005, - (q15_t)0x3e6e, (q15_t)0xc005, (q15_t)0x3e61, (q15_t)0xc005, (q15_t)0x3e55, (q15_t)0xc006, (q15_t)0x3e48, (q15_t)0xc006, - (q15_t)0x3e3c, (q15_t)0xc006, (q15_t)0x3e2f, (q15_t)0xc007, (q15_t)0x3e23, (q15_t)0xc007, (q15_t)0x3e16, (q15_t)0xc007, - (q15_t)0x3e09, (q15_t)0xc008, (q15_t)0x3dfd, (q15_t)0xc008, (q15_t)0x3df0, (q15_t)0xc009, (q15_t)0x3de4, (q15_t)0xc009, - (q15_t)0x3dd7, (q15_t)0xc009, (q15_t)0x3dcb, (q15_t)0xc00a, (q15_t)0x3dbe, (q15_t)0xc00a, (q15_t)0x3db2, (q15_t)0xc00b, - (q15_t)0x3da5, (q15_t)0xc00b, (q15_t)0x3d98, (q15_t)0xc00c, (q15_t)0x3d8c, (q15_t)0xc00c, (q15_t)0x3d7f, (q15_t)0xc00d, - (q15_t)0x3d73, (q15_t)0xc00d, (q15_t)0x3d66, (q15_t)0xc00e, (q15_t)0x3d5a, (q15_t)0xc00e, (q15_t)0x3d4d, (q15_t)0xc00f, - (q15_t)0x3d40, (q15_t)0xc00f, (q15_t)0x3d34, (q15_t)0xc010, (q15_t)0x3d27, (q15_t)0xc010, (q15_t)0x3d1b, (q15_t)0xc011, - (q15_t)0x3d0e, (q15_t)0xc011, (q15_t)0x3d02, (q15_t)0xc012, (q15_t)0x3cf5, (q15_t)0xc013, (q15_t)0x3ce9, (q15_t)0xc013, - (q15_t)0x3cdc, (q15_t)0xc014, (q15_t)0x3cd0, (q15_t)0xc014, (q15_t)0x3cc3, (q15_t)0xc015, (q15_t)0x3cb6, (q15_t)0xc016, - (q15_t)0x3caa, (q15_t)0xc016, (q15_t)0x3c9d, (q15_t)0xc017, (q15_t)0x3c91, (q15_t)0xc018, (q15_t)0x3c84, (q15_t)0xc018, - (q15_t)0x3c78, (q15_t)0xc019, (q15_t)0x3c6b, (q15_t)0xc01a, (q15_t)0x3c5f, (q15_t)0xc01a, (q15_t)0x3c52, (q15_t)0xc01b, - (q15_t)0x3c45, (q15_t)0xc01c, (q15_t)0x3c39, (q15_t)0xc01d, (q15_t)0x3c2c, (q15_t)0xc01d, (q15_t)0x3c20, (q15_t)0xc01e, - (q15_t)0x3c13, (q15_t)0xc01f, (q15_t)0x3c07, (q15_t)0xc020, (q15_t)0x3bfa, (q15_t)0xc020, (q15_t)0x3bee, (q15_t)0xc021, - (q15_t)0x3be1, (q15_t)0xc022, (q15_t)0x3bd5, (q15_t)0xc023, (q15_t)0x3bc8, (q15_t)0xc024, (q15_t)0x3bbc, (q15_t)0xc024, - (q15_t)0x3baf, (q15_t)0xc025, (q15_t)0x3ba2, (q15_t)0xc026, (q15_t)0x3b96, (q15_t)0xc027, (q15_t)0x3b89, (q15_t)0xc028, - (q15_t)0x3b7d, (q15_t)0xc029, (q15_t)0x3b70, (q15_t)0xc02a, (q15_t)0x3b64, (q15_t)0xc02b, (q15_t)0x3b57, (q15_t)0xc02b, - (q15_t)0x3b4b, (q15_t)0xc02c, (q15_t)0x3b3e, (q15_t)0xc02d, (q15_t)0x3b32, (q15_t)0xc02e, (q15_t)0x3b25, (q15_t)0xc02f, - (q15_t)0x3b19, (q15_t)0xc030, (q15_t)0x3b0c, (q15_t)0xc031, (q15_t)0x3b00, (q15_t)0xc032, (q15_t)0x3af3, (q15_t)0xc033, - (q15_t)0x3ae6, (q15_t)0xc034, (q15_t)0x3ada, (q15_t)0xc035, (q15_t)0x3acd, (q15_t)0xc036, (q15_t)0x3ac1, (q15_t)0xc037, - (q15_t)0x3ab4, (q15_t)0xc038, (q15_t)0x3aa8, (q15_t)0xc039, (q15_t)0x3a9b, (q15_t)0xc03a, (q15_t)0x3a8f, (q15_t)0xc03b, - (q15_t)0x3a82, (q15_t)0xc03c, (q15_t)0x3a76, (q15_t)0xc03d, (q15_t)0x3a69, (q15_t)0xc03f, (q15_t)0x3a5d, (q15_t)0xc040, - (q15_t)0x3a50, (q15_t)0xc041, (q15_t)0x3a44, (q15_t)0xc042, (q15_t)0x3a37, (q15_t)0xc043, (q15_t)0x3a2b, (q15_t)0xc044, - (q15_t)0x3a1e, (q15_t)0xc045, (q15_t)0x3a12, (q15_t)0xc047, (q15_t)0x3a05, (q15_t)0xc048, (q15_t)0x39f9, (q15_t)0xc049, - (q15_t)0x39ec, (q15_t)0xc04a, (q15_t)0x39e0, (q15_t)0xc04b, (q15_t)0x39d3, (q15_t)0xc04c, (q15_t)0x39c7, (q15_t)0xc04e, - (q15_t)0x39ba, (q15_t)0xc04f, (q15_t)0x39ae, (q15_t)0xc050, (q15_t)0x39a1, (q15_t)0xc051, (q15_t)0x3995, (q15_t)0xc053, - (q15_t)0x3988, (q15_t)0xc054, (q15_t)0x397c, (q15_t)0xc055, (q15_t)0x396f, (q15_t)0xc056, (q15_t)0x3963, (q15_t)0xc058, - (q15_t)0x3956, (q15_t)0xc059, (q15_t)0x394a, (q15_t)0xc05a, (q15_t)0x393d, (q15_t)0xc05c, (q15_t)0x3931, (q15_t)0xc05d, - (q15_t)0x3924, (q15_t)0xc05e, (q15_t)0x3918, (q15_t)0xc060, (q15_t)0x390b, (q15_t)0xc061, (q15_t)0x38ff, (q15_t)0xc062, - (q15_t)0x38f2, (q15_t)0xc064, (q15_t)0x38e6, (q15_t)0xc065, (q15_t)0x38d9, (q15_t)0xc067, (q15_t)0x38cd, (q15_t)0xc068, - (q15_t)0x38c0, (q15_t)0xc069, (q15_t)0x38b4, (q15_t)0xc06b, (q15_t)0x38a7, (q15_t)0xc06c, (q15_t)0x389b, (q15_t)0xc06e, - (q15_t)0x388e, (q15_t)0xc06f, (q15_t)0x3882, (q15_t)0xc071, (q15_t)0x3875, (q15_t)0xc072, (q15_t)0x3869, (q15_t)0xc074, - (q15_t)0x385c, (q15_t)0xc075, (q15_t)0x3850, (q15_t)0xc077, (q15_t)0x3843, (q15_t)0xc078, (q15_t)0x3837, (q15_t)0xc07a, - (q15_t)0x382a, (q15_t)0xc07b, (q15_t)0x381e, (q15_t)0xc07d, (q15_t)0x3811, (q15_t)0xc07e, (q15_t)0x3805, (q15_t)0xc080, - (q15_t)0x37f9, (q15_t)0xc081, (q15_t)0x37ec, (q15_t)0xc083, (q15_t)0x37e0, (q15_t)0xc085, (q15_t)0x37d3, (q15_t)0xc086, - (q15_t)0x37c7, (q15_t)0xc088, (q15_t)0x37ba, (q15_t)0xc089, (q15_t)0x37ae, (q15_t)0xc08b, (q15_t)0x37a1, (q15_t)0xc08d, - (q15_t)0x3795, (q15_t)0xc08e, (q15_t)0x3788, (q15_t)0xc090, (q15_t)0x377c, (q15_t)0xc092, (q15_t)0x376f, (q15_t)0xc093, - (q15_t)0x3763, (q15_t)0xc095, (q15_t)0x3757, (q15_t)0xc097, (q15_t)0x374a, (q15_t)0xc098, (q15_t)0x373e, (q15_t)0xc09a, - (q15_t)0x3731, (q15_t)0xc09c, (q15_t)0x3725, (q15_t)0xc09e, (q15_t)0x3718, (q15_t)0xc09f, (q15_t)0x370c, (q15_t)0xc0a1, - (q15_t)0x36ff, (q15_t)0xc0a3, (q15_t)0x36f3, (q15_t)0xc0a5, (q15_t)0x36e7, (q15_t)0xc0a6, (q15_t)0x36da, (q15_t)0xc0a8, - (q15_t)0x36ce, (q15_t)0xc0aa, (q15_t)0x36c1, (q15_t)0xc0ac, (q15_t)0x36b5, (q15_t)0xc0ae, (q15_t)0x36a8, (q15_t)0xc0af, - (q15_t)0x369c, (q15_t)0xc0b1, (q15_t)0x3690, (q15_t)0xc0b3, (q15_t)0x3683, (q15_t)0xc0b5, (q15_t)0x3677, (q15_t)0xc0b7, - (q15_t)0x366a, (q15_t)0xc0b9, (q15_t)0x365e, (q15_t)0xc0bb, (q15_t)0x3651, (q15_t)0xc0bd, (q15_t)0x3645, (q15_t)0xc0be, - (q15_t)0x3639, (q15_t)0xc0c0, (q15_t)0x362c, (q15_t)0xc0c2, (q15_t)0x3620, (q15_t)0xc0c4, (q15_t)0x3613, (q15_t)0xc0c6, - (q15_t)0x3607, (q15_t)0xc0c8, (q15_t)0x35fa, (q15_t)0xc0ca, (q15_t)0x35ee, (q15_t)0xc0cc, (q15_t)0x35e2, (q15_t)0xc0ce, - (q15_t)0x35d5, (q15_t)0xc0d0, (q15_t)0x35c9, (q15_t)0xc0d2, (q15_t)0x35bc, (q15_t)0xc0d4, (q15_t)0x35b0, (q15_t)0xc0d6, - (q15_t)0x35a4, (q15_t)0xc0d8, (q15_t)0x3597, (q15_t)0xc0da, (q15_t)0x358b, (q15_t)0xc0dc, (q15_t)0x357e, (q15_t)0xc0de, - (q15_t)0x3572, (q15_t)0xc0e0, (q15_t)0x3566, (q15_t)0xc0e2, (q15_t)0x3559, (q15_t)0xc0e4, (q15_t)0x354d, (q15_t)0xc0e7, - (q15_t)0x3540, (q15_t)0xc0e9, (q15_t)0x3534, (q15_t)0xc0eb, (q15_t)0x3528, (q15_t)0xc0ed, (q15_t)0x351b, (q15_t)0xc0ef, - (q15_t)0x350f, (q15_t)0xc0f1, (q15_t)0x3503, (q15_t)0xc0f3, (q15_t)0x34f6, (q15_t)0xc0f6, (q15_t)0x34ea, (q15_t)0xc0f8, - (q15_t)0x34dd, (q15_t)0xc0fa, (q15_t)0x34d1, (q15_t)0xc0fc, (q15_t)0x34c5, (q15_t)0xc0fe, (q15_t)0x34b8, (q15_t)0xc100, - (q15_t)0x34ac, (q15_t)0xc103, (q15_t)0x34a0, (q15_t)0xc105, (q15_t)0x3493, (q15_t)0xc107, (q15_t)0x3487, (q15_t)0xc109, - (q15_t)0x347b, (q15_t)0xc10c, (q15_t)0x346e, (q15_t)0xc10e, (q15_t)0x3462, (q15_t)0xc110, (q15_t)0x3455, (q15_t)0xc113, - (q15_t)0x3449, (q15_t)0xc115, (q15_t)0x343d, (q15_t)0xc117, (q15_t)0x3430, (q15_t)0xc119, (q15_t)0x3424, (q15_t)0xc11c, - (q15_t)0x3418, (q15_t)0xc11e, (q15_t)0x340b, (q15_t)0xc120, (q15_t)0x33ff, (q15_t)0xc123, (q15_t)0x33f3, (q15_t)0xc125, - (q15_t)0x33e6, (q15_t)0xc128, (q15_t)0x33da, (q15_t)0xc12a, (q15_t)0x33ce, (q15_t)0xc12c, (q15_t)0x33c1, (q15_t)0xc12f, - (q15_t)0x33b5, (q15_t)0xc131, (q15_t)0x33a9, (q15_t)0xc134, (q15_t)0x339c, (q15_t)0xc136, (q15_t)0x3390, (q15_t)0xc138, - (q15_t)0x3384, (q15_t)0xc13b, (q15_t)0x3377, (q15_t)0xc13d, (q15_t)0x336b, (q15_t)0xc140, (q15_t)0x335f, (q15_t)0xc142, - (q15_t)0x3352, (q15_t)0xc145, (q15_t)0x3346, (q15_t)0xc147, (q15_t)0x333a, (q15_t)0xc14a, (q15_t)0x332d, (q15_t)0xc14c, - (q15_t)0x3321, (q15_t)0xc14f, (q15_t)0x3315, (q15_t)0xc151, (q15_t)0x3308, (q15_t)0xc154, (q15_t)0x32fc, (q15_t)0xc156, - (q15_t)0x32f0, (q15_t)0xc159, (q15_t)0x32e4, (q15_t)0xc15b, (q15_t)0x32d7, (q15_t)0xc15e, (q15_t)0x32cb, (q15_t)0xc161, - (q15_t)0x32bf, (q15_t)0xc163, (q15_t)0x32b2, (q15_t)0xc166, (q15_t)0x32a6, (q15_t)0xc168, (q15_t)0x329a, (q15_t)0xc16b, - (q15_t)0x328e, (q15_t)0xc16e, (q15_t)0x3281, (q15_t)0xc170, (q15_t)0x3275, (q15_t)0xc173, (q15_t)0x3269, (q15_t)0xc176, - (q15_t)0x325c, (q15_t)0xc178, (q15_t)0x3250, (q15_t)0xc17b, (q15_t)0x3244, (q15_t)0xc17e, (q15_t)0x3238, (q15_t)0xc180, - (q15_t)0x322b, (q15_t)0xc183, (q15_t)0x321f, (q15_t)0xc186, (q15_t)0x3213, (q15_t)0xc189, (q15_t)0x3207, (q15_t)0xc18b, - (q15_t)0x31fa, (q15_t)0xc18e, (q15_t)0x31ee, (q15_t)0xc191, (q15_t)0x31e2, (q15_t)0xc194, (q15_t)0x31d5, (q15_t)0xc196, - (q15_t)0x31c9, (q15_t)0xc199, (q15_t)0x31bd, (q15_t)0xc19c, (q15_t)0x31b1, (q15_t)0xc19f, (q15_t)0x31a4, (q15_t)0xc1a2, - (q15_t)0x3198, (q15_t)0xc1a4, (q15_t)0x318c, (q15_t)0xc1a7, (q15_t)0x3180, (q15_t)0xc1aa, (q15_t)0x3174, (q15_t)0xc1ad, - (q15_t)0x3167, (q15_t)0xc1b0, (q15_t)0x315b, (q15_t)0xc1b3, (q15_t)0x314f, (q15_t)0xc1b6, (q15_t)0x3143, (q15_t)0xc1b8, - (q15_t)0x3136, (q15_t)0xc1bb, (q15_t)0x312a, (q15_t)0xc1be, (q15_t)0x311e, (q15_t)0xc1c1, (q15_t)0x3112, (q15_t)0xc1c4, - (q15_t)0x3105, (q15_t)0xc1c7, (q15_t)0x30f9, (q15_t)0xc1ca, (q15_t)0x30ed, (q15_t)0xc1cd, (q15_t)0x30e1, (q15_t)0xc1d0, - (q15_t)0x30d5, (q15_t)0xc1d3, (q15_t)0x30c8, (q15_t)0xc1d6, (q15_t)0x30bc, (q15_t)0xc1d9, (q15_t)0x30b0, (q15_t)0xc1dc, - (q15_t)0x30a4, (q15_t)0xc1df, (q15_t)0x3098, (q15_t)0xc1e2, (q15_t)0x308b, (q15_t)0xc1e5, (q15_t)0x307f, (q15_t)0xc1e8, - (q15_t)0x3073, (q15_t)0xc1eb, (q15_t)0x3067, (q15_t)0xc1ee, (q15_t)0x305b, (q15_t)0xc1f1, (q15_t)0x304e, (q15_t)0xc1f4, - (q15_t)0x3042, (q15_t)0xc1f7, (q15_t)0x3036, (q15_t)0xc1fa, (q15_t)0x302a, (q15_t)0xc1fd, (q15_t)0x301e, (q15_t)0xc201, - (q15_t)0x3012, (q15_t)0xc204, (q15_t)0x3005, (q15_t)0xc207, (q15_t)0x2ff9, (q15_t)0xc20a, (q15_t)0x2fed, (q15_t)0xc20d, - (q15_t)0x2fe1, (q15_t)0xc210, (q15_t)0x2fd5, (q15_t)0xc213, (q15_t)0x2fc9, (q15_t)0xc217, (q15_t)0x2fbc, (q15_t)0xc21a, - (q15_t)0x2fb0, (q15_t)0xc21d, (q15_t)0x2fa4, (q15_t)0xc220, (q15_t)0x2f98, (q15_t)0xc223, (q15_t)0x2f8c, (q15_t)0xc227, - (q15_t)0x2f80, (q15_t)0xc22a, (q15_t)0x2f74, (q15_t)0xc22d, (q15_t)0x2f67, (q15_t)0xc230, (q15_t)0x2f5b, (q15_t)0xc234, - (q15_t)0x2f4f, (q15_t)0xc237, (q15_t)0x2f43, (q15_t)0xc23a, (q15_t)0x2f37, (q15_t)0xc23e, (q15_t)0x2f2b, (q15_t)0xc241, - (q15_t)0x2f1f, (q15_t)0xc244, (q15_t)0x2f13, (q15_t)0xc247, (q15_t)0x2f06, (q15_t)0xc24b, (q15_t)0x2efa, (q15_t)0xc24e, - (q15_t)0x2eee, (q15_t)0xc251, (q15_t)0x2ee2, (q15_t)0xc255, (q15_t)0x2ed6, (q15_t)0xc258, (q15_t)0x2eca, (q15_t)0xc25c, - (q15_t)0x2ebe, (q15_t)0xc25f, (q15_t)0x2eb2, (q15_t)0xc262, (q15_t)0x2ea6, (q15_t)0xc266, (q15_t)0x2e99, (q15_t)0xc269, - (q15_t)0x2e8d, (q15_t)0xc26d, (q15_t)0x2e81, (q15_t)0xc270, (q15_t)0x2e75, (q15_t)0xc273, (q15_t)0x2e69, (q15_t)0xc277, - (q15_t)0x2e5d, (q15_t)0xc27a, (q15_t)0x2e51, (q15_t)0xc27e, (q15_t)0x2e45, (q15_t)0xc281, (q15_t)0x2e39, (q15_t)0xc285, - (q15_t)0x2e2d, (q15_t)0xc288, (q15_t)0x2e21, (q15_t)0xc28c, (q15_t)0x2e15, (q15_t)0xc28f, (q15_t)0x2e09, (q15_t)0xc293, - (q15_t)0x2dfc, (q15_t)0xc296, (q15_t)0x2df0, (q15_t)0xc29a, (q15_t)0x2de4, (q15_t)0xc29d, (q15_t)0x2dd8, (q15_t)0xc2a1, - (q15_t)0x2dcc, (q15_t)0xc2a5, (q15_t)0x2dc0, (q15_t)0xc2a8, (q15_t)0x2db4, (q15_t)0xc2ac, (q15_t)0x2da8, (q15_t)0xc2af, - (q15_t)0x2d9c, (q15_t)0xc2b3, (q15_t)0x2d90, (q15_t)0xc2b7, (q15_t)0x2d84, (q15_t)0xc2ba, (q15_t)0x2d78, (q15_t)0xc2be, - (q15_t)0x2d6c, (q15_t)0xc2c1, (q15_t)0x2d60, (q15_t)0xc2c5, (q15_t)0x2d54, (q15_t)0xc2c9, (q15_t)0x2d48, (q15_t)0xc2cc, - (q15_t)0x2d3c, (q15_t)0xc2d0, (q15_t)0x2d30, (q15_t)0xc2d4, (q15_t)0x2d24, (q15_t)0xc2d8, (q15_t)0x2d18, (q15_t)0xc2db, - (q15_t)0x2d0c, (q15_t)0xc2df, (q15_t)0x2d00, (q15_t)0xc2e3, (q15_t)0x2cf4, (q15_t)0xc2e6, (q15_t)0x2ce8, (q15_t)0xc2ea, - (q15_t)0x2cdc, (q15_t)0xc2ee, (q15_t)0x2cd0, (q15_t)0xc2f2, (q15_t)0x2cc4, (q15_t)0xc2f5, (q15_t)0x2cb8, (q15_t)0xc2f9, - (q15_t)0x2cac, (q15_t)0xc2fd, (q15_t)0x2ca0, (q15_t)0xc301, (q15_t)0x2c94, (q15_t)0xc305, (q15_t)0x2c88, (q15_t)0xc308, - (q15_t)0x2c7c, (q15_t)0xc30c, (q15_t)0x2c70, (q15_t)0xc310, (q15_t)0x2c64, (q15_t)0xc314, (q15_t)0x2c58, (q15_t)0xc318, - (q15_t)0x2c4c, (q15_t)0xc31c, (q15_t)0x2c40, (q15_t)0xc320, (q15_t)0x2c34, (q15_t)0xc323, (q15_t)0x2c28, (q15_t)0xc327, - (q15_t)0x2c1c, (q15_t)0xc32b, (q15_t)0x2c10, (q15_t)0xc32f, (q15_t)0x2c05, (q15_t)0xc333, (q15_t)0x2bf9, (q15_t)0xc337, - (q15_t)0x2bed, (q15_t)0xc33b, (q15_t)0x2be1, (q15_t)0xc33f, (q15_t)0x2bd5, (q15_t)0xc343, (q15_t)0x2bc9, (q15_t)0xc347, - (q15_t)0x2bbd, (q15_t)0xc34b, (q15_t)0x2bb1, (q15_t)0xc34f, (q15_t)0x2ba5, (q15_t)0xc353, (q15_t)0x2b99, (q15_t)0xc357, - (q15_t)0x2b8d, (q15_t)0xc35b, (q15_t)0x2b81, (q15_t)0xc35f, (q15_t)0x2b75, (q15_t)0xc363, (q15_t)0x2b6a, (q15_t)0xc367, - (q15_t)0x2b5e, (q15_t)0xc36b, (q15_t)0x2b52, (q15_t)0xc36f, (q15_t)0x2b46, (q15_t)0xc373, (q15_t)0x2b3a, (q15_t)0xc377, - (q15_t)0x2b2e, (q15_t)0xc37b, (q15_t)0x2b22, (q15_t)0xc37f, (q15_t)0x2b16, (q15_t)0xc383, (q15_t)0x2b0a, (q15_t)0xc387, - (q15_t)0x2aff, (q15_t)0xc38c, (q15_t)0x2af3, (q15_t)0xc390, (q15_t)0x2ae7, (q15_t)0xc394, (q15_t)0x2adb, (q15_t)0xc398, - (q15_t)0x2acf, (q15_t)0xc39c, (q15_t)0x2ac3, (q15_t)0xc3a0, (q15_t)0x2ab7, (q15_t)0xc3a5, (q15_t)0x2aac, (q15_t)0xc3a9, - (q15_t)0x2aa0, (q15_t)0xc3ad, (q15_t)0x2a94, (q15_t)0xc3b1, (q15_t)0x2a88, (q15_t)0xc3b5, (q15_t)0x2a7c, (q15_t)0xc3ba, - (q15_t)0x2a70, (q15_t)0xc3be, (q15_t)0x2a65, (q15_t)0xc3c2, (q15_t)0x2a59, (q15_t)0xc3c6, (q15_t)0x2a4d, (q15_t)0xc3ca, - (q15_t)0x2a41, (q15_t)0xc3cf, (q15_t)0x2a35, (q15_t)0xc3d3, (q15_t)0x2a29, (q15_t)0xc3d7, (q15_t)0x2a1e, (q15_t)0xc3dc, - (q15_t)0x2a12, (q15_t)0xc3e0, (q15_t)0x2a06, (q15_t)0xc3e4, (q15_t)0x29fa, (q15_t)0xc3e9, (q15_t)0x29ee, (q15_t)0xc3ed, - (q15_t)0x29e3, (q15_t)0xc3f1, (q15_t)0x29d7, (q15_t)0xc3f6, (q15_t)0x29cb, (q15_t)0xc3fa, (q15_t)0x29bf, (q15_t)0xc3fe, - (q15_t)0x29b4, (q15_t)0xc403, (q15_t)0x29a8, (q15_t)0xc407, (q15_t)0x299c, (q15_t)0xc40b, (q15_t)0x2990, (q15_t)0xc410, - (q15_t)0x2984, (q15_t)0xc414, (q15_t)0x2979, (q15_t)0xc419, (q15_t)0x296d, (q15_t)0xc41d, (q15_t)0x2961, (q15_t)0xc422, - (q15_t)0x2955, (q15_t)0xc426, (q15_t)0x294a, (q15_t)0xc42a, (q15_t)0x293e, (q15_t)0xc42f, (q15_t)0x2932, (q15_t)0xc433, - (q15_t)0x2926, (q15_t)0xc438, (q15_t)0x291b, (q15_t)0xc43c, (q15_t)0x290f, (q15_t)0xc441, (q15_t)0x2903, (q15_t)0xc445, - (q15_t)0x28f7, (q15_t)0xc44a, (q15_t)0x28ec, (q15_t)0xc44e, (q15_t)0x28e0, (q15_t)0xc453, (q15_t)0x28d4, (q15_t)0xc457, - (q15_t)0x28c9, (q15_t)0xc45c, (q15_t)0x28bd, (q15_t)0xc461, (q15_t)0x28b1, (q15_t)0xc465, (q15_t)0x28a5, (q15_t)0xc46a, - (q15_t)0x289a, (q15_t)0xc46e, (q15_t)0x288e, (q15_t)0xc473, (q15_t)0x2882, (q15_t)0xc478, (q15_t)0x2877, (q15_t)0xc47c, - (q15_t)0x286b, (q15_t)0xc481, (q15_t)0x285f, (q15_t)0xc485, (q15_t)0x2854, (q15_t)0xc48a, (q15_t)0x2848, (q15_t)0xc48f, - (q15_t)0x283c, (q15_t)0xc493, (q15_t)0x2831, (q15_t)0xc498, (q15_t)0x2825, (q15_t)0xc49d, (q15_t)0x2819, (q15_t)0xc4a1, - (q15_t)0x280e, (q15_t)0xc4a6, (q15_t)0x2802, (q15_t)0xc4ab, (q15_t)0x27f6, (q15_t)0xc4b0, (q15_t)0x27eb, (q15_t)0xc4b4, - (q15_t)0x27df, (q15_t)0xc4b9, (q15_t)0x27d3, (q15_t)0xc4be, (q15_t)0x27c8, (q15_t)0xc4c2, (q15_t)0x27bc, (q15_t)0xc4c7, - (q15_t)0x27b1, (q15_t)0xc4cc, (q15_t)0x27a5, (q15_t)0xc4d1, (q15_t)0x2799, (q15_t)0xc4d6, (q15_t)0x278e, (q15_t)0xc4da, - (q15_t)0x2782, (q15_t)0xc4df, (q15_t)0x2777, (q15_t)0xc4e4, (q15_t)0x276b, (q15_t)0xc4e9, (q15_t)0x275f, (q15_t)0xc4ee, - (q15_t)0x2754, (q15_t)0xc4f2, (q15_t)0x2748, (q15_t)0xc4f7, (q15_t)0x273d, (q15_t)0xc4fc, (q15_t)0x2731, (q15_t)0xc501, - (q15_t)0x2725, (q15_t)0xc506, (q15_t)0x271a, (q15_t)0xc50b, (q15_t)0x270e, (q15_t)0xc510, (q15_t)0x2703, (q15_t)0xc515, - (q15_t)0x26f7, (q15_t)0xc51a, (q15_t)0x26ec, (q15_t)0xc51e, (q15_t)0x26e0, (q15_t)0xc523, (q15_t)0x26d4, (q15_t)0xc528, - (q15_t)0x26c9, (q15_t)0xc52d, (q15_t)0x26bd, (q15_t)0xc532, (q15_t)0x26b2, (q15_t)0xc537, (q15_t)0x26a6, (q15_t)0xc53c, - (q15_t)0x269b, (q15_t)0xc541, (q15_t)0x268f, (q15_t)0xc546, (q15_t)0x2684, (q15_t)0xc54b, (q15_t)0x2678, (q15_t)0xc550, - (q15_t)0x266d, (q15_t)0xc555, (q15_t)0x2661, (q15_t)0xc55a, (q15_t)0x2656, (q15_t)0xc55f, (q15_t)0x264a, (q15_t)0xc564, - (q15_t)0x263f, (q15_t)0xc569, (q15_t)0x2633, (q15_t)0xc56e, (q15_t)0x2628, (q15_t)0xc573, (q15_t)0x261c, (q15_t)0xc578, - (q15_t)0x2611, (q15_t)0xc57e, (q15_t)0x2605, (q15_t)0xc583, (q15_t)0x25fa, (q15_t)0xc588, (q15_t)0x25ee, (q15_t)0xc58d, - (q15_t)0x25e3, (q15_t)0xc592, (q15_t)0x25d7, (q15_t)0xc597, (q15_t)0x25cc, (q15_t)0xc59c, (q15_t)0x25c0, (q15_t)0xc5a1, - (q15_t)0x25b5, (q15_t)0xc5a7, (q15_t)0x25a9, (q15_t)0xc5ac, (q15_t)0x259e, (q15_t)0xc5b1, (q15_t)0x2592, (q15_t)0xc5b6, - (q15_t)0x2587, (q15_t)0xc5bb, (q15_t)0x257c, (q15_t)0xc5c1, (q15_t)0x2570, (q15_t)0xc5c6, (q15_t)0x2565, (q15_t)0xc5cb, - (q15_t)0x2559, (q15_t)0xc5d0, (q15_t)0x254e, (q15_t)0xc5d5, (q15_t)0x2542, (q15_t)0xc5db, (q15_t)0x2537, (q15_t)0xc5e0, - (q15_t)0x252c, (q15_t)0xc5e5, (q15_t)0x2520, (q15_t)0xc5ea, (q15_t)0x2515, (q15_t)0xc5f0, (q15_t)0x2509, (q15_t)0xc5f5, - (q15_t)0x24fe, (q15_t)0xc5fa, (q15_t)0x24f3, (q15_t)0xc600, (q15_t)0x24e7, (q15_t)0xc605, (q15_t)0x24dc, (q15_t)0xc60a, - (q15_t)0x24d0, (q15_t)0xc610, (q15_t)0x24c5, (q15_t)0xc615, (q15_t)0x24ba, (q15_t)0xc61a, (q15_t)0x24ae, (q15_t)0xc620, - (q15_t)0x24a3, (q15_t)0xc625, (q15_t)0x2498, (q15_t)0xc62a, (q15_t)0x248c, (q15_t)0xc630, (q15_t)0x2481, (q15_t)0xc635, - (q15_t)0x2476, (q15_t)0xc63b, (q15_t)0x246a, (q15_t)0xc640, (q15_t)0x245f, (q15_t)0xc645, (q15_t)0x2454, (q15_t)0xc64b, - (q15_t)0x2448, (q15_t)0xc650, (q15_t)0x243d, (q15_t)0xc656, (q15_t)0x2432, (q15_t)0xc65b, (q15_t)0x2426, (q15_t)0xc661, - (q15_t)0x241b, (q15_t)0xc666, (q15_t)0x2410, (q15_t)0xc66c, (q15_t)0x2404, (q15_t)0xc671, (q15_t)0x23f9, (q15_t)0xc677, - (q15_t)0x23ee, (q15_t)0xc67c, (q15_t)0x23e2, (q15_t)0xc682, (q15_t)0x23d7, (q15_t)0xc687, (q15_t)0x23cc, (q15_t)0xc68d, - (q15_t)0x23c1, (q15_t)0xc692, (q15_t)0x23b5, (q15_t)0xc698, (q15_t)0x23aa, (q15_t)0xc69d, (q15_t)0x239f, (q15_t)0xc6a3, - (q15_t)0x2394, (q15_t)0xc6a8, (q15_t)0x2388, (q15_t)0xc6ae, (q15_t)0x237d, (q15_t)0xc6b4, (q15_t)0x2372, (q15_t)0xc6b9, - (q15_t)0x2367, (q15_t)0xc6bf, (q15_t)0x235b, (q15_t)0xc6c5, (q15_t)0x2350, (q15_t)0xc6ca, (q15_t)0x2345, (q15_t)0xc6d0, - (q15_t)0x233a, (q15_t)0xc6d5, (q15_t)0x232e, (q15_t)0xc6db, (q15_t)0x2323, (q15_t)0xc6e1, (q15_t)0x2318, (q15_t)0xc6e6, - (q15_t)0x230d, (q15_t)0xc6ec, (q15_t)0x2301, (q15_t)0xc6f2, (q15_t)0x22f6, (q15_t)0xc6f7, (q15_t)0x22eb, (q15_t)0xc6fd, - (q15_t)0x22e0, (q15_t)0xc703, (q15_t)0x22d5, (q15_t)0xc709, (q15_t)0x22ca, (q15_t)0xc70e, (q15_t)0x22be, (q15_t)0xc714, - (q15_t)0x22b3, (q15_t)0xc71a, (q15_t)0x22a8, (q15_t)0xc720, (q15_t)0x229d, (q15_t)0xc725, (q15_t)0x2292, (q15_t)0xc72b, - (q15_t)0x2287, (q15_t)0xc731, (q15_t)0x227b, (q15_t)0xc737, (q15_t)0x2270, (q15_t)0xc73d, (q15_t)0x2265, (q15_t)0xc742, - (q15_t)0x225a, (q15_t)0xc748, (q15_t)0x224f, (q15_t)0xc74e, (q15_t)0x2244, (q15_t)0xc754, (q15_t)0x2239, (q15_t)0xc75a, - (q15_t)0x222d, (q15_t)0xc75f, (q15_t)0x2222, (q15_t)0xc765, (q15_t)0x2217, (q15_t)0xc76b, (q15_t)0x220c, (q15_t)0xc771, - (q15_t)0x2201, (q15_t)0xc777, (q15_t)0x21f6, (q15_t)0xc77d, (q15_t)0x21eb, (q15_t)0xc783, (q15_t)0x21e0, (q15_t)0xc789, - (q15_t)0x21d5, (q15_t)0xc78f, (q15_t)0x21ca, (q15_t)0xc795, (q15_t)0x21be, (q15_t)0xc79a, (q15_t)0x21b3, (q15_t)0xc7a0, - (q15_t)0x21a8, (q15_t)0xc7a6, (q15_t)0x219d, (q15_t)0xc7ac, (q15_t)0x2192, (q15_t)0xc7b2, (q15_t)0x2187, (q15_t)0xc7b8, - (q15_t)0x217c, (q15_t)0xc7be, (q15_t)0x2171, (q15_t)0xc7c4, (q15_t)0x2166, (q15_t)0xc7ca, (q15_t)0x215b, (q15_t)0xc7d0, - (q15_t)0x2150, (q15_t)0xc7d6, (q15_t)0x2145, (q15_t)0xc7dc, (q15_t)0x213a, (q15_t)0xc7e2, (q15_t)0x212f, (q15_t)0xc7e8, - (q15_t)0x2124, (q15_t)0xc7ee, (q15_t)0x2119, (q15_t)0xc7f5, (q15_t)0x210e, (q15_t)0xc7fb, (q15_t)0x2103, (q15_t)0xc801, - (q15_t)0x20f8, (q15_t)0xc807, (q15_t)0x20ed, (q15_t)0xc80d, (q15_t)0x20e2, (q15_t)0xc813, (q15_t)0x20d7, (q15_t)0xc819, - (q15_t)0x20cc, (q15_t)0xc81f, (q15_t)0x20c1, (q15_t)0xc825, (q15_t)0x20b6, (q15_t)0xc82b, (q15_t)0x20ab, (q15_t)0xc832, - (q15_t)0x20a0, (q15_t)0xc838, (q15_t)0x2095, (q15_t)0xc83e, (q15_t)0x208a, (q15_t)0xc844, (q15_t)0x207f, (q15_t)0xc84a, - (q15_t)0x2074, (q15_t)0xc850, (q15_t)0x2069, (q15_t)0xc857, (q15_t)0x205e, (q15_t)0xc85d, (q15_t)0x2054, (q15_t)0xc863, - (q15_t)0x2049, (q15_t)0xc869, (q15_t)0x203e, (q15_t)0xc870, (q15_t)0x2033, (q15_t)0xc876, (q15_t)0x2028, (q15_t)0xc87c, - (q15_t)0x201d, (q15_t)0xc882, (q15_t)0x2012, (q15_t)0xc889, (q15_t)0x2007, (q15_t)0xc88f, (q15_t)0x1ffc, (q15_t)0xc895, - (q15_t)0x1ff1, (q15_t)0xc89b, (q15_t)0x1fe7, (q15_t)0xc8a2, (q15_t)0x1fdc, (q15_t)0xc8a8, (q15_t)0x1fd1, (q15_t)0xc8ae, - (q15_t)0x1fc6, (q15_t)0xc8b5, (q15_t)0x1fbb, (q15_t)0xc8bb, (q15_t)0x1fb0, (q15_t)0xc8c1, (q15_t)0x1fa5, (q15_t)0xc8c8, - (q15_t)0x1f9b, (q15_t)0xc8ce, (q15_t)0x1f90, (q15_t)0xc8d4, (q15_t)0x1f85, (q15_t)0xc8db, (q15_t)0x1f7a, (q15_t)0xc8e1, - (q15_t)0x1f6f, (q15_t)0xc8e8, (q15_t)0x1f65, (q15_t)0xc8ee, (q15_t)0x1f5a, (q15_t)0xc8f4, (q15_t)0x1f4f, (q15_t)0xc8fb, - (q15_t)0x1f44, (q15_t)0xc901, (q15_t)0x1f39, (q15_t)0xc908, (q15_t)0x1f2f, (q15_t)0xc90e, (q15_t)0x1f24, (q15_t)0xc915, - (q15_t)0x1f19, (q15_t)0xc91b, (q15_t)0x1f0e, (q15_t)0xc921, (q15_t)0x1f03, (q15_t)0xc928, (q15_t)0x1ef9, (q15_t)0xc92e, - (q15_t)0x1eee, (q15_t)0xc935, (q15_t)0x1ee3, (q15_t)0xc93b, (q15_t)0x1ed8, (q15_t)0xc942, (q15_t)0x1ece, (q15_t)0xc948, - (q15_t)0x1ec3, (q15_t)0xc94f, (q15_t)0x1eb8, (q15_t)0xc955, (q15_t)0x1ead, (q15_t)0xc95c, (q15_t)0x1ea3, (q15_t)0xc963, - (q15_t)0x1e98, (q15_t)0xc969, (q15_t)0x1e8d, (q15_t)0xc970, (q15_t)0x1e83, (q15_t)0xc976, (q15_t)0x1e78, (q15_t)0xc97d, - (q15_t)0x1e6d, (q15_t)0xc983, (q15_t)0x1e62, (q15_t)0xc98a, (q15_t)0x1e58, (q15_t)0xc991, (q15_t)0x1e4d, (q15_t)0xc997, - (q15_t)0x1e42, (q15_t)0xc99e, (q15_t)0x1e38, (q15_t)0xc9a4, (q15_t)0x1e2d, (q15_t)0xc9ab, (q15_t)0x1e22, (q15_t)0xc9b2, - (q15_t)0x1e18, (q15_t)0xc9b8, (q15_t)0x1e0d, (q15_t)0xc9bf, (q15_t)0x1e02, (q15_t)0xc9c6, (q15_t)0x1df8, (q15_t)0xc9cc, - (q15_t)0x1ded, (q15_t)0xc9d3, (q15_t)0x1de2, (q15_t)0xc9da, (q15_t)0x1dd8, (q15_t)0xc9e0, (q15_t)0x1dcd, (q15_t)0xc9e7, - (q15_t)0x1dc3, (q15_t)0xc9ee, (q15_t)0x1db8, (q15_t)0xc9f5, (q15_t)0x1dad, (q15_t)0xc9fb, (q15_t)0x1da3, (q15_t)0xca02, - (q15_t)0x1d98, (q15_t)0xca09, (q15_t)0x1d8e, (q15_t)0xca10, (q15_t)0x1d83, (q15_t)0xca16, (q15_t)0x1d78, (q15_t)0xca1d, - (q15_t)0x1d6e, (q15_t)0xca24, (q15_t)0x1d63, (q15_t)0xca2b, (q15_t)0x1d59, (q15_t)0xca32, (q15_t)0x1d4e, (q15_t)0xca38, - (q15_t)0x1d44, (q15_t)0xca3f, (q15_t)0x1d39, (q15_t)0xca46, (q15_t)0x1d2e, (q15_t)0xca4d, (q15_t)0x1d24, (q15_t)0xca54, - (q15_t)0x1d19, (q15_t)0xca5b, (q15_t)0x1d0f, (q15_t)0xca61, (q15_t)0x1d04, (q15_t)0xca68, (q15_t)0x1cfa, (q15_t)0xca6f, - (q15_t)0x1cef, (q15_t)0xca76, (q15_t)0x1ce5, (q15_t)0xca7d, (q15_t)0x1cda, (q15_t)0xca84, (q15_t)0x1cd0, (q15_t)0xca8b, - (q15_t)0x1cc5, (q15_t)0xca92, (q15_t)0x1cbb, (q15_t)0xca99, (q15_t)0x1cb0, (q15_t)0xca9f, (q15_t)0x1ca6, (q15_t)0xcaa6, - (q15_t)0x1c9b, (q15_t)0xcaad, (q15_t)0x1c91, (q15_t)0xcab4, (q15_t)0x1c86, (q15_t)0xcabb, (q15_t)0x1c7c, (q15_t)0xcac2, - (q15_t)0x1c72, (q15_t)0xcac9, (q15_t)0x1c67, (q15_t)0xcad0, (q15_t)0x1c5d, (q15_t)0xcad7, (q15_t)0x1c52, (q15_t)0xcade, - (q15_t)0x1c48, (q15_t)0xcae5, (q15_t)0x1c3d, (q15_t)0xcaec, (q15_t)0x1c33, (q15_t)0xcaf3, (q15_t)0x1c29, (q15_t)0xcafa, - (q15_t)0x1c1e, (q15_t)0xcb01, (q15_t)0x1c14, (q15_t)0xcb08, (q15_t)0x1c09, (q15_t)0xcb0f, (q15_t)0x1bff, (q15_t)0xcb16, - (q15_t)0x1bf5, (q15_t)0xcb1e, (q15_t)0x1bea, (q15_t)0xcb25, (q15_t)0x1be0, (q15_t)0xcb2c, (q15_t)0x1bd5, (q15_t)0xcb33, - (q15_t)0x1bcb, (q15_t)0xcb3a, (q15_t)0x1bc1, (q15_t)0xcb41, (q15_t)0x1bb6, (q15_t)0xcb48, (q15_t)0x1bac, (q15_t)0xcb4f, - (q15_t)0x1ba2, (q15_t)0xcb56, (q15_t)0x1b97, (q15_t)0xcb5e, (q15_t)0x1b8d, (q15_t)0xcb65, (q15_t)0x1b83, (q15_t)0xcb6c, - (q15_t)0x1b78, (q15_t)0xcb73, (q15_t)0x1b6e, (q15_t)0xcb7a, (q15_t)0x1b64, (q15_t)0xcb81, (q15_t)0x1b59, (q15_t)0xcb89, - (q15_t)0x1b4f, (q15_t)0xcb90, (q15_t)0x1b45, (q15_t)0xcb97, (q15_t)0x1b3b, (q15_t)0xcb9e, (q15_t)0x1b30, (q15_t)0xcba5, - (q15_t)0x1b26, (q15_t)0xcbad, (q15_t)0x1b1c, (q15_t)0xcbb4, (q15_t)0x1b11, (q15_t)0xcbbb, (q15_t)0x1b07, (q15_t)0xcbc2, - (q15_t)0x1afd, (q15_t)0xcbca, (q15_t)0x1af3, (q15_t)0xcbd1, (q15_t)0x1ae8, (q15_t)0xcbd8, (q15_t)0x1ade, (q15_t)0xcbe0, - (q15_t)0x1ad4, (q15_t)0xcbe7, (q15_t)0x1aca, (q15_t)0xcbee, (q15_t)0x1abf, (q15_t)0xcbf5, (q15_t)0x1ab5, (q15_t)0xcbfd, - (q15_t)0x1aab, (q15_t)0xcc04, (q15_t)0x1aa1, (q15_t)0xcc0b, (q15_t)0x1a97, (q15_t)0xcc13, (q15_t)0x1a8c, (q15_t)0xcc1a, - (q15_t)0x1a82, (q15_t)0xcc21, (q15_t)0x1a78, (q15_t)0xcc29, (q15_t)0x1a6e, (q15_t)0xcc30, (q15_t)0x1a64, (q15_t)0xcc38, - (q15_t)0x1a5a, (q15_t)0xcc3f, (q15_t)0x1a4f, (q15_t)0xcc46, (q15_t)0x1a45, (q15_t)0xcc4e, (q15_t)0x1a3b, (q15_t)0xcc55, - (q15_t)0x1a31, (q15_t)0xcc5d, (q15_t)0x1a27, (q15_t)0xcc64, (q15_t)0x1a1d, (q15_t)0xcc6b, (q15_t)0x1a13, (q15_t)0xcc73, - (q15_t)0x1a08, (q15_t)0xcc7a, (q15_t)0x19fe, (q15_t)0xcc82, (q15_t)0x19f4, (q15_t)0xcc89, (q15_t)0x19ea, (q15_t)0xcc91, - (q15_t)0x19e0, (q15_t)0xcc98, (q15_t)0x19d6, (q15_t)0xcca0, (q15_t)0x19cc, (q15_t)0xcca7, (q15_t)0x19c2, (q15_t)0xccaf, - (q15_t)0x19b8, (q15_t)0xccb6, (q15_t)0x19ae, (q15_t)0xccbe, (q15_t)0x19a4, (q15_t)0xccc5, (q15_t)0x199a, (q15_t)0xcccd, - (q15_t)0x198f, (q15_t)0xccd4, (q15_t)0x1985, (q15_t)0xccdc, (q15_t)0x197b, (q15_t)0xcce3, (q15_t)0x1971, (q15_t)0xcceb, - (q15_t)0x1967, (q15_t)0xccf3, (q15_t)0x195d, (q15_t)0xccfa, (q15_t)0x1953, (q15_t)0xcd02, (q15_t)0x1949, (q15_t)0xcd09, - (q15_t)0x193f, (q15_t)0xcd11, (q15_t)0x1935, (q15_t)0xcd19, (q15_t)0x192b, (q15_t)0xcd20, (q15_t)0x1921, (q15_t)0xcd28, - (q15_t)0x1917, (q15_t)0xcd30, (q15_t)0x190d, (q15_t)0xcd37, (q15_t)0x1903, (q15_t)0xcd3f, (q15_t)0x18f9, (q15_t)0xcd46, - (q15_t)0x18ef, (q15_t)0xcd4e, (q15_t)0x18e6, (q15_t)0xcd56, (q15_t)0x18dc, (q15_t)0xcd5d, (q15_t)0x18d2, (q15_t)0xcd65, - (q15_t)0x18c8, (q15_t)0xcd6d, (q15_t)0x18be, (q15_t)0xcd75, (q15_t)0x18b4, (q15_t)0xcd7c, (q15_t)0x18aa, (q15_t)0xcd84, - (q15_t)0x18a0, (q15_t)0xcd8c, (q15_t)0x1896, (q15_t)0xcd93, (q15_t)0x188c, (q15_t)0xcd9b, (q15_t)0x1882, (q15_t)0xcda3, - (q15_t)0x1878, (q15_t)0xcdab, (q15_t)0x186f, (q15_t)0xcdb2, (q15_t)0x1865, (q15_t)0xcdba, (q15_t)0x185b, (q15_t)0xcdc2, - (q15_t)0x1851, (q15_t)0xcdca, (q15_t)0x1847, (q15_t)0xcdd2, (q15_t)0x183d, (q15_t)0xcdd9, (q15_t)0x1833, (q15_t)0xcde1, - (q15_t)0x182a, (q15_t)0xcde9, (q15_t)0x1820, (q15_t)0xcdf1, (q15_t)0x1816, (q15_t)0xcdf9, (q15_t)0x180c, (q15_t)0xce01, - (q15_t)0x1802, (q15_t)0xce08, (q15_t)0x17f8, (q15_t)0xce10, (q15_t)0x17ef, (q15_t)0xce18, (q15_t)0x17e5, (q15_t)0xce20, - (q15_t)0x17db, (q15_t)0xce28, (q15_t)0x17d1, (q15_t)0xce30, (q15_t)0x17c8, (q15_t)0xce38, (q15_t)0x17be, (q15_t)0xce40, - (q15_t)0x17b4, (q15_t)0xce47, (q15_t)0x17aa, (q15_t)0xce4f, (q15_t)0x17a0, (q15_t)0xce57, (q15_t)0x1797, (q15_t)0xce5f, - (q15_t)0x178d, (q15_t)0xce67, (q15_t)0x1783, (q15_t)0xce6f, (q15_t)0x177a, (q15_t)0xce77, (q15_t)0x1770, (q15_t)0xce7f, - (q15_t)0x1766, (q15_t)0xce87, (q15_t)0x175c, (q15_t)0xce8f, (q15_t)0x1753, (q15_t)0xce97, (q15_t)0x1749, (q15_t)0xce9f, - (q15_t)0x173f, (q15_t)0xcea7, (q15_t)0x1736, (q15_t)0xceaf, (q15_t)0x172c, (q15_t)0xceb7, (q15_t)0x1722, (q15_t)0xcebf, - (q15_t)0x1719, (q15_t)0xcec7, (q15_t)0x170f, (q15_t)0xcecf, (q15_t)0x1705, (q15_t)0xced7, (q15_t)0x16fc, (q15_t)0xcedf, - (q15_t)0x16f2, (q15_t)0xcee7, (q15_t)0x16e8, (q15_t)0xceef, (q15_t)0x16df, (q15_t)0xcef7, (q15_t)0x16d5, (q15_t)0xceff, - (q15_t)0x16cb, (q15_t)0xcf07, (q15_t)0x16c2, (q15_t)0xcf10, (q15_t)0x16b8, (q15_t)0xcf18, (q15_t)0x16af, (q15_t)0xcf20, - (q15_t)0x16a5, (q15_t)0xcf28, (q15_t)0x169b, (q15_t)0xcf30, (q15_t)0x1692, (q15_t)0xcf38, (q15_t)0x1688, (q15_t)0xcf40, - (q15_t)0x167f, (q15_t)0xcf48, (q15_t)0x1675, (q15_t)0xcf51, (q15_t)0x166c, (q15_t)0xcf59, (q15_t)0x1662, (q15_t)0xcf61, - (q15_t)0x1659, (q15_t)0xcf69, (q15_t)0x164f, (q15_t)0xcf71, (q15_t)0x1645, (q15_t)0xcf79, (q15_t)0x163c, (q15_t)0xcf82, - (q15_t)0x1632, (q15_t)0xcf8a, (q15_t)0x1629, (q15_t)0xcf92, (q15_t)0x161f, (q15_t)0xcf9a, (q15_t)0x1616, (q15_t)0xcfa3, - (q15_t)0x160c, (q15_t)0xcfab, (q15_t)0x1603, (q15_t)0xcfb3, (q15_t)0x15f9, (q15_t)0xcfbb, (q15_t)0x15f0, (q15_t)0xcfc4, - (q15_t)0x15e6, (q15_t)0xcfcc, (q15_t)0x15dd, (q15_t)0xcfd4, (q15_t)0x15d4, (q15_t)0xcfdc, (q15_t)0x15ca, (q15_t)0xcfe5, - (q15_t)0x15c1, (q15_t)0xcfed, (q15_t)0x15b7, (q15_t)0xcff5, (q15_t)0x15ae, (q15_t)0xcffe, (q15_t)0x15a4, (q15_t)0xd006, - (q15_t)0x159b, (q15_t)0xd00e, (q15_t)0x1592, (q15_t)0xd016, (q15_t)0x1588, (q15_t)0xd01f, (q15_t)0x157f, (q15_t)0xd027, - (q15_t)0x1575, (q15_t)0xd030, (q15_t)0x156c, (q15_t)0xd038, (q15_t)0x1563, (q15_t)0xd040, (q15_t)0x1559, (q15_t)0xd049, - (q15_t)0x1550, (q15_t)0xd051, (q15_t)0x1547, (q15_t)0xd059, (q15_t)0x153d, (q15_t)0xd062, (q15_t)0x1534, (q15_t)0xd06a, - (q15_t)0x152a, (q15_t)0xd073, (q15_t)0x1521, (q15_t)0xd07b, (q15_t)0x1518, (q15_t)0xd083, (q15_t)0x150e, (q15_t)0xd08c, - (q15_t)0x1505, (q15_t)0xd094, (q15_t)0x14fc, (q15_t)0xd09d, (q15_t)0x14f3, (q15_t)0xd0a5, (q15_t)0x14e9, (q15_t)0xd0ae, - (q15_t)0x14e0, (q15_t)0xd0b6, (q15_t)0x14d7, (q15_t)0xd0bf, (q15_t)0x14cd, (q15_t)0xd0c7, (q15_t)0x14c4, (q15_t)0xd0d0, - (q15_t)0x14bb, (q15_t)0xd0d8, (q15_t)0x14b2, (q15_t)0xd0e0, (q15_t)0x14a8, (q15_t)0xd0e9, (q15_t)0x149f, (q15_t)0xd0f2, - (q15_t)0x1496, (q15_t)0xd0fa, (q15_t)0x148d, (q15_t)0xd103, (q15_t)0x1483, (q15_t)0xd10b, (q15_t)0x147a, (q15_t)0xd114, - (q15_t)0x1471, (q15_t)0xd11c, (q15_t)0x1468, (q15_t)0xd125, (q15_t)0x145f, (q15_t)0xd12d, (q15_t)0x1455, (q15_t)0xd136, - (q15_t)0x144c, (q15_t)0xd13e, (q15_t)0x1443, (q15_t)0xd147, (q15_t)0x143a, (q15_t)0xd150, (q15_t)0x1431, (q15_t)0xd158, - (q15_t)0x1428, (q15_t)0xd161, (q15_t)0x141e, (q15_t)0xd169, (q15_t)0x1415, (q15_t)0xd172, (q15_t)0x140c, (q15_t)0xd17b, - (q15_t)0x1403, (q15_t)0xd183, (q15_t)0x13fa, (q15_t)0xd18c, (q15_t)0x13f1, (q15_t)0xd195, (q15_t)0x13e8, (q15_t)0xd19d, - (q15_t)0x13df, (q15_t)0xd1a6, (q15_t)0x13d5, (q15_t)0xd1af, (q15_t)0x13cc, (q15_t)0xd1b7, (q15_t)0x13c3, (q15_t)0xd1c0, - (q15_t)0x13ba, (q15_t)0xd1c9, (q15_t)0x13b1, (q15_t)0xd1d1, (q15_t)0x13a8, (q15_t)0xd1da, (q15_t)0x139f, (q15_t)0xd1e3, - (q15_t)0x1396, (q15_t)0xd1eb, (q15_t)0x138d, (q15_t)0xd1f4, (q15_t)0x1384, (q15_t)0xd1fd, (q15_t)0x137b, (q15_t)0xd206, - (q15_t)0x1372, (q15_t)0xd20e, (q15_t)0x1369, (q15_t)0xd217, (q15_t)0x1360, (q15_t)0xd220, (q15_t)0x1357, (q15_t)0xd229, - (q15_t)0x134e, (q15_t)0xd231, (q15_t)0x1345, (q15_t)0xd23a, (q15_t)0x133c, (q15_t)0xd243, (q15_t)0x1333, (q15_t)0xd24c, - (q15_t)0x132a, (q15_t)0xd255, (q15_t)0x1321, (q15_t)0xd25d, (q15_t)0x1318, (q15_t)0xd266, (q15_t)0x130f, (q15_t)0xd26f, - (q15_t)0x1306, (q15_t)0xd278, (q15_t)0x12fd, (q15_t)0xd281, (q15_t)0x12f4, (q15_t)0xd28a, (q15_t)0x12eb, (q15_t)0xd292, - (q15_t)0x12e2, (q15_t)0xd29b, (q15_t)0x12d9, (q15_t)0xd2a4, (q15_t)0x12d1, (q15_t)0xd2ad, (q15_t)0x12c8, (q15_t)0xd2b6, - (q15_t)0x12bf, (q15_t)0xd2bf, (q15_t)0x12b6, (q15_t)0xd2c8, (q15_t)0x12ad, (q15_t)0xd2d1, (q15_t)0x12a4, (q15_t)0xd2d9, - (q15_t)0x129b, (q15_t)0xd2e2, (q15_t)0x1292, (q15_t)0xd2eb, (q15_t)0x128a, (q15_t)0xd2f4, (q15_t)0x1281, (q15_t)0xd2fd, - (q15_t)0x1278, (q15_t)0xd306, (q15_t)0x126f, (q15_t)0xd30f, (q15_t)0x1266, (q15_t)0xd318, (q15_t)0x125d, (q15_t)0xd321, - (q15_t)0x1255, (q15_t)0xd32a, (q15_t)0x124c, (q15_t)0xd333, (q15_t)0x1243, (q15_t)0xd33c, (q15_t)0x123a, (q15_t)0xd345, - (q15_t)0x1231, (q15_t)0xd34e, (q15_t)0x1229, (q15_t)0xd357, (q15_t)0x1220, (q15_t)0xd360, (q15_t)0x1217, (q15_t)0xd369, - (q15_t)0x120e, (q15_t)0xd372, (q15_t)0x1206, (q15_t)0xd37b, (q15_t)0x11fd, (q15_t)0xd384, (q15_t)0x11f4, (q15_t)0xd38d, - (q15_t)0x11eb, (q15_t)0xd396, (q15_t)0x11e3, (q15_t)0xd39f, (q15_t)0x11da, (q15_t)0xd3a8, (q15_t)0x11d1, (q15_t)0xd3b1, - (q15_t)0x11c9, (q15_t)0xd3ba, (q15_t)0x11c0, (q15_t)0xd3c3, (q15_t)0x11b7, (q15_t)0xd3cc, (q15_t)0x11af, (q15_t)0xd3d5, - (q15_t)0x11a6, (q15_t)0xd3df, (q15_t)0x119d, (q15_t)0xd3e8, (q15_t)0x1195, (q15_t)0xd3f1, (q15_t)0x118c, (q15_t)0xd3fa, - (q15_t)0x1183, (q15_t)0xd403, (q15_t)0x117b, (q15_t)0xd40c, (q15_t)0x1172, (q15_t)0xd415, (q15_t)0x1169, (q15_t)0xd41e, - (q15_t)0x1161, (q15_t)0xd428, (q15_t)0x1158, (q15_t)0xd431, (q15_t)0x1150, (q15_t)0xd43a, (q15_t)0x1147, (q15_t)0xd443, - (q15_t)0x113e, (q15_t)0xd44c, (q15_t)0x1136, (q15_t)0xd455, (q15_t)0x112d, (q15_t)0xd45f, (q15_t)0x1125, (q15_t)0xd468, - (q15_t)0x111c, (q15_t)0xd471, (q15_t)0x1114, (q15_t)0xd47a, (q15_t)0x110b, (q15_t)0xd483, (q15_t)0x1103, (q15_t)0xd48d, - (q15_t)0x10fa, (q15_t)0xd496, (q15_t)0x10f2, (q15_t)0xd49f, (q15_t)0x10e9, (q15_t)0xd4a8, (q15_t)0x10e0, (q15_t)0xd4b2, - (q15_t)0x10d8, (q15_t)0xd4bb, (q15_t)0x10d0, (q15_t)0xd4c4, (q15_t)0x10c7, (q15_t)0xd4cd, (q15_t)0x10bf, (q15_t)0xd4d7, - (q15_t)0x10b6, (q15_t)0xd4e0, (q15_t)0x10ae, (q15_t)0xd4e9, (q15_t)0x10a5, (q15_t)0xd4f3, (q15_t)0x109d, (q15_t)0xd4fc, - (q15_t)0x1094, (q15_t)0xd505, (q15_t)0x108c, (q15_t)0xd50e, (q15_t)0x1083, (q15_t)0xd518, (q15_t)0x107b, (q15_t)0xd521, - (q15_t)0x1073, (q15_t)0xd52a, (q15_t)0x106a, (q15_t)0xd534, (q15_t)0x1062, (q15_t)0xd53d, (q15_t)0x1059, (q15_t)0xd547, - (q15_t)0x1051, (q15_t)0xd550, (q15_t)0x1049, (q15_t)0xd559, (q15_t)0x1040, (q15_t)0xd563, (q15_t)0x1038, (q15_t)0xd56c, - (q15_t)0x1030, (q15_t)0xd575, (q15_t)0x1027, (q15_t)0xd57f, (q15_t)0x101f, (q15_t)0xd588, (q15_t)0x1016, (q15_t)0xd592, - (q15_t)0x100e, (q15_t)0xd59b, (q15_t)0x1006, (q15_t)0xd5a4, (q15_t)0xffe, (q15_t)0xd5ae, (q15_t)0xff5, (q15_t)0xd5b7, - (q15_t)0xfed, (q15_t)0xd5c1, (q15_t)0xfe5, (q15_t)0xd5ca, (q15_t)0xfdc, (q15_t)0xd5d4, (q15_t)0xfd4, (q15_t)0xd5dd, - (q15_t)0xfcc, (q15_t)0xd5e6, (q15_t)0xfc4, (q15_t)0xd5f0, (q15_t)0xfbb, (q15_t)0xd5f9, (q15_t)0xfb3, (q15_t)0xd603, - (q15_t)0xfab, (q15_t)0xd60c, (q15_t)0xfa3, (q15_t)0xd616, (q15_t)0xf9a, (q15_t)0xd61f, (q15_t)0xf92, (q15_t)0xd629, - (q15_t)0xf8a, (q15_t)0xd632, (q15_t)0xf82, (q15_t)0xd63c, (q15_t)0xf79, (q15_t)0xd645, (q15_t)0xf71, (q15_t)0xd64f, - (q15_t)0xf69, (q15_t)0xd659, (q15_t)0xf61, (q15_t)0xd662, (q15_t)0xf59, (q15_t)0xd66c, (q15_t)0xf51, (q15_t)0xd675, - (q15_t)0xf48, (q15_t)0xd67f, (q15_t)0xf40, (q15_t)0xd688, (q15_t)0xf38, (q15_t)0xd692, (q15_t)0xf30, (q15_t)0xd69b, - (q15_t)0xf28, (q15_t)0xd6a5, (q15_t)0xf20, (q15_t)0xd6af, (q15_t)0xf18, (q15_t)0xd6b8, (q15_t)0xf10, (q15_t)0xd6c2, - (q15_t)0xf07, (q15_t)0xd6cb, (q15_t)0xeff, (q15_t)0xd6d5, (q15_t)0xef7, (q15_t)0xd6df, (q15_t)0xeef, (q15_t)0xd6e8, - (q15_t)0xee7, (q15_t)0xd6f2, (q15_t)0xedf, (q15_t)0xd6fc, (q15_t)0xed7, (q15_t)0xd705, (q15_t)0xecf, (q15_t)0xd70f, - (q15_t)0xec7, (q15_t)0xd719, (q15_t)0xebf, (q15_t)0xd722, (q15_t)0xeb7, (q15_t)0xd72c, (q15_t)0xeaf, (q15_t)0xd736, - (q15_t)0xea7, (q15_t)0xd73f, (q15_t)0xe9f, (q15_t)0xd749, (q15_t)0xe97, (q15_t)0xd753, (q15_t)0xe8f, (q15_t)0xd75c, - (q15_t)0xe87, (q15_t)0xd766, (q15_t)0xe7f, (q15_t)0xd770, (q15_t)0xe77, (q15_t)0xd77a, (q15_t)0xe6f, (q15_t)0xd783, - (q15_t)0xe67, (q15_t)0xd78d, (q15_t)0xe5f, (q15_t)0xd797, (q15_t)0xe57, (q15_t)0xd7a0, (q15_t)0xe4f, (q15_t)0xd7aa, - (q15_t)0xe47, (q15_t)0xd7b4, (q15_t)0xe40, (q15_t)0xd7be, (q15_t)0xe38, (q15_t)0xd7c8, (q15_t)0xe30, (q15_t)0xd7d1, - (q15_t)0xe28, (q15_t)0xd7db, (q15_t)0xe20, (q15_t)0xd7e5, (q15_t)0xe18, (q15_t)0xd7ef, (q15_t)0xe10, (q15_t)0xd7f8, - (q15_t)0xe08, (q15_t)0xd802, (q15_t)0xe01, (q15_t)0xd80c, (q15_t)0xdf9, (q15_t)0xd816, (q15_t)0xdf1, (q15_t)0xd820, - (q15_t)0xde9, (q15_t)0xd82a, (q15_t)0xde1, (q15_t)0xd833, (q15_t)0xdd9, (q15_t)0xd83d, (q15_t)0xdd2, (q15_t)0xd847, - (q15_t)0xdca, (q15_t)0xd851, (q15_t)0xdc2, (q15_t)0xd85b, (q15_t)0xdba, (q15_t)0xd865, (q15_t)0xdb2, (q15_t)0xd86f, - (q15_t)0xdab, (q15_t)0xd878, (q15_t)0xda3, (q15_t)0xd882, (q15_t)0xd9b, (q15_t)0xd88c, (q15_t)0xd93, (q15_t)0xd896, - (q15_t)0xd8c, (q15_t)0xd8a0, (q15_t)0xd84, (q15_t)0xd8aa, (q15_t)0xd7c, (q15_t)0xd8b4, (q15_t)0xd75, (q15_t)0xd8be, - (q15_t)0xd6d, (q15_t)0xd8c8, (q15_t)0xd65, (q15_t)0xd8d2, (q15_t)0xd5d, (q15_t)0xd8dc, (q15_t)0xd56, (q15_t)0xd8e6, - (q15_t)0xd4e, (q15_t)0xd8ef, (q15_t)0xd46, (q15_t)0xd8f9, (q15_t)0xd3f, (q15_t)0xd903, (q15_t)0xd37, (q15_t)0xd90d, - (q15_t)0xd30, (q15_t)0xd917, (q15_t)0xd28, (q15_t)0xd921, (q15_t)0xd20, (q15_t)0xd92b, (q15_t)0xd19, (q15_t)0xd935, - (q15_t)0xd11, (q15_t)0xd93f, (q15_t)0xd09, (q15_t)0xd949, (q15_t)0xd02, (q15_t)0xd953, (q15_t)0xcfa, (q15_t)0xd95d, - (q15_t)0xcf3, (q15_t)0xd967, (q15_t)0xceb, (q15_t)0xd971, (q15_t)0xce3, (q15_t)0xd97b, (q15_t)0xcdc, (q15_t)0xd985, - (q15_t)0xcd4, (q15_t)0xd98f, (q15_t)0xccd, (q15_t)0xd99a, (q15_t)0xcc5, (q15_t)0xd9a4, (q15_t)0xcbe, (q15_t)0xd9ae, - (q15_t)0xcb6, (q15_t)0xd9b8, (q15_t)0xcaf, (q15_t)0xd9c2, (q15_t)0xca7, (q15_t)0xd9cc, (q15_t)0xca0, (q15_t)0xd9d6, - (q15_t)0xc98, (q15_t)0xd9e0, (q15_t)0xc91, (q15_t)0xd9ea, (q15_t)0xc89, (q15_t)0xd9f4, (q15_t)0xc82, (q15_t)0xd9fe, - (q15_t)0xc7a, (q15_t)0xda08, (q15_t)0xc73, (q15_t)0xda13, (q15_t)0xc6b, (q15_t)0xda1d, (q15_t)0xc64, (q15_t)0xda27, - (q15_t)0xc5d, (q15_t)0xda31, (q15_t)0xc55, (q15_t)0xda3b, (q15_t)0xc4e, (q15_t)0xda45, (q15_t)0xc46, (q15_t)0xda4f, - (q15_t)0xc3f, (q15_t)0xda5a, (q15_t)0xc38, (q15_t)0xda64, (q15_t)0xc30, (q15_t)0xda6e, (q15_t)0xc29, (q15_t)0xda78, - (q15_t)0xc21, (q15_t)0xda82, (q15_t)0xc1a, (q15_t)0xda8c, (q15_t)0xc13, (q15_t)0xda97, (q15_t)0xc0b, (q15_t)0xdaa1, - (q15_t)0xc04, (q15_t)0xdaab, (q15_t)0xbfd, (q15_t)0xdab5, (q15_t)0xbf5, (q15_t)0xdabf, (q15_t)0xbee, (q15_t)0xdaca, - (q15_t)0xbe7, (q15_t)0xdad4, (q15_t)0xbe0, (q15_t)0xdade, (q15_t)0xbd8, (q15_t)0xdae8, (q15_t)0xbd1, (q15_t)0xdaf3, - (q15_t)0xbca, (q15_t)0xdafd, (q15_t)0xbc2, (q15_t)0xdb07, (q15_t)0xbbb, (q15_t)0xdb11, (q15_t)0xbb4, (q15_t)0xdb1c, - (q15_t)0xbad, (q15_t)0xdb26, (q15_t)0xba5, (q15_t)0xdb30, (q15_t)0xb9e, (q15_t)0xdb3b, (q15_t)0xb97, (q15_t)0xdb45, - (q15_t)0xb90, (q15_t)0xdb4f, (q15_t)0xb89, (q15_t)0xdb59, (q15_t)0xb81, (q15_t)0xdb64, (q15_t)0xb7a, (q15_t)0xdb6e, - (q15_t)0xb73, (q15_t)0xdb78, (q15_t)0xb6c, (q15_t)0xdb83, (q15_t)0xb65, (q15_t)0xdb8d, (q15_t)0xb5e, (q15_t)0xdb97, - (q15_t)0xb56, (q15_t)0xdba2, (q15_t)0xb4f, (q15_t)0xdbac, (q15_t)0xb48, (q15_t)0xdbb6, (q15_t)0xb41, (q15_t)0xdbc1, - (q15_t)0xb3a, (q15_t)0xdbcb, (q15_t)0xb33, (q15_t)0xdbd5, (q15_t)0xb2c, (q15_t)0xdbe0, (q15_t)0xb25, (q15_t)0xdbea, - (q15_t)0xb1e, (q15_t)0xdbf5, (q15_t)0xb16, (q15_t)0xdbff, (q15_t)0xb0f, (q15_t)0xdc09, (q15_t)0xb08, (q15_t)0xdc14, - (q15_t)0xb01, (q15_t)0xdc1e, (q15_t)0xafa, (q15_t)0xdc29, (q15_t)0xaf3, (q15_t)0xdc33, (q15_t)0xaec, (q15_t)0xdc3d, - (q15_t)0xae5, (q15_t)0xdc48, (q15_t)0xade, (q15_t)0xdc52, (q15_t)0xad7, (q15_t)0xdc5d, (q15_t)0xad0, (q15_t)0xdc67, - (q15_t)0xac9, (q15_t)0xdc72, (q15_t)0xac2, (q15_t)0xdc7c, (q15_t)0xabb, (q15_t)0xdc86, (q15_t)0xab4, (q15_t)0xdc91, - (q15_t)0xaad, (q15_t)0xdc9b, (q15_t)0xaa6, (q15_t)0xdca6, (q15_t)0xa9f, (q15_t)0xdcb0, (q15_t)0xa99, (q15_t)0xdcbb, - (q15_t)0xa92, (q15_t)0xdcc5, (q15_t)0xa8b, (q15_t)0xdcd0, (q15_t)0xa84, (q15_t)0xdcda, (q15_t)0xa7d, (q15_t)0xdce5, - (q15_t)0xa76, (q15_t)0xdcef, (q15_t)0xa6f, (q15_t)0xdcfa, (q15_t)0xa68, (q15_t)0xdd04, (q15_t)0xa61, (q15_t)0xdd0f, - (q15_t)0xa5b, (q15_t)0xdd19, (q15_t)0xa54, (q15_t)0xdd24, (q15_t)0xa4d, (q15_t)0xdd2e, (q15_t)0xa46, (q15_t)0xdd39, - (q15_t)0xa3f, (q15_t)0xdd44, (q15_t)0xa38, (q15_t)0xdd4e, (q15_t)0xa32, (q15_t)0xdd59, (q15_t)0xa2b, (q15_t)0xdd63, - (q15_t)0xa24, (q15_t)0xdd6e, (q15_t)0xa1d, (q15_t)0xdd78, (q15_t)0xa16, (q15_t)0xdd83, (q15_t)0xa10, (q15_t)0xdd8e, - (q15_t)0xa09, (q15_t)0xdd98, (q15_t)0xa02, (q15_t)0xdda3, (q15_t)0x9fb, (q15_t)0xddad, (q15_t)0x9f5, (q15_t)0xddb8, - (q15_t)0x9ee, (q15_t)0xddc3, (q15_t)0x9e7, (q15_t)0xddcd, (q15_t)0x9e0, (q15_t)0xddd8, (q15_t)0x9da, (q15_t)0xdde2, - (q15_t)0x9d3, (q15_t)0xdded, (q15_t)0x9cc, (q15_t)0xddf8, (q15_t)0x9c6, (q15_t)0xde02, (q15_t)0x9bf, (q15_t)0xde0d, - (q15_t)0x9b8, (q15_t)0xde18, (q15_t)0x9b2, (q15_t)0xde22, (q15_t)0x9ab, (q15_t)0xde2d, (q15_t)0x9a4, (q15_t)0xde38, - (q15_t)0x99e, (q15_t)0xde42, (q15_t)0x997, (q15_t)0xde4d, (q15_t)0x991, (q15_t)0xde58, (q15_t)0x98a, (q15_t)0xde62, - (q15_t)0x983, (q15_t)0xde6d, (q15_t)0x97d, (q15_t)0xde78, (q15_t)0x976, (q15_t)0xde83, (q15_t)0x970, (q15_t)0xde8d, - (q15_t)0x969, (q15_t)0xde98, (q15_t)0x963, (q15_t)0xdea3, (q15_t)0x95c, (q15_t)0xdead, (q15_t)0x955, (q15_t)0xdeb8, - (q15_t)0x94f, (q15_t)0xdec3, (q15_t)0x948, (q15_t)0xdece, (q15_t)0x942, (q15_t)0xded8, (q15_t)0x93b, (q15_t)0xdee3, - (q15_t)0x935, (q15_t)0xdeee, (q15_t)0x92e, (q15_t)0xdef9, (q15_t)0x928, (q15_t)0xdf03, (q15_t)0x921, (q15_t)0xdf0e, - (q15_t)0x91b, (q15_t)0xdf19, (q15_t)0x915, (q15_t)0xdf24, (q15_t)0x90e, (q15_t)0xdf2f, (q15_t)0x908, (q15_t)0xdf39, - (q15_t)0x901, (q15_t)0xdf44, (q15_t)0x8fb, (q15_t)0xdf4f, (q15_t)0x8f4, (q15_t)0xdf5a, (q15_t)0x8ee, (q15_t)0xdf65, - (q15_t)0x8e8, (q15_t)0xdf6f, (q15_t)0x8e1, (q15_t)0xdf7a, (q15_t)0x8db, (q15_t)0xdf85, (q15_t)0x8d4, (q15_t)0xdf90, - (q15_t)0x8ce, (q15_t)0xdf9b, (q15_t)0x8c8, (q15_t)0xdfa5, (q15_t)0x8c1, (q15_t)0xdfb0, (q15_t)0x8bb, (q15_t)0xdfbb, - (q15_t)0x8b5, (q15_t)0xdfc6, (q15_t)0x8ae, (q15_t)0xdfd1, (q15_t)0x8a8, (q15_t)0xdfdc, (q15_t)0x8a2, (q15_t)0xdfe7, - (q15_t)0x89b, (q15_t)0xdff1, (q15_t)0x895, (q15_t)0xdffc, (q15_t)0x88f, (q15_t)0xe007, (q15_t)0x889, (q15_t)0xe012, - (q15_t)0x882, (q15_t)0xe01d, (q15_t)0x87c, (q15_t)0xe028, (q15_t)0x876, (q15_t)0xe033, (q15_t)0x870, (q15_t)0xe03e, - (q15_t)0x869, (q15_t)0xe049, (q15_t)0x863, (q15_t)0xe054, (q15_t)0x85d, (q15_t)0xe05e, (q15_t)0x857, (q15_t)0xe069, - (q15_t)0x850, (q15_t)0xe074, (q15_t)0x84a, (q15_t)0xe07f, (q15_t)0x844, (q15_t)0xe08a, (q15_t)0x83e, (q15_t)0xe095, - (q15_t)0x838, (q15_t)0xe0a0, (q15_t)0x832, (q15_t)0xe0ab, (q15_t)0x82b, (q15_t)0xe0b6, (q15_t)0x825, (q15_t)0xe0c1, - (q15_t)0x81f, (q15_t)0xe0cc, (q15_t)0x819, (q15_t)0xe0d7, (q15_t)0x813, (q15_t)0xe0e2, (q15_t)0x80d, (q15_t)0xe0ed, - (q15_t)0x807, (q15_t)0xe0f8, (q15_t)0x801, (q15_t)0xe103, (q15_t)0x7fb, (q15_t)0xe10e, (q15_t)0x7f5, (q15_t)0xe119, - (q15_t)0x7ee, (q15_t)0xe124, (q15_t)0x7e8, (q15_t)0xe12f, (q15_t)0x7e2, (q15_t)0xe13a, (q15_t)0x7dc, (q15_t)0xe145, - (q15_t)0x7d6, (q15_t)0xe150, (q15_t)0x7d0, (q15_t)0xe15b, (q15_t)0x7ca, (q15_t)0xe166, (q15_t)0x7c4, (q15_t)0xe171, - (q15_t)0x7be, (q15_t)0xe17c, (q15_t)0x7b8, (q15_t)0xe187, (q15_t)0x7b2, (q15_t)0xe192, (q15_t)0x7ac, (q15_t)0xe19d, - (q15_t)0x7a6, (q15_t)0xe1a8, (q15_t)0x7a0, (q15_t)0xe1b3, (q15_t)0x79a, (q15_t)0xe1be, (q15_t)0x795, (q15_t)0xe1ca, - (q15_t)0x78f, (q15_t)0xe1d5, (q15_t)0x789, (q15_t)0xe1e0, (q15_t)0x783, (q15_t)0xe1eb, (q15_t)0x77d, (q15_t)0xe1f6, - (q15_t)0x777, (q15_t)0xe201, (q15_t)0x771, (q15_t)0xe20c, (q15_t)0x76b, (q15_t)0xe217, (q15_t)0x765, (q15_t)0xe222, - (q15_t)0x75f, (q15_t)0xe22d, (q15_t)0x75a, (q15_t)0xe239, (q15_t)0x754, (q15_t)0xe244, (q15_t)0x74e, (q15_t)0xe24f, - (q15_t)0x748, (q15_t)0xe25a, (q15_t)0x742, (q15_t)0xe265, (q15_t)0x73d, (q15_t)0xe270, (q15_t)0x737, (q15_t)0xe27b, - (q15_t)0x731, (q15_t)0xe287, (q15_t)0x72b, (q15_t)0xe292, (q15_t)0x725, (q15_t)0xe29d, (q15_t)0x720, (q15_t)0xe2a8, - (q15_t)0x71a, (q15_t)0xe2b3, (q15_t)0x714, (q15_t)0xe2be, (q15_t)0x70e, (q15_t)0xe2ca, (q15_t)0x709, (q15_t)0xe2d5, - (q15_t)0x703, (q15_t)0xe2e0, (q15_t)0x6fd, (q15_t)0xe2eb, (q15_t)0x6f7, (q15_t)0xe2f6, (q15_t)0x6f2, (q15_t)0xe301, - (q15_t)0x6ec, (q15_t)0xe30d, (q15_t)0x6e6, (q15_t)0xe318, (q15_t)0x6e1, (q15_t)0xe323, (q15_t)0x6db, (q15_t)0xe32e, - (q15_t)0x6d5, (q15_t)0xe33a, (q15_t)0x6d0, (q15_t)0xe345, (q15_t)0x6ca, (q15_t)0xe350, (q15_t)0x6c5, (q15_t)0xe35b, - (q15_t)0x6bf, (q15_t)0xe367, (q15_t)0x6b9, (q15_t)0xe372, (q15_t)0x6b4, (q15_t)0xe37d, (q15_t)0x6ae, (q15_t)0xe388, - (q15_t)0x6a8, (q15_t)0xe394, (q15_t)0x6a3, (q15_t)0xe39f, (q15_t)0x69d, (q15_t)0xe3aa, (q15_t)0x698, (q15_t)0xe3b5, - (q15_t)0x692, (q15_t)0xe3c1, (q15_t)0x68d, (q15_t)0xe3cc, (q15_t)0x687, (q15_t)0xe3d7, (q15_t)0x682, (q15_t)0xe3e2, - (q15_t)0x67c, (q15_t)0xe3ee, (q15_t)0x677, (q15_t)0xe3f9, (q15_t)0x671, (q15_t)0xe404, (q15_t)0x66c, (q15_t)0xe410, - (q15_t)0x666, (q15_t)0xe41b, (q15_t)0x661, (q15_t)0xe426, (q15_t)0x65b, (q15_t)0xe432, (q15_t)0x656, (q15_t)0xe43d, - (q15_t)0x650, (q15_t)0xe448, (q15_t)0x64b, (q15_t)0xe454, (q15_t)0x645, (q15_t)0xe45f, (q15_t)0x640, (q15_t)0xe46a, - (q15_t)0x63b, (q15_t)0xe476, (q15_t)0x635, (q15_t)0xe481, (q15_t)0x630, (q15_t)0xe48c, (q15_t)0x62a, (q15_t)0xe498, - (q15_t)0x625, (q15_t)0xe4a3, (q15_t)0x620, (q15_t)0xe4ae, (q15_t)0x61a, (q15_t)0xe4ba, (q15_t)0x615, (q15_t)0xe4c5, - (q15_t)0x610, (q15_t)0xe4d0, (q15_t)0x60a, (q15_t)0xe4dc, (q15_t)0x605, (q15_t)0xe4e7, (q15_t)0x600, (q15_t)0xe4f3, - (q15_t)0x5fa, (q15_t)0xe4fe, (q15_t)0x5f5, (q15_t)0xe509, (q15_t)0x5f0, (q15_t)0xe515, (q15_t)0x5ea, (q15_t)0xe520, - (q15_t)0x5e5, (q15_t)0xe52c, (q15_t)0x5e0, (q15_t)0xe537, (q15_t)0x5db, (q15_t)0xe542, (q15_t)0x5d5, (q15_t)0xe54e, - (q15_t)0x5d0, (q15_t)0xe559, (q15_t)0x5cb, (q15_t)0xe565, (q15_t)0x5c6, (q15_t)0xe570, (q15_t)0x5c1, (q15_t)0xe57c, - (q15_t)0x5bb, (q15_t)0xe587, (q15_t)0x5b6, (q15_t)0xe592, (q15_t)0x5b1, (q15_t)0xe59e, (q15_t)0x5ac, (q15_t)0xe5a9, - (q15_t)0x5a7, (q15_t)0xe5b5, (q15_t)0x5a1, (q15_t)0xe5c0, (q15_t)0x59c, (q15_t)0xe5cc, (q15_t)0x597, (q15_t)0xe5d7, - (q15_t)0x592, (q15_t)0xe5e3, (q15_t)0x58d, (q15_t)0xe5ee, (q15_t)0x588, (q15_t)0xe5fa, (q15_t)0x583, (q15_t)0xe605, - (q15_t)0x57e, (q15_t)0xe611, (q15_t)0x578, (q15_t)0xe61c, (q15_t)0x573, (q15_t)0xe628, (q15_t)0x56e, (q15_t)0xe633, - (q15_t)0x569, (q15_t)0xe63f, (q15_t)0x564, (q15_t)0xe64a, (q15_t)0x55f, (q15_t)0xe656, (q15_t)0x55a, (q15_t)0xe661, - (q15_t)0x555, (q15_t)0xe66d, (q15_t)0x550, (q15_t)0xe678, (q15_t)0x54b, (q15_t)0xe684, (q15_t)0x546, (q15_t)0xe68f, - (q15_t)0x541, (q15_t)0xe69b, (q15_t)0x53c, (q15_t)0xe6a6, (q15_t)0x537, (q15_t)0xe6b2, (q15_t)0x532, (q15_t)0xe6bd, - (q15_t)0x52d, (q15_t)0xe6c9, (q15_t)0x528, (q15_t)0xe6d4, (q15_t)0x523, (q15_t)0xe6e0, (q15_t)0x51e, (q15_t)0xe6ec, - (q15_t)0x51a, (q15_t)0xe6f7, (q15_t)0x515, (q15_t)0xe703, (q15_t)0x510, (q15_t)0xe70e, (q15_t)0x50b, (q15_t)0xe71a, - (q15_t)0x506, (q15_t)0xe725, (q15_t)0x501, (q15_t)0xe731, (q15_t)0x4fc, (q15_t)0xe73d, (q15_t)0x4f7, (q15_t)0xe748, - (q15_t)0x4f2, (q15_t)0xe754, (q15_t)0x4ee, (q15_t)0xe75f, (q15_t)0x4e9, (q15_t)0xe76b, (q15_t)0x4e4, (q15_t)0xe777, - (q15_t)0x4df, (q15_t)0xe782, (q15_t)0x4da, (q15_t)0xe78e, (q15_t)0x4d6, (q15_t)0xe799, (q15_t)0x4d1, (q15_t)0xe7a5, - (q15_t)0x4cc, (q15_t)0xe7b1, (q15_t)0x4c7, (q15_t)0xe7bc, (q15_t)0x4c2, (q15_t)0xe7c8, (q15_t)0x4be, (q15_t)0xe7d3, - (q15_t)0x4b9, (q15_t)0xe7df, (q15_t)0x4b4, (q15_t)0xe7eb, (q15_t)0x4b0, (q15_t)0xe7f6, (q15_t)0x4ab, (q15_t)0xe802, - (q15_t)0x4a6, (q15_t)0xe80e, (q15_t)0x4a1, (q15_t)0xe819, (q15_t)0x49d, (q15_t)0xe825, (q15_t)0x498, (q15_t)0xe831, - (q15_t)0x493, (q15_t)0xe83c, (q15_t)0x48f, (q15_t)0xe848, (q15_t)0x48a, (q15_t)0xe854, (q15_t)0x485, (q15_t)0xe85f, - (q15_t)0x481, (q15_t)0xe86b, (q15_t)0x47c, (q15_t)0xe877, (q15_t)0x478, (q15_t)0xe882, (q15_t)0x473, (q15_t)0xe88e, - (q15_t)0x46e, (q15_t)0xe89a, (q15_t)0x46a, (q15_t)0xe8a5, (q15_t)0x465, (q15_t)0xe8b1, (q15_t)0x461, (q15_t)0xe8bd, - (q15_t)0x45c, (q15_t)0xe8c9, (q15_t)0x457, (q15_t)0xe8d4, (q15_t)0x453, (q15_t)0xe8e0, (q15_t)0x44e, (q15_t)0xe8ec, - (q15_t)0x44a, (q15_t)0xe8f7, (q15_t)0x445, (q15_t)0xe903, (q15_t)0x441, (q15_t)0xe90f, (q15_t)0x43c, (q15_t)0xe91b, - (q15_t)0x438, (q15_t)0xe926, (q15_t)0x433, (q15_t)0xe932, (q15_t)0x42f, (q15_t)0xe93e, (q15_t)0x42a, (q15_t)0xe94a, - (q15_t)0x426, (q15_t)0xe955, (q15_t)0x422, (q15_t)0xe961, (q15_t)0x41d, (q15_t)0xe96d, (q15_t)0x419, (q15_t)0xe979, - (q15_t)0x414, (q15_t)0xe984, (q15_t)0x410, (q15_t)0xe990, (q15_t)0x40b, (q15_t)0xe99c, (q15_t)0x407, (q15_t)0xe9a8, - (q15_t)0x403, (q15_t)0xe9b4, (q15_t)0x3fe, (q15_t)0xe9bf, (q15_t)0x3fa, (q15_t)0xe9cb, (q15_t)0x3f6, (q15_t)0xe9d7, - (q15_t)0x3f1, (q15_t)0xe9e3, (q15_t)0x3ed, (q15_t)0xe9ee, (q15_t)0x3e9, (q15_t)0xe9fa, (q15_t)0x3e4, (q15_t)0xea06, - (q15_t)0x3e0, (q15_t)0xea12, (q15_t)0x3dc, (q15_t)0xea1e, (q15_t)0x3d7, (q15_t)0xea29, (q15_t)0x3d3, (q15_t)0xea35, - (q15_t)0x3cf, (q15_t)0xea41, (q15_t)0x3ca, (q15_t)0xea4d, (q15_t)0x3c6, (q15_t)0xea59, (q15_t)0x3c2, (q15_t)0xea65, - (q15_t)0x3be, (q15_t)0xea70, (q15_t)0x3ba, (q15_t)0xea7c, (q15_t)0x3b5, (q15_t)0xea88, (q15_t)0x3b1, (q15_t)0xea94, - (q15_t)0x3ad, (q15_t)0xeaa0, (q15_t)0x3a9, (q15_t)0xeaac, (q15_t)0x3a5, (q15_t)0xeab7, (q15_t)0x3a0, (q15_t)0xeac3, - (q15_t)0x39c, (q15_t)0xeacf, (q15_t)0x398, (q15_t)0xeadb, (q15_t)0x394, (q15_t)0xeae7, (q15_t)0x390, (q15_t)0xeaf3, - (q15_t)0x38c, (q15_t)0xeaff, (q15_t)0x387, (q15_t)0xeb0a, (q15_t)0x383, (q15_t)0xeb16, (q15_t)0x37f, (q15_t)0xeb22, - (q15_t)0x37b, (q15_t)0xeb2e, (q15_t)0x377, (q15_t)0xeb3a, (q15_t)0x373, (q15_t)0xeb46, (q15_t)0x36f, (q15_t)0xeb52, - (q15_t)0x36b, (q15_t)0xeb5e, (q15_t)0x367, (q15_t)0xeb6a, (q15_t)0x363, (q15_t)0xeb75, (q15_t)0x35f, (q15_t)0xeb81, - (q15_t)0x35b, (q15_t)0xeb8d, (q15_t)0x357, (q15_t)0xeb99, (q15_t)0x353, (q15_t)0xeba5, (q15_t)0x34f, (q15_t)0xebb1, - (q15_t)0x34b, (q15_t)0xebbd, (q15_t)0x347, (q15_t)0xebc9, (q15_t)0x343, (q15_t)0xebd5, (q15_t)0x33f, (q15_t)0xebe1, - (q15_t)0x33b, (q15_t)0xebed, (q15_t)0x337, (q15_t)0xebf9, (q15_t)0x333, (q15_t)0xec05, (q15_t)0x32f, (q15_t)0xec10, - (q15_t)0x32b, (q15_t)0xec1c, (q15_t)0x327, (q15_t)0xec28, (q15_t)0x323, (q15_t)0xec34, (q15_t)0x320, (q15_t)0xec40, - (q15_t)0x31c, (q15_t)0xec4c, (q15_t)0x318, (q15_t)0xec58, (q15_t)0x314, (q15_t)0xec64, (q15_t)0x310, (q15_t)0xec70, - (q15_t)0x30c, (q15_t)0xec7c, (q15_t)0x308, (q15_t)0xec88, (q15_t)0x305, (q15_t)0xec94, (q15_t)0x301, (q15_t)0xeca0, - (q15_t)0x2fd, (q15_t)0xecac, (q15_t)0x2f9, (q15_t)0xecb8, (q15_t)0x2f5, (q15_t)0xecc4, (q15_t)0x2f2, (q15_t)0xecd0, - (q15_t)0x2ee, (q15_t)0xecdc, (q15_t)0x2ea, (q15_t)0xece8, (q15_t)0x2e6, (q15_t)0xecf4, (q15_t)0x2e3, (q15_t)0xed00, - (q15_t)0x2df, (q15_t)0xed0c, (q15_t)0x2db, (q15_t)0xed18, (q15_t)0x2d8, (q15_t)0xed24, (q15_t)0x2d4, (q15_t)0xed30, - (q15_t)0x2d0, (q15_t)0xed3c, (q15_t)0x2cc, (q15_t)0xed48, (q15_t)0x2c9, (q15_t)0xed54, (q15_t)0x2c5, (q15_t)0xed60, - (q15_t)0x2c1, (q15_t)0xed6c, (q15_t)0x2be, (q15_t)0xed78, (q15_t)0x2ba, (q15_t)0xed84, (q15_t)0x2b7, (q15_t)0xed90, - (q15_t)0x2b3, (q15_t)0xed9c, (q15_t)0x2af, (q15_t)0xeda8, (q15_t)0x2ac, (q15_t)0xedb4, (q15_t)0x2a8, (q15_t)0xedc0, - (q15_t)0x2a5, (q15_t)0xedcc, (q15_t)0x2a1, (q15_t)0xedd8, (q15_t)0x29d, (q15_t)0xede4, (q15_t)0x29a, (q15_t)0xedf0, - (q15_t)0x296, (q15_t)0xedfc, (q15_t)0x293, (q15_t)0xee09, (q15_t)0x28f, (q15_t)0xee15, (q15_t)0x28c, (q15_t)0xee21, - (q15_t)0x288, (q15_t)0xee2d, (q15_t)0x285, (q15_t)0xee39, (q15_t)0x281, (q15_t)0xee45, (q15_t)0x27e, (q15_t)0xee51, - (q15_t)0x27a, (q15_t)0xee5d, (q15_t)0x277, (q15_t)0xee69, (q15_t)0x273, (q15_t)0xee75, (q15_t)0x270, (q15_t)0xee81, - (q15_t)0x26d, (q15_t)0xee8d, (q15_t)0x269, (q15_t)0xee99, (q15_t)0x266, (q15_t)0xeea6, (q15_t)0x262, (q15_t)0xeeb2, - (q15_t)0x25f, (q15_t)0xeebe, (q15_t)0x25c, (q15_t)0xeeca, (q15_t)0x258, (q15_t)0xeed6, (q15_t)0x255, (q15_t)0xeee2, - (q15_t)0x251, (q15_t)0xeeee, (q15_t)0x24e, (q15_t)0xeefa, (q15_t)0x24b, (q15_t)0xef06, (q15_t)0x247, (q15_t)0xef13, - (q15_t)0x244, (q15_t)0xef1f, (q15_t)0x241, (q15_t)0xef2b, (q15_t)0x23e, (q15_t)0xef37, (q15_t)0x23a, (q15_t)0xef43, - (q15_t)0x237, (q15_t)0xef4f, (q15_t)0x234, (q15_t)0xef5b, (q15_t)0x230, (q15_t)0xef67, (q15_t)0x22d, (q15_t)0xef74, - (q15_t)0x22a, (q15_t)0xef80, (q15_t)0x227, (q15_t)0xef8c, (q15_t)0x223, (q15_t)0xef98, (q15_t)0x220, (q15_t)0xefa4, - (q15_t)0x21d, (q15_t)0xefb0, (q15_t)0x21a, (q15_t)0xefbc, (q15_t)0x217, (q15_t)0xefc9, (q15_t)0x213, (q15_t)0xefd5, - (q15_t)0x210, (q15_t)0xefe1, (q15_t)0x20d, (q15_t)0xefed, (q15_t)0x20a, (q15_t)0xeff9, (q15_t)0x207, (q15_t)0xf005, - (q15_t)0x204, (q15_t)0xf012, (q15_t)0x201, (q15_t)0xf01e, (q15_t)0x1fd, (q15_t)0xf02a, (q15_t)0x1fa, (q15_t)0xf036, - (q15_t)0x1f7, (q15_t)0xf042, (q15_t)0x1f4, (q15_t)0xf04e, (q15_t)0x1f1, (q15_t)0xf05b, (q15_t)0x1ee, (q15_t)0xf067, - (q15_t)0x1eb, (q15_t)0xf073, (q15_t)0x1e8, (q15_t)0xf07f, (q15_t)0x1e5, (q15_t)0xf08b, (q15_t)0x1e2, (q15_t)0xf098, - (q15_t)0x1df, (q15_t)0xf0a4, (q15_t)0x1dc, (q15_t)0xf0b0, (q15_t)0x1d9, (q15_t)0xf0bc, (q15_t)0x1d6, (q15_t)0xf0c8, - (q15_t)0x1d3, (q15_t)0xf0d5, (q15_t)0x1d0, (q15_t)0xf0e1, (q15_t)0x1cd, (q15_t)0xf0ed, (q15_t)0x1ca, (q15_t)0xf0f9, - (q15_t)0x1c7, (q15_t)0xf105, (q15_t)0x1c4, (q15_t)0xf112, (q15_t)0x1c1, (q15_t)0xf11e, (q15_t)0x1be, (q15_t)0xf12a, - (q15_t)0x1bb, (q15_t)0xf136, (q15_t)0x1b8, (q15_t)0xf143, (q15_t)0x1b6, (q15_t)0xf14f, (q15_t)0x1b3, (q15_t)0xf15b, - (q15_t)0x1b0, (q15_t)0xf167, (q15_t)0x1ad, (q15_t)0xf174, (q15_t)0x1aa, (q15_t)0xf180, (q15_t)0x1a7, (q15_t)0xf18c, - (q15_t)0x1a4, (q15_t)0xf198, (q15_t)0x1a2, (q15_t)0xf1a4, (q15_t)0x19f, (q15_t)0xf1b1, (q15_t)0x19c, (q15_t)0xf1bd, - (q15_t)0x199, (q15_t)0xf1c9, (q15_t)0x196, (q15_t)0xf1d5, (q15_t)0x194, (q15_t)0xf1e2, (q15_t)0x191, (q15_t)0xf1ee, - (q15_t)0x18e, (q15_t)0xf1fa, (q15_t)0x18b, (q15_t)0xf207, (q15_t)0x189, (q15_t)0xf213, (q15_t)0x186, (q15_t)0xf21f, - (q15_t)0x183, (q15_t)0xf22b, (q15_t)0x180, (q15_t)0xf238, (q15_t)0x17e, (q15_t)0xf244, (q15_t)0x17b, (q15_t)0xf250, - (q15_t)0x178, (q15_t)0xf25c, (q15_t)0x176, (q15_t)0xf269, (q15_t)0x173, (q15_t)0xf275, (q15_t)0x170, (q15_t)0xf281, - (q15_t)0x16e, (q15_t)0xf28e, (q15_t)0x16b, (q15_t)0xf29a, (q15_t)0x168, (q15_t)0xf2a6, (q15_t)0x166, (q15_t)0xf2b2, - (q15_t)0x163, (q15_t)0xf2bf, (q15_t)0x161, (q15_t)0xf2cb, (q15_t)0x15e, (q15_t)0xf2d7, (q15_t)0x15b, (q15_t)0xf2e4, - (q15_t)0x159, (q15_t)0xf2f0, (q15_t)0x156, (q15_t)0xf2fc, (q15_t)0x154, (q15_t)0xf308, (q15_t)0x151, (q15_t)0xf315, - (q15_t)0x14f, (q15_t)0xf321, (q15_t)0x14c, (q15_t)0xf32d, (q15_t)0x14a, (q15_t)0xf33a, (q15_t)0x147, (q15_t)0xf346, - (q15_t)0x145, (q15_t)0xf352, (q15_t)0x142, (q15_t)0xf35f, (q15_t)0x140, (q15_t)0xf36b, (q15_t)0x13d, (q15_t)0xf377, - (q15_t)0x13b, (q15_t)0xf384, (q15_t)0x138, (q15_t)0xf390, (q15_t)0x136, (q15_t)0xf39c, (q15_t)0x134, (q15_t)0xf3a9, - (q15_t)0x131, (q15_t)0xf3b5, (q15_t)0x12f, (q15_t)0xf3c1, (q15_t)0x12c, (q15_t)0xf3ce, (q15_t)0x12a, (q15_t)0xf3da, - (q15_t)0x128, (q15_t)0xf3e6, (q15_t)0x125, (q15_t)0xf3f3, (q15_t)0x123, (q15_t)0xf3ff, (q15_t)0x120, (q15_t)0xf40b, - (q15_t)0x11e, (q15_t)0xf418, (q15_t)0x11c, (q15_t)0xf424, (q15_t)0x119, (q15_t)0xf430, (q15_t)0x117, (q15_t)0xf43d, - (q15_t)0x115, (q15_t)0xf449, (q15_t)0x113, (q15_t)0xf455, (q15_t)0x110, (q15_t)0xf462, (q15_t)0x10e, (q15_t)0xf46e, - (q15_t)0x10c, (q15_t)0xf47b, (q15_t)0x109, (q15_t)0xf487, (q15_t)0x107, (q15_t)0xf493, (q15_t)0x105, (q15_t)0xf4a0, - (q15_t)0x103, (q15_t)0xf4ac, (q15_t)0x100, (q15_t)0xf4b8, (q15_t)0xfe, (q15_t)0xf4c5, (q15_t)0xfc, (q15_t)0xf4d1, - (q15_t)0xfa, (q15_t)0xf4dd, (q15_t)0xf8, (q15_t)0xf4ea, (q15_t)0xf6, (q15_t)0xf4f6, (q15_t)0xf3, (q15_t)0xf503, - (q15_t)0xf1, (q15_t)0xf50f, (q15_t)0xef, (q15_t)0xf51b, (q15_t)0xed, (q15_t)0xf528, (q15_t)0xeb, (q15_t)0xf534, - (q15_t)0xe9, (q15_t)0xf540, (q15_t)0xe7, (q15_t)0xf54d, (q15_t)0xe4, (q15_t)0xf559, (q15_t)0xe2, (q15_t)0xf566, - (q15_t)0xe0, (q15_t)0xf572, (q15_t)0xde, (q15_t)0xf57e, (q15_t)0xdc, (q15_t)0xf58b, (q15_t)0xda, (q15_t)0xf597, - (q15_t)0xd8, (q15_t)0xf5a4, (q15_t)0xd6, (q15_t)0xf5b0, (q15_t)0xd4, (q15_t)0xf5bc, (q15_t)0xd2, (q15_t)0xf5c9, - (q15_t)0xd0, (q15_t)0xf5d5, (q15_t)0xce, (q15_t)0xf5e2, (q15_t)0xcc, (q15_t)0xf5ee, (q15_t)0xca, (q15_t)0xf5fa, - (q15_t)0xc8, (q15_t)0xf607, (q15_t)0xc6, (q15_t)0xf613, (q15_t)0xc4, (q15_t)0xf620, (q15_t)0xc2, (q15_t)0xf62c, - (q15_t)0xc0, (q15_t)0xf639, (q15_t)0xbe, (q15_t)0xf645, (q15_t)0xbd, (q15_t)0xf651, (q15_t)0xbb, (q15_t)0xf65e, - (q15_t)0xb9, (q15_t)0xf66a, (q15_t)0xb7, (q15_t)0xf677, (q15_t)0xb5, (q15_t)0xf683, (q15_t)0xb3, (q15_t)0xf690, - (q15_t)0xb1, (q15_t)0xf69c, (q15_t)0xaf, (q15_t)0xf6a8, (q15_t)0xae, (q15_t)0xf6b5, (q15_t)0xac, (q15_t)0xf6c1, - (q15_t)0xaa, (q15_t)0xf6ce, (q15_t)0xa8, (q15_t)0xf6da, (q15_t)0xa6, (q15_t)0xf6e7, (q15_t)0xa5, (q15_t)0xf6f3, - (q15_t)0xa3, (q15_t)0xf6ff, (q15_t)0xa1, (q15_t)0xf70c, (q15_t)0x9f, (q15_t)0xf718, (q15_t)0x9e, (q15_t)0xf725, - (q15_t)0x9c, (q15_t)0xf731, (q15_t)0x9a, (q15_t)0xf73e, (q15_t)0x98, (q15_t)0xf74a, (q15_t)0x97, (q15_t)0xf757, - (q15_t)0x95, (q15_t)0xf763, (q15_t)0x93, (q15_t)0xf76f, (q15_t)0x92, (q15_t)0xf77c, (q15_t)0x90, (q15_t)0xf788, - (q15_t)0x8e, (q15_t)0xf795, (q15_t)0x8d, (q15_t)0xf7a1, (q15_t)0x8b, (q15_t)0xf7ae, (q15_t)0x89, (q15_t)0xf7ba, - (q15_t)0x88, (q15_t)0xf7c7, (q15_t)0x86, (q15_t)0xf7d3, (q15_t)0x85, (q15_t)0xf7e0, (q15_t)0x83, (q15_t)0xf7ec, - (q15_t)0x81, (q15_t)0xf7f9, (q15_t)0x80, (q15_t)0xf805, (q15_t)0x7e, (q15_t)0xf811, (q15_t)0x7d, (q15_t)0xf81e, - (q15_t)0x7b, (q15_t)0xf82a, (q15_t)0x7a, (q15_t)0xf837, (q15_t)0x78, (q15_t)0xf843, (q15_t)0x77, (q15_t)0xf850, - (q15_t)0x75, (q15_t)0xf85c, (q15_t)0x74, (q15_t)0xf869, (q15_t)0x72, (q15_t)0xf875, (q15_t)0x71, (q15_t)0xf882, - (q15_t)0x6f, (q15_t)0xf88e, (q15_t)0x6e, (q15_t)0xf89b, (q15_t)0x6c, (q15_t)0xf8a7, (q15_t)0x6b, (q15_t)0xf8b4, - (q15_t)0x69, (q15_t)0xf8c0, (q15_t)0x68, (q15_t)0xf8cd, (q15_t)0x67, (q15_t)0xf8d9, (q15_t)0x65, (q15_t)0xf8e6, - (q15_t)0x64, (q15_t)0xf8f2, (q15_t)0x62, (q15_t)0xf8ff, (q15_t)0x61, (q15_t)0xf90b, (q15_t)0x60, (q15_t)0xf918, - (q15_t)0x5e, (q15_t)0xf924, (q15_t)0x5d, (q15_t)0xf931, (q15_t)0x5c, (q15_t)0xf93d, (q15_t)0x5a, (q15_t)0xf94a, - (q15_t)0x59, (q15_t)0xf956, (q15_t)0x58, (q15_t)0xf963, (q15_t)0x56, (q15_t)0xf96f, (q15_t)0x55, (q15_t)0xf97c, - (q15_t)0x54, (q15_t)0xf988, (q15_t)0x53, (q15_t)0xf995, (q15_t)0x51, (q15_t)0xf9a1, (q15_t)0x50, (q15_t)0xf9ae, - (q15_t)0x4f, (q15_t)0xf9ba, (q15_t)0x4e, (q15_t)0xf9c7, (q15_t)0x4c, (q15_t)0xf9d3, (q15_t)0x4b, (q15_t)0xf9e0, - (q15_t)0x4a, (q15_t)0xf9ec, (q15_t)0x49, (q15_t)0xf9f9, (q15_t)0x48, (q15_t)0xfa05, (q15_t)0x47, (q15_t)0xfa12, - (q15_t)0x45, (q15_t)0xfa1e, (q15_t)0x44, (q15_t)0xfa2b, (q15_t)0x43, (q15_t)0xfa37, (q15_t)0x42, (q15_t)0xfa44, - (q15_t)0x41, (q15_t)0xfa50, (q15_t)0x40, (q15_t)0xfa5d, (q15_t)0x3f, (q15_t)0xfa69, (q15_t)0x3d, (q15_t)0xfa76, - (q15_t)0x3c, (q15_t)0xfa82, (q15_t)0x3b, (q15_t)0xfa8f, (q15_t)0x3a, (q15_t)0xfa9b, (q15_t)0x39, (q15_t)0xfaa8, - (q15_t)0x38, (q15_t)0xfab4, (q15_t)0x37, (q15_t)0xfac1, (q15_t)0x36, (q15_t)0xfacd, (q15_t)0x35, (q15_t)0xfada, - (q15_t)0x34, (q15_t)0xfae6, (q15_t)0x33, (q15_t)0xfaf3, (q15_t)0x32, (q15_t)0xfb00, (q15_t)0x31, (q15_t)0xfb0c, - (q15_t)0x30, (q15_t)0xfb19, (q15_t)0x2f, (q15_t)0xfb25, (q15_t)0x2e, (q15_t)0xfb32, (q15_t)0x2d, (q15_t)0xfb3e, - (q15_t)0x2c, (q15_t)0xfb4b, (q15_t)0x2b, (q15_t)0xfb57, (q15_t)0x2b, (q15_t)0xfb64, (q15_t)0x2a, (q15_t)0xfb70, - (q15_t)0x29, (q15_t)0xfb7d, (q15_t)0x28, (q15_t)0xfb89, (q15_t)0x27, (q15_t)0xfb96, (q15_t)0x26, (q15_t)0xfba2, - (q15_t)0x25, (q15_t)0xfbaf, (q15_t)0x24, (q15_t)0xfbbc, (q15_t)0x24, (q15_t)0xfbc8, (q15_t)0x23, (q15_t)0xfbd5, - (q15_t)0x22, (q15_t)0xfbe1, (q15_t)0x21, (q15_t)0xfbee, (q15_t)0x20, (q15_t)0xfbfa, (q15_t)0x20, (q15_t)0xfc07, - (q15_t)0x1f, (q15_t)0xfc13, (q15_t)0x1e, (q15_t)0xfc20, (q15_t)0x1d, (q15_t)0xfc2c, (q15_t)0x1d, (q15_t)0xfc39, - (q15_t)0x1c, (q15_t)0xfc45, (q15_t)0x1b, (q15_t)0xfc52, (q15_t)0x1a, (q15_t)0xfc5f, (q15_t)0x1a, (q15_t)0xfc6b, - (q15_t)0x19, (q15_t)0xfc78, (q15_t)0x18, (q15_t)0xfc84, (q15_t)0x18, (q15_t)0xfc91, (q15_t)0x17, (q15_t)0xfc9d, - (q15_t)0x16, (q15_t)0xfcaa, (q15_t)0x16, (q15_t)0xfcb6, (q15_t)0x15, (q15_t)0xfcc3, (q15_t)0x14, (q15_t)0xfcd0, - (q15_t)0x14, (q15_t)0xfcdc, (q15_t)0x13, (q15_t)0xfce9, (q15_t)0x13, (q15_t)0xfcf5, (q15_t)0x12, (q15_t)0xfd02, - (q15_t)0x11, (q15_t)0xfd0e, (q15_t)0x11, (q15_t)0xfd1b, (q15_t)0x10, (q15_t)0xfd27, (q15_t)0x10, (q15_t)0xfd34, - (q15_t)0xf, (q15_t)0xfd40, (q15_t)0xf, (q15_t)0xfd4d, (q15_t)0xe, (q15_t)0xfd5a, (q15_t)0xe, (q15_t)0xfd66, - (q15_t)0xd, (q15_t)0xfd73, (q15_t)0xd, (q15_t)0xfd7f, (q15_t)0xc, (q15_t)0xfd8c, (q15_t)0xc, (q15_t)0xfd98, - (q15_t)0xb, (q15_t)0xfda5, (q15_t)0xb, (q15_t)0xfdb2, (q15_t)0xa, (q15_t)0xfdbe, (q15_t)0xa, (q15_t)0xfdcb, - (q15_t)0x9, (q15_t)0xfdd7, (q15_t)0x9, (q15_t)0xfde4, (q15_t)0x9, (q15_t)0xfdf0, (q15_t)0x8, (q15_t)0xfdfd, - (q15_t)0x8, (q15_t)0xfe09, (q15_t)0x7, (q15_t)0xfe16, (q15_t)0x7, (q15_t)0xfe23, (q15_t)0x7, (q15_t)0xfe2f, - (q15_t)0x6, (q15_t)0xfe3c, (q15_t)0x6, (q15_t)0xfe48, (q15_t)0x6, (q15_t)0xfe55, (q15_t)0x5, (q15_t)0xfe61, - (q15_t)0x5, (q15_t)0xfe6e, (q15_t)0x5, (q15_t)0xfe7a, (q15_t)0x4, (q15_t)0xfe87, (q15_t)0x4, (q15_t)0xfe94, - (q15_t)0x4, (q15_t)0xfea0, (q15_t)0x4, (q15_t)0xfead, (q15_t)0x3, (q15_t)0xfeb9, (q15_t)0x3, (q15_t)0xfec6, - (q15_t)0x3, (q15_t)0xfed2, (q15_t)0x3, (q15_t)0xfedf, (q15_t)0x2, (q15_t)0xfeec, (q15_t)0x2, (q15_t)0xfef8, - (q15_t)0x2, (q15_t)0xff05, (q15_t)0x2, (q15_t)0xff11, (q15_t)0x2, (q15_t)0xff1e, (q15_t)0x1, (q15_t)0xff2a, - (q15_t)0x1, (q15_t)0xff37, (q15_t)0x1, (q15_t)0xff44, (q15_t)0x1, (q15_t)0xff50, (q15_t)0x1, (q15_t)0xff5d, - (q15_t)0x1, (q15_t)0xff69, (q15_t)0x1, (q15_t)0xff76, (q15_t)0x0, (q15_t)0xff82, (q15_t)0x0, (q15_t)0xff8f, - (q15_t)0x0, (q15_t)0xff9b, (q15_t)0x0, (q15_t)0xffa8, (q15_t)0x0, (q15_t)0xffb5, (q15_t)0x0, (q15_t)0xffc1, - (q15_t)0x0, (q15_t)0xffce, (q15_t)0x0, (q15_t)0xffda, (q15_t)0x0, (q15_t)0xffe7, (q15_t)0x0, (q15_t)0xfff3, - (q15_t)0x0, (q15_t)0x0, (q15_t)0x0, (q15_t)0xd, (q15_t)0x0, (q15_t)0x19, (q15_t)0x0, (q15_t)0x26, - (q15_t)0x0, (q15_t)0x32, (q15_t)0x0, (q15_t)0x3f, (q15_t)0x0, (q15_t)0x4b, (q15_t)0x0, (q15_t)0x58, - (q15_t)0x0, (q15_t)0x65, (q15_t)0x0, (q15_t)0x71, (q15_t)0x0, (q15_t)0x7e, (q15_t)0x1, (q15_t)0x8a, - (q15_t)0x1, (q15_t)0x97, (q15_t)0x1, (q15_t)0xa3, (q15_t)0x1, (q15_t)0xb0, (q15_t)0x1, (q15_t)0xbc, - (q15_t)0x1, (q15_t)0xc9, (q15_t)0x1, (q15_t)0xd6, (q15_t)0x2, (q15_t)0xe2, (q15_t)0x2, (q15_t)0xef, - (q15_t)0x2, (q15_t)0xfb, (q15_t)0x2, (q15_t)0x108, (q15_t)0x2, (q15_t)0x114, (q15_t)0x3, (q15_t)0x121, - (q15_t)0x3, (q15_t)0x12e, (q15_t)0x3, (q15_t)0x13a, (q15_t)0x3, (q15_t)0x147, (q15_t)0x4, (q15_t)0x153, - (q15_t)0x4, (q15_t)0x160, (q15_t)0x4, (q15_t)0x16c, (q15_t)0x4, (q15_t)0x179, (q15_t)0x5, (q15_t)0x186, - (q15_t)0x5, (q15_t)0x192, (q15_t)0x5, (q15_t)0x19f, (q15_t)0x6, (q15_t)0x1ab, (q15_t)0x6, (q15_t)0x1b8, - (q15_t)0x6, (q15_t)0x1c4, (q15_t)0x7, (q15_t)0x1d1, (q15_t)0x7, (q15_t)0x1dd, (q15_t)0x7, (q15_t)0x1ea, - (q15_t)0x8, (q15_t)0x1f7, (q15_t)0x8, (q15_t)0x203, (q15_t)0x9, (q15_t)0x210, (q15_t)0x9, (q15_t)0x21c, - (q15_t)0x9, (q15_t)0x229, (q15_t)0xa, (q15_t)0x235, (q15_t)0xa, (q15_t)0x242, (q15_t)0xb, (q15_t)0x24e, - (q15_t)0xb, (q15_t)0x25b, (q15_t)0xc, (q15_t)0x268, (q15_t)0xc, (q15_t)0x274, (q15_t)0xd, (q15_t)0x281, - (q15_t)0xd, (q15_t)0x28d, (q15_t)0xe, (q15_t)0x29a, (q15_t)0xe, (q15_t)0x2a6, (q15_t)0xf, (q15_t)0x2b3, - (q15_t)0xf, (q15_t)0x2c0, (q15_t)0x10, (q15_t)0x2cc, (q15_t)0x10, (q15_t)0x2d9, (q15_t)0x11, (q15_t)0x2e5, - (q15_t)0x11, (q15_t)0x2f2, (q15_t)0x12, (q15_t)0x2fe, (q15_t)0x13, (q15_t)0x30b, (q15_t)0x13, (q15_t)0x317, - (q15_t)0x14, (q15_t)0x324, (q15_t)0x14, (q15_t)0x330, (q15_t)0x15, (q15_t)0x33d, (q15_t)0x16, (q15_t)0x34a, - (q15_t)0x16, (q15_t)0x356, (q15_t)0x17, (q15_t)0x363, (q15_t)0x18, (q15_t)0x36f, (q15_t)0x18, (q15_t)0x37c, - (q15_t)0x19, (q15_t)0x388, (q15_t)0x1a, (q15_t)0x395, (q15_t)0x1a, (q15_t)0x3a1, (q15_t)0x1b, (q15_t)0x3ae, - (q15_t)0x1c, (q15_t)0x3bb, (q15_t)0x1d, (q15_t)0x3c7, (q15_t)0x1d, (q15_t)0x3d4, (q15_t)0x1e, (q15_t)0x3e0, - (q15_t)0x1f, (q15_t)0x3ed, (q15_t)0x20, (q15_t)0x3f9, (q15_t)0x20, (q15_t)0x406, (q15_t)0x21, (q15_t)0x412, - (q15_t)0x22, (q15_t)0x41f, (q15_t)0x23, (q15_t)0x42b, (q15_t)0x24, (q15_t)0x438, (q15_t)0x24, (q15_t)0x444, - (q15_t)0x25, (q15_t)0x451, (q15_t)0x26, (q15_t)0x45e, (q15_t)0x27, (q15_t)0x46a, (q15_t)0x28, (q15_t)0x477, - (q15_t)0x29, (q15_t)0x483, (q15_t)0x2a, (q15_t)0x490, (q15_t)0x2b, (q15_t)0x49c, (q15_t)0x2b, (q15_t)0x4a9, - (q15_t)0x2c, (q15_t)0x4b5, (q15_t)0x2d, (q15_t)0x4c2, (q15_t)0x2e, (q15_t)0x4ce, (q15_t)0x2f, (q15_t)0x4db, - (q15_t)0x30, (q15_t)0x4e7, (q15_t)0x31, (q15_t)0x4f4, (q15_t)0x32, (q15_t)0x500, (q15_t)0x33, (q15_t)0x50d, - (q15_t)0x34, (q15_t)0x51a, (q15_t)0x35, (q15_t)0x526, (q15_t)0x36, (q15_t)0x533, (q15_t)0x37, (q15_t)0x53f, - (q15_t)0x38, (q15_t)0x54c, (q15_t)0x39, (q15_t)0x558, (q15_t)0x3a, (q15_t)0x565, (q15_t)0x3b, (q15_t)0x571, - (q15_t)0x3c, (q15_t)0x57e, (q15_t)0x3d, (q15_t)0x58a, (q15_t)0x3f, (q15_t)0x597, (q15_t)0x40, (q15_t)0x5a3, - (q15_t)0x41, (q15_t)0x5b0, (q15_t)0x42, (q15_t)0x5bc, (q15_t)0x43, (q15_t)0x5c9, (q15_t)0x44, (q15_t)0x5d5, - (q15_t)0x45, (q15_t)0x5e2, (q15_t)0x47, (q15_t)0x5ee, (q15_t)0x48, (q15_t)0x5fb, (q15_t)0x49, (q15_t)0x607, - (q15_t)0x4a, (q15_t)0x614, (q15_t)0x4b, (q15_t)0x620, (q15_t)0x4c, (q15_t)0x62d, (q15_t)0x4e, (q15_t)0x639, - (q15_t)0x4f, (q15_t)0x646, (q15_t)0x50, (q15_t)0x652, (q15_t)0x51, (q15_t)0x65f, (q15_t)0x53, (q15_t)0x66b, - (q15_t)0x54, (q15_t)0x678, (q15_t)0x55, (q15_t)0x684, (q15_t)0x56, (q15_t)0x691, (q15_t)0x58, (q15_t)0x69d, - (q15_t)0x59, (q15_t)0x6aa, (q15_t)0x5a, (q15_t)0x6b6, (q15_t)0x5c, (q15_t)0x6c3, (q15_t)0x5d, (q15_t)0x6cf, - (q15_t)0x5e, (q15_t)0x6dc, (q15_t)0x60, (q15_t)0x6e8, (q15_t)0x61, (q15_t)0x6f5, (q15_t)0x62, (q15_t)0x701, - (q15_t)0x64, (q15_t)0x70e, (q15_t)0x65, (q15_t)0x71a, (q15_t)0x67, (q15_t)0x727, (q15_t)0x68, (q15_t)0x733, - (q15_t)0x69, (q15_t)0x740, (q15_t)0x6b, (q15_t)0x74c, (q15_t)0x6c, (q15_t)0x759, (q15_t)0x6e, (q15_t)0x765, - (q15_t)0x6f, (q15_t)0x772, (q15_t)0x71, (q15_t)0x77e, (q15_t)0x72, (q15_t)0x78b, (q15_t)0x74, (q15_t)0x797, - (q15_t)0x75, (q15_t)0x7a4, (q15_t)0x77, (q15_t)0x7b0, (q15_t)0x78, (q15_t)0x7bd, (q15_t)0x7a, (q15_t)0x7c9, - (q15_t)0x7b, (q15_t)0x7d6, (q15_t)0x7d, (q15_t)0x7e2, (q15_t)0x7e, (q15_t)0x7ef, (q15_t)0x80, (q15_t)0x7fb, - (q15_t)0x81, (q15_t)0x807, (q15_t)0x83, (q15_t)0x814, (q15_t)0x85, (q15_t)0x820, (q15_t)0x86, (q15_t)0x82d, - (q15_t)0x88, (q15_t)0x839, (q15_t)0x89, (q15_t)0x846, (q15_t)0x8b, (q15_t)0x852, (q15_t)0x8d, (q15_t)0x85f, - (q15_t)0x8e, (q15_t)0x86b, (q15_t)0x90, (q15_t)0x878, (q15_t)0x92, (q15_t)0x884, (q15_t)0x93, (q15_t)0x891, - (q15_t)0x95, (q15_t)0x89d, (q15_t)0x97, (q15_t)0x8a9, (q15_t)0x98, (q15_t)0x8b6, (q15_t)0x9a, (q15_t)0x8c2, - (q15_t)0x9c, (q15_t)0x8cf, (q15_t)0x9e, (q15_t)0x8db, (q15_t)0x9f, (q15_t)0x8e8, (q15_t)0xa1, (q15_t)0x8f4, - (q15_t)0xa3, (q15_t)0x901, (q15_t)0xa5, (q15_t)0x90d, (q15_t)0xa6, (q15_t)0x919, (q15_t)0xa8, (q15_t)0x926, - (q15_t)0xaa, (q15_t)0x932, (q15_t)0xac, (q15_t)0x93f, (q15_t)0xae, (q15_t)0x94b, (q15_t)0xaf, (q15_t)0x958, - (q15_t)0xb1, (q15_t)0x964, (q15_t)0xb3, (q15_t)0x970, (q15_t)0xb5, (q15_t)0x97d, (q15_t)0xb7, (q15_t)0x989, - (q15_t)0xb9, (q15_t)0x996, (q15_t)0xbb, (q15_t)0x9a2, (q15_t)0xbd, (q15_t)0x9af, (q15_t)0xbe, (q15_t)0x9bb, - (q15_t)0xc0, (q15_t)0x9c7, (q15_t)0xc2, (q15_t)0x9d4, (q15_t)0xc4, (q15_t)0x9e0, (q15_t)0xc6, (q15_t)0x9ed, - (q15_t)0xc8, (q15_t)0x9f9, (q15_t)0xca, (q15_t)0xa06, (q15_t)0xcc, (q15_t)0xa12, (q15_t)0xce, (q15_t)0xa1e, - (q15_t)0xd0, (q15_t)0xa2b, (q15_t)0xd2, (q15_t)0xa37, (q15_t)0xd4, (q15_t)0xa44, (q15_t)0xd6, (q15_t)0xa50, - (q15_t)0xd8, (q15_t)0xa5c, (q15_t)0xda, (q15_t)0xa69, (q15_t)0xdc, (q15_t)0xa75, (q15_t)0xde, (q15_t)0xa82, - (q15_t)0xe0, (q15_t)0xa8e, (q15_t)0xe2, (q15_t)0xa9a, (q15_t)0xe4, (q15_t)0xaa7, (q15_t)0xe7, (q15_t)0xab3, - (q15_t)0xe9, (q15_t)0xac0, (q15_t)0xeb, (q15_t)0xacc, (q15_t)0xed, (q15_t)0xad8, (q15_t)0xef, (q15_t)0xae5, - (q15_t)0xf1, (q15_t)0xaf1, (q15_t)0xf3, (q15_t)0xafd, (q15_t)0xf6, (q15_t)0xb0a, (q15_t)0xf8, (q15_t)0xb16, - (q15_t)0xfa, (q15_t)0xb23, (q15_t)0xfc, (q15_t)0xb2f, (q15_t)0xfe, (q15_t)0xb3b, (q15_t)0x100, (q15_t)0xb48, - (q15_t)0x103, (q15_t)0xb54, (q15_t)0x105, (q15_t)0xb60, (q15_t)0x107, (q15_t)0xb6d, (q15_t)0x109, (q15_t)0xb79, - (q15_t)0x10c, (q15_t)0xb85, (q15_t)0x10e, (q15_t)0xb92, (q15_t)0x110, (q15_t)0xb9e, (q15_t)0x113, (q15_t)0xbab, - (q15_t)0x115, (q15_t)0xbb7, (q15_t)0x117, (q15_t)0xbc3, (q15_t)0x119, (q15_t)0xbd0, (q15_t)0x11c, (q15_t)0xbdc, - (q15_t)0x11e, (q15_t)0xbe8, (q15_t)0x120, (q15_t)0xbf5, (q15_t)0x123, (q15_t)0xc01, (q15_t)0x125, (q15_t)0xc0d, - (q15_t)0x128, (q15_t)0xc1a, (q15_t)0x12a, (q15_t)0xc26, (q15_t)0x12c, (q15_t)0xc32, (q15_t)0x12f, (q15_t)0xc3f, - (q15_t)0x131, (q15_t)0xc4b, (q15_t)0x134, (q15_t)0xc57, (q15_t)0x136, (q15_t)0xc64, (q15_t)0x138, (q15_t)0xc70, - (q15_t)0x13b, (q15_t)0xc7c, (q15_t)0x13d, (q15_t)0xc89, (q15_t)0x140, (q15_t)0xc95, (q15_t)0x142, (q15_t)0xca1, - (q15_t)0x145, (q15_t)0xcae, (q15_t)0x147, (q15_t)0xcba, (q15_t)0x14a, (q15_t)0xcc6, (q15_t)0x14c, (q15_t)0xcd3, - (q15_t)0x14f, (q15_t)0xcdf, (q15_t)0x151, (q15_t)0xceb, (q15_t)0x154, (q15_t)0xcf8, (q15_t)0x156, (q15_t)0xd04, - (q15_t)0x159, (q15_t)0xd10, (q15_t)0x15b, (q15_t)0xd1c, (q15_t)0x15e, (q15_t)0xd29, (q15_t)0x161, (q15_t)0xd35, - (q15_t)0x163, (q15_t)0xd41, (q15_t)0x166, (q15_t)0xd4e, (q15_t)0x168, (q15_t)0xd5a, (q15_t)0x16b, (q15_t)0xd66, - (q15_t)0x16e, (q15_t)0xd72, (q15_t)0x170, (q15_t)0xd7f, (q15_t)0x173, (q15_t)0xd8b, (q15_t)0x176, (q15_t)0xd97, - (q15_t)0x178, (q15_t)0xda4, (q15_t)0x17b, (q15_t)0xdb0, (q15_t)0x17e, (q15_t)0xdbc, (q15_t)0x180, (q15_t)0xdc8, - (q15_t)0x183, (q15_t)0xdd5, (q15_t)0x186, (q15_t)0xde1, (q15_t)0x189, (q15_t)0xded, (q15_t)0x18b, (q15_t)0xdf9, - (q15_t)0x18e, (q15_t)0xe06, (q15_t)0x191, (q15_t)0xe12, (q15_t)0x194, (q15_t)0xe1e, (q15_t)0x196, (q15_t)0xe2b, - (q15_t)0x199, (q15_t)0xe37, (q15_t)0x19c, (q15_t)0xe43, (q15_t)0x19f, (q15_t)0xe4f, (q15_t)0x1a2, (q15_t)0xe5c, - (q15_t)0x1a4, (q15_t)0xe68, (q15_t)0x1a7, (q15_t)0xe74, (q15_t)0x1aa, (q15_t)0xe80, (q15_t)0x1ad, (q15_t)0xe8c, - (q15_t)0x1b0, (q15_t)0xe99, (q15_t)0x1b3, (q15_t)0xea5, (q15_t)0x1b6, (q15_t)0xeb1, (q15_t)0x1b8, (q15_t)0xebd, - (q15_t)0x1bb, (q15_t)0xeca, (q15_t)0x1be, (q15_t)0xed6, (q15_t)0x1c1, (q15_t)0xee2, (q15_t)0x1c4, (q15_t)0xeee, - (q15_t)0x1c7, (q15_t)0xefb, (q15_t)0x1ca, (q15_t)0xf07, (q15_t)0x1cd, (q15_t)0xf13, (q15_t)0x1d0, (q15_t)0xf1f, - (q15_t)0x1d3, (q15_t)0xf2b, (q15_t)0x1d6, (q15_t)0xf38, (q15_t)0x1d9, (q15_t)0xf44, (q15_t)0x1dc, (q15_t)0xf50, - (q15_t)0x1df, (q15_t)0xf5c, (q15_t)0x1e2, (q15_t)0xf68, (q15_t)0x1e5, (q15_t)0xf75, (q15_t)0x1e8, (q15_t)0xf81, - (q15_t)0x1eb, (q15_t)0xf8d, (q15_t)0x1ee, (q15_t)0xf99, (q15_t)0x1f1, (q15_t)0xfa5, (q15_t)0x1f4, (q15_t)0xfb2, - (q15_t)0x1f7, (q15_t)0xfbe, (q15_t)0x1fa, (q15_t)0xfca, (q15_t)0x1fd, (q15_t)0xfd6, (q15_t)0x201, (q15_t)0xfe2, - (q15_t)0x204, (q15_t)0xfee, (q15_t)0x207, (q15_t)0xffb, (q15_t)0x20a, (q15_t)0x1007, (q15_t)0x20d, (q15_t)0x1013, - (q15_t)0x210, (q15_t)0x101f, (q15_t)0x213, (q15_t)0x102b, (q15_t)0x217, (q15_t)0x1037, (q15_t)0x21a, (q15_t)0x1044, - (q15_t)0x21d, (q15_t)0x1050, (q15_t)0x220, (q15_t)0x105c, (q15_t)0x223, (q15_t)0x1068, (q15_t)0x227, (q15_t)0x1074, - (q15_t)0x22a, (q15_t)0x1080, (q15_t)0x22d, (q15_t)0x108c, (q15_t)0x230, (q15_t)0x1099, (q15_t)0x234, (q15_t)0x10a5, - (q15_t)0x237, (q15_t)0x10b1, (q15_t)0x23a, (q15_t)0x10bd, (q15_t)0x23e, (q15_t)0x10c9, (q15_t)0x241, (q15_t)0x10d5, - (q15_t)0x244, (q15_t)0x10e1, (q15_t)0x247, (q15_t)0x10ed, (q15_t)0x24b, (q15_t)0x10fa, (q15_t)0x24e, (q15_t)0x1106, - (q15_t)0x251, (q15_t)0x1112, (q15_t)0x255, (q15_t)0x111e, (q15_t)0x258, (q15_t)0x112a, (q15_t)0x25c, (q15_t)0x1136, - (q15_t)0x25f, (q15_t)0x1142, (q15_t)0x262, (q15_t)0x114e, (q15_t)0x266, (q15_t)0x115a, (q15_t)0x269, (q15_t)0x1167, - (q15_t)0x26d, (q15_t)0x1173, (q15_t)0x270, (q15_t)0x117f, (q15_t)0x273, (q15_t)0x118b, (q15_t)0x277, (q15_t)0x1197, - (q15_t)0x27a, (q15_t)0x11a3, (q15_t)0x27e, (q15_t)0x11af, (q15_t)0x281, (q15_t)0x11bb, (q15_t)0x285, (q15_t)0x11c7, - (q15_t)0x288, (q15_t)0x11d3, (q15_t)0x28c, (q15_t)0x11df, (q15_t)0x28f, (q15_t)0x11eb, (q15_t)0x293, (q15_t)0x11f7, - (q15_t)0x296, (q15_t)0x1204, (q15_t)0x29a, (q15_t)0x1210, (q15_t)0x29d, (q15_t)0x121c, (q15_t)0x2a1, (q15_t)0x1228, - (q15_t)0x2a5, (q15_t)0x1234, (q15_t)0x2a8, (q15_t)0x1240, (q15_t)0x2ac, (q15_t)0x124c, (q15_t)0x2af, (q15_t)0x1258, - (q15_t)0x2b3, (q15_t)0x1264, (q15_t)0x2b7, (q15_t)0x1270, (q15_t)0x2ba, (q15_t)0x127c, (q15_t)0x2be, (q15_t)0x1288, - (q15_t)0x2c1, (q15_t)0x1294, (q15_t)0x2c5, (q15_t)0x12a0, (q15_t)0x2c9, (q15_t)0x12ac, (q15_t)0x2cc, (q15_t)0x12b8, - (q15_t)0x2d0, (q15_t)0x12c4, (q15_t)0x2d4, (q15_t)0x12d0, (q15_t)0x2d8, (q15_t)0x12dc, (q15_t)0x2db, (q15_t)0x12e8, - (q15_t)0x2df, (q15_t)0x12f4, (q15_t)0x2e3, (q15_t)0x1300, (q15_t)0x2e6, (q15_t)0x130c, (q15_t)0x2ea, (q15_t)0x1318, - (q15_t)0x2ee, (q15_t)0x1324, (q15_t)0x2f2, (q15_t)0x1330, (q15_t)0x2f5, (q15_t)0x133c, (q15_t)0x2f9, (q15_t)0x1348, - (q15_t)0x2fd, (q15_t)0x1354, (q15_t)0x301, (q15_t)0x1360, (q15_t)0x305, (q15_t)0x136c, (q15_t)0x308, (q15_t)0x1378, - (q15_t)0x30c, (q15_t)0x1384, (q15_t)0x310, (q15_t)0x1390, (q15_t)0x314, (q15_t)0x139c, (q15_t)0x318, (q15_t)0x13a8, - (q15_t)0x31c, (q15_t)0x13b4, (q15_t)0x320, (q15_t)0x13c0, (q15_t)0x323, (q15_t)0x13cc, (q15_t)0x327, (q15_t)0x13d8, - (q15_t)0x32b, (q15_t)0x13e4, (q15_t)0x32f, (q15_t)0x13f0, (q15_t)0x333, (q15_t)0x13fb, (q15_t)0x337, (q15_t)0x1407, - (q15_t)0x33b, (q15_t)0x1413, (q15_t)0x33f, (q15_t)0x141f, (q15_t)0x343, (q15_t)0x142b, (q15_t)0x347, (q15_t)0x1437, - (q15_t)0x34b, (q15_t)0x1443, (q15_t)0x34f, (q15_t)0x144f, (q15_t)0x353, (q15_t)0x145b, (q15_t)0x357, (q15_t)0x1467, - (q15_t)0x35b, (q15_t)0x1473, (q15_t)0x35f, (q15_t)0x147f, (q15_t)0x363, (q15_t)0x148b, (q15_t)0x367, (q15_t)0x1496, - (q15_t)0x36b, (q15_t)0x14a2, (q15_t)0x36f, (q15_t)0x14ae, (q15_t)0x373, (q15_t)0x14ba, (q15_t)0x377, (q15_t)0x14c6, - (q15_t)0x37b, (q15_t)0x14d2, (q15_t)0x37f, (q15_t)0x14de, (q15_t)0x383, (q15_t)0x14ea, (q15_t)0x387, (q15_t)0x14f6, - (q15_t)0x38c, (q15_t)0x1501, (q15_t)0x390, (q15_t)0x150d, (q15_t)0x394, (q15_t)0x1519, (q15_t)0x398, (q15_t)0x1525, - (q15_t)0x39c, (q15_t)0x1531, (q15_t)0x3a0, (q15_t)0x153d, (q15_t)0x3a5, (q15_t)0x1549, (q15_t)0x3a9, (q15_t)0x1554, - (q15_t)0x3ad, (q15_t)0x1560, (q15_t)0x3b1, (q15_t)0x156c, (q15_t)0x3b5, (q15_t)0x1578, (q15_t)0x3ba, (q15_t)0x1584, - (q15_t)0x3be, (q15_t)0x1590, (q15_t)0x3c2, (q15_t)0x159b, (q15_t)0x3c6, (q15_t)0x15a7, (q15_t)0x3ca, (q15_t)0x15b3, - (q15_t)0x3cf, (q15_t)0x15bf, (q15_t)0x3d3, (q15_t)0x15cb, (q15_t)0x3d7, (q15_t)0x15d7, (q15_t)0x3dc, (q15_t)0x15e2, - (q15_t)0x3e0, (q15_t)0x15ee, (q15_t)0x3e4, (q15_t)0x15fa, (q15_t)0x3e9, (q15_t)0x1606, (q15_t)0x3ed, (q15_t)0x1612, - (q15_t)0x3f1, (q15_t)0x161d, (q15_t)0x3f6, (q15_t)0x1629, (q15_t)0x3fa, (q15_t)0x1635, (q15_t)0x3fe, (q15_t)0x1641, - (q15_t)0x403, (q15_t)0x164c, (q15_t)0x407, (q15_t)0x1658, (q15_t)0x40b, (q15_t)0x1664, (q15_t)0x410, (q15_t)0x1670, - (q15_t)0x414, (q15_t)0x167c, (q15_t)0x419, (q15_t)0x1687, (q15_t)0x41d, (q15_t)0x1693, (q15_t)0x422, (q15_t)0x169f, - (q15_t)0x426, (q15_t)0x16ab, (q15_t)0x42a, (q15_t)0x16b6, (q15_t)0x42f, (q15_t)0x16c2, (q15_t)0x433, (q15_t)0x16ce, - (q15_t)0x438, (q15_t)0x16da, (q15_t)0x43c, (q15_t)0x16e5, (q15_t)0x441, (q15_t)0x16f1, (q15_t)0x445, (q15_t)0x16fd, - (q15_t)0x44a, (q15_t)0x1709, (q15_t)0x44e, (q15_t)0x1714, (q15_t)0x453, (q15_t)0x1720, (q15_t)0x457, (q15_t)0x172c, - (q15_t)0x45c, (q15_t)0x1737, (q15_t)0x461, (q15_t)0x1743, (q15_t)0x465, (q15_t)0x174f, (q15_t)0x46a, (q15_t)0x175b, - (q15_t)0x46e, (q15_t)0x1766, (q15_t)0x473, (q15_t)0x1772, (q15_t)0x478, (q15_t)0x177e, (q15_t)0x47c, (q15_t)0x1789, - (q15_t)0x481, (q15_t)0x1795, (q15_t)0x485, (q15_t)0x17a1, (q15_t)0x48a, (q15_t)0x17ac, (q15_t)0x48f, (q15_t)0x17b8, - (q15_t)0x493, (q15_t)0x17c4, (q15_t)0x498, (q15_t)0x17cf, (q15_t)0x49d, (q15_t)0x17db, (q15_t)0x4a1, (q15_t)0x17e7, - (q15_t)0x4a6, (q15_t)0x17f2, (q15_t)0x4ab, (q15_t)0x17fe, (q15_t)0x4b0, (q15_t)0x180a, (q15_t)0x4b4, (q15_t)0x1815, - (q15_t)0x4b9, (q15_t)0x1821, (q15_t)0x4be, (q15_t)0x182d, (q15_t)0x4c2, (q15_t)0x1838, (q15_t)0x4c7, (q15_t)0x1844, - (q15_t)0x4cc, (q15_t)0x184f, (q15_t)0x4d1, (q15_t)0x185b, (q15_t)0x4d6, (q15_t)0x1867, (q15_t)0x4da, (q15_t)0x1872, - (q15_t)0x4df, (q15_t)0x187e, (q15_t)0x4e4, (q15_t)0x1889, (q15_t)0x4e9, (q15_t)0x1895, (q15_t)0x4ee, (q15_t)0x18a1, - (q15_t)0x4f2, (q15_t)0x18ac, (q15_t)0x4f7, (q15_t)0x18b8, (q15_t)0x4fc, (q15_t)0x18c3, (q15_t)0x501, (q15_t)0x18cf, - (q15_t)0x506, (q15_t)0x18db, (q15_t)0x50b, (q15_t)0x18e6, (q15_t)0x510, (q15_t)0x18f2, (q15_t)0x515, (q15_t)0x18fd, - (q15_t)0x51a, (q15_t)0x1909, (q15_t)0x51e, (q15_t)0x1914, (q15_t)0x523, (q15_t)0x1920, (q15_t)0x528, (q15_t)0x192c, - (q15_t)0x52d, (q15_t)0x1937, (q15_t)0x532, (q15_t)0x1943, (q15_t)0x537, (q15_t)0x194e, (q15_t)0x53c, (q15_t)0x195a, - (q15_t)0x541, (q15_t)0x1965, (q15_t)0x546, (q15_t)0x1971, (q15_t)0x54b, (q15_t)0x197c, (q15_t)0x550, (q15_t)0x1988, - (q15_t)0x555, (q15_t)0x1993, (q15_t)0x55a, (q15_t)0x199f, (q15_t)0x55f, (q15_t)0x19aa, (q15_t)0x564, (q15_t)0x19b6, - (q15_t)0x569, (q15_t)0x19c1, (q15_t)0x56e, (q15_t)0x19cd, (q15_t)0x573, (q15_t)0x19d8, (q15_t)0x578, (q15_t)0x19e4, - (q15_t)0x57e, (q15_t)0x19ef, (q15_t)0x583, (q15_t)0x19fb, (q15_t)0x588, (q15_t)0x1a06, (q15_t)0x58d, (q15_t)0x1a12, - (q15_t)0x592, (q15_t)0x1a1d, (q15_t)0x597, (q15_t)0x1a29, (q15_t)0x59c, (q15_t)0x1a34, (q15_t)0x5a1, (q15_t)0x1a40, - (q15_t)0x5a7, (q15_t)0x1a4b, (q15_t)0x5ac, (q15_t)0x1a57, (q15_t)0x5b1, (q15_t)0x1a62, (q15_t)0x5b6, (q15_t)0x1a6e, - (q15_t)0x5bb, (q15_t)0x1a79, (q15_t)0x5c1, (q15_t)0x1a84, (q15_t)0x5c6, (q15_t)0x1a90, (q15_t)0x5cb, (q15_t)0x1a9b, - (q15_t)0x5d0, (q15_t)0x1aa7, (q15_t)0x5d5, (q15_t)0x1ab2, (q15_t)0x5db, (q15_t)0x1abe, (q15_t)0x5e0, (q15_t)0x1ac9, - (q15_t)0x5e5, (q15_t)0x1ad4, (q15_t)0x5ea, (q15_t)0x1ae0, (q15_t)0x5f0, (q15_t)0x1aeb, (q15_t)0x5f5, (q15_t)0x1af7, - (q15_t)0x5fa, (q15_t)0x1b02, (q15_t)0x600, (q15_t)0x1b0d, (q15_t)0x605, (q15_t)0x1b19, (q15_t)0x60a, (q15_t)0x1b24, - (q15_t)0x610, (q15_t)0x1b30, (q15_t)0x615, (q15_t)0x1b3b, (q15_t)0x61a, (q15_t)0x1b46, (q15_t)0x620, (q15_t)0x1b52, - (q15_t)0x625, (q15_t)0x1b5d, (q15_t)0x62a, (q15_t)0x1b68, (q15_t)0x630, (q15_t)0x1b74, (q15_t)0x635, (q15_t)0x1b7f, - (q15_t)0x63b, (q15_t)0x1b8a, (q15_t)0x640, (q15_t)0x1b96, (q15_t)0x645, (q15_t)0x1ba1, (q15_t)0x64b, (q15_t)0x1bac, - (q15_t)0x650, (q15_t)0x1bb8, (q15_t)0x656, (q15_t)0x1bc3, (q15_t)0x65b, (q15_t)0x1bce, (q15_t)0x661, (q15_t)0x1bda, - (q15_t)0x666, (q15_t)0x1be5, (q15_t)0x66c, (q15_t)0x1bf0, (q15_t)0x671, (q15_t)0x1bfc, (q15_t)0x677, (q15_t)0x1c07, - (q15_t)0x67c, (q15_t)0x1c12, (q15_t)0x682, (q15_t)0x1c1e, (q15_t)0x687, (q15_t)0x1c29, (q15_t)0x68d, (q15_t)0x1c34, - (q15_t)0x692, (q15_t)0x1c3f, (q15_t)0x698, (q15_t)0x1c4b, (q15_t)0x69d, (q15_t)0x1c56, (q15_t)0x6a3, (q15_t)0x1c61, - (q15_t)0x6a8, (q15_t)0x1c6c, (q15_t)0x6ae, (q15_t)0x1c78, (q15_t)0x6b4, (q15_t)0x1c83, (q15_t)0x6b9, (q15_t)0x1c8e, - (q15_t)0x6bf, (q15_t)0x1c99, (q15_t)0x6c5, (q15_t)0x1ca5, (q15_t)0x6ca, (q15_t)0x1cb0, (q15_t)0x6d0, (q15_t)0x1cbb, - (q15_t)0x6d5, (q15_t)0x1cc6, (q15_t)0x6db, (q15_t)0x1cd2, (q15_t)0x6e1, (q15_t)0x1cdd, (q15_t)0x6e6, (q15_t)0x1ce8, - (q15_t)0x6ec, (q15_t)0x1cf3, (q15_t)0x6f2, (q15_t)0x1cff, (q15_t)0x6f7, (q15_t)0x1d0a, (q15_t)0x6fd, (q15_t)0x1d15, - (q15_t)0x703, (q15_t)0x1d20, (q15_t)0x709, (q15_t)0x1d2b, (q15_t)0x70e, (q15_t)0x1d36, (q15_t)0x714, (q15_t)0x1d42, - (q15_t)0x71a, (q15_t)0x1d4d, (q15_t)0x720, (q15_t)0x1d58, (q15_t)0x725, (q15_t)0x1d63, (q15_t)0x72b, (q15_t)0x1d6e, - (q15_t)0x731, (q15_t)0x1d79, (q15_t)0x737, (q15_t)0x1d85, (q15_t)0x73d, (q15_t)0x1d90, (q15_t)0x742, (q15_t)0x1d9b, - (q15_t)0x748, (q15_t)0x1da6, (q15_t)0x74e, (q15_t)0x1db1, (q15_t)0x754, (q15_t)0x1dbc, (q15_t)0x75a, (q15_t)0x1dc7, - (q15_t)0x75f, (q15_t)0x1dd3, (q15_t)0x765, (q15_t)0x1dde, (q15_t)0x76b, (q15_t)0x1de9, (q15_t)0x771, (q15_t)0x1df4, - (q15_t)0x777, (q15_t)0x1dff, (q15_t)0x77d, (q15_t)0x1e0a, (q15_t)0x783, (q15_t)0x1e15, (q15_t)0x789, (q15_t)0x1e20, - (q15_t)0x78f, (q15_t)0x1e2b, (q15_t)0x795, (q15_t)0x1e36, (q15_t)0x79a, (q15_t)0x1e42, (q15_t)0x7a0, (q15_t)0x1e4d, - (q15_t)0x7a6, (q15_t)0x1e58, (q15_t)0x7ac, (q15_t)0x1e63, (q15_t)0x7b2, (q15_t)0x1e6e, (q15_t)0x7b8, (q15_t)0x1e79, - (q15_t)0x7be, (q15_t)0x1e84, (q15_t)0x7c4, (q15_t)0x1e8f, (q15_t)0x7ca, (q15_t)0x1e9a, (q15_t)0x7d0, (q15_t)0x1ea5, - (q15_t)0x7d6, (q15_t)0x1eb0, (q15_t)0x7dc, (q15_t)0x1ebb, (q15_t)0x7e2, (q15_t)0x1ec6, (q15_t)0x7e8, (q15_t)0x1ed1, - (q15_t)0x7ee, (q15_t)0x1edc, (q15_t)0x7f5, (q15_t)0x1ee7, (q15_t)0x7fb, (q15_t)0x1ef2, (q15_t)0x801, (q15_t)0x1efd, - (q15_t)0x807, (q15_t)0x1f08, (q15_t)0x80d, (q15_t)0x1f13, (q15_t)0x813, (q15_t)0x1f1e, (q15_t)0x819, (q15_t)0x1f29, - (q15_t)0x81f, (q15_t)0x1f34, (q15_t)0x825, (q15_t)0x1f3f, (q15_t)0x82b, (q15_t)0x1f4a, (q15_t)0x832, (q15_t)0x1f55, - (q15_t)0x838, (q15_t)0x1f60, (q15_t)0x83e, (q15_t)0x1f6b, (q15_t)0x844, (q15_t)0x1f76, (q15_t)0x84a, (q15_t)0x1f81, - (q15_t)0x850, (q15_t)0x1f8c, (q15_t)0x857, (q15_t)0x1f97, (q15_t)0x85d, (q15_t)0x1fa2, (q15_t)0x863, (q15_t)0x1fac, - (q15_t)0x869, (q15_t)0x1fb7, (q15_t)0x870, (q15_t)0x1fc2, (q15_t)0x876, (q15_t)0x1fcd, (q15_t)0x87c, (q15_t)0x1fd8, - (q15_t)0x882, (q15_t)0x1fe3, (q15_t)0x889, (q15_t)0x1fee, (q15_t)0x88f, (q15_t)0x1ff9, (q15_t)0x895, (q15_t)0x2004, - (q15_t)0x89b, (q15_t)0x200f, (q15_t)0x8a2, (q15_t)0x2019, (q15_t)0x8a8, (q15_t)0x2024, (q15_t)0x8ae, (q15_t)0x202f, - (q15_t)0x8b5, (q15_t)0x203a, (q15_t)0x8bb, (q15_t)0x2045, (q15_t)0x8c1, (q15_t)0x2050, (q15_t)0x8c8, (q15_t)0x205b, - (q15_t)0x8ce, (q15_t)0x2065, (q15_t)0x8d4, (q15_t)0x2070, (q15_t)0x8db, (q15_t)0x207b, (q15_t)0x8e1, (q15_t)0x2086, - (q15_t)0x8e8, (q15_t)0x2091, (q15_t)0x8ee, (q15_t)0x209b, (q15_t)0x8f4, (q15_t)0x20a6, (q15_t)0x8fb, (q15_t)0x20b1, - (q15_t)0x901, (q15_t)0x20bc, (q15_t)0x908, (q15_t)0x20c7, (q15_t)0x90e, (q15_t)0x20d1, (q15_t)0x915, (q15_t)0x20dc, - (q15_t)0x91b, (q15_t)0x20e7, (q15_t)0x921, (q15_t)0x20f2, (q15_t)0x928, (q15_t)0x20fd, (q15_t)0x92e, (q15_t)0x2107, - (q15_t)0x935, (q15_t)0x2112, (q15_t)0x93b, (q15_t)0x211d, (q15_t)0x942, (q15_t)0x2128, (q15_t)0x948, (q15_t)0x2132, - (q15_t)0x94f, (q15_t)0x213d, (q15_t)0x955, (q15_t)0x2148, (q15_t)0x95c, (q15_t)0x2153, (q15_t)0x963, (q15_t)0x215d, - (q15_t)0x969, (q15_t)0x2168, (q15_t)0x970, (q15_t)0x2173, (q15_t)0x976, (q15_t)0x217d, (q15_t)0x97d, (q15_t)0x2188, - (q15_t)0x983, (q15_t)0x2193, (q15_t)0x98a, (q15_t)0x219e, (q15_t)0x991, (q15_t)0x21a8, (q15_t)0x997, (q15_t)0x21b3, - (q15_t)0x99e, (q15_t)0x21be, (q15_t)0x9a4, (q15_t)0x21c8, (q15_t)0x9ab, (q15_t)0x21d3, (q15_t)0x9b2, (q15_t)0x21de, - (q15_t)0x9b8, (q15_t)0x21e8, (q15_t)0x9bf, (q15_t)0x21f3, (q15_t)0x9c6, (q15_t)0x21fe, (q15_t)0x9cc, (q15_t)0x2208, - (q15_t)0x9d3, (q15_t)0x2213, (q15_t)0x9da, (q15_t)0x221e, (q15_t)0x9e0, (q15_t)0x2228, (q15_t)0x9e7, (q15_t)0x2233, - (q15_t)0x9ee, (q15_t)0x223d, (q15_t)0x9f5, (q15_t)0x2248, (q15_t)0x9fb, (q15_t)0x2253, (q15_t)0xa02, (q15_t)0x225d, - (q15_t)0xa09, (q15_t)0x2268, (q15_t)0xa10, (q15_t)0x2272, (q15_t)0xa16, (q15_t)0x227d, (q15_t)0xa1d, (q15_t)0x2288, - (q15_t)0xa24, (q15_t)0x2292, (q15_t)0xa2b, (q15_t)0x229d, (q15_t)0xa32, (q15_t)0x22a7, (q15_t)0xa38, (q15_t)0x22b2, - (q15_t)0xa3f, (q15_t)0x22bc, (q15_t)0xa46, (q15_t)0x22c7, (q15_t)0xa4d, (q15_t)0x22d2, (q15_t)0xa54, (q15_t)0x22dc, - (q15_t)0xa5b, (q15_t)0x22e7, (q15_t)0xa61, (q15_t)0x22f1, (q15_t)0xa68, (q15_t)0x22fc, (q15_t)0xa6f, (q15_t)0x2306, - (q15_t)0xa76, (q15_t)0x2311, (q15_t)0xa7d, (q15_t)0x231b, (q15_t)0xa84, (q15_t)0x2326, (q15_t)0xa8b, (q15_t)0x2330, - (q15_t)0xa92, (q15_t)0x233b, (q15_t)0xa99, (q15_t)0x2345, (q15_t)0xa9f, (q15_t)0x2350, (q15_t)0xaa6, (q15_t)0x235a, - (q15_t)0xaad, (q15_t)0x2365, (q15_t)0xab4, (q15_t)0x236f, (q15_t)0xabb, (q15_t)0x237a, (q15_t)0xac2, (q15_t)0x2384, - (q15_t)0xac9, (q15_t)0x238e, (q15_t)0xad0, (q15_t)0x2399, (q15_t)0xad7, (q15_t)0x23a3, (q15_t)0xade, (q15_t)0x23ae, - (q15_t)0xae5, (q15_t)0x23b8, (q15_t)0xaec, (q15_t)0x23c3, (q15_t)0xaf3, (q15_t)0x23cd, (q15_t)0xafa, (q15_t)0x23d7, - (q15_t)0xb01, (q15_t)0x23e2, (q15_t)0xb08, (q15_t)0x23ec, (q15_t)0xb0f, (q15_t)0x23f7, (q15_t)0xb16, (q15_t)0x2401, - (q15_t)0xb1e, (q15_t)0x240b, (q15_t)0xb25, (q15_t)0x2416, (q15_t)0xb2c, (q15_t)0x2420, (q15_t)0xb33, (q15_t)0x242b, - (q15_t)0xb3a, (q15_t)0x2435, (q15_t)0xb41, (q15_t)0x243f, (q15_t)0xb48, (q15_t)0x244a, (q15_t)0xb4f, (q15_t)0x2454, - (q15_t)0xb56, (q15_t)0x245e, (q15_t)0xb5e, (q15_t)0x2469, (q15_t)0xb65, (q15_t)0x2473, (q15_t)0xb6c, (q15_t)0x247d, - (q15_t)0xb73, (q15_t)0x2488, (q15_t)0xb7a, (q15_t)0x2492, (q15_t)0xb81, (q15_t)0x249c, (q15_t)0xb89, (q15_t)0x24a7, - (q15_t)0xb90, (q15_t)0x24b1, (q15_t)0xb97, (q15_t)0x24bb, (q15_t)0xb9e, (q15_t)0x24c5, (q15_t)0xba5, (q15_t)0x24d0, - (q15_t)0xbad, (q15_t)0x24da, (q15_t)0xbb4, (q15_t)0x24e4, (q15_t)0xbbb, (q15_t)0x24ef, (q15_t)0xbc2, (q15_t)0x24f9, - (q15_t)0xbca, (q15_t)0x2503, (q15_t)0xbd1, (q15_t)0x250d, (q15_t)0xbd8, (q15_t)0x2518, (q15_t)0xbe0, (q15_t)0x2522, - (q15_t)0xbe7, (q15_t)0x252c, (q15_t)0xbee, (q15_t)0x2536, (q15_t)0xbf5, (q15_t)0x2541, (q15_t)0xbfd, (q15_t)0x254b, - (q15_t)0xc04, (q15_t)0x2555, (q15_t)0xc0b, (q15_t)0x255f, (q15_t)0xc13, (q15_t)0x2569, (q15_t)0xc1a, (q15_t)0x2574, - (q15_t)0xc21, (q15_t)0x257e, (q15_t)0xc29, (q15_t)0x2588, (q15_t)0xc30, (q15_t)0x2592, (q15_t)0xc38, (q15_t)0x259c, - (q15_t)0xc3f, (q15_t)0x25a6, (q15_t)0xc46, (q15_t)0x25b1, (q15_t)0xc4e, (q15_t)0x25bb, (q15_t)0xc55, (q15_t)0x25c5, - (q15_t)0xc5d, (q15_t)0x25cf, (q15_t)0xc64, (q15_t)0x25d9, (q15_t)0xc6b, (q15_t)0x25e3, (q15_t)0xc73, (q15_t)0x25ed, - (q15_t)0xc7a, (q15_t)0x25f8, (q15_t)0xc82, (q15_t)0x2602, (q15_t)0xc89, (q15_t)0x260c, (q15_t)0xc91, (q15_t)0x2616, - (q15_t)0xc98, (q15_t)0x2620, (q15_t)0xca0, (q15_t)0x262a, (q15_t)0xca7, (q15_t)0x2634, (q15_t)0xcaf, (q15_t)0x263e, - (q15_t)0xcb6, (q15_t)0x2648, (q15_t)0xcbe, (q15_t)0x2652, (q15_t)0xcc5, (q15_t)0x265c, (q15_t)0xccd, (q15_t)0x2666, - (q15_t)0xcd4, (q15_t)0x2671, (q15_t)0xcdc, (q15_t)0x267b, (q15_t)0xce3, (q15_t)0x2685, (q15_t)0xceb, (q15_t)0x268f, - (q15_t)0xcf3, (q15_t)0x2699, (q15_t)0xcfa, (q15_t)0x26a3, (q15_t)0xd02, (q15_t)0x26ad, (q15_t)0xd09, (q15_t)0x26b7, - (q15_t)0xd11, (q15_t)0x26c1, (q15_t)0xd19, (q15_t)0x26cb, (q15_t)0xd20, (q15_t)0x26d5, (q15_t)0xd28, (q15_t)0x26df, - (q15_t)0xd30, (q15_t)0x26e9, (q15_t)0xd37, (q15_t)0x26f3, (q15_t)0xd3f, (q15_t)0x26fd, (q15_t)0xd46, (q15_t)0x2707, - (q15_t)0xd4e, (q15_t)0x2711, (q15_t)0xd56, (q15_t)0x271a, (q15_t)0xd5d, (q15_t)0x2724, (q15_t)0xd65, (q15_t)0x272e, - (q15_t)0xd6d, (q15_t)0x2738, (q15_t)0xd75, (q15_t)0x2742, (q15_t)0xd7c, (q15_t)0x274c, (q15_t)0xd84, (q15_t)0x2756, - (q15_t)0xd8c, (q15_t)0x2760, (q15_t)0xd93, (q15_t)0x276a, (q15_t)0xd9b, (q15_t)0x2774, (q15_t)0xda3, (q15_t)0x277e, - (q15_t)0xdab, (q15_t)0x2788, (q15_t)0xdb2, (q15_t)0x2791, (q15_t)0xdba, (q15_t)0x279b, (q15_t)0xdc2, (q15_t)0x27a5, - (q15_t)0xdca, (q15_t)0x27af, (q15_t)0xdd2, (q15_t)0x27b9, (q15_t)0xdd9, (q15_t)0x27c3, (q15_t)0xde1, (q15_t)0x27cd, - (q15_t)0xde9, (q15_t)0x27d6, (q15_t)0xdf1, (q15_t)0x27e0, (q15_t)0xdf9, (q15_t)0x27ea, (q15_t)0xe01, (q15_t)0x27f4, - (q15_t)0xe08, (q15_t)0x27fe, (q15_t)0xe10, (q15_t)0x2808, (q15_t)0xe18, (q15_t)0x2811, (q15_t)0xe20, (q15_t)0x281b, - (q15_t)0xe28, (q15_t)0x2825, (q15_t)0xe30, (q15_t)0x282f, (q15_t)0xe38, (q15_t)0x2838, (q15_t)0xe40, (q15_t)0x2842, - (q15_t)0xe47, (q15_t)0x284c, (q15_t)0xe4f, (q15_t)0x2856, (q15_t)0xe57, (q15_t)0x2860, (q15_t)0xe5f, (q15_t)0x2869, - (q15_t)0xe67, (q15_t)0x2873, (q15_t)0xe6f, (q15_t)0x287d, (q15_t)0xe77, (q15_t)0x2886, (q15_t)0xe7f, (q15_t)0x2890, - (q15_t)0xe87, (q15_t)0x289a, (q15_t)0xe8f, (q15_t)0x28a4, (q15_t)0xe97, (q15_t)0x28ad, (q15_t)0xe9f, (q15_t)0x28b7, - (q15_t)0xea7, (q15_t)0x28c1, (q15_t)0xeaf, (q15_t)0x28ca, (q15_t)0xeb7, (q15_t)0x28d4, (q15_t)0xebf, (q15_t)0x28de, - (q15_t)0xec7, (q15_t)0x28e7, (q15_t)0xecf, (q15_t)0x28f1, (q15_t)0xed7, (q15_t)0x28fb, (q15_t)0xedf, (q15_t)0x2904, - (q15_t)0xee7, (q15_t)0x290e, (q15_t)0xeef, (q15_t)0x2918, (q15_t)0xef7, (q15_t)0x2921, (q15_t)0xeff, (q15_t)0x292b, - (q15_t)0xf07, (q15_t)0x2935, (q15_t)0xf10, (q15_t)0x293e, (q15_t)0xf18, (q15_t)0x2948, (q15_t)0xf20, (q15_t)0x2951, - (q15_t)0xf28, (q15_t)0x295b, (q15_t)0xf30, (q15_t)0x2965, (q15_t)0xf38, (q15_t)0x296e, (q15_t)0xf40, (q15_t)0x2978, - (q15_t)0xf48, (q15_t)0x2981, (q15_t)0xf51, (q15_t)0x298b, (q15_t)0xf59, (q15_t)0x2994, (q15_t)0xf61, (q15_t)0x299e, - (q15_t)0xf69, (q15_t)0x29a7, (q15_t)0xf71, (q15_t)0x29b1, (q15_t)0xf79, (q15_t)0x29bb, (q15_t)0xf82, (q15_t)0x29c4, - (q15_t)0xf8a, (q15_t)0x29ce, (q15_t)0xf92, (q15_t)0x29d7, (q15_t)0xf9a, (q15_t)0x29e1, (q15_t)0xfa3, (q15_t)0x29ea, - (q15_t)0xfab, (q15_t)0x29f4, (q15_t)0xfb3, (q15_t)0x29fd, (q15_t)0xfbb, (q15_t)0x2a07, (q15_t)0xfc4, (q15_t)0x2a10, - (q15_t)0xfcc, (q15_t)0x2a1a, (q15_t)0xfd4, (q15_t)0x2a23, (q15_t)0xfdc, (q15_t)0x2a2c, (q15_t)0xfe5, (q15_t)0x2a36, - (q15_t)0xfed, (q15_t)0x2a3f, (q15_t)0xff5, (q15_t)0x2a49, (q15_t)0xffe, (q15_t)0x2a52, (q15_t)0x1006, (q15_t)0x2a5c, - (q15_t)0x100e, (q15_t)0x2a65, (q15_t)0x1016, (q15_t)0x2a6e, (q15_t)0x101f, (q15_t)0x2a78, (q15_t)0x1027, (q15_t)0x2a81, - (q15_t)0x1030, (q15_t)0x2a8b, (q15_t)0x1038, (q15_t)0x2a94, (q15_t)0x1040, (q15_t)0x2a9d, (q15_t)0x1049, (q15_t)0x2aa7, - (q15_t)0x1051, (q15_t)0x2ab0, (q15_t)0x1059, (q15_t)0x2ab9, (q15_t)0x1062, (q15_t)0x2ac3, (q15_t)0x106a, (q15_t)0x2acc, - (q15_t)0x1073, (q15_t)0x2ad6, (q15_t)0x107b, (q15_t)0x2adf, (q15_t)0x1083, (q15_t)0x2ae8, (q15_t)0x108c, (q15_t)0x2af2, - (q15_t)0x1094, (q15_t)0x2afb, (q15_t)0x109d, (q15_t)0x2b04, (q15_t)0x10a5, (q15_t)0x2b0d, (q15_t)0x10ae, (q15_t)0x2b17, - (q15_t)0x10b6, (q15_t)0x2b20, (q15_t)0x10bf, (q15_t)0x2b29, (q15_t)0x10c7, (q15_t)0x2b33, (q15_t)0x10d0, (q15_t)0x2b3c, - (q15_t)0x10d8, (q15_t)0x2b45, (q15_t)0x10e0, (q15_t)0x2b4e, (q15_t)0x10e9, (q15_t)0x2b58, (q15_t)0x10f2, (q15_t)0x2b61, - (q15_t)0x10fa, (q15_t)0x2b6a, (q15_t)0x1103, (q15_t)0x2b73, (q15_t)0x110b, (q15_t)0x2b7d, (q15_t)0x1114, (q15_t)0x2b86, - (q15_t)0x111c, (q15_t)0x2b8f, (q15_t)0x1125, (q15_t)0x2b98, (q15_t)0x112d, (q15_t)0x2ba1, (q15_t)0x1136, (q15_t)0x2bab, - (q15_t)0x113e, (q15_t)0x2bb4, (q15_t)0x1147, (q15_t)0x2bbd, (q15_t)0x1150, (q15_t)0x2bc6, (q15_t)0x1158, (q15_t)0x2bcf, - (q15_t)0x1161, (q15_t)0x2bd8, (q15_t)0x1169, (q15_t)0x2be2, (q15_t)0x1172, (q15_t)0x2beb, (q15_t)0x117b, (q15_t)0x2bf4, - (q15_t)0x1183, (q15_t)0x2bfd, (q15_t)0x118c, (q15_t)0x2c06, (q15_t)0x1195, (q15_t)0x2c0f, (q15_t)0x119d, (q15_t)0x2c18, - (q15_t)0x11a6, (q15_t)0x2c21, (q15_t)0x11af, (q15_t)0x2c2b, (q15_t)0x11b7, (q15_t)0x2c34, (q15_t)0x11c0, (q15_t)0x2c3d, - (q15_t)0x11c9, (q15_t)0x2c46, (q15_t)0x11d1, (q15_t)0x2c4f, (q15_t)0x11da, (q15_t)0x2c58, (q15_t)0x11e3, (q15_t)0x2c61, - (q15_t)0x11eb, (q15_t)0x2c6a, (q15_t)0x11f4, (q15_t)0x2c73, (q15_t)0x11fd, (q15_t)0x2c7c, (q15_t)0x1206, (q15_t)0x2c85, - (q15_t)0x120e, (q15_t)0x2c8e, (q15_t)0x1217, (q15_t)0x2c97, (q15_t)0x1220, (q15_t)0x2ca0, (q15_t)0x1229, (q15_t)0x2ca9, - (q15_t)0x1231, (q15_t)0x2cb2, (q15_t)0x123a, (q15_t)0x2cbb, (q15_t)0x1243, (q15_t)0x2cc4, (q15_t)0x124c, (q15_t)0x2ccd, - (q15_t)0x1255, (q15_t)0x2cd6, (q15_t)0x125d, (q15_t)0x2cdf, (q15_t)0x1266, (q15_t)0x2ce8, (q15_t)0x126f, (q15_t)0x2cf1, - (q15_t)0x1278, (q15_t)0x2cfa, (q15_t)0x1281, (q15_t)0x2d03, (q15_t)0x128a, (q15_t)0x2d0c, (q15_t)0x1292, (q15_t)0x2d15, - (q15_t)0x129b, (q15_t)0x2d1e, (q15_t)0x12a4, (q15_t)0x2d27, (q15_t)0x12ad, (q15_t)0x2d2f, (q15_t)0x12b6, (q15_t)0x2d38, - (q15_t)0x12bf, (q15_t)0x2d41, (q15_t)0x12c8, (q15_t)0x2d4a, (q15_t)0x12d1, (q15_t)0x2d53, (q15_t)0x12d9, (q15_t)0x2d5c, - (q15_t)0x12e2, (q15_t)0x2d65, (q15_t)0x12eb, (q15_t)0x2d6e, (q15_t)0x12f4, (q15_t)0x2d76, (q15_t)0x12fd, (q15_t)0x2d7f, - (q15_t)0x1306, (q15_t)0x2d88, (q15_t)0x130f, (q15_t)0x2d91, (q15_t)0x1318, (q15_t)0x2d9a, (q15_t)0x1321, (q15_t)0x2da3, - (q15_t)0x132a, (q15_t)0x2dab, (q15_t)0x1333, (q15_t)0x2db4, (q15_t)0x133c, (q15_t)0x2dbd, (q15_t)0x1345, (q15_t)0x2dc6, - (q15_t)0x134e, (q15_t)0x2dcf, (q15_t)0x1357, (q15_t)0x2dd7, (q15_t)0x1360, (q15_t)0x2de0, (q15_t)0x1369, (q15_t)0x2de9, - (q15_t)0x1372, (q15_t)0x2df2, (q15_t)0x137b, (q15_t)0x2dfa, (q15_t)0x1384, (q15_t)0x2e03, (q15_t)0x138d, (q15_t)0x2e0c, - (q15_t)0x1396, (q15_t)0x2e15, (q15_t)0x139f, (q15_t)0x2e1d, (q15_t)0x13a8, (q15_t)0x2e26, (q15_t)0x13b1, (q15_t)0x2e2f, - (q15_t)0x13ba, (q15_t)0x2e37, (q15_t)0x13c3, (q15_t)0x2e40, (q15_t)0x13cc, (q15_t)0x2e49, (q15_t)0x13d5, (q15_t)0x2e51, - (q15_t)0x13df, (q15_t)0x2e5a, (q15_t)0x13e8, (q15_t)0x2e63, (q15_t)0x13f1, (q15_t)0x2e6b, (q15_t)0x13fa, (q15_t)0x2e74, - (q15_t)0x1403, (q15_t)0x2e7d, (q15_t)0x140c, (q15_t)0x2e85, (q15_t)0x1415, (q15_t)0x2e8e, (q15_t)0x141e, (q15_t)0x2e97, - (q15_t)0x1428, (q15_t)0x2e9f, (q15_t)0x1431, (q15_t)0x2ea8, (q15_t)0x143a, (q15_t)0x2eb0, (q15_t)0x1443, (q15_t)0x2eb9, - (q15_t)0x144c, (q15_t)0x2ec2, (q15_t)0x1455, (q15_t)0x2eca, (q15_t)0x145f, (q15_t)0x2ed3, (q15_t)0x1468, (q15_t)0x2edb, - (q15_t)0x1471, (q15_t)0x2ee4, (q15_t)0x147a, (q15_t)0x2eec, (q15_t)0x1483, (q15_t)0x2ef5, (q15_t)0x148d, (q15_t)0x2efd, - (q15_t)0x1496, (q15_t)0x2f06, (q15_t)0x149f, (q15_t)0x2f0e, (q15_t)0x14a8, (q15_t)0x2f17, (q15_t)0x14b2, (q15_t)0x2f20, - (q15_t)0x14bb, (q15_t)0x2f28, (q15_t)0x14c4, (q15_t)0x2f30, (q15_t)0x14cd, (q15_t)0x2f39, (q15_t)0x14d7, (q15_t)0x2f41, - (q15_t)0x14e0, (q15_t)0x2f4a, (q15_t)0x14e9, (q15_t)0x2f52, (q15_t)0x14f3, (q15_t)0x2f5b, (q15_t)0x14fc, (q15_t)0x2f63, - (q15_t)0x1505, (q15_t)0x2f6c, (q15_t)0x150e, (q15_t)0x2f74, (q15_t)0x1518, (q15_t)0x2f7d, (q15_t)0x1521, (q15_t)0x2f85, - (q15_t)0x152a, (q15_t)0x2f8d, (q15_t)0x1534, (q15_t)0x2f96, (q15_t)0x153d, (q15_t)0x2f9e, (q15_t)0x1547, (q15_t)0x2fa7, - (q15_t)0x1550, (q15_t)0x2faf, (q15_t)0x1559, (q15_t)0x2fb7, (q15_t)0x1563, (q15_t)0x2fc0, (q15_t)0x156c, (q15_t)0x2fc8, - (q15_t)0x1575, (q15_t)0x2fd0, (q15_t)0x157f, (q15_t)0x2fd9, (q15_t)0x1588, (q15_t)0x2fe1, (q15_t)0x1592, (q15_t)0x2fea, - (q15_t)0x159b, (q15_t)0x2ff2, (q15_t)0x15a4, (q15_t)0x2ffa, (q15_t)0x15ae, (q15_t)0x3002, (q15_t)0x15b7, (q15_t)0x300b, - (q15_t)0x15c1, (q15_t)0x3013, (q15_t)0x15ca, (q15_t)0x301b, (q15_t)0x15d4, (q15_t)0x3024, (q15_t)0x15dd, (q15_t)0x302c, - (q15_t)0x15e6, (q15_t)0x3034, (q15_t)0x15f0, (q15_t)0x303c, (q15_t)0x15f9, (q15_t)0x3045, (q15_t)0x1603, (q15_t)0x304d, - (q15_t)0x160c, (q15_t)0x3055, (q15_t)0x1616, (q15_t)0x305d, (q15_t)0x161f, (q15_t)0x3066, (q15_t)0x1629, (q15_t)0x306e, - (q15_t)0x1632, (q15_t)0x3076, (q15_t)0x163c, (q15_t)0x307e, (q15_t)0x1645, (q15_t)0x3087, (q15_t)0x164f, (q15_t)0x308f, - (q15_t)0x1659, (q15_t)0x3097, (q15_t)0x1662, (q15_t)0x309f, (q15_t)0x166c, (q15_t)0x30a7, (q15_t)0x1675, (q15_t)0x30af, - (q15_t)0x167f, (q15_t)0x30b8, (q15_t)0x1688, (q15_t)0x30c0, (q15_t)0x1692, (q15_t)0x30c8, (q15_t)0x169b, (q15_t)0x30d0, - (q15_t)0x16a5, (q15_t)0x30d8, (q15_t)0x16af, (q15_t)0x30e0, (q15_t)0x16b8, (q15_t)0x30e8, (q15_t)0x16c2, (q15_t)0x30f0, - (q15_t)0x16cb, (q15_t)0x30f9, (q15_t)0x16d5, (q15_t)0x3101, (q15_t)0x16df, (q15_t)0x3109, (q15_t)0x16e8, (q15_t)0x3111, - (q15_t)0x16f2, (q15_t)0x3119, (q15_t)0x16fc, (q15_t)0x3121, (q15_t)0x1705, (q15_t)0x3129, (q15_t)0x170f, (q15_t)0x3131, - (q15_t)0x1719, (q15_t)0x3139, (q15_t)0x1722, (q15_t)0x3141, (q15_t)0x172c, (q15_t)0x3149, (q15_t)0x1736, (q15_t)0x3151, - (q15_t)0x173f, (q15_t)0x3159, (q15_t)0x1749, (q15_t)0x3161, (q15_t)0x1753, (q15_t)0x3169, (q15_t)0x175c, (q15_t)0x3171, - (q15_t)0x1766, (q15_t)0x3179, (q15_t)0x1770, (q15_t)0x3181, (q15_t)0x177a, (q15_t)0x3189, (q15_t)0x1783, (q15_t)0x3191, - (q15_t)0x178d, (q15_t)0x3199, (q15_t)0x1797, (q15_t)0x31a1, (q15_t)0x17a0, (q15_t)0x31a9, (q15_t)0x17aa, (q15_t)0x31b1, - (q15_t)0x17b4, (q15_t)0x31b9, (q15_t)0x17be, (q15_t)0x31c0, (q15_t)0x17c8, (q15_t)0x31c8, (q15_t)0x17d1, (q15_t)0x31d0, - (q15_t)0x17db, (q15_t)0x31d8, (q15_t)0x17e5, (q15_t)0x31e0, (q15_t)0x17ef, (q15_t)0x31e8, (q15_t)0x17f8, (q15_t)0x31f0, - (q15_t)0x1802, (q15_t)0x31f8, (q15_t)0x180c, (q15_t)0x31ff, (q15_t)0x1816, (q15_t)0x3207, (q15_t)0x1820, (q15_t)0x320f, - (q15_t)0x182a, (q15_t)0x3217, (q15_t)0x1833, (q15_t)0x321f, (q15_t)0x183d, (q15_t)0x3227, (q15_t)0x1847, (q15_t)0x322e, - (q15_t)0x1851, (q15_t)0x3236, (q15_t)0x185b, (q15_t)0x323e, (q15_t)0x1865, (q15_t)0x3246, (q15_t)0x186f, (q15_t)0x324e, - (q15_t)0x1878, (q15_t)0x3255, (q15_t)0x1882, (q15_t)0x325d, (q15_t)0x188c, (q15_t)0x3265, (q15_t)0x1896, (q15_t)0x326d, - (q15_t)0x18a0, (q15_t)0x3274, (q15_t)0x18aa, (q15_t)0x327c, (q15_t)0x18b4, (q15_t)0x3284, (q15_t)0x18be, (q15_t)0x328b, - (q15_t)0x18c8, (q15_t)0x3293, (q15_t)0x18d2, (q15_t)0x329b, (q15_t)0x18dc, (q15_t)0x32a3, (q15_t)0x18e6, (q15_t)0x32aa, - (q15_t)0x18ef, (q15_t)0x32b2, (q15_t)0x18f9, (q15_t)0x32ba, (q15_t)0x1903, (q15_t)0x32c1, (q15_t)0x190d, (q15_t)0x32c9, - (q15_t)0x1917, (q15_t)0x32d0, (q15_t)0x1921, (q15_t)0x32d8, (q15_t)0x192b, (q15_t)0x32e0, (q15_t)0x1935, (q15_t)0x32e7, - (q15_t)0x193f, (q15_t)0x32ef, (q15_t)0x1949, (q15_t)0x32f7, (q15_t)0x1953, (q15_t)0x32fe, (q15_t)0x195d, (q15_t)0x3306, - (q15_t)0x1967, (q15_t)0x330d, (q15_t)0x1971, (q15_t)0x3315, (q15_t)0x197b, (q15_t)0x331d, (q15_t)0x1985, (q15_t)0x3324, - (q15_t)0x198f, (q15_t)0x332c, (q15_t)0x199a, (q15_t)0x3333, (q15_t)0x19a4, (q15_t)0x333b, (q15_t)0x19ae, (q15_t)0x3342, - (q15_t)0x19b8, (q15_t)0x334a, (q15_t)0x19c2, (q15_t)0x3351, (q15_t)0x19cc, (q15_t)0x3359, (q15_t)0x19d6, (q15_t)0x3360, - (q15_t)0x19e0, (q15_t)0x3368, (q15_t)0x19ea, (q15_t)0x336f, (q15_t)0x19f4, (q15_t)0x3377, (q15_t)0x19fe, (q15_t)0x337e, - (q15_t)0x1a08, (q15_t)0x3386, (q15_t)0x1a13, (q15_t)0x338d, (q15_t)0x1a1d, (q15_t)0x3395, (q15_t)0x1a27, (q15_t)0x339c, - (q15_t)0x1a31, (q15_t)0x33a3, (q15_t)0x1a3b, (q15_t)0x33ab, (q15_t)0x1a45, (q15_t)0x33b2, (q15_t)0x1a4f, (q15_t)0x33ba, - (q15_t)0x1a5a, (q15_t)0x33c1, (q15_t)0x1a64, (q15_t)0x33c8, (q15_t)0x1a6e, (q15_t)0x33d0, (q15_t)0x1a78, (q15_t)0x33d7, - (q15_t)0x1a82, (q15_t)0x33df, (q15_t)0x1a8c, (q15_t)0x33e6, (q15_t)0x1a97, (q15_t)0x33ed, (q15_t)0x1aa1, (q15_t)0x33f5, - (q15_t)0x1aab, (q15_t)0x33fc, (q15_t)0x1ab5, (q15_t)0x3403, (q15_t)0x1abf, (q15_t)0x340b, (q15_t)0x1aca, (q15_t)0x3412, - (q15_t)0x1ad4, (q15_t)0x3419, (q15_t)0x1ade, (q15_t)0x3420, (q15_t)0x1ae8, (q15_t)0x3428, (q15_t)0x1af3, (q15_t)0x342f, - (q15_t)0x1afd, (q15_t)0x3436, (q15_t)0x1b07, (q15_t)0x343e, (q15_t)0x1b11, (q15_t)0x3445, (q15_t)0x1b1c, (q15_t)0x344c, - (q15_t)0x1b26, (q15_t)0x3453, (q15_t)0x1b30, (q15_t)0x345b, (q15_t)0x1b3b, (q15_t)0x3462, (q15_t)0x1b45, (q15_t)0x3469, - (q15_t)0x1b4f, (q15_t)0x3470, (q15_t)0x1b59, (q15_t)0x3477, (q15_t)0x1b64, (q15_t)0x347f, (q15_t)0x1b6e, (q15_t)0x3486, - (q15_t)0x1b78, (q15_t)0x348d, (q15_t)0x1b83, (q15_t)0x3494, (q15_t)0x1b8d, (q15_t)0x349b, (q15_t)0x1b97, (q15_t)0x34a2, - (q15_t)0x1ba2, (q15_t)0x34aa, (q15_t)0x1bac, (q15_t)0x34b1, (q15_t)0x1bb6, (q15_t)0x34b8, (q15_t)0x1bc1, (q15_t)0x34bf, - (q15_t)0x1bcb, (q15_t)0x34c6, (q15_t)0x1bd5, (q15_t)0x34cd, (q15_t)0x1be0, (q15_t)0x34d4, (q15_t)0x1bea, (q15_t)0x34db, - (q15_t)0x1bf5, (q15_t)0x34e2, (q15_t)0x1bff, (q15_t)0x34ea, (q15_t)0x1c09, (q15_t)0x34f1, (q15_t)0x1c14, (q15_t)0x34f8, - (q15_t)0x1c1e, (q15_t)0x34ff, (q15_t)0x1c29, (q15_t)0x3506, (q15_t)0x1c33, (q15_t)0x350d, (q15_t)0x1c3d, (q15_t)0x3514, - (q15_t)0x1c48, (q15_t)0x351b, (q15_t)0x1c52, (q15_t)0x3522, (q15_t)0x1c5d, (q15_t)0x3529, (q15_t)0x1c67, (q15_t)0x3530, - (q15_t)0x1c72, (q15_t)0x3537, (q15_t)0x1c7c, (q15_t)0x353e, (q15_t)0x1c86, (q15_t)0x3545, (q15_t)0x1c91, (q15_t)0x354c, - (q15_t)0x1c9b, (q15_t)0x3553, (q15_t)0x1ca6, (q15_t)0x355a, (q15_t)0x1cb0, (q15_t)0x3561, (q15_t)0x1cbb, (q15_t)0x3567, - (q15_t)0x1cc5, (q15_t)0x356e, (q15_t)0x1cd0, (q15_t)0x3575, (q15_t)0x1cda, (q15_t)0x357c, (q15_t)0x1ce5, (q15_t)0x3583, - (q15_t)0x1cef, (q15_t)0x358a, (q15_t)0x1cfa, (q15_t)0x3591, (q15_t)0x1d04, (q15_t)0x3598, (q15_t)0x1d0f, (q15_t)0x359f, - (q15_t)0x1d19, (q15_t)0x35a5, (q15_t)0x1d24, (q15_t)0x35ac, (q15_t)0x1d2e, (q15_t)0x35b3, (q15_t)0x1d39, (q15_t)0x35ba, - (q15_t)0x1d44, (q15_t)0x35c1, (q15_t)0x1d4e, (q15_t)0x35c8, (q15_t)0x1d59, (q15_t)0x35ce, (q15_t)0x1d63, (q15_t)0x35d5, - (q15_t)0x1d6e, (q15_t)0x35dc, (q15_t)0x1d78, (q15_t)0x35e3, (q15_t)0x1d83, (q15_t)0x35ea, (q15_t)0x1d8e, (q15_t)0x35f0, - (q15_t)0x1d98, (q15_t)0x35f7, (q15_t)0x1da3, (q15_t)0x35fe, (q15_t)0x1dad, (q15_t)0x3605, (q15_t)0x1db8, (q15_t)0x360b, - (q15_t)0x1dc3, (q15_t)0x3612, (q15_t)0x1dcd, (q15_t)0x3619, (q15_t)0x1dd8, (q15_t)0x3620, (q15_t)0x1de2, (q15_t)0x3626, - (q15_t)0x1ded, (q15_t)0x362d, (q15_t)0x1df8, (q15_t)0x3634, (q15_t)0x1e02, (q15_t)0x363a, (q15_t)0x1e0d, (q15_t)0x3641, - (q15_t)0x1e18, (q15_t)0x3648, (q15_t)0x1e22, (q15_t)0x364e, (q15_t)0x1e2d, (q15_t)0x3655, (q15_t)0x1e38, (q15_t)0x365c, - (q15_t)0x1e42, (q15_t)0x3662, (q15_t)0x1e4d, (q15_t)0x3669, (q15_t)0x1e58, (q15_t)0x366f, (q15_t)0x1e62, (q15_t)0x3676, - (q15_t)0x1e6d, (q15_t)0x367d, (q15_t)0x1e78, (q15_t)0x3683, (q15_t)0x1e83, (q15_t)0x368a, (q15_t)0x1e8d, (q15_t)0x3690, - (q15_t)0x1e98, (q15_t)0x3697, (q15_t)0x1ea3, (q15_t)0x369d, (q15_t)0x1ead, (q15_t)0x36a4, (q15_t)0x1eb8, (q15_t)0x36ab, - (q15_t)0x1ec3, (q15_t)0x36b1, (q15_t)0x1ece, (q15_t)0x36b8, (q15_t)0x1ed8, (q15_t)0x36be, (q15_t)0x1ee3, (q15_t)0x36c5, - (q15_t)0x1eee, (q15_t)0x36cb, (q15_t)0x1ef9, (q15_t)0x36d2, (q15_t)0x1f03, (q15_t)0x36d8, (q15_t)0x1f0e, (q15_t)0x36df, - (q15_t)0x1f19, (q15_t)0x36e5, (q15_t)0x1f24, (q15_t)0x36eb, (q15_t)0x1f2f, (q15_t)0x36f2, (q15_t)0x1f39, (q15_t)0x36f8, - (q15_t)0x1f44, (q15_t)0x36ff, (q15_t)0x1f4f, (q15_t)0x3705, (q15_t)0x1f5a, (q15_t)0x370c, (q15_t)0x1f65, (q15_t)0x3712, - (q15_t)0x1f6f, (q15_t)0x3718, (q15_t)0x1f7a, (q15_t)0x371f, (q15_t)0x1f85, (q15_t)0x3725, (q15_t)0x1f90, (q15_t)0x372c, - (q15_t)0x1f9b, (q15_t)0x3732, (q15_t)0x1fa5, (q15_t)0x3738, (q15_t)0x1fb0, (q15_t)0x373f, (q15_t)0x1fbb, (q15_t)0x3745, - (q15_t)0x1fc6, (q15_t)0x374b, (q15_t)0x1fd1, (q15_t)0x3752, (q15_t)0x1fdc, (q15_t)0x3758, (q15_t)0x1fe7, (q15_t)0x375e, - (q15_t)0x1ff1, (q15_t)0x3765, (q15_t)0x1ffc, (q15_t)0x376b, (q15_t)0x2007, (q15_t)0x3771, (q15_t)0x2012, (q15_t)0x3777, - (q15_t)0x201d, (q15_t)0x377e, (q15_t)0x2028, (q15_t)0x3784, (q15_t)0x2033, (q15_t)0x378a, (q15_t)0x203e, (q15_t)0x3790, - (q15_t)0x2049, (q15_t)0x3797, (q15_t)0x2054, (q15_t)0x379d, (q15_t)0x205e, (q15_t)0x37a3, (q15_t)0x2069, (q15_t)0x37a9, - (q15_t)0x2074, (q15_t)0x37b0, (q15_t)0x207f, (q15_t)0x37b6, (q15_t)0x208a, (q15_t)0x37bc, (q15_t)0x2095, (q15_t)0x37c2, - (q15_t)0x20a0, (q15_t)0x37c8, (q15_t)0x20ab, (q15_t)0x37ce, (q15_t)0x20b6, (q15_t)0x37d5, (q15_t)0x20c1, (q15_t)0x37db, - (q15_t)0x20cc, (q15_t)0x37e1, (q15_t)0x20d7, (q15_t)0x37e7, (q15_t)0x20e2, (q15_t)0x37ed, (q15_t)0x20ed, (q15_t)0x37f3, - (q15_t)0x20f8, (q15_t)0x37f9, (q15_t)0x2103, (q15_t)0x37ff, (q15_t)0x210e, (q15_t)0x3805, (q15_t)0x2119, (q15_t)0x380b, - (q15_t)0x2124, (q15_t)0x3812, (q15_t)0x212f, (q15_t)0x3818, (q15_t)0x213a, (q15_t)0x381e, (q15_t)0x2145, (q15_t)0x3824, - (q15_t)0x2150, (q15_t)0x382a, (q15_t)0x215b, (q15_t)0x3830, (q15_t)0x2166, (q15_t)0x3836, (q15_t)0x2171, (q15_t)0x383c, - (q15_t)0x217c, (q15_t)0x3842, (q15_t)0x2187, (q15_t)0x3848, (q15_t)0x2192, (q15_t)0x384e, (q15_t)0x219d, (q15_t)0x3854, - (q15_t)0x21a8, (q15_t)0x385a, (q15_t)0x21b3, (q15_t)0x3860, (q15_t)0x21be, (q15_t)0x3866, (q15_t)0x21ca, (q15_t)0x386b, - (q15_t)0x21d5, (q15_t)0x3871, (q15_t)0x21e0, (q15_t)0x3877, (q15_t)0x21eb, (q15_t)0x387d, (q15_t)0x21f6, (q15_t)0x3883, - (q15_t)0x2201, (q15_t)0x3889, (q15_t)0x220c, (q15_t)0x388f, (q15_t)0x2217, (q15_t)0x3895, (q15_t)0x2222, (q15_t)0x389b, - (q15_t)0x222d, (q15_t)0x38a1, (q15_t)0x2239, (q15_t)0x38a6, (q15_t)0x2244, (q15_t)0x38ac, (q15_t)0x224f, (q15_t)0x38b2, - (q15_t)0x225a, (q15_t)0x38b8, (q15_t)0x2265, (q15_t)0x38be, (q15_t)0x2270, (q15_t)0x38c3, (q15_t)0x227b, (q15_t)0x38c9, - (q15_t)0x2287, (q15_t)0x38cf, (q15_t)0x2292, (q15_t)0x38d5, (q15_t)0x229d, (q15_t)0x38db, (q15_t)0x22a8, (q15_t)0x38e0, - (q15_t)0x22b3, (q15_t)0x38e6, (q15_t)0x22be, (q15_t)0x38ec, (q15_t)0x22ca, (q15_t)0x38f2, (q15_t)0x22d5, (q15_t)0x38f7, - (q15_t)0x22e0, (q15_t)0x38fd, (q15_t)0x22eb, (q15_t)0x3903, (q15_t)0x22f6, (q15_t)0x3909, (q15_t)0x2301, (q15_t)0x390e, - (q15_t)0x230d, (q15_t)0x3914, (q15_t)0x2318, (q15_t)0x391a, (q15_t)0x2323, (q15_t)0x391f, (q15_t)0x232e, (q15_t)0x3925, - (q15_t)0x233a, (q15_t)0x392b, (q15_t)0x2345, (q15_t)0x3930, (q15_t)0x2350, (q15_t)0x3936, (q15_t)0x235b, (q15_t)0x393b, - (q15_t)0x2367, (q15_t)0x3941, (q15_t)0x2372, (q15_t)0x3947, (q15_t)0x237d, (q15_t)0x394c, (q15_t)0x2388, (q15_t)0x3952, - (q15_t)0x2394, (q15_t)0x3958, (q15_t)0x239f, (q15_t)0x395d, (q15_t)0x23aa, (q15_t)0x3963, (q15_t)0x23b5, (q15_t)0x3968, - (q15_t)0x23c1, (q15_t)0x396e, (q15_t)0x23cc, (q15_t)0x3973, (q15_t)0x23d7, (q15_t)0x3979, (q15_t)0x23e2, (q15_t)0x397e, - (q15_t)0x23ee, (q15_t)0x3984, (q15_t)0x23f9, (q15_t)0x3989, (q15_t)0x2404, (q15_t)0x398f, (q15_t)0x2410, (q15_t)0x3994, - (q15_t)0x241b, (q15_t)0x399a, (q15_t)0x2426, (q15_t)0x399f, (q15_t)0x2432, (q15_t)0x39a5, (q15_t)0x243d, (q15_t)0x39aa, - (q15_t)0x2448, (q15_t)0x39b0, (q15_t)0x2454, (q15_t)0x39b5, (q15_t)0x245f, (q15_t)0x39bb, (q15_t)0x246a, (q15_t)0x39c0, - (q15_t)0x2476, (q15_t)0x39c5, (q15_t)0x2481, (q15_t)0x39cb, (q15_t)0x248c, (q15_t)0x39d0, (q15_t)0x2498, (q15_t)0x39d6, - (q15_t)0x24a3, (q15_t)0x39db, (q15_t)0x24ae, (q15_t)0x39e0, (q15_t)0x24ba, (q15_t)0x39e6, (q15_t)0x24c5, (q15_t)0x39eb, - (q15_t)0x24d0, (q15_t)0x39f0, (q15_t)0x24dc, (q15_t)0x39f6, (q15_t)0x24e7, (q15_t)0x39fb, (q15_t)0x24f3, (q15_t)0x3a00, - (q15_t)0x24fe, (q15_t)0x3a06, (q15_t)0x2509, (q15_t)0x3a0b, (q15_t)0x2515, (q15_t)0x3a10, (q15_t)0x2520, (q15_t)0x3a16, - (q15_t)0x252c, (q15_t)0x3a1b, (q15_t)0x2537, (q15_t)0x3a20, (q15_t)0x2542, (q15_t)0x3a25, (q15_t)0x254e, (q15_t)0x3a2b, - (q15_t)0x2559, (q15_t)0x3a30, (q15_t)0x2565, (q15_t)0x3a35, (q15_t)0x2570, (q15_t)0x3a3a, (q15_t)0x257c, (q15_t)0x3a3f, - (q15_t)0x2587, (q15_t)0x3a45, (q15_t)0x2592, (q15_t)0x3a4a, (q15_t)0x259e, (q15_t)0x3a4f, (q15_t)0x25a9, (q15_t)0x3a54, - (q15_t)0x25b5, (q15_t)0x3a59, (q15_t)0x25c0, (q15_t)0x3a5f, (q15_t)0x25cc, (q15_t)0x3a64, (q15_t)0x25d7, (q15_t)0x3a69, - (q15_t)0x25e3, (q15_t)0x3a6e, (q15_t)0x25ee, (q15_t)0x3a73, (q15_t)0x25fa, (q15_t)0x3a78, (q15_t)0x2605, (q15_t)0x3a7d, - (q15_t)0x2611, (q15_t)0x3a82, (q15_t)0x261c, (q15_t)0x3a88, (q15_t)0x2628, (q15_t)0x3a8d, (q15_t)0x2633, (q15_t)0x3a92, - (q15_t)0x263f, (q15_t)0x3a97, (q15_t)0x264a, (q15_t)0x3a9c, (q15_t)0x2656, (q15_t)0x3aa1, (q15_t)0x2661, (q15_t)0x3aa6, - (q15_t)0x266d, (q15_t)0x3aab, (q15_t)0x2678, (q15_t)0x3ab0, (q15_t)0x2684, (q15_t)0x3ab5, (q15_t)0x268f, (q15_t)0x3aba, - (q15_t)0x269b, (q15_t)0x3abf, (q15_t)0x26a6, (q15_t)0x3ac4, (q15_t)0x26b2, (q15_t)0x3ac9, (q15_t)0x26bd, (q15_t)0x3ace, - (q15_t)0x26c9, (q15_t)0x3ad3, (q15_t)0x26d4, (q15_t)0x3ad8, (q15_t)0x26e0, (q15_t)0x3add, (q15_t)0x26ec, (q15_t)0x3ae2, - (q15_t)0x26f7, (q15_t)0x3ae6, (q15_t)0x2703, (q15_t)0x3aeb, (q15_t)0x270e, (q15_t)0x3af0, (q15_t)0x271a, (q15_t)0x3af5, - (q15_t)0x2725, (q15_t)0x3afa, (q15_t)0x2731, (q15_t)0x3aff, (q15_t)0x273d, (q15_t)0x3b04, (q15_t)0x2748, (q15_t)0x3b09, - (q15_t)0x2754, (q15_t)0x3b0e, (q15_t)0x275f, (q15_t)0x3b12, (q15_t)0x276b, (q15_t)0x3b17, (q15_t)0x2777, (q15_t)0x3b1c, - (q15_t)0x2782, (q15_t)0x3b21, (q15_t)0x278e, (q15_t)0x3b26, (q15_t)0x2799, (q15_t)0x3b2a, (q15_t)0x27a5, (q15_t)0x3b2f, - (q15_t)0x27b1, (q15_t)0x3b34, (q15_t)0x27bc, (q15_t)0x3b39, (q15_t)0x27c8, (q15_t)0x3b3e, (q15_t)0x27d3, (q15_t)0x3b42, - (q15_t)0x27df, (q15_t)0x3b47, (q15_t)0x27eb, (q15_t)0x3b4c, (q15_t)0x27f6, (q15_t)0x3b50, (q15_t)0x2802, (q15_t)0x3b55, - (q15_t)0x280e, (q15_t)0x3b5a, (q15_t)0x2819, (q15_t)0x3b5f, (q15_t)0x2825, (q15_t)0x3b63, (q15_t)0x2831, (q15_t)0x3b68, - (q15_t)0x283c, (q15_t)0x3b6d, (q15_t)0x2848, (q15_t)0x3b71, (q15_t)0x2854, (q15_t)0x3b76, (q15_t)0x285f, (q15_t)0x3b7b, - (q15_t)0x286b, (q15_t)0x3b7f, (q15_t)0x2877, (q15_t)0x3b84, (q15_t)0x2882, (q15_t)0x3b88, (q15_t)0x288e, (q15_t)0x3b8d, - (q15_t)0x289a, (q15_t)0x3b92, (q15_t)0x28a5, (q15_t)0x3b96, (q15_t)0x28b1, (q15_t)0x3b9b, (q15_t)0x28bd, (q15_t)0x3b9f, - (q15_t)0x28c9, (q15_t)0x3ba4, (q15_t)0x28d4, (q15_t)0x3ba9, (q15_t)0x28e0, (q15_t)0x3bad, (q15_t)0x28ec, (q15_t)0x3bb2, - (q15_t)0x28f7, (q15_t)0x3bb6, (q15_t)0x2903, (q15_t)0x3bbb, (q15_t)0x290f, (q15_t)0x3bbf, (q15_t)0x291b, (q15_t)0x3bc4, - (q15_t)0x2926, (q15_t)0x3bc8, (q15_t)0x2932, (q15_t)0x3bcd, (q15_t)0x293e, (q15_t)0x3bd1, (q15_t)0x294a, (q15_t)0x3bd6, - (q15_t)0x2955, (q15_t)0x3bda, (q15_t)0x2961, (q15_t)0x3bde, (q15_t)0x296d, (q15_t)0x3be3, (q15_t)0x2979, (q15_t)0x3be7, - (q15_t)0x2984, (q15_t)0x3bec, (q15_t)0x2990, (q15_t)0x3bf0, (q15_t)0x299c, (q15_t)0x3bf5, (q15_t)0x29a8, (q15_t)0x3bf9, - (q15_t)0x29b4, (q15_t)0x3bfd, (q15_t)0x29bf, (q15_t)0x3c02, (q15_t)0x29cb, (q15_t)0x3c06, (q15_t)0x29d7, (q15_t)0x3c0a, - (q15_t)0x29e3, (q15_t)0x3c0f, (q15_t)0x29ee, (q15_t)0x3c13, (q15_t)0x29fa, (q15_t)0x3c17, (q15_t)0x2a06, (q15_t)0x3c1c, - (q15_t)0x2a12, (q15_t)0x3c20, (q15_t)0x2a1e, (q15_t)0x3c24, (q15_t)0x2a29, (q15_t)0x3c29, (q15_t)0x2a35, (q15_t)0x3c2d, - (q15_t)0x2a41, (q15_t)0x3c31, (q15_t)0x2a4d, (q15_t)0x3c36, (q15_t)0x2a59, (q15_t)0x3c3a, (q15_t)0x2a65, (q15_t)0x3c3e, - (q15_t)0x2a70, (q15_t)0x3c42, (q15_t)0x2a7c, (q15_t)0x3c46, (q15_t)0x2a88, (q15_t)0x3c4b, (q15_t)0x2a94, (q15_t)0x3c4f, - (q15_t)0x2aa0, (q15_t)0x3c53, (q15_t)0x2aac, (q15_t)0x3c57, (q15_t)0x2ab7, (q15_t)0x3c5b, (q15_t)0x2ac3, (q15_t)0x3c60, - (q15_t)0x2acf, (q15_t)0x3c64, (q15_t)0x2adb, (q15_t)0x3c68, (q15_t)0x2ae7, (q15_t)0x3c6c, (q15_t)0x2af3, (q15_t)0x3c70, - (q15_t)0x2aff, (q15_t)0x3c74, (q15_t)0x2b0a, (q15_t)0x3c79, (q15_t)0x2b16, (q15_t)0x3c7d, (q15_t)0x2b22, (q15_t)0x3c81, - (q15_t)0x2b2e, (q15_t)0x3c85, (q15_t)0x2b3a, (q15_t)0x3c89, (q15_t)0x2b46, (q15_t)0x3c8d, (q15_t)0x2b52, (q15_t)0x3c91, - (q15_t)0x2b5e, (q15_t)0x3c95, (q15_t)0x2b6a, (q15_t)0x3c99, (q15_t)0x2b75, (q15_t)0x3c9d, (q15_t)0x2b81, (q15_t)0x3ca1, - (q15_t)0x2b8d, (q15_t)0x3ca5, (q15_t)0x2b99, (q15_t)0x3ca9, (q15_t)0x2ba5, (q15_t)0x3cad, (q15_t)0x2bb1, (q15_t)0x3cb1, - (q15_t)0x2bbd, (q15_t)0x3cb5, (q15_t)0x2bc9, (q15_t)0x3cb9, (q15_t)0x2bd5, (q15_t)0x3cbd, (q15_t)0x2be1, (q15_t)0x3cc1, - (q15_t)0x2bed, (q15_t)0x3cc5, (q15_t)0x2bf9, (q15_t)0x3cc9, (q15_t)0x2c05, (q15_t)0x3ccd, (q15_t)0x2c10, (q15_t)0x3cd1, - (q15_t)0x2c1c, (q15_t)0x3cd5, (q15_t)0x2c28, (q15_t)0x3cd9, (q15_t)0x2c34, (q15_t)0x3cdd, (q15_t)0x2c40, (q15_t)0x3ce0, - (q15_t)0x2c4c, (q15_t)0x3ce4, (q15_t)0x2c58, (q15_t)0x3ce8, (q15_t)0x2c64, (q15_t)0x3cec, (q15_t)0x2c70, (q15_t)0x3cf0, - (q15_t)0x2c7c, (q15_t)0x3cf4, (q15_t)0x2c88, (q15_t)0x3cf8, (q15_t)0x2c94, (q15_t)0x3cfb, (q15_t)0x2ca0, (q15_t)0x3cff, - (q15_t)0x2cac, (q15_t)0x3d03, (q15_t)0x2cb8, (q15_t)0x3d07, (q15_t)0x2cc4, (q15_t)0x3d0b, (q15_t)0x2cd0, (q15_t)0x3d0e, - (q15_t)0x2cdc, (q15_t)0x3d12, (q15_t)0x2ce8, (q15_t)0x3d16, (q15_t)0x2cf4, (q15_t)0x3d1a, (q15_t)0x2d00, (q15_t)0x3d1d, - (q15_t)0x2d0c, (q15_t)0x3d21, (q15_t)0x2d18, (q15_t)0x3d25, (q15_t)0x2d24, (q15_t)0x3d28, (q15_t)0x2d30, (q15_t)0x3d2c, - (q15_t)0x2d3c, (q15_t)0x3d30, (q15_t)0x2d48, (q15_t)0x3d34, (q15_t)0x2d54, (q15_t)0x3d37, (q15_t)0x2d60, (q15_t)0x3d3b, - (q15_t)0x2d6c, (q15_t)0x3d3f, (q15_t)0x2d78, (q15_t)0x3d42, (q15_t)0x2d84, (q15_t)0x3d46, (q15_t)0x2d90, (q15_t)0x3d49, - (q15_t)0x2d9c, (q15_t)0x3d4d, (q15_t)0x2da8, (q15_t)0x3d51, (q15_t)0x2db4, (q15_t)0x3d54, (q15_t)0x2dc0, (q15_t)0x3d58, - (q15_t)0x2dcc, (q15_t)0x3d5b, (q15_t)0x2dd8, (q15_t)0x3d5f, (q15_t)0x2de4, (q15_t)0x3d63, (q15_t)0x2df0, (q15_t)0x3d66, - (q15_t)0x2dfc, (q15_t)0x3d6a, (q15_t)0x2e09, (q15_t)0x3d6d, (q15_t)0x2e15, (q15_t)0x3d71, (q15_t)0x2e21, (q15_t)0x3d74, - (q15_t)0x2e2d, (q15_t)0x3d78, (q15_t)0x2e39, (q15_t)0x3d7b, (q15_t)0x2e45, (q15_t)0x3d7f, (q15_t)0x2e51, (q15_t)0x3d82, - (q15_t)0x2e5d, (q15_t)0x3d86, (q15_t)0x2e69, (q15_t)0x3d89, (q15_t)0x2e75, (q15_t)0x3d8d, (q15_t)0x2e81, (q15_t)0x3d90, - (q15_t)0x2e8d, (q15_t)0x3d93, (q15_t)0x2e99, (q15_t)0x3d97, (q15_t)0x2ea6, (q15_t)0x3d9a, (q15_t)0x2eb2, (q15_t)0x3d9e, - (q15_t)0x2ebe, (q15_t)0x3da1, (q15_t)0x2eca, (q15_t)0x3da4, (q15_t)0x2ed6, (q15_t)0x3da8, (q15_t)0x2ee2, (q15_t)0x3dab, - (q15_t)0x2eee, (q15_t)0x3daf, (q15_t)0x2efa, (q15_t)0x3db2, (q15_t)0x2f06, (q15_t)0x3db5, (q15_t)0x2f13, (q15_t)0x3db9, - (q15_t)0x2f1f, (q15_t)0x3dbc, (q15_t)0x2f2b, (q15_t)0x3dbf, (q15_t)0x2f37, (q15_t)0x3dc2, (q15_t)0x2f43, (q15_t)0x3dc6, - (q15_t)0x2f4f, (q15_t)0x3dc9, (q15_t)0x2f5b, (q15_t)0x3dcc, (q15_t)0x2f67, (q15_t)0x3dd0, (q15_t)0x2f74, (q15_t)0x3dd3, - (q15_t)0x2f80, (q15_t)0x3dd6, (q15_t)0x2f8c, (q15_t)0x3dd9, (q15_t)0x2f98, (q15_t)0x3ddd, (q15_t)0x2fa4, (q15_t)0x3de0, - (q15_t)0x2fb0, (q15_t)0x3de3, (q15_t)0x2fbc, (q15_t)0x3de6, (q15_t)0x2fc9, (q15_t)0x3de9, (q15_t)0x2fd5, (q15_t)0x3ded, - (q15_t)0x2fe1, (q15_t)0x3df0, (q15_t)0x2fed, (q15_t)0x3df3, (q15_t)0x2ff9, (q15_t)0x3df6, (q15_t)0x3005, (q15_t)0x3df9, - (q15_t)0x3012, (q15_t)0x3dfc, (q15_t)0x301e, (q15_t)0x3dff, (q15_t)0x302a, (q15_t)0x3e03, (q15_t)0x3036, (q15_t)0x3e06, - (q15_t)0x3042, (q15_t)0x3e09, (q15_t)0x304e, (q15_t)0x3e0c, (q15_t)0x305b, (q15_t)0x3e0f, (q15_t)0x3067, (q15_t)0x3e12, - (q15_t)0x3073, (q15_t)0x3e15, (q15_t)0x307f, (q15_t)0x3e18, (q15_t)0x308b, (q15_t)0x3e1b, (q15_t)0x3098, (q15_t)0x3e1e, - (q15_t)0x30a4, (q15_t)0x3e21, (q15_t)0x30b0, (q15_t)0x3e24, (q15_t)0x30bc, (q15_t)0x3e27, (q15_t)0x30c8, (q15_t)0x3e2a, - (q15_t)0x30d5, (q15_t)0x3e2d, (q15_t)0x30e1, (q15_t)0x3e30, (q15_t)0x30ed, (q15_t)0x3e33, (q15_t)0x30f9, (q15_t)0x3e36, - (q15_t)0x3105, (q15_t)0x3e39, (q15_t)0x3112, (q15_t)0x3e3c, (q15_t)0x311e, (q15_t)0x3e3f, (q15_t)0x312a, (q15_t)0x3e42, - (q15_t)0x3136, (q15_t)0x3e45, (q15_t)0x3143, (q15_t)0x3e48, (q15_t)0x314f, (q15_t)0x3e4a, (q15_t)0x315b, (q15_t)0x3e4d, - (q15_t)0x3167, (q15_t)0x3e50, (q15_t)0x3174, (q15_t)0x3e53, (q15_t)0x3180, (q15_t)0x3e56, (q15_t)0x318c, (q15_t)0x3e59, - (q15_t)0x3198, (q15_t)0x3e5c, (q15_t)0x31a4, (q15_t)0x3e5e, (q15_t)0x31b1, (q15_t)0x3e61, (q15_t)0x31bd, (q15_t)0x3e64, - (q15_t)0x31c9, (q15_t)0x3e67, (q15_t)0x31d5, (q15_t)0x3e6a, (q15_t)0x31e2, (q15_t)0x3e6c, (q15_t)0x31ee, (q15_t)0x3e6f, - (q15_t)0x31fa, (q15_t)0x3e72, (q15_t)0x3207, (q15_t)0x3e75, (q15_t)0x3213, (q15_t)0x3e77, (q15_t)0x321f, (q15_t)0x3e7a, - (q15_t)0x322b, (q15_t)0x3e7d, (q15_t)0x3238, (q15_t)0x3e80, (q15_t)0x3244, (q15_t)0x3e82, (q15_t)0x3250, (q15_t)0x3e85, - (q15_t)0x325c, (q15_t)0x3e88, (q15_t)0x3269, (q15_t)0x3e8a, (q15_t)0x3275, (q15_t)0x3e8d, (q15_t)0x3281, (q15_t)0x3e90, - (q15_t)0x328e, (q15_t)0x3e92, (q15_t)0x329a, (q15_t)0x3e95, (q15_t)0x32a6, (q15_t)0x3e98, (q15_t)0x32b2, (q15_t)0x3e9a, - (q15_t)0x32bf, (q15_t)0x3e9d, (q15_t)0x32cb, (q15_t)0x3e9f, (q15_t)0x32d7, (q15_t)0x3ea2, (q15_t)0x32e4, (q15_t)0x3ea5, - (q15_t)0x32f0, (q15_t)0x3ea7, (q15_t)0x32fc, (q15_t)0x3eaa, (q15_t)0x3308, (q15_t)0x3eac, (q15_t)0x3315, (q15_t)0x3eaf, - (q15_t)0x3321, (q15_t)0x3eb1, (q15_t)0x332d, (q15_t)0x3eb4, (q15_t)0x333a, (q15_t)0x3eb6, (q15_t)0x3346, (q15_t)0x3eb9, - (q15_t)0x3352, (q15_t)0x3ebb, (q15_t)0x335f, (q15_t)0x3ebe, (q15_t)0x336b, (q15_t)0x3ec0, (q15_t)0x3377, (q15_t)0x3ec3, - (q15_t)0x3384, (q15_t)0x3ec5, (q15_t)0x3390, (q15_t)0x3ec8, (q15_t)0x339c, (q15_t)0x3eca, (q15_t)0x33a9, (q15_t)0x3ecc, - (q15_t)0x33b5, (q15_t)0x3ecf, (q15_t)0x33c1, (q15_t)0x3ed1, (q15_t)0x33ce, (q15_t)0x3ed4, (q15_t)0x33da, (q15_t)0x3ed6, - (q15_t)0x33e6, (q15_t)0x3ed8, (q15_t)0x33f3, (q15_t)0x3edb, (q15_t)0x33ff, (q15_t)0x3edd, (q15_t)0x340b, (q15_t)0x3ee0, - (q15_t)0x3418, (q15_t)0x3ee2, (q15_t)0x3424, (q15_t)0x3ee4, (q15_t)0x3430, (q15_t)0x3ee7, (q15_t)0x343d, (q15_t)0x3ee9, - (q15_t)0x3449, (q15_t)0x3eeb, (q15_t)0x3455, (q15_t)0x3eed, (q15_t)0x3462, (q15_t)0x3ef0, (q15_t)0x346e, (q15_t)0x3ef2, - (q15_t)0x347b, (q15_t)0x3ef4, (q15_t)0x3487, (q15_t)0x3ef7, (q15_t)0x3493, (q15_t)0x3ef9, (q15_t)0x34a0, (q15_t)0x3efb, - (q15_t)0x34ac, (q15_t)0x3efd, (q15_t)0x34b8, (q15_t)0x3f00, (q15_t)0x34c5, (q15_t)0x3f02, (q15_t)0x34d1, (q15_t)0x3f04, - (q15_t)0x34dd, (q15_t)0x3f06, (q15_t)0x34ea, (q15_t)0x3f08, (q15_t)0x34f6, (q15_t)0x3f0a, (q15_t)0x3503, (q15_t)0x3f0d, - (q15_t)0x350f, (q15_t)0x3f0f, (q15_t)0x351b, (q15_t)0x3f11, (q15_t)0x3528, (q15_t)0x3f13, (q15_t)0x3534, (q15_t)0x3f15, - (q15_t)0x3540, (q15_t)0x3f17, (q15_t)0x354d, (q15_t)0x3f19, (q15_t)0x3559, (q15_t)0x3f1c, (q15_t)0x3566, (q15_t)0x3f1e, - (q15_t)0x3572, (q15_t)0x3f20, (q15_t)0x357e, (q15_t)0x3f22, (q15_t)0x358b, (q15_t)0x3f24, (q15_t)0x3597, (q15_t)0x3f26, - (q15_t)0x35a4, (q15_t)0x3f28, (q15_t)0x35b0, (q15_t)0x3f2a, (q15_t)0x35bc, (q15_t)0x3f2c, (q15_t)0x35c9, (q15_t)0x3f2e, - (q15_t)0x35d5, (q15_t)0x3f30, (q15_t)0x35e2, (q15_t)0x3f32, (q15_t)0x35ee, (q15_t)0x3f34, (q15_t)0x35fa, (q15_t)0x3f36, - (q15_t)0x3607, (q15_t)0x3f38, (q15_t)0x3613, (q15_t)0x3f3a, (q15_t)0x3620, (q15_t)0x3f3c, (q15_t)0x362c, (q15_t)0x3f3e, - (q15_t)0x3639, (q15_t)0x3f40, (q15_t)0x3645, (q15_t)0x3f42, (q15_t)0x3651, (q15_t)0x3f43, (q15_t)0x365e, (q15_t)0x3f45, - (q15_t)0x366a, (q15_t)0x3f47, (q15_t)0x3677, (q15_t)0x3f49, (q15_t)0x3683, (q15_t)0x3f4b, (q15_t)0x3690, (q15_t)0x3f4d, - (q15_t)0x369c, (q15_t)0x3f4f, (q15_t)0x36a8, (q15_t)0x3f51, (q15_t)0x36b5, (q15_t)0x3f52, (q15_t)0x36c1, (q15_t)0x3f54, - (q15_t)0x36ce, (q15_t)0x3f56, (q15_t)0x36da, (q15_t)0x3f58, (q15_t)0x36e7, (q15_t)0x3f5a, (q15_t)0x36f3, (q15_t)0x3f5b, - (q15_t)0x36ff, (q15_t)0x3f5d, (q15_t)0x370c, (q15_t)0x3f5f, (q15_t)0x3718, (q15_t)0x3f61, (q15_t)0x3725, (q15_t)0x3f62, - (q15_t)0x3731, (q15_t)0x3f64, (q15_t)0x373e, (q15_t)0x3f66, (q15_t)0x374a, (q15_t)0x3f68, (q15_t)0x3757, (q15_t)0x3f69, - (q15_t)0x3763, (q15_t)0x3f6b, (q15_t)0x376f, (q15_t)0x3f6d, (q15_t)0x377c, (q15_t)0x3f6e, (q15_t)0x3788, (q15_t)0x3f70, - (q15_t)0x3795, (q15_t)0x3f72, (q15_t)0x37a1, (q15_t)0x3f73, (q15_t)0x37ae, (q15_t)0x3f75, (q15_t)0x37ba, (q15_t)0x3f77, - (q15_t)0x37c7, (q15_t)0x3f78, (q15_t)0x37d3, (q15_t)0x3f7a, (q15_t)0x37e0, (q15_t)0x3f7b, (q15_t)0x37ec, (q15_t)0x3f7d, - (q15_t)0x37f9, (q15_t)0x3f7f, (q15_t)0x3805, (q15_t)0x3f80, (q15_t)0x3811, (q15_t)0x3f82, (q15_t)0x381e, (q15_t)0x3f83, - (q15_t)0x382a, (q15_t)0x3f85, (q15_t)0x3837, (q15_t)0x3f86, (q15_t)0x3843, (q15_t)0x3f88, (q15_t)0x3850, (q15_t)0x3f89, - (q15_t)0x385c, (q15_t)0x3f8b, (q15_t)0x3869, (q15_t)0x3f8c, (q15_t)0x3875, (q15_t)0x3f8e, (q15_t)0x3882, (q15_t)0x3f8f, - (q15_t)0x388e, (q15_t)0x3f91, (q15_t)0x389b, (q15_t)0x3f92, (q15_t)0x38a7, (q15_t)0x3f94, (q15_t)0x38b4, (q15_t)0x3f95, - (q15_t)0x38c0, (q15_t)0x3f97, (q15_t)0x38cd, (q15_t)0x3f98, (q15_t)0x38d9, (q15_t)0x3f99, (q15_t)0x38e6, (q15_t)0x3f9b, - (q15_t)0x38f2, (q15_t)0x3f9c, (q15_t)0x38ff, (q15_t)0x3f9e, (q15_t)0x390b, (q15_t)0x3f9f, (q15_t)0x3918, (q15_t)0x3fa0, - (q15_t)0x3924, (q15_t)0x3fa2, (q15_t)0x3931, (q15_t)0x3fa3, (q15_t)0x393d, (q15_t)0x3fa4, (q15_t)0x394a, (q15_t)0x3fa6, - (q15_t)0x3956, (q15_t)0x3fa7, (q15_t)0x3963, (q15_t)0x3fa8, (q15_t)0x396f, (q15_t)0x3faa, (q15_t)0x397c, (q15_t)0x3fab, - (q15_t)0x3988, (q15_t)0x3fac, (q15_t)0x3995, (q15_t)0x3fad, (q15_t)0x39a1, (q15_t)0x3faf, (q15_t)0x39ae, (q15_t)0x3fb0, - (q15_t)0x39ba, (q15_t)0x3fb1, (q15_t)0x39c7, (q15_t)0x3fb2, (q15_t)0x39d3, (q15_t)0x3fb4, (q15_t)0x39e0, (q15_t)0x3fb5, - (q15_t)0x39ec, (q15_t)0x3fb6, (q15_t)0x39f9, (q15_t)0x3fb7, (q15_t)0x3a05, (q15_t)0x3fb8, (q15_t)0x3a12, (q15_t)0x3fb9, - (q15_t)0x3a1e, (q15_t)0x3fbb, (q15_t)0x3a2b, (q15_t)0x3fbc, (q15_t)0x3a37, (q15_t)0x3fbd, (q15_t)0x3a44, (q15_t)0x3fbe, - (q15_t)0x3a50, (q15_t)0x3fbf, (q15_t)0x3a5d, (q15_t)0x3fc0, (q15_t)0x3a69, (q15_t)0x3fc1, (q15_t)0x3a76, (q15_t)0x3fc3, - (q15_t)0x3a82, (q15_t)0x3fc4, (q15_t)0x3a8f, (q15_t)0x3fc5, (q15_t)0x3a9b, (q15_t)0x3fc6, (q15_t)0x3aa8, (q15_t)0x3fc7, - (q15_t)0x3ab4, (q15_t)0x3fc8, (q15_t)0x3ac1, (q15_t)0x3fc9, (q15_t)0x3acd, (q15_t)0x3fca, (q15_t)0x3ada, (q15_t)0x3fcb, - (q15_t)0x3ae6, (q15_t)0x3fcc, (q15_t)0x3af3, (q15_t)0x3fcd, (q15_t)0x3b00, (q15_t)0x3fce, (q15_t)0x3b0c, (q15_t)0x3fcf, - (q15_t)0x3b19, (q15_t)0x3fd0, (q15_t)0x3b25, (q15_t)0x3fd1, (q15_t)0x3b32, (q15_t)0x3fd2, (q15_t)0x3b3e, (q15_t)0x3fd3, - (q15_t)0x3b4b, (q15_t)0x3fd4, (q15_t)0x3b57, (q15_t)0x3fd5, (q15_t)0x3b64, (q15_t)0x3fd5, (q15_t)0x3b70, (q15_t)0x3fd6, - (q15_t)0x3b7d, (q15_t)0x3fd7, (q15_t)0x3b89, (q15_t)0x3fd8, (q15_t)0x3b96, (q15_t)0x3fd9, (q15_t)0x3ba2, (q15_t)0x3fda, - (q15_t)0x3baf, (q15_t)0x3fdb, (q15_t)0x3bbc, (q15_t)0x3fdc, (q15_t)0x3bc8, (q15_t)0x3fdc, (q15_t)0x3bd5, (q15_t)0x3fdd, - (q15_t)0x3be1, (q15_t)0x3fde, (q15_t)0x3bee, (q15_t)0x3fdf, (q15_t)0x3bfa, (q15_t)0x3fe0, (q15_t)0x3c07, (q15_t)0x3fe0, - (q15_t)0x3c13, (q15_t)0x3fe1, (q15_t)0x3c20, (q15_t)0x3fe2, (q15_t)0x3c2c, (q15_t)0x3fe3, (q15_t)0x3c39, (q15_t)0x3fe3, - (q15_t)0x3c45, (q15_t)0x3fe4, (q15_t)0x3c52, (q15_t)0x3fe5, (q15_t)0x3c5f, (q15_t)0x3fe6, (q15_t)0x3c6b, (q15_t)0x3fe6, - (q15_t)0x3c78, (q15_t)0x3fe7, (q15_t)0x3c84, (q15_t)0x3fe8, (q15_t)0x3c91, (q15_t)0x3fe8, (q15_t)0x3c9d, (q15_t)0x3fe9, - (q15_t)0x3caa, (q15_t)0x3fea, (q15_t)0x3cb6, (q15_t)0x3fea, (q15_t)0x3cc3, (q15_t)0x3feb, (q15_t)0x3cd0, (q15_t)0x3fec, - (q15_t)0x3cdc, (q15_t)0x3fec, (q15_t)0x3ce9, (q15_t)0x3fed, (q15_t)0x3cf5, (q15_t)0x3fed, (q15_t)0x3d02, (q15_t)0x3fee, - (q15_t)0x3d0e, (q15_t)0x3fef, (q15_t)0x3d1b, (q15_t)0x3fef, (q15_t)0x3d27, (q15_t)0x3ff0, (q15_t)0x3d34, (q15_t)0x3ff0, - (q15_t)0x3d40, (q15_t)0x3ff1, (q15_t)0x3d4d, (q15_t)0x3ff1, (q15_t)0x3d5a, (q15_t)0x3ff2, (q15_t)0x3d66, (q15_t)0x3ff2, - (q15_t)0x3d73, (q15_t)0x3ff3, (q15_t)0x3d7f, (q15_t)0x3ff3, (q15_t)0x3d8c, (q15_t)0x3ff4, (q15_t)0x3d98, (q15_t)0x3ff4, - (q15_t)0x3da5, (q15_t)0x3ff5, (q15_t)0x3db2, (q15_t)0x3ff5, (q15_t)0x3dbe, (q15_t)0x3ff6, (q15_t)0x3dcb, (q15_t)0x3ff6, - (q15_t)0x3dd7, (q15_t)0x3ff7, (q15_t)0x3de4, (q15_t)0x3ff7, (q15_t)0x3df0, (q15_t)0x3ff7, (q15_t)0x3dfd, (q15_t)0x3ff8, - (q15_t)0x3e09, (q15_t)0x3ff8, (q15_t)0x3e16, (q15_t)0x3ff9, (q15_t)0x3e23, (q15_t)0x3ff9, (q15_t)0x3e2f, (q15_t)0x3ff9, - (q15_t)0x3e3c, (q15_t)0x3ffa, (q15_t)0x3e48, (q15_t)0x3ffa, (q15_t)0x3e55, (q15_t)0x3ffa, (q15_t)0x3e61, (q15_t)0x3ffb, - (q15_t)0x3e6e, (q15_t)0x3ffb, (q15_t)0x3e7a, (q15_t)0x3ffb, (q15_t)0x3e87, (q15_t)0x3ffc, (q15_t)0x3e94, (q15_t)0x3ffc, - (q15_t)0x3ea0, (q15_t)0x3ffc, (q15_t)0x3ead, (q15_t)0x3ffc, (q15_t)0x3eb9, (q15_t)0x3ffd, (q15_t)0x3ec6, (q15_t)0x3ffd, - (q15_t)0x3ed2, (q15_t)0x3ffd, (q15_t)0x3edf, (q15_t)0x3ffd, (q15_t)0x3eec, (q15_t)0x3ffe, (q15_t)0x3ef8, (q15_t)0x3ffe, - (q15_t)0x3f05, (q15_t)0x3ffe, (q15_t)0x3f11, (q15_t)0x3ffe, (q15_t)0x3f1e, (q15_t)0x3ffe, (q15_t)0x3f2a, (q15_t)0x3fff, - (q15_t)0x3f37, (q15_t)0x3fff, (q15_t)0x3f44, (q15_t)0x3fff, (q15_t)0x3f50, (q15_t)0x3fff, (q15_t)0x3f5d, (q15_t)0x3fff, - (q15_t)0x3f69, (q15_t)0x3fff, (q15_t)0x3f76, (q15_t)0x3fff, (q15_t)0x3f82, (q15_t)0x4000, (q15_t)0x3f8f, (q15_t)0x4000, - (q15_t)0x3f9b, (q15_t)0x4000, (q15_t)0x3fa8, (q15_t)0x4000, (q15_t)0x3fb5, (q15_t)0x4000, (q15_t)0x3fc1, (q15_t)0x4000, - (q15_t)0x3fce, (q15_t)0x4000, (q15_t)0x3fda, (q15_t)0x4000, (q15_t)0x3fe7, (q15_t)0x4000, (q15_t)0x3ff3, (q15_t)0x4000, -}; - -/** -* \par -* Generation of real_CoefB array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-*  {
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-*  } 
-* \par -* Convert to fixed point Q15 format -* round(pBTable[i] * pow(2, 15)) -* -*/ -const q15_t ALIGN4 realCoefBQ15[8192] = { - (q15_t)0x4000, (q15_t)0x4000, (q15_t)0x400d, (q15_t)0x4000, (q15_t)0x4019, (q15_t)0x4000, (q15_t)0x4026, (q15_t)0x4000, - (q15_t)0x4032, (q15_t)0x4000, (q15_t)0x403f, (q15_t)0x4000, (q15_t)0x404b, (q15_t)0x4000, (q15_t)0x4058, (q15_t)0x4000, - (q15_t)0x4065, (q15_t)0x4000, (q15_t)0x4071, (q15_t)0x4000, (q15_t)0x407e, (q15_t)0x4000, (q15_t)0x408a, (q15_t)0x3fff, - (q15_t)0x4097, (q15_t)0x3fff, (q15_t)0x40a3, (q15_t)0x3fff, (q15_t)0x40b0, (q15_t)0x3fff, (q15_t)0x40bc, (q15_t)0x3fff, - (q15_t)0x40c9, (q15_t)0x3fff, (q15_t)0x40d6, (q15_t)0x3fff, (q15_t)0x40e2, (q15_t)0x3ffe, (q15_t)0x40ef, (q15_t)0x3ffe, - (q15_t)0x40fb, (q15_t)0x3ffe, (q15_t)0x4108, (q15_t)0x3ffe, (q15_t)0x4114, (q15_t)0x3ffe, (q15_t)0x4121, (q15_t)0x3ffd, - (q15_t)0x412e, (q15_t)0x3ffd, (q15_t)0x413a, (q15_t)0x3ffd, (q15_t)0x4147, (q15_t)0x3ffd, (q15_t)0x4153, (q15_t)0x3ffc, - (q15_t)0x4160, (q15_t)0x3ffc, (q15_t)0x416c, (q15_t)0x3ffc, (q15_t)0x4179, (q15_t)0x3ffc, (q15_t)0x4186, (q15_t)0x3ffb, - (q15_t)0x4192, (q15_t)0x3ffb, (q15_t)0x419f, (q15_t)0x3ffb, (q15_t)0x41ab, (q15_t)0x3ffa, (q15_t)0x41b8, (q15_t)0x3ffa, - (q15_t)0x41c4, (q15_t)0x3ffa, (q15_t)0x41d1, (q15_t)0x3ff9, (q15_t)0x41dd, (q15_t)0x3ff9, (q15_t)0x41ea, (q15_t)0x3ff9, - (q15_t)0x41f7, (q15_t)0x3ff8, (q15_t)0x4203, (q15_t)0x3ff8, (q15_t)0x4210, (q15_t)0x3ff7, (q15_t)0x421c, (q15_t)0x3ff7, - (q15_t)0x4229, (q15_t)0x3ff7, (q15_t)0x4235, (q15_t)0x3ff6, (q15_t)0x4242, (q15_t)0x3ff6, (q15_t)0x424e, (q15_t)0x3ff5, - (q15_t)0x425b, (q15_t)0x3ff5, (q15_t)0x4268, (q15_t)0x3ff4, (q15_t)0x4274, (q15_t)0x3ff4, (q15_t)0x4281, (q15_t)0x3ff3, - (q15_t)0x428d, (q15_t)0x3ff3, (q15_t)0x429a, (q15_t)0x3ff2, (q15_t)0x42a6, (q15_t)0x3ff2, (q15_t)0x42b3, (q15_t)0x3ff1, - (q15_t)0x42c0, (q15_t)0x3ff1, (q15_t)0x42cc, (q15_t)0x3ff0, (q15_t)0x42d9, (q15_t)0x3ff0, (q15_t)0x42e5, (q15_t)0x3fef, - (q15_t)0x42f2, (q15_t)0x3fef, (q15_t)0x42fe, (q15_t)0x3fee, (q15_t)0x430b, (q15_t)0x3fed, (q15_t)0x4317, (q15_t)0x3fed, - (q15_t)0x4324, (q15_t)0x3fec, (q15_t)0x4330, (q15_t)0x3fec, (q15_t)0x433d, (q15_t)0x3feb, (q15_t)0x434a, (q15_t)0x3fea, - (q15_t)0x4356, (q15_t)0x3fea, (q15_t)0x4363, (q15_t)0x3fe9, (q15_t)0x436f, (q15_t)0x3fe8, (q15_t)0x437c, (q15_t)0x3fe8, - (q15_t)0x4388, (q15_t)0x3fe7, (q15_t)0x4395, (q15_t)0x3fe6, (q15_t)0x43a1, (q15_t)0x3fe6, (q15_t)0x43ae, (q15_t)0x3fe5, - (q15_t)0x43bb, (q15_t)0x3fe4, (q15_t)0x43c7, (q15_t)0x3fe3, (q15_t)0x43d4, (q15_t)0x3fe3, (q15_t)0x43e0, (q15_t)0x3fe2, - (q15_t)0x43ed, (q15_t)0x3fe1, (q15_t)0x43f9, (q15_t)0x3fe0, (q15_t)0x4406, (q15_t)0x3fe0, (q15_t)0x4412, (q15_t)0x3fdf, - (q15_t)0x441f, (q15_t)0x3fde, (q15_t)0x442b, (q15_t)0x3fdd, (q15_t)0x4438, (q15_t)0x3fdc, (q15_t)0x4444, (q15_t)0x3fdc, - (q15_t)0x4451, (q15_t)0x3fdb, (q15_t)0x445e, (q15_t)0x3fda, (q15_t)0x446a, (q15_t)0x3fd9, (q15_t)0x4477, (q15_t)0x3fd8, - (q15_t)0x4483, (q15_t)0x3fd7, (q15_t)0x4490, (q15_t)0x3fd6, (q15_t)0x449c, (q15_t)0x3fd5, (q15_t)0x44a9, (q15_t)0x3fd5, - (q15_t)0x44b5, (q15_t)0x3fd4, (q15_t)0x44c2, (q15_t)0x3fd3, (q15_t)0x44ce, (q15_t)0x3fd2, (q15_t)0x44db, (q15_t)0x3fd1, - (q15_t)0x44e7, (q15_t)0x3fd0, (q15_t)0x44f4, (q15_t)0x3fcf, (q15_t)0x4500, (q15_t)0x3fce, (q15_t)0x450d, (q15_t)0x3fcd, - (q15_t)0x451a, (q15_t)0x3fcc, (q15_t)0x4526, (q15_t)0x3fcb, (q15_t)0x4533, (q15_t)0x3fca, (q15_t)0x453f, (q15_t)0x3fc9, - (q15_t)0x454c, (q15_t)0x3fc8, (q15_t)0x4558, (q15_t)0x3fc7, (q15_t)0x4565, (q15_t)0x3fc6, (q15_t)0x4571, (q15_t)0x3fc5, - (q15_t)0x457e, (q15_t)0x3fc4, (q15_t)0x458a, (q15_t)0x3fc3, (q15_t)0x4597, (q15_t)0x3fc1, (q15_t)0x45a3, (q15_t)0x3fc0, - (q15_t)0x45b0, (q15_t)0x3fbf, (q15_t)0x45bc, (q15_t)0x3fbe, (q15_t)0x45c9, (q15_t)0x3fbd, (q15_t)0x45d5, (q15_t)0x3fbc, - (q15_t)0x45e2, (q15_t)0x3fbb, (q15_t)0x45ee, (q15_t)0x3fb9, (q15_t)0x45fb, (q15_t)0x3fb8, (q15_t)0x4607, (q15_t)0x3fb7, - (q15_t)0x4614, (q15_t)0x3fb6, (q15_t)0x4620, (q15_t)0x3fb5, (q15_t)0x462d, (q15_t)0x3fb4, (q15_t)0x4639, (q15_t)0x3fb2, - (q15_t)0x4646, (q15_t)0x3fb1, (q15_t)0x4652, (q15_t)0x3fb0, (q15_t)0x465f, (q15_t)0x3faf, (q15_t)0x466b, (q15_t)0x3fad, - (q15_t)0x4678, (q15_t)0x3fac, (q15_t)0x4684, (q15_t)0x3fab, (q15_t)0x4691, (q15_t)0x3faa, (q15_t)0x469d, (q15_t)0x3fa8, - (q15_t)0x46aa, (q15_t)0x3fa7, (q15_t)0x46b6, (q15_t)0x3fa6, (q15_t)0x46c3, (q15_t)0x3fa4, (q15_t)0x46cf, (q15_t)0x3fa3, - (q15_t)0x46dc, (q15_t)0x3fa2, (q15_t)0x46e8, (q15_t)0x3fa0, (q15_t)0x46f5, (q15_t)0x3f9f, (q15_t)0x4701, (q15_t)0x3f9e, - (q15_t)0x470e, (q15_t)0x3f9c, (q15_t)0x471a, (q15_t)0x3f9b, (q15_t)0x4727, (q15_t)0x3f99, (q15_t)0x4733, (q15_t)0x3f98, - (q15_t)0x4740, (q15_t)0x3f97, (q15_t)0x474c, (q15_t)0x3f95, (q15_t)0x4759, (q15_t)0x3f94, (q15_t)0x4765, (q15_t)0x3f92, - (q15_t)0x4772, (q15_t)0x3f91, (q15_t)0x477e, (q15_t)0x3f8f, (q15_t)0x478b, (q15_t)0x3f8e, (q15_t)0x4797, (q15_t)0x3f8c, - (q15_t)0x47a4, (q15_t)0x3f8b, (q15_t)0x47b0, (q15_t)0x3f89, (q15_t)0x47bd, (q15_t)0x3f88, (q15_t)0x47c9, (q15_t)0x3f86, - (q15_t)0x47d6, (q15_t)0x3f85, (q15_t)0x47e2, (q15_t)0x3f83, (q15_t)0x47ef, (q15_t)0x3f82, (q15_t)0x47fb, (q15_t)0x3f80, - (q15_t)0x4807, (q15_t)0x3f7f, (q15_t)0x4814, (q15_t)0x3f7d, (q15_t)0x4820, (q15_t)0x3f7b, (q15_t)0x482d, (q15_t)0x3f7a, - (q15_t)0x4839, (q15_t)0x3f78, (q15_t)0x4846, (q15_t)0x3f77, (q15_t)0x4852, (q15_t)0x3f75, (q15_t)0x485f, (q15_t)0x3f73, - (q15_t)0x486b, (q15_t)0x3f72, (q15_t)0x4878, (q15_t)0x3f70, (q15_t)0x4884, (q15_t)0x3f6e, (q15_t)0x4891, (q15_t)0x3f6d, - (q15_t)0x489d, (q15_t)0x3f6b, (q15_t)0x48a9, (q15_t)0x3f69, (q15_t)0x48b6, (q15_t)0x3f68, (q15_t)0x48c2, (q15_t)0x3f66, - (q15_t)0x48cf, (q15_t)0x3f64, (q15_t)0x48db, (q15_t)0x3f62, (q15_t)0x48e8, (q15_t)0x3f61, (q15_t)0x48f4, (q15_t)0x3f5f, - (q15_t)0x4901, (q15_t)0x3f5d, (q15_t)0x490d, (q15_t)0x3f5b, (q15_t)0x4919, (q15_t)0x3f5a, (q15_t)0x4926, (q15_t)0x3f58, - (q15_t)0x4932, (q15_t)0x3f56, (q15_t)0x493f, (q15_t)0x3f54, (q15_t)0x494b, (q15_t)0x3f52, (q15_t)0x4958, (q15_t)0x3f51, - (q15_t)0x4964, (q15_t)0x3f4f, (q15_t)0x4970, (q15_t)0x3f4d, (q15_t)0x497d, (q15_t)0x3f4b, (q15_t)0x4989, (q15_t)0x3f49, - (q15_t)0x4996, (q15_t)0x3f47, (q15_t)0x49a2, (q15_t)0x3f45, (q15_t)0x49af, (q15_t)0x3f43, (q15_t)0x49bb, (q15_t)0x3f42, - (q15_t)0x49c7, (q15_t)0x3f40, (q15_t)0x49d4, (q15_t)0x3f3e, (q15_t)0x49e0, (q15_t)0x3f3c, (q15_t)0x49ed, (q15_t)0x3f3a, - (q15_t)0x49f9, (q15_t)0x3f38, (q15_t)0x4a06, (q15_t)0x3f36, (q15_t)0x4a12, (q15_t)0x3f34, (q15_t)0x4a1e, (q15_t)0x3f32, - (q15_t)0x4a2b, (q15_t)0x3f30, (q15_t)0x4a37, (q15_t)0x3f2e, (q15_t)0x4a44, (q15_t)0x3f2c, (q15_t)0x4a50, (q15_t)0x3f2a, - (q15_t)0x4a5c, (q15_t)0x3f28, (q15_t)0x4a69, (q15_t)0x3f26, (q15_t)0x4a75, (q15_t)0x3f24, (q15_t)0x4a82, (q15_t)0x3f22, - (q15_t)0x4a8e, (q15_t)0x3f20, (q15_t)0x4a9a, (q15_t)0x3f1e, (q15_t)0x4aa7, (q15_t)0x3f1c, (q15_t)0x4ab3, (q15_t)0x3f19, - (q15_t)0x4ac0, (q15_t)0x3f17, (q15_t)0x4acc, (q15_t)0x3f15, (q15_t)0x4ad8, (q15_t)0x3f13, (q15_t)0x4ae5, (q15_t)0x3f11, - (q15_t)0x4af1, (q15_t)0x3f0f, (q15_t)0x4afd, (q15_t)0x3f0d, (q15_t)0x4b0a, (q15_t)0x3f0a, (q15_t)0x4b16, (q15_t)0x3f08, - (q15_t)0x4b23, (q15_t)0x3f06, (q15_t)0x4b2f, (q15_t)0x3f04, (q15_t)0x4b3b, (q15_t)0x3f02, (q15_t)0x4b48, (q15_t)0x3f00, - (q15_t)0x4b54, (q15_t)0x3efd, (q15_t)0x4b60, (q15_t)0x3efb, (q15_t)0x4b6d, (q15_t)0x3ef9, (q15_t)0x4b79, (q15_t)0x3ef7, - (q15_t)0x4b85, (q15_t)0x3ef4, (q15_t)0x4b92, (q15_t)0x3ef2, (q15_t)0x4b9e, (q15_t)0x3ef0, (q15_t)0x4bab, (q15_t)0x3eed, - (q15_t)0x4bb7, (q15_t)0x3eeb, (q15_t)0x4bc3, (q15_t)0x3ee9, (q15_t)0x4bd0, (q15_t)0x3ee7, (q15_t)0x4bdc, (q15_t)0x3ee4, - (q15_t)0x4be8, (q15_t)0x3ee2, (q15_t)0x4bf5, (q15_t)0x3ee0, (q15_t)0x4c01, (q15_t)0x3edd, (q15_t)0x4c0d, (q15_t)0x3edb, - (q15_t)0x4c1a, (q15_t)0x3ed8, (q15_t)0x4c26, (q15_t)0x3ed6, (q15_t)0x4c32, (q15_t)0x3ed4, (q15_t)0x4c3f, (q15_t)0x3ed1, - (q15_t)0x4c4b, (q15_t)0x3ecf, (q15_t)0x4c57, (q15_t)0x3ecc, (q15_t)0x4c64, (q15_t)0x3eca, (q15_t)0x4c70, (q15_t)0x3ec8, - (q15_t)0x4c7c, (q15_t)0x3ec5, (q15_t)0x4c89, (q15_t)0x3ec3, (q15_t)0x4c95, (q15_t)0x3ec0, (q15_t)0x4ca1, (q15_t)0x3ebe, - (q15_t)0x4cae, (q15_t)0x3ebb, (q15_t)0x4cba, (q15_t)0x3eb9, (q15_t)0x4cc6, (q15_t)0x3eb6, (q15_t)0x4cd3, (q15_t)0x3eb4, - (q15_t)0x4cdf, (q15_t)0x3eb1, (q15_t)0x4ceb, (q15_t)0x3eaf, (q15_t)0x4cf8, (q15_t)0x3eac, (q15_t)0x4d04, (q15_t)0x3eaa, - (q15_t)0x4d10, (q15_t)0x3ea7, (q15_t)0x4d1c, (q15_t)0x3ea5, (q15_t)0x4d29, (q15_t)0x3ea2, (q15_t)0x4d35, (q15_t)0x3e9f, - (q15_t)0x4d41, (q15_t)0x3e9d, (q15_t)0x4d4e, (q15_t)0x3e9a, (q15_t)0x4d5a, (q15_t)0x3e98, (q15_t)0x4d66, (q15_t)0x3e95, - (q15_t)0x4d72, (q15_t)0x3e92, (q15_t)0x4d7f, (q15_t)0x3e90, (q15_t)0x4d8b, (q15_t)0x3e8d, (q15_t)0x4d97, (q15_t)0x3e8a, - (q15_t)0x4da4, (q15_t)0x3e88, (q15_t)0x4db0, (q15_t)0x3e85, (q15_t)0x4dbc, (q15_t)0x3e82, (q15_t)0x4dc8, (q15_t)0x3e80, - (q15_t)0x4dd5, (q15_t)0x3e7d, (q15_t)0x4de1, (q15_t)0x3e7a, (q15_t)0x4ded, (q15_t)0x3e77, (q15_t)0x4df9, (q15_t)0x3e75, - (q15_t)0x4e06, (q15_t)0x3e72, (q15_t)0x4e12, (q15_t)0x3e6f, (q15_t)0x4e1e, (q15_t)0x3e6c, (q15_t)0x4e2b, (q15_t)0x3e6a, - (q15_t)0x4e37, (q15_t)0x3e67, (q15_t)0x4e43, (q15_t)0x3e64, (q15_t)0x4e4f, (q15_t)0x3e61, (q15_t)0x4e5c, (q15_t)0x3e5e, - (q15_t)0x4e68, (q15_t)0x3e5c, (q15_t)0x4e74, (q15_t)0x3e59, (q15_t)0x4e80, (q15_t)0x3e56, (q15_t)0x4e8c, (q15_t)0x3e53, - (q15_t)0x4e99, (q15_t)0x3e50, (q15_t)0x4ea5, (q15_t)0x3e4d, (q15_t)0x4eb1, (q15_t)0x3e4a, (q15_t)0x4ebd, (q15_t)0x3e48, - (q15_t)0x4eca, (q15_t)0x3e45, (q15_t)0x4ed6, (q15_t)0x3e42, (q15_t)0x4ee2, (q15_t)0x3e3f, (q15_t)0x4eee, (q15_t)0x3e3c, - (q15_t)0x4efb, (q15_t)0x3e39, (q15_t)0x4f07, (q15_t)0x3e36, (q15_t)0x4f13, (q15_t)0x3e33, (q15_t)0x4f1f, (q15_t)0x3e30, - (q15_t)0x4f2b, (q15_t)0x3e2d, (q15_t)0x4f38, (q15_t)0x3e2a, (q15_t)0x4f44, (q15_t)0x3e27, (q15_t)0x4f50, (q15_t)0x3e24, - (q15_t)0x4f5c, (q15_t)0x3e21, (q15_t)0x4f68, (q15_t)0x3e1e, (q15_t)0x4f75, (q15_t)0x3e1b, (q15_t)0x4f81, (q15_t)0x3e18, - (q15_t)0x4f8d, (q15_t)0x3e15, (q15_t)0x4f99, (q15_t)0x3e12, (q15_t)0x4fa5, (q15_t)0x3e0f, (q15_t)0x4fb2, (q15_t)0x3e0c, - (q15_t)0x4fbe, (q15_t)0x3e09, (q15_t)0x4fca, (q15_t)0x3e06, (q15_t)0x4fd6, (q15_t)0x3e03, (q15_t)0x4fe2, (q15_t)0x3dff, - (q15_t)0x4fee, (q15_t)0x3dfc, (q15_t)0x4ffb, (q15_t)0x3df9, (q15_t)0x5007, (q15_t)0x3df6, (q15_t)0x5013, (q15_t)0x3df3, - (q15_t)0x501f, (q15_t)0x3df0, (q15_t)0x502b, (q15_t)0x3ded, (q15_t)0x5037, (q15_t)0x3de9, (q15_t)0x5044, (q15_t)0x3de6, - (q15_t)0x5050, (q15_t)0x3de3, (q15_t)0x505c, (q15_t)0x3de0, (q15_t)0x5068, (q15_t)0x3ddd, (q15_t)0x5074, (q15_t)0x3dd9, - (q15_t)0x5080, (q15_t)0x3dd6, (q15_t)0x508c, (q15_t)0x3dd3, (q15_t)0x5099, (q15_t)0x3dd0, (q15_t)0x50a5, (q15_t)0x3dcc, - (q15_t)0x50b1, (q15_t)0x3dc9, (q15_t)0x50bd, (q15_t)0x3dc6, (q15_t)0x50c9, (q15_t)0x3dc2, (q15_t)0x50d5, (q15_t)0x3dbf, - (q15_t)0x50e1, (q15_t)0x3dbc, (q15_t)0x50ed, (q15_t)0x3db9, (q15_t)0x50fa, (q15_t)0x3db5, (q15_t)0x5106, (q15_t)0x3db2, - (q15_t)0x5112, (q15_t)0x3daf, (q15_t)0x511e, (q15_t)0x3dab, (q15_t)0x512a, (q15_t)0x3da8, (q15_t)0x5136, (q15_t)0x3da4, - (q15_t)0x5142, (q15_t)0x3da1, (q15_t)0x514e, (q15_t)0x3d9e, (q15_t)0x515a, (q15_t)0x3d9a, (q15_t)0x5167, (q15_t)0x3d97, - (q15_t)0x5173, (q15_t)0x3d93, (q15_t)0x517f, (q15_t)0x3d90, (q15_t)0x518b, (q15_t)0x3d8d, (q15_t)0x5197, (q15_t)0x3d89, - (q15_t)0x51a3, (q15_t)0x3d86, (q15_t)0x51af, (q15_t)0x3d82, (q15_t)0x51bb, (q15_t)0x3d7f, (q15_t)0x51c7, (q15_t)0x3d7b, - (q15_t)0x51d3, (q15_t)0x3d78, (q15_t)0x51df, (q15_t)0x3d74, (q15_t)0x51eb, (q15_t)0x3d71, (q15_t)0x51f7, (q15_t)0x3d6d, - (q15_t)0x5204, (q15_t)0x3d6a, (q15_t)0x5210, (q15_t)0x3d66, (q15_t)0x521c, (q15_t)0x3d63, (q15_t)0x5228, (q15_t)0x3d5f, - (q15_t)0x5234, (q15_t)0x3d5b, (q15_t)0x5240, (q15_t)0x3d58, (q15_t)0x524c, (q15_t)0x3d54, (q15_t)0x5258, (q15_t)0x3d51, - (q15_t)0x5264, (q15_t)0x3d4d, (q15_t)0x5270, (q15_t)0x3d49, (q15_t)0x527c, (q15_t)0x3d46, (q15_t)0x5288, (q15_t)0x3d42, - (q15_t)0x5294, (q15_t)0x3d3f, (q15_t)0x52a0, (q15_t)0x3d3b, (q15_t)0x52ac, (q15_t)0x3d37, (q15_t)0x52b8, (q15_t)0x3d34, - (q15_t)0x52c4, (q15_t)0x3d30, (q15_t)0x52d0, (q15_t)0x3d2c, (q15_t)0x52dc, (q15_t)0x3d28, (q15_t)0x52e8, (q15_t)0x3d25, - (q15_t)0x52f4, (q15_t)0x3d21, (q15_t)0x5300, (q15_t)0x3d1d, (q15_t)0x530c, (q15_t)0x3d1a, (q15_t)0x5318, (q15_t)0x3d16, - (q15_t)0x5324, (q15_t)0x3d12, (q15_t)0x5330, (q15_t)0x3d0e, (q15_t)0x533c, (q15_t)0x3d0b, (q15_t)0x5348, (q15_t)0x3d07, - (q15_t)0x5354, (q15_t)0x3d03, (q15_t)0x5360, (q15_t)0x3cff, (q15_t)0x536c, (q15_t)0x3cfb, (q15_t)0x5378, (q15_t)0x3cf8, - (q15_t)0x5384, (q15_t)0x3cf4, (q15_t)0x5390, (q15_t)0x3cf0, (q15_t)0x539c, (q15_t)0x3cec, (q15_t)0x53a8, (q15_t)0x3ce8, - (q15_t)0x53b4, (q15_t)0x3ce4, (q15_t)0x53c0, (q15_t)0x3ce0, (q15_t)0x53cc, (q15_t)0x3cdd, (q15_t)0x53d8, (q15_t)0x3cd9, - (q15_t)0x53e4, (q15_t)0x3cd5, (q15_t)0x53f0, (q15_t)0x3cd1, (q15_t)0x53fb, (q15_t)0x3ccd, (q15_t)0x5407, (q15_t)0x3cc9, - (q15_t)0x5413, (q15_t)0x3cc5, (q15_t)0x541f, (q15_t)0x3cc1, (q15_t)0x542b, (q15_t)0x3cbd, (q15_t)0x5437, (q15_t)0x3cb9, - (q15_t)0x5443, (q15_t)0x3cb5, (q15_t)0x544f, (q15_t)0x3cb1, (q15_t)0x545b, (q15_t)0x3cad, (q15_t)0x5467, (q15_t)0x3ca9, - (q15_t)0x5473, (q15_t)0x3ca5, (q15_t)0x547f, (q15_t)0x3ca1, (q15_t)0x548b, (q15_t)0x3c9d, (q15_t)0x5496, (q15_t)0x3c99, - (q15_t)0x54a2, (q15_t)0x3c95, (q15_t)0x54ae, (q15_t)0x3c91, (q15_t)0x54ba, (q15_t)0x3c8d, (q15_t)0x54c6, (q15_t)0x3c89, - (q15_t)0x54d2, (q15_t)0x3c85, (q15_t)0x54de, (q15_t)0x3c81, (q15_t)0x54ea, (q15_t)0x3c7d, (q15_t)0x54f6, (q15_t)0x3c79, - (q15_t)0x5501, (q15_t)0x3c74, (q15_t)0x550d, (q15_t)0x3c70, (q15_t)0x5519, (q15_t)0x3c6c, (q15_t)0x5525, (q15_t)0x3c68, - (q15_t)0x5531, (q15_t)0x3c64, (q15_t)0x553d, (q15_t)0x3c60, (q15_t)0x5549, (q15_t)0x3c5b, (q15_t)0x5554, (q15_t)0x3c57, - (q15_t)0x5560, (q15_t)0x3c53, (q15_t)0x556c, (q15_t)0x3c4f, (q15_t)0x5578, (q15_t)0x3c4b, (q15_t)0x5584, (q15_t)0x3c46, - (q15_t)0x5590, (q15_t)0x3c42, (q15_t)0x559b, (q15_t)0x3c3e, (q15_t)0x55a7, (q15_t)0x3c3a, (q15_t)0x55b3, (q15_t)0x3c36, - (q15_t)0x55bf, (q15_t)0x3c31, (q15_t)0x55cb, (q15_t)0x3c2d, (q15_t)0x55d7, (q15_t)0x3c29, (q15_t)0x55e2, (q15_t)0x3c24, - (q15_t)0x55ee, (q15_t)0x3c20, (q15_t)0x55fa, (q15_t)0x3c1c, (q15_t)0x5606, (q15_t)0x3c17, (q15_t)0x5612, (q15_t)0x3c13, - (q15_t)0x561d, (q15_t)0x3c0f, (q15_t)0x5629, (q15_t)0x3c0a, (q15_t)0x5635, (q15_t)0x3c06, (q15_t)0x5641, (q15_t)0x3c02, - (q15_t)0x564c, (q15_t)0x3bfd, (q15_t)0x5658, (q15_t)0x3bf9, (q15_t)0x5664, (q15_t)0x3bf5, (q15_t)0x5670, (q15_t)0x3bf0, - (q15_t)0x567c, (q15_t)0x3bec, (q15_t)0x5687, (q15_t)0x3be7, (q15_t)0x5693, (q15_t)0x3be3, (q15_t)0x569f, (q15_t)0x3bde, - (q15_t)0x56ab, (q15_t)0x3bda, (q15_t)0x56b6, (q15_t)0x3bd6, (q15_t)0x56c2, (q15_t)0x3bd1, (q15_t)0x56ce, (q15_t)0x3bcd, - (q15_t)0x56da, (q15_t)0x3bc8, (q15_t)0x56e5, (q15_t)0x3bc4, (q15_t)0x56f1, (q15_t)0x3bbf, (q15_t)0x56fd, (q15_t)0x3bbb, - (q15_t)0x5709, (q15_t)0x3bb6, (q15_t)0x5714, (q15_t)0x3bb2, (q15_t)0x5720, (q15_t)0x3bad, (q15_t)0x572c, (q15_t)0x3ba9, - (q15_t)0x5737, (q15_t)0x3ba4, (q15_t)0x5743, (q15_t)0x3b9f, (q15_t)0x574f, (q15_t)0x3b9b, (q15_t)0x575b, (q15_t)0x3b96, - (q15_t)0x5766, (q15_t)0x3b92, (q15_t)0x5772, (q15_t)0x3b8d, (q15_t)0x577e, (q15_t)0x3b88, (q15_t)0x5789, (q15_t)0x3b84, - (q15_t)0x5795, (q15_t)0x3b7f, (q15_t)0x57a1, (q15_t)0x3b7b, (q15_t)0x57ac, (q15_t)0x3b76, (q15_t)0x57b8, (q15_t)0x3b71, - (q15_t)0x57c4, (q15_t)0x3b6d, (q15_t)0x57cf, (q15_t)0x3b68, (q15_t)0x57db, (q15_t)0x3b63, (q15_t)0x57e7, (q15_t)0x3b5f, - (q15_t)0x57f2, (q15_t)0x3b5a, (q15_t)0x57fe, (q15_t)0x3b55, (q15_t)0x580a, (q15_t)0x3b50, (q15_t)0x5815, (q15_t)0x3b4c, - (q15_t)0x5821, (q15_t)0x3b47, (q15_t)0x582d, (q15_t)0x3b42, (q15_t)0x5838, (q15_t)0x3b3e, (q15_t)0x5844, (q15_t)0x3b39, - (q15_t)0x584f, (q15_t)0x3b34, (q15_t)0x585b, (q15_t)0x3b2f, (q15_t)0x5867, (q15_t)0x3b2a, (q15_t)0x5872, (q15_t)0x3b26, - (q15_t)0x587e, (q15_t)0x3b21, (q15_t)0x5889, (q15_t)0x3b1c, (q15_t)0x5895, (q15_t)0x3b17, (q15_t)0x58a1, (q15_t)0x3b12, - (q15_t)0x58ac, (q15_t)0x3b0e, (q15_t)0x58b8, (q15_t)0x3b09, (q15_t)0x58c3, (q15_t)0x3b04, (q15_t)0x58cf, (q15_t)0x3aff, - (q15_t)0x58db, (q15_t)0x3afa, (q15_t)0x58e6, (q15_t)0x3af5, (q15_t)0x58f2, (q15_t)0x3af0, (q15_t)0x58fd, (q15_t)0x3aeb, - (q15_t)0x5909, (q15_t)0x3ae6, (q15_t)0x5914, (q15_t)0x3ae2, (q15_t)0x5920, (q15_t)0x3add, (q15_t)0x592c, (q15_t)0x3ad8, - (q15_t)0x5937, (q15_t)0x3ad3, (q15_t)0x5943, (q15_t)0x3ace, (q15_t)0x594e, (q15_t)0x3ac9, (q15_t)0x595a, (q15_t)0x3ac4, - (q15_t)0x5965, (q15_t)0x3abf, (q15_t)0x5971, (q15_t)0x3aba, (q15_t)0x597c, (q15_t)0x3ab5, (q15_t)0x5988, (q15_t)0x3ab0, - (q15_t)0x5993, (q15_t)0x3aab, (q15_t)0x599f, (q15_t)0x3aa6, (q15_t)0x59aa, (q15_t)0x3aa1, (q15_t)0x59b6, (q15_t)0x3a9c, - (q15_t)0x59c1, (q15_t)0x3a97, (q15_t)0x59cd, (q15_t)0x3a92, (q15_t)0x59d8, (q15_t)0x3a8d, (q15_t)0x59e4, (q15_t)0x3a88, - (q15_t)0x59ef, (q15_t)0x3a82, (q15_t)0x59fb, (q15_t)0x3a7d, (q15_t)0x5a06, (q15_t)0x3a78, (q15_t)0x5a12, (q15_t)0x3a73, - (q15_t)0x5a1d, (q15_t)0x3a6e, (q15_t)0x5a29, (q15_t)0x3a69, (q15_t)0x5a34, (q15_t)0x3a64, (q15_t)0x5a40, (q15_t)0x3a5f, - (q15_t)0x5a4b, (q15_t)0x3a59, (q15_t)0x5a57, (q15_t)0x3a54, (q15_t)0x5a62, (q15_t)0x3a4f, (q15_t)0x5a6e, (q15_t)0x3a4a, - (q15_t)0x5a79, (q15_t)0x3a45, (q15_t)0x5a84, (q15_t)0x3a3f, (q15_t)0x5a90, (q15_t)0x3a3a, (q15_t)0x5a9b, (q15_t)0x3a35, - (q15_t)0x5aa7, (q15_t)0x3a30, (q15_t)0x5ab2, (q15_t)0x3a2b, (q15_t)0x5abe, (q15_t)0x3a25, (q15_t)0x5ac9, (q15_t)0x3a20, - (q15_t)0x5ad4, (q15_t)0x3a1b, (q15_t)0x5ae0, (q15_t)0x3a16, (q15_t)0x5aeb, (q15_t)0x3a10, (q15_t)0x5af7, (q15_t)0x3a0b, - (q15_t)0x5b02, (q15_t)0x3a06, (q15_t)0x5b0d, (q15_t)0x3a00, (q15_t)0x5b19, (q15_t)0x39fb, (q15_t)0x5b24, (q15_t)0x39f6, - (q15_t)0x5b30, (q15_t)0x39f0, (q15_t)0x5b3b, (q15_t)0x39eb, (q15_t)0x5b46, (q15_t)0x39e6, (q15_t)0x5b52, (q15_t)0x39e0, - (q15_t)0x5b5d, (q15_t)0x39db, (q15_t)0x5b68, (q15_t)0x39d6, (q15_t)0x5b74, (q15_t)0x39d0, (q15_t)0x5b7f, (q15_t)0x39cb, - (q15_t)0x5b8a, (q15_t)0x39c5, (q15_t)0x5b96, (q15_t)0x39c0, (q15_t)0x5ba1, (q15_t)0x39bb, (q15_t)0x5bac, (q15_t)0x39b5, - (q15_t)0x5bb8, (q15_t)0x39b0, (q15_t)0x5bc3, (q15_t)0x39aa, (q15_t)0x5bce, (q15_t)0x39a5, (q15_t)0x5bda, (q15_t)0x399f, - (q15_t)0x5be5, (q15_t)0x399a, (q15_t)0x5bf0, (q15_t)0x3994, (q15_t)0x5bfc, (q15_t)0x398f, (q15_t)0x5c07, (q15_t)0x3989, - (q15_t)0x5c12, (q15_t)0x3984, (q15_t)0x5c1e, (q15_t)0x397e, (q15_t)0x5c29, (q15_t)0x3979, (q15_t)0x5c34, (q15_t)0x3973, - (q15_t)0x5c3f, (q15_t)0x396e, (q15_t)0x5c4b, (q15_t)0x3968, (q15_t)0x5c56, (q15_t)0x3963, (q15_t)0x5c61, (q15_t)0x395d, - (q15_t)0x5c6c, (q15_t)0x3958, (q15_t)0x5c78, (q15_t)0x3952, (q15_t)0x5c83, (q15_t)0x394c, (q15_t)0x5c8e, (q15_t)0x3947, - (q15_t)0x5c99, (q15_t)0x3941, (q15_t)0x5ca5, (q15_t)0x393b, (q15_t)0x5cb0, (q15_t)0x3936, (q15_t)0x5cbb, (q15_t)0x3930, - (q15_t)0x5cc6, (q15_t)0x392b, (q15_t)0x5cd2, (q15_t)0x3925, (q15_t)0x5cdd, (q15_t)0x391f, (q15_t)0x5ce8, (q15_t)0x391a, - (q15_t)0x5cf3, (q15_t)0x3914, (q15_t)0x5cff, (q15_t)0x390e, (q15_t)0x5d0a, (q15_t)0x3909, (q15_t)0x5d15, (q15_t)0x3903, - (q15_t)0x5d20, (q15_t)0x38fd, (q15_t)0x5d2b, (q15_t)0x38f7, (q15_t)0x5d36, (q15_t)0x38f2, (q15_t)0x5d42, (q15_t)0x38ec, - (q15_t)0x5d4d, (q15_t)0x38e6, (q15_t)0x5d58, (q15_t)0x38e0, (q15_t)0x5d63, (q15_t)0x38db, (q15_t)0x5d6e, (q15_t)0x38d5, - (q15_t)0x5d79, (q15_t)0x38cf, (q15_t)0x5d85, (q15_t)0x38c9, (q15_t)0x5d90, (q15_t)0x38c3, (q15_t)0x5d9b, (q15_t)0x38be, - (q15_t)0x5da6, (q15_t)0x38b8, (q15_t)0x5db1, (q15_t)0x38b2, (q15_t)0x5dbc, (q15_t)0x38ac, (q15_t)0x5dc7, (q15_t)0x38a6, - (q15_t)0x5dd3, (q15_t)0x38a1, (q15_t)0x5dde, (q15_t)0x389b, (q15_t)0x5de9, (q15_t)0x3895, (q15_t)0x5df4, (q15_t)0x388f, - (q15_t)0x5dff, (q15_t)0x3889, (q15_t)0x5e0a, (q15_t)0x3883, (q15_t)0x5e15, (q15_t)0x387d, (q15_t)0x5e20, (q15_t)0x3877, - (q15_t)0x5e2b, (q15_t)0x3871, (q15_t)0x5e36, (q15_t)0x386b, (q15_t)0x5e42, (q15_t)0x3866, (q15_t)0x5e4d, (q15_t)0x3860, - (q15_t)0x5e58, (q15_t)0x385a, (q15_t)0x5e63, (q15_t)0x3854, (q15_t)0x5e6e, (q15_t)0x384e, (q15_t)0x5e79, (q15_t)0x3848, - (q15_t)0x5e84, (q15_t)0x3842, (q15_t)0x5e8f, (q15_t)0x383c, (q15_t)0x5e9a, (q15_t)0x3836, (q15_t)0x5ea5, (q15_t)0x3830, - (q15_t)0x5eb0, (q15_t)0x382a, (q15_t)0x5ebb, (q15_t)0x3824, (q15_t)0x5ec6, (q15_t)0x381e, (q15_t)0x5ed1, (q15_t)0x3818, - (q15_t)0x5edc, (q15_t)0x3812, (q15_t)0x5ee7, (q15_t)0x380b, (q15_t)0x5ef2, (q15_t)0x3805, (q15_t)0x5efd, (q15_t)0x37ff, - (q15_t)0x5f08, (q15_t)0x37f9, (q15_t)0x5f13, (q15_t)0x37f3, (q15_t)0x5f1e, (q15_t)0x37ed, (q15_t)0x5f29, (q15_t)0x37e7, - (q15_t)0x5f34, (q15_t)0x37e1, (q15_t)0x5f3f, (q15_t)0x37db, (q15_t)0x5f4a, (q15_t)0x37d5, (q15_t)0x5f55, (q15_t)0x37ce, - (q15_t)0x5f60, (q15_t)0x37c8, (q15_t)0x5f6b, (q15_t)0x37c2, (q15_t)0x5f76, (q15_t)0x37bc, (q15_t)0x5f81, (q15_t)0x37b6, - (q15_t)0x5f8c, (q15_t)0x37b0, (q15_t)0x5f97, (q15_t)0x37a9, (q15_t)0x5fa2, (q15_t)0x37a3, (q15_t)0x5fac, (q15_t)0x379d, - (q15_t)0x5fb7, (q15_t)0x3797, (q15_t)0x5fc2, (q15_t)0x3790, (q15_t)0x5fcd, (q15_t)0x378a, (q15_t)0x5fd8, (q15_t)0x3784, - (q15_t)0x5fe3, (q15_t)0x377e, (q15_t)0x5fee, (q15_t)0x3777, (q15_t)0x5ff9, (q15_t)0x3771, (q15_t)0x6004, (q15_t)0x376b, - (q15_t)0x600f, (q15_t)0x3765, (q15_t)0x6019, (q15_t)0x375e, (q15_t)0x6024, (q15_t)0x3758, (q15_t)0x602f, (q15_t)0x3752, - (q15_t)0x603a, (q15_t)0x374b, (q15_t)0x6045, (q15_t)0x3745, (q15_t)0x6050, (q15_t)0x373f, (q15_t)0x605b, (q15_t)0x3738, - (q15_t)0x6065, (q15_t)0x3732, (q15_t)0x6070, (q15_t)0x372c, (q15_t)0x607b, (q15_t)0x3725, (q15_t)0x6086, (q15_t)0x371f, - (q15_t)0x6091, (q15_t)0x3718, (q15_t)0x609b, (q15_t)0x3712, (q15_t)0x60a6, (q15_t)0x370c, (q15_t)0x60b1, (q15_t)0x3705, - (q15_t)0x60bc, (q15_t)0x36ff, (q15_t)0x60c7, (q15_t)0x36f8, (q15_t)0x60d1, (q15_t)0x36f2, (q15_t)0x60dc, (q15_t)0x36eb, - (q15_t)0x60e7, (q15_t)0x36e5, (q15_t)0x60f2, (q15_t)0x36df, (q15_t)0x60fd, (q15_t)0x36d8, (q15_t)0x6107, (q15_t)0x36d2, - (q15_t)0x6112, (q15_t)0x36cb, (q15_t)0x611d, (q15_t)0x36c5, (q15_t)0x6128, (q15_t)0x36be, (q15_t)0x6132, (q15_t)0x36b8, - (q15_t)0x613d, (q15_t)0x36b1, (q15_t)0x6148, (q15_t)0x36ab, (q15_t)0x6153, (q15_t)0x36a4, (q15_t)0x615d, (q15_t)0x369d, - (q15_t)0x6168, (q15_t)0x3697, (q15_t)0x6173, (q15_t)0x3690, (q15_t)0x617d, (q15_t)0x368a, (q15_t)0x6188, (q15_t)0x3683, - (q15_t)0x6193, (q15_t)0x367d, (q15_t)0x619e, (q15_t)0x3676, (q15_t)0x61a8, (q15_t)0x366f, (q15_t)0x61b3, (q15_t)0x3669, - (q15_t)0x61be, (q15_t)0x3662, (q15_t)0x61c8, (q15_t)0x365c, (q15_t)0x61d3, (q15_t)0x3655, (q15_t)0x61de, (q15_t)0x364e, - (q15_t)0x61e8, (q15_t)0x3648, (q15_t)0x61f3, (q15_t)0x3641, (q15_t)0x61fe, (q15_t)0x363a, (q15_t)0x6208, (q15_t)0x3634, - (q15_t)0x6213, (q15_t)0x362d, (q15_t)0x621e, (q15_t)0x3626, (q15_t)0x6228, (q15_t)0x3620, (q15_t)0x6233, (q15_t)0x3619, - (q15_t)0x623d, (q15_t)0x3612, (q15_t)0x6248, (q15_t)0x360b, (q15_t)0x6253, (q15_t)0x3605, (q15_t)0x625d, (q15_t)0x35fe, - (q15_t)0x6268, (q15_t)0x35f7, (q15_t)0x6272, (q15_t)0x35f0, (q15_t)0x627d, (q15_t)0x35ea, (q15_t)0x6288, (q15_t)0x35e3, - (q15_t)0x6292, (q15_t)0x35dc, (q15_t)0x629d, (q15_t)0x35d5, (q15_t)0x62a7, (q15_t)0x35ce, (q15_t)0x62b2, (q15_t)0x35c8, - (q15_t)0x62bc, (q15_t)0x35c1, (q15_t)0x62c7, (q15_t)0x35ba, (q15_t)0x62d2, (q15_t)0x35b3, (q15_t)0x62dc, (q15_t)0x35ac, - (q15_t)0x62e7, (q15_t)0x35a5, (q15_t)0x62f1, (q15_t)0x359f, (q15_t)0x62fc, (q15_t)0x3598, (q15_t)0x6306, (q15_t)0x3591, - (q15_t)0x6311, (q15_t)0x358a, (q15_t)0x631b, (q15_t)0x3583, (q15_t)0x6326, (q15_t)0x357c, (q15_t)0x6330, (q15_t)0x3575, - (q15_t)0x633b, (q15_t)0x356e, (q15_t)0x6345, (q15_t)0x3567, (q15_t)0x6350, (q15_t)0x3561, (q15_t)0x635a, (q15_t)0x355a, - (q15_t)0x6365, (q15_t)0x3553, (q15_t)0x636f, (q15_t)0x354c, (q15_t)0x637a, (q15_t)0x3545, (q15_t)0x6384, (q15_t)0x353e, - (q15_t)0x638e, (q15_t)0x3537, (q15_t)0x6399, (q15_t)0x3530, (q15_t)0x63a3, (q15_t)0x3529, (q15_t)0x63ae, (q15_t)0x3522, - (q15_t)0x63b8, (q15_t)0x351b, (q15_t)0x63c3, (q15_t)0x3514, (q15_t)0x63cd, (q15_t)0x350d, (q15_t)0x63d7, (q15_t)0x3506, - (q15_t)0x63e2, (q15_t)0x34ff, (q15_t)0x63ec, (q15_t)0x34f8, (q15_t)0x63f7, (q15_t)0x34f1, (q15_t)0x6401, (q15_t)0x34ea, - (q15_t)0x640b, (q15_t)0x34e2, (q15_t)0x6416, (q15_t)0x34db, (q15_t)0x6420, (q15_t)0x34d4, (q15_t)0x642b, (q15_t)0x34cd, - (q15_t)0x6435, (q15_t)0x34c6, (q15_t)0x643f, (q15_t)0x34bf, (q15_t)0x644a, (q15_t)0x34b8, (q15_t)0x6454, (q15_t)0x34b1, - (q15_t)0x645e, (q15_t)0x34aa, (q15_t)0x6469, (q15_t)0x34a2, (q15_t)0x6473, (q15_t)0x349b, (q15_t)0x647d, (q15_t)0x3494, - (q15_t)0x6488, (q15_t)0x348d, (q15_t)0x6492, (q15_t)0x3486, (q15_t)0x649c, (q15_t)0x347f, (q15_t)0x64a7, (q15_t)0x3477, - (q15_t)0x64b1, (q15_t)0x3470, (q15_t)0x64bb, (q15_t)0x3469, (q15_t)0x64c5, (q15_t)0x3462, (q15_t)0x64d0, (q15_t)0x345b, - (q15_t)0x64da, (q15_t)0x3453, (q15_t)0x64e4, (q15_t)0x344c, (q15_t)0x64ef, (q15_t)0x3445, (q15_t)0x64f9, (q15_t)0x343e, - (q15_t)0x6503, (q15_t)0x3436, (q15_t)0x650d, (q15_t)0x342f, (q15_t)0x6518, (q15_t)0x3428, (q15_t)0x6522, (q15_t)0x3420, - (q15_t)0x652c, (q15_t)0x3419, (q15_t)0x6536, (q15_t)0x3412, (q15_t)0x6541, (q15_t)0x340b, (q15_t)0x654b, (q15_t)0x3403, - (q15_t)0x6555, (q15_t)0x33fc, (q15_t)0x655f, (q15_t)0x33f5, (q15_t)0x6569, (q15_t)0x33ed, (q15_t)0x6574, (q15_t)0x33e6, - (q15_t)0x657e, (q15_t)0x33df, (q15_t)0x6588, (q15_t)0x33d7, (q15_t)0x6592, (q15_t)0x33d0, (q15_t)0x659c, (q15_t)0x33c8, - (q15_t)0x65a6, (q15_t)0x33c1, (q15_t)0x65b1, (q15_t)0x33ba, (q15_t)0x65bb, (q15_t)0x33b2, (q15_t)0x65c5, (q15_t)0x33ab, - (q15_t)0x65cf, (q15_t)0x33a3, (q15_t)0x65d9, (q15_t)0x339c, (q15_t)0x65e3, (q15_t)0x3395, (q15_t)0x65ed, (q15_t)0x338d, - (q15_t)0x65f8, (q15_t)0x3386, (q15_t)0x6602, (q15_t)0x337e, (q15_t)0x660c, (q15_t)0x3377, (q15_t)0x6616, (q15_t)0x336f, - (q15_t)0x6620, (q15_t)0x3368, (q15_t)0x662a, (q15_t)0x3360, (q15_t)0x6634, (q15_t)0x3359, (q15_t)0x663e, (q15_t)0x3351, - (q15_t)0x6648, (q15_t)0x334a, (q15_t)0x6652, (q15_t)0x3342, (q15_t)0x665c, (q15_t)0x333b, (q15_t)0x6666, (q15_t)0x3333, - (q15_t)0x6671, (q15_t)0x332c, (q15_t)0x667b, (q15_t)0x3324, (q15_t)0x6685, (q15_t)0x331d, (q15_t)0x668f, (q15_t)0x3315, - (q15_t)0x6699, (q15_t)0x330d, (q15_t)0x66a3, (q15_t)0x3306, (q15_t)0x66ad, (q15_t)0x32fe, (q15_t)0x66b7, (q15_t)0x32f7, - (q15_t)0x66c1, (q15_t)0x32ef, (q15_t)0x66cb, (q15_t)0x32e7, (q15_t)0x66d5, (q15_t)0x32e0, (q15_t)0x66df, (q15_t)0x32d8, - (q15_t)0x66e9, (q15_t)0x32d0, (q15_t)0x66f3, (q15_t)0x32c9, (q15_t)0x66fd, (q15_t)0x32c1, (q15_t)0x6707, (q15_t)0x32ba, - (q15_t)0x6711, (q15_t)0x32b2, (q15_t)0x671a, (q15_t)0x32aa, (q15_t)0x6724, (q15_t)0x32a3, (q15_t)0x672e, (q15_t)0x329b, - (q15_t)0x6738, (q15_t)0x3293, (q15_t)0x6742, (q15_t)0x328b, (q15_t)0x674c, (q15_t)0x3284, (q15_t)0x6756, (q15_t)0x327c, - (q15_t)0x6760, (q15_t)0x3274, (q15_t)0x676a, (q15_t)0x326d, (q15_t)0x6774, (q15_t)0x3265, (q15_t)0x677e, (q15_t)0x325d, - (q15_t)0x6788, (q15_t)0x3255, (q15_t)0x6791, (q15_t)0x324e, (q15_t)0x679b, (q15_t)0x3246, (q15_t)0x67a5, (q15_t)0x323e, - (q15_t)0x67af, (q15_t)0x3236, (q15_t)0x67b9, (q15_t)0x322e, (q15_t)0x67c3, (q15_t)0x3227, (q15_t)0x67cd, (q15_t)0x321f, - (q15_t)0x67d6, (q15_t)0x3217, (q15_t)0x67e0, (q15_t)0x320f, (q15_t)0x67ea, (q15_t)0x3207, (q15_t)0x67f4, (q15_t)0x31ff, - (q15_t)0x67fe, (q15_t)0x31f8, (q15_t)0x6808, (q15_t)0x31f0, (q15_t)0x6811, (q15_t)0x31e8, (q15_t)0x681b, (q15_t)0x31e0, - (q15_t)0x6825, (q15_t)0x31d8, (q15_t)0x682f, (q15_t)0x31d0, (q15_t)0x6838, (q15_t)0x31c8, (q15_t)0x6842, (q15_t)0x31c0, - (q15_t)0x684c, (q15_t)0x31b9, (q15_t)0x6856, (q15_t)0x31b1, (q15_t)0x6860, (q15_t)0x31a9, (q15_t)0x6869, (q15_t)0x31a1, - (q15_t)0x6873, (q15_t)0x3199, (q15_t)0x687d, (q15_t)0x3191, (q15_t)0x6886, (q15_t)0x3189, (q15_t)0x6890, (q15_t)0x3181, - (q15_t)0x689a, (q15_t)0x3179, (q15_t)0x68a4, (q15_t)0x3171, (q15_t)0x68ad, (q15_t)0x3169, (q15_t)0x68b7, (q15_t)0x3161, - (q15_t)0x68c1, (q15_t)0x3159, (q15_t)0x68ca, (q15_t)0x3151, (q15_t)0x68d4, (q15_t)0x3149, (q15_t)0x68de, (q15_t)0x3141, - (q15_t)0x68e7, (q15_t)0x3139, (q15_t)0x68f1, (q15_t)0x3131, (q15_t)0x68fb, (q15_t)0x3129, (q15_t)0x6904, (q15_t)0x3121, - (q15_t)0x690e, (q15_t)0x3119, (q15_t)0x6918, (q15_t)0x3111, (q15_t)0x6921, (q15_t)0x3109, (q15_t)0x692b, (q15_t)0x3101, - (q15_t)0x6935, (q15_t)0x30f9, (q15_t)0x693e, (q15_t)0x30f0, (q15_t)0x6948, (q15_t)0x30e8, (q15_t)0x6951, (q15_t)0x30e0, - (q15_t)0x695b, (q15_t)0x30d8, (q15_t)0x6965, (q15_t)0x30d0, (q15_t)0x696e, (q15_t)0x30c8, (q15_t)0x6978, (q15_t)0x30c0, - (q15_t)0x6981, (q15_t)0x30b8, (q15_t)0x698b, (q15_t)0x30af, (q15_t)0x6994, (q15_t)0x30a7, (q15_t)0x699e, (q15_t)0x309f, - (q15_t)0x69a7, (q15_t)0x3097, (q15_t)0x69b1, (q15_t)0x308f, (q15_t)0x69bb, (q15_t)0x3087, (q15_t)0x69c4, (q15_t)0x307e, - (q15_t)0x69ce, (q15_t)0x3076, (q15_t)0x69d7, (q15_t)0x306e, (q15_t)0x69e1, (q15_t)0x3066, (q15_t)0x69ea, (q15_t)0x305d, - (q15_t)0x69f4, (q15_t)0x3055, (q15_t)0x69fd, (q15_t)0x304d, (q15_t)0x6a07, (q15_t)0x3045, (q15_t)0x6a10, (q15_t)0x303c, - (q15_t)0x6a1a, (q15_t)0x3034, (q15_t)0x6a23, (q15_t)0x302c, (q15_t)0x6a2c, (q15_t)0x3024, (q15_t)0x6a36, (q15_t)0x301b, - (q15_t)0x6a3f, (q15_t)0x3013, (q15_t)0x6a49, (q15_t)0x300b, (q15_t)0x6a52, (q15_t)0x3002, (q15_t)0x6a5c, (q15_t)0x2ffa, - (q15_t)0x6a65, (q15_t)0x2ff2, (q15_t)0x6a6e, (q15_t)0x2fea, (q15_t)0x6a78, (q15_t)0x2fe1, (q15_t)0x6a81, (q15_t)0x2fd9, - (q15_t)0x6a8b, (q15_t)0x2fd0, (q15_t)0x6a94, (q15_t)0x2fc8, (q15_t)0x6a9d, (q15_t)0x2fc0, (q15_t)0x6aa7, (q15_t)0x2fb7, - (q15_t)0x6ab0, (q15_t)0x2faf, (q15_t)0x6ab9, (q15_t)0x2fa7, (q15_t)0x6ac3, (q15_t)0x2f9e, (q15_t)0x6acc, (q15_t)0x2f96, - (q15_t)0x6ad6, (q15_t)0x2f8d, (q15_t)0x6adf, (q15_t)0x2f85, (q15_t)0x6ae8, (q15_t)0x2f7d, (q15_t)0x6af2, (q15_t)0x2f74, - (q15_t)0x6afb, (q15_t)0x2f6c, (q15_t)0x6b04, (q15_t)0x2f63, (q15_t)0x6b0d, (q15_t)0x2f5b, (q15_t)0x6b17, (q15_t)0x2f52, - (q15_t)0x6b20, (q15_t)0x2f4a, (q15_t)0x6b29, (q15_t)0x2f41, (q15_t)0x6b33, (q15_t)0x2f39, (q15_t)0x6b3c, (q15_t)0x2f30, - (q15_t)0x6b45, (q15_t)0x2f28, (q15_t)0x6b4e, (q15_t)0x2f20, (q15_t)0x6b58, (q15_t)0x2f17, (q15_t)0x6b61, (q15_t)0x2f0e, - (q15_t)0x6b6a, (q15_t)0x2f06, (q15_t)0x6b73, (q15_t)0x2efd, (q15_t)0x6b7d, (q15_t)0x2ef5, (q15_t)0x6b86, (q15_t)0x2eec, - (q15_t)0x6b8f, (q15_t)0x2ee4, (q15_t)0x6b98, (q15_t)0x2edb, (q15_t)0x6ba1, (q15_t)0x2ed3, (q15_t)0x6bab, (q15_t)0x2eca, - (q15_t)0x6bb4, (q15_t)0x2ec2, (q15_t)0x6bbd, (q15_t)0x2eb9, (q15_t)0x6bc6, (q15_t)0x2eb0, (q15_t)0x6bcf, (q15_t)0x2ea8, - (q15_t)0x6bd8, (q15_t)0x2e9f, (q15_t)0x6be2, (q15_t)0x2e97, (q15_t)0x6beb, (q15_t)0x2e8e, (q15_t)0x6bf4, (q15_t)0x2e85, - (q15_t)0x6bfd, (q15_t)0x2e7d, (q15_t)0x6c06, (q15_t)0x2e74, (q15_t)0x6c0f, (q15_t)0x2e6b, (q15_t)0x6c18, (q15_t)0x2e63, - (q15_t)0x6c21, (q15_t)0x2e5a, (q15_t)0x6c2b, (q15_t)0x2e51, (q15_t)0x6c34, (q15_t)0x2e49, (q15_t)0x6c3d, (q15_t)0x2e40, - (q15_t)0x6c46, (q15_t)0x2e37, (q15_t)0x6c4f, (q15_t)0x2e2f, (q15_t)0x6c58, (q15_t)0x2e26, (q15_t)0x6c61, (q15_t)0x2e1d, - (q15_t)0x6c6a, (q15_t)0x2e15, (q15_t)0x6c73, (q15_t)0x2e0c, (q15_t)0x6c7c, (q15_t)0x2e03, (q15_t)0x6c85, (q15_t)0x2dfa, - (q15_t)0x6c8e, (q15_t)0x2df2, (q15_t)0x6c97, (q15_t)0x2de9, (q15_t)0x6ca0, (q15_t)0x2de0, (q15_t)0x6ca9, (q15_t)0x2dd7, - (q15_t)0x6cb2, (q15_t)0x2dcf, (q15_t)0x6cbb, (q15_t)0x2dc6, (q15_t)0x6cc4, (q15_t)0x2dbd, (q15_t)0x6ccd, (q15_t)0x2db4, - (q15_t)0x6cd6, (q15_t)0x2dab, (q15_t)0x6cdf, (q15_t)0x2da3, (q15_t)0x6ce8, (q15_t)0x2d9a, (q15_t)0x6cf1, (q15_t)0x2d91, - (q15_t)0x6cfa, (q15_t)0x2d88, (q15_t)0x6d03, (q15_t)0x2d7f, (q15_t)0x6d0c, (q15_t)0x2d76, (q15_t)0x6d15, (q15_t)0x2d6e, - (q15_t)0x6d1e, (q15_t)0x2d65, (q15_t)0x6d27, (q15_t)0x2d5c, (q15_t)0x6d2f, (q15_t)0x2d53, (q15_t)0x6d38, (q15_t)0x2d4a, - (q15_t)0x6d41, (q15_t)0x2d41, (q15_t)0x6d4a, (q15_t)0x2d38, (q15_t)0x6d53, (q15_t)0x2d2f, (q15_t)0x6d5c, (q15_t)0x2d27, - (q15_t)0x6d65, (q15_t)0x2d1e, (q15_t)0x6d6e, (q15_t)0x2d15, (q15_t)0x6d76, (q15_t)0x2d0c, (q15_t)0x6d7f, (q15_t)0x2d03, - (q15_t)0x6d88, (q15_t)0x2cfa, (q15_t)0x6d91, (q15_t)0x2cf1, (q15_t)0x6d9a, (q15_t)0x2ce8, (q15_t)0x6da3, (q15_t)0x2cdf, - (q15_t)0x6dab, (q15_t)0x2cd6, (q15_t)0x6db4, (q15_t)0x2ccd, (q15_t)0x6dbd, (q15_t)0x2cc4, (q15_t)0x6dc6, (q15_t)0x2cbb, - (q15_t)0x6dcf, (q15_t)0x2cb2, (q15_t)0x6dd7, (q15_t)0x2ca9, (q15_t)0x6de0, (q15_t)0x2ca0, (q15_t)0x6de9, (q15_t)0x2c97, - (q15_t)0x6df2, (q15_t)0x2c8e, (q15_t)0x6dfa, (q15_t)0x2c85, (q15_t)0x6e03, (q15_t)0x2c7c, (q15_t)0x6e0c, (q15_t)0x2c73, - (q15_t)0x6e15, (q15_t)0x2c6a, (q15_t)0x6e1d, (q15_t)0x2c61, (q15_t)0x6e26, (q15_t)0x2c58, (q15_t)0x6e2f, (q15_t)0x2c4f, - (q15_t)0x6e37, (q15_t)0x2c46, (q15_t)0x6e40, (q15_t)0x2c3d, (q15_t)0x6e49, (q15_t)0x2c34, (q15_t)0x6e51, (q15_t)0x2c2b, - (q15_t)0x6e5a, (q15_t)0x2c21, (q15_t)0x6e63, (q15_t)0x2c18, (q15_t)0x6e6b, (q15_t)0x2c0f, (q15_t)0x6e74, (q15_t)0x2c06, - (q15_t)0x6e7d, (q15_t)0x2bfd, (q15_t)0x6e85, (q15_t)0x2bf4, (q15_t)0x6e8e, (q15_t)0x2beb, (q15_t)0x6e97, (q15_t)0x2be2, - (q15_t)0x6e9f, (q15_t)0x2bd8, (q15_t)0x6ea8, (q15_t)0x2bcf, (q15_t)0x6eb0, (q15_t)0x2bc6, (q15_t)0x6eb9, (q15_t)0x2bbd, - (q15_t)0x6ec2, (q15_t)0x2bb4, (q15_t)0x6eca, (q15_t)0x2bab, (q15_t)0x6ed3, (q15_t)0x2ba1, (q15_t)0x6edb, (q15_t)0x2b98, - (q15_t)0x6ee4, (q15_t)0x2b8f, (q15_t)0x6eec, (q15_t)0x2b86, (q15_t)0x6ef5, (q15_t)0x2b7d, (q15_t)0x6efd, (q15_t)0x2b73, - (q15_t)0x6f06, (q15_t)0x2b6a, (q15_t)0x6f0e, (q15_t)0x2b61, (q15_t)0x6f17, (q15_t)0x2b58, (q15_t)0x6f20, (q15_t)0x2b4e, - (q15_t)0x6f28, (q15_t)0x2b45, (q15_t)0x6f30, (q15_t)0x2b3c, (q15_t)0x6f39, (q15_t)0x2b33, (q15_t)0x6f41, (q15_t)0x2b29, - (q15_t)0x6f4a, (q15_t)0x2b20, (q15_t)0x6f52, (q15_t)0x2b17, (q15_t)0x6f5b, (q15_t)0x2b0d, (q15_t)0x6f63, (q15_t)0x2b04, - (q15_t)0x6f6c, (q15_t)0x2afb, (q15_t)0x6f74, (q15_t)0x2af2, (q15_t)0x6f7d, (q15_t)0x2ae8, (q15_t)0x6f85, (q15_t)0x2adf, - (q15_t)0x6f8d, (q15_t)0x2ad6, (q15_t)0x6f96, (q15_t)0x2acc, (q15_t)0x6f9e, (q15_t)0x2ac3, (q15_t)0x6fa7, (q15_t)0x2ab9, - (q15_t)0x6faf, (q15_t)0x2ab0, (q15_t)0x6fb7, (q15_t)0x2aa7, (q15_t)0x6fc0, (q15_t)0x2a9d, (q15_t)0x6fc8, (q15_t)0x2a94, - (q15_t)0x6fd0, (q15_t)0x2a8b, (q15_t)0x6fd9, (q15_t)0x2a81, (q15_t)0x6fe1, (q15_t)0x2a78, (q15_t)0x6fea, (q15_t)0x2a6e, - (q15_t)0x6ff2, (q15_t)0x2a65, (q15_t)0x6ffa, (q15_t)0x2a5c, (q15_t)0x7002, (q15_t)0x2a52, (q15_t)0x700b, (q15_t)0x2a49, - (q15_t)0x7013, (q15_t)0x2a3f, (q15_t)0x701b, (q15_t)0x2a36, (q15_t)0x7024, (q15_t)0x2a2c, (q15_t)0x702c, (q15_t)0x2a23, - (q15_t)0x7034, (q15_t)0x2a1a, (q15_t)0x703c, (q15_t)0x2a10, (q15_t)0x7045, (q15_t)0x2a07, (q15_t)0x704d, (q15_t)0x29fd, - (q15_t)0x7055, (q15_t)0x29f4, (q15_t)0x705d, (q15_t)0x29ea, (q15_t)0x7066, (q15_t)0x29e1, (q15_t)0x706e, (q15_t)0x29d7, - (q15_t)0x7076, (q15_t)0x29ce, (q15_t)0x707e, (q15_t)0x29c4, (q15_t)0x7087, (q15_t)0x29bb, (q15_t)0x708f, (q15_t)0x29b1, - (q15_t)0x7097, (q15_t)0x29a7, (q15_t)0x709f, (q15_t)0x299e, (q15_t)0x70a7, (q15_t)0x2994, (q15_t)0x70af, (q15_t)0x298b, - (q15_t)0x70b8, (q15_t)0x2981, (q15_t)0x70c0, (q15_t)0x2978, (q15_t)0x70c8, (q15_t)0x296e, (q15_t)0x70d0, (q15_t)0x2965, - (q15_t)0x70d8, (q15_t)0x295b, (q15_t)0x70e0, (q15_t)0x2951, (q15_t)0x70e8, (q15_t)0x2948, (q15_t)0x70f0, (q15_t)0x293e, - (q15_t)0x70f9, (q15_t)0x2935, (q15_t)0x7101, (q15_t)0x292b, (q15_t)0x7109, (q15_t)0x2921, (q15_t)0x7111, (q15_t)0x2918, - (q15_t)0x7119, (q15_t)0x290e, (q15_t)0x7121, (q15_t)0x2904, (q15_t)0x7129, (q15_t)0x28fb, (q15_t)0x7131, (q15_t)0x28f1, - (q15_t)0x7139, (q15_t)0x28e7, (q15_t)0x7141, (q15_t)0x28de, (q15_t)0x7149, (q15_t)0x28d4, (q15_t)0x7151, (q15_t)0x28ca, - (q15_t)0x7159, (q15_t)0x28c1, (q15_t)0x7161, (q15_t)0x28b7, (q15_t)0x7169, (q15_t)0x28ad, (q15_t)0x7171, (q15_t)0x28a4, - (q15_t)0x7179, (q15_t)0x289a, (q15_t)0x7181, (q15_t)0x2890, (q15_t)0x7189, (q15_t)0x2886, (q15_t)0x7191, (q15_t)0x287d, - (q15_t)0x7199, (q15_t)0x2873, (q15_t)0x71a1, (q15_t)0x2869, (q15_t)0x71a9, (q15_t)0x2860, (q15_t)0x71b1, (q15_t)0x2856, - (q15_t)0x71b9, (q15_t)0x284c, (q15_t)0x71c0, (q15_t)0x2842, (q15_t)0x71c8, (q15_t)0x2838, (q15_t)0x71d0, (q15_t)0x282f, - (q15_t)0x71d8, (q15_t)0x2825, (q15_t)0x71e0, (q15_t)0x281b, (q15_t)0x71e8, (q15_t)0x2811, (q15_t)0x71f0, (q15_t)0x2808, - (q15_t)0x71f8, (q15_t)0x27fe, (q15_t)0x71ff, (q15_t)0x27f4, (q15_t)0x7207, (q15_t)0x27ea, (q15_t)0x720f, (q15_t)0x27e0, - (q15_t)0x7217, (q15_t)0x27d6, (q15_t)0x721f, (q15_t)0x27cd, (q15_t)0x7227, (q15_t)0x27c3, (q15_t)0x722e, (q15_t)0x27b9, - (q15_t)0x7236, (q15_t)0x27af, (q15_t)0x723e, (q15_t)0x27a5, (q15_t)0x7246, (q15_t)0x279b, (q15_t)0x724e, (q15_t)0x2791, - (q15_t)0x7255, (q15_t)0x2788, (q15_t)0x725d, (q15_t)0x277e, (q15_t)0x7265, (q15_t)0x2774, (q15_t)0x726d, (q15_t)0x276a, - (q15_t)0x7274, (q15_t)0x2760, (q15_t)0x727c, (q15_t)0x2756, (q15_t)0x7284, (q15_t)0x274c, (q15_t)0x728b, (q15_t)0x2742, - (q15_t)0x7293, (q15_t)0x2738, (q15_t)0x729b, (q15_t)0x272e, (q15_t)0x72a3, (q15_t)0x2724, (q15_t)0x72aa, (q15_t)0x271a, - (q15_t)0x72b2, (q15_t)0x2711, (q15_t)0x72ba, (q15_t)0x2707, (q15_t)0x72c1, (q15_t)0x26fd, (q15_t)0x72c9, (q15_t)0x26f3, - (q15_t)0x72d0, (q15_t)0x26e9, (q15_t)0x72d8, (q15_t)0x26df, (q15_t)0x72e0, (q15_t)0x26d5, (q15_t)0x72e7, (q15_t)0x26cb, - (q15_t)0x72ef, (q15_t)0x26c1, (q15_t)0x72f7, (q15_t)0x26b7, (q15_t)0x72fe, (q15_t)0x26ad, (q15_t)0x7306, (q15_t)0x26a3, - (q15_t)0x730d, (q15_t)0x2699, (q15_t)0x7315, (q15_t)0x268f, (q15_t)0x731d, (q15_t)0x2685, (q15_t)0x7324, (q15_t)0x267b, - (q15_t)0x732c, (q15_t)0x2671, (q15_t)0x7333, (q15_t)0x2666, (q15_t)0x733b, (q15_t)0x265c, (q15_t)0x7342, (q15_t)0x2652, - (q15_t)0x734a, (q15_t)0x2648, (q15_t)0x7351, (q15_t)0x263e, (q15_t)0x7359, (q15_t)0x2634, (q15_t)0x7360, (q15_t)0x262a, - (q15_t)0x7368, (q15_t)0x2620, (q15_t)0x736f, (q15_t)0x2616, (q15_t)0x7377, (q15_t)0x260c, (q15_t)0x737e, (q15_t)0x2602, - (q15_t)0x7386, (q15_t)0x25f8, (q15_t)0x738d, (q15_t)0x25ed, (q15_t)0x7395, (q15_t)0x25e3, (q15_t)0x739c, (q15_t)0x25d9, - (q15_t)0x73a3, (q15_t)0x25cf, (q15_t)0x73ab, (q15_t)0x25c5, (q15_t)0x73b2, (q15_t)0x25bb, (q15_t)0x73ba, (q15_t)0x25b1, - (q15_t)0x73c1, (q15_t)0x25a6, (q15_t)0x73c8, (q15_t)0x259c, (q15_t)0x73d0, (q15_t)0x2592, (q15_t)0x73d7, (q15_t)0x2588, - (q15_t)0x73df, (q15_t)0x257e, (q15_t)0x73e6, (q15_t)0x2574, (q15_t)0x73ed, (q15_t)0x2569, (q15_t)0x73f5, (q15_t)0x255f, - (q15_t)0x73fc, (q15_t)0x2555, (q15_t)0x7403, (q15_t)0x254b, (q15_t)0x740b, (q15_t)0x2541, (q15_t)0x7412, (q15_t)0x2536, - (q15_t)0x7419, (q15_t)0x252c, (q15_t)0x7420, (q15_t)0x2522, (q15_t)0x7428, (q15_t)0x2518, (q15_t)0x742f, (q15_t)0x250d, - (q15_t)0x7436, (q15_t)0x2503, (q15_t)0x743e, (q15_t)0x24f9, (q15_t)0x7445, (q15_t)0x24ef, (q15_t)0x744c, (q15_t)0x24e4, - (q15_t)0x7453, (q15_t)0x24da, (q15_t)0x745b, (q15_t)0x24d0, (q15_t)0x7462, (q15_t)0x24c5, (q15_t)0x7469, (q15_t)0x24bb, - (q15_t)0x7470, (q15_t)0x24b1, (q15_t)0x7477, (q15_t)0x24a7, (q15_t)0x747f, (q15_t)0x249c, (q15_t)0x7486, (q15_t)0x2492, - (q15_t)0x748d, (q15_t)0x2488, (q15_t)0x7494, (q15_t)0x247d, (q15_t)0x749b, (q15_t)0x2473, (q15_t)0x74a2, (q15_t)0x2469, - (q15_t)0x74aa, (q15_t)0x245e, (q15_t)0x74b1, (q15_t)0x2454, (q15_t)0x74b8, (q15_t)0x244a, (q15_t)0x74bf, (q15_t)0x243f, - (q15_t)0x74c6, (q15_t)0x2435, (q15_t)0x74cd, (q15_t)0x242b, (q15_t)0x74d4, (q15_t)0x2420, (q15_t)0x74db, (q15_t)0x2416, - (q15_t)0x74e2, (q15_t)0x240b, (q15_t)0x74ea, (q15_t)0x2401, (q15_t)0x74f1, (q15_t)0x23f7, (q15_t)0x74f8, (q15_t)0x23ec, - (q15_t)0x74ff, (q15_t)0x23e2, (q15_t)0x7506, (q15_t)0x23d7, (q15_t)0x750d, (q15_t)0x23cd, (q15_t)0x7514, (q15_t)0x23c3, - (q15_t)0x751b, (q15_t)0x23b8, (q15_t)0x7522, (q15_t)0x23ae, (q15_t)0x7529, (q15_t)0x23a3, (q15_t)0x7530, (q15_t)0x2399, - (q15_t)0x7537, (q15_t)0x238e, (q15_t)0x753e, (q15_t)0x2384, (q15_t)0x7545, (q15_t)0x237a, (q15_t)0x754c, (q15_t)0x236f, - (q15_t)0x7553, (q15_t)0x2365, (q15_t)0x755a, (q15_t)0x235a, (q15_t)0x7561, (q15_t)0x2350, (q15_t)0x7567, (q15_t)0x2345, - (q15_t)0x756e, (q15_t)0x233b, (q15_t)0x7575, (q15_t)0x2330, (q15_t)0x757c, (q15_t)0x2326, (q15_t)0x7583, (q15_t)0x231b, - (q15_t)0x758a, (q15_t)0x2311, (q15_t)0x7591, (q15_t)0x2306, (q15_t)0x7598, (q15_t)0x22fc, (q15_t)0x759f, (q15_t)0x22f1, - (q15_t)0x75a5, (q15_t)0x22e7, (q15_t)0x75ac, (q15_t)0x22dc, (q15_t)0x75b3, (q15_t)0x22d2, (q15_t)0x75ba, (q15_t)0x22c7, - (q15_t)0x75c1, (q15_t)0x22bc, (q15_t)0x75c8, (q15_t)0x22b2, (q15_t)0x75ce, (q15_t)0x22a7, (q15_t)0x75d5, (q15_t)0x229d, - (q15_t)0x75dc, (q15_t)0x2292, (q15_t)0x75e3, (q15_t)0x2288, (q15_t)0x75ea, (q15_t)0x227d, (q15_t)0x75f0, (q15_t)0x2272, - (q15_t)0x75f7, (q15_t)0x2268, (q15_t)0x75fe, (q15_t)0x225d, (q15_t)0x7605, (q15_t)0x2253, (q15_t)0x760b, (q15_t)0x2248, - (q15_t)0x7612, (q15_t)0x223d, (q15_t)0x7619, (q15_t)0x2233, (q15_t)0x7620, (q15_t)0x2228, (q15_t)0x7626, (q15_t)0x221e, - (q15_t)0x762d, (q15_t)0x2213, (q15_t)0x7634, (q15_t)0x2208, (q15_t)0x763a, (q15_t)0x21fe, (q15_t)0x7641, (q15_t)0x21f3, - (q15_t)0x7648, (q15_t)0x21e8, (q15_t)0x764e, (q15_t)0x21de, (q15_t)0x7655, (q15_t)0x21d3, (q15_t)0x765c, (q15_t)0x21c8, - (q15_t)0x7662, (q15_t)0x21be, (q15_t)0x7669, (q15_t)0x21b3, (q15_t)0x766f, (q15_t)0x21a8, (q15_t)0x7676, (q15_t)0x219e, - (q15_t)0x767d, (q15_t)0x2193, (q15_t)0x7683, (q15_t)0x2188, (q15_t)0x768a, (q15_t)0x217d, (q15_t)0x7690, (q15_t)0x2173, - (q15_t)0x7697, (q15_t)0x2168, (q15_t)0x769d, (q15_t)0x215d, (q15_t)0x76a4, (q15_t)0x2153, (q15_t)0x76ab, (q15_t)0x2148, - (q15_t)0x76b1, (q15_t)0x213d, (q15_t)0x76b8, (q15_t)0x2132, (q15_t)0x76be, (q15_t)0x2128, (q15_t)0x76c5, (q15_t)0x211d, - (q15_t)0x76cb, (q15_t)0x2112, (q15_t)0x76d2, (q15_t)0x2107, (q15_t)0x76d8, (q15_t)0x20fd, (q15_t)0x76df, (q15_t)0x20f2, - (q15_t)0x76e5, (q15_t)0x20e7, (q15_t)0x76eb, (q15_t)0x20dc, (q15_t)0x76f2, (q15_t)0x20d1, (q15_t)0x76f8, (q15_t)0x20c7, - (q15_t)0x76ff, (q15_t)0x20bc, (q15_t)0x7705, (q15_t)0x20b1, (q15_t)0x770c, (q15_t)0x20a6, (q15_t)0x7712, (q15_t)0x209b, - (q15_t)0x7718, (q15_t)0x2091, (q15_t)0x771f, (q15_t)0x2086, (q15_t)0x7725, (q15_t)0x207b, (q15_t)0x772c, (q15_t)0x2070, - (q15_t)0x7732, (q15_t)0x2065, (q15_t)0x7738, (q15_t)0x205b, (q15_t)0x773f, (q15_t)0x2050, (q15_t)0x7745, (q15_t)0x2045, - (q15_t)0x774b, (q15_t)0x203a, (q15_t)0x7752, (q15_t)0x202f, (q15_t)0x7758, (q15_t)0x2024, (q15_t)0x775e, (q15_t)0x2019, - (q15_t)0x7765, (q15_t)0x200f, (q15_t)0x776b, (q15_t)0x2004, (q15_t)0x7771, (q15_t)0x1ff9, (q15_t)0x7777, (q15_t)0x1fee, - (q15_t)0x777e, (q15_t)0x1fe3, (q15_t)0x7784, (q15_t)0x1fd8, (q15_t)0x778a, (q15_t)0x1fcd, (q15_t)0x7790, (q15_t)0x1fc2, - (q15_t)0x7797, (q15_t)0x1fb7, (q15_t)0x779d, (q15_t)0x1fac, (q15_t)0x77a3, (q15_t)0x1fa2, (q15_t)0x77a9, (q15_t)0x1f97, - (q15_t)0x77b0, (q15_t)0x1f8c, (q15_t)0x77b6, (q15_t)0x1f81, (q15_t)0x77bc, (q15_t)0x1f76, (q15_t)0x77c2, (q15_t)0x1f6b, - (q15_t)0x77c8, (q15_t)0x1f60, (q15_t)0x77ce, (q15_t)0x1f55, (q15_t)0x77d5, (q15_t)0x1f4a, (q15_t)0x77db, (q15_t)0x1f3f, - (q15_t)0x77e1, (q15_t)0x1f34, (q15_t)0x77e7, (q15_t)0x1f29, (q15_t)0x77ed, (q15_t)0x1f1e, (q15_t)0x77f3, (q15_t)0x1f13, - (q15_t)0x77f9, (q15_t)0x1f08, (q15_t)0x77ff, (q15_t)0x1efd, (q15_t)0x7805, (q15_t)0x1ef2, (q15_t)0x780b, (q15_t)0x1ee7, - (q15_t)0x7812, (q15_t)0x1edc, (q15_t)0x7818, (q15_t)0x1ed1, (q15_t)0x781e, (q15_t)0x1ec6, (q15_t)0x7824, (q15_t)0x1ebb, - (q15_t)0x782a, (q15_t)0x1eb0, (q15_t)0x7830, (q15_t)0x1ea5, (q15_t)0x7836, (q15_t)0x1e9a, (q15_t)0x783c, (q15_t)0x1e8f, - (q15_t)0x7842, (q15_t)0x1e84, (q15_t)0x7848, (q15_t)0x1e79, (q15_t)0x784e, (q15_t)0x1e6e, (q15_t)0x7854, (q15_t)0x1e63, - (q15_t)0x785a, (q15_t)0x1e58, (q15_t)0x7860, (q15_t)0x1e4d, (q15_t)0x7866, (q15_t)0x1e42, (q15_t)0x786b, (q15_t)0x1e36, - (q15_t)0x7871, (q15_t)0x1e2b, (q15_t)0x7877, (q15_t)0x1e20, (q15_t)0x787d, (q15_t)0x1e15, (q15_t)0x7883, (q15_t)0x1e0a, - (q15_t)0x7889, (q15_t)0x1dff, (q15_t)0x788f, (q15_t)0x1df4, (q15_t)0x7895, (q15_t)0x1de9, (q15_t)0x789b, (q15_t)0x1dde, - (q15_t)0x78a1, (q15_t)0x1dd3, (q15_t)0x78a6, (q15_t)0x1dc7, (q15_t)0x78ac, (q15_t)0x1dbc, (q15_t)0x78b2, (q15_t)0x1db1, - (q15_t)0x78b8, (q15_t)0x1da6, (q15_t)0x78be, (q15_t)0x1d9b, (q15_t)0x78c3, (q15_t)0x1d90, (q15_t)0x78c9, (q15_t)0x1d85, - (q15_t)0x78cf, (q15_t)0x1d79, (q15_t)0x78d5, (q15_t)0x1d6e, (q15_t)0x78db, (q15_t)0x1d63, (q15_t)0x78e0, (q15_t)0x1d58, - (q15_t)0x78e6, (q15_t)0x1d4d, (q15_t)0x78ec, (q15_t)0x1d42, (q15_t)0x78f2, (q15_t)0x1d36, (q15_t)0x78f7, (q15_t)0x1d2b, - (q15_t)0x78fd, (q15_t)0x1d20, (q15_t)0x7903, (q15_t)0x1d15, (q15_t)0x7909, (q15_t)0x1d0a, (q15_t)0x790e, (q15_t)0x1cff, - (q15_t)0x7914, (q15_t)0x1cf3, (q15_t)0x791a, (q15_t)0x1ce8, (q15_t)0x791f, (q15_t)0x1cdd, (q15_t)0x7925, (q15_t)0x1cd2, - (q15_t)0x792b, (q15_t)0x1cc6, (q15_t)0x7930, (q15_t)0x1cbb, (q15_t)0x7936, (q15_t)0x1cb0, (q15_t)0x793b, (q15_t)0x1ca5, - (q15_t)0x7941, (q15_t)0x1c99, (q15_t)0x7947, (q15_t)0x1c8e, (q15_t)0x794c, (q15_t)0x1c83, (q15_t)0x7952, (q15_t)0x1c78, - (q15_t)0x7958, (q15_t)0x1c6c, (q15_t)0x795d, (q15_t)0x1c61, (q15_t)0x7963, (q15_t)0x1c56, (q15_t)0x7968, (q15_t)0x1c4b, - (q15_t)0x796e, (q15_t)0x1c3f, (q15_t)0x7973, (q15_t)0x1c34, (q15_t)0x7979, (q15_t)0x1c29, (q15_t)0x797e, (q15_t)0x1c1e, - (q15_t)0x7984, (q15_t)0x1c12, (q15_t)0x7989, (q15_t)0x1c07, (q15_t)0x798f, (q15_t)0x1bfc, (q15_t)0x7994, (q15_t)0x1bf0, - (q15_t)0x799a, (q15_t)0x1be5, (q15_t)0x799f, (q15_t)0x1bda, (q15_t)0x79a5, (q15_t)0x1bce, (q15_t)0x79aa, (q15_t)0x1bc3, - (q15_t)0x79b0, (q15_t)0x1bb8, (q15_t)0x79b5, (q15_t)0x1bac, (q15_t)0x79bb, (q15_t)0x1ba1, (q15_t)0x79c0, (q15_t)0x1b96, - (q15_t)0x79c5, (q15_t)0x1b8a, (q15_t)0x79cb, (q15_t)0x1b7f, (q15_t)0x79d0, (q15_t)0x1b74, (q15_t)0x79d6, (q15_t)0x1b68, - (q15_t)0x79db, (q15_t)0x1b5d, (q15_t)0x79e0, (q15_t)0x1b52, (q15_t)0x79e6, (q15_t)0x1b46, (q15_t)0x79eb, (q15_t)0x1b3b, - (q15_t)0x79f0, (q15_t)0x1b30, (q15_t)0x79f6, (q15_t)0x1b24, (q15_t)0x79fb, (q15_t)0x1b19, (q15_t)0x7a00, (q15_t)0x1b0d, - (q15_t)0x7a06, (q15_t)0x1b02, (q15_t)0x7a0b, (q15_t)0x1af7, (q15_t)0x7a10, (q15_t)0x1aeb, (q15_t)0x7a16, (q15_t)0x1ae0, - (q15_t)0x7a1b, (q15_t)0x1ad4, (q15_t)0x7a20, (q15_t)0x1ac9, (q15_t)0x7a25, (q15_t)0x1abe, (q15_t)0x7a2b, (q15_t)0x1ab2, - (q15_t)0x7a30, (q15_t)0x1aa7, (q15_t)0x7a35, (q15_t)0x1a9b, (q15_t)0x7a3a, (q15_t)0x1a90, (q15_t)0x7a3f, (q15_t)0x1a84, - (q15_t)0x7a45, (q15_t)0x1a79, (q15_t)0x7a4a, (q15_t)0x1a6e, (q15_t)0x7a4f, (q15_t)0x1a62, (q15_t)0x7a54, (q15_t)0x1a57, - (q15_t)0x7a59, (q15_t)0x1a4b, (q15_t)0x7a5f, (q15_t)0x1a40, (q15_t)0x7a64, (q15_t)0x1a34, (q15_t)0x7a69, (q15_t)0x1a29, - (q15_t)0x7a6e, (q15_t)0x1a1d, (q15_t)0x7a73, (q15_t)0x1a12, (q15_t)0x7a78, (q15_t)0x1a06, (q15_t)0x7a7d, (q15_t)0x19fb, - (q15_t)0x7a82, (q15_t)0x19ef, (q15_t)0x7a88, (q15_t)0x19e4, (q15_t)0x7a8d, (q15_t)0x19d8, (q15_t)0x7a92, (q15_t)0x19cd, - (q15_t)0x7a97, (q15_t)0x19c1, (q15_t)0x7a9c, (q15_t)0x19b6, (q15_t)0x7aa1, (q15_t)0x19aa, (q15_t)0x7aa6, (q15_t)0x199f, - (q15_t)0x7aab, (q15_t)0x1993, (q15_t)0x7ab0, (q15_t)0x1988, (q15_t)0x7ab5, (q15_t)0x197c, (q15_t)0x7aba, (q15_t)0x1971, - (q15_t)0x7abf, (q15_t)0x1965, (q15_t)0x7ac4, (q15_t)0x195a, (q15_t)0x7ac9, (q15_t)0x194e, (q15_t)0x7ace, (q15_t)0x1943, - (q15_t)0x7ad3, (q15_t)0x1937, (q15_t)0x7ad8, (q15_t)0x192c, (q15_t)0x7add, (q15_t)0x1920, (q15_t)0x7ae2, (q15_t)0x1914, - (q15_t)0x7ae6, (q15_t)0x1909, (q15_t)0x7aeb, (q15_t)0x18fd, (q15_t)0x7af0, (q15_t)0x18f2, (q15_t)0x7af5, (q15_t)0x18e6, - (q15_t)0x7afa, (q15_t)0x18db, (q15_t)0x7aff, (q15_t)0x18cf, (q15_t)0x7b04, (q15_t)0x18c3, (q15_t)0x7b09, (q15_t)0x18b8, - (q15_t)0x7b0e, (q15_t)0x18ac, (q15_t)0x7b12, (q15_t)0x18a1, (q15_t)0x7b17, (q15_t)0x1895, (q15_t)0x7b1c, (q15_t)0x1889, - (q15_t)0x7b21, (q15_t)0x187e, (q15_t)0x7b26, (q15_t)0x1872, (q15_t)0x7b2a, (q15_t)0x1867, (q15_t)0x7b2f, (q15_t)0x185b, - (q15_t)0x7b34, (q15_t)0x184f, (q15_t)0x7b39, (q15_t)0x1844, (q15_t)0x7b3e, (q15_t)0x1838, (q15_t)0x7b42, (q15_t)0x182d, - (q15_t)0x7b47, (q15_t)0x1821, (q15_t)0x7b4c, (q15_t)0x1815, (q15_t)0x7b50, (q15_t)0x180a, (q15_t)0x7b55, (q15_t)0x17fe, - (q15_t)0x7b5a, (q15_t)0x17f2, (q15_t)0x7b5f, (q15_t)0x17e7, (q15_t)0x7b63, (q15_t)0x17db, (q15_t)0x7b68, (q15_t)0x17cf, - (q15_t)0x7b6d, (q15_t)0x17c4, (q15_t)0x7b71, (q15_t)0x17b8, (q15_t)0x7b76, (q15_t)0x17ac, (q15_t)0x7b7b, (q15_t)0x17a1, - (q15_t)0x7b7f, (q15_t)0x1795, (q15_t)0x7b84, (q15_t)0x1789, (q15_t)0x7b88, (q15_t)0x177e, (q15_t)0x7b8d, (q15_t)0x1772, - (q15_t)0x7b92, (q15_t)0x1766, (q15_t)0x7b96, (q15_t)0x175b, (q15_t)0x7b9b, (q15_t)0x174f, (q15_t)0x7b9f, (q15_t)0x1743, - (q15_t)0x7ba4, (q15_t)0x1737, (q15_t)0x7ba9, (q15_t)0x172c, (q15_t)0x7bad, (q15_t)0x1720, (q15_t)0x7bb2, (q15_t)0x1714, - (q15_t)0x7bb6, (q15_t)0x1709, (q15_t)0x7bbb, (q15_t)0x16fd, (q15_t)0x7bbf, (q15_t)0x16f1, (q15_t)0x7bc4, (q15_t)0x16e5, - (q15_t)0x7bc8, (q15_t)0x16da, (q15_t)0x7bcd, (q15_t)0x16ce, (q15_t)0x7bd1, (q15_t)0x16c2, (q15_t)0x7bd6, (q15_t)0x16b6, - (q15_t)0x7bda, (q15_t)0x16ab, (q15_t)0x7bde, (q15_t)0x169f, (q15_t)0x7be3, (q15_t)0x1693, (q15_t)0x7be7, (q15_t)0x1687, - (q15_t)0x7bec, (q15_t)0x167c, (q15_t)0x7bf0, (q15_t)0x1670, (q15_t)0x7bf5, (q15_t)0x1664, (q15_t)0x7bf9, (q15_t)0x1658, - (q15_t)0x7bfd, (q15_t)0x164c, (q15_t)0x7c02, (q15_t)0x1641, (q15_t)0x7c06, (q15_t)0x1635, (q15_t)0x7c0a, (q15_t)0x1629, - (q15_t)0x7c0f, (q15_t)0x161d, (q15_t)0x7c13, (q15_t)0x1612, (q15_t)0x7c17, (q15_t)0x1606, (q15_t)0x7c1c, (q15_t)0x15fa, - (q15_t)0x7c20, (q15_t)0x15ee, (q15_t)0x7c24, (q15_t)0x15e2, (q15_t)0x7c29, (q15_t)0x15d7, (q15_t)0x7c2d, (q15_t)0x15cb, - (q15_t)0x7c31, (q15_t)0x15bf, (q15_t)0x7c36, (q15_t)0x15b3, (q15_t)0x7c3a, (q15_t)0x15a7, (q15_t)0x7c3e, (q15_t)0x159b, - (q15_t)0x7c42, (q15_t)0x1590, (q15_t)0x7c46, (q15_t)0x1584, (q15_t)0x7c4b, (q15_t)0x1578, (q15_t)0x7c4f, (q15_t)0x156c, - (q15_t)0x7c53, (q15_t)0x1560, (q15_t)0x7c57, (q15_t)0x1554, (q15_t)0x7c5b, (q15_t)0x1549, (q15_t)0x7c60, (q15_t)0x153d, - (q15_t)0x7c64, (q15_t)0x1531, (q15_t)0x7c68, (q15_t)0x1525, (q15_t)0x7c6c, (q15_t)0x1519, (q15_t)0x7c70, (q15_t)0x150d, - (q15_t)0x7c74, (q15_t)0x1501, (q15_t)0x7c79, (q15_t)0x14f6, (q15_t)0x7c7d, (q15_t)0x14ea, (q15_t)0x7c81, (q15_t)0x14de, - (q15_t)0x7c85, (q15_t)0x14d2, (q15_t)0x7c89, (q15_t)0x14c6, (q15_t)0x7c8d, (q15_t)0x14ba, (q15_t)0x7c91, (q15_t)0x14ae, - (q15_t)0x7c95, (q15_t)0x14a2, (q15_t)0x7c99, (q15_t)0x1496, (q15_t)0x7c9d, (q15_t)0x148b, (q15_t)0x7ca1, (q15_t)0x147f, - (q15_t)0x7ca5, (q15_t)0x1473, (q15_t)0x7ca9, (q15_t)0x1467, (q15_t)0x7cad, (q15_t)0x145b, (q15_t)0x7cb1, (q15_t)0x144f, - (q15_t)0x7cb5, (q15_t)0x1443, (q15_t)0x7cb9, (q15_t)0x1437, (q15_t)0x7cbd, (q15_t)0x142b, (q15_t)0x7cc1, (q15_t)0x141f, - (q15_t)0x7cc5, (q15_t)0x1413, (q15_t)0x7cc9, (q15_t)0x1407, (q15_t)0x7ccd, (q15_t)0x13fb, (q15_t)0x7cd1, (q15_t)0x13f0, - (q15_t)0x7cd5, (q15_t)0x13e4, (q15_t)0x7cd9, (q15_t)0x13d8, (q15_t)0x7cdd, (q15_t)0x13cc, (q15_t)0x7ce0, (q15_t)0x13c0, - (q15_t)0x7ce4, (q15_t)0x13b4, (q15_t)0x7ce8, (q15_t)0x13a8, (q15_t)0x7cec, (q15_t)0x139c, (q15_t)0x7cf0, (q15_t)0x1390, - (q15_t)0x7cf4, (q15_t)0x1384, (q15_t)0x7cf8, (q15_t)0x1378, (q15_t)0x7cfb, (q15_t)0x136c, (q15_t)0x7cff, (q15_t)0x1360, - (q15_t)0x7d03, (q15_t)0x1354, (q15_t)0x7d07, (q15_t)0x1348, (q15_t)0x7d0b, (q15_t)0x133c, (q15_t)0x7d0e, (q15_t)0x1330, - (q15_t)0x7d12, (q15_t)0x1324, (q15_t)0x7d16, (q15_t)0x1318, (q15_t)0x7d1a, (q15_t)0x130c, (q15_t)0x7d1d, (q15_t)0x1300, - (q15_t)0x7d21, (q15_t)0x12f4, (q15_t)0x7d25, (q15_t)0x12e8, (q15_t)0x7d28, (q15_t)0x12dc, (q15_t)0x7d2c, (q15_t)0x12d0, - (q15_t)0x7d30, (q15_t)0x12c4, (q15_t)0x7d34, (q15_t)0x12b8, (q15_t)0x7d37, (q15_t)0x12ac, (q15_t)0x7d3b, (q15_t)0x12a0, - (q15_t)0x7d3f, (q15_t)0x1294, (q15_t)0x7d42, (q15_t)0x1288, (q15_t)0x7d46, (q15_t)0x127c, (q15_t)0x7d49, (q15_t)0x1270, - (q15_t)0x7d4d, (q15_t)0x1264, (q15_t)0x7d51, (q15_t)0x1258, (q15_t)0x7d54, (q15_t)0x124c, (q15_t)0x7d58, (q15_t)0x1240, - (q15_t)0x7d5b, (q15_t)0x1234, (q15_t)0x7d5f, (q15_t)0x1228, (q15_t)0x7d63, (q15_t)0x121c, (q15_t)0x7d66, (q15_t)0x1210, - (q15_t)0x7d6a, (q15_t)0x1204, (q15_t)0x7d6d, (q15_t)0x11f7, (q15_t)0x7d71, (q15_t)0x11eb, (q15_t)0x7d74, (q15_t)0x11df, - (q15_t)0x7d78, (q15_t)0x11d3, (q15_t)0x7d7b, (q15_t)0x11c7, (q15_t)0x7d7f, (q15_t)0x11bb, (q15_t)0x7d82, (q15_t)0x11af, - (q15_t)0x7d86, (q15_t)0x11a3, (q15_t)0x7d89, (q15_t)0x1197, (q15_t)0x7d8d, (q15_t)0x118b, (q15_t)0x7d90, (q15_t)0x117f, - (q15_t)0x7d93, (q15_t)0x1173, (q15_t)0x7d97, (q15_t)0x1167, (q15_t)0x7d9a, (q15_t)0x115a, (q15_t)0x7d9e, (q15_t)0x114e, - (q15_t)0x7da1, (q15_t)0x1142, (q15_t)0x7da4, (q15_t)0x1136, (q15_t)0x7da8, (q15_t)0x112a, (q15_t)0x7dab, (q15_t)0x111e, - (q15_t)0x7daf, (q15_t)0x1112, (q15_t)0x7db2, (q15_t)0x1106, (q15_t)0x7db5, (q15_t)0x10fa, (q15_t)0x7db9, (q15_t)0x10ed, - (q15_t)0x7dbc, (q15_t)0x10e1, (q15_t)0x7dbf, (q15_t)0x10d5, (q15_t)0x7dc2, (q15_t)0x10c9, (q15_t)0x7dc6, (q15_t)0x10bd, - (q15_t)0x7dc9, (q15_t)0x10b1, (q15_t)0x7dcc, (q15_t)0x10a5, (q15_t)0x7dd0, (q15_t)0x1099, (q15_t)0x7dd3, (q15_t)0x108c, - (q15_t)0x7dd6, (q15_t)0x1080, (q15_t)0x7dd9, (q15_t)0x1074, (q15_t)0x7ddd, (q15_t)0x1068, (q15_t)0x7de0, (q15_t)0x105c, - (q15_t)0x7de3, (q15_t)0x1050, (q15_t)0x7de6, (q15_t)0x1044, (q15_t)0x7de9, (q15_t)0x1037, (q15_t)0x7ded, (q15_t)0x102b, - (q15_t)0x7df0, (q15_t)0x101f, (q15_t)0x7df3, (q15_t)0x1013, (q15_t)0x7df6, (q15_t)0x1007, (q15_t)0x7df9, (q15_t)0xffb, - (q15_t)0x7dfc, (q15_t)0xfee, (q15_t)0x7dff, (q15_t)0xfe2, (q15_t)0x7e03, (q15_t)0xfd6, (q15_t)0x7e06, (q15_t)0xfca, - (q15_t)0x7e09, (q15_t)0xfbe, (q15_t)0x7e0c, (q15_t)0xfb2, (q15_t)0x7e0f, (q15_t)0xfa5, (q15_t)0x7e12, (q15_t)0xf99, - (q15_t)0x7e15, (q15_t)0xf8d, (q15_t)0x7e18, (q15_t)0xf81, (q15_t)0x7e1b, (q15_t)0xf75, (q15_t)0x7e1e, (q15_t)0xf68, - (q15_t)0x7e21, (q15_t)0xf5c, (q15_t)0x7e24, (q15_t)0xf50, (q15_t)0x7e27, (q15_t)0xf44, (q15_t)0x7e2a, (q15_t)0xf38, - (q15_t)0x7e2d, (q15_t)0xf2b, (q15_t)0x7e30, (q15_t)0xf1f, (q15_t)0x7e33, (q15_t)0xf13, (q15_t)0x7e36, (q15_t)0xf07, - (q15_t)0x7e39, (q15_t)0xefb, (q15_t)0x7e3c, (q15_t)0xeee, (q15_t)0x7e3f, (q15_t)0xee2, (q15_t)0x7e42, (q15_t)0xed6, - (q15_t)0x7e45, (q15_t)0xeca, (q15_t)0x7e48, (q15_t)0xebd, (q15_t)0x7e4a, (q15_t)0xeb1, (q15_t)0x7e4d, (q15_t)0xea5, - (q15_t)0x7e50, (q15_t)0xe99, (q15_t)0x7e53, (q15_t)0xe8c, (q15_t)0x7e56, (q15_t)0xe80, (q15_t)0x7e59, (q15_t)0xe74, - (q15_t)0x7e5c, (q15_t)0xe68, (q15_t)0x7e5e, (q15_t)0xe5c, (q15_t)0x7e61, (q15_t)0xe4f, (q15_t)0x7e64, (q15_t)0xe43, - (q15_t)0x7e67, (q15_t)0xe37, (q15_t)0x7e6a, (q15_t)0xe2b, (q15_t)0x7e6c, (q15_t)0xe1e, (q15_t)0x7e6f, (q15_t)0xe12, - (q15_t)0x7e72, (q15_t)0xe06, (q15_t)0x7e75, (q15_t)0xdf9, (q15_t)0x7e77, (q15_t)0xded, (q15_t)0x7e7a, (q15_t)0xde1, - (q15_t)0x7e7d, (q15_t)0xdd5, (q15_t)0x7e80, (q15_t)0xdc8, (q15_t)0x7e82, (q15_t)0xdbc, (q15_t)0x7e85, (q15_t)0xdb0, - (q15_t)0x7e88, (q15_t)0xda4, (q15_t)0x7e8a, (q15_t)0xd97, (q15_t)0x7e8d, (q15_t)0xd8b, (q15_t)0x7e90, (q15_t)0xd7f, - (q15_t)0x7e92, (q15_t)0xd72, (q15_t)0x7e95, (q15_t)0xd66, (q15_t)0x7e98, (q15_t)0xd5a, (q15_t)0x7e9a, (q15_t)0xd4e, - (q15_t)0x7e9d, (q15_t)0xd41, (q15_t)0x7e9f, (q15_t)0xd35, (q15_t)0x7ea2, (q15_t)0xd29, (q15_t)0x7ea5, (q15_t)0xd1c, - (q15_t)0x7ea7, (q15_t)0xd10, (q15_t)0x7eaa, (q15_t)0xd04, (q15_t)0x7eac, (q15_t)0xcf8, (q15_t)0x7eaf, (q15_t)0xceb, - (q15_t)0x7eb1, (q15_t)0xcdf, (q15_t)0x7eb4, (q15_t)0xcd3, (q15_t)0x7eb6, (q15_t)0xcc6, (q15_t)0x7eb9, (q15_t)0xcba, - (q15_t)0x7ebb, (q15_t)0xcae, (q15_t)0x7ebe, (q15_t)0xca1, (q15_t)0x7ec0, (q15_t)0xc95, (q15_t)0x7ec3, (q15_t)0xc89, - (q15_t)0x7ec5, (q15_t)0xc7c, (q15_t)0x7ec8, (q15_t)0xc70, (q15_t)0x7eca, (q15_t)0xc64, (q15_t)0x7ecc, (q15_t)0xc57, - (q15_t)0x7ecf, (q15_t)0xc4b, (q15_t)0x7ed1, (q15_t)0xc3f, (q15_t)0x7ed4, (q15_t)0xc32, (q15_t)0x7ed6, (q15_t)0xc26, - (q15_t)0x7ed8, (q15_t)0xc1a, (q15_t)0x7edb, (q15_t)0xc0d, (q15_t)0x7edd, (q15_t)0xc01, (q15_t)0x7ee0, (q15_t)0xbf5, - (q15_t)0x7ee2, (q15_t)0xbe8, (q15_t)0x7ee4, (q15_t)0xbdc, (q15_t)0x7ee7, (q15_t)0xbd0, (q15_t)0x7ee9, (q15_t)0xbc3, - (q15_t)0x7eeb, (q15_t)0xbb7, (q15_t)0x7eed, (q15_t)0xbab, (q15_t)0x7ef0, (q15_t)0xb9e, (q15_t)0x7ef2, (q15_t)0xb92, - (q15_t)0x7ef4, (q15_t)0xb85, (q15_t)0x7ef7, (q15_t)0xb79, (q15_t)0x7ef9, (q15_t)0xb6d, (q15_t)0x7efb, (q15_t)0xb60, - (q15_t)0x7efd, (q15_t)0xb54, (q15_t)0x7f00, (q15_t)0xb48, (q15_t)0x7f02, (q15_t)0xb3b, (q15_t)0x7f04, (q15_t)0xb2f, - (q15_t)0x7f06, (q15_t)0xb23, (q15_t)0x7f08, (q15_t)0xb16, (q15_t)0x7f0a, (q15_t)0xb0a, (q15_t)0x7f0d, (q15_t)0xafd, - (q15_t)0x7f0f, (q15_t)0xaf1, (q15_t)0x7f11, (q15_t)0xae5, (q15_t)0x7f13, (q15_t)0xad8, (q15_t)0x7f15, (q15_t)0xacc, - (q15_t)0x7f17, (q15_t)0xac0, (q15_t)0x7f19, (q15_t)0xab3, (q15_t)0x7f1c, (q15_t)0xaa7, (q15_t)0x7f1e, (q15_t)0xa9a, - (q15_t)0x7f20, (q15_t)0xa8e, (q15_t)0x7f22, (q15_t)0xa82, (q15_t)0x7f24, (q15_t)0xa75, (q15_t)0x7f26, (q15_t)0xa69, - (q15_t)0x7f28, (q15_t)0xa5c, (q15_t)0x7f2a, (q15_t)0xa50, (q15_t)0x7f2c, (q15_t)0xa44, (q15_t)0x7f2e, (q15_t)0xa37, - (q15_t)0x7f30, (q15_t)0xa2b, (q15_t)0x7f32, (q15_t)0xa1e, (q15_t)0x7f34, (q15_t)0xa12, (q15_t)0x7f36, (q15_t)0xa06, - (q15_t)0x7f38, (q15_t)0x9f9, (q15_t)0x7f3a, (q15_t)0x9ed, (q15_t)0x7f3c, (q15_t)0x9e0, (q15_t)0x7f3e, (q15_t)0x9d4, - (q15_t)0x7f40, (q15_t)0x9c7, (q15_t)0x7f42, (q15_t)0x9bb, (q15_t)0x7f43, (q15_t)0x9af, (q15_t)0x7f45, (q15_t)0x9a2, - (q15_t)0x7f47, (q15_t)0x996, (q15_t)0x7f49, (q15_t)0x989, (q15_t)0x7f4b, (q15_t)0x97d, (q15_t)0x7f4d, (q15_t)0x970, - (q15_t)0x7f4f, (q15_t)0x964, (q15_t)0x7f51, (q15_t)0x958, (q15_t)0x7f52, (q15_t)0x94b, (q15_t)0x7f54, (q15_t)0x93f, - (q15_t)0x7f56, (q15_t)0x932, (q15_t)0x7f58, (q15_t)0x926, (q15_t)0x7f5a, (q15_t)0x919, (q15_t)0x7f5b, (q15_t)0x90d, - (q15_t)0x7f5d, (q15_t)0x901, (q15_t)0x7f5f, (q15_t)0x8f4, (q15_t)0x7f61, (q15_t)0x8e8, (q15_t)0x7f62, (q15_t)0x8db, - (q15_t)0x7f64, (q15_t)0x8cf, (q15_t)0x7f66, (q15_t)0x8c2, (q15_t)0x7f68, (q15_t)0x8b6, (q15_t)0x7f69, (q15_t)0x8a9, - (q15_t)0x7f6b, (q15_t)0x89d, (q15_t)0x7f6d, (q15_t)0x891, (q15_t)0x7f6e, (q15_t)0x884, (q15_t)0x7f70, (q15_t)0x878, - (q15_t)0x7f72, (q15_t)0x86b, (q15_t)0x7f73, (q15_t)0x85f, (q15_t)0x7f75, (q15_t)0x852, (q15_t)0x7f77, (q15_t)0x846, - (q15_t)0x7f78, (q15_t)0x839, (q15_t)0x7f7a, (q15_t)0x82d, (q15_t)0x7f7b, (q15_t)0x820, (q15_t)0x7f7d, (q15_t)0x814, - (q15_t)0x7f7f, (q15_t)0x807, (q15_t)0x7f80, (q15_t)0x7fb, (q15_t)0x7f82, (q15_t)0x7ef, (q15_t)0x7f83, (q15_t)0x7e2, - (q15_t)0x7f85, (q15_t)0x7d6, (q15_t)0x7f86, (q15_t)0x7c9, (q15_t)0x7f88, (q15_t)0x7bd, (q15_t)0x7f89, (q15_t)0x7b0, - (q15_t)0x7f8b, (q15_t)0x7a4, (q15_t)0x7f8c, (q15_t)0x797, (q15_t)0x7f8e, (q15_t)0x78b, (q15_t)0x7f8f, (q15_t)0x77e, - (q15_t)0x7f91, (q15_t)0x772, (q15_t)0x7f92, (q15_t)0x765, (q15_t)0x7f94, (q15_t)0x759, (q15_t)0x7f95, (q15_t)0x74c, - (q15_t)0x7f97, (q15_t)0x740, (q15_t)0x7f98, (q15_t)0x733, (q15_t)0x7f99, (q15_t)0x727, (q15_t)0x7f9b, (q15_t)0x71a, - (q15_t)0x7f9c, (q15_t)0x70e, (q15_t)0x7f9e, (q15_t)0x701, (q15_t)0x7f9f, (q15_t)0x6f5, (q15_t)0x7fa0, (q15_t)0x6e8, - (q15_t)0x7fa2, (q15_t)0x6dc, (q15_t)0x7fa3, (q15_t)0x6cf, (q15_t)0x7fa4, (q15_t)0x6c3, (q15_t)0x7fa6, (q15_t)0x6b6, - (q15_t)0x7fa7, (q15_t)0x6aa, (q15_t)0x7fa8, (q15_t)0x69d, (q15_t)0x7faa, (q15_t)0x691, (q15_t)0x7fab, (q15_t)0x684, - (q15_t)0x7fac, (q15_t)0x678, (q15_t)0x7fad, (q15_t)0x66b, (q15_t)0x7faf, (q15_t)0x65f, (q15_t)0x7fb0, (q15_t)0x652, - (q15_t)0x7fb1, (q15_t)0x646, (q15_t)0x7fb2, (q15_t)0x639, (q15_t)0x7fb4, (q15_t)0x62d, (q15_t)0x7fb5, (q15_t)0x620, - (q15_t)0x7fb6, (q15_t)0x614, (q15_t)0x7fb7, (q15_t)0x607, (q15_t)0x7fb8, (q15_t)0x5fb, (q15_t)0x7fb9, (q15_t)0x5ee, - (q15_t)0x7fbb, (q15_t)0x5e2, (q15_t)0x7fbc, (q15_t)0x5d5, (q15_t)0x7fbd, (q15_t)0x5c9, (q15_t)0x7fbe, (q15_t)0x5bc, - (q15_t)0x7fbf, (q15_t)0x5b0, (q15_t)0x7fc0, (q15_t)0x5a3, (q15_t)0x7fc1, (q15_t)0x597, (q15_t)0x7fc3, (q15_t)0x58a, - (q15_t)0x7fc4, (q15_t)0x57e, (q15_t)0x7fc5, (q15_t)0x571, (q15_t)0x7fc6, (q15_t)0x565, (q15_t)0x7fc7, (q15_t)0x558, - (q15_t)0x7fc8, (q15_t)0x54c, (q15_t)0x7fc9, (q15_t)0x53f, (q15_t)0x7fca, (q15_t)0x533, (q15_t)0x7fcb, (q15_t)0x526, - (q15_t)0x7fcc, (q15_t)0x51a, (q15_t)0x7fcd, (q15_t)0x50d, (q15_t)0x7fce, (q15_t)0x500, (q15_t)0x7fcf, (q15_t)0x4f4, - (q15_t)0x7fd0, (q15_t)0x4e7, (q15_t)0x7fd1, (q15_t)0x4db, (q15_t)0x7fd2, (q15_t)0x4ce, (q15_t)0x7fd3, (q15_t)0x4c2, - (q15_t)0x7fd4, (q15_t)0x4b5, (q15_t)0x7fd5, (q15_t)0x4a9, (q15_t)0x7fd5, (q15_t)0x49c, (q15_t)0x7fd6, (q15_t)0x490, - (q15_t)0x7fd7, (q15_t)0x483, (q15_t)0x7fd8, (q15_t)0x477, (q15_t)0x7fd9, (q15_t)0x46a, (q15_t)0x7fda, (q15_t)0x45e, - (q15_t)0x7fdb, (q15_t)0x451, (q15_t)0x7fdc, (q15_t)0x444, (q15_t)0x7fdc, (q15_t)0x438, (q15_t)0x7fdd, (q15_t)0x42b, - (q15_t)0x7fde, (q15_t)0x41f, (q15_t)0x7fdf, (q15_t)0x412, (q15_t)0x7fe0, (q15_t)0x406, (q15_t)0x7fe0, (q15_t)0x3f9, - (q15_t)0x7fe1, (q15_t)0x3ed, (q15_t)0x7fe2, (q15_t)0x3e0, (q15_t)0x7fe3, (q15_t)0x3d4, (q15_t)0x7fe3, (q15_t)0x3c7, - (q15_t)0x7fe4, (q15_t)0x3bb, (q15_t)0x7fe5, (q15_t)0x3ae, (q15_t)0x7fe6, (q15_t)0x3a1, (q15_t)0x7fe6, (q15_t)0x395, - (q15_t)0x7fe7, (q15_t)0x388, (q15_t)0x7fe8, (q15_t)0x37c, (q15_t)0x7fe8, (q15_t)0x36f, (q15_t)0x7fe9, (q15_t)0x363, - (q15_t)0x7fea, (q15_t)0x356, (q15_t)0x7fea, (q15_t)0x34a, (q15_t)0x7feb, (q15_t)0x33d, (q15_t)0x7fec, (q15_t)0x330, - (q15_t)0x7fec, (q15_t)0x324, (q15_t)0x7fed, (q15_t)0x317, (q15_t)0x7fed, (q15_t)0x30b, (q15_t)0x7fee, (q15_t)0x2fe, - (q15_t)0x7fef, (q15_t)0x2f2, (q15_t)0x7fef, (q15_t)0x2e5, (q15_t)0x7ff0, (q15_t)0x2d9, (q15_t)0x7ff0, (q15_t)0x2cc, - (q15_t)0x7ff1, (q15_t)0x2c0, (q15_t)0x7ff1, (q15_t)0x2b3, (q15_t)0x7ff2, (q15_t)0x2a6, (q15_t)0x7ff2, (q15_t)0x29a, - (q15_t)0x7ff3, (q15_t)0x28d, (q15_t)0x7ff3, (q15_t)0x281, (q15_t)0x7ff4, (q15_t)0x274, (q15_t)0x7ff4, (q15_t)0x268, - (q15_t)0x7ff5, (q15_t)0x25b, (q15_t)0x7ff5, (q15_t)0x24e, (q15_t)0x7ff6, (q15_t)0x242, (q15_t)0x7ff6, (q15_t)0x235, - (q15_t)0x7ff7, (q15_t)0x229, (q15_t)0x7ff7, (q15_t)0x21c, (q15_t)0x7ff7, (q15_t)0x210, (q15_t)0x7ff8, (q15_t)0x203, - (q15_t)0x7ff8, (q15_t)0x1f7, (q15_t)0x7ff9, (q15_t)0x1ea, (q15_t)0x7ff9, (q15_t)0x1dd, (q15_t)0x7ff9, (q15_t)0x1d1, - (q15_t)0x7ffa, (q15_t)0x1c4, (q15_t)0x7ffa, (q15_t)0x1b8, (q15_t)0x7ffa, (q15_t)0x1ab, (q15_t)0x7ffb, (q15_t)0x19f, - (q15_t)0x7ffb, (q15_t)0x192, (q15_t)0x7ffb, (q15_t)0x186, (q15_t)0x7ffc, (q15_t)0x179, (q15_t)0x7ffc, (q15_t)0x16c, - (q15_t)0x7ffc, (q15_t)0x160, (q15_t)0x7ffc, (q15_t)0x153, (q15_t)0x7ffd, (q15_t)0x147, (q15_t)0x7ffd, (q15_t)0x13a, - (q15_t)0x7ffd, (q15_t)0x12e, (q15_t)0x7ffd, (q15_t)0x121, (q15_t)0x7ffe, (q15_t)0x114, (q15_t)0x7ffe, (q15_t)0x108, - (q15_t)0x7ffe, (q15_t)0xfb, (q15_t)0x7ffe, (q15_t)0xef, (q15_t)0x7ffe, (q15_t)0xe2, (q15_t)0x7fff, (q15_t)0xd6, - (q15_t)0x7fff, (q15_t)0xc9, (q15_t)0x7fff, (q15_t)0xbc, (q15_t)0x7fff, (q15_t)0xb0, (q15_t)0x7fff, (q15_t)0xa3, - (q15_t)0x7fff, (q15_t)0x97, (q15_t)0x7fff, (q15_t)0x8a, (q15_t)0x7fff, (q15_t)0x7e, (q15_t)0x7fff, (q15_t)0x71, - (q15_t)0x7fff, (q15_t)0x65, (q15_t)0x7fff, (q15_t)0x58, (q15_t)0x7fff, (q15_t)0x4b, (q15_t)0x7fff, (q15_t)0x3f, - (q15_t)0x7fff, (q15_t)0x32, (q15_t)0x7fff, (q15_t)0x26, (q15_t)0x7fff, (q15_t)0x19, (q15_t)0x7fff, (q15_t)0xd, - (q15_t)0x7fff, (q15_t)0x0, (q15_t)0x7fff, (q15_t)0xfff3, (q15_t)0x7fff, (q15_t)0xffe7, (q15_t)0x7fff, (q15_t)0xffda, - (q15_t)0x7fff, (q15_t)0xffce, (q15_t)0x7fff, (q15_t)0xffc1, (q15_t)0x7fff, (q15_t)0xffb5, (q15_t)0x7fff, (q15_t)0xffa8, - (q15_t)0x7fff, (q15_t)0xff9b, (q15_t)0x7fff, (q15_t)0xff8f, (q15_t)0x7fff, (q15_t)0xff82, (q15_t)0x7fff, (q15_t)0xff76, - (q15_t)0x7fff, (q15_t)0xff69, (q15_t)0x7fff, (q15_t)0xff5d, (q15_t)0x7fff, (q15_t)0xff50, (q15_t)0x7fff, (q15_t)0xff44, - (q15_t)0x7fff, (q15_t)0xff37, (q15_t)0x7fff, (q15_t)0xff2a, (q15_t)0x7ffe, (q15_t)0xff1e, (q15_t)0x7ffe, (q15_t)0xff11, - (q15_t)0x7ffe, (q15_t)0xff05, (q15_t)0x7ffe, (q15_t)0xfef8, (q15_t)0x7ffe, (q15_t)0xfeec, (q15_t)0x7ffd, (q15_t)0xfedf, - (q15_t)0x7ffd, (q15_t)0xfed2, (q15_t)0x7ffd, (q15_t)0xfec6, (q15_t)0x7ffd, (q15_t)0xfeb9, (q15_t)0x7ffc, (q15_t)0xfead, - (q15_t)0x7ffc, (q15_t)0xfea0, (q15_t)0x7ffc, (q15_t)0xfe94, (q15_t)0x7ffc, (q15_t)0xfe87, (q15_t)0x7ffb, (q15_t)0xfe7a, - (q15_t)0x7ffb, (q15_t)0xfe6e, (q15_t)0x7ffb, (q15_t)0xfe61, (q15_t)0x7ffa, (q15_t)0xfe55, (q15_t)0x7ffa, (q15_t)0xfe48, - (q15_t)0x7ffa, (q15_t)0xfe3c, (q15_t)0x7ff9, (q15_t)0xfe2f, (q15_t)0x7ff9, (q15_t)0xfe23, (q15_t)0x7ff9, (q15_t)0xfe16, - (q15_t)0x7ff8, (q15_t)0xfe09, (q15_t)0x7ff8, (q15_t)0xfdfd, (q15_t)0x7ff7, (q15_t)0xfdf0, (q15_t)0x7ff7, (q15_t)0xfde4, - (q15_t)0x7ff7, (q15_t)0xfdd7, (q15_t)0x7ff6, (q15_t)0xfdcb, (q15_t)0x7ff6, (q15_t)0xfdbe, (q15_t)0x7ff5, (q15_t)0xfdb2, - (q15_t)0x7ff5, (q15_t)0xfda5, (q15_t)0x7ff4, (q15_t)0xfd98, (q15_t)0x7ff4, (q15_t)0xfd8c, (q15_t)0x7ff3, (q15_t)0xfd7f, - (q15_t)0x7ff3, (q15_t)0xfd73, (q15_t)0x7ff2, (q15_t)0xfd66, (q15_t)0x7ff2, (q15_t)0xfd5a, (q15_t)0x7ff1, (q15_t)0xfd4d, - (q15_t)0x7ff1, (q15_t)0xfd40, (q15_t)0x7ff0, (q15_t)0xfd34, (q15_t)0x7ff0, (q15_t)0xfd27, (q15_t)0x7fef, (q15_t)0xfd1b, - (q15_t)0x7fef, (q15_t)0xfd0e, (q15_t)0x7fee, (q15_t)0xfd02, (q15_t)0x7fed, (q15_t)0xfcf5, (q15_t)0x7fed, (q15_t)0xfce9, - (q15_t)0x7fec, (q15_t)0xfcdc, (q15_t)0x7fec, (q15_t)0xfcd0, (q15_t)0x7feb, (q15_t)0xfcc3, (q15_t)0x7fea, (q15_t)0xfcb6, - (q15_t)0x7fea, (q15_t)0xfcaa, (q15_t)0x7fe9, (q15_t)0xfc9d, (q15_t)0x7fe8, (q15_t)0xfc91, (q15_t)0x7fe8, (q15_t)0xfc84, - (q15_t)0x7fe7, (q15_t)0xfc78, (q15_t)0x7fe6, (q15_t)0xfc6b, (q15_t)0x7fe6, (q15_t)0xfc5f, (q15_t)0x7fe5, (q15_t)0xfc52, - (q15_t)0x7fe4, (q15_t)0xfc45, (q15_t)0x7fe3, (q15_t)0xfc39, (q15_t)0x7fe3, (q15_t)0xfc2c, (q15_t)0x7fe2, (q15_t)0xfc20, - (q15_t)0x7fe1, (q15_t)0xfc13, (q15_t)0x7fe0, (q15_t)0xfc07, (q15_t)0x7fe0, (q15_t)0xfbfa, (q15_t)0x7fdf, (q15_t)0xfbee, - (q15_t)0x7fde, (q15_t)0xfbe1, (q15_t)0x7fdd, (q15_t)0xfbd5, (q15_t)0x7fdc, (q15_t)0xfbc8, (q15_t)0x7fdc, (q15_t)0xfbbc, - (q15_t)0x7fdb, (q15_t)0xfbaf, (q15_t)0x7fda, (q15_t)0xfba2, (q15_t)0x7fd9, (q15_t)0xfb96, (q15_t)0x7fd8, (q15_t)0xfb89, - (q15_t)0x7fd7, (q15_t)0xfb7d, (q15_t)0x7fd6, (q15_t)0xfb70, (q15_t)0x7fd5, (q15_t)0xfb64, (q15_t)0x7fd5, (q15_t)0xfb57, - (q15_t)0x7fd4, (q15_t)0xfb4b, (q15_t)0x7fd3, (q15_t)0xfb3e, (q15_t)0x7fd2, (q15_t)0xfb32, (q15_t)0x7fd1, (q15_t)0xfb25, - (q15_t)0x7fd0, (q15_t)0xfb19, (q15_t)0x7fcf, (q15_t)0xfb0c, (q15_t)0x7fce, (q15_t)0xfb00, (q15_t)0x7fcd, (q15_t)0xfaf3, - (q15_t)0x7fcc, (q15_t)0xfae6, (q15_t)0x7fcb, (q15_t)0xfada, (q15_t)0x7fca, (q15_t)0xfacd, (q15_t)0x7fc9, (q15_t)0xfac1, - (q15_t)0x7fc8, (q15_t)0xfab4, (q15_t)0x7fc7, (q15_t)0xfaa8, (q15_t)0x7fc6, (q15_t)0xfa9b, (q15_t)0x7fc5, (q15_t)0xfa8f, - (q15_t)0x7fc4, (q15_t)0xfa82, (q15_t)0x7fc3, (q15_t)0xfa76, (q15_t)0x7fc1, (q15_t)0xfa69, (q15_t)0x7fc0, (q15_t)0xfa5d, - (q15_t)0x7fbf, (q15_t)0xfa50, (q15_t)0x7fbe, (q15_t)0xfa44, (q15_t)0x7fbd, (q15_t)0xfa37, (q15_t)0x7fbc, (q15_t)0xfa2b, - (q15_t)0x7fbb, (q15_t)0xfa1e, (q15_t)0x7fb9, (q15_t)0xfa12, (q15_t)0x7fb8, (q15_t)0xfa05, (q15_t)0x7fb7, (q15_t)0xf9f9, - (q15_t)0x7fb6, (q15_t)0xf9ec, (q15_t)0x7fb5, (q15_t)0xf9e0, (q15_t)0x7fb4, (q15_t)0xf9d3, (q15_t)0x7fb2, (q15_t)0xf9c7, - (q15_t)0x7fb1, (q15_t)0xf9ba, (q15_t)0x7fb0, (q15_t)0xf9ae, (q15_t)0x7faf, (q15_t)0xf9a1, (q15_t)0x7fad, (q15_t)0xf995, - (q15_t)0x7fac, (q15_t)0xf988, (q15_t)0x7fab, (q15_t)0xf97c, (q15_t)0x7faa, (q15_t)0xf96f, (q15_t)0x7fa8, (q15_t)0xf963, - (q15_t)0x7fa7, (q15_t)0xf956, (q15_t)0x7fa6, (q15_t)0xf94a, (q15_t)0x7fa4, (q15_t)0xf93d, (q15_t)0x7fa3, (q15_t)0xf931, - (q15_t)0x7fa2, (q15_t)0xf924, (q15_t)0x7fa0, (q15_t)0xf918, (q15_t)0x7f9f, (q15_t)0xf90b, (q15_t)0x7f9e, (q15_t)0xf8ff, - (q15_t)0x7f9c, (q15_t)0xf8f2, (q15_t)0x7f9b, (q15_t)0xf8e6, (q15_t)0x7f99, (q15_t)0xf8d9, (q15_t)0x7f98, (q15_t)0xf8cd, - (q15_t)0x7f97, (q15_t)0xf8c0, (q15_t)0x7f95, (q15_t)0xf8b4, (q15_t)0x7f94, (q15_t)0xf8a7, (q15_t)0x7f92, (q15_t)0xf89b, - (q15_t)0x7f91, (q15_t)0xf88e, (q15_t)0x7f8f, (q15_t)0xf882, (q15_t)0x7f8e, (q15_t)0xf875, (q15_t)0x7f8c, (q15_t)0xf869, - (q15_t)0x7f8b, (q15_t)0xf85c, (q15_t)0x7f89, (q15_t)0xf850, (q15_t)0x7f88, (q15_t)0xf843, (q15_t)0x7f86, (q15_t)0xf837, - (q15_t)0x7f85, (q15_t)0xf82a, (q15_t)0x7f83, (q15_t)0xf81e, (q15_t)0x7f82, (q15_t)0xf811, (q15_t)0x7f80, (q15_t)0xf805, - (q15_t)0x7f7f, (q15_t)0xf7f9, (q15_t)0x7f7d, (q15_t)0xf7ec, (q15_t)0x7f7b, (q15_t)0xf7e0, (q15_t)0x7f7a, (q15_t)0xf7d3, - (q15_t)0x7f78, (q15_t)0xf7c7, (q15_t)0x7f77, (q15_t)0xf7ba, (q15_t)0x7f75, (q15_t)0xf7ae, (q15_t)0x7f73, (q15_t)0xf7a1, - (q15_t)0x7f72, (q15_t)0xf795, (q15_t)0x7f70, (q15_t)0xf788, (q15_t)0x7f6e, (q15_t)0xf77c, (q15_t)0x7f6d, (q15_t)0xf76f, - (q15_t)0x7f6b, (q15_t)0xf763, (q15_t)0x7f69, (q15_t)0xf757, (q15_t)0x7f68, (q15_t)0xf74a, (q15_t)0x7f66, (q15_t)0xf73e, - (q15_t)0x7f64, (q15_t)0xf731, (q15_t)0x7f62, (q15_t)0xf725, (q15_t)0x7f61, (q15_t)0xf718, (q15_t)0x7f5f, (q15_t)0xf70c, - (q15_t)0x7f5d, (q15_t)0xf6ff, (q15_t)0x7f5b, (q15_t)0xf6f3, (q15_t)0x7f5a, (q15_t)0xf6e7, (q15_t)0x7f58, (q15_t)0xf6da, - (q15_t)0x7f56, (q15_t)0xf6ce, (q15_t)0x7f54, (q15_t)0xf6c1, (q15_t)0x7f52, (q15_t)0xf6b5, (q15_t)0x7f51, (q15_t)0xf6a8, - (q15_t)0x7f4f, (q15_t)0xf69c, (q15_t)0x7f4d, (q15_t)0xf690, (q15_t)0x7f4b, (q15_t)0xf683, (q15_t)0x7f49, (q15_t)0xf677, - (q15_t)0x7f47, (q15_t)0xf66a, (q15_t)0x7f45, (q15_t)0xf65e, (q15_t)0x7f43, (q15_t)0xf651, (q15_t)0x7f42, (q15_t)0xf645, - (q15_t)0x7f40, (q15_t)0xf639, (q15_t)0x7f3e, (q15_t)0xf62c, (q15_t)0x7f3c, (q15_t)0xf620, (q15_t)0x7f3a, (q15_t)0xf613, - (q15_t)0x7f38, (q15_t)0xf607, (q15_t)0x7f36, (q15_t)0xf5fa, (q15_t)0x7f34, (q15_t)0xf5ee, (q15_t)0x7f32, (q15_t)0xf5e2, - (q15_t)0x7f30, (q15_t)0xf5d5, (q15_t)0x7f2e, (q15_t)0xf5c9, (q15_t)0x7f2c, (q15_t)0xf5bc, (q15_t)0x7f2a, (q15_t)0xf5b0, - (q15_t)0x7f28, (q15_t)0xf5a4, (q15_t)0x7f26, (q15_t)0xf597, (q15_t)0x7f24, (q15_t)0xf58b, (q15_t)0x7f22, (q15_t)0xf57e, - (q15_t)0x7f20, (q15_t)0xf572, (q15_t)0x7f1e, (q15_t)0xf566, (q15_t)0x7f1c, (q15_t)0xf559, (q15_t)0x7f19, (q15_t)0xf54d, - (q15_t)0x7f17, (q15_t)0xf540, (q15_t)0x7f15, (q15_t)0xf534, (q15_t)0x7f13, (q15_t)0xf528, (q15_t)0x7f11, (q15_t)0xf51b, - (q15_t)0x7f0f, (q15_t)0xf50f, (q15_t)0x7f0d, (q15_t)0xf503, (q15_t)0x7f0a, (q15_t)0xf4f6, (q15_t)0x7f08, (q15_t)0xf4ea, - (q15_t)0x7f06, (q15_t)0xf4dd, (q15_t)0x7f04, (q15_t)0xf4d1, (q15_t)0x7f02, (q15_t)0xf4c5, (q15_t)0x7f00, (q15_t)0xf4b8, - (q15_t)0x7efd, (q15_t)0xf4ac, (q15_t)0x7efb, (q15_t)0xf4a0, (q15_t)0x7ef9, (q15_t)0xf493, (q15_t)0x7ef7, (q15_t)0xf487, - (q15_t)0x7ef4, (q15_t)0xf47b, (q15_t)0x7ef2, (q15_t)0xf46e, (q15_t)0x7ef0, (q15_t)0xf462, (q15_t)0x7eed, (q15_t)0xf455, - (q15_t)0x7eeb, (q15_t)0xf449, (q15_t)0x7ee9, (q15_t)0xf43d, (q15_t)0x7ee7, (q15_t)0xf430, (q15_t)0x7ee4, (q15_t)0xf424, - (q15_t)0x7ee2, (q15_t)0xf418, (q15_t)0x7ee0, (q15_t)0xf40b, (q15_t)0x7edd, (q15_t)0xf3ff, (q15_t)0x7edb, (q15_t)0xf3f3, - (q15_t)0x7ed8, (q15_t)0xf3e6, (q15_t)0x7ed6, (q15_t)0xf3da, (q15_t)0x7ed4, (q15_t)0xf3ce, (q15_t)0x7ed1, (q15_t)0xf3c1, - (q15_t)0x7ecf, (q15_t)0xf3b5, (q15_t)0x7ecc, (q15_t)0xf3a9, (q15_t)0x7eca, (q15_t)0xf39c, (q15_t)0x7ec8, (q15_t)0xf390, - (q15_t)0x7ec5, (q15_t)0xf384, (q15_t)0x7ec3, (q15_t)0xf377, (q15_t)0x7ec0, (q15_t)0xf36b, (q15_t)0x7ebe, (q15_t)0xf35f, - (q15_t)0x7ebb, (q15_t)0xf352, (q15_t)0x7eb9, (q15_t)0xf346, (q15_t)0x7eb6, (q15_t)0xf33a, (q15_t)0x7eb4, (q15_t)0xf32d, - (q15_t)0x7eb1, (q15_t)0xf321, (q15_t)0x7eaf, (q15_t)0xf315, (q15_t)0x7eac, (q15_t)0xf308, (q15_t)0x7eaa, (q15_t)0xf2fc, - (q15_t)0x7ea7, (q15_t)0xf2f0, (q15_t)0x7ea5, (q15_t)0xf2e4, (q15_t)0x7ea2, (q15_t)0xf2d7, (q15_t)0x7e9f, (q15_t)0xf2cb, - (q15_t)0x7e9d, (q15_t)0xf2bf, (q15_t)0x7e9a, (q15_t)0xf2b2, (q15_t)0x7e98, (q15_t)0xf2a6, (q15_t)0x7e95, (q15_t)0xf29a, - (q15_t)0x7e92, (q15_t)0xf28e, (q15_t)0x7e90, (q15_t)0xf281, (q15_t)0x7e8d, (q15_t)0xf275, (q15_t)0x7e8a, (q15_t)0xf269, - (q15_t)0x7e88, (q15_t)0xf25c, (q15_t)0x7e85, (q15_t)0xf250, (q15_t)0x7e82, (q15_t)0xf244, (q15_t)0x7e80, (q15_t)0xf238, - (q15_t)0x7e7d, (q15_t)0xf22b, (q15_t)0x7e7a, (q15_t)0xf21f, (q15_t)0x7e77, (q15_t)0xf213, (q15_t)0x7e75, (q15_t)0xf207, - (q15_t)0x7e72, (q15_t)0xf1fa, (q15_t)0x7e6f, (q15_t)0xf1ee, (q15_t)0x7e6c, (q15_t)0xf1e2, (q15_t)0x7e6a, (q15_t)0xf1d5, - (q15_t)0x7e67, (q15_t)0xf1c9, (q15_t)0x7e64, (q15_t)0xf1bd, (q15_t)0x7e61, (q15_t)0xf1b1, (q15_t)0x7e5e, (q15_t)0xf1a4, - (q15_t)0x7e5c, (q15_t)0xf198, (q15_t)0x7e59, (q15_t)0xf18c, (q15_t)0x7e56, (q15_t)0xf180, (q15_t)0x7e53, (q15_t)0xf174, - (q15_t)0x7e50, (q15_t)0xf167, (q15_t)0x7e4d, (q15_t)0xf15b, (q15_t)0x7e4a, (q15_t)0xf14f, (q15_t)0x7e48, (q15_t)0xf143, - (q15_t)0x7e45, (q15_t)0xf136, (q15_t)0x7e42, (q15_t)0xf12a, (q15_t)0x7e3f, (q15_t)0xf11e, (q15_t)0x7e3c, (q15_t)0xf112, - (q15_t)0x7e39, (q15_t)0xf105, (q15_t)0x7e36, (q15_t)0xf0f9, (q15_t)0x7e33, (q15_t)0xf0ed, (q15_t)0x7e30, (q15_t)0xf0e1, - (q15_t)0x7e2d, (q15_t)0xf0d5, (q15_t)0x7e2a, (q15_t)0xf0c8, (q15_t)0x7e27, (q15_t)0xf0bc, (q15_t)0x7e24, (q15_t)0xf0b0, - (q15_t)0x7e21, (q15_t)0xf0a4, (q15_t)0x7e1e, (q15_t)0xf098, (q15_t)0x7e1b, (q15_t)0xf08b, (q15_t)0x7e18, (q15_t)0xf07f, - (q15_t)0x7e15, (q15_t)0xf073, (q15_t)0x7e12, (q15_t)0xf067, (q15_t)0x7e0f, (q15_t)0xf05b, (q15_t)0x7e0c, (q15_t)0xf04e, - (q15_t)0x7e09, (q15_t)0xf042, (q15_t)0x7e06, (q15_t)0xf036, (q15_t)0x7e03, (q15_t)0xf02a, (q15_t)0x7dff, (q15_t)0xf01e, - (q15_t)0x7dfc, (q15_t)0xf012, (q15_t)0x7df9, (q15_t)0xf005, (q15_t)0x7df6, (q15_t)0xeff9, (q15_t)0x7df3, (q15_t)0xefed, - (q15_t)0x7df0, (q15_t)0xefe1, (q15_t)0x7ded, (q15_t)0xefd5, (q15_t)0x7de9, (q15_t)0xefc9, (q15_t)0x7de6, (q15_t)0xefbc, - (q15_t)0x7de3, (q15_t)0xefb0, (q15_t)0x7de0, (q15_t)0xefa4, (q15_t)0x7ddd, (q15_t)0xef98, (q15_t)0x7dd9, (q15_t)0xef8c, - (q15_t)0x7dd6, (q15_t)0xef80, (q15_t)0x7dd3, (q15_t)0xef74, (q15_t)0x7dd0, (q15_t)0xef67, (q15_t)0x7dcc, (q15_t)0xef5b, - (q15_t)0x7dc9, (q15_t)0xef4f, (q15_t)0x7dc6, (q15_t)0xef43, (q15_t)0x7dc2, (q15_t)0xef37, (q15_t)0x7dbf, (q15_t)0xef2b, - (q15_t)0x7dbc, (q15_t)0xef1f, (q15_t)0x7db9, (q15_t)0xef13, (q15_t)0x7db5, (q15_t)0xef06, (q15_t)0x7db2, (q15_t)0xeefa, - (q15_t)0x7daf, (q15_t)0xeeee, (q15_t)0x7dab, (q15_t)0xeee2, (q15_t)0x7da8, (q15_t)0xeed6, (q15_t)0x7da4, (q15_t)0xeeca, - (q15_t)0x7da1, (q15_t)0xeebe, (q15_t)0x7d9e, (q15_t)0xeeb2, (q15_t)0x7d9a, (q15_t)0xeea6, (q15_t)0x7d97, (q15_t)0xee99, - (q15_t)0x7d93, (q15_t)0xee8d, (q15_t)0x7d90, (q15_t)0xee81, (q15_t)0x7d8d, (q15_t)0xee75, (q15_t)0x7d89, (q15_t)0xee69, - (q15_t)0x7d86, (q15_t)0xee5d, (q15_t)0x7d82, (q15_t)0xee51, (q15_t)0x7d7f, (q15_t)0xee45, (q15_t)0x7d7b, (q15_t)0xee39, - (q15_t)0x7d78, (q15_t)0xee2d, (q15_t)0x7d74, (q15_t)0xee21, (q15_t)0x7d71, (q15_t)0xee15, (q15_t)0x7d6d, (q15_t)0xee09, - (q15_t)0x7d6a, (q15_t)0xedfc, (q15_t)0x7d66, (q15_t)0xedf0, (q15_t)0x7d63, (q15_t)0xede4, (q15_t)0x7d5f, (q15_t)0xedd8, - (q15_t)0x7d5b, (q15_t)0xedcc, (q15_t)0x7d58, (q15_t)0xedc0, (q15_t)0x7d54, (q15_t)0xedb4, (q15_t)0x7d51, (q15_t)0xeda8, - (q15_t)0x7d4d, (q15_t)0xed9c, (q15_t)0x7d49, (q15_t)0xed90, (q15_t)0x7d46, (q15_t)0xed84, (q15_t)0x7d42, (q15_t)0xed78, - (q15_t)0x7d3f, (q15_t)0xed6c, (q15_t)0x7d3b, (q15_t)0xed60, (q15_t)0x7d37, (q15_t)0xed54, (q15_t)0x7d34, (q15_t)0xed48, - (q15_t)0x7d30, (q15_t)0xed3c, (q15_t)0x7d2c, (q15_t)0xed30, (q15_t)0x7d28, (q15_t)0xed24, (q15_t)0x7d25, (q15_t)0xed18, - (q15_t)0x7d21, (q15_t)0xed0c, (q15_t)0x7d1d, (q15_t)0xed00, (q15_t)0x7d1a, (q15_t)0xecf4, (q15_t)0x7d16, (q15_t)0xece8, - (q15_t)0x7d12, (q15_t)0xecdc, (q15_t)0x7d0e, (q15_t)0xecd0, (q15_t)0x7d0b, (q15_t)0xecc4, (q15_t)0x7d07, (q15_t)0xecb8, - (q15_t)0x7d03, (q15_t)0xecac, (q15_t)0x7cff, (q15_t)0xeca0, (q15_t)0x7cfb, (q15_t)0xec94, (q15_t)0x7cf8, (q15_t)0xec88, - (q15_t)0x7cf4, (q15_t)0xec7c, (q15_t)0x7cf0, (q15_t)0xec70, (q15_t)0x7cec, (q15_t)0xec64, (q15_t)0x7ce8, (q15_t)0xec58, - (q15_t)0x7ce4, (q15_t)0xec4c, (q15_t)0x7ce0, (q15_t)0xec40, (q15_t)0x7cdd, (q15_t)0xec34, (q15_t)0x7cd9, (q15_t)0xec28, - (q15_t)0x7cd5, (q15_t)0xec1c, (q15_t)0x7cd1, (q15_t)0xec10, (q15_t)0x7ccd, (q15_t)0xec05, (q15_t)0x7cc9, (q15_t)0xebf9, - (q15_t)0x7cc5, (q15_t)0xebed, (q15_t)0x7cc1, (q15_t)0xebe1, (q15_t)0x7cbd, (q15_t)0xebd5, (q15_t)0x7cb9, (q15_t)0xebc9, - (q15_t)0x7cb5, (q15_t)0xebbd, (q15_t)0x7cb1, (q15_t)0xebb1, (q15_t)0x7cad, (q15_t)0xeba5, (q15_t)0x7ca9, (q15_t)0xeb99, - (q15_t)0x7ca5, (q15_t)0xeb8d, (q15_t)0x7ca1, (q15_t)0xeb81, (q15_t)0x7c9d, (q15_t)0xeb75, (q15_t)0x7c99, (q15_t)0xeb6a, - (q15_t)0x7c95, (q15_t)0xeb5e, (q15_t)0x7c91, (q15_t)0xeb52, (q15_t)0x7c8d, (q15_t)0xeb46, (q15_t)0x7c89, (q15_t)0xeb3a, - (q15_t)0x7c85, (q15_t)0xeb2e, (q15_t)0x7c81, (q15_t)0xeb22, (q15_t)0x7c7d, (q15_t)0xeb16, (q15_t)0x7c79, (q15_t)0xeb0a, - (q15_t)0x7c74, (q15_t)0xeaff, (q15_t)0x7c70, (q15_t)0xeaf3, (q15_t)0x7c6c, (q15_t)0xeae7, (q15_t)0x7c68, (q15_t)0xeadb, - (q15_t)0x7c64, (q15_t)0xeacf, (q15_t)0x7c60, (q15_t)0xeac3, (q15_t)0x7c5b, (q15_t)0xeab7, (q15_t)0x7c57, (q15_t)0xeaac, - (q15_t)0x7c53, (q15_t)0xeaa0, (q15_t)0x7c4f, (q15_t)0xea94, (q15_t)0x7c4b, (q15_t)0xea88, (q15_t)0x7c46, (q15_t)0xea7c, - (q15_t)0x7c42, (q15_t)0xea70, (q15_t)0x7c3e, (q15_t)0xea65, (q15_t)0x7c3a, (q15_t)0xea59, (q15_t)0x7c36, (q15_t)0xea4d, - (q15_t)0x7c31, (q15_t)0xea41, (q15_t)0x7c2d, (q15_t)0xea35, (q15_t)0x7c29, (q15_t)0xea29, (q15_t)0x7c24, (q15_t)0xea1e, - (q15_t)0x7c20, (q15_t)0xea12, (q15_t)0x7c1c, (q15_t)0xea06, (q15_t)0x7c17, (q15_t)0xe9fa, (q15_t)0x7c13, (q15_t)0xe9ee, - (q15_t)0x7c0f, (q15_t)0xe9e3, (q15_t)0x7c0a, (q15_t)0xe9d7, (q15_t)0x7c06, (q15_t)0xe9cb, (q15_t)0x7c02, (q15_t)0xe9bf, - (q15_t)0x7bfd, (q15_t)0xe9b4, (q15_t)0x7bf9, (q15_t)0xe9a8, (q15_t)0x7bf5, (q15_t)0xe99c, (q15_t)0x7bf0, (q15_t)0xe990, - (q15_t)0x7bec, (q15_t)0xe984, (q15_t)0x7be7, (q15_t)0xe979, (q15_t)0x7be3, (q15_t)0xe96d, (q15_t)0x7bde, (q15_t)0xe961, - (q15_t)0x7bda, (q15_t)0xe955, (q15_t)0x7bd6, (q15_t)0xe94a, (q15_t)0x7bd1, (q15_t)0xe93e, (q15_t)0x7bcd, (q15_t)0xe932, - (q15_t)0x7bc8, (q15_t)0xe926, (q15_t)0x7bc4, (q15_t)0xe91b, (q15_t)0x7bbf, (q15_t)0xe90f, (q15_t)0x7bbb, (q15_t)0xe903, - (q15_t)0x7bb6, (q15_t)0xe8f7, (q15_t)0x7bb2, (q15_t)0xe8ec, (q15_t)0x7bad, (q15_t)0xe8e0, (q15_t)0x7ba9, (q15_t)0xe8d4, - (q15_t)0x7ba4, (q15_t)0xe8c9, (q15_t)0x7b9f, (q15_t)0xe8bd, (q15_t)0x7b9b, (q15_t)0xe8b1, (q15_t)0x7b96, (q15_t)0xe8a5, - (q15_t)0x7b92, (q15_t)0xe89a, (q15_t)0x7b8d, (q15_t)0xe88e, (q15_t)0x7b88, (q15_t)0xe882, (q15_t)0x7b84, (q15_t)0xe877, - (q15_t)0x7b7f, (q15_t)0xe86b, (q15_t)0x7b7b, (q15_t)0xe85f, (q15_t)0x7b76, (q15_t)0xe854, (q15_t)0x7b71, (q15_t)0xe848, - (q15_t)0x7b6d, (q15_t)0xe83c, (q15_t)0x7b68, (q15_t)0xe831, (q15_t)0x7b63, (q15_t)0xe825, (q15_t)0x7b5f, (q15_t)0xe819, - (q15_t)0x7b5a, (q15_t)0xe80e, (q15_t)0x7b55, (q15_t)0xe802, (q15_t)0x7b50, (q15_t)0xe7f6, (q15_t)0x7b4c, (q15_t)0xe7eb, - (q15_t)0x7b47, (q15_t)0xe7df, (q15_t)0x7b42, (q15_t)0xe7d3, (q15_t)0x7b3e, (q15_t)0xe7c8, (q15_t)0x7b39, (q15_t)0xe7bc, - (q15_t)0x7b34, (q15_t)0xe7b1, (q15_t)0x7b2f, (q15_t)0xe7a5, (q15_t)0x7b2a, (q15_t)0xe799, (q15_t)0x7b26, (q15_t)0xe78e, - (q15_t)0x7b21, (q15_t)0xe782, (q15_t)0x7b1c, (q15_t)0xe777, (q15_t)0x7b17, (q15_t)0xe76b, (q15_t)0x7b12, (q15_t)0xe75f, - (q15_t)0x7b0e, (q15_t)0xe754, (q15_t)0x7b09, (q15_t)0xe748, (q15_t)0x7b04, (q15_t)0xe73d, (q15_t)0x7aff, (q15_t)0xe731, - (q15_t)0x7afa, (q15_t)0xe725, (q15_t)0x7af5, (q15_t)0xe71a, (q15_t)0x7af0, (q15_t)0xe70e, (q15_t)0x7aeb, (q15_t)0xe703, - (q15_t)0x7ae6, (q15_t)0xe6f7, (q15_t)0x7ae2, (q15_t)0xe6ec, (q15_t)0x7add, (q15_t)0xe6e0, (q15_t)0x7ad8, (q15_t)0xe6d4, - (q15_t)0x7ad3, (q15_t)0xe6c9, (q15_t)0x7ace, (q15_t)0xe6bd, (q15_t)0x7ac9, (q15_t)0xe6b2, (q15_t)0x7ac4, (q15_t)0xe6a6, - (q15_t)0x7abf, (q15_t)0xe69b, (q15_t)0x7aba, (q15_t)0xe68f, (q15_t)0x7ab5, (q15_t)0xe684, (q15_t)0x7ab0, (q15_t)0xe678, - (q15_t)0x7aab, (q15_t)0xe66d, (q15_t)0x7aa6, (q15_t)0xe661, (q15_t)0x7aa1, (q15_t)0xe656, (q15_t)0x7a9c, (q15_t)0xe64a, - (q15_t)0x7a97, (q15_t)0xe63f, (q15_t)0x7a92, (q15_t)0xe633, (q15_t)0x7a8d, (q15_t)0xe628, (q15_t)0x7a88, (q15_t)0xe61c, - (q15_t)0x7a82, (q15_t)0xe611, (q15_t)0x7a7d, (q15_t)0xe605, (q15_t)0x7a78, (q15_t)0xe5fa, (q15_t)0x7a73, (q15_t)0xe5ee, - (q15_t)0x7a6e, (q15_t)0xe5e3, (q15_t)0x7a69, (q15_t)0xe5d7, (q15_t)0x7a64, (q15_t)0xe5cc, (q15_t)0x7a5f, (q15_t)0xe5c0, - (q15_t)0x7a59, (q15_t)0xe5b5, (q15_t)0x7a54, (q15_t)0xe5a9, (q15_t)0x7a4f, (q15_t)0xe59e, (q15_t)0x7a4a, (q15_t)0xe592, - (q15_t)0x7a45, (q15_t)0xe587, (q15_t)0x7a3f, (q15_t)0xe57c, (q15_t)0x7a3a, (q15_t)0xe570, (q15_t)0x7a35, (q15_t)0xe565, - (q15_t)0x7a30, (q15_t)0xe559, (q15_t)0x7a2b, (q15_t)0xe54e, (q15_t)0x7a25, (q15_t)0xe542, (q15_t)0x7a20, (q15_t)0xe537, - (q15_t)0x7a1b, (q15_t)0xe52c, (q15_t)0x7a16, (q15_t)0xe520, (q15_t)0x7a10, (q15_t)0xe515, (q15_t)0x7a0b, (q15_t)0xe509, - (q15_t)0x7a06, (q15_t)0xe4fe, (q15_t)0x7a00, (q15_t)0xe4f3, (q15_t)0x79fb, (q15_t)0xe4e7, (q15_t)0x79f6, (q15_t)0xe4dc, - (q15_t)0x79f0, (q15_t)0xe4d0, (q15_t)0x79eb, (q15_t)0xe4c5, (q15_t)0x79e6, (q15_t)0xe4ba, (q15_t)0x79e0, (q15_t)0xe4ae, - (q15_t)0x79db, (q15_t)0xe4a3, (q15_t)0x79d6, (q15_t)0xe498, (q15_t)0x79d0, (q15_t)0xe48c, (q15_t)0x79cb, (q15_t)0xe481, - (q15_t)0x79c5, (q15_t)0xe476, (q15_t)0x79c0, (q15_t)0xe46a, (q15_t)0x79bb, (q15_t)0xe45f, (q15_t)0x79b5, (q15_t)0xe454, - (q15_t)0x79b0, (q15_t)0xe448, (q15_t)0x79aa, (q15_t)0xe43d, (q15_t)0x79a5, (q15_t)0xe432, (q15_t)0x799f, (q15_t)0xe426, - (q15_t)0x799a, (q15_t)0xe41b, (q15_t)0x7994, (q15_t)0xe410, (q15_t)0x798f, (q15_t)0xe404, (q15_t)0x7989, (q15_t)0xe3f9, - (q15_t)0x7984, (q15_t)0xe3ee, (q15_t)0x797e, (q15_t)0xe3e2, (q15_t)0x7979, (q15_t)0xe3d7, (q15_t)0x7973, (q15_t)0xe3cc, - (q15_t)0x796e, (q15_t)0xe3c1, (q15_t)0x7968, (q15_t)0xe3b5, (q15_t)0x7963, (q15_t)0xe3aa, (q15_t)0x795d, (q15_t)0xe39f, - (q15_t)0x7958, (q15_t)0xe394, (q15_t)0x7952, (q15_t)0xe388, (q15_t)0x794c, (q15_t)0xe37d, (q15_t)0x7947, (q15_t)0xe372, - (q15_t)0x7941, (q15_t)0xe367, (q15_t)0x793b, (q15_t)0xe35b, (q15_t)0x7936, (q15_t)0xe350, (q15_t)0x7930, (q15_t)0xe345, - (q15_t)0x792b, (q15_t)0xe33a, (q15_t)0x7925, (q15_t)0xe32e, (q15_t)0x791f, (q15_t)0xe323, (q15_t)0x791a, (q15_t)0xe318, - (q15_t)0x7914, (q15_t)0xe30d, (q15_t)0x790e, (q15_t)0xe301, (q15_t)0x7909, (q15_t)0xe2f6, (q15_t)0x7903, (q15_t)0xe2eb, - (q15_t)0x78fd, (q15_t)0xe2e0, (q15_t)0x78f7, (q15_t)0xe2d5, (q15_t)0x78f2, (q15_t)0xe2ca, (q15_t)0x78ec, (q15_t)0xe2be, - (q15_t)0x78e6, (q15_t)0xe2b3, (q15_t)0x78e0, (q15_t)0xe2a8, (q15_t)0x78db, (q15_t)0xe29d, (q15_t)0x78d5, (q15_t)0xe292, - (q15_t)0x78cf, (q15_t)0xe287, (q15_t)0x78c9, (q15_t)0xe27b, (q15_t)0x78c3, (q15_t)0xe270, (q15_t)0x78be, (q15_t)0xe265, - (q15_t)0x78b8, (q15_t)0xe25a, (q15_t)0x78b2, (q15_t)0xe24f, (q15_t)0x78ac, (q15_t)0xe244, (q15_t)0x78a6, (q15_t)0xe239, - (q15_t)0x78a1, (q15_t)0xe22d, (q15_t)0x789b, (q15_t)0xe222, (q15_t)0x7895, (q15_t)0xe217, (q15_t)0x788f, (q15_t)0xe20c, - (q15_t)0x7889, (q15_t)0xe201, (q15_t)0x7883, (q15_t)0xe1f6, (q15_t)0x787d, (q15_t)0xe1eb, (q15_t)0x7877, (q15_t)0xe1e0, - (q15_t)0x7871, (q15_t)0xe1d5, (q15_t)0x786b, (q15_t)0xe1ca, (q15_t)0x7866, (q15_t)0xe1be, (q15_t)0x7860, (q15_t)0xe1b3, - (q15_t)0x785a, (q15_t)0xe1a8, (q15_t)0x7854, (q15_t)0xe19d, (q15_t)0x784e, (q15_t)0xe192, (q15_t)0x7848, (q15_t)0xe187, - (q15_t)0x7842, (q15_t)0xe17c, (q15_t)0x783c, (q15_t)0xe171, (q15_t)0x7836, (q15_t)0xe166, (q15_t)0x7830, (q15_t)0xe15b, - (q15_t)0x782a, (q15_t)0xe150, (q15_t)0x7824, (q15_t)0xe145, (q15_t)0x781e, (q15_t)0xe13a, (q15_t)0x7818, (q15_t)0xe12f, - (q15_t)0x7812, (q15_t)0xe124, (q15_t)0x780b, (q15_t)0xe119, (q15_t)0x7805, (q15_t)0xe10e, (q15_t)0x77ff, (q15_t)0xe103, - (q15_t)0x77f9, (q15_t)0xe0f8, (q15_t)0x77f3, (q15_t)0xe0ed, (q15_t)0x77ed, (q15_t)0xe0e2, (q15_t)0x77e7, (q15_t)0xe0d7, - (q15_t)0x77e1, (q15_t)0xe0cc, (q15_t)0x77db, (q15_t)0xe0c1, (q15_t)0x77d5, (q15_t)0xe0b6, (q15_t)0x77ce, (q15_t)0xe0ab, - (q15_t)0x77c8, (q15_t)0xe0a0, (q15_t)0x77c2, (q15_t)0xe095, (q15_t)0x77bc, (q15_t)0xe08a, (q15_t)0x77b6, (q15_t)0xe07f, - (q15_t)0x77b0, (q15_t)0xe074, (q15_t)0x77a9, (q15_t)0xe069, (q15_t)0x77a3, (q15_t)0xe05e, (q15_t)0x779d, (q15_t)0xe054, - (q15_t)0x7797, (q15_t)0xe049, (q15_t)0x7790, (q15_t)0xe03e, (q15_t)0x778a, (q15_t)0xe033, (q15_t)0x7784, (q15_t)0xe028, - (q15_t)0x777e, (q15_t)0xe01d, (q15_t)0x7777, (q15_t)0xe012, (q15_t)0x7771, (q15_t)0xe007, (q15_t)0x776b, (q15_t)0xdffc, - (q15_t)0x7765, (q15_t)0xdff1, (q15_t)0x775e, (q15_t)0xdfe7, (q15_t)0x7758, (q15_t)0xdfdc, (q15_t)0x7752, (q15_t)0xdfd1, - (q15_t)0x774b, (q15_t)0xdfc6, (q15_t)0x7745, (q15_t)0xdfbb, (q15_t)0x773f, (q15_t)0xdfb0, (q15_t)0x7738, (q15_t)0xdfa5, - (q15_t)0x7732, (q15_t)0xdf9b, (q15_t)0x772c, (q15_t)0xdf90, (q15_t)0x7725, (q15_t)0xdf85, (q15_t)0x771f, (q15_t)0xdf7a, - (q15_t)0x7718, (q15_t)0xdf6f, (q15_t)0x7712, (q15_t)0xdf65, (q15_t)0x770c, (q15_t)0xdf5a, (q15_t)0x7705, (q15_t)0xdf4f, - (q15_t)0x76ff, (q15_t)0xdf44, (q15_t)0x76f8, (q15_t)0xdf39, (q15_t)0x76f2, (q15_t)0xdf2f, (q15_t)0x76eb, (q15_t)0xdf24, - (q15_t)0x76e5, (q15_t)0xdf19, (q15_t)0x76df, (q15_t)0xdf0e, (q15_t)0x76d8, (q15_t)0xdf03, (q15_t)0x76d2, (q15_t)0xdef9, - (q15_t)0x76cb, (q15_t)0xdeee, (q15_t)0x76c5, (q15_t)0xdee3, (q15_t)0x76be, (q15_t)0xded8, (q15_t)0x76b8, (q15_t)0xdece, - (q15_t)0x76b1, (q15_t)0xdec3, (q15_t)0x76ab, (q15_t)0xdeb8, (q15_t)0x76a4, (q15_t)0xdead, (q15_t)0x769d, (q15_t)0xdea3, - (q15_t)0x7697, (q15_t)0xde98, (q15_t)0x7690, (q15_t)0xde8d, (q15_t)0x768a, (q15_t)0xde83, (q15_t)0x7683, (q15_t)0xde78, - (q15_t)0x767d, (q15_t)0xde6d, (q15_t)0x7676, (q15_t)0xde62, (q15_t)0x766f, (q15_t)0xde58, (q15_t)0x7669, (q15_t)0xde4d, - (q15_t)0x7662, (q15_t)0xde42, (q15_t)0x765c, (q15_t)0xde38, (q15_t)0x7655, (q15_t)0xde2d, (q15_t)0x764e, (q15_t)0xde22, - (q15_t)0x7648, (q15_t)0xde18, (q15_t)0x7641, (q15_t)0xde0d, (q15_t)0x763a, (q15_t)0xde02, (q15_t)0x7634, (q15_t)0xddf8, - (q15_t)0x762d, (q15_t)0xdded, (q15_t)0x7626, (q15_t)0xdde2, (q15_t)0x7620, (q15_t)0xddd8, (q15_t)0x7619, (q15_t)0xddcd, - (q15_t)0x7612, (q15_t)0xddc3, (q15_t)0x760b, (q15_t)0xddb8, (q15_t)0x7605, (q15_t)0xddad, (q15_t)0x75fe, (q15_t)0xdda3, - (q15_t)0x75f7, (q15_t)0xdd98, (q15_t)0x75f0, (q15_t)0xdd8e, (q15_t)0x75ea, (q15_t)0xdd83, (q15_t)0x75e3, (q15_t)0xdd78, - (q15_t)0x75dc, (q15_t)0xdd6e, (q15_t)0x75d5, (q15_t)0xdd63, (q15_t)0x75ce, (q15_t)0xdd59, (q15_t)0x75c8, (q15_t)0xdd4e, - (q15_t)0x75c1, (q15_t)0xdd44, (q15_t)0x75ba, (q15_t)0xdd39, (q15_t)0x75b3, (q15_t)0xdd2e, (q15_t)0x75ac, (q15_t)0xdd24, - (q15_t)0x75a5, (q15_t)0xdd19, (q15_t)0x759f, (q15_t)0xdd0f, (q15_t)0x7598, (q15_t)0xdd04, (q15_t)0x7591, (q15_t)0xdcfa, - (q15_t)0x758a, (q15_t)0xdcef, (q15_t)0x7583, (q15_t)0xdce5, (q15_t)0x757c, (q15_t)0xdcda, (q15_t)0x7575, (q15_t)0xdcd0, - (q15_t)0x756e, (q15_t)0xdcc5, (q15_t)0x7567, (q15_t)0xdcbb, (q15_t)0x7561, (q15_t)0xdcb0, (q15_t)0x755a, (q15_t)0xdca6, - (q15_t)0x7553, (q15_t)0xdc9b, (q15_t)0x754c, (q15_t)0xdc91, (q15_t)0x7545, (q15_t)0xdc86, (q15_t)0x753e, (q15_t)0xdc7c, - (q15_t)0x7537, (q15_t)0xdc72, (q15_t)0x7530, (q15_t)0xdc67, (q15_t)0x7529, (q15_t)0xdc5d, (q15_t)0x7522, (q15_t)0xdc52, - (q15_t)0x751b, (q15_t)0xdc48, (q15_t)0x7514, (q15_t)0xdc3d, (q15_t)0x750d, (q15_t)0xdc33, (q15_t)0x7506, (q15_t)0xdc29, - (q15_t)0x74ff, (q15_t)0xdc1e, (q15_t)0x74f8, (q15_t)0xdc14, (q15_t)0x74f1, (q15_t)0xdc09, (q15_t)0x74ea, (q15_t)0xdbff, - (q15_t)0x74e2, (q15_t)0xdbf5, (q15_t)0x74db, (q15_t)0xdbea, (q15_t)0x74d4, (q15_t)0xdbe0, (q15_t)0x74cd, (q15_t)0xdbd5, - (q15_t)0x74c6, (q15_t)0xdbcb, (q15_t)0x74bf, (q15_t)0xdbc1, (q15_t)0x74b8, (q15_t)0xdbb6, (q15_t)0x74b1, (q15_t)0xdbac, - (q15_t)0x74aa, (q15_t)0xdba2, (q15_t)0x74a2, (q15_t)0xdb97, (q15_t)0x749b, (q15_t)0xdb8d, (q15_t)0x7494, (q15_t)0xdb83, - (q15_t)0x748d, (q15_t)0xdb78, (q15_t)0x7486, (q15_t)0xdb6e, (q15_t)0x747f, (q15_t)0xdb64, (q15_t)0x7477, (q15_t)0xdb59, - (q15_t)0x7470, (q15_t)0xdb4f, (q15_t)0x7469, (q15_t)0xdb45, (q15_t)0x7462, (q15_t)0xdb3b, (q15_t)0x745b, (q15_t)0xdb30, - (q15_t)0x7453, (q15_t)0xdb26, (q15_t)0x744c, (q15_t)0xdb1c, (q15_t)0x7445, (q15_t)0xdb11, (q15_t)0x743e, (q15_t)0xdb07, - (q15_t)0x7436, (q15_t)0xdafd, (q15_t)0x742f, (q15_t)0xdaf3, (q15_t)0x7428, (q15_t)0xdae8, (q15_t)0x7420, (q15_t)0xdade, - (q15_t)0x7419, (q15_t)0xdad4, (q15_t)0x7412, (q15_t)0xdaca, (q15_t)0x740b, (q15_t)0xdabf, (q15_t)0x7403, (q15_t)0xdab5, - (q15_t)0x73fc, (q15_t)0xdaab, (q15_t)0x73f5, (q15_t)0xdaa1, (q15_t)0x73ed, (q15_t)0xda97, (q15_t)0x73e6, (q15_t)0xda8c, - (q15_t)0x73df, (q15_t)0xda82, (q15_t)0x73d7, (q15_t)0xda78, (q15_t)0x73d0, (q15_t)0xda6e, (q15_t)0x73c8, (q15_t)0xda64, - (q15_t)0x73c1, (q15_t)0xda5a, (q15_t)0x73ba, (q15_t)0xda4f, (q15_t)0x73b2, (q15_t)0xda45, (q15_t)0x73ab, (q15_t)0xda3b, - (q15_t)0x73a3, (q15_t)0xda31, (q15_t)0x739c, (q15_t)0xda27, (q15_t)0x7395, (q15_t)0xda1d, (q15_t)0x738d, (q15_t)0xda13, - (q15_t)0x7386, (q15_t)0xda08, (q15_t)0x737e, (q15_t)0xd9fe, (q15_t)0x7377, (q15_t)0xd9f4, (q15_t)0x736f, (q15_t)0xd9ea, - (q15_t)0x7368, (q15_t)0xd9e0, (q15_t)0x7360, (q15_t)0xd9d6, (q15_t)0x7359, (q15_t)0xd9cc, (q15_t)0x7351, (q15_t)0xd9c2, - (q15_t)0x734a, (q15_t)0xd9b8, (q15_t)0x7342, (q15_t)0xd9ae, (q15_t)0x733b, (q15_t)0xd9a4, (q15_t)0x7333, (q15_t)0xd99a, - (q15_t)0x732c, (q15_t)0xd98f, (q15_t)0x7324, (q15_t)0xd985, (q15_t)0x731d, (q15_t)0xd97b, (q15_t)0x7315, (q15_t)0xd971, - (q15_t)0x730d, (q15_t)0xd967, (q15_t)0x7306, (q15_t)0xd95d, (q15_t)0x72fe, (q15_t)0xd953, (q15_t)0x72f7, (q15_t)0xd949, - (q15_t)0x72ef, (q15_t)0xd93f, (q15_t)0x72e7, (q15_t)0xd935, (q15_t)0x72e0, (q15_t)0xd92b, (q15_t)0x72d8, (q15_t)0xd921, - (q15_t)0x72d0, (q15_t)0xd917, (q15_t)0x72c9, (q15_t)0xd90d, (q15_t)0x72c1, (q15_t)0xd903, (q15_t)0x72ba, (q15_t)0xd8f9, - (q15_t)0x72b2, (q15_t)0xd8ef, (q15_t)0x72aa, (q15_t)0xd8e6, (q15_t)0x72a3, (q15_t)0xd8dc, (q15_t)0x729b, (q15_t)0xd8d2, - (q15_t)0x7293, (q15_t)0xd8c8, (q15_t)0x728b, (q15_t)0xd8be, (q15_t)0x7284, (q15_t)0xd8b4, (q15_t)0x727c, (q15_t)0xd8aa, - (q15_t)0x7274, (q15_t)0xd8a0, (q15_t)0x726d, (q15_t)0xd896, (q15_t)0x7265, (q15_t)0xd88c, (q15_t)0x725d, (q15_t)0xd882, - (q15_t)0x7255, (q15_t)0xd878, (q15_t)0x724e, (q15_t)0xd86f, (q15_t)0x7246, (q15_t)0xd865, (q15_t)0x723e, (q15_t)0xd85b, - (q15_t)0x7236, (q15_t)0xd851, (q15_t)0x722e, (q15_t)0xd847, (q15_t)0x7227, (q15_t)0xd83d, (q15_t)0x721f, (q15_t)0xd833, - (q15_t)0x7217, (q15_t)0xd82a, (q15_t)0x720f, (q15_t)0xd820, (q15_t)0x7207, (q15_t)0xd816, (q15_t)0x71ff, (q15_t)0xd80c, - (q15_t)0x71f8, (q15_t)0xd802, (q15_t)0x71f0, (q15_t)0xd7f8, (q15_t)0x71e8, (q15_t)0xd7ef, (q15_t)0x71e0, (q15_t)0xd7e5, - (q15_t)0x71d8, (q15_t)0xd7db, (q15_t)0x71d0, (q15_t)0xd7d1, (q15_t)0x71c8, (q15_t)0xd7c8, (q15_t)0x71c0, (q15_t)0xd7be, - (q15_t)0x71b9, (q15_t)0xd7b4, (q15_t)0x71b1, (q15_t)0xd7aa, (q15_t)0x71a9, (q15_t)0xd7a0, (q15_t)0x71a1, (q15_t)0xd797, - (q15_t)0x7199, (q15_t)0xd78d, (q15_t)0x7191, (q15_t)0xd783, (q15_t)0x7189, (q15_t)0xd77a, (q15_t)0x7181, (q15_t)0xd770, - (q15_t)0x7179, (q15_t)0xd766, (q15_t)0x7171, (q15_t)0xd75c, (q15_t)0x7169, (q15_t)0xd753, (q15_t)0x7161, (q15_t)0xd749, - (q15_t)0x7159, (q15_t)0xd73f, (q15_t)0x7151, (q15_t)0xd736, (q15_t)0x7149, (q15_t)0xd72c, (q15_t)0x7141, (q15_t)0xd722, - (q15_t)0x7139, (q15_t)0xd719, (q15_t)0x7131, (q15_t)0xd70f, (q15_t)0x7129, (q15_t)0xd705, (q15_t)0x7121, (q15_t)0xd6fc, - (q15_t)0x7119, (q15_t)0xd6f2, (q15_t)0x7111, (q15_t)0xd6e8, (q15_t)0x7109, (q15_t)0xd6df, (q15_t)0x7101, (q15_t)0xd6d5, - (q15_t)0x70f9, (q15_t)0xd6cb, (q15_t)0x70f0, (q15_t)0xd6c2, (q15_t)0x70e8, (q15_t)0xd6b8, (q15_t)0x70e0, (q15_t)0xd6af, - (q15_t)0x70d8, (q15_t)0xd6a5, (q15_t)0x70d0, (q15_t)0xd69b, (q15_t)0x70c8, (q15_t)0xd692, (q15_t)0x70c0, (q15_t)0xd688, - (q15_t)0x70b8, (q15_t)0xd67f, (q15_t)0x70af, (q15_t)0xd675, (q15_t)0x70a7, (q15_t)0xd66c, (q15_t)0x709f, (q15_t)0xd662, - (q15_t)0x7097, (q15_t)0xd659, (q15_t)0x708f, (q15_t)0xd64f, (q15_t)0x7087, (q15_t)0xd645, (q15_t)0x707e, (q15_t)0xd63c, - (q15_t)0x7076, (q15_t)0xd632, (q15_t)0x706e, (q15_t)0xd629, (q15_t)0x7066, (q15_t)0xd61f, (q15_t)0x705d, (q15_t)0xd616, - (q15_t)0x7055, (q15_t)0xd60c, (q15_t)0x704d, (q15_t)0xd603, (q15_t)0x7045, (q15_t)0xd5f9, (q15_t)0x703c, (q15_t)0xd5f0, - (q15_t)0x7034, (q15_t)0xd5e6, (q15_t)0x702c, (q15_t)0xd5dd, (q15_t)0x7024, (q15_t)0xd5d4, (q15_t)0x701b, (q15_t)0xd5ca, - (q15_t)0x7013, (q15_t)0xd5c1, (q15_t)0x700b, (q15_t)0xd5b7, (q15_t)0x7002, (q15_t)0xd5ae, (q15_t)0x6ffa, (q15_t)0xd5a4, - (q15_t)0x6ff2, (q15_t)0xd59b, (q15_t)0x6fea, (q15_t)0xd592, (q15_t)0x6fe1, (q15_t)0xd588, (q15_t)0x6fd9, (q15_t)0xd57f, - (q15_t)0x6fd0, (q15_t)0xd575, (q15_t)0x6fc8, (q15_t)0xd56c, (q15_t)0x6fc0, (q15_t)0xd563, (q15_t)0x6fb7, (q15_t)0xd559, - (q15_t)0x6faf, (q15_t)0xd550, (q15_t)0x6fa7, (q15_t)0xd547, (q15_t)0x6f9e, (q15_t)0xd53d, (q15_t)0x6f96, (q15_t)0xd534, - (q15_t)0x6f8d, (q15_t)0xd52a, (q15_t)0x6f85, (q15_t)0xd521, (q15_t)0x6f7d, (q15_t)0xd518, (q15_t)0x6f74, (q15_t)0xd50e, - (q15_t)0x6f6c, (q15_t)0xd505, (q15_t)0x6f63, (q15_t)0xd4fc, (q15_t)0x6f5b, (q15_t)0xd4f3, (q15_t)0x6f52, (q15_t)0xd4e9, - (q15_t)0x6f4a, (q15_t)0xd4e0, (q15_t)0x6f41, (q15_t)0xd4d7, (q15_t)0x6f39, (q15_t)0xd4cd, (q15_t)0x6f30, (q15_t)0xd4c4, - (q15_t)0x6f28, (q15_t)0xd4bb, (q15_t)0x6f20, (q15_t)0xd4b2, (q15_t)0x6f17, (q15_t)0xd4a8, (q15_t)0x6f0e, (q15_t)0xd49f, - (q15_t)0x6f06, (q15_t)0xd496, (q15_t)0x6efd, (q15_t)0xd48d, (q15_t)0x6ef5, (q15_t)0xd483, (q15_t)0x6eec, (q15_t)0xd47a, - (q15_t)0x6ee4, (q15_t)0xd471, (q15_t)0x6edb, (q15_t)0xd468, (q15_t)0x6ed3, (q15_t)0xd45f, (q15_t)0x6eca, (q15_t)0xd455, - (q15_t)0x6ec2, (q15_t)0xd44c, (q15_t)0x6eb9, (q15_t)0xd443, (q15_t)0x6eb0, (q15_t)0xd43a, (q15_t)0x6ea8, (q15_t)0xd431, - (q15_t)0x6e9f, (q15_t)0xd428, (q15_t)0x6e97, (q15_t)0xd41e, (q15_t)0x6e8e, (q15_t)0xd415, (q15_t)0x6e85, (q15_t)0xd40c, - (q15_t)0x6e7d, (q15_t)0xd403, (q15_t)0x6e74, (q15_t)0xd3fa, (q15_t)0x6e6b, (q15_t)0xd3f1, (q15_t)0x6e63, (q15_t)0xd3e8, - (q15_t)0x6e5a, (q15_t)0xd3df, (q15_t)0x6e51, (q15_t)0xd3d5, (q15_t)0x6e49, (q15_t)0xd3cc, (q15_t)0x6e40, (q15_t)0xd3c3, - (q15_t)0x6e37, (q15_t)0xd3ba, (q15_t)0x6e2f, (q15_t)0xd3b1, (q15_t)0x6e26, (q15_t)0xd3a8, (q15_t)0x6e1d, (q15_t)0xd39f, - (q15_t)0x6e15, (q15_t)0xd396, (q15_t)0x6e0c, (q15_t)0xd38d, (q15_t)0x6e03, (q15_t)0xd384, (q15_t)0x6dfa, (q15_t)0xd37b, - (q15_t)0x6df2, (q15_t)0xd372, (q15_t)0x6de9, (q15_t)0xd369, (q15_t)0x6de0, (q15_t)0xd360, (q15_t)0x6dd7, (q15_t)0xd357, - (q15_t)0x6dcf, (q15_t)0xd34e, (q15_t)0x6dc6, (q15_t)0xd345, (q15_t)0x6dbd, (q15_t)0xd33c, (q15_t)0x6db4, (q15_t)0xd333, - (q15_t)0x6dab, (q15_t)0xd32a, (q15_t)0x6da3, (q15_t)0xd321, (q15_t)0x6d9a, (q15_t)0xd318, (q15_t)0x6d91, (q15_t)0xd30f, - (q15_t)0x6d88, (q15_t)0xd306, (q15_t)0x6d7f, (q15_t)0xd2fd, (q15_t)0x6d76, (q15_t)0xd2f4, (q15_t)0x6d6e, (q15_t)0xd2eb, - (q15_t)0x6d65, (q15_t)0xd2e2, (q15_t)0x6d5c, (q15_t)0xd2d9, (q15_t)0x6d53, (q15_t)0xd2d1, (q15_t)0x6d4a, (q15_t)0xd2c8, - (q15_t)0x6d41, (q15_t)0xd2bf, (q15_t)0x6d38, (q15_t)0xd2b6, (q15_t)0x6d2f, (q15_t)0xd2ad, (q15_t)0x6d27, (q15_t)0xd2a4, - (q15_t)0x6d1e, (q15_t)0xd29b, (q15_t)0x6d15, (q15_t)0xd292, (q15_t)0x6d0c, (q15_t)0xd28a, (q15_t)0x6d03, (q15_t)0xd281, - (q15_t)0x6cfa, (q15_t)0xd278, (q15_t)0x6cf1, (q15_t)0xd26f, (q15_t)0x6ce8, (q15_t)0xd266, (q15_t)0x6cdf, (q15_t)0xd25d, - (q15_t)0x6cd6, (q15_t)0xd255, (q15_t)0x6ccd, (q15_t)0xd24c, (q15_t)0x6cc4, (q15_t)0xd243, (q15_t)0x6cbb, (q15_t)0xd23a, - (q15_t)0x6cb2, (q15_t)0xd231, (q15_t)0x6ca9, (q15_t)0xd229, (q15_t)0x6ca0, (q15_t)0xd220, (q15_t)0x6c97, (q15_t)0xd217, - (q15_t)0x6c8e, (q15_t)0xd20e, (q15_t)0x6c85, (q15_t)0xd206, (q15_t)0x6c7c, (q15_t)0xd1fd, (q15_t)0x6c73, (q15_t)0xd1f4, - (q15_t)0x6c6a, (q15_t)0xd1eb, (q15_t)0x6c61, (q15_t)0xd1e3, (q15_t)0x6c58, (q15_t)0xd1da, (q15_t)0x6c4f, (q15_t)0xd1d1, - (q15_t)0x6c46, (q15_t)0xd1c9, (q15_t)0x6c3d, (q15_t)0xd1c0, (q15_t)0x6c34, (q15_t)0xd1b7, (q15_t)0x6c2b, (q15_t)0xd1af, - (q15_t)0x6c21, (q15_t)0xd1a6, (q15_t)0x6c18, (q15_t)0xd19d, (q15_t)0x6c0f, (q15_t)0xd195, (q15_t)0x6c06, (q15_t)0xd18c, - (q15_t)0x6bfd, (q15_t)0xd183, (q15_t)0x6bf4, (q15_t)0xd17b, (q15_t)0x6beb, (q15_t)0xd172, (q15_t)0x6be2, (q15_t)0xd169, - (q15_t)0x6bd8, (q15_t)0xd161, (q15_t)0x6bcf, (q15_t)0xd158, (q15_t)0x6bc6, (q15_t)0xd150, (q15_t)0x6bbd, (q15_t)0xd147, - (q15_t)0x6bb4, (q15_t)0xd13e, (q15_t)0x6bab, (q15_t)0xd136, (q15_t)0x6ba1, (q15_t)0xd12d, (q15_t)0x6b98, (q15_t)0xd125, - (q15_t)0x6b8f, (q15_t)0xd11c, (q15_t)0x6b86, (q15_t)0xd114, (q15_t)0x6b7d, (q15_t)0xd10b, (q15_t)0x6b73, (q15_t)0xd103, - (q15_t)0x6b6a, (q15_t)0xd0fa, (q15_t)0x6b61, (q15_t)0xd0f2, (q15_t)0x6b58, (q15_t)0xd0e9, (q15_t)0x6b4e, (q15_t)0xd0e0, - (q15_t)0x6b45, (q15_t)0xd0d8, (q15_t)0x6b3c, (q15_t)0xd0d0, (q15_t)0x6b33, (q15_t)0xd0c7, (q15_t)0x6b29, (q15_t)0xd0bf, - (q15_t)0x6b20, (q15_t)0xd0b6, (q15_t)0x6b17, (q15_t)0xd0ae, (q15_t)0x6b0d, (q15_t)0xd0a5, (q15_t)0x6b04, (q15_t)0xd09d, - (q15_t)0x6afb, (q15_t)0xd094, (q15_t)0x6af2, (q15_t)0xd08c, (q15_t)0x6ae8, (q15_t)0xd083, (q15_t)0x6adf, (q15_t)0xd07b, - (q15_t)0x6ad6, (q15_t)0xd073, (q15_t)0x6acc, (q15_t)0xd06a, (q15_t)0x6ac3, (q15_t)0xd062, (q15_t)0x6ab9, (q15_t)0xd059, - (q15_t)0x6ab0, (q15_t)0xd051, (q15_t)0x6aa7, (q15_t)0xd049, (q15_t)0x6a9d, (q15_t)0xd040, (q15_t)0x6a94, (q15_t)0xd038, - (q15_t)0x6a8b, (q15_t)0xd030, (q15_t)0x6a81, (q15_t)0xd027, (q15_t)0x6a78, (q15_t)0xd01f, (q15_t)0x6a6e, (q15_t)0xd016, - (q15_t)0x6a65, (q15_t)0xd00e, (q15_t)0x6a5c, (q15_t)0xd006, (q15_t)0x6a52, (q15_t)0xcffe, (q15_t)0x6a49, (q15_t)0xcff5, - (q15_t)0x6a3f, (q15_t)0xcfed, (q15_t)0x6a36, (q15_t)0xcfe5, (q15_t)0x6a2c, (q15_t)0xcfdc, (q15_t)0x6a23, (q15_t)0xcfd4, - (q15_t)0x6a1a, (q15_t)0xcfcc, (q15_t)0x6a10, (q15_t)0xcfc4, (q15_t)0x6a07, (q15_t)0xcfbb, (q15_t)0x69fd, (q15_t)0xcfb3, - (q15_t)0x69f4, (q15_t)0xcfab, (q15_t)0x69ea, (q15_t)0xcfa3, (q15_t)0x69e1, (q15_t)0xcf9a, (q15_t)0x69d7, (q15_t)0xcf92, - (q15_t)0x69ce, (q15_t)0xcf8a, (q15_t)0x69c4, (q15_t)0xcf82, (q15_t)0x69bb, (q15_t)0xcf79, (q15_t)0x69b1, (q15_t)0xcf71, - (q15_t)0x69a7, (q15_t)0xcf69, (q15_t)0x699e, (q15_t)0xcf61, (q15_t)0x6994, (q15_t)0xcf59, (q15_t)0x698b, (q15_t)0xcf51, - (q15_t)0x6981, (q15_t)0xcf48, (q15_t)0x6978, (q15_t)0xcf40, (q15_t)0x696e, (q15_t)0xcf38, (q15_t)0x6965, (q15_t)0xcf30, - (q15_t)0x695b, (q15_t)0xcf28, (q15_t)0x6951, (q15_t)0xcf20, (q15_t)0x6948, (q15_t)0xcf18, (q15_t)0x693e, (q15_t)0xcf10, - (q15_t)0x6935, (q15_t)0xcf07, (q15_t)0x692b, (q15_t)0xceff, (q15_t)0x6921, (q15_t)0xcef7, (q15_t)0x6918, (q15_t)0xceef, - (q15_t)0x690e, (q15_t)0xcee7, (q15_t)0x6904, (q15_t)0xcedf, (q15_t)0x68fb, (q15_t)0xced7, (q15_t)0x68f1, (q15_t)0xcecf, - (q15_t)0x68e7, (q15_t)0xcec7, (q15_t)0x68de, (q15_t)0xcebf, (q15_t)0x68d4, (q15_t)0xceb7, (q15_t)0x68ca, (q15_t)0xceaf, - (q15_t)0x68c1, (q15_t)0xcea7, (q15_t)0x68b7, (q15_t)0xce9f, (q15_t)0x68ad, (q15_t)0xce97, (q15_t)0x68a4, (q15_t)0xce8f, - (q15_t)0x689a, (q15_t)0xce87, (q15_t)0x6890, (q15_t)0xce7f, (q15_t)0x6886, (q15_t)0xce77, (q15_t)0x687d, (q15_t)0xce6f, - (q15_t)0x6873, (q15_t)0xce67, (q15_t)0x6869, (q15_t)0xce5f, (q15_t)0x6860, (q15_t)0xce57, (q15_t)0x6856, (q15_t)0xce4f, - (q15_t)0x684c, (q15_t)0xce47, (q15_t)0x6842, (q15_t)0xce40, (q15_t)0x6838, (q15_t)0xce38, (q15_t)0x682f, (q15_t)0xce30, - (q15_t)0x6825, (q15_t)0xce28, (q15_t)0x681b, (q15_t)0xce20, (q15_t)0x6811, (q15_t)0xce18, (q15_t)0x6808, (q15_t)0xce10, - (q15_t)0x67fe, (q15_t)0xce08, (q15_t)0x67f4, (q15_t)0xce01, (q15_t)0x67ea, (q15_t)0xcdf9, (q15_t)0x67e0, (q15_t)0xcdf1, - (q15_t)0x67d6, (q15_t)0xcde9, (q15_t)0x67cd, (q15_t)0xcde1, (q15_t)0x67c3, (q15_t)0xcdd9, (q15_t)0x67b9, (q15_t)0xcdd2, - (q15_t)0x67af, (q15_t)0xcdca, (q15_t)0x67a5, (q15_t)0xcdc2, (q15_t)0x679b, (q15_t)0xcdba, (q15_t)0x6791, (q15_t)0xcdb2, - (q15_t)0x6788, (q15_t)0xcdab, (q15_t)0x677e, (q15_t)0xcda3, (q15_t)0x6774, (q15_t)0xcd9b, (q15_t)0x676a, (q15_t)0xcd93, - (q15_t)0x6760, (q15_t)0xcd8c, (q15_t)0x6756, (q15_t)0xcd84, (q15_t)0x674c, (q15_t)0xcd7c, (q15_t)0x6742, (q15_t)0xcd75, - (q15_t)0x6738, (q15_t)0xcd6d, (q15_t)0x672e, (q15_t)0xcd65, (q15_t)0x6724, (q15_t)0xcd5d, (q15_t)0x671a, (q15_t)0xcd56, - (q15_t)0x6711, (q15_t)0xcd4e, (q15_t)0x6707, (q15_t)0xcd46, (q15_t)0x66fd, (q15_t)0xcd3f, (q15_t)0x66f3, (q15_t)0xcd37, - (q15_t)0x66e9, (q15_t)0xcd30, (q15_t)0x66df, (q15_t)0xcd28, (q15_t)0x66d5, (q15_t)0xcd20, (q15_t)0x66cb, (q15_t)0xcd19, - (q15_t)0x66c1, (q15_t)0xcd11, (q15_t)0x66b7, (q15_t)0xcd09, (q15_t)0x66ad, (q15_t)0xcd02, (q15_t)0x66a3, (q15_t)0xccfa, - (q15_t)0x6699, (q15_t)0xccf3, (q15_t)0x668f, (q15_t)0xcceb, (q15_t)0x6685, (q15_t)0xcce3, (q15_t)0x667b, (q15_t)0xccdc, - (q15_t)0x6671, (q15_t)0xccd4, (q15_t)0x6666, (q15_t)0xcccd, (q15_t)0x665c, (q15_t)0xccc5, (q15_t)0x6652, (q15_t)0xccbe, - (q15_t)0x6648, (q15_t)0xccb6, (q15_t)0x663e, (q15_t)0xccaf, (q15_t)0x6634, (q15_t)0xcca7, (q15_t)0x662a, (q15_t)0xcca0, - (q15_t)0x6620, (q15_t)0xcc98, (q15_t)0x6616, (q15_t)0xcc91, (q15_t)0x660c, (q15_t)0xcc89, (q15_t)0x6602, (q15_t)0xcc82, - (q15_t)0x65f8, (q15_t)0xcc7a, (q15_t)0x65ed, (q15_t)0xcc73, (q15_t)0x65e3, (q15_t)0xcc6b, (q15_t)0x65d9, (q15_t)0xcc64, - (q15_t)0x65cf, (q15_t)0xcc5d, (q15_t)0x65c5, (q15_t)0xcc55, (q15_t)0x65bb, (q15_t)0xcc4e, (q15_t)0x65b1, (q15_t)0xcc46, - (q15_t)0x65a6, (q15_t)0xcc3f, (q15_t)0x659c, (q15_t)0xcc38, (q15_t)0x6592, (q15_t)0xcc30, (q15_t)0x6588, (q15_t)0xcc29, - (q15_t)0x657e, (q15_t)0xcc21, (q15_t)0x6574, (q15_t)0xcc1a, (q15_t)0x6569, (q15_t)0xcc13, (q15_t)0x655f, (q15_t)0xcc0b, - (q15_t)0x6555, (q15_t)0xcc04, (q15_t)0x654b, (q15_t)0xcbfd, (q15_t)0x6541, (q15_t)0xcbf5, (q15_t)0x6536, (q15_t)0xcbee, - (q15_t)0x652c, (q15_t)0xcbe7, (q15_t)0x6522, (q15_t)0xcbe0, (q15_t)0x6518, (q15_t)0xcbd8, (q15_t)0x650d, (q15_t)0xcbd1, - (q15_t)0x6503, (q15_t)0xcbca, (q15_t)0x64f9, (q15_t)0xcbc2, (q15_t)0x64ef, (q15_t)0xcbbb, (q15_t)0x64e4, (q15_t)0xcbb4, - (q15_t)0x64da, (q15_t)0xcbad, (q15_t)0x64d0, (q15_t)0xcba5, (q15_t)0x64c5, (q15_t)0xcb9e, (q15_t)0x64bb, (q15_t)0xcb97, - (q15_t)0x64b1, (q15_t)0xcb90, (q15_t)0x64a7, (q15_t)0xcb89, (q15_t)0x649c, (q15_t)0xcb81, (q15_t)0x6492, (q15_t)0xcb7a, - (q15_t)0x6488, (q15_t)0xcb73, (q15_t)0x647d, (q15_t)0xcb6c, (q15_t)0x6473, (q15_t)0xcb65, (q15_t)0x6469, (q15_t)0xcb5e, - (q15_t)0x645e, (q15_t)0xcb56, (q15_t)0x6454, (q15_t)0xcb4f, (q15_t)0x644a, (q15_t)0xcb48, (q15_t)0x643f, (q15_t)0xcb41, - (q15_t)0x6435, (q15_t)0xcb3a, (q15_t)0x642b, (q15_t)0xcb33, (q15_t)0x6420, (q15_t)0xcb2c, (q15_t)0x6416, (q15_t)0xcb25, - (q15_t)0x640b, (q15_t)0xcb1e, (q15_t)0x6401, (q15_t)0xcb16, (q15_t)0x63f7, (q15_t)0xcb0f, (q15_t)0x63ec, (q15_t)0xcb08, - (q15_t)0x63e2, (q15_t)0xcb01, (q15_t)0x63d7, (q15_t)0xcafa, (q15_t)0x63cd, (q15_t)0xcaf3, (q15_t)0x63c3, (q15_t)0xcaec, - (q15_t)0x63b8, (q15_t)0xcae5, (q15_t)0x63ae, (q15_t)0xcade, (q15_t)0x63a3, (q15_t)0xcad7, (q15_t)0x6399, (q15_t)0xcad0, - (q15_t)0x638e, (q15_t)0xcac9, (q15_t)0x6384, (q15_t)0xcac2, (q15_t)0x637a, (q15_t)0xcabb, (q15_t)0x636f, (q15_t)0xcab4, - (q15_t)0x6365, (q15_t)0xcaad, (q15_t)0x635a, (q15_t)0xcaa6, (q15_t)0x6350, (q15_t)0xca9f, (q15_t)0x6345, (q15_t)0xca99, - (q15_t)0x633b, (q15_t)0xca92, (q15_t)0x6330, (q15_t)0xca8b, (q15_t)0x6326, (q15_t)0xca84, (q15_t)0x631b, (q15_t)0xca7d, - (q15_t)0x6311, (q15_t)0xca76, (q15_t)0x6306, (q15_t)0xca6f, (q15_t)0x62fc, (q15_t)0xca68, (q15_t)0x62f1, (q15_t)0xca61, - (q15_t)0x62e7, (q15_t)0xca5b, (q15_t)0x62dc, (q15_t)0xca54, (q15_t)0x62d2, (q15_t)0xca4d, (q15_t)0x62c7, (q15_t)0xca46, - (q15_t)0x62bc, (q15_t)0xca3f, (q15_t)0x62b2, (q15_t)0xca38, (q15_t)0x62a7, (q15_t)0xca32, (q15_t)0x629d, (q15_t)0xca2b, - (q15_t)0x6292, (q15_t)0xca24, (q15_t)0x6288, (q15_t)0xca1d, (q15_t)0x627d, (q15_t)0xca16, (q15_t)0x6272, (q15_t)0xca10, - (q15_t)0x6268, (q15_t)0xca09, (q15_t)0x625d, (q15_t)0xca02, (q15_t)0x6253, (q15_t)0xc9fb, (q15_t)0x6248, (q15_t)0xc9f5, - (q15_t)0x623d, (q15_t)0xc9ee, (q15_t)0x6233, (q15_t)0xc9e7, (q15_t)0x6228, (q15_t)0xc9e0, (q15_t)0x621e, (q15_t)0xc9da, - (q15_t)0x6213, (q15_t)0xc9d3, (q15_t)0x6208, (q15_t)0xc9cc, (q15_t)0x61fe, (q15_t)0xc9c6, (q15_t)0x61f3, (q15_t)0xc9bf, - (q15_t)0x61e8, (q15_t)0xc9b8, (q15_t)0x61de, (q15_t)0xc9b2, (q15_t)0x61d3, (q15_t)0xc9ab, (q15_t)0x61c8, (q15_t)0xc9a4, - (q15_t)0x61be, (q15_t)0xc99e, (q15_t)0x61b3, (q15_t)0xc997, (q15_t)0x61a8, (q15_t)0xc991, (q15_t)0x619e, (q15_t)0xc98a, - (q15_t)0x6193, (q15_t)0xc983, (q15_t)0x6188, (q15_t)0xc97d, (q15_t)0x617d, (q15_t)0xc976, (q15_t)0x6173, (q15_t)0xc970, - (q15_t)0x6168, (q15_t)0xc969, (q15_t)0x615d, (q15_t)0xc963, (q15_t)0x6153, (q15_t)0xc95c, (q15_t)0x6148, (q15_t)0xc955, - (q15_t)0x613d, (q15_t)0xc94f, (q15_t)0x6132, (q15_t)0xc948, (q15_t)0x6128, (q15_t)0xc942, (q15_t)0x611d, (q15_t)0xc93b, - (q15_t)0x6112, (q15_t)0xc935, (q15_t)0x6107, (q15_t)0xc92e, (q15_t)0x60fd, (q15_t)0xc928, (q15_t)0x60f2, (q15_t)0xc921, - (q15_t)0x60e7, (q15_t)0xc91b, (q15_t)0x60dc, (q15_t)0xc915, (q15_t)0x60d1, (q15_t)0xc90e, (q15_t)0x60c7, (q15_t)0xc908, - (q15_t)0x60bc, (q15_t)0xc901, (q15_t)0x60b1, (q15_t)0xc8fb, (q15_t)0x60a6, (q15_t)0xc8f4, (q15_t)0x609b, (q15_t)0xc8ee, - (q15_t)0x6091, (q15_t)0xc8e8, (q15_t)0x6086, (q15_t)0xc8e1, (q15_t)0x607b, (q15_t)0xc8db, (q15_t)0x6070, (q15_t)0xc8d4, - (q15_t)0x6065, (q15_t)0xc8ce, (q15_t)0x605b, (q15_t)0xc8c8, (q15_t)0x6050, (q15_t)0xc8c1, (q15_t)0x6045, (q15_t)0xc8bb, - (q15_t)0x603a, (q15_t)0xc8b5, (q15_t)0x602f, (q15_t)0xc8ae, (q15_t)0x6024, (q15_t)0xc8a8, (q15_t)0x6019, (q15_t)0xc8a2, - (q15_t)0x600f, (q15_t)0xc89b, (q15_t)0x6004, (q15_t)0xc895, (q15_t)0x5ff9, (q15_t)0xc88f, (q15_t)0x5fee, (q15_t)0xc889, - (q15_t)0x5fe3, (q15_t)0xc882, (q15_t)0x5fd8, (q15_t)0xc87c, (q15_t)0x5fcd, (q15_t)0xc876, (q15_t)0x5fc2, (q15_t)0xc870, - (q15_t)0x5fb7, (q15_t)0xc869, (q15_t)0x5fac, (q15_t)0xc863, (q15_t)0x5fa2, (q15_t)0xc85d, (q15_t)0x5f97, (q15_t)0xc857, - (q15_t)0x5f8c, (q15_t)0xc850, (q15_t)0x5f81, (q15_t)0xc84a, (q15_t)0x5f76, (q15_t)0xc844, (q15_t)0x5f6b, (q15_t)0xc83e, - (q15_t)0x5f60, (q15_t)0xc838, (q15_t)0x5f55, (q15_t)0xc832, (q15_t)0x5f4a, (q15_t)0xc82b, (q15_t)0x5f3f, (q15_t)0xc825, - (q15_t)0x5f34, (q15_t)0xc81f, (q15_t)0x5f29, (q15_t)0xc819, (q15_t)0x5f1e, (q15_t)0xc813, (q15_t)0x5f13, (q15_t)0xc80d, - (q15_t)0x5f08, (q15_t)0xc807, (q15_t)0x5efd, (q15_t)0xc801, (q15_t)0x5ef2, (q15_t)0xc7fb, (q15_t)0x5ee7, (q15_t)0xc7f5, - (q15_t)0x5edc, (q15_t)0xc7ee, (q15_t)0x5ed1, (q15_t)0xc7e8, (q15_t)0x5ec6, (q15_t)0xc7e2, (q15_t)0x5ebb, (q15_t)0xc7dc, - (q15_t)0x5eb0, (q15_t)0xc7d6, (q15_t)0x5ea5, (q15_t)0xc7d0, (q15_t)0x5e9a, (q15_t)0xc7ca, (q15_t)0x5e8f, (q15_t)0xc7c4, - (q15_t)0x5e84, (q15_t)0xc7be, (q15_t)0x5e79, (q15_t)0xc7b8, (q15_t)0x5e6e, (q15_t)0xc7b2, (q15_t)0x5e63, (q15_t)0xc7ac, - (q15_t)0x5e58, (q15_t)0xc7a6, (q15_t)0x5e4d, (q15_t)0xc7a0, (q15_t)0x5e42, (q15_t)0xc79a, (q15_t)0x5e36, (q15_t)0xc795, - (q15_t)0x5e2b, (q15_t)0xc78f, (q15_t)0x5e20, (q15_t)0xc789, (q15_t)0x5e15, (q15_t)0xc783, (q15_t)0x5e0a, (q15_t)0xc77d, - (q15_t)0x5dff, (q15_t)0xc777, (q15_t)0x5df4, (q15_t)0xc771, (q15_t)0x5de9, (q15_t)0xc76b, (q15_t)0x5dde, (q15_t)0xc765, - (q15_t)0x5dd3, (q15_t)0xc75f, (q15_t)0x5dc7, (q15_t)0xc75a, (q15_t)0x5dbc, (q15_t)0xc754, (q15_t)0x5db1, (q15_t)0xc74e, - (q15_t)0x5da6, (q15_t)0xc748, (q15_t)0x5d9b, (q15_t)0xc742, (q15_t)0x5d90, (q15_t)0xc73d, (q15_t)0x5d85, (q15_t)0xc737, - (q15_t)0x5d79, (q15_t)0xc731, (q15_t)0x5d6e, (q15_t)0xc72b, (q15_t)0x5d63, (q15_t)0xc725, (q15_t)0x5d58, (q15_t)0xc720, - (q15_t)0x5d4d, (q15_t)0xc71a, (q15_t)0x5d42, (q15_t)0xc714, (q15_t)0x5d36, (q15_t)0xc70e, (q15_t)0x5d2b, (q15_t)0xc709, - (q15_t)0x5d20, (q15_t)0xc703, (q15_t)0x5d15, (q15_t)0xc6fd, (q15_t)0x5d0a, (q15_t)0xc6f7, (q15_t)0x5cff, (q15_t)0xc6f2, - (q15_t)0x5cf3, (q15_t)0xc6ec, (q15_t)0x5ce8, (q15_t)0xc6e6, (q15_t)0x5cdd, (q15_t)0xc6e1, (q15_t)0x5cd2, (q15_t)0xc6db, - (q15_t)0x5cc6, (q15_t)0xc6d5, (q15_t)0x5cbb, (q15_t)0xc6d0, (q15_t)0x5cb0, (q15_t)0xc6ca, (q15_t)0x5ca5, (q15_t)0xc6c5, - (q15_t)0x5c99, (q15_t)0xc6bf, (q15_t)0x5c8e, (q15_t)0xc6b9, (q15_t)0x5c83, (q15_t)0xc6b4, (q15_t)0x5c78, (q15_t)0xc6ae, - (q15_t)0x5c6c, (q15_t)0xc6a8, (q15_t)0x5c61, (q15_t)0xc6a3, (q15_t)0x5c56, (q15_t)0xc69d, (q15_t)0x5c4b, (q15_t)0xc698, - (q15_t)0x5c3f, (q15_t)0xc692, (q15_t)0x5c34, (q15_t)0xc68d, (q15_t)0x5c29, (q15_t)0xc687, (q15_t)0x5c1e, (q15_t)0xc682, - (q15_t)0x5c12, (q15_t)0xc67c, (q15_t)0x5c07, (q15_t)0xc677, (q15_t)0x5bfc, (q15_t)0xc671, (q15_t)0x5bf0, (q15_t)0xc66c, - (q15_t)0x5be5, (q15_t)0xc666, (q15_t)0x5bda, (q15_t)0xc661, (q15_t)0x5bce, (q15_t)0xc65b, (q15_t)0x5bc3, (q15_t)0xc656, - (q15_t)0x5bb8, (q15_t)0xc650, (q15_t)0x5bac, (q15_t)0xc64b, (q15_t)0x5ba1, (q15_t)0xc645, (q15_t)0x5b96, (q15_t)0xc640, - (q15_t)0x5b8a, (q15_t)0xc63b, (q15_t)0x5b7f, (q15_t)0xc635, (q15_t)0x5b74, (q15_t)0xc630, (q15_t)0x5b68, (q15_t)0xc62a, - (q15_t)0x5b5d, (q15_t)0xc625, (q15_t)0x5b52, (q15_t)0xc620, (q15_t)0x5b46, (q15_t)0xc61a, (q15_t)0x5b3b, (q15_t)0xc615, - (q15_t)0x5b30, (q15_t)0xc610, (q15_t)0x5b24, (q15_t)0xc60a, (q15_t)0x5b19, (q15_t)0xc605, (q15_t)0x5b0d, (q15_t)0xc600, - (q15_t)0x5b02, (q15_t)0xc5fa, (q15_t)0x5af7, (q15_t)0xc5f5, (q15_t)0x5aeb, (q15_t)0xc5f0, (q15_t)0x5ae0, (q15_t)0xc5ea, - (q15_t)0x5ad4, (q15_t)0xc5e5, (q15_t)0x5ac9, (q15_t)0xc5e0, (q15_t)0x5abe, (q15_t)0xc5db, (q15_t)0x5ab2, (q15_t)0xc5d5, - (q15_t)0x5aa7, (q15_t)0xc5d0, (q15_t)0x5a9b, (q15_t)0xc5cb, (q15_t)0x5a90, (q15_t)0xc5c6, (q15_t)0x5a84, (q15_t)0xc5c1, - (q15_t)0x5a79, (q15_t)0xc5bb, (q15_t)0x5a6e, (q15_t)0xc5b6, (q15_t)0x5a62, (q15_t)0xc5b1, (q15_t)0x5a57, (q15_t)0xc5ac, - (q15_t)0x5a4b, (q15_t)0xc5a7, (q15_t)0x5a40, (q15_t)0xc5a1, (q15_t)0x5a34, (q15_t)0xc59c, (q15_t)0x5a29, (q15_t)0xc597, - (q15_t)0x5a1d, (q15_t)0xc592, (q15_t)0x5a12, (q15_t)0xc58d, (q15_t)0x5a06, (q15_t)0xc588, (q15_t)0x59fb, (q15_t)0xc583, - (q15_t)0x59ef, (q15_t)0xc57e, (q15_t)0x59e4, (q15_t)0xc578, (q15_t)0x59d8, (q15_t)0xc573, (q15_t)0x59cd, (q15_t)0xc56e, - (q15_t)0x59c1, (q15_t)0xc569, (q15_t)0x59b6, (q15_t)0xc564, (q15_t)0x59aa, (q15_t)0xc55f, (q15_t)0x599f, (q15_t)0xc55a, - (q15_t)0x5993, (q15_t)0xc555, (q15_t)0x5988, (q15_t)0xc550, (q15_t)0x597c, (q15_t)0xc54b, (q15_t)0x5971, (q15_t)0xc546, - (q15_t)0x5965, (q15_t)0xc541, (q15_t)0x595a, (q15_t)0xc53c, (q15_t)0x594e, (q15_t)0xc537, (q15_t)0x5943, (q15_t)0xc532, - (q15_t)0x5937, (q15_t)0xc52d, (q15_t)0x592c, (q15_t)0xc528, (q15_t)0x5920, (q15_t)0xc523, (q15_t)0x5914, (q15_t)0xc51e, - (q15_t)0x5909, (q15_t)0xc51a, (q15_t)0x58fd, (q15_t)0xc515, (q15_t)0x58f2, (q15_t)0xc510, (q15_t)0x58e6, (q15_t)0xc50b, - (q15_t)0x58db, (q15_t)0xc506, (q15_t)0x58cf, (q15_t)0xc501, (q15_t)0x58c3, (q15_t)0xc4fc, (q15_t)0x58b8, (q15_t)0xc4f7, - (q15_t)0x58ac, (q15_t)0xc4f2, (q15_t)0x58a1, (q15_t)0xc4ee, (q15_t)0x5895, (q15_t)0xc4e9, (q15_t)0x5889, (q15_t)0xc4e4, - (q15_t)0x587e, (q15_t)0xc4df, (q15_t)0x5872, (q15_t)0xc4da, (q15_t)0x5867, (q15_t)0xc4d6, (q15_t)0x585b, (q15_t)0xc4d1, - (q15_t)0x584f, (q15_t)0xc4cc, (q15_t)0x5844, (q15_t)0xc4c7, (q15_t)0x5838, (q15_t)0xc4c2, (q15_t)0x582d, (q15_t)0xc4be, - (q15_t)0x5821, (q15_t)0xc4b9, (q15_t)0x5815, (q15_t)0xc4b4, (q15_t)0x580a, (q15_t)0xc4b0, (q15_t)0x57fe, (q15_t)0xc4ab, - (q15_t)0x57f2, (q15_t)0xc4a6, (q15_t)0x57e7, (q15_t)0xc4a1, (q15_t)0x57db, (q15_t)0xc49d, (q15_t)0x57cf, (q15_t)0xc498, - (q15_t)0x57c4, (q15_t)0xc493, (q15_t)0x57b8, (q15_t)0xc48f, (q15_t)0x57ac, (q15_t)0xc48a, (q15_t)0x57a1, (q15_t)0xc485, - (q15_t)0x5795, (q15_t)0xc481, (q15_t)0x5789, (q15_t)0xc47c, (q15_t)0x577e, (q15_t)0xc478, (q15_t)0x5772, (q15_t)0xc473, - (q15_t)0x5766, (q15_t)0xc46e, (q15_t)0x575b, (q15_t)0xc46a, (q15_t)0x574f, (q15_t)0xc465, (q15_t)0x5743, (q15_t)0xc461, - (q15_t)0x5737, (q15_t)0xc45c, (q15_t)0x572c, (q15_t)0xc457, (q15_t)0x5720, (q15_t)0xc453, (q15_t)0x5714, (q15_t)0xc44e, - (q15_t)0x5709, (q15_t)0xc44a, (q15_t)0x56fd, (q15_t)0xc445, (q15_t)0x56f1, (q15_t)0xc441, (q15_t)0x56e5, (q15_t)0xc43c, - (q15_t)0x56da, (q15_t)0xc438, (q15_t)0x56ce, (q15_t)0xc433, (q15_t)0x56c2, (q15_t)0xc42f, (q15_t)0x56b6, (q15_t)0xc42a, - (q15_t)0x56ab, (q15_t)0xc426, (q15_t)0x569f, (q15_t)0xc422, (q15_t)0x5693, (q15_t)0xc41d, (q15_t)0x5687, (q15_t)0xc419, - (q15_t)0x567c, (q15_t)0xc414, (q15_t)0x5670, (q15_t)0xc410, (q15_t)0x5664, (q15_t)0xc40b, (q15_t)0x5658, (q15_t)0xc407, - (q15_t)0x564c, (q15_t)0xc403, (q15_t)0x5641, (q15_t)0xc3fe, (q15_t)0x5635, (q15_t)0xc3fa, (q15_t)0x5629, (q15_t)0xc3f6, - (q15_t)0x561d, (q15_t)0xc3f1, (q15_t)0x5612, (q15_t)0xc3ed, (q15_t)0x5606, (q15_t)0xc3e9, (q15_t)0x55fa, (q15_t)0xc3e4, - (q15_t)0x55ee, (q15_t)0xc3e0, (q15_t)0x55e2, (q15_t)0xc3dc, (q15_t)0x55d7, (q15_t)0xc3d7, (q15_t)0x55cb, (q15_t)0xc3d3, - (q15_t)0x55bf, (q15_t)0xc3cf, (q15_t)0x55b3, (q15_t)0xc3ca, (q15_t)0x55a7, (q15_t)0xc3c6, (q15_t)0x559b, (q15_t)0xc3c2, - (q15_t)0x5590, (q15_t)0xc3be, (q15_t)0x5584, (q15_t)0xc3ba, (q15_t)0x5578, (q15_t)0xc3b5, (q15_t)0x556c, (q15_t)0xc3b1, - (q15_t)0x5560, (q15_t)0xc3ad, (q15_t)0x5554, (q15_t)0xc3a9, (q15_t)0x5549, (q15_t)0xc3a5, (q15_t)0x553d, (q15_t)0xc3a0, - (q15_t)0x5531, (q15_t)0xc39c, (q15_t)0x5525, (q15_t)0xc398, (q15_t)0x5519, (q15_t)0xc394, (q15_t)0x550d, (q15_t)0xc390, - (q15_t)0x5501, (q15_t)0xc38c, (q15_t)0x54f6, (q15_t)0xc387, (q15_t)0x54ea, (q15_t)0xc383, (q15_t)0x54de, (q15_t)0xc37f, - (q15_t)0x54d2, (q15_t)0xc37b, (q15_t)0x54c6, (q15_t)0xc377, (q15_t)0x54ba, (q15_t)0xc373, (q15_t)0x54ae, (q15_t)0xc36f, - (q15_t)0x54a2, (q15_t)0xc36b, (q15_t)0x5496, (q15_t)0xc367, (q15_t)0x548b, (q15_t)0xc363, (q15_t)0x547f, (q15_t)0xc35f, - (q15_t)0x5473, (q15_t)0xc35b, (q15_t)0x5467, (q15_t)0xc357, (q15_t)0x545b, (q15_t)0xc353, (q15_t)0x544f, (q15_t)0xc34f, - (q15_t)0x5443, (q15_t)0xc34b, (q15_t)0x5437, (q15_t)0xc347, (q15_t)0x542b, (q15_t)0xc343, (q15_t)0x541f, (q15_t)0xc33f, - (q15_t)0x5413, (q15_t)0xc33b, (q15_t)0x5407, (q15_t)0xc337, (q15_t)0x53fb, (q15_t)0xc333, (q15_t)0x53f0, (q15_t)0xc32f, - (q15_t)0x53e4, (q15_t)0xc32b, (q15_t)0x53d8, (q15_t)0xc327, (q15_t)0x53cc, (q15_t)0xc323, (q15_t)0x53c0, (q15_t)0xc320, - (q15_t)0x53b4, (q15_t)0xc31c, (q15_t)0x53a8, (q15_t)0xc318, (q15_t)0x539c, (q15_t)0xc314, (q15_t)0x5390, (q15_t)0xc310, - (q15_t)0x5384, (q15_t)0xc30c, (q15_t)0x5378, (q15_t)0xc308, (q15_t)0x536c, (q15_t)0xc305, (q15_t)0x5360, (q15_t)0xc301, - (q15_t)0x5354, (q15_t)0xc2fd, (q15_t)0x5348, (q15_t)0xc2f9, (q15_t)0x533c, (q15_t)0xc2f5, (q15_t)0x5330, (q15_t)0xc2f2, - (q15_t)0x5324, (q15_t)0xc2ee, (q15_t)0x5318, (q15_t)0xc2ea, (q15_t)0x530c, (q15_t)0xc2e6, (q15_t)0x5300, (q15_t)0xc2e3, - (q15_t)0x52f4, (q15_t)0xc2df, (q15_t)0x52e8, (q15_t)0xc2db, (q15_t)0x52dc, (q15_t)0xc2d8, (q15_t)0x52d0, (q15_t)0xc2d4, - (q15_t)0x52c4, (q15_t)0xc2d0, (q15_t)0x52b8, (q15_t)0xc2cc, (q15_t)0x52ac, (q15_t)0xc2c9, (q15_t)0x52a0, (q15_t)0xc2c5, - (q15_t)0x5294, (q15_t)0xc2c1, (q15_t)0x5288, (q15_t)0xc2be, (q15_t)0x527c, (q15_t)0xc2ba, (q15_t)0x5270, (q15_t)0xc2b7, - (q15_t)0x5264, (q15_t)0xc2b3, (q15_t)0x5258, (q15_t)0xc2af, (q15_t)0x524c, (q15_t)0xc2ac, (q15_t)0x5240, (q15_t)0xc2a8, - (q15_t)0x5234, (q15_t)0xc2a5, (q15_t)0x5228, (q15_t)0xc2a1, (q15_t)0x521c, (q15_t)0xc29d, (q15_t)0x5210, (q15_t)0xc29a, - (q15_t)0x5204, (q15_t)0xc296, (q15_t)0x51f7, (q15_t)0xc293, (q15_t)0x51eb, (q15_t)0xc28f, (q15_t)0x51df, (q15_t)0xc28c, - (q15_t)0x51d3, (q15_t)0xc288, (q15_t)0x51c7, (q15_t)0xc285, (q15_t)0x51bb, (q15_t)0xc281, (q15_t)0x51af, (q15_t)0xc27e, - (q15_t)0x51a3, (q15_t)0xc27a, (q15_t)0x5197, (q15_t)0xc277, (q15_t)0x518b, (q15_t)0xc273, (q15_t)0x517f, (q15_t)0xc270, - (q15_t)0x5173, (q15_t)0xc26d, (q15_t)0x5167, (q15_t)0xc269, (q15_t)0x515a, (q15_t)0xc266, (q15_t)0x514e, (q15_t)0xc262, - (q15_t)0x5142, (q15_t)0xc25f, (q15_t)0x5136, (q15_t)0xc25c, (q15_t)0x512a, (q15_t)0xc258, (q15_t)0x511e, (q15_t)0xc255, - (q15_t)0x5112, (q15_t)0xc251, (q15_t)0x5106, (q15_t)0xc24e, (q15_t)0x50fa, (q15_t)0xc24b, (q15_t)0x50ed, (q15_t)0xc247, - (q15_t)0x50e1, (q15_t)0xc244, (q15_t)0x50d5, (q15_t)0xc241, (q15_t)0x50c9, (q15_t)0xc23e, (q15_t)0x50bd, (q15_t)0xc23a, - (q15_t)0x50b1, (q15_t)0xc237, (q15_t)0x50a5, (q15_t)0xc234, (q15_t)0x5099, (q15_t)0xc230, (q15_t)0x508c, (q15_t)0xc22d, - (q15_t)0x5080, (q15_t)0xc22a, (q15_t)0x5074, (q15_t)0xc227, (q15_t)0x5068, (q15_t)0xc223, (q15_t)0x505c, (q15_t)0xc220, - (q15_t)0x5050, (q15_t)0xc21d, (q15_t)0x5044, (q15_t)0xc21a, (q15_t)0x5037, (q15_t)0xc217, (q15_t)0x502b, (q15_t)0xc213, - (q15_t)0x501f, (q15_t)0xc210, (q15_t)0x5013, (q15_t)0xc20d, (q15_t)0x5007, (q15_t)0xc20a, (q15_t)0x4ffb, (q15_t)0xc207, - (q15_t)0x4fee, (q15_t)0xc204, (q15_t)0x4fe2, (q15_t)0xc201, (q15_t)0x4fd6, (q15_t)0xc1fd, (q15_t)0x4fca, (q15_t)0xc1fa, - (q15_t)0x4fbe, (q15_t)0xc1f7, (q15_t)0x4fb2, (q15_t)0xc1f4, (q15_t)0x4fa5, (q15_t)0xc1f1, (q15_t)0x4f99, (q15_t)0xc1ee, - (q15_t)0x4f8d, (q15_t)0xc1eb, (q15_t)0x4f81, (q15_t)0xc1e8, (q15_t)0x4f75, (q15_t)0xc1e5, (q15_t)0x4f68, (q15_t)0xc1e2, - (q15_t)0x4f5c, (q15_t)0xc1df, (q15_t)0x4f50, (q15_t)0xc1dc, (q15_t)0x4f44, (q15_t)0xc1d9, (q15_t)0x4f38, (q15_t)0xc1d6, - (q15_t)0x4f2b, (q15_t)0xc1d3, (q15_t)0x4f1f, (q15_t)0xc1d0, (q15_t)0x4f13, (q15_t)0xc1cd, (q15_t)0x4f07, (q15_t)0xc1ca, - (q15_t)0x4efb, (q15_t)0xc1c7, (q15_t)0x4eee, (q15_t)0xc1c4, (q15_t)0x4ee2, (q15_t)0xc1c1, (q15_t)0x4ed6, (q15_t)0xc1be, - (q15_t)0x4eca, (q15_t)0xc1bb, (q15_t)0x4ebd, (q15_t)0xc1b8, (q15_t)0x4eb1, (q15_t)0xc1b6, (q15_t)0x4ea5, (q15_t)0xc1b3, - (q15_t)0x4e99, (q15_t)0xc1b0, (q15_t)0x4e8c, (q15_t)0xc1ad, (q15_t)0x4e80, (q15_t)0xc1aa, (q15_t)0x4e74, (q15_t)0xc1a7, - (q15_t)0x4e68, (q15_t)0xc1a4, (q15_t)0x4e5c, (q15_t)0xc1a2, (q15_t)0x4e4f, (q15_t)0xc19f, (q15_t)0x4e43, (q15_t)0xc19c, - (q15_t)0x4e37, (q15_t)0xc199, (q15_t)0x4e2b, (q15_t)0xc196, (q15_t)0x4e1e, (q15_t)0xc194, (q15_t)0x4e12, (q15_t)0xc191, - (q15_t)0x4e06, (q15_t)0xc18e, (q15_t)0x4df9, (q15_t)0xc18b, (q15_t)0x4ded, (q15_t)0xc189, (q15_t)0x4de1, (q15_t)0xc186, - (q15_t)0x4dd5, (q15_t)0xc183, (q15_t)0x4dc8, (q15_t)0xc180, (q15_t)0x4dbc, (q15_t)0xc17e, (q15_t)0x4db0, (q15_t)0xc17b, - (q15_t)0x4da4, (q15_t)0xc178, (q15_t)0x4d97, (q15_t)0xc176, (q15_t)0x4d8b, (q15_t)0xc173, (q15_t)0x4d7f, (q15_t)0xc170, - (q15_t)0x4d72, (q15_t)0xc16e, (q15_t)0x4d66, (q15_t)0xc16b, (q15_t)0x4d5a, (q15_t)0xc168, (q15_t)0x4d4e, (q15_t)0xc166, - (q15_t)0x4d41, (q15_t)0xc163, (q15_t)0x4d35, (q15_t)0xc161, (q15_t)0x4d29, (q15_t)0xc15e, (q15_t)0x4d1c, (q15_t)0xc15b, - (q15_t)0x4d10, (q15_t)0xc159, (q15_t)0x4d04, (q15_t)0xc156, (q15_t)0x4cf8, (q15_t)0xc154, (q15_t)0x4ceb, (q15_t)0xc151, - (q15_t)0x4cdf, (q15_t)0xc14f, (q15_t)0x4cd3, (q15_t)0xc14c, (q15_t)0x4cc6, (q15_t)0xc14a, (q15_t)0x4cba, (q15_t)0xc147, - (q15_t)0x4cae, (q15_t)0xc145, (q15_t)0x4ca1, (q15_t)0xc142, (q15_t)0x4c95, (q15_t)0xc140, (q15_t)0x4c89, (q15_t)0xc13d, - (q15_t)0x4c7c, (q15_t)0xc13b, (q15_t)0x4c70, (q15_t)0xc138, (q15_t)0x4c64, (q15_t)0xc136, (q15_t)0x4c57, (q15_t)0xc134, - (q15_t)0x4c4b, (q15_t)0xc131, (q15_t)0x4c3f, (q15_t)0xc12f, (q15_t)0x4c32, (q15_t)0xc12c, (q15_t)0x4c26, (q15_t)0xc12a, - (q15_t)0x4c1a, (q15_t)0xc128, (q15_t)0x4c0d, (q15_t)0xc125, (q15_t)0x4c01, (q15_t)0xc123, (q15_t)0x4bf5, (q15_t)0xc120, - (q15_t)0x4be8, (q15_t)0xc11e, (q15_t)0x4bdc, (q15_t)0xc11c, (q15_t)0x4bd0, (q15_t)0xc119, (q15_t)0x4bc3, (q15_t)0xc117, - (q15_t)0x4bb7, (q15_t)0xc115, (q15_t)0x4bab, (q15_t)0xc113, (q15_t)0x4b9e, (q15_t)0xc110, (q15_t)0x4b92, (q15_t)0xc10e, - (q15_t)0x4b85, (q15_t)0xc10c, (q15_t)0x4b79, (q15_t)0xc109, (q15_t)0x4b6d, (q15_t)0xc107, (q15_t)0x4b60, (q15_t)0xc105, - (q15_t)0x4b54, (q15_t)0xc103, (q15_t)0x4b48, (q15_t)0xc100, (q15_t)0x4b3b, (q15_t)0xc0fe, (q15_t)0x4b2f, (q15_t)0xc0fc, - (q15_t)0x4b23, (q15_t)0xc0fa, (q15_t)0x4b16, (q15_t)0xc0f8, (q15_t)0x4b0a, (q15_t)0xc0f6, (q15_t)0x4afd, (q15_t)0xc0f3, - (q15_t)0x4af1, (q15_t)0xc0f1, (q15_t)0x4ae5, (q15_t)0xc0ef, (q15_t)0x4ad8, (q15_t)0xc0ed, (q15_t)0x4acc, (q15_t)0xc0eb, - (q15_t)0x4ac0, (q15_t)0xc0e9, (q15_t)0x4ab3, (q15_t)0xc0e7, (q15_t)0x4aa7, (q15_t)0xc0e4, (q15_t)0x4a9a, (q15_t)0xc0e2, - (q15_t)0x4a8e, (q15_t)0xc0e0, (q15_t)0x4a82, (q15_t)0xc0de, (q15_t)0x4a75, (q15_t)0xc0dc, (q15_t)0x4a69, (q15_t)0xc0da, - (q15_t)0x4a5c, (q15_t)0xc0d8, (q15_t)0x4a50, (q15_t)0xc0d6, (q15_t)0x4a44, (q15_t)0xc0d4, (q15_t)0x4a37, (q15_t)0xc0d2, - (q15_t)0x4a2b, (q15_t)0xc0d0, (q15_t)0x4a1e, (q15_t)0xc0ce, (q15_t)0x4a12, (q15_t)0xc0cc, (q15_t)0x4a06, (q15_t)0xc0ca, - (q15_t)0x49f9, (q15_t)0xc0c8, (q15_t)0x49ed, (q15_t)0xc0c6, (q15_t)0x49e0, (q15_t)0xc0c4, (q15_t)0x49d4, (q15_t)0xc0c2, - (q15_t)0x49c7, (q15_t)0xc0c0, (q15_t)0x49bb, (q15_t)0xc0be, (q15_t)0x49af, (q15_t)0xc0bd, (q15_t)0x49a2, (q15_t)0xc0bb, - (q15_t)0x4996, (q15_t)0xc0b9, (q15_t)0x4989, (q15_t)0xc0b7, (q15_t)0x497d, (q15_t)0xc0b5, (q15_t)0x4970, (q15_t)0xc0b3, - (q15_t)0x4964, (q15_t)0xc0b1, (q15_t)0x4958, (q15_t)0xc0af, (q15_t)0x494b, (q15_t)0xc0ae, (q15_t)0x493f, (q15_t)0xc0ac, - (q15_t)0x4932, (q15_t)0xc0aa, (q15_t)0x4926, (q15_t)0xc0a8, (q15_t)0x4919, (q15_t)0xc0a6, (q15_t)0x490d, (q15_t)0xc0a5, - (q15_t)0x4901, (q15_t)0xc0a3, (q15_t)0x48f4, (q15_t)0xc0a1, (q15_t)0x48e8, (q15_t)0xc09f, (q15_t)0x48db, (q15_t)0xc09e, - (q15_t)0x48cf, (q15_t)0xc09c, (q15_t)0x48c2, (q15_t)0xc09a, (q15_t)0x48b6, (q15_t)0xc098, (q15_t)0x48a9, (q15_t)0xc097, - (q15_t)0x489d, (q15_t)0xc095, (q15_t)0x4891, (q15_t)0xc093, (q15_t)0x4884, (q15_t)0xc092, (q15_t)0x4878, (q15_t)0xc090, - (q15_t)0x486b, (q15_t)0xc08e, (q15_t)0x485f, (q15_t)0xc08d, (q15_t)0x4852, (q15_t)0xc08b, (q15_t)0x4846, (q15_t)0xc089, - (q15_t)0x4839, (q15_t)0xc088, (q15_t)0x482d, (q15_t)0xc086, (q15_t)0x4820, (q15_t)0xc085, (q15_t)0x4814, (q15_t)0xc083, - (q15_t)0x4807, (q15_t)0xc081, (q15_t)0x47fb, (q15_t)0xc080, (q15_t)0x47ef, (q15_t)0xc07e, (q15_t)0x47e2, (q15_t)0xc07d, - (q15_t)0x47d6, (q15_t)0xc07b, (q15_t)0x47c9, (q15_t)0xc07a, (q15_t)0x47bd, (q15_t)0xc078, (q15_t)0x47b0, (q15_t)0xc077, - (q15_t)0x47a4, (q15_t)0xc075, (q15_t)0x4797, (q15_t)0xc074, (q15_t)0x478b, (q15_t)0xc072, (q15_t)0x477e, (q15_t)0xc071, - (q15_t)0x4772, (q15_t)0xc06f, (q15_t)0x4765, (q15_t)0xc06e, (q15_t)0x4759, (q15_t)0xc06c, (q15_t)0x474c, (q15_t)0xc06b, - (q15_t)0x4740, (q15_t)0xc069, (q15_t)0x4733, (q15_t)0xc068, (q15_t)0x4727, (q15_t)0xc067, (q15_t)0x471a, (q15_t)0xc065, - (q15_t)0x470e, (q15_t)0xc064, (q15_t)0x4701, (q15_t)0xc062, (q15_t)0x46f5, (q15_t)0xc061, (q15_t)0x46e8, (q15_t)0xc060, - (q15_t)0x46dc, (q15_t)0xc05e, (q15_t)0x46cf, (q15_t)0xc05d, (q15_t)0x46c3, (q15_t)0xc05c, (q15_t)0x46b6, (q15_t)0xc05a, - (q15_t)0x46aa, (q15_t)0xc059, (q15_t)0x469d, (q15_t)0xc058, (q15_t)0x4691, (q15_t)0xc056, (q15_t)0x4684, (q15_t)0xc055, - (q15_t)0x4678, (q15_t)0xc054, (q15_t)0x466b, (q15_t)0xc053, (q15_t)0x465f, (q15_t)0xc051, (q15_t)0x4652, (q15_t)0xc050, - (q15_t)0x4646, (q15_t)0xc04f, (q15_t)0x4639, (q15_t)0xc04e, (q15_t)0x462d, (q15_t)0xc04c, (q15_t)0x4620, (q15_t)0xc04b, - (q15_t)0x4614, (q15_t)0xc04a, (q15_t)0x4607, (q15_t)0xc049, (q15_t)0x45fb, (q15_t)0xc048, (q15_t)0x45ee, (q15_t)0xc047, - (q15_t)0x45e2, (q15_t)0xc045, (q15_t)0x45d5, (q15_t)0xc044, (q15_t)0x45c9, (q15_t)0xc043, (q15_t)0x45bc, (q15_t)0xc042, - (q15_t)0x45b0, (q15_t)0xc041, (q15_t)0x45a3, (q15_t)0xc040, (q15_t)0x4597, (q15_t)0xc03f, (q15_t)0x458a, (q15_t)0xc03d, - (q15_t)0x457e, (q15_t)0xc03c, (q15_t)0x4571, (q15_t)0xc03b, (q15_t)0x4565, (q15_t)0xc03a, (q15_t)0x4558, (q15_t)0xc039, - (q15_t)0x454c, (q15_t)0xc038, (q15_t)0x453f, (q15_t)0xc037, (q15_t)0x4533, (q15_t)0xc036, (q15_t)0x4526, (q15_t)0xc035, - (q15_t)0x451a, (q15_t)0xc034, (q15_t)0x450d, (q15_t)0xc033, (q15_t)0x4500, (q15_t)0xc032, (q15_t)0x44f4, (q15_t)0xc031, - (q15_t)0x44e7, (q15_t)0xc030, (q15_t)0x44db, (q15_t)0xc02f, (q15_t)0x44ce, (q15_t)0xc02e, (q15_t)0x44c2, (q15_t)0xc02d, - (q15_t)0x44b5, (q15_t)0xc02c, (q15_t)0x44a9, (q15_t)0xc02b, (q15_t)0x449c, (q15_t)0xc02b, (q15_t)0x4490, (q15_t)0xc02a, - (q15_t)0x4483, (q15_t)0xc029, (q15_t)0x4477, (q15_t)0xc028, (q15_t)0x446a, (q15_t)0xc027, (q15_t)0x445e, (q15_t)0xc026, - (q15_t)0x4451, (q15_t)0xc025, (q15_t)0x4444, (q15_t)0xc024, (q15_t)0x4438, (q15_t)0xc024, (q15_t)0x442b, (q15_t)0xc023, - (q15_t)0x441f, (q15_t)0xc022, (q15_t)0x4412, (q15_t)0xc021, (q15_t)0x4406, (q15_t)0xc020, (q15_t)0x43f9, (q15_t)0xc020, - (q15_t)0x43ed, (q15_t)0xc01f, (q15_t)0x43e0, (q15_t)0xc01e, (q15_t)0x43d4, (q15_t)0xc01d, (q15_t)0x43c7, (q15_t)0xc01d, - (q15_t)0x43bb, (q15_t)0xc01c, (q15_t)0x43ae, (q15_t)0xc01b, (q15_t)0x43a1, (q15_t)0xc01a, (q15_t)0x4395, (q15_t)0xc01a, - (q15_t)0x4388, (q15_t)0xc019, (q15_t)0x437c, (q15_t)0xc018, (q15_t)0x436f, (q15_t)0xc018, (q15_t)0x4363, (q15_t)0xc017, - (q15_t)0x4356, (q15_t)0xc016, (q15_t)0x434a, (q15_t)0xc016, (q15_t)0x433d, (q15_t)0xc015, (q15_t)0x4330, (q15_t)0xc014, - (q15_t)0x4324, (q15_t)0xc014, (q15_t)0x4317, (q15_t)0xc013, (q15_t)0x430b, (q15_t)0xc013, (q15_t)0x42fe, (q15_t)0xc012, - (q15_t)0x42f2, (q15_t)0xc011, (q15_t)0x42e5, (q15_t)0xc011, (q15_t)0x42d9, (q15_t)0xc010, (q15_t)0x42cc, (q15_t)0xc010, - (q15_t)0x42c0, (q15_t)0xc00f, (q15_t)0x42b3, (q15_t)0xc00f, (q15_t)0x42a6, (q15_t)0xc00e, (q15_t)0x429a, (q15_t)0xc00e, - (q15_t)0x428d, (q15_t)0xc00d, (q15_t)0x4281, (q15_t)0xc00d, (q15_t)0x4274, (q15_t)0xc00c, (q15_t)0x4268, (q15_t)0xc00c, - (q15_t)0x425b, (q15_t)0xc00b, (q15_t)0x424e, (q15_t)0xc00b, (q15_t)0x4242, (q15_t)0xc00a, (q15_t)0x4235, (q15_t)0xc00a, - (q15_t)0x4229, (q15_t)0xc009, (q15_t)0x421c, (q15_t)0xc009, (q15_t)0x4210, (q15_t)0xc009, (q15_t)0x4203, (q15_t)0xc008, - (q15_t)0x41f7, (q15_t)0xc008, (q15_t)0x41ea, (q15_t)0xc007, (q15_t)0x41dd, (q15_t)0xc007, (q15_t)0x41d1, (q15_t)0xc007, - (q15_t)0x41c4, (q15_t)0xc006, (q15_t)0x41b8, (q15_t)0xc006, (q15_t)0x41ab, (q15_t)0xc006, (q15_t)0x419f, (q15_t)0xc005, - (q15_t)0x4192, (q15_t)0xc005, (q15_t)0x4186, (q15_t)0xc005, (q15_t)0x4179, (q15_t)0xc004, (q15_t)0x416c, (q15_t)0xc004, - (q15_t)0x4160, (q15_t)0xc004, (q15_t)0x4153, (q15_t)0xc004, (q15_t)0x4147, (q15_t)0xc003, (q15_t)0x413a, (q15_t)0xc003, - (q15_t)0x412e, (q15_t)0xc003, (q15_t)0x4121, (q15_t)0xc003, (q15_t)0x4114, (q15_t)0xc002, (q15_t)0x4108, (q15_t)0xc002, - (q15_t)0x40fb, (q15_t)0xc002, (q15_t)0x40ef, (q15_t)0xc002, (q15_t)0x40e2, (q15_t)0xc002, (q15_t)0x40d6, (q15_t)0xc001, - (q15_t)0x40c9, (q15_t)0xc001, (q15_t)0x40bc, (q15_t)0xc001, (q15_t)0x40b0, (q15_t)0xc001, (q15_t)0x40a3, (q15_t)0xc001, - (q15_t)0x4097, (q15_t)0xc001, (q15_t)0x408a, (q15_t)0xc001, (q15_t)0x407e, (q15_t)0xc000, (q15_t)0x4071, (q15_t)0xc000, - (q15_t)0x4065, (q15_t)0xc000, (q15_t)0x4058, (q15_t)0xc000, (q15_t)0x404b, (q15_t)0xc000, (q15_t)0x403f, (q15_t)0xc000, - (q15_t)0x4032, (q15_t)0xc000, (q15_t)0x4026, (q15_t)0xc000, (q15_t)0x4019, (q15_t)0xc000, (q15_t)0x400d, (q15_t)0xc000, -}; - -/** -* @} end of RealFFT_Table group -*/ - -/** -* @addtogroup RealFFT -* @{ -*/ - -/** -* @brief Initialization function for the Q15 RFFT/RIFFT. -* @param[in, out] *S points to an instance of the Q15 RFFT/RIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par -* This function also initializes Twiddle factor table. -*/ -arm_status arm_rfft_init_q15( - arm_rfft_instance_q15 * S, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (q15_t *) realCoefAQ15; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (q15_t *) realCoefBQ15; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initialization of coef modifier depending on the FFT length */ - switch (S->fftLenReal) - { - case 8192U: - S->twidCoefRModifier = 1U; - S->pCfft = &arm_cfft_sR_q15_len4096; - break; - case 4096U: - S->twidCoefRModifier = 2U; - S->pCfft = &arm_cfft_sR_q15_len2048; - break; - case 2048U: - S->twidCoefRModifier = 4U; - S->pCfft = &arm_cfft_sR_q15_len1024; - break; - case 1024U: - S->twidCoefRModifier = 8U; - S->pCfft = &arm_cfft_sR_q15_len512; - break; - case 512U: - S->twidCoefRModifier = 16U; - S->pCfft = &arm_cfft_sR_q15_len256; - break; - case 256U: - S->twidCoefRModifier = 32U; - S->pCfft = &arm_cfft_sR_q15_len128; - break; - case 128U: - S->twidCoefRModifier = 64U; - S->pCfft = &arm_cfft_sR_q15_len64; - break; - case 64U: - S->twidCoefRModifier = 128U; - S->pCfft = &arm_cfft_sR_q15_len32; - break; - case 32U: - S->twidCoefRModifier = 256U; - S->pCfft = &arm_cfft_sR_q15_len16; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* return the status of RFFT Init function */ - return (status); -} - -/** -* @} end of RealFFT group -*/ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q31.c deleted file mode 100644 index 71ec4f5..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_init_q31.c +++ /dev/null @@ -1,4280 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_init_q31.c - * Description: RFFT & RIFFT Q31 initialisation function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" -#include "arm_common_tables.h" -#include "arm_const_structs.h" - -/** -* @ingroup RealFFT -*/ - -/** - * @addtogroup RealFFT_Table Real FFT Tables -* @{ -*/ - -/** -* \par -* Generation fixed-point realCoefAQ31 array in Q31 format: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-* {
-*    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));
-*    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-* }
-* \par -* Convert to fixed point Q31 format -* round(pATable[i] * pow(2, 31)) -*/ -const q31_t realCoefAQ31[8192] = { - (q31_t)0x40000000, (q31_t)0xc0000000, (q31_t)0x3ff36f02, (q31_t)0xc000013c, - (q31_t)0x3fe6de05, (q31_t)0xc00004ef, (q31_t)0x3fda4d09, (q31_t)0xc0000b1a, - (q31_t)0x3fcdbc0f, (q31_t)0xc00013bd, (q31_t)0x3fc12b16, (q31_t)0xc0001ed8, - (q31_t)0x3fb49a1f, (q31_t)0xc0002c6a, (q31_t)0x3fa8092c, (q31_t)0xc0003c74, - (q31_t)0x3f9b783c, (q31_t)0xc0004ef5, (q31_t)0x3f8ee750, (q31_t)0xc00063ee, - (q31_t)0x3f825668, (q31_t)0xc0007b5f, (q31_t)0x3f75c585, (q31_t)0xc0009547, - (q31_t)0x3f6934a8, (q31_t)0xc000b1a7, (q31_t)0x3f5ca3d0, (q31_t)0xc000d07e, - (q31_t)0x3f5012fe, (q31_t)0xc000f1ce, (q31_t)0x3f438234, (q31_t)0xc0011594, - (q31_t)0x3f36f170, (q31_t)0xc0013bd3, (q31_t)0x3f2a60b4, (q31_t)0xc0016489, - (q31_t)0x3f1dd001, (q31_t)0xc0018fb6, (q31_t)0x3f113f56, (q31_t)0xc001bd5c, - (q31_t)0x3f04aeb5, (q31_t)0xc001ed78, (q31_t)0x3ef81e1d, (q31_t)0xc002200d, - (q31_t)0x3eeb8d8f, (q31_t)0xc0025519, (q31_t)0x3edefd0c, (q31_t)0xc0028c9c, - (q31_t)0x3ed26c94, (q31_t)0xc002c697, (q31_t)0x3ec5dc28, (q31_t)0xc003030a, - (q31_t)0x3eb94bc8, (q31_t)0xc00341f4, (q31_t)0x3eacbb74, (q31_t)0xc0038356, - (q31_t)0x3ea02b2e, (q31_t)0xc003c72f, (q31_t)0x3e939af5, (q31_t)0xc0040d80, - (q31_t)0x3e870aca, (q31_t)0xc0045648, (q31_t)0x3e7a7aae, (q31_t)0xc004a188, - (q31_t)0x3e6deaa1, (q31_t)0xc004ef3f, (q31_t)0x3e615aa3, (q31_t)0xc0053f6e, - (q31_t)0x3e54cab5, (q31_t)0xc0059214, (q31_t)0x3e483ad8, (q31_t)0xc005e731, - (q31_t)0x3e3bab0b, (q31_t)0xc0063ec6, (q31_t)0x3e2f1b50, (q31_t)0xc00698d3, - (q31_t)0x3e228ba7, (q31_t)0xc006f556, (q31_t)0x3e15fc11, (q31_t)0xc0075452, - (q31_t)0x3e096c8d, (q31_t)0xc007b5c4, (q31_t)0x3dfcdd1d, (q31_t)0xc00819ae, - (q31_t)0x3df04dc0, (q31_t)0xc008800f, (q31_t)0x3de3be78, (q31_t)0xc008e8e8, - (q31_t)0x3dd72f45, (q31_t)0xc0095438, (q31_t)0x3dcaa027, (q31_t)0xc009c1ff, - (q31_t)0x3dbe111e, (q31_t)0xc00a323d, (q31_t)0x3db1822c, (q31_t)0xc00aa4f3, - (q31_t)0x3da4f351, (q31_t)0xc00b1a20, (q31_t)0x3d98648d, (q31_t)0xc00b91c4, - (q31_t)0x3d8bd5e1, (q31_t)0xc00c0be0, (q31_t)0x3d7f474d, (q31_t)0xc00c8872, - (q31_t)0x3d72b8d2, (q31_t)0xc00d077c, (q31_t)0x3d662a70, (q31_t)0xc00d88fd, - (q31_t)0x3d599c28, (q31_t)0xc00e0cf5, (q31_t)0x3d4d0df9, (q31_t)0xc00e9364, - (q31_t)0x3d407fe6, (q31_t)0xc00f1c4a, (q31_t)0x3d33f1ed, (q31_t)0xc00fa7a8, - (q31_t)0x3d276410, (q31_t)0xc010357c, (q31_t)0x3d1ad650, (q31_t)0xc010c5c7, - (q31_t)0x3d0e48ab, (q31_t)0xc011588a, (q31_t)0x3d01bb24, (q31_t)0xc011edc3, - (q31_t)0x3cf52dbb, (q31_t)0xc0128574, (q31_t)0x3ce8a06f, (q31_t)0xc0131f9b, - (q31_t)0x3cdc1342, (q31_t)0xc013bc39, (q31_t)0x3ccf8634, (q31_t)0xc0145b4e, - (q31_t)0x3cc2f945, (q31_t)0xc014fcda, (q31_t)0x3cb66c77, (q31_t)0xc015a0dd, - (q31_t)0x3ca9dfc8, (q31_t)0xc0164757, (q31_t)0x3c9d533b, (q31_t)0xc016f047, - (q31_t)0x3c90c6cf, (q31_t)0xc0179bae, (q31_t)0x3c843a85, (q31_t)0xc018498c, - (q31_t)0x3c77ae5e, (q31_t)0xc018f9e1, (q31_t)0x3c6b2259, (q31_t)0xc019acac, - (q31_t)0x3c5e9678, (q31_t)0xc01a61ee, (q31_t)0x3c520aba, (q31_t)0xc01b19a7, - (q31_t)0x3c457f21, (q31_t)0xc01bd3d6, (q31_t)0x3c38f3ac, (q31_t)0xc01c907c, - (q31_t)0x3c2c685d, (q31_t)0xc01d4f99, (q31_t)0x3c1fdd34, (q31_t)0xc01e112b, - (q31_t)0x3c135231, (q31_t)0xc01ed535, (q31_t)0x3c06c754, (q31_t)0xc01f9bb5, - (q31_t)0x3bfa3c9f, (q31_t)0xc02064ab, (q31_t)0x3bedb212, (q31_t)0xc0213018, - (q31_t)0x3be127ac, (q31_t)0xc021fdfb, (q31_t)0x3bd49d70, (q31_t)0xc022ce54, - (q31_t)0x3bc8135c, (q31_t)0xc023a124, (q31_t)0x3bbb8973, (q31_t)0xc024766a, - (q31_t)0x3baeffb3, (q31_t)0xc0254e27, (q31_t)0x3ba2761e, (q31_t)0xc0262859, - (q31_t)0x3b95ecb4, (q31_t)0xc0270502, (q31_t)0x3b896375, (q31_t)0xc027e421, - (q31_t)0x3b7cda63, (q31_t)0xc028c5b6, (q31_t)0x3b70517d, (q31_t)0xc029a9c1, - (q31_t)0x3b63c8c4, (q31_t)0xc02a9042, (q31_t)0x3b574039, (q31_t)0xc02b7939, - (q31_t)0x3b4ab7db, (q31_t)0xc02c64a6, (q31_t)0x3b3e2fac, (q31_t)0xc02d5289, - (q31_t)0x3b31a7ac, (q31_t)0xc02e42e2, (q31_t)0x3b251fdc, (q31_t)0xc02f35b1, - (q31_t)0x3b18983b, (q31_t)0xc0302af5, (q31_t)0x3b0c10cb, (q31_t)0xc03122b0, - (q31_t)0x3aff898c, (q31_t)0xc0321ce0, (q31_t)0x3af3027e, (q31_t)0xc0331986, - (q31_t)0x3ae67ba2, (q31_t)0xc03418a2, (q31_t)0x3ad9f4f8, (q31_t)0xc0351a33, - (q31_t)0x3acd6e81, (q31_t)0xc0361e3a, (q31_t)0x3ac0e83d, (q31_t)0xc03724b6, - (q31_t)0x3ab4622d, (q31_t)0xc0382da8, (q31_t)0x3aa7dc52, (q31_t)0xc0393910, - (q31_t)0x3a9b56ab, (q31_t)0xc03a46ed, (q31_t)0x3a8ed139, (q31_t)0xc03b573f, - (q31_t)0x3a824bfd, (q31_t)0xc03c6a07, (q31_t)0x3a75c6f8, (q31_t)0xc03d7f44, - (q31_t)0x3a694229, (q31_t)0xc03e96f6, (q31_t)0x3a5cbd91, (q31_t)0xc03fb11d, - (q31_t)0x3a503930, (q31_t)0xc040cdba, (q31_t)0x3a43b508, (q31_t)0xc041eccc, - (q31_t)0x3a373119, (q31_t)0xc0430e53, (q31_t)0x3a2aad62, (q31_t)0xc044324f, - (q31_t)0x3a1e29e5, (q31_t)0xc04558c0, (q31_t)0x3a11a6a3, (q31_t)0xc04681a6, - (q31_t)0x3a05239a, (q31_t)0xc047ad01, (q31_t)0x39f8a0cd, (q31_t)0xc048dad1, - (q31_t)0x39ec1e3b, (q31_t)0xc04a0b16, (q31_t)0x39df9be6, (q31_t)0xc04b3dcf, - (q31_t)0x39d319cc, (q31_t)0xc04c72fe, (q31_t)0x39c697f0, (q31_t)0xc04daaa1, - (q31_t)0x39ba1651, (q31_t)0xc04ee4b8, (q31_t)0x39ad94f0, (q31_t)0xc0502145, - (q31_t)0x39a113cd, (q31_t)0xc0516045, (q31_t)0x399492ea, (q31_t)0xc052a1bb, - (q31_t)0x39881245, (q31_t)0xc053e5a5, (q31_t)0x397b91e1, (q31_t)0xc0552c03, - (q31_t)0x396f11bc, (q31_t)0xc05674d6, (q31_t)0x396291d9, (q31_t)0xc057c01d, - (q31_t)0x39561237, (q31_t)0xc0590dd8, (q31_t)0x394992d7, (q31_t)0xc05a5e07, - (q31_t)0x393d13b8, (q31_t)0xc05bb0ab, (q31_t)0x393094dd, (q31_t)0xc05d05c3, - (q31_t)0x39241645, (q31_t)0xc05e5d4e, (q31_t)0x391797f0, (q31_t)0xc05fb74e, - (q31_t)0x390b19e0, (q31_t)0xc06113c2, (q31_t)0x38fe9c15, (q31_t)0xc06272aa, - (q31_t)0x38f21e8e, (q31_t)0xc063d405, (q31_t)0x38e5a14d, (q31_t)0xc06537d4, - (q31_t)0x38d92452, (q31_t)0xc0669e18, (q31_t)0x38cca79e, (q31_t)0xc06806ce, - (q31_t)0x38c02b31, (q31_t)0xc06971f9, (q31_t)0x38b3af0c, (q31_t)0xc06adf97, - (q31_t)0x38a7332e, (q31_t)0xc06c4fa8, (q31_t)0x389ab799, (q31_t)0xc06dc22e, - (q31_t)0x388e3c4d, (q31_t)0xc06f3726, (q31_t)0x3881c14b, (q31_t)0xc070ae92, - (q31_t)0x38754692, (q31_t)0xc0722871, (q31_t)0x3868cc24, (q31_t)0xc073a4c3, - (q31_t)0x385c5201, (q31_t)0xc0752389, (q31_t)0x384fd829, (q31_t)0xc076a4c2, - (q31_t)0x38435e9d, (q31_t)0xc078286e, (q31_t)0x3836e55d, (q31_t)0xc079ae8c, - (q31_t)0x382a6c6a, (q31_t)0xc07b371e, (q31_t)0x381df3c5, (q31_t)0xc07cc223, - (q31_t)0x38117b6d, (q31_t)0xc07e4f9b, (q31_t)0x38050364, (q31_t)0xc07fdf85, - (q31_t)0x37f88ba9, (q31_t)0xc08171e2, (q31_t)0x37ec143e, (q31_t)0xc08306b2, - (q31_t)0x37df9d22, (q31_t)0xc0849df4, (q31_t)0x37d32657, (q31_t)0xc08637a9, - (q31_t)0x37c6afdc, (q31_t)0xc087d3d0, (q31_t)0x37ba39b3, (q31_t)0xc089726a, - (q31_t)0x37adc3db, (q31_t)0xc08b1376, (q31_t)0x37a14e55, (q31_t)0xc08cb6f5, - (q31_t)0x3794d922, (q31_t)0xc08e5ce5, (q31_t)0x37886442, (q31_t)0xc0900548, - (q31_t)0x377befb5, (q31_t)0xc091b01d, (q31_t)0x376f7b7d, (q31_t)0xc0935d64, - (q31_t)0x37630799, (q31_t)0xc0950d1d, (q31_t)0x3756940a, (q31_t)0xc096bf48, - (q31_t)0x374a20d0, (q31_t)0xc09873e4, (q31_t)0x373daded, (q31_t)0xc09a2af3, - (q31_t)0x37313b60, (q31_t)0xc09be473, (q31_t)0x3724c92a, (q31_t)0xc09da065, - (q31_t)0x3718574b, (q31_t)0xc09f5ec8, (q31_t)0x370be5c4, (q31_t)0xc0a11f9d, - (q31_t)0x36ff7496, (q31_t)0xc0a2e2e3, (q31_t)0x36f303c0, (q31_t)0xc0a4a89b, - (q31_t)0x36e69344, (q31_t)0xc0a670c4, (q31_t)0x36da2321, (q31_t)0xc0a83b5e, - (q31_t)0x36cdb359, (q31_t)0xc0aa086a, (q31_t)0x36c143ec, (q31_t)0xc0abd7e6, - (q31_t)0x36b4d4d9, (q31_t)0xc0ada9d4, (q31_t)0x36a86623, (q31_t)0xc0af7e33, - (q31_t)0x369bf7c9, (q31_t)0xc0b15502, (q31_t)0x368f89cb, (q31_t)0xc0b32e42, - (q31_t)0x36831c2b, (q31_t)0xc0b509f3, (q31_t)0x3676aee8, (q31_t)0xc0b6e815, - (q31_t)0x366a4203, (q31_t)0xc0b8c8a7, (q31_t)0x365dd57d, (q31_t)0xc0baabaa, - (q31_t)0x36516956, (q31_t)0xc0bc911d, (q31_t)0x3644fd8f, (q31_t)0xc0be7901, - (q31_t)0x36389228, (q31_t)0xc0c06355, (q31_t)0x362c2721, (q31_t)0xc0c25019, - (q31_t)0x361fbc7b, (q31_t)0xc0c43f4d, (q31_t)0x36135237, (q31_t)0xc0c630f2, - (q31_t)0x3606e854, (q31_t)0xc0c82506, (q31_t)0x35fa7ed4, (q31_t)0xc0ca1b8a, - (q31_t)0x35ee15b7, (q31_t)0xc0cc147f, (q31_t)0x35e1acfd, (q31_t)0xc0ce0fe3, - (q31_t)0x35d544a7, (q31_t)0xc0d00db6, (q31_t)0x35c8dcb6, (q31_t)0xc0d20dfa, - (q31_t)0x35bc7529, (q31_t)0xc0d410ad, (q31_t)0x35b00e02, (q31_t)0xc0d615cf, - (q31_t)0x35a3a740, (q31_t)0xc0d81d61, (q31_t)0x359740e5, (q31_t)0xc0da2762, - (q31_t)0x358adaf0, (q31_t)0xc0dc33d2, (q31_t)0x357e7563, (q31_t)0xc0de42b2, - (q31_t)0x3572103d, (q31_t)0xc0e05401, (q31_t)0x3565ab80, (q31_t)0xc0e267be, - (q31_t)0x3559472b, (q31_t)0xc0e47deb, (q31_t)0x354ce33f, (q31_t)0xc0e69686, - (q31_t)0x35407fbd, (q31_t)0xc0e8b190, (q31_t)0x35341ca5, (q31_t)0xc0eacf09, - (q31_t)0x3527b9f7, (q31_t)0xc0eceef1, (q31_t)0x351b57b5, (q31_t)0xc0ef1147, - (q31_t)0x350ef5de, (q31_t)0xc0f1360b, (q31_t)0x35029473, (q31_t)0xc0f35d3e, - (q31_t)0x34f63374, (q31_t)0xc0f586df, (q31_t)0x34e9d2e3, (q31_t)0xc0f7b2ee, - (q31_t)0x34dd72be, (q31_t)0xc0f9e16b, (q31_t)0x34d11308, (q31_t)0xc0fc1257, - (q31_t)0x34c4b3c0, (q31_t)0xc0fe45b0, (q31_t)0x34b854e7, (q31_t)0xc1007b77, - (q31_t)0x34abf67e, (q31_t)0xc102b3ac, (q31_t)0x349f9884, (q31_t)0xc104ee4f, - (q31_t)0x34933afa, (q31_t)0xc1072b5f, (q31_t)0x3486dde1, (q31_t)0xc1096add, - (q31_t)0x347a8139, (q31_t)0xc10bacc8, (q31_t)0x346e2504, (q31_t)0xc10df120, - (q31_t)0x3461c940, (q31_t)0xc11037e6, (q31_t)0x34556def, (q31_t)0xc1128119, - (q31_t)0x34491311, (q31_t)0xc114ccb9, (q31_t)0x343cb8a7, (q31_t)0xc1171ac6, - (q31_t)0x34305eb0, (q31_t)0xc1196b3f, (q31_t)0x3424052f, (q31_t)0xc11bbe26, - (q31_t)0x3417ac22, (q31_t)0xc11e1379, (q31_t)0x340b538b, (q31_t)0xc1206b39, - (q31_t)0x33fefb6a, (q31_t)0xc122c566, (q31_t)0x33f2a3bf, (q31_t)0xc12521ff, - (q31_t)0x33e64c8c, (q31_t)0xc1278104, (q31_t)0x33d9f5cf, (q31_t)0xc129e276, - (q31_t)0x33cd9f8b, (q31_t)0xc12c4653, (q31_t)0x33c149bf, (q31_t)0xc12eac9d, - (q31_t)0x33b4f46c, (q31_t)0xc1311553, (q31_t)0x33a89f92, (q31_t)0xc1338075, - (q31_t)0x339c4b32, (q31_t)0xc135ee02, (q31_t)0x338ff74d, (q31_t)0xc1385dfb, - (q31_t)0x3383a3e2, (q31_t)0xc13ad060, (q31_t)0x337750f2, (q31_t)0xc13d4530, - (q31_t)0x336afe7e, (q31_t)0xc13fbc6c, (q31_t)0x335eac86, (q31_t)0xc1423613, - (q31_t)0x33525b0b, (q31_t)0xc144b225, (q31_t)0x33460a0d, (q31_t)0xc14730a3, - (q31_t)0x3339b98d, (q31_t)0xc149b18b, (q31_t)0x332d698a, (q31_t)0xc14c34df, - (q31_t)0x33211a07, (q31_t)0xc14eba9d, (q31_t)0x3314cb02, (q31_t)0xc15142c6, - (q31_t)0x33087c7d, (q31_t)0xc153cd5a, (q31_t)0x32fc2e77, (q31_t)0xc1565a58, - (q31_t)0x32efe0f2, (q31_t)0xc158e9c1, (q31_t)0x32e393ef, (q31_t)0xc15b7b94, - (q31_t)0x32d7476c, (q31_t)0xc15e0fd1, (q31_t)0x32cafb6b, (q31_t)0xc160a678, - (q31_t)0x32beafed, (q31_t)0xc1633f8a, (q31_t)0x32b264f2, (q31_t)0xc165db05, - (q31_t)0x32a61a7a, (q31_t)0xc16878eb, (q31_t)0x3299d085, (q31_t)0xc16b193a, - (q31_t)0x328d8715, (q31_t)0xc16dbbf3, (q31_t)0x32813e2a, (q31_t)0xc1706115, - (q31_t)0x3274f5c3, (q31_t)0xc17308a1, (q31_t)0x3268ade3, (q31_t)0xc175b296, - (q31_t)0x325c6688, (q31_t)0xc1785ef4, (q31_t)0x32501fb5, (q31_t)0xc17b0dbb, - (q31_t)0x3243d968, (q31_t)0xc17dbeec, (q31_t)0x323793a3, (q31_t)0xc1807285, - (q31_t)0x322b4e66, (q31_t)0xc1832888, (q31_t)0x321f09b1, (q31_t)0xc185e0f3, - (q31_t)0x3212c585, (q31_t)0xc1889bc6, (q31_t)0x320681e3, (q31_t)0xc18b5903, - (q31_t)0x31fa3ecb, (q31_t)0xc18e18a7, (q31_t)0x31edfc3d, (q31_t)0xc190dab4, - (q31_t)0x31e1ba3a, (q31_t)0xc1939f29, (q31_t)0x31d578c2, (q31_t)0xc1966606, - (q31_t)0x31c937d6, (q31_t)0xc1992f4c, (q31_t)0x31bcf777, (q31_t)0xc19bfaf9, - (q31_t)0x31b0b7a4, (q31_t)0xc19ec90d, (q31_t)0x31a4785e, (q31_t)0xc1a1998a, - (q31_t)0x319839a6, (q31_t)0xc1a46c6e, (q31_t)0x318bfb7d, (q31_t)0xc1a741b9, - (q31_t)0x317fbde2, (q31_t)0xc1aa196c, (q31_t)0x317380d6, (q31_t)0xc1acf386, - (q31_t)0x31674459, (q31_t)0xc1afd007, (q31_t)0x315b086d, (q31_t)0xc1b2aef0, - (q31_t)0x314ecd11, (q31_t)0xc1b5903f, (q31_t)0x31429247, (q31_t)0xc1b873f5, - (q31_t)0x3136580d, (q31_t)0xc1bb5a11, (q31_t)0x312a1e66, (q31_t)0xc1be4294, - (q31_t)0x311de551, (q31_t)0xc1c12d7e, (q31_t)0x3111accf, (q31_t)0xc1c41ace, - (q31_t)0x310574e0, (q31_t)0xc1c70a84, (q31_t)0x30f93d86, (q31_t)0xc1c9fca0, - (q31_t)0x30ed06bf, (q31_t)0xc1ccf122, (q31_t)0x30e0d08d, (q31_t)0xc1cfe80a, - (q31_t)0x30d49af1, (q31_t)0xc1d2e158, (q31_t)0x30c865ea, (q31_t)0xc1d5dd0c, - (q31_t)0x30bc317a, (q31_t)0xc1d8db25, (q31_t)0x30affda0, (q31_t)0xc1dbdba3, - (q31_t)0x30a3ca5d, (q31_t)0xc1dede87, (q31_t)0x309797b2, (q31_t)0xc1e1e3d0, - (q31_t)0x308b659f, (q31_t)0xc1e4eb7e, (q31_t)0x307f3424, (q31_t)0xc1e7f591, - (q31_t)0x30730342, (q31_t)0xc1eb0209, (q31_t)0x3066d2fa, (q31_t)0xc1ee10e5, - (q31_t)0x305aa34c, (q31_t)0xc1f12227, (q31_t)0x304e7438, (q31_t)0xc1f435cc, - (q31_t)0x304245c0, (q31_t)0xc1f74bd6, (q31_t)0x303617e2, (q31_t)0xc1fa6445, - (q31_t)0x3029eaa1, (q31_t)0xc1fd7f17, (q31_t)0x301dbdfb, (q31_t)0xc2009c4e, - (q31_t)0x301191f3, (q31_t)0xc203bbe8, (q31_t)0x30056687, (q31_t)0xc206dde6, - (q31_t)0x2ff93bba, (q31_t)0xc20a0248, (q31_t)0x2fed118a, (q31_t)0xc20d290d, - (q31_t)0x2fe0e7f9, (q31_t)0xc2105236, (q31_t)0x2fd4bf08, (q31_t)0xc2137dc2, - (q31_t)0x2fc896b5, (q31_t)0xc216abb1, (q31_t)0x2fbc6f03, (q31_t)0xc219dc03, - (q31_t)0x2fb047f2, (q31_t)0xc21d0eb8, (q31_t)0x2fa42181, (q31_t)0xc22043d0, - (q31_t)0x2f97fbb2, (q31_t)0xc2237b4b, (q31_t)0x2f8bd685, (q31_t)0xc226b528, - (q31_t)0x2f7fb1fa, (q31_t)0xc229f167, (q31_t)0x2f738e12, (q31_t)0xc22d3009, - (q31_t)0x2f676ace, (q31_t)0xc230710d, (q31_t)0x2f5b482d, (q31_t)0xc233b473, - (q31_t)0x2f4f2630, (q31_t)0xc236fa3b, (q31_t)0x2f4304d8, (q31_t)0xc23a4265, - (q31_t)0x2f36e426, (q31_t)0xc23d8cf1, (q31_t)0x2f2ac419, (q31_t)0xc240d9de, - (q31_t)0x2f1ea4b2, (q31_t)0xc244292c, (q31_t)0x2f1285f2, (q31_t)0xc2477adc, - (q31_t)0x2f0667d9, (q31_t)0xc24aceed, (q31_t)0x2efa4a67, (q31_t)0xc24e255e, - (q31_t)0x2eee2d9d, (q31_t)0xc2517e31, (q31_t)0x2ee2117c, (q31_t)0xc254d965, - (q31_t)0x2ed5f604, (q31_t)0xc25836f9, (q31_t)0x2ec9db35, (q31_t)0xc25b96ee, - (q31_t)0x2ebdc110, (q31_t)0xc25ef943, (q31_t)0x2eb1a796, (q31_t)0xc2625df8, - (q31_t)0x2ea58ec6, (q31_t)0xc265c50e, (q31_t)0x2e9976a1, (q31_t)0xc2692e83, - (q31_t)0x2e8d5f29, (q31_t)0xc26c9a58, (q31_t)0x2e81485c, (q31_t)0xc270088e, - (q31_t)0x2e75323c, (q31_t)0xc2737922, (q31_t)0x2e691cc9, (q31_t)0xc276ec16, - (q31_t)0x2e5d0804, (q31_t)0xc27a616a, (q31_t)0x2e50f3ed, (q31_t)0xc27dd91c, - (q31_t)0x2e44e084, (q31_t)0xc281532e, (q31_t)0x2e38cdcb, (q31_t)0xc284cf9f, - (q31_t)0x2e2cbbc1, (q31_t)0xc2884e6e, (q31_t)0x2e20aa67, (q31_t)0xc28bcf9c, - (q31_t)0x2e1499bd, (q31_t)0xc28f5329, (q31_t)0x2e0889c4, (q31_t)0xc292d914, - (q31_t)0x2dfc7a7c, (q31_t)0xc296615d, (q31_t)0x2df06be6, (q31_t)0xc299ec05, - (q31_t)0x2de45e03, (q31_t)0xc29d790a, (q31_t)0x2dd850d2, (q31_t)0xc2a1086d, - (q31_t)0x2dcc4454, (q31_t)0xc2a49a2e, (q31_t)0x2dc0388a, (q31_t)0xc2a82e4d, - (q31_t)0x2db42d74, (q31_t)0xc2abc4c9, (q31_t)0x2da82313, (q31_t)0xc2af5da2, - (q31_t)0x2d9c1967, (q31_t)0xc2b2f8d8, (q31_t)0x2d901070, (q31_t)0xc2b6966c, - (q31_t)0x2d84082f, (q31_t)0xc2ba365c, (q31_t)0x2d7800a5, (q31_t)0xc2bdd8a9, - (q31_t)0x2d6bf9d1, (q31_t)0xc2c17d52, (q31_t)0x2d5ff3b5, (q31_t)0xc2c52459, - (q31_t)0x2d53ee51, (q31_t)0xc2c8cdbb, (q31_t)0x2d47e9a5, (q31_t)0xc2cc7979, - (q31_t)0x2d3be5b1, (q31_t)0xc2d02794, (q31_t)0x2d2fe277, (q31_t)0xc2d3d80a, - (q31_t)0x2d23dff7, (q31_t)0xc2d78add, (q31_t)0x2d17de31, (q31_t)0xc2db400a, - (q31_t)0x2d0bdd25, (q31_t)0xc2def794, (q31_t)0x2cffdcd4, (q31_t)0xc2e2b178, - (q31_t)0x2cf3dd3f, (q31_t)0xc2e66db8, (q31_t)0x2ce7de66, (q31_t)0xc2ea2c53, - (q31_t)0x2cdbe04a, (q31_t)0xc2eded49, (q31_t)0x2ccfe2ea, (q31_t)0xc2f1b099, - (q31_t)0x2cc3e648, (q31_t)0xc2f57644, (q31_t)0x2cb7ea63, (q31_t)0xc2f93e4a, - (q31_t)0x2cabef3d, (q31_t)0xc2fd08a9, (q31_t)0x2c9ff4d6, (q31_t)0xc300d563, - (q31_t)0x2c93fb2e, (q31_t)0xc304a477, (q31_t)0x2c880245, (q31_t)0xc30875e5, - (q31_t)0x2c7c0a1d, (q31_t)0xc30c49ad, (q31_t)0x2c7012b5, (q31_t)0xc3101fce, - (q31_t)0x2c641c0e, (q31_t)0xc313f848, (q31_t)0x2c582629, (q31_t)0xc317d31c, - (q31_t)0x2c4c3106, (q31_t)0xc31bb049, (q31_t)0x2c403ca5, (q31_t)0xc31f8fcf, - (q31_t)0x2c344908, (q31_t)0xc32371ae, (q31_t)0x2c28562d, (q31_t)0xc32755e5, - (q31_t)0x2c1c6417, (q31_t)0xc32b3c75, (q31_t)0x2c1072c4, (q31_t)0xc32f255e, - (q31_t)0x2c048237, (q31_t)0xc333109e, (q31_t)0x2bf8926f, (q31_t)0xc336fe37, - (q31_t)0x2beca36c, (q31_t)0xc33aee27, (q31_t)0x2be0b52f, (q31_t)0xc33ee070, - (q31_t)0x2bd4c7ba, (q31_t)0xc342d510, (q31_t)0x2bc8db0b, (q31_t)0xc346cc07, - (q31_t)0x2bbcef23, (q31_t)0xc34ac556, (q31_t)0x2bb10404, (q31_t)0xc34ec0fc, - (q31_t)0x2ba519ad, (q31_t)0xc352bef9, (q31_t)0x2b99301f, (q31_t)0xc356bf4d, - (q31_t)0x2b8d475b, (q31_t)0xc35ac1f7, (q31_t)0x2b815f60, (q31_t)0xc35ec6f8, - (q31_t)0x2b75782f, (q31_t)0xc362ce50, (q31_t)0x2b6991ca, (q31_t)0xc366d7fd, - (q31_t)0x2b5dac2f, (q31_t)0xc36ae401, (q31_t)0x2b51c760, (q31_t)0xc36ef25b, - (q31_t)0x2b45e35d, (q31_t)0xc373030a, (q31_t)0x2b3a0027, (q31_t)0xc377160f, - (q31_t)0x2b2e1dbe, (q31_t)0xc37b2b6a, (q31_t)0x2b223c22, (q31_t)0xc37f4319, - (q31_t)0x2b165b54, (q31_t)0xc3835d1e, (q31_t)0x2b0a7b54, (q31_t)0xc3877978, - (q31_t)0x2afe9c24, (q31_t)0xc38b9827, (q31_t)0x2af2bdc3, (q31_t)0xc38fb92a, - (q31_t)0x2ae6e031, (q31_t)0xc393dc82, (q31_t)0x2adb0370, (q31_t)0xc398022f, - (q31_t)0x2acf277f, (q31_t)0xc39c2a2f, (q31_t)0x2ac34c60, (q31_t)0xc3a05484, - (q31_t)0x2ab77212, (q31_t)0xc3a4812c, (q31_t)0x2aab9896, (q31_t)0xc3a8b028, - (q31_t)0x2a9fbfed, (q31_t)0xc3ace178, (q31_t)0x2a93e817, (q31_t)0xc3b1151b, - (q31_t)0x2a881114, (q31_t)0xc3b54b11, (q31_t)0x2a7c3ae5, (q31_t)0xc3b9835a, - (q31_t)0x2a70658a, (q31_t)0xc3bdbdf6, (q31_t)0x2a649105, (q31_t)0xc3c1fae5, - (q31_t)0x2a58bd54, (q31_t)0xc3c63a26, (q31_t)0x2a4cea79, (q31_t)0xc3ca7bba, - (q31_t)0x2a411874, (q31_t)0xc3cebfa0, (q31_t)0x2a354746, (q31_t)0xc3d305d8, - (q31_t)0x2a2976ef, (q31_t)0xc3d74e62, (q31_t)0x2a1da770, (q31_t)0xc3db993e, - (q31_t)0x2a11d8c8, (q31_t)0xc3dfe66c, (q31_t)0x2a060af9, (q31_t)0xc3e435ea, - (q31_t)0x29fa3e03, (q31_t)0xc3e887bb, (q31_t)0x29ee71e6, (q31_t)0xc3ecdbdc, - (q31_t)0x29e2a6a3, (q31_t)0xc3f1324e, (q31_t)0x29d6dc3b, (q31_t)0xc3f58b10, - (q31_t)0x29cb12ad, (q31_t)0xc3f9e624, (q31_t)0x29bf49fa, (q31_t)0xc3fe4388, - (q31_t)0x29b38223, (q31_t)0xc402a33c, (q31_t)0x29a7bb28, (q31_t)0xc4070540, - (q31_t)0x299bf509, (q31_t)0xc40b6994, (q31_t)0x29902fc7, (q31_t)0xc40fd037, - (q31_t)0x29846b63, (q31_t)0xc414392b, (q31_t)0x2978a7dd, (q31_t)0xc418a46d, - (q31_t)0x296ce535, (q31_t)0xc41d11ff, (q31_t)0x2961236c, (q31_t)0xc42181e0, - (q31_t)0x29556282, (q31_t)0xc425f410, (q31_t)0x2949a278, (q31_t)0xc42a688f, - (q31_t)0x293de34e, (q31_t)0xc42edf5c, (q31_t)0x29322505, (q31_t)0xc4335877, - (q31_t)0x2926679c, (q31_t)0xc437d3e1, (q31_t)0x291aab16, (q31_t)0xc43c5199, - (q31_t)0x290eef71, (q31_t)0xc440d19e, (q31_t)0x290334af, (q31_t)0xc44553f2, - (q31_t)0x28f77acf, (q31_t)0xc449d892, (q31_t)0x28ebc1d3, (q31_t)0xc44e5f80, - (q31_t)0x28e009ba, (q31_t)0xc452e8bc, (q31_t)0x28d45286, (q31_t)0xc4577444, - (q31_t)0x28c89c37, (q31_t)0xc45c0219, (q31_t)0x28bce6cd, (q31_t)0xc460923b, - (q31_t)0x28b13248, (q31_t)0xc46524a9, (q31_t)0x28a57ea9, (q31_t)0xc469b963, - (q31_t)0x2899cbf1, (q31_t)0xc46e5069, (q31_t)0x288e1a20, (q31_t)0xc472e9bc, - (q31_t)0x28826936, (q31_t)0xc477855a, (q31_t)0x2876b934, (q31_t)0xc47c2344, - (q31_t)0x286b0a1a, (q31_t)0xc480c379, (q31_t)0x285f5be9, (q31_t)0xc48565f9, - (q31_t)0x2853aea1, (q31_t)0xc48a0ac4, (q31_t)0x28480243, (q31_t)0xc48eb1db, - (q31_t)0x283c56cf, (q31_t)0xc4935b3c, (q31_t)0x2830ac45, (q31_t)0xc49806e7, - (q31_t)0x282502a7, (q31_t)0xc49cb4dd, (q31_t)0x281959f4, (q31_t)0xc4a1651c, - (q31_t)0x280db22d, (q31_t)0xc4a617a6, (q31_t)0x28020b52, (q31_t)0xc4aacc7a, - (q31_t)0x27f66564, (q31_t)0xc4af8397, (q31_t)0x27eac063, (q31_t)0xc4b43cfd, - (q31_t)0x27df1c50, (q31_t)0xc4b8f8ad, (q31_t)0x27d3792b, (q31_t)0xc4bdb6a6, - (q31_t)0x27c7d6f4, (q31_t)0xc4c276e8, (q31_t)0x27bc35ad, (q31_t)0xc4c73972, - (q31_t)0x27b09555, (q31_t)0xc4cbfe45, (q31_t)0x27a4f5ed, (q31_t)0xc4d0c560, - (q31_t)0x27995776, (q31_t)0xc4d58ec3, (q31_t)0x278db9ef, (q31_t)0xc4da5a6f, - (q31_t)0x27821d59, (q31_t)0xc4df2862, (q31_t)0x277681b6, (q31_t)0xc4e3f89c, - (q31_t)0x276ae704, (q31_t)0xc4e8cb1e, (q31_t)0x275f4d45, (q31_t)0xc4ed9fe7, - (q31_t)0x2753b479, (q31_t)0xc4f276f7, (q31_t)0x27481ca1, (q31_t)0xc4f7504e, - (q31_t)0x273c85bc, (q31_t)0xc4fc2bec, (q31_t)0x2730efcc, (q31_t)0xc50109d0, - (q31_t)0x27255ad1, (q31_t)0xc505e9fb, (q31_t)0x2719c6cb, (q31_t)0xc50acc6b, - (q31_t)0x270e33bb, (q31_t)0xc50fb121, (q31_t)0x2702a1a1, (q31_t)0xc514981d, - (q31_t)0x26f7107e, (q31_t)0xc519815f, (q31_t)0x26eb8052, (q31_t)0xc51e6ce6, - (q31_t)0x26dff11d, (q31_t)0xc5235ab2, (q31_t)0x26d462e1, (q31_t)0xc5284ac3, - (q31_t)0x26c8d59c, (q31_t)0xc52d3d18, (q31_t)0x26bd4951, (q31_t)0xc53231b3, - (q31_t)0x26b1bdff, (q31_t)0xc5372891, (q31_t)0x26a633a6, (q31_t)0xc53c21b4, - (q31_t)0x269aaa48, (q31_t)0xc5411d1b, (q31_t)0x268f21e5, (q31_t)0xc5461ac6, - (q31_t)0x26839a7c, (q31_t)0xc54b1ab4, (q31_t)0x26781410, (q31_t)0xc5501ce5, - (q31_t)0x266c8e9f, (q31_t)0xc555215a, (q31_t)0x26610a2a, (q31_t)0xc55a2812, - (q31_t)0x265586b3, (q31_t)0xc55f310d, (q31_t)0x264a0438, (q31_t)0xc5643c4a, - (q31_t)0x263e82bc, (q31_t)0xc56949ca, (q31_t)0x2633023e, (q31_t)0xc56e598c, - (q31_t)0x262782be, (q31_t)0xc5736b90, (q31_t)0x261c043d, (q31_t)0xc5787fd6, - (q31_t)0x261086bc, (q31_t)0xc57d965d, (q31_t)0x26050a3b, (q31_t)0xc582af26, - (q31_t)0x25f98ebb, (q31_t)0xc587ca31, (q31_t)0x25ee143b, (q31_t)0xc58ce77c, - (q31_t)0x25e29abc, (q31_t)0xc5920708, (q31_t)0x25d72240, (q31_t)0xc59728d5, - (q31_t)0x25cbaac5, (q31_t)0xc59c4ce3, (q31_t)0x25c0344d, (q31_t)0xc5a17330, - (q31_t)0x25b4bed8, (q31_t)0xc5a69bbe, (q31_t)0x25a94a67, (q31_t)0xc5abc68c, - (q31_t)0x259dd6f9, (q31_t)0xc5b0f399, (q31_t)0x25926490, (q31_t)0xc5b622e6, - (q31_t)0x2586f32c, (q31_t)0xc5bb5472, (q31_t)0x257b82cd, (q31_t)0xc5c0883d, - (q31_t)0x25701374, (q31_t)0xc5c5be47, (q31_t)0x2564a521, (q31_t)0xc5caf690, - (q31_t)0x255937d5, (q31_t)0xc5d03118, (q31_t)0x254dcb8f, (q31_t)0xc5d56ddd, - (q31_t)0x25426051, (q31_t)0xc5daace1, (q31_t)0x2536f61b, (q31_t)0xc5dfee22, - (q31_t)0x252b8cee, (q31_t)0xc5e531a1, (q31_t)0x252024c9, (q31_t)0xc5ea775e, - (q31_t)0x2514bdad, (q31_t)0xc5efbf58, (q31_t)0x2509579b, (q31_t)0xc5f5098f, - (q31_t)0x24fdf294, (q31_t)0xc5fa5603, (q31_t)0x24f28e96, (q31_t)0xc5ffa4b3, - (q31_t)0x24e72ba4, (q31_t)0xc604f5a0, (q31_t)0x24dbc9bd, (q31_t)0xc60a48c9, - (q31_t)0x24d068e2, (q31_t)0xc60f9e2e, (q31_t)0x24c50914, (q31_t)0xc614f5cf, - (q31_t)0x24b9aa52, (q31_t)0xc61a4fac, (q31_t)0x24ae4c9d, (q31_t)0xc61fabc4, - (q31_t)0x24a2eff6, (q31_t)0xc6250a18, (q31_t)0x2497945d, (q31_t)0xc62a6aa6, - (q31_t)0x248c39d3, (q31_t)0xc62fcd6f, (q31_t)0x2480e057, (q31_t)0xc6353273, - (q31_t)0x247587eb, (q31_t)0xc63a99b1, (q31_t)0x246a308f, (q31_t)0xc6400329, - (q31_t)0x245eda43, (q31_t)0xc6456edb, (q31_t)0x24538507, (q31_t)0xc64adcc7, - (q31_t)0x244830dd, (q31_t)0xc6504ced, (q31_t)0x243cddc4, (q31_t)0xc655bf4c, - (q31_t)0x24318bbe, (q31_t)0xc65b33e4, (q31_t)0x24263ac9, (q31_t)0xc660aab5, - (q31_t)0x241aeae8, (q31_t)0xc66623be, (q31_t)0x240f9c1a, (q31_t)0xc66b9f01, - (q31_t)0x24044e60, (q31_t)0xc6711c7b, (q31_t)0x23f901ba, (q31_t)0xc6769c2e, - (q31_t)0x23edb628, (q31_t)0xc67c1e18, (q31_t)0x23e26bac, (q31_t)0xc681a23a, - (q31_t)0x23d72245, (q31_t)0xc6872894, (q31_t)0x23cbd9f4, (q31_t)0xc68cb124, - (q31_t)0x23c092b9, (q31_t)0xc6923bec, (q31_t)0x23b54c95, (q31_t)0xc697c8eb, - (q31_t)0x23aa0788, (q31_t)0xc69d5820, (q31_t)0x239ec393, (q31_t)0xc6a2e98b, - (q31_t)0x239380b6, (q31_t)0xc6a87d2d, (q31_t)0x23883ef2, (q31_t)0xc6ae1304, - (q31_t)0x237cfe47, (q31_t)0xc6b3ab12, (q31_t)0x2371beb5, (q31_t)0xc6b94554, - (q31_t)0x2366803c, (q31_t)0xc6bee1cd, (q31_t)0x235b42df, (q31_t)0xc6c4807a, - (q31_t)0x2350069b, (q31_t)0xc6ca215c, (q31_t)0x2344cb73, (q31_t)0xc6cfc472, - (q31_t)0x23399167, (q31_t)0xc6d569be, (q31_t)0x232e5876, (q31_t)0xc6db113d, - (q31_t)0x232320a2, (q31_t)0xc6e0baf0, (q31_t)0x2317e9eb, (q31_t)0xc6e666d7, - (q31_t)0x230cb451, (q31_t)0xc6ec14f2, (q31_t)0x23017fd5, (q31_t)0xc6f1c540, - (q31_t)0x22f64c77, (q31_t)0xc6f777c1, (q31_t)0x22eb1a37, (q31_t)0xc6fd2c75, - (q31_t)0x22dfe917, (q31_t)0xc702e35c, (q31_t)0x22d4b916, (q31_t)0xc7089c75, - (q31_t)0x22c98a35, (q31_t)0xc70e57c0, (q31_t)0x22be5c74, (q31_t)0xc714153e, - (q31_t)0x22b32fd4, (q31_t)0xc719d4ed, (q31_t)0x22a80456, (q31_t)0xc71f96ce, - (q31_t)0x229cd9f8, (q31_t)0xc7255ae0, (q31_t)0x2291b0bd, (q31_t)0xc72b2123, - (q31_t)0x228688a4, (q31_t)0xc730e997, (q31_t)0x227b61af, (q31_t)0xc736b43c, - (q31_t)0x22703bdc, (q31_t)0xc73c8111, (q31_t)0x2265172e, (q31_t)0xc7425016, - (q31_t)0x2259f3a3, (q31_t)0xc748214c, (q31_t)0x224ed13d, (q31_t)0xc74df4b1, - (q31_t)0x2243affc, (q31_t)0xc753ca46, (q31_t)0x22388fe1, (q31_t)0xc759a20a, - (q31_t)0x222d70eb, (q31_t)0xc75f7bfe, (q31_t)0x2222531c, (q31_t)0xc7655820, - (q31_t)0x22173674, (q31_t)0xc76b3671, (q31_t)0x220c1af3, (q31_t)0xc77116f0, - (q31_t)0x22010099, (q31_t)0xc776f99d, (q31_t)0x21f5e768, (q31_t)0xc77cde79, - (q31_t)0x21eacf5f, (q31_t)0xc782c582, (q31_t)0x21dfb87f, (q31_t)0xc788aeb9, - (q31_t)0x21d4a2c8, (q31_t)0xc78e9a1d, (q31_t)0x21c98e3b, (q31_t)0xc79487ae, - (q31_t)0x21be7ad8, (q31_t)0xc79a776c, (q31_t)0x21b368a0, (q31_t)0xc7a06957, - (q31_t)0x21a85793, (q31_t)0xc7a65d6e, (q31_t)0x219d47b1, (q31_t)0xc7ac53b1, - (q31_t)0x219238fb, (q31_t)0xc7b24c20, (q31_t)0x21872b72, (q31_t)0xc7b846ba, - (q31_t)0x217c1f15, (q31_t)0xc7be4381, (q31_t)0x217113e5, (q31_t)0xc7c44272, - (q31_t)0x216609e3, (q31_t)0xc7ca438f, (q31_t)0x215b0110, (q31_t)0xc7d046d6, - (q31_t)0x214ff96a, (q31_t)0xc7d64c47, (q31_t)0x2144f2f3, (q31_t)0xc7dc53e3, - (q31_t)0x2139edac, (q31_t)0xc7e25daa, (q31_t)0x212ee995, (q31_t)0xc7e8699a, - (q31_t)0x2123e6ad, (q31_t)0xc7ee77b3, (q31_t)0x2118e4f6, (q31_t)0xc7f487f6, - (q31_t)0x210de470, (q31_t)0xc7fa9a62, (q31_t)0x2102e51c, (q31_t)0xc800aef7, - (q31_t)0x20f7e6f9, (q31_t)0xc806c5b5, (q31_t)0x20ecea09, (q31_t)0xc80cde9b, - (q31_t)0x20e1ee4b, (q31_t)0xc812f9a9, (q31_t)0x20d6f3c1, (q31_t)0xc81916df, - (q31_t)0x20cbfa6a, (q31_t)0xc81f363d, (q31_t)0x20c10247, (q31_t)0xc82557c3, - (q31_t)0x20b60b58, (q31_t)0xc82b7b70, (q31_t)0x20ab159e, (q31_t)0xc831a143, - (q31_t)0x20a0211a, (q31_t)0xc837c93e, (q31_t)0x20952dcb, (q31_t)0xc83df35f, - (q31_t)0x208a3bb2, (q31_t)0xc8441fa6, (q31_t)0x207f4acf, (q31_t)0xc84a4e14, - (q31_t)0x20745b24, (q31_t)0xc8507ea7, (q31_t)0x20696cb0, (q31_t)0xc856b160, - (q31_t)0x205e7f74, (q31_t)0xc85ce63e, (q31_t)0x2053936f, (q31_t)0xc8631d42, - (q31_t)0x2048a8a4, (q31_t)0xc869566a, (q31_t)0x203dbf11, (q31_t)0xc86f91b7, - (q31_t)0x2032d6b8, (q31_t)0xc875cf28, (q31_t)0x2027ef99, (q31_t)0xc87c0ebd, - (q31_t)0x201d09b4, (q31_t)0xc8825077, (q31_t)0x2012250a, (q31_t)0xc8889454, - (q31_t)0x2007419b, (q31_t)0xc88eda54, (q31_t)0x1ffc5f67, (q31_t)0xc8952278, - (q31_t)0x1ff17e70, (q31_t)0xc89b6cbf, (q31_t)0x1fe69eb4, (q31_t)0xc8a1b928, - (q31_t)0x1fdbc036, (q31_t)0xc8a807b4, (q31_t)0x1fd0e2f5, (q31_t)0xc8ae5862, - (q31_t)0x1fc606f1, (q31_t)0xc8b4ab32, (q31_t)0x1fbb2c2c, (q31_t)0xc8bb0023, - (q31_t)0x1fb052a5, (q31_t)0xc8c15736, (q31_t)0x1fa57a5d, (q31_t)0xc8c7b06b, - (q31_t)0x1f9aa354, (q31_t)0xc8ce0bc0, (q31_t)0x1f8fcd8b, (q31_t)0xc8d46936, - (q31_t)0x1f84f902, (q31_t)0xc8dac8cd, (q31_t)0x1f7a25ba, (q31_t)0xc8e12a84, - (q31_t)0x1f6f53b3, (q31_t)0xc8e78e5b, (q31_t)0x1f6482ed, (q31_t)0xc8edf452, - (q31_t)0x1f59b369, (q31_t)0xc8f45c68, (q31_t)0x1f4ee527, (q31_t)0xc8fac69e, - (q31_t)0x1f441828, (q31_t)0xc90132f2, (q31_t)0x1f394c6b, (q31_t)0xc907a166, - (q31_t)0x1f2e81f3, (q31_t)0xc90e11f7, (q31_t)0x1f23b8be, (q31_t)0xc91484a8, - (q31_t)0x1f18f0ce, (q31_t)0xc91af976, (q31_t)0x1f0e2a22, (q31_t)0xc9217062, - (q31_t)0x1f0364bc, (q31_t)0xc927e96b, (q31_t)0x1ef8a09b, (q31_t)0xc92e6492, - (q31_t)0x1eedddc0, (q31_t)0xc934e1d6, (q31_t)0x1ee31c2b, (q31_t)0xc93b6137, - (q31_t)0x1ed85bdd, (q31_t)0xc941e2b4, (q31_t)0x1ecd9cd7, (q31_t)0xc948664d, - (q31_t)0x1ec2df18, (q31_t)0xc94eec03, (q31_t)0x1eb822a1, (q31_t)0xc95573d4, - (q31_t)0x1ead6773, (q31_t)0xc95bfdc1, (q31_t)0x1ea2ad8d, (q31_t)0xc96289c9, - (q31_t)0x1e97f4f1, (q31_t)0xc96917ec, (q31_t)0x1e8d3d9e, (q31_t)0xc96fa82a, - (q31_t)0x1e828796, (q31_t)0xc9763a83, (q31_t)0x1e77d2d8, (q31_t)0xc97ccef5, - (q31_t)0x1e6d1f65, (q31_t)0xc9836582, (q31_t)0x1e626d3e, (q31_t)0xc989fe29, - (q31_t)0x1e57bc62, (q31_t)0xc99098e9, (q31_t)0x1e4d0cd2, (q31_t)0xc99735c2, - (q31_t)0x1e425e8f, (q31_t)0xc99dd4b4, (q31_t)0x1e37b199, (q31_t)0xc9a475bf, - (q31_t)0x1e2d05f1, (q31_t)0xc9ab18e3, (q31_t)0x1e225b96, (q31_t)0xc9b1be1e, - (q31_t)0x1e17b28a, (q31_t)0xc9b86572, (q31_t)0x1e0d0acc, (q31_t)0xc9bf0edd, - (q31_t)0x1e02645d, (q31_t)0xc9c5ba60, (q31_t)0x1df7bf3e, (q31_t)0xc9cc67fa, - (q31_t)0x1ded1b6e, (q31_t)0xc9d317ab, (q31_t)0x1de278ef, (q31_t)0xc9d9c973, - (q31_t)0x1dd7d7c1, (q31_t)0xc9e07d51, (q31_t)0x1dcd37e4, (q31_t)0xc9e73346, - (q31_t)0x1dc29958, (q31_t)0xc9edeb50, (q31_t)0x1db7fc1e, (q31_t)0xc9f4a570, - (q31_t)0x1dad6036, (q31_t)0xc9fb61a5, (q31_t)0x1da2c5a2, (q31_t)0xca021fef, - (q31_t)0x1d982c60, (q31_t)0xca08e04f, (q31_t)0x1d8d9472, (q31_t)0xca0fa2c3, - (q31_t)0x1d82fdd8, (q31_t)0xca16674b, (q31_t)0x1d786892, (q31_t)0xca1d2de7, - (q31_t)0x1d6dd4a2, (q31_t)0xca23f698, (q31_t)0x1d634206, (q31_t)0xca2ac15b, - (q31_t)0x1d58b0c0, (q31_t)0xca318e32, (q31_t)0x1d4e20d0, (q31_t)0xca385d1d, - (q31_t)0x1d439236, (q31_t)0xca3f2e19, (q31_t)0x1d3904f4, (q31_t)0xca460129, - (q31_t)0x1d2e7908, (q31_t)0xca4cd64b, (q31_t)0x1d23ee74, (q31_t)0xca53ad7e, - (q31_t)0x1d196538, (q31_t)0xca5a86c4, (q31_t)0x1d0edd55, (q31_t)0xca61621b, - (q31_t)0x1d0456ca, (q31_t)0xca683f83, (q31_t)0x1cf9d199, (q31_t)0xca6f1efc, - (q31_t)0x1cef4dc2, (q31_t)0xca760086, (q31_t)0x1ce4cb44, (q31_t)0xca7ce420, - (q31_t)0x1cda4a21, (q31_t)0xca83c9ca, (q31_t)0x1ccfca59, (q31_t)0xca8ab184, - (q31_t)0x1cc54bec, (q31_t)0xca919b4e, (q31_t)0x1cbacedb, (q31_t)0xca988727, - (q31_t)0x1cb05326, (q31_t)0xca9f750f, (q31_t)0x1ca5d8cd, (q31_t)0xcaa66506, - (q31_t)0x1c9b5fd2, (q31_t)0xcaad570c, (q31_t)0x1c90e834, (q31_t)0xcab44b1f, - (q31_t)0x1c8671f3, (q31_t)0xcabb4141, (q31_t)0x1c7bfd11, (q31_t)0xcac23971, - (q31_t)0x1c71898d, (q31_t)0xcac933ae, (q31_t)0x1c671768, (q31_t)0xcad02ff8, - (q31_t)0x1c5ca6a2, (q31_t)0xcad72e4f, (q31_t)0x1c52373c, (q31_t)0xcade2eb3, - (q31_t)0x1c47c936, (q31_t)0xcae53123, (q31_t)0x1c3d5c91, (q31_t)0xcaec35a0, - (q31_t)0x1c32f14d, (q31_t)0xcaf33c28, (q31_t)0x1c28876a, (q31_t)0xcafa44bc, - (q31_t)0x1c1e1ee9, (q31_t)0xcb014f5b, (q31_t)0x1c13b7c9, (q31_t)0xcb085c05, - (q31_t)0x1c09520d, (q31_t)0xcb0f6aba, (q31_t)0x1bfeedb3, (q31_t)0xcb167b79, - (q31_t)0x1bf48abd, (q31_t)0xcb1d8e43, (q31_t)0x1bea292b, (q31_t)0xcb24a316, - (q31_t)0x1bdfc8fc, (q31_t)0xcb2bb9f4, (q31_t)0x1bd56a32, (q31_t)0xcb32d2da, - (q31_t)0x1bcb0cce, (q31_t)0xcb39edca, (q31_t)0x1bc0b0ce, (q31_t)0xcb410ac3, - (q31_t)0x1bb65634, (q31_t)0xcb4829c4, (q31_t)0x1babfd01, (q31_t)0xcb4f4acd, - (q31_t)0x1ba1a534, (q31_t)0xcb566ddf, (q31_t)0x1b974ece, (q31_t)0xcb5d92f8, - (q31_t)0x1b8cf9cf, (q31_t)0xcb64ba19, (q31_t)0x1b82a638, (q31_t)0xcb6be341, - (q31_t)0x1b785409, (q31_t)0xcb730e70, (q31_t)0x1b6e0342, (q31_t)0xcb7a3ba5, - (q31_t)0x1b63b3e5, (q31_t)0xcb816ae1, (q31_t)0x1b5965f1, (q31_t)0xcb889c23, - (q31_t)0x1b4f1967, (q31_t)0xcb8fcf6b, (q31_t)0x1b44ce46, (q31_t)0xcb9704b9, - (q31_t)0x1b3a8491, (q31_t)0xcb9e3c0b, (q31_t)0x1b303c46, (q31_t)0xcba57563, - (q31_t)0x1b25f566, (q31_t)0xcbacb0bf, (q31_t)0x1b1baff2, (q31_t)0xcbb3ee20, - (q31_t)0x1b116beb, (q31_t)0xcbbb2d85, (q31_t)0x1b072950, (q31_t)0xcbc26eee, - (q31_t)0x1afce821, (q31_t)0xcbc9b25a, (q31_t)0x1af2a860, (q31_t)0xcbd0f7ca, - (q31_t)0x1ae86a0d, (q31_t)0xcbd83f3d, (q31_t)0x1ade2d28, (q31_t)0xcbdf88b3, - (q31_t)0x1ad3f1b1, (q31_t)0xcbe6d42b, (q31_t)0x1ac9b7a9, (q31_t)0xcbee21a5, - (q31_t)0x1abf7f11, (q31_t)0xcbf57121, (q31_t)0x1ab547e8, (q31_t)0xcbfcc29f, - (q31_t)0x1aab122f, (q31_t)0xcc04161e, (q31_t)0x1aa0dde7, (q31_t)0xcc0b6b9e, - (q31_t)0x1a96ab0f, (q31_t)0xcc12c31f, (q31_t)0x1a8c79a9, (q31_t)0xcc1a1ca0, - (q31_t)0x1a8249b4, (q31_t)0xcc217822, (q31_t)0x1a781b31, (q31_t)0xcc28d5a3, - (q31_t)0x1a6dee21, (q31_t)0xcc303524, (q31_t)0x1a63c284, (q31_t)0xcc3796a5, - (q31_t)0x1a599859, (q31_t)0xcc3efa25, (q31_t)0x1a4f6fa3, (q31_t)0xcc465fa3, - (q31_t)0x1a454860, (q31_t)0xcc4dc720, (q31_t)0x1a3b2292, (q31_t)0xcc55309b, - (q31_t)0x1a30fe38, (q31_t)0xcc5c9c14, (q31_t)0x1a26db54, (q31_t)0xcc64098b, - (q31_t)0x1a1cb9e5, (q31_t)0xcc6b78ff, (q31_t)0x1a1299ec, (q31_t)0xcc72ea70, - (q31_t)0x1a087b69, (q31_t)0xcc7a5dde, (q31_t)0x19fe5e5e, (q31_t)0xcc81d349, - (q31_t)0x19f442c9, (q31_t)0xcc894aaf, (q31_t)0x19ea28ac, (q31_t)0xcc90c412, - (q31_t)0x19e01006, (q31_t)0xcc983f70, (q31_t)0x19d5f8d9, (q31_t)0xcc9fbcca, - (q31_t)0x19cbe325, (q31_t)0xcca73c1e, (q31_t)0x19c1cee9, (q31_t)0xccaebd6e, - (q31_t)0x19b7bc27, (q31_t)0xccb640b8, (q31_t)0x19adaadf, (q31_t)0xccbdc5fc, - (q31_t)0x19a39b11, (q31_t)0xccc54d3a, (q31_t)0x19998cbe, (q31_t)0xccccd671, - (q31_t)0x198f7fe6, (q31_t)0xccd461a2, (q31_t)0x19857489, (q31_t)0xccdbeecc, - (q31_t)0x197b6aa8, (q31_t)0xcce37def, (q31_t)0x19716243, (q31_t)0xcceb0f0a, - (q31_t)0x19675b5a, (q31_t)0xccf2a21d, (q31_t)0x195d55ef, (q31_t)0xccfa3729, - (q31_t)0x19535201, (q31_t)0xcd01ce2b, (q31_t)0x19494f90, (q31_t)0xcd096725, - (q31_t)0x193f4e9e, (q31_t)0xcd110216, (q31_t)0x19354f2a, (q31_t)0xcd189efe, - (q31_t)0x192b5135, (q31_t)0xcd203ddc, (q31_t)0x192154bf, (q31_t)0xcd27deb0, - (q31_t)0x191759c9, (q31_t)0xcd2f817b, (q31_t)0x190d6053, (q31_t)0xcd37263a, - (q31_t)0x1903685d, (q31_t)0xcd3eccef, (q31_t)0x18f971e8, (q31_t)0xcd467599, - (q31_t)0x18ef7cf4, (q31_t)0xcd4e2037, (q31_t)0x18e58982, (q31_t)0xcd55ccca, - (q31_t)0x18db9792, (q31_t)0xcd5d7b50, (q31_t)0x18d1a724, (q31_t)0xcd652bcb, - (q31_t)0x18c7b838, (q31_t)0xcd6cde39, (q31_t)0x18bdcad0, (q31_t)0xcd74929a, - (q31_t)0x18b3deeb, (q31_t)0xcd7c48ee, (q31_t)0x18a9f48a, (q31_t)0xcd840134, - (q31_t)0x18a00bae, (q31_t)0xcd8bbb6d, (q31_t)0x18962456, (q31_t)0xcd937798, - (q31_t)0x188c3e83, (q31_t)0xcd9b35b4, (q31_t)0x18825a35, (q31_t)0xcda2f5c2, - (q31_t)0x1878776d, (q31_t)0xcdaab7c0, (q31_t)0x186e962b, (q31_t)0xcdb27bb0, - (q31_t)0x1864b670, (q31_t)0xcdba4190, (q31_t)0x185ad83c, (q31_t)0xcdc20960, - (q31_t)0x1850fb8e, (q31_t)0xcdc9d320, (q31_t)0x18472069, (q31_t)0xcdd19ed0, - (q31_t)0x183d46cc, (q31_t)0xcdd96c6f, (q31_t)0x18336eb7, (q31_t)0xcde13bfd, - (q31_t)0x1829982b, (q31_t)0xcde90d79, (q31_t)0x181fc328, (q31_t)0xcdf0e0e4, - (q31_t)0x1815efae, (q31_t)0xcdf8b63d, (q31_t)0x180c1dbf, (q31_t)0xce008d84, - (q31_t)0x18024d59, (q31_t)0xce0866b8, (q31_t)0x17f87e7f, (q31_t)0xce1041d9, - (q31_t)0x17eeb130, (q31_t)0xce181ee8, (q31_t)0x17e4e56c, (q31_t)0xce1ffde2, - (q31_t)0x17db1b34, (q31_t)0xce27dec9, (q31_t)0x17d15288, (q31_t)0xce2fc19c, - (q31_t)0x17c78b68, (q31_t)0xce37a65b, (q31_t)0x17bdc5d6, (q31_t)0xce3f8d05, - (q31_t)0x17b401d1, (q31_t)0xce47759a, (q31_t)0x17aa3f5a, (q31_t)0xce4f6019, - (q31_t)0x17a07e70, (q31_t)0xce574c84, (q31_t)0x1796bf16, (q31_t)0xce5f3ad8, - (q31_t)0x178d014a, (q31_t)0xce672b16, (q31_t)0x1783450d, (q31_t)0xce6f1d3d, - (q31_t)0x17798a60, (q31_t)0xce77114e, (q31_t)0x176fd143, (q31_t)0xce7f0748, - (q31_t)0x176619b6, (q31_t)0xce86ff2a, (q31_t)0x175c63ba, (q31_t)0xce8ef8f4, - (q31_t)0x1752af4f, (q31_t)0xce96f4a7, (q31_t)0x1748fc75, (q31_t)0xce9ef241, - (q31_t)0x173f4b2e, (q31_t)0xcea6f1c2, (q31_t)0x17359b78, (q31_t)0xceaef32b, - (q31_t)0x172bed55, (q31_t)0xceb6f67a, (q31_t)0x172240c5, (q31_t)0xcebefbb0, - (q31_t)0x171895c9, (q31_t)0xcec702cb, (q31_t)0x170eec60, (q31_t)0xcecf0bcd, - (q31_t)0x1705448b, (q31_t)0xced716b4, (q31_t)0x16fb9e4b, (q31_t)0xcedf2380, - (q31_t)0x16f1f99f, (q31_t)0xcee73231, (q31_t)0x16e85689, (q31_t)0xceef42c7, - (q31_t)0x16deb508, (q31_t)0xcef75541, (q31_t)0x16d5151d, (q31_t)0xceff699f, - (q31_t)0x16cb76c9, (q31_t)0xcf077fe1, (q31_t)0x16c1da0b, (q31_t)0xcf0f9805, - (q31_t)0x16b83ee4, (q31_t)0xcf17b20d, (q31_t)0x16aea555, (q31_t)0xcf1fcdf8, - (q31_t)0x16a50d5d, (q31_t)0xcf27ebc5, (q31_t)0x169b76fe, (q31_t)0xcf300b74, - (q31_t)0x1691e237, (q31_t)0xcf382d05, (q31_t)0x16884f09, (q31_t)0xcf405077, - (q31_t)0x167ebd74, (q31_t)0xcf4875ca, (q31_t)0x16752d79, (q31_t)0xcf509cfe, - (q31_t)0x166b9f18, (q31_t)0xcf58c613, (q31_t)0x16621251, (q31_t)0xcf60f108, - (q31_t)0x16588725, (q31_t)0xcf691ddd, (q31_t)0x164efd94, (q31_t)0xcf714c91, - (q31_t)0x1645759f, (q31_t)0xcf797d24, (q31_t)0x163bef46, (q31_t)0xcf81af97, - (q31_t)0x16326a88, (q31_t)0xcf89e3e8, (q31_t)0x1628e767, (q31_t)0xcf921a17, - (q31_t)0x161f65e4, (q31_t)0xcf9a5225, (q31_t)0x1615e5fd, (q31_t)0xcfa28c10, - (q31_t)0x160c67b4, (q31_t)0xcfaac7d8, (q31_t)0x1602eb0a, (q31_t)0xcfb3057d, - (q31_t)0x15f96ffd, (q31_t)0xcfbb4500, (q31_t)0x15eff690, (q31_t)0xcfc3865e, - (q31_t)0x15e67ec1, (q31_t)0xcfcbc999, (q31_t)0x15dd0892, (q31_t)0xcfd40eaf, - (q31_t)0x15d39403, (q31_t)0xcfdc55a1, (q31_t)0x15ca2115, (q31_t)0xcfe49e6d, - (q31_t)0x15c0afc6, (q31_t)0xcfece915, (q31_t)0x15b74019, (q31_t)0xcff53597, - (q31_t)0x15add20d, (q31_t)0xcffd83f4, (q31_t)0x15a465a3, (q31_t)0xd005d42a, - (q31_t)0x159afadb, (q31_t)0xd00e2639, (q31_t)0x159191b5, (q31_t)0xd0167a22, - (q31_t)0x15882a32, (q31_t)0xd01ecfe4, (q31_t)0x157ec452, (q31_t)0xd027277e, - (q31_t)0x15756016, (q31_t)0xd02f80f1, (q31_t)0x156bfd7d, (q31_t)0xd037dc3b, - (q31_t)0x15629c89, (q31_t)0xd040395d, (q31_t)0x15593d3a, (q31_t)0xd0489856, - (q31_t)0x154fdf8f, (q31_t)0xd050f926, (q31_t)0x15468389, (q31_t)0xd0595bcd, - (q31_t)0x153d292a, (q31_t)0xd061c04a, (q31_t)0x1533d070, (q31_t)0xd06a269d, - (q31_t)0x152a795d, (q31_t)0xd0728ec6, (q31_t)0x152123f0, (q31_t)0xd07af8c4, - (q31_t)0x1517d02b, (q31_t)0xd0836497, (q31_t)0x150e7e0d, (q31_t)0xd08bd23f, - (q31_t)0x15052d97, (q31_t)0xd09441bb, (q31_t)0x14fbdec9, (q31_t)0xd09cb30b, - (q31_t)0x14f291a4, (q31_t)0xd0a5262f, (q31_t)0x14e94627, (q31_t)0xd0ad9b26, - (q31_t)0x14dffc54, (q31_t)0xd0b611f1, (q31_t)0x14d6b42b, (q31_t)0xd0be8a8d, - (q31_t)0x14cd6dab, (q31_t)0xd0c704fd, (q31_t)0x14c428d6, (q31_t)0xd0cf813e, - (q31_t)0x14bae5ab, (q31_t)0xd0d7ff51, (q31_t)0x14b1a42c, (q31_t)0xd0e07f36, - (q31_t)0x14a86458, (q31_t)0xd0e900ec, (q31_t)0x149f2630, (q31_t)0xd0f18472, - (q31_t)0x1495e9b3, (q31_t)0xd0fa09c9, (q31_t)0x148caee4, (q31_t)0xd10290f0, - (q31_t)0x148375c1, (q31_t)0xd10b19e7, (q31_t)0x147a3e4b, (q31_t)0xd113a4ad, - (q31_t)0x14710883, (q31_t)0xd11c3142, (q31_t)0x1467d469, (q31_t)0xd124bfa6, - (q31_t)0x145ea1fd, (q31_t)0xd12d4fd9, (q31_t)0x14557140, (q31_t)0xd135e1d9, - (q31_t)0x144c4232, (q31_t)0xd13e75a8, (q31_t)0x144314d3, (q31_t)0xd1470b44, - (q31_t)0x1439e923, (q31_t)0xd14fa2ad, (q31_t)0x1430bf24, (q31_t)0xd1583be2, - (q31_t)0x142796d5, (q31_t)0xd160d6e5, (q31_t)0x141e7037, (q31_t)0xd16973b3, - (q31_t)0x14154b4a, (q31_t)0xd172124d, (q31_t)0x140c280e, (q31_t)0xd17ab2b3, - (q31_t)0x14030684, (q31_t)0xd18354e4, (q31_t)0x13f9e6ad, (q31_t)0xd18bf8e0, - (q31_t)0x13f0c887, (q31_t)0xd1949ea6, (q31_t)0x13e7ac15, (q31_t)0xd19d4636, - (q31_t)0x13de9156, (q31_t)0xd1a5ef90, (q31_t)0x13d5784a, (q31_t)0xd1ae9ab4, - (q31_t)0x13cc60f2, (q31_t)0xd1b747a0, (q31_t)0x13c34b4f, (q31_t)0xd1bff656, - (q31_t)0x13ba3760, (q31_t)0xd1c8a6d4, (q31_t)0x13b12526, (q31_t)0xd1d1591a, - (q31_t)0x13a814a2, (q31_t)0xd1da0d28, (q31_t)0x139f05d3, (q31_t)0xd1e2c2fd, - (q31_t)0x1395f8ba, (q31_t)0xd1eb7a9a, (q31_t)0x138ced57, (q31_t)0xd1f433fd, - (q31_t)0x1383e3ab, (q31_t)0xd1fcef27, (q31_t)0x137adbb6, (q31_t)0xd205ac17, - (q31_t)0x1371d579, (q31_t)0xd20e6acc, (q31_t)0x1368d0f3, (q31_t)0xd2172b48, - (q31_t)0x135fce26, (q31_t)0xd21fed88, (q31_t)0x1356cd11, (q31_t)0xd228b18d, - (q31_t)0x134dcdb4, (q31_t)0xd2317756, (q31_t)0x1344d011, (q31_t)0xd23a3ee4, - (q31_t)0x133bd427, (q31_t)0xd2430835, (q31_t)0x1332d9f7, (q31_t)0xd24bd34a, - (q31_t)0x1329e181, (q31_t)0xd254a021, (q31_t)0x1320eac6, (q31_t)0xd25d6ebc, - (q31_t)0x1317f5c6, (q31_t)0xd2663f19, (q31_t)0x130f0280, (q31_t)0xd26f1138, - (q31_t)0x130610f7, (q31_t)0xd277e518, (q31_t)0x12fd2129, (q31_t)0xd280babb, - (q31_t)0x12f43318, (q31_t)0xd289921e, (q31_t)0x12eb46c3, (q31_t)0xd2926b41, - (q31_t)0x12e25c2b, (q31_t)0xd29b4626, (q31_t)0x12d97350, (q31_t)0xd2a422ca, - (q31_t)0x12d08c33, (q31_t)0xd2ad012e, (q31_t)0x12c7a6d4, (q31_t)0xd2b5e151, - (q31_t)0x12bec333, (q31_t)0xd2bec333, (q31_t)0x12b5e151, (q31_t)0xd2c7a6d4, - (q31_t)0x12ad012e, (q31_t)0xd2d08c33, (q31_t)0x12a422ca, (q31_t)0xd2d97350, - (q31_t)0x129b4626, (q31_t)0xd2e25c2b, (q31_t)0x12926b41, (q31_t)0xd2eb46c3, - (q31_t)0x1289921e, (q31_t)0xd2f43318, (q31_t)0x1280babb, (q31_t)0xd2fd2129, - (q31_t)0x1277e518, (q31_t)0xd30610f7, (q31_t)0x126f1138, (q31_t)0xd30f0280, - (q31_t)0x12663f19, (q31_t)0xd317f5c6, (q31_t)0x125d6ebc, (q31_t)0xd320eac6, - (q31_t)0x1254a021, (q31_t)0xd329e181, (q31_t)0x124bd34a, (q31_t)0xd332d9f7, - (q31_t)0x12430835, (q31_t)0xd33bd427, (q31_t)0x123a3ee4, (q31_t)0xd344d011, - (q31_t)0x12317756, (q31_t)0xd34dcdb4, (q31_t)0x1228b18d, (q31_t)0xd356cd11, - (q31_t)0x121fed88, (q31_t)0xd35fce26, (q31_t)0x12172b48, (q31_t)0xd368d0f3, - (q31_t)0x120e6acc, (q31_t)0xd371d579, (q31_t)0x1205ac17, (q31_t)0xd37adbb6, - (q31_t)0x11fcef27, (q31_t)0xd383e3ab, (q31_t)0x11f433fd, (q31_t)0xd38ced57, - (q31_t)0x11eb7a9a, (q31_t)0xd395f8ba, (q31_t)0x11e2c2fd, (q31_t)0xd39f05d3, - (q31_t)0x11da0d28, (q31_t)0xd3a814a2, (q31_t)0x11d1591a, (q31_t)0xd3b12526, - (q31_t)0x11c8a6d4, (q31_t)0xd3ba3760, (q31_t)0x11bff656, (q31_t)0xd3c34b4f, - (q31_t)0x11b747a0, (q31_t)0xd3cc60f2, (q31_t)0x11ae9ab4, (q31_t)0xd3d5784a, - (q31_t)0x11a5ef90, (q31_t)0xd3de9156, (q31_t)0x119d4636, (q31_t)0xd3e7ac15, - (q31_t)0x11949ea6, (q31_t)0xd3f0c887, (q31_t)0x118bf8e0, (q31_t)0xd3f9e6ad, - (q31_t)0x118354e4, (q31_t)0xd4030684, (q31_t)0x117ab2b3, (q31_t)0xd40c280e, - (q31_t)0x1172124d, (q31_t)0xd4154b4a, (q31_t)0x116973b3, (q31_t)0xd41e7037, - (q31_t)0x1160d6e5, (q31_t)0xd42796d5, (q31_t)0x11583be2, (q31_t)0xd430bf24, - (q31_t)0x114fa2ad, (q31_t)0xd439e923, (q31_t)0x11470b44, (q31_t)0xd44314d3, - (q31_t)0x113e75a8, (q31_t)0xd44c4232, (q31_t)0x1135e1d9, (q31_t)0xd4557140, - (q31_t)0x112d4fd9, (q31_t)0xd45ea1fd, (q31_t)0x1124bfa6, (q31_t)0xd467d469, - (q31_t)0x111c3142, (q31_t)0xd4710883, (q31_t)0x1113a4ad, (q31_t)0xd47a3e4b, - (q31_t)0x110b19e7, (q31_t)0xd48375c1, (q31_t)0x110290f0, (q31_t)0xd48caee4, - (q31_t)0x10fa09c9, (q31_t)0xd495e9b3, (q31_t)0x10f18472, (q31_t)0xd49f2630, - (q31_t)0x10e900ec, (q31_t)0xd4a86458, (q31_t)0x10e07f36, (q31_t)0xd4b1a42c, - (q31_t)0x10d7ff51, (q31_t)0xd4bae5ab, (q31_t)0x10cf813e, (q31_t)0xd4c428d6, - (q31_t)0x10c704fd, (q31_t)0xd4cd6dab, (q31_t)0x10be8a8d, (q31_t)0xd4d6b42b, - (q31_t)0x10b611f1, (q31_t)0xd4dffc54, (q31_t)0x10ad9b26, (q31_t)0xd4e94627, - (q31_t)0x10a5262f, (q31_t)0xd4f291a4, (q31_t)0x109cb30b, (q31_t)0xd4fbdec9, - (q31_t)0x109441bb, (q31_t)0xd5052d97, (q31_t)0x108bd23f, (q31_t)0xd50e7e0d, - (q31_t)0x10836497, (q31_t)0xd517d02b, (q31_t)0x107af8c4, (q31_t)0xd52123f0, - (q31_t)0x10728ec6, (q31_t)0xd52a795d, (q31_t)0x106a269d, (q31_t)0xd533d070, - (q31_t)0x1061c04a, (q31_t)0xd53d292a, (q31_t)0x10595bcd, (q31_t)0xd5468389, - (q31_t)0x1050f926, (q31_t)0xd54fdf8f, (q31_t)0x10489856, (q31_t)0xd5593d3a, - (q31_t)0x1040395d, (q31_t)0xd5629c89, (q31_t)0x1037dc3b, (q31_t)0xd56bfd7d, - (q31_t)0x102f80f1, (q31_t)0xd5756016, (q31_t)0x1027277e, (q31_t)0xd57ec452, - (q31_t)0x101ecfe4, (q31_t)0xd5882a32, (q31_t)0x10167a22, (q31_t)0xd59191b5, - (q31_t)0x100e2639, (q31_t)0xd59afadb, (q31_t)0x1005d42a, (q31_t)0xd5a465a3, - (q31_t)0xffd83f4, (q31_t)0xd5add20d, (q31_t)0xff53597, (q31_t)0xd5b74019, - (q31_t)0xfece915, (q31_t)0xd5c0afc6, (q31_t)0xfe49e6d, (q31_t)0xd5ca2115, - (q31_t)0xfdc55a1, (q31_t)0xd5d39403, (q31_t)0xfd40eaf, (q31_t)0xd5dd0892, - (q31_t)0xfcbc999, (q31_t)0xd5e67ec1, (q31_t)0xfc3865e, (q31_t)0xd5eff690, - (q31_t)0xfbb4500, (q31_t)0xd5f96ffd, (q31_t)0xfb3057d, (q31_t)0xd602eb0a, - (q31_t)0xfaac7d8, (q31_t)0xd60c67b4, (q31_t)0xfa28c10, (q31_t)0xd615e5fd, - (q31_t)0xf9a5225, (q31_t)0xd61f65e4, (q31_t)0xf921a17, (q31_t)0xd628e767, - (q31_t)0xf89e3e8, (q31_t)0xd6326a88, (q31_t)0xf81af97, (q31_t)0xd63bef46, - (q31_t)0xf797d24, (q31_t)0xd645759f, (q31_t)0xf714c91, (q31_t)0xd64efd94, - (q31_t)0xf691ddd, (q31_t)0xd6588725, (q31_t)0xf60f108, (q31_t)0xd6621251, - (q31_t)0xf58c613, (q31_t)0xd66b9f18, (q31_t)0xf509cfe, (q31_t)0xd6752d79, - (q31_t)0xf4875ca, (q31_t)0xd67ebd74, (q31_t)0xf405077, (q31_t)0xd6884f09, - (q31_t)0xf382d05, (q31_t)0xd691e237, (q31_t)0xf300b74, (q31_t)0xd69b76fe, - (q31_t)0xf27ebc5, (q31_t)0xd6a50d5d, (q31_t)0xf1fcdf8, (q31_t)0xd6aea555, - (q31_t)0xf17b20d, (q31_t)0xd6b83ee4, (q31_t)0xf0f9805, (q31_t)0xd6c1da0b, - (q31_t)0xf077fe1, (q31_t)0xd6cb76c9, (q31_t)0xeff699f, (q31_t)0xd6d5151d, - (q31_t)0xef75541, (q31_t)0xd6deb508, (q31_t)0xeef42c7, (q31_t)0xd6e85689, - (q31_t)0xee73231, (q31_t)0xd6f1f99f, (q31_t)0xedf2380, (q31_t)0xd6fb9e4b, - (q31_t)0xed716b4, (q31_t)0xd705448b, (q31_t)0xecf0bcd, (q31_t)0xd70eec60, - (q31_t)0xec702cb, (q31_t)0xd71895c9, (q31_t)0xebefbb0, (q31_t)0xd72240c5, - (q31_t)0xeb6f67a, (q31_t)0xd72bed55, (q31_t)0xeaef32b, (q31_t)0xd7359b78, - (q31_t)0xea6f1c2, (q31_t)0xd73f4b2e, (q31_t)0xe9ef241, (q31_t)0xd748fc75, - (q31_t)0xe96f4a7, (q31_t)0xd752af4f, (q31_t)0xe8ef8f4, (q31_t)0xd75c63ba, - (q31_t)0xe86ff2a, (q31_t)0xd76619b6, (q31_t)0xe7f0748, (q31_t)0xd76fd143, - (q31_t)0xe77114e, (q31_t)0xd7798a60, (q31_t)0xe6f1d3d, (q31_t)0xd783450d, - (q31_t)0xe672b16, (q31_t)0xd78d014a, (q31_t)0xe5f3ad8, (q31_t)0xd796bf16, - (q31_t)0xe574c84, (q31_t)0xd7a07e70, (q31_t)0xe4f6019, (q31_t)0xd7aa3f5a, - (q31_t)0xe47759a, (q31_t)0xd7b401d1, (q31_t)0xe3f8d05, (q31_t)0xd7bdc5d6, - (q31_t)0xe37a65b, (q31_t)0xd7c78b68, (q31_t)0xe2fc19c, (q31_t)0xd7d15288, - (q31_t)0xe27dec9, (q31_t)0xd7db1b34, (q31_t)0xe1ffde2, (q31_t)0xd7e4e56c, - (q31_t)0xe181ee8, (q31_t)0xd7eeb130, (q31_t)0xe1041d9, (q31_t)0xd7f87e7f, - (q31_t)0xe0866b8, (q31_t)0xd8024d59, (q31_t)0xe008d84, (q31_t)0xd80c1dbf, - (q31_t)0xdf8b63d, (q31_t)0xd815efae, (q31_t)0xdf0e0e4, (q31_t)0xd81fc328, - (q31_t)0xde90d79, (q31_t)0xd829982b, (q31_t)0xde13bfd, (q31_t)0xd8336eb7, - (q31_t)0xdd96c6f, (q31_t)0xd83d46cc, (q31_t)0xdd19ed0, (q31_t)0xd8472069, - (q31_t)0xdc9d320, (q31_t)0xd850fb8e, (q31_t)0xdc20960, (q31_t)0xd85ad83c, - (q31_t)0xdba4190, (q31_t)0xd864b670, (q31_t)0xdb27bb0, (q31_t)0xd86e962b, - (q31_t)0xdaab7c0, (q31_t)0xd878776d, (q31_t)0xda2f5c2, (q31_t)0xd8825a35, - (q31_t)0xd9b35b4, (q31_t)0xd88c3e83, (q31_t)0xd937798, (q31_t)0xd8962456, - (q31_t)0xd8bbb6d, (q31_t)0xd8a00bae, (q31_t)0xd840134, (q31_t)0xd8a9f48a, - (q31_t)0xd7c48ee, (q31_t)0xd8b3deeb, (q31_t)0xd74929a, (q31_t)0xd8bdcad0, - (q31_t)0xd6cde39, (q31_t)0xd8c7b838, (q31_t)0xd652bcb, (q31_t)0xd8d1a724, - (q31_t)0xd5d7b50, (q31_t)0xd8db9792, (q31_t)0xd55ccca, (q31_t)0xd8e58982, - (q31_t)0xd4e2037, (q31_t)0xd8ef7cf4, (q31_t)0xd467599, (q31_t)0xd8f971e8, - (q31_t)0xd3eccef, (q31_t)0xd903685d, (q31_t)0xd37263a, (q31_t)0xd90d6053, - (q31_t)0xd2f817b, (q31_t)0xd91759c9, (q31_t)0xd27deb0, (q31_t)0xd92154bf, - (q31_t)0xd203ddc, (q31_t)0xd92b5135, (q31_t)0xd189efe, (q31_t)0xd9354f2a, - (q31_t)0xd110216, (q31_t)0xd93f4e9e, (q31_t)0xd096725, (q31_t)0xd9494f90, - (q31_t)0xd01ce2b, (q31_t)0xd9535201, (q31_t)0xcfa3729, (q31_t)0xd95d55ef, - (q31_t)0xcf2a21d, (q31_t)0xd9675b5a, (q31_t)0xceb0f0a, (q31_t)0xd9716243, - (q31_t)0xce37def, (q31_t)0xd97b6aa8, (q31_t)0xcdbeecc, (q31_t)0xd9857489, - (q31_t)0xcd461a2, (q31_t)0xd98f7fe6, (q31_t)0xcccd671, (q31_t)0xd9998cbe, - (q31_t)0xcc54d3a, (q31_t)0xd9a39b11, (q31_t)0xcbdc5fc, (q31_t)0xd9adaadf, - (q31_t)0xcb640b8, (q31_t)0xd9b7bc27, (q31_t)0xcaebd6e, (q31_t)0xd9c1cee9, - (q31_t)0xca73c1e, (q31_t)0xd9cbe325, (q31_t)0xc9fbcca, (q31_t)0xd9d5f8d9, - (q31_t)0xc983f70, (q31_t)0xd9e01006, (q31_t)0xc90c412, (q31_t)0xd9ea28ac, - (q31_t)0xc894aaf, (q31_t)0xd9f442c9, (q31_t)0xc81d349, (q31_t)0xd9fe5e5e, - (q31_t)0xc7a5dde, (q31_t)0xda087b69, (q31_t)0xc72ea70, (q31_t)0xda1299ec, - (q31_t)0xc6b78ff, (q31_t)0xda1cb9e5, (q31_t)0xc64098b, (q31_t)0xda26db54, - (q31_t)0xc5c9c14, (q31_t)0xda30fe38, (q31_t)0xc55309b, (q31_t)0xda3b2292, - (q31_t)0xc4dc720, (q31_t)0xda454860, (q31_t)0xc465fa3, (q31_t)0xda4f6fa3, - (q31_t)0xc3efa25, (q31_t)0xda599859, (q31_t)0xc3796a5, (q31_t)0xda63c284, - (q31_t)0xc303524, (q31_t)0xda6dee21, (q31_t)0xc28d5a3, (q31_t)0xda781b31, - (q31_t)0xc217822, (q31_t)0xda8249b4, (q31_t)0xc1a1ca0, (q31_t)0xda8c79a9, - (q31_t)0xc12c31f, (q31_t)0xda96ab0f, (q31_t)0xc0b6b9e, (q31_t)0xdaa0dde7, - (q31_t)0xc04161e, (q31_t)0xdaab122f, (q31_t)0xbfcc29f, (q31_t)0xdab547e8, - (q31_t)0xbf57121, (q31_t)0xdabf7f11, (q31_t)0xbee21a5, (q31_t)0xdac9b7a9, - (q31_t)0xbe6d42b, (q31_t)0xdad3f1b1, (q31_t)0xbdf88b3, (q31_t)0xdade2d28, - (q31_t)0xbd83f3d, (q31_t)0xdae86a0d, (q31_t)0xbd0f7ca, (q31_t)0xdaf2a860, - (q31_t)0xbc9b25a, (q31_t)0xdafce821, (q31_t)0xbc26eee, (q31_t)0xdb072950, - (q31_t)0xbbb2d85, (q31_t)0xdb116beb, (q31_t)0xbb3ee20, (q31_t)0xdb1baff2, - (q31_t)0xbacb0bf, (q31_t)0xdb25f566, (q31_t)0xba57563, (q31_t)0xdb303c46, - (q31_t)0xb9e3c0b, (q31_t)0xdb3a8491, (q31_t)0xb9704b9, (q31_t)0xdb44ce46, - (q31_t)0xb8fcf6b, (q31_t)0xdb4f1967, (q31_t)0xb889c23, (q31_t)0xdb5965f1, - (q31_t)0xb816ae1, (q31_t)0xdb63b3e5, (q31_t)0xb7a3ba5, (q31_t)0xdb6e0342, - (q31_t)0xb730e70, (q31_t)0xdb785409, (q31_t)0xb6be341, (q31_t)0xdb82a638, - (q31_t)0xb64ba19, (q31_t)0xdb8cf9cf, (q31_t)0xb5d92f8, (q31_t)0xdb974ece, - (q31_t)0xb566ddf, (q31_t)0xdba1a534, (q31_t)0xb4f4acd, (q31_t)0xdbabfd01, - (q31_t)0xb4829c4, (q31_t)0xdbb65634, (q31_t)0xb410ac3, (q31_t)0xdbc0b0ce, - (q31_t)0xb39edca, (q31_t)0xdbcb0cce, (q31_t)0xb32d2da, (q31_t)0xdbd56a32, - (q31_t)0xb2bb9f4, (q31_t)0xdbdfc8fc, (q31_t)0xb24a316, (q31_t)0xdbea292b, - (q31_t)0xb1d8e43, (q31_t)0xdbf48abd, (q31_t)0xb167b79, (q31_t)0xdbfeedb3, - (q31_t)0xb0f6aba, (q31_t)0xdc09520d, (q31_t)0xb085c05, (q31_t)0xdc13b7c9, - (q31_t)0xb014f5b, (q31_t)0xdc1e1ee9, (q31_t)0xafa44bc, (q31_t)0xdc28876a, - (q31_t)0xaf33c28, (q31_t)0xdc32f14d, (q31_t)0xaec35a0, (q31_t)0xdc3d5c91, - (q31_t)0xae53123, (q31_t)0xdc47c936, (q31_t)0xade2eb3, (q31_t)0xdc52373c, - (q31_t)0xad72e4f, (q31_t)0xdc5ca6a2, (q31_t)0xad02ff8, (q31_t)0xdc671768, - (q31_t)0xac933ae, (q31_t)0xdc71898d, (q31_t)0xac23971, (q31_t)0xdc7bfd11, - (q31_t)0xabb4141, (q31_t)0xdc8671f3, (q31_t)0xab44b1f, (q31_t)0xdc90e834, - (q31_t)0xaad570c, (q31_t)0xdc9b5fd2, (q31_t)0xaa66506, (q31_t)0xdca5d8cd, - (q31_t)0xa9f750f, (q31_t)0xdcb05326, (q31_t)0xa988727, (q31_t)0xdcbacedb, - (q31_t)0xa919b4e, (q31_t)0xdcc54bec, (q31_t)0xa8ab184, (q31_t)0xdccfca59, - (q31_t)0xa83c9ca, (q31_t)0xdcda4a21, (q31_t)0xa7ce420, (q31_t)0xdce4cb44, - (q31_t)0xa760086, (q31_t)0xdcef4dc2, (q31_t)0xa6f1efc, (q31_t)0xdcf9d199, - (q31_t)0xa683f83, (q31_t)0xdd0456ca, (q31_t)0xa61621b, (q31_t)0xdd0edd55, - (q31_t)0xa5a86c4, (q31_t)0xdd196538, (q31_t)0xa53ad7e, (q31_t)0xdd23ee74, - (q31_t)0xa4cd64b, (q31_t)0xdd2e7908, (q31_t)0xa460129, (q31_t)0xdd3904f4, - (q31_t)0xa3f2e19, (q31_t)0xdd439236, (q31_t)0xa385d1d, (q31_t)0xdd4e20d0, - (q31_t)0xa318e32, (q31_t)0xdd58b0c0, (q31_t)0xa2ac15b, (q31_t)0xdd634206, - (q31_t)0xa23f698, (q31_t)0xdd6dd4a2, (q31_t)0xa1d2de7, (q31_t)0xdd786892, - (q31_t)0xa16674b, (q31_t)0xdd82fdd8, (q31_t)0xa0fa2c3, (q31_t)0xdd8d9472, - (q31_t)0xa08e04f, (q31_t)0xdd982c60, (q31_t)0xa021fef, (q31_t)0xdda2c5a2, - (q31_t)0x9fb61a5, (q31_t)0xddad6036, (q31_t)0x9f4a570, (q31_t)0xddb7fc1e, - (q31_t)0x9edeb50, (q31_t)0xddc29958, (q31_t)0x9e73346, (q31_t)0xddcd37e4, - (q31_t)0x9e07d51, (q31_t)0xddd7d7c1, (q31_t)0x9d9c973, (q31_t)0xdde278ef, - (q31_t)0x9d317ab, (q31_t)0xdded1b6e, (q31_t)0x9cc67fa, (q31_t)0xddf7bf3e, - (q31_t)0x9c5ba60, (q31_t)0xde02645d, (q31_t)0x9bf0edd, (q31_t)0xde0d0acc, - (q31_t)0x9b86572, (q31_t)0xde17b28a, (q31_t)0x9b1be1e, (q31_t)0xde225b96, - (q31_t)0x9ab18e3, (q31_t)0xde2d05f1, (q31_t)0x9a475bf, (q31_t)0xde37b199, - (q31_t)0x99dd4b4, (q31_t)0xde425e8f, (q31_t)0x99735c2, (q31_t)0xde4d0cd2, - (q31_t)0x99098e9, (q31_t)0xde57bc62, (q31_t)0x989fe29, (q31_t)0xde626d3e, - (q31_t)0x9836582, (q31_t)0xde6d1f65, (q31_t)0x97ccef5, (q31_t)0xde77d2d8, - (q31_t)0x9763a83, (q31_t)0xde828796, (q31_t)0x96fa82a, (q31_t)0xde8d3d9e, - (q31_t)0x96917ec, (q31_t)0xde97f4f1, (q31_t)0x96289c9, (q31_t)0xdea2ad8d, - (q31_t)0x95bfdc1, (q31_t)0xdead6773, (q31_t)0x95573d4, (q31_t)0xdeb822a1, - (q31_t)0x94eec03, (q31_t)0xdec2df18, (q31_t)0x948664d, (q31_t)0xdecd9cd7, - (q31_t)0x941e2b4, (q31_t)0xded85bdd, (q31_t)0x93b6137, (q31_t)0xdee31c2b, - (q31_t)0x934e1d6, (q31_t)0xdeedddc0, (q31_t)0x92e6492, (q31_t)0xdef8a09b, - (q31_t)0x927e96b, (q31_t)0xdf0364bc, (q31_t)0x9217062, (q31_t)0xdf0e2a22, - (q31_t)0x91af976, (q31_t)0xdf18f0ce, (q31_t)0x91484a8, (q31_t)0xdf23b8be, - (q31_t)0x90e11f7, (q31_t)0xdf2e81f3, (q31_t)0x907a166, (q31_t)0xdf394c6b, - (q31_t)0x90132f2, (q31_t)0xdf441828, (q31_t)0x8fac69e, (q31_t)0xdf4ee527, - (q31_t)0x8f45c68, (q31_t)0xdf59b369, (q31_t)0x8edf452, (q31_t)0xdf6482ed, - (q31_t)0x8e78e5b, (q31_t)0xdf6f53b3, (q31_t)0x8e12a84, (q31_t)0xdf7a25ba, - (q31_t)0x8dac8cd, (q31_t)0xdf84f902, (q31_t)0x8d46936, (q31_t)0xdf8fcd8b, - (q31_t)0x8ce0bc0, (q31_t)0xdf9aa354, (q31_t)0x8c7b06b, (q31_t)0xdfa57a5d, - (q31_t)0x8c15736, (q31_t)0xdfb052a5, (q31_t)0x8bb0023, (q31_t)0xdfbb2c2c, - (q31_t)0x8b4ab32, (q31_t)0xdfc606f1, (q31_t)0x8ae5862, (q31_t)0xdfd0e2f5, - (q31_t)0x8a807b4, (q31_t)0xdfdbc036, (q31_t)0x8a1b928, (q31_t)0xdfe69eb4, - (q31_t)0x89b6cbf, (q31_t)0xdff17e70, (q31_t)0x8952278, (q31_t)0xdffc5f67, - (q31_t)0x88eda54, (q31_t)0xe007419b, (q31_t)0x8889454, (q31_t)0xe012250a, - (q31_t)0x8825077, (q31_t)0xe01d09b4, (q31_t)0x87c0ebd, (q31_t)0xe027ef99, - (q31_t)0x875cf28, (q31_t)0xe032d6b8, (q31_t)0x86f91b7, (q31_t)0xe03dbf11, - (q31_t)0x869566a, (q31_t)0xe048a8a4, (q31_t)0x8631d42, (q31_t)0xe053936f, - (q31_t)0x85ce63e, (q31_t)0xe05e7f74, (q31_t)0x856b160, (q31_t)0xe0696cb0, - (q31_t)0x8507ea7, (q31_t)0xe0745b24, (q31_t)0x84a4e14, (q31_t)0xe07f4acf, - (q31_t)0x8441fa6, (q31_t)0xe08a3bb2, (q31_t)0x83df35f, (q31_t)0xe0952dcb, - (q31_t)0x837c93e, (q31_t)0xe0a0211a, (q31_t)0x831a143, (q31_t)0xe0ab159e, - (q31_t)0x82b7b70, (q31_t)0xe0b60b58, (q31_t)0x82557c3, (q31_t)0xe0c10247, - (q31_t)0x81f363d, (q31_t)0xe0cbfa6a, (q31_t)0x81916df, (q31_t)0xe0d6f3c1, - (q31_t)0x812f9a9, (q31_t)0xe0e1ee4b, (q31_t)0x80cde9b, (q31_t)0xe0ecea09, - (q31_t)0x806c5b5, (q31_t)0xe0f7e6f9, (q31_t)0x800aef7, (q31_t)0xe102e51c, - (q31_t)0x7fa9a62, (q31_t)0xe10de470, (q31_t)0x7f487f6, (q31_t)0xe118e4f6, - (q31_t)0x7ee77b3, (q31_t)0xe123e6ad, (q31_t)0x7e8699a, (q31_t)0xe12ee995, - (q31_t)0x7e25daa, (q31_t)0xe139edac, (q31_t)0x7dc53e3, (q31_t)0xe144f2f3, - (q31_t)0x7d64c47, (q31_t)0xe14ff96a, (q31_t)0x7d046d6, (q31_t)0xe15b0110, - (q31_t)0x7ca438f, (q31_t)0xe16609e3, (q31_t)0x7c44272, (q31_t)0xe17113e5, - (q31_t)0x7be4381, (q31_t)0xe17c1f15, (q31_t)0x7b846ba, (q31_t)0xe1872b72, - (q31_t)0x7b24c20, (q31_t)0xe19238fb, (q31_t)0x7ac53b1, (q31_t)0xe19d47b1, - (q31_t)0x7a65d6e, (q31_t)0xe1a85793, (q31_t)0x7a06957, (q31_t)0xe1b368a0, - (q31_t)0x79a776c, (q31_t)0xe1be7ad8, (q31_t)0x79487ae, (q31_t)0xe1c98e3b, - (q31_t)0x78e9a1d, (q31_t)0xe1d4a2c8, (q31_t)0x788aeb9, (q31_t)0xe1dfb87f, - (q31_t)0x782c582, (q31_t)0xe1eacf5f, (q31_t)0x77cde79, (q31_t)0xe1f5e768, - (q31_t)0x776f99d, (q31_t)0xe2010099, (q31_t)0x77116f0, (q31_t)0xe20c1af3, - (q31_t)0x76b3671, (q31_t)0xe2173674, (q31_t)0x7655820, (q31_t)0xe222531c, - (q31_t)0x75f7bfe, (q31_t)0xe22d70eb, (q31_t)0x759a20a, (q31_t)0xe2388fe1, - (q31_t)0x753ca46, (q31_t)0xe243affc, (q31_t)0x74df4b1, (q31_t)0xe24ed13d, - (q31_t)0x748214c, (q31_t)0xe259f3a3, (q31_t)0x7425016, (q31_t)0xe265172e, - (q31_t)0x73c8111, (q31_t)0xe2703bdc, (q31_t)0x736b43c, (q31_t)0xe27b61af, - (q31_t)0x730e997, (q31_t)0xe28688a4, (q31_t)0x72b2123, (q31_t)0xe291b0bd, - (q31_t)0x7255ae0, (q31_t)0xe29cd9f8, (q31_t)0x71f96ce, (q31_t)0xe2a80456, - (q31_t)0x719d4ed, (q31_t)0xe2b32fd4, (q31_t)0x714153e, (q31_t)0xe2be5c74, - (q31_t)0x70e57c0, (q31_t)0xe2c98a35, (q31_t)0x7089c75, (q31_t)0xe2d4b916, - (q31_t)0x702e35c, (q31_t)0xe2dfe917, (q31_t)0x6fd2c75, (q31_t)0xe2eb1a37, - (q31_t)0x6f777c1, (q31_t)0xe2f64c77, (q31_t)0x6f1c540, (q31_t)0xe3017fd5, - (q31_t)0x6ec14f2, (q31_t)0xe30cb451, (q31_t)0x6e666d7, (q31_t)0xe317e9eb, - (q31_t)0x6e0baf0, (q31_t)0xe32320a2, (q31_t)0x6db113d, (q31_t)0xe32e5876, - (q31_t)0x6d569be, (q31_t)0xe3399167, (q31_t)0x6cfc472, (q31_t)0xe344cb73, - (q31_t)0x6ca215c, (q31_t)0xe350069b, (q31_t)0x6c4807a, (q31_t)0xe35b42df, - (q31_t)0x6bee1cd, (q31_t)0xe366803c, (q31_t)0x6b94554, (q31_t)0xe371beb5, - (q31_t)0x6b3ab12, (q31_t)0xe37cfe47, (q31_t)0x6ae1304, (q31_t)0xe3883ef2, - (q31_t)0x6a87d2d, (q31_t)0xe39380b6, (q31_t)0x6a2e98b, (q31_t)0xe39ec393, - (q31_t)0x69d5820, (q31_t)0xe3aa0788, (q31_t)0x697c8eb, (q31_t)0xe3b54c95, - (q31_t)0x6923bec, (q31_t)0xe3c092b9, (q31_t)0x68cb124, (q31_t)0xe3cbd9f4, - (q31_t)0x6872894, (q31_t)0xe3d72245, (q31_t)0x681a23a, (q31_t)0xe3e26bac, - (q31_t)0x67c1e18, (q31_t)0xe3edb628, (q31_t)0x6769c2e, (q31_t)0xe3f901ba, - (q31_t)0x6711c7b, (q31_t)0xe4044e60, (q31_t)0x66b9f01, (q31_t)0xe40f9c1a, - (q31_t)0x66623be, (q31_t)0xe41aeae8, (q31_t)0x660aab5, (q31_t)0xe4263ac9, - (q31_t)0x65b33e4, (q31_t)0xe4318bbe, (q31_t)0x655bf4c, (q31_t)0xe43cddc4, - (q31_t)0x6504ced, (q31_t)0xe44830dd, (q31_t)0x64adcc7, (q31_t)0xe4538507, - (q31_t)0x6456edb, (q31_t)0xe45eda43, (q31_t)0x6400329, (q31_t)0xe46a308f, - (q31_t)0x63a99b1, (q31_t)0xe47587eb, (q31_t)0x6353273, (q31_t)0xe480e057, - (q31_t)0x62fcd6f, (q31_t)0xe48c39d3, (q31_t)0x62a6aa6, (q31_t)0xe497945d, - (q31_t)0x6250a18, (q31_t)0xe4a2eff6, (q31_t)0x61fabc4, (q31_t)0xe4ae4c9d, - (q31_t)0x61a4fac, (q31_t)0xe4b9aa52, (q31_t)0x614f5cf, (q31_t)0xe4c50914, - (q31_t)0x60f9e2e, (q31_t)0xe4d068e2, (q31_t)0x60a48c9, (q31_t)0xe4dbc9bd, - (q31_t)0x604f5a0, (q31_t)0xe4e72ba4, (q31_t)0x5ffa4b3, (q31_t)0xe4f28e96, - (q31_t)0x5fa5603, (q31_t)0xe4fdf294, (q31_t)0x5f5098f, (q31_t)0xe509579b, - (q31_t)0x5efbf58, (q31_t)0xe514bdad, (q31_t)0x5ea775e, (q31_t)0xe52024c9, - (q31_t)0x5e531a1, (q31_t)0xe52b8cee, (q31_t)0x5dfee22, (q31_t)0xe536f61b, - (q31_t)0x5daace1, (q31_t)0xe5426051, (q31_t)0x5d56ddd, (q31_t)0xe54dcb8f, - (q31_t)0x5d03118, (q31_t)0xe55937d5, (q31_t)0x5caf690, (q31_t)0xe564a521, - (q31_t)0x5c5be47, (q31_t)0xe5701374, (q31_t)0x5c0883d, (q31_t)0xe57b82cd, - (q31_t)0x5bb5472, (q31_t)0xe586f32c, (q31_t)0x5b622e6, (q31_t)0xe5926490, - (q31_t)0x5b0f399, (q31_t)0xe59dd6f9, (q31_t)0x5abc68c, (q31_t)0xe5a94a67, - (q31_t)0x5a69bbe, (q31_t)0xe5b4bed8, (q31_t)0x5a17330, (q31_t)0xe5c0344d, - (q31_t)0x59c4ce3, (q31_t)0xe5cbaac5, (q31_t)0x59728d5, (q31_t)0xe5d72240, - (q31_t)0x5920708, (q31_t)0xe5e29abc, (q31_t)0x58ce77c, (q31_t)0xe5ee143b, - (q31_t)0x587ca31, (q31_t)0xe5f98ebb, (q31_t)0x582af26, (q31_t)0xe6050a3b, - (q31_t)0x57d965d, (q31_t)0xe61086bc, (q31_t)0x5787fd6, (q31_t)0xe61c043d, - (q31_t)0x5736b90, (q31_t)0xe62782be, (q31_t)0x56e598c, (q31_t)0xe633023e, - (q31_t)0x56949ca, (q31_t)0xe63e82bc, (q31_t)0x5643c4a, (q31_t)0xe64a0438, - (q31_t)0x55f310d, (q31_t)0xe65586b3, (q31_t)0x55a2812, (q31_t)0xe6610a2a, - (q31_t)0x555215a, (q31_t)0xe66c8e9f, (q31_t)0x5501ce5, (q31_t)0xe6781410, - (q31_t)0x54b1ab4, (q31_t)0xe6839a7c, (q31_t)0x5461ac6, (q31_t)0xe68f21e5, - (q31_t)0x5411d1b, (q31_t)0xe69aaa48, (q31_t)0x53c21b4, (q31_t)0xe6a633a6, - (q31_t)0x5372891, (q31_t)0xe6b1bdff, (q31_t)0x53231b3, (q31_t)0xe6bd4951, - (q31_t)0x52d3d18, (q31_t)0xe6c8d59c, (q31_t)0x5284ac3, (q31_t)0xe6d462e1, - (q31_t)0x5235ab2, (q31_t)0xe6dff11d, (q31_t)0x51e6ce6, (q31_t)0xe6eb8052, - (q31_t)0x519815f, (q31_t)0xe6f7107e, (q31_t)0x514981d, (q31_t)0xe702a1a1, - (q31_t)0x50fb121, (q31_t)0xe70e33bb, (q31_t)0x50acc6b, (q31_t)0xe719c6cb, - (q31_t)0x505e9fb, (q31_t)0xe7255ad1, (q31_t)0x50109d0, (q31_t)0xe730efcc, - (q31_t)0x4fc2bec, (q31_t)0xe73c85bc, (q31_t)0x4f7504e, (q31_t)0xe7481ca1, - (q31_t)0x4f276f7, (q31_t)0xe753b479, (q31_t)0x4ed9fe7, (q31_t)0xe75f4d45, - (q31_t)0x4e8cb1e, (q31_t)0xe76ae704, (q31_t)0x4e3f89c, (q31_t)0xe77681b6, - (q31_t)0x4df2862, (q31_t)0xe7821d59, (q31_t)0x4da5a6f, (q31_t)0xe78db9ef, - (q31_t)0x4d58ec3, (q31_t)0xe7995776, (q31_t)0x4d0c560, (q31_t)0xe7a4f5ed, - (q31_t)0x4cbfe45, (q31_t)0xe7b09555, (q31_t)0x4c73972, (q31_t)0xe7bc35ad, - (q31_t)0x4c276e8, (q31_t)0xe7c7d6f4, (q31_t)0x4bdb6a6, (q31_t)0xe7d3792b, - (q31_t)0x4b8f8ad, (q31_t)0xe7df1c50, (q31_t)0x4b43cfd, (q31_t)0xe7eac063, - (q31_t)0x4af8397, (q31_t)0xe7f66564, (q31_t)0x4aacc7a, (q31_t)0xe8020b52, - (q31_t)0x4a617a6, (q31_t)0xe80db22d, (q31_t)0x4a1651c, (q31_t)0xe81959f4, - (q31_t)0x49cb4dd, (q31_t)0xe82502a7, (q31_t)0x49806e7, (q31_t)0xe830ac45, - (q31_t)0x4935b3c, (q31_t)0xe83c56cf, (q31_t)0x48eb1db, (q31_t)0xe8480243, - (q31_t)0x48a0ac4, (q31_t)0xe853aea1, (q31_t)0x48565f9, (q31_t)0xe85f5be9, - (q31_t)0x480c379, (q31_t)0xe86b0a1a, (q31_t)0x47c2344, (q31_t)0xe876b934, - (q31_t)0x477855a, (q31_t)0xe8826936, (q31_t)0x472e9bc, (q31_t)0xe88e1a20, - (q31_t)0x46e5069, (q31_t)0xe899cbf1, (q31_t)0x469b963, (q31_t)0xe8a57ea9, - (q31_t)0x46524a9, (q31_t)0xe8b13248, (q31_t)0x460923b, (q31_t)0xe8bce6cd, - (q31_t)0x45c0219, (q31_t)0xe8c89c37, (q31_t)0x4577444, (q31_t)0xe8d45286, - (q31_t)0x452e8bc, (q31_t)0xe8e009ba, (q31_t)0x44e5f80, (q31_t)0xe8ebc1d3, - (q31_t)0x449d892, (q31_t)0xe8f77acf, (q31_t)0x44553f2, (q31_t)0xe90334af, - (q31_t)0x440d19e, (q31_t)0xe90eef71, (q31_t)0x43c5199, (q31_t)0xe91aab16, - (q31_t)0x437d3e1, (q31_t)0xe926679c, (q31_t)0x4335877, (q31_t)0xe9322505, - (q31_t)0x42edf5c, (q31_t)0xe93de34e, (q31_t)0x42a688f, (q31_t)0xe949a278, - (q31_t)0x425f410, (q31_t)0xe9556282, (q31_t)0x42181e0, (q31_t)0xe961236c, - (q31_t)0x41d11ff, (q31_t)0xe96ce535, (q31_t)0x418a46d, (q31_t)0xe978a7dd, - (q31_t)0x414392b, (q31_t)0xe9846b63, (q31_t)0x40fd037, (q31_t)0xe9902fc7, - (q31_t)0x40b6994, (q31_t)0xe99bf509, (q31_t)0x4070540, (q31_t)0xe9a7bb28, - (q31_t)0x402a33c, (q31_t)0xe9b38223, (q31_t)0x3fe4388, (q31_t)0xe9bf49fa, - (q31_t)0x3f9e624, (q31_t)0xe9cb12ad, (q31_t)0x3f58b10, (q31_t)0xe9d6dc3b, - (q31_t)0x3f1324e, (q31_t)0xe9e2a6a3, (q31_t)0x3ecdbdc, (q31_t)0xe9ee71e6, - (q31_t)0x3e887bb, (q31_t)0xe9fa3e03, (q31_t)0x3e435ea, (q31_t)0xea060af9, - (q31_t)0x3dfe66c, (q31_t)0xea11d8c8, (q31_t)0x3db993e, (q31_t)0xea1da770, - (q31_t)0x3d74e62, (q31_t)0xea2976ef, (q31_t)0x3d305d8, (q31_t)0xea354746, - (q31_t)0x3cebfa0, (q31_t)0xea411874, (q31_t)0x3ca7bba, (q31_t)0xea4cea79, - (q31_t)0x3c63a26, (q31_t)0xea58bd54, (q31_t)0x3c1fae5, (q31_t)0xea649105, - (q31_t)0x3bdbdf6, (q31_t)0xea70658a, (q31_t)0x3b9835a, (q31_t)0xea7c3ae5, - (q31_t)0x3b54b11, (q31_t)0xea881114, (q31_t)0x3b1151b, (q31_t)0xea93e817, - (q31_t)0x3ace178, (q31_t)0xea9fbfed, (q31_t)0x3a8b028, (q31_t)0xeaab9896, - (q31_t)0x3a4812c, (q31_t)0xeab77212, (q31_t)0x3a05484, (q31_t)0xeac34c60, - (q31_t)0x39c2a2f, (q31_t)0xeacf277f, (q31_t)0x398022f, (q31_t)0xeadb0370, - (q31_t)0x393dc82, (q31_t)0xeae6e031, (q31_t)0x38fb92a, (q31_t)0xeaf2bdc3, - (q31_t)0x38b9827, (q31_t)0xeafe9c24, (q31_t)0x3877978, (q31_t)0xeb0a7b54, - (q31_t)0x3835d1e, (q31_t)0xeb165b54, (q31_t)0x37f4319, (q31_t)0xeb223c22, - (q31_t)0x37b2b6a, (q31_t)0xeb2e1dbe, (q31_t)0x377160f, (q31_t)0xeb3a0027, - (q31_t)0x373030a, (q31_t)0xeb45e35d, (q31_t)0x36ef25b, (q31_t)0xeb51c760, - (q31_t)0x36ae401, (q31_t)0xeb5dac2f, (q31_t)0x366d7fd, (q31_t)0xeb6991ca, - (q31_t)0x362ce50, (q31_t)0xeb75782f, (q31_t)0x35ec6f8, (q31_t)0xeb815f60, - (q31_t)0x35ac1f7, (q31_t)0xeb8d475b, (q31_t)0x356bf4d, (q31_t)0xeb99301f, - (q31_t)0x352bef9, (q31_t)0xeba519ad, (q31_t)0x34ec0fc, (q31_t)0xebb10404, - (q31_t)0x34ac556, (q31_t)0xebbcef23, (q31_t)0x346cc07, (q31_t)0xebc8db0b, - (q31_t)0x342d510, (q31_t)0xebd4c7ba, (q31_t)0x33ee070, (q31_t)0xebe0b52f, - (q31_t)0x33aee27, (q31_t)0xebeca36c, (q31_t)0x336fe37, (q31_t)0xebf8926f, - (q31_t)0x333109e, (q31_t)0xec048237, (q31_t)0x32f255e, (q31_t)0xec1072c4, - (q31_t)0x32b3c75, (q31_t)0xec1c6417, (q31_t)0x32755e5, (q31_t)0xec28562d, - (q31_t)0x32371ae, (q31_t)0xec344908, (q31_t)0x31f8fcf, (q31_t)0xec403ca5, - (q31_t)0x31bb049, (q31_t)0xec4c3106, (q31_t)0x317d31c, (q31_t)0xec582629, - (q31_t)0x313f848, (q31_t)0xec641c0e, (q31_t)0x3101fce, (q31_t)0xec7012b5, - (q31_t)0x30c49ad, (q31_t)0xec7c0a1d, (q31_t)0x30875e5, (q31_t)0xec880245, - (q31_t)0x304a477, (q31_t)0xec93fb2e, (q31_t)0x300d563, (q31_t)0xec9ff4d6, - (q31_t)0x2fd08a9, (q31_t)0xecabef3d, (q31_t)0x2f93e4a, (q31_t)0xecb7ea63, - (q31_t)0x2f57644, (q31_t)0xecc3e648, (q31_t)0x2f1b099, (q31_t)0xeccfe2ea, - (q31_t)0x2eded49, (q31_t)0xecdbe04a, (q31_t)0x2ea2c53, (q31_t)0xece7de66, - (q31_t)0x2e66db8, (q31_t)0xecf3dd3f, (q31_t)0x2e2b178, (q31_t)0xecffdcd4, - (q31_t)0x2def794, (q31_t)0xed0bdd25, (q31_t)0x2db400a, (q31_t)0xed17de31, - (q31_t)0x2d78add, (q31_t)0xed23dff7, (q31_t)0x2d3d80a, (q31_t)0xed2fe277, - (q31_t)0x2d02794, (q31_t)0xed3be5b1, (q31_t)0x2cc7979, (q31_t)0xed47e9a5, - (q31_t)0x2c8cdbb, (q31_t)0xed53ee51, (q31_t)0x2c52459, (q31_t)0xed5ff3b5, - (q31_t)0x2c17d52, (q31_t)0xed6bf9d1, (q31_t)0x2bdd8a9, (q31_t)0xed7800a5, - (q31_t)0x2ba365c, (q31_t)0xed84082f, (q31_t)0x2b6966c, (q31_t)0xed901070, - (q31_t)0x2b2f8d8, (q31_t)0xed9c1967, (q31_t)0x2af5da2, (q31_t)0xeda82313, - (q31_t)0x2abc4c9, (q31_t)0xedb42d74, (q31_t)0x2a82e4d, (q31_t)0xedc0388a, - (q31_t)0x2a49a2e, (q31_t)0xedcc4454, (q31_t)0x2a1086d, (q31_t)0xedd850d2, - (q31_t)0x29d790a, (q31_t)0xede45e03, (q31_t)0x299ec05, (q31_t)0xedf06be6, - (q31_t)0x296615d, (q31_t)0xedfc7a7c, (q31_t)0x292d914, (q31_t)0xee0889c4, - (q31_t)0x28f5329, (q31_t)0xee1499bd, (q31_t)0x28bcf9c, (q31_t)0xee20aa67, - (q31_t)0x2884e6e, (q31_t)0xee2cbbc1, (q31_t)0x284cf9f, (q31_t)0xee38cdcb, - (q31_t)0x281532e, (q31_t)0xee44e084, (q31_t)0x27dd91c, (q31_t)0xee50f3ed, - (q31_t)0x27a616a, (q31_t)0xee5d0804, (q31_t)0x276ec16, (q31_t)0xee691cc9, - (q31_t)0x2737922, (q31_t)0xee75323c, (q31_t)0x270088e, (q31_t)0xee81485c, - (q31_t)0x26c9a58, (q31_t)0xee8d5f29, (q31_t)0x2692e83, (q31_t)0xee9976a1, - (q31_t)0x265c50e, (q31_t)0xeea58ec6, (q31_t)0x2625df8, (q31_t)0xeeb1a796, - (q31_t)0x25ef943, (q31_t)0xeebdc110, (q31_t)0x25b96ee, (q31_t)0xeec9db35, - (q31_t)0x25836f9, (q31_t)0xeed5f604, (q31_t)0x254d965, (q31_t)0xeee2117c, - (q31_t)0x2517e31, (q31_t)0xeeee2d9d, (q31_t)0x24e255e, (q31_t)0xeefa4a67, - (q31_t)0x24aceed, (q31_t)0xef0667d9, (q31_t)0x2477adc, (q31_t)0xef1285f2, - (q31_t)0x244292c, (q31_t)0xef1ea4b2, (q31_t)0x240d9de, (q31_t)0xef2ac419, - (q31_t)0x23d8cf1, (q31_t)0xef36e426, (q31_t)0x23a4265, (q31_t)0xef4304d8, - (q31_t)0x236fa3b, (q31_t)0xef4f2630, (q31_t)0x233b473, (q31_t)0xef5b482d, - (q31_t)0x230710d, (q31_t)0xef676ace, (q31_t)0x22d3009, (q31_t)0xef738e12, - (q31_t)0x229f167, (q31_t)0xef7fb1fa, (q31_t)0x226b528, (q31_t)0xef8bd685, - (q31_t)0x2237b4b, (q31_t)0xef97fbb2, (q31_t)0x22043d0, (q31_t)0xefa42181, - (q31_t)0x21d0eb8, (q31_t)0xefb047f2, (q31_t)0x219dc03, (q31_t)0xefbc6f03, - (q31_t)0x216abb1, (q31_t)0xefc896b5, (q31_t)0x2137dc2, (q31_t)0xefd4bf08, - (q31_t)0x2105236, (q31_t)0xefe0e7f9, (q31_t)0x20d290d, (q31_t)0xefed118a, - (q31_t)0x20a0248, (q31_t)0xeff93bba, (q31_t)0x206dde6, (q31_t)0xf0056687, - (q31_t)0x203bbe8, (q31_t)0xf01191f3, (q31_t)0x2009c4e, (q31_t)0xf01dbdfb, - (q31_t)0x1fd7f17, (q31_t)0xf029eaa1, (q31_t)0x1fa6445, (q31_t)0xf03617e2, - (q31_t)0x1f74bd6, (q31_t)0xf04245c0, (q31_t)0x1f435cc, (q31_t)0xf04e7438, - (q31_t)0x1f12227, (q31_t)0xf05aa34c, (q31_t)0x1ee10e5, (q31_t)0xf066d2fa, - (q31_t)0x1eb0209, (q31_t)0xf0730342, (q31_t)0x1e7f591, (q31_t)0xf07f3424, - (q31_t)0x1e4eb7e, (q31_t)0xf08b659f, (q31_t)0x1e1e3d0, (q31_t)0xf09797b2, - (q31_t)0x1dede87, (q31_t)0xf0a3ca5d, (q31_t)0x1dbdba3, (q31_t)0xf0affda0, - (q31_t)0x1d8db25, (q31_t)0xf0bc317a, (q31_t)0x1d5dd0c, (q31_t)0xf0c865ea, - (q31_t)0x1d2e158, (q31_t)0xf0d49af1, (q31_t)0x1cfe80a, (q31_t)0xf0e0d08d, - (q31_t)0x1ccf122, (q31_t)0xf0ed06bf, (q31_t)0x1c9fca0, (q31_t)0xf0f93d86, - (q31_t)0x1c70a84, (q31_t)0xf10574e0, (q31_t)0x1c41ace, (q31_t)0xf111accf, - (q31_t)0x1c12d7e, (q31_t)0xf11de551, (q31_t)0x1be4294, (q31_t)0xf12a1e66, - (q31_t)0x1bb5a11, (q31_t)0xf136580d, (q31_t)0x1b873f5, (q31_t)0xf1429247, - (q31_t)0x1b5903f, (q31_t)0xf14ecd11, (q31_t)0x1b2aef0, (q31_t)0xf15b086d, - (q31_t)0x1afd007, (q31_t)0xf1674459, (q31_t)0x1acf386, (q31_t)0xf17380d6, - (q31_t)0x1aa196c, (q31_t)0xf17fbde2, (q31_t)0x1a741b9, (q31_t)0xf18bfb7d, - (q31_t)0x1a46c6e, (q31_t)0xf19839a6, (q31_t)0x1a1998a, (q31_t)0xf1a4785e, - (q31_t)0x19ec90d, (q31_t)0xf1b0b7a4, (q31_t)0x19bfaf9, (q31_t)0xf1bcf777, - (q31_t)0x1992f4c, (q31_t)0xf1c937d6, (q31_t)0x1966606, (q31_t)0xf1d578c2, - (q31_t)0x1939f29, (q31_t)0xf1e1ba3a, (q31_t)0x190dab4, (q31_t)0xf1edfc3d, - (q31_t)0x18e18a7, (q31_t)0xf1fa3ecb, (q31_t)0x18b5903, (q31_t)0xf20681e3, - (q31_t)0x1889bc6, (q31_t)0xf212c585, (q31_t)0x185e0f3, (q31_t)0xf21f09b1, - (q31_t)0x1832888, (q31_t)0xf22b4e66, (q31_t)0x1807285, (q31_t)0xf23793a3, - (q31_t)0x17dbeec, (q31_t)0xf243d968, (q31_t)0x17b0dbb, (q31_t)0xf2501fb5, - (q31_t)0x1785ef4, (q31_t)0xf25c6688, (q31_t)0x175b296, (q31_t)0xf268ade3, - (q31_t)0x17308a1, (q31_t)0xf274f5c3, (q31_t)0x1706115, (q31_t)0xf2813e2a, - (q31_t)0x16dbbf3, (q31_t)0xf28d8715, (q31_t)0x16b193a, (q31_t)0xf299d085, - (q31_t)0x16878eb, (q31_t)0xf2a61a7a, (q31_t)0x165db05, (q31_t)0xf2b264f2, - (q31_t)0x1633f8a, (q31_t)0xf2beafed, (q31_t)0x160a678, (q31_t)0xf2cafb6b, - (q31_t)0x15e0fd1, (q31_t)0xf2d7476c, (q31_t)0x15b7b94, (q31_t)0xf2e393ef, - (q31_t)0x158e9c1, (q31_t)0xf2efe0f2, (q31_t)0x1565a58, (q31_t)0xf2fc2e77, - (q31_t)0x153cd5a, (q31_t)0xf3087c7d, (q31_t)0x15142c6, (q31_t)0xf314cb02, - (q31_t)0x14eba9d, (q31_t)0xf3211a07, (q31_t)0x14c34df, (q31_t)0xf32d698a, - (q31_t)0x149b18b, (q31_t)0xf339b98d, (q31_t)0x14730a3, (q31_t)0xf3460a0d, - (q31_t)0x144b225, (q31_t)0xf3525b0b, (q31_t)0x1423613, (q31_t)0xf35eac86, - (q31_t)0x13fbc6c, (q31_t)0xf36afe7e, (q31_t)0x13d4530, (q31_t)0xf37750f2, - (q31_t)0x13ad060, (q31_t)0xf383a3e2, (q31_t)0x1385dfb, (q31_t)0xf38ff74d, - (q31_t)0x135ee02, (q31_t)0xf39c4b32, (q31_t)0x1338075, (q31_t)0xf3a89f92, - (q31_t)0x1311553, (q31_t)0xf3b4f46c, (q31_t)0x12eac9d, (q31_t)0xf3c149bf, - (q31_t)0x12c4653, (q31_t)0xf3cd9f8b, (q31_t)0x129e276, (q31_t)0xf3d9f5cf, - (q31_t)0x1278104, (q31_t)0xf3e64c8c, (q31_t)0x12521ff, (q31_t)0xf3f2a3bf, - (q31_t)0x122c566, (q31_t)0xf3fefb6a, (q31_t)0x1206b39, (q31_t)0xf40b538b, - (q31_t)0x11e1379, (q31_t)0xf417ac22, (q31_t)0x11bbe26, (q31_t)0xf424052f, - (q31_t)0x1196b3f, (q31_t)0xf4305eb0, (q31_t)0x1171ac6, (q31_t)0xf43cb8a7, - (q31_t)0x114ccb9, (q31_t)0xf4491311, (q31_t)0x1128119, (q31_t)0xf4556def, - (q31_t)0x11037e6, (q31_t)0xf461c940, (q31_t)0x10df120, (q31_t)0xf46e2504, - (q31_t)0x10bacc8, (q31_t)0xf47a8139, (q31_t)0x1096add, (q31_t)0xf486dde1, - (q31_t)0x1072b5f, (q31_t)0xf4933afa, (q31_t)0x104ee4f, (q31_t)0xf49f9884, - (q31_t)0x102b3ac, (q31_t)0xf4abf67e, (q31_t)0x1007b77, (q31_t)0xf4b854e7, - (q31_t)0xfe45b0, (q31_t)0xf4c4b3c0, (q31_t)0xfc1257, (q31_t)0xf4d11308, - (q31_t)0xf9e16b, (q31_t)0xf4dd72be, (q31_t)0xf7b2ee, (q31_t)0xf4e9d2e3, - (q31_t)0xf586df, (q31_t)0xf4f63374, (q31_t)0xf35d3e, (q31_t)0xf5029473, - (q31_t)0xf1360b, (q31_t)0xf50ef5de, (q31_t)0xef1147, (q31_t)0xf51b57b5, - (q31_t)0xeceef1, (q31_t)0xf527b9f7, (q31_t)0xeacf09, (q31_t)0xf5341ca5, - (q31_t)0xe8b190, (q31_t)0xf5407fbd, (q31_t)0xe69686, (q31_t)0xf54ce33f, - (q31_t)0xe47deb, (q31_t)0xf559472b, (q31_t)0xe267be, (q31_t)0xf565ab80, - (q31_t)0xe05401, (q31_t)0xf572103d, (q31_t)0xde42b2, (q31_t)0xf57e7563, - (q31_t)0xdc33d2, (q31_t)0xf58adaf0, (q31_t)0xda2762, (q31_t)0xf59740e5, - (q31_t)0xd81d61, (q31_t)0xf5a3a740, (q31_t)0xd615cf, (q31_t)0xf5b00e02, - (q31_t)0xd410ad, (q31_t)0xf5bc7529, (q31_t)0xd20dfa, (q31_t)0xf5c8dcb6, - (q31_t)0xd00db6, (q31_t)0xf5d544a7, (q31_t)0xce0fe3, (q31_t)0xf5e1acfd, - (q31_t)0xcc147f, (q31_t)0xf5ee15b7, (q31_t)0xca1b8a, (q31_t)0xf5fa7ed4, - (q31_t)0xc82506, (q31_t)0xf606e854, (q31_t)0xc630f2, (q31_t)0xf6135237, - (q31_t)0xc43f4d, (q31_t)0xf61fbc7b, (q31_t)0xc25019, (q31_t)0xf62c2721, - (q31_t)0xc06355, (q31_t)0xf6389228, (q31_t)0xbe7901, (q31_t)0xf644fd8f, - (q31_t)0xbc911d, (q31_t)0xf6516956, (q31_t)0xbaabaa, (q31_t)0xf65dd57d, - (q31_t)0xb8c8a7, (q31_t)0xf66a4203, (q31_t)0xb6e815, (q31_t)0xf676aee8, - (q31_t)0xb509f3, (q31_t)0xf6831c2b, (q31_t)0xb32e42, (q31_t)0xf68f89cb, - (q31_t)0xb15502, (q31_t)0xf69bf7c9, (q31_t)0xaf7e33, (q31_t)0xf6a86623, - (q31_t)0xada9d4, (q31_t)0xf6b4d4d9, (q31_t)0xabd7e6, (q31_t)0xf6c143ec, - (q31_t)0xaa086a, (q31_t)0xf6cdb359, (q31_t)0xa83b5e, (q31_t)0xf6da2321, - (q31_t)0xa670c4, (q31_t)0xf6e69344, (q31_t)0xa4a89b, (q31_t)0xf6f303c0, - (q31_t)0xa2e2e3, (q31_t)0xf6ff7496, (q31_t)0xa11f9d, (q31_t)0xf70be5c4, - (q31_t)0x9f5ec8, (q31_t)0xf718574b, (q31_t)0x9da065, (q31_t)0xf724c92a, - (q31_t)0x9be473, (q31_t)0xf7313b60, (q31_t)0x9a2af3, (q31_t)0xf73daded, - (q31_t)0x9873e4, (q31_t)0xf74a20d0, (q31_t)0x96bf48, (q31_t)0xf756940a, - (q31_t)0x950d1d, (q31_t)0xf7630799, (q31_t)0x935d64, (q31_t)0xf76f7b7d, - (q31_t)0x91b01d, (q31_t)0xf77befb5, (q31_t)0x900548, (q31_t)0xf7886442, - (q31_t)0x8e5ce5, (q31_t)0xf794d922, (q31_t)0x8cb6f5, (q31_t)0xf7a14e55, - (q31_t)0x8b1376, (q31_t)0xf7adc3db, (q31_t)0x89726a, (q31_t)0xf7ba39b3, - (q31_t)0x87d3d0, (q31_t)0xf7c6afdc, (q31_t)0x8637a9, (q31_t)0xf7d32657, - (q31_t)0x849df4, (q31_t)0xf7df9d22, (q31_t)0x8306b2, (q31_t)0xf7ec143e, - (q31_t)0x8171e2, (q31_t)0xf7f88ba9, (q31_t)0x7fdf85, (q31_t)0xf8050364, - (q31_t)0x7e4f9b, (q31_t)0xf8117b6d, (q31_t)0x7cc223, (q31_t)0xf81df3c5, - (q31_t)0x7b371e, (q31_t)0xf82a6c6a, (q31_t)0x79ae8c, (q31_t)0xf836e55d, - (q31_t)0x78286e, (q31_t)0xf8435e9d, (q31_t)0x76a4c2, (q31_t)0xf84fd829, - (q31_t)0x752389, (q31_t)0xf85c5201, (q31_t)0x73a4c3, (q31_t)0xf868cc24, - (q31_t)0x722871, (q31_t)0xf8754692, (q31_t)0x70ae92, (q31_t)0xf881c14b, - (q31_t)0x6f3726, (q31_t)0xf88e3c4d, (q31_t)0x6dc22e, (q31_t)0xf89ab799, - (q31_t)0x6c4fa8, (q31_t)0xf8a7332e, (q31_t)0x6adf97, (q31_t)0xf8b3af0c, - (q31_t)0x6971f9, (q31_t)0xf8c02b31, (q31_t)0x6806ce, (q31_t)0xf8cca79e, - (q31_t)0x669e18, (q31_t)0xf8d92452, (q31_t)0x6537d4, (q31_t)0xf8e5a14d, - (q31_t)0x63d405, (q31_t)0xf8f21e8e, (q31_t)0x6272aa, (q31_t)0xf8fe9c15, - (q31_t)0x6113c2, (q31_t)0xf90b19e0, (q31_t)0x5fb74e, (q31_t)0xf91797f0, - (q31_t)0x5e5d4e, (q31_t)0xf9241645, (q31_t)0x5d05c3, (q31_t)0xf93094dd, - (q31_t)0x5bb0ab, (q31_t)0xf93d13b8, (q31_t)0x5a5e07, (q31_t)0xf94992d7, - (q31_t)0x590dd8, (q31_t)0xf9561237, (q31_t)0x57c01d, (q31_t)0xf96291d9, - (q31_t)0x5674d6, (q31_t)0xf96f11bc, (q31_t)0x552c03, (q31_t)0xf97b91e1, - (q31_t)0x53e5a5, (q31_t)0xf9881245, (q31_t)0x52a1bb, (q31_t)0xf99492ea, - (q31_t)0x516045, (q31_t)0xf9a113cd, (q31_t)0x502145, (q31_t)0xf9ad94f0, - (q31_t)0x4ee4b8, (q31_t)0xf9ba1651, (q31_t)0x4daaa1, (q31_t)0xf9c697f0, - (q31_t)0x4c72fe, (q31_t)0xf9d319cc, (q31_t)0x4b3dcf, (q31_t)0xf9df9be6, - (q31_t)0x4a0b16, (q31_t)0xf9ec1e3b, (q31_t)0x48dad1, (q31_t)0xf9f8a0cd, - (q31_t)0x47ad01, (q31_t)0xfa05239a, (q31_t)0x4681a6, (q31_t)0xfa11a6a3, - (q31_t)0x4558c0, (q31_t)0xfa1e29e5, (q31_t)0x44324f, (q31_t)0xfa2aad62, - (q31_t)0x430e53, (q31_t)0xfa373119, (q31_t)0x41eccc, (q31_t)0xfa43b508, - (q31_t)0x40cdba, (q31_t)0xfa503930, (q31_t)0x3fb11d, (q31_t)0xfa5cbd91, - (q31_t)0x3e96f6, (q31_t)0xfa694229, (q31_t)0x3d7f44, (q31_t)0xfa75c6f8, - (q31_t)0x3c6a07, (q31_t)0xfa824bfd, (q31_t)0x3b573f, (q31_t)0xfa8ed139, - (q31_t)0x3a46ed, (q31_t)0xfa9b56ab, (q31_t)0x393910, (q31_t)0xfaa7dc52, - (q31_t)0x382da8, (q31_t)0xfab4622d, (q31_t)0x3724b6, (q31_t)0xfac0e83d, - (q31_t)0x361e3a, (q31_t)0xfacd6e81, (q31_t)0x351a33, (q31_t)0xfad9f4f8, - (q31_t)0x3418a2, (q31_t)0xfae67ba2, (q31_t)0x331986, (q31_t)0xfaf3027e, - (q31_t)0x321ce0, (q31_t)0xfaff898c, (q31_t)0x3122b0, (q31_t)0xfb0c10cb, - (q31_t)0x302af5, (q31_t)0xfb18983b, (q31_t)0x2f35b1, (q31_t)0xfb251fdc, - (q31_t)0x2e42e2, (q31_t)0xfb31a7ac, (q31_t)0x2d5289, (q31_t)0xfb3e2fac, - (q31_t)0x2c64a6, (q31_t)0xfb4ab7db, (q31_t)0x2b7939, (q31_t)0xfb574039, - (q31_t)0x2a9042, (q31_t)0xfb63c8c4, (q31_t)0x29a9c1, (q31_t)0xfb70517d, - (q31_t)0x28c5b6, (q31_t)0xfb7cda63, (q31_t)0x27e421, (q31_t)0xfb896375, - (q31_t)0x270502, (q31_t)0xfb95ecb4, (q31_t)0x262859, (q31_t)0xfba2761e, - (q31_t)0x254e27, (q31_t)0xfbaeffb3, (q31_t)0x24766a, (q31_t)0xfbbb8973, - (q31_t)0x23a124, (q31_t)0xfbc8135c, (q31_t)0x22ce54, (q31_t)0xfbd49d70, - (q31_t)0x21fdfb, (q31_t)0xfbe127ac, (q31_t)0x213018, (q31_t)0xfbedb212, - (q31_t)0x2064ab, (q31_t)0xfbfa3c9f, (q31_t)0x1f9bb5, (q31_t)0xfc06c754, - (q31_t)0x1ed535, (q31_t)0xfc135231, (q31_t)0x1e112b, (q31_t)0xfc1fdd34, - (q31_t)0x1d4f99, (q31_t)0xfc2c685d, (q31_t)0x1c907c, (q31_t)0xfc38f3ac, - (q31_t)0x1bd3d6, (q31_t)0xfc457f21, (q31_t)0x1b19a7, (q31_t)0xfc520aba, - (q31_t)0x1a61ee, (q31_t)0xfc5e9678, (q31_t)0x19acac, (q31_t)0xfc6b2259, - (q31_t)0x18f9e1, (q31_t)0xfc77ae5e, (q31_t)0x18498c, (q31_t)0xfc843a85, - (q31_t)0x179bae, (q31_t)0xfc90c6cf, (q31_t)0x16f047, (q31_t)0xfc9d533b, - (q31_t)0x164757, (q31_t)0xfca9dfc8, (q31_t)0x15a0dd, (q31_t)0xfcb66c77, - (q31_t)0x14fcda, (q31_t)0xfcc2f945, (q31_t)0x145b4e, (q31_t)0xfccf8634, - (q31_t)0x13bc39, (q31_t)0xfcdc1342, (q31_t)0x131f9b, (q31_t)0xfce8a06f, - (q31_t)0x128574, (q31_t)0xfcf52dbb, (q31_t)0x11edc3, (q31_t)0xfd01bb24, - (q31_t)0x11588a, (q31_t)0xfd0e48ab, (q31_t)0x10c5c7, (q31_t)0xfd1ad650, - (q31_t)0x10357c, (q31_t)0xfd276410, (q31_t)0xfa7a8, (q31_t)0xfd33f1ed, - (q31_t)0xf1c4a, (q31_t)0xfd407fe6, (q31_t)0xe9364, (q31_t)0xfd4d0df9, - (q31_t)0xe0cf5, (q31_t)0xfd599c28, (q31_t)0xd88fd, (q31_t)0xfd662a70, - (q31_t)0xd077c, (q31_t)0xfd72b8d2, (q31_t)0xc8872, (q31_t)0xfd7f474d, - (q31_t)0xc0be0, (q31_t)0xfd8bd5e1, (q31_t)0xb91c4, (q31_t)0xfd98648d, - (q31_t)0xb1a20, (q31_t)0xfda4f351, (q31_t)0xaa4f3, (q31_t)0xfdb1822c, - (q31_t)0xa323d, (q31_t)0xfdbe111e, (q31_t)0x9c1ff, (q31_t)0xfdcaa027, - (q31_t)0x95438, (q31_t)0xfdd72f45, (q31_t)0x8e8e8, (q31_t)0xfde3be78, - (q31_t)0x8800f, (q31_t)0xfdf04dc0, (q31_t)0x819ae, (q31_t)0xfdfcdd1d, - (q31_t)0x7b5c4, (q31_t)0xfe096c8d, (q31_t)0x75452, (q31_t)0xfe15fc11, - (q31_t)0x6f556, (q31_t)0xfe228ba7, (q31_t)0x698d3, (q31_t)0xfe2f1b50, - (q31_t)0x63ec6, (q31_t)0xfe3bab0b, (q31_t)0x5e731, (q31_t)0xfe483ad8, - (q31_t)0x59214, (q31_t)0xfe54cab5, (q31_t)0x53f6e, (q31_t)0xfe615aa3, - (q31_t)0x4ef3f, (q31_t)0xfe6deaa1, (q31_t)0x4a188, (q31_t)0xfe7a7aae, - (q31_t)0x45648, (q31_t)0xfe870aca, (q31_t)0x40d80, (q31_t)0xfe939af5, - (q31_t)0x3c72f, (q31_t)0xfea02b2e, (q31_t)0x38356, (q31_t)0xfeacbb74, - (q31_t)0x341f4, (q31_t)0xfeb94bc8, (q31_t)0x3030a, (q31_t)0xfec5dc28, - (q31_t)0x2c697, (q31_t)0xfed26c94, (q31_t)0x28c9c, (q31_t)0xfedefd0c, - (q31_t)0x25519, (q31_t)0xfeeb8d8f, (q31_t)0x2200d, (q31_t)0xfef81e1d, - (q31_t)0x1ed78, (q31_t)0xff04aeb5, (q31_t)0x1bd5c, (q31_t)0xff113f56, - (q31_t)0x18fb6, (q31_t)0xff1dd001, (q31_t)0x16489, (q31_t)0xff2a60b4, - (q31_t)0x13bd3, (q31_t)0xff36f170, (q31_t)0x11594, (q31_t)0xff438234, - (q31_t)0xf1ce, (q31_t)0xff5012fe, (q31_t)0xd07e, (q31_t)0xff5ca3d0, - (q31_t)0xb1a7, (q31_t)0xff6934a8, (q31_t)0x9547, (q31_t)0xff75c585, - (q31_t)0x7b5f, (q31_t)0xff825668, (q31_t)0x63ee, (q31_t)0xff8ee750, - (q31_t)0x4ef5, (q31_t)0xff9b783c, (q31_t)0x3c74, (q31_t)0xffa8092c, - (q31_t)0x2c6a, (q31_t)0xffb49a1f, (q31_t)0x1ed8, (q31_t)0xffc12b16, - (q31_t)0x13bd, (q31_t)0xffcdbc0f, (q31_t)0xb1a, (q31_t)0xffda4d09, - (q31_t)0x4ef, (q31_t)0xffe6de05, (q31_t)0x13c, (q31_t)0xfff36f02, - (q31_t)0x0, (q31_t)0x0, (q31_t)0x13c, (q31_t)0xc90fe, - (q31_t)0x4ef, (q31_t)0x1921fb, (q31_t)0xb1a, (q31_t)0x25b2f7, - (q31_t)0x13bd, (q31_t)0x3243f1, (q31_t)0x1ed8, (q31_t)0x3ed4ea, - (q31_t)0x2c6a, (q31_t)0x4b65e1, (q31_t)0x3c74, (q31_t)0x57f6d4, - (q31_t)0x4ef5, (q31_t)0x6487c4, (q31_t)0x63ee, (q31_t)0x7118b0, - (q31_t)0x7b5f, (q31_t)0x7da998, (q31_t)0x9547, (q31_t)0x8a3a7b, - (q31_t)0xb1a7, (q31_t)0x96cb58, (q31_t)0xd07e, (q31_t)0xa35c30, - (q31_t)0xf1ce, (q31_t)0xafed02, (q31_t)0x11594, (q31_t)0xbc7dcc, - (q31_t)0x13bd3, (q31_t)0xc90e90, (q31_t)0x16489, (q31_t)0xd59f4c, - (q31_t)0x18fb6, (q31_t)0xe22fff, (q31_t)0x1bd5c, (q31_t)0xeec0aa, - (q31_t)0x1ed78, (q31_t)0xfb514b, (q31_t)0x2200d, (q31_t)0x107e1e3, - (q31_t)0x25519, (q31_t)0x1147271, (q31_t)0x28c9c, (q31_t)0x12102f4, - (q31_t)0x2c697, (q31_t)0x12d936c, (q31_t)0x3030a, (q31_t)0x13a23d8, - (q31_t)0x341f4, (q31_t)0x146b438, (q31_t)0x38356, (q31_t)0x153448c, - (q31_t)0x3c72f, (q31_t)0x15fd4d2, (q31_t)0x40d80, (q31_t)0x16c650b, - (q31_t)0x45648, (q31_t)0x178f536, (q31_t)0x4a188, (q31_t)0x1858552, - (q31_t)0x4ef3f, (q31_t)0x192155f, (q31_t)0x53f6e, (q31_t)0x19ea55d, - (q31_t)0x59214, (q31_t)0x1ab354b, (q31_t)0x5e731, (q31_t)0x1b7c528, - (q31_t)0x63ec6, (q31_t)0x1c454f5, (q31_t)0x698d3, (q31_t)0x1d0e4b0, - (q31_t)0x6f556, (q31_t)0x1dd7459, (q31_t)0x75452, (q31_t)0x1ea03ef, - (q31_t)0x7b5c4, (q31_t)0x1f69373, (q31_t)0x819ae, (q31_t)0x20322e3, - (q31_t)0x8800f, (q31_t)0x20fb240, (q31_t)0x8e8e8, (q31_t)0x21c4188, - (q31_t)0x95438, (q31_t)0x228d0bb, (q31_t)0x9c1ff, (q31_t)0x2355fd9, - (q31_t)0xa323d, (q31_t)0x241eee2, (q31_t)0xaa4f3, (q31_t)0x24e7dd4, - (q31_t)0xb1a20, (q31_t)0x25b0caf, (q31_t)0xb91c4, (q31_t)0x2679b73, - (q31_t)0xc0be0, (q31_t)0x2742a1f, (q31_t)0xc8872, (q31_t)0x280b8b3, - (q31_t)0xd077c, (q31_t)0x28d472e, (q31_t)0xd88fd, (q31_t)0x299d590, - (q31_t)0xe0cf5, (q31_t)0x2a663d8, (q31_t)0xe9364, (q31_t)0x2b2f207, - (q31_t)0xf1c4a, (q31_t)0x2bf801a, (q31_t)0xfa7a8, (q31_t)0x2cc0e13, - (q31_t)0x10357c, (q31_t)0x2d89bf0, (q31_t)0x10c5c7, (q31_t)0x2e529b0, - (q31_t)0x11588a, (q31_t)0x2f1b755, (q31_t)0x11edc3, (q31_t)0x2fe44dc, - (q31_t)0x128574, (q31_t)0x30ad245, (q31_t)0x131f9b, (q31_t)0x3175f91, - (q31_t)0x13bc39, (q31_t)0x323ecbe, (q31_t)0x145b4e, (q31_t)0x33079cc, - (q31_t)0x14fcda, (q31_t)0x33d06bb, (q31_t)0x15a0dd, (q31_t)0x3499389, - (q31_t)0x164757, (q31_t)0x3562038, (q31_t)0x16f047, (q31_t)0x362acc5, - (q31_t)0x179bae, (q31_t)0x36f3931, (q31_t)0x18498c, (q31_t)0x37bc57b, - (q31_t)0x18f9e1, (q31_t)0x38851a2, (q31_t)0x19acac, (q31_t)0x394dda7, - (q31_t)0x1a61ee, (q31_t)0x3a16988, (q31_t)0x1b19a7, (q31_t)0x3adf546, - (q31_t)0x1bd3d6, (q31_t)0x3ba80df, (q31_t)0x1c907c, (q31_t)0x3c70c54, - (q31_t)0x1d4f99, (q31_t)0x3d397a3, (q31_t)0x1e112b, (q31_t)0x3e022cc, - (q31_t)0x1ed535, (q31_t)0x3ecadcf, (q31_t)0x1f9bb5, (q31_t)0x3f938ac, - (q31_t)0x2064ab, (q31_t)0x405c361, (q31_t)0x213018, (q31_t)0x4124dee, - (q31_t)0x21fdfb, (q31_t)0x41ed854, (q31_t)0x22ce54, (q31_t)0x42b6290, - (q31_t)0x23a124, (q31_t)0x437eca4, (q31_t)0x24766a, (q31_t)0x444768d, - (q31_t)0x254e27, (q31_t)0x451004d, (q31_t)0x262859, (q31_t)0x45d89e2, - (q31_t)0x270502, (q31_t)0x46a134c, (q31_t)0x27e421, (q31_t)0x4769c8b, - (q31_t)0x28c5b6, (q31_t)0x483259d, (q31_t)0x29a9c1, (q31_t)0x48fae83, - (q31_t)0x2a9042, (q31_t)0x49c373c, (q31_t)0x2b7939, (q31_t)0x4a8bfc7, - (q31_t)0x2c64a6, (q31_t)0x4b54825, (q31_t)0x2d5289, (q31_t)0x4c1d054, - (q31_t)0x2e42e2, (q31_t)0x4ce5854, (q31_t)0x2f35b1, (q31_t)0x4dae024, - (q31_t)0x302af5, (q31_t)0x4e767c5, (q31_t)0x3122b0, (q31_t)0x4f3ef35, - (q31_t)0x321ce0, (q31_t)0x5007674, (q31_t)0x331986, (q31_t)0x50cfd82, - (q31_t)0x3418a2, (q31_t)0x519845e, (q31_t)0x351a33, (q31_t)0x5260b08, - (q31_t)0x361e3a, (q31_t)0x532917f, (q31_t)0x3724b6, (q31_t)0x53f17c3, - (q31_t)0x382da8, (q31_t)0x54b9dd3, (q31_t)0x393910, (q31_t)0x55823ae, - (q31_t)0x3a46ed, (q31_t)0x564a955, (q31_t)0x3b573f, (q31_t)0x5712ec7, - (q31_t)0x3c6a07, (q31_t)0x57db403, (q31_t)0x3d7f44, (q31_t)0x58a3908, - (q31_t)0x3e96f6, (q31_t)0x596bdd7, (q31_t)0x3fb11d, (q31_t)0x5a3426f, - (q31_t)0x40cdba, (q31_t)0x5afc6d0, (q31_t)0x41eccc, (q31_t)0x5bc4af8, - (q31_t)0x430e53, (q31_t)0x5c8cee7, (q31_t)0x44324f, (q31_t)0x5d5529e, - (q31_t)0x4558c0, (q31_t)0x5e1d61b, (q31_t)0x4681a6, (q31_t)0x5ee595d, - (q31_t)0x47ad01, (q31_t)0x5fadc66, (q31_t)0x48dad1, (q31_t)0x6075f33, - (q31_t)0x4a0b16, (q31_t)0x613e1c5, (q31_t)0x4b3dcf, (q31_t)0x620641a, - (q31_t)0x4c72fe, (q31_t)0x62ce634, (q31_t)0x4daaa1, (q31_t)0x6396810, - (q31_t)0x4ee4b8, (q31_t)0x645e9af, (q31_t)0x502145, (q31_t)0x6526b10, - (q31_t)0x516045, (q31_t)0x65eec33, (q31_t)0x52a1bb, (q31_t)0x66b6d16, - (q31_t)0x53e5a5, (q31_t)0x677edbb, (q31_t)0x552c03, (q31_t)0x6846e1f, - (q31_t)0x5674d6, (q31_t)0x690ee44, (q31_t)0x57c01d, (q31_t)0x69d6e27, - (q31_t)0x590dd8, (q31_t)0x6a9edc9, (q31_t)0x5a5e07, (q31_t)0x6b66d29, - (q31_t)0x5bb0ab, (q31_t)0x6c2ec48, (q31_t)0x5d05c3, (q31_t)0x6cf6b23, - (q31_t)0x5e5d4e, (q31_t)0x6dbe9bb, (q31_t)0x5fb74e, (q31_t)0x6e86810, - (q31_t)0x6113c2, (q31_t)0x6f4e620, (q31_t)0x6272aa, (q31_t)0x70163eb, - (q31_t)0x63d405, (q31_t)0x70de172, (q31_t)0x6537d4, (q31_t)0x71a5eb3, - (q31_t)0x669e18, (q31_t)0x726dbae, (q31_t)0x6806ce, (q31_t)0x7335862, - (q31_t)0x6971f9, (q31_t)0x73fd4cf, (q31_t)0x6adf97, (q31_t)0x74c50f4, - (q31_t)0x6c4fa8, (q31_t)0x758ccd2, (q31_t)0x6dc22e, (q31_t)0x7654867, - (q31_t)0x6f3726, (q31_t)0x771c3b3, (q31_t)0x70ae92, (q31_t)0x77e3eb5, - (q31_t)0x722871, (q31_t)0x78ab96e, (q31_t)0x73a4c3, (q31_t)0x79733dc, - (q31_t)0x752389, (q31_t)0x7a3adff, (q31_t)0x76a4c2, (q31_t)0x7b027d7, - (q31_t)0x78286e, (q31_t)0x7bca163, (q31_t)0x79ae8c, (q31_t)0x7c91aa3, - (q31_t)0x7b371e, (q31_t)0x7d59396, (q31_t)0x7cc223, (q31_t)0x7e20c3b, - (q31_t)0x7e4f9b, (q31_t)0x7ee8493, (q31_t)0x7fdf85, (q31_t)0x7fafc9c, - (q31_t)0x8171e2, (q31_t)0x8077457, (q31_t)0x8306b2, (q31_t)0x813ebc2, - (q31_t)0x849df4, (q31_t)0x82062de, (q31_t)0x8637a9, (q31_t)0x82cd9a9, - (q31_t)0x87d3d0, (q31_t)0x8395024, (q31_t)0x89726a, (q31_t)0x845c64d, - (q31_t)0x8b1376, (q31_t)0x8523c25, (q31_t)0x8cb6f5, (q31_t)0x85eb1ab, - (q31_t)0x8e5ce5, (q31_t)0x86b26de, (q31_t)0x900548, (q31_t)0x8779bbe, - (q31_t)0x91b01d, (q31_t)0x884104b, (q31_t)0x935d64, (q31_t)0x8908483, - (q31_t)0x950d1d, (q31_t)0x89cf867, (q31_t)0x96bf48, (q31_t)0x8a96bf6, - (q31_t)0x9873e4, (q31_t)0x8b5df30, (q31_t)0x9a2af3, (q31_t)0x8c25213, - (q31_t)0x9be473, (q31_t)0x8cec4a0, (q31_t)0x9da065, (q31_t)0x8db36d6, - (q31_t)0x9f5ec8, (q31_t)0x8e7a8b5, (q31_t)0xa11f9d, (q31_t)0x8f41a3c, - (q31_t)0xa2e2e3, (q31_t)0x9008b6a, (q31_t)0xa4a89b, (q31_t)0x90cfc40, - (q31_t)0xa670c4, (q31_t)0x9196cbc, (q31_t)0xa83b5e, (q31_t)0x925dcdf, - (q31_t)0xaa086a, (q31_t)0x9324ca7, (q31_t)0xabd7e6, (q31_t)0x93ebc14, - (q31_t)0xada9d4, (q31_t)0x94b2b27, (q31_t)0xaf7e33, (q31_t)0x95799dd, - (q31_t)0xb15502, (q31_t)0x9640837, (q31_t)0xb32e42, (q31_t)0x9707635, - (q31_t)0xb509f3, (q31_t)0x97ce3d5, (q31_t)0xb6e815, (q31_t)0x9895118, - (q31_t)0xb8c8a7, (q31_t)0x995bdfd, (q31_t)0xbaabaa, (q31_t)0x9a22a83, - (q31_t)0xbc911d, (q31_t)0x9ae96aa, (q31_t)0xbe7901, (q31_t)0x9bb0271, - (q31_t)0xc06355, (q31_t)0x9c76dd8, (q31_t)0xc25019, (q31_t)0x9d3d8df, - (q31_t)0xc43f4d, (q31_t)0x9e04385, (q31_t)0xc630f2, (q31_t)0x9ecadc9, - (q31_t)0xc82506, (q31_t)0x9f917ac, (q31_t)0xca1b8a, (q31_t)0xa05812c, - (q31_t)0xcc147f, (q31_t)0xa11ea49, (q31_t)0xce0fe3, (q31_t)0xa1e5303, - (q31_t)0xd00db6, (q31_t)0xa2abb59, (q31_t)0xd20dfa, (q31_t)0xa37234a, - (q31_t)0xd410ad, (q31_t)0xa438ad7, (q31_t)0xd615cf, (q31_t)0xa4ff1fe, - (q31_t)0xd81d61, (q31_t)0xa5c58c0, (q31_t)0xda2762, (q31_t)0xa68bf1b, - (q31_t)0xdc33d2, (q31_t)0xa752510, (q31_t)0xde42b2, (q31_t)0xa818a9d, - (q31_t)0xe05401, (q31_t)0xa8defc3, (q31_t)0xe267be, (q31_t)0xa9a5480, - (q31_t)0xe47deb, (q31_t)0xaa6b8d5, (q31_t)0xe69686, (q31_t)0xab31cc1, - (q31_t)0xe8b190, (q31_t)0xabf8043, (q31_t)0xeacf09, (q31_t)0xacbe35b, - (q31_t)0xeceef1, (q31_t)0xad84609, (q31_t)0xef1147, (q31_t)0xae4a84b, - (q31_t)0xf1360b, (q31_t)0xaf10a22, (q31_t)0xf35d3e, (q31_t)0xafd6b8d, - (q31_t)0xf586df, (q31_t)0xb09cc8c, (q31_t)0xf7b2ee, (q31_t)0xb162d1d, - (q31_t)0xf9e16b, (q31_t)0xb228d42, (q31_t)0xfc1257, (q31_t)0xb2eecf8, - (q31_t)0xfe45b0, (q31_t)0xb3b4c40, (q31_t)0x1007b77, (q31_t)0xb47ab19, - (q31_t)0x102b3ac, (q31_t)0xb540982, (q31_t)0x104ee4f, (q31_t)0xb60677c, - (q31_t)0x1072b5f, (q31_t)0xb6cc506, (q31_t)0x1096add, (q31_t)0xb79221f, - (q31_t)0x10bacc8, (q31_t)0xb857ec7, (q31_t)0x10df120, (q31_t)0xb91dafc, - (q31_t)0x11037e6, (q31_t)0xb9e36c0, (q31_t)0x1128119, (q31_t)0xbaa9211, - (q31_t)0x114ccb9, (q31_t)0xbb6ecef, (q31_t)0x1171ac6, (q31_t)0xbc34759, - (q31_t)0x1196b3f, (q31_t)0xbcfa150, (q31_t)0x11bbe26, (q31_t)0xbdbfad1, - (q31_t)0x11e1379, (q31_t)0xbe853de, (q31_t)0x1206b39, (q31_t)0xbf4ac75, - (q31_t)0x122c566, (q31_t)0xc010496, (q31_t)0x12521ff, (q31_t)0xc0d5c41, - (q31_t)0x1278104, (q31_t)0xc19b374, (q31_t)0x129e276, (q31_t)0xc260a31, - (q31_t)0x12c4653, (q31_t)0xc326075, (q31_t)0x12eac9d, (q31_t)0xc3eb641, - (q31_t)0x1311553, (q31_t)0xc4b0b94, (q31_t)0x1338075, (q31_t)0xc57606e, - (q31_t)0x135ee02, (q31_t)0xc63b4ce, (q31_t)0x1385dfb, (q31_t)0xc7008b3, - (q31_t)0x13ad060, (q31_t)0xc7c5c1e, (q31_t)0x13d4530, (q31_t)0xc88af0e, - (q31_t)0x13fbc6c, (q31_t)0xc950182, (q31_t)0x1423613, (q31_t)0xca1537a, - (q31_t)0x144b225, (q31_t)0xcada4f5, (q31_t)0x14730a3, (q31_t)0xcb9f5f3, - (q31_t)0x149b18b, (q31_t)0xcc64673, (q31_t)0x14c34df, (q31_t)0xcd29676, - (q31_t)0x14eba9d, (q31_t)0xcdee5f9, (q31_t)0x15142c6, (q31_t)0xceb34fe, - (q31_t)0x153cd5a, (q31_t)0xcf78383, (q31_t)0x1565a58, (q31_t)0xd03d189, - (q31_t)0x158e9c1, (q31_t)0xd101f0e, (q31_t)0x15b7b94, (q31_t)0xd1c6c11, - (q31_t)0x15e0fd1, (q31_t)0xd28b894, (q31_t)0x160a678, (q31_t)0xd350495, - (q31_t)0x1633f8a, (q31_t)0xd415013, (q31_t)0x165db05, (q31_t)0xd4d9b0e, - (q31_t)0x16878eb, (q31_t)0xd59e586, (q31_t)0x16b193a, (q31_t)0xd662f7b, - (q31_t)0x16dbbf3, (q31_t)0xd7278eb, (q31_t)0x1706115, (q31_t)0xd7ec1d6, - (q31_t)0x17308a1, (q31_t)0xd8b0a3d, (q31_t)0x175b296, (q31_t)0xd97521d, - (q31_t)0x1785ef4, (q31_t)0xda39978, (q31_t)0x17b0dbb, (q31_t)0xdafe04b, - (q31_t)0x17dbeec, (q31_t)0xdbc2698, (q31_t)0x1807285, (q31_t)0xdc86c5d, - (q31_t)0x1832888, (q31_t)0xdd4b19a, (q31_t)0x185e0f3, (q31_t)0xde0f64f, - (q31_t)0x1889bc6, (q31_t)0xded3a7b, (q31_t)0x18b5903, (q31_t)0xdf97e1d, - (q31_t)0x18e18a7, (q31_t)0xe05c135, (q31_t)0x190dab4, (q31_t)0xe1203c3, - (q31_t)0x1939f29, (q31_t)0xe1e45c6, (q31_t)0x1966606, (q31_t)0xe2a873e, - (q31_t)0x1992f4c, (q31_t)0xe36c82a, (q31_t)0x19bfaf9, (q31_t)0xe430889, - (q31_t)0x19ec90d, (q31_t)0xe4f485c, (q31_t)0x1a1998a, (q31_t)0xe5b87a2, - (q31_t)0x1a46c6e, (q31_t)0xe67c65a, (q31_t)0x1a741b9, (q31_t)0xe740483, - (q31_t)0x1aa196c, (q31_t)0xe80421e, (q31_t)0x1acf386, (q31_t)0xe8c7f2a, - (q31_t)0x1afd007, (q31_t)0xe98bba7, (q31_t)0x1b2aef0, (q31_t)0xea4f793, - (q31_t)0x1b5903f, (q31_t)0xeb132ef, (q31_t)0x1b873f5, (q31_t)0xebd6db9, - (q31_t)0x1bb5a11, (q31_t)0xec9a7f3, (q31_t)0x1be4294, (q31_t)0xed5e19a, - (q31_t)0x1c12d7e, (q31_t)0xee21aaf, (q31_t)0x1c41ace, (q31_t)0xeee5331, - (q31_t)0x1c70a84, (q31_t)0xefa8b20, (q31_t)0x1c9fca0, (q31_t)0xf06c27a, - (q31_t)0x1ccf122, (q31_t)0xf12f941, (q31_t)0x1cfe80a, (q31_t)0xf1f2f73, - (q31_t)0x1d2e158, (q31_t)0xf2b650f, (q31_t)0x1d5dd0c, (q31_t)0xf379a16, - (q31_t)0x1d8db25, (q31_t)0xf43ce86, (q31_t)0x1dbdba3, (q31_t)0xf500260, - (q31_t)0x1dede87, (q31_t)0xf5c35a3, (q31_t)0x1e1e3d0, (q31_t)0xf68684e, - (q31_t)0x1e4eb7e, (q31_t)0xf749a61, (q31_t)0x1e7f591, (q31_t)0xf80cbdc, - (q31_t)0x1eb0209, (q31_t)0xf8cfcbe, (q31_t)0x1ee10e5, (q31_t)0xf992d06, - (q31_t)0x1f12227, (q31_t)0xfa55cb4, (q31_t)0x1f435cc, (q31_t)0xfb18bc8, - (q31_t)0x1f74bd6, (q31_t)0xfbdba40, (q31_t)0x1fa6445, (q31_t)0xfc9e81e, - (q31_t)0x1fd7f17, (q31_t)0xfd6155f, (q31_t)0x2009c4e, (q31_t)0xfe24205, - (q31_t)0x203bbe8, (q31_t)0xfee6e0d, (q31_t)0x206dde6, (q31_t)0xffa9979, - (q31_t)0x20a0248, (q31_t)0x1006c446, (q31_t)0x20d290d, (q31_t)0x1012ee76, - (q31_t)0x2105236, (q31_t)0x101f1807, (q31_t)0x2137dc2, (q31_t)0x102b40f8, - (q31_t)0x216abb1, (q31_t)0x1037694b, (q31_t)0x219dc03, (q31_t)0x104390fd, - (q31_t)0x21d0eb8, (q31_t)0x104fb80e, (q31_t)0x22043d0, (q31_t)0x105bde7f, - (q31_t)0x2237b4b, (q31_t)0x1068044e, (q31_t)0x226b528, (q31_t)0x1074297b, - (q31_t)0x229f167, (q31_t)0x10804e06, (q31_t)0x22d3009, (q31_t)0x108c71ee, - (q31_t)0x230710d, (q31_t)0x10989532, (q31_t)0x233b473, (q31_t)0x10a4b7d3, - (q31_t)0x236fa3b, (q31_t)0x10b0d9d0, (q31_t)0x23a4265, (q31_t)0x10bcfb28, - (q31_t)0x23d8cf1, (q31_t)0x10c91bda, (q31_t)0x240d9de, (q31_t)0x10d53be7, - (q31_t)0x244292c, (q31_t)0x10e15b4e, (q31_t)0x2477adc, (q31_t)0x10ed7a0e, - (q31_t)0x24aceed, (q31_t)0x10f99827, (q31_t)0x24e255e, (q31_t)0x1105b599, - (q31_t)0x2517e31, (q31_t)0x1111d263, (q31_t)0x254d965, (q31_t)0x111dee84, - (q31_t)0x25836f9, (q31_t)0x112a09fc, (q31_t)0x25b96ee, (q31_t)0x113624cb, - (q31_t)0x25ef943, (q31_t)0x11423ef0, (q31_t)0x2625df8, (q31_t)0x114e586a, - (q31_t)0x265c50e, (q31_t)0x115a713a, (q31_t)0x2692e83, (q31_t)0x1166895f, - (q31_t)0x26c9a58, (q31_t)0x1172a0d7, (q31_t)0x270088e, (q31_t)0x117eb7a4, - (q31_t)0x2737922, (q31_t)0x118acdc4, (q31_t)0x276ec16, (q31_t)0x1196e337, - (q31_t)0x27a616a, (q31_t)0x11a2f7fc, (q31_t)0x27dd91c, (q31_t)0x11af0c13, - (q31_t)0x281532e, (q31_t)0x11bb1f7c, (q31_t)0x284cf9f, (q31_t)0x11c73235, - (q31_t)0x2884e6e, (q31_t)0x11d3443f, (q31_t)0x28bcf9c, (q31_t)0x11df5599, - (q31_t)0x28f5329, (q31_t)0x11eb6643, (q31_t)0x292d914, (q31_t)0x11f7763c, - (q31_t)0x296615d, (q31_t)0x12038584, (q31_t)0x299ec05, (q31_t)0x120f941a, - (q31_t)0x29d790a, (q31_t)0x121ba1fd, (q31_t)0x2a1086d, (q31_t)0x1227af2e, - (q31_t)0x2a49a2e, (q31_t)0x1233bbac, (q31_t)0x2a82e4d, (q31_t)0x123fc776, - (q31_t)0x2abc4c9, (q31_t)0x124bd28c, (q31_t)0x2af5da2, (q31_t)0x1257dced, - (q31_t)0x2b2f8d8, (q31_t)0x1263e699, (q31_t)0x2b6966c, (q31_t)0x126fef90, - (q31_t)0x2ba365c, (q31_t)0x127bf7d1, (q31_t)0x2bdd8a9, (q31_t)0x1287ff5b, - (q31_t)0x2c17d52, (q31_t)0x1294062f, (q31_t)0x2c52459, (q31_t)0x12a00c4b, - (q31_t)0x2c8cdbb, (q31_t)0x12ac11af, (q31_t)0x2cc7979, (q31_t)0x12b8165b, - (q31_t)0x2d02794, (q31_t)0x12c41a4f, (q31_t)0x2d3d80a, (q31_t)0x12d01d89, - (q31_t)0x2d78add, (q31_t)0x12dc2009, (q31_t)0x2db400a, (q31_t)0x12e821cf, - (q31_t)0x2def794, (q31_t)0x12f422db, (q31_t)0x2e2b178, (q31_t)0x1300232c, - (q31_t)0x2e66db8, (q31_t)0x130c22c1, (q31_t)0x2ea2c53, (q31_t)0x1318219a, - (q31_t)0x2eded49, (q31_t)0x13241fb6, (q31_t)0x2f1b099, (q31_t)0x13301d16, - (q31_t)0x2f57644, (q31_t)0x133c19b8, (q31_t)0x2f93e4a, (q31_t)0x1348159d, - (q31_t)0x2fd08a9, (q31_t)0x135410c3, (q31_t)0x300d563, (q31_t)0x13600b2a, - (q31_t)0x304a477, (q31_t)0x136c04d2, (q31_t)0x30875e5, (q31_t)0x1377fdbb, - (q31_t)0x30c49ad, (q31_t)0x1383f5e3, (q31_t)0x3101fce, (q31_t)0x138fed4b, - (q31_t)0x313f848, (q31_t)0x139be3f2, (q31_t)0x317d31c, (q31_t)0x13a7d9d7, - (q31_t)0x31bb049, (q31_t)0x13b3cefa, (q31_t)0x31f8fcf, (q31_t)0x13bfc35b, - (q31_t)0x32371ae, (q31_t)0x13cbb6f8, (q31_t)0x32755e5, (q31_t)0x13d7a9d3, - (q31_t)0x32b3c75, (q31_t)0x13e39be9, (q31_t)0x32f255e, (q31_t)0x13ef8d3c, - (q31_t)0x333109e, (q31_t)0x13fb7dc9, (q31_t)0x336fe37, (q31_t)0x14076d91, - (q31_t)0x33aee27, (q31_t)0x14135c94, (q31_t)0x33ee070, (q31_t)0x141f4ad1, - (q31_t)0x342d510, (q31_t)0x142b3846, (q31_t)0x346cc07, (q31_t)0x143724f5, - (q31_t)0x34ac556, (q31_t)0x144310dd, (q31_t)0x34ec0fc, (q31_t)0x144efbfc, - (q31_t)0x352bef9, (q31_t)0x145ae653, (q31_t)0x356bf4d, (q31_t)0x1466cfe1, - (q31_t)0x35ac1f7, (q31_t)0x1472b8a5, (q31_t)0x35ec6f8, (q31_t)0x147ea0a0, - (q31_t)0x362ce50, (q31_t)0x148a87d1, (q31_t)0x366d7fd, (q31_t)0x14966e36, - (q31_t)0x36ae401, (q31_t)0x14a253d1, (q31_t)0x36ef25b, (q31_t)0x14ae38a0, - (q31_t)0x373030a, (q31_t)0x14ba1ca3, (q31_t)0x377160f, (q31_t)0x14c5ffd9, - (q31_t)0x37b2b6a, (q31_t)0x14d1e242, (q31_t)0x37f4319, (q31_t)0x14ddc3de, - (q31_t)0x3835d1e, (q31_t)0x14e9a4ac, (q31_t)0x3877978, (q31_t)0x14f584ac, - (q31_t)0x38b9827, (q31_t)0x150163dc, (q31_t)0x38fb92a, (q31_t)0x150d423d, - (q31_t)0x393dc82, (q31_t)0x15191fcf, (q31_t)0x398022f, (q31_t)0x1524fc90, - (q31_t)0x39c2a2f, (q31_t)0x1530d881, (q31_t)0x3a05484, (q31_t)0x153cb3a0, - (q31_t)0x3a4812c, (q31_t)0x15488dee, (q31_t)0x3a8b028, (q31_t)0x1554676a, - (q31_t)0x3ace178, (q31_t)0x15604013, (q31_t)0x3b1151b, (q31_t)0x156c17e9, - (q31_t)0x3b54b11, (q31_t)0x1577eeec, (q31_t)0x3b9835a, (q31_t)0x1583c51b, - (q31_t)0x3bdbdf6, (q31_t)0x158f9a76, (q31_t)0x3c1fae5, (q31_t)0x159b6efb, - (q31_t)0x3c63a26, (q31_t)0x15a742ac, (q31_t)0x3ca7bba, (q31_t)0x15b31587, - (q31_t)0x3cebfa0, (q31_t)0x15bee78c, (q31_t)0x3d305d8, (q31_t)0x15cab8ba, - (q31_t)0x3d74e62, (q31_t)0x15d68911, (q31_t)0x3db993e, (q31_t)0x15e25890, - (q31_t)0x3dfe66c, (q31_t)0x15ee2738, (q31_t)0x3e435ea, (q31_t)0x15f9f507, - (q31_t)0x3e887bb, (q31_t)0x1605c1fd, (q31_t)0x3ecdbdc, (q31_t)0x16118e1a, - (q31_t)0x3f1324e, (q31_t)0x161d595d, (q31_t)0x3f58b10, (q31_t)0x162923c5, - (q31_t)0x3f9e624, (q31_t)0x1634ed53, (q31_t)0x3fe4388, (q31_t)0x1640b606, - (q31_t)0x402a33c, (q31_t)0x164c7ddd, (q31_t)0x4070540, (q31_t)0x165844d8, - (q31_t)0x40b6994, (q31_t)0x16640af7, (q31_t)0x40fd037, (q31_t)0x166fd039, - (q31_t)0x414392b, (q31_t)0x167b949d, (q31_t)0x418a46d, (q31_t)0x16875823, - (q31_t)0x41d11ff, (q31_t)0x16931acb, (q31_t)0x42181e0, (q31_t)0x169edc94, - (q31_t)0x425f410, (q31_t)0x16aa9d7e, (q31_t)0x42a688f, (q31_t)0x16b65d88, - (q31_t)0x42edf5c, (q31_t)0x16c21cb2, (q31_t)0x4335877, (q31_t)0x16cddafb, - (q31_t)0x437d3e1, (q31_t)0x16d99864, (q31_t)0x43c5199, (q31_t)0x16e554ea, - (q31_t)0x440d19e, (q31_t)0x16f1108f, (q31_t)0x44553f2, (q31_t)0x16fccb51, - (q31_t)0x449d892, (q31_t)0x17088531, (q31_t)0x44e5f80, (q31_t)0x17143e2d, - (q31_t)0x452e8bc, (q31_t)0x171ff646, (q31_t)0x4577444, (q31_t)0x172bad7a, - (q31_t)0x45c0219, (q31_t)0x173763c9, (q31_t)0x460923b, (q31_t)0x17431933, - (q31_t)0x46524a9, (q31_t)0x174ecdb8, (q31_t)0x469b963, (q31_t)0x175a8157, - (q31_t)0x46e5069, (q31_t)0x1766340f, (q31_t)0x472e9bc, (q31_t)0x1771e5e0, - (q31_t)0x477855a, (q31_t)0x177d96ca, (q31_t)0x47c2344, (q31_t)0x178946cc, - (q31_t)0x480c379, (q31_t)0x1794f5e6, (q31_t)0x48565f9, (q31_t)0x17a0a417, - (q31_t)0x48a0ac4, (q31_t)0x17ac515f, (q31_t)0x48eb1db, (q31_t)0x17b7fdbd, - (q31_t)0x4935b3c, (q31_t)0x17c3a931, (q31_t)0x49806e7, (q31_t)0x17cf53bb, - (q31_t)0x49cb4dd, (q31_t)0x17dafd59, (q31_t)0x4a1651c, (q31_t)0x17e6a60c, - (q31_t)0x4a617a6, (q31_t)0x17f24dd3, (q31_t)0x4aacc7a, (q31_t)0x17fdf4ae, - (q31_t)0x4af8397, (q31_t)0x18099a9c, (q31_t)0x4b43cfd, (q31_t)0x18153f9d, - (q31_t)0x4b8f8ad, (q31_t)0x1820e3b0, (q31_t)0x4bdb6a6, (q31_t)0x182c86d5, - (q31_t)0x4c276e8, (q31_t)0x1838290c, (q31_t)0x4c73972, (q31_t)0x1843ca53, - (q31_t)0x4cbfe45, (q31_t)0x184f6aab, (q31_t)0x4d0c560, (q31_t)0x185b0a13, - (q31_t)0x4d58ec3, (q31_t)0x1866a88a, (q31_t)0x4da5a6f, (q31_t)0x18724611, - (q31_t)0x4df2862, (q31_t)0x187de2a7, (q31_t)0x4e3f89c, (q31_t)0x18897e4a, - (q31_t)0x4e8cb1e, (q31_t)0x189518fc, (q31_t)0x4ed9fe7, (q31_t)0x18a0b2bb, - (q31_t)0x4f276f7, (q31_t)0x18ac4b87, (q31_t)0x4f7504e, (q31_t)0x18b7e35f, - (q31_t)0x4fc2bec, (q31_t)0x18c37a44, (q31_t)0x50109d0, (q31_t)0x18cf1034, - (q31_t)0x505e9fb, (q31_t)0x18daa52f, (q31_t)0x50acc6b, (q31_t)0x18e63935, - (q31_t)0x50fb121, (q31_t)0x18f1cc45, (q31_t)0x514981d, (q31_t)0x18fd5e5f, - (q31_t)0x519815f, (q31_t)0x1908ef82, (q31_t)0x51e6ce6, (q31_t)0x19147fae, - (q31_t)0x5235ab2, (q31_t)0x19200ee3, (q31_t)0x5284ac3, (q31_t)0x192b9d1f, - (q31_t)0x52d3d18, (q31_t)0x19372a64, (q31_t)0x53231b3, (q31_t)0x1942b6af, - (q31_t)0x5372891, (q31_t)0x194e4201, (q31_t)0x53c21b4, (q31_t)0x1959cc5a, - (q31_t)0x5411d1b, (q31_t)0x196555b8, (q31_t)0x5461ac6, (q31_t)0x1970de1b, - (q31_t)0x54b1ab4, (q31_t)0x197c6584, (q31_t)0x5501ce5, (q31_t)0x1987ebf0, - (q31_t)0x555215a, (q31_t)0x19937161, (q31_t)0x55a2812, (q31_t)0x199ef5d6, - (q31_t)0x55f310d, (q31_t)0x19aa794d, (q31_t)0x5643c4a, (q31_t)0x19b5fbc8, - (q31_t)0x56949ca, (q31_t)0x19c17d44, (q31_t)0x56e598c, (q31_t)0x19ccfdc2, - (q31_t)0x5736b90, (q31_t)0x19d87d42, (q31_t)0x5787fd6, (q31_t)0x19e3fbc3, - (q31_t)0x57d965d, (q31_t)0x19ef7944, (q31_t)0x582af26, (q31_t)0x19faf5c5, - (q31_t)0x587ca31, (q31_t)0x1a067145, (q31_t)0x58ce77c, (q31_t)0x1a11ebc5, - (q31_t)0x5920708, (q31_t)0x1a1d6544, (q31_t)0x59728d5, (q31_t)0x1a28ddc0, - (q31_t)0x59c4ce3, (q31_t)0x1a34553b, (q31_t)0x5a17330, (q31_t)0x1a3fcbb3, - (q31_t)0x5a69bbe, (q31_t)0x1a4b4128, (q31_t)0x5abc68c, (q31_t)0x1a56b599, - (q31_t)0x5b0f399, (q31_t)0x1a622907, (q31_t)0x5b622e6, (q31_t)0x1a6d9b70, - (q31_t)0x5bb5472, (q31_t)0x1a790cd4, (q31_t)0x5c0883d, (q31_t)0x1a847d33, - (q31_t)0x5c5be47, (q31_t)0x1a8fec8c, (q31_t)0x5caf690, (q31_t)0x1a9b5adf, - (q31_t)0x5d03118, (q31_t)0x1aa6c82b, (q31_t)0x5d56ddd, (q31_t)0x1ab23471, - (q31_t)0x5daace1, (q31_t)0x1abd9faf, (q31_t)0x5dfee22, (q31_t)0x1ac909e5, - (q31_t)0x5e531a1, (q31_t)0x1ad47312, (q31_t)0x5ea775e, (q31_t)0x1adfdb37, - (q31_t)0x5efbf58, (q31_t)0x1aeb4253, (q31_t)0x5f5098f, (q31_t)0x1af6a865, - (q31_t)0x5fa5603, (q31_t)0x1b020d6c, (q31_t)0x5ffa4b3, (q31_t)0x1b0d716a, - (q31_t)0x604f5a0, (q31_t)0x1b18d45c, (q31_t)0x60a48c9, (q31_t)0x1b243643, - (q31_t)0x60f9e2e, (q31_t)0x1b2f971e, (q31_t)0x614f5cf, (q31_t)0x1b3af6ec, - (q31_t)0x61a4fac, (q31_t)0x1b4655ae, (q31_t)0x61fabc4, (q31_t)0x1b51b363, - (q31_t)0x6250a18, (q31_t)0x1b5d100a, (q31_t)0x62a6aa6, (q31_t)0x1b686ba3, - (q31_t)0x62fcd6f, (q31_t)0x1b73c62d, (q31_t)0x6353273, (q31_t)0x1b7f1fa9, - (q31_t)0x63a99b1, (q31_t)0x1b8a7815, (q31_t)0x6400329, (q31_t)0x1b95cf71, - (q31_t)0x6456edb, (q31_t)0x1ba125bd, (q31_t)0x64adcc7, (q31_t)0x1bac7af9, - (q31_t)0x6504ced, (q31_t)0x1bb7cf23, (q31_t)0x655bf4c, (q31_t)0x1bc3223c, - (q31_t)0x65b33e4, (q31_t)0x1bce7442, (q31_t)0x660aab5, (q31_t)0x1bd9c537, - (q31_t)0x66623be, (q31_t)0x1be51518, (q31_t)0x66b9f01, (q31_t)0x1bf063e6, - (q31_t)0x6711c7b, (q31_t)0x1bfbb1a0, (q31_t)0x6769c2e, (q31_t)0x1c06fe46, - (q31_t)0x67c1e18, (q31_t)0x1c1249d8, (q31_t)0x681a23a, (q31_t)0x1c1d9454, - (q31_t)0x6872894, (q31_t)0x1c28ddbb, (q31_t)0x68cb124, (q31_t)0x1c34260c, - (q31_t)0x6923bec, (q31_t)0x1c3f6d47, (q31_t)0x697c8eb, (q31_t)0x1c4ab36b, - (q31_t)0x69d5820, (q31_t)0x1c55f878, (q31_t)0x6a2e98b, (q31_t)0x1c613c6d, - (q31_t)0x6a87d2d, (q31_t)0x1c6c7f4a, (q31_t)0x6ae1304, (q31_t)0x1c77c10e, - (q31_t)0x6b3ab12, (q31_t)0x1c8301b9, (q31_t)0x6b94554, (q31_t)0x1c8e414b, - (q31_t)0x6bee1cd, (q31_t)0x1c997fc4, (q31_t)0x6c4807a, (q31_t)0x1ca4bd21, - (q31_t)0x6ca215c, (q31_t)0x1caff965, (q31_t)0x6cfc472, (q31_t)0x1cbb348d, - (q31_t)0x6d569be, (q31_t)0x1cc66e99, (q31_t)0x6db113d, (q31_t)0x1cd1a78a, - (q31_t)0x6e0baf0, (q31_t)0x1cdcdf5e, (q31_t)0x6e666d7, (q31_t)0x1ce81615, - (q31_t)0x6ec14f2, (q31_t)0x1cf34baf, (q31_t)0x6f1c540, (q31_t)0x1cfe802b, - (q31_t)0x6f777c1, (q31_t)0x1d09b389, (q31_t)0x6fd2c75, (q31_t)0x1d14e5c9, - (q31_t)0x702e35c, (q31_t)0x1d2016e9, (q31_t)0x7089c75, (q31_t)0x1d2b46ea, - (q31_t)0x70e57c0, (q31_t)0x1d3675cb, (q31_t)0x714153e, (q31_t)0x1d41a38c, - (q31_t)0x719d4ed, (q31_t)0x1d4cd02c, (q31_t)0x71f96ce, (q31_t)0x1d57fbaa, - (q31_t)0x7255ae0, (q31_t)0x1d632608, (q31_t)0x72b2123, (q31_t)0x1d6e4f43, - (q31_t)0x730e997, (q31_t)0x1d79775c, (q31_t)0x736b43c, (q31_t)0x1d849e51, - (q31_t)0x73c8111, (q31_t)0x1d8fc424, (q31_t)0x7425016, (q31_t)0x1d9ae8d2, - (q31_t)0x748214c, (q31_t)0x1da60c5d, (q31_t)0x74df4b1, (q31_t)0x1db12ec3, - (q31_t)0x753ca46, (q31_t)0x1dbc5004, (q31_t)0x759a20a, (q31_t)0x1dc7701f, - (q31_t)0x75f7bfe, (q31_t)0x1dd28f15, (q31_t)0x7655820, (q31_t)0x1dddace4, - (q31_t)0x76b3671, (q31_t)0x1de8c98c, (q31_t)0x77116f0, (q31_t)0x1df3e50d, - (q31_t)0x776f99d, (q31_t)0x1dfeff67, (q31_t)0x77cde79, (q31_t)0x1e0a1898, - (q31_t)0x782c582, (q31_t)0x1e1530a1, (q31_t)0x788aeb9, (q31_t)0x1e204781, - (q31_t)0x78e9a1d, (q31_t)0x1e2b5d38, (q31_t)0x79487ae, (q31_t)0x1e3671c5, - (q31_t)0x79a776c, (q31_t)0x1e418528, (q31_t)0x7a06957, (q31_t)0x1e4c9760, - (q31_t)0x7a65d6e, (q31_t)0x1e57a86d, (q31_t)0x7ac53b1, (q31_t)0x1e62b84f, - (q31_t)0x7b24c20, (q31_t)0x1e6dc705, (q31_t)0x7b846ba, (q31_t)0x1e78d48e, - (q31_t)0x7be4381, (q31_t)0x1e83e0eb, (q31_t)0x7c44272, (q31_t)0x1e8eec1b, - (q31_t)0x7ca438f, (q31_t)0x1e99f61d, (q31_t)0x7d046d6, (q31_t)0x1ea4fef0, - (q31_t)0x7d64c47, (q31_t)0x1eb00696, (q31_t)0x7dc53e3, (q31_t)0x1ebb0d0d, - (q31_t)0x7e25daa, (q31_t)0x1ec61254, (q31_t)0x7e8699a, (q31_t)0x1ed1166b, - (q31_t)0x7ee77b3, (q31_t)0x1edc1953, (q31_t)0x7f487f6, (q31_t)0x1ee71b0a, - (q31_t)0x7fa9a62, (q31_t)0x1ef21b90, (q31_t)0x800aef7, (q31_t)0x1efd1ae4, - (q31_t)0x806c5b5, (q31_t)0x1f081907, (q31_t)0x80cde9b, (q31_t)0x1f1315f7, - (q31_t)0x812f9a9, (q31_t)0x1f1e11b5, (q31_t)0x81916df, (q31_t)0x1f290c3f, - (q31_t)0x81f363d, (q31_t)0x1f340596, (q31_t)0x82557c3, (q31_t)0x1f3efdb9, - (q31_t)0x82b7b70, (q31_t)0x1f49f4a8, (q31_t)0x831a143, (q31_t)0x1f54ea62, - (q31_t)0x837c93e, (q31_t)0x1f5fdee6, (q31_t)0x83df35f, (q31_t)0x1f6ad235, - (q31_t)0x8441fa6, (q31_t)0x1f75c44e, (q31_t)0x84a4e14, (q31_t)0x1f80b531, - (q31_t)0x8507ea7, (q31_t)0x1f8ba4dc, (q31_t)0x856b160, (q31_t)0x1f969350, - (q31_t)0x85ce63e, (q31_t)0x1fa1808c, (q31_t)0x8631d42, (q31_t)0x1fac6c91, - (q31_t)0x869566a, (q31_t)0x1fb7575c, (q31_t)0x86f91b7, (q31_t)0x1fc240ef, - (q31_t)0x875cf28, (q31_t)0x1fcd2948, (q31_t)0x87c0ebd, (q31_t)0x1fd81067, - (q31_t)0x8825077, (q31_t)0x1fe2f64c, (q31_t)0x8889454, (q31_t)0x1feddaf6, - (q31_t)0x88eda54, (q31_t)0x1ff8be65, (q31_t)0x8952278, (q31_t)0x2003a099, - (q31_t)0x89b6cbf, (q31_t)0x200e8190, (q31_t)0x8a1b928, (q31_t)0x2019614c, - (q31_t)0x8a807b4, (q31_t)0x20243fca, (q31_t)0x8ae5862, (q31_t)0x202f1d0b, - (q31_t)0x8b4ab32, (q31_t)0x2039f90f, (q31_t)0x8bb0023, (q31_t)0x2044d3d4, - (q31_t)0x8c15736, (q31_t)0x204fad5b, (q31_t)0x8c7b06b, (q31_t)0x205a85a3, - (q31_t)0x8ce0bc0, (q31_t)0x20655cac, (q31_t)0x8d46936, (q31_t)0x20703275, - (q31_t)0x8dac8cd, (q31_t)0x207b06fe, (q31_t)0x8e12a84, (q31_t)0x2085da46, - (q31_t)0x8e78e5b, (q31_t)0x2090ac4d, (q31_t)0x8edf452, (q31_t)0x209b7d13, - (q31_t)0x8f45c68, (q31_t)0x20a64c97, (q31_t)0x8fac69e, (q31_t)0x20b11ad9, - (q31_t)0x90132f2, (q31_t)0x20bbe7d8, (q31_t)0x907a166, (q31_t)0x20c6b395, - (q31_t)0x90e11f7, (q31_t)0x20d17e0d, (q31_t)0x91484a8, (q31_t)0x20dc4742, - (q31_t)0x91af976, (q31_t)0x20e70f32, (q31_t)0x9217062, (q31_t)0x20f1d5de, - (q31_t)0x927e96b, (q31_t)0x20fc9b44, (q31_t)0x92e6492, (q31_t)0x21075f65, - (q31_t)0x934e1d6, (q31_t)0x21122240, (q31_t)0x93b6137, (q31_t)0x211ce3d5, - (q31_t)0x941e2b4, (q31_t)0x2127a423, (q31_t)0x948664d, (q31_t)0x21326329, - (q31_t)0x94eec03, (q31_t)0x213d20e8, (q31_t)0x95573d4, (q31_t)0x2147dd5f, - (q31_t)0x95bfdc1, (q31_t)0x2152988d, (q31_t)0x96289c9, (q31_t)0x215d5273, - (q31_t)0x96917ec, (q31_t)0x21680b0f, (q31_t)0x96fa82a, (q31_t)0x2172c262, - (q31_t)0x9763a83, (q31_t)0x217d786a, (q31_t)0x97ccef5, (q31_t)0x21882d28, - (q31_t)0x9836582, (q31_t)0x2192e09b, (q31_t)0x989fe29, (q31_t)0x219d92c2, - (q31_t)0x99098e9, (q31_t)0x21a8439e, (q31_t)0x99735c2, (q31_t)0x21b2f32e, - (q31_t)0x99dd4b4, (q31_t)0x21bda171, (q31_t)0x9a475bf, (q31_t)0x21c84e67, - (q31_t)0x9ab18e3, (q31_t)0x21d2fa0f, (q31_t)0x9b1be1e, (q31_t)0x21dda46a, - (q31_t)0x9b86572, (q31_t)0x21e84d76, (q31_t)0x9bf0edd, (q31_t)0x21f2f534, - (q31_t)0x9c5ba60, (q31_t)0x21fd9ba3, (q31_t)0x9cc67fa, (q31_t)0x220840c2, - (q31_t)0x9d317ab, (q31_t)0x2212e492, (q31_t)0x9d9c973, (q31_t)0x221d8711, - (q31_t)0x9e07d51, (q31_t)0x2228283f, (q31_t)0x9e73346, (q31_t)0x2232c81c, - (q31_t)0x9edeb50, (q31_t)0x223d66a8, (q31_t)0x9f4a570, (q31_t)0x224803e2, - (q31_t)0x9fb61a5, (q31_t)0x22529fca, (q31_t)0xa021fef, (q31_t)0x225d3a5e, - (q31_t)0xa08e04f, (q31_t)0x2267d3a0, (q31_t)0xa0fa2c3, (q31_t)0x22726b8e, - (q31_t)0xa16674b, (q31_t)0x227d0228, (q31_t)0xa1d2de7, (q31_t)0x2287976e, - (q31_t)0xa23f698, (q31_t)0x22922b5e, (q31_t)0xa2ac15b, (q31_t)0x229cbdfa, - (q31_t)0xa318e32, (q31_t)0x22a74f40, (q31_t)0xa385d1d, (q31_t)0x22b1df30, - (q31_t)0xa3f2e19, (q31_t)0x22bc6dca, (q31_t)0xa460129, (q31_t)0x22c6fb0c, - (q31_t)0xa4cd64b, (q31_t)0x22d186f8, (q31_t)0xa53ad7e, (q31_t)0x22dc118c, - (q31_t)0xa5a86c4, (q31_t)0x22e69ac8, (q31_t)0xa61621b, (q31_t)0x22f122ab, - (q31_t)0xa683f83, (q31_t)0x22fba936, (q31_t)0xa6f1efc, (q31_t)0x23062e67, - (q31_t)0xa760086, (q31_t)0x2310b23e, (q31_t)0xa7ce420, (q31_t)0x231b34bc, - (q31_t)0xa83c9ca, (q31_t)0x2325b5df, (q31_t)0xa8ab184, (q31_t)0x233035a7, - (q31_t)0xa919b4e, (q31_t)0x233ab414, (q31_t)0xa988727, (q31_t)0x23453125, - (q31_t)0xa9f750f, (q31_t)0x234facda, (q31_t)0xaa66506, (q31_t)0x235a2733, - (q31_t)0xaad570c, (q31_t)0x2364a02e, (q31_t)0xab44b1f, (q31_t)0x236f17cc, - (q31_t)0xabb4141, (q31_t)0x23798e0d, (q31_t)0xac23971, (q31_t)0x238402ef, - (q31_t)0xac933ae, (q31_t)0x238e7673, (q31_t)0xad02ff8, (q31_t)0x2398e898, - (q31_t)0xad72e4f, (q31_t)0x23a3595e, (q31_t)0xade2eb3, (q31_t)0x23adc8c4, - (q31_t)0xae53123, (q31_t)0x23b836ca, (q31_t)0xaec35a0, (q31_t)0x23c2a36f, - (q31_t)0xaf33c28, (q31_t)0x23cd0eb3, (q31_t)0xafa44bc, (q31_t)0x23d77896, - (q31_t)0xb014f5b, (q31_t)0x23e1e117, (q31_t)0xb085c05, (q31_t)0x23ec4837, - (q31_t)0xb0f6aba, (q31_t)0x23f6adf3, (q31_t)0xb167b79, (q31_t)0x2401124d, - (q31_t)0xb1d8e43, (q31_t)0x240b7543, (q31_t)0xb24a316, (q31_t)0x2415d6d5, - (q31_t)0xb2bb9f4, (q31_t)0x24203704, (q31_t)0xb32d2da, (q31_t)0x242a95ce, - (q31_t)0xb39edca, (q31_t)0x2434f332, (q31_t)0xb410ac3, (q31_t)0x243f4f32, - (q31_t)0xb4829c4, (q31_t)0x2449a9cc, (q31_t)0xb4f4acd, (q31_t)0x245402ff, - (q31_t)0xb566ddf, (q31_t)0x245e5acc, (q31_t)0xb5d92f8, (q31_t)0x2468b132, - (q31_t)0xb64ba19, (q31_t)0x24730631, (q31_t)0xb6be341, (q31_t)0x247d59c8, - (q31_t)0xb730e70, (q31_t)0x2487abf7, (q31_t)0xb7a3ba5, (q31_t)0x2491fcbe, - (q31_t)0xb816ae1, (q31_t)0x249c4c1b, (q31_t)0xb889c23, (q31_t)0x24a69a0f, - (q31_t)0xb8fcf6b, (q31_t)0x24b0e699, (q31_t)0xb9704b9, (q31_t)0x24bb31ba, - (q31_t)0xb9e3c0b, (q31_t)0x24c57b6f, (q31_t)0xba57563, (q31_t)0x24cfc3ba, - (q31_t)0xbacb0bf, (q31_t)0x24da0a9a, (q31_t)0xbb3ee20, (q31_t)0x24e4500e, - (q31_t)0xbbb2d85, (q31_t)0x24ee9415, (q31_t)0xbc26eee, (q31_t)0x24f8d6b0, - (q31_t)0xbc9b25a, (q31_t)0x250317df, (q31_t)0xbd0f7ca, (q31_t)0x250d57a0, - (q31_t)0xbd83f3d, (q31_t)0x251795f3, (q31_t)0xbdf88b3, (q31_t)0x2521d2d8, - (q31_t)0xbe6d42b, (q31_t)0x252c0e4f, (q31_t)0xbee21a5, (q31_t)0x25364857, - (q31_t)0xbf57121, (q31_t)0x254080ef, (q31_t)0xbfcc29f, (q31_t)0x254ab818, - (q31_t)0xc04161e, (q31_t)0x2554edd1, (q31_t)0xc0b6b9e, (q31_t)0x255f2219, - (q31_t)0xc12c31f, (q31_t)0x256954f1, (q31_t)0xc1a1ca0, (q31_t)0x25738657, - (q31_t)0xc217822, (q31_t)0x257db64c, (q31_t)0xc28d5a3, (q31_t)0x2587e4cf, - (q31_t)0xc303524, (q31_t)0x259211df, (q31_t)0xc3796a5, (q31_t)0x259c3d7c, - (q31_t)0xc3efa25, (q31_t)0x25a667a7, (q31_t)0xc465fa3, (q31_t)0x25b0905d, - (q31_t)0xc4dc720, (q31_t)0x25bab7a0, (q31_t)0xc55309b, (q31_t)0x25c4dd6e, - (q31_t)0xc5c9c14, (q31_t)0x25cf01c8, (q31_t)0xc64098b, (q31_t)0x25d924ac, - (q31_t)0xc6b78ff, (q31_t)0x25e3461b, (q31_t)0xc72ea70, (q31_t)0x25ed6614, - (q31_t)0xc7a5dde, (q31_t)0x25f78497, (q31_t)0xc81d349, (q31_t)0x2601a1a2, - (q31_t)0xc894aaf, (q31_t)0x260bbd37, (q31_t)0xc90c412, (q31_t)0x2615d754, - (q31_t)0xc983f70, (q31_t)0x261feffa, (q31_t)0xc9fbcca, (q31_t)0x262a0727, - (q31_t)0xca73c1e, (q31_t)0x26341cdb, (q31_t)0xcaebd6e, (q31_t)0x263e3117, - (q31_t)0xcb640b8, (q31_t)0x264843d9, (q31_t)0xcbdc5fc, (q31_t)0x26525521, - (q31_t)0xcc54d3a, (q31_t)0x265c64ef, (q31_t)0xcccd671, (q31_t)0x26667342, - (q31_t)0xcd461a2, (q31_t)0x2670801a, (q31_t)0xcdbeecc, (q31_t)0x267a8b77, - (q31_t)0xce37def, (q31_t)0x26849558, (q31_t)0xceb0f0a, (q31_t)0x268e9dbd, - (q31_t)0xcf2a21d, (q31_t)0x2698a4a6, (q31_t)0xcfa3729, (q31_t)0x26a2aa11, - (q31_t)0xd01ce2b, (q31_t)0x26acadff, (q31_t)0xd096725, (q31_t)0x26b6b070, - (q31_t)0xd110216, (q31_t)0x26c0b162, (q31_t)0xd189efe, (q31_t)0x26cab0d6, - (q31_t)0xd203ddc, (q31_t)0x26d4aecb, (q31_t)0xd27deb0, (q31_t)0x26deab41, - (q31_t)0xd2f817b, (q31_t)0x26e8a637, (q31_t)0xd37263a, (q31_t)0x26f29fad, - (q31_t)0xd3eccef, (q31_t)0x26fc97a3, (q31_t)0xd467599, (q31_t)0x27068e18, - (q31_t)0xd4e2037, (q31_t)0x2710830c, (q31_t)0xd55ccca, (q31_t)0x271a767e, - (q31_t)0xd5d7b50, (q31_t)0x2724686e, (q31_t)0xd652bcb, (q31_t)0x272e58dc, - (q31_t)0xd6cde39, (q31_t)0x273847c8, (q31_t)0xd74929a, (q31_t)0x27423530, - (q31_t)0xd7c48ee, (q31_t)0x274c2115, (q31_t)0xd840134, (q31_t)0x27560b76, - (q31_t)0xd8bbb6d, (q31_t)0x275ff452, (q31_t)0xd937798, (q31_t)0x2769dbaa, - (q31_t)0xd9b35b4, (q31_t)0x2773c17d, (q31_t)0xda2f5c2, (q31_t)0x277da5cb, - (q31_t)0xdaab7c0, (q31_t)0x27878893, (q31_t)0xdb27bb0, (q31_t)0x279169d5, - (q31_t)0xdba4190, (q31_t)0x279b4990, (q31_t)0xdc20960, (q31_t)0x27a527c4, - (q31_t)0xdc9d320, (q31_t)0x27af0472, (q31_t)0xdd19ed0, (q31_t)0x27b8df97, - (q31_t)0xdd96c6f, (q31_t)0x27c2b934, (q31_t)0xde13bfd, (q31_t)0x27cc9149, - (q31_t)0xde90d79, (q31_t)0x27d667d5, (q31_t)0xdf0e0e4, (q31_t)0x27e03cd8, - (q31_t)0xdf8b63d, (q31_t)0x27ea1052, (q31_t)0xe008d84, (q31_t)0x27f3e241, - (q31_t)0xe0866b8, (q31_t)0x27fdb2a7, (q31_t)0xe1041d9, (q31_t)0x28078181, - (q31_t)0xe181ee8, (q31_t)0x28114ed0, (q31_t)0xe1ffde2, (q31_t)0x281b1a94, - (q31_t)0xe27dec9, (q31_t)0x2824e4cc, (q31_t)0xe2fc19c, (q31_t)0x282ead78, - (q31_t)0xe37a65b, (q31_t)0x28387498, (q31_t)0xe3f8d05, (q31_t)0x28423a2a, - (q31_t)0xe47759a, (q31_t)0x284bfe2f, (q31_t)0xe4f6019, (q31_t)0x2855c0a6, - (q31_t)0xe574c84, (q31_t)0x285f8190, (q31_t)0xe5f3ad8, (q31_t)0x286940ea, - (q31_t)0xe672b16, (q31_t)0x2872feb6, (q31_t)0xe6f1d3d, (q31_t)0x287cbaf3, - (q31_t)0xe77114e, (q31_t)0x288675a0, (q31_t)0xe7f0748, (q31_t)0x28902ebd, - (q31_t)0xe86ff2a, (q31_t)0x2899e64a, (q31_t)0xe8ef8f4, (q31_t)0x28a39c46, - (q31_t)0xe96f4a7, (q31_t)0x28ad50b1, (q31_t)0xe9ef241, (q31_t)0x28b7038b, - (q31_t)0xea6f1c2, (q31_t)0x28c0b4d2, (q31_t)0xeaef32b, (q31_t)0x28ca6488, - (q31_t)0xeb6f67a, (q31_t)0x28d412ab, (q31_t)0xebefbb0, (q31_t)0x28ddbf3b, - (q31_t)0xec702cb, (q31_t)0x28e76a37, (q31_t)0xecf0bcd, (q31_t)0x28f113a0, - (q31_t)0xed716b4, (q31_t)0x28fabb75, (q31_t)0xedf2380, (q31_t)0x290461b5, - (q31_t)0xee73231, (q31_t)0x290e0661, (q31_t)0xeef42c7, (q31_t)0x2917a977, - (q31_t)0xef75541, (q31_t)0x29214af8, (q31_t)0xeff699f, (q31_t)0x292aeae3, - (q31_t)0xf077fe1, (q31_t)0x29348937, (q31_t)0xf0f9805, (q31_t)0x293e25f5, - (q31_t)0xf17b20d, (q31_t)0x2947c11c, (q31_t)0xf1fcdf8, (q31_t)0x29515aab, - (q31_t)0xf27ebc5, (q31_t)0x295af2a3, (q31_t)0xf300b74, (q31_t)0x29648902, - (q31_t)0xf382d05, (q31_t)0x296e1dc9, (q31_t)0xf405077, (q31_t)0x2977b0f7, - (q31_t)0xf4875ca, (q31_t)0x2981428c, (q31_t)0xf509cfe, (q31_t)0x298ad287, - (q31_t)0xf58c613, (q31_t)0x299460e8, (q31_t)0xf60f108, (q31_t)0x299dedaf, - (q31_t)0xf691ddd, (q31_t)0x29a778db, (q31_t)0xf714c91, (q31_t)0x29b1026c, - (q31_t)0xf797d24, (q31_t)0x29ba8a61, (q31_t)0xf81af97, (q31_t)0x29c410ba, - (q31_t)0xf89e3e8, (q31_t)0x29cd9578, (q31_t)0xf921a17, (q31_t)0x29d71899, - (q31_t)0xf9a5225, (q31_t)0x29e09a1c, (q31_t)0xfa28c10, (q31_t)0x29ea1a03, - (q31_t)0xfaac7d8, (q31_t)0x29f3984c, (q31_t)0xfb3057d, (q31_t)0x29fd14f6, - (q31_t)0xfbb4500, (q31_t)0x2a069003, (q31_t)0xfc3865e, (q31_t)0x2a100970, - (q31_t)0xfcbc999, (q31_t)0x2a19813f, (q31_t)0xfd40eaf, (q31_t)0x2a22f76e, - (q31_t)0xfdc55a1, (q31_t)0x2a2c6bfd, (q31_t)0xfe49e6d, (q31_t)0x2a35deeb, - (q31_t)0xfece915, (q31_t)0x2a3f503a, (q31_t)0xff53597, (q31_t)0x2a48bfe7, - (q31_t)0xffd83f4, (q31_t)0x2a522df3, (q31_t)0x1005d42a, (q31_t)0x2a5b9a5d, - (q31_t)0x100e2639, (q31_t)0x2a650525, (q31_t)0x10167a22, (q31_t)0x2a6e6e4b, - (q31_t)0x101ecfe4, (q31_t)0x2a77d5ce, (q31_t)0x1027277e, (q31_t)0x2a813bae, - (q31_t)0x102f80f1, (q31_t)0x2a8a9fea, (q31_t)0x1037dc3b, (q31_t)0x2a940283, - (q31_t)0x1040395d, (q31_t)0x2a9d6377, (q31_t)0x10489856, (q31_t)0x2aa6c2c6, - (q31_t)0x1050f926, (q31_t)0x2ab02071, (q31_t)0x10595bcd, (q31_t)0x2ab97c77, - (q31_t)0x1061c04a, (q31_t)0x2ac2d6d6, (q31_t)0x106a269d, (q31_t)0x2acc2f90, - (q31_t)0x10728ec6, (q31_t)0x2ad586a3, (q31_t)0x107af8c4, (q31_t)0x2adedc10, - (q31_t)0x10836497, (q31_t)0x2ae82fd5, (q31_t)0x108bd23f, (q31_t)0x2af181f3, - (q31_t)0x109441bb, (q31_t)0x2afad269, (q31_t)0x109cb30b, (q31_t)0x2b042137, - (q31_t)0x10a5262f, (q31_t)0x2b0d6e5c, (q31_t)0x10ad9b26, (q31_t)0x2b16b9d9, - (q31_t)0x10b611f1, (q31_t)0x2b2003ac, (q31_t)0x10be8a8d, (q31_t)0x2b294bd5, - (q31_t)0x10c704fd, (q31_t)0x2b329255, (q31_t)0x10cf813e, (q31_t)0x2b3bd72a, - (q31_t)0x10d7ff51, (q31_t)0x2b451a55, (q31_t)0x10e07f36, (q31_t)0x2b4e5bd4, - (q31_t)0x10e900ec, (q31_t)0x2b579ba8, (q31_t)0x10f18472, (q31_t)0x2b60d9d0, - (q31_t)0x10fa09c9, (q31_t)0x2b6a164d, (q31_t)0x110290f0, (q31_t)0x2b73511c, - (q31_t)0x110b19e7, (q31_t)0x2b7c8a3f, (q31_t)0x1113a4ad, (q31_t)0x2b85c1b5, - (q31_t)0x111c3142, (q31_t)0x2b8ef77d, (q31_t)0x1124bfa6, (q31_t)0x2b982b97, - (q31_t)0x112d4fd9, (q31_t)0x2ba15e03, (q31_t)0x1135e1d9, (q31_t)0x2baa8ec0, - (q31_t)0x113e75a8, (q31_t)0x2bb3bdce, (q31_t)0x11470b44, (q31_t)0x2bbceb2d, - (q31_t)0x114fa2ad, (q31_t)0x2bc616dd, (q31_t)0x11583be2, (q31_t)0x2bcf40dc, - (q31_t)0x1160d6e5, (q31_t)0x2bd8692b, (q31_t)0x116973b3, (q31_t)0x2be18fc9, - (q31_t)0x1172124d, (q31_t)0x2beab4b6, (q31_t)0x117ab2b3, (q31_t)0x2bf3d7f2, - (q31_t)0x118354e4, (q31_t)0x2bfcf97c, (q31_t)0x118bf8e0, (q31_t)0x2c061953, - (q31_t)0x11949ea6, (q31_t)0x2c0f3779, (q31_t)0x119d4636, (q31_t)0x2c1853eb, - (q31_t)0x11a5ef90, (q31_t)0x2c216eaa, (q31_t)0x11ae9ab4, (q31_t)0x2c2a87b6, - (q31_t)0x11b747a0, (q31_t)0x2c339f0e, (q31_t)0x11bff656, (q31_t)0x2c3cb4b1, - (q31_t)0x11c8a6d4, (q31_t)0x2c45c8a0, (q31_t)0x11d1591a, (q31_t)0x2c4edada, - (q31_t)0x11da0d28, (q31_t)0x2c57eb5e, (q31_t)0x11e2c2fd, (q31_t)0x2c60fa2d, - (q31_t)0x11eb7a9a, (q31_t)0x2c6a0746, (q31_t)0x11f433fd, (q31_t)0x2c7312a9, - (q31_t)0x11fcef27, (q31_t)0x2c7c1c55, (q31_t)0x1205ac17, (q31_t)0x2c85244a, - (q31_t)0x120e6acc, (q31_t)0x2c8e2a87, (q31_t)0x12172b48, (q31_t)0x2c972f0d, - (q31_t)0x121fed88, (q31_t)0x2ca031da, (q31_t)0x1228b18d, (q31_t)0x2ca932ef, - (q31_t)0x12317756, (q31_t)0x2cb2324c, (q31_t)0x123a3ee4, (q31_t)0x2cbb2fef, - (q31_t)0x12430835, (q31_t)0x2cc42bd9, (q31_t)0x124bd34a, (q31_t)0x2ccd2609, - (q31_t)0x1254a021, (q31_t)0x2cd61e7f, (q31_t)0x125d6ebc, (q31_t)0x2cdf153a, - (q31_t)0x12663f19, (q31_t)0x2ce80a3a, (q31_t)0x126f1138, (q31_t)0x2cf0fd80, - (q31_t)0x1277e518, (q31_t)0x2cf9ef09, (q31_t)0x1280babb, (q31_t)0x2d02ded7, - (q31_t)0x1289921e, (q31_t)0x2d0bcce8, (q31_t)0x12926b41, (q31_t)0x2d14b93d, - (q31_t)0x129b4626, (q31_t)0x2d1da3d5, (q31_t)0x12a422ca, (q31_t)0x2d268cb0, - (q31_t)0x12ad012e, (q31_t)0x2d2f73cd, (q31_t)0x12b5e151, (q31_t)0x2d38592c, - (q31_t)0x12bec333, (q31_t)0x2d413ccd, (q31_t)0x12c7a6d4, (q31_t)0x2d4a1eaf, - (q31_t)0x12d08c33, (q31_t)0x2d52fed2, (q31_t)0x12d97350, (q31_t)0x2d5bdd36, - (q31_t)0x12e25c2b, (q31_t)0x2d64b9da, (q31_t)0x12eb46c3, (q31_t)0x2d6d94bf, - (q31_t)0x12f43318, (q31_t)0x2d766de2, (q31_t)0x12fd2129, (q31_t)0x2d7f4545, - (q31_t)0x130610f7, (q31_t)0x2d881ae8, (q31_t)0x130f0280, (q31_t)0x2d90eec8, - (q31_t)0x1317f5c6, (q31_t)0x2d99c0e7, (q31_t)0x1320eac6, (q31_t)0x2da29144, - (q31_t)0x1329e181, (q31_t)0x2dab5fdf, (q31_t)0x1332d9f7, (q31_t)0x2db42cb6, - (q31_t)0x133bd427, (q31_t)0x2dbcf7cb, (q31_t)0x1344d011, (q31_t)0x2dc5c11c, - (q31_t)0x134dcdb4, (q31_t)0x2dce88aa, (q31_t)0x1356cd11, (q31_t)0x2dd74e73, - (q31_t)0x135fce26, (q31_t)0x2de01278, (q31_t)0x1368d0f3, (q31_t)0x2de8d4b8, - (q31_t)0x1371d579, (q31_t)0x2df19534, (q31_t)0x137adbb6, (q31_t)0x2dfa53e9, - (q31_t)0x1383e3ab, (q31_t)0x2e0310d9, (q31_t)0x138ced57, (q31_t)0x2e0bcc03, - (q31_t)0x1395f8ba, (q31_t)0x2e148566, (q31_t)0x139f05d3, (q31_t)0x2e1d3d03, - (q31_t)0x13a814a2, (q31_t)0x2e25f2d8, (q31_t)0x13b12526, (q31_t)0x2e2ea6e6, - (q31_t)0x13ba3760, (q31_t)0x2e37592c, (q31_t)0x13c34b4f, (q31_t)0x2e4009aa, - (q31_t)0x13cc60f2, (q31_t)0x2e48b860, (q31_t)0x13d5784a, (q31_t)0x2e51654c, - (q31_t)0x13de9156, (q31_t)0x2e5a1070, (q31_t)0x13e7ac15, (q31_t)0x2e62b9ca, - (q31_t)0x13f0c887, (q31_t)0x2e6b615a, (q31_t)0x13f9e6ad, (q31_t)0x2e740720, - (q31_t)0x14030684, (q31_t)0x2e7cab1c, (q31_t)0x140c280e, (q31_t)0x2e854d4d, - (q31_t)0x14154b4a, (q31_t)0x2e8dedb3, (q31_t)0x141e7037, (q31_t)0x2e968c4d, - (q31_t)0x142796d5, (q31_t)0x2e9f291b, (q31_t)0x1430bf24, (q31_t)0x2ea7c41e, - (q31_t)0x1439e923, (q31_t)0x2eb05d53, (q31_t)0x144314d3, (q31_t)0x2eb8f4bc, - (q31_t)0x144c4232, (q31_t)0x2ec18a58, (q31_t)0x14557140, (q31_t)0x2eca1e27, - (q31_t)0x145ea1fd, (q31_t)0x2ed2b027, (q31_t)0x1467d469, (q31_t)0x2edb405a, - (q31_t)0x14710883, (q31_t)0x2ee3cebe, (q31_t)0x147a3e4b, (q31_t)0x2eec5b53, - (q31_t)0x148375c1, (q31_t)0x2ef4e619, (q31_t)0x148caee4, (q31_t)0x2efd6f10, - (q31_t)0x1495e9b3, (q31_t)0x2f05f637, (q31_t)0x149f2630, (q31_t)0x2f0e7b8e, - (q31_t)0x14a86458, (q31_t)0x2f16ff14, (q31_t)0x14b1a42c, (q31_t)0x2f1f80ca, - (q31_t)0x14bae5ab, (q31_t)0x2f2800af, (q31_t)0x14c428d6, (q31_t)0x2f307ec2, - (q31_t)0x14cd6dab, (q31_t)0x2f38fb03, (q31_t)0x14d6b42b, (q31_t)0x2f417573, - (q31_t)0x14dffc54, (q31_t)0x2f49ee0f, (q31_t)0x14e94627, (q31_t)0x2f5264da, - (q31_t)0x14f291a4, (q31_t)0x2f5ad9d1, (q31_t)0x14fbdec9, (q31_t)0x2f634cf5, - (q31_t)0x15052d97, (q31_t)0x2f6bbe45, (q31_t)0x150e7e0d, (q31_t)0x2f742dc1, - (q31_t)0x1517d02b, (q31_t)0x2f7c9b69, (q31_t)0x152123f0, (q31_t)0x2f85073c, - (q31_t)0x152a795d, (q31_t)0x2f8d713a, (q31_t)0x1533d070, (q31_t)0x2f95d963, - (q31_t)0x153d292a, (q31_t)0x2f9e3fb6, (q31_t)0x15468389, (q31_t)0x2fa6a433, - (q31_t)0x154fdf8f, (q31_t)0x2faf06da, (q31_t)0x15593d3a, (q31_t)0x2fb767aa, - (q31_t)0x15629c89, (q31_t)0x2fbfc6a3, (q31_t)0x156bfd7d, (q31_t)0x2fc823c5, - (q31_t)0x15756016, (q31_t)0x2fd07f0f, (q31_t)0x157ec452, (q31_t)0x2fd8d882, - (q31_t)0x15882a32, (q31_t)0x2fe1301c, (q31_t)0x159191b5, (q31_t)0x2fe985de, - (q31_t)0x159afadb, (q31_t)0x2ff1d9c7, (q31_t)0x15a465a3, (q31_t)0x2ffa2bd6, - (q31_t)0x15add20d, (q31_t)0x30027c0c, (q31_t)0x15b74019, (q31_t)0x300aca69, - (q31_t)0x15c0afc6, (q31_t)0x301316eb, (q31_t)0x15ca2115, (q31_t)0x301b6193, - (q31_t)0x15d39403, (q31_t)0x3023aa5f, (q31_t)0x15dd0892, (q31_t)0x302bf151, - (q31_t)0x15e67ec1, (q31_t)0x30343667, (q31_t)0x15eff690, (q31_t)0x303c79a2, - (q31_t)0x15f96ffd, (q31_t)0x3044bb00, (q31_t)0x1602eb0a, (q31_t)0x304cfa83, - (q31_t)0x160c67b4, (q31_t)0x30553828, (q31_t)0x1615e5fd, (q31_t)0x305d73f0, - (q31_t)0x161f65e4, (q31_t)0x3065addb, (q31_t)0x1628e767, (q31_t)0x306de5e9, - (q31_t)0x16326a88, (q31_t)0x30761c18, (q31_t)0x163bef46, (q31_t)0x307e5069, - (q31_t)0x1645759f, (q31_t)0x308682dc, (q31_t)0x164efd94, (q31_t)0x308eb36f, - (q31_t)0x16588725, (q31_t)0x3096e223, (q31_t)0x16621251, (q31_t)0x309f0ef8, - (q31_t)0x166b9f18, (q31_t)0x30a739ed, (q31_t)0x16752d79, (q31_t)0x30af6302, - (q31_t)0x167ebd74, (q31_t)0x30b78a36, (q31_t)0x16884f09, (q31_t)0x30bfaf89, - (q31_t)0x1691e237, (q31_t)0x30c7d2fb, (q31_t)0x169b76fe, (q31_t)0x30cff48c, - (q31_t)0x16a50d5d, (q31_t)0x30d8143b, (q31_t)0x16aea555, (q31_t)0x30e03208, - (q31_t)0x16b83ee4, (q31_t)0x30e84df3, (q31_t)0x16c1da0b, (q31_t)0x30f067fb, - (q31_t)0x16cb76c9, (q31_t)0x30f8801f, (q31_t)0x16d5151d, (q31_t)0x31009661, - (q31_t)0x16deb508, (q31_t)0x3108aabf, (q31_t)0x16e85689, (q31_t)0x3110bd39, - (q31_t)0x16f1f99f, (q31_t)0x3118cdcf, (q31_t)0x16fb9e4b, (q31_t)0x3120dc80, - (q31_t)0x1705448b, (q31_t)0x3128e94c, (q31_t)0x170eec60, (q31_t)0x3130f433, - (q31_t)0x171895c9, (q31_t)0x3138fd35, (q31_t)0x172240c5, (q31_t)0x31410450, - (q31_t)0x172bed55, (q31_t)0x31490986, (q31_t)0x17359b78, (q31_t)0x31510cd5, - (q31_t)0x173f4b2e, (q31_t)0x31590e3e, (q31_t)0x1748fc75, (q31_t)0x31610dbf, - (q31_t)0x1752af4f, (q31_t)0x31690b59, (q31_t)0x175c63ba, (q31_t)0x3171070c, - (q31_t)0x176619b6, (q31_t)0x317900d6, (q31_t)0x176fd143, (q31_t)0x3180f8b8, - (q31_t)0x17798a60, (q31_t)0x3188eeb2, (q31_t)0x1783450d, (q31_t)0x3190e2c3, - (q31_t)0x178d014a, (q31_t)0x3198d4ea, (q31_t)0x1796bf16, (q31_t)0x31a0c528, - (q31_t)0x17a07e70, (q31_t)0x31a8b37c, (q31_t)0x17aa3f5a, (q31_t)0x31b09fe7, - (q31_t)0x17b401d1, (q31_t)0x31b88a66, (q31_t)0x17bdc5d6, (q31_t)0x31c072fb, - (q31_t)0x17c78b68, (q31_t)0x31c859a5, (q31_t)0x17d15288, (q31_t)0x31d03e64, - (q31_t)0x17db1b34, (q31_t)0x31d82137, (q31_t)0x17e4e56c, (q31_t)0x31e0021e, - (q31_t)0x17eeb130, (q31_t)0x31e7e118, (q31_t)0x17f87e7f, (q31_t)0x31efbe27, - (q31_t)0x18024d59, (q31_t)0x31f79948, (q31_t)0x180c1dbf, (q31_t)0x31ff727c, - (q31_t)0x1815efae, (q31_t)0x320749c3, (q31_t)0x181fc328, (q31_t)0x320f1f1c, - (q31_t)0x1829982b, (q31_t)0x3216f287, (q31_t)0x18336eb7, (q31_t)0x321ec403, - (q31_t)0x183d46cc, (q31_t)0x32269391, (q31_t)0x18472069, (q31_t)0x322e6130, - (q31_t)0x1850fb8e, (q31_t)0x32362ce0, (q31_t)0x185ad83c, (q31_t)0x323df6a0, - (q31_t)0x1864b670, (q31_t)0x3245be70, (q31_t)0x186e962b, (q31_t)0x324d8450, - (q31_t)0x1878776d, (q31_t)0x32554840, (q31_t)0x18825a35, (q31_t)0x325d0a3e, - (q31_t)0x188c3e83, (q31_t)0x3264ca4c, (q31_t)0x18962456, (q31_t)0x326c8868, - (q31_t)0x18a00bae, (q31_t)0x32744493, (q31_t)0x18a9f48a, (q31_t)0x327bfecc, - (q31_t)0x18b3deeb, (q31_t)0x3283b712, (q31_t)0x18bdcad0, (q31_t)0x328b6d66, - (q31_t)0x18c7b838, (q31_t)0x329321c7, (q31_t)0x18d1a724, (q31_t)0x329ad435, - (q31_t)0x18db9792, (q31_t)0x32a284b0, (q31_t)0x18e58982, (q31_t)0x32aa3336, - (q31_t)0x18ef7cf4, (q31_t)0x32b1dfc9, (q31_t)0x18f971e8, (q31_t)0x32b98a67, - (q31_t)0x1903685d, (q31_t)0x32c13311, (q31_t)0x190d6053, (q31_t)0x32c8d9c6, - (q31_t)0x191759c9, (q31_t)0x32d07e85, (q31_t)0x192154bf, (q31_t)0x32d82150, - (q31_t)0x192b5135, (q31_t)0x32dfc224, (q31_t)0x19354f2a, (q31_t)0x32e76102, - (q31_t)0x193f4e9e, (q31_t)0x32eefdea, (q31_t)0x19494f90, (q31_t)0x32f698db, - (q31_t)0x19535201, (q31_t)0x32fe31d5, (q31_t)0x195d55ef, (q31_t)0x3305c8d7, - (q31_t)0x19675b5a, (q31_t)0x330d5de3, (q31_t)0x19716243, (q31_t)0x3314f0f6, - (q31_t)0x197b6aa8, (q31_t)0x331c8211, (q31_t)0x19857489, (q31_t)0x33241134, - (q31_t)0x198f7fe6, (q31_t)0x332b9e5e, (q31_t)0x19998cbe, (q31_t)0x3333298f, - (q31_t)0x19a39b11, (q31_t)0x333ab2c6, (q31_t)0x19adaadf, (q31_t)0x33423a04, - (q31_t)0x19b7bc27, (q31_t)0x3349bf48, (q31_t)0x19c1cee9, (q31_t)0x33514292, - (q31_t)0x19cbe325, (q31_t)0x3358c3e2, (q31_t)0x19d5f8d9, (q31_t)0x33604336, - (q31_t)0x19e01006, (q31_t)0x3367c090, (q31_t)0x19ea28ac, (q31_t)0x336f3bee, - (q31_t)0x19f442c9, (q31_t)0x3376b551, (q31_t)0x19fe5e5e, (q31_t)0x337e2cb7, - (q31_t)0x1a087b69, (q31_t)0x3385a222, (q31_t)0x1a1299ec, (q31_t)0x338d1590, - (q31_t)0x1a1cb9e5, (q31_t)0x33948701, (q31_t)0x1a26db54, (q31_t)0x339bf675, - (q31_t)0x1a30fe38, (q31_t)0x33a363ec, (q31_t)0x1a3b2292, (q31_t)0x33aacf65, - (q31_t)0x1a454860, (q31_t)0x33b238e0, (q31_t)0x1a4f6fa3, (q31_t)0x33b9a05d, - (q31_t)0x1a599859, (q31_t)0x33c105db, (q31_t)0x1a63c284, (q31_t)0x33c8695b, - (q31_t)0x1a6dee21, (q31_t)0x33cfcadc, (q31_t)0x1a781b31, (q31_t)0x33d72a5d, - (q31_t)0x1a8249b4, (q31_t)0x33de87de, (q31_t)0x1a8c79a9, (q31_t)0x33e5e360, - (q31_t)0x1a96ab0f, (q31_t)0x33ed3ce1, (q31_t)0x1aa0dde7, (q31_t)0x33f49462, - (q31_t)0x1aab122f, (q31_t)0x33fbe9e2, (q31_t)0x1ab547e8, (q31_t)0x34033d61, - (q31_t)0x1abf7f11, (q31_t)0x340a8edf, (q31_t)0x1ac9b7a9, (q31_t)0x3411de5b, - (q31_t)0x1ad3f1b1, (q31_t)0x34192bd5, (q31_t)0x1ade2d28, (q31_t)0x3420774d, - (q31_t)0x1ae86a0d, (q31_t)0x3427c0c3, (q31_t)0x1af2a860, (q31_t)0x342f0836, - (q31_t)0x1afce821, (q31_t)0x34364da6, (q31_t)0x1b072950, (q31_t)0x343d9112, - (q31_t)0x1b116beb, (q31_t)0x3444d27b, (q31_t)0x1b1baff2, (q31_t)0x344c11e0, - (q31_t)0x1b25f566, (q31_t)0x34534f41, (q31_t)0x1b303c46, (q31_t)0x345a8a9d, - (q31_t)0x1b3a8491, (q31_t)0x3461c3f5, (q31_t)0x1b44ce46, (q31_t)0x3468fb47, - (q31_t)0x1b4f1967, (q31_t)0x34703095, (q31_t)0x1b5965f1, (q31_t)0x347763dd, - (q31_t)0x1b63b3e5, (q31_t)0x347e951f, (q31_t)0x1b6e0342, (q31_t)0x3485c45b, - (q31_t)0x1b785409, (q31_t)0x348cf190, (q31_t)0x1b82a638, (q31_t)0x34941cbf, - (q31_t)0x1b8cf9cf, (q31_t)0x349b45e7, (q31_t)0x1b974ece, (q31_t)0x34a26d08, - (q31_t)0x1ba1a534, (q31_t)0x34a99221, (q31_t)0x1babfd01, (q31_t)0x34b0b533, - (q31_t)0x1bb65634, (q31_t)0x34b7d63c, (q31_t)0x1bc0b0ce, (q31_t)0x34bef53d, - (q31_t)0x1bcb0cce, (q31_t)0x34c61236, (q31_t)0x1bd56a32, (q31_t)0x34cd2d26, - (q31_t)0x1bdfc8fc, (q31_t)0x34d4460c, (q31_t)0x1bea292b, (q31_t)0x34db5cea, - (q31_t)0x1bf48abd, (q31_t)0x34e271bd, (q31_t)0x1bfeedb3, (q31_t)0x34e98487, - (q31_t)0x1c09520d, (q31_t)0x34f09546, (q31_t)0x1c13b7c9, (q31_t)0x34f7a3fb, - (q31_t)0x1c1e1ee9, (q31_t)0x34feb0a5, (q31_t)0x1c28876a, (q31_t)0x3505bb44, - (q31_t)0x1c32f14d, (q31_t)0x350cc3d8, (q31_t)0x1c3d5c91, (q31_t)0x3513ca60, - (q31_t)0x1c47c936, (q31_t)0x351acedd, (q31_t)0x1c52373c, (q31_t)0x3521d14d, - (q31_t)0x1c5ca6a2, (q31_t)0x3528d1b1, (q31_t)0x1c671768, (q31_t)0x352fd008, - (q31_t)0x1c71898d, (q31_t)0x3536cc52, (q31_t)0x1c7bfd11, (q31_t)0x353dc68f, - (q31_t)0x1c8671f3, (q31_t)0x3544bebf, (q31_t)0x1c90e834, (q31_t)0x354bb4e1, - (q31_t)0x1c9b5fd2, (q31_t)0x3552a8f4, (q31_t)0x1ca5d8cd, (q31_t)0x35599afa, - (q31_t)0x1cb05326, (q31_t)0x35608af1, (q31_t)0x1cbacedb, (q31_t)0x356778d9, - (q31_t)0x1cc54bec, (q31_t)0x356e64b2, (q31_t)0x1ccfca59, (q31_t)0x35754e7c, - (q31_t)0x1cda4a21, (q31_t)0x357c3636, (q31_t)0x1ce4cb44, (q31_t)0x35831be0, - (q31_t)0x1cef4dc2, (q31_t)0x3589ff7a, (q31_t)0x1cf9d199, (q31_t)0x3590e104, - (q31_t)0x1d0456ca, (q31_t)0x3597c07d, (q31_t)0x1d0edd55, (q31_t)0x359e9de5, - (q31_t)0x1d196538, (q31_t)0x35a5793c, (q31_t)0x1d23ee74, (q31_t)0x35ac5282, - (q31_t)0x1d2e7908, (q31_t)0x35b329b5, (q31_t)0x1d3904f4, (q31_t)0x35b9fed7, - (q31_t)0x1d439236, (q31_t)0x35c0d1e7, (q31_t)0x1d4e20d0, (q31_t)0x35c7a2e3, - (q31_t)0x1d58b0c0, (q31_t)0x35ce71ce, (q31_t)0x1d634206, (q31_t)0x35d53ea5, - (q31_t)0x1d6dd4a2, (q31_t)0x35dc0968, (q31_t)0x1d786892, (q31_t)0x35e2d219, - (q31_t)0x1d82fdd8, (q31_t)0x35e998b5, (q31_t)0x1d8d9472, (q31_t)0x35f05d3d, - (q31_t)0x1d982c60, (q31_t)0x35f71fb1, (q31_t)0x1da2c5a2, (q31_t)0x35fde011, - (q31_t)0x1dad6036, (q31_t)0x36049e5b, (q31_t)0x1db7fc1e, (q31_t)0x360b5a90, - (q31_t)0x1dc29958, (q31_t)0x361214b0, (q31_t)0x1dcd37e4, (q31_t)0x3618ccba, - (q31_t)0x1dd7d7c1, (q31_t)0x361f82af, (q31_t)0x1de278ef, (q31_t)0x3626368d, - (q31_t)0x1ded1b6e, (q31_t)0x362ce855, (q31_t)0x1df7bf3e, (q31_t)0x36339806, - (q31_t)0x1e02645d, (q31_t)0x363a45a0, (q31_t)0x1e0d0acc, (q31_t)0x3640f123, - (q31_t)0x1e17b28a, (q31_t)0x36479a8e, (q31_t)0x1e225b96, (q31_t)0x364e41e2, - (q31_t)0x1e2d05f1, (q31_t)0x3654e71d, (q31_t)0x1e37b199, (q31_t)0x365b8a41, - (q31_t)0x1e425e8f, (q31_t)0x36622b4c, (q31_t)0x1e4d0cd2, (q31_t)0x3668ca3e, - (q31_t)0x1e57bc62, (q31_t)0x366f6717, (q31_t)0x1e626d3e, (q31_t)0x367601d7, - (q31_t)0x1e6d1f65, (q31_t)0x367c9a7e, (q31_t)0x1e77d2d8, (q31_t)0x3683310b, - (q31_t)0x1e828796, (q31_t)0x3689c57d, (q31_t)0x1e8d3d9e, (q31_t)0x369057d6, - (q31_t)0x1e97f4f1, (q31_t)0x3696e814, (q31_t)0x1ea2ad8d, (q31_t)0x369d7637, - (q31_t)0x1ead6773, (q31_t)0x36a4023f, (q31_t)0x1eb822a1, (q31_t)0x36aa8c2c, - (q31_t)0x1ec2df18, (q31_t)0x36b113fd, (q31_t)0x1ecd9cd7, (q31_t)0x36b799b3, - (q31_t)0x1ed85bdd, (q31_t)0x36be1d4c, (q31_t)0x1ee31c2b, (q31_t)0x36c49ec9, - (q31_t)0x1eedddc0, (q31_t)0x36cb1e2a, (q31_t)0x1ef8a09b, (q31_t)0x36d19b6e, - (q31_t)0x1f0364bc, (q31_t)0x36d81695, (q31_t)0x1f0e2a22, (q31_t)0x36de8f9e, - (q31_t)0x1f18f0ce, (q31_t)0x36e5068a, (q31_t)0x1f23b8be, (q31_t)0x36eb7b58, - (q31_t)0x1f2e81f3, (q31_t)0x36f1ee09, (q31_t)0x1f394c6b, (q31_t)0x36f85e9a, - (q31_t)0x1f441828, (q31_t)0x36fecd0e, (q31_t)0x1f4ee527, (q31_t)0x37053962, - (q31_t)0x1f59b369, (q31_t)0x370ba398, (q31_t)0x1f6482ed, (q31_t)0x37120bae, - (q31_t)0x1f6f53b3, (q31_t)0x371871a5, (q31_t)0x1f7a25ba, (q31_t)0x371ed57c, - (q31_t)0x1f84f902, (q31_t)0x37253733, (q31_t)0x1f8fcd8b, (q31_t)0x372b96ca, - (q31_t)0x1f9aa354, (q31_t)0x3731f440, (q31_t)0x1fa57a5d, (q31_t)0x37384f95, - (q31_t)0x1fb052a5, (q31_t)0x373ea8ca, (q31_t)0x1fbb2c2c, (q31_t)0x3744ffdd, - (q31_t)0x1fc606f1, (q31_t)0x374b54ce, (q31_t)0x1fd0e2f5, (q31_t)0x3751a79e, - (q31_t)0x1fdbc036, (q31_t)0x3757f84c, (q31_t)0x1fe69eb4, (q31_t)0x375e46d8, - (q31_t)0x1ff17e70, (q31_t)0x37649341, (q31_t)0x1ffc5f67, (q31_t)0x376add88, - (q31_t)0x2007419b, (q31_t)0x377125ac, (q31_t)0x2012250a, (q31_t)0x37776bac, - (q31_t)0x201d09b4, (q31_t)0x377daf89, (q31_t)0x2027ef99, (q31_t)0x3783f143, - (q31_t)0x2032d6b8, (q31_t)0x378a30d8, (q31_t)0x203dbf11, (q31_t)0x37906e49, - (q31_t)0x2048a8a4, (q31_t)0x3796a996, (q31_t)0x2053936f, (q31_t)0x379ce2be, - (q31_t)0x205e7f74, (q31_t)0x37a319c2, (q31_t)0x20696cb0, (q31_t)0x37a94ea0, - (q31_t)0x20745b24, (q31_t)0x37af8159, (q31_t)0x207f4acf, (q31_t)0x37b5b1ec, - (q31_t)0x208a3bb2, (q31_t)0x37bbe05a, (q31_t)0x20952dcb, (q31_t)0x37c20ca1, - (q31_t)0x20a0211a, (q31_t)0x37c836c2, (q31_t)0x20ab159e, (q31_t)0x37ce5ebd, - (q31_t)0x20b60b58, (q31_t)0x37d48490, (q31_t)0x20c10247, (q31_t)0x37daa83d, - (q31_t)0x20cbfa6a, (q31_t)0x37e0c9c3, (q31_t)0x20d6f3c1, (q31_t)0x37e6e921, - (q31_t)0x20e1ee4b, (q31_t)0x37ed0657, (q31_t)0x20ecea09, (q31_t)0x37f32165, - (q31_t)0x20f7e6f9, (q31_t)0x37f93a4b, (q31_t)0x2102e51c, (q31_t)0x37ff5109, - (q31_t)0x210de470, (q31_t)0x3805659e, (q31_t)0x2118e4f6, (q31_t)0x380b780a, - (q31_t)0x2123e6ad, (q31_t)0x3811884d, (q31_t)0x212ee995, (q31_t)0x38179666, - (q31_t)0x2139edac, (q31_t)0x381da256, (q31_t)0x2144f2f3, (q31_t)0x3823ac1d, - (q31_t)0x214ff96a, (q31_t)0x3829b3b9, (q31_t)0x215b0110, (q31_t)0x382fb92a, - (q31_t)0x216609e3, (q31_t)0x3835bc71, (q31_t)0x217113e5, (q31_t)0x383bbd8e, - (q31_t)0x217c1f15, (q31_t)0x3841bc7f, (q31_t)0x21872b72, (q31_t)0x3847b946, - (q31_t)0x219238fb, (q31_t)0x384db3e0, (q31_t)0x219d47b1, (q31_t)0x3853ac4f, - (q31_t)0x21a85793, (q31_t)0x3859a292, (q31_t)0x21b368a0, (q31_t)0x385f96a9, - (q31_t)0x21be7ad8, (q31_t)0x38658894, (q31_t)0x21c98e3b, (q31_t)0x386b7852, - (q31_t)0x21d4a2c8, (q31_t)0x387165e3, (q31_t)0x21dfb87f, (q31_t)0x38775147, - (q31_t)0x21eacf5f, (q31_t)0x387d3a7e, (q31_t)0x21f5e768, (q31_t)0x38832187, - (q31_t)0x22010099, (q31_t)0x38890663, (q31_t)0x220c1af3, (q31_t)0x388ee910, - (q31_t)0x22173674, (q31_t)0x3894c98f, (q31_t)0x2222531c, (q31_t)0x389aa7e0, - (q31_t)0x222d70eb, (q31_t)0x38a08402, (q31_t)0x22388fe1, (q31_t)0x38a65df6, - (q31_t)0x2243affc, (q31_t)0x38ac35ba, (q31_t)0x224ed13d, (q31_t)0x38b20b4f, - (q31_t)0x2259f3a3, (q31_t)0x38b7deb4, (q31_t)0x2265172e, (q31_t)0x38bdafea, - (q31_t)0x22703bdc, (q31_t)0x38c37eef, (q31_t)0x227b61af, (q31_t)0x38c94bc4, - (q31_t)0x228688a4, (q31_t)0x38cf1669, (q31_t)0x2291b0bd, (q31_t)0x38d4dedd, - (q31_t)0x229cd9f8, (q31_t)0x38daa520, (q31_t)0x22a80456, (q31_t)0x38e06932, - (q31_t)0x22b32fd4, (q31_t)0x38e62b13, (q31_t)0x22be5c74, (q31_t)0x38ebeac2, - (q31_t)0x22c98a35, (q31_t)0x38f1a840, (q31_t)0x22d4b916, (q31_t)0x38f7638b, - (q31_t)0x22dfe917, (q31_t)0x38fd1ca4, (q31_t)0x22eb1a37, (q31_t)0x3902d38b, - (q31_t)0x22f64c77, (q31_t)0x3908883f, (q31_t)0x23017fd5, (q31_t)0x390e3ac0, - (q31_t)0x230cb451, (q31_t)0x3913eb0e, (q31_t)0x2317e9eb, (q31_t)0x39199929, - (q31_t)0x232320a2, (q31_t)0x391f4510, (q31_t)0x232e5876, (q31_t)0x3924eec3, - (q31_t)0x23399167, (q31_t)0x392a9642, (q31_t)0x2344cb73, (q31_t)0x39303b8e, - (q31_t)0x2350069b, (q31_t)0x3935dea4, (q31_t)0x235b42df, (q31_t)0x393b7f86, - (q31_t)0x2366803c, (q31_t)0x39411e33, (q31_t)0x2371beb5, (q31_t)0x3946baac, - (q31_t)0x237cfe47, (q31_t)0x394c54ee, (q31_t)0x23883ef2, (q31_t)0x3951ecfc, - (q31_t)0x239380b6, (q31_t)0x395782d3, (q31_t)0x239ec393, (q31_t)0x395d1675, - (q31_t)0x23aa0788, (q31_t)0x3962a7e0, (q31_t)0x23b54c95, (q31_t)0x39683715, - (q31_t)0x23c092b9, (q31_t)0x396dc414, (q31_t)0x23cbd9f4, (q31_t)0x39734edc, - (q31_t)0x23d72245, (q31_t)0x3978d76c, (q31_t)0x23e26bac, (q31_t)0x397e5dc6, - (q31_t)0x23edb628, (q31_t)0x3983e1e8, (q31_t)0x23f901ba, (q31_t)0x398963d2, - (q31_t)0x24044e60, (q31_t)0x398ee385, (q31_t)0x240f9c1a, (q31_t)0x399460ff, - (q31_t)0x241aeae8, (q31_t)0x3999dc42, (q31_t)0x24263ac9, (q31_t)0x399f554b, - (q31_t)0x24318bbe, (q31_t)0x39a4cc1c, (q31_t)0x243cddc4, (q31_t)0x39aa40b4, - (q31_t)0x244830dd, (q31_t)0x39afb313, (q31_t)0x24538507, (q31_t)0x39b52339, - (q31_t)0x245eda43, (q31_t)0x39ba9125, (q31_t)0x246a308f, (q31_t)0x39bffcd7, - (q31_t)0x247587eb, (q31_t)0x39c5664f, (q31_t)0x2480e057, (q31_t)0x39cacd8d, - (q31_t)0x248c39d3, (q31_t)0x39d03291, (q31_t)0x2497945d, (q31_t)0x39d5955a, - (q31_t)0x24a2eff6, (q31_t)0x39daf5e8, (q31_t)0x24ae4c9d, (q31_t)0x39e0543c, - (q31_t)0x24b9aa52, (q31_t)0x39e5b054, (q31_t)0x24c50914, (q31_t)0x39eb0a31, - (q31_t)0x24d068e2, (q31_t)0x39f061d2, (q31_t)0x24dbc9bd, (q31_t)0x39f5b737, - (q31_t)0x24e72ba4, (q31_t)0x39fb0a60, (q31_t)0x24f28e96, (q31_t)0x3a005b4d, - (q31_t)0x24fdf294, (q31_t)0x3a05a9fd, (q31_t)0x2509579b, (q31_t)0x3a0af671, - (q31_t)0x2514bdad, (q31_t)0x3a1040a8, (q31_t)0x252024c9, (q31_t)0x3a1588a2, - (q31_t)0x252b8cee, (q31_t)0x3a1ace5f, (q31_t)0x2536f61b, (q31_t)0x3a2011de, - (q31_t)0x25426051, (q31_t)0x3a25531f, (q31_t)0x254dcb8f, (q31_t)0x3a2a9223, - (q31_t)0x255937d5, (q31_t)0x3a2fcee8, (q31_t)0x2564a521, (q31_t)0x3a350970, - (q31_t)0x25701374, (q31_t)0x3a3a41b9, (q31_t)0x257b82cd, (q31_t)0x3a3f77c3, - (q31_t)0x2586f32c, (q31_t)0x3a44ab8e, (q31_t)0x25926490, (q31_t)0x3a49dd1a, - (q31_t)0x259dd6f9, (q31_t)0x3a4f0c67, (q31_t)0x25a94a67, (q31_t)0x3a543974, - (q31_t)0x25b4bed8, (q31_t)0x3a596442, (q31_t)0x25c0344d, (q31_t)0x3a5e8cd0, - (q31_t)0x25cbaac5, (q31_t)0x3a63b31d, (q31_t)0x25d72240, (q31_t)0x3a68d72b, - (q31_t)0x25e29abc, (q31_t)0x3a6df8f8, (q31_t)0x25ee143b, (q31_t)0x3a731884, - (q31_t)0x25f98ebb, (q31_t)0x3a7835cf, (q31_t)0x26050a3b, (q31_t)0x3a7d50da, - (q31_t)0x261086bc, (q31_t)0x3a8269a3, (q31_t)0x261c043d, (q31_t)0x3a87802a, - (q31_t)0x262782be, (q31_t)0x3a8c9470, (q31_t)0x2633023e, (q31_t)0x3a91a674, - (q31_t)0x263e82bc, (q31_t)0x3a96b636, (q31_t)0x264a0438, (q31_t)0x3a9bc3b6, - (q31_t)0x265586b3, (q31_t)0x3aa0cef3, (q31_t)0x26610a2a, (q31_t)0x3aa5d7ee, - (q31_t)0x266c8e9f, (q31_t)0x3aaadea6, (q31_t)0x26781410, (q31_t)0x3aafe31b, - (q31_t)0x26839a7c, (q31_t)0x3ab4e54c, (q31_t)0x268f21e5, (q31_t)0x3ab9e53a, - (q31_t)0x269aaa48, (q31_t)0x3abee2e5, (q31_t)0x26a633a6, (q31_t)0x3ac3de4c, - (q31_t)0x26b1bdff, (q31_t)0x3ac8d76f, (q31_t)0x26bd4951, (q31_t)0x3acdce4d, - (q31_t)0x26c8d59c, (q31_t)0x3ad2c2e8, (q31_t)0x26d462e1, (q31_t)0x3ad7b53d, - (q31_t)0x26dff11d, (q31_t)0x3adca54e, (q31_t)0x26eb8052, (q31_t)0x3ae1931a, - (q31_t)0x26f7107e, (q31_t)0x3ae67ea1, (q31_t)0x2702a1a1, (q31_t)0x3aeb67e3, - (q31_t)0x270e33bb, (q31_t)0x3af04edf, (q31_t)0x2719c6cb, (q31_t)0x3af53395, - (q31_t)0x27255ad1, (q31_t)0x3afa1605, (q31_t)0x2730efcc, (q31_t)0x3afef630, - (q31_t)0x273c85bc, (q31_t)0x3b03d414, (q31_t)0x27481ca1, (q31_t)0x3b08afb2, - (q31_t)0x2753b479, (q31_t)0x3b0d8909, (q31_t)0x275f4d45, (q31_t)0x3b126019, - (q31_t)0x276ae704, (q31_t)0x3b1734e2, (q31_t)0x277681b6, (q31_t)0x3b1c0764, - (q31_t)0x27821d59, (q31_t)0x3b20d79e, (q31_t)0x278db9ef, (q31_t)0x3b25a591, - (q31_t)0x27995776, (q31_t)0x3b2a713d, (q31_t)0x27a4f5ed, (q31_t)0x3b2f3aa0, - (q31_t)0x27b09555, (q31_t)0x3b3401bb, (q31_t)0x27bc35ad, (q31_t)0x3b38c68e, - (q31_t)0x27c7d6f4, (q31_t)0x3b3d8918, (q31_t)0x27d3792b, (q31_t)0x3b42495a, - (q31_t)0x27df1c50, (q31_t)0x3b470753, (q31_t)0x27eac063, (q31_t)0x3b4bc303, - (q31_t)0x27f66564, (q31_t)0x3b507c69, (q31_t)0x28020b52, (q31_t)0x3b553386, - (q31_t)0x280db22d, (q31_t)0x3b59e85a, (q31_t)0x281959f4, (q31_t)0x3b5e9ae4, - (q31_t)0x282502a7, (q31_t)0x3b634b23, (q31_t)0x2830ac45, (q31_t)0x3b67f919, - (q31_t)0x283c56cf, (q31_t)0x3b6ca4c4, (q31_t)0x28480243, (q31_t)0x3b714e25, - (q31_t)0x2853aea1, (q31_t)0x3b75f53c, (q31_t)0x285f5be9, (q31_t)0x3b7a9a07, - (q31_t)0x286b0a1a, (q31_t)0x3b7f3c87, (q31_t)0x2876b934, (q31_t)0x3b83dcbc, - (q31_t)0x28826936, (q31_t)0x3b887aa6, (q31_t)0x288e1a20, (q31_t)0x3b8d1644, - (q31_t)0x2899cbf1, (q31_t)0x3b91af97, (q31_t)0x28a57ea9, (q31_t)0x3b96469d, - (q31_t)0x28b13248, (q31_t)0x3b9adb57, (q31_t)0x28bce6cd, (q31_t)0x3b9f6dc5, - (q31_t)0x28c89c37, (q31_t)0x3ba3fde7, (q31_t)0x28d45286, (q31_t)0x3ba88bbc, - (q31_t)0x28e009ba, (q31_t)0x3bad1744, (q31_t)0x28ebc1d3, (q31_t)0x3bb1a080, - (q31_t)0x28f77acf, (q31_t)0x3bb6276e, (q31_t)0x290334af, (q31_t)0x3bbaac0e, - (q31_t)0x290eef71, (q31_t)0x3bbf2e62, (q31_t)0x291aab16, (q31_t)0x3bc3ae67, - (q31_t)0x2926679c, (q31_t)0x3bc82c1f, (q31_t)0x29322505, (q31_t)0x3bcca789, - (q31_t)0x293de34e, (q31_t)0x3bd120a4, (q31_t)0x2949a278, (q31_t)0x3bd59771, - (q31_t)0x29556282, (q31_t)0x3bda0bf0, (q31_t)0x2961236c, (q31_t)0x3bde7e20, - (q31_t)0x296ce535, (q31_t)0x3be2ee01, (q31_t)0x2978a7dd, (q31_t)0x3be75b93, - (q31_t)0x29846b63, (q31_t)0x3bebc6d5, (q31_t)0x29902fc7, (q31_t)0x3bf02fc9, - (q31_t)0x299bf509, (q31_t)0x3bf4966c, (q31_t)0x29a7bb28, (q31_t)0x3bf8fac0, - (q31_t)0x29b38223, (q31_t)0x3bfd5cc4, (q31_t)0x29bf49fa, (q31_t)0x3c01bc78, - (q31_t)0x29cb12ad, (q31_t)0x3c0619dc, (q31_t)0x29d6dc3b, (q31_t)0x3c0a74f0, - (q31_t)0x29e2a6a3, (q31_t)0x3c0ecdb2, (q31_t)0x29ee71e6, (q31_t)0x3c132424, - (q31_t)0x29fa3e03, (q31_t)0x3c177845, (q31_t)0x2a060af9, (q31_t)0x3c1bca16, - (q31_t)0x2a11d8c8, (q31_t)0x3c201994, (q31_t)0x2a1da770, (q31_t)0x3c2466c2, - (q31_t)0x2a2976ef, (q31_t)0x3c28b19e, (q31_t)0x2a354746, (q31_t)0x3c2cfa28, - (q31_t)0x2a411874, (q31_t)0x3c314060, (q31_t)0x2a4cea79, (q31_t)0x3c358446, - (q31_t)0x2a58bd54, (q31_t)0x3c39c5da, (q31_t)0x2a649105, (q31_t)0x3c3e051b, - (q31_t)0x2a70658a, (q31_t)0x3c42420a, (q31_t)0x2a7c3ae5, (q31_t)0x3c467ca6, - (q31_t)0x2a881114, (q31_t)0x3c4ab4ef, (q31_t)0x2a93e817, (q31_t)0x3c4eeae5, - (q31_t)0x2a9fbfed, (q31_t)0x3c531e88, (q31_t)0x2aab9896, (q31_t)0x3c574fd8, - (q31_t)0x2ab77212, (q31_t)0x3c5b7ed4, (q31_t)0x2ac34c60, (q31_t)0x3c5fab7c, - (q31_t)0x2acf277f, (q31_t)0x3c63d5d1, (q31_t)0x2adb0370, (q31_t)0x3c67fdd1, - (q31_t)0x2ae6e031, (q31_t)0x3c6c237e, (q31_t)0x2af2bdc3, (q31_t)0x3c7046d6, - (q31_t)0x2afe9c24, (q31_t)0x3c7467d9, (q31_t)0x2b0a7b54, (q31_t)0x3c788688, - (q31_t)0x2b165b54, (q31_t)0x3c7ca2e2, (q31_t)0x2b223c22, (q31_t)0x3c80bce7, - (q31_t)0x2b2e1dbe, (q31_t)0x3c84d496, (q31_t)0x2b3a0027, (q31_t)0x3c88e9f1, - (q31_t)0x2b45e35d, (q31_t)0x3c8cfcf6, (q31_t)0x2b51c760, (q31_t)0x3c910da5, - (q31_t)0x2b5dac2f, (q31_t)0x3c951bff, (q31_t)0x2b6991ca, (q31_t)0x3c992803, - (q31_t)0x2b75782f, (q31_t)0x3c9d31b0, (q31_t)0x2b815f60, (q31_t)0x3ca13908, - (q31_t)0x2b8d475b, (q31_t)0x3ca53e09, (q31_t)0x2b99301f, (q31_t)0x3ca940b3, - (q31_t)0x2ba519ad, (q31_t)0x3cad4107, (q31_t)0x2bb10404, (q31_t)0x3cb13f04, - (q31_t)0x2bbcef23, (q31_t)0x3cb53aaa, (q31_t)0x2bc8db0b, (q31_t)0x3cb933f9, - (q31_t)0x2bd4c7ba, (q31_t)0x3cbd2af0, (q31_t)0x2be0b52f, (q31_t)0x3cc11f90, - (q31_t)0x2beca36c, (q31_t)0x3cc511d9, (q31_t)0x2bf8926f, (q31_t)0x3cc901c9, - (q31_t)0x2c048237, (q31_t)0x3cccef62, (q31_t)0x2c1072c4, (q31_t)0x3cd0daa2, - (q31_t)0x2c1c6417, (q31_t)0x3cd4c38b, (q31_t)0x2c28562d, (q31_t)0x3cd8aa1b, - (q31_t)0x2c344908, (q31_t)0x3cdc8e52, (q31_t)0x2c403ca5, (q31_t)0x3ce07031, - (q31_t)0x2c4c3106, (q31_t)0x3ce44fb7, (q31_t)0x2c582629, (q31_t)0x3ce82ce4, - (q31_t)0x2c641c0e, (q31_t)0x3cec07b8, (q31_t)0x2c7012b5, (q31_t)0x3cefe032, - (q31_t)0x2c7c0a1d, (q31_t)0x3cf3b653, (q31_t)0x2c880245, (q31_t)0x3cf78a1b, - (q31_t)0x2c93fb2e, (q31_t)0x3cfb5b89, (q31_t)0x2c9ff4d6, (q31_t)0x3cff2a9d, - (q31_t)0x2cabef3d, (q31_t)0x3d02f757, (q31_t)0x2cb7ea63, (q31_t)0x3d06c1b6, - (q31_t)0x2cc3e648, (q31_t)0x3d0a89bc, (q31_t)0x2ccfe2ea, (q31_t)0x3d0e4f67, - (q31_t)0x2cdbe04a, (q31_t)0x3d1212b7, (q31_t)0x2ce7de66, (q31_t)0x3d15d3ad, - (q31_t)0x2cf3dd3f, (q31_t)0x3d199248, (q31_t)0x2cffdcd4, (q31_t)0x3d1d4e88, - (q31_t)0x2d0bdd25, (q31_t)0x3d21086c, (q31_t)0x2d17de31, (q31_t)0x3d24bff6, - (q31_t)0x2d23dff7, (q31_t)0x3d287523, (q31_t)0x2d2fe277, (q31_t)0x3d2c27f6, - (q31_t)0x2d3be5b1, (q31_t)0x3d2fd86c, (q31_t)0x2d47e9a5, (q31_t)0x3d338687, - (q31_t)0x2d53ee51, (q31_t)0x3d373245, (q31_t)0x2d5ff3b5, (q31_t)0x3d3adba7, - (q31_t)0x2d6bf9d1, (q31_t)0x3d3e82ae, (q31_t)0x2d7800a5, (q31_t)0x3d422757, - (q31_t)0x2d84082f, (q31_t)0x3d45c9a4, (q31_t)0x2d901070, (q31_t)0x3d496994, - (q31_t)0x2d9c1967, (q31_t)0x3d4d0728, (q31_t)0x2da82313, (q31_t)0x3d50a25e, - (q31_t)0x2db42d74, (q31_t)0x3d543b37, (q31_t)0x2dc0388a, (q31_t)0x3d57d1b3, - (q31_t)0x2dcc4454, (q31_t)0x3d5b65d2, (q31_t)0x2dd850d2, (q31_t)0x3d5ef793, - (q31_t)0x2de45e03, (q31_t)0x3d6286f6, (q31_t)0x2df06be6, (q31_t)0x3d6613fb, - (q31_t)0x2dfc7a7c, (q31_t)0x3d699ea3, (q31_t)0x2e0889c4, (q31_t)0x3d6d26ec, - (q31_t)0x2e1499bd, (q31_t)0x3d70acd7, (q31_t)0x2e20aa67, (q31_t)0x3d743064, - (q31_t)0x2e2cbbc1, (q31_t)0x3d77b192, (q31_t)0x2e38cdcb, (q31_t)0x3d7b3061, - (q31_t)0x2e44e084, (q31_t)0x3d7eacd2, (q31_t)0x2e50f3ed, (q31_t)0x3d8226e4, - (q31_t)0x2e5d0804, (q31_t)0x3d859e96, (q31_t)0x2e691cc9, (q31_t)0x3d8913ea, - (q31_t)0x2e75323c, (q31_t)0x3d8c86de, (q31_t)0x2e81485c, (q31_t)0x3d8ff772, - (q31_t)0x2e8d5f29, (q31_t)0x3d9365a8, (q31_t)0x2e9976a1, (q31_t)0x3d96d17d, - (q31_t)0x2ea58ec6, (q31_t)0x3d9a3af2, (q31_t)0x2eb1a796, (q31_t)0x3d9da208, - (q31_t)0x2ebdc110, (q31_t)0x3da106bd, (q31_t)0x2ec9db35, (q31_t)0x3da46912, - (q31_t)0x2ed5f604, (q31_t)0x3da7c907, (q31_t)0x2ee2117c, (q31_t)0x3dab269b, - (q31_t)0x2eee2d9d, (q31_t)0x3dae81cf, (q31_t)0x2efa4a67, (q31_t)0x3db1daa2, - (q31_t)0x2f0667d9, (q31_t)0x3db53113, (q31_t)0x2f1285f2, (q31_t)0x3db88524, - (q31_t)0x2f1ea4b2, (q31_t)0x3dbbd6d4, (q31_t)0x2f2ac419, (q31_t)0x3dbf2622, - (q31_t)0x2f36e426, (q31_t)0x3dc2730f, (q31_t)0x2f4304d8, (q31_t)0x3dc5bd9b, - (q31_t)0x2f4f2630, (q31_t)0x3dc905c5, (q31_t)0x2f5b482d, (q31_t)0x3dcc4b8d, - (q31_t)0x2f676ace, (q31_t)0x3dcf8ef3, (q31_t)0x2f738e12, (q31_t)0x3dd2cff7, - (q31_t)0x2f7fb1fa, (q31_t)0x3dd60e99, (q31_t)0x2f8bd685, (q31_t)0x3dd94ad8, - (q31_t)0x2f97fbb2, (q31_t)0x3ddc84b5, (q31_t)0x2fa42181, (q31_t)0x3ddfbc30, - (q31_t)0x2fb047f2, (q31_t)0x3de2f148, (q31_t)0x2fbc6f03, (q31_t)0x3de623fd, - (q31_t)0x2fc896b5, (q31_t)0x3de9544f, (q31_t)0x2fd4bf08, (q31_t)0x3dec823e, - (q31_t)0x2fe0e7f9, (q31_t)0x3defadca, (q31_t)0x2fed118a, (q31_t)0x3df2d6f3, - (q31_t)0x2ff93bba, (q31_t)0x3df5fdb8, (q31_t)0x30056687, (q31_t)0x3df9221a, - (q31_t)0x301191f3, (q31_t)0x3dfc4418, (q31_t)0x301dbdfb, (q31_t)0x3dff63b2, - (q31_t)0x3029eaa1, (q31_t)0x3e0280e9, (q31_t)0x303617e2, (q31_t)0x3e059bbb, - (q31_t)0x304245c0, (q31_t)0x3e08b42a, (q31_t)0x304e7438, (q31_t)0x3e0bca34, - (q31_t)0x305aa34c, (q31_t)0x3e0eddd9, (q31_t)0x3066d2fa, (q31_t)0x3e11ef1b, - (q31_t)0x30730342, (q31_t)0x3e14fdf7, (q31_t)0x307f3424, (q31_t)0x3e180a6f, - (q31_t)0x308b659f, (q31_t)0x3e1b1482, (q31_t)0x309797b2, (q31_t)0x3e1e1c30, - (q31_t)0x30a3ca5d, (q31_t)0x3e212179, (q31_t)0x30affda0, (q31_t)0x3e24245d, - (q31_t)0x30bc317a, (q31_t)0x3e2724db, (q31_t)0x30c865ea, (q31_t)0x3e2a22f4, - (q31_t)0x30d49af1, (q31_t)0x3e2d1ea8, (q31_t)0x30e0d08d, (q31_t)0x3e3017f6, - (q31_t)0x30ed06bf, (q31_t)0x3e330ede, (q31_t)0x30f93d86, (q31_t)0x3e360360, - (q31_t)0x310574e0, (q31_t)0x3e38f57c, (q31_t)0x3111accf, (q31_t)0x3e3be532, - (q31_t)0x311de551, (q31_t)0x3e3ed282, (q31_t)0x312a1e66, (q31_t)0x3e41bd6c, - (q31_t)0x3136580d, (q31_t)0x3e44a5ef, (q31_t)0x31429247, (q31_t)0x3e478c0b, - (q31_t)0x314ecd11, (q31_t)0x3e4a6fc1, (q31_t)0x315b086d, (q31_t)0x3e4d5110, - (q31_t)0x31674459, (q31_t)0x3e502ff9, (q31_t)0x317380d6, (q31_t)0x3e530c7a, - (q31_t)0x317fbde2, (q31_t)0x3e55e694, (q31_t)0x318bfb7d, (q31_t)0x3e58be47, - (q31_t)0x319839a6, (q31_t)0x3e5b9392, (q31_t)0x31a4785e, (q31_t)0x3e5e6676, - (q31_t)0x31b0b7a4, (q31_t)0x3e6136f3, (q31_t)0x31bcf777, (q31_t)0x3e640507, - (q31_t)0x31c937d6, (q31_t)0x3e66d0b4, (q31_t)0x31d578c2, (q31_t)0x3e6999fa, - (q31_t)0x31e1ba3a, (q31_t)0x3e6c60d7, (q31_t)0x31edfc3d, (q31_t)0x3e6f254c, - (q31_t)0x31fa3ecb, (q31_t)0x3e71e759, (q31_t)0x320681e3, (q31_t)0x3e74a6fd, - (q31_t)0x3212c585, (q31_t)0x3e77643a, (q31_t)0x321f09b1, (q31_t)0x3e7a1f0d, - (q31_t)0x322b4e66, (q31_t)0x3e7cd778, (q31_t)0x323793a3, (q31_t)0x3e7f8d7b, - (q31_t)0x3243d968, (q31_t)0x3e824114, (q31_t)0x32501fb5, (q31_t)0x3e84f245, - (q31_t)0x325c6688, (q31_t)0x3e87a10c, (q31_t)0x3268ade3, (q31_t)0x3e8a4d6a, - (q31_t)0x3274f5c3, (q31_t)0x3e8cf75f, (q31_t)0x32813e2a, (q31_t)0x3e8f9eeb, - (q31_t)0x328d8715, (q31_t)0x3e92440d, (q31_t)0x3299d085, (q31_t)0x3e94e6c6, - (q31_t)0x32a61a7a, (q31_t)0x3e978715, (q31_t)0x32b264f2, (q31_t)0x3e9a24fb, - (q31_t)0x32beafed, (q31_t)0x3e9cc076, (q31_t)0x32cafb6b, (q31_t)0x3e9f5988, - (q31_t)0x32d7476c, (q31_t)0x3ea1f02f, (q31_t)0x32e393ef, (q31_t)0x3ea4846c, - (q31_t)0x32efe0f2, (q31_t)0x3ea7163f, (q31_t)0x32fc2e77, (q31_t)0x3ea9a5a8, - (q31_t)0x33087c7d, (q31_t)0x3eac32a6, (q31_t)0x3314cb02, (q31_t)0x3eaebd3a, - (q31_t)0x33211a07, (q31_t)0x3eb14563, (q31_t)0x332d698a, (q31_t)0x3eb3cb21, - (q31_t)0x3339b98d, (q31_t)0x3eb64e75, (q31_t)0x33460a0d, (q31_t)0x3eb8cf5d, - (q31_t)0x33525b0b, (q31_t)0x3ebb4ddb, (q31_t)0x335eac86, (q31_t)0x3ebdc9ed, - (q31_t)0x336afe7e, (q31_t)0x3ec04394, (q31_t)0x337750f2, (q31_t)0x3ec2bad0, - (q31_t)0x3383a3e2, (q31_t)0x3ec52fa0, (q31_t)0x338ff74d, (q31_t)0x3ec7a205, - (q31_t)0x339c4b32, (q31_t)0x3eca11fe, (q31_t)0x33a89f92, (q31_t)0x3ecc7f8b, - (q31_t)0x33b4f46c, (q31_t)0x3eceeaad, (q31_t)0x33c149bf, (q31_t)0x3ed15363, - (q31_t)0x33cd9f8b, (q31_t)0x3ed3b9ad, (q31_t)0x33d9f5cf, (q31_t)0x3ed61d8a, - (q31_t)0x33e64c8c, (q31_t)0x3ed87efc, (q31_t)0x33f2a3bf, (q31_t)0x3edade01, - (q31_t)0x33fefb6a, (q31_t)0x3edd3a9a, (q31_t)0x340b538b, (q31_t)0x3edf94c7, - (q31_t)0x3417ac22, (q31_t)0x3ee1ec87, (q31_t)0x3424052f, (q31_t)0x3ee441da, - (q31_t)0x34305eb0, (q31_t)0x3ee694c1, (q31_t)0x343cb8a7, (q31_t)0x3ee8e53a, - (q31_t)0x34491311, (q31_t)0x3eeb3347, (q31_t)0x34556def, (q31_t)0x3eed7ee7, - (q31_t)0x3461c940, (q31_t)0x3eefc81a, (q31_t)0x346e2504, (q31_t)0x3ef20ee0, - (q31_t)0x347a8139, (q31_t)0x3ef45338, (q31_t)0x3486dde1, (q31_t)0x3ef69523, - (q31_t)0x34933afa, (q31_t)0x3ef8d4a1, (q31_t)0x349f9884, (q31_t)0x3efb11b1, - (q31_t)0x34abf67e, (q31_t)0x3efd4c54, (q31_t)0x34b854e7, (q31_t)0x3eff8489, - (q31_t)0x34c4b3c0, (q31_t)0x3f01ba50, (q31_t)0x34d11308, (q31_t)0x3f03eda9, - (q31_t)0x34dd72be, (q31_t)0x3f061e95, (q31_t)0x34e9d2e3, (q31_t)0x3f084d12, - (q31_t)0x34f63374, (q31_t)0x3f0a7921, (q31_t)0x35029473, (q31_t)0x3f0ca2c2, - (q31_t)0x350ef5de, (q31_t)0x3f0ec9f5, (q31_t)0x351b57b5, (q31_t)0x3f10eeb9, - (q31_t)0x3527b9f7, (q31_t)0x3f13110f, (q31_t)0x35341ca5, (q31_t)0x3f1530f7, - (q31_t)0x35407fbd, (q31_t)0x3f174e70, (q31_t)0x354ce33f, (q31_t)0x3f19697a, - (q31_t)0x3559472b, (q31_t)0x3f1b8215, (q31_t)0x3565ab80, (q31_t)0x3f1d9842, - (q31_t)0x3572103d, (q31_t)0x3f1fabff, (q31_t)0x357e7563, (q31_t)0x3f21bd4e, - (q31_t)0x358adaf0, (q31_t)0x3f23cc2e, (q31_t)0x359740e5, (q31_t)0x3f25d89e, - (q31_t)0x35a3a740, (q31_t)0x3f27e29f, (q31_t)0x35b00e02, (q31_t)0x3f29ea31, - (q31_t)0x35bc7529, (q31_t)0x3f2bef53, (q31_t)0x35c8dcb6, (q31_t)0x3f2df206, - (q31_t)0x35d544a7, (q31_t)0x3f2ff24a, (q31_t)0x35e1acfd, (q31_t)0x3f31f01d, - (q31_t)0x35ee15b7, (q31_t)0x3f33eb81, (q31_t)0x35fa7ed4, (q31_t)0x3f35e476, - (q31_t)0x3606e854, (q31_t)0x3f37dafa, (q31_t)0x36135237, (q31_t)0x3f39cf0e, - (q31_t)0x361fbc7b, (q31_t)0x3f3bc0b3, (q31_t)0x362c2721, (q31_t)0x3f3dafe7, - (q31_t)0x36389228, (q31_t)0x3f3f9cab, (q31_t)0x3644fd8f, (q31_t)0x3f4186ff, - (q31_t)0x36516956, (q31_t)0x3f436ee3, (q31_t)0x365dd57d, (q31_t)0x3f455456, - (q31_t)0x366a4203, (q31_t)0x3f473759, (q31_t)0x3676aee8, (q31_t)0x3f4917eb, - (q31_t)0x36831c2b, (q31_t)0x3f4af60d, (q31_t)0x368f89cb, (q31_t)0x3f4cd1be, - (q31_t)0x369bf7c9, (q31_t)0x3f4eaafe, (q31_t)0x36a86623, (q31_t)0x3f5081cd, - (q31_t)0x36b4d4d9, (q31_t)0x3f52562c, (q31_t)0x36c143ec, (q31_t)0x3f54281a, - (q31_t)0x36cdb359, (q31_t)0x3f55f796, (q31_t)0x36da2321, (q31_t)0x3f57c4a2, - (q31_t)0x36e69344, (q31_t)0x3f598f3c, (q31_t)0x36f303c0, (q31_t)0x3f5b5765, - (q31_t)0x36ff7496, (q31_t)0x3f5d1d1d, (q31_t)0x370be5c4, (q31_t)0x3f5ee063, - (q31_t)0x3718574b, (q31_t)0x3f60a138, (q31_t)0x3724c92a, (q31_t)0x3f625f9b, - (q31_t)0x37313b60, (q31_t)0x3f641b8d, (q31_t)0x373daded, (q31_t)0x3f65d50d, - (q31_t)0x374a20d0, (q31_t)0x3f678c1c, (q31_t)0x3756940a, (q31_t)0x3f6940b8, - (q31_t)0x37630799, (q31_t)0x3f6af2e3, (q31_t)0x376f7b7d, (q31_t)0x3f6ca29c, - (q31_t)0x377befb5, (q31_t)0x3f6e4fe3, (q31_t)0x37886442, (q31_t)0x3f6ffab8, - (q31_t)0x3794d922, (q31_t)0x3f71a31b, (q31_t)0x37a14e55, (q31_t)0x3f73490b, - (q31_t)0x37adc3db, (q31_t)0x3f74ec8a, (q31_t)0x37ba39b3, (q31_t)0x3f768d96, - (q31_t)0x37c6afdc, (q31_t)0x3f782c30, (q31_t)0x37d32657, (q31_t)0x3f79c857, - (q31_t)0x37df9d22, (q31_t)0x3f7b620c, (q31_t)0x37ec143e, (q31_t)0x3f7cf94e, - (q31_t)0x37f88ba9, (q31_t)0x3f7e8e1e, (q31_t)0x38050364, (q31_t)0x3f80207b, - (q31_t)0x38117b6d, (q31_t)0x3f81b065, (q31_t)0x381df3c5, (q31_t)0x3f833ddd, - (q31_t)0x382a6c6a, (q31_t)0x3f84c8e2, (q31_t)0x3836e55d, (q31_t)0x3f865174, - (q31_t)0x38435e9d, (q31_t)0x3f87d792, (q31_t)0x384fd829, (q31_t)0x3f895b3e, - (q31_t)0x385c5201, (q31_t)0x3f8adc77, (q31_t)0x3868cc24, (q31_t)0x3f8c5b3d, - (q31_t)0x38754692, (q31_t)0x3f8dd78f, (q31_t)0x3881c14b, (q31_t)0x3f8f516e, - (q31_t)0x388e3c4d, (q31_t)0x3f90c8da, (q31_t)0x389ab799, (q31_t)0x3f923dd2, - (q31_t)0x38a7332e, (q31_t)0x3f93b058, (q31_t)0x38b3af0c, (q31_t)0x3f952069, - (q31_t)0x38c02b31, (q31_t)0x3f968e07, (q31_t)0x38cca79e, (q31_t)0x3f97f932, - (q31_t)0x38d92452, (q31_t)0x3f9961e8, (q31_t)0x38e5a14d, (q31_t)0x3f9ac82c, - (q31_t)0x38f21e8e, (q31_t)0x3f9c2bfb, (q31_t)0x38fe9c15, (q31_t)0x3f9d8d56, - (q31_t)0x390b19e0, (q31_t)0x3f9eec3e, (q31_t)0x391797f0, (q31_t)0x3fa048b2, - (q31_t)0x39241645, (q31_t)0x3fa1a2b2, (q31_t)0x393094dd, (q31_t)0x3fa2fa3d, - (q31_t)0x393d13b8, (q31_t)0x3fa44f55, (q31_t)0x394992d7, (q31_t)0x3fa5a1f9, - (q31_t)0x39561237, (q31_t)0x3fa6f228, (q31_t)0x396291d9, (q31_t)0x3fa83fe3, - (q31_t)0x396f11bc, (q31_t)0x3fa98b2a, (q31_t)0x397b91e1, (q31_t)0x3faad3fd, - (q31_t)0x39881245, (q31_t)0x3fac1a5b, (q31_t)0x399492ea, (q31_t)0x3fad5e45, - (q31_t)0x39a113cd, (q31_t)0x3fae9fbb, (q31_t)0x39ad94f0, (q31_t)0x3fafdebb, - (q31_t)0x39ba1651, (q31_t)0x3fb11b48, (q31_t)0x39c697f0, (q31_t)0x3fb2555f, - (q31_t)0x39d319cc, (q31_t)0x3fb38d02, (q31_t)0x39df9be6, (q31_t)0x3fb4c231, - (q31_t)0x39ec1e3b, (q31_t)0x3fb5f4ea, (q31_t)0x39f8a0cd, (q31_t)0x3fb7252f, - (q31_t)0x3a05239a, (q31_t)0x3fb852ff, (q31_t)0x3a11a6a3, (q31_t)0x3fb97e5a, - (q31_t)0x3a1e29e5, (q31_t)0x3fbaa740, (q31_t)0x3a2aad62, (q31_t)0x3fbbcdb1, - (q31_t)0x3a373119, (q31_t)0x3fbcf1ad, (q31_t)0x3a43b508, (q31_t)0x3fbe1334, - (q31_t)0x3a503930, (q31_t)0x3fbf3246, (q31_t)0x3a5cbd91, (q31_t)0x3fc04ee3, - (q31_t)0x3a694229, (q31_t)0x3fc1690a, (q31_t)0x3a75c6f8, (q31_t)0x3fc280bc, - (q31_t)0x3a824bfd, (q31_t)0x3fc395f9, (q31_t)0x3a8ed139, (q31_t)0x3fc4a8c1, - (q31_t)0x3a9b56ab, (q31_t)0x3fc5b913, (q31_t)0x3aa7dc52, (q31_t)0x3fc6c6f0, - (q31_t)0x3ab4622d, (q31_t)0x3fc7d258, (q31_t)0x3ac0e83d, (q31_t)0x3fc8db4a, - (q31_t)0x3acd6e81, (q31_t)0x3fc9e1c6, (q31_t)0x3ad9f4f8, (q31_t)0x3fcae5cd, - (q31_t)0x3ae67ba2, (q31_t)0x3fcbe75e, (q31_t)0x3af3027e, (q31_t)0x3fcce67a, - (q31_t)0x3aff898c, (q31_t)0x3fcde320, (q31_t)0x3b0c10cb, (q31_t)0x3fcedd50, - (q31_t)0x3b18983b, (q31_t)0x3fcfd50b, (q31_t)0x3b251fdc, (q31_t)0x3fd0ca4f, - (q31_t)0x3b31a7ac, (q31_t)0x3fd1bd1e, (q31_t)0x3b3e2fac, (q31_t)0x3fd2ad77, - (q31_t)0x3b4ab7db, (q31_t)0x3fd39b5a, (q31_t)0x3b574039, (q31_t)0x3fd486c7, - (q31_t)0x3b63c8c4, (q31_t)0x3fd56fbe, (q31_t)0x3b70517d, (q31_t)0x3fd6563f, - (q31_t)0x3b7cda63, (q31_t)0x3fd73a4a, (q31_t)0x3b896375, (q31_t)0x3fd81bdf, - (q31_t)0x3b95ecb4, (q31_t)0x3fd8fafe, (q31_t)0x3ba2761e, (q31_t)0x3fd9d7a7, - (q31_t)0x3baeffb3, (q31_t)0x3fdab1d9, (q31_t)0x3bbb8973, (q31_t)0x3fdb8996, - (q31_t)0x3bc8135c, (q31_t)0x3fdc5edc, (q31_t)0x3bd49d70, (q31_t)0x3fdd31ac, - (q31_t)0x3be127ac, (q31_t)0x3fde0205, (q31_t)0x3bedb212, (q31_t)0x3fdecfe8, - (q31_t)0x3bfa3c9f, (q31_t)0x3fdf9b55, (q31_t)0x3c06c754, (q31_t)0x3fe0644b, - (q31_t)0x3c135231, (q31_t)0x3fe12acb, (q31_t)0x3c1fdd34, (q31_t)0x3fe1eed5, - (q31_t)0x3c2c685d, (q31_t)0x3fe2b067, (q31_t)0x3c38f3ac, (q31_t)0x3fe36f84, - (q31_t)0x3c457f21, (q31_t)0x3fe42c2a, (q31_t)0x3c520aba, (q31_t)0x3fe4e659, - (q31_t)0x3c5e9678, (q31_t)0x3fe59e12, (q31_t)0x3c6b2259, (q31_t)0x3fe65354, - (q31_t)0x3c77ae5e, (q31_t)0x3fe7061f, (q31_t)0x3c843a85, (q31_t)0x3fe7b674, - (q31_t)0x3c90c6cf, (q31_t)0x3fe86452, (q31_t)0x3c9d533b, (q31_t)0x3fe90fb9, - (q31_t)0x3ca9dfc8, (q31_t)0x3fe9b8a9, (q31_t)0x3cb66c77, (q31_t)0x3fea5f23, - (q31_t)0x3cc2f945, (q31_t)0x3feb0326, (q31_t)0x3ccf8634, (q31_t)0x3feba4b2, - (q31_t)0x3cdc1342, (q31_t)0x3fec43c7, (q31_t)0x3ce8a06f, (q31_t)0x3fece065, - (q31_t)0x3cf52dbb, (q31_t)0x3fed7a8c, (q31_t)0x3d01bb24, (q31_t)0x3fee123d, - (q31_t)0x3d0e48ab, (q31_t)0x3feea776, (q31_t)0x3d1ad650, (q31_t)0x3fef3a39, - (q31_t)0x3d276410, (q31_t)0x3fefca84, (q31_t)0x3d33f1ed, (q31_t)0x3ff05858, - (q31_t)0x3d407fe6, (q31_t)0x3ff0e3b6, (q31_t)0x3d4d0df9, (q31_t)0x3ff16c9c, - (q31_t)0x3d599c28, (q31_t)0x3ff1f30b, (q31_t)0x3d662a70, (q31_t)0x3ff27703, - (q31_t)0x3d72b8d2, (q31_t)0x3ff2f884, (q31_t)0x3d7f474d, (q31_t)0x3ff3778e, - (q31_t)0x3d8bd5e1, (q31_t)0x3ff3f420, (q31_t)0x3d98648d, (q31_t)0x3ff46e3c, - (q31_t)0x3da4f351, (q31_t)0x3ff4e5e0, (q31_t)0x3db1822c, (q31_t)0x3ff55b0d, - (q31_t)0x3dbe111e, (q31_t)0x3ff5cdc3, (q31_t)0x3dcaa027, (q31_t)0x3ff63e01, - (q31_t)0x3dd72f45, (q31_t)0x3ff6abc8, (q31_t)0x3de3be78, (q31_t)0x3ff71718, - (q31_t)0x3df04dc0, (q31_t)0x3ff77ff1, (q31_t)0x3dfcdd1d, (q31_t)0x3ff7e652, - (q31_t)0x3e096c8d, (q31_t)0x3ff84a3c, (q31_t)0x3e15fc11, (q31_t)0x3ff8abae, - (q31_t)0x3e228ba7, (q31_t)0x3ff90aaa, (q31_t)0x3e2f1b50, (q31_t)0x3ff9672d, - (q31_t)0x3e3bab0b, (q31_t)0x3ff9c13a, (q31_t)0x3e483ad8, (q31_t)0x3ffa18cf, - (q31_t)0x3e54cab5, (q31_t)0x3ffa6dec, (q31_t)0x3e615aa3, (q31_t)0x3ffac092, - (q31_t)0x3e6deaa1, (q31_t)0x3ffb10c1, (q31_t)0x3e7a7aae, (q31_t)0x3ffb5e78, - (q31_t)0x3e870aca, (q31_t)0x3ffba9b8, (q31_t)0x3e939af5, (q31_t)0x3ffbf280, - (q31_t)0x3ea02b2e, (q31_t)0x3ffc38d1, (q31_t)0x3eacbb74, (q31_t)0x3ffc7caa, - (q31_t)0x3eb94bc8, (q31_t)0x3ffcbe0c, (q31_t)0x3ec5dc28, (q31_t)0x3ffcfcf6, - (q31_t)0x3ed26c94, (q31_t)0x3ffd3969, (q31_t)0x3edefd0c, (q31_t)0x3ffd7364, - (q31_t)0x3eeb8d8f, (q31_t)0x3ffdaae7, (q31_t)0x3ef81e1d, (q31_t)0x3ffddff3, - (q31_t)0x3f04aeb5, (q31_t)0x3ffe1288, (q31_t)0x3f113f56, (q31_t)0x3ffe42a4, - (q31_t)0x3f1dd001, (q31_t)0x3ffe704a, (q31_t)0x3f2a60b4, (q31_t)0x3ffe9b77, - (q31_t)0x3f36f170, (q31_t)0x3ffec42d, (q31_t)0x3f438234, (q31_t)0x3ffeea6c, - (q31_t)0x3f5012fe, (q31_t)0x3fff0e32, (q31_t)0x3f5ca3d0, (q31_t)0x3fff2f82, - (q31_t)0x3f6934a8, (q31_t)0x3fff4e59, (q31_t)0x3f75c585, (q31_t)0x3fff6ab9, - (q31_t)0x3f825668, (q31_t)0x3fff84a1, (q31_t)0x3f8ee750, (q31_t)0x3fff9c12, - (q31_t)0x3f9b783c, (q31_t)0x3fffb10b, (q31_t)0x3fa8092c, (q31_t)0x3fffc38c, - (q31_t)0x3fb49a1f, (q31_t)0x3fffd396, (q31_t)0x3fc12b16, (q31_t)0x3fffe128, - (q31_t)0x3fcdbc0f, (q31_t)0x3fffec43, (q31_t)0x3fda4d09, (q31_t)0x3ffff4e6, - (q31_t)0x3fe6de05, (q31_t)0x3ffffb11, (q31_t)0x3ff36f02, (q31_t)0x3ffffec4, -}; - - -/** -* \par -* Generation of realCoefBQ31 array: -* \par -* n = 4096 -*
for (i = 0; i < n; i++)
-* {
-*    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));
-*    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
-* } 
-* \par -* Convert to fixed point Q31 format -* round(pBTable[i] * pow(2, 31)) -* -*/ - -const q31_t realCoefBQ31[8192] = { - (q31_t)0x40000000, (q31_t)0x40000000, (q31_t)0x400c90fe, (q31_t)0x3ffffec4, - (q31_t)0x401921fb, (q31_t)0x3ffffb11, (q31_t)0x4025b2f7, (q31_t)0x3ffff4e6, - (q31_t)0x403243f1, (q31_t)0x3fffec43, (q31_t)0x403ed4ea, (q31_t)0x3fffe128, - (q31_t)0x404b65e1, (q31_t)0x3fffd396, (q31_t)0x4057f6d4, (q31_t)0x3fffc38c, - (q31_t)0x406487c4, (q31_t)0x3fffb10b, (q31_t)0x407118b0, (q31_t)0x3fff9c12, - (q31_t)0x407da998, (q31_t)0x3fff84a1, (q31_t)0x408a3a7b, (q31_t)0x3fff6ab9, - (q31_t)0x4096cb58, (q31_t)0x3fff4e59, (q31_t)0x40a35c30, (q31_t)0x3fff2f82, - (q31_t)0x40afed02, (q31_t)0x3fff0e32, (q31_t)0x40bc7dcc, (q31_t)0x3ffeea6c, - (q31_t)0x40c90e90, (q31_t)0x3ffec42d, (q31_t)0x40d59f4c, (q31_t)0x3ffe9b77, - (q31_t)0x40e22fff, (q31_t)0x3ffe704a, (q31_t)0x40eec0aa, (q31_t)0x3ffe42a4, - (q31_t)0x40fb514b, (q31_t)0x3ffe1288, (q31_t)0x4107e1e3, (q31_t)0x3ffddff3, - (q31_t)0x41147271, (q31_t)0x3ffdaae7, (q31_t)0x412102f4, (q31_t)0x3ffd7364, - (q31_t)0x412d936c, (q31_t)0x3ffd3969, (q31_t)0x413a23d8, (q31_t)0x3ffcfcf6, - (q31_t)0x4146b438, (q31_t)0x3ffcbe0c, (q31_t)0x4153448c, (q31_t)0x3ffc7caa, - (q31_t)0x415fd4d2, (q31_t)0x3ffc38d1, (q31_t)0x416c650b, (q31_t)0x3ffbf280, - (q31_t)0x4178f536, (q31_t)0x3ffba9b8, (q31_t)0x41858552, (q31_t)0x3ffb5e78, - (q31_t)0x4192155f, (q31_t)0x3ffb10c1, (q31_t)0x419ea55d, (q31_t)0x3ffac092, - (q31_t)0x41ab354b, (q31_t)0x3ffa6dec, (q31_t)0x41b7c528, (q31_t)0x3ffa18cf, - (q31_t)0x41c454f5, (q31_t)0x3ff9c13a, (q31_t)0x41d0e4b0, (q31_t)0x3ff9672d, - (q31_t)0x41dd7459, (q31_t)0x3ff90aaa, (q31_t)0x41ea03ef, (q31_t)0x3ff8abae, - (q31_t)0x41f69373, (q31_t)0x3ff84a3c, (q31_t)0x420322e3, (q31_t)0x3ff7e652, - (q31_t)0x420fb240, (q31_t)0x3ff77ff1, (q31_t)0x421c4188, (q31_t)0x3ff71718, - (q31_t)0x4228d0bb, (q31_t)0x3ff6abc8, (q31_t)0x42355fd9, (q31_t)0x3ff63e01, - (q31_t)0x4241eee2, (q31_t)0x3ff5cdc3, (q31_t)0x424e7dd4, (q31_t)0x3ff55b0d, - (q31_t)0x425b0caf, (q31_t)0x3ff4e5e0, (q31_t)0x42679b73, (q31_t)0x3ff46e3c, - (q31_t)0x42742a1f, (q31_t)0x3ff3f420, (q31_t)0x4280b8b3, (q31_t)0x3ff3778e, - (q31_t)0x428d472e, (q31_t)0x3ff2f884, (q31_t)0x4299d590, (q31_t)0x3ff27703, - (q31_t)0x42a663d8, (q31_t)0x3ff1f30b, (q31_t)0x42b2f207, (q31_t)0x3ff16c9c, - (q31_t)0x42bf801a, (q31_t)0x3ff0e3b6, (q31_t)0x42cc0e13, (q31_t)0x3ff05858, - (q31_t)0x42d89bf0, (q31_t)0x3fefca84, (q31_t)0x42e529b0, (q31_t)0x3fef3a39, - (q31_t)0x42f1b755, (q31_t)0x3feea776, (q31_t)0x42fe44dc, (q31_t)0x3fee123d, - (q31_t)0x430ad245, (q31_t)0x3fed7a8c, (q31_t)0x43175f91, (q31_t)0x3fece065, - (q31_t)0x4323ecbe, (q31_t)0x3fec43c7, (q31_t)0x433079cc, (q31_t)0x3feba4b2, - (q31_t)0x433d06bb, (q31_t)0x3feb0326, (q31_t)0x43499389, (q31_t)0x3fea5f23, - (q31_t)0x43562038, (q31_t)0x3fe9b8a9, (q31_t)0x4362acc5, (q31_t)0x3fe90fb9, - (q31_t)0x436f3931, (q31_t)0x3fe86452, (q31_t)0x437bc57b, (q31_t)0x3fe7b674, - (q31_t)0x438851a2, (q31_t)0x3fe7061f, (q31_t)0x4394dda7, (q31_t)0x3fe65354, - (q31_t)0x43a16988, (q31_t)0x3fe59e12, (q31_t)0x43adf546, (q31_t)0x3fe4e659, - (q31_t)0x43ba80df, (q31_t)0x3fe42c2a, (q31_t)0x43c70c54, (q31_t)0x3fe36f84, - (q31_t)0x43d397a3, (q31_t)0x3fe2b067, (q31_t)0x43e022cc, (q31_t)0x3fe1eed5, - (q31_t)0x43ecadcf, (q31_t)0x3fe12acb, (q31_t)0x43f938ac, (q31_t)0x3fe0644b, - (q31_t)0x4405c361, (q31_t)0x3fdf9b55, (q31_t)0x44124dee, (q31_t)0x3fdecfe8, - (q31_t)0x441ed854, (q31_t)0x3fde0205, (q31_t)0x442b6290, (q31_t)0x3fdd31ac, - (q31_t)0x4437eca4, (q31_t)0x3fdc5edc, (q31_t)0x4444768d, (q31_t)0x3fdb8996, - (q31_t)0x4451004d, (q31_t)0x3fdab1d9, (q31_t)0x445d89e2, (q31_t)0x3fd9d7a7, - (q31_t)0x446a134c, (q31_t)0x3fd8fafe, (q31_t)0x44769c8b, (q31_t)0x3fd81bdf, - (q31_t)0x4483259d, (q31_t)0x3fd73a4a, (q31_t)0x448fae83, (q31_t)0x3fd6563f, - (q31_t)0x449c373c, (q31_t)0x3fd56fbe, (q31_t)0x44a8bfc7, (q31_t)0x3fd486c7, - (q31_t)0x44b54825, (q31_t)0x3fd39b5a, (q31_t)0x44c1d054, (q31_t)0x3fd2ad77, - (q31_t)0x44ce5854, (q31_t)0x3fd1bd1e, (q31_t)0x44dae024, (q31_t)0x3fd0ca4f, - (q31_t)0x44e767c5, (q31_t)0x3fcfd50b, (q31_t)0x44f3ef35, (q31_t)0x3fcedd50, - (q31_t)0x45007674, (q31_t)0x3fcde320, (q31_t)0x450cfd82, (q31_t)0x3fcce67a, - (q31_t)0x4519845e, (q31_t)0x3fcbe75e, (q31_t)0x45260b08, (q31_t)0x3fcae5cd, - (q31_t)0x4532917f, (q31_t)0x3fc9e1c6, (q31_t)0x453f17c3, (q31_t)0x3fc8db4a, - (q31_t)0x454b9dd3, (q31_t)0x3fc7d258, (q31_t)0x455823ae, (q31_t)0x3fc6c6f0, - (q31_t)0x4564a955, (q31_t)0x3fc5b913, (q31_t)0x45712ec7, (q31_t)0x3fc4a8c1, - (q31_t)0x457db403, (q31_t)0x3fc395f9, (q31_t)0x458a3908, (q31_t)0x3fc280bc, - (q31_t)0x4596bdd7, (q31_t)0x3fc1690a, (q31_t)0x45a3426f, (q31_t)0x3fc04ee3, - (q31_t)0x45afc6d0, (q31_t)0x3fbf3246, (q31_t)0x45bc4af8, (q31_t)0x3fbe1334, - (q31_t)0x45c8cee7, (q31_t)0x3fbcf1ad, (q31_t)0x45d5529e, (q31_t)0x3fbbcdb1, - (q31_t)0x45e1d61b, (q31_t)0x3fbaa740, (q31_t)0x45ee595d, (q31_t)0x3fb97e5a, - (q31_t)0x45fadc66, (q31_t)0x3fb852ff, (q31_t)0x46075f33, (q31_t)0x3fb7252f, - (q31_t)0x4613e1c5, (q31_t)0x3fb5f4ea, (q31_t)0x4620641a, (q31_t)0x3fb4c231, - (q31_t)0x462ce634, (q31_t)0x3fb38d02, (q31_t)0x46396810, (q31_t)0x3fb2555f, - (q31_t)0x4645e9af, (q31_t)0x3fb11b48, (q31_t)0x46526b10, (q31_t)0x3fafdebb, - (q31_t)0x465eec33, (q31_t)0x3fae9fbb, (q31_t)0x466b6d16, (q31_t)0x3fad5e45, - (q31_t)0x4677edbb, (q31_t)0x3fac1a5b, (q31_t)0x46846e1f, (q31_t)0x3faad3fd, - (q31_t)0x4690ee44, (q31_t)0x3fa98b2a, (q31_t)0x469d6e27, (q31_t)0x3fa83fe3, - (q31_t)0x46a9edc9, (q31_t)0x3fa6f228, (q31_t)0x46b66d29, (q31_t)0x3fa5a1f9, - (q31_t)0x46c2ec48, (q31_t)0x3fa44f55, (q31_t)0x46cf6b23, (q31_t)0x3fa2fa3d, - (q31_t)0x46dbe9bb, (q31_t)0x3fa1a2b2, (q31_t)0x46e86810, (q31_t)0x3fa048b2, - (q31_t)0x46f4e620, (q31_t)0x3f9eec3e, (q31_t)0x470163eb, (q31_t)0x3f9d8d56, - (q31_t)0x470de172, (q31_t)0x3f9c2bfb, (q31_t)0x471a5eb3, (q31_t)0x3f9ac82c, - (q31_t)0x4726dbae, (q31_t)0x3f9961e8, (q31_t)0x47335862, (q31_t)0x3f97f932, - (q31_t)0x473fd4cf, (q31_t)0x3f968e07, (q31_t)0x474c50f4, (q31_t)0x3f952069, - (q31_t)0x4758ccd2, (q31_t)0x3f93b058, (q31_t)0x47654867, (q31_t)0x3f923dd2, - (q31_t)0x4771c3b3, (q31_t)0x3f90c8da, (q31_t)0x477e3eb5, (q31_t)0x3f8f516e, - (q31_t)0x478ab96e, (q31_t)0x3f8dd78f, (q31_t)0x479733dc, (q31_t)0x3f8c5b3d, - (q31_t)0x47a3adff, (q31_t)0x3f8adc77, (q31_t)0x47b027d7, (q31_t)0x3f895b3e, - (q31_t)0x47bca163, (q31_t)0x3f87d792, (q31_t)0x47c91aa3, (q31_t)0x3f865174, - (q31_t)0x47d59396, (q31_t)0x3f84c8e2, (q31_t)0x47e20c3b, (q31_t)0x3f833ddd, - (q31_t)0x47ee8493, (q31_t)0x3f81b065, (q31_t)0x47fafc9c, (q31_t)0x3f80207b, - (q31_t)0x48077457, (q31_t)0x3f7e8e1e, (q31_t)0x4813ebc2, (q31_t)0x3f7cf94e, - (q31_t)0x482062de, (q31_t)0x3f7b620c, (q31_t)0x482cd9a9, (q31_t)0x3f79c857, - (q31_t)0x48395024, (q31_t)0x3f782c30, (q31_t)0x4845c64d, (q31_t)0x3f768d96, - (q31_t)0x48523c25, (q31_t)0x3f74ec8a, (q31_t)0x485eb1ab, (q31_t)0x3f73490b, - (q31_t)0x486b26de, (q31_t)0x3f71a31b, (q31_t)0x48779bbe, (q31_t)0x3f6ffab8, - (q31_t)0x4884104b, (q31_t)0x3f6e4fe3, (q31_t)0x48908483, (q31_t)0x3f6ca29c, - (q31_t)0x489cf867, (q31_t)0x3f6af2e3, (q31_t)0x48a96bf6, (q31_t)0x3f6940b8, - (q31_t)0x48b5df30, (q31_t)0x3f678c1c, (q31_t)0x48c25213, (q31_t)0x3f65d50d, - (q31_t)0x48cec4a0, (q31_t)0x3f641b8d, (q31_t)0x48db36d6, (q31_t)0x3f625f9b, - (q31_t)0x48e7a8b5, (q31_t)0x3f60a138, (q31_t)0x48f41a3c, (q31_t)0x3f5ee063, - (q31_t)0x49008b6a, (q31_t)0x3f5d1d1d, (q31_t)0x490cfc40, (q31_t)0x3f5b5765, - (q31_t)0x49196cbc, (q31_t)0x3f598f3c, (q31_t)0x4925dcdf, (q31_t)0x3f57c4a2, - (q31_t)0x49324ca7, (q31_t)0x3f55f796, (q31_t)0x493ebc14, (q31_t)0x3f54281a, - (q31_t)0x494b2b27, (q31_t)0x3f52562c, (q31_t)0x495799dd, (q31_t)0x3f5081cd, - (q31_t)0x49640837, (q31_t)0x3f4eaafe, (q31_t)0x49707635, (q31_t)0x3f4cd1be, - (q31_t)0x497ce3d5, (q31_t)0x3f4af60d, (q31_t)0x49895118, (q31_t)0x3f4917eb, - (q31_t)0x4995bdfd, (q31_t)0x3f473759, (q31_t)0x49a22a83, (q31_t)0x3f455456, - (q31_t)0x49ae96aa, (q31_t)0x3f436ee3, (q31_t)0x49bb0271, (q31_t)0x3f4186ff, - (q31_t)0x49c76dd8, (q31_t)0x3f3f9cab, (q31_t)0x49d3d8df, (q31_t)0x3f3dafe7, - (q31_t)0x49e04385, (q31_t)0x3f3bc0b3, (q31_t)0x49ecadc9, (q31_t)0x3f39cf0e, - (q31_t)0x49f917ac, (q31_t)0x3f37dafa, (q31_t)0x4a05812c, (q31_t)0x3f35e476, - (q31_t)0x4a11ea49, (q31_t)0x3f33eb81, (q31_t)0x4a1e5303, (q31_t)0x3f31f01d, - (q31_t)0x4a2abb59, (q31_t)0x3f2ff24a, (q31_t)0x4a37234a, (q31_t)0x3f2df206, - (q31_t)0x4a438ad7, (q31_t)0x3f2bef53, (q31_t)0x4a4ff1fe, (q31_t)0x3f29ea31, - (q31_t)0x4a5c58c0, (q31_t)0x3f27e29f, (q31_t)0x4a68bf1b, (q31_t)0x3f25d89e, - (q31_t)0x4a752510, (q31_t)0x3f23cc2e, (q31_t)0x4a818a9d, (q31_t)0x3f21bd4e, - (q31_t)0x4a8defc3, (q31_t)0x3f1fabff, (q31_t)0x4a9a5480, (q31_t)0x3f1d9842, - (q31_t)0x4aa6b8d5, (q31_t)0x3f1b8215, (q31_t)0x4ab31cc1, (q31_t)0x3f19697a, - (q31_t)0x4abf8043, (q31_t)0x3f174e70, (q31_t)0x4acbe35b, (q31_t)0x3f1530f7, - (q31_t)0x4ad84609, (q31_t)0x3f13110f, (q31_t)0x4ae4a84b, (q31_t)0x3f10eeb9, - (q31_t)0x4af10a22, (q31_t)0x3f0ec9f5, (q31_t)0x4afd6b8d, (q31_t)0x3f0ca2c2, - (q31_t)0x4b09cc8c, (q31_t)0x3f0a7921, (q31_t)0x4b162d1d, (q31_t)0x3f084d12, - (q31_t)0x4b228d42, (q31_t)0x3f061e95, (q31_t)0x4b2eecf8, (q31_t)0x3f03eda9, - (q31_t)0x4b3b4c40, (q31_t)0x3f01ba50, (q31_t)0x4b47ab19, (q31_t)0x3eff8489, - (q31_t)0x4b540982, (q31_t)0x3efd4c54, (q31_t)0x4b60677c, (q31_t)0x3efb11b1, - (q31_t)0x4b6cc506, (q31_t)0x3ef8d4a1, (q31_t)0x4b79221f, (q31_t)0x3ef69523, - (q31_t)0x4b857ec7, (q31_t)0x3ef45338, (q31_t)0x4b91dafc, (q31_t)0x3ef20ee0, - (q31_t)0x4b9e36c0, (q31_t)0x3eefc81a, (q31_t)0x4baa9211, (q31_t)0x3eed7ee7, - (q31_t)0x4bb6ecef, (q31_t)0x3eeb3347, (q31_t)0x4bc34759, (q31_t)0x3ee8e53a, - (q31_t)0x4bcfa150, (q31_t)0x3ee694c1, (q31_t)0x4bdbfad1, (q31_t)0x3ee441da, - (q31_t)0x4be853de, (q31_t)0x3ee1ec87, (q31_t)0x4bf4ac75, (q31_t)0x3edf94c7, - (q31_t)0x4c010496, (q31_t)0x3edd3a9a, (q31_t)0x4c0d5c41, (q31_t)0x3edade01, - (q31_t)0x4c19b374, (q31_t)0x3ed87efc, (q31_t)0x4c260a31, (q31_t)0x3ed61d8a, - (q31_t)0x4c326075, (q31_t)0x3ed3b9ad, (q31_t)0x4c3eb641, (q31_t)0x3ed15363, - (q31_t)0x4c4b0b94, (q31_t)0x3eceeaad, (q31_t)0x4c57606e, (q31_t)0x3ecc7f8b, - (q31_t)0x4c63b4ce, (q31_t)0x3eca11fe, (q31_t)0x4c7008b3, (q31_t)0x3ec7a205, - (q31_t)0x4c7c5c1e, (q31_t)0x3ec52fa0, (q31_t)0x4c88af0e, (q31_t)0x3ec2bad0, - (q31_t)0x4c950182, (q31_t)0x3ec04394, (q31_t)0x4ca1537a, (q31_t)0x3ebdc9ed, - (q31_t)0x4cada4f5, (q31_t)0x3ebb4ddb, (q31_t)0x4cb9f5f3, (q31_t)0x3eb8cf5d, - (q31_t)0x4cc64673, (q31_t)0x3eb64e75, (q31_t)0x4cd29676, (q31_t)0x3eb3cb21, - (q31_t)0x4cdee5f9, (q31_t)0x3eb14563, (q31_t)0x4ceb34fe, (q31_t)0x3eaebd3a, - (q31_t)0x4cf78383, (q31_t)0x3eac32a6, (q31_t)0x4d03d189, (q31_t)0x3ea9a5a8, - (q31_t)0x4d101f0e, (q31_t)0x3ea7163f, (q31_t)0x4d1c6c11, (q31_t)0x3ea4846c, - (q31_t)0x4d28b894, (q31_t)0x3ea1f02f, (q31_t)0x4d350495, (q31_t)0x3e9f5988, - (q31_t)0x4d415013, (q31_t)0x3e9cc076, (q31_t)0x4d4d9b0e, (q31_t)0x3e9a24fb, - (q31_t)0x4d59e586, (q31_t)0x3e978715, (q31_t)0x4d662f7b, (q31_t)0x3e94e6c6, - (q31_t)0x4d7278eb, (q31_t)0x3e92440d, (q31_t)0x4d7ec1d6, (q31_t)0x3e8f9eeb, - (q31_t)0x4d8b0a3d, (q31_t)0x3e8cf75f, (q31_t)0x4d97521d, (q31_t)0x3e8a4d6a, - (q31_t)0x4da39978, (q31_t)0x3e87a10c, (q31_t)0x4dafe04b, (q31_t)0x3e84f245, - (q31_t)0x4dbc2698, (q31_t)0x3e824114, (q31_t)0x4dc86c5d, (q31_t)0x3e7f8d7b, - (q31_t)0x4dd4b19a, (q31_t)0x3e7cd778, (q31_t)0x4de0f64f, (q31_t)0x3e7a1f0d, - (q31_t)0x4ded3a7b, (q31_t)0x3e77643a, (q31_t)0x4df97e1d, (q31_t)0x3e74a6fd, - (q31_t)0x4e05c135, (q31_t)0x3e71e759, (q31_t)0x4e1203c3, (q31_t)0x3e6f254c, - (q31_t)0x4e1e45c6, (q31_t)0x3e6c60d7, (q31_t)0x4e2a873e, (q31_t)0x3e6999fa, - (q31_t)0x4e36c82a, (q31_t)0x3e66d0b4, (q31_t)0x4e430889, (q31_t)0x3e640507, - (q31_t)0x4e4f485c, (q31_t)0x3e6136f3, (q31_t)0x4e5b87a2, (q31_t)0x3e5e6676, - (q31_t)0x4e67c65a, (q31_t)0x3e5b9392, (q31_t)0x4e740483, (q31_t)0x3e58be47, - (q31_t)0x4e80421e, (q31_t)0x3e55e694, (q31_t)0x4e8c7f2a, (q31_t)0x3e530c7a, - (q31_t)0x4e98bba7, (q31_t)0x3e502ff9, (q31_t)0x4ea4f793, (q31_t)0x3e4d5110, - (q31_t)0x4eb132ef, (q31_t)0x3e4a6fc1, (q31_t)0x4ebd6db9, (q31_t)0x3e478c0b, - (q31_t)0x4ec9a7f3, (q31_t)0x3e44a5ef, (q31_t)0x4ed5e19a, (q31_t)0x3e41bd6c, - (q31_t)0x4ee21aaf, (q31_t)0x3e3ed282, (q31_t)0x4eee5331, (q31_t)0x3e3be532, - (q31_t)0x4efa8b20, (q31_t)0x3e38f57c, (q31_t)0x4f06c27a, (q31_t)0x3e360360, - (q31_t)0x4f12f941, (q31_t)0x3e330ede, (q31_t)0x4f1f2f73, (q31_t)0x3e3017f6, - (q31_t)0x4f2b650f, (q31_t)0x3e2d1ea8, (q31_t)0x4f379a16, (q31_t)0x3e2a22f4, - (q31_t)0x4f43ce86, (q31_t)0x3e2724db, (q31_t)0x4f500260, (q31_t)0x3e24245d, - (q31_t)0x4f5c35a3, (q31_t)0x3e212179, (q31_t)0x4f68684e, (q31_t)0x3e1e1c30, - (q31_t)0x4f749a61, (q31_t)0x3e1b1482, (q31_t)0x4f80cbdc, (q31_t)0x3e180a6f, - (q31_t)0x4f8cfcbe, (q31_t)0x3e14fdf7, (q31_t)0x4f992d06, (q31_t)0x3e11ef1b, - (q31_t)0x4fa55cb4, (q31_t)0x3e0eddd9, (q31_t)0x4fb18bc8, (q31_t)0x3e0bca34, - (q31_t)0x4fbdba40, (q31_t)0x3e08b42a, (q31_t)0x4fc9e81e, (q31_t)0x3e059bbb, - (q31_t)0x4fd6155f, (q31_t)0x3e0280e9, (q31_t)0x4fe24205, (q31_t)0x3dff63b2, - (q31_t)0x4fee6e0d, (q31_t)0x3dfc4418, (q31_t)0x4ffa9979, (q31_t)0x3df9221a, - (q31_t)0x5006c446, (q31_t)0x3df5fdb8, (q31_t)0x5012ee76, (q31_t)0x3df2d6f3, - (q31_t)0x501f1807, (q31_t)0x3defadca, (q31_t)0x502b40f8, (q31_t)0x3dec823e, - (q31_t)0x5037694b, (q31_t)0x3de9544f, (q31_t)0x504390fd, (q31_t)0x3de623fd, - (q31_t)0x504fb80e, (q31_t)0x3de2f148, (q31_t)0x505bde7f, (q31_t)0x3ddfbc30, - (q31_t)0x5068044e, (q31_t)0x3ddc84b5, (q31_t)0x5074297b, (q31_t)0x3dd94ad8, - (q31_t)0x50804e06, (q31_t)0x3dd60e99, (q31_t)0x508c71ee, (q31_t)0x3dd2cff7, - (q31_t)0x50989532, (q31_t)0x3dcf8ef3, (q31_t)0x50a4b7d3, (q31_t)0x3dcc4b8d, - (q31_t)0x50b0d9d0, (q31_t)0x3dc905c5, (q31_t)0x50bcfb28, (q31_t)0x3dc5bd9b, - (q31_t)0x50c91bda, (q31_t)0x3dc2730f, (q31_t)0x50d53be7, (q31_t)0x3dbf2622, - (q31_t)0x50e15b4e, (q31_t)0x3dbbd6d4, (q31_t)0x50ed7a0e, (q31_t)0x3db88524, - (q31_t)0x50f99827, (q31_t)0x3db53113, (q31_t)0x5105b599, (q31_t)0x3db1daa2, - (q31_t)0x5111d263, (q31_t)0x3dae81cf, (q31_t)0x511dee84, (q31_t)0x3dab269b, - (q31_t)0x512a09fc, (q31_t)0x3da7c907, (q31_t)0x513624cb, (q31_t)0x3da46912, - (q31_t)0x51423ef0, (q31_t)0x3da106bd, (q31_t)0x514e586a, (q31_t)0x3d9da208, - (q31_t)0x515a713a, (q31_t)0x3d9a3af2, (q31_t)0x5166895f, (q31_t)0x3d96d17d, - (q31_t)0x5172a0d7, (q31_t)0x3d9365a8, (q31_t)0x517eb7a4, (q31_t)0x3d8ff772, - (q31_t)0x518acdc4, (q31_t)0x3d8c86de, (q31_t)0x5196e337, (q31_t)0x3d8913ea, - (q31_t)0x51a2f7fc, (q31_t)0x3d859e96, (q31_t)0x51af0c13, (q31_t)0x3d8226e4, - (q31_t)0x51bb1f7c, (q31_t)0x3d7eacd2, (q31_t)0x51c73235, (q31_t)0x3d7b3061, - (q31_t)0x51d3443f, (q31_t)0x3d77b192, (q31_t)0x51df5599, (q31_t)0x3d743064, - (q31_t)0x51eb6643, (q31_t)0x3d70acd7, (q31_t)0x51f7763c, (q31_t)0x3d6d26ec, - (q31_t)0x52038584, (q31_t)0x3d699ea3, (q31_t)0x520f941a, (q31_t)0x3d6613fb, - (q31_t)0x521ba1fd, (q31_t)0x3d6286f6, (q31_t)0x5227af2e, (q31_t)0x3d5ef793, - (q31_t)0x5233bbac, (q31_t)0x3d5b65d2, (q31_t)0x523fc776, (q31_t)0x3d57d1b3, - (q31_t)0x524bd28c, (q31_t)0x3d543b37, (q31_t)0x5257dced, (q31_t)0x3d50a25e, - (q31_t)0x5263e699, (q31_t)0x3d4d0728, (q31_t)0x526fef90, (q31_t)0x3d496994, - (q31_t)0x527bf7d1, (q31_t)0x3d45c9a4, (q31_t)0x5287ff5b, (q31_t)0x3d422757, - (q31_t)0x5294062f, (q31_t)0x3d3e82ae, (q31_t)0x52a00c4b, (q31_t)0x3d3adba7, - (q31_t)0x52ac11af, (q31_t)0x3d373245, (q31_t)0x52b8165b, (q31_t)0x3d338687, - (q31_t)0x52c41a4f, (q31_t)0x3d2fd86c, (q31_t)0x52d01d89, (q31_t)0x3d2c27f6, - (q31_t)0x52dc2009, (q31_t)0x3d287523, (q31_t)0x52e821cf, (q31_t)0x3d24bff6, - (q31_t)0x52f422db, (q31_t)0x3d21086c, (q31_t)0x5300232c, (q31_t)0x3d1d4e88, - (q31_t)0x530c22c1, (q31_t)0x3d199248, (q31_t)0x5318219a, (q31_t)0x3d15d3ad, - (q31_t)0x53241fb6, (q31_t)0x3d1212b7, (q31_t)0x53301d16, (q31_t)0x3d0e4f67, - (q31_t)0x533c19b8, (q31_t)0x3d0a89bc, (q31_t)0x5348159d, (q31_t)0x3d06c1b6, - (q31_t)0x535410c3, (q31_t)0x3d02f757, (q31_t)0x53600b2a, (q31_t)0x3cff2a9d, - (q31_t)0x536c04d2, (q31_t)0x3cfb5b89, (q31_t)0x5377fdbb, (q31_t)0x3cf78a1b, - (q31_t)0x5383f5e3, (q31_t)0x3cf3b653, (q31_t)0x538fed4b, (q31_t)0x3cefe032, - (q31_t)0x539be3f2, (q31_t)0x3cec07b8, (q31_t)0x53a7d9d7, (q31_t)0x3ce82ce4, - (q31_t)0x53b3cefa, (q31_t)0x3ce44fb7, (q31_t)0x53bfc35b, (q31_t)0x3ce07031, - (q31_t)0x53cbb6f8, (q31_t)0x3cdc8e52, (q31_t)0x53d7a9d3, (q31_t)0x3cd8aa1b, - (q31_t)0x53e39be9, (q31_t)0x3cd4c38b, (q31_t)0x53ef8d3c, (q31_t)0x3cd0daa2, - (q31_t)0x53fb7dc9, (q31_t)0x3cccef62, (q31_t)0x54076d91, (q31_t)0x3cc901c9, - (q31_t)0x54135c94, (q31_t)0x3cc511d9, (q31_t)0x541f4ad1, (q31_t)0x3cc11f90, - (q31_t)0x542b3846, (q31_t)0x3cbd2af0, (q31_t)0x543724f5, (q31_t)0x3cb933f9, - (q31_t)0x544310dd, (q31_t)0x3cb53aaa, (q31_t)0x544efbfc, (q31_t)0x3cb13f04, - (q31_t)0x545ae653, (q31_t)0x3cad4107, (q31_t)0x5466cfe1, (q31_t)0x3ca940b3, - (q31_t)0x5472b8a5, (q31_t)0x3ca53e09, (q31_t)0x547ea0a0, (q31_t)0x3ca13908, - (q31_t)0x548a87d1, (q31_t)0x3c9d31b0, (q31_t)0x54966e36, (q31_t)0x3c992803, - (q31_t)0x54a253d1, (q31_t)0x3c951bff, (q31_t)0x54ae38a0, (q31_t)0x3c910da5, - (q31_t)0x54ba1ca3, (q31_t)0x3c8cfcf6, (q31_t)0x54c5ffd9, (q31_t)0x3c88e9f1, - (q31_t)0x54d1e242, (q31_t)0x3c84d496, (q31_t)0x54ddc3de, (q31_t)0x3c80bce7, - (q31_t)0x54e9a4ac, (q31_t)0x3c7ca2e2, (q31_t)0x54f584ac, (q31_t)0x3c788688, - (q31_t)0x550163dc, (q31_t)0x3c7467d9, (q31_t)0x550d423d, (q31_t)0x3c7046d6, - (q31_t)0x55191fcf, (q31_t)0x3c6c237e, (q31_t)0x5524fc90, (q31_t)0x3c67fdd1, - (q31_t)0x5530d881, (q31_t)0x3c63d5d1, (q31_t)0x553cb3a0, (q31_t)0x3c5fab7c, - (q31_t)0x55488dee, (q31_t)0x3c5b7ed4, (q31_t)0x5554676a, (q31_t)0x3c574fd8, - (q31_t)0x55604013, (q31_t)0x3c531e88, (q31_t)0x556c17e9, (q31_t)0x3c4eeae5, - (q31_t)0x5577eeec, (q31_t)0x3c4ab4ef, (q31_t)0x5583c51b, (q31_t)0x3c467ca6, - (q31_t)0x558f9a76, (q31_t)0x3c42420a, (q31_t)0x559b6efb, (q31_t)0x3c3e051b, - (q31_t)0x55a742ac, (q31_t)0x3c39c5da, (q31_t)0x55b31587, (q31_t)0x3c358446, - (q31_t)0x55bee78c, (q31_t)0x3c314060, (q31_t)0x55cab8ba, (q31_t)0x3c2cfa28, - (q31_t)0x55d68911, (q31_t)0x3c28b19e, (q31_t)0x55e25890, (q31_t)0x3c2466c2, - (q31_t)0x55ee2738, (q31_t)0x3c201994, (q31_t)0x55f9f507, (q31_t)0x3c1bca16, - (q31_t)0x5605c1fd, (q31_t)0x3c177845, (q31_t)0x56118e1a, (q31_t)0x3c132424, - (q31_t)0x561d595d, (q31_t)0x3c0ecdb2, (q31_t)0x562923c5, (q31_t)0x3c0a74f0, - (q31_t)0x5634ed53, (q31_t)0x3c0619dc, (q31_t)0x5640b606, (q31_t)0x3c01bc78, - (q31_t)0x564c7ddd, (q31_t)0x3bfd5cc4, (q31_t)0x565844d8, (q31_t)0x3bf8fac0, - (q31_t)0x56640af7, (q31_t)0x3bf4966c, (q31_t)0x566fd039, (q31_t)0x3bf02fc9, - (q31_t)0x567b949d, (q31_t)0x3bebc6d5, (q31_t)0x56875823, (q31_t)0x3be75b93, - (q31_t)0x56931acb, (q31_t)0x3be2ee01, (q31_t)0x569edc94, (q31_t)0x3bde7e20, - (q31_t)0x56aa9d7e, (q31_t)0x3bda0bf0, (q31_t)0x56b65d88, (q31_t)0x3bd59771, - (q31_t)0x56c21cb2, (q31_t)0x3bd120a4, (q31_t)0x56cddafb, (q31_t)0x3bcca789, - (q31_t)0x56d99864, (q31_t)0x3bc82c1f, (q31_t)0x56e554ea, (q31_t)0x3bc3ae67, - (q31_t)0x56f1108f, (q31_t)0x3bbf2e62, (q31_t)0x56fccb51, (q31_t)0x3bbaac0e, - (q31_t)0x57088531, (q31_t)0x3bb6276e, (q31_t)0x57143e2d, (q31_t)0x3bb1a080, - (q31_t)0x571ff646, (q31_t)0x3bad1744, (q31_t)0x572bad7a, (q31_t)0x3ba88bbc, - (q31_t)0x573763c9, (q31_t)0x3ba3fde7, (q31_t)0x57431933, (q31_t)0x3b9f6dc5, - (q31_t)0x574ecdb8, (q31_t)0x3b9adb57, (q31_t)0x575a8157, (q31_t)0x3b96469d, - (q31_t)0x5766340f, (q31_t)0x3b91af97, (q31_t)0x5771e5e0, (q31_t)0x3b8d1644, - (q31_t)0x577d96ca, (q31_t)0x3b887aa6, (q31_t)0x578946cc, (q31_t)0x3b83dcbc, - (q31_t)0x5794f5e6, (q31_t)0x3b7f3c87, (q31_t)0x57a0a417, (q31_t)0x3b7a9a07, - (q31_t)0x57ac515f, (q31_t)0x3b75f53c, (q31_t)0x57b7fdbd, (q31_t)0x3b714e25, - (q31_t)0x57c3a931, (q31_t)0x3b6ca4c4, (q31_t)0x57cf53bb, (q31_t)0x3b67f919, - (q31_t)0x57dafd59, (q31_t)0x3b634b23, (q31_t)0x57e6a60c, (q31_t)0x3b5e9ae4, - (q31_t)0x57f24dd3, (q31_t)0x3b59e85a, (q31_t)0x57fdf4ae, (q31_t)0x3b553386, - (q31_t)0x58099a9c, (q31_t)0x3b507c69, (q31_t)0x58153f9d, (q31_t)0x3b4bc303, - (q31_t)0x5820e3b0, (q31_t)0x3b470753, (q31_t)0x582c86d5, (q31_t)0x3b42495a, - (q31_t)0x5838290c, (q31_t)0x3b3d8918, (q31_t)0x5843ca53, (q31_t)0x3b38c68e, - (q31_t)0x584f6aab, (q31_t)0x3b3401bb, (q31_t)0x585b0a13, (q31_t)0x3b2f3aa0, - (q31_t)0x5866a88a, (q31_t)0x3b2a713d, (q31_t)0x58724611, (q31_t)0x3b25a591, - (q31_t)0x587de2a7, (q31_t)0x3b20d79e, (q31_t)0x58897e4a, (q31_t)0x3b1c0764, - (q31_t)0x589518fc, (q31_t)0x3b1734e2, (q31_t)0x58a0b2bb, (q31_t)0x3b126019, - (q31_t)0x58ac4b87, (q31_t)0x3b0d8909, (q31_t)0x58b7e35f, (q31_t)0x3b08afb2, - (q31_t)0x58c37a44, (q31_t)0x3b03d414, (q31_t)0x58cf1034, (q31_t)0x3afef630, - (q31_t)0x58daa52f, (q31_t)0x3afa1605, (q31_t)0x58e63935, (q31_t)0x3af53395, - (q31_t)0x58f1cc45, (q31_t)0x3af04edf, (q31_t)0x58fd5e5f, (q31_t)0x3aeb67e3, - (q31_t)0x5908ef82, (q31_t)0x3ae67ea1, (q31_t)0x59147fae, (q31_t)0x3ae1931a, - (q31_t)0x59200ee3, (q31_t)0x3adca54e, (q31_t)0x592b9d1f, (q31_t)0x3ad7b53d, - (q31_t)0x59372a64, (q31_t)0x3ad2c2e8, (q31_t)0x5942b6af, (q31_t)0x3acdce4d, - (q31_t)0x594e4201, (q31_t)0x3ac8d76f, (q31_t)0x5959cc5a, (q31_t)0x3ac3de4c, - (q31_t)0x596555b8, (q31_t)0x3abee2e5, (q31_t)0x5970de1b, (q31_t)0x3ab9e53a, - (q31_t)0x597c6584, (q31_t)0x3ab4e54c, (q31_t)0x5987ebf0, (q31_t)0x3aafe31b, - (q31_t)0x59937161, (q31_t)0x3aaadea6, (q31_t)0x599ef5d6, (q31_t)0x3aa5d7ee, - (q31_t)0x59aa794d, (q31_t)0x3aa0cef3, (q31_t)0x59b5fbc8, (q31_t)0x3a9bc3b6, - (q31_t)0x59c17d44, (q31_t)0x3a96b636, (q31_t)0x59ccfdc2, (q31_t)0x3a91a674, - (q31_t)0x59d87d42, (q31_t)0x3a8c9470, (q31_t)0x59e3fbc3, (q31_t)0x3a87802a, - (q31_t)0x59ef7944, (q31_t)0x3a8269a3, (q31_t)0x59faf5c5, (q31_t)0x3a7d50da, - (q31_t)0x5a067145, (q31_t)0x3a7835cf, (q31_t)0x5a11ebc5, (q31_t)0x3a731884, - (q31_t)0x5a1d6544, (q31_t)0x3a6df8f8, (q31_t)0x5a28ddc0, (q31_t)0x3a68d72b, - (q31_t)0x5a34553b, (q31_t)0x3a63b31d, (q31_t)0x5a3fcbb3, (q31_t)0x3a5e8cd0, - (q31_t)0x5a4b4128, (q31_t)0x3a596442, (q31_t)0x5a56b599, (q31_t)0x3a543974, - (q31_t)0x5a622907, (q31_t)0x3a4f0c67, (q31_t)0x5a6d9b70, (q31_t)0x3a49dd1a, - (q31_t)0x5a790cd4, (q31_t)0x3a44ab8e, (q31_t)0x5a847d33, (q31_t)0x3a3f77c3, - (q31_t)0x5a8fec8c, (q31_t)0x3a3a41b9, (q31_t)0x5a9b5adf, (q31_t)0x3a350970, - (q31_t)0x5aa6c82b, (q31_t)0x3a2fcee8, (q31_t)0x5ab23471, (q31_t)0x3a2a9223, - (q31_t)0x5abd9faf, (q31_t)0x3a25531f, (q31_t)0x5ac909e5, (q31_t)0x3a2011de, - (q31_t)0x5ad47312, (q31_t)0x3a1ace5f, (q31_t)0x5adfdb37, (q31_t)0x3a1588a2, - (q31_t)0x5aeb4253, (q31_t)0x3a1040a8, (q31_t)0x5af6a865, (q31_t)0x3a0af671, - (q31_t)0x5b020d6c, (q31_t)0x3a05a9fd, (q31_t)0x5b0d716a, (q31_t)0x3a005b4d, - (q31_t)0x5b18d45c, (q31_t)0x39fb0a60, (q31_t)0x5b243643, (q31_t)0x39f5b737, - (q31_t)0x5b2f971e, (q31_t)0x39f061d2, (q31_t)0x5b3af6ec, (q31_t)0x39eb0a31, - (q31_t)0x5b4655ae, (q31_t)0x39e5b054, (q31_t)0x5b51b363, (q31_t)0x39e0543c, - (q31_t)0x5b5d100a, (q31_t)0x39daf5e8, (q31_t)0x5b686ba3, (q31_t)0x39d5955a, - (q31_t)0x5b73c62d, (q31_t)0x39d03291, (q31_t)0x5b7f1fa9, (q31_t)0x39cacd8d, - (q31_t)0x5b8a7815, (q31_t)0x39c5664f, (q31_t)0x5b95cf71, (q31_t)0x39bffcd7, - (q31_t)0x5ba125bd, (q31_t)0x39ba9125, (q31_t)0x5bac7af9, (q31_t)0x39b52339, - (q31_t)0x5bb7cf23, (q31_t)0x39afb313, (q31_t)0x5bc3223c, (q31_t)0x39aa40b4, - (q31_t)0x5bce7442, (q31_t)0x39a4cc1c, (q31_t)0x5bd9c537, (q31_t)0x399f554b, - (q31_t)0x5be51518, (q31_t)0x3999dc42, (q31_t)0x5bf063e6, (q31_t)0x399460ff, - (q31_t)0x5bfbb1a0, (q31_t)0x398ee385, (q31_t)0x5c06fe46, (q31_t)0x398963d2, - (q31_t)0x5c1249d8, (q31_t)0x3983e1e8, (q31_t)0x5c1d9454, (q31_t)0x397e5dc6, - (q31_t)0x5c28ddbb, (q31_t)0x3978d76c, (q31_t)0x5c34260c, (q31_t)0x39734edc, - (q31_t)0x5c3f6d47, (q31_t)0x396dc414, (q31_t)0x5c4ab36b, (q31_t)0x39683715, - (q31_t)0x5c55f878, (q31_t)0x3962a7e0, (q31_t)0x5c613c6d, (q31_t)0x395d1675, - (q31_t)0x5c6c7f4a, (q31_t)0x395782d3, (q31_t)0x5c77c10e, (q31_t)0x3951ecfc, - (q31_t)0x5c8301b9, (q31_t)0x394c54ee, (q31_t)0x5c8e414b, (q31_t)0x3946baac, - (q31_t)0x5c997fc4, (q31_t)0x39411e33, (q31_t)0x5ca4bd21, (q31_t)0x393b7f86, - (q31_t)0x5caff965, (q31_t)0x3935dea4, (q31_t)0x5cbb348d, (q31_t)0x39303b8e, - (q31_t)0x5cc66e99, (q31_t)0x392a9642, (q31_t)0x5cd1a78a, (q31_t)0x3924eec3, - (q31_t)0x5cdcdf5e, (q31_t)0x391f4510, (q31_t)0x5ce81615, (q31_t)0x39199929, - (q31_t)0x5cf34baf, (q31_t)0x3913eb0e, (q31_t)0x5cfe802b, (q31_t)0x390e3ac0, - (q31_t)0x5d09b389, (q31_t)0x3908883f, (q31_t)0x5d14e5c9, (q31_t)0x3902d38b, - (q31_t)0x5d2016e9, (q31_t)0x38fd1ca4, (q31_t)0x5d2b46ea, (q31_t)0x38f7638b, - (q31_t)0x5d3675cb, (q31_t)0x38f1a840, (q31_t)0x5d41a38c, (q31_t)0x38ebeac2, - (q31_t)0x5d4cd02c, (q31_t)0x38e62b13, (q31_t)0x5d57fbaa, (q31_t)0x38e06932, - (q31_t)0x5d632608, (q31_t)0x38daa520, (q31_t)0x5d6e4f43, (q31_t)0x38d4dedd, - (q31_t)0x5d79775c, (q31_t)0x38cf1669, (q31_t)0x5d849e51, (q31_t)0x38c94bc4, - (q31_t)0x5d8fc424, (q31_t)0x38c37eef, (q31_t)0x5d9ae8d2, (q31_t)0x38bdafea, - (q31_t)0x5da60c5d, (q31_t)0x38b7deb4, (q31_t)0x5db12ec3, (q31_t)0x38b20b4f, - (q31_t)0x5dbc5004, (q31_t)0x38ac35ba, (q31_t)0x5dc7701f, (q31_t)0x38a65df6, - (q31_t)0x5dd28f15, (q31_t)0x38a08402, (q31_t)0x5dddace4, (q31_t)0x389aa7e0, - (q31_t)0x5de8c98c, (q31_t)0x3894c98f, (q31_t)0x5df3e50d, (q31_t)0x388ee910, - (q31_t)0x5dfeff67, (q31_t)0x38890663, (q31_t)0x5e0a1898, (q31_t)0x38832187, - (q31_t)0x5e1530a1, (q31_t)0x387d3a7e, (q31_t)0x5e204781, (q31_t)0x38775147, - (q31_t)0x5e2b5d38, (q31_t)0x387165e3, (q31_t)0x5e3671c5, (q31_t)0x386b7852, - (q31_t)0x5e418528, (q31_t)0x38658894, (q31_t)0x5e4c9760, (q31_t)0x385f96a9, - (q31_t)0x5e57a86d, (q31_t)0x3859a292, (q31_t)0x5e62b84f, (q31_t)0x3853ac4f, - (q31_t)0x5e6dc705, (q31_t)0x384db3e0, (q31_t)0x5e78d48e, (q31_t)0x3847b946, - (q31_t)0x5e83e0eb, (q31_t)0x3841bc7f, (q31_t)0x5e8eec1b, (q31_t)0x383bbd8e, - (q31_t)0x5e99f61d, (q31_t)0x3835bc71, (q31_t)0x5ea4fef0, (q31_t)0x382fb92a, - (q31_t)0x5eb00696, (q31_t)0x3829b3b9, (q31_t)0x5ebb0d0d, (q31_t)0x3823ac1d, - (q31_t)0x5ec61254, (q31_t)0x381da256, (q31_t)0x5ed1166b, (q31_t)0x38179666, - (q31_t)0x5edc1953, (q31_t)0x3811884d, (q31_t)0x5ee71b0a, (q31_t)0x380b780a, - (q31_t)0x5ef21b90, (q31_t)0x3805659e, (q31_t)0x5efd1ae4, (q31_t)0x37ff5109, - (q31_t)0x5f081907, (q31_t)0x37f93a4b, (q31_t)0x5f1315f7, (q31_t)0x37f32165, - (q31_t)0x5f1e11b5, (q31_t)0x37ed0657, (q31_t)0x5f290c3f, (q31_t)0x37e6e921, - (q31_t)0x5f340596, (q31_t)0x37e0c9c3, (q31_t)0x5f3efdb9, (q31_t)0x37daa83d, - (q31_t)0x5f49f4a8, (q31_t)0x37d48490, (q31_t)0x5f54ea62, (q31_t)0x37ce5ebd, - (q31_t)0x5f5fdee6, (q31_t)0x37c836c2, (q31_t)0x5f6ad235, (q31_t)0x37c20ca1, - (q31_t)0x5f75c44e, (q31_t)0x37bbe05a, (q31_t)0x5f80b531, (q31_t)0x37b5b1ec, - (q31_t)0x5f8ba4dc, (q31_t)0x37af8159, (q31_t)0x5f969350, (q31_t)0x37a94ea0, - (q31_t)0x5fa1808c, (q31_t)0x37a319c2, (q31_t)0x5fac6c91, (q31_t)0x379ce2be, - (q31_t)0x5fb7575c, (q31_t)0x3796a996, (q31_t)0x5fc240ef, (q31_t)0x37906e49, - (q31_t)0x5fcd2948, (q31_t)0x378a30d8, (q31_t)0x5fd81067, (q31_t)0x3783f143, - (q31_t)0x5fe2f64c, (q31_t)0x377daf89, (q31_t)0x5feddaf6, (q31_t)0x37776bac, - (q31_t)0x5ff8be65, (q31_t)0x377125ac, (q31_t)0x6003a099, (q31_t)0x376add88, - (q31_t)0x600e8190, (q31_t)0x37649341, (q31_t)0x6019614c, (q31_t)0x375e46d8, - (q31_t)0x60243fca, (q31_t)0x3757f84c, (q31_t)0x602f1d0b, (q31_t)0x3751a79e, - (q31_t)0x6039f90f, (q31_t)0x374b54ce, (q31_t)0x6044d3d4, (q31_t)0x3744ffdd, - (q31_t)0x604fad5b, (q31_t)0x373ea8ca, (q31_t)0x605a85a3, (q31_t)0x37384f95, - (q31_t)0x60655cac, (q31_t)0x3731f440, (q31_t)0x60703275, (q31_t)0x372b96ca, - (q31_t)0x607b06fe, (q31_t)0x37253733, (q31_t)0x6085da46, (q31_t)0x371ed57c, - (q31_t)0x6090ac4d, (q31_t)0x371871a5, (q31_t)0x609b7d13, (q31_t)0x37120bae, - (q31_t)0x60a64c97, (q31_t)0x370ba398, (q31_t)0x60b11ad9, (q31_t)0x37053962, - (q31_t)0x60bbe7d8, (q31_t)0x36fecd0e, (q31_t)0x60c6b395, (q31_t)0x36f85e9a, - (q31_t)0x60d17e0d, (q31_t)0x36f1ee09, (q31_t)0x60dc4742, (q31_t)0x36eb7b58, - (q31_t)0x60e70f32, (q31_t)0x36e5068a, (q31_t)0x60f1d5de, (q31_t)0x36de8f9e, - (q31_t)0x60fc9b44, (q31_t)0x36d81695, (q31_t)0x61075f65, (q31_t)0x36d19b6e, - (q31_t)0x61122240, (q31_t)0x36cb1e2a, (q31_t)0x611ce3d5, (q31_t)0x36c49ec9, - (q31_t)0x6127a423, (q31_t)0x36be1d4c, (q31_t)0x61326329, (q31_t)0x36b799b3, - (q31_t)0x613d20e8, (q31_t)0x36b113fd, (q31_t)0x6147dd5f, (q31_t)0x36aa8c2c, - (q31_t)0x6152988d, (q31_t)0x36a4023f, (q31_t)0x615d5273, (q31_t)0x369d7637, - (q31_t)0x61680b0f, (q31_t)0x3696e814, (q31_t)0x6172c262, (q31_t)0x369057d6, - (q31_t)0x617d786a, (q31_t)0x3689c57d, (q31_t)0x61882d28, (q31_t)0x3683310b, - (q31_t)0x6192e09b, (q31_t)0x367c9a7e, (q31_t)0x619d92c2, (q31_t)0x367601d7, - (q31_t)0x61a8439e, (q31_t)0x366f6717, (q31_t)0x61b2f32e, (q31_t)0x3668ca3e, - (q31_t)0x61bda171, (q31_t)0x36622b4c, (q31_t)0x61c84e67, (q31_t)0x365b8a41, - (q31_t)0x61d2fa0f, (q31_t)0x3654e71d, (q31_t)0x61dda46a, (q31_t)0x364e41e2, - (q31_t)0x61e84d76, (q31_t)0x36479a8e, (q31_t)0x61f2f534, (q31_t)0x3640f123, - (q31_t)0x61fd9ba3, (q31_t)0x363a45a0, (q31_t)0x620840c2, (q31_t)0x36339806, - (q31_t)0x6212e492, (q31_t)0x362ce855, (q31_t)0x621d8711, (q31_t)0x3626368d, - (q31_t)0x6228283f, (q31_t)0x361f82af, (q31_t)0x6232c81c, (q31_t)0x3618ccba, - (q31_t)0x623d66a8, (q31_t)0x361214b0, (q31_t)0x624803e2, (q31_t)0x360b5a90, - (q31_t)0x62529fca, (q31_t)0x36049e5b, (q31_t)0x625d3a5e, (q31_t)0x35fde011, - (q31_t)0x6267d3a0, (q31_t)0x35f71fb1, (q31_t)0x62726b8e, (q31_t)0x35f05d3d, - (q31_t)0x627d0228, (q31_t)0x35e998b5, (q31_t)0x6287976e, (q31_t)0x35e2d219, - (q31_t)0x62922b5e, (q31_t)0x35dc0968, (q31_t)0x629cbdfa, (q31_t)0x35d53ea5, - (q31_t)0x62a74f40, (q31_t)0x35ce71ce, (q31_t)0x62b1df30, (q31_t)0x35c7a2e3, - (q31_t)0x62bc6dca, (q31_t)0x35c0d1e7, (q31_t)0x62c6fb0c, (q31_t)0x35b9fed7, - (q31_t)0x62d186f8, (q31_t)0x35b329b5, (q31_t)0x62dc118c, (q31_t)0x35ac5282, - (q31_t)0x62e69ac8, (q31_t)0x35a5793c, (q31_t)0x62f122ab, (q31_t)0x359e9de5, - (q31_t)0x62fba936, (q31_t)0x3597c07d, (q31_t)0x63062e67, (q31_t)0x3590e104, - (q31_t)0x6310b23e, (q31_t)0x3589ff7a, (q31_t)0x631b34bc, (q31_t)0x35831be0, - (q31_t)0x6325b5df, (q31_t)0x357c3636, (q31_t)0x633035a7, (q31_t)0x35754e7c, - (q31_t)0x633ab414, (q31_t)0x356e64b2, (q31_t)0x63453125, (q31_t)0x356778d9, - (q31_t)0x634facda, (q31_t)0x35608af1, (q31_t)0x635a2733, (q31_t)0x35599afa, - (q31_t)0x6364a02e, (q31_t)0x3552a8f4, (q31_t)0x636f17cc, (q31_t)0x354bb4e1, - (q31_t)0x63798e0d, (q31_t)0x3544bebf, (q31_t)0x638402ef, (q31_t)0x353dc68f, - (q31_t)0x638e7673, (q31_t)0x3536cc52, (q31_t)0x6398e898, (q31_t)0x352fd008, - (q31_t)0x63a3595e, (q31_t)0x3528d1b1, (q31_t)0x63adc8c4, (q31_t)0x3521d14d, - (q31_t)0x63b836ca, (q31_t)0x351acedd, (q31_t)0x63c2a36f, (q31_t)0x3513ca60, - (q31_t)0x63cd0eb3, (q31_t)0x350cc3d8, (q31_t)0x63d77896, (q31_t)0x3505bb44, - (q31_t)0x63e1e117, (q31_t)0x34feb0a5, (q31_t)0x63ec4837, (q31_t)0x34f7a3fb, - (q31_t)0x63f6adf3, (q31_t)0x34f09546, (q31_t)0x6401124d, (q31_t)0x34e98487, - (q31_t)0x640b7543, (q31_t)0x34e271bd, (q31_t)0x6415d6d5, (q31_t)0x34db5cea, - (q31_t)0x64203704, (q31_t)0x34d4460c, (q31_t)0x642a95ce, (q31_t)0x34cd2d26, - (q31_t)0x6434f332, (q31_t)0x34c61236, (q31_t)0x643f4f32, (q31_t)0x34bef53d, - (q31_t)0x6449a9cc, (q31_t)0x34b7d63c, (q31_t)0x645402ff, (q31_t)0x34b0b533, - (q31_t)0x645e5acc, (q31_t)0x34a99221, (q31_t)0x6468b132, (q31_t)0x34a26d08, - (q31_t)0x64730631, (q31_t)0x349b45e7, (q31_t)0x647d59c8, (q31_t)0x34941cbf, - (q31_t)0x6487abf7, (q31_t)0x348cf190, (q31_t)0x6491fcbe, (q31_t)0x3485c45b, - (q31_t)0x649c4c1b, (q31_t)0x347e951f, (q31_t)0x64a69a0f, (q31_t)0x347763dd, - (q31_t)0x64b0e699, (q31_t)0x34703095, (q31_t)0x64bb31ba, (q31_t)0x3468fb47, - (q31_t)0x64c57b6f, (q31_t)0x3461c3f5, (q31_t)0x64cfc3ba, (q31_t)0x345a8a9d, - (q31_t)0x64da0a9a, (q31_t)0x34534f41, (q31_t)0x64e4500e, (q31_t)0x344c11e0, - (q31_t)0x64ee9415, (q31_t)0x3444d27b, (q31_t)0x64f8d6b0, (q31_t)0x343d9112, - (q31_t)0x650317df, (q31_t)0x34364da6, (q31_t)0x650d57a0, (q31_t)0x342f0836, - (q31_t)0x651795f3, (q31_t)0x3427c0c3, (q31_t)0x6521d2d8, (q31_t)0x3420774d, - (q31_t)0x652c0e4f, (q31_t)0x34192bd5, (q31_t)0x65364857, (q31_t)0x3411de5b, - (q31_t)0x654080ef, (q31_t)0x340a8edf, (q31_t)0x654ab818, (q31_t)0x34033d61, - (q31_t)0x6554edd1, (q31_t)0x33fbe9e2, (q31_t)0x655f2219, (q31_t)0x33f49462, - (q31_t)0x656954f1, (q31_t)0x33ed3ce1, (q31_t)0x65738657, (q31_t)0x33e5e360, - (q31_t)0x657db64c, (q31_t)0x33de87de, (q31_t)0x6587e4cf, (q31_t)0x33d72a5d, - (q31_t)0x659211df, (q31_t)0x33cfcadc, (q31_t)0x659c3d7c, (q31_t)0x33c8695b, - (q31_t)0x65a667a7, (q31_t)0x33c105db, (q31_t)0x65b0905d, (q31_t)0x33b9a05d, - (q31_t)0x65bab7a0, (q31_t)0x33b238e0, (q31_t)0x65c4dd6e, (q31_t)0x33aacf65, - (q31_t)0x65cf01c8, (q31_t)0x33a363ec, (q31_t)0x65d924ac, (q31_t)0x339bf675, - (q31_t)0x65e3461b, (q31_t)0x33948701, (q31_t)0x65ed6614, (q31_t)0x338d1590, - (q31_t)0x65f78497, (q31_t)0x3385a222, (q31_t)0x6601a1a2, (q31_t)0x337e2cb7, - (q31_t)0x660bbd37, (q31_t)0x3376b551, (q31_t)0x6615d754, (q31_t)0x336f3bee, - (q31_t)0x661feffa, (q31_t)0x3367c090, (q31_t)0x662a0727, (q31_t)0x33604336, - (q31_t)0x66341cdb, (q31_t)0x3358c3e2, (q31_t)0x663e3117, (q31_t)0x33514292, - (q31_t)0x664843d9, (q31_t)0x3349bf48, (q31_t)0x66525521, (q31_t)0x33423a04, - (q31_t)0x665c64ef, (q31_t)0x333ab2c6, (q31_t)0x66667342, (q31_t)0x3333298f, - (q31_t)0x6670801a, (q31_t)0x332b9e5e, (q31_t)0x667a8b77, (q31_t)0x33241134, - (q31_t)0x66849558, (q31_t)0x331c8211, (q31_t)0x668e9dbd, (q31_t)0x3314f0f6, - (q31_t)0x6698a4a6, (q31_t)0x330d5de3, (q31_t)0x66a2aa11, (q31_t)0x3305c8d7, - (q31_t)0x66acadff, (q31_t)0x32fe31d5, (q31_t)0x66b6b070, (q31_t)0x32f698db, - (q31_t)0x66c0b162, (q31_t)0x32eefdea, (q31_t)0x66cab0d6, (q31_t)0x32e76102, - (q31_t)0x66d4aecb, (q31_t)0x32dfc224, (q31_t)0x66deab41, (q31_t)0x32d82150, - (q31_t)0x66e8a637, (q31_t)0x32d07e85, (q31_t)0x66f29fad, (q31_t)0x32c8d9c6, - (q31_t)0x66fc97a3, (q31_t)0x32c13311, (q31_t)0x67068e18, (q31_t)0x32b98a67, - (q31_t)0x6710830c, (q31_t)0x32b1dfc9, (q31_t)0x671a767e, (q31_t)0x32aa3336, - (q31_t)0x6724686e, (q31_t)0x32a284b0, (q31_t)0x672e58dc, (q31_t)0x329ad435, - (q31_t)0x673847c8, (q31_t)0x329321c7, (q31_t)0x67423530, (q31_t)0x328b6d66, - (q31_t)0x674c2115, (q31_t)0x3283b712, (q31_t)0x67560b76, (q31_t)0x327bfecc, - (q31_t)0x675ff452, (q31_t)0x32744493, (q31_t)0x6769dbaa, (q31_t)0x326c8868, - (q31_t)0x6773c17d, (q31_t)0x3264ca4c, (q31_t)0x677da5cb, (q31_t)0x325d0a3e, - (q31_t)0x67878893, (q31_t)0x32554840, (q31_t)0x679169d5, (q31_t)0x324d8450, - (q31_t)0x679b4990, (q31_t)0x3245be70, (q31_t)0x67a527c4, (q31_t)0x323df6a0, - (q31_t)0x67af0472, (q31_t)0x32362ce0, (q31_t)0x67b8df97, (q31_t)0x322e6130, - (q31_t)0x67c2b934, (q31_t)0x32269391, (q31_t)0x67cc9149, (q31_t)0x321ec403, - (q31_t)0x67d667d5, (q31_t)0x3216f287, (q31_t)0x67e03cd8, (q31_t)0x320f1f1c, - (q31_t)0x67ea1052, (q31_t)0x320749c3, (q31_t)0x67f3e241, (q31_t)0x31ff727c, - (q31_t)0x67fdb2a7, (q31_t)0x31f79948, (q31_t)0x68078181, (q31_t)0x31efbe27, - (q31_t)0x68114ed0, (q31_t)0x31e7e118, (q31_t)0x681b1a94, (q31_t)0x31e0021e, - (q31_t)0x6824e4cc, (q31_t)0x31d82137, (q31_t)0x682ead78, (q31_t)0x31d03e64, - (q31_t)0x68387498, (q31_t)0x31c859a5, (q31_t)0x68423a2a, (q31_t)0x31c072fb, - (q31_t)0x684bfe2f, (q31_t)0x31b88a66, (q31_t)0x6855c0a6, (q31_t)0x31b09fe7, - (q31_t)0x685f8190, (q31_t)0x31a8b37c, (q31_t)0x686940ea, (q31_t)0x31a0c528, - (q31_t)0x6872feb6, (q31_t)0x3198d4ea, (q31_t)0x687cbaf3, (q31_t)0x3190e2c3, - (q31_t)0x688675a0, (q31_t)0x3188eeb2, (q31_t)0x68902ebd, (q31_t)0x3180f8b8, - (q31_t)0x6899e64a, (q31_t)0x317900d6, (q31_t)0x68a39c46, (q31_t)0x3171070c, - (q31_t)0x68ad50b1, (q31_t)0x31690b59, (q31_t)0x68b7038b, (q31_t)0x31610dbf, - (q31_t)0x68c0b4d2, (q31_t)0x31590e3e, (q31_t)0x68ca6488, (q31_t)0x31510cd5, - (q31_t)0x68d412ab, (q31_t)0x31490986, (q31_t)0x68ddbf3b, (q31_t)0x31410450, - (q31_t)0x68e76a37, (q31_t)0x3138fd35, (q31_t)0x68f113a0, (q31_t)0x3130f433, - (q31_t)0x68fabb75, (q31_t)0x3128e94c, (q31_t)0x690461b5, (q31_t)0x3120dc80, - (q31_t)0x690e0661, (q31_t)0x3118cdcf, (q31_t)0x6917a977, (q31_t)0x3110bd39, - (q31_t)0x69214af8, (q31_t)0x3108aabf, (q31_t)0x692aeae3, (q31_t)0x31009661, - (q31_t)0x69348937, (q31_t)0x30f8801f, (q31_t)0x693e25f5, (q31_t)0x30f067fb, - (q31_t)0x6947c11c, (q31_t)0x30e84df3, (q31_t)0x69515aab, (q31_t)0x30e03208, - (q31_t)0x695af2a3, (q31_t)0x30d8143b, (q31_t)0x69648902, (q31_t)0x30cff48c, - (q31_t)0x696e1dc9, (q31_t)0x30c7d2fb, (q31_t)0x6977b0f7, (q31_t)0x30bfaf89, - (q31_t)0x6981428c, (q31_t)0x30b78a36, (q31_t)0x698ad287, (q31_t)0x30af6302, - (q31_t)0x699460e8, (q31_t)0x30a739ed, (q31_t)0x699dedaf, (q31_t)0x309f0ef8, - (q31_t)0x69a778db, (q31_t)0x3096e223, (q31_t)0x69b1026c, (q31_t)0x308eb36f, - (q31_t)0x69ba8a61, (q31_t)0x308682dc, (q31_t)0x69c410ba, (q31_t)0x307e5069, - (q31_t)0x69cd9578, (q31_t)0x30761c18, (q31_t)0x69d71899, (q31_t)0x306de5e9, - (q31_t)0x69e09a1c, (q31_t)0x3065addb, (q31_t)0x69ea1a03, (q31_t)0x305d73f0, - (q31_t)0x69f3984c, (q31_t)0x30553828, (q31_t)0x69fd14f6, (q31_t)0x304cfa83, - (q31_t)0x6a069003, (q31_t)0x3044bb00, (q31_t)0x6a100970, (q31_t)0x303c79a2, - (q31_t)0x6a19813f, (q31_t)0x30343667, (q31_t)0x6a22f76e, (q31_t)0x302bf151, - (q31_t)0x6a2c6bfd, (q31_t)0x3023aa5f, (q31_t)0x6a35deeb, (q31_t)0x301b6193, - (q31_t)0x6a3f503a, (q31_t)0x301316eb, (q31_t)0x6a48bfe7, (q31_t)0x300aca69, - (q31_t)0x6a522df3, (q31_t)0x30027c0c, (q31_t)0x6a5b9a5d, (q31_t)0x2ffa2bd6, - (q31_t)0x6a650525, (q31_t)0x2ff1d9c7, (q31_t)0x6a6e6e4b, (q31_t)0x2fe985de, - (q31_t)0x6a77d5ce, (q31_t)0x2fe1301c, (q31_t)0x6a813bae, (q31_t)0x2fd8d882, - (q31_t)0x6a8a9fea, (q31_t)0x2fd07f0f, (q31_t)0x6a940283, (q31_t)0x2fc823c5, - (q31_t)0x6a9d6377, (q31_t)0x2fbfc6a3, (q31_t)0x6aa6c2c6, (q31_t)0x2fb767aa, - (q31_t)0x6ab02071, (q31_t)0x2faf06da, (q31_t)0x6ab97c77, (q31_t)0x2fa6a433, - (q31_t)0x6ac2d6d6, (q31_t)0x2f9e3fb6, (q31_t)0x6acc2f90, (q31_t)0x2f95d963, - (q31_t)0x6ad586a3, (q31_t)0x2f8d713a, (q31_t)0x6adedc10, (q31_t)0x2f85073c, - (q31_t)0x6ae82fd5, (q31_t)0x2f7c9b69, (q31_t)0x6af181f3, (q31_t)0x2f742dc1, - (q31_t)0x6afad269, (q31_t)0x2f6bbe45, (q31_t)0x6b042137, (q31_t)0x2f634cf5, - (q31_t)0x6b0d6e5c, (q31_t)0x2f5ad9d1, (q31_t)0x6b16b9d9, (q31_t)0x2f5264da, - (q31_t)0x6b2003ac, (q31_t)0x2f49ee0f, (q31_t)0x6b294bd5, (q31_t)0x2f417573, - (q31_t)0x6b329255, (q31_t)0x2f38fb03, (q31_t)0x6b3bd72a, (q31_t)0x2f307ec2, - (q31_t)0x6b451a55, (q31_t)0x2f2800af, (q31_t)0x6b4e5bd4, (q31_t)0x2f1f80ca, - (q31_t)0x6b579ba8, (q31_t)0x2f16ff14, (q31_t)0x6b60d9d0, (q31_t)0x2f0e7b8e, - (q31_t)0x6b6a164d, (q31_t)0x2f05f637, (q31_t)0x6b73511c, (q31_t)0x2efd6f10, - (q31_t)0x6b7c8a3f, (q31_t)0x2ef4e619, (q31_t)0x6b85c1b5, (q31_t)0x2eec5b53, - (q31_t)0x6b8ef77d, (q31_t)0x2ee3cebe, (q31_t)0x6b982b97, (q31_t)0x2edb405a, - (q31_t)0x6ba15e03, (q31_t)0x2ed2b027, (q31_t)0x6baa8ec0, (q31_t)0x2eca1e27, - (q31_t)0x6bb3bdce, (q31_t)0x2ec18a58, (q31_t)0x6bbceb2d, (q31_t)0x2eb8f4bc, - (q31_t)0x6bc616dd, (q31_t)0x2eb05d53, (q31_t)0x6bcf40dc, (q31_t)0x2ea7c41e, - (q31_t)0x6bd8692b, (q31_t)0x2e9f291b, (q31_t)0x6be18fc9, (q31_t)0x2e968c4d, - (q31_t)0x6beab4b6, (q31_t)0x2e8dedb3, (q31_t)0x6bf3d7f2, (q31_t)0x2e854d4d, - (q31_t)0x6bfcf97c, (q31_t)0x2e7cab1c, (q31_t)0x6c061953, (q31_t)0x2e740720, - (q31_t)0x6c0f3779, (q31_t)0x2e6b615a, (q31_t)0x6c1853eb, (q31_t)0x2e62b9ca, - (q31_t)0x6c216eaa, (q31_t)0x2e5a1070, (q31_t)0x6c2a87b6, (q31_t)0x2e51654c, - (q31_t)0x6c339f0e, (q31_t)0x2e48b860, (q31_t)0x6c3cb4b1, (q31_t)0x2e4009aa, - (q31_t)0x6c45c8a0, (q31_t)0x2e37592c, (q31_t)0x6c4edada, (q31_t)0x2e2ea6e6, - (q31_t)0x6c57eb5e, (q31_t)0x2e25f2d8, (q31_t)0x6c60fa2d, (q31_t)0x2e1d3d03, - (q31_t)0x6c6a0746, (q31_t)0x2e148566, (q31_t)0x6c7312a9, (q31_t)0x2e0bcc03, - (q31_t)0x6c7c1c55, (q31_t)0x2e0310d9, (q31_t)0x6c85244a, (q31_t)0x2dfa53e9, - (q31_t)0x6c8e2a87, (q31_t)0x2df19534, (q31_t)0x6c972f0d, (q31_t)0x2de8d4b8, - (q31_t)0x6ca031da, (q31_t)0x2de01278, (q31_t)0x6ca932ef, (q31_t)0x2dd74e73, - (q31_t)0x6cb2324c, (q31_t)0x2dce88aa, (q31_t)0x6cbb2fef, (q31_t)0x2dc5c11c, - (q31_t)0x6cc42bd9, (q31_t)0x2dbcf7cb, (q31_t)0x6ccd2609, (q31_t)0x2db42cb6, - (q31_t)0x6cd61e7f, (q31_t)0x2dab5fdf, (q31_t)0x6cdf153a, (q31_t)0x2da29144, - (q31_t)0x6ce80a3a, (q31_t)0x2d99c0e7, (q31_t)0x6cf0fd80, (q31_t)0x2d90eec8, - (q31_t)0x6cf9ef09, (q31_t)0x2d881ae8, (q31_t)0x6d02ded7, (q31_t)0x2d7f4545, - (q31_t)0x6d0bcce8, (q31_t)0x2d766de2, (q31_t)0x6d14b93d, (q31_t)0x2d6d94bf, - (q31_t)0x6d1da3d5, (q31_t)0x2d64b9da, (q31_t)0x6d268cb0, (q31_t)0x2d5bdd36, - (q31_t)0x6d2f73cd, (q31_t)0x2d52fed2, (q31_t)0x6d38592c, (q31_t)0x2d4a1eaf, - (q31_t)0x6d413ccd, (q31_t)0x2d413ccd, (q31_t)0x6d4a1eaf, (q31_t)0x2d38592c, - (q31_t)0x6d52fed2, (q31_t)0x2d2f73cd, (q31_t)0x6d5bdd36, (q31_t)0x2d268cb0, - (q31_t)0x6d64b9da, (q31_t)0x2d1da3d5, (q31_t)0x6d6d94bf, (q31_t)0x2d14b93d, - (q31_t)0x6d766de2, (q31_t)0x2d0bcce8, (q31_t)0x6d7f4545, (q31_t)0x2d02ded7, - (q31_t)0x6d881ae8, (q31_t)0x2cf9ef09, (q31_t)0x6d90eec8, (q31_t)0x2cf0fd80, - (q31_t)0x6d99c0e7, (q31_t)0x2ce80a3a, (q31_t)0x6da29144, (q31_t)0x2cdf153a, - (q31_t)0x6dab5fdf, (q31_t)0x2cd61e7f, (q31_t)0x6db42cb6, (q31_t)0x2ccd2609, - (q31_t)0x6dbcf7cb, (q31_t)0x2cc42bd9, (q31_t)0x6dc5c11c, (q31_t)0x2cbb2fef, - (q31_t)0x6dce88aa, (q31_t)0x2cb2324c, (q31_t)0x6dd74e73, (q31_t)0x2ca932ef, - (q31_t)0x6de01278, (q31_t)0x2ca031da, (q31_t)0x6de8d4b8, (q31_t)0x2c972f0d, - (q31_t)0x6df19534, (q31_t)0x2c8e2a87, (q31_t)0x6dfa53e9, (q31_t)0x2c85244a, - (q31_t)0x6e0310d9, (q31_t)0x2c7c1c55, (q31_t)0x6e0bcc03, (q31_t)0x2c7312a9, - (q31_t)0x6e148566, (q31_t)0x2c6a0746, (q31_t)0x6e1d3d03, (q31_t)0x2c60fa2d, - (q31_t)0x6e25f2d8, (q31_t)0x2c57eb5e, (q31_t)0x6e2ea6e6, (q31_t)0x2c4edada, - (q31_t)0x6e37592c, (q31_t)0x2c45c8a0, (q31_t)0x6e4009aa, (q31_t)0x2c3cb4b1, - (q31_t)0x6e48b860, (q31_t)0x2c339f0e, (q31_t)0x6e51654c, (q31_t)0x2c2a87b6, - (q31_t)0x6e5a1070, (q31_t)0x2c216eaa, (q31_t)0x6e62b9ca, (q31_t)0x2c1853eb, - (q31_t)0x6e6b615a, (q31_t)0x2c0f3779, (q31_t)0x6e740720, (q31_t)0x2c061953, - (q31_t)0x6e7cab1c, (q31_t)0x2bfcf97c, (q31_t)0x6e854d4d, (q31_t)0x2bf3d7f2, - (q31_t)0x6e8dedb3, (q31_t)0x2beab4b6, (q31_t)0x6e968c4d, (q31_t)0x2be18fc9, - (q31_t)0x6e9f291b, (q31_t)0x2bd8692b, (q31_t)0x6ea7c41e, (q31_t)0x2bcf40dc, - (q31_t)0x6eb05d53, (q31_t)0x2bc616dd, (q31_t)0x6eb8f4bc, (q31_t)0x2bbceb2d, - (q31_t)0x6ec18a58, (q31_t)0x2bb3bdce, (q31_t)0x6eca1e27, (q31_t)0x2baa8ec0, - (q31_t)0x6ed2b027, (q31_t)0x2ba15e03, (q31_t)0x6edb405a, (q31_t)0x2b982b97, - (q31_t)0x6ee3cebe, (q31_t)0x2b8ef77d, (q31_t)0x6eec5b53, (q31_t)0x2b85c1b5, - (q31_t)0x6ef4e619, (q31_t)0x2b7c8a3f, (q31_t)0x6efd6f10, (q31_t)0x2b73511c, - (q31_t)0x6f05f637, (q31_t)0x2b6a164d, (q31_t)0x6f0e7b8e, (q31_t)0x2b60d9d0, - (q31_t)0x6f16ff14, (q31_t)0x2b579ba8, (q31_t)0x6f1f80ca, (q31_t)0x2b4e5bd4, - (q31_t)0x6f2800af, (q31_t)0x2b451a55, (q31_t)0x6f307ec2, (q31_t)0x2b3bd72a, - (q31_t)0x6f38fb03, (q31_t)0x2b329255, (q31_t)0x6f417573, (q31_t)0x2b294bd5, - (q31_t)0x6f49ee0f, (q31_t)0x2b2003ac, (q31_t)0x6f5264da, (q31_t)0x2b16b9d9, - (q31_t)0x6f5ad9d1, (q31_t)0x2b0d6e5c, (q31_t)0x6f634cf5, (q31_t)0x2b042137, - (q31_t)0x6f6bbe45, (q31_t)0x2afad269, (q31_t)0x6f742dc1, (q31_t)0x2af181f3, - (q31_t)0x6f7c9b69, (q31_t)0x2ae82fd5, (q31_t)0x6f85073c, (q31_t)0x2adedc10, - (q31_t)0x6f8d713a, (q31_t)0x2ad586a3, (q31_t)0x6f95d963, (q31_t)0x2acc2f90, - (q31_t)0x6f9e3fb6, (q31_t)0x2ac2d6d6, (q31_t)0x6fa6a433, (q31_t)0x2ab97c77, - (q31_t)0x6faf06da, (q31_t)0x2ab02071, (q31_t)0x6fb767aa, (q31_t)0x2aa6c2c6, - (q31_t)0x6fbfc6a3, (q31_t)0x2a9d6377, (q31_t)0x6fc823c5, (q31_t)0x2a940283, - (q31_t)0x6fd07f0f, (q31_t)0x2a8a9fea, (q31_t)0x6fd8d882, (q31_t)0x2a813bae, - (q31_t)0x6fe1301c, (q31_t)0x2a77d5ce, (q31_t)0x6fe985de, (q31_t)0x2a6e6e4b, - (q31_t)0x6ff1d9c7, (q31_t)0x2a650525, (q31_t)0x6ffa2bd6, (q31_t)0x2a5b9a5d, - (q31_t)0x70027c0c, (q31_t)0x2a522df3, (q31_t)0x700aca69, (q31_t)0x2a48bfe7, - (q31_t)0x701316eb, (q31_t)0x2a3f503a, (q31_t)0x701b6193, (q31_t)0x2a35deeb, - (q31_t)0x7023aa5f, (q31_t)0x2a2c6bfd, (q31_t)0x702bf151, (q31_t)0x2a22f76e, - (q31_t)0x70343667, (q31_t)0x2a19813f, (q31_t)0x703c79a2, (q31_t)0x2a100970, - (q31_t)0x7044bb00, (q31_t)0x2a069003, (q31_t)0x704cfa83, (q31_t)0x29fd14f6, - (q31_t)0x70553828, (q31_t)0x29f3984c, (q31_t)0x705d73f0, (q31_t)0x29ea1a03, - (q31_t)0x7065addb, (q31_t)0x29e09a1c, (q31_t)0x706de5e9, (q31_t)0x29d71899, - (q31_t)0x70761c18, (q31_t)0x29cd9578, (q31_t)0x707e5069, (q31_t)0x29c410ba, - (q31_t)0x708682dc, (q31_t)0x29ba8a61, (q31_t)0x708eb36f, (q31_t)0x29b1026c, - (q31_t)0x7096e223, (q31_t)0x29a778db, (q31_t)0x709f0ef8, (q31_t)0x299dedaf, - (q31_t)0x70a739ed, (q31_t)0x299460e8, (q31_t)0x70af6302, (q31_t)0x298ad287, - (q31_t)0x70b78a36, (q31_t)0x2981428c, (q31_t)0x70bfaf89, (q31_t)0x2977b0f7, - (q31_t)0x70c7d2fb, (q31_t)0x296e1dc9, (q31_t)0x70cff48c, (q31_t)0x29648902, - (q31_t)0x70d8143b, (q31_t)0x295af2a3, (q31_t)0x70e03208, (q31_t)0x29515aab, - (q31_t)0x70e84df3, (q31_t)0x2947c11c, (q31_t)0x70f067fb, (q31_t)0x293e25f5, - (q31_t)0x70f8801f, (q31_t)0x29348937, (q31_t)0x71009661, (q31_t)0x292aeae3, - (q31_t)0x7108aabf, (q31_t)0x29214af8, (q31_t)0x7110bd39, (q31_t)0x2917a977, - (q31_t)0x7118cdcf, (q31_t)0x290e0661, (q31_t)0x7120dc80, (q31_t)0x290461b5, - (q31_t)0x7128e94c, (q31_t)0x28fabb75, (q31_t)0x7130f433, (q31_t)0x28f113a0, - (q31_t)0x7138fd35, (q31_t)0x28e76a37, (q31_t)0x71410450, (q31_t)0x28ddbf3b, - (q31_t)0x71490986, (q31_t)0x28d412ab, (q31_t)0x71510cd5, (q31_t)0x28ca6488, - (q31_t)0x71590e3e, (q31_t)0x28c0b4d2, (q31_t)0x71610dbf, (q31_t)0x28b7038b, - (q31_t)0x71690b59, (q31_t)0x28ad50b1, (q31_t)0x7171070c, (q31_t)0x28a39c46, - (q31_t)0x717900d6, (q31_t)0x2899e64a, (q31_t)0x7180f8b8, (q31_t)0x28902ebd, - (q31_t)0x7188eeb2, (q31_t)0x288675a0, (q31_t)0x7190e2c3, (q31_t)0x287cbaf3, - (q31_t)0x7198d4ea, (q31_t)0x2872feb6, (q31_t)0x71a0c528, (q31_t)0x286940ea, - (q31_t)0x71a8b37c, (q31_t)0x285f8190, (q31_t)0x71b09fe7, (q31_t)0x2855c0a6, - (q31_t)0x71b88a66, (q31_t)0x284bfe2f, (q31_t)0x71c072fb, (q31_t)0x28423a2a, - (q31_t)0x71c859a5, (q31_t)0x28387498, (q31_t)0x71d03e64, (q31_t)0x282ead78, - (q31_t)0x71d82137, (q31_t)0x2824e4cc, (q31_t)0x71e0021e, (q31_t)0x281b1a94, - (q31_t)0x71e7e118, (q31_t)0x28114ed0, (q31_t)0x71efbe27, (q31_t)0x28078181, - (q31_t)0x71f79948, (q31_t)0x27fdb2a7, (q31_t)0x71ff727c, (q31_t)0x27f3e241, - (q31_t)0x720749c3, (q31_t)0x27ea1052, (q31_t)0x720f1f1c, (q31_t)0x27e03cd8, - (q31_t)0x7216f287, (q31_t)0x27d667d5, (q31_t)0x721ec403, (q31_t)0x27cc9149, - (q31_t)0x72269391, (q31_t)0x27c2b934, (q31_t)0x722e6130, (q31_t)0x27b8df97, - (q31_t)0x72362ce0, (q31_t)0x27af0472, (q31_t)0x723df6a0, (q31_t)0x27a527c4, - (q31_t)0x7245be70, (q31_t)0x279b4990, (q31_t)0x724d8450, (q31_t)0x279169d5, - (q31_t)0x72554840, (q31_t)0x27878893, (q31_t)0x725d0a3e, (q31_t)0x277da5cb, - (q31_t)0x7264ca4c, (q31_t)0x2773c17d, (q31_t)0x726c8868, (q31_t)0x2769dbaa, - (q31_t)0x72744493, (q31_t)0x275ff452, (q31_t)0x727bfecc, (q31_t)0x27560b76, - (q31_t)0x7283b712, (q31_t)0x274c2115, (q31_t)0x728b6d66, (q31_t)0x27423530, - (q31_t)0x729321c7, (q31_t)0x273847c8, (q31_t)0x729ad435, (q31_t)0x272e58dc, - (q31_t)0x72a284b0, (q31_t)0x2724686e, (q31_t)0x72aa3336, (q31_t)0x271a767e, - (q31_t)0x72b1dfc9, (q31_t)0x2710830c, (q31_t)0x72b98a67, (q31_t)0x27068e18, - (q31_t)0x72c13311, (q31_t)0x26fc97a3, (q31_t)0x72c8d9c6, (q31_t)0x26f29fad, - (q31_t)0x72d07e85, (q31_t)0x26e8a637, (q31_t)0x72d82150, (q31_t)0x26deab41, - (q31_t)0x72dfc224, (q31_t)0x26d4aecb, (q31_t)0x72e76102, (q31_t)0x26cab0d6, - (q31_t)0x72eefdea, (q31_t)0x26c0b162, (q31_t)0x72f698db, (q31_t)0x26b6b070, - (q31_t)0x72fe31d5, (q31_t)0x26acadff, (q31_t)0x7305c8d7, (q31_t)0x26a2aa11, - (q31_t)0x730d5de3, (q31_t)0x2698a4a6, (q31_t)0x7314f0f6, (q31_t)0x268e9dbd, - (q31_t)0x731c8211, (q31_t)0x26849558, (q31_t)0x73241134, (q31_t)0x267a8b77, - (q31_t)0x732b9e5e, (q31_t)0x2670801a, (q31_t)0x7333298f, (q31_t)0x26667342, - (q31_t)0x733ab2c6, (q31_t)0x265c64ef, (q31_t)0x73423a04, (q31_t)0x26525521, - (q31_t)0x7349bf48, (q31_t)0x264843d9, (q31_t)0x73514292, (q31_t)0x263e3117, - (q31_t)0x7358c3e2, (q31_t)0x26341cdb, (q31_t)0x73604336, (q31_t)0x262a0727, - (q31_t)0x7367c090, (q31_t)0x261feffa, (q31_t)0x736f3bee, (q31_t)0x2615d754, - (q31_t)0x7376b551, (q31_t)0x260bbd37, (q31_t)0x737e2cb7, (q31_t)0x2601a1a2, - (q31_t)0x7385a222, (q31_t)0x25f78497, (q31_t)0x738d1590, (q31_t)0x25ed6614, - (q31_t)0x73948701, (q31_t)0x25e3461b, (q31_t)0x739bf675, (q31_t)0x25d924ac, - (q31_t)0x73a363ec, (q31_t)0x25cf01c8, (q31_t)0x73aacf65, (q31_t)0x25c4dd6e, - (q31_t)0x73b238e0, (q31_t)0x25bab7a0, (q31_t)0x73b9a05d, (q31_t)0x25b0905d, - (q31_t)0x73c105db, (q31_t)0x25a667a7, (q31_t)0x73c8695b, (q31_t)0x259c3d7c, - (q31_t)0x73cfcadc, (q31_t)0x259211df, (q31_t)0x73d72a5d, (q31_t)0x2587e4cf, - (q31_t)0x73de87de, (q31_t)0x257db64c, (q31_t)0x73e5e360, (q31_t)0x25738657, - (q31_t)0x73ed3ce1, (q31_t)0x256954f1, (q31_t)0x73f49462, (q31_t)0x255f2219, - (q31_t)0x73fbe9e2, (q31_t)0x2554edd1, (q31_t)0x74033d61, (q31_t)0x254ab818, - (q31_t)0x740a8edf, (q31_t)0x254080ef, (q31_t)0x7411de5b, (q31_t)0x25364857, - (q31_t)0x74192bd5, (q31_t)0x252c0e4f, (q31_t)0x7420774d, (q31_t)0x2521d2d8, - (q31_t)0x7427c0c3, (q31_t)0x251795f3, (q31_t)0x742f0836, (q31_t)0x250d57a0, - (q31_t)0x74364da6, (q31_t)0x250317df, (q31_t)0x743d9112, (q31_t)0x24f8d6b0, - (q31_t)0x7444d27b, (q31_t)0x24ee9415, (q31_t)0x744c11e0, (q31_t)0x24e4500e, - (q31_t)0x74534f41, (q31_t)0x24da0a9a, (q31_t)0x745a8a9d, (q31_t)0x24cfc3ba, - (q31_t)0x7461c3f5, (q31_t)0x24c57b6f, (q31_t)0x7468fb47, (q31_t)0x24bb31ba, - (q31_t)0x74703095, (q31_t)0x24b0e699, (q31_t)0x747763dd, (q31_t)0x24a69a0f, - (q31_t)0x747e951f, (q31_t)0x249c4c1b, (q31_t)0x7485c45b, (q31_t)0x2491fcbe, - (q31_t)0x748cf190, (q31_t)0x2487abf7, (q31_t)0x74941cbf, (q31_t)0x247d59c8, - (q31_t)0x749b45e7, (q31_t)0x24730631, (q31_t)0x74a26d08, (q31_t)0x2468b132, - (q31_t)0x74a99221, (q31_t)0x245e5acc, (q31_t)0x74b0b533, (q31_t)0x245402ff, - (q31_t)0x74b7d63c, (q31_t)0x2449a9cc, (q31_t)0x74bef53d, (q31_t)0x243f4f32, - (q31_t)0x74c61236, (q31_t)0x2434f332, (q31_t)0x74cd2d26, (q31_t)0x242a95ce, - (q31_t)0x74d4460c, (q31_t)0x24203704, (q31_t)0x74db5cea, (q31_t)0x2415d6d5, - (q31_t)0x74e271bd, (q31_t)0x240b7543, (q31_t)0x74e98487, (q31_t)0x2401124d, - (q31_t)0x74f09546, (q31_t)0x23f6adf3, (q31_t)0x74f7a3fb, (q31_t)0x23ec4837, - (q31_t)0x74feb0a5, (q31_t)0x23e1e117, (q31_t)0x7505bb44, (q31_t)0x23d77896, - (q31_t)0x750cc3d8, (q31_t)0x23cd0eb3, (q31_t)0x7513ca60, (q31_t)0x23c2a36f, - (q31_t)0x751acedd, (q31_t)0x23b836ca, (q31_t)0x7521d14d, (q31_t)0x23adc8c4, - (q31_t)0x7528d1b1, (q31_t)0x23a3595e, (q31_t)0x752fd008, (q31_t)0x2398e898, - (q31_t)0x7536cc52, (q31_t)0x238e7673, (q31_t)0x753dc68f, (q31_t)0x238402ef, - (q31_t)0x7544bebf, (q31_t)0x23798e0d, (q31_t)0x754bb4e1, (q31_t)0x236f17cc, - (q31_t)0x7552a8f4, (q31_t)0x2364a02e, (q31_t)0x75599afa, (q31_t)0x235a2733, - (q31_t)0x75608af1, (q31_t)0x234facda, (q31_t)0x756778d9, (q31_t)0x23453125, - (q31_t)0x756e64b2, (q31_t)0x233ab414, (q31_t)0x75754e7c, (q31_t)0x233035a7, - (q31_t)0x757c3636, (q31_t)0x2325b5df, (q31_t)0x75831be0, (q31_t)0x231b34bc, - (q31_t)0x7589ff7a, (q31_t)0x2310b23e, (q31_t)0x7590e104, (q31_t)0x23062e67, - (q31_t)0x7597c07d, (q31_t)0x22fba936, (q31_t)0x759e9de5, (q31_t)0x22f122ab, - (q31_t)0x75a5793c, (q31_t)0x22e69ac8, (q31_t)0x75ac5282, (q31_t)0x22dc118c, - (q31_t)0x75b329b5, (q31_t)0x22d186f8, (q31_t)0x75b9fed7, (q31_t)0x22c6fb0c, - (q31_t)0x75c0d1e7, (q31_t)0x22bc6dca, (q31_t)0x75c7a2e3, (q31_t)0x22b1df30, - (q31_t)0x75ce71ce, (q31_t)0x22a74f40, (q31_t)0x75d53ea5, (q31_t)0x229cbdfa, - (q31_t)0x75dc0968, (q31_t)0x22922b5e, (q31_t)0x75e2d219, (q31_t)0x2287976e, - (q31_t)0x75e998b5, (q31_t)0x227d0228, (q31_t)0x75f05d3d, (q31_t)0x22726b8e, - (q31_t)0x75f71fb1, (q31_t)0x2267d3a0, (q31_t)0x75fde011, (q31_t)0x225d3a5e, - (q31_t)0x76049e5b, (q31_t)0x22529fca, (q31_t)0x760b5a90, (q31_t)0x224803e2, - (q31_t)0x761214b0, (q31_t)0x223d66a8, (q31_t)0x7618ccba, (q31_t)0x2232c81c, - (q31_t)0x761f82af, (q31_t)0x2228283f, (q31_t)0x7626368d, (q31_t)0x221d8711, - (q31_t)0x762ce855, (q31_t)0x2212e492, (q31_t)0x76339806, (q31_t)0x220840c2, - (q31_t)0x763a45a0, (q31_t)0x21fd9ba3, (q31_t)0x7640f123, (q31_t)0x21f2f534, - (q31_t)0x76479a8e, (q31_t)0x21e84d76, (q31_t)0x764e41e2, (q31_t)0x21dda46a, - (q31_t)0x7654e71d, (q31_t)0x21d2fa0f, (q31_t)0x765b8a41, (q31_t)0x21c84e67, - (q31_t)0x76622b4c, (q31_t)0x21bda171, (q31_t)0x7668ca3e, (q31_t)0x21b2f32e, - (q31_t)0x766f6717, (q31_t)0x21a8439e, (q31_t)0x767601d7, (q31_t)0x219d92c2, - (q31_t)0x767c9a7e, (q31_t)0x2192e09b, (q31_t)0x7683310b, (q31_t)0x21882d28, - (q31_t)0x7689c57d, (q31_t)0x217d786a, (q31_t)0x769057d6, (q31_t)0x2172c262, - (q31_t)0x7696e814, (q31_t)0x21680b0f, (q31_t)0x769d7637, (q31_t)0x215d5273, - (q31_t)0x76a4023f, (q31_t)0x2152988d, (q31_t)0x76aa8c2c, (q31_t)0x2147dd5f, - (q31_t)0x76b113fd, (q31_t)0x213d20e8, (q31_t)0x76b799b3, (q31_t)0x21326329, - (q31_t)0x76be1d4c, (q31_t)0x2127a423, (q31_t)0x76c49ec9, (q31_t)0x211ce3d5, - (q31_t)0x76cb1e2a, (q31_t)0x21122240, (q31_t)0x76d19b6e, (q31_t)0x21075f65, - (q31_t)0x76d81695, (q31_t)0x20fc9b44, (q31_t)0x76de8f9e, (q31_t)0x20f1d5de, - (q31_t)0x76e5068a, (q31_t)0x20e70f32, (q31_t)0x76eb7b58, (q31_t)0x20dc4742, - (q31_t)0x76f1ee09, (q31_t)0x20d17e0d, (q31_t)0x76f85e9a, (q31_t)0x20c6b395, - (q31_t)0x76fecd0e, (q31_t)0x20bbe7d8, (q31_t)0x77053962, (q31_t)0x20b11ad9, - (q31_t)0x770ba398, (q31_t)0x20a64c97, (q31_t)0x77120bae, (q31_t)0x209b7d13, - (q31_t)0x771871a5, (q31_t)0x2090ac4d, (q31_t)0x771ed57c, (q31_t)0x2085da46, - (q31_t)0x77253733, (q31_t)0x207b06fe, (q31_t)0x772b96ca, (q31_t)0x20703275, - (q31_t)0x7731f440, (q31_t)0x20655cac, (q31_t)0x77384f95, (q31_t)0x205a85a3, - (q31_t)0x773ea8ca, (q31_t)0x204fad5b, (q31_t)0x7744ffdd, (q31_t)0x2044d3d4, - (q31_t)0x774b54ce, (q31_t)0x2039f90f, (q31_t)0x7751a79e, (q31_t)0x202f1d0b, - (q31_t)0x7757f84c, (q31_t)0x20243fca, (q31_t)0x775e46d8, (q31_t)0x2019614c, - (q31_t)0x77649341, (q31_t)0x200e8190, (q31_t)0x776add88, (q31_t)0x2003a099, - (q31_t)0x777125ac, (q31_t)0x1ff8be65, (q31_t)0x77776bac, (q31_t)0x1feddaf6, - (q31_t)0x777daf89, (q31_t)0x1fe2f64c, (q31_t)0x7783f143, (q31_t)0x1fd81067, - (q31_t)0x778a30d8, (q31_t)0x1fcd2948, (q31_t)0x77906e49, (q31_t)0x1fc240ef, - (q31_t)0x7796a996, (q31_t)0x1fb7575c, (q31_t)0x779ce2be, (q31_t)0x1fac6c91, - (q31_t)0x77a319c2, (q31_t)0x1fa1808c, (q31_t)0x77a94ea0, (q31_t)0x1f969350, - (q31_t)0x77af8159, (q31_t)0x1f8ba4dc, (q31_t)0x77b5b1ec, (q31_t)0x1f80b531, - (q31_t)0x77bbe05a, (q31_t)0x1f75c44e, (q31_t)0x77c20ca1, (q31_t)0x1f6ad235, - (q31_t)0x77c836c2, (q31_t)0x1f5fdee6, (q31_t)0x77ce5ebd, (q31_t)0x1f54ea62, - (q31_t)0x77d48490, (q31_t)0x1f49f4a8, (q31_t)0x77daa83d, (q31_t)0x1f3efdb9, - (q31_t)0x77e0c9c3, (q31_t)0x1f340596, (q31_t)0x77e6e921, (q31_t)0x1f290c3f, - (q31_t)0x77ed0657, (q31_t)0x1f1e11b5, (q31_t)0x77f32165, (q31_t)0x1f1315f7, - (q31_t)0x77f93a4b, (q31_t)0x1f081907, (q31_t)0x77ff5109, (q31_t)0x1efd1ae4, - (q31_t)0x7805659e, (q31_t)0x1ef21b90, (q31_t)0x780b780a, (q31_t)0x1ee71b0a, - (q31_t)0x7811884d, (q31_t)0x1edc1953, (q31_t)0x78179666, (q31_t)0x1ed1166b, - (q31_t)0x781da256, (q31_t)0x1ec61254, (q31_t)0x7823ac1d, (q31_t)0x1ebb0d0d, - (q31_t)0x7829b3b9, (q31_t)0x1eb00696, (q31_t)0x782fb92a, (q31_t)0x1ea4fef0, - (q31_t)0x7835bc71, (q31_t)0x1e99f61d, (q31_t)0x783bbd8e, (q31_t)0x1e8eec1b, - (q31_t)0x7841bc7f, (q31_t)0x1e83e0eb, (q31_t)0x7847b946, (q31_t)0x1e78d48e, - (q31_t)0x784db3e0, (q31_t)0x1e6dc705, (q31_t)0x7853ac4f, (q31_t)0x1e62b84f, - (q31_t)0x7859a292, (q31_t)0x1e57a86d, (q31_t)0x785f96a9, (q31_t)0x1e4c9760, - (q31_t)0x78658894, (q31_t)0x1e418528, (q31_t)0x786b7852, (q31_t)0x1e3671c5, - (q31_t)0x787165e3, (q31_t)0x1e2b5d38, (q31_t)0x78775147, (q31_t)0x1e204781, - (q31_t)0x787d3a7e, (q31_t)0x1e1530a1, (q31_t)0x78832187, (q31_t)0x1e0a1898, - (q31_t)0x78890663, (q31_t)0x1dfeff67, (q31_t)0x788ee910, (q31_t)0x1df3e50d, - (q31_t)0x7894c98f, (q31_t)0x1de8c98c, (q31_t)0x789aa7e0, (q31_t)0x1dddace4, - (q31_t)0x78a08402, (q31_t)0x1dd28f15, (q31_t)0x78a65df6, (q31_t)0x1dc7701f, - (q31_t)0x78ac35ba, (q31_t)0x1dbc5004, (q31_t)0x78b20b4f, (q31_t)0x1db12ec3, - (q31_t)0x78b7deb4, (q31_t)0x1da60c5d, (q31_t)0x78bdafea, (q31_t)0x1d9ae8d2, - (q31_t)0x78c37eef, (q31_t)0x1d8fc424, (q31_t)0x78c94bc4, (q31_t)0x1d849e51, - (q31_t)0x78cf1669, (q31_t)0x1d79775c, (q31_t)0x78d4dedd, (q31_t)0x1d6e4f43, - (q31_t)0x78daa520, (q31_t)0x1d632608, (q31_t)0x78e06932, (q31_t)0x1d57fbaa, - (q31_t)0x78e62b13, (q31_t)0x1d4cd02c, (q31_t)0x78ebeac2, (q31_t)0x1d41a38c, - (q31_t)0x78f1a840, (q31_t)0x1d3675cb, (q31_t)0x78f7638b, (q31_t)0x1d2b46ea, - (q31_t)0x78fd1ca4, (q31_t)0x1d2016e9, (q31_t)0x7902d38b, (q31_t)0x1d14e5c9, - (q31_t)0x7908883f, (q31_t)0x1d09b389, (q31_t)0x790e3ac0, (q31_t)0x1cfe802b, - (q31_t)0x7913eb0e, (q31_t)0x1cf34baf, (q31_t)0x79199929, (q31_t)0x1ce81615, - (q31_t)0x791f4510, (q31_t)0x1cdcdf5e, (q31_t)0x7924eec3, (q31_t)0x1cd1a78a, - (q31_t)0x792a9642, (q31_t)0x1cc66e99, (q31_t)0x79303b8e, (q31_t)0x1cbb348d, - (q31_t)0x7935dea4, (q31_t)0x1caff965, (q31_t)0x793b7f86, (q31_t)0x1ca4bd21, - (q31_t)0x79411e33, (q31_t)0x1c997fc4, (q31_t)0x7946baac, (q31_t)0x1c8e414b, - (q31_t)0x794c54ee, (q31_t)0x1c8301b9, (q31_t)0x7951ecfc, (q31_t)0x1c77c10e, - (q31_t)0x795782d3, (q31_t)0x1c6c7f4a, (q31_t)0x795d1675, (q31_t)0x1c613c6d, - (q31_t)0x7962a7e0, (q31_t)0x1c55f878, (q31_t)0x79683715, (q31_t)0x1c4ab36b, - (q31_t)0x796dc414, (q31_t)0x1c3f6d47, (q31_t)0x79734edc, (q31_t)0x1c34260c, - (q31_t)0x7978d76c, (q31_t)0x1c28ddbb, (q31_t)0x797e5dc6, (q31_t)0x1c1d9454, - (q31_t)0x7983e1e8, (q31_t)0x1c1249d8, (q31_t)0x798963d2, (q31_t)0x1c06fe46, - (q31_t)0x798ee385, (q31_t)0x1bfbb1a0, (q31_t)0x799460ff, (q31_t)0x1bf063e6, - (q31_t)0x7999dc42, (q31_t)0x1be51518, (q31_t)0x799f554b, (q31_t)0x1bd9c537, - (q31_t)0x79a4cc1c, (q31_t)0x1bce7442, (q31_t)0x79aa40b4, (q31_t)0x1bc3223c, - (q31_t)0x79afb313, (q31_t)0x1bb7cf23, (q31_t)0x79b52339, (q31_t)0x1bac7af9, - (q31_t)0x79ba9125, (q31_t)0x1ba125bd, (q31_t)0x79bffcd7, (q31_t)0x1b95cf71, - (q31_t)0x79c5664f, (q31_t)0x1b8a7815, (q31_t)0x79cacd8d, (q31_t)0x1b7f1fa9, - (q31_t)0x79d03291, (q31_t)0x1b73c62d, (q31_t)0x79d5955a, (q31_t)0x1b686ba3, - (q31_t)0x79daf5e8, (q31_t)0x1b5d100a, (q31_t)0x79e0543c, (q31_t)0x1b51b363, - (q31_t)0x79e5b054, (q31_t)0x1b4655ae, (q31_t)0x79eb0a31, (q31_t)0x1b3af6ec, - (q31_t)0x79f061d2, (q31_t)0x1b2f971e, (q31_t)0x79f5b737, (q31_t)0x1b243643, - (q31_t)0x79fb0a60, (q31_t)0x1b18d45c, (q31_t)0x7a005b4d, (q31_t)0x1b0d716a, - (q31_t)0x7a05a9fd, (q31_t)0x1b020d6c, (q31_t)0x7a0af671, (q31_t)0x1af6a865, - (q31_t)0x7a1040a8, (q31_t)0x1aeb4253, (q31_t)0x7a1588a2, (q31_t)0x1adfdb37, - (q31_t)0x7a1ace5f, (q31_t)0x1ad47312, (q31_t)0x7a2011de, (q31_t)0x1ac909e5, - (q31_t)0x7a25531f, (q31_t)0x1abd9faf, (q31_t)0x7a2a9223, (q31_t)0x1ab23471, - (q31_t)0x7a2fcee8, (q31_t)0x1aa6c82b, (q31_t)0x7a350970, (q31_t)0x1a9b5adf, - (q31_t)0x7a3a41b9, (q31_t)0x1a8fec8c, (q31_t)0x7a3f77c3, (q31_t)0x1a847d33, - (q31_t)0x7a44ab8e, (q31_t)0x1a790cd4, (q31_t)0x7a49dd1a, (q31_t)0x1a6d9b70, - (q31_t)0x7a4f0c67, (q31_t)0x1a622907, (q31_t)0x7a543974, (q31_t)0x1a56b599, - (q31_t)0x7a596442, (q31_t)0x1a4b4128, (q31_t)0x7a5e8cd0, (q31_t)0x1a3fcbb3, - (q31_t)0x7a63b31d, (q31_t)0x1a34553b, (q31_t)0x7a68d72b, (q31_t)0x1a28ddc0, - (q31_t)0x7a6df8f8, (q31_t)0x1a1d6544, (q31_t)0x7a731884, (q31_t)0x1a11ebc5, - (q31_t)0x7a7835cf, (q31_t)0x1a067145, (q31_t)0x7a7d50da, (q31_t)0x19faf5c5, - (q31_t)0x7a8269a3, (q31_t)0x19ef7944, (q31_t)0x7a87802a, (q31_t)0x19e3fbc3, - (q31_t)0x7a8c9470, (q31_t)0x19d87d42, (q31_t)0x7a91a674, (q31_t)0x19ccfdc2, - (q31_t)0x7a96b636, (q31_t)0x19c17d44, (q31_t)0x7a9bc3b6, (q31_t)0x19b5fbc8, - (q31_t)0x7aa0cef3, (q31_t)0x19aa794d, (q31_t)0x7aa5d7ee, (q31_t)0x199ef5d6, - (q31_t)0x7aaadea6, (q31_t)0x19937161, (q31_t)0x7aafe31b, (q31_t)0x1987ebf0, - (q31_t)0x7ab4e54c, (q31_t)0x197c6584, (q31_t)0x7ab9e53a, (q31_t)0x1970de1b, - (q31_t)0x7abee2e5, (q31_t)0x196555b8, (q31_t)0x7ac3de4c, (q31_t)0x1959cc5a, - (q31_t)0x7ac8d76f, (q31_t)0x194e4201, (q31_t)0x7acdce4d, (q31_t)0x1942b6af, - (q31_t)0x7ad2c2e8, (q31_t)0x19372a64, (q31_t)0x7ad7b53d, (q31_t)0x192b9d1f, - (q31_t)0x7adca54e, (q31_t)0x19200ee3, (q31_t)0x7ae1931a, (q31_t)0x19147fae, - (q31_t)0x7ae67ea1, (q31_t)0x1908ef82, (q31_t)0x7aeb67e3, (q31_t)0x18fd5e5f, - (q31_t)0x7af04edf, (q31_t)0x18f1cc45, (q31_t)0x7af53395, (q31_t)0x18e63935, - (q31_t)0x7afa1605, (q31_t)0x18daa52f, (q31_t)0x7afef630, (q31_t)0x18cf1034, - (q31_t)0x7b03d414, (q31_t)0x18c37a44, (q31_t)0x7b08afb2, (q31_t)0x18b7e35f, - (q31_t)0x7b0d8909, (q31_t)0x18ac4b87, (q31_t)0x7b126019, (q31_t)0x18a0b2bb, - (q31_t)0x7b1734e2, (q31_t)0x189518fc, (q31_t)0x7b1c0764, (q31_t)0x18897e4a, - (q31_t)0x7b20d79e, (q31_t)0x187de2a7, (q31_t)0x7b25a591, (q31_t)0x18724611, - (q31_t)0x7b2a713d, (q31_t)0x1866a88a, (q31_t)0x7b2f3aa0, (q31_t)0x185b0a13, - (q31_t)0x7b3401bb, (q31_t)0x184f6aab, (q31_t)0x7b38c68e, (q31_t)0x1843ca53, - (q31_t)0x7b3d8918, (q31_t)0x1838290c, (q31_t)0x7b42495a, (q31_t)0x182c86d5, - (q31_t)0x7b470753, (q31_t)0x1820e3b0, (q31_t)0x7b4bc303, (q31_t)0x18153f9d, - (q31_t)0x7b507c69, (q31_t)0x18099a9c, (q31_t)0x7b553386, (q31_t)0x17fdf4ae, - (q31_t)0x7b59e85a, (q31_t)0x17f24dd3, (q31_t)0x7b5e9ae4, (q31_t)0x17e6a60c, - (q31_t)0x7b634b23, (q31_t)0x17dafd59, (q31_t)0x7b67f919, (q31_t)0x17cf53bb, - (q31_t)0x7b6ca4c4, (q31_t)0x17c3a931, (q31_t)0x7b714e25, (q31_t)0x17b7fdbd, - (q31_t)0x7b75f53c, (q31_t)0x17ac515f, (q31_t)0x7b7a9a07, (q31_t)0x17a0a417, - (q31_t)0x7b7f3c87, (q31_t)0x1794f5e6, (q31_t)0x7b83dcbc, (q31_t)0x178946cc, - (q31_t)0x7b887aa6, (q31_t)0x177d96ca, (q31_t)0x7b8d1644, (q31_t)0x1771e5e0, - (q31_t)0x7b91af97, (q31_t)0x1766340f, (q31_t)0x7b96469d, (q31_t)0x175a8157, - (q31_t)0x7b9adb57, (q31_t)0x174ecdb8, (q31_t)0x7b9f6dc5, (q31_t)0x17431933, - (q31_t)0x7ba3fde7, (q31_t)0x173763c9, (q31_t)0x7ba88bbc, (q31_t)0x172bad7a, - (q31_t)0x7bad1744, (q31_t)0x171ff646, (q31_t)0x7bb1a080, (q31_t)0x17143e2d, - (q31_t)0x7bb6276e, (q31_t)0x17088531, (q31_t)0x7bbaac0e, (q31_t)0x16fccb51, - (q31_t)0x7bbf2e62, (q31_t)0x16f1108f, (q31_t)0x7bc3ae67, (q31_t)0x16e554ea, - (q31_t)0x7bc82c1f, (q31_t)0x16d99864, (q31_t)0x7bcca789, (q31_t)0x16cddafb, - (q31_t)0x7bd120a4, (q31_t)0x16c21cb2, (q31_t)0x7bd59771, (q31_t)0x16b65d88, - (q31_t)0x7bda0bf0, (q31_t)0x16aa9d7e, (q31_t)0x7bde7e20, (q31_t)0x169edc94, - (q31_t)0x7be2ee01, (q31_t)0x16931acb, (q31_t)0x7be75b93, (q31_t)0x16875823, - (q31_t)0x7bebc6d5, (q31_t)0x167b949d, (q31_t)0x7bf02fc9, (q31_t)0x166fd039, - (q31_t)0x7bf4966c, (q31_t)0x16640af7, (q31_t)0x7bf8fac0, (q31_t)0x165844d8, - (q31_t)0x7bfd5cc4, (q31_t)0x164c7ddd, (q31_t)0x7c01bc78, (q31_t)0x1640b606, - (q31_t)0x7c0619dc, (q31_t)0x1634ed53, (q31_t)0x7c0a74f0, (q31_t)0x162923c5, - (q31_t)0x7c0ecdb2, (q31_t)0x161d595d, (q31_t)0x7c132424, (q31_t)0x16118e1a, - (q31_t)0x7c177845, (q31_t)0x1605c1fd, (q31_t)0x7c1bca16, (q31_t)0x15f9f507, - (q31_t)0x7c201994, (q31_t)0x15ee2738, (q31_t)0x7c2466c2, (q31_t)0x15e25890, - (q31_t)0x7c28b19e, (q31_t)0x15d68911, (q31_t)0x7c2cfa28, (q31_t)0x15cab8ba, - (q31_t)0x7c314060, (q31_t)0x15bee78c, (q31_t)0x7c358446, (q31_t)0x15b31587, - (q31_t)0x7c39c5da, (q31_t)0x15a742ac, (q31_t)0x7c3e051b, (q31_t)0x159b6efb, - (q31_t)0x7c42420a, (q31_t)0x158f9a76, (q31_t)0x7c467ca6, (q31_t)0x1583c51b, - (q31_t)0x7c4ab4ef, (q31_t)0x1577eeec, (q31_t)0x7c4eeae5, (q31_t)0x156c17e9, - (q31_t)0x7c531e88, (q31_t)0x15604013, (q31_t)0x7c574fd8, (q31_t)0x1554676a, - (q31_t)0x7c5b7ed4, (q31_t)0x15488dee, (q31_t)0x7c5fab7c, (q31_t)0x153cb3a0, - (q31_t)0x7c63d5d1, (q31_t)0x1530d881, (q31_t)0x7c67fdd1, (q31_t)0x1524fc90, - (q31_t)0x7c6c237e, (q31_t)0x15191fcf, (q31_t)0x7c7046d6, (q31_t)0x150d423d, - (q31_t)0x7c7467d9, (q31_t)0x150163dc, (q31_t)0x7c788688, (q31_t)0x14f584ac, - (q31_t)0x7c7ca2e2, (q31_t)0x14e9a4ac, (q31_t)0x7c80bce7, (q31_t)0x14ddc3de, - (q31_t)0x7c84d496, (q31_t)0x14d1e242, (q31_t)0x7c88e9f1, (q31_t)0x14c5ffd9, - (q31_t)0x7c8cfcf6, (q31_t)0x14ba1ca3, (q31_t)0x7c910da5, (q31_t)0x14ae38a0, - (q31_t)0x7c951bff, (q31_t)0x14a253d1, (q31_t)0x7c992803, (q31_t)0x14966e36, - (q31_t)0x7c9d31b0, (q31_t)0x148a87d1, (q31_t)0x7ca13908, (q31_t)0x147ea0a0, - (q31_t)0x7ca53e09, (q31_t)0x1472b8a5, (q31_t)0x7ca940b3, (q31_t)0x1466cfe1, - (q31_t)0x7cad4107, (q31_t)0x145ae653, (q31_t)0x7cb13f04, (q31_t)0x144efbfc, - (q31_t)0x7cb53aaa, (q31_t)0x144310dd, (q31_t)0x7cb933f9, (q31_t)0x143724f5, - (q31_t)0x7cbd2af0, (q31_t)0x142b3846, (q31_t)0x7cc11f90, (q31_t)0x141f4ad1, - (q31_t)0x7cc511d9, (q31_t)0x14135c94, (q31_t)0x7cc901c9, (q31_t)0x14076d91, - (q31_t)0x7cccef62, (q31_t)0x13fb7dc9, (q31_t)0x7cd0daa2, (q31_t)0x13ef8d3c, - (q31_t)0x7cd4c38b, (q31_t)0x13e39be9, (q31_t)0x7cd8aa1b, (q31_t)0x13d7a9d3, - (q31_t)0x7cdc8e52, (q31_t)0x13cbb6f8, (q31_t)0x7ce07031, (q31_t)0x13bfc35b, - (q31_t)0x7ce44fb7, (q31_t)0x13b3cefa, (q31_t)0x7ce82ce4, (q31_t)0x13a7d9d7, - (q31_t)0x7cec07b8, (q31_t)0x139be3f2, (q31_t)0x7cefe032, (q31_t)0x138fed4b, - (q31_t)0x7cf3b653, (q31_t)0x1383f5e3, (q31_t)0x7cf78a1b, (q31_t)0x1377fdbb, - (q31_t)0x7cfb5b89, (q31_t)0x136c04d2, (q31_t)0x7cff2a9d, (q31_t)0x13600b2a, - (q31_t)0x7d02f757, (q31_t)0x135410c3, (q31_t)0x7d06c1b6, (q31_t)0x1348159d, - (q31_t)0x7d0a89bc, (q31_t)0x133c19b8, (q31_t)0x7d0e4f67, (q31_t)0x13301d16, - (q31_t)0x7d1212b7, (q31_t)0x13241fb6, (q31_t)0x7d15d3ad, (q31_t)0x1318219a, - (q31_t)0x7d199248, (q31_t)0x130c22c1, (q31_t)0x7d1d4e88, (q31_t)0x1300232c, - (q31_t)0x7d21086c, (q31_t)0x12f422db, (q31_t)0x7d24bff6, (q31_t)0x12e821cf, - (q31_t)0x7d287523, (q31_t)0x12dc2009, (q31_t)0x7d2c27f6, (q31_t)0x12d01d89, - (q31_t)0x7d2fd86c, (q31_t)0x12c41a4f, (q31_t)0x7d338687, (q31_t)0x12b8165b, - (q31_t)0x7d373245, (q31_t)0x12ac11af, (q31_t)0x7d3adba7, (q31_t)0x12a00c4b, - (q31_t)0x7d3e82ae, (q31_t)0x1294062f, (q31_t)0x7d422757, (q31_t)0x1287ff5b, - (q31_t)0x7d45c9a4, (q31_t)0x127bf7d1, (q31_t)0x7d496994, (q31_t)0x126fef90, - (q31_t)0x7d4d0728, (q31_t)0x1263e699, (q31_t)0x7d50a25e, (q31_t)0x1257dced, - (q31_t)0x7d543b37, (q31_t)0x124bd28c, (q31_t)0x7d57d1b3, (q31_t)0x123fc776, - (q31_t)0x7d5b65d2, (q31_t)0x1233bbac, (q31_t)0x7d5ef793, (q31_t)0x1227af2e, - (q31_t)0x7d6286f6, (q31_t)0x121ba1fd, (q31_t)0x7d6613fb, (q31_t)0x120f941a, - (q31_t)0x7d699ea3, (q31_t)0x12038584, (q31_t)0x7d6d26ec, (q31_t)0x11f7763c, - (q31_t)0x7d70acd7, (q31_t)0x11eb6643, (q31_t)0x7d743064, (q31_t)0x11df5599, - (q31_t)0x7d77b192, (q31_t)0x11d3443f, (q31_t)0x7d7b3061, (q31_t)0x11c73235, - (q31_t)0x7d7eacd2, (q31_t)0x11bb1f7c, (q31_t)0x7d8226e4, (q31_t)0x11af0c13, - (q31_t)0x7d859e96, (q31_t)0x11a2f7fc, (q31_t)0x7d8913ea, (q31_t)0x1196e337, - (q31_t)0x7d8c86de, (q31_t)0x118acdc4, (q31_t)0x7d8ff772, (q31_t)0x117eb7a4, - (q31_t)0x7d9365a8, (q31_t)0x1172a0d7, (q31_t)0x7d96d17d, (q31_t)0x1166895f, - (q31_t)0x7d9a3af2, (q31_t)0x115a713a, (q31_t)0x7d9da208, (q31_t)0x114e586a, - (q31_t)0x7da106bd, (q31_t)0x11423ef0, (q31_t)0x7da46912, (q31_t)0x113624cb, - (q31_t)0x7da7c907, (q31_t)0x112a09fc, (q31_t)0x7dab269b, (q31_t)0x111dee84, - (q31_t)0x7dae81cf, (q31_t)0x1111d263, (q31_t)0x7db1daa2, (q31_t)0x1105b599, - (q31_t)0x7db53113, (q31_t)0x10f99827, (q31_t)0x7db88524, (q31_t)0x10ed7a0e, - (q31_t)0x7dbbd6d4, (q31_t)0x10e15b4e, (q31_t)0x7dbf2622, (q31_t)0x10d53be7, - (q31_t)0x7dc2730f, (q31_t)0x10c91bda, (q31_t)0x7dc5bd9b, (q31_t)0x10bcfb28, - (q31_t)0x7dc905c5, (q31_t)0x10b0d9d0, (q31_t)0x7dcc4b8d, (q31_t)0x10a4b7d3, - (q31_t)0x7dcf8ef3, (q31_t)0x10989532, (q31_t)0x7dd2cff7, (q31_t)0x108c71ee, - (q31_t)0x7dd60e99, (q31_t)0x10804e06, (q31_t)0x7dd94ad8, (q31_t)0x1074297b, - (q31_t)0x7ddc84b5, (q31_t)0x1068044e, (q31_t)0x7ddfbc30, (q31_t)0x105bde7f, - (q31_t)0x7de2f148, (q31_t)0x104fb80e, (q31_t)0x7de623fd, (q31_t)0x104390fd, - (q31_t)0x7de9544f, (q31_t)0x1037694b, (q31_t)0x7dec823e, (q31_t)0x102b40f8, - (q31_t)0x7defadca, (q31_t)0x101f1807, (q31_t)0x7df2d6f3, (q31_t)0x1012ee76, - (q31_t)0x7df5fdb8, (q31_t)0x1006c446, (q31_t)0x7df9221a, (q31_t)0xffa9979, - (q31_t)0x7dfc4418, (q31_t)0xfee6e0d, (q31_t)0x7dff63b2, (q31_t)0xfe24205, - (q31_t)0x7e0280e9, (q31_t)0xfd6155f, (q31_t)0x7e059bbb, (q31_t)0xfc9e81e, - (q31_t)0x7e08b42a, (q31_t)0xfbdba40, (q31_t)0x7e0bca34, (q31_t)0xfb18bc8, - (q31_t)0x7e0eddd9, (q31_t)0xfa55cb4, (q31_t)0x7e11ef1b, (q31_t)0xf992d06, - (q31_t)0x7e14fdf7, (q31_t)0xf8cfcbe, (q31_t)0x7e180a6f, (q31_t)0xf80cbdc, - (q31_t)0x7e1b1482, (q31_t)0xf749a61, (q31_t)0x7e1e1c30, (q31_t)0xf68684e, - (q31_t)0x7e212179, (q31_t)0xf5c35a3, (q31_t)0x7e24245d, (q31_t)0xf500260, - (q31_t)0x7e2724db, (q31_t)0xf43ce86, (q31_t)0x7e2a22f4, (q31_t)0xf379a16, - (q31_t)0x7e2d1ea8, (q31_t)0xf2b650f, (q31_t)0x7e3017f6, (q31_t)0xf1f2f73, - (q31_t)0x7e330ede, (q31_t)0xf12f941, (q31_t)0x7e360360, (q31_t)0xf06c27a, - (q31_t)0x7e38f57c, (q31_t)0xefa8b20, (q31_t)0x7e3be532, (q31_t)0xeee5331, - (q31_t)0x7e3ed282, (q31_t)0xee21aaf, (q31_t)0x7e41bd6c, (q31_t)0xed5e19a, - (q31_t)0x7e44a5ef, (q31_t)0xec9a7f3, (q31_t)0x7e478c0b, (q31_t)0xebd6db9, - (q31_t)0x7e4a6fc1, (q31_t)0xeb132ef, (q31_t)0x7e4d5110, (q31_t)0xea4f793, - (q31_t)0x7e502ff9, (q31_t)0xe98bba7, (q31_t)0x7e530c7a, (q31_t)0xe8c7f2a, - (q31_t)0x7e55e694, (q31_t)0xe80421e, (q31_t)0x7e58be47, (q31_t)0xe740483, - (q31_t)0x7e5b9392, (q31_t)0xe67c65a, (q31_t)0x7e5e6676, (q31_t)0xe5b87a2, - (q31_t)0x7e6136f3, (q31_t)0xe4f485c, (q31_t)0x7e640507, (q31_t)0xe430889, - (q31_t)0x7e66d0b4, (q31_t)0xe36c82a, (q31_t)0x7e6999fa, (q31_t)0xe2a873e, - (q31_t)0x7e6c60d7, (q31_t)0xe1e45c6, (q31_t)0x7e6f254c, (q31_t)0xe1203c3, - (q31_t)0x7e71e759, (q31_t)0xe05c135, (q31_t)0x7e74a6fd, (q31_t)0xdf97e1d, - (q31_t)0x7e77643a, (q31_t)0xded3a7b, (q31_t)0x7e7a1f0d, (q31_t)0xde0f64f, - (q31_t)0x7e7cd778, (q31_t)0xdd4b19a, (q31_t)0x7e7f8d7b, (q31_t)0xdc86c5d, - (q31_t)0x7e824114, (q31_t)0xdbc2698, (q31_t)0x7e84f245, (q31_t)0xdafe04b, - (q31_t)0x7e87a10c, (q31_t)0xda39978, (q31_t)0x7e8a4d6a, (q31_t)0xd97521d, - (q31_t)0x7e8cf75f, (q31_t)0xd8b0a3d, (q31_t)0x7e8f9eeb, (q31_t)0xd7ec1d6, - (q31_t)0x7e92440d, (q31_t)0xd7278eb, (q31_t)0x7e94e6c6, (q31_t)0xd662f7b, - (q31_t)0x7e978715, (q31_t)0xd59e586, (q31_t)0x7e9a24fb, (q31_t)0xd4d9b0e, - (q31_t)0x7e9cc076, (q31_t)0xd415013, (q31_t)0x7e9f5988, (q31_t)0xd350495, - (q31_t)0x7ea1f02f, (q31_t)0xd28b894, (q31_t)0x7ea4846c, (q31_t)0xd1c6c11, - (q31_t)0x7ea7163f, (q31_t)0xd101f0e, (q31_t)0x7ea9a5a8, (q31_t)0xd03d189, - (q31_t)0x7eac32a6, (q31_t)0xcf78383, (q31_t)0x7eaebd3a, (q31_t)0xceb34fe, - (q31_t)0x7eb14563, (q31_t)0xcdee5f9, (q31_t)0x7eb3cb21, (q31_t)0xcd29676, - (q31_t)0x7eb64e75, (q31_t)0xcc64673, (q31_t)0x7eb8cf5d, (q31_t)0xcb9f5f3, - (q31_t)0x7ebb4ddb, (q31_t)0xcada4f5, (q31_t)0x7ebdc9ed, (q31_t)0xca1537a, - (q31_t)0x7ec04394, (q31_t)0xc950182, (q31_t)0x7ec2bad0, (q31_t)0xc88af0e, - (q31_t)0x7ec52fa0, (q31_t)0xc7c5c1e, (q31_t)0x7ec7a205, (q31_t)0xc7008b3, - (q31_t)0x7eca11fe, (q31_t)0xc63b4ce, (q31_t)0x7ecc7f8b, (q31_t)0xc57606e, - (q31_t)0x7eceeaad, (q31_t)0xc4b0b94, (q31_t)0x7ed15363, (q31_t)0xc3eb641, - (q31_t)0x7ed3b9ad, (q31_t)0xc326075, (q31_t)0x7ed61d8a, (q31_t)0xc260a31, - (q31_t)0x7ed87efc, (q31_t)0xc19b374, (q31_t)0x7edade01, (q31_t)0xc0d5c41, - (q31_t)0x7edd3a9a, (q31_t)0xc010496, (q31_t)0x7edf94c7, (q31_t)0xbf4ac75, - (q31_t)0x7ee1ec87, (q31_t)0xbe853de, (q31_t)0x7ee441da, (q31_t)0xbdbfad1, - (q31_t)0x7ee694c1, (q31_t)0xbcfa150, (q31_t)0x7ee8e53a, (q31_t)0xbc34759, - (q31_t)0x7eeb3347, (q31_t)0xbb6ecef, (q31_t)0x7eed7ee7, (q31_t)0xbaa9211, - (q31_t)0x7eefc81a, (q31_t)0xb9e36c0, (q31_t)0x7ef20ee0, (q31_t)0xb91dafc, - (q31_t)0x7ef45338, (q31_t)0xb857ec7, (q31_t)0x7ef69523, (q31_t)0xb79221f, - (q31_t)0x7ef8d4a1, (q31_t)0xb6cc506, (q31_t)0x7efb11b1, (q31_t)0xb60677c, - (q31_t)0x7efd4c54, (q31_t)0xb540982, (q31_t)0x7eff8489, (q31_t)0xb47ab19, - (q31_t)0x7f01ba50, (q31_t)0xb3b4c40, (q31_t)0x7f03eda9, (q31_t)0xb2eecf8, - (q31_t)0x7f061e95, (q31_t)0xb228d42, (q31_t)0x7f084d12, (q31_t)0xb162d1d, - (q31_t)0x7f0a7921, (q31_t)0xb09cc8c, (q31_t)0x7f0ca2c2, (q31_t)0xafd6b8d, - (q31_t)0x7f0ec9f5, (q31_t)0xaf10a22, (q31_t)0x7f10eeb9, (q31_t)0xae4a84b, - (q31_t)0x7f13110f, (q31_t)0xad84609, (q31_t)0x7f1530f7, (q31_t)0xacbe35b, - (q31_t)0x7f174e70, (q31_t)0xabf8043, (q31_t)0x7f19697a, (q31_t)0xab31cc1, - (q31_t)0x7f1b8215, (q31_t)0xaa6b8d5, (q31_t)0x7f1d9842, (q31_t)0xa9a5480, - (q31_t)0x7f1fabff, (q31_t)0xa8defc3, (q31_t)0x7f21bd4e, (q31_t)0xa818a9d, - (q31_t)0x7f23cc2e, (q31_t)0xa752510, (q31_t)0x7f25d89e, (q31_t)0xa68bf1b, - (q31_t)0x7f27e29f, (q31_t)0xa5c58c0, (q31_t)0x7f29ea31, (q31_t)0xa4ff1fe, - (q31_t)0x7f2bef53, (q31_t)0xa438ad7, (q31_t)0x7f2df206, (q31_t)0xa37234a, - (q31_t)0x7f2ff24a, (q31_t)0xa2abb59, (q31_t)0x7f31f01d, (q31_t)0xa1e5303, - (q31_t)0x7f33eb81, (q31_t)0xa11ea49, (q31_t)0x7f35e476, (q31_t)0xa05812c, - (q31_t)0x7f37dafa, (q31_t)0x9f917ac, (q31_t)0x7f39cf0e, (q31_t)0x9ecadc9, - (q31_t)0x7f3bc0b3, (q31_t)0x9e04385, (q31_t)0x7f3dafe7, (q31_t)0x9d3d8df, - (q31_t)0x7f3f9cab, (q31_t)0x9c76dd8, (q31_t)0x7f4186ff, (q31_t)0x9bb0271, - (q31_t)0x7f436ee3, (q31_t)0x9ae96aa, (q31_t)0x7f455456, (q31_t)0x9a22a83, - (q31_t)0x7f473759, (q31_t)0x995bdfd, (q31_t)0x7f4917eb, (q31_t)0x9895118, - (q31_t)0x7f4af60d, (q31_t)0x97ce3d5, (q31_t)0x7f4cd1be, (q31_t)0x9707635, - (q31_t)0x7f4eaafe, (q31_t)0x9640837, (q31_t)0x7f5081cd, (q31_t)0x95799dd, - (q31_t)0x7f52562c, (q31_t)0x94b2b27, (q31_t)0x7f54281a, (q31_t)0x93ebc14, - (q31_t)0x7f55f796, (q31_t)0x9324ca7, (q31_t)0x7f57c4a2, (q31_t)0x925dcdf, - (q31_t)0x7f598f3c, (q31_t)0x9196cbc, (q31_t)0x7f5b5765, (q31_t)0x90cfc40, - (q31_t)0x7f5d1d1d, (q31_t)0x9008b6a, (q31_t)0x7f5ee063, (q31_t)0x8f41a3c, - (q31_t)0x7f60a138, (q31_t)0x8e7a8b5, (q31_t)0x7f625f9b, (q31_t)0x8db36d6, - (q31_t)0x7f641b8d, (q31_t)0x8cec4a0, (q31_t)0x7f65d50d, (q31_t)0x8c25213, - (q31_t)0x7f678c1c, (q31_t)0x8b5df30, (q31_t)0x7f6940b8, (q31_t)0x8a96bf6, - (q31_t)0x7f6af2e3, (q31_t)0x89cf867, (q31_t)0x7f6ca29c, (q31_t)0x8908483, - (q31_t)0x7f6e4fe3, (q31_t)0x884104b, (q31_t)0x7f6ffab8, (q31_t)0x8779bbe, - (q31_t)0x7f71a31b, (q31_t)0x86b26de, (q31_t)0x7f73490b, (q31_t)0x85eb1ab, - (q31_t)0x7f74ec8a, (q31_t)0x8523c25, (q31_t)0x7f768d96, (q31_t)0x845c64d, - (q31_t)0x7f782c30, (q31_t)0x8395024, (q31_t)0x7f79c857, (q31_t)0x82cd9a9, - (q31_t)0x7f7b620c, (q31_t)0x82062de, (q31_t)0x7f7cf94e, (q31_t)0x813ebc2, - (q31_t)0x7f7e8e1e, (q31_t)0x8077457, (q31_t)0x7f80207b, (q31_t)0x7fafc9c, - (q31_t)0x7f81b065, (q31_t)0x7ee8493, (q31_t)0x7f833ddd, (q31_t)0x7e20c3b, - (q31_t)0x7f84c8e2, (q31_t)0x7d59396, (q31_t)0x7f865174, (q31_t)0x7c91aa3, - (q31_t)0x7f87d792, (q31_t)0x7bca163, (q31_t)0x7f895b3e, (q31_t)0x7b027d7, - (q31_t)0x7f8adc77, (q31_t)0x7a3adff, (q31_t)0x7f8c5b3d, (q31_t)0x79733dc, - (q31_t)0x7f8dd78f, (q31_t)0x78ab96e, (q31_t)0x7f8f516e, (q31_t)0x77e3eb5, - (q31_t)0x7f90c8da, (q31_t)0x771c3b3, (q31_t)0x7f923dd2, (q31_t)0x7654867, - (q31_t)0x7f93b058, (q31_t)0x758ccd2, (q31_t)0x7f952069, (q31_t)0x74c50f4, - (q31_t)0x7f968e07, (q31_t)0x73fd4cf, (q31_t)0x7f97f932, (q31_t)0x7335862, - (q31_t)0x7f9961e8, (q31_t)0x726dbae, (q31_t)0x7f9ac82c, (q31_t)0x71a5eb3, - (q31_t)0x7f9c2bfb, (q31_t)0x70de172, (q31_t)0x7f9d8d56, (q31_t)0x70163eb, - (q31_t)0x7f9eec3e, (q31_t)0x6f4e620, (q31_t)0x7fa048b2, (q31_t)0x6e86810, - (q31_t)0x7fa1a2b2, (q31_t)0x6dbe9bb, (q31_t)0x7fa2fa3d, (q31_t)0x6cf6b23, - (q31_t)0x7fa44f55, (q31_t)0x6c2ec48, (q31_t)0x7fa5a1f9, (q31_t)0x6b66d29, - (q31_t)0x7fa6f228, (q31_t)0x6a9edc9, (q31_t)0x7fa83fe3, (q31_t)0x69d6e27, - (q31_t)0x7fa98b2a, (q31_t)0x690ee44, (q31_t)0x7faad3fd, (q31_t)0x6846e1f, - (q31_t)0x7fac1a5b, (q31_t)0x677edbb, (q31_t)0x7fad5e45, (q31_t)0x66b6d16, - (q31_t)0x7fae9fbb, (q31_t)0x65eec33, (q31_t)0x7fafdebb, (q31_t)0x6526b10, - (q31_t)0x7fb11b48, (q31_t)0x645e9af, (q31_t)0x7fb2555f, (q31_t)0x6396810, - (q31_t)0x7fb38d02, (q31_t)0x62ce634, (q31_t)0x7fb4c231, (q31_t)0x620641a, - (q31_t)0x7fb5f4ea, (q31_t)0x613e1c5, (q31_t)0x7fb7252f, (q31_t)0x6075f33, - (q31_t)0x7fb852ff, (q31_t)0x5fadc66, (q31_t)0x7fb97e5a, (q31_t)0x5ee595d, - (q31_t)0x7fbaa740, (q31_t)0x5e1d61b, (q31_t)0x7fbbcdb1, (q31_t)0x5d5529e, - (q31_t)0x7fbcf1ad, (q31_t)0x5c8cee7, (q31_t)0x7fbe1334, (q31_t)0x5bc4af8, - (q31_t)0x7fbf3246, (q31_t)0x5afc6d0, (q31_t)0x7fc04ee3, (q31_t)0x5a3426f, - (q31_t)0x7fc1690a, (q31_t)0x596bdd7, (q31_t)0x7fc280bc, (q31_t)0x58a3908, - (q31_t)0x7fc395f9, (q31_t)0x57db403, (q31_t)0x7fc4a8c1, (q31_t)0x5712ec7, - (q31_t)0x7fc5b913, (q31_t)0x564a955, (q31_t)0x7fc6c6f0, (q31_t)0x55823ae, - (q31_t)0x7fc7d258, (q31_t)0x54b9dd3, (q31_t)0x7fc8db4a, (q31_t)0x53f17c3, - (q31_t)0x7fc9e1c6, (q31_t)0x532917f, (q31_t)0x7fcae5cd, (q31_t)0x5260b08, - (q31_t)0x7fcbe75e, (q31_t)0x519845e, (q31_t)0x7fcce67a, (q31_t)0x50cfd82, - (q31_t)0x7fcde320, (q31_t)0x5007674, (q31_t)0x7fcedd50, (q31_t)0x4f3ef35, - (q31_t)0x7fcfd50b, (q31_t)0x4e767c5, (q31_t)0x7fd0ca4f, (q31_t)0x4dae024, - (q31_t)0x7fd1bd1e, (q31_t)0x4ce5854, (q31_t)0x7fd2ad77, (q31_t)0x4c1d054, - (q31_t)0x7fd39b5a, (q31_t)0x4b54825, (q31_t)0x7fd486c7, (q31_t)0x4a8bfc7, - (q31_t)0x7fd56fbe, (q31_t)0x49c373c, (q31_t)0x7fd6563f, (q31_t)0x48fae83, - (q31_t)0x7fd73a4a, (q31_t)0x483259d, (q31_t)0x7fd81bdf, (q31_t)0x4769c8b, - (q31_t)0x7fd8fafe, (q31_t)0x46a134c, (q31_t)0x7fd9d7a7, (q31_t)0x45d89e2, - (q31_t)0x7fdab1d9, (q31_t)0x451004d, (q31_t)0x7fdb8996, (q31_t)0x444768d, - (q31_t)0x7fdc5edc, (q31_t)0x437eca4, (q31_t)0x7fdd31ac, (q31_t)0x42b6290, - (q31_t)0x7fde0205, (q31_t)0x41ed854, (q31_t)0x7fdecfe8, (q31_t)0x4124dee, - (q31_t)0x7fdf9b55, (q31_t)0x405c361, (q31_t)0x7fe0644b, (q31_t)0x3f938ac, - (q31_t)0x7fe12acb, (q31_t)0x3ecadcf, (q31_t)0x7fe1eed5, (q31_t)0x3e022cc, - (q31_t)0x7fe2b067, (q31_t)0x3d397a3, (q31_t)0x7fe36f84, (q31_t)0x3c70c54, - (q31_t)0x7fe42c2a, (q31_t)0x3ba80df, (q31_t)0x7fe4e659, (q31_t)0x3adf546, - (q31_t)0x7fe59e12, (q31_t)0x3a16988, (q31_t)0x7fe65354, (q31_t)0x394dda7, - (q31_t)0x7fe7061f, (q31_t)0x38851a2, (q31_t)0x7fe7b674, (q31_t)0x37bc57b, - (q31_t)0x7fe86452, (q31_t)0x36f3931, (q31_t)0x7fe90fb9, (q31_t)0x362acc5, - (q31_t)0x7fe9b8a9, (q31_t)0x3562038, (q31_t)0x7fea5f23, (q31_t)0x3499389, - (q31_t)0x7feb0326, (q31_t)0x33d06bb, (q31_t)0x7feba4b2, (q31_t)0x33079cc, - (q31_t)0x7fec43c7, (q31_t)0x323ecbe, (q31_t)0x7fece065, (q31_t)0x3175f91, - (q31_t)0x7fed7a8c, (q31_t)0x30ad245, (q31_t)0x7fee123d, (q31_t)0x2fe44dc, - (q31_t)0x7feea776, (q31_t)0x2f1b755, (q31_t)0x7fef3a39, (q31_t)0x2e529b0, - (q31_t)0x7fefca84, (q31_t)0x2d89bf0, (q31_t)0x7ff05858, (q31_t)0x2cc0e13, - (q31_t)0x7ff0e3b6, (q31_t)0x2bf801a, (q31_t)0x7ff16c9c, (q31_t)0x2b2f207, - (q31_t)0x7ff1f30b, (q31_t)0x2a663d8, (q31_t)0x7ff27703, (q31_t)0x299d590, - (q31_t)0x7ff2f884, (q31_t)0x28d472e, (q31_t)0x7ff3778e, (q31_t)0x280b8b3, - (q31_t)0x7ff3f420, (q31_t)0x2742a1f, (q31_t)0x7ff46e3c, (q31_t)0x2679b73, - (q31_t)0x7ff4e5e0, (q31_t)0x25b0caf, (q31_t)0x7ff55b0d, (q31_t)0x24e7dd4, - (q31_t)0x7ff5cdc3, (q31_t)0x241eee2, (q31_t)0x7ff63e01, (q31_t)0x2355fd9, - (q31_t)0x7ff6abc8, (q31_t)0x228d0bb, (q31_t)0x7ff71718, (q31_t)0x21c4188, - (q31_t)0x7ff77ff1, (q31_t)0x20fb240, (q31_t)0x7ff7e652, (q31_t)0x20322e3, - (q31_t)0x7ff84a3c, (q31_t)0x1f69373, (q31_t)0x7ff8abae, (q31_t)0x1ea03ef, - (q31_t)0x7ff90aaa, (q31_t)0x1dd7459, (q31_t)0x7ff9672d, (q31_t)0x1d0e4b0, - (q31_t)0x7ff9c13a, (q31_t)0x1c454f5, (q31_t)0x7ffa18cf, (q31_t)0x1b7c528, - (q31_t)0x7ffa6dec, (q31_t)0x1ab354b, (q31_t)0x7ffac092, (q31_t)0x19ea55d, - (q31_t)0x7ffb10c1, (q31_t)0x192155f, (q31_t)0x7ffb5e78, (q31_t)0x1858552, - (q31_t)0x7ffba9b8, (q31_t)0x178f536, (q31_t)0x7ffbf280, (q31_t)0x16c650b, - (q31_t)0x7ffc38d1, (q31_t)0x15fd4d2, (q31_t)0x7ffc7caa, (q31_t)0x153448c, - (q31_t)0x7ffcbe0c, (q31_t)0x146b438, (q31_t)0x7ffcfcf6, (q31_t)0x13a23d8, - (q31_t)0x7ffd3969, (q31_t)0x12d936c, (q31_t)0x7ffd7364, (q31_t)0x12102f4, - (q31_t)0x7ffdaae7, (q31_t)0x1147271, (q31_t)0x7ffddff3, (q31_t)0x107e1e3, - (q31_t)0x7ffe1288, (q31_t)0xfb514b, (q31_t)0x7ffe42a4, (q31_t)0xeec0aa, - (q31_t)0x7ffe704a, (q31_t)0xe22fff, (q31_t)0x7ffe9b77, (q31_t)0xd59f4c, - (q31_t)0x7ffec42d, (q31_t)0xc90e90, (q31_t)0x7ffeea6c, (q31_t)0xbc7dcc, - (q31_t)0x7fff0e32, (q31_t)0xafed02, (q31_t)0x7fff2f82, (q31_t)0xa35c30, - (q31_t)0x7fff4e59, (q31_t)0x96cb58, (q31_t)0x7fff6ab9, (q31_t)0x8a3a7b, - (q31_t)0x7fff84a1, (q31_t)0x7da998, (q31_t)0x7fff9c12, (q31_t)0x7118b0, - (q31_t)0x7fffb10b, (q31_t)0x6487c4, (q31_t)0x7fffc38c, (q31_t)0x57f6d4, - (q31_t)0x7fffd396, (q31_t)0x4b65e1, (q31_t)0x7fffe128, (q31_t)0x3ed4ea, - (q31_t)0x7fffec43, (q31_t)0x3243f1, (q31_t)0x7ffff4e6, (q31_t)0x25b2f7, - (q31_t)0x7ffffb11, (q31_t)0x1921fb, (q31_t)0x7ffffec4, (q31_t)0xc90fe, - (q31_t)0x7fffffff, (q31_t)0x0, (q31_t)0x7ffffec4, (q31_t)0xfff36f02, - (q31_t)0x7ffffb11, (q31_t)0xffe6de05, (q31_t)0x7ffff4e6, (q31_t)0xffda4d09, - (q31_t)0x7fffec43, (q31_t)0xffcdbc0f, (q31_t)0x7fffe128, (q31_t)0xffc12b16, - (q31_t)0x7fffd396, (q31_t)0xffb49a1f, (q31_t)0x7fffc38c, (q31_t)0xffa8092c, - (q31_t)0x7fffb10b, (q31_t)0xff9b783c, (q31_t)0x7fff9c12, (q31_t)0xff8ee750, - (q31_t)0x7fff84a1, (q31_t)0xff825668, (q31_t)0x7fff6ab9, (q31_t)0xff75c585, - (q31_t)0x7fff4e59, (q31_t)0xff6934a8, (q31_t)0x7fff2f82, (q31_t)0xff5ca3d0, - (q31_t)0x7fff0e32, (q31_t)0xff5012fe, (q31_t)0x7ffeea6c, (q31_t)0xff438234, - (q31_t)0x7ffec42d, (q31_t)0xff36f170, (q31_t)0x7ffe9b77, (q31_t)0xff2a60b4, - (q31_t)0x7ffe704a, (q31_t)0xff1dd001, (q31_t)0x7ffe42a4, (q31_t)0xff113f56, - (q31_t)0x7ffe1288, (q31_t)0xff04aeb5, (q31_t)0x7ffddff3, (q31_t)0xfef81e1d, - (q31_t)0x7ffdaae7, (q31_t)0xfeeb8d8f, (q31_t)0x7ffd7364, (q31_t)0xfedefd0c, - (q31_t)0x7ffd3969, (q31_t)0xfed26c94, (q31_t)0x7ffcfcf6, (q31_t)0xfec5dc28, - (q31_t)0x7ffcbe0c, (q31_t)0xfeb94bc8, (q31_t)0x7ffc7caa, (q31_t)0xfeacbb74, - (q31_t)0x7ffc38d1, (q31_t)0xfea02b2e, (q31_t)0x7ffbf280, (q31_t)0xfe939af5, - (q31_t)0x7ffba9b8, (q31_t)0xfe870aca, (q31_t)0x7ffb5e78, (q31_t)0xfe7a7aae, - (q31_t)0x7ffb10c1, (q31_t)0xfe6deaa1, (q31_t)0x7ffac092, (q31_t)0xfe615aa3, - (q31_t)0x7ffa6dec, (q31_t)0xfe54cab5, (q31_t)0x7ffa18cf, (q31_t)0xfe483ad8, - (q31_t)0x7ff9c13a, (q31_t)0xfe3bab0b, (q31_t)0x7ff9672d, (q31_t)0xfe2f1b50, - (q31_t)0x7ff90aaa, (q31_t)0xfe228ba7, (q31_t)0x7ff8abae, (q31_t)0xfe15fc11, - (q31_t)0x7ff84a3c, (q31_t)0xfe096c8d, (q31_t)0x7ff7e652, (q31_t)0xfdfcdd1d, - (q31_t)0x7ff77ff1, (q31_t)0xfdf04dc0, (q31_t)0x7ff71718, (q31_t)0xfde3be78, - (q31_t)0x7ff6abc8, (q31_t)0xfdd72f45, (q31_t)0x7ff63e01, (q31_t)0xfdcaa027, - (q31_t)0x7ff5cdc3, (q31_t)0xfdbe111e, (q31_t)0x7ff55b0d, (q31_t)0xfdb1822c, - (q31_t)0x7ff4e5e0, (q31_t)0xfda4f351, (q31_t)0x7ff46e3c, (q31_t)0xfd98648d, - (q31_t)0x7ff3f420, (q31_t)0xfd8bd5e1, (q31_t)0x7ff3778e, (q31_t)0xfd7f474d, - (q31_t)0x7ff2f884, (q31_t)0xfd72b8d2, (q31_t)0x7ff27703, (q31_t)0xfd662a70, - (q31_t)0x7ff1f30b, (q31_t)0xfd599c28, (q31_t)0x7ff16c9c, (q31_t)0xfd4d0df9, - (q31_t)0x7ff0e3b6, (q31_t)0xfd407fe6, (q31_t)0x7ff05858, (q31_t)0xfd33f1ed, - (q31_t)0x7fefca84, (q31_t)0xfd276410, (q31_t)0x7fef3a39, (q31_t)0xfd1ad650, - (q31_t)0x7feea776, (q31_t)0xfd0e48ab, (q31_t)0x7fee123d, (q31_t)0xfd01bb24, - (q31_t)0x7fed7a8c, (q31_t)0xfcf52dbb, (q31_t)0x7fece065, (q31_t)0xfce8a06f, - (q31_t)0x7fec43c7, (q31_t)0xfcdc1342, (q31_t)0x7feba4b2, (q31_t)0xfccf8634, - (q31_t)0x7feb0326, (q31_t)0xfcc2f945, (q31_t)0x7fea5f23, (q31_t)0xfcb66c77, - (q31_t)0x7fe9b8a9, (q31_t)0xfca9dfc8, (q31_t)0x7fe90fb9, (q31_t)0xfc9d533b, - (q31_t)0x7fe86452, (q31_t)0xfc90c6cf, (q31_t)0x7fe7b674, (q31_t)0xfc843a85, - (q31_t)0x7fe7061f, (q31_t)0xfc77ae5e, (q31_t)0x7fe65354, (q31_t)0xfc6b2259, - (q31_t)0x7fe59e12, (q31_t)0xfc5e9678, (q31_t)0x7fe4e659, (q31_t)0xfc520aba, - (q31_t)0x7fe42c2a, (q31_t)0xfc457f21, (q31_t)0x7fe36f84, (q31_t)0xfc38f3ac, - (q31_t)0x7fe2b067, (q31_t)0xfc2c685d, (q31_t)0x7fe1eed5, (q31_t)0xfc1fdd34, - (q31_t)0x7fe12acb, (q31_t)0xfc135231, (q31_t)0x7fe0644b, (q31_t)0xfc06c754, - (q31_t)0x7fdf9b55, (q31_t)0xfbfa3c9f, (q31_t)0x7fdecfe8, (q31_t)0xfbedb212, - (q31_t)0x7fde0205, (q31_t)0xfbe127ac, (q31_t)0x7fdd31ac, (q31_t)0xfbd49d70, - (q31_t)0x7fdc5edc, (q31_t)0xfbc8135c, (q31_t)0x7fdb8996, (q31_t)0xfbbb8973, - (q31_t)0x7fdab1d9, (q31_t)0xfbaeffb3, (q31_t)0x7fd9d7a7, (q31_t)0xfba2761e, - (q31_t)0x7fd8fafe, (q31_t)0xfb95ecb4, (q31_t)0x7fd81bdf, (q31_t)0xfb896375, - (q31_t)0x7fd73a4a, (q31_t)0xfb7cda63, (q31_t)0x7fd6563f, (q31_t)0xfb70517d, - (q31_t)0x7fd56fbe, (q31_t)0xfb63c8c4, (q31_t)0x7fd486c7, (q31_t)0xfb574039, - (q31_t)0x7fd39b5a, (q31_t)0xfb4ab7db, (q31_t)0x7fd2ad77, (q31_t)0xfb3e2fac, - (q31_t)0x7fd1bd1e, (q31_t)0xfb31a7ac, (q31_t)0x7fd0ca4f, (q31_t)0xfb251fdc, - (q31_t)0x7fcfd50b, (q31_t)0xfb18983b, (q31_t)0x7fcedd50, (q31_t)0xfb0c10cb, - (q31_t)0x7fcde320, (q31_t)0xfaff898c, (q31_t)0x7fcce67a, (q31_t)0xfaf3027e, - (q31_t)0x7fcbe75e, (q31_t)0xfae67ba2, (q31_t)0x7fcae5cd, (q31_t)0xfad9f4f8, - (q31_t)0x7fc9e1c6, (q31_t)0xfacd6e81, (q31_t)0x7fc8db4a, (q31_t)0xfac0e83d, - (q31_t)0x7fc7d258, (q31_t)0xfab4622d, (q31_t)0x7fc6c6f0, (q31_t)0xfaa7dc52, - (q31_t)0x7fc5b913, (q31_t)0xfa9b56ab, (q31_t)0x7fc4a8c1, (q31_t)0xfa8ed139, - (q31_t)0x7fc395f9, (q31_t)0xfa824bfd, (q31_t)0x7fc280bc, (q31_t)0xfa75c6f8, - (q31_t)0x7fc1690a, (q31_t)0xfa694229, (q31_t)0x7fc04ee3, (q31_t)0xfa5cbd91, - (q31_t)0x7fbf3246, (q31_t)0xfa503930, (q31_t)0x7fbe1334, (q31_t)0xfa43b508, - (q31_t)0x7fbcf1ad, (q31_t)0xfa373119, (q31_t)0x7fbbcdb1, (q31_t)0xfa2aad62, - (q31_t)0x7fbaa740, (q31_t)0xfa1e29e5, (q31_t)0x7fb97e5a, (q31_t)0xfa11a6a3, - (q31_t)0x7fb852ff, (q31_t)0xfa05239a, (q31_t)0x7fb7252f, (q31_t)0xf9f8a0cd, - (q31_t)0x7fb5f4ea, (q31_t)0xf9ec1e3b, (q31_t)0x7fb4c231, (q31_t)0xf9df9be6, - (q31_t)0x7fb38d02, (q31_t)0xf9d319cc, (q31_t)0x7fb2555f, (q31_t)0xf9c697f0, - (q31_t)0x7fb11b48, (q31_t)0xf9ba1651, (q31_t)0x7fafdebb, (q31_t)0xf9ad94f0, - (q31_t)0x7fae9fbb, (q31_t)0xf9a113cd, (q31_t)0x7fad5e45, (q31_t)0xf99492ea, - (q31_t)0x7fac1a5b, (q31_t)0xf9881245, (q31_t)0x7faad3fd, (q31_t)0xf97b91e1, - (q31_t)0x7fa98b2a, (q31_t)0xf96f11bc, (q31_t)0x7fa83fe3, (q31_t)0xf96291d9, - (q31_t)0x7fa6f228, (q31_t)0xf9561237, (q31_t)0x7fa5a1f9, (q31_t)0xf94992d7, - (q31_t)0x7fa44f55, (q31_t)0xf93d13b8, (q31_t)0x7fa2fa3d, (q31_t)0xf93094dd, - (q31_t)0x7fa1a2b2, (q31_t)0xf9241645, (q31_t)0x7fa048b2, (q31_t)0xf91797f0, - (q31_t)0x7f9eec3e, (q31_t)0xf90b19e0, (q31_t)0x7f9d8d56, (q31_t)0xf8fe9c15, - (q31_t)0x7f9c2bfb, (q31_t)0xf8f21e8e, (q31_t)0x7f9ac82c, (q31_t)0xf8e5a14d, - (q31_t)0x7f9961e8, (q31_t)0xf8d92452, (q31_t)0x7f97f932, (q31_t)0xf8cca79e, - (q31_t)0x7f968e07, (q31_t)0xf8c02b31, (q31_t)0x7f952069, (q31_t)0xf8b3af0c, - (q31_t)0x7f93b058, (q31_t)0xf8a7332e, (q31_t)0x7f923dd2, (q31_t)0xf89ab799, - (q31_t)0x7f90c8da, (q31_t)0xf88e3c4d, (q31_t)0x7f8f516e, (q31_t)0xf881c14b, - (q31_t)0x7f8dd78f, (q31_t)0xf8754692, (q31_t)0x7f8c5b3d, (q31_t)0xf868cc24, - (q31_t)0x7f8adc77, (q31_t)0xf85c5201, (q31_t)0x7f895b3e, (q31_t)0xf84fd829, - (q31_t)0x7f87d792, (q31_t)0xf8435e9d, (q31_t)0x7f865174, (q31_t)0xf836e55d, - (q31_t)0x7f84c8e2, (q31_t)0xf82a6c6a, (q31_t)0x7f833ddd, (q31_t)0xf81df3c5, - (q31_t)0x7f81b065, (q31_t)0xf8117b6d, (q31_t)0x7f80207b, (q31_t)0xf8050364, - (q31_t)0x7f7e8e1e, (q31_t)0xf7f88ba9, (q31_t)0x7f7cf94e, (q31_t)0xf7ec143e, - (q31_t)0x7f7b620c, (q31_t)0xf7df9d22, (q31_t)0x7f79c857, (q31_t)0xf7d32657, - (q31_t)0x7f782c30, (q31_t)0xf7c6afdc, (q31_t)0x7f768d96, (q31_t)0xf7ba39b3, - (q31_t)0x7f74ec8a, (q31_t)0xf7adc3db, (q31_t)0x7f73490b, (q31_t)0xf7a14e55, - (q31_t)0x7f71a31b, (q31_t)0xf794d922, (q31_t)0x7f6ffab8, (q31_t)0xf7886442, - (q31_t)0x7f6e4fe3, (q31_t)0xf77befb5, (q31_t)0x7f6ca29c, (q31_t)0xf76f7b7d, - (q31_t)0x7f6af2e3, (q31_t)0xf7630799, (q31_t)0x7f6940b8, (q31_t)0xf756940a, - (q31_t)0x7f678c1c, (q31_t)0xf74a20d0, (q31_t)0x7f65d50d, (q31_t)0xf73daded, - (q31_t)0x7f641b8d, (q31_t)0xf7313b60, (q31_t)0x7f625f9b, (q31_t)0xf724c92a, - (q31_t)0x7f60a138, (q31_t)0xf718574b, (q31_t)0x7f5ee063, (q31_t)0xf70be5c4, - (q31_t)0x7f5d1d1d, (q31_t)0xf6ff7496, (q31_t)0x7f5b5765, (q31_t)0xf6f303c0, - (q31_t)0x7f598f3c, (q31_t)0xf6e69344, (q31_t)0x7f57c4a2, (q31_t)0xf6da2321, - (q31_t)0x7f55f796, (q31_t)0xf6cdb359, (q31_t)0x7f54281a, (q31_t)0xf6c143ec, - (q31_t)0x7f52562c, (q31_t)0xf6b4d4d9, (q31_t)0x7f5081cd, (q31_t)0xf6a86623, - (q31_t)0x7f4eaafe, (q31_t)0xf69bf7c9, (q31_t)0x7f4cd1be, (q31_t)0xf68f89cb, - (q31_t)0x7f4af60d, (q31_t)0xf6831c2b, (q31_t)0x7f4917eb, (q31_t)0xf676aee8, - (q31_t)0x7f473759, (q31_t)0xf66a4203, (q31_t)0x7f455456, (q31_t)0xf65dd57d, - (q31_t)0x7f436ee3, (q31_t)0xf6516956, (q31_t)0x7f4186ff, (q31_t)0xf644fd8f, - (q31_t)0x7f3f9cab, (q31_t)0xf6389228, (q31_t)0x7f3dafe7, (q31_t)0xf62c2721, - (q31_t)0x7f3bc0b3, (q31_t)0xf61fbc7b, (q31_t)0x7f39cf0e, (q31_t)0xf6135237, - (q31_t)0x7f37dafa, (q31_t)0xf606e854, (q31_t)0x7f35e476, (q31_t)0xf5fa7ed4, - (q31_t)0x7f33eb81, (q31_t)0xf5ee15b7, (q31_t)0x7f31f01d, (q31_t)0xf5e1acfd, - (q31_t)0x7f2ff24a, (q31_t)0xf5d544a7, (q31_t)0x7f2df206, (q31_t)0xf5c8dcb6, - (q31_t)0x7f2bef53, (q31_t)0xf5bc7529, (q31_t)0x7f29ea31, (q31_t)0xf5b00e02, - (q31_t)0x7f27e29f, (q31_t)0xf5a3a740, (q31_t)0x7f25d89e, (q31_t)0xf59740e5, - (q31_t)0x7f23cc2e, (q31_t)0xf58adaf0, (q31_t)0x7f21bd4e, (q31_t)0xf57e7563, - (q31_t)0x7f1fabff, (q31_t)0xf572103d, (q31_t)0x7f1d9842, (q31_t)0xf565ab80, - (q31_t)0x7f1b8215, (q31_t)0xf559472b, (q31_t)0x7f19697a, (q31_t)0xf54ce33f, - (q31_t)0x7f174e70, (q31_t)0xf5407fbd, (q31_t)0x7f1530f7, (q31_t)0xf5341ca5, - (q31_t)0x7f13110f, (q31_t)0xf527b9f7, (q31_t)0x7f10eeb9, (q31_t)0xf51b57b5, - (q31_t)0x7f0ec9f5, (q31_t)0xf50ef5de, (q31_t)0x7f0ca2c2, (q31_t)0xf5029473, - (q31_t)0x7f0a7921, (q31_t)0xf4f63374, (q31_t)0x7f084d12, (q31_t)0xf4e9d2e3, - (q31_t)0x7f061e95, (q31_t)0xf4dd72be, (q31_t)0x7f03eda9, (q31_t)0xf4d11308, - (q31_t)0x7f01ba50, (q31_t)0xf4c4b3c0, (q31_t)0x7eff8489, (q31_t)0xf4b854e7, - (q31_t)0x7efd4c54, (q31_t)0xf4abf67e, (q31_t)0x7efb11b1, (q31_t)0xf49f9884, - (q31_t)0x7ef8d4a1, (q31_t)0xf4933afa, (q31_t)0x7ef69523, (q31_t)0xf486dde1, - (q31_t)0x7ef45338, (q31_t)0xf47a8139, (q31_t)0x7ef20ee0, (q31_t)0xf46e2504, - (q31_t)0x7eefc81a, (q31_t)0xf461c940, (q31_t)0x7eed7ee7, (q31_t)0xf4556def, - (q31_t)0x7eeb3347, (q31_t)0xf4491311, (q31_t)0x7ee8e53a, (q31_t)0xf43cb8a7, - (q31_t)0x7ee694c1, (q31_t)0xf4305eb0, (q31_t)0x7ee441da, (q31_t)0xf424052f, - (q31_t)0x7ee1ec87, (q31_t)0xf417ac22, (q31_t)0x7edf94c7, (q31_t)0xf40b538b, - (q31_t)0x7edd3a9a, (q31_t)0xf3fefb6a, (q31_t)0x7edade01, (q31_t)0xf3f2a3bf, - (q31_t)0x7ed87efc, (q31_t)0xf3e64c8c, (q31_t)0x7ed61d8a, (q31_t)0xf3d9f5cf, - (q31_t)0x7ed3b9ad, (q31_t)0xf3cd9f8b, (q31_t)0x7ed15363, (q31_t)0xf3c149bf, - (q31_t)0x7eceeaad, (q31_t)0xf3b4f46c, (q31_t)0x7ecc7f8b, (q31_t)0xf3a89f92, - (q31_t)0x7eca11fe, (q31_t)0xf39c4b32, (q31_t)0x7ec7a205, (q31_t)0xf38ff74d, - (q31_t)0x7ec52fa0, (q31_t)0xf383a3e2, (q31_t)0x7ec2bad0, (q31_t)0xf37750f2, - (q31_t)0x7ec04394, (q31_t)0xf36afe7e, (q31_t)0x7ebdc9ed, (q31_t)0xf35eac86, - (q31_t)0x7ebb4ddb, (q31_t)0xf3525b0b, (q31_t)0x7eb8cf5d, (q31_t)0xf3460a0d, - (q31_t)0x7eb64e75, (q31_t)0xf339b98d, (q31_t)0x7eb3cb21, (q31_t)0xf32d698a, - (q31_t)0x7eb14563, (q31_t)0xf3211a07, (q31_t)0x7eaebd3a, (q31_t)0xf314cb02, - (q31_t)0x7eac32a6, (q31_t)0xf3087c7d, (q31_t)0x7ea9a5a8, (q31_t)0xf2fc2e77, - (q31_t)0x7ea7163f, (q31_t)0xf2efe0f2, (q31_t)0x7ea4846c, (q31_t)0xf2e393ef, - (q31_t)0x7ea1f02f, (q31_t)0xf2d7476c, (q31_t)0x7e9f5988, (q31_t)0xf2cafb6b, - (q31_t)0x7e9cc076, (q31_t)0xf2beafed, (q31_t)0x7e9a24fb, (q31_t)0xf2b264f2, - (q31_t)0x7e978715, (q31_t)0xf2a61a7a, (q31_t)0x7e94e6c6, (q31_t)0xf299d085, - (q31_t)0x7e92440d, (q31_t)0xf28d8715, (q31_t)0x7e8f9eeb, (q31_t)0xf2813e2a, - (q31_t)0x7e8cf75f, (q31_t)0xf274f5c3, (q31_t)0x7e8a4d6a, (q31_t)0xf268ade3, - (q31_t)0x7e87a10c, (q31_t)0xf25c6688, (q31_t)0x7e84f245, (q31_t)0xf2501fb5, - (q31_t)0x7e824114, (q31_t)0xf243d968, (q31_t)0x7e7f8d7b, (q31_t)0xf23793a3, - (q31_t)0x7e7cd778, (q31_t)0xf22b4e66, (q31_t)0x7e7a1f0d, (q31_t)0xf21f09b1, - (q31_t)0x7e77643a, (q31_t)0xf212c585, (q31_t)0x7e74a6fd, (q31_t)0xf20681e3, - (q31_t)0x7e71e759, (q31_t)0xf1fa3ecb, (q31_t)0x7e6f254c, (q31_t)0xf1edfc3d, - (q31_t)0x7e6c60d7, (q31_t)0xf1e1ba3a, (q31_t)0x7e6999fa, (q31_t)0xf1d578c2, - (q31_t)0x7e66d0b4, (q31_t)0xf1c937d6, (q31_t)0x7e640507, (q31_t)0xf1bcf777, - (q31_t)0x7e6136f3, (q31_t)0xf1b0b7a4, (q31_t)0x7e5e6676, (q31_t)0xf1a4785e, - (q31_t)0x7e5b9392, (q31_t)0xf19839a6, (q31_t)0x7e58be47, (q31_t)0xf18bfb7d, - (q31_t)0x7e55e694, (q31_t)0xf17fbde2, (q31_t)0x7e530c7a, (q31_t)0xf17380d6, - (q31_t)0x7e502ff9, (q31_t)0xf1674459, (q31_t)0x7e4d5110, (q31_t)0xf15b086d, - (q31_t)0x7e4a6fc1, (q31_t)0xf14ecd11, (q31_t)0x7e478c0b, (q31_t)0xf1429247, - (q31_t)0x7e44a5ef, (q31_t)0xf136580d, (q31_t)0x7e41bd6c, (q31_t)0xf12a1e66, - (q31_t)0x7e3ed282, (q31_t)0xf11de551, (q31_t)0x7e3be532, (q31_t)0xf111accf, - (q31_t)0x7e38f57c, (q31_t)0xf10574e0, (q31_t)0x7e360360, (q31_t)0xf0f93d86, - (q31_t)0x7e330ede, (q31_t)0xf0ed06bf, (q31_t)0x7e3017f6, (q31_t)0xf0e0d08d, - (q31_t)0x7e2d1ea8, (q31_t)0xf0d49af1, (q31_t)0x7e2a22f4, (q31_t)0xf0c865ea, - (q31_t)0x7e2724db, (q31_t)0xf0bc317a, (q31_t)0x7e24245d, (q31_t)0xf0affda0, - (q31_t)0x7e212179, (q31_t)0xf0a3ca5d, (q31_t)0x7e1e1c30, (q31_t)0xf09797b2, - (q31_t)0x7e1b1482, (q31_t)0xf08b659f, (q31_t)0x7e180a6f, (q31_t)0xf07f3424, - (q31_t)0x7e14fdf7, (q31_t)0xf0730342, (q31_t)0x7e11ef1b, (q31_t)0xf066d2fa, - (q31_t)0x7e0eddd9, (q31_t)0xf05aa34c, (q31_t)0x7e0bca34, (q31_t)0xf04e7438, - (q31_t)0x7e08b42a, (q31_t)0xf04245c0, (q31_t)0x7e059bbb, (q31_t)0xf03617e2, - (q31_t)0x7e0280e9, (q31_t)0xf029eaa1, (q31_t)0x7dff63b2, (q31_t)0xf01dbdfb, - (q31_t)0x7dfc4418, (q31_t)0xf01191f3, (q31_t)0x7df9221a, (q31_t)0xf0056687, - (q31_t)0x7df5fdb8, (q31_t)0xeff93bba, (q31_t)0x7df2d6f3, (q31_t)0xefed118a, - (q31_t)0x7defadca, (q31_t)0xefe0e7f9, (q31_t)0x7dec823e, (q31_t)0xefd4bf08, - (q31_t)0x7de9544f, (q31_t)0xefc896b5, (q31_t)0x7de623fd, (q31_t)0xefbc6f03, - (q31_t)0x7de2f148, (q31_t)0xefb047f2, (q31_t)0x7ddfbc30, (q31_t)0xefa42181, - (q31_t)0x7ddc84b5, (q31_t)0xef97fbb2, (q31_t)0x7dd94ad8, (q31_t)0xef8bd685, - (q31_t)0x7dd60e99, (q31_t)0xef7fb1fa, (q31_t)0x7dd2cff7, (q31_t)0xef738e12, - (q31_t)0x7dcf8ef3, (q31_t)0xef676ace, (q31_t)0x7dcc4b8d, (q31_t)0xef5b482d, - (q31_t)0x7dc905c5, (q31_t)0xef4f2630, (q31_t)0x7dc5bd9b, (q31_t)0xef4304d8, - (q31_t)0x7dc2730f, (q31_t)0xef36e426, (q31_t)0x7dbf2622, (q31_t)0xef2ac419, - (q31_t)0x7dbbd6d4, (q31_t)0xef1ea4b2, (q31_t)0x7db88524, (q31_t)0xef1285f2, - (q31_t)0x7db53113, (q31_t)0xef0667d9, (q31_t)0x7db1daa2, (q31_t)0xeefa4a67, - (q31_t)0x7dae81cf, (q31_t)0xeeee2d9d, (q31_t)0x7dab269b, (q31_t)0xeee2117c, - (q31_t)0x7da7c907, (q31_t)0xeed5f604, (q31_t)0x7da46912, (q31_t)0xeec9db35, - (q31_t)0x7da106bd, (q31_t)0xeebdc110, (q31_t)0x7d9da208, (q31_t)0xeeb1a796, - (q31_t)0x7d9a3af2, (q31_t)0xeea58ec6, (q31_t)0x7d96d17d, (q31_t)0xee9976a1, - (q31_t)0x7d9365a8, (q31_t)0xee8d5f29, (q31_t)0x7d8ff772, (q31_t)0xee81485c, - (q31_t)0x7d8c86de, (q31_t)0xee75323c, (q31_t)0x7d8913ea, (q31_t)0xee691cc9, - (q31_t)0x7d859e96, (q31_t)0xee5d0804, (q31_t)0x7d8226e4, (q31_t)0xee50f3ed, - (q31_t)0x7d7eacd2, (q31_t)0xee44e084, (q31_t)0x7d7b3061, (q31_t)0xee38cdcb, - (q31_t)0x7d77b192, (q31_t)0xee2cbbc1, (q31_t)0x7d743064, (q31_t)0xee20aa67, - (q31_t)0x7d70acd7, (q31_t)0xee1499bd, (q31_t)0x7d6d26ec, (q31_t)0xee0889c4, - (q31_t)0x7d699ea3, (q31_t)0xedfc7a7c, (q31_t)0x7d6613fb, (q31_t)0xedf06be6, - (q31_t)0x7d6286f6, (q31_t)0xede45e03, (q31_t)0x7d5ef793, (q31_t)0xedd850d2, - (q31_t)0x7d5b65d2, (q31_t)0xedcc4454, (q31_t)0x7d57d1b3, (q31_t)0xedc0388a, - (q31_t)0x7d543b37, (q31_t)0xedb42d74, (q31_t)0x7d50a25e, (q31_t)0xeda82313, - (q31_t)0x7d4d0728, (q31_t)0xed9c1967, (q31_t)0x7d496994, (q31_t)0xed901070, - (q31_t)0x7d45c9a4, (q31_t)0xed84082f, (q31_t)0x7d422757, (q31_t)0xed7800a5, - (q31_t)0x7d3e82ae, (q31_t)0xed6bf9d1, (q31_t)0x7d3adba7, (q31_t)0xed5ff3b5, - (q31_t)0x7d373245, (q31_t)0xed53ee51, (q31_t)0x7d338687, (q31_t)0xed47e9a5, - (q31_t)0x7d2fd86c, (q31_t)0xed3be5b1, (q31_t)0x7d2c27f6, (q31_t)0xed2fe277, - (q31_t)0x7d287523, (q31_t)0xed23dff7, (q31_t)0x7d24bff6, (q31_t)0xed17de31, - (q31_t)0x7d21086c, (q31_t)0xed0bdd25, (q31_t)0x7d1d4e88, (q31_t)0xecffdcd4, - (q31_t)0x7d199248, (q31_t)0xecf3dd3f, (q31_t)0x7d15d3ad, (q31_t)0xece7de66, - (q31_t)0x7d1212b7, (q31_t)0xecdbe04a, (q31_t)0x7d0e4f67, (q31_t)0xeccfe2ea, - (q31_t)0x7d0a89bc, (q31_t)0xecc3e648, (q31_t)0x7d06c1b6, (q31_t)0xecb7ea63, - (q31_t)0x7d02f757, (q31_t)0xecabef3d, (q31_t)0x7cff2a9d, (q31_t)0xec9ff4d6, - (q31_t)0x7cfb5b89, (q31_t)0xec93fb2e, (q31_t)0x7cf78a1b, (q31_t)0xec880245, - (q31_t)0x7cf3b653, (q31_t)0xec7c0a1d, (q31_t)0x7cefe032, (q31_t)0xec7012b5, - (q31_t)0x7cec07b8, (q31_t)0xec641c0e, (q31_t)0x7ce82ce4, (q31_t)0xec582629, - (q31_t)0x7ce44fb7, (q31_t)0xec4c3106, (q31_t)0x7ce07031, (q31_t)0xec403ca5, - (q31_t)0x7cdc8e52, (q31_t)0xec344908, (q31_t)0x7cd8aa1b, (q31_t)0xec28562d, - (q31_t)0x7cd4c38b, (q31_t)0xec1c6417, (q31_t)0x7cd0daa2, (q31_t)0xec1072c4, - (q31_t)0x7cccef62, (q31_t)0xec048237, (q31_t)0x7cc901c9, (q31_t)0xebf8926f, - (q31_t)0x7cc511d9, (q31_t)0xebeca36c, (q31_t)0x7cc11f90, (q31_t)0xebe0b52f, - (q31_t)0x7cbd2af0, (q31_t)0xebd4c7ba, (q31_t)0x7cb933f9, (q31_t)0xebc8db0b, - (q31_t)0x7cb53aaa, (q31_t)0xebbcef23, (q31_t)0x7cb13f04, (q31_t)0xebb10404, - (q31_t)0x7cad4107, (q31_t)0xeba519ad, (q31_t)0x7ca940b3, (q31_t)0xeb99301f, - (q31_t)0x7ca53e09, (q31_t)0xeb8d475b, (q31_t)0x7ca13908, (q31_t)0xeb815f60, - (q31_t)0x7c9d31b0, (q31_t)0xeb75782f, (q31_t)0x7c992803, (q31_t)0xeb6991ca, - (q31_t)0x7c951bff, (q31_t)0xeb5dac2f, (q31_t)0x7c910da5, (q31_t)0xeb51c760, - (q31_t)0x7c8cfcf6, (q31_t)0xeb45e35d, (q31_t)0x7c88e9f1, (q31_t)0xeb3a0027, - (q31_t)0x7c84d496, (q31_t)0xeb2e1dbe, (q31_t)0x7c80bce7, (q31_t)0xeb223c22, - (q31_t)0x7c7ca2e2, (q31_t)0xeb165b54, (q31_t)0x7c788688, (q31_t)0xeb0a7b54, - (q31_t)0x7c7467d9, (q31_t)0xeafe9c24, (q31_t)0x7c7046d6, (q31_t)0xeaf2bdc3, - (q31_t)0x7c6c237e, (q31_t)0xeae6e031, (q31_t)0x7c67fdd1, (q31_t)0xeadb0370, - (q31_t)0x7c63d5d1, (q31_t)0xeacf277f, (q31_t)0x7c5fab7c, (q31_t)0xeac34c60, - (q31_t)0x7c5b7ed4, (q31_t)0xeab77212, (q31_t)0x7c574fd8, (q31_t)0xeaab9896, - (q31_t)0x7c531e88, (q31_t)0xea9fbfed, (q31_t)0x7c4eeae5, (q31_t)0xea93e817, - (q31_t)0x7c4ab4ef, (q31_t)0xea881114, (q31_t)0x7c467ca6, (q31_t)0xea7c3ae5, - (q31_t)0x7c42420a, (q31_t)0xea70658a, (q31_t)0x7c3e051b, (q31_t)0xea649105, - (q31_t)0x7c39c5da, (q31_t)0xea58bd54, (q31_t)0x7c358446, (q31_t)0xea4cea79, - (q31_t)0x7c314060, (q31_t)0xea411874, (q31_t)0x7c2cfa28, (q31_t)0xea354746, - (q31_t)0x7c28b19e, (q31_t)0xea2976ef, (q31_t)0x7c2466c2, (q31_t)0xea1da770, - (q31_t)0x7c201994, (q31_t)0xea11d8c8, (q31_t)0x7c1bca16, (q31_t)0xea060af9, - (q31_t)0x7c177845, (q31_t)0xe9fa3e03, (q31_t)0x7c132424, (q31_t)0xe9ee71e6, - (q31_t)0x7c0ecdb2, (q31_t)0xe9e2a6a3, (q31_t)0x7c0a74f0, (q31_t)0xe9d6dc3b, - (q31_t)0x7c0619dc, (q31_t)0xe9cb12ad, (q31_t)0x7c01bc78, (q31_t)0xe9bf49fa, - (q31_t)0x7bfd5cc4, (q31_t)0xe9b38223, (q31_t)0x7bf8fac0, (q31_t)0xe9a7bb28, - (q31_t)0x7bf4966c, (q31_t)0xe99bf509, (q31_t)0x7bf02fc9, (q31_t)0xe9902fc7, - (q31_t)0x7bebc6d5, (q31_t)0xe9846b63, (q31_t)0x7be75b93, (q31_t)0xe978a7dd, - (q31_t)0x7be2ee01, (q31_t)0xe96ce535, (q31_t)0x7bde7e20, (q31_t)0xe961236c, - (q31_t)0x7bda0bf0, (q31_t)0xe9556282, (q31_t)0x7bd59771, (q31_t)0xe949a278, - (q31_t)0x7bd120a4, (q31_t)0xe93de34e, (q31_t)0x7bcca789, (q31_t)0xe9322505, - (q31_t)0x7bc82c1f, (q31_t)0xe926679c, (q31_t)0x7bc3ae67, (q31_t)0xe91aab16, - (q31_t)0x7bbf2e62, (q31_t)0xe90eef71, (q31_t)0x7bbaac0e, (q31_t)0xe90334af, - (q31_t)0x7bb6276e, (q31_t)0xe8f77acf, (q31_t)0x7bb1a080, (q31_t)0xe8ebc1d3, - (q31_t)0x7bad1744, (q31_t)0xe8e009ba, (q31_t)0x7ba88bbc, (q31_t)0xe8d45286, - (q31_t)0x7ba3fde7, (q31_t)0xe8c89c37, (q31_t)0x7b9f6dc5, (q31_t)0xe8bce6cd, - (q31_t)0x7b9adb57, (q31_t)0xe8b13248, (q31_t)0x7b96469d, (q31_t)0xe8a57ea9, - (q31_t)0x7b91af97, (q31_t)0xe899cbf1, (q31_t)0x7b8d1644, (q31_t)0xe88e1a20, - (q31_t)0x7b887aa6, (q31_t)0xe8826936, (q31_t)0x7b83dcbc, (q31_t)0xe876b934, - (q31_t)0x7b7f3c87, (q31_t)0xe86b0a1a, (q31_t)0x7b7a9a07, (q31_t)0xe85f5be9, - (q31_t)0x7b75f53c, (q31_t)0xe853aea1, (q31_t)0x7b714e25, (q31_t)0xe8480243, - (q31_t)0x7b6ca4c4, (q31_t)0xe83c56cf, (q31_t)0x7b67f919, (q31_t)0xe830ac45, - (q31_t)0x7b634b23, (q31_t)0xe82502a7, (q31_t)0x7b5e9ae4, (q31_t)0xe81959f4, - (q31_t)0x7b59e85a, (q31_t)0xe80db22d, (q31_t)0x7b553386, (q31_t)0xe8020b52, - (q31_t)0x7b507c69, (q31_t)0xe7f66564, (q31_t)0x7b4bc303, (q31_t)0xe7eac063, - (q31_t)0x7b470753, (q31_t)0xe7df1c50, (q31_t)0x7b42495a, (q31_t)0xe7d3792b, - (q31_t)0x7b3d8918, (q31_t)0xe7c7d6f4, (q31_t)0x7b38c68e, (q31_t)0xe7bc35ad, - (q31_t)0x7b3401bb, (q31_t)0xe7b09555, (q31_t)0x7b2f3aa0, (q31_t)0xe7a4f5ed, - (q31_t)0x7b2a713d, (q31_t)0xe7995776, (q31_t)0x7b25a591, (q31_t)0xe78db9ef, - (q31_t)0x7b20d79e, (q31_t)0xe7821d59, (q31_t)0x7b1c0764, (q31_t)0xe77681b6, - (q31_t)0x7b1734e2, (q31_t)0xe76ae704, (q31_t)0x7b126019, (q31_t)0xe75f4d45, - (q31_t)0x7b0d8909, (q31_t)0xe753b479, (q31_t)0x7b08afb2, (q31_t)0xe7481ca1, - (q31_t)0x7b03d414, (q31_t)0xe73c85bc, (q31_t)0x7afef630, (q31_t)0xe730efcc, - (q31_t)0x7afa1605, (q31_t)0xe7255ad1, (q31_t)0x7af53395, (q31_t)0xe719c6cb, - (q31_t)0x7af04edf, (q31_t)0xe70e33bb, (q31_t)0x7aeb67e3, (q31_t)0xe702a1a1, - (q31_t)0x7ae67ea1, (q31_t)0xe6f7107e, (q31_t)0x7ae1931a, (q31_t)0xe6eb8052, - (q31_t)0x7adca54e, (q31_t)0xe6dff11d, (q31_t)0x7ad7b53d, (q31_t)0xe6d462e1, - (q31_t)0x7ad2c2e8, (q31_t)0xe6c8d59c, (q31_t)0x7acdce4d, (q31_t)0xe6bd4951, - (q31_t)0x7ac8d76f, (q31_t)0xe6b1bdff, (q31_t)0x7ac3de4c, (q31_t)0xe6a633a6, - (q31_t)0x7abee2e5, (q31_t)0xe69aaa48, (q31_t)0x7ab9e53a, (q31_t)0xe68f21e5, - (q31_t)0x7ab4e54c, (q31_t)0xe6839a7c, (q31_t)0x7aafe31b, (q31_t)0xe6781410, - (q31_t)0x7aaadea6, (q31_t)0xe66c8e9f, (q31_t)0x7aa5d7ee, (q31_t)0xe6610a2a, - (q31_t)0x7aa0cef3, (q31_t)0xe65586b3, (q31_t)0x7a9bc3b6, (q31_t)0xe64a0438, - (q31_t)0x7a96b636, (q31_t)0xe63e82bc, (q31_t)0x7a91a674, (q31_t)0xe633023e, - (q31_t)0x7a8c9470, (q31_t)0xe62782be, (q31_t)0x7a87802a, (q31_t)0xe61c043d, - (q31_t)0x7a8269a3, (q31_t)0xe61086bc, (q31_t)0x7a7d50da, (q31_t)0xe6050a3b, - (q31_t)0x7a7835cf, (q31_t)0xe5f98ebb, (q31_t)0x7a731884, (q31_t)0xe5ee143b, - (q31_t)0x7a6df8f8, (q31_t)0xe5e29abc, (q31_t)0x7a68d72b, (q31_t)0xe5d72240, - (q31_t)0x7a63b31d, (q31_t)0xe5cbaac5, (q31_t)0x7a5e8cd0, (q31_t)0xe5c0344d, - (q31_t)0x7a596442, (q31_t)0xe5b4bed8, (q31_t)0x7a543974, (q31_t)0xe5a94a67, - (q31_t)0x7a4f0c67, (q31_t)0xe59dd6f9, (q31_t)0x7a49dd1a, (q31_t)0xe5926490, - (q31_t)0x7a44ab8e, (q31_t)0xe586f32c, (q31_t)0x7a3f77c3, (q31_t)0xe57b82cd, - (q31_t)0x7a3a41b9, (q31_t)0xe5701374, (q31_t)0x7a350970, (q31_t)0xe564a521, - (q31_t)0x7a2fcee8, (q31_t)0xe55937d5, (q31_t)0x7a2a9223, (q31_t)0xe54dcb8f, - (q31_t)0x7a25531f, (q31_t)0xe5426051, (q31_t)0x7a2011de, (q31_t)0xe536f61b, - (q31_t)0x7a1ace5f, (q31_t)0xe52b8cee, (q31_t)0x7a1588a2, (q31_t)0xe52024c9, - (q31_t)0x7a1040a8, (q31_t)0xe514bdad, (q31_t)0x7a0af671, (q31_t)0xe509579b, - (q31_t)0x7a05a9fd, (q31_t)0xe4fdf294, (q31_t)0x7a005b4d, (q31_t)0xe4f28e96, - (q31_t)0x79fb0a60, (q31_t)0xe4e72ba4, (q31_t)0x79f5b737, (q31_t)0xe4dbc9bd, - (q31_t)0x79f061d2, (q31_t)0xe4d068e2, (q31_t)0x79eb0a31, (q31_t)0xe4c50914, - (q31_t)0x79e5b054, (q31_t)0xe4b9aa52, (q31_t)0x79e0543c, (q31_t)0xe4ae4c9d, - (q31_t)0x79daf5e8, (q31_t)0xe4a2eff6, (q31_t)0x79d5955a, (q31_t)0xe497945d, - (q31_t)0x79d03291, (q31_t)0xe48c39d3, (q31_t)0x79cacd8d, (q31_t)0xe480e057, - (q31_t)0x79c5664f, (q31_t)0xe47587eb, (q31_t)0x79bffcd7, (q31_t)0xe46a308f, - (q31_t)0x79ba9125, (q31_t)0xe45eda43, (q31_t)0x79b52339, (q31_t)0xe4538507, - (q31_t)0x79afb313, (q31_t)0xe44830dd, (q31_t)0x79aa40b4, (q31_t)0xe43cddc4, - (q31_t)0x79a4cc1c, (q31_t)0xe4318bbe, (q31_t)0x799f554b, (q31_t)0xe4263ac9, - (q31_t)0x7999dc42, (q31_t)0xe41aeae8, (q31_t)0x799460ff, (q31_t)0xe40f9c1a, - (q31_t)0x798ee385, (q31_t)0xe4044e60, (q31_t)0x798963d2, (q31_t)0xe3f901ba, - (q31_t)0x7983e1e8, (q31_t)0xe3edb628, (q31_t)0x797e5dc6, (q31_t)0xe3e26bac, - (q31_t)0x7978d76c, (q31_t)0xe3d72245, (q31_t)0x79734edc, (q31_t)0xe3cbd9f4, - (q31_t)0x796dc414, (q31_t)0xe3c092b9, (q31_t)0x79683715, (q31_t)0xe3b54c95, - (q31_t)0x7962a7e0, (q31_t)0xe3aa0788, (q31_t)0x795d1675, (q31_t)0xe39ec393, - (q31_t)0x795782d3, (q31_t)0xe39380b6, (q31_t)0x7951ecfc, (q31_t)0xe3883ef2, - (q31_t)0x794c54ee, (q31_t)0xe37cfe47, (q31_t)0x7946baac, (q31_t)0xe371beb5, - (q31_t)0x79411e33, (q31_t)0xe366803c, (q31_t)0x793b7f86, (q31_t)0xe35b42df, - (q31_t)0x7935dea4, (q31_t)0xe350069b, (q31_t)0x79303b8e, (q31_t)0xe344cb73, - (q31_t)0x792a9642, (q31_t)0xe3399167, (q31_t)0x7924eec3, (q31_t)0xe32e5876, - (q31_t)0x791f4510, (q31_t)0xe32320a2, (q31_t)0x79199929, (q31_t)0xe317e9eb, - (q31_t)0x7913eb0e, (q31_t)0xe30cb451, (q31_t)0x790e3ac0, (q31_t)0xe3017fd5, - (q31_t)0x7908883f, (q31_t)0xe2f64c77, (q31_t)0x7902d38b, (q31_t)0xe2eb1a37, - (q31_t)0x78fd1ca4, (q31_t)0xe2dfe917, (q31_t)0x78f7638b, (q31_t)0xe2d4b916, - (q31_t)0x78f1a840, (q31_t)0xe2c98a35, (q31_t)0x78ebeac2, (q31_t)0xe2be5c74, - (q31_t)0x78e62b13, (q31_t)0xe2b32fd4, (q31_t)0x78e06932, (q31_t)0xe2a80456, - (q31_t)0x78daa520, (q31_t)0xe29cd9f8, (q31_t)0x78d4dedd, (q31_t)0xe291b0bd, - (q31_t)0x78cf1669, (q31_t)0xe28688a4, (q31_t)0x78c94bc4, (q31_t)0xe27b61af, - (q31_t)0x78c37eef, (q31_t)0xe2703bdc, (q31_t)0x78bdafea, (q31_t)0xe265172e, - (q31_t)0x78b7deb4, (q31_t)0xe259f3a3, (q31_t)0x78b20b4f, (q31_t)0xe24ed13d, - (q31_t)0x78ac35ba, (q31_t)0xe243affc, (q31_t)0x78a65df6, (q31_t)0xe2388fe1, - (q31_t)0x78a08402, (q31_t)0xe22d70eb, (q31_t)0x789aa7e0, (q31_t)0xe222531c, - (q31_t)0x7894c98f, (q31_t)0xe2173674, (q31_t)0x788ee910, (q31_t)0xe20c1af3, - (q31_t)0x78890663, (q31_t)0xe2010099, (q31_t)0x78832187, (q31_t)0xe1f5e768, - (q31_t)0x787d3a7e, (q31_t)0xe1eacf5f, (q31_t)0x78775147, (q31_t)0xe1dfb87f, - (q31_t)0x787165e3, (q31_t)0xe1d4a2c8, (q31_t)0x786b7852, (q31_t)0xe1c98e3b, - (q31_t)0x78658894, (q31_t)0xe1be7ad8, (q31_t)0x785f96a9, (q31_t)0xe1b368a0, - (q31_t)0x7859a292, (q31_t)0xe1a85793, (q31_t)0x7853ac4f, (q31_t)0xe19d47b1, - (q31_t)0x784db3e0, (q31_t)0xe19238fb, (q31_t)0x7847b946, (q31_t)0xe1872b72, - (q31_t)0x7841bc7f, (q31_t)0xe17c1f15, (q31_t)0x783bbd8e, (q31_t)0xe17113e5, - (q31_t)0x7835bc71, (q31_t)0xe16609e3, (q31_t)0x782fb92a, (q31_t)0xe15b0110, - (q31_t)0x7829b3b9, (q31_t)0xe14ff96a, (q31_t)0x7823ac1d, (q31_t)0xe144f2f3, - (q31_t)0x781da256, (q31_t)0xe139edac, (q31_t)0x78179666, (q31_t)0xe12ee995, - (q31_t)0x7811884d, (q31_t)0xe123e6ad, (q31_t)0x780b780a, (q31_t)0xe118e4f6, - (q31_t)0x7805659e, (q31_t)0xe10de470, (q31_t)0x77ff5109, (q31_t)0xe102e51c, - (q31_t)0x77f93a4b, (q31_t)0xe0f7e6f9, (q31_t)0x77f32165, (q31_t)0xe0ecea09, - (q31_t)0x77ed0657, (q31_t)0xe0e1ee4b, (q31_t)0x77e6e921, (q31_t)0xe0d6f3c1, - (q31_t)0x77e0c9c3, (q31_t)0xe0cbfa6a, (q31_t)0x77daa83d, (q31_t)0xe0c10247, - (q31_t)0x77d48490, (q31_t)0xe0b60b58, (q31_t)0x77ce5ebd, (q31_t)0xe0ab159e, - (q31_t)0x77c836c2, (q31_t)0xe0a0211a, (q31_t)0x77c20ca1, (q31_t)0xe0952dcb, - (q31_t)0x77bbe05a, (q31_t)0xe08a3bb2, (q31_t)0x77b5b1ec, (q31_t)0xe07f4acf, - (q31_t)0x77af8159, (q31_t)0xe0745b24, (q31_t)0x77a94ea0, (q31_t)0xe0696cb0, - (q31_t)0x77a319c2, (q31_t)0xe05e7f74, (q31_t)0x779ce2be, (q31_t)0xe053936f, - (q31_t)0x7796a996, (q31_t)0xe048a8a4, (q31_t)0x77906e49, (q31_t)0xe03dbf11, - (q31_t)0x778a30d8, (q31_t)0xe032d6b8, (q31_t)0x7783f143, (q31_t)0xe027ef99, - (q31_t)0x777daf89, (q31_t)0xe01d09b4, (q31_t)0x77776bac, (q31_t)0xe012250a, - (q31_t)0x777125ac, (q31_t)0xe007419b, (q31_t)0x776add88, (q31_t)0xdffc5f67, - (q31_t)0x77649341, (q31_t)0xdff17e70, (q31_t)0x775e46d8, (q31_t)0xdfe69eb4, - (q31_t)0x7757f84c, (q31_t)0xdfdbc036, (q31_t)0x7751a79e, (q31_t)0xdfd0e2f5, - (q31_t)0x774b54ce, (q31_t)0xdfc606f1, (q31_t)0x7744ffdd, (q31_t)0xdfbb2c2c, - (q31_t)0x773ea8ca, (q31_t)0xdfb052a5, (q31_t)0x77384f95, (q31_t)0xdfa57a5d, - (q31_t)0x7731f440, (q31_t)0xdf9aa354, (q31_t)0x772b96ca, (q31_t)0xdf8fcd8b, - (q31_t)0x77253733, (q31_t)0xdf84f902, (q31_t)0x771ed57c, (q31_t)0xdf7a25ba, - (q31_t)0x771871a5, (q31_t)0xdf6f53b3, (q31_t)0x77120bae, (q31_t)0xdf6482ed, - (q31_t)0x770ba398, (q31_t)0xdf59b369, (q31_t)0x77053962, (q31_t)0xdf4ee527, - (q31_t)0x76fecd0e, (q31_t)0xdf441828, (q31_t)0x76f85e9a, (q31_t)0xdf394c6b, - (q31_t)0x76f1ee09, (q31_t)0xdf2e81f3, (q31_t)0x76eb7b58, (q31_t)0xdf23b8be, - (q31_t)0x76e5068a, (q31_t)0xdf18f0ce, (q31_t)0x76de8f9e, (q31_t)0xdf0e2a22, - (q31_t)0x76d81695, (q31_t)0xdf0364bc, (q31_t)0x76d19b6e, (q31_t)0xdef8a09b, - (q31_t)0x76cb1e2a, (q31_t)0xdeedddc0, (q31_t)0x76c49ec9, (q31_t)0xdee31c2b, - (q31_t)0x76be1d4c, (q31_t)0xded85bdd, (q31_t)0x76b799b3, (q31_t)0xdecd9cd7, - (q31_t)0x76b113fd, (q31_t)0xdec2df18, (q31_t)0x76aa8c2c, (q31_t)0xdeb822a1, - (q31_t)0x76a4023f, (q31_t)0xdead6773, (q31_t)0x769d7637, (q31_t)0xdea2ad8d, - (q31_t)0x7696e814, (q31_t)0xde97f4f1, (q31_t)0x769057d6, (q31_t)0xde8d3d9e, - (q31_t)0x7689c57d, (q31_t)0xde828796, (q31_t)0x7683310b, (q31_t)0xde77d2d8, - (q31_t)0x767c9a7e, (q31_t)0xde6d1f65, (q31_t)0x767601d7, (q31_t)0xde626d3e, - (q31_t)0x766f6717, (q31_t)0xde57bc62, (q31_t)0x7668ca3e, (q31_t)0xde4d0cd2, - (q31_t)0x76622b4c, (q31_t)0xde425e8f, (q31_t)0x765b8a41, (q31_t)0xde37b199, - (q31_t)0x7654e71d, (q31_t)0xde2d05f1, (q31_t)0x764e41e2, (q31_t)0xde225b96, - (q31_t)0x76479a8e, (q31_t)0xde17b28a, (q31_t)0x7640f123, (q31_t)0xde0d0acc, - (q31_t)0x763a45a0, (q31_t)0xde02645d, (q31_t)0x76339806, (q31_t)0xddf7bf3e, - (q31_t)0x762ce855, (q31_t)0xdded1b6e, (q31_t)0x7626368d, (q31_t)0xdde278ef, - (q31_t)0x761f82af, (q31_t)0xddd7d7c1, (q31_t)0x7618ccba, (q31_t)0xddcd37e4, - (q31_t)0x761214b0, (q31_t)0xddc29958, (q31_t)0x760b5a90, (q31_t)0xddb7fc1e, - (q31_t)0x76049e5b, (q31_t)0xddad6036, (q31_t)0x75fde011, (q31_t)0xdda2c5a2, - (q31_t)0x75f71fb1, (q31_t)0xdd982c60, (q31_t)0x75f05d3d, (q31_t)0xdd8d9472, - (q31_t)0x75e998b5, (q31_t)0xdd82fdd8, (q31_t)0x75e2d219, (q31_t)0xdd786892, - (q31_t)0x75dc0968, (q31_t)0xdd6dd4a2, (q31_t)0x75d53ea5, (q31_t)0xdd634206, - (q31_t)0x75ce71ce, (q31_t)0xdd58b0c0, (q31_t)0x75c7a2e3, (q31_t)0xdd4e20d0, - (q31_t)0x75c0d1e7, (q31_t)0xdd439236, (q31_t)0x75b9fed7, (q31_t)0xdd3904f4, - (q31_t)0x75b329b5, (q31_t)0xdd2e7908, (q31_t)0x75ac5282, (q31_t)0xdd23ee74, - (q31_t)0x75a5793c, (q31_t)0xdd196538, (q31_t)0x759e9de5, (q31_t)0xdd0edd55, - (q31_t)0x7597c07d, (q31_t)0xdd0456ca, (q31_t)0x7590e104, (q31_t)0xdcf9d199, - (q31_t)0x7589ff7a, (q31_t)0xdcef4dc2, (q31_t)0x75831be0, (q31_t)0xdce4cb44, - (q31_t)0x757c3636, (q31_t)0xdcda4a21, (q31_t)0x75754e7c, (q31_t)0xdccfca59, - (q31_t)0x756e64b2, (q31_t)0xdcc54bec, (q31_t)0x756778d9, (q31_t)0xdcbacedb, - (q31_t)0x75608af1, (q31_t)0xdcb05326, (q31_t)0x75599afa, (q31_t)0xdca5d8cd, - (q31_t)0x7552a8f4, (q31_t)0xdc9b5fd2, (q31_t)0x754bb4e1, (q31_t)0xdc90e834, - (q31_t)0x7544bebf, (q31_t)0xdc8671f3, (q31_t)0x753dc68f, (q31_t)0xdc7bfd11, - (q31_t)0x7536cc52, (q31_t)0xdc71898d, (q31_t)0x752fd008, (q31_t)0xdc671768, - (q31_t)0x7528d1b1, (q31_t)0xdc5ca6a2, (q31_t)0x7521d14d, (q31_t)0xdc52373c, - (q31_t)0x751acedd, (q31_t)0xdc47c936, (q31_t)0x7513ca60, (q31_t)0xdc3d5c91, - (q31_t)0x750cc3d8, (q31_t)0xdc32f14d, (q31_t)0x7505bb44, (q31_t)0xdc28876a, - (q31_t)0x74feb0a5, (q31_t)0xdc1e1ee9, (q31_t)0x74f7a3fb, (q31_t)0xdc13b7c9, - (q31_t)0x74f09546, (q31_t)0xdc09520d, (q31_t)0x74e98487, (q31_t)0xdbfeedb3, - (q31_t)0x74e271bd, (q31_t)0xdbf48abd, (q31_t)0x74db5cea, (q31_t)0xdbea292b, - (q31_t)0x74d4460c, (q31_t)0xdbdfc8fc, (q31_t)0x74cd2d26, (q31_t)0xdbd56a32, - (q31_t)0x74c61236, (q31_t)0xdbcb0cce, (q31_t)0x74bef53d, (q31_t)0xdbc0b0ce, - (q31_t)0x74b7d63c, (q31_t)0xdbb65634, (q31_t)0x74b0b533, (q31_t)0xdbabfd01, - (q31_t)0x74a99221, (q31_t)0xdba1a534, (q31_t)0x74a26d08, (q31_t)0xdb974ece, - (q31_t)0x749b45e7, (q31_t)0xdb8cf9cf, (q31_t)0x74941cbf, (q31_t)0xdb82a638, - (q31_t)0x748cf190, (q31_t)0xdb785409, (q31_t)0x7485c45b, (q31_t)0xdb6e0342, - (q31_t)0x747e951f, (q31_t)0xdb63b3e5, (q31_t)0x747763dd, (q31_t)0xdb5965f1, - (q31_t)0x74703095, (q31_t)0xdb4f1967, (q31_t)0x7468fb47, (q31_t)0xdb44ce46, - (q31_t)0x7461c3f5, (q31_t)0xdb3a8491, (q31_t)0x745a8a9d, (q31_t)0xdb303c46, - (q31_t)0x74534f41, (q31_t)0xdb25f566, (q31_t)0x744c11e0, (q31_t)0xdb1baff2, - (q31_t)0x7444d27b, (q31_t)0xdb116beb, (q31_t)0x743d9112, (q31_t)0xdb072950, - (q31_t)0x74364da6, (q31_t)0xdafce821, (q31_t)0x742f0836, (q31_t)0xdaf2a860, - (q31_t)0x7427c0c3, (q31_t)0xdae86a0d, (q31_t)0x7420774d, (q31_t)0xdade2d28, - (q31_t)0x74192bd5, (q31_t)0xdad3f1b1, (q31_t)0x7411de5b, (q31_t)0xdac9b7a9, - (q31_t)0x740a8edf, (q31_t)0xdabf7f11, (q31_t)0x74033d61, (q31_t)0xdab547e8, - (q31_t)0x73fbe9e2, (q31_t)0xdaab122f, (q31_t)0x73f49462, (q31_t)0xdaa0dde7, - (q31_t)0x73ed3ce1, (q31_t)0xda96ab0f, (q31_t)0x73e5e360, (q31_t)0xda8c79a9, - (q31_t)0x73de87de, (q31_t)0xda8249b4, (q31_t)0x73d72a5d, (q31_t)0xda781b31, - (q31_t)0x73cfcadc, (q31_t)0xda6dee21, (q31_t)0x73c8695b, (q31_t)0xda63c284, - (q31_t)0x73c105db, (q31_t)0xda599859, (q31_t)0x73b9a05d, (q31_t)0xda4f6fa3, - (q31_t)0x73b238e0, (q31_t)0xda454860, (q31_t)0x73aacf65, (q31_t)0xda3b2292, - (q31_t)0x73a363ec, (q31_t)0xda30fe38, (q31_t)0x739bf675, (q31_t)0xda26db54, - (q31_t)0x73948701, (q31_t)0xda1cb9e5, (q31_t)0x738d1590, (q31_t)0xda1299ec, - (q31_t)0x7385a222, (q31_t)0xda087b69, (q31_t)0x737e2cb7, (q31_t)0xd9fe5e5e, - (q31_t)0x7376b551, (q31_t)0xd9f442c9, (q31_t)0x736f3bee, (q31_t)0xd9ea28ac, - (q31_t)0x7367c090, (q31_t)0xd9e01006, (q31_t)0x73604336, (q31_t)0xd9d5f8d9, - (q31_t)0x7358c3e2, (q31_t)0xd9cbe325, (q31_t)0x73514292, (q31_t)0xd9c1cee9, - (q31_t)0x7349bf48, (q31_t)0xd9b7bc27, (q31_t)0x73423a04, (q31_t)0xd9adaadf, - (q31_t)0x733ab2c6, (q31_t)0xd9a39b11, (q31_t)0x7333298f, (q31_t)0xd9998cbe, - (q31_t)0x732b9e5e, (q31_t)0xd98f7fe6, (q31_t)0x73241134, (q31_t)0xd9857489, - (q31_t)0x731c8211, (q31_t)0xd97b6aa8, (q31_t)0x7314f0f6, (q31_t)0xd9716243, - (q31_t)0x730d5de3, (q31_t)0xd9675b5a, (q31_t)0x7305c8d7, (q31_t)0xd95d55ef, - (q31_t)0x72fe31d5, (q31_t)0xd9535201, (q31_t)0x72f698db, (q31_t)0xd9494f90, - (q31_t)0x72eefdea, (q31_t)0xd93f4e9e, (q31_t)0x72e76102, (q31_t)0xd9354f2a, - (q31_t)0x72dfc224, (q31_t)0xd92b5135, (q31_t)0x72d82150, (q31_t)0xd92154bf, - (q31_t)0x72d07e85, (q31_t)0xd91759c9, (q31_t)0x72c8d9c6, (q31_t)0xd90d6053, - (q31_t)0x72c13311, (q31_t)0xd903685d, (q31_t)0x72b98a67, (q31_t)0xd8f971e8, - (q31_t)0x72b1dfc9, (q31_t)0xd8ef7cf4, (q31_t)0x72aa3336, (q31_t)0xd8e58982, - (q31_t)0x72a284b0, (q31_t)0xd8db9792, (q31_t)0x729ad435, (q31_t)0xd8d1a724, - (q31_t)0x729321c7, (q31_t)0xd8c7b838, (q31_t)0x728b6d66, (q31_t)0xd8bdcad0, - (q31_t)0x7283b712, (q31_t)0xd8b3deeb, (q31_t)0x727bfecc, (q31_t)0xd8a9f48a, - (q31_t)0x72744493, (q31_t)0xd8a00bae, (q31_t)0x726c8868, (q31_t)0xd8962456, - (q31_t)0x7264ca4c, (q31_t)0xd88c3e83, (q31_t)0x725d0a3e, (q31_t)0xd8825a35, - (q31_t)0x72554840, (q31_t)0xd878776d, (q31_t)0x724d8450, (q31_t)0xd86e962b, - (q31_t)0x7245be70, (q31_t)0xd864b670, (q31_t)0x723df6a0, (q31_t)0xd85ad83c, - (q31_t)0x72362ce0, (q31_t)0xd850fb8e, (q31_t)0x722e6130, (q31_t)0xd8472069, - (q31_t)0x72269391, (q31_t)0xd83d46cc, (q31_t)0x721ec403, (q31_t)0xd8336eb7, - (q31_t)0x7216f287, (q31_t)0xd829982b, (q31_t)0x720f1f1c, (q31_t)0xd81fc328, - (q31_t)0x720749c3, (q31_t)0xd815efae, (q31_t)0x71ff727c, (q31_t)0xd80c1dbf, - (q31_t)0x71f79948, (q31_t)0xd8024d59, (q31_t)0x71efbe27, (q31_t)0xd7f87e7f, - (q31_t)0x71e7e118, (q31_t)0xd7eeb130, (q31_t)0x71e0021e, (q31_t)0xd7e4e56c, - (q31_t)0x71d82137, (q31_t)0xd7db1b34, (q31_t)0x71d03e64, (q31_t)0xd7d15288, - (q31_t)0x71c859a5, (q31_t)0xd7c78b68, (q31_t)0x71c072fb, (q31_t)0xd7bdc5d6, - (q31_t)0x71b88a66, (q31_t)0xd7b401d1, (q31_t)0x71b09fe7, (q31_t)0xd7aa3f5a, - (q31_t)0x71a8b37c, (q31_t)0xd7a07e70, (q31_t)0x71a0c528, (q31_t)0xd796bf16, - (q31_t)0x7198d4ea, (q31_t)0xd78d014a, (q31_t)0x7190e2c3, (q31_t)0xd783450d, - (q31_t)0x7188eeb2, (q31_t)0xd7798a60, (q31_t)0x7180f8b8, (q31_t)0xd76fd143, - (q31_t)0x717900d6, (q31_t)0xd76619b6, (q31_t)0x7171070c, (q31_t)0xd75c63ba, - (q31_t)0x71690b59, (q31_t)0xd752af4f, (q31_t)0x71610dbf, (q31_t)0xd748fc75, - (q31_t)0x71590e3e, (q31_t)0xd73f4b2e, (q31_t)0x71510cd5, (q31_t)0xd7359b78, - (q31_t)0x71490986, (q31_t)0xd72bed55, (q31_t)0x71410450, (q31_t)0xd72240c5, - (q31_t)0x7138fd35, (q31_t)0xd71895c9, (q31_t)0x7130f433, (q31_t)0xd70eec60, - (q31_t)0x7128e94c, (q31_t)0xd705448b, (q31_t)0x7120dc80, (q31_t)0xd6fb9e4b, - (q31_t)0x7118cdcf, (q31_t)0xd6f1f99f, (q31_t)0x7110bd39, (q31_t)0xd6e85689, - (q31_t)0x7108aabf, (q31_t)0xd6deb508, (q31_t)0x71009661, (q31_t)0xd6d5151d, - (q31_t)0x70f8801f, (q31_t)0xd6cb76c9, (q31_t)0x70f067fb, (q31_t)0xd6c1da0b, - (q31_t)0x70e84df3, (q31_t)0xd6b83ee4, (q31_t)0x70e03208, (q31_t)0xd6aea555, - (q31_t)0x70d8143b, (q31_t)0xd6a50d5d, (q31_t)0x70cff48c, (q31_t)0xd69b76fe, - (q31_t)0x70c7d2fb, (q31_t)0xd691e237, (q31_t)0x70bfaf89, (q31_t)0xd6884f09, - (q31_t)0x70b78a36, (q31_t)0xd67ebd74, (q31_t)0x70af6302, (q31_t)0xd6752d79, - (q31_t)0x70a739ed, (q31_t)0xd66b9f18, (q31_t)0x709f0ef8, (q31_t)0xd6621251, - (q31_t)0x7096e223, (q31_t)0xd6588725, (q31_t)0x708eb36f, (q31_t)0xd64efd94, - (q31_t)0x708682dc, (q31_t)0xd645759f, (q31_t)0x707e5069, (q31_t)0xd63bef46, - (q31_t)0x70761c18, (q31_t)0xd6326a88, (q31_t)0x706de5e9, (q31_t)0xd628e767, - (q31_t)0x7065addb, (q31_t)0xd61f65e4, (q31_t)0x705d73f0, (q31_t)0xd615e5fd, - (q31_t)0x70553828, (q31_t)0xd60c67b4, (q31_t)0x704cfa83, (q31_t)0xd602eb0a, - (q31_t)0x7044bb00, (q31_t)0xd5f96ffd, (q31_t)0x703c79a2, (q31_t)0xd5eff690, - (q31_t)0x70343667, (q31_t)0xd5e67ec1, (q31_t)0x702bf151, (q31_t)0xd5dd0892, - (q31_t)0x7023aa5f, (q31_t)0xd5d39403, (q31_t)0x701b6193, (q31_t)0xd5ca2115, - (q31_t)0x701316eb, (q31_t)0xd5c0afc6, (q31_t)0x700aca69, (q31_t)0xd5b74019, - (q31_t)0x70027c0c, (q31_t)0xd5add20d, (q31_t)0x6ffa2bd6, (q31_t)0xd5a465a3, - (q31_t)0x6ff1d9c7, (q31_t)0xd59afadb, (q31_t)0x6fe985de, (q31_t)0xd59191b5, - (q31_t)0x6fe1301c, (q31_t)0xd5882a32, (q31_t)0x6fd8d882, (q31_t)0xd57ec452, - (q31_t)0x6fd07f0f, (q31_t)0xd5756016, (q31_t)0x6fc823c5, (q31_t)0xd56bfd7d, - (q31_t)0x6fbfc6a3, (q31_t)0xd5629c89, (q31_t)0x6fb767aa, (q31_t)0xd5593d3a, - (q31_t)0x6faf06da, (q31_t)0xd54fdf8f, (q31_t)0x6fa6a433, (q31_t)0xd5468389, - (q31_t)0x6f9e3fb6, (q31_t)0xd53d292a, (q31_t)0x6f95d963, (q31_t)0xd533d070, - (q31_t)0x6f8d713a, (q31_t)0xd52a795d, (q31_t)0x6f85073c, (q31_t)0xd52123f0, - (q31_t)0x6f7c9b69, (q31_t)0xd517d02b, (q31_t)0x6f742dc1, (q31_t)0xd50e7e0d, - (q31_t)0x6f6bbe45, (q31_t)0xd5052d97, (q31_t)0x6f634cf5, (q31_t)0xd4fbdec9, - (q31_t)0x6f5ad9d1, (q31_t)0xd4f291a4, (q31_t)0x6f5264da, (q31_t)0xd4e94627, - (q31_t)0x6f49ee0f, (q31_t)0xd4dffc54, (q31_t)0x6f417573, (q31_t)0xd4d6b42b, - (q31_t)0x6f38fb03, (q31_t)0xd4cd6dab, (q31_t)0x6f307ec2, (q31_t)0xd4c428d6, - (q31_t)0x6f2800af, (q31_t)0xd4bae5ab, (q31_t)0x6f1f80ca, (q31_t)0xd4b1a42c, - (q31_t)0x6f16ff14, (q31_t)0xd4a86458, (q31_t)0x6f0e7b8e, (q31_t)0xd49f2630, - (q31_t)0x6f05f637, (q31_t)0xd495e9b3, (q31_t)0x6efd6f10, (q31_t)0xd48caee4, - (q31_t)0x6ef4e619, (q31_t)0xd48375c1, (q31_t)0x6eec5b53, (q31_t)0xd47a3e4b, - (q31_t)0x6ee3cebe, (q31_t)0xd4710883, (q31_t)0x6edb405a, (q31_t)0xd467d469, - (q31_t)0x6ed2b027, (q31_t)0xd45ea1fd, (q31_t)0x6eca1e27, (q31_t)0xd4557140, - (q31_t)0x6ec18a58, (q31_t)0xd44c4232, (q31_t)0x6eb8f4bc, (q31_t)0xd44314d3, - (q31_t)0x6eb05d53, (q31_t)0xd439e923, (q31_t)0x6ea7c41e, (q31_t)0xd430bf24, - (q31_t)0x6e9f291b, (q31_t)0xd42796d5, (q31_t)0x6e968c4d, (q31_t)0xd41e7037, - (q31_t)0x6e8dedb3, (q31_t)0xd4154b4a, (q31_t)0x6e854d4d, (q31_t)0xd40c280e, - (q31_t)0x6e7cab1c, (q31_t)0xd4030684, (q31_t)0x6e740720, (q31_t)0xd3f9e6ad, - (q31_t)0x6e6b615a, (q31_t)0xd3f0c887, (q31_t)0x6e62b9ca, (q31_t)0xd3e7ac15, - (q31_t)0x6e5a1070, (q31_t)0xd3de9156, (q31_t)0x6e51654c, (q31_t)0xd3d5784a, - (q31_t)0x6e48b860, (q31_t)0xd3cc60f2, (q31_t)0x6e4009aa, (q31_t)0xd3c34b4f, - (q31_t)0x6e37592c, (q31_t)0xd3ba3760, (q31_t)0x6e2ea6e6, (q31_t)0xd3b12526, - (q31_t)0x6e25f2d8, (q31_t)0xd3a814a2, (q31_t)0x6e1d3d03, (q31_t)0xd39f05d3, - (q31_t)0x6e148566, (q31_t)0xd395f8ba, (q31_t)0x6e0bcc03, (q31_t)0xd38ced57, - (q31_t)0x6e0310d9, (q31_t)0xd383e3ab, (q31_t)0x6dfa53e9, (q31_t)0xd37adbb6, - (q31_t)0x6df19534, (q31_t)0xd371d579, (q31_t)0x6de8d4b8, (q31_t)0xd368d0f3, - (q31_t)0x6de01278, (q31_t)0xd35fce26, (q31_t)0x6dd74e73, (q31_t)0xd356cd11, - (q31_t)0x6dce88aa, (q31_t)0xd34dcdb4, (q31_t)0x6dc5c11c, (q31_t)0xd344d011, - (q31_t)0x6dbcf7cb, (q31_t)0xd33bd427, (q31_t)0x6db42cb6, (q31_t)0xd332d9f7, - (q31_t)0x6dab5fdf, (q31_t)0xd329e181, (q31_t)0x6da29144, (q31_t)0xd320eac6, - (q31_t)0x6d99c0e7, (q31_t)0xd317f5c6, (q31_t)0x6d90eec8, (q31_t)0xd30f0280, - (q31_t)0x6d881ae8, (q31_t)0xd30610f7, (q31_t)0x6d7f4545, (q31_t)0xd2fd2129, - (q31_t)0x6d766de2, (q31_t)0xd2f43318, (q31_t)0x6d6d94bf, (q31_t)0xd2eb46c3, - (q31_t)0x6d64b9da, (q31_t)0xd2e25c2b, (q31_t)0x6d5bdd36, (q31_t)0xd2d97350, - (q31_t)0x6d52fed2, (q31_t)0xd2d08c33, (q31_t)0x6d4a1eaf, (q31_t)0xd2c7a6d4, - (q31_t)0x6d413ccd, (q31_t)0xd2bec333, (q31_t)0x6d38592c, (q31_t)0xd2b5e151, - (q31_t)0x6d2f73cd, (q31_t)0xd2ad012e, (q31_t)0x6d268cb0, (q31_t)0xd2a422ca, - (q31_t)0x6d1da3d5, (q31_t)0xd29b4626, (q31_t)0x6d14b93d, (q31_t)0xd2926b41, - (q31_t)0x6d0bcce8, (q31_t)0xd289921e, (q31_t)0x6d02ded7, (q31_t)0xd280babb, - (q31_t)0x6cf9ef09, (q31_t)0xd277e518, (q31_t)0x6cf0fd80, (q31_t)0xd26f1138, - (q31_t)0x6ce80a3a, (q31_t)0xd2663f19, (q31_t)0x6cdf153a, (q31_t)0xd25d6ebc, - (q31_t)0x6cd61e7f, (q31_t)0xd254a021, (q31_t)0x6ccd2609, (q31_t)0xd24bd34a, - (q31_t)0x6cc42bd9, (q31_t)0xd2430835, (q31_t)0x6cbb2fef, (q31_t)0xd23a3ee4, - (q31_t)0x6cb2324c, (q31_t)0xd2317756, (q31_t)0x6ca932ef, (q31_t)0xd228b18d, - (q31_t)0x6ca031da, (q31_t)0xd21fed88, (q31_t)0x6c972f0d, (q31_t)0xd2172b48, - (q31_t)0x6c8e2a87, (q31_t)0xd20e6acc, (q31_t)0x6c85244a, (q31_t)0xd205ac17, - (q31_t)0x6c7c1c55, (q31_t)0xd1fcef27, (q31_t)0x6c7312a9, (q31_t)0xd1f433fd, - (q31_t)0x6c6a0746, (q31_t)0xd1eb7a9a, (q31_t)0x6c60fa2d, (q31_t)0xd1e2c2fd, - (q31_t)0x6c57eb5e, (q31_t)0xd1da0d28, (q31_t)0x6c4edada, (q31_t)0xd1d1591a, - (q31_t)0x6c45c8a0, (q31_t)0xd1c8a6d4, (q31_t)0x6c3cb4b1, (q31_t)0xd1bff656, - (q31_t)0x6c339f0e, (q31_t)0xd1b747a0, (q31_t)0x6c2a87b6, (q31_t)0xd1ae9ab4, - (q31_t)0x6c216eaa, (q31_t)0xd1a5ef90, (q31_t)0x6c1853eb, (q31_t)0xd19d4636, - (q31_t)0x6c0f3779, (q31_t)0xd1949ea6, (q31_t)0x6c061953, (q31_t)0xd18bf8e0, - (q31_t)0x6bfcf97c, (q31_t)0xd18354e4, (q31_t)0x6bf3d7f2, (q31_t)0xd17ab2b3, - (q31_t)0x6beab4b6, (q31_t)0xd172124d, (q31_t)0x6be18fc9, (q31_t)0xd16973b3, - (q31_t)0x6bd8692b, (q31_t)0xd160d6e5, (q31_t)0x6bcf40dc, (q31_t)0xd1583be2, - (q31_t)0x6bc616dd, (q31_t)0xd14fa2ad, (q31_t)0x6bbceb2d, (q31_t)0xd1470b44, - (q31_t)0x6bb3bdce, (q31_t)0xd13e75a8, (q31_t)0x6baa8ec0, (q31_t)0xd135e1d9, - (q31_t)0x6ba15e03, (q31_t)0xd12d4fd9, (q31_t)0x6b982b97, (q31_t)0xd124bfa6, - (q31_t)0x6b8ef77d, (q31_t)0xd11c3142, (q31_t)0x6b85c1b5, (q31_t)0xd113a4ad, - (q31_t)0x6b7c8a3f, (q31_t)0xd10b19e7, (q31_t)0x6b73511c, (q31_t)0xd10290f0, - (q31_t)0x6b6a164d, (q31_t)0xd0fa09c9, (q31_t)0x6b60d9d0, (q31_t)0xd0f18472, - (q31_t)0x6b579ba8, (q31_t)0xd0e900ec, (q31_t)0x6b4e5bd4, (q31_t)0xd0e07f36, - (q31_t)0x6b451a55, (q31_t)0xd0d7ff51, (q31_t)0x6b3bd72a, (q31_t)0xd0cf813e, - (q31_t)0x6b329255, (q31_t)0xd0c704fd, (q31_t)0x6b294bd5, (q31_t)0xd0be8a8d, - (q31_t)0x6b2003ac, (q31_t)0xd0b611f1, (q31_t)0x6b16b9d9, (q31_t)0xd0ad9b26, - (q31_t)0x6b0d6e5c, (q31_t)0xd0a5262f, (q31_t)0x6b042137, (q31_t)0xd09cb30b, - (q31_t)0x6afad269, (q31_t)0xd09441bb, (q31_t)0x6af181f3, (q31_t)0xd08bd23f, - (q31_t)0x6ae82fd5, (q31_t)0xd0836497, (q31_t)0x6adedc10, (q31_t)0xd07af8c4, - (q31_t)0x6ad586a3, (q31_t)0xd0728ec6, (q31_t)0x6acc2f90, (q31_t)0xd06a269d, - (q31_t)0x6ac2d6d6, (q31_t)0xd061c04a, (q31_t)0x6ab97c77, (q31_t)0xd0595bcd, - (q31_t)0x6ab02071, (q31_t)0xd050f926, (q31_t)0x6aa6c2c6, (q31_t)0xd0489856, - (q31_t)0x6a9d6377, (q31_t)0xd040395d, (q31_t)0x6a940283, (q31_t)0xd037dc3b, - (q31_t)0x6a8a9fea, (q31_t)0xd02f80f1, (q31_t)0x6a813bae, (q31_t)0xd027277e, - (q31_t)0x6a77d5ce, (q31_t)0xd01ecfe4, (q31_t)0x6a6e6e4b, (q31_t)0xd0167a22, - (q31_t)0x6a650525, (q31_t)0xd00e2639, (q31_t)0x6a5b9a5d, (q31_t)0xd005d42a, - (q31_t)0x6a522df3, (q31_t)0xcffd83f4, (q31_t)0x6a48bfe7, (q31_t)0xcff53597, - (q31_t)0x6a3f503a, (q31_t)0xcfece915, (q31_t)0x6a35deeb, (q31_t)0xcfe49e6d, - (q31_t)0x6a2c6bfd, (q31_t)0xcfdc55a1, (q31_t)0x6a22f76e, (q31_t)0xcfd40eaf, - (q31_t)0x6a19813f, (q31_t)0xcfcbc999, (q31_t)0x6a100970, (q31_t)0xcfc3865e, - (q31_t)0x6a069003, (q31_t)0xcfbb4500, (q31_t)0x69fd14f6, (q31_t)0xcfb3057d, - (q31_t)0x69f3984c, (q31_t)0xcfaac7d8, (q31_t)0x69ea1a03, (q31_t)0xcfa28c10, - (q31_t)0x69e09a1c, (q31_t)0xcf9a5225, (q31_t)0x69d71899, (q31_t)0xcf921a17, - (q31_t)0x69cd9578, (q31_t)0xcf89e3e8, (q31_t)0x69c410ba, (q31_t)0xcf81af97, - (q31_t)0x69ba8a61, (q31_t)0xcf797d24, (q31_t)0x69b1026c, (q31_t)0xcf714c91, - (q31_t)0x69a778db, (q31_t)0xcf691ddd, (q31_t)0x699dedaf, (q31_t)0xcf60f108, - (q31_t)0x699460e8, (q31_t)0xcf58c613, (q31_t)0x698ad287, (q31_t)0xcf509cfe, - (q31_t)0x6981428c, (q31_t)0xcf4875ca, (q31_t)0x6977b0f7, (q31_t)0xcf405077, - (q31_t)0x696e1dc9, (q31_t)0xcf382d05, (q31_t)0x69648902, (q31_t)0xcf300b74, - (q31_t)0x695af2a3, (q31_t)0xcf27ebc5, (q31_t)0x69515aab, (q31_t)0xcf1fcdf8, - (q31_t)0x6947c11c, (q31_t)0xcf17b20d, (q31_t)0x693e25f5, (q31_t)0xcf0f9805, - (q31_t)0x69348937, (q31_t)0xcf077fe1, (q31_t)0x692aeae3, (q31_t)0xceff699f, - (q31_t)0x69214af8, (q31_t)0xcef75541, (q31_t)0x6917a977, (q31_t)0xceef42c7, - (q31_t)0x690e0661, (q31_t)0xcee73231, (q31_t)0x690461b5, (q31_t)0xcedf2380, - (q31_t)0x68fabb75, (q31_t)0xced716b4, (q31_t)0x68f113a0, (q31_t)0xcecf0bcd, - (q31_t)0x68e76a37, (q31_t)0xcec702cb, (q31_t)0x68ddbf3b, (q31_t)0xcebefbb0, - (q31_t)0x68d412ab, (q31_t)0xceb6f67a, (q31_t)0x68ca6488, (q31_t)0xceaef32b, - (q31_t)0x68c0b4d2, (q31_t)0xcea6f1c2, (q31_t)0x68b7038b, (q31_t)0xce9ef241, - (q31_t)0x68ad50b1, (q31_t)0xce96f4a7, (q31_t)0x68a39c46, (q31_t)0xce8ef8f4, - (q31_t)0x6899e64a, (q31_t)0xce86ff2a, (q31_t)0x68902ebd, (q31_t)0xce7f0748, - (q31_t)0x688675a0, (q31_t)0xce77114e, (q31_t)0x687cbaf3, (q31_t)0xce6f1d3d, - (q31_t)0x6872feb6, (q31_t)0xce672b16, (q31_t)0x686940ea, (q31_t)0xce5f3ad8, - (q31_t)0x685f8190, (q31_t)0xce574c84, (q31_t)0x6855c0a6, (q31_t)0xce4f6019, - (q31_t)0x684bfe2f, (q31_t)0xce47759a, (q31_t)0x68423a2a, (q31_t)0xce3f8d05, - (q31_t)0x68387498, (q31_t)0xce37a65b, (q31_t)0x682ead78, (q31_t)0xce2fc19c, - (q31_t)0x6824e4cc, (q31_t)0xce27dec9, (q31_t)0x681b1a94, (q31_t)0xce1ffde2, - (q31_t)0x68114ed0, (q31_t)0xce181ee8, (q31_t)0x68078181, (q31_t)0xce1041d9, - (q31_t)0x67fdb2a7, (q31_t)0xce0866b8, (q31_t)0x67f3e241, (q31_t)0xce008d84, - (q31_t)0x67ea1052, (q31_t)0xcdf8b63d, (q31_t)0x67e03cd8, (q31_t)0xcdf0e0e4, - (q31_t)0x67d667d5, (q31_t)0xcde90d79, (q31_t)0x67cc9149, (q31_t)0xcde13bfd, - (q31_t)0x67c2b934, (q31_t)0xcdd96c6f, (q31_t)0x67b8df97, (q31_t)0xcdd19ed0, - (q31_t)0x67af0472, (q31_t)0xcdc9d320, (q31_t)0x67a527c4, (q31_t)0xcdc20960, - (q31_t)0x679b4990, (q31_t)0xcdba4190, (q31_t)0x679169d5, (q31_t)0xcdb27bb0, - (q31_t)0x67878893, (q31_t)0xcdaab7c0, (q31_t)0x677da5cb, (q31_t)0xcda2f5c2, - (q31_t)0x6773c17d, (q31_t)0xcd9b35b4, (q31_t)0x6769dbaa, (q31_t)0xcd937798, - (q31_t)0x675ff452, (q31_t)0xcd8bbb6d, (q31_t)0x67560b76, (q31_t)0xcd840134, - (q31_t)0x674c2115, (q31_t)0xcd7c48ee, (q31_t)0x67423530, (q31_t)0xcd74929a, - (q31_t)0x673847c8, (q31_t)0xcd6cde39, (q31_t)0x672e58dc, (q31_t)0xcd652bcb, - (q31_t)0x6724686e, (q31_t)0xcd5d7b50, (q31_t)0x671a767e, (q31_t)0xcd55ccca, - (q31_t)0x6710830c, (q31_t)0xcd4e2037, (q31_t)0x67068e18, (q31_t)0xcd467599, - (q31_t)0x66fc97a3, (q31_t)0xcd3eccef, (q31_t)0x66f29fad, (q31_t)0xcd37263a, - (q31_t)0x66e8a637, (q31_t)0xcd2f817b, (q31_t)0x66deab41, (q31_t)0xcd27deb0, - (q31_t)0x66d4aecb, (q31_t)0xcd203ddc, (q31_t)0x66cab0d6, (q31_t)0xcd189efe, - (q31_t)0x66c0b162, (q31_t)0xcd110216, (q31_t)0x66b6b070, (q31_t)0xcd096725, - (q31_t)0x66acadff, (q31_t)0xcd01ce2b, (q31_t)0x66a2aa11, (q31_t)0xccfa3729, - (q31_t)0x6698a4a6, (q31_t)0xccf2a21d, (q31_t)0x668e9dbd, (q31_t)0xcceb0f0a, - (q31_t)0x66849558, (q31_t)0xcce37def, (q31_t)0x667a8b77, (q31_t)0xccdbeecc, - (q31_t)0x6670801a, (q31_t)0xccd461a2, (q31_t)0x66667342, (q31_t)0xccccd671, - (q31_t)0x665c64ef, (q31_t)0xccc54d3a, (q31_t)0x66525521, (q31_t)0xccbdc5fc, - (q31_t)0x664843d9, (q31_t)0xccb640b8, (q31_t)0x663e3117, (q31_t)0xccaebd6e, - (q31_t)0x66341cdb, (q31_t)0xcca73c1e, (q31_t)0x662a0727, (q31_t)0xcc9fbcca, - (q31_t)0x661feffa, (q31_t)0xcc983f70, (q31_t)0x6615d754, (q31_t)0xcc90c412, - (q31_t)0x660bbd37, (q31_t)0xcc894aaf, (q31_t)0x6601a1a2, (q31_t)0xcc81d349, - (q31_t)0x65f78497, (q31_t)0xcc7a5dde, (q31_t)0x65ed6614, (q31_t)0xcc72ea70, - (q31_t)0x65e3461b, (q31_t)0xcc6b78ff, (q31_t)0x65d924ac, (q31_t)0xcc64098b, - (q31_t)0x65cf01c8, (q31_t)0xcc5c9c14, (q31_t)0x65c4dd6e, (q31_t)0xcc55309b, - (q31_t)0x65bab7a0, (q31_t)0xcc4dc720, (q31_t)0x65b0905d, (q31_t)0xcc465fa3, - (q31_t)0x65a667a7, (q31_t)0xcc3efa25, (q31_t)0x659c3d7c, (q31_t)0xcc3796a5, - (q31_t)0x659211df, (q31_t)0xcc303524, (q31_t)0x6587e4cf, (q31_t)0xcc28d5a3, - (q31_t)0x657db64c, (q31_t)0xcc217822, (q31_t)0x65738657, (q31_t)0xcc1a1ca0, - (q31_t)0x656954f1, (q31_t)0xcc12c31f, (q31_t)0x655f2219, (q31_t)0xcc0b6b9e, - (q31_t)0x6554edd1, (q31_t)0xcc04161e, (q31_t)0x654ab818, (q31_t)0xcbfcc29f, - (q31_t)0x654080ef, (q31_t)0xcbf57121, (q31_t)0x65364857, (q31_t)0xcbee21a5, - (q31_t)0x652c0e4f, (q31_t)0xcbe6d42b, (q31_t)0x6521d2d8, (q31_t)0xcbdf88b3, - (q31_t)0x651795f3, (q31_t)0xcbd83f3d, (q31_t)0x650d57a0, (q31_t)0xcbd0f7ca, - (q31_t)0x650317df, (q31_t)0xcbc9b25a, (q31_t)0x64f8d6b0, (q31_t)0xcbc26eee, - (q31_t)0x64ee9415, (q31_t)0xcbbb2d85, (q31_t)0x64e4500e, (q31_t)0xcbb3ee20, - (q31_t)0x64da0a9a, (q31_t)0xcbacb0bf, (q31_t)0x64cfc3ba, (q31_t)0xcba57563, - (q31_t)0x64c57b6f, (q31_t)0xcb9e3c0b, (q31_t)0x64bb31ba, (q31_t)0xcb9704b9, - (q31_t)0x64b0e699, (q31_t)0xcb8fcf6b, (q31_t)0x64a69a0f, (q31_t)0xcb889c23, - (q31_t)0x649c4c1b, (q31_t)0xcb816ae1, (q31_t)0x6491fcbe, (q31_t)0xcb7a3ba5, - (q31_t)0x6487abf7, (q31_t)0xcb730e70, (q31_t)0x647d59c8, (q31_t)0xcb6be341, - (q31_t)0x64730631, (q31_t)0xcb64ba19, (q31_t)0x6468b132, (q31_t)0xcb5d92f8, - (q31_t)0x645e5acc, (q31_t)0xcb566ddf, (q31_t)0x645402ff, (q31_t)0xcb4f4acd, - (q31_t)0x6449a9cc, (q31_t)0xcb4829c4, (q31_t)0x643f4f32, (q31_t)0xcb410ac3, - (q31_t)0x6434f332, (q31_t)0xcb39edca, (q31_t)0x642a95ce, (q31_t)0xcb32d2da, - (q31_t)0x64203704, (q31_t)0xcb2bb9f4, (q31_t)0x6415d6d5, (q31_t)0xcb24a316, - (q31_t)0x640b7543, (q31_t)0xcb1d8e43, (q31_t)0x6401124d, (q31_t)0xcb167b79, - (q31_t)0x63f6adf3, (q31_t)0xcb0f6aba, (q31_t)0x63ec4837, (q31_t)0xcb085c05, - (q31_t)0x63e1e117, (q31_t)0xcb014f5b, (q31_t)0x63d77896, (q31_t)0xcafa44bc, - (q31_t)0x63cd0eb3, (q31_t)0xcaf33c28, (q31_t)0x63c2a36f, (q31_t)0xcaec35a0, - (q31_t)0x63b836ca, (q31_t)0xcae53123, (q31_t)0x63adc8c4, (q31_t)0xcade2eb3, - (q31_t)0x63a3595e, (q31_t)0xcad72e4f, (q31_t)0x6398e898, (q31_t)0xcad02ff8, - (q31_t)0x638e7673, (q31_t)0xcac933ae, (q31_t)0x638402ef, (q31_t)0xcac23971, - (q31_t)0x63798e0d, (q31_t)0xcabb4141, (q31_t)0x636f17cc, (q31_t)0xcab44b1f, - (q31_t)0x6364a02e, (q31_t)0xcaad570c, (q31_t)0x635a2733, (q31_t)0xcaa66506, - (q31_t)0x634facda, (q31_t)0xca9f750f, (q31_t)0x63453125, (q31_t)0xca988727, - (q31_t)0x633ab414, (q31_t)0xca919b4e, (q31_t)0x633035a7, (q31_t)0xca8ab184, - (q31_t)0x6325b5df, (q31_t)0xca83c9ca, (q31_t)0x631b34bc, (q31_t)0xca7ce420, - (q31_t)0x6310b23e, (q31_t)0xca760086, (q31_t)0x63062e67, (q31_t)0xca6f1efc, - (q31_t)0x62fba936, (q31_t)0xca683f83, (q31_t)0x62f122ab, (q31_t)0xca61621b, - (q31_t)0x62e69ac8, (q31_t)0xca5a86c4, (q31_t)0x62dc118c, (q31_t)0xca53ad7e, - (q31_t)0x62d186f8, (q31_t)0xca4cd64b, (q31_t)0x62c6fb0c, (q31_t)0xca460129, - (q31_t)0x62bc6dca, (q31_t)0xca3f2e19, (q31_t)0x62b1df30, (q31_t)0xca385d1d, - (q31_t)0x62a74f40, (q31_t)0xca318e32, (q31_t)0x629cbdfa, (q31_t)0xca2ac15b, - (q31_t)0x62922b5e, (q31_t)0xca23f698, (q31_t)0x6287976e, (q31_t)0xca1d2de7, - (q31_t)0x627d0228, (q31_t)0xca16674b, (q31_t)0x62726b8e, (q31_t)0xca0fa2c3, - (q31_t)0x6267d3a0, (q31_t)0xca08e04f, (q31_t)0x625d3a5e, (q31_t)0xca021fef, - (q31_t)0x62529fca, (q31_t)0xc9fb61a5, (q31_t)0x624803e2, (q31_t)0xc9f4a570, - (q31_t)0x623d66a8, (q31_t)0xc9edeb50, (q31_t)0x6232c81c, (q31_t)0xc9e73346, - (q31_t)0x6228283f, (q31_t)0xc9e07d51, (q31_t)0x621d8711, (q31_t)0xc9d9c973, - (q31_t)0x6212e492, (q31_t)0xc9d317ab, (q31_t)0x620840c2, (q31_t)0xc9cc67fa, - (q31_t)0x61fd9ba3, (q31_t)0xc9c5ba60, (q31_t)0x61f2f534, (q31_t)0xc9bf0edd, - (q31_t)0x61e84d76, (q31_t)0xc9b86572, (q31_t)0x61dda46a, (q31_t)0xc9b1be1e, - (q31_t)0x61d2fa0f, (q31_t)0xc9ab18e3, (q31_t)0x61c84e67, (q31_t)0xc9a475bf, - (q31_t)0x61bda171, (q31_t)0xc99dd4b4, (q31_t)0x61b2f32e, (q31_t)0xc99735c2, - (q31_t)0x61a8439e, (q31_t)0xc99098e9, (q31_t)0x619d92c2, (q31_t)0xc989fe29, - (q31_t)0x6192e09b, (q31_t)0xc9836582, (q31_t)0x61882d28, (q31_t)0xc97ccef5, - (q31_t)0x617d786a, (q31_t)0xc9763a83, (q31_t)0x6172c262, (q31_t)0xc96fa82a, - (q31_t)0x61680b0f, (q31_t)0xc96917ec, (q31_t)0x615d5273, (q31_t)0xc96289c9, - (q31_t)0x6152988d, (q31_t)0xc95bfdc1, (q31_t)0x6147dd5f, (q31_t)0xc95573d4, - (q31_t)0x613d20e8, (q31_t)0xc94eec03, (q31_t)0x61326329, (q31_t)0xc948664d, - (q31_t)0x6127a423, (q31_t)0xc941e2b4, (q31_t)0x611ce3d5, (q31_t)0xc93b6137, - (q31_t)0x61122240, (q31_t)0xc934e1d6, (q31_t)0x61075f65, (q31_t)0xc92e6492, - (q31_t)0x60fc9b44, (q31_t)0xc927e96b, (q31_t)0x60f1d5de, (q31_t)0xc9217062, - (q31_t)0x60e70f32, (q31_t)0xc91af976, (q31_t)0x60dc4742, (q31_t)0xc91484a8, - (q31_t)0x60d17e0d, (q31_t)0xc90e11f7, (q31_t)0x60c6b395, (q31_t)0xc907a166, - (q31_t)0x60bbe7d8, (q31_t)0xc90132f2, (q31_t)0x60b11ad9, (q31_t)0xc8fac69e, - (q31_t)0x60a64c97, (q31_t)0xc8f45c68, (q31_t)0x609b7d13, (q31_t)0xc8edf452, - (q31_t)0x6090ac4d, (q31_t)0xc8e78e5b, (q31_t)0x6085da46, (q31_t)0xc8e12a84, - (q31_t)0x607b06fe, (q31_t)0xc8dac8cd, (q31_t)0x60703275, (q31_t)0xc8d46936, - (q31_t)0x60655cac, (q31_t)0xc8ce0bc0, (q31_t)0x605a85a3, (q31_t)0xc8c7b06b, - (q31_t)0x604fad5b, (q31_t)0xc8c15736, (q31_t)0x6044d3d4, (q31_t)0xc8bb0023, - (q31_t)0x6039f90f, (q31_t)0xc8b4ab32, (q31_t)0x602f1d0b, (q31_t)0xc8ae5862, - (q31_t)0x60243fca, (q31_t)0xc8a807b4, (q31_t)0x6019614c, (q31_t)0xc8a1b928, - (q31_t)0x600e8190, (q31_t)0xc89b6cbf, (q31_t)0x6003a099, (q31_t)0xc8952278, - (q31_t)0x5ff8be65, (q31_t)0xc88eda54, (q31_t)0x5feddaf6, (q31_t)0xc8889454, - (q31_t)0x5fe2f64c, (q31_t)0xc8825077, (q31_t)0x5fd81067, (q31_t)0xc87c0ebd, - (q31_t)0x5fcd2948, (q31_t)0xc875cf28, (q31_t)0x5fc240ef, (q31_t)0xc86f91b7, - (q31_t)0x5fb7575c, (q31_t)0xc869566a, (q31_t)0x5fac6c91, (q31_t)0xc8631d42, - (q31_t)0x5fa1808c, (q31_t)0xc85ce63e, (q31_t)0x5f969350, (q31_t)0xc856b160, - (q31_t)0x5f8ba4dc, (q31_t)0xc8507ea7, (q31_t)0x5f80b531, (q31_t)0xc84a4e14, - (q31_t)0x5f75c44e, (q31_t)0xc8441fa6, (q31_t)0x5f6ad235, (q31_t)0xc83df35f, - (q31_t)0x5f5fdee6, (q31_t)0xc837c93e, (q31_t)0x5f54ea62, (q31_t)0xc831a143, - (q31_t)0x5f49f4a8, (q31_t)0xc82b7b70, (q31_t)0x5f3efdb9, (q31_t)0xc82557c3, - (q31_t)0x5f340596, (q31_t)0xc81f363d, (q31_t)0x5f290c3f, (q31_t)0xc81916df, - (q31_t)0x5f1e11b5, (q31_t)0xc812f9a9, (q31_t)0x5f1315f7, (q31_t)0xc80cde9b, - (q31_t)0x5f081907, (q31_t)0xc806c5b5, (q31_t)0x5efd1ae4, (q31_t)0xc800aef7, - (q31_t)0x5ef21b90, (q31_t)0xc7fa9a62, (q31_t)0x5ee71b0a, (q31_t)0xc7f487f6, - (q31_t)0x5edc1953, (q31_t)0xc7ee77b3, (q31_t)0x5ed1166b, (q31_t)0xc7e8699a, - (q31_t)0x5ec61254, (q31_t)0xc7e25daa, (q31_t)0x5ebb0d0d, (q31_t)0xc7dc53e3, - (q31_t)0x5eb00696, (q31_t)0xc7d64c47, (q31_t)0x5ea4fef0, (q31_t)0xc7d046d6, - (q31_t)0x5e99f61d, (q31_t)0xc7ca438f, (q31_t)0x5e8eec1b, (q31_t)0xc7c44272, - (q31_t)0x5e83e0eb, (q31_t)0xc7be4381, (q31_t)0x5e78d48e, (q31_t)0xc7b846ba, - (q31_t)0x5e6dc705, (q31_t)0xc7b24c20, (q31_t)0x5e62b84f, (q31_t)0xc7ac53b1, - (q31_t)0x5e57a86d, (q31_t)0xc7a65d6e, (q31_t)0x5e4c9760, (q31_t)0xc7a06957, - (q31_t)0x5e418528, (q31_t)0xc79a776c, (q31_t)0x5e3671c5, (q31_t)0xc79487ae, - (q31_t)0x5e2b5d38, (q31_t)0xc78e9a1d, (q31_t)0x5e204781, (q31_t)0xc788aeb9, - (q31_t)0x5e1530a1, (q31_t)0xc782c582, (q31_t)0x5e0a1898, (q31_t)0xc77cde79, - (q31_t)0x5dfeff67, (q31_t)0xc776f99d, (q31_t)0x5df3e50d, (q31_t)0xc77116f0, - (q31_t)0x5de8c98c, (q31_t)0xc76b3671, (q31_t)0x5dddace4, (q31_t)0xc7655820, - (q31_t)0x5dd28f15, (q31_t)0xc75f7bfe, (q31_t)0x5dc7701f, (q31_t)0xc759a20a, - (q31_t)0x5dbc5004, (q31_t)0xc753ca46, (q31_t)0x5db12ec3, (q31_t)0xc74df4b1, - (q31_t)0x5da60c5d, (q31_t)0xc748214c, (q31_t)0x5d9ae8d2, (q31_t)0xc7425016, - (q31_t)0x5d8fc424, (q31_t)0xc73c8111, (q31_t)0x5d849e51, (q31_t)0xc736b43c, - (q31_t)0x5d79775c, (q31_t)0xc730e997, (q31_t)0x5d6e4f43, (q31_t)0xc72b2123, - (q31_t)0x5d632608, (q31_t)0xc7255ae0, (q31_t)0x5d57fbaa, (q31_t)0xc71f96ce, - (q31_t)0x5d4cd02c, (q31_t)0xc719d4ed, (q31_t)0x5d41a38c, (q31_t)0xc714153e, - (q31_t)0x5d3675cb, (q31_t)0xc70e57c0, (q31_t)0x5d2b46ea, (q31_t)0xc7089c75, - (q31_t)0x5d2016e9, (q31_t)0xc702e35c, (q31_t)0x5d14e5c9, (q31_t)0xc6fd2c75, - (q31_t)0x5d09b389, (q31_t)0xc6f777c1, (q31_t)0x5cfe802b, (q31_t)0xc6f1c540, - (q31_t)0x5cf34baf, (q31_t)0xc6ec14f2, (q31_t)0x5ce81615, (q31_t)0xc6e666d7, - (q31_t)0x5cdcdf5e, (q31_t)0xc6e0baf0, (q31_t)0x5cd1a78a, (q31_t)0xc6db113d, - (q31_t)0x5cc66e99, (q31_t)0xc6d569be, (q31_t)0x5cbb348d, (q31_t)0xc6cfc472, - (q31_t)0x5caff965, (q31_t)0xc6ca215c, (q31_t)0x5ca4bd21, (q31_t)0xc6c4807a, - (q31_t)0x5c997fc4, (q31_t)0xc6bee1cd, (q31_t)0x5c8e414b, (q31_t)0xc6b94554, - (q31_t)0x5c8301b9, (q31_t)0xc6b3ab12, (q31_t)0x5c77c10e, (q31_t)0xc6ae1304, - (q31_t)0x5c6c7f4a, (q31_t)0xc6a87d2d, (q31_t)0x5c613c6d, (q31_t)0xc6a2e98b, - (q31_t)0x5c55f878, (q31_t)0xc69d5820, (q31_t)0x5c4ab36b, (q31_t)0xc697c8eb, - (q31_t)0x5c3f6d47, (q31_t)0xc6923bec, (q31_t)0x5c34260c, (q31_t)0xc68cb124, - (q31_t)0x5c28ddbb, (q31_t)0xc6872894, (q31_t)0x5c1d9454, (q31_t)0xc681a23a, - (q31_t)0x5c1249d8, (q31_t)0xc67c1e18, (q31_t)0x5c06fe46, (q31_t)0xc6769c2e, - (q31_t)0x5bfbb1a0, (q31_t)0xc6711c7b, (q31_t)0x5bf063e6, (q31_t)0xc66b9f01, - (q31_t)0x5be51518, (q31_t)0xc66623be, (q31_t)0x5bd9c537, (q31_t)0xc660aab5, - (q31_t)0x5bce7442, (q31_t)0xc65b33e4, (q31_t)0x5bc3223c, (q31_t)0xc655bf4c, - (q31_t)0x5bb7cf23, (q31_t)0xc6504ced, (q31_t)0x5bac7af9, (q31_t)0xc64adcc7, - (q31_t)0x5ba125bd, (q31_t)0xc6456edb, (q31_t)0x5b95cf71, (q31_t)0xc6400329, - (q31_t)0x5b8a7815, (q31_t)0xc63a99b1, (q31_t)0x5b7f1fa9, (q31_t)0xc6353273, - (q31_t)0x5b73c62d, (q31_t)0xc62fcd6f, (q31_t)0x5b686ba3, (q31_t)0xc62a6aa6, - (q31_t)0x5b5d100a, (q31_t)0xc6250a18, (q31_t)0x5b51b363, (q31_t)0xc61fabc4, - (q31_t)0x5b4655ae, (q31_t)0xc61a4fac, (q31_t)0x5b3af6ec, (q31_t)0xc614f5cf, - (q31_t)0x5b2f971e, (q31_t)0xc60f9e2e, (q31_t)0x5b243643, (q31_t)0xc60a48c9, - (q31_t)0x5b18d45c, (q31_t)0xc604f5a0, (q31_t)0x5b0d716a, (q31_t)0xc5ffa4b3, - (q31_t)0x5b020d6c, (q31_t)0xc5fa5603, (q31_t)0x5af6a865, (q31_t)0xc5f5098f, - (q31_t)0x5aeb4253, (q31_t)0xc5efbf58, (q31_t)0x5adfdb37, (q31_t)0xc5ea775e, - (q31_t)0x5ad47312, (q31_t)0xc5e531a1, (q31_t)0x5ac909e5, (q31_t)0xc5dfee22, - (q31_t)0x5abd9faf, (q31_t)0xc5daace1, (q31_t)0x5ab23471, (q31_t)0xc5d56ddd, - (q31_t)0x5aa6c82b, (q31_t)0xc5d03118, (q31_t)0x5a9b5adf, (q31_t)0xc5caf690, - (q31_t)0x5a8fec8c, (q31_t)0xc5c5be47, (q31_t)0x5a847d33, (q31_t)0xc5c0883d, - (q31_t)0x5a790cd4, (q31_t)0xc5bb5472, (q31_t)0x5a6d9b70, (q31_t)0xc5b622e6, - (q31_t)0x5a622907, (q31_t)0xc5b0f399, (q31_t)0x5a56b599, (q31_t)0xc5abc68c, - (q31_t)0x5a4b4128, (q31_t)0xc5a69bbe, (q31_t)0x5a3fcbb3, (q31_t)0xc5a17330, - (q31_t)0x5a34553b, (q31_t)0xc59c4ce3, (q31_t)0x5a28ddc0, (q31_t)0xc59728d5, - (q31_t)0x5a1d6544, (q31_t)0xc5920708, (q31_t)0x5a11ebc5, (q31_t)0xc58ce77c, - (q31_t)0x5a067145, (q31_t)0xc587ca31, (q31_t)0x59faf5c5, (q31_t)0xc582af26, - (q31_t)0x59ef7944, (q31_t)0xc57d965d, (q31_t)0x59e3fbc3, (q31_t)0xc5787fd6, - (q31_t)0x59d87d42, (q31_t)0xc5736b90, (q31_t)0x59ccfdc2, (q31_t)0xc56e598c, - (q31_t)0x59c17d44, (q31_t)0xc56949ca, (q31_t)0x59b5fbc8, (q31_t)0xc5643c4a, - (q31_t)0x59aa794d, (q31_t)0xc55f310d, (q31_t)0x599ef5d6, (q31_t)0xc55a2812, - (q31_t)0x59937161, (q31_t)0xc555215a, (q31_t)0x5987ebf0, (q31_t)0xc5501ce5, - (q31_t)0x597c6584, (q31_t)0xc54b1ab4, (q31_t)0x5970de1b, (q31_t)0xc5461ac6, - (q31_t)0x596555b8, (q31_t)0xc5411d1b, (q31_t)0x5959cc5a, (q31_t)0xc53c21b4, - (q31_t)0x594e4201, (q31_t)0xc5372891, (q31_t)0x5942b6af, (q31_t)0xc53231b3, - (q31_t)0x59372a64, (q31_t)0xc52d3d18, (q31_t)0x592b9d1f, (q31_t)0xc5284ac3, - (q31_t)0x59200ee3, (q31_t)0xc5235ab2, (q31_t)0x59147fae, (q31_t)0xc51e6ce6, - (q31_t)0x5908ef82, (q31_t)0xc519815f, (q31_t)0x58fd5e5f, (q31_t)0xc514981d, - (q31_t)0x58f1cc45, (q31_t)0xc50fb121, (q31_t)0x58e63935, (q31_t)0xc50acc6b, - (q31_t)0x58daa52f, (q31_t)0xc505e9fb, (q31_t)0x58cf1034, (q31_t)0xc50109d0, - (q31_t)0x58c37a44, (q31_t)0xc4fc2bec, (q31_t)0x58b7e35f, (q31_t)0xc4f7504e, - (q31_t)0x58ac4b87, (q31_t)0xc4f276f7, (q31_t)0x58a0b2bb, (q31_t)0xc4ed9fe7, - (q31_t)0x589518fc, (q31_t)0xc4e8cb1e, (q31_t)0x58897e4a, (q31_t)0xc4e3f89c, - (q31_t)0x587de2a7, (q31_t)0xc4df2862, (q31_t)0x58724611, (q31_t)0xc4da5a6f, - (q31_t)0x5866a88a, (q31_t)0xc4d58ec3, (q31_t)0x585b0a13, (q31_t)0xc4d0c560, - (q31_t)0x584f6aab, (q31_t)0xc4cbfe45, (q31_t)0x5843ca53, (q31_t)0xc4c73972, - (q31_t)0x5838290c, (q31_t)0xc4c276e8, (q31_t)0x582c86d5, (q31_t)0xc4bdb6a6, - (q31_t)0x5820e3b0, (q31_t)0xc4b8f8ad, (q31_t)0x58153f9d, (q31_t)0xc4b43cfd, - (q31_t)0x58099a9c, (q31_t)0xc4af8397, (q31_t)0x57fdf4ae, (q31_t)0xc4aacc7a, - (q31_t)0x57f24dd3, (q31_t)0xc4a617a6, (q31_t)0x57e6a60c, (q31_t)0xc4a1651c, - (q31_t)0x57dafd59, (q31_t)0xc49cb4dd, (q31_t)0x57cf53bb, (q31_t)0xc49806e7, - (q31_t)0x57c3a931, (q31_t)0xc4935b3c, (q31_t)0x57b7fdbd, (q31_t)0xc48eb1db, - (q31_t)0x57ac515f, (q31_t)0xc48a0ac4, (q31_t)0x57a0a417, (q31_t)0xc48565f9, - (q31_t)0x5794f5e6, (q31_t)0xc480c379, (q31_t)0x578946cc, (q31_t)0xc47c2344, - (q31_t)0x577d96ca, (q31_t)0xc477855a, (q31_t)0x5771e5e0, (q31_t)0xc472e9bc, - (q31_t)0x5766340f, (q31_t)0xc46e5069, (q31_t)0x575a8157, (q31_t)0xc469b963, - (q31_t)0x574ecdb8, (q31_t)0xc46524a9, (q31_t)0x57431933, (q31_t)0xc460923b, - (q31_t)0x573763c9, (q31_t)0xc45c0219, (q31_t)0x572bad7a, (q31_t)0xc4577444, - (q31_t)0x571ff646, (q31_t)0xc452e8bc, (q31_t)0x57143e2d, (q31_t)0xc44e5f80, - (q31_t)0x57088531, (q31_t)0xc449d892, (q31_t)0x56fccb51, (q31_t)0xc44553f2, - (q31_t)0x56f1108f, (q31_t)0xc440d19e, (q31_t)0x56e554ea, (q31_t)0xc43c5199, - (q31_t)0x56d99864, (q31_t)0xc437d3e1, (q31_t)0x56cddafb, (q31_t)0xc4335877, - (q31_t)0x56c21cb2, (q31_t)0xc42edf5c, (q31_t)0x56b65d88, (q31_t)0xc42a688f, - (q31_t)0x56aa9d7e, (q31_t)0xc425f410, (q31_t)0x569edc94, (q31_t)0xc42181e0, - (q31_t)0x56931acb, (q31_t)0xc41d11ff, (q31_t)0x56875823, (q31_t)0xc418a46d, - (q31_t)0x567b949d, (q31_t)0xc414392b, (q31_t)0x566fd039, (q31_t)0xc40fd037, - (q31_t)0x56640af7, (q31_t)0xc40b6994, (q31_t)0x565844d8, (q31_t)0xc4070540, - (q31_t)0x564c7ddd, (q31_t)0xc402a33c, (q31_t)0x5640b606, (q31_t)0xc3fe4388, - (q31_t)0x5634ed53, (q31_t)0xc3f9e624, (q31_t)0x562923c5, (q31_t)0xc3f58b10, - (q31_t)0x561d595d, (q31_t)0xc3f1324e, (q31_t)0x56118e1a, (q31_t)0xc3ecdbdc, - (q31_t)0x5605c1fd, (q31_t)0xc3e887bb, (q31_t)0x55f9f507, (q31_t)0xc3e435ea, - (q31_t)0x55ee2738, (q31_t)0xc3dfe66c, (q31_t)0x55e25890, (q31_t)0xc3db993e, - (q31_t)0x55d68911, (q31_t)0xc3d74e62, (q31_t)0x55cab8ba, (q31_t)0xc3d305d8, - (q31_t)0x55bee78c, (q31_t)0xc3cebfa0, (q31_t)0x55b31587, (q31_t)0xc3ca7bba, - (q31_t)0x55a742ac, (q31_t)0xc3c63a26, (q31_t)0x559b6efb, (q31_t)0xc3c1fae5, - (q31_t)0x558f9a76, (q31_t)0xc3bdbdf6, (q31_t)0x5583c51b, (q31_t)0xc3b9835a, - (q31_t)0x5577eeec, (q31_t)0xc3b54b11, (q31_t)0x556c17e9, (q31_t)0xc3b1151b, - (q31_t)0x55604013, (q31_t)0xc3ace178, (q31_t)0x5554676a, (q31_t)0xc3a8b028, - (q31_t)0x55488dee, (q31_t)0xc3a4812c, (q31_t)0x553cb3a0, (q31_t)0xc3a05484, - (q31_t)0x5530d881, (q31_t)0xc39c2a2f, (q31_t)0x5524fc90, (q31_t)0xc398022f, - (q31_t)0x55191fcf, (q31_t)0xc393dc82, (q31_t)0x550d423d, (q31_t)0xc38fb92a, - (q31_t)0x550163dc, (q31_t)0xc38b9827, (q31_t)0x54f584ac, (q31_t)0xc3877978, - (q31_t)0x54e9a4ac, (q31_t)0xc3835d1e, (q31_t)0x54ddc3de, (q31_t)0xc37f4319, - (q31_t)0x54d1e242, (q31_t)0xc37b2b6a, (q31_t)0x54c5ffd9, (q31_t)0xc377160f, - (q31_t)0x54ba1ca3, (q31_t)0xc373030a, (q31_t)0x54ae38a0, (q31_t)0xc36ef25b, - (q31_t)0x54a253d1, (q31_t)0xc36ae401, (q31_t)0x54966e36, (q31_t)0xc366d7fd, - (q31_t)0x548a87d1, (q31_t)0xc362ce50, (q31_t)0x547ea0a0, (q31_t)0xc35ec6f8, - (q31_t)0x5472b8a5, (q31_t)0xc35ac1f7, (q31_t)0x5466cfe1, (q31_t)0xc356bf4d, - (q31_t)0x545ae653, (q31_t)0xc352bef9, (q31_t)0x544efbfc, (q31_t)0xc34ec0fc, - (q31_t)0x544310dd, (q31_t)0xc34ac556, (q31_t)0x543724f5, (q31_t)0xc346cc07, - (q31_t)0x542b3846, (q31_t)0xc342d510, (q31_t)0x541f4ad1, (q31_t)0xc33ee070, - (q31_t)0x54135c94, (q31_t)0xc33aee27, (q31_t)0x54076d91, (q31_t)0xc336fe37, - (q31_t)0x53fb7dc9, (q31_t)0xc333109e, (q31_t)0x53ef8d3c, (q31_t)0xc32f255e, - (q31_t)0x53e39be9, (q31_t)0xc32b3c75, (q31_t)0x53d7a9d3, (q31_t)0xc32755e5, - (q31_t)0x53cbb6f8, (q31_t)0xc32371ae, (q31_t)0x53bfc35b, (q31_t)0xc31f8fcf, - (q31_t)0x53b3cefa, (q31_t)0xc31bb049, (q31_t)0x53a7d9d7, (q31_t)0xc317d31c, - (q31_t)0x539be3f2, (q31_t)0xc313f848, (q31_t)0x538fed4b, (q31_t)0xc3101fce, - (q31_t)0x5383f5e3, (q31_t)0xc30c49ad, (q31_t)0x5377fdbb, (q31_t)0xc30875e5, - (q31_t)0x536c04d2, (q31_t)0xc304a477, (q31_t)0x53600b2a, (q31_t)0xc300d563, - (q31_t)0x535410c3, (q31_t)0xc2fd08a9, (q31_t)0x5348159d, (q31_t)0xc2f93e4a, - (q31_t)0x533c19b8, (q31_t)0xc2f57644, (q31_t)0x53301d16, (q31_t)0xc2f1b099, - (q31_t)0x53241fb6, (q31_t)0xc2eded49, (q31_t)0x5318219a, (q31_t)0xc2ea2c53, - (q31_t)0x530c22c1, (q31_t)0xc2e66db8, (q31_t)0x5300232c, (q31_t)0xc2e2b178, - (q31_t)0x52f422db, (q31_t)0xc2def794, (q31_t)0x52e821cf, (q31_t)0xc2db400a, - (q31_t)0x52dc2009, (q31_t)0xc2d78add, (q31_t)0x52d01d89, (q31_t)0xc2d3d80a, - (q31_t)0x52c41a4f, (q31_t)0xc2d02794, (q31_t)0x52b8165b, (q31_t)0xc2cc7979, - (q31_t)0x52ac11af, (q31_t)0xc2c8cdbb, (q31_t)0x52a00c4b, (q31_t)0xc2c52459, - (q31_t)0x5294062f, (q31_t)0xc2c17d52, (q31_t)0x5287ff5b, (q31_t)0xc2bdd8a9, - (q31_t)0x527bf7d1, (q31_t)0xc2ba365c, (q31_t)0x526fef90, (q31_t)0xc2b6966c, - (q31_t)0x5263e699, (q31_t)0xc2b2f8d8, (q31_t)0x5257dced, (q31_t)0xc2af5da2, - (q31_t)0x524bd28c, (q31_t)0xc2abc4c9, (q31_t)0x523fc776, (q31_t)0xc2a82e4d, - (q31_t)0x5233bbac, (q31_t)0xc2a49a2e, (q31_t)0x5227af2e, (q31_t)0xc2a1086d, - (q31_t)0x521ba1fd, (q31_t)0xc29d790a, (q31_t)0x520f941a, (q31_t)0xc299ec05, - (q31_t)0x52038584, (q31_t)0xc296615d, (q31_t)0x51f7763c, (q31_t)0xc292d914, - (q31_t)0x51eb6643, (q31_t)0xc28f5329, (q31_t)0x51df5599, (q31_t)0xc28bcf9c, - (q31_t)0x51d3443f, (q31_t)0xc2884e6e, (q31_t)0x51c73235, (q31_t)0xc284cf9f, - (q31_t)0x51bb1f7c, (q31_t)0xc281532e, (q31_t)0x51af0c13, (q31_t)0xc27dd91c, - (q31_t)0x51a2f7fc, (q31_t)0xc27a616a, (q31_t)0x5196e337, (q31_t)0xc276ec16, - (q31_t)0x518acdc4, (q31_t)0xc2737922, (q31_t)0x517eb7a4, (q31_t)0xc270088e, - (q31_t)0x5172a0d7, (q31_t)0xc26c9a58, (q31_t)0x5166895f, (q31_t)0xc2692e83, - (q31_t)0x515a713a, (q31_t)0xc265c50e, (q31_t)0x514e586a, (q31_t)0xc2625df8, - (q31_t)0x51423ef0, (q31_t)0xc25ef943, (q31_t)0x513624cb, (q31_t)0xc25b96ee, - (q31_t)0x512a09fc, (q31_t)0xc25836f9, (q31_t)0x511dee84, (q31_t)0xc254d965, - (q31_t)0x5111d263, (q31_t)0xc2517e31, (q31_t)0x5105b599, (q31_t)0xc24e255e, - (q31_t)0x50f99827, (q31_t)0xc24aceed, (q31_t)0x50ed7a0e, (q31_t)0xc2477adc, - (q31_t)0x50e15b4e, (q31_t)0xc244292c, (q31_t)0x50d53be7, (q31_t)0xc240d9de, - (q31_t)0x50c91bda, (q31_t)0xc23d8cf1, (q31_t)0x50bcfb28, (q31_t)0xc23a4265, - (q31_t)0x50b0d9d0, (q31_t)0xc236fa3b, (q31_t)0x50a4b7d3, (q31_t)0xc233b473, - (q31_t)0x50989532, (q31_t)0xc230710d, (q31_t)0x508c71ee, (q31_t)0xc22d3009, - (q31_t)0x50804e06, (q31_t)0xc229f167, (q31_t)0x5074297b, (q31_t)0xc226b528, - (q31_t)0x5068044e, (q31_t)0xc2237b4b, (q31_t)0x505bde7f, (q31_t)0xc22043d0, - (q31_t)0x504fb80e, (q31_t)0xc21d0eb8, (q31_t)0x504390fd, (q31_t)0xc219dc03, - (q31_t)0x5037694b, (q31_t)0xc216abb1, (q31_t)0x502b40f8, (q31_t)0xc2137dc2, - (q31_t)0x501f1807, (q31_t)0xc2105236, (q31_t)0x5012ee76, (q31_t)0xc20d290d, - (q31_t)0x5006c446, (q31_t)0xc20a0248, (q31_t)0x4ffa9979, (q31_t)0xc206dde6, - (q31_t)0x4fee6e0d, (q31_t)0xc203bbe8, (q31_t)0x4fe24205, (q31_t)0xc2009c4e, - (q31_t)0x4fd6155f, (q31_t)0xc1fd7f17, (q31_t)0x4fc9e81e, (q31_t)0xc1fa6445, - (q31_t)0x4fbdba40, (q31_t)0xc1f74bd6, (q31_t)0x4fb18bc8, (q31_t)0xc1f435cc, - (q31_t)0x4fa55cb4, (q31_t)0xc1f12227, (q31_t)0x4f992d06, (q31_t)0xc1ee10e5, - (q31_t)0x4f8cfcbe, (q31_t)0xc1eb0209, (q31_t)0x4f80cbdc, (q31_t)0xc1e7f591, - (q31_t)0x4f749a61, (q31_t)0xc1e4eb7e, (q31_t)0x4f68684e, (q31_t)0xc1e1e3d0, - (q31_t)0x4f5c35a3, (q31_t)0xc1dede87, (q31_t)0x4f500260, (q31_t)0xc1dbdba3, - (q31_t)0x4f43ce86, (q31_t)0xc1d8db25, (q31_t)0x4f379a16, (q31_t)0xc1d5dd0c, - (q31_t)0x4f2b650f, (q31_t)0xc1d2e158, (q31_t)0x4f1f2f73, (q31_t)0xc1cfe80a, - (q31_t)0x4f12f941, (q31_t)0xc1ccf122, (q31_t)0x4f06c27a, (q31_t)0xc1c9fca0, - (q31_t)0x4efa8b20, (q31_t)0xc1c70a84, (q31_t)0x4eee5331, (q31_t)0xc1c41ace, - (q31_t)0x4ee21aaf, (q31_t)0xc1c12d7e, (q31_t)0x4ed5e19a, (q31_t)0xc1be4294, - (q31_t)0x4ec9a7f3, (q31_t)0xc1bb5a11, (q31_t)0x4ebd6db9, (q31_t)0xc1b873f5, - (q31_t)0x4eb132ef, (q31_t)0xc1b5903f, (q31_t)0x4ea4f793, (q31_t)0xc1b2aef0, - (q31_t)0x4e98bba7, (q31_t)0xc1afd007, (q31_t)0x4e8c7f2a, (q31_t)0xc1acf386, - (q31_t)0x4e80421e, (q31_t)0xc1aa196c, (q31_t)0x4e740483, (q31_t)0xc1a741b9, - (q31_t)0x4e67c65a, (q31_t)0xc1a46c6e, (q31_t)0x4e5b87a2, (q31_t)0xc1a1998a, - (q31_t)0x4e4f485c, (q31_t)0xc19ec90d, (q31_t)0x4e430889, (q31_t)0xc19bfaf9, - (q31_t)0x4e36c82a, (q31_t)0xc1992f4c, (q31_t)0x4e2a873e, (q31_t)0xc1966606, - (q31_t)0x4e1e45c6, (q31_t)0xc1939f29, (q31_t)0x4e1203c3, (q31_t)0xc190dab4, - (q31_t)0x4e05c135, (q31_t)0xc18e18a7, (q31_t)0x4df97e1d, (q31_t)0xc18b5903, - (q31_t)0x4ded3a7b, (q31_t)0xc1889bc6, (q31_t)0x4de0f64f, (q31_t)0xc185e0f3, - (q31_t)0x4dd4b19a, (q31_t)0xc1832888, (q31_t)0x4dc86c5d, (q31_t)0xc1807285, - (q31_t)0x4dbc2698, (q31_t)0xc17dbeec, (q31_t)0x4dafe04b, (q31_t)0xc17b0dbb, - (q31_t)0x4da39978, (q31_t)0xc1785ef4, (q31_t)0x4d97521d, (q31_t)0xc175b296, - (q31_t)0x4d8b0a3d, (q31_t)0xc17308a1, (q31_t)0x4d7ec1d6, (q31_t)0xc1706115, - (q31_t)0x4d7278eb, (q31_t)0xc16dbbf3, (q31_t)0x4d662f7b, (q31_t)0xc16b193a, - (q31_t)0x4d59e586, (q31_t)0xc16878eb, (q31_t)0x4d4d9b0e, (q31_t)0xc165db05, - (q31_t)0x4d415013, (q31_t)0xc1633f8a, (q31_t)0x4d350495, (q31_t)0xc160a678, - (q31_t)0x4d28b894, (q31_t)0xc15e0fd1, (q31_t)0x4d1c6c11, (q31_t)0xc15b7b94, - (q31_t)0x4d101f0e, (q31_t)0xc158e9c1, (q31_t)0x4d03d189, (q31_t)0xc1565a58, - (q31_t)0x4cf78383, (q31_t)0xc153cd5a, (q31_t)0x4ceb34fe, (q31_t)0xc15142c6, - (q31_t)0x4cdee5f9, (q31_t)0xc14eba9d, (q31_t)0x4cd29676, (q31_t)0xc14c34df, - (q31_t)0x4cc64673, (q31_t)0xc149b18b, (q31_t)0x4cb9f5f3, (q31_t)0xc14730a3, - (q31_t)0x4cada4f5, (q31_t)0xc144b225, (q31_t)0x4ca1537a, (q31_t)0xc1423613, - (q31_t)0x4c950182, (q31_t)0xc13fbc6c, (q31_t)0x4c88af0e, (q31_t)0xc13d4530, - (q31_t)0x4c7c5c1e, (q31_t)0xc13ad060, (q31_t)0x4c7008b3, (q31_t)0xc1385dfb, - (q31_t)0x4c63b4ce, (q31_t)0xc135ee02, (q31_t)0x4c57606e, (q31_t)0xc1338075, - (q31_t)0x4c4b0b94, (q31_t)0xc1311553, (q31_t)0x4c3eb641, (q31_t)0xc12eac9d, - (q31_t)0x4c326075, (q31_t)0xc12c4653, (q31_t)0x4c260a31, (q31_t)0xc129e276, - (q31_t)0x4c19b374, (q31_t)0xc1278104, (q31_t)0x4c0d5c41, (q31_t)0xc12521ff, - (q31_t)0x4c010496, (q31_t)0xc122c566, (q31_t)0x4bf4ac75, (q31_t)0xc1206b39, - (q31_t)0x4be853de, (q31_t)0xc11e1379, (q31_t)0x4bdbfad1, (q31_t)0xc11bbe26, - (q31_t)0x4bcfa150, (q31_t)0xc1196b3f, (q31_t)0x4bc34759, (q31_t)0xc1171ac6, - (q31_t)0x4bb6ecef, (q31_t)0xc114ccb9, (q31_t)0x4baa9211, (q31_t)0xc1128119, - (q31_t)0x4b9e36c0, (q31_t)0xc11037e6, (q31_t)0x4b91dafc, (q31_t)0xc10df120, - (q31_t)0x4b857ec7, (q31_t)0xc10bacc8, (q31_t)0x4b79221f, (q31_t)0xc1096add, - (q31_t)0x4b6cc506, (q31_t)0xc1072b5f, (q31_t)0x4b60677c, (q31_t)0xc104ee4f, - (q31_t)0x4b540982, (q31_t)0xc102b3ac, (q31_t)0x4b47ab19, (q31_t)0xc1007b77, - (q31_t)0x4b3b4c40, (q31_t)0xc0fe45b0, (q31_t)0x4b2eecf8, (q31_t)0xc0fc1257, - (q31_t)0x4b228d42, (q31_t)0xc0f9e16b, (q31_t)0x4b162d1d, (q31_t)0xc0f7b2ee, - (q31_t)0x4b09cc8c, (q31_t)0xc0f586df, (q31_t)0x4afd6b8d, (q31_t)0xc0f35d3e, - (q31_t)0x4af10a22, (q31_t)0xc0f1360b, (q31_t)0x4ae4a84b, (q31_t)0xc0ef1147, - (q31_t)0x4ad84609, (q31_t)0xc0eceef1, (q31_t)0x4acbe35b, (q31_t)0xc0eacf09, - (q31_t)0x4abf8043, (q31_t)0xc0e8b190, (q31_t)0x4ab31cc1, (q31_t)0xc0e69686, - (q31_t)0x4aa6b8d5, (q31_t)0xc0e47deb, (q31_t)0x4a9a5480, (q31_t)0xc0e267be, - (q31_t)0x4a8defc3, (q31_t)0xc0e05401, (q31_t)0x4a818a9d, (q31_t)0xc0de42b2, - (q31_t)0x4a752510, (q31_t)0xc0dc33d2, (q31_t)0x4a68bf1b, (q31_t)0xc0da2762, - (q31_t)0x4a5c58c0, (q31_t)0xc0d81d61, (q31_t)0x4a4ff1fe, (q31_t)0xc0d615cf, - (q31_t)0x4a438ad7, (q31_t)0xc0d410ad, (q31_t)0x4a37234a, (q31_t)0xc0d20dfa, - (q31_t)0x4a2abb59, (q31_t)0xc0d00db6, (q31_t)0x4a1e5303, (q31_t)0xc0ce0fe3, - (q31_t)0x4a11ea49, (q31_t)0xc0cc147f, (q31_t)0x4a05812c, (q31_t)0xc0ca1b8a, - (q31_t)0x49f917ac, (q31_t)0xc0c82506, (q31_t)0x49ecadc9, (q31_t)0xc0c630f2, - (q31_t)0x49e04385, (q31_t)0xc0c43f4d, (q31_t)0x49d3d8df, (q31_t)0xc0c25019, - (q31_t)0x49c76dd8, (q31_t)0xc0c06355, (q31_t)0x49bb0271, (q31_t)0xc0be7901, - (q31_t)0x49ae96aa, (q31_t)0xc0bc911d, (q31_t)0x49a22a83, (q31_t)0xc0baabaa, - (q31_t)0x4995bdfd, (q31_t)0xc0b8c8a7, (q31_t)0x49895118, (q31_t)0xc0b6e815, - (q31_t)0x497ce3d5, (q31_t)0xc0b509f3, (q31_t)0x49707635, (q31_t)0xc0b32e42, - (q31_t)0x49640837, (q31_t)0xc0b15502, (q31_t)0x495799dd, (q31_t)0xc0af7e33, - (q31_t)0x494b2b27, (q31_t)0xc0ada9d4, (q31_t)0x493ebc14, (q31_t)0xc0abd7e6, - (q31_t)0x49324ca7, (q31_t)0xc0aa086a, (q31_t)0x4925dcdf, (q31_t)0xc0a83b5e, - (q31_t)0x49196cbc, (q31_t)0xc0a670c4, (q31_t)0x490cfc40, (q31_t)0xc0a4a89b, - (q31_t)0x49008b6a, (q31_t)0xc0a2e2e3, (q31_t)0x48f41a3c, (q31_t)0xc0a11f9d, - (q31_t)0x48e7a8b5, (q31_t)0xc09f5ec8, (q31_t)0x48db36d6, (q31_t)0xc09da065, - (q31_t)0x48cec4a0, (q31_t)0xc09be473, (q31_t)0x48c25213, (q31_t)0xc09a2af3, - (q31_t)0x48b5df30, (q31_t)0xc09873e4, (q31_t)0x48a96bf6, (q31_t)0xc096bf48, - (q31_t)0x489cf867, (q31_t)0xc0950d1d, (q31_t)0x48908483, (q31_t)0xc0935d64, - (q31_t)0x4884104b, (q31_t)0xc091b01d, (q31_t)0x48779bbe, (q31_t)0xc0900548, - (q31_t)0x486b26de, (q31_t)0xc08e5ce5, (q31_t)0x485eb1ab, (q31_t)0xc08cb6f5, - (q31_t)0x48523c25, (q31_t)0xc08b1376, (q31_t)0x4845c64d, (q31_t)0xc089726a, - (q31_t)0x48395024, (q31_t)0xc087d3d0, (q31_t)0x482cd9a9, (q31_t)0xc08637a9, - (q31_t)0x482062de, (q31_t)0xc0849df4, (q31_t)0x4813ebc2, (q31_t)0xc08306b2, - (q31_t)0x48077457, (q31_t)0xc08171e2, (q31_t)0x47fafc9c, (q31_t)0xc07fdf85, - (q31_t)0x47ee8493, (q31_t)0xc07e4f9b, (q31_t)0x47e20c3b, (q31_t)0xc07cc223, - (q31_t)0x47d59396, (q31_t)0xc07b371e, (q31_t)0x47c91aa3, (q31_t)0xc079ae8c, - (q31_t)0x47bca163, (q31_t)0xc078286e, (q31_t)0x47b027d7, (q31_t)0xc076a4c2, - (q31_t)0x47a3adff, (q31_t)0xc0752389, (q31_t)0x479733dc, (q31_t)0xc073a4c3, - (q31_t)0x478ab96e, (q31_t)0xc0722871, (q31_t)0x477e3eb5, (q31_t)0xc070ae92, - (q31_t)0x4771c3b3, (q31_t)0xc06f3726, (q31_t)0x47654867, (q31_t)0xc06dc22e, - (q31_t)0x4758ccd2, (q31_t)0xc06c4fa8, (q31_t)0x474c50f4, (q31_t)0xc06adf97, - (q31_t)0x473fd4cf, (q31_t)0xc06971f9, (q31_t)0x47335862, (q31_t)0xc06806ce, - (q31_t)0x4726dbae, (q31_t)0xc0669e18, (q31_t)0x471a5eb3, (q31_t)0xc06537d4, - (q31_t)0x470de172, (q31_t)0xc063d405, (q31_t)0x470163eb, (q31_t)0xc06272aa, - (q31_t)0x46f4e620, (q31_t)0xc06113c2, (q31_t)0x46e86810, (q31_t)0xc05fb74e, - (q31_t)0x46dbe9bb, (q31_t)0xc05e5d4e, (q31_t)0x46cf6b23, (q31_t)0xc05d05c3, - (q31_t)0x46c2ec48, (q31_t)0xc05bb0ab, (q31_t)0x46b66d29, (q31_t)0xc05a5e07, - (q31_t)0x46a9edc9, (q31_t)0xc0590dd8, (q31_t)0x469d6e27, (q31_t)0xc057c01d, - (q31_t)0x4690ee44, (q31_t)0xc05674d6, (q31_t)0x46846e1f, (q31_t)0xc0552c03, - (q31_t)0x4677edbb, (q31_t)0xc053e5a5, (q31_t)0x466b6d16, (q31_t)0xc052a1bb, - (q31_t)0x465eec33, (q31_t)0xc0516045, (q31_t)0x46526b10, (q31_t)0xc0502145, - (q31_t)0x4645e9af, (q31_t)0xc04ee4b8, (q31_t)0x46396810, (q31_t)0xc04daaa1, - (q31_t)0x462ce634, (q31_t)0xc04c72fe, (q31_t)0x4620641a, (q31_t)0xc04b3dcf, - (q31_t)0x4613e1c5, (q31_t)0xc04a0b16, (q31_t)0x46075f33, (q31_t)0xc048dad1, - (q31_t)0x45fadc66, (q31_t)0xc047ad01, (q31_t)0x45ee595d, (q31_t)0xc04681a6, - (q31_t)0x45e1d61b, (q31_t)0xc04558c0, (q31_t)0x45d5529e, (q31_t)0xc044324f, - (q31_t)0x45c8cee7, (q31_t)0xc0430e53, (q31_t)0x45bc4af8, (q31_t)0xc041eccc, - (q31_t)0x45afc6d0, (q31_t)0xc040cdba, (q31_t)0x45a3426f, (q31_t)0xc03fb11d, - (q31_t)0x4596bdd7, (q31_t)0xc03e96f6, (q31_t)0x458a3908, (q31_t)0xc03d7f44, - (q31_t)0x457db403, (q31_t)0xc03c6a07, (q31_t)0x45712ec7, (q31_t)0xc03b573f, - (q31_t)0x4564a955, (q31_t)0xc03a46ed, (q31_t)0x455823ae, (q31_t)0xc0393910, - (q31_t)0x454b9dd3, (q31_t)0xc0382da8, (q31_t)0x453f17c3, (q31_t)0xc03724b6, - (q31_t)0x4532917f, (q31_t)0xc0361e3a, (q31_t)0x45260b08, (q31_t)0xc0351a33, - (q31_t)0x4519845e, (q31_t)0xc03418a2, (q31_t)0x450cfd82, (q31_t)0xc0331986, - (q31_t)0x45007674, (q31_t)0xc0321ce0, (q31_t)0x44f3ef35, (q31_t)0xc03122b0, - (q31_t)0x44e767c5, (q31_t)0xc0302af5, (q31_t)0x44dae024, (q31_t)0xc02f35b1, - (q31_t)0x44ce5854, (q31_t)0xc02e42e2, (q31_t)0x44c1d054, (q31_t)0xc02d5289, - (q31_t)0x44b54825, (q31_t)0xc02c64a6, (q31_t)0x44a8bfc7, (q31_t)0xc02b7939, - (q31_t)0x449c373c, (q31_t)0xc02a9042, (q31_t)0x448fae83, (q31_t)0xc029a9c1, - (q31_t)0x4483259d, (q31_t)0xc028c5b6, (q31_t)0x44769c8b, (q31_t)0xc027e421, - (q31_t)0x446a134c, (q31_t)0xc0270502, (q31_t)0x445d89e2, (q31_t)0xc0262859, - (q31_t)0x4451004d, (q31_t)0xc0254e27, (q31_t)0x4444768d, (q31_t)0xc024766a, - (q31_t)0x4437eca4, (q31_t)0xc023a124, (q31_t)0x442b6290, (q31_t)0xc022ce54, - (q31_t)0x441ed854, (q31_t)0xc021fdfb, (q31_t)0x44124dee, (q31_t)0xc0213018, - (q31_t)0x4405c361, (q31_t)0xc02064ab, (q31_t)0x43f938ac, (q31_t)0xc01f9bb5, - (q31_t)0x43ecadcf, (q31_t)0xc01ed535, (q31_t)0x43e022cc, (q31_t)0xc01e112b, - (q31_t)0x43d397a3, (q31_t)0xc01d4f99, (q31_t)0x43c70c54, (q31_t)0xc01c907c, - (q31_t)0x43ba80df, (q31_t)0xc01bd3d6, (q31_t)0x43adf546, (q31_t)0xc01b19a7, - (q31_t)0x43a16988, (q31_t)0xc01a61ee, (q31_t)0x4394dda7, (q31_t)0xc019acac, - (q31_t)0x438851a2, (q31_t)0xc018f9e1, (q31_t)0x437bc57b, (q31_t)0xc018498c, - (q31_t)0x436f3931, (q31_t)0xc0179bae, (q31_t)0x4362acc5, (q31_t)0xc016f047, - (q31_t)0x43562038, (q31_t)0xc0164757, (q31_t)0x43499389, (q31_t)0xc015a0dd, - (q31_t)0x433d06bb, (q31_t)0xc014fcda, (q31_t)0x433079cc, (q31_t)0xc0145b4e, - (q31_t)0x4323ecbe, (q31_t)0xc013bc39, (q31_t)0x43175f91, (q31_t)0xc0131f9b, - (q31_t)0x430ad245, (q31_t)0xc0128574, (q31_t)0x42fe44dc, (q31_t)0xc011edc3, - (q31_t)0x42f1b755, (q31_t)0xc011588a, (q31_t)0x42e529b0, (q31_t)0xc010c5c7, - (q31_t)0x42d89bf0, (q31_t)0xc010357c, (q31_t)0x42cc0e13, (q31_t)0xc00fa7a8, - (q31_t)0x42bf801a, (q31_t)0xc00f1c4a, (q31_t)0x42b2f207, (q31_t)0xc00e9364, - (q31_t)0x42a663d8, (q31_t)0xc00e0cf5, (q31_t)0x4299d590, (q31_t)0xc00d88fd, - (q31_t)0x428d472e, (q31_t)0xc00d077c, (q31_t)0x4280b8b3, (q31_t)0xc00c8872, - (q31_t)0x42742a1f, (q31_t)0xc00c0be0, (q31_t)0x42679b73, (q31_t)0xc00b91c4, - (q31_t)0x425b0caf, (q31_t)0xc00b1a20, (q31_t)0x424e7dd4, (q31_t)0xc00aa4f3, - (q31_t)0x4241eee2, (q31_t)0xc00a323d, (q31_t)0x42355fd9, (q31_t)0xc009c1ff, - (q31_t)0x4228d0bb, (q31_t)0xc0095438, (q31_t)0x421c4188, (q31_t)0xc008e8e8, - (q31_t)0x420fb240, (q31_t)0xc008800f, (q31_t)0x420322e3, (q31_t)0xc00819ae, - (q31_t)0x41f69373, (q31_t)0xc007b5c4, (q31_t)0x41ea03ef, (q31_t)0xc0075452, - (q31_t)0x41dd7459, (q31_t)0xc006f556, (q31_t)0x41d0e4b0, (q31_t)0xc00698d3, - (q31_t)0x41c454f5, (q31_t)0xc0063ec6, (q31_t)0x41b7c528, (q31_t)0xc005e731, - (q31_t)0x41ab354b, (q31_t)0xc0059214, (q31_t)0x419ea55d, (q31_t)0xc0053f6e, - (q31_t)0x4192155f, (q31_t)0xc004ef3f, (q31_t)0x41858552, (q31_t)0xc004a188, - (q31_t)0x4178f536, (q31_t)0xc0045648, (q31_t)0x416c650b, (q31_t)0xc0040d80, - (q31_t)0x415fd4d2, (q31_t)0xc003c72f, (q31_t)0x4153448c, (q31_t)0xc0038356, - (q31_t)0x4146b438, (q31_t)0xc00341f4, (q31_t)0x413a23d8, (q31_t)0xc003030a, - (q31_t)0x412d936c, (q31_t)0xc002c697, (q31_t)0x412102f4, (q31_t)0xc0028c9c, - (q31_t)0x41147271, (q31_t)0xc0025519, (q31_t)0x4107e1e3, (q31_t)0xc002200d, - (q31_t)0x40fb514b, (q31_t)0xc001ed78, (q31_t)0x40eec0aa, (q31_t)0xc001bd5c, - (q31_t)0x40e22fff, (q31_t)0xc0018fb6, (q31_t)0x40d59f4c, (q31_t)0xc0016489, - (q31_t)0x40c90e90, (q31_t)0xc0013bd3, (q31_t)0x40bc7dcc, (q31_t)0xc0011594, - (q31_t)0x40afed02, (q31_t)0xc000f1ce, (q31_t)0x40a35c30, (q31_t)0xc000d07e, - (q31_t)0x4096cb58, (q31_t)0xc000b1a7, (q31_t)0x408a3a7b, (q31_t)0xc0009547, - (q31_t)0x407da998, (q31_t)0xc0007b5f, (q31_t)0x407118b0, (q31_t)0xc00063ee, - (q31_t)0x406487c4, (q31_t)0xc0004ef5, (q31_t)0x4057f6d4, (q31_t)0xc0003c74, - (q31_t)0x404b65e1, (q31_t)0xc0002c6a, (q31_t)0x403ed4ea, (q31_t)0xc0001ed8, - (q31_t)0x403243f1, (q31_t)0xc00013bd, (q31_t)0x4025b2f7, (q31_t)0xc0000b1a, - (q31_t)0x401921fb, (q31_t)0xc00004ef, (q31_t)0x400c90fe, (q31_t)0xc000013c, -}; - -/** -* @} end of RealFFT_Table group -*/ - -/** -* @addtogroup RealFFT -* @{ -*/ - -/** -* @brief Initialization function for the Q31 RFFT/RIFFT. -* @param[in, out] *S points to an instance of the Q31 RFFT/RIFFT structure. -* @param[in] fftLenReal length of the FFT. -* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. -* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. -* @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported value. -* -* \par Description: -* \par -* The parameter fftLenReal Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192. -* \par -* The parameter ifftFlagR controls whether a forward or inverse transform is computed. -* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. -* \par -* The parameter bitReverseFlag controls whether output is in normal order or bit reversed order. -* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. -* \par 7 -* This function also initializes Twiddle factor table. -*/ - -arm_status arm_rfft_init_q31( - arm_rfft_instance_q31 * S, - uint32_t fftLenReal, - uint32_t ifftFlagR, - uint32_t bitReverseFlag) -{ - /* Initialise the default arm status */ - arm_status status = ARM_MATH_SUCCESS; - - /* Initialize the Real FFT length */ - S->fftLenReal = (uint16_t) fftLenReal; - - /* Initialize the Twiddle coefficientA pointer */ - S->pTwiddleAReal = (q31_t *) realCoefAQ31; - - /* Initialize the Twiddle coefficientB pointer */ - S->pTwiddleBReal = (q31_t *) realCoefBQ31; - - /* Initialize the Flag for selection of RFFT or RIFFT */ - S->ifftFlagR = (uint8_t) ifftFlagR; - - /* Initialize the Flag for calculation Bit reversal or not */ - S->bitReverseFlagR = (uint8_t) bitReverseFlag; - - /* Initialization of coef modifier depending on the FFT length */ - switch (S->fftLenReal) - { - case 8192U: - S->twidCoefRModifier = 1U; - S->pCfft = &arm_cfft_sR_q31_len4096; - break; - case 4096U: - S->twidCoefRModifier = 2U; - S->pCfft = &arm_cfft_sR_q31_len2048; - break; - case 2048U: - S->twidCoefRModifier = 4U; - S->pCfft = &arm_cfft_sR_q31_len1024; - break; - case 1024U: - S->twidCoefRModifier = 8U; - S->pCfft = &arm_cfft_sR_q31_len512; - break; - case 512U: - S->twidCoefRModifier = 16U; - S->pCfft = &arm_cfft_sR_q31_len256; - break; - case 256U: - S->twidCoefRModifier = 32U; - S->pCfft = &arm_cfft_sR_q31_len128; - break; - case 128U: - S->twidCoefRModifier = 64U; - S->pCfft = &arm_cfft_sR_q31_len64; - break; - case 64U: - S->twidCoefRModifier = 128U; - S->pCfft = &arm_cfft_sR_q31_len32; - break; - case 32U: - S->twidCoefRModifier = 256U; - S->pCfft = &arm_cfft_sR_q31_len16; - break; - default: - /* Reporting argument error if rfftSize is not valid value */ - status = ARM_MATH_ARGUMENT_ERROR; - break; - } - - /* return the status of RFFT Init function */ - return (status); -} - -/** -* @} end of RealFFT group -*/ diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c deleted file mode 100644 index f85cf30..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c +++ /dev/null @@ -1,426 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_q15.c - * Description: RFFT & RIFFT Q15 process function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/* ---------------------------------------------------------------------- - * Internal functions prototypes - * -------------------------------------------------------------------- */ - -void arm_split_rfft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier); - -void arm_split_rifft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier); - -/** -* @addtogroup RealFFT -* @{ -*/ - -/** -* @brief Processing function for the Q15 RFFT/RIFFT. -* @param[in] *S points to an instance of the Q15 RFFT/RIFFT structure. -* @param[in] *pSrc points to the input buffer. -* @param[out] *pDst points to the output buffer. -* @return none. -* -* \par Input an output formats: -* \par -* Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. -* Hence the output format is different for different RFFT sizes. -* The input and output formats for different RFFT sizes and number of bits to upscale are mentioned in the tables below for RFFT and RIFFT: -* \par -* \image html RFFTQ15.gif "Input and Output Formats for Q15 RFFT" -* \par -* \image html RIFFTQ15.gif "Input and Output Formats for Q15 RIFFT" -*/ - -void arm_rfft_q15( - const arm_rfft_instance_q15 * S, - q15_t * pSrc, - q15_t * pDst) -{ - const arm_cfft_instance_q15 *S_CFFT = S->pCfft; - uint32_t i; - uint32_t L2 = S->fftLenReal >> 1; - - /* Calculation of RIFFT of input */ - if (S->ifftFlagR == 1U) - { - /* Real IFFT core process */ - arm_split_rifft_q15(pSrc, L2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - /* Complex IFFT process */ - arm_cfft_q15(S_CFFT, pDst, S->ifftFlagR, S->bitReverseFlagR); - - for(i=0;ifftLenReal;i++) - { - pDst[i] = pDst[i] << 1; - } - } - else - { - /* Calculation of RFFT of input */ - - /* Complex FFT process */ - arm_cfft_q15(S_CFFT, pSrc, S->ifftFlagR, S->bitReverseFlagR); - - /* Real FFT core process */ - arm_split_rfft_q15(pSrc, L2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } -} - -/** -* @} end of RealFFT group -*/ - -/** -* @brief Core Real FFT process -* @param *pSrc points to the input buffer. -* @param fftLen length of FFT. -* @param *pATable points to the A twiddle Coef buffer. -* @param *pBTable points to the B twiddle Coef buffer. -* @param *pDst points to the output buffer. -* @param modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -* The function implements a Real FFT -*/ - -void arm_split_rfft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q15_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q15_t *pSrc1, *pSrc2; -#if defined (ARM_MATH_DSP) - q15_t *pD1, *pD2; -#endif - - // pSrc[2U * fftLen] = pSrc[0]; - // pSrc[(2U * fftLen) + 1U] = pSrc[1]; - - pCoefA = &pATable[modifier * 2U]; - pCoefB = &pBTable[modifier * 2U]; - - pSrc1 = &pSrc[2]; - pSrc2 = &pSrc[(2U * fftLen) - 2U]; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - i = 1U; - pD1 = pDst + 2; - pD2 = pDst + (4U * fftLen) - 2; - - for(i = fftLen - 1; i > 0; i--) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - -#ifndef ARM_MATH_BIG_ENDIAN - - /* pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] */ - outR = __SMUSD(*__SIMD32(pSrc1), *__SIMD32(pCoefA)); - -#else - - /* -(pSrc[2 * i + 1] * pATable[2 * i + 1] - pSrc[2 * i] * pATable[2 * i]) */ - outR = -(__SMUSD(*__SIMD32(pSrc1), *__SIMD32(pCoefA))); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]) */ - outR = __SMLAD(*__SIMD32(pSrc2), *__SIMD32(pCoefB), outR) >> 16U; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - -#ifndef ARM_MATH_BIG_ENDIAN - - outI = __SMUSDX(*__SIMD32(pSrc2)--, *__SIMD32(pCoefB)); - -#else - - outI = __SMUSDX(*__SIMD32(pCoefB), *__SIMD32(pSrc2)--); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] */ - outI = __SMLADX(*__SIMD32(pSrc1)++, *__SIMD32(pCoefA), outI); - - /* write output */ - *pD1++ = (q15_t) outR; - *pD1++ = outI >> 16U; - - /* write complex conjugate output */ - pD2[0] = (q15_t) outR; - pD2[1] = -(outI >> 16U); - pD2 -= 2; - - /* update coefficient pointer */ - pCoefB = pCoefB + (2U * modifier); - pCoefA = pCoefA + (2U * modifier); - } - - pDst[2U * fftLen] = (pSrc[0] - pSrc[1]) >> 1; - pDst[(2U * fftLen) + 1U] = 0; - - pDst[0] = (pSrc[0] + pSrc[1]) >> 1; - pDst[1] = 0; - -#else - - /* Run the below code for Cortex-M0 */ - i = 1U; - - while (i < fftLen) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - outR = *pSrc1 * *pCoefA; - outR = outR - (*(pSrc1 + 1) * *(pCoefA + 1)); - outR = outR + (*pSrc2 * *pCoefB); - outR = (outR + (*(pSrc2 + 1) * *(pCoefB + 1))) >> 16; - - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - - outI = *pSrc2 * *(pCoefB + 1); - outI = outI - (*(pSrc2 + 1) * *pCoefB); - outI = outI + (*(pSrc1 + 1) * *pCoefA); - outI = outI + (*pSrc1 * *(pCoefA + 1)); - - /* update input pointers */ - pSrc1 += 2U; - pSrc2 -= 2U; - - /* write output */ - pDst[2U * i] = (q15_t) outR; - pDst[(2U * i) + 1U] = outI >> 16U; - - /* write complex conjugate output */ - pDst[(4U * fftLen) - (2U * i)] = (q15_t) outR; - pDst[((4U * fftLen) - (2U * i)) + 1U] = -(outI >> 16U); - - /* update coefficient pointer */ - pCoefB = pCoefB + (2U * modifier); - pCoefA = pCoefA + (2U * modifier); - - i++; - } - - pDst[2U * fftLen] = (pSrc[0] - pSrc[1]) >> 1; - pDst[(2U * fftLen) + 1U] = 0; - - pDst[0] = (pSrc[0] + pSrc[1]) >> 1; - pDst[1] = 0; - -#endif /* #if defined (ARM_MATH_DSP) */ -} - - -/** -* @brief Core Real IFFT process -* @param[in] *pSrc points to the input buffer. -* @param[in] fftLen length of FFT. -* @param[in] *pATable points to the twiddle Coef A buffer. -* @param[in] *pBTable points to the twiddle Coef B buffer. -* @param[out] *pDst points to the output buffer. -* @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -* The function implements a Real IFFT -*/ -void arm_split_rifft_q15( - q15_t * pSrc, - uint32_t fftLen, - q15_t * pATable, - q15_t * pBTable, - q15_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q15_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q15_t *pSrc1, *pSrc2; - q15_t *pDst1 = &pDst[0]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - pSrc1 = &pSrc[0]; - pSrc2 = &pSrc[2U * fftLen]; - -#if defined (ARM_MATH_DSP) - - /* Run the below code for Cortex-M4 and Cortex-M3 */ - i = fftLen; - - while (i > 0U) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - - -#ifndef ARM_MATH_BIG_ENDIAN - - /* pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]) */ - outR = __SMUSD(*__SIMD32(pSrc2), *__SIMD32(pCoefB)); - -#else - - /* -(-pIn[2 * n - 2 * i] * pBTable[2 * i] + - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1])) */ - outR = -(__SMUSD(*__SIMD32(pSrc2), *__SIMD32(pCoefB))); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] */ - outR = __SMLAD(*__SIMD32(pSrc1), *__SIMD32(pCoefA), outR) >> 16U; - - /* - -pIn[2 * n - 2 * i] * pBTable[2 * i + 1] + - pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - outI = __SMUADX(*__SIMD32(pSrc2)--, *__SIMD32(pCoefB)); - - /* pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] */ - -#ifndef ARM_MATH_BIG_ENDIAN - - outI = __SMLSDX(*__SIMD32(pCoefA), *__SIMD32(pSrc1)++, -outI); - -#else - - outI = __SMLSDX(*__SIMD32(pSrc1)++, *__SIMD32(pCoefA), -outI); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - /* write output */ - -#ifndef ARM_MATH_BIG_ENDIAN - - *__SIMD32(pDst1)++ = __PKHBT(outR, (outI >> 16U), 16); - -#else - - *__SIMD32(pDst1)++ = __PKHBT((outI >> 16U), outR, 16); - -#endif /* #ifndef ARM_MATH_BIG_ENDIAN */ - - /* update coefficient pointer */ - pCoefB = pCoefB + (2U * modifier); - pCoefA = pCoefA + (2U * modifier); - - i--; - } -#else - /* Run the below code for Cortex-M0 */ - i = fftLen; - - while (i > 0U) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - outR = *pSrc2 * *pCoefB; - outR = outR - (*(pSrc2 + 1) * *(pCoefB + 1)); - outR = outR + (*pSrc1 * *pCoefA); - outR = (outR + (*(pSrc1 + 1) * *(pCoefA + 1))) >> 16; - - /* - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - - outI = *(pSrc1 + 1) * *pCoefA; - outI = outI - (*pSrc1 * *(pCoefA + 1)); - outI = outI - (*pSrc2 * *(pCoefB + 1)); - outI = outI - (*(pSrc2 + 1) * *(pCoefB)); - - /* update input pointers */ - pSrc1 += 2U; - pSrc2 -= 2U; - - /* write output */ - *pDst1++ = (q15_t) outR; - *pDst1++ = (q15_t) (outI >> 16); - - /* update coefficient pointer */ - pCoefB = pCoefB + (2U * modifier); - pCoefA = pCoefA + (2U * modifier); - - i--; - } -#endif /* #if defined (ARM_MATH_DSP) */ -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c b/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c deleted file mode 100644 index 5386140..0000000 --- a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c +++ /dev/null @@ -1,283 +0,0 @@ -/* ---------------------------------------------------------------------- - * Project: CMSIS DSP Library - * Title: arm_rfft_q31.c - * Description: FFT & RIFFT Q31 process function - * - * $Date: 27. January 2017 - * $Revision: V.1.5.1 - * - * Target Processor: Cortex-M cores - * -------------------------------------------------------------------- */ -/* - * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the License); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "arm_math.h" - -/* ---------------------------------------------------------------------- - * Internal functions prototypes - * -------------------------------------------------------------------- */ - -void arm_split_rfft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier); - -void arm_split_rifft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier); - -/** -* @addtogroup RealFFT -* @{ -*/ - -/** -* @brief Processing function for the Q31 RFFT/RIFFT. -* @param[in] *S points to an instance of the Q31 RFFT/RIFFT structure. -* @param[in] *pSrc points to the input buffer. -* @param[out] *pDst points to the output buffer. -* @return none. -* -* \par Input an output formats: -* \par -* Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. -* Hence the output format is different for different RFFT sizes. -* The input and output formats for different RFFT sizes and number of bits to upscale are mentioned in the tables below for RFFT and RIFFT: -* \par -* \image html RFFTQ31.gif "Input and Output Formats for Q31 RFFT" -* -* \par -* \image html RIFFTQ31.gif "Input and Output Formats for Q31 RIFFT" -*/ -void arm_rfft_q31( - const arm_rfft_instance_q31 * S, - q31_t * pSrc, - q31_t * pDst) -{ - const arm_cfft_instance_q31 *S_CFFT = S->pCfft; - uint32_t i; - uint32_t L2 = S->fftLenReal >> 1; - - /* Calculation of RIFFT of input */ - if (S->ifftFlagR == 1U) - { - /* Real IFFT core process */ - arm_split_rifft_q31(pSrc, L2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - - /* Complex IFFT process */ - arm_cfft_q31(S_CFFT, pDst, S->ifftFlagR, S->bitReverseFlagR); - - for(i=0;ifftLenReal;i++) - { - pDst[i] = pDst[i] << 1; - } - } - else - { - /* Calculation of RFFT of input */ - - /* Complex FFT process */ - arm_cfft_q31(S_CFFT, pSrc, S->ifftFlagR, S->bitReverseFlagR); - - /* Real FFT core process */ - arm_split_rfft_q31(pSrc, L2, S->pTwiddleAReal, - S->pTwiddleBReal, pDst, S->twidCoefRModifier); - } -} - -/** -* @} end of RealFFT group -*/ - -/** -* @brief Core Real FFT process -* @param[in] *pSrc points to the input buffer. -* @param[in] fftLen length of FFT. -* @param[in] *pATable points to the twiddle Coef A buffer. -* @param[in] *pBTable points to the twiddle Coef B buffer. -* @param[out] *pDst points to the output buffer. -* @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -*/ -void arm_split_rfft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier) -{ - uint32_t i; /* Loop Counter */ - q31_t outR, outI; /* Temporary variables for output */ - q31_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q31_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - q31_t *pOut1 = &pDst[2], *pOut2 = &pDst[(4U * fftLen) - 1U]; - q31_t *pIn1 = &pSrc[2], *pIn2 = &pSrc[(2U * fftLen) - 1U]; - - /* Init coefficient pointers */ - pCoefA = &pATable[modifier * 2U]; - pCoefB = &pBTable[modifier * 2U]; - - i = fftLen - 1U; - - while (i > 0U) - { - /* - outR = (pSrc[2 * i] * pATable[2 * i] - pSrc[2 * i + 1] * pATable[2 * i + 1] - + pSrc[2 * n - 2 * i] * pBTable[2 * i] + - pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - */ - - /* outI = (pIn[2 * i + 1] * pATable[2 * i] + pIn[2 * i] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); */ - - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pSrc[2 * i] * pATable[2 * i] */ - mult_32x32_keep32_R(outR, *pIn1, CoefA1); - - /* outI = pIn[2 * i] * pATable[2 * i + 1] */ - mult_32x32_keep32_R(outI, *pIn1++, CoefA2); - - /* - pSrc[2 * i + 1] * pATable[2 * i + 1] */ - multSub_32x32_keep32_R(outR, *pIn1, CoefA2); - - /* (pIn[2 * i + 1] * pATable[2 * i] */ - multAcc_32x32_keep32_R(outI, *pIn1++, CoefA1); - - /* pSrc[2 * n - 2 * i] * pBTable[2 * i] */ - multSub_32x32_keep32_R(outR, *pIn2, CoefA2); - CoefB1 = *pCoefB; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] */ - multSub_32x32_keep32_R(outI, *pIn2--, CoefB1); - - /* pSrc[2 * n - 2 * i + 1] * pBTable[2 * i + 1] */ - multAcc_32x32_keep32_R(outR, *pIn2, CoefB1); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - multSub_32x32_keep32_R(outI, *pIn2--, CoefA2); - - /* write output */ - *pOut1++ = outR; - *pOut1++ = outI; - - /* write complex conjugate output */ - *pOut2-- = -outI; - *pOut2-- = outR; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2U); - pCoefA = pCoefA + ((modifier * 2U) - 1U); - - i--; - } - pDst[2U * fftLen] = (pSrc[0] - pSrc[1]) >> 1; - pDst[(2U * fftLen) + 1U] = 0; - - pDst[0] = (pSrc[0] + pSrc[1]) >> 1; - pDst[1] = 0; -} - -/** -* @brief Core Real IFFT process -* @param[in] *pSrc points to the input buffer. -* @param[in] fftLen length of FFT. -* @param[in] *pATable points to the twiddle Coef A buffer. -* @param[in] *pBTable points to the twiddle Coef B buffer. -* @param[out] *pDst points to the output buffer. -* @param[in] modifier twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. -* @return none. -*/ -void arm_split_rifft_q31( - q31_t * pSrc, - uint32_t fftLen, - q31_t * pATable, - q31_t * pBTable, - q31_t * pDst, - uint32_t modifier) -{ - q31_t outR, outI; /* Temporary variables for output */ - q31_t *pCoefA, *pCoefB; /* Temporary pointers for twiddle factors */ - q31_t CoefA1, CoefA2, CoefB1; /* Temporary variables for twiddle coefficients */ - q31_t *pIn1 = &pSrc[0], *pIn2 = &pSrc[(2U * fftLen) + 1U]; - - pCoefA = &pATable[0]; - pCoefB = &pBTable[0]; - - while (fftLen > 0U) - { - /* - outR = (pIn[2 * i] * pATable[2 * i] + pIn[2 * i + 1] * pATable[2 * i + 1] + - pIn[2 * n - 2 * i] * pBTable[2 * i] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1]); - - outI = (pIn[2 * i + 1] * pATable[2 * i] - pIn[2 * i] * pATable[2 * i + 1] - - pIn[2 * n - 2 * i] * pBTable[2 * i + 1] - - pIn[2 * n - 2 * i + 1] * pBTable[2 * i]); - */ - CoefA1 = *pCoefA++; - CoefA2 = *pCoefA; - - /* outR = (pIn[2 * i] * pATable[2 * i] */ - mult_32x32_keep32_R(outR, *pIn1, CoefA1); - - /* - pIn[2 * i] * pATable[2 * i + 1] */ - mult_32x32_keep32_R(outI, *pIn1++, -CoefA2); - - /* pIn[2 * i + 1] * pATable[2 * i + 1] */ - multAcc_32x32_keep32_R(outR, *pIn1, CoefA2); - - /* pIn[2 * i + 1] * pATable[2 * i] */ - multAcc_32x32_keep32_R(outI, *pIn1++, CoefA1); - - /* pIn[2 * n - 2 * i] * pBTable[2 * i] */ - multAcc_32x32_keep32_R(outR, *pIn2, CoefA2); - CoefB1 = *pCoefB; - - /* pIn[2 * n - 2 * i] * pBTable[2 * i + 1] */ - multSub_32x32_keep32_R(outI, *pIn2--, CoefB1); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i + 1] */ - multAcc_32x32_keep32_R(outR, *pIn2, CoefB1); - - /* pIn[2 * n - 2 * i + 1] * pBTable[2 * i] */ - multAcc_32x32_keep32_R(outI, *pIn2--, CoefA2); - - /* write output */ - *pDst++ = outR; - *pDst++ = outI; - - /* update coefficient pointer */ - pCoefB = pCoefB + (modifier * 2U); - pCoefA = pCoefA + ((modifier * 2U) - 1U); - - /* Decrement loop count */ - fftLen--; - } -} diff --git a/HAL_N_Middlewares/Drivers/CMSIS/Lib/GCC/libarm_cortexM4lf_math.a b/HAL_N_Middlewares/Drivers/CMSIS/Lib/GCC/libarm_cortexM4lf_math.a deleted file mode 100644 index d8c36583072fbd0ad929fe470a19e31e62a94565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3097502 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ξ&@jKvF0r@3u6KAEh4^i+3R=iifur%!dGfBbvq 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 z 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

X__tqZI)JzmRHCO*fZPr`_MLY9 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

3D83>ZKZXb!KZYPDTC-ioe<5i67J~l$S3TXY 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

tC|a-?Y2!s}}m4Tnjc>=yz&&aHEC3r?q|Fw$T4{ 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

8S=Cobfv#!rk!`j&V7P=&rhm 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


bsaPw3FeC1y^Rl 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≷A~AK9MgD)l5g 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%0DObM1Eg-nDkv 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

-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%0AdcSR>vOn&-C*%%37-<^5W$eLlrMvdh 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 8); - pbuf[2] = (uint8_t)(linecoding.bitrate >> 16); - pbuf[3] = (uint8_t)(linecoding.bitrate >> 24); - pbuf[4] = linecoding.format; - pbuf[5] = linecoding.paritytype; - pbuf[6] = linecoding.datatype; - - /* Add your code here */ - break; - - case CDC_SET_CONTROL_LINE_STATE: - /* Add your code here */ - break; - - case CDC_SEND_BREAK: - /* Add your code here */ - break; - - default: - break; - } - - return (0); -} - -/** - * @brief TEMPLATE_Receive - * Data received over USB OUT endpoint are sent over CDC interface - * through this function. - * - * @note - * This function will issue a NAK packet on any OUT packet received on - * USB endpoint until exiting this function. If you exit this function - * before transfer is complete on CDC interface (ie. using DMA controller) - * it will result in receiving more data while previous ones are still - * not sent. - * - * @param Buf: Buffer of data to be received - * @param Len: Number of data received (in bytes) - * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t TEMPLATE_Receive(uint8_t *Buf, uint32_t *Len) -{ - UNUSED(Buf); - UNUSED(Len); - - return (0); -} - -/** - * @brief TEMPLATE_TransmitCplt - * Data transmitted callback - * - * @note - * This function is IN transfer complete callback used to inform user that - * the submitted Data is successfully sent over USB. - * - * @param Buf: Buffer of data to be received - * @param Len: Number of data received (in bytes) - * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t TEMPLATE_TransmitCplt(uint8_t *Buf, uint32_t *Len, uint8_t epnum) -{ - UNUSED(Buf); - UNUSED(Len); - UNUSED(epnum); - - return (0); -} - -/** - * @} - */ - -/** - * @} - */ - -/** - * @} - */ - diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_conf_template.h b/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_conf_template.h deleted file mode 100644 index fe5d6be..0000000 --- a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_conf_template.h +++ /dev/null @@ -1,222 +0,0 @@ -/** - ****************************************************************************** - * @file usbd_conf_template.h - * @author MCD Application Team - * @brief Header file for the usbd_conf_template.c file - ****************************************************************************** - * @attention - * - * Copyright (c) 2015 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __USBD_CONF_TEMPLATE_H -#define __USBD_CONF_TEMPLATE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "stm32fxxx.h" /* replace 'stm32xxx' with your HAL driver header filename, ex: stm32f4xx.h */ -#include -#include -#include - -/** @addtogroup STM32_USB_DEVICE_LIBRARY - * @{ - */ - -/** @defgroup USBD_CONF - * @brief USB device low level driver configuration file - * @{ - */ - -/** @defgroup USBD_CONF_Exported_Defines - * @{ - */ - -#define USBD_MAX_NUM_INTERFACES 1U -#define USBD_MAX_NUM_CONFIGURATION 1U -#define USBD_MAX_STR_DESC_SIZ 0x100U -#define USBD_SELF_POWERED 1U -#define USBD_DEBUG_LEVEL 2U - -/* ECM, RNDIS, DFU Class Config */ -#define USBD_SUPPORT_USER_STRING_DESC 1U - -/* BillBoard Class Config */ -#define USBD_CLASS_USER_STRING_DESC 1U -#define USBD_CLASS_BOS_ENABLED 1U -#define USB_BB_MAX_NUM_ALT_MODE 0x2U - -/* MSC Class Config */ -#define MSC_MEDIA_PACKET 8192U - -/* CDC Class Config */ -#define USBD_CDC_INTERVAL 2000U - -/* DFU Class Config */ -#define USBD_DFU_MAX_ITF_NUM 1U -#define USBD_DFU_XFERS_IZE 1024U - -/* AUDIO Class Config */ -#define USBD_AUDIO_FREQ 22100U - -/* CustomHID Class Config */ -#define CUSTOM_HID_HS_BINTERVAL 0x05U -#define CUSTOM_HID_FS_BINTERVAL 0x05U -#define USBD_CUSTOMHID_OUTREPORT_BUF_SIZE 0x02U -#define USBD_CUSTOM_HID_REPORT_DESC_SIZE 163U - -/* VIDEO Class Config */ -#define UVC_1_1 /* #define UVC_1_0 */ - -/* To be used only with YUY2 and NV12 Video format, shouldn't be defined for MJPEG format */ -#define USBD_UVC_FORMAT_UNCOMPRESSED - -#ifdef USBD_UVC_FORMAT_UNCOMPRESSED -#define UVC_BITS_PER_PIXEL 12U -#define UVC_UNCOMPRESSED_GUID UVC_GUID_NV12 /* UVC_GUID_YUY2 */ - -/* refer to Table 3-18 Color Matching Descriptor video class v1.1 */ -#define UVC_COLOR_PRIMARIE 0x01U -#define UVC_TFR_CHARACTERISTICS 0x01U -#define UVC_MATRIX_COEFFICIENTS 0x04U -#endif /* USBD_UVC_FORMAT_UNCOMPRESSED */ - -/* Video Stream frame width and height */ -#define UVC_WIDTH 176U -#define UVC_HEIGHT 144U - -/* bEndpointAddress in Endpoint Descriptor */ -#define UVC_IN_EP 0x81U - -#define UVC_CAM_FPS_FS 10U -#define UVC_CAM_FPS_HS 5U - -#define UVC_ISO_FS_MPS 512U -#define UVC_ISO_HS_MPS 512U - -#define UVC_PACKET_SIZE UVC_ISO_FS_MPS -/* To be used with Device Only IP supporting double buffer mode */ -/* #define UVC_HEADER_PACKET_CNT 0x02U */ -/* #define UVC_PACKET_SIZE (UVC_ISO_FS_MPS * UVC_HEADER_PACKET_CNT) */ - -#define UVC_MAX_FRAME_SIZE (UVC_WIDTH * UVC_HEIGHT * 16U / 8U) - -/** @defgroup USBD_Exported_Macros - * @{ - */ - -/* Memory management macros make sure to use static memory allocation */ -/** Alias for memory allocation. */ -#define USBD_malloc (void *)USBD_static_malloc - -/** Alias for memory release. */ -#define USBD_free USBD_static_free - -/** Alias for memory set. */ -#define USBD_memset memset - -/** Alias for memory copy. */ -#define USBD_memcpy memcpy - -/** Alias for delay. */ -#define USBD_Delay HAL_Delay - -/* DEBUG macros */ -#if (USBD_DEBUG_LEVEL > 0U) -#define USBD_UsrLog(...) do { \ - printf(__VA_ARGS__); \ - printf("\n"); \ - } while (0) -#else -#define USBD_UsrLog(...) do {} while (0) -#endif /* (USBD_DEBUG_LEVEL > 0U) */ - -#if (USBD_DEBUG_LEVEL > 1U) - -#define USBD_ErrLog(...) do { \ - printf("ERROR: ") ; \ - printf(__VA_ARGS__); \ - printf("\n"); \ - } while (0) -#else -#define USBD_ErrLog(...) do {} while (0) -#endif /* (USBD_DEBUG_LEVEL > 1U) */ - -#if (USBD_DEBUG_LEVEL > 2U) -#define USBD_DbgLog(...) do { \ - printf("DEBUG : ") ; \ - printf(__VA_ARGS__); \ - printf("\n"); \ - } while (0) -#else -#define USBD_DbgLog(...) do {} while (0) -#endif /* (USBD_DEBUG_LEVEL > 2U) */ - -/** - * @} - */ - - - -/** - * @} - */ - - -/** @defgroup USBD_CONF_Exported_Types - * @{ - */ -/** - * @} - */ - - -/** @defgroup USBD_CONF_Exported_Macros - * @{ - */ -/** - * @} - */ - -/** @defgroup USBD_CONF_Exported_Variables - * @{ - */ -/** - * @} - */ - -/** @defgroup USBD_CONF_Exported_FunctionsPrototype - * @{ - */ -/* Exported functions -------------------------------------------------------*/ -void *USBD_static_malloc(uint32_t size); -void USBD_static_free(void *p); -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __USBD_CONF_TEMPLATE_H */ - - -/** - * @} - */ - -/** - * @} - */ diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_desc_template.h b/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_desc_template.h deleted file mode 100644 index e392305..0000000 --- a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_desc_template.h +++ /dev/null @@ -1,61 +0,0 @@ -/** - ****************************************************************************** - * @file usbd_desc_template.h - * @author MCD Application Team - * @brief Header for usbd_desc_template.c module - ****************************************************************************** - * @attention - * - * Copyright (c) 2015 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __USBD_DESC_TEMPLATE_H -#define __USBD_DESC_TEMPLATE_H - -/* Includes ------------------------------------------------------------------*/ -#include "usbd_def.h" - -/* Exported types ------------------------------------------------------------*/ -/* Exported constants --------------------------------------------------------*/ -#define DEVICE_ID1 (UID_BASE) -#define DEVICE_ID2 (UID_BASE + 0x4U) -#define DEVICE_ID3 (UID_BASE + 0x8U) - -/* - * USB Billboard Class USER string desc Defines Template - * index should start form 0x10 to avoid using the reserved device string desc indexes - */ -#if (USBD_CLASS_USER_STRING_DESC == 1) -#define USBD_BB_IF_STRING_INDEX 0x10U -#define USBD_BB_URL_STRING_INDEX 0x11U -#define USBD_BB_ALTMODE0_STRING_INDEX 0x12U -#define USBD_BB_ALTMODE1_STRING_INDEX 0x13U -/* Add Specific USER string Desc */ -#define USBD_BB_IF_STR_DESC (uint8_t *)"STM32 BillBoard Interface" -#define USBD_BB_URL_STR_DESC (uint8_t *)"www.st.com" -#define USBD_BB_ALTMODE0_STR_DESC (uint8_t *)"STM32 Alternate0 Mode" -#define USBD_BB_ALTMODE1_STR_DESC (uint8_t *)"STM32 Alternate1 Mode" -#endif /* USBD_CLASS_USER_STRING_DESC */ - -#define USB_SIZ_STRING_SERIAL 0x1AU - -#if (USBD_LPM_ENABLED == 1) -#define USB_SIZ_BOS_DESC 0x0CU -#elif (USBD_CLASS_BOS_ENABLED == 1) -#define USB_SIZ_BOS_DESC 0x5DU -#endif /* USBD_LPM_ENABLED */ - -/* Exported macro ------------------------------------------------------------*/ -/* Exported functions ------------------------------------------------------- */ -extern USBD_DescriptorsTypeDef XXX_Desc; /* Replace 'XXX_Desc' with your active USB device class, ex: HID_Desc */ - -#endif /* __USBD_DESC_TEMPLATE_H*/ - diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_conf_template.c b/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_conf_template.c deleted file mode 100644 index c99b528..0000000 --- a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_conf_template.c +++ /dev/null @@ -1,282 +0,0 @@ -/** - ****************************************************************************** - * @file usbd_conf_template.c - * @author MCD Application Team - * @brief USB Device configuration and interface file - * This template should be copied to the user folder, - * renamed and customized following user needs. - ****************************************************************************** - * @attention - * - * Copyright (c) 2015 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "usbd_core.h" -#include "usbd_hid.h" /* Include class header file */ -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -/* Private function prototypes -----------------------------------------------*/ -/* Private functions ---------------------------------------------------------*/ -/** - * @brief Initializes the Low Level portion of the Device driver. - * @param pdev: Device handle - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev) -{ - UNUSED(pdev); - - return USBD_OK; -} - -/** - * @brief De-Initializes the Low Level portion of the Device driver. - * @param pdev: Device handle - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev) -{ - UNUSED(pdev); - - return USBD_OK; -} - -/** - * @brief Starts the Low Level portion of the Device driver. - * @param pdev: Device handle - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev) -{ - UNUSED(pdev); - - return USBD_OK; -} - -/** - * @brief Stops the Low Level portion of the Device driver. - * @param pdev: Device handle - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev) -{ - UNUSED(pdev); - - return USBD_OK; -} - -/** - * @brief Opens an endpoint of the Low Level Driver. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @param ep_type: Endpoint Type - * @param ep_mps: Endpoint Max Packet Size - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, - uint8_t ep_type, uint16_t ep_mps) -{ - UNUSED(pdev); - UNUSED(ep_addr); - UNUSED(ep_type); - UNUSED(ep_mps); - - return USBD_OK; -} - -/** - * @brief Closes an endpoint of the Low Level Driver. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return USBD_OK; -} - -/** - * @brief Flushes an endpoint of the Low Level Driver. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return USBD_OK; -} - -/** - * @brief Sets a Stall condition on an endpoint of the Low Level Driver. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return USBD_OK; -} - -/** - * @brief Clears a Stall condition on an endpoint of the Low Level Driver. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, - uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return USBD_OK; -} - -/** - * @brief Returns Stall condition. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval Stall (1: Yes, 0: No) - */ -uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return 0U; -} - -/** - * @brief Assigns a USB address to the device. - * @param pdev: Device handle - * @param dev_addr: Endpoint Number - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, - uint8_t dev_addr) -{ - UNUSED(pdev); - UNUSED(dev_addr); - - return USBD_OK; -} - -/** - * @brief Transmits data over an endpoint. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @param pbuf: Pointer to data to be sent - * @param size: Data size - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, - uint8_t *pbuf, uint32_t size) -{ - UNUSED(pdev); - UNUSED(ep_addr); - UNUSED(pbuf); - UNUSED(size); - - return USBD_OK; -} - -/** - * @brief Prepares an endpoint for reception. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @param pbuf: Pointer to data to be received - * @param size: Data size - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, - uint8_t ep_addr, uint8_t *pbuf, - uint32_t size) -{ - UNUSED(pdev); - UNUSED(ep_addr); - UNUSED(pbuf); - UNUSED(size); - - return USBD_OK; -} - -/** - * @brief Returns the last transferred packet size. - * @param pdev: Device handle - * @param ep_addr: Endpoint Number - * @retval Received Data Size - */ -uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr) -{ - UNUSED(pdev); - UNUSED(ep_addr); - - return 0U; -} - -#ifdef USBD_HS_TESTMODE_ENABLE -/** - * @brief Set High speed Test mode. - * @param pdev: Device handle - * @param testmode: test mode - * @retval USBD Status - */ -USBD_StatusTypeDef USBD_LL_SetTestMode(USBD_HandleTypeDef *pdev, uint8_t testmode) -{ - UNUSED(pdev); - UNUSED(testmode); - - return USBD_OK; -} -#endif /* USBD_HS_TESTMODE_ENABLE */ - -/** - * @brief Static single allocation. - * @param size: Size of allocated memory - * @retval None - */ -void *USBD_static_malloc(uint32_t size) -{ - static uint32_t mem[(sizeof(USBD_HID_HandleTypeDef) / 4) + 1]; /* On 32-bit boundary */ - return mem; -} - -/** - * @brief Dummy memory free - * @param p: Pointer to allocated memory address - * @retval None - */ -void USBD_static_free(void *p) -{ - -} - -/** - * @brief Delays routine for the USB Device Library. - * @param Delay: Delay in ms - * @retval None - */ -void USBD_LL_Delay(uint32_t Delay) -{ - UNUSED(Delay); -} - diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_desc_template.c b/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_desc_template.c deleted file mode 100644 index b80f511..0000000 --- a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_desc_template.c +++ /dev/null @@ -1,452 +0,0 @@ -/** - ****************************************************************************** - * @file usbd_desc_template.c - * @author MCD Application Team - * @brief This file provides the USBD descriptors and string formatting method. - * This template should be copied to the user folder, - * renamed and customized following user needs. - ****************************************************************************** - * @attention - * - * Copyright (c) 2015 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "usbd_core.h" -#include "usbd_desc.h" -#include "usbd_conf.h" - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -#define USBD_VID 0x0483 -#define USBD_PID 0xaaaa /* Replace '0xaaaa' with your device product ID */ -#define USBD_LANGID_STRING 0xbbb /* Replace '0xbbb' with your device language ID */ -#define USBD_MANUFACTURER_STRING "xxxxx" /* Add your manufacturer string */ -#define USBD_PRODUCT_HS_STRING "xxxxx" /* Add your product High Speed string */ -#define USBD_PRODUCT_FS_STRING "xxxxx" /* Add your product Full Speed string */ -#define USBD_CONFIGURATION_HS_STRING "xxxxx" /* Add your configuration High Speed string */ -#define USBD_INTERFACE_HS_STRING "xxxxx" /* Add your Interface High Speed string */ -#define USBD_CONFIGURATION_FS_STRING "xxxxx" /* Add your configuration Full Speed string */ -#define USBD_INTERFACE_FS_STRING "xxxxx" /* Add your Interface Full Speed string */ - -/* Private macro -------------------------------------------------------------*/ -/* Private function prototypes -----------------------------------------------*/ -uint8_t *USBD_Class_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -uint8_t *USBD_Class_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - -#if (USBD_CLASS_USER_STRING_DESC == 1) -uint8_t *USBD_Class_UserStrDescriptor(USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length); -#endif /* USB_CLASS_USER_STRING_DESC */ - -#if ((USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1)) -uint8_t *USBD_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); -#endif /* (USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1) */ - -/* Private variables ---------------------------------------------------------*/ -USBD_DescriptorsTypeDef Class_Desc = -{ - USBD_Class_DeviceDescriptor, - USBD_Class_LangIDStrDescriptor, - USBD_Class_ManufacturerStrDescriptor, - USBD_Class_ProductStrDescriptor, - USBD_Class_SerialStrDescriptor, - USBD_Class_ConfigStrDescriptor, - USBD_Class_InterfaceStrDescriptor, -#if (USBD_CLASS_USER_STRING_DESC == 1) - USBD_CLASS_UserStrDescriptor, -#endif /* USB_CLASS_USER_STRING_DESC */ - -#if ((USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1)) - USBD_USR_BOSDescriptor, -#endif /* (USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1) */ -}; - -/* USB Standard Device Descriptor */ -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = -{ - 0x12, /* bLength */ - USB_DESC_TYPE_DEVICE, /* bDescriptorType */ -#if ((USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1)) - 0x01, /*bcdUSB */ /* changed to USB version 2.01 - in order to support BOS Desc */ -#else - 0x00, /* bcdUSB */ -#endif /* (USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1) */ - 0x02, - 0x00, /* bDeviceClass */ - 0x00, /* bDeviceSubClass */ - 0x00, /* bDeviceProtocol */ - USB_MAX_EP0_SIZE, /* bMaxPacketSize */ - LOBYTE(USBD_VID), /* idVendor */ - HIBYTE(USBD_VID), /* idVendor */ - LOBYTE(USBD_PID), /* idVendor */ - HIBYTE(USBD_PID), /* idVendor */ - 0x00, /* bcdDevice rel. 2.00 */ - 0x02, - USBD_IDX_MFC_STR, /* Index of manufacturer string */ - USBD_IDX_PRODUCT_STR, /* Index of product string */ - USBD_IDX_SERIAL_STR, /* Index of serial number string */ - USBD_MAX_NUM_CONFIGURATION /* bNumConfigurations */ -}; /* USB_DeviceDescriptor */ - - -/* USB Device LPM BOS descriptor */ -#if (USBD_LPM_ENABLED == 1) -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END = -{ - 0x5, - USB_DESC_TYPE_BOS, - 0xC, - 0x0, - 0x1, /* 1 device capability */ - /* device capability */ - 0x7, - USB_DEVICE_CAPABITY_TYPE, - 0x2, - 0x6, /*LPM capability bit set */ - 0x0, - 0x0, - 0x0 -}; -#endif /* USBD_LPM_ENABLED */ - -/* USB Device Billboard BOS descriptor Template */ -#if (USBD_CLASS_BOS_ENABLED == 1) -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END = -{ - 0x05, /* bLength */ - USB_DESC_TYPE_BOS, /* Device Descriptor Type */ - USB_SIZ_BOS_DESC, /* Total length of BOS descriptor and all of its sub descs */ - 0x00, - 0x04, /* The number of separate device capability descriptors in the BOS */ - - /* ----------- Device Capability Descriptor: CONTAINER_ID ---------- */ - 0x14, /* bLength */ - 0x10, /* bDescriptorType: DEVICE CAPABILITY Type */ - 0x04, /* bDevCapabilityType: CONTAINER_ID */ - 0x00, /* bReserved */ - 0xa7, 0xd6, 0x1b, 0xfa, /* ContainerID: This is a Unique 128-bit number GUID */ - 0x91, 0xa6, 0xa8, 0x4e, - 0xa8, 0x21, 0x9f, 0x2b, - 0xaf, 0xf7, 0x94, 0xd4, - - /* ----------- Device Capability Descriptor: BillBoard ---------- */ - 0x34, /* bLength */ - 0x10, /* bDescriptorType: DEVICE CAPABILITY Type */ - 0x0D, /* bDevCapabilityType: BILLBOARD_CAPABILITY */ - USBD_BB_URL_STRING_INDEX, /* iAddtionalInfoURL: Index of string descriptor providing a URL where the user - can go to get more detailed information about the product and the various - Alternate Modes it supports */ - - 0x02, /* bNumberOfAlternateModes: Number of Alternate modes supported. The - maximum value that this field can be set to is MAX_NUM_ALT_MODE. */ - - 0x00, /* bPreferredAlternateMode: Index of the preferred Alternate Mode. System - software may use this information to provide the user with a better - user experience. */ - - 0x00, 0x00, /* VCONN Power needed by the adapter for full functionality 000b = 1W */ - - 0x01, 0x00, 0x00, 0x00, /* bmConfigured. 01b: Alternate Mode configuration not attempted or exited */ - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x21, 0x01, /* bcdVersion = 0x0121 */ - 0x00, /* bAdditionalFailureInfo */ - 0x00, /* bReserved */ - LOBYTE(USBD_VID), - HIBYTE(USBD_VID), /* wSVID[0]: Standard or Vendor ID. This shall match one of the SVIDs - returned in response to a USB PD Discover SVIDs command */ - - 0x00, /* bAlternateMode[0] Index of the Alternate Mode within the SVID as - returned in response to a Discover Modes command. Example: - 0 first Mode entry - 1 second mode entry */ - - USBD_BB_ALTMODE0_STRING_INDEX, /* iAlternateModeString[0]: Index of string descriptor describing protocol. - It is optional to support this string. */ - LOBYTE(USBD_VID), - HIBYTE(USBD_VID), /* wSVID[1]: Standard or Vendor ID. This shall match one of the SVIDs - returned in response to a USB PD Discover SVIDs command */ - - 0x01, /* bAlternateMode[1] Index of the Alternate Mode within the SVID as - returned in response to a Discover Modes command. Example: - 0 first Mode entry - 1 second Mode entry */ - - USBD_BB_ALTMODE1_STRING_INDEX, /* iAlternateModeString[1]: Index of string descriptor describing protocol. - It is optional to support this string. */ - /* Alternate Mode Desc */ - /* ----------- Device Capability Descriptor: BillBoard Alternate Mode Desc ---------- */ - 0x08, /* bLength */ - 0x10, /* bDescriptorType: Device Descriptor Type */ - 0x0F, /* bDevCapabilityType: BILLBOARD ALTERNATE MODE CAPABILITY */ - 0x00, /* bIndex: Index of Alternate Mode described in the Billboard Capability Desc */ - 0x10, 0x00, 0x00, 0x00, /* dwAlternateModeVdo: contents of the Mode VDO for the alternate mode - identified by bIndex */ - - 0x08, /* bLength */ - 0x10, /* bDescriptorType: Device Descriptor Type */ - 0x0F, /* bDevCapabilityType: BILLBOARD ALTERNATE MODE CAPABILITY */ - 0x01, /* bIndex: Index of Alternate Mode described in the Billboard Capability Desc */ - 0x20, 0x00, 0x00, 0x00, /* dwAlternateModeVdo: contents of the Mode VDO for the alternate mode - identified by bIndex */ -}; -#endif /* USBD_CLASS_BOS_ENABLED */ - - -/* USB Standard Device Descriptor */ -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = -{ - USB_LEN_LANGID_STR_DESC, - USB_DESC_TYPE_STRING, - LOBYTE(USBD_LANGID_STRING), - HIBYTE(USBD_LANGID_STRING), -}; - -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] = -{ - USB_SIZ_STRING_SERIAL, - USB_DESC_TYPE_STRING, -}; - -#if defined ( __ICCARM__ ) /*!< IAR Compiler */ -#pragma data_alignment=4 -#endif /* __ICCARM__ */ -__ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; - -/* Private functions ---------------------------------------------------------*/ -static void IntToUnicode(uint32_t value, uint8_t *pbuf, uint8_t len); -static void Get_SerialNum(void); - -/** - * @brief Returns the device descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - UNUSED(speed); - - *length = sizeof(USBD_DeviceDesc); - return (uint8_t *)USBD_DeviceDesc; -} - -/** - * @brief Returns the LangID string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - UNUSED(speed); - - *length = sizeof(USBD_LangIDDesc); - return (uint8_t *)USBD_LangIDDesc; -} - -/** - * @brief Returns the product string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - if (speed == USBD_SPEED_HIGH) - { - USBD_GetString((uint8_t *)USBD_PRODUCT_HS_STRING, USBD_StrDesc, length); - } - else - { - USBD_GetString((uint8_t *)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length); - } - return USBD_StrDesc; -} - -/** - * @brief Returns the manufacturer string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - UNUSED(speed); - - USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); - return USBD_StrDesc; -} - -/** - * @brief Returns the serial number string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - UNUSED(speed); - - *length = USB_SIZ_STRING_SERIAL; - - /* Update the serial number string descriptor with the data from the unique ID*/ - Get_SerialNum(); - - return (uint8_t *)USBD_StringSerial; -} - -/** - * @brief Returns the configuration string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - if (speed == USBD_SPEED_HIGH) - { - USBD_GetString((uint8_t *)USBD_CONFIGURATION_HS_STRING, USBD_StrDesc, length); - } - else - { - USBD_GetString((uint8_t *)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length); - } - return USBD_StrDesc; -} - -/** - * @brief Returns the interface string descriptor. - * @param speed: Current device speed - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - if (speed == USBD_SPEED_HIGH) - { - USBD_GetString((uint8_t *)USBD_INTERFACE_HS_STRING, USBD_StrDesc, length); - } - else - { - USBD_GetString((uint8_t *)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length); - } - return USBD_StrDesc; -} - -/** - * @brief Create the serial number string descriptor - * @param None - * @retval None - */ -static void Get_SerialNum(void) -{ - uint32_t deviceserial0, deviceserial1, deviceserial2; - - deviceserial0 = *(uint32_t *)DEVICE_ID1; - deviceserial1 = *(uint32_t *)DEVICE_ID2; - deviceserial2 = *(uint32_t *)DEVICE_ID3; - - deviceserial0 += deviceserial2; - - if (deviceserial0 != 0U) - { - IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8U); - IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4U); - } -} - - -#if ((USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1)) -/** - * @brief USBD_USR_BOSDescriptor - * return the BOS descriptor - * @param speed : current device speed - * @param length : pointer to data length variable - * @retval pointer to descriptor buffer - */ -uint8_t *USBD_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) -{ - *length = sizeof(USBD_BOSDesc); - return (uint8_t *)USBD_BOSDesc; -} -#endif /* (USBD_LPM_ENABLED == 1) || (USBD_CLASS_BOS_ENABLED == 1) */ - - -#if (USBD_CLASS_USER_STRING_DESC == 1) -/** - * @brief Returns the Class User string descriptor. - * @param speed: Current device speed - * @param idx: index of string descriptor - * @param length: Pointer to data length variable - * @retval Pointer to descriptor buffer - */ -uint8_t *USBD_Class_UserStrDescriptor(USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length) -{ - static uint8_t USBD_StrDesc[255]; - - return USBD_StrDesc; -} -#endif /* USBD_CLASS_USER_STRING_DESC */ - - -/** - * @brief Convert Hex 32Bits value into char - * @param value: value to convert - * @param pbuf: pointer to the buffer - * @param len: buffer length - * @retval None - */ -static void IntToUnicode(uint32_t value, uint8_t *pbuf, uint8_t len) -{ - uint8_t idx = 0U; - - for (idx = 0U ; idx < len ; idx ++) - { - if (((value >> 28)) < 0xAU) - { - pbuf[ 2U * idx] = (value >> 28) + '0'; - } - else - { - pbuf[2U * idx] = (value >> 28) + 'A' - 10U; - } - - value = value << 4; - - pbuf[2U * idx + 1] = 0U; - } -} diff --git a/HAL_N_Middlewares/Src/main.c b/HAL_N_Middlewares/Src/main.c deleted file mode 100644 index df310d0..0000000 --- a/HAL_N_Middlewares/Src/main.c +++ /dev/null @@ -1,243 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.c - * @brief : Main program body - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -#include "cmsis_os.h" -#include "adc.h" -#include "can.h" -#include "crc.h" -#include "dac.h" -#include "dma.h" -#include "i2c.h" -#include "rng.h" -#include "rtc.h" -#include "spi.h" -#include "tim.h" -#include "usart.h" -#include "usb_device.h" -#include "gpio.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -#include "robot.h" -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ - -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -void SystemClock_Config(void); -void MX_FREERTOS_Init(void); -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - /* USER CODE BEGIN 1 */ - - /* USER CODE END 1 */ - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_DMA_Init(); - MX_ADC1_Init(); - MX_CAN1_Init(); - MX_CAN2_Init(); - MX_SPI1_Init(); - MX_TIM4_Init(); - MX_TIM5_Init(); - MX_USART3_UART_Init(); - MX_RNG_Init(); - MX_RTC_Init(); - MX_TIM1_Init(); - MX_TIM10_Init(); - MX_USART1_UART_Init(); - MX_USART6_UART_Init(); - MX_TIM8_Init(); - MX_I2C2_Init(); - MX_I2C3_Init(); - MX_SPI2_Init(); - MX_CRC_Init(); - MX_DAC_Init(); - /* USER CODE BEGIN 2 */ - RobotInit(); - /* USER CODE END 2 */ - - /* Call init function for freertos objects (in freertos.c) */ - MX_FREERTOS_Init(); - - /* Start scheduler */ - osKernelStart(); - - /* We should never get here as control is now taken by the scheduler */ - /* Infinite loop */ - /* USER CODE BEGIN WHILE */ - while (1) - { - /* USER CODE END WHILE */ - - /* USER CODE BEGIN 3 */ - } - /* USER CODE END 3 */ -} - -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - - /** Configure the main internal regulator output voltage - */ - __HAL_RCC_PWR_CLK_ENABLE(); - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); - - /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLM = 6; - RCC_OscInitStruct.PLL.PLLN = 168; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = 7; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) - { - Error_Handler(); - } -} - -/* USER CODE BEGIN 4 */ - -/* USER CODE END 4 */ - -/** - * @brief Period elapsed callback in non blocking mode - * @note This function is called when TIM14 interrupt took place, inside - * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment - * a global variable "uwTick" used as application time base. - * @param htim : TIM handle - * @retval None - */ -void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) -{ - /* USER CODE BEGIN Callback 0 */ - - /* USER CODE END Callback 0 */ - if (htim->Instance == TIM14) - { - HAL_IncTick(); - } - /* USER CODE BEGIN Callback 1 */ - - /* USER CODE END Callback 1 */ -} - -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - __disable_irq(); - while (1) - { - } - /* USER CODE END Error_Handler_Debug */ -} - -#ifdef USE_FULL_ASSERT -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t *file, uint32_t line) -{ - /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - /* USER CODE END 6 */ -} -#endif /* USE_FULL_ASSERT */ diff --git a/HAL_N_Middlewares/Src/usbd_cdc_if.c b/HAL_N_Middlewares/Src/usbd_cdc_if.c deleted file mode 100644 index 69e68fd..0000000 --- a/HAL_N_Middlewares/Src/usbd_cdc_if.c +++ /dev/null @@ -1,344 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : usbd_cdc_if.c - * @version : v1.0_Cube - * @brief : Usb device for Virtual Com Port. - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "usbd_cdc_if.h" - -/* USER CODE BEGIN INCLUDE */ - -/* USER CODE END INCLUDE */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/* Private macro -------------------------------------------------------------*/ - -/* USER CODE BEGIN PV */ -/* Private variables ---------------------------------------------------------*/ - -/* USER CODE END PV */ - -/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY - * @brief Usb device library. - * @{ - */ - -/** @addtogroup USBD_CDC_IF - * @{ - */ - -/** @defgroup USBD_CDC_IF_Private_TypesDefinitions USBD_CDC_IF_Private_TypesDefinitions - * @brief Private types. - * @{ - */ - -/* USER CODE BEGIN PRIVATE_TYPES */ -void (*transmitcpltcallback)(uint32_t); - -void (*receivecpltcallback)(uint32_t); -/* USER CODE END PRIVATE_TYPES */ - -/** - * @} - */ - -/** @defgroup USBD_CDC_IF_Private_Defines USBD_CDC_IF_Private_Defines - * @brief Private defines. - * @{ - */ - -/* USER CODE BEGIN PRIVATE_DEFINES */ -/* USER CODE END PRIVATE_DEFINES */ - -/** - * @} - */ - -/** @defgroup USBD_CDC_IF_Private_Macros USBD_CDC_IF_Private_Macros - * @brief Private macros. - * @{ - */ - -/* USER CODE BEGIN PRIVATE_MACRO */ - -/* USER CODE END PRIVATE_MACRO */ - -/** - * @} - */ - -/** @defgroup USBD_CDC_IF_Private_Variables USBD_CDC_IF_Private_Variables - * @brief Private variables. - * @{ - */ -/* Create buffer for reception and transmission */ -/* It's up to user to redefine and/or remove those define */ - -/* USER CODE BEGIN PRIVATE_VARIABLES */ -/** Received data over USB are stored in this buffer */ -uint8_t UserRxBufferFS[APP_RX_DATA_SIZE]; - -/** Data to send over USB CDC are stored in this buffer */ -uint8_t UserTxBufferFS[APP_TX_DATA_SIZE]; -/* USER CODE END PRIVATE_VARIABLES */ - -/** - * @} - */ - -/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables - * @brief Public variables. - * @{ - */ - -extern USBD_HandleTypeDef hUsbDeviceFS; - -/* USER CODE BEGIN EXPORTED_VARIABLES */ - -/* USER CODE END EXPORTED_VARIABLES */ - -/** - * @} - */ - -/** @defgroup USBD_CDC_IF_Private_FunctionPrototypes USBD_CDC_IF_Private_FunctionPrototypes - * @brief Private functions declaration. - * @{ - */ - -static int8_t CDC_Init_FS(void); -static int8_t CDC_DeInit_FS(void); -static int8_t CDC_Control_FS(uint8_t cmd, uint8_t *pbuf, uint16_t length); -static int8_t CDC_Receive_FS(uint8_t *pbuf, uint32_t *Len); -static int8_t CDC_TransmitCplt_FS(uint8_t *pbuf, uint32_t *Len, uint8_t epnum); - -/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ - -/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ - -/** - * @} - */ - -USBD_CDC_ItfTypeDef USBD_Interface_fops_FS = - { - CDC_Init_FS, - CDC_DeInit_FS, - CDC_Control_FS, - CDC_Receive_FS, - CDC_TransmitCplt_FS}; - -/* Private functions ---------------------------------------------------------*/ -/** - * @brief Initializes the CDC media low layer over the FS USB IP - * @retval USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t CDC_Init_FS(void) -{ - /* USER CODE BEGIN 3 */ - /* Set Application Buffers */ - USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0); - USBD_CDC_SetRxBuffer(&hUsbDeviceFS, UserRxBufferFS); - return (USBD_OK); - /* USER CODE END 3 */ -} - -/** - * @brief DeInitializes the CDC media low layer - * @retval USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t CDC_DeInit_FS(void) -{ - /* USER CODE BEGIN 4 */ - return (USBD_OK); - /* USER CODE END 4 */ -} - -/** - * @brief Manage the CDC class requests - * @param cmd: Command code - * @param pbuf: Buffer containing command data (request parameters) - * @param length: Number of data to be sent (in bytes) - * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t CDC_Control_FS(uint8_t cmd, uint8_t *pbuf, uint16_t length) -{ - /* USER CODE BEGIN 5 */ - switch (cmd) - { - case CDC_SEND_ENCAPSULATED_COMMAND: - - break; - - case CDC_GET_ENCAPSULATED_RESPONSE: - - break; - - case CDC_SET_COMM_FEATURE: - - break; - - case CDC_GET_COMM_FEATURE: - - break; - - case CDC_CLEAR_COMM_FEATURE: - - break; - - /*******************************************************************************/ - /* Line Coding Structure */ - /*-----------------------------------------------------------------------------*/ - /* Offset | Field | Size | Value | Description */ - /* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/ - /* 4 | bCharFormat | 1 | Number | Stop bits */ - /* 0 - 1 Stop bit */ - /* 1 - 1.5 Stop bits */ - /* 2 - 2 Stop bits */ - /* 5 | bParityType | 1 | Number | Parity */ - /* 0 - None */ - /* 1 - Odd */ - /* 2 - Even */ - /* 3 - Mark */ - /* 4 - Space */ - /* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */ - /*******************************************************************************/ - case CDC_SET_LINE_CODING: - - break; - - case CDC_GET_LINE_CODING: - - break; - - case CDC_SET_CONTROL_LINE_STATE: - - break; - - case CDC_SEND_BREAK: - - break; - - default: - break; - } - - return (USBD_OK); - /* USER CODE END 5 */ -} - -/** - * @brief Data received over USB OUT endpoint are sent over CDC interface - * through this function. - * - * @note - * This function will issue a NAK packet on any OUT packet received on - * USB endpoint until exiting this function. If you exit this function - * before transfer is complete on CDC interface (ie. using DMA controller) - * it will result in receiving more data while previous ones are still - * not sent. - * - * @param Buf: Buffer of data to be received - * @param Len: Number of data received (in bytes) - * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t CDC_Receive_FS(uint8_t *Buf, uint32_t *Len) -{ - /* USER CODE BEGIN 6 */ - USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); - USBD_CDC_ReceivePacket(&hUsbDeviceFS); - if(receivecpltcallback != NULL) - { - receivecpltcallback(*Len); - } - return (USBD_OK); - /* USER CODE END 6 */ -} - -/** - * @brief CDC_Transmit_FS - * Data to send over USB IN endpoint are sent over CDC interface - * through this function. - * @note - * - * - * @param Buf: Buffer of data to be sent - * @param Len: Number of data to be sent (in bytes) - * @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY - */ -uint8_t CDC_Transmit_FS(uint8_t *Buf, uint16_t Len) -{ - uint8_t result = USBD_OK; - /* USER CODE BEGIN 7 */ - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)hUsbDeviceFS.pClassData; - if (hcdc->TxState != 0) - { - return USBD_BUSY; - } - USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len); - result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); - /* USER CODE END 7 */ - return result; -} - -uint8_t *CDCInitRxbufferNcallback(void (*callback)(uint32_t),void (*callback2)(uint32_t)) -{ - transmitcpltcallback=callback; - receivecpltcallback=callback2; - return (uint8_t *)UserRxBufferFS; -} - -/** - * @brief CDC_TransmitCplt_FS - * Data transmitted callback - * - * @note - * This function is IN transfer complete callback used to inform user that - * the submitted Data is successfully sent over USB. - * - * @param Buf: Buffer of data to be received - * @param Len: Number of data received (in bytes) - * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL - */ -static int8_t CDC_TransmitCplt_FS(uint8_t *Buf, uint32_t *Len, uint8_t epnum) -{ - uint8_t result = USBD_OK; - /* USER CODE BEGIN 13 */ - UNUSED(Buf); - UNUSED(Len); - UNUSED(epnum); - if(transmitcpltcallback!=NULL) - { - transmitcpltcallback(*Len); - } - /* USER CODE END 13 */ - return result; -} - -/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ - -/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */ - -/** - * @} - */ - -/** - * @} - */ diff --git a/HAL_N_Middlewares/Inc/FreeRTOSConfig.h b/Inc/FreeRTOSConfig.h similarity index 100% rename from HAL_N_Middlewares/Inc/FreeRTOSConfig.h rename to Inc/FreeRTOSConfig.h diff --git a/HAL_N_Middlewares/Inc/adc.h b/Inc/adc.h similarity index 100% rename from HAL_N_Middlewares/Inc/adc.h rename to Inc/adc.h diff --git a/HAL_N_Middlewares/Inc/can.h b/Inc/can.h similarity index 100% rename from HAL_N_Middlewares/Inc/can.h rename to Inc/can.h diff --git a/HAL_N_Middlewares/Inc/crc.h b/Inc/crc.h similarity index 100% rename from HAL_N_Middlewares/Inc/crc.h rename to Inc/crc.h diff --git a/HAL_N_Middlewares/Inc/dac.h b/Inc/dac.h similarity index 100% rename from HAL_N_Middlewares/Inc/dac.h rename to Inc/dac.h diff --git a/HAL_N_Middlewares/Inc/dma.h b/Inc/dma.h similarity index 100% rename from HAL_N_Middlewares/Inc/dma.h rename to Inc/dma.h diff --git a/HAL_N_Middlewares/Inc/gpio.h b/Inc/gpio.h similarity index 100% rename from HAL_N_Middlewares/Inc/gpio.h rename to Inc/gpio.h diff --git a/HAL_N_Middlewares/Inc/i2c.h b/Inc/i2c.h similarity index 100% rename from HAL_N_Middlewares/Inc/i2c.h rename to Inc/i2c.h diff --git a/HAL_N_Middlewares/Inc/main.h b/Inc/main.h similarity index 100% rename from HAL_N_Middlewares/Inc/main.h rename to Inc/main.h diff --git a/HAL_N_Middlewares/Inc/rng.h b/Inc/rng.h similarity index 100% rename from HAL_N_Middlewares/Inc/rng.h rename to Inc/rng.h diff --git a/HAL_N_Middlewares/Inc/rtc.h b/Inc/rtc.h similarity index 100% rename from HAL_N_Middlewares/Inc/rtc.h rename to Inc/rtc.h diff --git a/HAL_N_Middlewares/Inc/spi.h b/Inc/spi.h similarity index 100% rename from HAL_N_Middlewares/Inc/spi.h rename to Inc/spi.h diff --git a/HAL_N_Middlewares/Inc/stm32f4xx_hal_conf.h b/Inc/stm32f4xx_hal_conf.h similarity index 100% rename from HAL_N_Middlewares/Inc/stm32f4xx_hal_conf.h rename to Inc/stm32f4xx_hal_conf.h diff --git a/HAL_N_Middlewares/Inc/stm32f4xx_it.h b/Inc/stm32f4xx_it.h similarity index 100% rename from HAL_N_Middlewares/Inc/stm32f4xx_it.h rename to Inc/stm32f4xx_it.h diff --git a/HAL_N_Middlewares/Inc/tim.h b/Inc/tim.h similarity index 100% rename from HAL_N_Middlewares/Inc/tim.h rename to Inc/tim.h diff --git a/HAL_N_Middlewares/Inc/usart.h b/Inc/usart.h similarity index 100% rename from HAL_N_Middlewares/Inc/usart.h rename to Inc/usart.h diff --git a/HAL_N_Middlewares/Inc/usb_device.h b/Inc/usb_device.h similarity index 100% rename from HAL_N_Middlewares/Inc/usb_device.h rename to Inc/usb_device.h diff --git a/Inc/usbd_cdc_if.h b/Inc/usbd_cdc_if.h new file mode 100644 index 0000000..a9f47c1 --- /dev/null +++ b/Inc/usbd_cdc_if.h @@ -0,0 +1,131 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_cdc_if.h + * @version : v1.0_Cube + * @brief : Header for usbd_cdc_if.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USBD_CDC_IF_H__ +#define __USBD_CDC_IF_H__ + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_cdc.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @brief For Usb device. + * @{ + */ + +/** @defgroup USBD_CDC_IF USBD_CDC_IF + * @brief Usb VCP device module + * @{ + */ + +/** @defgroup USBD_CDC_IF_Exported_Defines USBD_CDC_IF_Exported_Defines + * @brief Defines. + * @{ + */ +/* Define size for the receive and transmit buffer over CDC */ +#define APP_RX_DATA_SIZE 2048 +#define APP_TX_DATA_SIZE 2048 +/* USER CODE BEGIN EXPORTED_DEFINES */ + +/* USER CODE END EXPORTED_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Types USBD_CDC_IF_Exported_Types + * @brief Types. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_TYPES */ + +/* USER CODE END EXPORTED_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Macros USBD_CDC_IF_Exported_Macros + * @brief Aliases. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_MACRO */ + +/* USER CODE END EXPORTED_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables + * @brief Public variables. + * @{ + */ + +/** CDC Interface callback. */ +extern USBD_CDC_ItfTypeDef USBD_Interface_fops_FS; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_FunctionsPrototype USBD_CDC_IF_Exported_FunctionsPrototype + * @brief Public functions declaration. + * @{ + */ + +uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len); + +/* USER CODE BEGIN EXPORTED_FUNCTIONS */ + +/* USER CODE END EXPORTED_FUNCTIONS */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_CDC_IF_H__ */ + diff --git a/HAL_N_Middlewares/Inc/usbd_conf.h b/Inc/usbd_conf.h similarity index 100% rename from HAL_N_Middlewares/Inc/usbd_conf.h rename to Inc/usbd_conf.h diff --git a/HAL_N_Middlewares/Inc/usbd_desc.h b/Inc/usbd_desc.h similarity index 100% rename from HAL_N_Middlewares/Inc/usbd_desc.h rename to Inc/usbd_desc.h diff --git a/Makefile b/Makefile index 7f97471..c6f243c 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,20 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Thu Apr 13 11:28:19 CST 2023] +########################################################################################################################## + +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2017-02-10 - Several enhancements + project update mode +# 2015-07-22 - first version +# ------------------------------------------------ + ###################################### # target ###################################### TARGET = basic_framework -SHELL = cmd.exe ###################################### @@ -12,8 +23,7 @@ SHELL = cmd.exe # debug build? DEBUG = 1 # optimization -OPT = -O0 # O0避免没有使用到的变量被优化,如果没有特殊的调试需求请修改成-Og. - # 为了更高的性能,正式上车不需要调试时修改成-O3/-Ofast +OPT = -Og ####################################### @@ -27,75 +37,76 @@ BUILD_DIR = build ###################################### # C sources C_SOURCES = \ -HAL_N_Middlewares/Src/main.c \ -HAL_N_Middlewares/Src/gpio.c \ -HAL_N_Middlewares/Src/freertos.c \ -HAL_N_Middlewares/Src/adc.c \ -HAL_N_Middlewares/Src/can.c \ -HAL_N_Middlewares/Src/crc.c \ -HAL_N_Middlewares/Src/dac.c \ -HAL_N_Middlewares/Src/dma.c \ -HAL_N_Middlewares/Src/i2c.c \ -HAL_N_Middlewares/Src/rng.c \ -HAL_N_Middlewares/Src/rtc.c \ -HAL_N_Middlewares/Src/spi.c \ -HAL_N_Middlewares/Src/tim.c \ -HAL_N_Middlewares/Src/usart.c \ -HAL_N_Middlewares/Src/usb_device.c \ -HAL_N_Middlewares/Src/usbd_conf.c \ -HAL_N_Middlewares/Src/usbd_desc.c \ -HAL_N_Middlewares/Src/usbd_cdc_if.c \ -HAL_N_Middlewares/Src/stm32f4xx_it.c \ -HAL_N_Middlewares/Src/stm32f4xx_hal_msp.c \ -HAL_N_Middlewares/Src/stm32f4xx_hal_timebase_tim.c \ -HAL_N_Middlewares/Src/system_stm32f4xx.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \ -HAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \ -HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c \ -HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c \ -HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c \ -HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/croutine.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/list.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/queue.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/tasks.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/timers.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c \ -HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c \ -HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c \ -HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c \ +Src/main.c \ +Src/gpio.c \ +Src/freertos.c \ +Src/adc.c \ +Src/can.c \ +Src/crc.c \ +Src/dac.c \ +Src/dma.c \ +Src/i2c.c \ +Src/rng.c \ +Src/rtc.c \ +Src/spi.c \ +Src/tim.c \ +Src/usart.c \ +Src/usb_device.c \ +Src/usbd_conf.c \ +Src/usbd_desc.c \ +Src/usbd_cdc_if.c \ +Src/stm32f4xx_it.c \ +Src/stm32f4xx_hal_msp.c \ +Src/stm32f4xx_hal_timebase_tim.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \ +Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \ +Src/system_stm32f4xx.c \ +Middlewares/Third_Party/FreeRTOS/Source/croutine.c \ +Middlewares/Third_Party/FreeRTOS/Source/event_groups.c \ +Middlewares/Third_Party/FreeRTOS/Source/list.c \ +Middlewares/Third_Party/FreeRTOS/Source/queue.c \ +Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c \ +Middlewares/Third_Party/FreeRTOS/Source/tasks.c \ +Middlewares/Third_Party/FreeRTOS/Source/timers.c \ +Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c \ +Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c \ +Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c \ +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c \ +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c \ +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c \ +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c \ +Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c \ +Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c \ bsp/dwt/bsp_dwt.c \ bsp/pwm/bsp_pwm.c \ bsp/bsp_legacy_support/bsp_temperature.c \ @@ -147,19 +158,18 @@ application/shoot/shoot.c \ application/referee/referee.c \ application/cmd/robot_cmd.c \ application/balance_chassis/balance.c \ -application/robot.c - +application/robot.c # ASM sources -ASM_SOURCES += \ +ASM_SOURCES = \ startup_stm32f407xx.s \ -HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s +Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s + ####################################### # binaries ####################################### PREFIX = arm-none-eabi- -# PREFIX = ccache arm-none-eabi- 可以通过安装ccache来缓存makefile内容加速编译 # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) # either it can be added to the PATH environment variable. ifdef GCC_PATH @@ -201,28 +211,27 @@ C_DEFS = \ -DSTM32F407xx \ -DARM_MATH_CM4 \ -DARM_MATH_MATRIX_CHECK \ --DARM_MATH_ROUNDING +-DARM_MATH_ROUNDING # AS includes -AS_INCLUDES = -IHAL_N_Middlewares/Inc +AS_INCLUDES = \ +-IInc # C includes C_INCLUDES = \ --IHAL_N_Middlewares/Inc \ --IHAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc \ --IHAL_N_Middlewares/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy \ --IHAL_N_Middlewares/Drivers/CMSIS/Device/ST/STM32F4xx/Include \ --IHAL_N_Middlewares/Drivers/CMSIS/Include \ --IHAL_N_Middlewares/Drivers/CMSIS/DSP/Include \ --IHAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc \ --IHAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc \ --IHAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS \ --IHAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F \ --IHAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include \ --IHAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include \ --IHAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT \ --IHAL_N_Middlewares/Middlewares/Third_Party/SEGGER/Config \ --IHAL_N_Middlewares/Middlewares/ST/ARM/DSP/Inc \ +-IInc \ +-IDrivers/STM32F4xx_HAL_Driver/Inc \ +-IDrivers/STM32F4xx_HAL_Driver/Inc/Legacy \ +-IMiddlewares/Third_Party/FreeRTOS/Source/include \ +-IMiddlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS \ +-IMiddlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F \ +-IMiddlewares/ST/STM32_USB_Device_Library/Core/Inc \ +-IMiddlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc \ +-IDrivers/CMSIS/Device/ST/STM32F4xx/Include \ +-IDrivers/CMSIS/Include \ +-IMiddlewares/ST/ARM/DSP/Inc \ +-IMiddlewares/Third_Party/SEGGER/RTT \ +-IMiddlewares/Third_Party/SEGGER/Config \ -Iapplication/chassis \ -Iapplication/shoot \ -Iapplication/gimbal \ @@ -262,12 +271,13 @@ C_INCLUDES = \ -Imodules/message_center \ -Imodules/daemon \ -Imodules/vofa \ --Imodules +-Imodules + # compile gcc flags -ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -fdata-sections -ffunction-sections -CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections +CFLAGS += $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -fdata-sections -ffunction-sections ifeq ($(DEBUG), 1) CFLAGS += -g -gdwarf-2 @@ -286,9 +296,9 @@ LDSCRIPT = STM32F407IGHx_FLASH.ld # libraries LIBS = -lc -lm -lnosys \ --larm_cortexM4lf_math +-l:libarm_cortexM4lf_math.a LIBDIR = \ --LHAL_N_Middlewares/Drivers/CMSIS/Lib/GCC +-LMiddlewares/ST/ARM/DSP/Lib LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections # default action: build all @@ -305,8 +315,6 @@ vpath %.c $(sort $(dir $(C_SOURCES))) OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) vpath %.s $(sort $(dir $(ASM_SOURCES))) -# 以下是编译命令,命令之前被粉色高亮的@就是静默输出的指令.删除前面的@会将输出显示到命令行. -# 如@$(CC) -c $(CFLAGS) ...... 去掉第一个@即可. $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) @$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ @@ -324,28 +332,28 @@ $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(BIN) $< $@ $(BUILD_DIR): - @mkdir $@ + @mkdir $@ + ####################################### # clean up ####################################### clean: rd /s/q $(BUILD_DIR) -# linux: rm -rf $(BUILD_DIR) -####################################### -# download directl without debugging -####################################### -OPENOCD_FLASH_START = 0x08000000 # 如果切换芯片可能需要修改此值 -download_dap: - openocd -f openocd_dap.cfg -c init -c halt -c "flash write_image erase $(BUILD_DIR)/$(TARGET).bin $(OPENOCD_FLASH_START)" -c reset -c shutdown - -download_jlink: - JFlash -openprj'stm32.jflash' -open'$(BUILD_DIR)/$(TARGET).hex',0x8000000 -auto -startapp -exit ####################################### # dependencies ####################################### -include $(wildcard $(BUILD_DIR)/*.d) + +####################################### +# download directl without debugging +####################################### +download_dap: + openocd -f openocd_dap.cfg -c init -c halt -c "flash write_image erase $(BUILD_DIR)/$(TARGET).bin 0x08000000" -c reset -c shutdown +download_jlink: + JFlash -openprj'stm32.jflash' -open'$(BUILD_DIR)/$(TARGET).hex',0x8000000 -auto -startapp -exit + # *** EOF *** diff --git a/HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_math.h b/Middlewares/ST/ARM/DSP/Inc/arm_math.h similarity index 100% rename from HAL_N_Middlewares/Drivers/CMSIS/DSP/Include/arm_math.h rename to Middlewares/ST/ARM/DSP/Inc/arm_math.h diff --git a/Middlewares/ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a b/Middlewares/ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a new file mode 100644 index 0000000000000000000000000000000000000000..66efc87f62cf9d9ef826342e3463df2d6705da20 GIT binary patch literal 5359640 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
  • 9k^%%7p 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

    -?W-Sgfz&Cu?R<%YUwsHEQro|x?y@(r>Z=#A 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�UgT%yZf!h;IM{wcU!s` zsJnBZ-Q`n-BCzs}dY62p5a{NU?Y>qk1dSGiXph-ds{q8j+26T3o)1nEHg^Ve^TB^w z%V?*0T0aj&j?C=bew_Bi6 z*O^==3)ELV+!1@03H)5EcZf7Hfh5-hwD$VifS2*w}_$YKGg9AWZl7 zw%cL^pdp>vc5{dTjZZ(Lz3Mya;owN+<#v2G7Sx}OZW{_>f$P8!+Ob}t#DG87+P0r! z0chK8*f!ciKy-T*+PD7iV;E2s&EIC!2m^wv8QY$n_W?^o6573H%?Gs|J`}}lki=TRcMQLvP($rfFmZu?c|W#KxR^F z`^szxK(bWPes)A}FyNq(-oAP%82mROvR#yR3rr{Tqh0O$oF@;k z!3}87yB6^PC7UH%XS43$VN2c?k)}I%bRz@peDhPd0m8NDt?M^kfmkDEi~55L@bJHf z_P>X6ox%K)|5oXt6A-KS+>)?!0#QEBTd)i6$KeRn7R4&I<*DWRZ?4h_O?LALj>)Jld;->klz=!6#ugZoRw@_+>=(|ts4W{7e7g} z1bV+nw{})707C`-R*9~~zsc-m6L!am3CuzH-1_FIqZvplU)+@JGX=o)7uqAgeA5Jk z&P{ICzc2<-u`t}oC|x#Jf@@NsT%vsT;?;8b*PRwNhz3Aa|XU*06I4_baz zZVqPZfs=}oO|YyBjNS9lt~o=24xpJ&++5nw21r%(W{{RP*!IAnz4Od%O|bXp)~2YA zCWxx>-wZ3!0Ic4gXa`+TTOBwr+H58kT?f?lW}77&YT&uA0oq6ZlB)_#S5!7}msJ37 zquk~fMHO%wAcc0*OXrlp%XPlZBq=2@+;U-4C`J+V2eF|&b%b95yxykV6uT!6esz#; zW{=AOygT@4XFbG67FZwbZmjmmfVAHA4Q5gq@Gf)_?XO2xT?K)s-!>j^OM~&D$&GeZ zX>bMmb^~_V>%U0?DuU6C76D0+JUY1Hbw>iw$8@8;_9aSjpm?rfqsvwd%)F@FkgOI3 zaY-d;$Njp32soh1*!UE41q{AR++cnu3=%V=(Y||!yAV)iy0<~zBnSk*-r8W?7Xa*q z{%H4IDUKhoayf6SWmt~3q)2b(QZB44mAk7 zmACFMK@D1^GuCh1qyifUiD=J0VVMFXU@+_D{1o7i+P!r@4|1SK9E^7E>1N1)c(UjE zCJPy8H+EhRw>Srs>21;eeb-A8aI4T@-Hw<9usLb1x2h0>*F380u!|quK?n@%rPgOw z2>@rH$olbR0-soZaPH{ zl26ut{60arP50IyH=|>6j3iGju93zbA@56mt=$_qM0ni3quu?Rmk*Gc<+p2lw)==) z%ZoLU)IH>J$SB(5Z`<2JCQiH8a0GV{_s6Ykr}o8EpAoKYdXum%;ZVk!gjahT)T}AFKVAfU_R}kOEduZ36Rd*TjxfZb2e{Tu-@5FPB zvThMcf8>nz{>O`2rG@@nx5Mq#C}o>eFq?O=r@AvBER-{`4{4HS$eIU z`4{qPSpwe7XwX6Uco&g(y~Ttg>x=Mc90oR*l)dB7|bU(RT*k`hQ0D`aiF-WlthF5${%+ z20tOR+Aq=f2QHC+L~K3|tzMJ-fFu?4tRC6CM_xF$t-^N+a;x7W9;;QWH(pI3PufdY zk2c>R!lC)-dj%I2ULzbN$*ZHzuaN53F{_NxFA=#cEc%YY#H(>6;zG#k)s5%K)rEjn zL%Qe4Zj%@KzCpJ27?P=Aw>ld76uCuUv07O)ia5M5MBhEQ_v0~QYOS^!i2E3E;8Iv+ zyzmGK`6G?Khj7nj7_sm)lgU;a(MeSoCmTcYng)G(DI#92BkUcx2FNBiq5UsQ^b zhnE!5_aEMR7b4hhu@$SZ0wfG8xRREdk3{NRT!HUGFm>i49n(xJp3icSnM#@!&#&1C zUEq22y$Iwa6Dh~VS;?fxM2^M}mhCt*5U0$oW%!N+o^l$Zclpoq55rXC!}^cq8;&W6 zXYW_^eTk~DB&1dU^|EeaBI3>XY`Hu?0TKE+g1$T9)ftC;4DML|_&65nS8Q6|nTSCe zNovveD6|)&kgmeQWn?!JdF7G4?2Z?Stc#|i?^Nh8ha*;_5zCsqSfn^5YTg^9+7(zPq zeT>U}0m!EU;^p(h{s^Tf?sC}^Kg2@(XbHZXG5^vBA%4EPlriCr1ZDnR+I;VYEIQ7j z?`b^!;(?s*eq559c1H>xy;*Yk?uMu*KS$r$c>2=?8MrvGgg@tuByMyrZO%C%o&(M3 z`y2DW91u10ilyaW_Q-Ya;-&Imc8JMJ&Jui=gKy3T$%sl=+WBdXJT;D53i)A$5ODzX zy^i>43#6elXo>5qIYJZRx8yZxhC~{ApznB4yfr~m|5`8ky)s7lJ4~1EKQ}^NWA)MZ zJz9qi5M@@Cr7wN@$oaprOD&yx$gg%u^xcoU^*Ttu0pF5mr8d&XdSQvAL<@QLmlb^v z#3@Y!A&#J2VvJWuWQ<6cu;JH{|Jd=-cS5{_R1wbZ-NglO6(l-peUa5!896jrMBfj| zGEhWFR=+KNyRLwg_f0NN%E}|Uac|LgMP@I`A|t$`i(4!*Nb2U`Vh80l#BaD8eQ(5g zUkcH)YgiOqmP8B%sunwEBoL?l67(ICxlu8sHZx-}s#_HK>5{bgrA`F7EEa>lPm+@? zjC_4{ZxIh8glHB9FLK@#L>~DBpzoFhnD8Sr#4d|vs(c9clkH-R_+><_(j0xy#EbeO z(xa-q=!V0Kq*1Fa(yU!T?);EP-#LkT!G-uBqKi5`oXA~$fyI$34kUw(7k&R^6vKvW z_A)M-`m-WZ@zjgy)+|VjHQ6G37lluZ2{G9}T>xy1$jh<)g&1N6#58Af0lt^gG);>n zNY5|4eoBML6a82yZKg&JKYl^qQL%}jL`p(lEvWiYAkpe$3)5!g$UXWI^nDe+i)2Vr zNBhE;^XHKIsKy0_Z4zYCyas)Dh2;?u@;{>P{2j{gf8e+lS(1<@)U#-)WOdl=SI`@7&+N;6B%N|8UNAuJd|6 zF3zP)J$R)UmM2M?D!;ojOyf~J=&|hgT^{z=>c1(X{j#uFWnc=vO(D#riwrs~$WMQO zC^~$K+O!CqIC*W#s`xjczv(jQx70BffGPgDsppsHfw8+Mr%WAw0$&21LD$7Y@dvPb zxy{t)@o&JD7KRBK&(;W0(=5Nmcp00*dLGUktKv!>y?*19DnO+AvFcOuIz@<2) zsh^Y6z|!SqQ{7clz`K3FC*|*SOKwa6$6G&77G50(jIt*ugN}^>YpBDZ8`Jb_7|__% zKAF@p1nl@Mn_OKq2%HkufS$}+WIs@GjX#;@+6QP^u_t@C_5wJScc3#v=2ZiR}Ow=aWHyX3@S4=$OAVX|S;scv2TNIrFs{Kt8=bDR*gd(;ER>C&J`I zx(qn1gPOGPlmaf(p`ce2sZbBZ-1D70)KLpm1Yej;&8q>FtDFvI%r=J}mNqFLaH`MHvt1 zIHNi#Naq65tt&wf$KSOCn5_LdacCn4P4gMLn7Lq3p!l1vz-y#Xy7W8@So~Hs{Wx*3I@DyM$F<@eo z2K0YUZNCjzZeBK_`r#%}{QcKBvmhF9uKPYNcY(-J7NZ_2u@c3a-1hB=V z7xaRv-LC^vEwb@V>i@W;*EQotO-$fxga~wmoW1FQ^*;9aRb3i@S9&*Y(M1YSeOkvFtK{=I;evqoN__SS0T(;J)_b*h``Z5I;Ev`ba9Hr+||w zU1KgOCxLQe%h(}Lcfj>b1L!905x4?3mX(hkBDnyEdrHT?nmGf@iiEB%zAb`Fa zJLm2IupQIKI+pAK!KPHuS^5=v6!_a1KbEX#3s}FoJvP;F7>J1a5A>JP4_E_Ehbd#L z#}5Hz+PJYD$(F#0FYqzB%S8Td0mNrs9($d;A8@~ZaqND;K0wFU6ZD!WWxIjFwJu|1 zv^mf}Z9itZc^B}p(gt*#GMT1;4RiMxde;ts=Cfn$L)Uho#=;2not7+(fs`rjvBVK0 zz@SontmmE~@GrUxx=%Nz4FIK!i=$%?Hv#nr=0+DB^??^_XGY~7l=Tx`0H_)nz2>X~ zL}m1i9-mncq+Ra-ov4k@>wv#jb)%YJGy!+*%295z29PyV2KrH^AJzbObKZ}BNK^y# zqjN`tY*z!NSF=G^>e|0eW#^_Rqu&lF0l()HM-TQW0)1_9pf@EmT>-SlM~v>2Ed!>I zj8RLH0-)|r0v#%-@DDR?C2TYObagaD^*8gZz#sIf_MV?-`q0mg8vdMPe)n-7 z6+ijGOt*9b-KuRvvrLPxR-;4zePwFP_K%)3nPDpB?E*ck6Yx(=L)ezlrqv&rF0LC# z)$*p9!1i^ZbCvpef@wIsYINrAIP;EBVf5#oF{bjfUnBDQjVv>=8TS-CoNy`flgBGQ=Yrz(b(wNjbI zdw8H5_HqAXrslW&VMO^Orf*x$aN602%wl#1=!xm06PfAEN5i3u_n8L+?+=H>++%h) z+yR|2W>y^2OX>RX1B+PZzG>=kpdg01sR0lAV;Y?|ndXV1!{39WnI7bz;n*)Xm^Uu@ z4$ED#cEw1hiQ$>yTld15i7VWOKj~d(YEC$SURmQFCe!7u14<({A{o<`XBG-}fMgkToZm8tX$rhmBk1 z!i*fcG=y<+W_DDaALP}d)MHG(Cy4ce#@ZTg;Vn0 z%3OB0YA~+BkZDLRACx$4VV=Lt1--cQ7Mqx}d-4afU+FO~>*NgPZQjW2|C|)tC=m@Sr;v{#u2( zYGdf&Q3GYB|MH;0xACi(l^-sF9$gM$1+%H_^x(mDHZFYiwUFOd@hL*a)U|r}BhUff-!R)qgjF-b2ple5dKf{P& zuN*`eeqn4(UmDQ9`-#Deoga{Ucj3@!hTYYV15Ry|j7_J<2e=Ls40Y>4(7_XL9A)fL zZyoTC8fN$}Gz_H73^LM2t3V&mLDI+Y=W+*L?CWK8Wfu<=Kj~(`6Y@bf?FU_0<6tCX=@^$_UweL=Dr`J+1rOd5+B>dnRjng@y)kpctI@mn!pz{q~0IiTX3 z&+xvrdO*a@W9X9=LErCu*lWh{xrKhyfme(X`)~d4>|Zi|?fwM1fBkH z2hp$l2j3<#js;|be&7V;9wX^Ua{s*OE@Qwfp`X7cj$x-43%Y_=+ix?h7q0go-+znI zHc9L6xD(BY?j(TTp#HJ{7$zJ@f9>N4#`;%R`uBYM_lzRh4|E7MvY3oOsz-nPA3Ea& z^hAG!7mYE0@i^!cIx3PGqc&Fk_x*_sy4n8z#6mn{oBl4)Eqot@VXzlB_cyXojOU+p z`_t8sjHmrtpl2AwhBCT@tNKr?K^Pm}EA)R33SmGpe)Y+n!&53(87HDY_o)N~F}f*} zeYAqhjBwa6=pT~3{TQmJ+xwR1Tw;8&YwUCU?ZcSbSKB9d5&NHBU>K|~>pMK-$?#U< z^tn5nV`MJ81HHuP;nR$W{;a-t7N;0%o1XREk923e7d-|YMWm4{!#XFf4~lhW=%?Q7 z(-9nJtc#BTeZ>U7V~pb@QeQxh9fJYI^!3i!GHU!_pu70$t{hGvij&V((|_v#j^Gt#$7dfn#L z818yP(1)yyP+{~c7WHaLlo*x2^Ln*ZS1~HTz69OKefO6$6#G+pPq!*CTw0TQH|zYR zr`E=Uo@8IjZ~7hff4y~m3v}bRKreF3JiR%S0y>lRFTT^U35ec1!?X0D+abMwwtl6D zh6jTFge5@NAs!bLvQMbKfZa=W)y4as3f` z-jThaS84WWfbPG`xYw_>kAA_}px0irmmaLI13H%5V>;;-t5^4$NZRSzD;0Ztm$lIu zi%UK7x!hoC6Fv6RY|o)W8U4`s#~$9N2Krq8IOtxEU#X>+Ge$uhZzKY@K@idsFBUR(7Dz z`O`j`zHg63&w1QKdd^Pso@?n3=r-F;K({k}#eI6(CcU1<1Mzg6u6ED+;5fR!wmRr} zCRW_0Q`DCCBz(O|&sJXSb}@{me_T1&Eq6Zan2~h;pQ-ND*Wq-xUnAW{oniFpxjxYU zJYm70<7b+>KVGKMFMg`)K7NNn_nxlomb;*9M+o$!(UR^P>UetRP+@nT4VJ!tAP@9H zH^n3AJG)L~(~g=)0S4cgF+<(@kanb^F}9LOoQtlNjE9|1bU~1&im-YE$dPJG1%WstlJxss{eN-!_t#o1e zyRPD^hIB>Io34rQ&GakcEYMAb@$~3{Rgb$$x^(HwYZAN4<~Gpzwg0lC|L3WW?_Ecy zOC!2ePHEDajf}2A$Xa?*GYNE7-#%SU*XV$CWtOPWab3Y(XIho$(>(#8zgn)ml5RY7 zt}ABia{9=~$u1>Z1v+=!xl8V{8lo3zg&%FYc+tOTEng0FsXd#gt^T$f^jhnr-)W)+ zqpri_v$W%X^t%H7%+R_OHh_++$m|o%Q(3i3(cuHlLTzQ&Z|^DEPK~8b`CPqHD8PJ_iR+NlFl(1Rs!ZKtg| zTG44?*-BG#y0zISI`PU>G zQTtDa>{lW!b<@udxpS+kc8_MY`$LDd_FYW)^q6ILoA|MCXHEZksQaHkX{yaXpYs zOH5De=np2++;Sg*jxHC0r7a5Xbl70fw8fgJ4kR8)Ti<#e^mV^dptOWZLWdJQlr}eu z>Nv%`M#KMsfbK5+dJv7R<=^ol{4(vjfp-TG;ZF-PJqvogUXd4RXgjBlvytAkCnxMW zmPKBm4PLMYo!-dsvosdMyujky9oj-`R6BEGJ?-4c_4d}j zb+n4FG|(B&tXWH&RY$iQ2-eWv89>|Ji&oQan_mU};mR~6+D&)wcC7?OTJEK@?dzjg z&^|!j+vP6t5!7EQ>!w|MK+qqm<0I?#L+5`}C$lX;uXvU9Piln3q{tQ%#?J-g)ET#*ZBF^4)WS<&+tQv6 zQ{&+uK=&BK?594A9cY_`_fmyvU2Qs-x~VJkTR;yv>0mpxr>UxK)Tot;8Yyp^Qg5bi z{J{mCWUa{ts!+F}&8oGI$~Al4rX{SQHri%_e)7b_N~+tH$}XUa3<5xh znR+vqTHti9?Fafb)#KvHHdF6cR3)S{=riXVXHu&YZQ53-rc-4v545SxJfnW)?grgv zdu|H##;8#n{P|<*+`N92=mhMN2`tF>|`ifUE%40NQG zC!o~o4~eaZD?_QA<#$`RW?Z9+Hr@h#>2;Tbs5{-5t(%TqrbY#lTYGf;slUls(4D3= z`cQ4MueJK-dQlb1F1LQUd7e7lb`kWbZS6d$bBd>1zw4f+?%eF!dgYrtm2$`dbgKPd zx=@25maWs_PSoY$dt3MVI#PMbJ3+s?YqcFUqSm0*ZuAH>c0{MumuEwLzo-ei*6$IP zRFA!@TE93Rpi0~nT8B68r(U}Ht3~czPfN_HvZT)~OQ~km!u-jWYP>1+ea$fFU|%=b zMqRPg-h!AlqMp}nYFSgYg(|eD1AS~fMxQzj5wsjSzLEMWvZSS8gAO$!tq^px#XK!) zRLjejpm+`HyU#CL-d$0r{!~c?J#CVrDz)R-y_TtVB`VfGrbX+OB6S<}2Iy=@pIAm6 z$fve6ZTw3aufw-APc2fECy}7PJ$GxK^33o`%f^dylyyh_T4qhYQ!+1kwa8uWO3@dJ zPU49c;r&mPU-`#daDg8v^YuqTuX}D`oZ_Zr(NZHBr99qd-r|`!Oj+e<0y^IR=3giW z0KFEApFNasPqbSSE4nB$jymXjQ!lnry1y@PS=`z}QCat=+455(<--1-&2sm zyylD;4uuuPY7RZeqIhH#fPVPe{&$qN(ah!_8TpiomCu^*!SX0|+a80i`1H3|l>H%b z%{iQG%H61&%?3awMJYQ1^u~88KBt_XAT7JISz%EJVTD9;o0$s0G`rPR&1G;i$rcktG7Xx^B5o8olv2Gtt;l;YQ_p!Z&xtxmE3wbb~-M~$*~>q29%vMS}M`?p59178nQq~t%DXl&oO zg0fCD)cB}Ifs*v02lU}>O&7^CwvCNO9Sh`|klIFG)K9YDt{8OVHw@2`mk)6o+u~=) zXH^RuPageDEo_Is7A6|GdW{7q*3nDXQecdVlLyGF0O0`mG>)}UiQ(_2dJ958Qe{EtH( zTfL(()Qm;eur>mHdk*;>S#WQCBYsmp`8a=V<7jylUWWRtZCWJ+(1>;v*1nW-w4$$MBj1$W4Up&Xh0x!Yv>r1!GTv(aR(C|6dLaD(hM zn=M;*AdDlnOKOp_)1h#3&aY6Jyu;=FJcL~1>nHnU8%$nx z$4hpkD~NoB>mfTvx=il=a6-1I;ZMeGa*|oN$w};%N~uokwdfA%PIgDvRcPlS>^^Oa-*`U zOy2*BbG0WIBA28O25iaAPv@ncl*43=rdesVx-}WG;*<1ymL+-2azff^dw>i;hotzH zedGfvJyJ1j4_R5-CT;k;i~L)mQ5u`HldN{IR=Q%>4zevoEZr~MMvi$>Ce`uUO8(iv zkrqyEAxA7Ll&%UhAn&rwlghheEm^wc&eRvuQ#KpOeT^wnX8k&{g5pDIaG)mH(dM3X z*{nJ_9Tg+>xuHfjOur$$wn3H5Zx552zEUF7R@0;zHj3o)#|YB4+U4X^B$QO(r$7#V z4Uqv>p`(GDFC_I?H#PjSE+g&7)%_FE zxuooz%7#?;64K#eLBp~Z7U{EIX@h}Z5lMKys9|RK9qC={+Xe1CfQr3H9-EpB<12BHOTvJUsh+3Mn~^7NbWx;F!Ok)*JBwT8#FFw(+7rG}3u zAf!axvWEHUYoya}f7f$euaZnY{HV8-1d_Ix&eTJk0!Y>&)Ai>neE+RuwEmm@MN-v3 zf4#hC=YRM-snxfoemnatDJHq0KJ&mCQeb;keQ*9rl9zTxeci4TB$y|!9{J!Q>dQdrI7dgM(j5>EL+z3wtg z(toaZ>jAn2sW|#p{o`+YNlKE)dU;20e$5i>-R z!MD1QzE4EOpigxpXFd>%(Z-z7bC=IM0=f@))0~Xwz1AA zvY)6tTU#gZ29mCH5mjk|y7!IkL@uwS?v;HjF;1bV&g*Rx@w(I7I_@SJ@&2t>b)7Nw zL~(t3UEX{RQAaba?r>-oF~;jrU3iO_Xz=8I9dN9I*wlZg&LU4h%rcIyd$y5Jd;$%x z6GxR2^YiF+FTS#gqqD@iLjlFa!`7HOd9U#HfdZndD7en$X&!M&`Engs`3D`=UIFXNHn$ zo5wte&vxCbHFr5p)F8*y+Go2HGlVy4RadzYy;onajSF!m?((M9R*M~phA#-UJmX_T ztB)4j-&7*=|f^?b%ys#}i7m&ws5U(jG0VmG>ys z^OT8m7IQUSimQkd;WIS>msb!Mq|-G|SPI1524gk-Y)igr6;hgM8YKct25 z;OdQ(I|r%x;w>T!yI!rK zz7i4+KlZOFS>O|jroC$l-MNIbw&!X>Q#gb*cTd*H`E0SH?G?e1v9pF=okjTAU|ci1A%nm%++4FYbAF$gvV;#)o&NB6AZ4jRv&W$2;yRCbNQG1Vu?Rz075Kio`45snE6T0LxxfkPsxPZ+?m`HXz!%ls z?bis;i&LsIH(w>Bu6|f8?~Pu`^C$db$5eZNzeEU7kE&jA#D_3^?Rqsd;sW6|msWkV z>KwsSi&!1F#)EJahOYkNd5UmS2(7kGK0#pU1XmyKb0J940o8LxP6S7ZPc=N$fzV~( zS^e;}9U+l)s+#%v2m#&TQmt=cLqKhJsK%2H5#oR&)$-2i>EHVZmV5S9%Z~0L@T1MD zRl|1?AOqW~|CXB)4q9)i&Rt-R@3?ui>c3z%{>GS9Rr}*2{7NT_sv+4s{L6InDtS+K`;lC{caTw)KQ;${ zRiIyWIx8Fh4_~bM*_DAG1vIMs)L-Cz`&6qaj!*Hkwu)7!$tn1^sedJXIm!6A#RbXs zz9f9S|98m_jYNDg@3UmY@gDxqrYVUJDGm<szlz;-FwLsZy1e|Bu07QA5K9e1@BJb_np2fiS9dr|5V^F z*`VTzZ_xIU1RZq3H&M??f&(4!3%w^LhB0<{CkGeF!=fYj!mMMG%6@CSi|P?czVadb zBHB`N&f);Ry=AZDt=~R;tF@U#d}BBMN7^wi|7POrm5EM_aiG&J#_|3x9= z4yogl|BhGs_^-x8LWe55B9!r$8hR=>yi~+v4z^dS)i1~Aq%>CYX8z)oR@7B)U;hVp z8(vu{?*(rU_=%ghDXrv%f5(lzD5_M;{EGXjl3%%@>NCz9pHtaA^#K>%ol)tdHicVp z{Ap$Uo^f2(o8-#yvm-dTc4DO&eh_y7h^vfG?899dzgd}A)QwB@h^&li>%dKMn3Xzn zt+?Q=l*+3cnsExTxJt+&8Lr|7qEg-|enzUn71jh*Hb0Qyh7b5v3JOKIgHOFGLz;!S zH_B%#D`)sP7lM1`fI1ha*zZ(XXwJb+x!G4bxEJHT7TQ$ag1pBWY&lpNb0Z&zirG`? z{2~`O^ux5Wl%Ip6Uoozn>dMAhH5gR>yWqlYw9&03X}-X1$%T-^UB8pojw zip3jl;LOIl#UXnmaOIwDVu5QIjwzIhTLKw4zdg0$7ZfTkFjXwx8BfC9R27Jk*?3$l zwL~oMGH-50;(EQ_isPqYxJTkw;t~Z2j(i|PoVMW_j-H+-wl%+k%g{^~KXAB=n+Z=4 zzx4LQU7d*)6A>423xPMqzpi`XiewSuBM&@r5A2!ZL$5q=$@ygQ2kt3c#TJ~{S9SuY zaStKBG3gb z;$>GXaCtiR;@`NvIM>@Y;(|zXoZ{~T;w_0gag)eBVz&$v+)Tfzcvqn@&fuJ}xVpj+ zhY=Zw4Vw*c0KqUyhAP2TZ_9&TojQ^)o|>I zInk)43U0sOSCRVhRk%j!2hps@3fu$7anU`01suQ{6iq?@VDFgqh!%;zuw_r%L^a_* zu^ZMkiq6J<$0pva6(v0SiaoR_7Trz%jQxWZh@A62V5i4QM8)h$?4oaxXsCP)d$94X zNZ!8=Z5zO9aWh21{$4C+-&0ZBL>D$HJ6V)D(~c!?N)+v0Xu-xM#EEdrny@v>w?r5f zDc0=X$hDcGO5ZK57{GIn8lv*;Zv3A^>$Mv((H0gLTh zC%S`=$Bufdi|!F)u|T7;=q&j**4BN6sFo6qH5C7;koUen)55X7oY{(GI)Kf$_*C(S zPRE+%O;l`RP_T77hAZaiMC|?a-ijDH4jX3BQPD+1W8;&XDn_UXY}LB@ikB29c3Zrp z!h{@xeW_Yr5k$O-JsZuf@WKaTw=8E>ti<|bwZjT3P^e4TJ-=R8B*49~XmVDCyfeP~ z+F5K6=1E0R&}ppJ#|IS{e|PK@G`_;-qAPY{>~=-jc_*xD@QsQ;XB@B>2E!`mPuO8a z0kn!drz6;lJ%kDadu!~vOXvz$8%ykuc4)=!0~XlD3&9l)=6kU_TLLOfP0X>(a~CV@ zw(P|IkaGJT*g%amJ;U z%X{u-|CM2GQ4`8z@LWvrVr+Tl6%HmO{AM}*Y%wNoWn}qk`}dgMTg-Bw-T4^LHI(u| z{anoF`?zu=l^jgL24wluxh%}%l+f~yk#tOs;g#~b#%Gv;EWdIZKNWLymv{L{&SQ+Q z;B2|_!-p8ep_AoP5s4UEo^!dpBj0l|4&zyUxct-c7|f$HmgS{;Zemun?JalQcmtE< zXI37)A_C(vysiAkCjhe-wx!&zgN`{gv$4ETNWomAXqS)X5HXx3^>SGP4s$SCrJT$_ zW7^lOEbk0PV4fu{3Fl5iG4TcqLg|4JOm@~c;Z^;sn33I|h4OwqZ^{qTYBwT`Y`lnx zuIdx6V0&Q#&vpurrFmk4x|)U7|9N0;UTqM5fS$s%f2b1ro;iUzNvaV3cfbWRvBVR? zbdO`+++qt={@7!ZwB8FthHNp}skuU+(grhN@>1xLa|mPi?uD>F_5h~xNUCrLb{~cy zc_@^3^FLXdVVrvJ2%)+=Fc3(z@cA!e%)8leVM4DV#yE^2bSN{xa8<~{*U$7Yj3lg3 z7OsQ2YJ?CLT+zm0^FoBD95pf7HbKISt?HN+5?>)}`D)BfPcLEAuoA{%z(csUVkJfq z=`Qqou?({`?+MqqW_) z2?a$T&_|FzAa??a6(nd$Y@Z;#y8_*| zsZ(&WNPu3Q*DNTADM+hK z=zE&)1%&50=-%{P!7oZS+T-9$!BLM4^mOG5!4Z?^=v<#v!H>mM^rNYV0z}JWbPnUb zK<*R#s|TT-o<|D~dfh`yEg}Su&EnA4D;a{4zqipBFOmfhTcgpJK41lVbN)j|gdqg~ z0paLo%}_z&IRNdR6(k7UPDf8$`w1rI$>{g>UV>fq1ax}PS%KLzEV}f&yI>rLLjStu zEC_Idqpuho6WrSXL4SRBSRi*1%u0jMw|e#p?%xSO$79U|MgG2Mf#P;S;%*=GhLkOW zJxk}&5BKQ_Zb;9fk4m%!kDi`Jukl|i2t~W26=zihGe=#~+itBCSgmnFBRBsov*|sC z?k!pH8v*gd9I+F2ao>8Armk*%IcAcI^t&u{? zgxV9RG3eDY&E65z_=+C&l|Kn6s&6}=&W}eu zUTEaM0%B1k$#wk1qqkAs))KzWpD5I9hmfDfi$t+0Tt1I+9hIrW;wK+wqPXk={{96j z>X*+Oel(kex;mf5e?-Egz9m2BhaAA5@@!K0GcyR({q7{b)mtbkjd72E7!iVM-gJjA z_ckb_mr?A%aDKsaKNMscgP-kx5p^ts#J{NPg>rPp@+B?jP^bwwfA;PfRQc@?e)ox! zD0}lDe%MMk)R@$lKTzg`D#m&7|4_B9Ts*d8QYzY{&*Or=jY5X&$2?@U9#sl zT|S61Pe06msukxFJ0IvE) z1Jv&=>-pUVdZ=OXT7GQn2GlG}mH#_t9m;&IBHzS80~KHNm$&w(8cN^y7q2K+1=aNT zJ8%8fRj7ijFT8^~D^MjTr+I7Z{~|wp9p$|YUqrh6i(<%qku_64khHN@UT^9w@@%Y( z2RZu%dG0_hFMq{HB%@o*D`HI|Wf1}%2{wj2y|a|}U4Iz)y|IY5SK5yhQ}cN{!h4Wq zhOc?O`#X_C)tS6ABdy3ixMw`(gC=Cw#wR?evlQuE@qni>SBqSWi06^BtB}jJV|a4c zgtDp}84`M(w~oa}wy&l0kRhc=ObL+}sm(?n2*&WdM1@GhHE`Z2t^jGpzQ)^cn1`fX z3FIA-<{*bx`|_4Cvyo)h1zyz74CKKp9z03=Go-$nJ5TgqD$<4fb=Ul$dh|2b%S@1a~fv6L$SAz%lX@QfmTsSYuFZ^^Kb+*dA%NQGBylp zRH4mtvtl6I&}(@iLlk78zADfD4iQ;ey^_~)5QqFo`pezbk3zZ{|Kc9K2}jm9e&?>< z2SGB!zHlFP1|z-9r@4dSLCA~Uqug=R0A$py0j}I}F{64TFORiyAzRKPRUgQ>S0x_E z0moXd9_kcw;H#J$zwQK5`GtU6UgC`OKU>Ou7wCxW{#(QiP_#!z=I3*(ULQeT2z<@` z;$e+EyEcp4^8Fx^B6!9nJ>HM3!aU)&9^HdVh#0Qik147* zM7E4v=SnaJNTVb=H%Utm`PhZTH7eeKw4KLr;Xdn-DzD*O+`?Mqzy2iGGDQt(q#nd& z*{UE>LSOEWK1JjR-i!M+Y&r73?Ps~KxBNw%>2&8B34bGw-*M)816@DP{ zz8>bzJ^P9<%Ch9j-J00`X+(_LE-n$6Kmfw+T-{Bhh*Y8>mr**17&X=BKDpS3@abF6 zrOb69e%#mKYCUL2@Lg7O;rm+<1-})!;ZhkwTA;u^kElni5B*&_qEv&pr9W4?KeH0C zy=kWO=&=gKr|1u*t9r{21GeL(aTG3Madxm&?&Y-P6(NcP+e;JN-XT0UG?lI$$wTNh z)Rmq9UL(|QNJ<@aULtlLDKGt5kb%I?a!cXv&k-XztkRT`R7Cidccn4R#|XELxuu8J zKSUgE$}WALmw>o<`$cJ$b3Ed?LuzSm-yOudUk^(?NVgF0-rq0HSBpZ>5V56lrzhud z7~)P}M5$vF9nt!bS^5}4LAafzl)n8#KuoCMOCu7oh<74nspd`;A{&5|2A07Pl~z|v z5$8h@8ngbT2Pdy0qH}#pdCWkB3BnWq20r$(nsS7cp8O!m5#imkm6s>zO}j`imd z-sg{&UJpEjkg8jk%6*`HQLYHP=-s8+I!*{HN7K@-oMQ;TrLCoPM~)(1ml~AP8*C8U zD7vK+mk%Lo4y-HHnz2AUo>^1+JA5x9DNnidg{C=z3tv&XD%}*Z#&oH~)M7g#W^BGh zxxxrxk@2nM<+;s>RaZWjtQgWmtlTnHVt~~_?CBdRk-J29;xrH|e7i~p^w%Krbz4im z=BOZ|JESG$R;v)V9@dn2R4zxbyu>9>JpaPg*9%HA2Y$m7TT4oi$a%QqgQAkz`R{Op z3;897qQ1h7wO^N5Ykr1%wPu#gr%uD)KX_I`Hl2VU_IgtCzHkKod3{nzuH7KKp*_At z?jiM@?}DpeiYi&#-v-C(g_kUcHpBn)&`aKbmBLwRq!J@W9sEfkw&cvpYWQm-M2StD z7(O-`KD;05SAsSvg{SWFF7bTJf=7QoTk_qq5T5exWXT17KD?Lc zQi6BNg}Yfhl$@!11t0uLs~c*&jaDIJyMRVkw1LbTs6lw{UZE5U&Q&c)e9aHRmQoJaSrZux`dNp zd@{u;=d4~g3}Ua$k=<{H zom;blqps2dgY^7iuMU^Na&qR`RdaPPUFtWs1F9NU=<=B@ceV(Z%3z3CjDB&p3=#MHI$3l8)IL==I;yGN(x!9 zb5~2*#e^5Ic8g-R(L@^T=86LLDc>iskk;31%Z7(AY*rS#-#!uclKhJm2iO|jPOy};J?tSD z2UsV5CmUCI6z1r*jV;`A7}jO5g)O~v2=?^bMs~_i3)tNnZMJFfURdt4wQPcP7wjiV zl^ted3d5XIWV>Z_b`c(;*(BIDbeQ71Efz`yatx$kj#@Dlsn*D*+LaJDQ?k_-N zk5#aMg&$DnMm~!hGz(3hWwT1EK0}A=-m}PiK0q&J<*~j!n1KEXd&S!Gdju-In8A`e zYNL`~=z`i~R)BdI)N>+{_3(Zhw5$9sD}JsC8kc&T<>DuWqA536d_gUg>3N;?&A1B6 z*-d9n-4sEMR7k9+9|Ta&D2BDpg9l{_;Vjqp94IO^gmrj*F*KGM#QH>e2kpGz#|rGu zgPz;(&AMm%8alt`982!E?N`WvN~>I0FRna;E@e8fnkrJDev!5;fpIc)EYOODzVQH> zcGQB^J9-ZqslS`0;v5G}TG+vw%e)P3@7T&pUl|Q`Vi~a1uSG%!9_X@cL}Abz!aCNr ztqkZhPj!|woB|c^S7BKX5TF}0SF)}i#X^&2mWt(W-1m7XbaTP?Vt?-tsL8!A#WxDC zKm)MT#Ym0I(DJim#p_VM(DVBTi)l69P%W*V;^*7XL;udU6-P&SK=oQ1i_QB^LW7Iz zitk&yLAxJHidl(H&@gIwamwdo(6he0V*3+Ep=WK`#hDp4(6G(#i>v-vLc0|5isfG2 znRk1jdXn_wcdEOfe_y2)w+8QkYQ-iOvw6nQ^O(fqOY04x6`psCxu{Lh%ZF|k_f_gb zck10JE;CpU-MSQ397NKDx((Bc%j?%b(=VPjS3mN%GU5q%Z3F&JEQ&?6Zpdcu-NjcM+94)KO^eG7TOfYhjEjc|GKgUH z=3=3w4s!0BZgJqoYKT_Py5cf~7@{CjFYeslMuzx(%P1;6Mu0dEJT3Bz!$2&^9ZE1%Cl(tqZQ;8>vYjQ z%Y%^DS#Cu?fPIjj2gi#xNz5TfZrBwqSKkS#CD;_@cx{K=3_e(-k!A!ToZnkyJ!$~C zd)%zZaF-sW^T76^YTO3Mxow6;`#D;Wd2Rh7-z9a3RPlc_-S;=ue*nkv7K)P6GFoV8 zNoh#J<>I>cy6$xMbg!gA(NGB`qNuy~a<4mGTqRJ%U0*x4T{V3s~s;NkZbH-@`e^Ap=EKKZ?4EhfLJcyp+o z6$^h}aklz3>qgk)ir?eSEY#Nf73+eYv0T>Nt@!6JHq|t;eCAxO08XiAWlp_RaRhjW zHR*R*#h%l*Sk_@v#nQTKtP4HG6#}~}EM=>z;$g%^R@)P4MQu(w3v^FVakQ?4)qRy+ z@zvJIDl0!%u{yk%Wz^+Xcx9_u&txYn+H2*k)!g(7+$0Ihns=mv7c5{UWTsU7b04Fx z6|&;??W$<}na|R*m=)8uf;rSLAsgVbumg zD$X)fS)Q9CDqyN)mUSJV;@O)$tmGAe6$=*ZVo{cCtyqX;v5vWHtmryNXEn@TSCLpx zW&x*rS5!ChyhkK!cAtI4CPEnN z^?RF&T23&lseMAl><8OfKVSW_dQ9U4deobbb*Ogh%_)K7xYfV-IW1KljQ*6x_{9tCO zRo1nQBg_pdsrAC2A?7Tlz}tIXaaxOMpbWhPe(vBo=BGLv-?Rt2DpnQj1Bg~?{-Ra2l9q0}>1 zTDDprJ<>4mmTk2Db3Lc6mN5%2d0QK>BIdO#Ue>77Jf_R_#n!VG7nsGjT&;y~&oLQy z=2}rR@|ZF8PS#fc)66{&9IPI!EN1l+TkC3eI&;g5iPmq|)0o|_#>=z%4l--nzn4Fr zbAb8e{g?9gpnXiozE9v zSZ3<dnsgjuoVcKO84NanK@*UBl=fJ{%H%jFrqAxzC? zYdIYk$VBfbDYwb=XKoJHmnZ5sF(aaj$}c?jWuC#v%a43p%lt(am3uB+#gxZ$%l|p1 z*AhIKDM#|kjfIPt`mF47!bMl+^s^b|4`0t?DtSlCCrof=G8G5QN4;h;35MiyGsuCN zQL(#x*R8KD_T>2X~_Zg{t!RudfzuU0o!r$NH=Jp}WUoH7R**+3o z{w8!NuH`SNT*(@U%X9#i|MOG#n!4iRJp;-QKYSaf_Ssw>_W4bm<96Tjr%tcpOp$BK zmuz?ucLcqn+!y&Y?hxIhd`im0xZ-^a%Z1#AIGf`O%0E}$jpOAxm)pI#9fuJ*mUoU^ zkBcmxR(^a=b=UW&V3^S5jaVT}uZI#%{3*%CL}FGf(yz%wPNF{k!Q*R zM^SOlSf|RO9pQ2AX(!4&RzTwf=hDimffq(2bE$d;c8|IA++GdC?ToIp?wFD>Q>!k$ zlP6_tx-Ba`B@{BwwFygYi@A(>W1P~cit~)8^9oDhx6U%IZ_F!odzi~;jma+6y*kBM zy*H!uTXzP-oPV@*>X%~-is4}Co8N~Sp>@fn2d1Sm@ZGyh|9QZDi}x_xJs72Rs}dM> z!Q|3}O-zP{f-8L(L}OH>qe@3WB*usgR@#QdF<955O7lo)hC>^$^d}3>=o}9&U7ZAF z^to>@U3>(@@Ce*e+MEew6p%KQ#^i-CR;RBmJ;x4YjLBD)o)h~se%HPPi{ttDi^BYMv%rG@QspH4MNEIQYF z^yy7}OS)SP{o{`d78my$^k0k5Sq`~Z(|1JVT7>SG=#_g7qp6(XYTg=Kj$PfSn9rCDaq<nw}F2vZ$tJ(epFIEPHLz>9jRB`>*YdA^m`ILZ;FfMM;nfQdi@*= z>m{0gkvP*LY=YD0ow2u^djO>yFWOju_dxXIcM~kPZUX7MW{#KqtqP&@w|_60WDTT` zBz!5UGy2oB1)oabMVsi6cR!T;bEZo;Yw7VzJ4!P1z3H{E*Cq2$E~CTKUzF@mTS}i@ z@}%T^@4s|8-D0AuA+iFVE(X;4IyRMfQ!87QOMO7uDkZJT=4HYGj zEjIM7pO%uEH52IptBfV%OMlbu;I$<`=l!H*+79Z)x)?PnJMx-_SPqq?fQRy`-I4kX90Acut!MPA%z{JfYPe zPbvWyJfKyUC6=UQ)YG25|9^?ue}}egKE1>#?iS4$MJhRkzDA>^V@s}uSJ5C=WXa_% zm9$+w(Ix*}?Vk(Gv>h;DN$@m1ZS-VtNz~6GT1Qnt$$~xwZT!>b65~q=4eYt0WJ0}w z_6WPS#N{%FmR+#2 zC*LE}zTo@K&&u(%R8F@!UWTEqe(=_OBNsuNWAn!R`am>o{f-uMH93lwaj3~m0)^8i zmp?S$-3Xvv>902rE!;sX^15SwYqyPdi+t0}8Qw&55>=ZWT77BUXBW-?9P#iHZ`vl1 z*=)~WMnj&`nc3+}X_}jAb31Dx&HI)b3d*KD3kd$^x#CM=po8?Y3bFWbzZ z?f95yemO9ec4x(D^R;JFXz6j8W@hySTB7Qhxk))r&2K+so}BZ8+TnJ<{B!pRH6FLu zY()%FJp>8ne}4J?g&(LJovG%-le(y9-~@AMZwGbud5rmKV=MLXBe>bCtc7}O2GktD zeMaqqM4IOxeoWndHq?BX&`7Oo++lVLs-xyOY%_;?)Kb&Ho6PHNZc>%`>&>0L)zq=Z z)n?57OVr%yE6jyvD>Vx0VLn%2p#~Q$H2-tcTj0gidrouA9vjtE3}U9)caEIu#N7#+9H-_Qx=dkT4^tO^>M%`cN}=|zZ#89MWZDaVFL9c;W|QooC(E}KO;iNc zZl%stzCM&1vR7?Nm>xtetCX3#d$&;$zl5e`wVSEl0Iq43d;`_*OrdGy@H*;&CwZom z$W_#y`KL|)ocKXI59&_cG1L9dh15fz51A6Lx=^ofIbeFqolD)2vDY-dXBM@+KEX5) zK7)E=7Sp6$JdN6frAUP{JD{ zO@G!6Q8;tMOwP6gl)2O()8Lz4N~3X`>7P&kBO>#?D6+{Juq|q)YcH=~rD$`}6NnTI}YUwo+>-aVRI#9lsltWhw{LoN3h* zw?SKzciTluc)%pnl=5p5cdU9F}3O8#tI{6|SybF1Ij z^h8Rz;Mik~DiTswkvfgJsa(nr(;H)6#CgiEu@)oT=!cwaUmAMd3cNV6Kl6uT&}#uDSt zy(|jF-C#VhgHF-x(HJXckSU99DvVWcaFhp55@VJLO(~`GjkD6=l)B0bMrI_G;%s-$ zcw!!i!o}qp$z5TTDDz3@x*ot5|L&UL$*@%+EinKiyvkE&m?0+j}K)K zvfFsqx|;G<8E>3+VgAoH6B{E2a7i%J|^_6TLDb#`y8@ zY|48n*!U>akrMeO+<3^*p3)fsF!sE(p_Ix3jjlx#Ddk_c8lCt2Cij8-j88ZJBx965 zM)ZVH^7n76jEaUK@+0VSqlG;{ex+Gz%p!asyNhPHS&0(UkujxM75I1h<6Wt@TuYWg`QftU%^S&Aa zR@@*@N*Xlef4V}>Yv?nmD=v~FJi86)N6N|m$KM(j2bGX%Ev<%}DF*U&-xfnfgN7V^ zw#iUjpd`=jeP|#frQ}(F2E&{ALNY*h$FTSfhphi`)38!mNDf0?HGF5}ljoFOGUTtw zA-hhu8oK+l$mpFV1{+H{`R*OPp+6~&oVZkD;B7oe4o_DYY`-OwF|A@lVAUS7WGmm` zpO!$L$G>104`7n-eLZV9^_xmI!*dN!ZxG4%N>3WPPhiRO98VZ-1f$5(-Dw8W#29jH zW2&L%Hkcf-D%tQUGlIPP%x*(_NGQ4PL%e}IF^G(fWEh-oZzC_%lMTp>&19FUcmpA5 z0~xdvZSelHmRwdJW4M0Jn+*1b80H^cMt0AOFl_c;O7{E+Ft~qrCsQCh4E2=@$WKfB z4gUM*kPpw?WJvaLBBPVn8}<%3kmH}NHf%81kxMtNFkEF$Ca)2C7#uwQk~+o~8kV$= zk?Ke;hH=q1QqQe9208i*$=}P#U^8owRGZ^q*!ZB2l=acpup+0MbPzVl&>7N6QdRuc z)5hPBCNB7?*Ijx^5*!=RS0p_r(K|ouvsXPKF~UFU7j`w0#HJqoFRr;DoQqt4em3nQqkW`RXs*m2zC1t!b>aTw(BKj87bW?ujL2j^`5h!pxs|6s(w9uqdY{(2$@h?s zaWeHM5ecNc-^cV;TPEpY{9(PWno0_9I-sZTC6c~v->2_diY2w`cInr?K$5=AX6XZR zVWh}(n%*e@OnTf$)SEwrlg^>BdPgOIlyMuW--6gdGOmT`mrvP7vKL3`TQ6=RDQ&~` zvGKm7-3LPS;st9-d*5!?7d5OT6+^e`_osQ0=3L#VpSF4l>B>qUJ+sw~#Nn^fpUIz3 z(o9*d-yh&i`nZ3o-t(g)DWTI{FBaRA++!B#TR^rX+ndh%H$Ntlmam(s*Xe!}kIC%y zTQNV0Q)k%f&rca8HXfU(FSQO4?+lFVc+>&nSK<#{h~oz$?%`Km<<yMS{MEBK1?vPP;I7Lnr#1-onEfN!-yj1D(>v+ToC)woq5?a*lX=Ggo)4 zCYSi!RH(B_JVjizG+&2u&LGP9r*(-}j}p<-vviS+LqtHWFY(si z6kR@U7ZKjQPj_kpi|9g3)B$xg;{0bU-2*6z2#uoaTt~3Ps@o*pdNGPf@W<(91ji8l z%2B$qZZI*_J4WZ0A3@AhfpyUJp+q~^2p#an4&qfdKxdP-ji`0lp*y>1GqLWJzpk~$ zm$>+kpKge?mS{P&UiZM>o0u}ZT9;(;A|@rS(6z#s5R1A!bTdZXh%=~*bhg6zM9XUz z-Mwwj#M9`xy684XBJYWlPI|(g_!>N2XI*MbjIFcN71mB9+J{co`7wVJMsEBmR@(j~ z%ncYTZqkhq_FNt1Q)CG@JE78gf8B&=QXuvpz&PcX^ri~k=L3Dkvmiif;z z5x~-$#i6xV347hH7L#a~3H9Pj#XJ652{>14aj(=uSSl_lj@@P?EOGt+7;e!LFk(&d zxfB)Qj;pd5HA_a=DUlSvD-jaH+y%v3qPT=u8M_$OQ%F!PDk%2P$|raz&lGnr%pts9 znq7>&l0~>*lu^tB^IYIClEgFz!qP>i6Km`MHb(|A_#~GSTSc9N_f>6 zRlF(>L=eP;7w38a31?q~6kDo;30Lre#Zts}!os&(i{brS2v?YX#g8&K67oO#6g#{4 z5ctWfi`z?Xl1ubnly3!iwTL(AZI;E9u4wa2|%@!98^ zwUlek_@4Pq+G(&Re7gFf_GsrreDvA|?ZpEPcy!er?PZ(0cwXo&ZKmKB-r@08?QHLB z_-g!R?e6N!cx8`OTL7-W-`H=_9)4rN&-rW6uHIwBtMav4?QbofwLqoqJ*UDmv{LQx zLK$ALL8!e`BE(O*#nF-jxp+OaP<#79A^ucro_2tcj~67I)^_xt#=rlbsTCi|!m~~v z*Djozj$b&%Y$oe+Di{U&>S z(_0&@<+=?%HFcuaHGCpI#{Rbk_Glc(Q2fw9Fh6h>zY)#s_OCeK`=2!`=4adh<)h}u zKtJy7Xpd%oN)K-O*>{@1W1YApk9JL2W*ct$l~)??sjqNvVJ|eh3ZCOW^*qs}&Uu2{ zkp4guA#TK#&aKzHUtEWaE2-5)Xlrl?;7v`+svEe&ZPl8D(kr;;)JvKbeiw0j9IYBl zRT*x(u0->DyBQZ6Y|zZTt;1!#(rCVg72(GAD>ce`InFd)s+kQD<2c0v4fHV&R~gLF z#2_x<99s)C3tybYDO2+_*4SL!E~nEPr`IQOdrX;{&BPNpefV+B^7b^G+q=V>cFMv3 z<&6{#r8604c1hA0=zDMt7ZWwt-tWXMLd0u?ad9~FAYHS)n}R!#Pu3Wj1l<0Wc+J~x z49;*Dt?6JQa4rnEM%N9+)l7hDwlYDuB6*~S-4%wrzCBEHkr9k@Y7NpT-v!{rM*=ix z+7=vn!4}Q4jtw~ckn*n`_H1~m0z)O8KXssKA*8xkKv*;V?TD=-GL&+vL5VM{D-2iicaiT z`>rCAYa4c%rK9LP_a*i`ytU}8<8!RvXmb%F_c7K<)Kt_tu@Sp0@c*2|(Rvqd+KXJMT~sG>EyBCtfim?Bgg0K23EToe(r1G_LUqG(dBKNhtqv?yoOCT#879YxK$_1N8K zw-tSMS%ZzKp)-p%o%|D<^vk~J$Csb6^#!(ApUUq-fW5ENl-j{x=yGnawS7wmHMdz~& z%cAb9zcDYyzW#MrjcF>2Z78{|&e&m&{X)5}K48?vqGn%F`_3zh9lBGguF90h-aS;N zw*MrGeYVQ1UWVnxy0`1p_O<6@7Sq4`K`&b$Kkcu;CAqw$P-ry(i!a7MOTHhXt$-KI>n>}Y%}?Bg+Yd>1`-mg=y2 z3_^~b5u2jMUc|+Q&PY;cEJVjzYZKM`vtwcjY4K{GPvF=cz6|w6R7C9mzjkWdYk=5t z1zx?xb4P4QEJkgU=O61Z6QRC166k+{0`I_o`GCw=rE)->cf@T*utM*RJYHt-|!3dab(HT!9GDaEu*Y*Jko z7%|#g4^_S2wV09<4XXFCD$LN1yDI%)pKh75^P9o#$*lR7(G^`~$a z=I+Z7RZQP>3|tYY+6$P9na}c9#Y!e)=C9qPvLE?_hL5aQoq>#@>#nX*HEBlC2T!h4 z^^OmrX<#qaJ=6d?+j)s9+1!inYIRffOn#3}*UVR~Ahe?qdz@7ptgq0t%`;WgroBL$ z{@SaIlqYDP23ytqOO5DH>`5xv^g478@sAQtuR*)67*j5;x{f|GJgTgkaRt5M+OTpV zqY^zg=aUjrRf_gQ^eMwLrqb4uOvF!YY6xyr7CLFjhXDdph3ZRqO# z8OoY@o6%20|G%ta`Jz4M9#%fOxCUL?b3kchvl4xW$^i{=pkrOy>`D8>$D0K z_3bwWU{H*jbLES|V+$WOg*~Wvbm9WaC$V1vtUrt5h4m=TIOU=?FM6jCVo#!G|7cSj zP^P0+HN8@}emH_UZhoOS=aY(>p7T`k;9wG}nf6f8ay=2%y1hYRnG%n3TX0tq1E!+{ zUvDXHULc`hkFP0ywqQ{qrYgmRMJUw1oJvI#1BQCVC{rXGqEP9`Q{L0y}kqd1IlLsfpvQnZTZp?dG9E9~25q0q)Oh0T%~sJ~|pDjw3OqPi3ID`?uu zDBGyLirc+^kc?Hk6ra4ukiYC%itfZwto zTgmT`2a@56OV&1IG7_pd{PiW$xCx}N^?Qz7ya1@6raVSI84FgNuDp-D-nLzFWaKWg z`_@*4zu#>nNaLrtbKn}XFK4~Nz2Y+RZsHn6@E0rc4Q!>t*Vlsd@$*s)?lT~-FIb{D zWYHjVf4eCj4k(ZX@8&CpR!NXg>YNqrJNd}yl9>uo@dczE$3d~Q>n!s3VLL_Y(p=;^ z%47wPd=e=E{*`A*(ve|ne#y7LJc3;5{9Rr%Clv`A`y!tMPeN)t2jv^jB_ek;^vf4F zu#mIMd*m%s=tvLIJ2^3!gxs6iE-yKXMSe?oEpNPpL{=l3?7i3RDazCDzi?97goPT*%-uLwfqTz0?+-CI%BCz6=e314TF{sRtYlQuX z*9FJqD;{?vCLcd6KWNj5*qN9jX9v7NOv5M1k0!SudLwtsH|UxW6SnS@UwrcrfmsnJ zpEA1v@nIfSzBJ+v;*u>aq1j$=J$PmhN0rIu(BE;DfTjUTJ7jZFpqkL;tA;K-rM?PGc zhq#7WEkD$ojSz!Y$nU#kA}Y6g%KO2`5Dx1X%Ug~gLdZSchX^0BmuI9<5O#gG^6gqYVoLiY`P~<2#ExfwWbU?bL}mS$EO;{n z5r5;G%$F5`z*K&b4ezp`KUd}J%4P|zd$<>`k=DtIRwMED>IvfE{) znX3?e$6m_<%a$Qdq%_M!?Mo2I-A%HZ>Fx+d+#^}lw)u!s;(giCowE`C=zFs1{27Qp z&>GpU+Np?%5jSM~p~;Bg;A&an!oTpV{+DE!s4@6~jaFIz!BP0mwH6t;Xb3J|@qb+Z z@kjVnk7C)uUp;WEyIK~!;vHN(UoLAww83x87R$D$zl1M#GkrhT4!H4@3WP(F-`075UY>!d|SNGCnP7Pc*riUcU7%qf|cjII? zUGm`vy3n%5kkjzC_i&juArqec9x8)eI0oPO9we)&Is`xS9w@VUyC2^BK14RxZZABm zD^NDFHUW<7_LnJ9aqzu8n`Ev>De#-UzB0NB4~O=xl^w1_!(Bdl%ZQ(1;7dO(lg)63 zz*(P{%Fb?$fcO1B3cMl#;QA34*+^C(T=RXdtWCES-ZnN%#(l66j`}l0<}$nvZa2wZ zmN<76{JV{8@GZ_`(%YJOaQ6k@q^|X|;DHOjNP|C4 zhf6&MrJEe5!ndyMmwsPA89r-Wk2DwgCuW7;J84hq&zPgz+NI9Ikr;=N*U}l)pJQG{ zG)tRX`(wJIo1}YwcgL*3Jd!po>WnET-Iv+~zlk}(yeGA#wZt6QQzLzm*%VWjdPBNj z{V--#dbPB@raq?g^d;&1_q8!E3a!$`lW)e@i7e7lkLs9%YNJ#PxESMUE|yNGm&HuK zq?ST6O)(p9$)!YPag5-;Sn7XM732ScFYRiR#>{`qmXgN>F@7Hlq{XhBm~-Fqq}R6= z#CT20k*Y9fVt&jxDMh86im`V+A$@V-L=0~EQR%YMw3zMh5&#(Y%7O8qU- zF-i+kDrx}5aIV9obzNaGwGY73JAZ>>eBVS!3taBEyNVusfENmVkBn8$(ZrJ#tcNSkybug5ED*aDIMu^j%iQ!l1`dD zGp6F?5^0B2x8&QGHduJ*Pf7Q*SFqc$qY}-M=diTh!xG;u zk73D~pCsp?_hH5SKFMXqUDyJ1x1{{YEm-~S&i`ZeS7Dc0+9XceOR#sJUP%sCm&3qQ znkA;kX4qHPCP`_R4))UbktFk{8a5VrU*h2?hY_gvBpeSBZ0t~tq-ir3)?9c)@;0gv zHl(YTTqozjB5z%iB<#`GM*4`uuHy?yKd+8+WZYIN&fkl$; zr@LW^u?oqqu6S5VvP5$88y$8nUm$rul?)3h=17`daj+@33njueD45Nge2MoC7%c32 zj^qq13U+(;DM=L-2s^qiLvkrO7?u)sOmZqK0A^wxmMr0HhAlanA~{>+3wx$WlGIhK zf!(>bTk^Da1?=mqof6|S4;b}(oCNWHAOgN#ZnV4$K{nlPsS#6PCFT zEpb?45A!O3OKz>Rf!UToC82>6V9OtXBz*9%=#w9Tk}BM{=*12Ii7|dS`sb=0lEl=3 z=vm-xl3!W9(K{12OYrC4MUUrikerdVML#yLljIm*M!$WyN`k)pEZXPua>o6)Zi&X=4Rsg9Q_&lj^@&FgoQT#&b&Ijb)1om+o#L~nQ=`N9ZQ{bhr0C>puf%j= zVszWP7h)R~D>`RdllYK<7QJu%Bk`4TVl*%IzWDx?*yvyB_r#{#h-i6njhNT~jm~&< zL)`WxGFtVmTD0Qt|kJUo=N#66b&Qi5{rYiTi)9 ziaz}Zc$=f&&YXGHsc zJS*O@bZT_^yfb3A<&&fB0ome)Rezu__GF5~eSSjQMaRXQjU&)y_l}6mwtR+~zod#~ z0sYYA#rwthpl)aiWUsgv@D_UM$S!eMcq?>^jwMb8HABBYr;GPOo_f4EB zene(KpZPh6(@A7#>P|cH9|8^eDoU5RcIrEGMD9zFX=w93a3I^)iLQQ4|#(Dq;VM0U%kKnFM0 ziqvqE)s%kfUeJBEJcp z5MZrdG;^#K0{yKKUH#e&;cZcgwtRXDao;Z!o$7f2d2bepR2_AY54}85;maDxT2Hnp z`ssB@Ik`a8)=&jW5$A~lYbqcIn@@}OR$CyKXP*@9vl<{V^$ z?Q_9FI<|(2q8(8X&XFL|pGh!CPIZ9j#CH(n>aQ)Lrys*0>jM2mBOO7IxBowm?tQim z(sXN$$XvGxGI_GM2yk^hBn7xkWU#D;c;zk?b*h#_oEsO4`nXFW07q9*ZH_yn96nF9 zH*G$I!kaDX-#r@wdF3eDLYV|uUb*#(&@e0nPtUq2 zmQU0VGj$yoOu>uTlE?6W|~nLpg#q6F&7IHc_+ZzzpI6NveLkEfI=9&FBKeI zAQ5&ElE5CX1wwpeA~6sw!7HYp5z>BOz>&CY;oy5X z*if7)gg%CVK_kb7>D3Y7Re&^Mh86&hI)6}zJRb-)w(l4IOxp^MTDwn}#M}s8bu3X> z1zQJ>YK#{)`Fn#6u5rQ}o?c+kE~@b8jK$!U)kLBFcNg&glesYQ?HsTUj~2=rW`e^_ zaG}a-4_-bF6&{ku_#X8w$`cSIoDeu11>gn<2fYTO zR6SdSrPF((g8lu3AtRkpi_fkXYFpn#1$C?uzOHGBl5g-9zB4pM1)g3eyn6m&)WX+G zh4F{#qqeVGB-xEDU$5j0(t{DRlT|iIOxs2-U5I zsDL$7g$}nhQEpjNgur4&)b^JXgou1`lyu#1!TKa#RABZ`K_}{b)S@?|0)~HnRM5sR zf~tk5qm+4rg7%4-QGj>-f|l;1QJ&j+1?q-_Q9$;4!H$yTC|!Stpyd4SC{XAd!Qg@T zs5R1;f{C&8DA?$8L61Kv${PJtAa}<`q4f_1EB+#){3qQPWOYKLh{St>vf9X~+m~tt zW!lgv=B%57tehQDQM<1SmM8c}?W?;ikVW}LJ@=>-^sM%YN=q*jOq{VQiu&3t82scF zm9yC(D0#Fv>JwWl2r6}r;(k^MiVEjO9fQaPulG4cX$)e)JD5Y%bUT6Ix{qzt#W;>2 zapuG*c}=09fAANme#u$E_DA198&2d3XeGm-H*Kc`v1bQBb=xxqOA~uRUnIu`*Ff(; zdfv(z}{KUT*sY|CgUY?4yYSH)TC2$f<%2Td#l~|0N1G&aDKUpy32lzgR#?wP-=(h2u=m@K%dG&1(9y&LG(Gnf{t%_p!tWl3nH7cK{MWL6`U%`0EGr`60mcR zf~qyXf&+|$pyX-m1S@tVgLds*C9o{m4JvxJTwwQ=1#{!D`lhzt6} z=Vip}1U-9m3WboU&{2P~BBMTul{FUdLBNtz} z!DrH+Mh-2z%1_<$AaWAtG9Nd+E)qSVl0UQac4Xh4GQQ~Iwa6Q-X8!1z%aPAO2L3X# zHF8yzmcMdCNo37(HUF=TK2pMy^YyRPk(E;<{ADGw$eAeueoBTg()6Cg7a%#2xybYU zg5?E~+S;@H*q^zPQ~b{GM;cE?YBbsWIC*+x_S`JKF6l_5?sPi;1|TKU{zn>LKWATL zX~H2svnL^v+j@XMdO0q#8k)q%ouNc}+}h1QkH<$gZb;xuR-+>;wM_nzaad%>0y=-y z!>CB`Su(#=28{gq7tf!%H#oBQKrDabj)2JdACUYFj+-NMi7|Ye_VtnePa%9$$?C|p z;UK=(@#T@Ut3ZA-WNBo}dH|p8<{o*jcnAM<|Gdc4?g4!0m06KD*<1J@a;8W6PxIr) zV(cPEPps#Qye36{`L>2%`ei)Acds{JbnAOWS@$wNrr=9NGRcGAL--Vt@?sG`%KJma zWvClJ>)X4C?f2&M3u@aUCI!vm?>YZ6!oJFhzl8KG0_i)0uk(Hs(Po^+pZKjl!r*1g z_o=CkxFny%_bs>)F~#LC&lZ0rg3I~ED_vF@!F2q=TQh8lICN%&cl??mqH)SFPo1NQ zpk;jGi4ls3t>b;X_=Vz#n8Q6hyARw5!^k_{QEOoYFu8+Qb1W}n>0m3bJv=)iDDfrl zp;JbL;=^;^h1Y2j!K|mem73HD&#s3&&Yq-*2>N~Av(1SS=C}8FJ%5=INJ=g5VLdfs zd;3jZ?gc^wi*$`QACHM>dQ-(q^MFU3AYSB^_k$z$zA5KjvxY|~h!&nCEhJ)An~@g{ z*dB3*q~pDqwk6_9dlAp~sc*y(MaiQI*F+?AN_h;*iU?1Jh!?QjBVtiEkJmfk9zl#} z^WrP!N3`}8@T!l@j*#rm=lu_XN60_t@H%X!M!eg9idWh=DI)$`1`l=Nceqd5ao$7B zkMOO3j__RFzlNX8I>-y?{1iUZ?f}oX_(OPG{yyHXUGKv`Iql|&eA>f<_&a$HBQL|7 z+?YH>)w6KDipJY>>{0m56=WVUxFLML1(A6~kO_oX;3e3^MUZ{^O^aOq}G-bU}F zaMbO^yxIM`!lNPXyn9AwcwWl_UUVWgd@5ru&$OBlUOzaC*Y*(|em~8T_udo}?r7)0 zyO9VE=W^_Ldsc^s6PHZked!MlXO&FgMHvIa%eVdJ9!}UC9#sF6o3_$7d?w}_7v8%% zd}-Gg?r-h#@YMaExyR#{hC56g;5K=xxaKFW02X3!3au;}30e|ClT*r1R@b6#|_qDJD7~8_bGd60P6BVN%jTwf zqyuB`W^y^Lhk+Z3>D(Od0U-Qq8W#rL3oOq&#QkKG07QADaH%&KK>z9_uKpkyNJZ@7 z-dl$Q-tSM~R`no(2T!uN8S-c#)1ARxhyell7b)EHGs1w=U_@@qogKiNAF$k!qyE6l zS!iz020!4iJA!NJTL;{GIhqSrdIQ%Yz})K?FQCt-2=0^_i-8An!?;UpU4UbrAzbGp zbAYus1G%m1W&$4*ws8-4O#?3cv6=f(GzD0~-N@Yl`x}+ zta}_Lzcq{7fxjPSPj%!X9q)!+`D@RW-M$%SQrK~?r&Nb^1Wn;uS6mFkyq&;3{<<`5 zX6A3s!gIzj2ahohCrBF>Rr`(8F{}t{jQh%&pb>`^+75BPqj_O`{Q&2V-TAPNs6I~o zmAtUTPu-l3UD;vV&cEZVb6Ma|JKa|>H?LcuXTn;Vv}LdrRn=@d5lSjh47aR{qD%;Q{nV-xmbDVsAV zZ$g-NV*w|8%dgPeDft{|*J!9@Q7&iog`v=@`cs^az>lE|4rFq6_IHO~U6{_P=f4eA z)u(a(09r%uA2`IZ|NJ6!)8Z7)C-IZeuKP(GZFpm7^T9nFzb|(~?LBvKM6z3~i=k2VuIc_35h-;+4bq7iNAU0)36j9eM|xC6myh?Io7 z7r;1gzwkm$+aa8X((|F|A0s&z!t+D9VjySLP6GU(4ntR zcyYGp#DqTeUCNp60}h?uwUATM3=GZZyK;QfgF_*p`JC)!0ip15XHMyZO`)PvCr;Uc z^`Tyj8Jrx~)uCVK*>g7CUKTo~(Uwykza$iQVlrp0qg&|k#tEE=%DJHrK8&+t@J^v0 zWk1OS_OfFZ#0cin88 zxBUQj(K~kSscrx&rh|?3ehYYF_l8~j@HOE4&6jMO{VxFQLofbMY(D|K@@Zl_R^JEE zKRjYTC*1}3s2bV(C*A@C;p^EwnrZ;s`7YZx@*=?d;cYhZV<}*A&J8xWzzA3xa+U4o zs|95Jy3D@)OaWMasgfOZPz-QPE@yKV@BrJ^SlBnJ3jz9GBl{LH4}dSyu|YxW^T<8K?FE8sGx^(eq&+Z;A95(e0L_avM60R#v;mB9w(h5;C%$Jvf6g8+4t(%8m2 zf54uagY1RzegJIN0d~Bt58yN)iJhzU27I5ihn*Sb1u)kpuw&jY0%%XM*xxf<0G&Vv zJ9Wt%0L_ldZoJ_L@M<8kzZ0hcR_Ei`zs4p54ni^PX5pU@8z&_D%;ujVEln`C^YgDE z13U;jC3!F;90y{X9s5GwyN9!{ncj!oc?)0{MYe~0&;+q*-7iC861M;Uoo6BAYyH{G zMUO%TzHDL}s_R1*S8ZV5#nguIkNdE%e7PP14_(7PRZtZIo94}4zN#YR!sBIZ<=v8y z`Fs!dFjXJYNnFf!9ao2Z_H<{v31lI`9~ZE{`U*o{Sm(0U57;4=wApO$_;VqRfSK&v ziMb(b9Hz5xNU}nnJe$gH+;lvoN@~L{|Bsw*;Xdcy=ehTubMEi=;s{yfO3K43=N91-AjPJc?w zTjTG9{1_MGbG)3oYrl$1E!~_Bz@y@or%p~pzhSXa7}d!`Ye;OoOm-^z`cAwi&C+RW zb-%b0YvyDG_KGRZ7$+~^SK>>1(N6cYUWj|9G@TBAeJw8rV_OucyU^a_2;qgwHb>;nCwxLQ10_>+D#^p3d2Zk(QM zd0QOyVwC=B?M?Cb@Q?JESJ%Z(%Wvskh1bM!!d`mp$*bZshTZhOZTaH8_dDnSDpxG; z^O%0(TediV_#wTpK2t1px{j_PNE5qms;2iH6pBOgZ_|6Ncw!%`GP=4nTddk%M8EPD z5#I~Ur^nm^#TJt}^b{~voC;*nU+zg3mnaMAQMg3$^%6GSZOth$K!NEIz5j`cUFYbX zWwGK12NLP0&PR*2XX5FH_8b)lz{lyCW=F(FRgcm)tve*%b^Q?i@xTGGDkX&8QV}Gs ze72V^#o8w}4BkoSAJ`*4G3ia;YqL|Fk?Ky5koOadwm8%4$GpUcuQ9+&~@wdv&^zx(TVxp5Y{ilnmcxU%o`WZcAvG;-BjxN6q#JZCUj=TEx#2v}gj-^%F zVxLVDj$6eV;{_` zcZweQgg932c`8B=>~(}FZKA+KI~_0Sw1|%V@OE63XcFx{?e3U0_CTb**4Z(o^S-E> zf*JNx^b=vYxNt?^5e z=#ObP&GqFO(b38dn$m*=(Jhn*XeksP!6|7Cx#k`ekfMt9zp>k}kv1c6VrrCUF=Vxj|iYyIha9zd}{C z9j{4yT&N^^SfN5o$l4;3C2pY|<;sf4cQ?`sQ#Xoitk=`@PfClFs#hIGBPB&oNXrhB z!D~eU_vRd^JO2us$Wsn4+*gF_YQ8y?(3XU{HlH0@t>=ZRH6I)>xEbLW@_@s0^psF^ zug9TIZ9=F_e(o?K|4kTI{lwvr^cP{Nb&G@U>aeixZi9o~;*hYISnF_PYEbwOO6V{% zHXz(YD0g`Du}=u!Dsku^=n=j#yXs)o(=C*|k?YXY*(KbB&2qTk)*<{+EOr=aY8PHN zoDZxuRRWjJiO*DSoL3plK+Y!oi!COK@qSua%AIOWh@QY%Ddop2BrRtqPUjyV+M z-w_sw4m-?Wx-B%5J?J3Jz9~#&2Ra1oFA!EF zx;PYY^Mw26X%27M7lnf->>T#7vV?XMRu0Y5)Sv|Q?-S{CjXUOw@d8d|bfIQsP=wg1L$p>${+HNC=LC^=9?&8+qn zzV*9JeOKotVlf7Q*e4iXlGi+`p6)22s)j4I-d|a` zPDrQz7px%cSZ7Z?9w{e`IYXjW#BUOQpTJXXQa1>Uj^p^e%L?P85L-BjM;xQ9~OwI!}higLxPc8gZ8~%gMuySH}@`tGB0DbO=z-s_omF+XY*x z74~U8tpfM*GW(*@W&u{`n*GXRqhM5!Z=bXAfgoiy$39v6zTjtUhJ7*No`CjIV6WnG zR}ksPw(kh25JWdY_K%O13%m&D?4{0^38V|o*z+<<1efLG?e~=y3AUuh*he>B5d=?0 z*thmv7BGUt><@jrB;a%g*}JV~3y#_c*vF|{5Ez#2uph>y3+mLo?6bFu1ZGTE`;2{j zLE=2!{>=%F;L0I;`vWYd;Mz-)y?FsFfE@|;PPKr*vE0=DQujGQpN5e=^;?p_ouzB9 zFOew7oL9H^(L5z+3{$pmwvHFHypXd`^f@6Yq{`Tzj*Jn6l&-UX07eNGRQ^)j@*)IB z!6gc+He66MIYY7N2^D+_{6XPPh6u*m#wZpWg9J~B!xR)|pMY_Bkm9;^k3e_h8%ll1 zPCioN_+!S2P| zluPE0|L6c^6elmLK&P{aVsXq);7!h_gmTD&fPx&#+fpk5ZDR%{=P5z3=A?jf`J1^Q z?>&q1O$H}Gxj~d9QxicJz{EyPd*A-kCkEWczttHsMD}oaD zQeE)pK`5nkR#kA;D2RelRTjMF@1cCRRS?K5_)+He%Lz0?JSi@zn*4yCkk zjvu*3of7|any(n4L;7{%@-dl#|qNeEW+Mlz>BD_aHU4g?WIOc!t9q`TV+PC+vRS%jMhtTRf-H9DbVU zu-$-C7XRtY0lV6*8T|LV0`1<%iTPdkcG9*!-vOob9YE z8GJJbn%(_Sh=1&|tsNunJfFErw99Ep;h#TfZZ|u3mcP5%*e(NehQC2y-!5ry0zV7X zvMc5M$6q(1YNy>0%lC9vup5|)=EoIovU{f=#gAVnWoNJ_g71H5jon>#IA5-1*_Pc9 z$}iTRx4kwU!q)<)Y-KP({Nta#+1?G@$G=SfY+EGU!!OJKVEe9hCqMmfzwN$dKmNYp z9$Q_45C3<4m#yg$Pkyq-6Wf$rcmBYcN4Bax+xSXv9@s9(IP*x;)`W2*{i-Ryqy9%1Ty zqw8U|7xGm3vXa5JrUOd+*9QV@*Q+S}!x-}FY2P( z+DJ?BOHJ%;Pr9t*=R+jhU%(pve;@F+tq=e3^zBS--~3tTRiqo*5~xc&%}E{G?z8i} zaCddv+WRv+&Q&GbFH2KA{%={^{kA`N$M%mpadjm^HG&?MUHuxarw==APwk%GI#B zJ9e69`cv5^%qoFr>>_WoH}yZBM7E4g=CfE{{rEZ?4Ye4azvEx>Xm}K_J#C5nt1^P8 z@nwd*b2XgjY4?LX?-j<|&l@9uxOjl)KJC01k{*b(>)r+UBS4YMxZ|BX%Rgo`-yYVVoZjrsKU3gw9 zrDQj$t-Q7)g=AKMBTuI`kE~EifB~8>$aG(19 zAn7Q5=g#Dfk+NdOxXa%^kpiB4=66Jx-0d&BNp5ckxt-e2NEq^4 zu0_;il6Tr0?(usMNe?Dpa|IH0r2jl$ad|#fq!ZU)aF1TRMXFxk#WnhJo#cF|gWF_T zNJ2HYbL~>{NY=WKxoJPy`vLF>ONb}9gYkq)x9g@{=5@HnxJ0ie)zqY zbolZ$?hV(SB+QyZZh**}gbyp=4iC7I&bQ`qy$rUJ)Qm52Goz`bC3ZHqv6@Um|H$OF z{Uwk@e(BtDHyp{mO2my98Ij!81YETNU6L@F%gse=kaRw=xND-6N%PwnT<1G-B;^|r z_sH@FQqmTH8?kjA347`s*PZjnT5m9kyW!QMb;#C4?sfGU>(AFuag9SKtnbR7tF_fw zD3_VtXifJ!!2R^0);jZk5Ld(KuC!uuit|=C-wqtUIo5=W5Avtq;h#b9eY7*3`4xxJR;5twXPt)Yhw+>yh_tb>%C1l?lxyvYacw8yTG7Zb1!4K%npjRf}A0DNtR?il!E4Z?7&;k{m|i_ z&A?jwhiGv*Zw#!Lo~v_{G<2-LIHI_o!D`mpmCD?ee?J;7=__)%!<((cGUT}{hSJt2 zq-43Z&Ouzh5ul`zS1Nqk_{ z`+b}tVfvQink2A#eDw`yv5sZ6L9>^`S_Z8$(qD0Y*`-)TZ0_cGCZ4u}kSc%q}bSuttuYrLPs?eLW{E z*27A$_dX}9+}Vos`X1-TxPz6UUlr#H*48ShvyyWvf@t;5{Wiz!nweG6#tIgxw-63hU!R8X@ zpUi`(d@q|L{cMRCLAt;JrDutf)#;oM&OeA>t;HOT^J7HSY5|A*;1iKc;&H5(-Vr_S zu{ny?eMCPSCZ{{Ln|Qev=EUCUAd)E{XX;BUQT0J8$4~zukw#1TH;?)u<#uu$DFH+z(~sjDzk|3%+lNEH=}8Rmd2rga z>BR7AS5Dv_3Q>XP!g(RECQ7wCag5q6h}--eIYFx?#LfXKC&9*mcEBFMCj*k>^T+M=$f~+APFT!ye9xPkh6R@12**QzU z2N=#L(<#excSFwO&~KKzdeIzq_K2l(m@bF#;=SeBDJ@RT`hLrmWDSlk^_6AoMm5gS z|2i%EvQ;=4*V`;Djg>f8J~UaruHM2CD%V>!xyW%swpUxu_iWdY3H=lq5KLyR$8widNZGoHR=u=?}a7Afg82{iCN`(ogC z!col{wm$DO;eAyVo7eDxaM9-uyMMBuQ1JCOTS~8oFa?&gRd#d{nA$hkQeZnFvi3Ur z?VVQ} z9OX@DzIBSNm*YnG=6jMI+U`UMoQ`9|^Y#Rl^jJ3AfJ{&$#jxXc5D16gM6oHUri7Km zNcNYThJ?3TN7xB(bqEqohuB}F)d}&3LfLjCC4zO*#}=H;FoH2*=JW`@zsa4*{6-7@DJoQ z*?WA$@tYs0vDFhp@Wqj;?8d8m@oW`kwri(9zWR{@yJFr8k2@jH{;T7L|E?{|ws3dC z&pg}6c8asdyPVy?wz){c51B}@x3u8#t#8(`JIAs38OB=nF=a#iQSvJ52UQ1e`sFuk z$6+Z|| zoybm$o`ONv4?&y7r(JJZ1=UR!6q$Y&X|T@XT|+PHmPEBh+kZW*jo8~3E5(^z(UEYMd9^tKM(D#WYUHYKUJofBcQdD!lN^e58cKioQQPBP zD*HQTzBB@{bkM`*4ut^gl=GnZv#?awox^?RMfxeMm&|VSw&Am^-qH?pV&NIqgJ-Sg z|H!f|#*aqxF~gHAlKg#h!k0K!JK?VRqmo#bgMYbs{?Qm#R(y&1W85)TZ^jjK(qtrS zq56{fRK*e2@4ig)nfP$l=%Ub^ZWG43tHv>ZvwVORZU>v!HU_hP?K@{a0`6!1clL~V zfZIOSi;Mr6t8NZpZK;no*Lk^%MS6F{{KN%+7H#FA`KBO07EW`&`83*x^_#NW9R1ak zRT=1Oe({zEYx`Lb^WX$GR(p=Kc@%XU%jCX;dGk7FR!qN*dFV4bD{Ilx+$){NDpEBw z2li807f2ZMRRap^*e*Tu_6Zx7QM`uvKsAZgDpocprCPCEE9A`Ixm&VsKHp&eOcBpo zoRBb=d~e3WZ2DuyDlui*VHeHz{Aa?lbelGdalo)-509HY-(bk<0!PixzDBd+3Wm&L z3v^k_4FhJkqP1BO?|RH^>@-=mOI>CgrPNuIDo@OedsJB)tR9&O3zS(>eh4(=tlIOx3Q3xeRSGOOSubEXiAMrt{@FlTx#aQ)uX9R(Aiw`DAo3 zWxvnjdXGI}`mCG86+5>vPilR|J<@Dtrjmwn#&gZgSf4@Mo6d(!mxw;x%WDnHzp33g z)zo@sUUmnrXzzWdUS%sTg;>L6KW)V2Z?0y(`BaPBJa&hMtyh?DY9QQ? zEBQ>+ixiwwY97i%8_C=# z{n_-wfg{Xh%@3x{F5%2q_B#;r_xM53v5DV^D$7;hSr zPGj!o#hB`xqcUqRN0_P~r7+i4hMI=#vSkul_M1*Rl9}6jcbh)NSu^QlzNV8XB2({| zhiR}RfjPF(#S}Gd&P>;$nQDE&F^w#2O^-dpGA}z4P1oNyX8!gwGyPU<#H5E|Ow}?C zm{IY1reX-qOoBB`cmJo$jLTFuJrt_V^e&b&ec-3b+)}f_^dMcGS=%mQ>O(*=-THrH znR+VB`mYPvjS5Ok)n7lc{c9DN0W#y*=@~iZIrUNOuFsp9T~l zW0o0-)umYbuq6i4T8Qo0v%omrlZU!^4!`1F2R$1x`D;w)*pX#_G8}She@>7)3lkY+LUDgK%*>_Tlq4jH@LsScxaSjFl=HR@B_Xpggk0 z9<6`LIQW8yl-uAHHFqupdRJ^5^k3tj1`FzIGVxGwo zkjD^6WSdk$mlzvm(@Y*9IgH~do{2mwi*X;#FuBReWQ^m^n`H3Q8It6)Cha0ILy~^d zWLt)i@!jLNiCi|HQM)tJL_e3yhzSle0SefRjS)d6xNA%X|HK{>y)uNcnCNG6;5NkY zfVP`_uL2kV&&A|nT`J>BCe7qyQwrnyWm^-^_9VuI5~9i4=ZTEy3Nw>+y{8!__c12E zg9(hzW<8THBk_!Y4h@qh|5W!+Un!d`%*HYd-pQF9{~f~!AK74Hxjve~8<#L~l#62I z&i*#eMny8xRu+t@=p&4{b<@UXxNrt})41^wQW#@IanyL+@gU>0#*lIS_7KJ_dcgS2 z?jXh%-+XdvSXq04wOdM~5Lrrmh_%pS%Bt=X7}>|*@bR&U%Y_Gk2YRU2Qu?8hkH zdE5Be4If5uV5u?fz8B;7!9wFdZQB`8M4qv9uRCKpCd)Wz#FgQ8Qf&Nt+Jyn1<5z>T@$(KGWBHMTG3Py& zG16{hEdFWCsOq#d9$ANB#Jt2ApGO%oxs! zFst7%g%a|N28qv@Hg#EsgVYBM$#N6pnoK`t%3X#rzxfqr?w~Zod`l8&Td586 zQM`_^TeS((UbdF8O}!5Dt7R3@)~dpsdjAJ`uX79IxVVBa(AP0L6_ycI!>gD(xFtl0 z$;AY@E+9WmE@1pa=MX!b2$P;XgB&yGVDz$oA}}7tEZ&_&7?$TS8r>7f39B<0*2H(j zne-oKtIRj#FF6|Hh8aVy*dD=TIgcV{l!F*z=m?T;ABa&;{e-MgcVRs9h7dZ<2lKT4 zJreEcjuF3ohk*30m}|cVkW?osX1#hpa(F8lQ(@bOSUD3g#d}{P-#`9aX+cP?b4Cf*n~}AylSZY_9wPU)eKj(fYCv{w8#bCze1HtN3>rz>)FEyzeMXV{ zYmt2CZX=cR_mB@;JB(znRUy(_TaElW?jUMTjYdOL6^J6e*66;@t*Tia@No+6^nF4Pek7_a?_UvNAA-7;WhiC` zAh+_xhQkfJ5&T82;klWeNOlHdc*NKrnGmEJ<^=g6ChSB*^)w&E7m7C=Y4<`xQeq63 z|7=J0o{lgKvi3kIaiNAAkGUbz$MzdaUfqT?gzq-=7;r{{LVOM1ZP|*926!0OxYLon zJDd$ao~I#I+Z_yd-KQeU&Nhb1GZe(s!O~CK1qQTy8N^~g%OK;UH1d82Xh71JLK57Q z4Gh91kww}mgP>vwB%E}@VEF4Aqz)Hla2K}XF=`k| zdr5zTNxLQ3aM{zq{@en*G_}p(^`klX-l(HNt@JD$^3KlStJgF<-EC!XIBg1!X)`x4 z@Bab!)*Bl*=}f?wO0>b1@b7R~v8I9djju54l8S-L%ojLYByYg78->#m83Q$71U_?i zox$vrPq2IJAAL=QkFZ4eqP}q72e@SKw7$>PL7414t{*u57QXE?s$Xe604tG)^mm!9r`oCtL!zGh-`r))L_~dYv zz9#1xY}R*6U$^fm{Nm|#{p0#i;NXU<`ZBR?aBoGf{?GbW*rw=$zM)JDjAV)Q3->g` z4IGaC@uG+D#}rtfG1CD5IB`z@8~p)1dgzRPwy+L_X><*q4XE8 z=EF6K3i?$Gc`)(VCjEx(xo}REhN4f;#lTHh_oMZ8M8lop-DuTYQE=;dU-aHhN8yrK z5A;}M1e_4!jBai_4CB2W&|eM1;n(&y=>1R_eAv_ytucHM{-lOOWBzp@dq^9h&lLp2 zdGk7G{WU@G;D{Pp@n9e<^-2-#+q4(fZrY6Q*9(AkZb_lbf!*-t+%@PI!#m+o_OhOX zi$7d;dQNZgnjai^cvA0=v@g8i|5eW~${RjMAJ&`d^n_>32ld|Kx5GO$`}7pj-QnB~ z-Fle|u5i!%Q@taB+u-@(7Co@h8D7`jpf|3+75@96Mz4TLhd-BA>Rp|n!POUT=>6Q` z0LMeu^f)#4u-1uuy%X9L_)bucULj-)TY04G8GI+h1th-Sq#p_Xg=XqW)mp(cIY952 zE)kAhKC7q6B*45cC-u~(Ea1#n$MwPj%wbMrq~6j)9DJ-SOz*9UDQtToNKYos1fB-= z=)o%(_(F`Ip66jB*m&P|y#p@{;35|ny@z)Cuq=V57hR+WAJVkdJ1nmY7fBKI%Fb%T zucmQ&)GwOw#GsL$hQ9_p)2^$xtx*mBd`DgHfhh`pl&7S3K1&7Wvt;!|lFG14ytLj# zoFY6HyjCxBXbXJGeMOh!Ef3ES=XE>lW#N6=Q@Vkso8ep1-*ibi8{x_6Vcnn&GO*_0 zpl*fVW!nlhax(n?R@J6^*_mb^e_;pO9F28gY;s(^}c53{E z@J@Gh19-ooho(1mE&eV;_R7V&{wIDxMSt>jTZR{*ONn0 z$bJ?=t}=DO+tU!A3+Tof{Dgp$NxJ1(lTc`If-Y(E4+!rXtGf{xhrU@H)x|A*gM_F< zx;e+bLi%fhb$5RH0$u&OM>jBF6q0-Cr(51N0!7~6uIueG43%GT(WTUXgg&xqy79yz zXf@7O_gCqAXj33j_ZfN+lH6*h`#t9^^c{=Q-K{tPJy6iomF2#Hl76Y{DoXZ2#-EgQ z52d_@nx4q&u3dZuZL5&h9Y66Bs?A!ft3Un%LZzH-f>3-wt=@jd1v%L>BOBU$3*3>{h zzvt*=kncg8U#9C=+^d3AYxp{<!XtAnb$0kx_h)#2x$)hZ;Wz>7eK(kWR-Qor*`-py=CvIv2JTK_wa6 zb)G)C3cW~l(Q)^>0*!{ybdZ&bHu75IAF`<1(BB zQQqk4h$6C~kM-(0*dG_5lLbmTa`BnaJS?k2|CJ6MIx4O6Ff|Q&=)G2lBPE755LdLX z@`aG2>b$nJiU2zF55##tmj@+$_^MrN$b}Lf4QsC}XG3AdgW8u!EQreK(>~wGfFzH1 zYu|B0pt>C$+Ju)76hdm%UI_%DDYZszrP1?H%`4?~_Wowb*K9D+jbI%o%<3xh&3ZM3(@heF<`Ew$wf z4nU^+aN7GVL!fzzk@no9An2BsuJ+qq`=MQb)wE^D_Ceo<6t#JYd!gv&&D#4m2SD$y zN@@R>zZ-IZ*J$?>cR`%P%UZlPf9SF6oE9%|2Q+0osWmX^3rWd*)ryCFpv~VuX$7iz zLu;PB(-M?>LL)bNwd9<)Lw9*Ev&IR6kXr71rSdp}Whp{)Ez@go+}qFTZF|t?06rW|{-^?L@X#o+%ZQ*^#Cd-9mv> zEqPk3AUjA&fuS`$Zv*}LnW|MHBtw1OiCSe?5|mdFueID_1??2YXk~>Ep{3XeE#Mac z;`)Ya)n?$K&G`LVRDuPR{11>U+i3>9{o$j9i^M_3UG7>JBu$~Pn_IQKub4nQE>+8) zW(-}6B5M`BGlFh<5VV{V4WX+hrdoKE0mP6t)QYS|L;JpHYfbLdgESwbw3=shpl5{& zTA#$)P!#wNd}FBvEgf91CG%1PN^o4&+!Ch_eboM?8LprPQGU;8uD_!SL2oBC=loTm zy4o+A_&Fu$aMmm;YE`Y9i`!ow$=D^X!oti4qv*3SwyfyokXTT|< zo95SspWuFZC(UgUQ{cUEissaoNpS5GYt6B`36N4`p@};@4jwvhqS+w-9ZU++*UYW^ z3PQG8nokaofr-khnobH|zym+!HKiLqgVvognwm#Pz+WZnG?P_^!E)%2hUue^px=Q- z4Wrm0aD+0g5u^11JghpdA<;1i_Dz4*7(M+CwCVbwp@Mk}GOzb*q`mG3+o4w)LC_m; zA*55|B(V=vrnG7Fe|in-t2AkF#66(i&-)r|r&pltv%4C-)7{{=YvmfTS6_hl&X;KH z+4&rd+kZuaBiRLNlP_s(y7vsM*^;R-5YYi{9T#ZKt3L%FJZ5Qxbhd+-0#HLawGB)? zo2-E%J_eucI;9ag+5)b{pU{xXc?4o*qBN$xnn9@SzgUNqs8n5WJph3T_hVkM(@O~vxqoceUbmW?8 z)P+}p)!`V8Ma{dQCQVNR=&1zbP#PNhxE0{NpGq3%oNt2@Ph~ZJu9Slch0+=oRX0K7 z$LpZ9^pyJDizVRT&{y?^UB%$l+F^A>{u&q{9#jwO zC`5=F`Mg3jvWpMUcgE}Q45A-OiQ6IC+1%=6# z>YpYrf{%CIP{-cP0msd*sW%?Y1|`<#s}~q&fimy2)nANef~!?&>Rv?|;24jmjyjYM zHik3QE%ehs2KBsp#wQU-Q$DNidPN9+8IMc-!$hfb9w&iXAqwiDoU>rP z^(J-LHxcyQv|fEd`3(5%(_gi!x2HgA?UGtkK>~PLFr%gsaT5F)KB3lR9uHdCe^INR zivuGRKB_I&p8&aI18NK?7A$D!Q48}t4qi*|QsXPdfR~Q8t4R(X13|}TwWmcrPPp+cvevbbqj= z!BK4}YzG*eW~b&&^aH;gu~OS0;R_zNH&;`5>ZL^#UzF>#1#y_XL4j4Yj|{ z+rdXXWiE z%DS!K_r2dx@qKi#+H3@+Q|1VsSo0pGc8&&WzwSeY_&b0PO1e?A7%J$M)Pd?wuUTz7teN96}Aq23so`>2Mj0f)u7$`2u0?Y_KkJ=(<4j!>SiyHZY1F_O4QIbuj z;D>=2R9p@gL~cf)%;QZ!?bJ{d+1nT_*|8tRH^zYahPzQj2_sOr;Da)JZvaj{aYr4h z)dy*pwxXuf(ct+QDylP953F(|qvkzz!2tyV>X?ZR_;Un{!mrl`e^ncx=);=eEK?g* z@K6IB+J{1U=c$7YI0ckjk{ZbWvk@iQhXQ?HNTM*ds-VP`zp64Q6|m&LB~{9T5=e8I zQN7=*2)3(Cs4}V*K&P=$)q>0|;H}yr)eWcQ!Offj)y6$?V9@>^)n*%6FyE|8RZ)F2 z*z>1NwQ_kQ`0II->g7QhP@$kswZCx#s2NwKdhm)gh}wEfl>|$H>y@sn?u}Rvj*eVW zeY#x|tf{)B%CcAoCLx)s8Hy4hagR`SYGDod7Q8F@n0F>VFeX&0p$9k2{smkC$>;_wUjIS{OR%Ww(6mIbJ`Y+3|%pWUHq zJUb7>Z}(K~e>(?28rxLgJema<-)X9bH)epdb+)RF>C-?chp1Yd{1dPbG*cZsJOxOZ zVpI?MP6DmJbXAFVKY)a%>Z&^oCIGb@CDlgRaiBa>RyA?y8(?iKtqP2M1#U^NRqcO1 z257!nR!Oe=0wfmCsT?mJ1)e2Ls+6aF2IRJVRk2SU0k$a*tEff~12H4-R2=tx0$6u? zRqnZd1TFwCRFbTRfGoeKDt!G909&_3Wpc}VAa?SBO77}Az^&n)O7`SiK#^CW^6C8m z@FK8GC9$g?NW~VZgfzSX&`WtLY2|%DOGBzO(nKg3n}o7w|lh=|J3 zxK{vUO{xm|&`V(8`56`C-Q9q0-hV1dZZCj(wl;;3wcSL2gc^6P1eNbh)UMEo5 zyHBN8=^0Q}xKrh}bO%rt=dIGW@&w3mbW`#C*$$kLbyATXZ37(NQB-u^J_gp7TC1eI zXa%ZIS*Tziw*bK|CMpK?kANiweU)RC%>ZLaQ)TV-CP1oOMP>BzL*VRLc@@-!M&Og1 zj7k>20idX?Qwc{N0LO_lJ z@*_$GKsen9k49y{ zE)Tx)DT7krmI_mOANo45{OP;d)$oPO}KOr5LFk ztXT*=_zKnzmIF9GXj57`#RfJq zo0Kk|V*wpI>Xf()CXk|4rPLu{0ET1bN>@UXH(iC6#w-pN;#_Lo9Hx9cUPmv=zG zRUuR9!UF)Pd?!#UZ95Oh7qgT$zDxzePJl}H-<<=lQ<9bLeMtd^B~K}>ok<3^yogo0 z^d||h$~me8$|M0EhYl&#sGJ3Mng=UU^b-O9#XU-!@Mi#*Wa1=n9{wEyocMiRu~{Jm(0qJV zG0Hd?sN?4`ovTyI0Z7*&nz&y+g4p zXa~@E-&3*SlpoLlY*Snj`2u%592FTie1J;|c8Ukvyn)04q9W^)7vOp2f1a)~EUK*w z&kO@Y3^0HoU;qXPDxj3qStueBDvFALgrKOTAYHRZF|oV5y9;J7MG>(JJFbC>-J%%Z z`t!|w?tRV$CeGPs?X}(-=w|xwcbLj-yuImZ%P`dyS6kCt?x8ByY-Q>>I7DTC(#*6m zqrd9ZG(*#;GlNwTgJh=8+xn>*EX1aDwLz+ZkA9i#dDd5@-u%_%xwx;&Hsig?INLx~ zq5CTnALyg1ZFyo66W?1UJAL1zzAQi`%xo~3x*AlegRhv(Qwyp}%X*WhhyJP!k84ck z|MgSt-coHc)rO84M@-HK_^LLz?=y)_@=?uh*>2)n;jK!q*=UlwrI)JrjMXMD&UvZy zBbJ)%f8(jDx0r8IZ{(>edpOg?wWo*5VN-?4i(&4n+SGEBrXn|0bdN$4-!(l|Pk&^a z(BCpsCGs?r`j@V%8x>$=vepDvvecCfb|3 zsV0u@XL9aBSJf7$0F!&4om5vodYkxIJE`6saWi?<+fgMd>u&OVd>55opo59a0tb~$ z&(7rB342w`WowhY&pNA~FKT7-T;5q#6JumD&a;zhiLI`QPhv+^!V9rU%*+m|_PbgX z=MLGaZe)K`OnGdpD)aiFn5S>6YWwGvqRGQXb)e>{V*aT1D!=Iu6jNunQ>h2sQk*~D zR^?`PRT1~1jcU!EdWFAP8`Zznrxob|)~eyjYDH6qm1<*`ql!Z-Eme*0_9-scw^p?~ zxI^LDY@rG(+@yGGZ=uTcU!(Xm%v?21vP{u;N-Ncpy7`L6LuRU#vnmxgpPQ-{51yhh zH8)jFwNNV71evJP?-wcx^A)Q8>v9z9wi>If$D}J--!)P_aZFJ>&^J=8eV?HC=x3-J zaxhvkBulRPT@a~|Y%ox*^c$cMHR!8c#leaJy85cB+5p8XUpu zO){08nX_W<9UWE0Z3jiNp^oa|N;}2WKH948iER`=3Z$x>PUeauyR}riUl}RRJd>y% z@6uJ+T1!;2Y>DE0gjm(d{$RZJ`(GBQYBHYe{FiwLJu^O> z@`u^$Jv8=M`5nQk|6sF|_Zx?}{a{@kb{hL-erG3NZ!#|5{*8t2Sz~O}_?2DGUS|B(_ABe>vB20W z?h8BATxq;$`DbQTJ;gZg)+d&yR2t`*ePVTeij40^d}PKt6OHH1`M?I&ryDQ4_?}Ik zm16u{|2^9~DABkg<#-D8*FSE{F=42?``Ze zt%<#V;$yt8?iIVU$=x_t_Z2%f*4cPk$V)cYsf+QenJ-w}J3HfL7aN(~zBa~7j2hX4 z9CPER5zpBi4`bu9h0mC0v#xQja+!OW#z8f{K`;V1KJ{q-Y ze9XR`X)>DS_?V?kdu9}#`G{Q(d1w@K@FD9azio81`2m}B`KnQp@PJ*Ocit$r;yyEp zJY%%+{5=+C&W*fH?y=I_M~&K#xXU&z-)}T{?HzVHcBj#e7q{7+cAJehI^SlEkJlKT z%D=^$)-N-1#s>B*d4W-rtbsLjo@MkU;wIxSrx=B;xWU$JR~mhOcAe#>6&bzkex3E{ zKGDdj@EVhSNH?mkxynxOOEFq)c$F38BpO{DafR8r#~6idy3A_6MH-oZyu@OU4lr`@ zyTslU1{*D#ev#$)^fnsQaDjbn@i7|K;Q~uhyBlrKI?t|`I~#?o>zQXj7bAazdNyC& z!KgI)9D82V#z=o#9doWQH+uQ~EXxWqHZtvZmTlG1Gpbx%%Wl_6j3OJ)u)ouP8>V`k zVQoXd8(x`mn)NjJXgKLs4GXx~WLV))!}`vCW_Yvk6bl&m&~W1Ulg!=twqau1lg#Go zRl`-8$RzX68#oMLc-H7;3ZI63h+D~VcQc=hlxre`_JFx}u7n|o)9;qXyMnS8m@ zaL&;qY*KWQp}El!_TFlu;p@?dS>(NRL!;_LZ10K`LzUSfrWKoL*eC5E8`LJoaPa8^ zY{C6V!@X?|uuCfk7>>-{&qO1G4WlmYV_n{24Q=o3VI?D- z4Trh!VN=?6F}yoxH=Fjr&TwbbE~Z*VvQyt(Y~o0BL*I2fSzKFV!=EiX7(AfA?m1!y zvs@)H9Cc_rdmZ~*ZeX&V9cuGku9dls<=_7x54o_FxvXrGKkl-XJ&AcHubH}qRa!rk ze|x@}b-#B@o*%fG)h)j&58AMaMMs~PCyO_+XO?H=R}(j~F?ZDR%99(|e@lN%@ei=s$=`_oEhdo@Sid)P`Q%uSd7I<|sE4os1Y+pS=u z3=`#1s^x6l#b|j;<1&^~87Y4sx{Sqz4v@R0LMH3oMjqO@fSvf)NP%5LGH)7?832c29lV$Y)HWegU6@mu4eIY!vZwFr4a$Nlna8fv25kRKMp~A^ z^>#B^U6-QJN$U5f%BfJ z?8@r-23y)rWlv%&4bm&8uy_G38Z5gznZ1b2F<2flnKhWC z8#EoC#Q2pl2Gg7-v9+@k402bhSaDdi!9KZ))-BS&r<^gXx^M%tk4pBqqMw0pl9H|N z6JW6aW;q)s@-fH{E@#@@&0xlfGPbv*yTRM;Wo(GIgTboxrR@E8TZ2{RrEKycYlGJ_ zN|;GbD}!l&i`g<4BZG+(i<#9snZfQ?MQp(iv4LlN5z`*mqE8!_Wq1Cj?-p9fZa;mm zzwKlJ^IZ2zKi#W<&5nDjU%n@wJ+^+J|G0BLbG*}_KWB9w%UFCxf0lV3+cBhG|L*Ku z_Qd$Kex6P)Gr3f)pP-z`d}bceU)G$%Mh5TGx5>$2h0-1R-``}jIj1)2Tc>2R)#a=8 z=lnN;ZT4NN9}zo&ZEc>XKk8N%+i-ZM{;9!PY-vt~e%7T-HpQh}KRqOqWxOrWKUSN; z25ryQkL;7doKn*C{V<*V?J!0^*Dsx2d>pU;>v$Slv}%O@6|XclEP9Ckm&2({VG*vM z;-1QCuLtQn930Ok&INt1p5s}YaBux3`^Pc0uA6>fk8x~7Z8v?`KbE~y+3U~jF_x7I zw)&k8q%diVmA>39g-ttZrXP4{4AaUr)UWp#!-`yG`m2wQX0P6g^iO(^W<$3B((75B z%npzFs`o`mW@a7U>q%;oSn8vfdWk_vtZKy*J$d~orW18vPj|p57G~C|1b+o?c=Cvy)cq&1sBh{ZAg&OG=Ap<4gDIReXwL6}`6WeJhA# z%f4>VJN$Pf+q!R+-kB*Q*}n88dUl2**}*RJ^e!)oW&57b&^y;QmTg@(S01|9xEHpjDPgid#F2{ojoAv%~&*y6=wF*tFRr$Iyv>!yR>U4JKxw< zZ;ba)mbSjLUijHarW0qQr;3bZt1PYbbe;@h-ENxd-OU`rj?9(owfr8;e8P0}(kchD z6FMTjuGWK@Tg^{h@9hz6YuOjwCA}h;h4(w%-sc7}<<}Rwej^64r+fd?o$_iR3rM@C z+pcIJTW)_-SE@gdy?t^?*L&pv=Cis^SKVy@n>6B-?mQmOYR#&24@87B$(2L89iN3! zUGC9+nis}0g0|^?)D2@RL>qJmtO{kPt5)j%bO~jR`HOYGoDN}HJ?HBBj|gFH-c8qS zc-x;jZ=0lBrRvZ8l1p_zS@dUp+vn@%?FweWce8Z+_X%b}i^l7w-s#7LLCL!JGyAcg z`f<7|wfiyK+Tps}R|PSB7NM)-9>m`Jgz6r+(3f5M7O1;Bxi8&6f8FmbfvhymOLxwq zKo)M_LpQH`AZz`^Nq6VjKJ4MjPP(p%ec0;Z?RB+&^=8o~mb#r6^=68TCb~XhjmSwF37M1;3mg)uUW7oH`gEs^=P6YOPelg)Y^D;wzM$qsEACTqFn!EVP7k~J55u3vOpUTW^$vC?BQv5<}lk&Ry)p} z^$PZs{V{ZBL1I_gB2*kmEwAKsG%ZB)o= zzVu*Tar!d5l|7h!YpLu?pB_wc?T^l-*RJgQ%pW?I3tidmzMpgs`ns}1e_!jYe(u6% zAA7FTFx!PCatX4a*XSB5-%!%b27V8}P>ByvY6Lku=IkLGdL#Hyz zky-eR)p@Jq$d-Lc)LC_;3v0bQMrUP87q%c}s7{kb7p7-BP-kkL11r57tdmpdz}_tA zt+U(FfklP;>UiF_XPkrvquKVX13K$?f<2p5*hOd8r_StAj}AK7n>sVkH*It(qB^t6 zP3Af;^*gf%amG5!c_-%BT2E(rPA8UgRig9Cz7sn(e}aIozb})6#)$&wQrcYJUgz(BYxB-`EaJ{^XYS!FC;3uN7Cd>GLmaROET>xs`To zs{D-hmp*oEYpq&)%P(72TYgk~>j7K#*lWLbbE+--{&9!)(vG%FZ^tI>sSj+JRq`6` z(~E7GecNT)g9h0!mxlS;PI@-XeNLtJ(9`XiXYds5OJ(huhe)ZtxL14Tdc073=a+V@ zOHPiq$=-IXZP#?|+SGQ;@c9_+bN206%c=xz>t}7*i(%2)RcqU_OGc5}J4d!<`|HBB zUt6_h3s^txg4=CamUn>m(8X<7$Y*bDWn>#>yVFhkmq{D;HMzU?>8sZ4Oj`%-`*W?? zf(BddK7*{;$T`;9%|_O&V{j|&KbNi8%YTO25p%8Bwqr8wFN3Vum~653bA=VNb!w4z zzHZ6xJpC#?w9t~xTKQhOV3;KnhQ5+wYfJW4{#5FFuQgj*dta)vx-|4AQj6@nPPG;>D6l{Y=Uo3>AO`X?9!L6(&%v} ztjn&>(pK&!jE%OD+K5b8Lt86p;Y9`O(qJmJS*~D3v*l8Y6a}jb(vgmIQ!vxN|Fk}d z6fE}0PpzAmjoF6GFIuwI#_WatJFV$y#;nWZ7h2Ii#%%1;|FjDAjM=6^_q1NzF=CHp zH?=lyGh(ezUeelIXv78-)@kX77%}F0O6!o75j*hegx2oYhU~v}hqS&`88XA@JzABs z4Vjn8Hm&RgLzY;-UTbp?LpDXVQp-_l$hLbg)@r#WXXii7(Q3Ox&R%byt~IMn&SXiG zw896=SqJM*!AdHh5;1R`O*7Hm1*bt+90RY=IzpD(Hq`Kj!e^KePbFWPRY8=+4QmGouJDs z&fk%U+UT<1s_T+bKVUXhNrx^n)_TSk$u1ok`xvlJGNn<6)ip1d>^h^vR_$9T>9|RUO&B*@@@ldU3$&dk z`ID@}%IN5@K}_1a94HA?b%hc>%y zA1iU0t6Z21=F;(Ps7o`%6xGXtP(^eI(vi+H9NJS0ef&Wn=R^B(0xF zS?BI9lCoMUd-}YKq~{JPTfM4-#AB|MMGb8$nVu_U#&QdZV~mt=l(ED*K*~x>^d!;t zQr5#wOY%}KWzS##7T12!VoNuC7k|2^#rns56sOl{u^%R{#hyE~*p~Wd;z0|v*ih9& z@zG)}Ci1>5&P>)~J3n3(=Z0&sVcX7&>pisC--I*b3>$iUYc5XI(_#az92KwsB4J;q z?icrbBwt_Er|^L{Z)Jl0SAXPuaR&k7K?nJ;ED9el*oRASctv70zB zN6hvw=`J3aEM|cN9mHFQidloUoj9VOm~;zkad0nsUT!P#949fG(#=TRv7MN;dM*>| zD#UEVO0n2iOUzs&TSV&bBBs{=CYtkF#6oJ`i}pSev4)~oqV_jLEV0K^(Ste>d-LkP zsHs}S^42wof)0q-zo;vsk6T4-x^cbe^=c6_sjCsWEfTTi<<+9|GeykK^N47_O2oFk z+beomC}J*~w~Nvzh}hwg8$~cq#C%(=79}N$*r^LkL^nr>Sii~hM2iNC*ae@NqD`S9 z7V&wqNYYotZf-9V?e!P2=uritU0x#gz%pC(qX(VW)l|{^ZX)(<+GtU+gNUU-yy##D z5o`J$CGu%6VrhE@ixk!(_I^y5$iqU!CbSC@Z8sIM&o>28y0M7m&gvy9my6i9z@DPV zdLmZP(p5A^CSuJ8I*Vp&i&$~0jp)9Xh_%>Ri3%kmn)9ZjWU+|-ohKKq5s8?xzmCX( zj`S~x=pU07CCoDlsSbRrgnjz;)k|+Eq1$N-wefx>xVH3H@2pTlZr2iZ#y}-#Z(pJw zVWb3hWUo5oOgVU}&#CuKC2!JwDwy1qLnnk4Ntq4S8-ac#K~%R9$$(m(`Af*D;^CUB5)Q@ZWc? z&Evr#?l&i22%f(bq4lCz@L#2csh^`^QkV`#_8$Q&zv*J*;^C0C!T@{R9}4%pjWEPA z5-#0Pp#Olu;55z*ZHfoM-S6foSvvquDlM_ODh$p_+MwyR5V)pnhhrWE!-elQsP#Mu zmXGa#qNjn-`FbauaHls6_jJIqbpYmz9P#HKe+Yfk6@BOW!Xsa2>@&_As;0PNM;|Y! zKi3n#NIii5L;8Q9?;-sR=rKr-1$qwBbAet1>9v4f6X~^q-UI2qfZh}7y@AdF>0E%$ z3F+K`&JpQcfzBD}+<~qE=~{rU3F+E^t`X^4fvy?p+JV*pX)S=(1Zi!6)(B~>fYuCY z?SR%0X)S@)6lrY*T4SWO7HG|p)?T1{fOIbex+h5YMxc9ybgu-uXGr%>pnHgPF9o`% zNcUEtdyI6i1-j=*_g+S5pT+mH4*(q8wYJ&*t2|1JNNaMw8G#9KNx7}uY;Nyqya zEUNa?@vL!3)f75zk1VMgNJr{kI#N%r+WAKbB|iGq z-gF#s!J?Y~rtgpJSnW+m$vcN;@2x)nK?zfP9;x2?UI{CUtE-FO(e>2SX!@PxjS}__xl(_pA)G?kEoBn)l!dqpoAoaOuhG>5?tK%)y;R5@IA^Zcc!aA9yq^@DmPjLx%HU#z3oS>~udP^*MV z)!o!{Pb)$8pNo3bDJ4wNa#K5@5`Nozs++2nkRIx-UUP!(XNI3TAEt&)O6ak3gnIsZ zx=)v5)%VsYA>mWJ+Hw`GZ>uErfaOX^^%|otTte3!GfusHp%Mm{rK$JNqx-ckQ_W{9 z!TfZ#x@M*lni_M}RnwGkP`6MsSLUmf&~;$BI-{J<`xsLPlqi9ROj7F>DnbALWOZGx z5{9HtQI}-Xefcw0ZJ()x>vN{7>r(0GwlmcUW0l~yzf%1+na-onY;{&5UFVHC>ZXxO zI5c{mIyzbjSHI0y<1i(>oVrlmW{47gwqC56XGcQmb$phozxJc!h2?6;K$>$SSE`2s zJ?`x)b)GLhuWXHamX{K)7_C#UaHBc7cD;JFixOtJZd5Prs)SLeHmRpMP@NCiqR!|@ z_3?D8I>d(RW8!vo+crwbm+n+Qx1j4>yi2{&l=fTaJ(@YHrLP3L;Qi`N+DfRpeL(Fe zR>Ht>ht&1I%i&)0VfBFKa!8nQR9*L_93EO7S9^UZhoL)8s8_!(htodQ>Yt6}(Cva+ z9sZ;oX2+s>@q==B@#duZ=IwIuF0E1P-6)62@-u4p%jIx(RjqnheK|`Px}%ET&+wsoe+j+Lsz+*% z{BkJk_MZkf*rk=jt*~e6>0` z^t(FVhSq7(4|P8)TEC7zHF)KRyd0+W{;jUjDTf7D|EMR4%3)E$KXtEPWe`*#;*DR* zpjr^~>F>(GSx3U{UY5biOA@~SzcP?4*5aP`%3#b$DL-(d3~D-R^G=t_pv@a?KI?25 zWFFArZ;+l}B;x_c%RsxgE}waz4EpQp@&Dr_t<7bCOZ2(xnlktjXTXOpEd#sGa-KP_ z3_{<^dHIYo$T(=or%Wn?%3>ovsiX`x^)}|Yxn*!vSHa^m%HYfu1@})WgNsW{xLHCO zT#hs4kD|)pd?z!$E}{%hy)om_A!TsjKr1fmQwH?M&^7oh*sTnbWv%(0u4UkVxiwGh zR0bxCE&0Q?W$<6D6(4L~2HQGV^J>E~NNcj@ZFS1PVP6|Q@oybFNNQa zy6{o?rO(V8W@ssR@@~9ucqxpk=+3JGOJPc= zvj&e=_AG_tw_JFmV=2_Ha^>!JrEoo|2QRiPg_~V^@}tJ3aOHhZ-lS6sXAZe>)4wHf zpxB-F_*MeT0z7!|+Y%_$@#K-uN+9B*Cm(jN1UfA6;sdUgz}u)^-1l4w>}%)EZLtK> zpLz4&hfBb2yN?D3FWy)J`R;x^azzQ4|MKIq`6aL${rQ1uB_K=@cw~7A)P(|nom&DS ziU3}iRsv@l0{HJyCE&HPH_snY0vi+i@RtKiKxQAv2L_eE=r@6Ur*8=y-`AJ_?Lptq z590m1l)wPretdfS5~vgfYw-6Q{Sx>zvp+Wymw;tN2=DTv7{K7tZUg03VbW1T<`A6{RRmJd0 zOn-WPK{1>M3jpHW+ir_@$c;45e2#N-!a&#;L7qc|(+P(-L+)C5%obNhxp79wx zw51Ss+GX;^9}2;(F_YhVRtN{SWpSfBh0rB^0{6XG2#Z{@dE&`J`0+WLmmDgD!AElV ztZjv`zGxy}xT+9d`Q`HY^9sRUl*gx56hh4DJf2-x2ver!^C9VluqC8`J0%tZmltaI zRdsM7TwPGa3w#UV!mwiQ=u!yPmL>dJheFtNzl3L56vCu6rCh3C2*XE}@wtBrz_wF4 zS9~gfCojtR^ydYzY`c>GxLp7pJQ*K(p#XB1GJcd3Z);{;??3_Q#;Ew<%>@uzrQ-9J z6~OeilQg{UQ+WY=eKd)i<cHE$o(*#cUqed5fL-^ruq3`zkddAQ;`opOlI=w`T1}< zXC{9;E+1yzn92La=0li!C0{xqA7qOw`6I{&^|wmire{864xhy%I^~1)(OJCMA|Fn+ zp3PV3=EJDM+5F(IJotTQHm`Y`2MfICXn1VR)jZh!YYsnHlLtLx=kisD^58(#Twbyz z54yFT$0L^I!TQp9yzR_9P&}N+AC=@mk^g+YG$RiluAa|>6Y{|C?|l9)A`ceDFW@u! zpd`ss%C{r%v4z2S5A1~yqb@QMF7HRl%)|*^N5-sNS4{~94;$m)n zITsF|T+EX&7p~hb;p_J0!dte4H>}SE(UT=yv@jQpdN1W2DsrLq`lZ|_FBh!D%Xmmi zE?A6O#s@{^g5jxUJgk2%{Iy-q1@ByFV#~RMQ!ZToZ#kE>$%WkkD>S@)$M1;{En3Ml z-%SLE#Ff0uqlxeySMs};C&FHvRa}J=Ayv7G+w7YNwvSiwL+d8O6=5}p`4gdV&1!y1 zH4)nUUCq67Cc?3}HGEsrL>Q!A!;K;*!sE7Ud0HSnzjQ6iICyDPNNr; zOD96quXTLa*Bq#cUeB*S&w(z-*Yh_wb6}d~2LAg@4*XZJflCkPfZOd2Tx)XzG44XNyLs_$tW(oA+Dztk2oddB9d~{gjTow(_;tvcbk+8*g(e8%$HT@j3gl;qSR^ z{KwjCXmr@lqvmGAnW@|Pp7Ly1-MF2%WMo5D-yIy{vcY%b4qhCd4PwbozRNcoFmWfp z>68rxxRZae$_B^wyEOVptL6z%cz+jf{c-}B`|Rc>w`PJpw+ z_VBYCCP2ucJ$&W-2~cagm#44^;FGwWyD;{<3QvY(H&oB(NC_w&y>6JVeA0gW#6=2;dv)EwY3*Rx=R?Lm$wvtUyBLEdI> z7HocSkY}#Wf>S<+__4|?xV7vMZ!XG$#_xx?>$ogeQ{Ky2TeMg37^)}Z<0Hd2?zci z<1QOAAwBLmZ=Rb8?W>OSqh*z84GoUg_&An?gsJ_)29qReo3|Ldl zdH2~F@a8t>>BSk~>VbUy*bK;8fc)~%4A}eu`RCpl&=7u-%Uv?y&-RnNUE2(3FFVCM z>t%q~=u^DYclwPgr%rL}XXy~xzJ|-Lro*t38veRE9R}a2;kDb-p|8hjzGO){^jL6O zqkpxZkPe^2&hVQf)8X8y4`8;<#iozS)K-^!RL7R)HL|B@f=^AlLiH% zdfpJ922CUDHM*O(R~j5PKhNVkrhy{oJTEd%gXGKS`K*>y*yD78FMgQ{pQh6BMk;iB zc7e~rR7ix2ykuu8RIa?p6PKpK-X9ma-(=G7A}?{{tWhdsBi@Z0~5hna3ydD6x45I^@Se|~g4IK8>b<2H_m z_x-N%i*v@qjt$qiTQU9o?=?Pu%y`g?xz1lijECKauk)UMT9`2{#;CoER z!`O2-_~Sq0;C08FT-G!WMk{Y}`J?5w9Zes@1-%|y8a1Q932CxEl>D^bz@-Vu%~?8%rS6g?^7O=I|iQV zJ>v%PW8hcvGfsc47j*eEKD5UeFtU8k-&l_U{ha5#NIC}oUU<&`z8eiqof~<{?a^>S z*~s6Y91WZ9Hfr?Ts)eJ$Z}tn`s%$j0ym-OKq>P6B0WbNkL8BpV#Y_IC*Ju!beaY=Q zjD}SMUh#njqrrLWD?agSG8`2(@i`BZ!7HYTuRog%dk!}7oqLm^t>J6FYgsa=QeN}T zs$_VGuleHCWN@{5!%HHQp*ZJ_Mn`t(oD5$&z2(0Rlfkb1E%B)&2)_N6mpo2_WLNs7 zndg!qf5tn0dtVYzc#Rh>PXd+id#;$21VxM9^L437F!tShZXcNh;r%}FO}~Vnax-J{e2>gD)`Dj-%5o2 zSHAK_o(Rnj-}sd+iQvJ$@qKd=VceZ>d`5mEEOh0f@jOFV>*|I2HQ<6-j2 zznp)Mg9EMq@x2e@Xx{weOV7l?m)d_ke`g#_G7{l{1#zI`Bf>UCaWG|!2%jXx!M}MT zT+=TOa;ru7f1lu=SsV;96XV8TBjK>!A(fA^=JJAr9uY;@9(O|S*2OT#?!=(#4xO;juO#Mz@ zXGVjMoeWn+M#HNx8R~jR!-9MnrnZj;&-F5_)ry9O3o^858Ub0~Wtez*1Zdgm;`)Ol zU_qEJ-di>T+UDz`LHP(+zfKq3l1G5;1zn9FliGa*C~Wnx$aDlKL-mmTh=QhEJybr3 zf`M!GFz-|p?5WqotoB%C}_^n$2#vQ@L#Quv)V^N zS)D%i*NTFppXlc=hr`=82DtU&aA@1l07Lf=hkg?bG(J#a@o=a-V}O!`;jsC=0agSK zhZB}^{Od3r>ifuXf_ymKNSEW?kHg^h5;^)b(D9@k7aku5S6|EV+3I0X+sY8TO&SIV z1w%|v83wDz8RDkUVW3)Ih&P>wK|-}5wwMlsUM~#M`o~a^D~vS$QveQy4ar6rym2Uu znQeqY(}qIFqekePHWcpvXM|3JhQb_uV>EUf3cl{f_|9S|JdHEP)4w92Vwy3|dlU(F z`;Bo}O(YzA|XVoz`7Zc(9m6hxfziV8>K+Y!IAKQDe$m+Bt-2{Xne1RmLcH( zM}g6ghrm{Q6Ktp%0`dqG4B0XS(uz#*(2OBayTJr4GlqcGMH8GDF$BhbGr_ZNLttNf zQ#5Hk1il2D;?Q4%!8O|y=RO<^<5rkr&B?*A;tG0&Z-${}gCXLC8TS1i0kO}_(CcmlB*cv3lU1NdI&kck} zuPsp6IS}&ATI0Og13~838t-KdgoUG9W7{DE!E$zM9PU04mK|=5Gb{#z>7&+ouz3JX z)3L;cdjsH`vn7749sqGsmKuN2P&EMBZL>s0@&K54)e`lC2EdtSOZ;O$0F3Rd@RjZW z7#3oM7hZ?MqHHVNaxok(Ew{p=J>ej#vBIEv;o$t*3UzbBVVJ2ko{0>H0v~HE^azKA zN!Hl0bvSIBX^nNwVQ}n#H74H+gPMER8eg+wbr_s>YJ+;pFsK^R2B##3!S3QV_^Wpq zEZ@)u$94<@<@q*vQ5psbpWC3*i%{rg-4>N3ipl%5#Y@{l;okVRXf`txHq38}gVRDG z`FLBL79I*VPuk*74p<`|c zEdAaN?S_RwhxYB!#4`l82DQgu79n7t(H`&p=nrcbwa0^Z`h#h8dz^B-Ka@Xfj{{fq zhemxHRFw3Gpq@5(K9(LAZG)wL{oxCX#C^0XM!Mm zP6zD1DTr`o2lT240;2~V(0gmrcx4uEJz_BCRcM5{Ah>mC?4T3-U9r4?9qkQCBOUPQlHM?Gk^^4NqvJLQd@{5*jJoWAuibjX(60{o*0eVS zSa-pfp8~)>pbOr+8UWfUU9fg<06ePfg4^c=z`p%maB4;Xl-}-wBf|rLeg!Q$bqxSf zM@Rgq7XZilJL29~0OKB{NXfwPkwreH8 zgp#h9`Pmcl;eo$N28}-rEnxPVSC(Tl+!u zw(eN{%@_J!>W<59_=4l-?wGOP7i6uSHMs93g6|Gzbky;M zAD5l+#xoz-{l%H)un)vqx}ajM4`}(j;HFX^*gVPwd&KwvOm)GdUOsSRhYNa``#|Cq z7u@yP8(w^I!FE@@VT`3KPTB1ZkNjNmf9`=F`t$X0A6TKkKw+CKW+6#6k^uVvVy`X7w540H4i~42{bam+kVHbN~pu87k zf9!z~OWPsXy`XwzPYh*VP{(?rPn;KA+|*N(!;rT2f|GB1;^Qx# zuvg)R2d{dT|}_2swE$fc(zO9yBhs}3U9%>4LTdrECP-@ov_?p41+->JYX`K3NNWkSrbufGw8ltl z4YcM+YY%h}knRQ0JwduRK=%mgUIE=Rq0Sffb4}ibY5}Mw zkZJ>{Mv!U+sAiCA2dIXSY6+;OkZKF4#*k_asOFGr52yx_Y7wX=k!lmDMv-b2sAiFB z7pR7jY8j}ek!l;L#*u0rsOB{}8`=v%dje^10PPW^y#lmnkoFGH9zxnnKzj;lZvpKw zq`d~T=aBXu&>lqEi$Hr4X>S7UQKY>Jv}cj_F3=uE+RH$D8fk9>?Qx{N4z%Yr`5x*8 zKs^DeHvshrq+S8kGmv@*P!B=sB|tp|skZ?27^GeU)N_z}4^R(6>P0|338^;$^(drX z1=O>UdKXX+L+WKfJq@Y10rfbfUI*0kG`S+`g+M(KsW$@kNTgl~)H9KKCr}SX>ZL$E z6{)uZ^;o1{3)FLwdM{89M(V{tJsGJt1NCU6UJcZ%?PAf0W>oRSK9;45TscGG*ggf3($-~nl(T(2Wj>I%^;*%1T>S7 zW)skiLYh@TGYe^U0nIR^Sq3!IkY*duj6<4rKr>I1qoP>|G!v0#BhZXQnw3B^6KQq= z%}}IS3N%xZW-HK)MVhrhGZ$(00?lBgSqwCjk!CZ{j7FN(KrPEChs!kgyRDMnb|$ zK$r;$I{{%RBrFAlsgST05XM5nT0oc!33~xyFeEGngvpSw84yN8!fHU64GFseVK^i# z2ZZU6upJP_L&ADMm`{^eBP^Jn%t+W72ty-bX&_9Egsp)vHWJnb!rVyM8wi6VVR0Z#j)cugZ>PtFSOH;n zB&ekTos73B5_wB4vWNPfjBJ^w*}(3 zNL&|)^J;RC#D#%4F%mZh;>bu`8Hh6@ac3Y7jl`vaI5iTt2IAOATpNgUBXMsa4vxgd zfjBu5HwWVANL(F=vmZ z21wcgkcNPyB>-s(NZJCB#(<5J*}CkS2koO#o>WNLmGuW`U$#0BIOV zS_Y7&fuwB!X&gve2ax8W$$gR*0;Gu`X(K=y36fR_w&0n%WQv=|^w21%O%(rA#h8k)mVNZJjMhJ&Q#0BJf%+76J$gQWEUX+D~~ zDQQ7Knh=sU1f&rmX+=Pq5t4QUq#+?`NkEzslC}h-F(GM9K$;Vh_5`FsA!$)SniP^Y z1*B0SX;na)6_R!Zq+uaxSwNZ=lC}k;aUp44K$@2(=So@_kS2ztjR9$7NLm??W`?Al z0cmJRS{jh1hNP_lX>3SZ8<6IPq`d)Ya7bDlkS2$u%>ik2NLn3`W{0HR0cm(hS{{(5 zhotQRX?#dpACTs!$=8w=2&4%jX@fu-A(B=Iq!}V%4l9mXhDI#f$KpG>G)(E6I zB59968YGey38YCPX_G)2C6ZPNq*)?qmp~dOl9maiX(DNxKpH2K)(NC}YI41#g#u}! zNZKfnMvA1B0%@j5+9{BRiln6iX{t!tsz4emlGZAa=8B}f3Z%gzX|V!nvPjyjKpHKQ zRx6NZi=^EOq~RiIxdLgrNZPJI8ZVO8E0E@^$rF%t%_ZK$_DsKhGXY797D$su(xwHgLkUP)wLqFRl6EbShK;0U z3#4fyY1;y6+(=rtK$I;ia?$UlD8s|$AaXw2;{jSc`pKaFi2jEK%NYeHzSZogXGl+`S%ExSTIXv5dA3O2tw0_wl9wxx zr;Ft63gq!3dA$O8zM9VikQXeFCye9`3*-?adBp;G#z@|=KprxZmn@K{jN~l~sGONZzwR9yF2{Es!UTK%h(kQno;#i~&;CK%mS4QuaWg3<6RXL7+?mQZ_-Li~>?tL7>b6 zQg%V03$i~~~EL7>co=5rU6g%Btcfs~C9C?kQCl@KU1fs~yPC_{mi zr4T4nft0NfC}V+?wGb$Cft0-vD1(8N#Skcyft1YY^$;lYq4~TAWkCeWgdk-@1j>jYWkm$aj38x41j>-myg4FJrUWTlB2dNz zDQhB7<^(BwB2WeeDT^XdCIu;*B2Y#JDXSt-W(6s`B2b0}Da#^IrUfb6B2dN!DeEFo z=0)>46UxF+AD@7fjS(m#gOrsKC^JKP`#ym(G)P$*fig8n*&2Z|Hb_|;figEp*&Bf} zI7nF>figKr*&Kl~I!IX^figQt*&Ts0JV;p{figWv*&cy1K1f*~figdu&$mz(NT5s* zQZ`7Sj1W>*NTAFRQg%q73=vY6NT5s+QnpB-j1f}SNTAFSQuauo3=&cnNuW#;QZ`AT zj1p2-NubOUQg%t83=>k8NuW#uk{-phBIf*46yfo-IqYtNpWhAGI131r0- zWX1%tV+t~40$DNznKFTFnSzX&K-Nq_=1d@arXYhRkVR9FNfXGXDOL94>+LZLGHU|a zH3buXYo{P{Cy>2Ukiiqk;wi}F31ssWWb_2GdI~ao0@*zU89sq5pMp%EK(8!3NnKN*+HdJ%W#1#p@K}IK(-c>!~2~sqtFKf-1;_3S>hSWJCqBq6#vj z0@+ao8B&2Pse(+YK(+fT1hTZs*h~2O z)>9N@Y{kkQb_JPRf$Xh<46Z;HS3xFMAe*ZoqbrcrRgl>g$nGl0@Csyk6=Zq^vb_p2 zz5-ca1({!sPeT@1K_*xr8>}EBERYpekQo-p4lBqI3uK8EWQql{#R@XU0$F1PnPY+M zv4RY;Ko(g+CRrextRSN-kX2TYSr*7HE66YlWSJFYngz1W3Np?DS!V^AXN`+P7Ft0j zS|A&(AR{f1l~$0M7RXL3$WRMpsTE|Z1+vu&GS&iFYXzBWf$X({47NZPTR|pUAe*fq zqb-otR*=~i$Zjjha0_I)6=b>vvfTkPBqV6=cc68_CSD*LuOK5Ykd;@EnHR{;E6C6bWa$-T>IJg( z3NrQrS$hSUdx7k|f(*Vu7GFUoUm%;WAfqpk)mM<&7s&1_$nXnf`4wdP1+x7LGX4Tt ze+8L;jXwknpnwSwU;`8|0s^dn0%kyf9Z5MUD&FbV?OvI>|5q0CeiFbo1Lg94^OfNfB~I0&!~3YZ6tdjt!ifQb-bBNQ+a z0<44rWBf!ciU}gl^83hcD0868QsS#jn6fiadtPTF2vIwv@3K$## z7DoY-Bf#b;U~~jn9RxuQM}YNF!2D=@DOex{OppK@q<|3; zV1*PgLjvrO0)|L{B~ri?39v;97$X7JNC9&sz#b`JkOWvH1x%6vo1}nI5@3}SFiQgL zk^+WFfMrs^GzqXx3K%B=)(Jnaom?weCtHGaZ;S0rpG> z22FrP(}777VAFJ9)C5>H9hfx%c1_oIv`v6z(}8IdVB2(H+yq!R9hf(b;{^++0~05} z#_7Pw39xcHFmnRzoDK|~086I>QzyXI>A=_tuy#5ycLMC44h)_Ei>CvVC&1?Ez~~9E zdO9$B0_>g+44(kYrvuX`!1n3vaW(j;#D8LHpzzhnogE}yT z0xY2pOrcnSB_l9~0<579%%K2#r~`v2z#{6vBnq&JIxva?tfCIgq5!+71H&l5GU~uI z3b2hjFpdJOqYliY#w~+|)Pac(~WY zOC6X?0rpY{22+5=)PczqU^8`KG{rM(tS-ERU4Y%xf#DQjIdxz>n`B=LEOR57?D!`WNz?cfKraCaE0_>>{45|Q& zssocMz^3ZJs0y&EIxwpO?5Zwbgk6AT)q!ahU|V%yTm@KHUDQ-3rwtZX7eCuBz{cvp z$O^EsI$mHGU}tp)7TX0_S{;~L0k&2bu^h+I#$DHMl^y$klXYcd>;f#V4ot29o2vt( zE5PdN!0ZaJyE-tu0xYi%Os@djt1GnIF2MTgmhN@(;b4JvV1fnMU>z7?(I$#?V1@1z2Pqm}CJqS(kLqF2E}5?q0A9u*#uU^z*q~g*1A>qaeegq;Q|I*fW>wJlP$nzyMWOaV6|PqYzwg4E?~F?SZ){BEV}^P z?E=PIfc16(^R4mlV8LBXuk8YCxC;fiTfK7J+qb|UzyMS32VAoxGf3*v+>@Eeq*#+2kms6Nv-CY8{ zJ2`x?@GfBD1=x6(c0cjDjIH6qm|*8!z|ae@^e($F!Pa*u@!KxI+IIkRFTmb+IEx7u zzeC|ab^$iOLw`)L`W?XR3$Xhg4q$@i?{EVXY=3(&{sOFj`yZH+|Hpm)a{hR%zdXO> z_KW@aUoQxr!(R>`&-E{FFS+_Iuk3&OLL?_Id3d~Lf4TP+*ZZ7!~b%~_^kiS8%wUZW{Lmxok&ht^1zb&m3*({cqOkZ zxm?+gA~{>h(@Jhu_NGVjkFv)_a*UE!lw6|hcafZ-yv#jlGBqsp5*RiPmJW~Brk`*Y3V;MPWH!0&Q0=cl3SC#GLl1+yqV<6WZ#VB#3TrIW z7c_qQ|N3tv=OcL@$?eEq9LeEG-bQjYvM)z+GLnap+>7kd!5T3A$FWFWMRF;!Uq^B# zk|&Yei0s{w9EjvSB-bJPcqFGGc?`*2$etd_QAl1wauKq>M{*95XOP^2?Ddfxg5(V( zS0MX-u*dY56OcTB%>B!Jzs&K=yuQrk%YGo4vzK{#nVXlrK{5v~^X@X&F8hRJPF?2F zW$s+|49Oh1%!|uhxa=R2Id7Tgmbq=&OC)pHGH)$&)v~Wh=A>mFTIQZ*kCDtV%e=D8 zCCh#znKPDoVwoG3y+<+!Ec3oH*DL#wWKLJ+ab@mS_9V$1t<1~HT&(O*k~vqIXO+2C z*{dXTs4{OVbEUFxN#;al9#rN&We=0gamu_VGF5+bnX;cr<}78NQsyRQZjA4}$JWS&OmW@K-c z%)!XKi_EpiJ}sG3k$DuEJCQwGGDjlwA~F{u`?qAyL*_YTZbSBR$sC5vTgY66?CX*_ z37LnGxd++fC36fiuOM>?vfoSQ3}l`_<_2W%m&^gk{eHQxFZ;mcKE2$Jm;3H=e_igQ z%l&e>FE0DT3gd=S=P+%KbvQFDU!ZNP3{B9{T{imBm3Co zK8@Uuk^3&Pr%mpo$o&$zFCzQf*lgIPOgK?^=`SYE&Jr;I<;Jnmg~;4XHKpo%k^TpE-d@! zf}19To0A&p0dYIu4BseO1Um6`|ad9qg+pv>xQ!T zPObyW^**_-C;RZ^I-OjPlk0A>Cr_@U$@Mb1E++f)prrFPp;$0^%}V@Bm4Q}I*VLSk?SV1w@%jnIZd1Z(>?lWfQ zrR8z&G4HoJ{m?^KD#K&VM z*<9k~y2CcyKDmBad<^D^W|QNiFb|v#(0T_Wa2uVf@xGYoSdAZtiOyB6kC1R1oviUq zG11W)Uj-ALt?^hB`P)g!(GeRz3lp8O z@mOQ|+iN%)6P>d0T`th2+Zo+N@)Fv6>xje+j5RyKkbxIqLL#6^GBPiT5n=3Zo5yZ?XY65 z-dxWy1~d75L#os1jT04?4SC49^^(@Z7?cW>7F&?u?VrNHN%!x0$ zY5j}OzvKKj@9Q{)`F8jK#|q3!=D`lEQT^>@?22hTGtyBGbL+D)j@RgCyk1~}*4G$~ z+YN@gJ3KLmM|e5fVNQwh)p{J$v3_*@aj;`I=FfcL4l`!WMiE-SV_Dn|3AZ_(e!+E- zG{tcU^Zxj0TJK|D+|D(9rlSmI=~A;DndpJ6vn^8VgAB**UYF)M6wJ}%7C7=?`n+AJ z^+YcFY^OOTmN>>>uG+HHQ4Mojn`K&mogK5%5rBE^^(sd*%=`8=TCe2MkLUs1 z6zecx=5D>-(H67V`3+j%^Bp#5t}1^3zMK z%UT^=s~aivCH*BgbG&pZ-rAU!UOo zJb0@0Zg#@${<&T_o;=3;YWYh?Bxc*XueCnT%a80-weLGe0A`7d_l_c%d4fJ_J)Qm0 z*ZF+uzmC@r@%dKkt79JK#be*J{?5b)cs}Vr9g{Iv`2TkNzK=f5KYtupW2XOlJzHY# zi^{GhXV_`W=p3pi=9(HgwZ6}l_i+Csxzr|@CR=Vb@vfZ$dgRf1KtH78eQ`UlIvcas z#(Zi8Oc&pOw0_Xeckuc2E5Ca4HjY2Bfa-~vdr?8HH+0S|^iNhTtd_&P^}MjUJ3b=yf3(_l zJC&VZM%{4@-*;G9wK?YdO6649OWH97-)~=eHSsDw$091IeKFT|s;Kpq4!eT)@AXRR z?PNQRiK(oP#q8={Me8x0cp3elU#hAPlkD_MR8uEoK8~!e^_xz*WT%7WYpM?};<|ZM zQyq_K+g(fRJsouc=S``j-aK!o#(C?igD{Io-u_W3Kzy zKAX6-UfwEomwXK;SEH&u^sAm%wBFW($I!z%x}#bF^GWqi z>hz=N34Pf~>vJ7+#7>^pF6yzvxURZ)RV!f@Ez(Wvd3|~iy|e4PtGzMjdG}EF9I(^4 z<~_Ck*Wmqj%6_(&dTk#*|K|5rTVQS))yb^{j_22Ch}sO(`0o&P?lxQ>VyMw&}7C0p#Yq1*`d`DW|`WRB2!XQMaa^EY&q`g|jPPPvR$70g+=$7p@DkJsb4R*Y5K zV5UtNr_Nc2_h;SlD)z+w_SDwLtR6Q(HLb<@n>JCs7=zFMK9jWmTF*6hs(){?dU!Q{ zK5ubVvt#ZIaMOBiSFN;Dy=)%p;}y70&U>hhF}Fl{YJIn-mf?D+;jQM!On>RE4vxm> z^I;#Y2lv4eI~DBir`E77@g+75Gjvmn*7&`#sO2Wh>z z*%sjUo_Qf^r}_A~Iy6+BHV;4VD}`x&y4mO2DQ0iD+Hnqk&KUHnEfTM1M}vwz#lJnf zUuWU^Pl-@lVwPHMRD)*X_l(IVt$+9Fbex}0X0-}tio>Fgnuhn^Osk4L%D=t57pCC6 zmbR;Cj;HDO?P?ployrWIqV@G|vZ5Ed;#BpP1+V+mscJz?pC?nb9^X(CeqQdKrfxCf z_n6|-)wBp)kNW9azi&GOu1A`odh78yyJ?2HG91UBZ>HA!`#BWXBrOH0wZ9(`vnKWCy7HFrIiL=#T0XWY3k*e$o9_Wvs4<94d2tRx-kC>yb_qCHF zevZ~3{Knf(BWBE1OJZ)$nya?=!t2p@p4KZo-2*?jO3hcdx!dW6alU%d4X<~`e64S| zuq*bXwk}YcOvdk7`4_4KC)ufI;6km3c+muWKDAk-?j3KZ8ZnF1q;cpu&bCYE|>Jz_w#nj7=Tp=hn=xY;0lE?AbS-3H>id$3F$J-|+e9Y= zp1~{BEq(Cw@#YFu_97?t!v0_EN;S17K0k7-QlIv~_2{um>r2kr9q;=ltJR|2@bybq ztChOq?|?6>wI1bGo$b{53FQIRB9`TEFr*1=sVSwW^2CPC-Z3ssS!` z+FdSI>s_|A$Ir*iSan)E{Cw%YPK|79r)4|WX?@I5t?iUAbiEqg%1#~A)~hR8;`gWy z8?>J0nC5oM%DGWp+YGOp*G4tAshx%;;dYb%^*66=jPnt_NsVb_r!QYOsjC~}e2&|! z^*Tq_$M>tXMO|FaP8a5EQRmmi&#~8Aw7%zQwej=e=vLKS3->F(O%1P!=WpAl^+3B< z$LB|n?dsTS`2BR(c6CTqyuL+tsB)i@D&un}ZHL;jlAX%A>{RPk#Pzd&r`8)?q&%)m zuU%^Pa(I6x?NUFM!FASjx7H_pvlOo1Z@blmlDO{2?NJYxz~}9$Jt{I4e|x5*irFdW z+`X#3D0;=;>{b1W;QoX6Y5mh(3*q;l^83{$1@ZZB+pm@@V5jey`&HRX{VE@hXV(Gs zW?nl57CES@dGI_#4{CkY^K#+uy$*-e;GFpVVf`U>L=JqO<~pqPSXa%4-w%=wtGWKz zXj#)E>a$-qIv#yQ>$l$Z!$v>H9#!Xmw^5~2M^*oCHd1OG(|WHPezB4L^)a=;zcyMo z=(zg)la2Vuajg$~^9S@hTTiG{-rJ~L<_UG|JM>O>k5gq&cCj}$3Mw40zI z`nflz+Nke?(`w*N8%^kXMs>Miqu}jlwBGI;DL8LIXVvvrZM5~qS=Hx?jgGcW(E7Z8 zC80k%TcVnH$wp7y64iwlZS?7UqSo_W@jSk7)H(H0BF^vUbL#d48`U3mUhDsEcE(1X zt6fk(pR!TEnHSXKCv7zH`2`gjp})Q0I<}GDfs5*I2cCDSOR9*skkC&-*l1y= zB=y%Z8!g|Gq{bh$QOrM=RoNrn`ml|5q+C`%9JJBiR>|t#12#IeDp~6nuer}g@sqBo z8GCFb60WE#cH8K5y{lU9c)p$JEq{MiJ-OXR=Z2-I`fcbTKaryKk!Nnk?Wxz)6`L@h zTvPjQ#Ql0**LunitwT?Gu^Xy;?0}W@+lUY0kd$MK+px>XsV4&_)rpZmYDwMgenf zYdz>o=GtiVpgU@ZIW`(_0^?reP-&D<1U-;W7=Zs8srk{;oKg(2QFMGT*wmGL3p1I zdZ9KSXd}mw7g`_uz#cuL1J||Jzp7_-d=4c2t3Ik~qe)G_sN<{r zuh0H=B^!PD@rqmKV&rN|Q5IO&I#JiBFMnVZ@2)k-yY zWaFY=tdu=H8=F5{>3+fNTJQdV4^~ivyy&ecCPvsk9Wh_$N%=FmGZaE!NXrz z>4|p^c4S%Uum!(Vf9 zYPyvc)X$~$`Y*qQUi^i*_;ae2N}kNcLvLE?<$Gt}f6;3=zG1o9@2ZsoXXoY%$?yi8 zaC!jjm#p-zVjjM8!Ac4J^KgsvR$4tJkLCw>a@I(mU6^y(@jNpMa~G?XGKv(@JPE>RCGXH8{L=t`!hve< z53ypMwkW>{vXbIglxqg!I*fIC6_)#2X;$`Poa}9-UM-4o9xq&P?!`3ULa5t+=cgF& zm~5r~--~g^L@O0;Se&JYq5C*1EnHNbO=GOo?^JQ#J<3W2KRW#kMTc8y&hQf4X{eQY zM3&&-!B)x@=kzvQ>2F0JV@dwq*Ge4*l;nnetn_6{NzLalvj;pAk4y4_Zn&;Xm*Tr! ztn|1?Db4fHtfQ4i?kdG&6nGu(mEsvLR=QNUwB~=f(bh^XA*K08Yb$-)RGO=`veNFG zrCE9*{F+&*e7iCn)x=6EK4thwBP-30arz>D)PuL;PZ_RM7oLb_WtnPQX`E|W%_A|T zx|I?W%kuiFRx*Aq%c8QC8r3hyGWYhQyp@(LD97c>;e8{@ajP$ zM;60*pH-eW7O_(NF{h8>W&s>ug$n%oANVf%R^Z(E@O^9*G*3l~TvodIumbnW0Uue3 ziab7>m6~>|sQD{q|FqED?G<_TcX%T1ROCHhEtFZH5_(ww=e0=rWTAF}l{oW*g&wc3 z#2??`->*4+7sX%W{;eu=wU-u}=UJJXJhxEGRZb5^uP5+L{H)Bw9$Bbi<0?GqA-ob3 zs<6!Y>F-&n+L8sRo}tWTB9oHTcv43l+^%_{vCK72U2CD*Uutp08VjAQ zTbun?S!mSg+M4%c#4@}-YHjYb)I!zY)@CKjLUC2=Xg-h{3oMj1y$+Y0XCd2>I-Gls zg-SkidP1Jeun_gG%QvRsyqoLt=_wZS+T-+xthHEZanX7_*JPm@o$Ika0=~M?dYV_H zZRYW5yZ5(H>flD2&!k3g3%xkfh_m;!Q0TKpoY4(ll(LOA&&i5T7Aj`^UO#uhr=t|=F3XrXSt zO*LQ2i8?s0^L^tEx6>6@9h-fPJ|U(8gcNGr|X^7Vt6iiNad^_`jK zY-+{R-k2%-O{dqTzzZ|IZPS{QpP9+syEQLt&E^wMI&zZi{l-lXnvb9GtIQ&sKU9Xn<-b8!n>!K$)g-;-ka}cGu5*YuQ%fL*+bmTV5S!t zP9M&q5Hs!Q)RCJ9;rxbnD!sw*Gv;ebm0oU z&2%iX3m@rWrowSf56{!iW{RuWm8~7kRJ4CrE~(%;vUk<|JRRHNd}ns$)YfL2RH7UE zw8ZPzwVUScS<=KzqqcS9nvKk~>sB{DTHj1R|LLyzd~Vk=(^|jo>|Mi5uh(|xZ&l6Y za>eQSDN_;WyIBw3T+U2&U3+lzGG+>ocKUz%6vy#?>A|T*%rv@gPo7i=?~_qIS$cuO z^O>oGqbL8)ZKj#8d-ANDxK1ng(tJV7f17C1)LvZir-^nP?8O_undsdkr$=bdCllGa z_vU6FOmx=Jn-9M=QT`oHzfjx@6Ga#3!!B7Sy5-V`)h8yZ7|=)a4yg}JwDBr#XPD@5 z_P*>$H&N{teKjA^u~ZXnU)Gmf-Y`*CVqZRxVxqcVot~oYNhaDlx*u1+h_9d5k7Lfk zAEY|{MGH@xD5gq(&U4a4w+HrTn`)v`)B0;(Bj4jDn)kRrKRjZhgi-@|_#qSh={`X7 z9noGB1@9QZ2Y2E5-x3^>hvR>U-jSf z8N_W?m}s=yAl@8pqJ_(x-Xz;16MgzJh+oXd{pto3!cBDJk<-8A8Dyfy-G_3LKfb?VC^z-R zac&>V(#!P4-9&fu593j;Cd%V7jN>PosEPkD2FptS`I@X_Of>b%Fupeu&p+F6b{TG> zlxD*&$!^-d=G5$E(i z-RxkZj+I7o<8~&R+yvBHai;v=m4NR1?>nP0=HMcgt ze(NaCs9~bpLSgvW(+5uZ`4k&p2-V(nv!x#%bQF(@%_~?>L_GJu=el;PKq= zfss~jbo#7r-Z9d#TobtLEqJe5P2kZtjda6fg66rpcg09=&rjgWmyPuE+XNne(Mb6k zOw{~Wch4HB@`8z6{&knU;rS)I^1~%Yiu~jBZuM9I|JEcoHqOPrFLC2tvvI#OP9ImnX-1k+%bi{9Mw&X@ zoqa7vvdwnaJYDDYIDgOG`E#g|g3Ehw^F^V%*(x-i;X^MhsTjI_()%{e<5Y0YbIuG!W|b1VC3-Y~c3M)I8E z!_%AKydUu44GoRdInzh;iQTPjqzYYq`CAPm_&Pd{Bd1J z(7AU`U)lJt5wvh{00)1LprGjiJpDri4L*Kp>?}} zubUXm0}>;sM^rG6JQG1xPCGqm*r}!D8X+7I7eQNwhH&_?2r|zM(fnys4#1c8EQDw5 zjiB#kLOF65?%y+%rB`jymIw;l8Ol)`BdB|NC@)zTL1hbuX}-1SRS|T;Ka8W7M^I!e z{(Wf#jkx0Uuq|4E=iM}%7tD>IQtn zxznuq8FHyMa=M+IY|x15KN0<7S@>)cmN^U-$Mk{BmXN zoczK-x}J94^~^voBkY>j&i$c*y56yKrwju{ zJf`sUWccyyP7hwo^9DM%ZwePkFi?f_Q~2R20|h*A`tcUT8>mFFsXXbpf!ym&287~mJ1#@`kiDAe8Q-;0VgP~qj%ciA_EPmeIr{36r2PdFa0&UDS!cPGF={v)UJdS3$_51P&%UIxlB$LaBVH_1TD zPE6;+;|+8_WjaTUF;LwXPQTx;q4>J;GnfY%C|ipeZ0~QNo_(C&zid4Xlxm*AqN{-_ zMbBVcCj+_dcKQInwKve)yEFJ`8w0iaJcC188pu>=rsfHJ-pD{Xm6^P`zJYoSpULCv z7-(LA(;s-Xs)35Ho5_)t3^eT6Os4V%T5-kc72Hz-uUocR>{`@7Sn*>#0}FY%X_8PqPj?eTIQ4diwPk|DLR; zw!dcc>5F;_DHW-C4ojTX)3a`o9CuPr)y7BiBvntN^-llco}+q7+8W7&59ukFh~zK( z^yHEj$S^)AIc%G)r?cOje#K)`^wgmKTpnW8)A-JF`HfLeQKOyS#pN;+;Om>F#>uq2_Y=$$EO3a~|&>ucrzX=V_kC^bvY8^_|Co zL-n-NZ64&Z1?9{1~l-U9Ze%k4k#-e>R`rm($aV zKTbbnt`d5B-edvKFQTVnJr{7vf_iE<(dmt>o?B0mix=>Y?0VX_eE~QA9Zsnyoj%F7 zU&5*S`vvUy7*0L@S;+J*ocyaT)I5`2pNG@YK?^zINjU!QUC7-t!|C@_r+>10dN_4E zi2qLuC$EbOx$BK^nwN>MzxqEfC0!1uE5#SF<3c#StG|fbCWce7E{il@C7StZNa!No z5g$&W^A>USx+2)9(?`FMVxDAI2F#dm?f9{eq%WGZn>B})`gR2 z-^HB1CY)xtIlY%>qr*v!Ud(Nx!s+(z#k_MtIDJ0r^kFWT6;2I4FXrFV@H`4daiBe% zCf175JemC>!fENSD0YN}({BGLt{)su2{WDk%v?TrydzN@)alhc zFeaP^mtMjZMuwAj<0U*}XgJxsFVTFP!}^8OPW=*g^a>}ja0%Dw9!}S{Iz60k75Fw& zm+;UI;Z)@952phcp&Q^9b0RVP~We16XrPXCOI=3&{xsZ3Bb z@BbA>H6xw=PxpVrNI4$O{2`3`T#e>3Z^LLrRy0d5XyUUl3MjjbD?JV)W7B0E`XG#^ z_jLL~E8h;I6%qLNn_;wJ@iIP_5=J|>J3XTQ7sDw2)-o1}VRYu*GA?!|j4tI{uK7g| z#)r}Ew#zxk@i2NYa5)b;97a#QoZitlyTj@X@d$LTNio)Si7Ppsg5 z7I;ikR`BNt%;!$8sXZ9C%dO-y{1-qT)A-|4)`VN}w%k}r=BqvBC3x$u}U z?B6>*sEdY#QU2R2Ie9=B<$1r73-t}79RIA+{HT##!{}SvRh-Z%`k*Fs6;jnVwBxh{oLY?~Nvd@ht042Z$+?^vn!bb4QR#D~(z6)~K0ER?$Mi{Y<_ zLaD{M7)ICLUmt9@-Jw+QOAPyL52de#*Ycvxq4cQsTFn!i786Qw!`Jfnm7%mbU@cc# z7D@|et=0Uo6BmTiq@!zj>YPyOoxGMe%*5kAb$VqVSVJji=~(`445b&1V!5I|lv29I zYQEXw0XY8fSPt)`p-Sg(0*%T^7gK10@X-HM@9&v!kyEgMRCr#t<(!;6N}>4WRptstJq z#q}JVFOlq!1f4#W#vV~If;v0DR&k!n9e*+7Uu~DsR#} zz1cT}(4hXC_)km-)$rKFKUap(C#%!n`)P3qE#I?=-_8#qkAzM9A~J+p-*b9>Gp2;l zje?sw%@RVJYHsE$5g`=pvRU)}a!?2r^xMow{6gsV^v%4>D}=VLae9E4O$;IB(q^7B zHiZ6pw3)3V@p#{zeqh&uA>>_u3lHrJzi{U*+`VTA{T$`=2G{8rLJQ|?;nFT4Gym-x=_V0xH)8=v|fOq(igI`^cerV7fg@OY~zgE`1tM)zp?#t zFx{=bohMufrd92?vo0Z+h7WdnkH0yBDS7I4PCXt>b5?EVgNK8u>j9?^*?V^|op`XF zyKWDrkgwah^5$S_Sab(VPx93@@FUX>-o7H3hK<<4Q)eAWHFPHj zPQr1{+sV?yTx3)*y^h<-8AF3<-L;*(dtfjPeBtyn_vjf+2g>c@l3j6Ln(g8T6ih{X zIlayLHo+7Sv5Pyk2&RgQcX5Fx!E|w()8`yhJD6&w?P9m;!Ibi57dNaNOx8TRHP7>j zQo(ei)o!*I3nqKN-Q2ZMFx7W=`k#|>;r`LPc~Q1ts4i@H7=--v zZeH;=h|cBT!y{h?QDF5wnlCynGl(36_VBWdAe!vGhlkz?qP$a`9_i$iAR4rP56`_E zM4!*?;qDiLXw`kEU)pgpi0&8O%X&u;O{=|^n;s9Mn#x|yJH26F5PACVwFAnG)3KYYMJbUV!H!S2u#$Gv$!Kj{)g>*DwGLJFc**PVXs`>lg$VvYkm zt2xe3xdYs&aS+XIc0luHn`#Bo!HEaBO0^*B7IA>jR1Bh9i<~~~0wsg!7a!ogMS^Hy z>H!{DAP7Ejr)PU<4jfmdgWU3WAYE;FkZ*hoq=|i<{_W!L1IcDS$opRfQo*GMxqnt5 zt=f5zrI$PMejpvbeUNLW2U5rP2U(;BQc}J{ny>rQF%& zNb`7)a0F6;<%jsqu|VuUAL5yZ0;y7h)9-y?XCO8Dbcnle#rG+2nD1-|qz*L>v-E!F zSQSV;1|R0==s>#ceVA)64y3_Toj&khvjb_&{=<0R22#ek!|ZJfq{;W4p77b>f#g~E z2$u>Dga`NtZ}JNyU)>RweL4=;K=SuH!aXMh((CC*`1)wvUUNkAif0YN{VyKj;C_Mh z;^7hg-ZPNAzBzs4`8x)ZYu%%~q(dM*prc&2O(2aO;q;K#Y#c~KW*z12^#Un*?NM%2 zE0B5}ar((yRtzNF=273cHURI36I^mt0Ck^#f@ej;v%bmcSNED1Ky$C1 z;9Ii-==1Xv+;dt0O~@XndDm+j1E@vQI9?hSKx=!%arU49$~_@Y^ReId2%yvjaolZk z0O_{G@&0iEwAtbGw9gnCK*2BL_{{*^FGoBN?-M{S<>NJfd+pA6yk7CVKo>yX6XW?~ z+W<;3IKA%NB!HG|jprH-0_c+(&$DX>(6F2Fn(w`Tr2u$t9K64502wMcxOm9`N^9=W zJn%R22hg%f4sMwTUmxM%rP%{$@M5PQe&APsDkvPh_oF{~r#iU6TYpM;?exZ9rR=1(7Uv*w@A+T%~_S~BZ)_|xY;%u$>Dsh2CW^wPIk<4+%=nCC9{r*1o#)1&-p zWn-WrMT`?5;xIazpD>z@UKV5YdJj~CZs+ygC``45G zN!=m1-FSa0a7yruQT{aYmeYG*b|Aigo|8POk3T7uPx8+0{xrAMNk-Q^p>v+w>F{`N zCwWR+fATS(N$MZjRl9$)=r-ipp@|~*wl=}80%Ra1$W&Fvl z@+sa}+@E%}I>nC*`P2Kprx+dggsyw`$c6K7KE+%A_|eHFr})WtKgzxH6r&5D(238k z@BL{0ty8@Il^-R)J;fQ%{HR#o(~Qo1LU%q7&+wz@R;PK%Z9g3EX}){|y<2XlS@v*s zy5vX8mYil&q95JZaheaF@}uIXPBS|A30?eHPw}ILZ%^~6LwX+v%3!@*+taO&&hWU}BgE1P*QJN9y7PURB4BUTsTYI1C6b1Abh|k9wsh@IU4J$nZLW8 z?mRz<^`$XQ&$H}VE4s{=){Z~VwHEslho9$m^L!~|{&|K2g5ZMS2~&NkQv7)ivG`Jl zYv*}}!IwroKhJPQ5S$Ub)!&z*%Us~2UcPjo@dZwF^`*<*E-;)D1h)h~8s$s5!Y=Up zp}tgQ-Ua?Mz?a%>yuh;Gt!#H+^1FJ0Yj*Obna?h86Bl2K{e6Mqs35p1xJz?9Uc-yr zuaPf3?sAcb)%B(Cqc1XC76hjSyI1z5T5~S4e>q=jzy2bJmh`0o$1XCQ7Xeq2k=vK%{JhAK*?cLc#3h!!a*O`;A<^j)N4@uZLiJoAVT>HU*<%6=c3IwOf?pI!J?A6j-Wi32wHQ0#>y_KfkNZ4Z(djt_$CgGVm$ zp`(Q_^MD0D#I-JS_edW)>vEal0wFj-xS0*d?Q@xH8-3{J)XQ8U%m@Cc%M51-!5zXm ze0(S~@iKpQ^PwmAF7vYqK9u$8GIB;fgzg@`ILwD$RZr%)fj;!QT{7?N<3n!-CNmr) z1Q!X<>4a%ZW`hgk%YS6KGa z_s*NPzPZAMUwYHp+*kSI6K{&Hc$MK&AvjeyKHZz9^uEfmsooSm=_*f2@g|>$s|@D~ z!M(y=&Uw?|tyj6`X>aPLUgcb>H?_TSm1S?>nS6o%`C;C$h2bG&Kgi4>kX!<%MaP2tgYZwh{v z!f?V6+%Q})+?#rpy2g(Jy{ToxYaHj}O;x&FW7${eInf(@%{A7I@us`8uW_;A-jon~ z4Zp{G6I?SK*9Xrx=^8KS?oF0Q*LY$lZ<_r58pB0HaMEzjHr~{@?sdM=%$rKkb>7m@ zo4yRY&T!Tc+%?>_x;KgG*SUBlZ`!!}IzKFf<2-PkWly5H5FY3Lb?%wZo9g|0olEBQ zru>C&FdR4p7Y^_I>O~jY-{7#1UbKDC4OZTGVZY@D!<9pD=J1tAUetN{4PKGqMOF6P z;0d?A=*O8G45tpkt;4U9z3AZk8+`DB7cIzllMQFR$g9dtmi>&`;=HIrzngsKuor!F zy~(roc~O$-Cd1J~aP@HhEnZ~aev^~ddC_2TljpDYqPnR!87?1!(}xQ#_M+=KQ~AL>F!0{x}-5&Lj>m#pXlI44}#J- zu(cQMo}I?Ent4$~Y#PH!1fO*pFRblFg_F{_b2Trzm6^t$D|peyZ)sW|<>+Ew)UwVk zE?Cfue(G+qn#YUI4!y;291&bcTf`MoFJ*S8ohB!Ux()1G>g z=e=7zH$yscJemE!9;K|@zt%Kq=ETjKE3X6{`sC%YvLW=JIj+E=8j2u+4XPnckC%#NXjI!Jc$JRMJ za7wX92Tyu(IGwY%_N0}U(mAH7C-uopXE>(_?kT=n%aisMxy#;FJ!xX?yPUm(Cl%A( zW!d}Ltf(gi`P}7m`8}!1)Vn-Bwp{~# z+-10~2+k``d+b5CtK4Is`yMo-^*#Q18~@(#9>a-6aAR@hD;_k}bdUF5@Syrp_gHt< zgRX76$Fgs9%n1*wdh;IE8$9UT%X_Tf>p^}wG8m36f@_NxZStUFO)|JbtOxkx4BooZ zgZ_-oV7RylPA-mH-~r!p26v70pl9nd`0_LlnsY3J;q0RN$r*gl;6WE3XRup{2l@QS z;Fo?Ll)w0WmOZCmCV5Z~y3dxe9`t0`ea&S`h*pZt(x9PV`Q@k5rqt}_m})0bkI$d9?xjJlcZvlWj+nGA;-!KKFi*SJ${ zzf2a(-08ryOm4c^o!YO;WVqG{&NVJF)1CSzX0pxhPB-sn@+%{b?_(yz$wqLq@wotZ z@~QfWTY9_GyVj3*y{kKg_j|;$PgXw?$8UPX4+pzbj;Kf6r=L5`+V+Uycq6#pxKd|# zns?(7&vbF8f-fKO>(=hHAp2v63y$D~uj3cx2jSO1jZ z$RoJ&xcEXh+Oz2?dq=uarMRaorn%Alt4|p&J%Uq@y$x>U{p%@nup6b7c*e#2+^B2) zXAI{a!M(@FCgSTxJmdUh+$hrj8IKv}Mjxj?W7*sLtCt&{+y9LFb#LB5gZO3Q-9CqBu&XdF7&iA&8Fjc$885i{zdp&63mlP((d zTRX9F$wlLTn>%s;>x;(fb)882@uHzwlhDjb!(>$_w)}U|2wK(&Q=3ah`I1g#`d>0M zlM4p!;Rx@77KnbGdAoHFUxu>aw9(n9xj2Bd??rQ=2avkLPt_^Rt(Y zX&IfkHvO`pnVHb+Ok-<&CtAP0Y@CSf#N0iXjR(P<*md%<(Un6T@7alnK39wi=T3C^ zT``8+>v2g}49(z#W^o$tn|I>Y<5!H0CY`d@T`>;a?Lh6^D~4uuLNhxJ)5{%L%PWS< z*$(`5=!y|}sslC`t{9r>3C;F2nttuTQ0J@0$e%m#R>W0f>YffT`>N5Ef4zzwaCqjb zVQlO`>MK``{aC+r%D=m2 zbmeZ(Ywy6IgV&5DjUAYJ_L{Mxx&uoeT{ASp6q;pfY|8Jz$fokBBDjl)qLsGfS=I2O`@kqfUIC;d7wdXeO(1d4D^${d2>(@I$-iI^QtPZg0nFyPJk)wnDR8jT0N%VUc#z zIQC_`a&vAPhdymbz>_zPuAK4R@3$-0?5440VLQq{y=iQGs~yc-ZyK5b3(bNxmQQcT z=u0<^#Z%fbvBxdrt?})6)%BL4S+UT}Sk=?*csKW!G3v>7EN#AJJU*x$pFVrb&`eoq zwyaTH-;Pa-Zy9No?f7o(EhDP99Xo%xWpw46+o!i<->qAQX;M25THiLV#F^0@)L&0cGo`1Cs$usU4U3u>2FSWsQ z-5ukf=i1aK==o2#;o-?UhGzUivwn>UgWB*%@4H4*Ya90X-Zci+w_!u#T|={gp_#zO z#iBOM8GP5+ozsSw#@#hOL>r!%eb*S5*apoGHmYOWkoxUiBP_fP0SE6IJp$WcbM~&$ zl_US9Ya9M_xMxgvXv5Bsdqzv2Hhh|X&(I8FXcn>2)3goG55H#|yVr`QDff)eZngpo z?ird@49zSys?WBEJOhGrx~vyu(-C9Qbwhx^8X z1+Az!ao>1vPAfuh-8VE#8JekVL{DqQA3hI^yAxZnZr}rB+t^mTQS!jh%w=fyvQagn z70F{C7_LKFVK?i6aiYBy|1N!Cbmis`uWrSx{W?x*D?0yuVBE}WMg08-hGsZJvz(2W zl3Q^k@S%Zty`R*FhG}FgUaWd(Xx1|dpLl4z+`knr6CWBm?yWfU)o>ydH&R10hx z9vPZ34b7T1p7^x|OQt?D{C;l1kcE$oKYnOI_!o~1&7#Kj9gmDMqXip|Ju-T3&~dIl zGPtHi`-KTLvl^OR&G2O{802EYQ;S=W<7dJJ3tA8mX~M2K0o`72!N1ui{QBh<>?||k z6BAqHS2CeyU_-O8x%XK;|7jCW9NvPgaVCs@yahhfOsHAe(9CSkZfLNP=nvs998#QZO-)A?DpV^Enx4O}F zdNa0lGv$WK&3N0|l$uEn%_isd(alKdZ^~IuHKR|sDMN=gwu< zZbntTDd&|o!|yRuYQ{M<>zunXnz8)_Q?@5JiPiA55v4>Co(SzSyT3iTh01$D$eLM@{)bw`S#`nzCyS#I74n7=G83 z^_QA3(5ySpoo+&R+wRm1c4!tmt&TO}9sllJ_)8N8MRjNJ-X=sOcc*5xLo?f%yQK+R z%e(WJO-*>MsXIH?Hlh0Q?$k_oXtq1YE^op=HE42r^=3dp!#LshkP_yo#nfJVQ zwGri?^x(+zjj&nUgXjNl#9pHZha7Lj8{hZfU%xh@=$9UB{<#sBfA-+v9~!aqY!7zL z+xY(5Mr1td!Ho5dcwlL!xrdF|9h|M$17}?o~ z(eupMHRr>wrV)RyG~?vbM!fsA8L#9uqUt*{wq-P;*B&$OO=`qA~*NEp%nDLYF zM&-Sk(J`a4fyT6IlJbX^q$gy*ls;Jd|U%gSoP$d(G7URu_uF{YCw`tPrfpw z0sn^f{YJz168fV7UD{0#d2u%5I?)Z?G) z$&Q!?Bv0z>>Te}6{SW=G{hgtCG zf_k_=XTiWZ^)Mz`aP({SXnW0qoLUc)w=HNjp&lQ+Z^7E<>yfd_g6}_FkCR_p@Z1yi znEaguV;`%B_Z|z5Z>|RqS#W!e&g+B)t;_21;G6}!=EuB~QI7-@OP)xo$KhU<^pC5@ zsD74wGQ1wP-j@74pdO!wSn|48J@Vr%Il!eJf5Vbv?dvhI(2|?2>fu^r$%j4a@pYRe z@vshMPg-))?K+$tZOJWH>g3n7WVds5@R(uA^iy?M_m(BQ=GJ_Bs1Bz;vE;qIb(px; zk_o%(;6zJ~*;0qkzPIF>O?Alm#gZ4ls>AQcEg7`B4x`Rm^0ANWV0pum?=7hlUuDT( z7t|rnvKMXV)ZzQSy_o-69a=qmanjT}Tnp;O4KLMUT5K;~ey$F#X}#DrFQ@s5I%HJ! z;_S{k9Bk>uolSLkd}uG;tFFU;&-P+uX&q*~)Qg>Yb#R;Bi}TX!@addh+?7~|)c1Pv zPD~wsTHcExVS2qUd$GyC4i`7~;_IGucxhKJe&bXJ>jS-b-nI^le(yz>UUdjQt@G<% z2hG;tnESQJx!;Q)-K@m{b1Tg+two!i74My{#RWGj2A-_N*Z?b59<7C0v=v`ESc^B4 zt+@QhTDa$0asQ55EHAg>9itX8O;+r`p%$A5Td{CWEpnf>;t=8v#i)PAE?)?THIJ_#mMQk82`Byt0&i@`z9;C@M0}q+it~0qiSKl&q{=TEfyTH z;)%hv@cP?|rfs!YcFBsq^|c7SW5w)>T71#nnu7{!5#Ps}Q?qKZ$=RA8rPLzL*P2`7 zYq2%lnkOQ3UJ2IhnoH#7Q;XsfYbLnXVqcv#tNYfXqSKmBTi4>?aBIG1R*RbFt-0)B z4GvGXCU4iE?saP(xl)5)-?rwpvo)yyz?!{I)!?^P*6jbg{=UwdNr&|J@2pv|w+6L) ztT|*?4SqRf&6mEbLFEZ+cFjXt@nsE4Z%To&ss?)=S#$r=8szut%~S8yV249*-g>(R z8D71$-q+yU;NEn7wFU`sy%{#824AK1X6m>aL=^O9$>`HH1o9T7$^=99P)tGPA zhpxA)VQt%oK3A$S$+Zsy&sGc1>BF$Usxc(854+|+4fv%R#o2wB^iwrh+J~t-s}bGM zhv}@whmZAP)`n_0Jk^KUYpU_`3w@ZovKlw1^kLpd)foJSe!g3cL-X}>UNv$))Zb@T zW9_GXnDa_CeAnxFld3UiOCM&8t%k{ueTZkP@zmiy?3z23FsK^&=ld|Wr5az~?8C^~ zYV<_k~O>8xi<7{XVR*hw8Hhkn)4VwZR z-twr%*eV-dbgaf-EjB!5Q;njbHaudX^Lo~Xd%IP`{UsZA&AVEEy$Tm*+i>NDDpb8| zqxtq#s-tcA=J6`{tg+#gU#sxSH#Qu-zX}(3*l_Uodfa{+)@-f9hNCvj`KAgU|JX2o zZ51Y8*7>fk!asLxX#a5)3VPVmWJwiP_p#-r`BkuWvE{Kht1!yfmR)nUzM4{nfeE%; zJgy4wWZLr8(N(xxY|GIjs?bzt%ht!Mu(`vQd2Lm2A8yO2`YMcn&X&#^aux0@vE|osRj6BO%Z1@p_)=KP$03 zz>bN(Riaz89i4x!L}RiYZ+~BjuX5~oXlo^`%k4D(y%K{O?fB-}N^Blv$Kk6h;V{yU zU310!mQ-Tv|Lpi^ekELH+VSX{l^D6ej%#17#EuW`ICDxRTvyw1$TRM3;;+Z; zS$($xQP0@Z?|KC$j=++H=+)6&SkEo-Kzf@byxAhU}|=>F4&m zwW|W98|~ROM{VZD3jF(%JsZBPK=g0+^j%ef@qgL#;zt$Ob-|wN->rb%ZF^3fSAnK( zeVISA0?VxQO}&v{T3Z&2OOUvL2yu7F{ zfAFcm_sjZnhHC|Sf6r z<cCC&%Q0`L1D|=b90#6tVBo9euzAUWe@re% z(JKy|^I|z(neD*5QRUdS$bt8VmE++u2X@V?d#t4#qc=IQUu`))+wQ>KrR6xY*MVd6 z%HeawfuZT;XguY>V+rM$d(nZfN0;Nr+YU?)DMt^}emvj59Ld)GxX`T}qa6D&-=Q2U zz5DT&wcbxiKYnCZu6%%gEPq&r67=K!TVPH44bF*tk>jn(FlLq`yXFFZb-xt5KXPQr z%~D)l?Z`71OX0G?k(2)|MaEV~y8T&-Cw_F~SHG5G_F+dB?=QuM6OR0QcPWmabL6-! zr7*kcNc&Bt2z}(p63Qv?IQ)VWUvDVIe^Z?3URes~ zH=MYtuoQ{&otTtWiiQuIxI4KNV^=w`Hm(#4zINi@VWn74CqC`3=YQ|S2Og#3p`6$? z2hqW%6j5iKxTI$(O0GFE*rXIs-gn|x|CQhsb7!VpEx|{&&fIaf1cs|KOa3asQ9oxM zI$DC85zcHmSOVKbXP(+qf{-j{KDoUF*(J`rvbh8;bO$jc~b>?f+OJKg(nY|~Mz+;6oXO1mF?3d28dA0-vo1OXQ zlO<@~=}giDKEG#gNY z^VTk$98sbiM;HG8+()kx_=LLfhLc_=-i1%u>iprtGZrPNDR5zDw-OAla^bN%#Te7# z!m4Y`LGKQ&M$`V2^Z$PS&WEtE?hUg7zsCA z7&N&UnGapKU~DmpEnI2wY%yx=UHQV3#b|YR<>}613<+>$ZBsEuM!9l(RWY7Va%D_$ zF(zcYa!GbErj@$VDzzA|*Xw!l#n5a(o(eCYI&$)7=r{2#bSNb{?W5o?$A7Nuny=Zkwg@||-N;Y%dq+3+U#7=-yK(A! zdR~Yd|DC7f#JMqVrjDED#ud}_I{9w2oT%5WbmP$Hbso)b+&!`gUq9}~z@bH0^RydZ zZZE>>7u|TOz6hU8bz??F5thz$O#H!(TilB9{4Z{Fb11^d<8B;nU4$WL-1uXUBD7s|qu+x<)ZTaF_?v|&Hh1U2 zi-pLvb!W)Gg-CF9=cMC>i12ggp~HpnjnMD+6~Z~eon7-p53&#@#qJE;P>35f?tJl! zLY!`M=T9pNar6mydVNrcA4j?KnRg1om)yB^b|Joa#hra;6yn3#?tE-YA?7Y}=T|Ql z;(yEBX*#M9qd#|N#jrv=w$YtS9xFuEHg{fZ(s}*l&ZO!>ME~l}t~sU$vkTGtyj~}@ z5ch7lb69*K&OCJIy6{3AvhbiuKq0o+d$7>65UbriIM=Zd?*w@8_dbP~8s$O%o`o2h zOTo3-au>jNG^I-ok3ovrI2M4VzQ0|NeKmM=)$=`VJ%)$cr?C@al+ya>I z^Wc-O72y1D9$fjq0_^+CgXhK-;HwMz`{)A9zvaQ9!wWFZ#FHNnDnLswPyXFpfOH2> zcFk>VEh#{cAWtsLDZszco;;jdfL+O+v>Q->}a~E_(9ZC;5oEt;c)^#NX5`~-PcNRBl8>i?yl6WvA2~5z#Hf6@r+D$HVfnb8 ztlQ*G z$HY8L*zV2f=se`?^=5H!9;|=!<`ADe960IC$u4<#=e#!;+U243rZ>N`%!A(}Z~oXV z4`(fW`1hS$thV>z{j0fn#@&Z~&*dUMz=vJ)fYXoWVsoMoYY*gNLY5DQ{g8`{5+6?5 znv3prK74CaF1EM(sIJJx%TN07o0Yl99qq%tALhb*f)7tD%*D=Ee0Xh6E~d@)VUO2x zk+aB${r;DW9?N{_KQ0$rKl5Sys9a3i;KQ6@xk%gU!>&2RolUveaL9*GSLI^#pFW&W zl#8gdK71`J7ZQ)cra$d| z$$|N}{&e~=2b-t%r~CFCJTtSu>hK%{Ea=aGwK+KUL4SsPnxj1G{tRE5BYkCmM!%bb zTSkAzzLkSdcK2ue>p5sX(4PaR=Ah5-{h2U62jBhEpNXS$@a$#%9G(N;JNh{&2b#sp zgytMfwf5z}>Kw#6`ZB&aM>!+DjLpu$oM2x@r{o|b)|U}+Ik=qSE1WF{@8$Y3z%K_y z<-Y9io`e4yeCgqkgJqBT(#bjp6(f9U*CPiHp7W*E{cNn5?)oMhw}0~G=C87`vN7+5FW;D(jpT>Eob*~YPWJTUv;WJ+D|UVyG%g!qZhovCm5rbM z{FpZ^8)G8;*fnQ5uqhkgX86&mDjV%Zel#!2M)w*&-ptf_wEFQ>Qa193`tj$OY@B<> zk48u~UK{7fRsD6`m;E^3H5)(9^yB~RvoT_UpYZE!SbylpM$>G3y2_8)ce7CVwI3s{ zW#O!$*EyGkS9bfcYrgf_BU!?ebo`&Q(DsiXH-4Xm`e^z~xg(v&@GvR|Q^zibh$2(bA66DWrv$K#8AyKX*^c!mu2Fu6iL0 z-OK#>#?x6?RPWD`L$eUu>CdjY+A;N6=p5ru`|>ROH^HCR^Rh5=x<3yf3x0F_xn^J% zHZJn#n~_;4UFOfH0<&=HGk+F)W#Rb^{tR}?g4I@kn%iVy@g9HvWuArTL;f@#W@7ts ze=fY0iP|&%9DOMhXRi9Q?B7g`y{G3L&xB@1)AVpA7WE0>v7a&#>KwqeJ2LT&PXJ&4 zHWP)R0UY#oCXU1fFnM(*hNcD3ZdoR7Xm~4tU30{nsxtA^@&JYvWh&nyfDbY= zF?myfcpshL_5d!9$;6zW0{B!&CR~3FU~2zNe0U;&R<4-{ITygAcA5C%dH|POW@6xj z0FLRFiEqsVnRzDzS+;@fb2S6IT>^RZOa@AP1G(%(1`dP;vTJ^M^8O4QMIg;~XP~7Z zko%Z{6P1Bnus#Ew&4FzHJOlp>4rI{s3_LzEkXIIG;LHnwT>o|khE56OgqayQ`&uA# zre)xXd4cRTLH}MH$o*sV_Z5MhHzEV4*95X*a0Ui{6G)Gi4E()4kX>`rmlkK>_^*L{ zJUatTC-pih8Tjp7AkW2Sp!!B2SA}L^|ARmd_su|2&me}mWniam5HHwgAl)^Ht9oT< z?n)4!G|f1bpSL?5 z<3|Ru{JV5qdm)Hc8`AZ@g1F=JbR2&zh!dBmqiS9d6PBc7_u?R4eLEc~D}wmR%yfLQ zM#r6&4&QHr=rSQ4^S1}-eW$~6ZxE-A&~bkaV#?rjTsjfNYt89sI~T;|)#=!OJ&0X% z;%&3jvBo@@+mqAbV;jupW79F)C72b}*ej1~zUC=GOP1eDYw9mzd8n4OXhUhWY>%O;?@PYA!L1U5K@u(l9z_X*+s3_!Eq z`C%e(DmH|9(Lio$2+s!rD{@0P%Nyub9>Q2>V0c3a58D7gb%yYToy@4&jnN(qOeHggBIjCzgir_>XDWwK{|^ZBK*$dOd%0 z8Z>jB8^21!@$W-ew<-dU*f}(m)7|y^XG680rQzvuq5RS+4LhcWGPir0 z@X=5ny_<^R^F#U6wN&u^Q1NQ1uwNOfMt z3=?jjikLxRT%M4M@gu?*6_tt|&xLVAU@B}Tg)!YL6?LzMakpbC-k%f3vOYSGMPWQ_ zmZ~|vVQhYog6BR9<6k#Y@a=lN?u8U|-x9_Pr&3VxLl~bvmV#La!+7IB3V!)Lj4%9< z0_T6jcyCJzS}yCnHm2bH|H5dpCPn$d;hel81%X!K?EZcVo^S}~)cGk`wbWf`};neL@OGCWdp$m=t`G8P0AaQgEdxoD&D7AhIT$_nY+h)^LukO2O(O;k;Ft zf(uWF^V!T4guEEeONl8M^1pCC8J&WquZQ#RpcI^(7tS{C6nHEN=MkqA^&{b|v`N9d zHR0T2o`U_G!kPUrS?hi{H{VP~_D|uAyO@j#hr_w*?__NFGhF;uGOnBn=YoUD2)-81 zK6{eUaZl&HH5u>ph~S-#$=KgJLi=?xdOAh$|=WLSL=!LdQfNM0Gif4q`0?5hY?IwfP_<_H>n zlJWhH2nL%cv5llIjgd_JOxa>d@ z%*-R%`-db%*+hyTPC}D&B>&iuglRsJ%>E(?UxY+*aiLQPpD(_c=)OZAalIz9=@IwEN?Itf2M8OhbD!R4h$MmHt_(;_*y zA_;?MMe=5T5@sxjWNms9KK~$+>jx&`;L1okMJD0)SCM=^APKJDM)I&n5>j_YGQM9D z+V@5BE$bvq`7M&yx+h`j$w-#nOT>?OSza=8q zCW;>W6EWC1iqG###8jUs9xxK|VMr9i)+OS**eJfdIuXZHqWI_1MBK}X;=p$k;anEQ zS#uK+S0BaGGZInW5yiAAi5T`|6z7di#I#XSyzq1)J{TXx%%O?+=H)2PZ%f24Gxhu0 zL|mF5#f(y&&j)&ZP9nTkM)7P)A_jgHCH+YvN;m8Hp^3`LiQ>uri5R~(im|SVnDeX7 z$1V{oPDJsrMIwx|Q4BOm#KCJi|Jw;TeJ_f;E+ybzk7zpnn*f_W(H#6o0{S~e^Q&JH z5bqt$Za*d3Fje@a@oO?ZXN9@tJ6@dMN?NUX13A(Fr*Fzi6foPr$9$qdD!d1oU`2ntK})V7Eli zt4t8S8O@f01O%^%=F)VX$EIkW8<>FfZPAR1OhD0((R?l-L4N;ee&dmVw&T%!}K`PqS(?GVE`CkA4HM+^`CIuMHk zV(74MAeKeOux95#tW1dEyl)5M^NbiCT00PH3-$L;2Vz52468mGh|SG0+J^?>yTLKs zH+vwqJ*DHnIuJXak741Yf!H-EhOaz7P;&`mxb3Nd_+d^A9}XUfJ&R(P)G`o1E{)-s zYW-Xt!_SNK`*krqo2kb!hQ3L9-tHJSN9#C0$MCHn9rtJqfAZ4noQh!&C%x{47^d{m zdEAWQC^Mbc!x(;Ye*o6@jOCx#2jFwtSoS+V04rT$S@_ogEbAZ3iAM%tNoXv;+CKmb z;$nGv*8t2;jioCGU`B2%OV$m*lrlYT^#HtBAImS74!|=Vu{^bC0ERvpONY4w&^9WT zIWq>JW_&EiOdcTKAePHs7=ZMdu{<<#0OIGzvd54C2!217F|7mO@kuP(YX-pf%UI4V z9)RxO#PXZ00l2j-mS>U%;LMLYZp;82Jrv9I-~rfkJeI?~2VnE*Sk8AEfYn!Gxuwql zymu#-=gkJ-b<;TZdk~LtR&h+b5sxPw;yC1dJnB8-_~u{n$PI|&h9mKai;Ux+`{Uu0 z5J&Uf@#viq$8g5uPC*>2*2UwW$~cZ)9gqD@aa_DKUV8XAZd(+OWh3HvdQLoMJr_r- z8Sxl9F^-Xw@&;AH{KFOFT?JjpNbkc${4u$9qNb z*!OK5-LvBH_0Bk^B*kOVzBqlK@tE{m9LEL4WAMp1F7%2=!8x6;V?4sI$MJCQc-Y>L zc@}2K8FdYf`Tbodb0)&^b}(2Av~y zuFyGC=MKFG>b*ekiF$9)d!*hg^q#5r4t)mHXCYoLp89N{&xrc0pwEo@?4Zw(`YfT( zl=^I;&zSnGq0gN9?4j>~`YxdFg!*ov?}+-Ypzn(Dh%UHi~IK-~+_Jwe?Y&^KS zS_G|0T7P1oHHuoRpf!tHyP!3UTFam{jau8FHI7>Apf!(L`=B+DS_`2yky;y}HIiB@ zp*53QJE1j{T1%ldm0DY&HI`ayp*5FUd!aR$T8p7InOd8nHJVzhp*5RYyP-9lTFap| zom$(WHJ)1Q)#oNqYd^FHPv`0{T1+-^Sdk3_KP3hlAfUJLEH)ZPp2!PH(1?a9>M4DHd>UJdQp)ZPv4 z;nZFZ?dj5=L}?CNBDL2;dp@=ILp1?Mekxn>@N>I&2)lN_iB|TCkR8vv46;xwUwH8!!QMDITgHg2@RFhG)8C0WD zwHj2jQMDUX!%?*yRMSzl9aQ5{wH{RSQMDgb15&jhR1;FQAygw$wIWnAQne#gLsGRQ zR8vy5B~)WlwI)<^Qne>kgHp99RFhJ*DO96UwJKDzQnf2o!&0>@RMS$mEmY%DwJuci zQnfEs15>pyR1;IRF;pW{wK7yQQ?)ZxLsPXhR8v#6HB@5@cZh&$ZmRZ%YH+F+hiY=F zHiv3-s#b?;cB*!VYIv%ahiZDNwufqbs@8{Ueya9|dH|{yfO-O|H-LHss#kz|2C8>} zdI+kQfO-n5w}5&Ks@H&e4yyNndJw7?fqD|EH-UN-s#k$}7OHnq-H=T6GEh%L^)||{ zNuhcjsOO=2AE*bSdLgJMqIx5!N1}QqsAr;jC#Z*_dMT)HVfqy&BZBQN0_~!%@8))YDPD9n|Ady&lx_QN17315&*p)Du#@A=D#M zy&}{zQoSS8L(=)*FsP@bdP}Isq~ps)@I^PsQ~2m_(85C{{Yun`C&p|BDNGoi2(2t%Q;6bMtHuoVbn zp|BPRbD^*o2!o-p7zmT0uo>0CX%toiVKx+YqkSli!g3%?hr)IsjEBN{Ak2rtejp5p z!h#@7h{A>-jEKUD1em2!*b#&wQCJd$DN)!GgfUTA6NEWY*b{_7QCJj&Nm1Aogi%pg z6@*z)*cF6fQCJp)X;Ih~gmF<=7le6H*cXI>QCJv+iBZ@XgppBL8HAZp*cpVOQCJ!_ z4FiR(K^Pl_wLzF0g}p%-9EHU}m>h-8VZ=O8SRI7fQP>@X;Zax~gy~V(9)$5xSfA8X zps+s(1EjD(Y}yA38x*f5srd83(usq@4j~MY!V)1&k-`=sjFG|`A5KnN!%g-ggFtr9+rHg{?yvJB77Fn7iIrpynuNP*^;K$y3-ogwa!2J%rg) z*gb^dQ&>KP>8sBTgfM;z>xVFZ)(!}SH~@+ZfH(n)8-O?hiYtIP1ByFQ=c#2HcC z5yT-;ToS}7QQQ*5F;QF-#5qyi6U0GLTolAfQQQ>7QBhnK#92|?6~tjtT$XgCSroSg zaa7Gt3|2z$h*Z;>0L!4C2Trt_#bK^!2(1wx!4#SKCn zA;lF!oFT;>LL4H+B|@Ac#VtY{BgHjBoFm0OLL4N;MM9h;#Z5vSCB;=joF&CwLL4T= zWkQ@L#ce_yC&hI_oF`oq{2&gL;zA)#l;TDqj#T`PAHxr@M@@0n z5NAzs*ARzIaoG^3O>x^0$4znF5a&&C-w+2*ap4drPI2Q9M^16&5NA$t=MaZZap@4J zPI2oH$4+tW5a&*D?+^!1aq$o*PjT}QM^AC}5NA(u_Yj9qarqFZPjUMY$4_zn5a-W# zhV+Lt0F)L0(gaZ207xT1X$2t70Hqy(Gz65E0MZmt+5$*pKxqvi%>ku7fHVk{76H;E zP}&4Yqd;jDAk6}$U4S$Ul$HU~G*H?GNaH|h9U#pE@9pt{G!T>)Li0p(DQyI#k)X5^ zkY<9?PCyz8N=pH0DkyCQq_Lp17LewG(q2Fs3`&auX)-8n2BguTv>K3RgVJt58V*X! zq5RfdPRR0sG#-@J1JZo(PNWZ{0im=YkS2uEhCmt-N-F|sMkwtFq#>cSB#@?r(w0CP z6H03WX-+8Z38X<0ujUPDQYdW-q*0-?Dv)M{(yl-n7D~$kX<8_43#4(Ov@Ve5h0?x2 z8W>6oBfn7|rHz3!GL%*Z(#%lW8AwAzX=xx$4W+GtG&Yph2GZP6+8aoNLuqj!O%A2a zfiyalRtM7TP}&_x!$WC#AWaXY?SV8tl-38*{BX}LFGvGKX@MY35Ty-*G(v1V;st4j z`073{NJB(vi6Bi8r7eOqMwHeF(i~CRBS?cpX^|jJ5~WRoG)k0K3DPW4+9gQCL}{5I zO%tVUf;3JX^OzT;dE$}=9lt4`(n3L+C|=L;f;3W;RtnNgQQ9d;Lq%z+AWapet%5XG zl-3H;Tv6I9NP|Ubu^>$rrOkpgT9j4`(ri)MEl9&fX}KUx7p3ijG+va}3(|biezPZ} z0i(2FkS0w1h$o~GqqJg>W{lE~K^ihjO9pAmC~X;}F{89*n!jE^Y0n@H8l^>pG-;GJ z4brGlS~WL7F^Dn+Iw1D6Jl(*`u_3kcN-a@h5Yh-zT0uxNNNEQl4I!l^gfxYewh+=7Qd&bu zb4Y0qAq^s>MT9holr|C4C{kKQNV6!*p$DX4q_m8XrjgP%LK;U(>j-Hc>2=Z_(m+yL zNJtY&X(J(xB&C&vG?SEe64FpoT1rS$Nogw~jU}bEgfy3w_7c)yQd&$%lSyeaA&n-b z)r2&gly(!+a8g=MNYhDaJ0XoHrS*g~pR~?&hcuv+78KHiQrb{RBT8vSAu2s+3k0(yUV2RY=21X;~pnE2V9P zG_I7^71F%&oe$k04J@UFl|G?}(#Ap>SxPGlX=W+ytk#DjN=plAYAJ0kq_L&6wvgtQ z(%wQETuO@zX>uuTE~L?=w7QUHm(uP+8eU4v3u$^OZ7-zprL?|~=9fE7-5?Dxr3HpG z!IU-_(g;&pVMsGfX@?;VF{LGjG{uy*7}6M1T4P9aOlglH4Kk%ghBV2PHd+4fVoIwF zX_hJNGNfUqw9JsEnbI~x8fQxD3~8Pz?K7l-rnJzICYsVlLmFvHD-CI;DeW|*p{BId zkfxf_Rzn(VN^1>it|{#`q`{`N*pMch(q=;%ZAz;RX|^ftHl*REwA_%Uo6>ee8gEML z4Qakt zlolP*q*K~-NTV(vybGjRr?l&khMm%~Lz;F<+YV{mDXlxkdX><|#|6^BQ(AaP6HjU5 zA&oqxm4`I*ly)A{&{JA^NK;Q~>miLjrL~7N_muV?(%@5CeEH2wC~ZEZ(WkWfkY-=_ zrZc4Br?mW#rk~RGLmGcd>kn!E`Q1ck$OAxm0U%ER9&P+kzo6GC}IAdd*; z6@fe>ly?O3kWgL{)fIZ)BS*+%LU~OvZc8cUJ%KzZ+;GAX@}yAS6v(4Oc~v0K3guma zJS>!#1@g2|-WJH?LU~;v&kL8ljQay zc;r?;$O9zbV?W3fM0tZCj}YY*f;>Z%cL?$jQC=d*Q$%@-AdeB{HG(`xl=leoAW>c< z$dg2QlOT^0Hp;9hMKgd%>d8;6g73H;pJXe(W3i4o4UM$FyMR~Izj~391EFB{}(qr7d9$Bpv3L7q3Z zSvx=;ILZqLdEzK<9ORLsymF9dj`Gey9y-cP2YKo!Zyn^Zqr7&I=Z^B;K^{EHiwAk~ zC~qF*(WAV2kY|tb?m-?t%F73N`Y3N7MAL3DdaJwyrz)nl=7ZJ9#qPU3K`%i zZz|+brM#+;XO;4|H}3wdZMFD>M$rM$I}$CmQiLY`a7dkcARDK9SM$)&uxkVlvD>O!7f%DW4BcquP0 zsAs^UI$O+Cm;+$_p%Cbrt0(g*?KPR~YgPQ{G|7Lri&zAx|;oErvYC zl-C&Y98=z7$b-!B&)GtrWXhY2ytXRJs|O)D$45&d7gPF z+!pdcQ(kDu6HR%er9Y{nywZ?on(|IV9%{-<4SA|5Z#Cqxro7gW=bG|fLmq6(iw$|Q zRoB}<9&O624SBXH?>6M&ro7ycr<+yp+Q|1GDdF>(3J>|WJJouCsAM)f=-h9nPs;0d9kY}Ir?n54a%F8c3QZ?o6hdln2*B|oy z^JropC;Nc3fXWhpG6kq?0VrdD${JAaR}Gat0A&ye zPwEY25>VL$P(}fjRRCocP}v1ghJo}uy`fA4D%$|cIH0l)pv(hKp3@u3K%lY^piBfR z8v)8lpt2I6%mgYs0m@LIvJ{|91u9zs%2=SX7NE=pDtiISV4$)XpiBmS8{AvSk1j-;1$3Ph}RF({s zDMMw;Kp8Vs)(n(6LuJoE88lQD4U|bkWz#?zHB?p&lvzV%*N7jklk?XS%Cw=fZJ>-B zD(eQyykY4QODF?}%EEy%aj0w@@oIHcRt}VzLuKbc89G#!js)FxRJIP3u|s9;V6#;{ zmAwOH@K9MiP$mzR%>!lhP+2`tW)GF!17-M7Sw2vv50&i$W&BWCKTzfm7u~dgGJvQo zASe?^I&ljqBZz9;q0AsEI|#}UqOydbOd%>;2+A0uvWB3{Au4+a${?b$h`_1!R5lTm zQAA}GL77EVc9G^F)KghTP^J-;Z3JZ;QCUY&<`L%L}m4yXmVo}*x_&8_ZNAjB16MYKBqmFjEaNswHNsDMq!$Of|-+)|jd07}Xv#)gYr< zWTu*ARGUoKpY)_!WqRMIC)F-9gBtdvT4tu2W>nkERO5_lotbK$vHY@>rW$Be3(Zs$ zjcTKrYNS!EG*itqs-0%4p{CE9r!>`6quOew8f#Q*%~W%ZYOm?}z9-dUGu33H+H9s8 zZB(nxRI`n0x0!0VQ7t!9O*g9TW~%WXL<_tqFQ&Rns=PoT+5g5MYZruHSwr6o~cG2)ygx~%%j?QrW$%wOV3nO zPoMuzq0hnhqFQ^VntN1x&s2ktYVnzB@=T_AWsn(*Y<|5TzRCm2M)nYW& zWTe`RrW%b@tI<@mk!m-ZYB*9YM^jBls_kg1@kq5EO*J36?N2S&zc=gqJZ>aG~UxnXL^Of6k{e~K_R0|er z!s>Ybf*P?@D;8?TQteo%AxpJnp{6X=mW3L#RBIM$&Qk4Js6k7$XrU%8)ux3SwN$GX zzIuJBb}iJfrCPR7)0S%6LXBIhbqh6b8NdH0)WD@$xKI<9YU4tUT&k4|HFK$UF4WM~ zb%j5nrY_aig&Mn5YZq$ns{8d5YVcAmUZ}}SwRxdNFV*UWn!QxJ7i#!YEnleVOSOHW z#xK?Sg_^%q`xj~eQ!QYq2~4$tp++#(3Wl1&R67`I2vaR#s3}afg`vhU)f$GH!&G}1 zY7kQ`VyH<>wTW@_dta(m3^j|Xb}_1@38GrY=#w#sY8xXudl2tt|Bmf>gVgc-hMR?h zs1`C(lnSES$S7YSh-xLHbG0D7Px}p?Izd!R87s^n`aIvD#xm7f#_Lu=RC^g&I|flL zW~j+bwVBbYZxC;1_y+%=AgbMrt*rdr!jbDL^!Lk(`K#SJyNsWvy%=%!lT zP_vtAcS8+ts^twey{Wc0)cB@a-%#_Lr|4mHnNBkB{>K&M*hP!pYMqeG2!s+A5k)2Vhk)KI5d>QGaiYO6zyb*i-vHP@;3 zI@Dm-?}v|2lbvd_LydN-)ebe=sdhWmaHm@CP}7}iyF-n4s`U;v-!F4{)v|}0_Eg&*YTQ$;d#HKOMhD(Q4ScGF4>j?rHa^tIr&{??Ghf%kzeg{B zf2ySqHT9{sKGfK!TKiCQpK9+z4SuS{4>kFzHb2zpr&|3`v!81BLk)kb49OaaOkfQ$jk8i33J${v6W z0?HzQOajU#fQ$mlDuB!a$}WHm1IjXhOasa`fQ$pmI)Kare*gRyG7u;W0WuLN8v!yB zC@TRn6DT_YG88CF0WuXRTLCf_C~E;S7btrHG8ia}0WujVn*lN!^!q~hA2fin8z94h zvK%1OfwCPS4~Ng0dhW6N0iKAR~gZA|Nw@vLhfvg0dtaQ-ZQ3AY+2E zCLnWyvL_&eg0d(elY+7-Aftk^Dj>6hvMV6Ng0d_i(}J=sAmf6vE+F%Q11rCV3=GP` zfJ_X^#(<0r%F2Mu49d=c3=PWCfJ_bT_bUV?8%S9jkhwwG8<4?4SsakbLD?LT(Lq@q zklCTvb6!D)2W5FcrUzwvK*k4UeL&_1<4?at&-w!?3j{JjC>sPaLMST)GD9dk1TsV@ zO9V1SC|d+FMks3pGDj$T1Tsh{iv%)BD4PT_N+_!YGD|4C1Tsu0%LFn_DBA=wPAKaH zGEX>a$P36op)3^0M4@aH$Vj2A6v#}W>=ejQp)3{1RH1AY$XKDQ706tn>=nphp)3~2 zWT9*p$Y`Og7RYR&>=wvyp)423bfIh)$atZw7s!0!o+Qs91BS9-AQMLKLp_6x7*+7sHL|H+Q8Kmnb9z%u@WeGv15M>KN#t>xD9DVW>?p{PqAV%Ml%i}Y$e5z6Daf3n>?z2gqAV)N zq@rvp$f%;MD#)y&>?+8x(yQtZAk&JntsvuyvaTTWiX*EXvA) z%q+^zf($Ln(t=DabtLXX#ujC5LFN`^Z$SnZWpP0!7fCb1sPwI^#z$YygK<>bi@6OM zag-H@g6D@&b{u5LQI;HJ%2Bo)WXw_49AwT>_8er;Q5GF!(or@Y3Va$uS#^+EN7;3d zVMkeZkZDKRc93yLS$B|m$HY#zAOnxG@E{Y9vhg4zkFxS0Gmk&N+=L80%F=^OJ<8UD zj6KTQgUmh3-h&K2`X=0jOg_rygN#1P>VwQa_GxqzGW;mZ4>J8I+Yd7SDC-Y0{}}b` z24nzI79eB-QZ^uD1X5NYWCl`pAY=$qmLOybQnnyu3{uu0WDZjHAY>3y79nI3QZ^xE z6jD|pWEN6(A!Ha*mLX&sQnn#v98%UHWFB&#_c~-CQWhd)B2qRYWF%5nB4j2~b|Pdb zQkEiQDpIy0WGqtFB4jR7_9A33QWhg*GEz1pWHeG%BV;yGb|YjsQkEkQq#8!qj*#(4 zS&xwU$dQ?^VO`E)lm!WykdzGx8Ik%w;VNWC>iWv7kReG~l8`A$*^-bkNm-NFS8tf+ z`6^^kQWhm-Qc^Z0WK>dCC1h4ob|qw3QkErTT2i(pWL#3#C1hT5{>m$mfk|1I`g?j9 zWn)4{CS_$pW+r84LWU+~X+owZWotslCS`3x<|butLIx*gaY801WphGCCuMa)W+!EL zLWU=0c|xWqWqU%#CuMy?<|iB0ybKwjlm!Zzpp*>?8KIOF3Ynpl9SRwulqCw8qLeKP z8KZjszXX}1lsyU=q?APpnWU6W3K^x8RSKDIDrKue#wum4Lgp%EuR;bZWwAmgD`m4n zMk{5tLS`#vw?c+1Ww|0t*Wr}y3K_4I^$MAte~3;gq!t znY)y|3mLqW#S59dl+6nny_D4pnZ1 zOxeYdVN6-ZkZDZW#*lGLS;vrhOxeefflOJ*kcmv$$dHjtS;>%@tjG0P$WWGpa27I^ zDO(vbmMLo)GM6cP88VnDiy1PRDVrHGnklOpGMg#888VzH%Nau#ji792$ato#XUKf! z*2|t|9Z9o6DYt3~b86hD>bA#)gb+%F2e! zY|74t3~kENhD>eNUG^7bY*W@YWNtIF^)JZarYvsA~6^L*85eb zAk&+&y&>b9vc4hno1ONZf(&rV0>|%mBPkmkGQue<95TZxI~+2^DN7tO#VK1HGR7%u z95Tl#dmJ*zDT^F3$tjy0GRi5d95Tx(yBspid1uN=$Ta7{$diz9&c%ICLgqQW%}(O` z{E?J}4w>kbjSd;6D!g8S0d!4w>rQm~a9z)+uWpGS?}49WvM{iyboADVrTK z+9|6YGTSM;9WvZ0%N;V^Dcc<~-YM%HGT&L|@^Q$3r!08Xc|DS{;UOcQvf?2#p0eX1 zL!PqaAyb~R99b5b5dREuB^d~+0C+Xl1p z)uSlaDVRTa6iK>kxphZzsdq4E#T>=j{=w|)J_`4cV3rS2hgz87} zHX@kg3g|;_u3)xFbrjS6!OZdY2>Ol*=IyITP$4>)s}3E(k14?%5qAWqVuD#^<`K-9 z6U_hIM=)?+YUKmKEv4l{Uuws8?2rJhhg54p!SAZxG2;uZp#Mv<+G~OPBFFJ%TuZn)3 z8p3&p4&r7^2%E$m#H2aee#}ACS{TA5?t^%=G=wb%9z@Kl5PoWP5Jp@GmsUTBXPZLU zvcN&i+8)9WDfRt5Azb|C0G`Hc{8tZP#-R|t;Q`b+7Q#8}4&eSNZ8zosqR)l!k?Q~| z{S(5;0}kNw)eu%`bpW1QA-r1c01Dp^p*Q~l9DN+ZA}J4G*ozPzd!2xEZ$mizN&+^2 z2%)46wEq&qEo&3-{znKq&Pc$lq@n!iOhENip^WXHfJ=XbvS!N!*fNFkYSjc}%^pgJ zKCHPlcc{AI320j&l)GQW<7JUhecnGF6H4m-2jWqzTqtL*iO0c8p{z7L9zCju@{A)M zA8Lnkc)xf|HA0!PMLbIW8Omi<$jFq9LjW;_9JhP zP_9bYkF9+|X{_FlCIhtG)cv?VB$T1{{RkPU^#$!m((q6&Znht@B0^cM@_zlE3gut9 z_hXMQltD@NqxtAietNzS*T#o((%<_qY;q_I#_z+I>7m@dav#Re4rS9R`;dKpD6dEC z!-~bB4DPcJl~#oESCf5+UlYn175AaphENvCwGV%9(fxk!MW3CaZ1ij|p6(6hKNt4G zav+og_U*;D#8AFlz89m9hcar?Ui@)7lo@S%5pzD2i+b%v?n|L8+juXQT+=+3--}|m zwVoV%vF?5-&;Q(m@=rq9>&YH$eG$qh=k}o5+fat@*@N95Liv5^9@PF4%CXUVu>XhF zYuSUkNy9j|#~#F|3}c}`_4OZNTw7K@<u^*|dDNFz)`o8@qFb(Rj2Q)$@n($eG>P zS~!d?cI`%m5@9^IcsJIS31g@6yHUJinBKqHjU`pX*t^?q7q1xuSS^;>u0S%)yb+P({YyM{4j;V%5sGmNjt>_YP( zeI2|D2?O=>&bv@~n3gwoVP$ZbUa#1N9F{N+&A1B_BE$Ijzn%Ev3gdvgJ2BiJ#ycl= z;`-O7;c0}I| zW2wX2@$z99=da(6w$H+te%5wueHBK(XFIaK3**~?+hO|@#(u50kKUZ}nu)qjPt zVS(+Kl`NcFQ*PJme+psxPIDa18hIHA(Idbhb49y+RYty&kNd9m( zac)DQBH`TLZyVet!dbAzHe4zb&Pi3ap+d!Qe#)~ANO9iWy)5>v<}zfVXOX*4`;(ZTT!=5IOCdV`5xiSTyZPz z_X(#X=T=l75YF4bwqX2_a5j3n1y@IebKUtZC><8g412f0WecZu*%q91g!4-D7UcGZ zv#w;6>=ykU8O~!_w_ssRI7@!tjHj{TobYfnsxAoU zv(ua5T@ua~J2&I_3TnrA&e0_| z!=4b%yBRkl;ZQj1f8K+{;1aPDF_H_qFHELXyrdekO# zzM=gZz6r5+!kN%v6Rti8XO6m?kn3qU!-{S~_m|;3@y902eH+fgA2#C3hj2P?ZbbGk z;XHq2BRc*FXQ_=FF+GWezS$dbCWVEUyc>}wt%YR=Z$#q^76#gEL?Da4Ut=To<*?{| ztZeI8gWl}od(MtEl{FMV4DUw13hK3s)~y{*LQReFESO6!hQST@MYH49f^ z!!Rqak6DFX!B(aZUWJ3ZFv2xC)mH0SA`xmsB-)H5dwJVVHfR($ZufXp^ zR^D^0z>lL={?Ts*zMizQdh-?dbVkcpUV(ovSUDm03cS2z<<=xC@c5dQ*PboMom*BW zxwu^a*IQY7-*Q}dWM#YM%W?9VRqrP)2VYsa$g&)}|F!aPkLB3-(aL8Hmt*-CD>IZ` zjyXT9teSN>CMU76+qY%#r?AoUU>PiFY+Ul!G7L&@#fIVibtAaaHJIe4A(E{;rF0b&-wdu^2m-+4!*JVoYCU^^r9;^H;_z#@#IjozV)(EW&w zQ`;><#S_~9T8oh4w2fN|EyDG4HZt`hZ2nu@d%F;$uV`MbE=1QGnqMwN={q+5T)Pn8 z@7tJe#zLHVY-1khLM(Z1W2t@%5&GJu^J*dR&c=q77b3$a8{6bwh+AK5?2%+4*8i|^ z@UsPQCW&D9g#~DmB7&a13y?KU1jjF1fZORJI3s!i;xa{WLHGjLvPE!J_XRL=MQ~Gt z1xTGQg1bvEz=eVlJeYX_<`s?L@h|hyuVe(z-J6e6Wg~d`%C)s1w0A!{#HI5y6k`=i^v|2!5?SAJL5?_^a@Iv}zu~WNGIkL+c2pdN&W} z+C}h>>+>+ZQv@?4&O^Iy5zHJn4;gz!Fl)>_ob4OI?5=s3JRpKO`_Ds*ArZ{gVjfbB zh+yt2^Kc|2f_d`HL%^cjr1MZWQn%0N;*(Ri7w2M&SIh02i{Vka-}1RAIyQniCeFo; z2@%X@nTwf|BbcSfT(p=T!Hf;(BFU@>rYkcSyXQnOO_sSBxgdfmzRp46B@s+=e-17$ zkKm7!a}d2cLVb%ls23N(_w(l9&Bh46ikgFETO;^n*c^1&8Nqw)=OEeM2wtx}2ixN# z_;=ws7{CagPBRBtjzsXtzp;wsL@@qZEJFT@;EqGF$a^k=>(|BN#Kj0MpAie&)&wZYSaoHltyR%R#S0uNbn1vI0Be`VDEDS3c$!T+EA$8G6`U11CrbHx1 z4xNQ2Wg^+5-7GvTAIWC5W+AF_Bx@9!g#y(hSv2)5?5h>YOmAnRb3JYM%1pdPB%dCf ziHUzk@}D&`QLL%9H*F>oT10ZaeI~lJiRA3QGx558Bm+%n>i@M!4zD;9`MO84W6qh_ z)+>_rf5o6#P$Ww{iNUP_k<4%|2H`^@bv<4TQjE}e7RO+2NF zv%18fjWd!iBL;Uok?dC@24R6nHpvi!U!x;g?$ZoR9UsZew`U;#B(3l046L6T$?F?u zpjJ$zdhj!Fbate=YBSJ&UL?m3nt_`OBRRD73=CNs$(Ge;;N6Nymd`%}o;8uom|_M} ztdHcsFQ;S5rbu4=XF9TPivWiBBf06@G#tJV$;l6 z+EncL7Rf7zrlR66od@ftA}*<&(KDu^Xi7W#JEvk%8awOsn~Ln|?ab1ADyC$z^LeGI zNRiFXL%F8Hozu>_zo+0`9y>#xPQj1@b~ZjgMc0MdnRm|=v@dSw+a*(Qq?Db<#!o@5 za&|5Vor1WEc7}GHf_zo&{1a0!wT7KJOHRSB+IGIkFa@FY?L6>lGVYjm&bU1pZ5r7* z@YrO;H?_0IrpYMN($3VelQFlAo!7jRk-USQ>jzCnSZ6!kttaDVH#=KZpNyux?97*c zGPd@$^JVhM$UDH!_?MF~X0V-;{+WbV!|d!4KM9?K?JTu&65_+`{4{A2irVZvVx5F& zyPYvTC*h6D&c1(6LMNY{<;qUNo+!KC2cCp{W9>Zpbt3!|w4e7U;{GH%dnsboXqufR zw@t*V7(3t1n~0RLb|yqk#Nc^$z27ns#}?YzzWqcLUutKb+7mHmg`E!zO~k#`c5X~P z5s0%h;%zh*Y_zlf)o6U)VrL3QqvH-c&#Z~o^(uDGnih@J`|a#$k4FCkb{6Ryjs1u0 zeA*-$*^b(|sX{bHp0LxJBN~VQva|Nj3CMHK&YzDa=sF=g6VFV*(M#H&o%;SYJ6kN8 zfY6(EW*9pGiFfS0FmeKNJkWMJO~BB{c6O~d0sEfWnY-8oqF){>(X(!P}sq9 zlEqyn=%)F%A{0IOxtW4%X@p*7!6QyK6c4_SRT@ zt?S_WqhnDY4i4Hl7XF3~7MML2Z0z6_&sZdB?%?!+W6_|MgUwrwMWC&NNve&-!43}Y z%{vx9J3APjY%J<_cd+z}F>v|nBqV=!cx?iW4= z%SJjF(tQkWggRKX!5Cz-I(W6z7_^FXa7v~z7~^!X!ROJ~?{VhyI@!jq)?KzUrgVH`bvJ{byP3Y#}L*uy#sw>CSNrspW6 z-R|J-hNDnpmxF`Lj6(mt4ra?T3RB~?{V!42bI`%idr`QbsN;4r3h9nHcw$Qws-JW) zVr~?ApLVctAPQs7Ie2DB6gFIR(9t#u7cXi2HKXwPs)J_>L?Qo82c0RS(D06fjc)`n z_`ZYl;sS_%Cwr&&VqYOASKajBVo@hwuJ_^V;E3(@U-C!f{V_ZK;t zJADLZF4g|uv>|4NlM(A}n7-P{7Bo5K-by`!{d8S zZeJIMD-WIg#}S4TPc-hPVc7Fr=Sj{mta+vRejJL}w@!B48HzFQoeUon3d<+WSI1EF z{o>??BB5yc-N_UGhM?vzCm%8dMUuMsds+z6r*JWE-w^zl%B5~y2=1nJvF(pwoJ{ZH z(9^-#n#sk$f?&+c>f+qt!3gAVaZBxB49@N1vDCq6mCwanS4N_8K^Nbx9*G=9Tuc=? z5?_nCn6L3j+$!nP>$)SsGA{o4U<8(zcd0uw0%Iy^{ZS(@sH%&ub|cWZhKrL5jzIC+ zE-rjM9LejsxFKOU9vCj}pFA9g8n}3>=Wr};?hT&-km-+z1kl5M9qA7-9K{pr6|1%V}o-Wp0F%+%(xM*62qG&%Cn>QGW zuLE3cpJ^!04|cKpogr8~%*CKhL*O3i;t=l;v<-DJxYZC8wYX@>I|QF>F4~_D#!0)2 z?!AMtz~!QU!eET_x;U!qVAKz|IJU%Kq#y0#_>Y5dYpjbCjts(v2`)y@90b=S7bo@~ zgl1E9TX_(&&(QaO55)bMTJGFHY>IVp+~R?7&U0~0@IW+L=wej8fyl7LMeiR2adnxC z&g%oPY^944>jq%h8W+PH15i26#o)95Kjb~^V!^5XaO*Cv!LAZV1#RqePu;_0WFAWJo&&w_zuMvdY*Ie9_A_$jnxVY}0zKFT) z;=C1o(dM4UXX%SH4>f-c`r`0o7YAqR3-2=*JKgDnnlD{!u&EE;ymqmIw-46*tMju} zAN2j;V#>UIkmEm{XU}@$^cS6XdwOHkcWrNcZ=KgJZtc<=FOs-9zj$vfN$%#T553Sa zm760D_d<%aZgz<2h281gtlh5{hGlfKP^DhTlf})Hzk2GrST|ps=?Pa(H_tEZiPCx8 z+&Q8ruHDZphq14N-y-K-SS1@ZmdOjW-NdJJ^))*oH)d9a(? zu6M@lVQ!9J*BO;Zy4lmw8D~P=tk|?OhK9SDG)HG7v$=WcVJ9q#baT!2PN?B@(>baW z&bi%e(Y_Og_}t7}s1tq#G>@-4B6hT!`x82%+&H&hm+gqe3EGdI9np1?n3)DEgP?p=TScJLBfiGHp=dyql%Jw8plJZazES8r3hkxh}Rf_FU1=2en4s z>;E55Yb4y%{gbwaamURS7h2)KJvW1vwu14{&HSPI`mvkW>bFAuXKv0;*9!YzXq-1% zqSk9S|A=deoo{tsIa;F1dpG?}TVm5kjW0(_l>Y4IzYkkr#aE4gdkf_M;b#9)EimVo zo4MP!K*ppVo-fz}{+@wu4M8s z;;m*cQ zFrvDL{j)W}m6{%Ac+eOP>Ug+sYh!Gv=i%T$V`PVincFsouYrgA^EbwmKRq1uvJu)g z(f;mlgk8-%+!Ngh`C57y)U6RlwbuGeHp0`k9&Y*gCt7vzu&@H%FCsjAamPdxhldk4nONrX zu#DHlH;;!WTAJwO*ZuRD*cjzuif2HIF&-}84fGnPH~q%}+b3wgI{|4Xd1x;R^qt~i z)^`SWO!IIP4Wy3o$a^=?YnF!(dK=gr>!G)tfu!?1%<-*0IxX;U^U3;HwaCM!bL->N z5)bbTu8$_mwZ7{05xY|JoxDCCt=4>8tcR-WJgl><9-`Lkya}y`vl}(fMm^-+;^EhH z^)O_chf{CV#kL(D7Ky8iAG>t?9CgujuZPW=*2VPw+TZMTaV^2a;D>ckm>&MxRtLip zJ)9m@2V0JKSh!ss{CCX5tp)0!-boJ|ysC{+e`$OBYvb4%5BpB6jkM=IeATTs+FbO| zU9vW2{G<8(R11G!_AvHHEo8r@<1n)py4=wC`qe`0Ef4Efs)fsUJUsTZCbHl6u>F~u z==4y>Z$VAWc&zhicukyp>fzg3HIeRxht5*1(td z9?ok}164kGSSV8sjQFg_$?fV``PIYn8>{PcY#wfRS4Y-gI!{_uM~ft0CgiG)Kr$~I zJgJ7ADZD(ovl^bK^0N7uYABf2%hMgIp+h<^+Z3*bu^GHP|E4PTWb(4ZfvR|x#mj#t zS4H0JUUu$T6)kgmd8u?&xO404&sDHKuf9H31=sU?*=cqaq%P#;-vg?kdJ!+%SE+*j z#k@TCyE3Mg@Ur!}%Gg)R%TtRg<8c|UJkiR?RNl+Obt|?B&Ga&Zw<6{?^m1Iw ziimII<&WGIai@uwwx<=4w7Hirc2z*JmR|NBTLFz*dwHc}1q^Ph{VGxczB`|8Sms5_Fz@(*G zZdM7*TJB}H0VS|-rOva;C9q<(mxX^9N8DO3$DS>YEpc8xU057DH+b1N5<{+F>B{)+dq>+PcW z>wxBELs6WfmpR-;aWc`%h~`Cc{D{uGoJDc;n3t6w7r~(uUVV+&i%_7F_l+Tld14dDY91l7%txx|b(E z7DCibulnSLV8899C#DdB?`qzI3ZegfFUwafgf0(t-u))(RqVw@aek}N=tW z(vQp3lOD|6y|O&{x9bK+8MjkiHgY^>|!>5Mrsw!XG^ zI|q8f$L=@U~$L-s*qelykFDg6A zxAL)GyX^SY+NW+ocARhPW8%wfSk~Uh6#KKm($U9e(b>?jvyT(IW<%z#n$P0daHpG( z=|5z}#vVSlNzAHTfsfOsXGPOKKA!8771@G(%ve4v?)3Aq?YAt58{p&AlUZOJak4cwgM)5G8E~d+j7vVm7>So4P ztB-rqWJW}UkMFN!LLIx06<24%4~LJ#ZJBhPq>rl_X2NKXk9RUuz&eQVg@MNivJ-_{dh0FgxKYyUzN-a0%550e_@eTR| zyVv+wyxJcaw$8^cN&i6J^_r*iX>n$Q=3#MKcsKdfIZ2E1TQttPX>n_-kImDh#iZ>% zI_?WU`8Z_AFlfRw@FZcV{|8{E3N${yhof-`f`k3HK zjhFQCd9&1*o#0T~Z?R-##8LmJ-|l@$u!m6zF`}$Lxnv;L{a7 zE~cf>_1HcR?wtZPZ)iTsrofe(KJNUI9Fezuym>r1vfcGDS!{A_yQlMdU~;s5;M414 z$?@W$kCDHVVfM8DSga49JY zzxC0+A}RL%tNja4igxccek8@?4?f;apA?=?IuCCqLFUgo4sl7a`isWpNP^nmd>q;& z3C?`?F*;ik^!=&z9rR>U&x^r7jrM8$%$WA4aVM>xtycdqMyB&~Lc<@%=k$Iax&7T3lhMy#uJ1;s%zoC% z`Q4bG#ZTMzZ$|NKer|00&DfOP&&Mym8Z~qJSzy9f<6tgrr`T7cX&yf(^NVpdub+o| zeK9)a_w)1T&&KrvewLs8+2~uy&;FG^8xITn8GGhGV`x!7PY(Ofcu~wR&*(oRq=cUp zmVYwdmh>~o_+(g0`}O+QN8^1NKMzHIG_2+P{5OlfF7Icd%^wU)ML*lN{9wGT-l;0#9O1O;pgvxZ;gZSvviWTM$HC(wp;YZ*woNZd+j$yu||F_zVzCd-&pe$ z{@TdY)X!(>UmIhZ`I#Z^mGQZ`pH-T?GDf!av&;RL#+_DvI(;vV_HF!Jkmse5*w)X4 zT`!EP?ftyd;f1lXgXa15b0cdfjc3wxV{~UfQS!O*Zx=uN9DZi>?WS?{eP*2QuKRy` zYSixOm!tgDSk+6%x$09Rb05vexhICFub=5hJ~18#`B^IU6QgZ^KmT0$*w{0`&)()^ zqwpZ@|IJ56^k6@yJ02NthxoZR+asgPFh9BFp%Fh^^VRC1QDmf_ub)0J#s&MCeCz|` zMTnny3O_K~glYZ~?i*Xf{cP0zzLC}HXSa{{j0l^bBWBz)E=Tz3D}T?ZVb}3GdDn<_ z__<=xUE`zE&mBqb8lBvJ9$j?D*yhoG*S=$9^!fSd(rsg;->=Wt+%`@GbeuBWHj0h% z>;3y%hJUo51)JP5u8r}t-2IzI)p35-^4&BhkJt9|+%z6e&~e#y!>BjW&z>D_7&9mN zIq3CuNBVrKd|FZQbOXqKN# zt6Vi|#`?MX>=h$=j-MNbUoo!F_3L`ZD@K|5e(qX+*>ElJbDwe9IJMBv1J^GZxfcKb ze7s}~UZV3L%OzvSQa_Jv`o~DJ+|Ls&{xMpw(0Tp%Z)5IC-H!U(c(6*h1^zZFtkLbh zi-vuzmg{oSIJC~s$JgmKO=LTHhv}e8NBT;!#L>YfHr>_9{Sn+`6*-XAwS!UJ7s)I z)Ol3olu_k~pEVDhG(wL0S+>VXW8E=5?mwL{9v;{6iaBBAKdIwa;e^rUl%F3@9yg}_ zrRRr1$BpBsbzUVoZu~r>aV|P$R6pnE?%KzU5$F9}bLptD?1G*L!jBr4F6!}^{-}}m zA3rVYju`bX>G9wAh!J+#&(`-28!N8pdB}U%xOCOe61fi>DX(k0I}?o>H~jq3F3}i# z)6XX_4;ity^!zsAka6U;U+&5wT&a6pAq#=&uhMY#;W&z-p;enIPt;H zgS++`&p+zC>#)~I_n)7E*L#fepEcfzdyF<;^!P8a#|ZhV`AytyO!=nq_1IF?<@f8A(Y&Jkd_*p0@coB{r-ywUiOE5M6qHW*3s1h{J01|w76 z0PQI@82R&Qf0nH`O6LzSPyO{q^#TFDxEg1e1q0k~i!)jj3UE@UIHObH0DEp&XY?)- zV3}s?jKM_%{PJL}5mGF`6aKYEWO0o%?^?rCBEW&W*BGNq23Wb{8e>AK0Drz-ZA>X0 zkW0AQm{CT{l~`@eE*oI~#8t-Jasig_v&vXdKETgkRvL>c1bBG%N@H=w0H;*eZKVLa zoLONksT^RTVJnQqRRVmLe1);7YJgjpE;klb3(#3_xiPnTfDNuLGiKKa=yjlFMoi5B z&u3g_OsS>qtzT+H*AD3O$4iaTbu{k}mKff;0Y3FDF(T^)xG~QXBeZ^i;kyw9C3Djl?cxnhlc z9Ru98W44j9Q-GFsvyC^pE&pVnOvBba zzzd&Zj2=C7d}Cq^^bD|3g&3n~uK>TFoMEKu9pKJEGmPiD4Nfw{IMXMRIB=^3k32xcB|MoO#;S^<5ACdHH*k z?Z1DM{AW+Uy8i2zy-9xmGw5}e-Xy>Jne;k7@<#co&$_x^-uOoOd_?tf@dmm0Y^uLM z_Xhc&DHGfqqi<^LzIm+j|VUElr0*UOXVUeWw%Lsp+h?d8peynQ#-`#nScZ_3^S zuap1k`B&H9yyJE9`^Q)GcdK73-}i#6>xaJMwen+Lcy;}6z1Pa?FS@#ZkNX<=N0c`| z_ciioUVL>OfUl9Qd#x%0&9VHv`>DJi zhvl;?`Z>RLB?EkQ{pIqN{8`HVo9>t2`pT>8`(N`4`AM&$_W7}w%k5WRU9bP!ee$;{ zU%Y>x{K22Qy8iT?_sZkfTwRxbyusfRyT z_9-9xis#7h_{FR1xBdQI^3A_=b^XuC&mTWk-h21e^;3UvyZjZ(ck;K(um3eF*QY*3KC`c` z^KZXR{wC#(UwE?o)?dH6er@E*^2KjlT@&e6`8$;V@uDZmzx1A~>+T0N`SLgE`+WV0 z@^>hIz4}D?7v6hy?Ws?Yhwr<(&KQrEzd=cVc}RZ4`>(EF_V2gI-6?Hv4{njaO!@Vv z-z>l41N6SX>#_3MZ&ADdqAEW?`SOG+-}OPNPY-&Goc_?&^*>B*l0QtDpFLWB>~B*$ z`^OvQA5y-kb))=?zeDx$@sE;EK1}ubO^=lSiZbx28{`+vX#4qNMb3VN>f^B@|2E|t zpZy5=k-tmz(SEr6ZOU(c`C;;_e(&m<$v#YO{yw#*hd)&QBg$vJ;vw>5|A5-(?>|`n zF6E#6(}Uz!{~?v%`h(>9AJOZ&70JI#dG^*z`Gz@_qjMpDjq-Irk>z_nO0Vx!mJ@$` zb^WF1N%FfX|LZr0^6{Tgx&Q6C{AtQZ6wc)*evIn(BM0(#DBt=@QNH*8&~|8kCMQ2m z`=x(5mETGEU)!hh-Zj;S+xzlIDIfI9J^2xY_79&wk^h?VHK7yvj!#@&zwi85{%6Vu zUeJ|a_DQNIQ$Y^@>D6`2Ka$@9h1a z_iW35OL_l?w&dIY?CSa*-`JFW%HOSR%6EK@+R0-#(0St0|v0D#|O$dw#7TKle*izyEJu_9@?<&day_Uuwq>&B>ppoZrXDXJ4l8_q$nn zO6h$kBUe2tUoIoRp7P(Hn3h+Rk+-DeXZ_99b>V@e{3Xh@|4zsc{>s($Q7<8Xm{NL9 zT&{nW%I!Cx{5r}f{7p>$A?2M+Oup@JX}kQ0sQdusz4u4tqrao~^$)_bMQMI7B!j=F z_PG&~pGEoJTZ8f!C_ntxfZY4q)%8amAisn1H9z@@^gonuf8PH{clvbv^VR>79-#c= z8-6V9{sZkF|L8xYH&T9OYbAZ3@;kry@6t_Qr{j;nkE9P%M#ujuWxqi`|KI;Wx|@=_ zaVh;dW#^CoS=#?5ZO8cUO9tgb-u6$@w!xo> zH-DSj<;T7ueTeejy{}7=f24Y5`O;G;jp)~;KcIZei~mkaFKGYr^{+}#qkM<@73rgt z@BX+aWxqrF+s>Dzr&GS~SH2|8DL(-JT1tNR>iUB(`77ym%HRH`D}99W!#Dqh6#OST zjv;?8-SSf&eqQ>`pYmOQCjHw_nfR>qknhoYlg~)MK>6F>{`O=q*1=$Mg_|>nGZlwI-^3@Wi{MzlWl75f!^Pk7kw<%wE&;1g+qT{s3-X}eh za`Rv!-ADOf@E++ylwbVj3#6}7{ua4gO8y7!SKsvE|dv{|ZU^Ey`bc(m?tG<*0uu{gASsJCVx& zb#)#5{*g4G{DRYwo=o{Gzqu>Dg7O)7TY5L8aNCCTampW`anj#Ye!9?<{+seG|5BCe z|4r}r=gQK6a{c`U>4}uzeHA0Ui1PPtPfKs1yze|AeUS1Y<(TvUW#We+$*26wKL^r( zQVO^Hcv$!!+Ab%4G~B1W;gkP7dGC8-AB^?eq_a|4ljl{)dN|pHR8H_XEQ=gUSCzozuh6T`1ke&&`R zpZ^2pUv$5I{*RPj%6|6zdz63s{STl2fb#2~d)xVse!Bmb`_5OCf0Mo8{Ku5v_+0t? zzbU_x{p{c;lwZx>FaQ8wLjV{CfFKJ%o&zAv15gwIh>8G|5dcsDfK>rVXaLl708%3W z8e;%5698J6?l%BpOn`zGKzSRW@D!lp44~*7pfUjnIsmaQKnV|^nh#KF0Z?NJP-X>C z3j_d!0n9J~9ApDH&joOp58$E@z)>-P%P4@M62Pn)zzHpYYkB~uMgiOy2XJN*z%3j= z&jp@|3y_*0AgM)wG?oF9Sp`T71nK(+ zL5>N65E}#qE(jug5R`-1Z^K|v5#f}pAfK~f8Xx*i1SQ4lo8L6DsUK^q4#G=eB+ z22scgqJkYnk!cW>W76x0*w&KnIRIg zLZo1aNMsr!rCEr?<{?rcArf~&r0Rx9(hHHgA0p{Rh%}cWl3j&J8-xJ^!;oRZAjgJb zo}*@CbTfD>0y`}g<)eHhM7qiws07*Mp$9YFsNE#C2!NZ z)38#Ug_Y<$tdvPuflgRq-LR7I!b;5#E2%|TX)MD^W))UiAc7beF&HL-a%{xNa}kB% zBSuk(7*R1|lu^WhO2lB*h>_4DMoo_xsZqpej3Y*75;0mhf> zIK^4SiOwTVnM54uL>$(QI0-M})clB(T11@2GU8-b5vK*Bn1NB4W1=|6Mqz=A8VnzW zB_Rr9ViZPD5M7gg$hR7o$QN^==iva6`l1~J0Gn2}>*B*(^#0vB@_K4z4J zm=P0WMg_%;xDqp}YRpJ#F{7@>jPxjGG{-R`JBb->93!j|b8=>kRIQj(uwxE8jX9-R z%!$ooPKCsrxD#`#Zp=w~F{kdwob)2*G?y_ayNWq&NN+s@5o95g=OD=OkSPif=S0Yq z709qEWD*)=YC2?6BgizykjYFS)4~uW45%_D1W603c^ksS6spA;gvmKn%Y+{1K$Uf& zn(&}n^P!qrK((=iYGwu17L1z=6UT8jZsxf-sPb{MD8zA9jGJW?2T3JvvTEE+XmPWq z$Ia9zZZ^hoGc$>sEgVM)BknS093`!|o44aiVj6dgv$&F+$K5iCs|hFWvToc>cyYJp z$KBK-?lzWjH?xYnEtp_(Y=S9p36$d#Oi4(PoS0xLN`k4X2_~r}n7W=|(xU{^94DCU zB*C|u?&*}1vbUzxfIOvDYhu2 zU_nf=Wt3v_N{VIG6jRVrY)z+iMk%&2PO+Iuif!Q(s2M4ZF;k#!rL?@Ag0*Q%E6!4| zK2K?7l45F3N@Lv=Q}o`R%Vj6S~!hrM%rV{G^$%^FK?%n+BEGIXKAHA zPkUvOR%=e$W8Jh`_tIX?PiwVB+G{M+US^f{S|Ee-FvI4U3@)%4w!meKJfC4pLdGbF z8McBlW?sp#RW)N4v3Ro$#x_p)By&w8~*)@v?ld6o6rkm0B?BZg(TJkM}NfiW17;mU{sIfda^ zl|ea;;c7Yq^CO09j2R<8VYn7%K;EF+Oa|pGM$g;y_$i|oXS6(L^fF;U!C`dPWl+Im z^qSAG`30jlmW-8OF?tK;xIB}i?RU=3b2-TJIlCz23|7q9WhG~`TF$QNIanLz?8Z1} z)FwH*MSHxwkz?~_PR(06KX2z)cAE2xvz*1wbAFlRn1Yk@SvRK^yqsV2b8Kyq^Bc>Y zRa@o!7RUn@<{``E5zFSe0+;7lKF^heyv~Ywu7dKQs^qzwsy)?_~wRv8zkUXe6dA;i9QQgbyb)TMNk=L6`T3+S# zHYhMGEU+w7P+7KM7r27L@&&sj6dYD8*cDV@s!GAGss**G73{iRP->%s-5eL3+N5B& zae=8B1-51u)S6ZB=@~S3TJTG=g2&DaeuWg6x>NA0Zh`80!LR!Tt+pum&1J!>tqOh{ z7P%r*1SPgeuek_IVv#Q+x~>#?RxL6mt;pAOx^GnE8{;BdniTmKE`o+pW65HWtNEV_9UItKz5yOI(R5p%PotX^Cg~ z65kL?N=YnD%Svg=YNcsSFY&ceY1$am@}x9v;Sy>XCB0#mP}3^uO}nHtrlnD1R#KYt z(xOaCYQrflShu7$z0#uQm$b&Bv}i0#T60xev_Kg&U>P=;GHS48rNNcC24AM{Th<$5 znXjNSXewpCs+LhxEAw@|%r!@4zBw-I%}JSW<1%g-WxHXPanmZ>O}lI~rsZj4RyLaR z@~A?}X2U6us&3hAdgW2wFI$a8dDL8%t>&scYJ&>XfEBjERMZAr(HdN3#PXFjYVbATvoj1sFbiuY3+fiDS8bN+Fw56wELWeidXunB&7pN&mZ^K}xaQO27wovPWVPCg9k*bW ztFl$S##does2WwVYBZH9SJ$eunqGzVQFYcBSB?6lI&0x7su@+KW>!(%s_J!{9yhJB z%^5Avt5%a#)tXb)YHpS4Yjs)kt89HyT{f0gtG=o(TVie8&}u?`R1=!x8e5;#gtl2D zHLK>-W;MSyuPx{rt~)iO?$$`%tBvb^&8{zM<0d^@eN`K``MS~+>rPXt>vgR@tB>ll z=D66u`y~W4ZWc?#*Ils zY~coI84a#wHbC2IaBaH*Thj*Lnl)g1-r(D$!L*!)&~h70+iM7IzrnT^^tfe%ZLb=W z7Ho1&wkb5l=Cr9a^`_PwH%CprJ!#HcxQSXuQ*W6~)V7*>+iohYX>-(?HI??fIck%p z+H#uXmfKX@UUS^`n_6qpoV1ort-WflTCl~n*p|>zT6#-sja!qJ*fv^ri;jTWR?BYB zT1I=`nzjjDcWBvdnQgB%Yx{KHf^J{7toEukX~Q-;L6?5pYg1WKUyuO^u+*pH00un3K>-jT0_x2G5KsUJsQ?8ufI>RJff2x= zF(82nAR$bTH2@5nw2lRopiRqDU<7Bt0dwF434j3yz>o`+fCrS24~)P97@;L_0xRHz zV1NlS0Tf^ZYLE+n5FapuLO=1ZfE%JdV9*G#K{G&o zuz(h{14?iju!6II5}F6RAfe}S0&K{o$9e%RLHz$M?pI@rsYY{4;i$s8N}4@vqQ6>5t;`VK|g(wtK4gRhN|AbQ3Z)hrhen}UXcAh|J$C4S zeLA0RaYFOZf-e1#NB6;>-5Uk`^d9j*1stUaG#~(lE=P2!)8!b@`^Yc=a4Y}hF&M*q#7ziUFX0Jzz}$cnbj0rvCqw`u{Tk z_T~Vb6FLvz(0KqCfQ|=%k-EWkigM<#0OAb2%vQ_ zfR0fBg_Qs*ssXgA1yD~9py()o%Hsgqo&?Y-{+VBoSTlflD}Y2hfD+RHs?7puZyrGB zB!E&*05#kI>UaSp`2mz!1W;=kK!>XUx&S}(>oLOwF~U2Z@wynq$0&%y zN)Q*-Al}r1xTgnkbQHwpaS(4$g7_5w%&*6+8N|F5#G)OklFHimXH8z5}Tm+=~2r38>v>`^&i4s92HG;OZ2NGRT|`iO89_&@ z2)YDOI+sHIcqWS1*eLFDQ3ClWE(lS)Ax7~DiX!UEc=xNvc|?pmy3}UA0q`JMmEG4IYBX$R$`>2#>kcyBYizaVxt(TjALYH5+i3g zM&btbpsVgCdv2jJ< z;<(7imAnvF*2TDTjN){B8mGVD99K5AxYE<(xHO6@<#Alup2U??9EU|CuCQiY;jOqL z+CTH_mD((>?9JoKIf*MNC$2QyxYF_BisZ+Y%p$I|mT~296<01m0V`K-NeYteG%)D`AK> zEl(3hZI&?h<_Y7RB#e}kFdA;c=y(Z3@)Jg8kuX}zgmJh^7#AQ($Erz(VUiBVCLMuG z;s&2|@GX;086dc$o zhnZ5}f0ly#^AsGC6ihoQ*mP6yz)L~dPr>XW1>4IMJX)pTCH4P{Fs(X}W3Uz)LH#pH{Mqw9;Otm7`T!xda)+!VH~D%NT2H#^`bx z!t&Jjr~dzjm@!UJ233`eQBpI;mX)j4`k? zbS{nh{qpVXIXPuo%);YsjrD0^9s+o0mt*kS! zvrc15eg9e3*`H^fA;~IDC+jrbtaIRH9oeVlMb>FAv(C{f>s-r+*xs1rj(0 zb3DW31%_D{8Ri%}g9@D{^}He+y8 zhN;aMW^c|g=Y)Z44#PBDhUs_=Bl(Q6wqTgnl3@;4408c;V3TU!CX-V+Hm3?)4sY_* zzZY`qx|masQ4VY=Ikl+f)J-j?_VgUy8s*gTIHzt;a_TA0!A&ElvSv=@t(+>_Ib(C0 zQ){!Fx;M|M=OhQWoSfQlb85%Ssgj>FwiY?Hwalr9tDJfP@_>hVhG+67M`soUE{}OW zZ{~%(xi03-W0VKGO5QB0d2>_Cn>{^`cSm`%JkFcjle~F~^N=_4CTr$R-pZSzoj3St z-mJ~?=H5JSo|8P>b@FDz&6^!BZ%TgN*j?n!)-rD%uJYyuD1Z(uFde4ga%{mBxB~9* z1+ya*+;y?w9-{&{Pzr8QEx4On!R_e`aQx87?ZEQDmxSk=eD1%)l-> z+_cElXGLazUSx)(sH{13Zon-v2VRkp{i3tBC^GG3kvUow>2GzH&?YRYoAe#l*pk}i zN@SBSxtl^s-4ILa2`Zs2rKJA!wWXERzFs0*qmo(~m(-m}Nj<|QWz#6BRkNh-S|xR0 zmz>RMNv+RH>i)c>4oOMba_BsPTT&0ak}CTpXKPVX+sl%Av?{5Wpp1A}R(YmuuCZma z%asYwmt9^cn;T-;JV9l&tCZDUwQO!_WwWoB$?m9ZR>oy>XHquLa9QDvvRO6D=B`yX z2X@)vr)9G~E1UcCvN3;oD()Iv zal2fFboh$f5i0J6SaDBK1sy0A^+2t-TUy2K>lJb^s<@SL#od`y+%sHJI!48 zu`DZaEEagy6a ziZ*KqQ#yYzW7)kq%bpV!b{&>&xGdZ8SXS~`qq|_)){QNmV<=RoFACY|pG}yj9gi zyK3~NbWUMb)%NC9?VMC$pUyEf+^W{`s+#0ijsBvlwU$-wa8=bVKn;knMyEV$7RS~s zfvaJWubHAyv)09$b&P6YpwyTFopIaLYF1CL;lZe84#qWWds4GbaSe(_jTOzB#alH? zv}=YqrJU8Qy?M<#Cp9>5YF5LoSskxtNq)^3ENWJ3S+fpTHR}S@fduP}#MC{Gt$PAj z#}Z#RC86%Ei*@f9)q$+k8Ck7+n_AuL>2)lR>ZUxdd)t$`cZ%y!GU}{k);->;d!k)8 zq-oufW_53GUiZ#P9m-DKYq)i<BmGxZQDs-I+AlGu%)FqoE0AgWa_n?7(g~ z!nENDvj)3AZ?HqsP`XZoZMqHiz-zFw-*CDMIuEjJut%!~dkLDT2b*e-X=-b1Q|od~ z(&L+MPiSfzVpBUoP1IMKYF}+?TUt}=>rK)hHQoNWsqIXf+8J&tJ)^1h%%-+$HMN1= zbb8aK*PAu9{drRxlBUvk=y7gSJMfyC>^GhMg3gsJo7&N;sa=8=5@AafnU=N2wyZAK zA|l^%MWJPFh%M^`wa`FmsROlTZD}p5ueZox)N%*ombEi!S!cMVh(=2j&6c%mwXA{N za>QxN6K5@Jf8Mf&q@@g;mNsx()`8cuWWVJM7Icnf*|LsSE$b4rkp$bSL}!ZD*tXZ@ z+C<{pt|YX*4YBQ=pf-|~wkp%vo-M8I_4PK9M{QRgx4oT7+dIQ;MKao&WVXFstL+W! zwj)j3o-}KF`}4LpByB}@+M4XPy#uf9$$s0B7nIAkceHAImyp98!*LwTaRSd_Uf{TO zk>idLNBez_a4N@bY8=;xO2kM zKA$6k%W)l#<0PMh-33R)CC44EIPLD!Yv{S>d!K7S2&%{863)^yQcgT3h*9?aJCz4@Ac zPS$9jzec+5n%?o&bje?X{lyv?EZ6kI)tY_*)@hr!js<2N3hcTqaO;e~uN%CuZm)~$ z_Ay#Vg0fBob=}_7*6p6Yt_q`dhaa!o+mm(s6t8oFv2F$>2qJA%7zcf565^4Hn!V%-s!>-OPl-M#=DpbIx}m)U?_cEcCA4W`R)7`ws- z+Z8wbW3)kSZi95y4S!SH@O%1(+8u2;yW++kpBWyBV zag#ein^f+bWK-SbwzN&IuWvG2qfOEoZ*n`6P43Lt#65G9+qE{ifxW2+(@iYRHo5)z zCO0ITROXwc=WcQb-Xz}`}N(=9B|w)Fk^mOga0NZ;Mk54lx@;ex0Rl@ zZTIzUwKv*!I^%77XR>Xd;cc#GY#Tju+upUd?SZ|m3Da#unr++r^KE-bw)LK~?eyGj z`@q|_Wq(`iF18(Mxosb1Nv|W_n95oXLtNAx5M=L9pgaQVf*5ae}Z;sd$vRR z>WU>rj(_0o__DvF^%pyiyxj4RRy+PBb z-_v>68SySZ=8evT=T8mZ6fB+>ZF=04H^mvx@6CDsobXJ?;a$Py`Hsi)lFzf91@DSW zou}c zoyD#@SniGvSG%JNut)pvJx*lyu*mLB1#S3?k@yxUlIBJktpmtqPV{}M*B!o_H{|!Cz7_m z=;`~4G}<3Y<9$b(>@QC7zA75~R@dBjMQeW{+WVR~-M0p_eNUY4FV4xnDmnXJ*WF)q zy#0mb?`zUx-y1CV7l*6;#Rcqe9j1djY=`gi9qKo9%&yqsPf&;Y4IS=4?cf8g!}s+L zJQ#J{&bVV7Ogj9T(J^~ghacFTkudF;(yTKQ=N*1XI?RF7aeHouKkz!d?049MMaPwv z9sX$5;VW>cGgYkiLFgX~V83$(H zIv5S?gHdmKV9K+Dku*OT4V?qG?;VU}pVnU-xbpH~bhJ7cU4la}fQQ_GIm83@aN6Y# z;ebEn2g0E-5D%v(=#Y+wXl}E5h-K|?+Sd=EJUZm%@u4A44yR}MkQo?%2iD~xB=^-5t9a@9=;dDq28QD4XdhVeqdxulmKV;>_p(ia5r$?*9=_NQq19+qlm?JV^ zj}~3-NEz@)qk(Yb48)_w2|A+v@sTd8M?}_+7JdClkw-@(d3@x^lcU8MK2it9k<~Yk z+<|qp7}!VJV0vW9vmrJ}jQ{2Tpqic7mwf3y;ShTxFZ`!p7v#ue{yW?}x#eJvicipbp_qt=r z?;8C@*B>mqhP>*IFTgRi)nhC&$53RC4Us!$ME;nLwU1d*Jf0n+VV9lPTASQ975vr~M`iN>)ln#a6o9nVDjm|p+!RGb}CTRonglVe?Uj(yQR9*N%Z zO!AM%;^KHAE|0Cj>UeemPN;63-~n?22keP4;7*tUe_{@V6Luh;SOauI$9gAZpq?lL z?PS^0Pt?KagpT!2w87+Ld5TZCfpKCF%oBcKoh(KB#Oh5?ri0muCCyKk=j22mI4AzV zJsAzWlcnUJSpCJxVz4~1 z&+b`0VKD94(yZr*^PVsyJu2It-*bCZwmm`idsMbPUt0E@!Kx=*vVEa1_O*f5ANMEy z@tM)L`&NHEnD%XX)_0_Ne>`;he&6elg1SYl40#GV=wcgjfo zDfK^2SxG##By>vKuTvtar;4PVI+A{>N~2R(8lP&?1;?&b;&vPCHHhBd8aekKOIYp(}lD=^#-fc*(EpwGCadFa|UJh%#gV= zM&{2dld^o=# zLwM;7*-LlGUwXrpS!wY<|k|&o8 zC3|69aFqN7y*^qNFRTl6L9g$EyHx2f6=)asrG5b~M;H9%_`gfwQ$&^RqiW3$}PV!epQ;Zazm zxz&iqa7-j=7%F+C6p2pQ_EIup-lqjOH zc_m;3)qoM!0!CC1;Ls@G1jhjpb$5i0;=Hmy6Q@pu}OkIVx~jL>~f zz@RaCBjN>&m`}@#fJ0;QPGl8uV)UJZAPB-V8z9UEnJ7o&wR}*ev3WHt2GuB{dD;q% zzNkGR&<&1*Zg>)Oqc{k|Mvw`aK_+4anV20k!qcEiVY|IWB(J8Gr3u%#gNQ;pWj5&0> z8?qu^$cp(PBetMihP=osR595ds*27|0kD@S$Dq$n6hV8HxwxfEO ziH^cXWE}RxldvB(!Z>P%xri0!Vm8g;o`!L37S<#4upT4yTu#`Cx?wxwh3%LhW}}O+ z5nG1+$SUl|V1$b>5gcJ7e3Xxv5g}qk#K8v^$4VKTPre-7_muY z5j7%a)Qa#in;tifn6Vix&m*H4i7+uIVntoL&5KN9euRxJBJ>*R|0=SGu~8u^M#oVU zrRS%ySe52nYtdO$k1{kaOJx~lW0UAIYDDd*6%}IBs2!U{4VqUyj*%!AbLhGormSgRYG#Fli;r@7I~*fchad6W)aUr<77 zV+^$`mf8~cGka5j01P0~+?D^eHa1%9Do-S+D14uf5WBu8y?Ny@Bw)E0)Qth0eI#L zfR}&(pwC$VmI(l!4FHh~0EG_#O$dOI7yuI#00|`kYH9%NX#sGq2f!mo0dVU$0PdOu zz`ZyCQbqtY%mCGL3ZF$tom6GUYShbgqZcBS#^0>o|n&nuO53 zID}G02sO+Q>R2Hp*&%e}G=y%Oh0t^7A@p(*LK!E7T5bp(dLeY-htN%n5W0OCLU*r1 z=zbW+^w|o`v0*H5VT|}NR)sLu#V{T#VVqaPcwGzQV?B%?JPPBR$6kKjj+BKX#E1m87@;Cpcdr;G@0 zm=WBuB3QB`_{M1j-!_Zj=guSes6C*7*Mh?9gx$tA;rbUe0zKoH(S21!wqI za|rHnAgH(y?068I`4Bu}0l^cO5Ik!I!Al{1UV@2(T{aE|TpZlM$H9|?IC!=g2QQ;J z7WCN(P*>w%UyFmG9tV#a#le%uaqyf;9NdTFAZ^4!(~N@yD-L8k4jw&?gQv{m;Cb^n zcm;`rtP=-qHx7=xIJorV;4zChc z3zP&Zs0p;8CD4hUKo1!u&@JNxdfFs`USuRt$xNUvD}nlU0zGV+K#!j#&@<)(3zQTts42Xm zrSOTK!Vejx@GavMe%d63Uu2|k$xPubD~0=Z3O{U`!jGS&@H6Hqe2i@hCEitkUPW-d4ZB41vNu9vO%cG)Z$a9MH#pCwNcvgFxfmb^@%&pfDEvae;yP|uP_jk4s)<1Bg3Bunly zXr6?bB?nfP$aa=IdYUCqnPtiI=2`LzCrjFHmK=Fma_MKuV-{KR)Mb`Df0ZRy3`6sv z7)bLVAmSNFr(YnQ+=F9?J@AwXW+vZ41B_pfzMnq@Fg%uBd>}dt%TrVh(92JyX z#|7oCNkO^SC@2lHpmeN)BH0Dy#%V#hZB|g8J1;0NcM3|&EhvXxLAme?%1w)ca{IEN z+`TF&_cKL)@GsJd_eHo5nK`^b`QWJ?xq66(ht_v4N`iBm`? zo%EAVI_acqWMpJyWMpL2$jHdZ$jHd}Tz8c3^Lw5@;l5uoIpzAikFH81`nWuzuaXh{ zxH6(&QAhMg+KB$a7||!q5q;en(NEYT`ZZ@nf8vhlpS%&h=#S{r!HB*Yj_9YN5&cFy zqCZPU^e^ts-IOx_1o&G{!$y& zzw4tqbPW1}IjZkjqxyM!RKM$t>aX2V{iipoH~dk3DS$U}!cqNVG^*c^NA0MH$&nad4j#{Q)X=VC{4h@4*rWegJy>FH23wD{l z=alI;Zkhh&mFcEmrk8^GNCa8#8VMRP0 zRm7WdMSPxA#IH}q|imKv+xGKI&s^TA}ro)}T z4tM_gF|MXx#x?yRU(?@9HGM*^>1(8>A1O8cs#?<@Yc>6&QPZc)n!aJx^pkc?zwXrZ zr*2LE?AP>}pr&tyHT`r{({IK#{drQ;zcO`wmaXgCsIH&k>iR8Q*I)2;{hL(R=jFP- zOX~VLrLNym>-sCLuKzIV`l4Ca_pQ2q!LIA~oVxzTt?R$My598b`f^a$55u~CDXQxa z;=2AWsq253h6nfd9^Bh|$GC=f88^I#e8YP$HM|MA;jNK|cce7Dt7^l0tTnukM#Gyj z8{UT1@J`wd@4D0Qp1KY1v)}M$f`+#hHoVhO!@C(byyr>7`^q%ES+?nIqo#L;YkIeE z(|f@;y>C*}o0ps3E@^t_l%{t_ZF;Y?ruV~WdW&Y$+qatD1-t3pbDG{8x9R=zo8EHJ z^bW(OcPVOm58|fxE@^sySj1q27=c5K1pnv|9xRdCA!1HNh`A9X=2?Q6FL1xkv11I6#u$+sV`MzW zDEt_sNn^~MJjU#hG3Kl?#@trNn3viZ^W7L@7R)hb&l+RS+hfdKXN-C6jxj&|F=ighYx5*gun;n4;) zOOxifv~G<{C+u~#+eN~?JSIM-0T$%Q-sMG!< zZQB1}PW$WDw12{$_OCh9{u6iF{}fF7o8h#7Dw_6h#MAz>WZM72%=jETw_W1c4*^Oc=tw$UtehMQ$>;aTPdKg)cR zW|?_;mf0n<%sFM2xuec9ue4d_hcU}6nzPKlHOpMEXPJA>Ec3>lWq$dy%yKZx9EP*Z zrD&FU5YIC2l3C^tJ14E6Iq4WTCtb#K(nEeudN0pOYh+G3Qs$(q>YVggo0C48bJB)2 zC!MtCr0dR{^wgb`J_mEsRyZe}j^?DB@tpKLnUlV<^U^k&m(FnW(k(nMz2N7iZ}Pmf zOXj6>%Di+(otIu|^U@DvURpHgrG0B&x?s;s_ndj@jXN*>^5>=HU|u>5=cP;0y!0TR zm)<4w(jOM?cF}@yj9V}+;|1d(zhJzV7mPKsU>qq6##ME}c&sfLAI$}0!&)#-+6%^Y zXTf;tE*PJK1!F5*FiuAc#?5%ac%Cd6U)e=t8!Z}VxJBa@UNm0ti^ey3(by%6#yMrt zxT7u_ue3$uhY9z#)}nF2UNr7Gi^dyw(fH*r8q2|=aTqQdm!d`ELA+?ZOBRhk?2-?6 zw*E10$-j)3{D=IK|6X45*T|B8q%8SY)g}M2w&Z^_m;4QD$v z_o>#hf5Be%?>Wo<8+Y0N6)gLQ;j(`zTJ|5r%l^A$+5dwuD{z>VFlGslSyjgDD#7e= z1+!OF%s$dE`@w`eRtvKyY|LJBF#E*C?56;;n;~XTMVP%2WA<5s*)MR1%A*xlblYa(l@bm(zTQ@&g>*fi2-Mr?kn@`+z^HZ>HZiegTsc7B25wDxil6CV7yJ7NZ!xXs< zQ^p&n!f%+GykYK;4fCwBVcu3Z%$M4R`Q6+w_pA-`yuD%GbvDe`?uPj@*f0;m4fA5O zVcw57%(uyg`5SEp0=F4RcrzgUW}uSI;JC6GTv0cJN7`oa!P*Q?*qgyMXES)>ZU&#i z&EQnD8Qh3BgJ;QR@P*w9c(fIW+*Tmttw7x9eg<2?LAVuMjJAUN@mBCQ*$RFmo;}9#>}AZe4|$$_Pk8o7;n}My z&py`RfozLsPue_t-Qn4%F3)}rdG>U~vo~X&eV*{_SG3KZ;kMaZc$Yn*n+cQ5}d*(@d&%EyJ znNQt4^K-aoo{sj+oAI9cJlQk9qJ8rWw{PCU`{oON-~2}Q&2!4Wc}LwhUupa14{P7N zVDFpvoPG0+yKnvq_RYg^-@Fvj;iyW}wV!wE>j0wTPCR3f0` zih!=D0(ztg=z}Go6Sjb^IRbj(3g}ZPpi_~6Zo~q5mI&wzI)+5<7?SZZr0~a(MvkGg z$}x0XJ%(Ot$Iy4{7&>nsLwB8H=(T$c{S1$xi_tN3KR$-uCdbfk?l_U~aYFdxL{*NH zE9!CbNIOnGSjWi;`#8Dg94AlQ({zMvx_az{kQM?~R|h(?ac zS>=e_R*%R_?TCE0j>viYh}?CK$ZPkA{0xuC#psCKkB`XPr79<^ zE9wdBk#@rRV4twAIVY?q?g{Htc)~grov?1iC#+}53F`|wX^GrPOU5THg+FO&fkV zx7E|(OYL;{-8vnfw@-(6ozvlK_jLF(JRM$)PKWp7)8X6XboiSS(Pb>6hrEd1DqK~$St~(-n>Wb)dB%+(Kh@K}R`pTU_x9}PCfn}dKH6u= zb>}R3>YgQ^qqF2@e3m><&XTX(IdTi1BQN-KYwSK2x9!#YPU*yqSS=Nx(C zo+H1)bL3KVjy#CZk$1^C@`pQbUB>6Fhx~c#y>i~Vs-CwVYv-+x_Ic~NbKZLDp0_?n z=dGLZdFy#{-ulX2ux{ZC)(ifE^-Z~8-BB-Cue1x+5Bq|3&$(c|aW7cE!VA`==z{ei zzF@seE?9rKi{WK_F?`5h4Bsmk!>j7W@UeC={AgbcuR9mRr|!k@b96Dh8D9*aCl|x7 z+@we_bidPFWhBL#+NyTzszaMW$w0mnR}^S=DypP zxx3C~?zMZF`x#y4?#Gw8x5;JhH@>0}{)(ciSCmKE73G6{MY-l&QJ%P0luywWR--}stM z_-nSRUb7!**X$3@HT#Ks&HfZ!vv0)L>}Sa}`wMs7mhp94;ji18a^1eIUbkOr*X{52 zb^ES!-G1#}w|_?0?fda{`)zXF{*7-$gufA~>W%1;b|d=W+=!mIH=Quv#ZrreBft2d*U+Rf;@eKWf2+>BnkH>01?&FFr7GkTlcjDBO8d&tY&dsXHh zYcluIk-4X?%zch!?s+0}U-2#O1%HeCrrhH0sJFOR+AZ#feT%#2+~VH2x42)?E$%^l zi+h*c;{M><%0vFP@?O2IJl1Y2AD!FEQ}?#=IliqtPi`w;@g3y_e@FSI-cep@ca$IY z9p#>LM|tDkQGP{tln3!0^JT``&V?&eh}ZY-zE3#Klpz1kiQ?jSMNuUwfoUW=YI6m zy&rv!??=y*`_WhYAbP<+h`y;0qF363=!f$ldgDHbe#H->cgch34^ObF68uOb_=7|6 z6PMsmF~QFgg1_L0Sm7UHO?`-8Y7g;u=OKRWKEyxchxl#s5dY>MsjBu!{op)OpSX|I zPw^x5S@KBzf*-32|5(-3$LdS%vHIP4tiE<1t3Tt%>f7Y8`kQ~^sM-_fgZsq!6hCpE zB~P3$_^G4tPaREt>b%sRI^UhA&TIFn^D}Iy>WiHZ=7H88|Pi}#`(j)jo)i;s0LziIE{ zAMU&OSMo0YqpAD{SLHt?D*uIl&uiLy{=560|Czk!f4d*FPss=E3;$8mw2#_%_oMbR z`KbL)KDl4`&#tC@cE7uy-Ji*4_c#AF(X_A0clT@ZGx?hQ*1qvS+;9A^;e(23khaxWSFfXlt3%s6{=trYTy*=FlS@HoQ(-{ zHWt;QZK~DhP_3LxwFW$xx$$AN{G&z`|8K7ZChDlM~Y>MhdDJsjQ zsD7NH@_dRah+tJnDWO|V3B4pGWR;ZAucm~&mJ$j&%+eUC7R=4GU~ZoEJG|2O-R zwbOdPlh*TYS}*u%4`yCGn0fKCpj!0DX)m9oy#fofEGWa!T!!hx879YPm;pH>!HkPU zD;cRz%}6;dBMq1tqsPh^w4E{foQ#okGsZxW@q5CIPe&QQFV6V6B;yaTFn@x&nJm}M z^y6+O&v!Egxm)Tb-BMQRmipChDX(=)1rz2|tZpL0jk^8* zxZBSs-F^Y}u;2->eYl6s@jdJS>5*xrNA6R5N-qdrWd98aSGg(iI}O>!Dd25j2ub7(8)($+vkhkY>}<`Oy_;IgP6 zXHlNdqJoko{c4uvwJa&vS*zd4T6s5X6{2j|A7{gSk_`*EkIV6W+<@ArgfeB;69F0XW zFuNwD9Lh+!l%EPI7G~AtR7{zvgbGqzillJL0wX3&sVN&wm?-6@;uQS7|L333EJd*h z=4asV{Xf_AzrXjI@PG3*eR9V&{hxpGKiBlX`ME)ZqOvAMl`WW~vnguSp{Tq|QS~;= z)_D{)>{C>KKvC5YX6z!0D#a94NGPgFcT7{71-lfbTK_Xmb3E9k0?g8hV4X_;XPSb2 z(gORW_184jQ>{S*{_f%LzYKr>-FB)q>U948>uvZpc&XN~58s3!)vAW@jfhgMQVidQ zB-LutUBZ8JHZ^Xugqqlyv+0w&gbIPV83pEM)GlE_>k=Az$1u&B zV3k^3Lbu&9O!F>SrR^>u?SXCT|DR#n8-Z;a|1(VKj&nk@={Aef?FLOW=?tx|M|DRb3vvKWG{Ld_M}4pg|*pvStRAtqkh6GicPw zpuC$wbuWX4{S4|4GN>BD++37Fr8t8MNd`6PZVPNui)Onmmg}~_CAD&Vw^b9nts$w~ z>XW;z3hB0bly0l2c3WVQS`EG18Z^4Ctl4dq?QUz->9*jT0ySf|HSBj={Xw@?4ZAIv zg|kX=w^c~GttQ<=U}lEUY!6|%9x{S^2z+BmP3$2sFGKp|9#TY*Bg%D z-Z01ahBdJ_9Fls&KDjrnD7|4(?F|RC-mszfhTw{ZS+h4R+r1%}q9J^j!n)TR4*R`f zf6yCNqu#I-_lAX}H~edfvS5aCe+^OieuEb(f-5ThGei|IMb&?Ps7^D32F+wmnkm~f zGwRSx-ldtkM>E4d&GZK}Q;le*6w^#0p_wKPUMLGDDEHS1HF7+7pd#3z|1&}ra6|v+ zgX&ph(99ZTJ8O(OS@@o3jk=dLhW)J3A7qVclr>6m)+i)dqe=Hk4BIDx6C#b^J_){m zQcdiWhU7k}qV!2%gGd8fpVZL7{4~M%wEw!FQr-pM(*q0C|7U(i;DE;eulMOQY`@QP z{r(8<_j7!|UlaTNA-UhLDE&ToAO3*W?>BTXK25MZ?Z39C58qP1?t%9ifbAK9^BMnh zJ?R`~*c@iL93J6wxF+WCketI6C5MaZ-)}B%=s7%S=5X20;ZY}t^KK5;y&N76a=04h za4F8=LXyKxI`1%S-eI}CGs5ScnwWQn~d?Buhg?LCV#1*9w7qvp%&PE~5;FqXMp@ z26m%4!j zl2NM_!w4M21gt~06oF|N)#Sf+Vbm~7QQ0j;e_g@^ zEJ7aIfBCOH$Tm!tExRmR4_LOEuxyhrn>D#?R~gKpggqc5ojO|8Z^+!|j`YW!a}FR8m7x305ZPqFZCErPjR4%XqF^+GEx zcGm0v47&FJX5V4W&`#?Vg7rFrwF64qlm+&j1?vV2{=Fu!Rwv-jk#t0bT`?8H`XT&l z&aq(2aeu8j1J)4+%(hEiGI((cxO4w==JXWqGE+Ehr<^V~<-otgYFCg_VQxL{N>Xte z*4}BZO9wknPs4gUt#o-^T9*et90xX>{nvv_x}v|{8_bBOJL@4tv9RjlV5*phX<`}v zOK6Hh46I$?zZ)a!?>>dY6vgrs#S5^G5n%>cg0+kcbHD`FGYS}NDy(TVaM)V#|4fG& zVuPZFOqe6KI&RyX18W?&zoVz92_r=fn<;9|g8h!2 zqUN0xRdrL;ZX5PNUW%IWQ&cHPQClJGgQ66*9H*#elA;c2u-cfe7Q=SDHrT_oINa4@ zdGObSj@LFRf!QW^ytbSI_L>R?n+E=x4z8O4zMBcQo7J(}<{a?a+>X@-Gs3NDAAGj} zY`3suwJpWqwIyJ+(dpJ00|q;rZmqzaKkRKIiggGZ8RNRcP)6NJm8!Sxw8KD?t1egsL2BM6x6la7+k`WGQaM_r@ z*17;Tn*e(wVHShA#)G#eg3Bg>&n9`sf{=$q8mRkUhTi9{gmSeEl5^&k*o;G57+6>#72ZlXVo5MYAmhWlvBFy_rJ?#-0 zW`0ReJE!!t7u241P3vjz=`bg3^t6Xem=(5q+I@CUd(P=;SKOZVjt8^Aeowm?bmoBv zqMr6r+|zC(J?#S;{59sUr{4b0V1qqZdlrMM#)GLQg1shz!6tY7HL%p%iz=9E8hC0t zIBf=aZ6;W4R>xkOcfenB!Cv#gX!F5p3&3d$JMP+Y4E91aWvQB9-Ko=&52gGNIpjaDt#*V#0hb7)j?X|&_fXxgVy zF`&_A2z$MVMoTe`8VQXK=qwszvS^Uaq7~TR&BFc;%yhIZX3>SZ4lV=DOt3r zW>Hs^p=RZjK5IekvuawOwWs%4<3^t~WcFFB zcAqup^jQ_R&)V_&tZBc`Dh7SlX4q$en`SM=eO4psvkvHfYmDi)z(}`NxPEIE_gmnj zTias4H6`_1qjJBsLHaH5(XBPf<*1q0vO&I;wu-R{|+5OhM({EMXerwn3w`Tl) zs}%HGTVcOdi2AMNxZi3f{njC!BZ$cnSW6MiRO)c>v=L^Z~1goA7$T;U4gEG~p)z7TGUg>XtLgrjmH+)xVPqFM;+S|Qxm3*m%O2#3u=xMml^ zd8ZJ9S03(qg>c3%gr%SmZbgM~IWC0Fq!1p`|9mozVK~e%EYC2!2qu{XHkk}AnZhs& zD#O$?hS}4>E;GO|Gr=#j8D`F5n2O6VJ06&2KG_69zcr<{-0X4>I%4AX9Y*nO$#? znehjiQZUGDMT5+8JjgVYLFSPD=ZbOQgJE#Ocre05u*4)V#bofr6mY>*@WC{&!E`Xk zOfbi6u)`cM#9Z*hJaEQ*@WukL#v(AoVz9#!aKq?f@T!K56>iv=#luFKA2zndVPi@f zHb&)PV?!A>7S&;+t_>Ue`mix!4jXIsurcop8&!AM*!6~u8GqO)1;fTxG;A!#!$vb1 zHV$d9z}OK9b0ZRmMXx@AAO;^1=HG!1{{7?25teO2F-+i$2W9`j{*FV0HPhPW5@Q=ugT;e_bj1 z3u@7?X+?ieFZ$zV(O@rpjo#QK|2(O-&-ej_RR2lPLGivvdsgQvxV zr6v9|w-m6mR4}wO@UwJqxlC}mZ1A-laJF19wmh)70HM@-GoiYYr8}E8$JQI}hR#e8z zaTzz0GCrg$4g#GEa}|fMY0LZzomfkglnSt*Mx+sT^NZd9kKW$~AResi_NEP2JOL>bO}` zSM8cQ=hoC6ucl51HFYzpsY`K9Z6r1IfUc`xN2x1ZU7h9Y>b6){!HQDBiBcD}y1K8| z)d{n%uGw`JOel5NtE)3XUEPZ6>T(Q*c2ZXl=|+s$MvS>e%<+ww7aQ@U+=$neM!cXk z;yt|)kDHBn)o#RdZX@3D8u4_{h&Q7~yp%NJ1G*W5-xRNK&3Kk?#@k{u2CpgJP@3_g z){OV{W;|gw<2Ab(gUb}}dd+wyXvSMnGhR-b@gWO_5{GDxM>H=YuvQVht{{3rL-d}G z=y4O#t2Uy+SE6@3L{A5Z-i#2vlpy+m9ivycF?yCCqqjw{k7V$Ulrefy8>9F2F?zxr zqu1;)dfpv_u6vB03C8HHXpCM?#^^&99Ham2BOd%BaU6`(aeZAG*B7*Lea{@%SHU#` z(@5X(#&ww0)HkDX9SkG=fCYc(KeLDjcSxK78*@V6P$s|@nb7ym34IMbqIq{h-}NT+ znP5WSiYD~sWI{h=!42XjMUI~od3jP?S0=>;ZBpDbC&g8JQk-)q#T{=_gc(b5Gny2a zl1cG^of5$e5@-1-aa#uON0|~AwJCAmoD$dUDG^K{5lkR)CYTbpqA77XnGz4#X%BPL z9>-66ybNBCGVLvB)83vr?XB9=-kdw_?F7@_W;E?BCDYykJL9czGu|ve<88~}>nLFI zXyEFYGv1m#)zM*$m00~^N#XUG2M<^*8sME{H& zc9vV=XSr>8mfKKfxkYW3+c#&qHG7tucW0ropXIiqS#CL*Y@M@xe?hHF`ukiEswmffdDD(EBHgE5n^Y)rMZ|?^4_Et1+FDLW%Aq&0> z54MZEpsZ^P%AUEPthx)zPOzYCMhnVPvY;HWV7c&Mw8&twXkfCK;JLV9v;^R{ME_hC zb}7RAQpC$k(Ym%2?U_r_s=E~J1WVCovJ@S#V5RWO(Y6dGinbi>n_#85%h7HCCQ7m# z9rBpv<-c|byJy18or~F>0A}hE%pUM7?6$lD_QeXjZ?3Rw?h3mbtgu_j3VX)NWh=dPMN!K%5LteOY^c^xwN8XDLd?wYw9teIQMnt8~t%e=NO@44&pPOvU-ChPJ6 z4=#qbA@92z@@}vpZzUV@A-@^$+GeolZU#HaW^ll71=|{!5bjp6n`{M#8u$(_m=6iq z4%#-q?{4$E$u@tefrpTQfuQZW`^m0*nCxkPtpFPK*bMBWS&D-0o=S0W_K)EVf`>Ey zP6yn|NN^S*|LyKua9`2tR-vWWprhB}4$*+K2@~!SEx6yXp|^LSyLX|v_u!t;hx@{y zb5{s=813#D&MOk=?dcTUe5Ftqn?gNY3U%WYO7khyE2gZBl(OI~!h*)$0{7nPR#R45 zOIf{oie!uwfinrxW2Z>BlOkz1MPQE&H({v|&L+a1C>3_csW6?S!vC83zb!onO+1D+ zo`)`8>@qS^m(e9dL$5#!uR;^AK@YEYNpLqP_1MtMLo*NO7gDbWZG8Z3J#_NjF|_gt zbnLm!W!jmO=58bcHBKo9TqC~2o#O*>%OJH2{Z&6sHw`gaxDcNO-;aVAK|JyAM_ z);;cJGc+{rbT^-&d&P_nUAz9bY1g1lH{l&II|F7wM(hnTUQd+qpjG#JS!m69=*;DA z8_wSCZVmc!6Iyi_y7Qnr>Pet4hdVmx$;}=OnsB#A?u9!z=)Ya)yjv6lcTp@f+Z^03 zVK{%`q0ts81I}N3IDv7X>5eIr^8Pm5@Ou#8_kiH{K;ZYl!0$nV-vfr8nd`maMc z$B8KFZVYER2}S*+{yGfQaVABLvnlEkN>M{xin@YR)GD8%J_wy|`>fRIwqFuxxRp+~ zy`y!y?H)Zvoib9?w3(uwSt+V$r>GlFirREj)R%Ur+rH>`y6v|iG~7|A+dfGCcH7i3 zri&V5yQqf<-pS*-sLQyETH(8>_d@4wyfac4H7j>fF9^Jor*u)b)GlgU>!QB3x~Oiw zi#lm^QB!6Y_0)oQ_3SR{y3<8%xLwreHoT?hbx{}mE^0C8qTYn?u3pqd-HW@Z{iKWf zMW?AFCQVJSY3eabQ^Q=Ex{A}(8lR><3TdieOjGBiG&L`$saGUTRh2Y#M@>_^TAKRN zN>lK=qfQ%XYQ{`c&#g37veVQ}Crxd+Y3ge`O%=Q}b;(at%R!oY7pAFZl%^iUY3eXZ zQ-A18OJFiB#AaFqWm@niUhBVZ8}pf#Dr8#lCSFUFGA&Ndv=owQu}Y>TtC<$BWm=jJ zy|$5Q{nu_ku`;a@yVGv3yPbAB=Ve;w{Y+~i$h2OEnN}^zwC={4)?Sin{iM5F$C>Wd zINRNNgt}WpTzBgV?ryE}-K`Hor`tX&b-L}B1R8Fo({1l)oo*W}hSn*gyEScgx1L$u zt)kuCy5V%UHr?*lmv*PyzUX(l?YAK`+)=07K1lv{+pS|v$IgFAfsHTsv|bQ!@|B*}Eft)6t*7-(?`fShz|}WQMTUDjEbw}-O?P|TPA9`==w9(s|F?(Cjt=?A2?rq(4dRtp=Z|iHj zw^i_ZTbKOa)^gC>dKdP#no)1-LEPIqOnO^?Xj%{$T0kr<5JU@LhLDOmBgh30FCM`U%Xko;rg=-Eith+RL1hkOzXyLq13kv}) zybfuh7SY1pm=^XDTKGw4h2uBa{_}xU6smXN6ThD|`^(T{|%=oRzY|oSYS2 zlB`fsvchdOE9_`l;k%v{P8nHY+RO^itgKM9v%(E0D{Q)1;Y&L!40u`LqMsF(f~@d1 z%nFStE8LH>!atv+GY?sVH5E_B=NJ|XY*2^ai6VKL|v-h_QZJ?azg#eKql z(kJ|)`-LN>UzlL~g~zC080PwgtGHiS)Vzwou)>9#NVoo@SG2n~1C>9!A(zuk6QU~+B5=Gp}P_3zsf z&b2Y0YpY_eElRmIC+FG<$+cM}*Ot{>o7Zw}P0zJY7`gVOnQK3>a_td2*S_ZD+Ustv z{mIL<&-=OdLXc~}4s-2VlxyFObM3t(*ZxW8+sB!Fdz{U;AEA63-n(mG!TI(opKpH< z^X;=zzC9=B+b>DJ4R>tq+iJeOqvhM*^?du3k#A3%`Svp_-!9tu_6;ZB-gNWrFYSDL zz{|HU`g!mM^6j@_zTJrO?fY@QeURkaziDW-nNGL;5JAJub-L{pzSC`=kp|kc@<96q z`Rm)aZ>avW+1l=}TcNqlTHahP!Xdz(G>k!_( zix_k_X3$>3pr7z|-En3RjkAO35rTK@xIuIU5296m5Pc8_(OGE_LAQ-wl0gLbg9y59 zw4)6o=(f=*V-QW7gXozxh>G?gy5S6>O?MD|@dnXFe-J^pjoyZXs1Xe!=(f>8GKhZD zL+BX1v^mBOp@-ZMx{Qa=3O|J2i$my)G=yg5A@qWD-m1H$4xw#r2z}Fs&`DzmO_@XJ zsReJ`*+b~MGlVwWA@tcBLKplYv=|JbHzB-l7Y(6%@etZihR`o~&Gd*FMicN7;$vet7HO`J&kGN6m3Ldpq`BCeGIBK1hMlI;Jt(Rofg1b-)x@~Jm z8?~U@woVzN*0eclJ+nrwqCINea7L|7chvggjanD|Q46|l>uoq{HKI`qx^3$q8MS`X zMe7(-w8q$?^^hxCmvPZr;fvOLv1px=msGe$fIq-g*mQ0!~d1ABVn!}QHmnEM(mYnxl0tP&J9m2bG5limIEZIv~@{=x;<4l>1 z!@F{ixH7qd%Vd==lMiBrRDixE1o*tB?zRg)9aY@+Pd1dQ>6z z;tJVMD&!YkB}Yt^Ou$Q_kGU$jimPOeuab{qm7J5R1p00AN~scPx5=(nCD3k@(?*rd zm{s!Ju9BNhm2A0H^3|)7OMaC=w@u!KRnm;A1iEc;RU}Df~_9Di5lU(xDoCrjqn%U43C&*IKei<$6PbKiksmY-wZ#B&G4Mm458f) zUn$KHy6tdRYlc7cW_a3YhBIa}d~P?xn@%&_a+~2-uNhwQn<2E@;k&3ALbn|rCe82< zT-^yQVhGpiwlNRgwul%}LJTJ(Mo|zWtBBz>#ArJ7+D50{eqwjJ?R6KrZ4WW$eZ+u~ z&b*Egb2moJUV@mP^cZuT8DqxTG3F6B#$3T;%ql;|d=R16mOAbBOQq9o?`Y6%>toC* zV~m+L$CzjK7<0oJV>aC}=8Fftw%=*D-$tEo`yhdCn;vJ5vE$4`Zk)M{$C(v=oOv&f zGiRi6W>y|&UMS|G*7ynLqd38wlO~vXd4hSROfYxU31(NDV1DQm z%xPnSnK37r=k^41)0tql+zIBZH^E%;Cz$16f_WEBFc0Dh<}jIH{?L<#z)l*3>vY?g zhi+S(G(>6A;N(d|Q6>#poiuoD($IA1woPcZ?M}PB?n1lmO&aI@Nn;_HG+sxO#@%?* z*h?mjpY)V*oSiZraZ|<>JY}r%Q^p4odTpuGZogDI-S&-bWW=|P6 zoGD||oie_7&};jhcKdDA>9!9N=(g!;;}|<_JmjX0%Xr#Y;irxF;57;{bbtsMb8*V z?2Pf4n=!898Dou~F+Pej#yM%mn3rdaSIUfWN1ZWtwHf1wK4Y9VXN>3ejB(SMF}B

    v(lVAE4@@^rQ7PPw4=>R-}PDPlsPLsvuC9n&aAZQ&PrdrS?QubD=h`H z(%WcOx*yL<2g$7Tn}%kag)Rb-L}t1iEc{!57#CpKuGlgcp1` zkM&h?!58HPUr`o(SzYjXZNb;{1^jX; zZ~>1c9%EI+Sd=kV6pUpRV_w5p(=k3_V*JF$7`kn|?qdAO!}xrF@#_fVyD^y93C2I^ z6?~js!H>8Vd=k^&S;3p`3jX4) z;ETZuejBY|=(h1evVwoptN0kZiXU>T_%gqW-;1mGjJ%3pD69CEx{9~8Rs2m~#V5^G z{M25>*PT_o;jZG(-YUKjtl~G(D!v!5;{9Y5|DxCM5xa&Tb8Gl2zlJ}GYxtbJhF>Xb z_>Q`UceOSALtn$E%{BboUc)z?HN54n;ji8rz7(wCchMSt5U=6GWDWnJ*ByafcL=xc zNc_5^itCOjuRDse?#Sx81Lx$9rms6E%ys99z3yCd*PTz^x^q5QcV0*9&fR$3*-O@) zpY(=voZWC9aU0GRe#7}7Za8P<4d}VU#cYVV-Wo|gn><#CJv*B#I8_pMR z!?_r2IB%m32fA(NAlYz!)0@sQcGG#tZ913vP3OJ1>70=_ofpccb4vw3THAEK>6^|; zbJKZhZ#viiAIjb{%&F>c+fGlW4+9LL4?Xk&hM7$7Gnw9JGQB3*={t4zz3E0k1O$wT zfCv~6VMIzqL^=@>N1Bl$MM?yOh=8F8&jS44_jAAZ`+j&ij{}Z_j{{j*>pFkeTJHF6 zn)Z+5h$o@D%$v|{^d)q+`V+d-0}0)XND60&rEr@>3YSZzFf5b8 zGPx9nASoOmPz2E=htbq)D(zmIN2blVCNJ1lOZUFy=^tbDc@B!j%NqxRYR;CkZa`Cc%1N z65Q-hf>Q%YFeOTcv&G49rz9D!k|x6zSu$KCPlmNnGTewJ!-OLl&UYrmDpxXG=T3$Z zPcmHQO@@uWWEk|eVQ{}P%!pF_8R8UwnnvJ}5ep5lj~6u%rz@uQ9ue~vT7 z-{ng2SG!aER!@q**qh?l`BMB%ffPR}O7&-nQ~e#1RDY#3)o+%i`U~Z$ehrlBZ$MN1 zxFgk{=S=l0U8(+BcdFm+N%fa{Q~d^Cs=vjb>IXi>Pm9w0nc_5myCltDAx-m}WNH2a zd757hrTOd8G(YA@^XEF#{0di^zs8;Bw|Ub1CEhf@-k0WY4y5@hQMx}{obK3)kW-Crb6_iLeaeP4^pp>HgM0x}Oneh}t9> zqH<{lxce9mIBSVzq%n)_CGDOwx3~)ERh<@64j$wBFvE`%5`Rm6s{~$jXO(Z^JIxiyjdc> zFH6)M$P!WFY*D8qTT~^@7FlH3q9S>=NDF0)8qsVK;m8){JF`V9SGK6moh?E<*`hLU zw#ewq7PSVlMT|Jd(I&}pluL6Quq?+Rljk@fD90g3a~!BM$I<1=aa6l=z&&X>j$&_) zL+8tJGzD@Tq&U~nA<1=AN^>1%S+1i{p6k#+xsC=j*MU279eK`NhtiensCDN$?4Ddl zsW;bQ@Z~yM0=W)aoabnln-_a?_cT`F99Tr)>qe!0b&_el+Ml|0+IP)DUSH7dpo$o+A`HnJg zzQgFtceDob9gJ8eYm>-iI-32ncr$AQfEsz;}1+tbv zfs7Ux%GxD`vI=RT%p@EqK;=!FI9;K_qQ|m7A*gYklQg4aJ;4AU81WG)#xYW}wDfLuHOFbresYeZ!dg{?q z59TcOC|sqU8h5G3<}LN;eWjk}K&gikmw7rRWu7W&na3h8^Jt+mPa|69A)I9%m8;BC z=PvUg-ZGETSLSIAlzABOzrAgFxdejBC33V}f;vHG+XcGYZqVEImP>TLa!FI5TtbQ~ zBps3pNu{(xVwQu>HUzrcDCliFDx zq|RL>LA+HGqpwQR8mN*m;(vSF@@f|ZRlDS9wF`Cr+uin7yL7&4S5u(cMT%=&9numjAP z9*qAx1EiU z%H0SdUeMWo)!hz&-nO{O*CuW9!SW^_gf{t5XOpkX-Q=@+n|!)JlaCZP`#Pk}KC`^p zr$L*2xU<=(bT|9#-e#Y{*X(NvH2Y}rzrAgFi%*TV_%P?cy=`xcPakOUQQ}r#r?k~) zk^kGudj5#~R3U`Ot=Is#c107;Y+9|fkJH=YGQ%pEJ z#VU8F81Z(Bje$-vBkgj+@-8QYb~#aZm(%L)a_RzIPEx9Hn&k>7=xsZ3r^2apE1Y(( z!U=lYPSD$Sn&e8S8dW+mx6*0zDxLa((n(2GPK#XS)S@aU;Z`{jugYl*sGN)xlEWw@ zN8OOz>V@RG03;`+YPngimTOS89CxebcCT7)2&m<>R3ityZ8_%F$ZcMYTp!TLDXCU& zLA7$it(7BQtsL~W<)F9ig;AXsb?dy=fX+)w^1~rzlhlm9>22Esptp^hrI_0+wFS&l3bjZH zw?&EsEK&xwy3v5uO`>ml+x7tHZKHNK7O=Z16mb&)#La*fH;G~>9>74)8~;ylJ3xzo zV~+$LT@1PoF<>r30y+(`U^YX_0x$l8`3xE8XqJN+4LRs$wt+bf2y`-GFsp%rE~W$Y zwHLqXZilV~GaIfq-EDyzbhr0|?x}}0Bd7<=Z+KZV!mfZB4j*eqh#$;x1Xwd7MC=Sv zBzUJ@4BncLdGmgKa4dMIUJBltmx0c9`J4WBSR3eaLvQ-qLiBZid%tKgdq2;~-XFS_ zy`SS^?+@-~?-#h)!0Uj{cF&vscGwlr<@UYlZwmvUzb)d#h$1;LU`8V*RKke?{p}cm zloJy!Teytd z7F5n{16}U6Fo@d*dfaV7l-m~J;9e0e=3W6a99KeJ+$+J|+$#b%_X@c8{7O&{_X_B8 zUkUSZuYex+6=8sTB|-!`++xt*mb~e43#6dOE#pN7mGdI`a$aN@#ET4pd67bt7a8H; zEfzU>i$h&+y4(Uc=yH2_i-UT2i@_TOi^F`p#UXy)Vqt){I6}lP2R+R4Pzk?0IF?@y z=0D2AWuVI~2R&}+O`jXQM^GN&;P;4}{GL!3zbCkx-veesdcb| zdLl%ESkSkO4V4IDgQbGlaG4-BNG^yCg9Nc5FnCV@6~sn31l=O1pgYth=ni%Zy2Cw! z?jWzAJIp8O4)KF`2Lgib2$2v5ok|$I^$rJ1g>bk`2nWf9Fz6P*A*c|Ja0vY(r_dkj z68eMPLO-}m+#lo>`onxee@H;+j}U`*)g|Dqbt!mHT_zF*$wi_tNF)kDMWP6&$Pwxi zIfC6HN4Q7i2=a;?VLp)~Bp`A`h{1d467WX46ug5j50ZhIe_03`B#Uqcc|u)5o?v&7 zC)^w43G)ScLIOda2=TxDZh5dI3<{Qnpuv&|=f53qZ?G%O7wifN1iK={ArR;+LgDg% zd*03vU#L687w-M9p0_w$9x4t)L&Xv9P-nO|)EO2Cbw)_Tvt7quw%g7jpTLjdq0@D*$+OuG3;_MgChqWEeLe8U@(V+f?k#bbiSRS z@9kohv%A4ejvMs8J*-&J-RcH&Q!wal`PpK&gDqjp*iyEKE&s3Hx0lW0u{bON3$&G3 zU zfKOfwn8J$T#t7H4*7DYZPt{s5d9{|iR@laBtZrU6r(4j??&f!cX)2fn^I#4vfY~sZ zu!4ntmY?V6_yvBppYI3LR3es$Cjz%Xh}a^&2;A1-U^#dWaLa>(?ch7WZ45G&j3)!P zLCC;MEHZFwgNNnedBANC9`N#t2i(daVM%xrjs#4hN%#`3MCf9BQs?00!vb|s>@d~9ZDR|*U3RYPum?)D9-7GiH&2fX( z(+#G_++bBl!3!^_0A-_ml#7CuI=~BX0)hZL0H(Fy>^b~7+&RJ=Rt_(RlOxDs=kRm5Il{xN!@R?s!-B)?!~DbC!@`lQk-U+dk%E!z zk^GU|k;3(?^}O|*^@8>6_5AhR^};Sz7q5%cCFo*z@w>QP!t1Q-yz89ng6r(-{OjE7 z!al4%ygr;hf>d0a+#NzI%gVEItO6_B z%C~Z@!iTJfyoa2Jf`{yf{D<6!!cbNyFO(B12xW)zL%E^Cg{+0Vg`9=XPG+!MkHtO>jcoC$&n>@EB)+$};KOUKi3bOIe)$JcRn!n>@yyt|ycg1hXy{JY${!a=M-yg{5nfrEQ{8ijl!X{P|uZhznXks_!;hi=2ysi|mX1i`YwTVn^|#xKYBTtfjoAoTY-L z?4|sr+@-=wRwb{JQz@uqSMn>lmBLf3Q@m50Q-V|MQ~XohQ^KjNsl2J2se-BOsr;$j zslx57?Y!-r?Sk#>?fmWB?Lsrl%rkS$0yEppH*?Lx2doFY2b>3j2kZy@2iyn3U{)|M zm=i1rW(V_wxxvEutogk8ocV(J?D_op-1)*nRw1vDQz$587xD|ag~H>kJ-j`fJ%T;# zJ^Ve~Jwlv?^KcF>z}Yw-=iUua+CrkTgg{)mBO2>o4lKxn}VC{oBW&H zo5E;TG%uPHEr@1E^P{=Z!WFC)ycL`kf)(r){1x04!dg}>ua;9QsAbpkYq_<;bF6c` zbDVR6bL?~cbKG;ncvd_wo)a&KXUFs7x$(kXtX;faoLz!l>|Oj_++9LD%g(cN>;gO6 z&bM>z!pE$~yvLl!g2(K~{KwqK!f;kNFPsxD2xo`$!@1$YMXW`^pdtVz5{oJoR7>`DAd+)2W%tgXDQ zoUMYb?5+H*+^s?b%fK^m3<3k&z&CIW!h5WHynCE`f_v z!ZcPIFO8EXNMon*)3|BEeXM=FeVl!Qee8YwecXLQnnm+y4lSVBG@s_u!WXO;yce7o zf*0%;{1@C8LQq0xdQ($~7R-rUvBg=JnP0+o<753SU9@(mx(NzZ9ahZgD()QA@mE_< z>&}+7%}bgbjdL3u^^4`J>$+<_HP@^8)#IybDrZ;hD!*Gcx~!{oW69m(xZ;^bJ%u9* z(So036J-nY|H!MzbLS4reJAI6wl4c}R!!E4%)HEl85tSrel8PZ?M)@#nnEmF(}Iot z$B9VPS8OFUan_>bW#)`kFX1UHyYan8kM+Mr&eA2_jn+OMy;I$)Xo8x{Lsb)(A6E3g zF{dl-QE_J(J*cBS<*&9c@Ab6Kt=rjhCwXo2$DK=>ZaN)}4X(Kjm)jimmiHFR#l2V8 zxp#EehLm|~X6(6MJ@O}h^}B}gRXxU<%7!mzSNtX3RlaWK-LiE*jxH;`*;P7t^Tv_| zth>dLJ#od+teHjk(VoJ?BSsXixQ!N!asMQHflQRuMK8=BJmZhN8|y0au7R5xubvo| zo3s6$oTs7Bv(X=P**mUZ&KjLlleO#8iOi#)vTlpdzTmJ*|hU3eDm!3wcsXa>3i8G$UaKeW}@wp&B2 zt(I-(r>0EPZ1{ljnIYEDp?_EB)?U>7qwcSs3gxNll${D)m#Nd#VQh!mT3X9n(wfIM zMK=Cbe@5P2H@~*6W?D6;>SV?H z1OR^n9y5;s51GFJ512o}PtwoaXYMh7Fn0lWnA^Znn7z!`%va2A zW*4)A+0J~yY-2uWK4Ug9E@mUMo>|ANWmYq*n3ar^S-~u0mNJW(Ma)8GKI35KF|(PO z48u?i!Jv$tu`(vc$mkgj12GDwlWAjGm`0|asb#8}3Z{%HW(t^mCWpyn(wP({k%?#G zm?_L8W;`QdMlmCp7-ldtfa%BdVR|v)Ob8=lcnq6)K|iAd^dtID`W}6U_R-hrtMsq* zdHQGi4BbQjKz~Ocr4P~H(qGeVdI$Xl{W-mv-bk;b*U%r*@6*fZ#q>hjLC>LQ(iDx+ zHrhn%X*I2&+v#Syp01%Q=n}es&ZRTyR63E4qhsj_w1gf>52Xjv{pctL_)9+Do~qFR886CTat-HLQklOHlm)WB#Mb#B8^BOrV!(Z5yT*(FA+`%2^R4Le}Lb?uj7~SbNG+A2S0%C z!N0_};Op^^@D=#G_*?i49K+4H2Jgh1@M^pS&&AX5cziNG29LqTcrQE%e0e{`9$?hV8SDgh7~6~O#6HJ1U>{-2u|?QCjK=Jk0aIcvSS?nH|^ai?a}s7 z@J0Q^cHefxcER?O&12hV+hN;mTWeckTWFhQLv03Im#x88Zp*W!*rwVfwjs7YwjkR} z>m%zO>s9MH>j~>Y>u&4k)=#WX>mutMD`quXyQ~e?GHb3i$r@`NWgTdZ1V@2q7Qf}D z<$|Tha@6v*rQ5Q>@}Xt1Wv&Ic7%g3vdP|ul$C7B7WEo)*Tf!_H%ird^=Bwtj=HupX z%{$DS%&X1sncp&#W|LWIZZMabbIelnMDuWSv^m85()7^uyXlhYlTA4OqHfQQ?hBYX@setDb&O=J%oMmMffN92>ccNIs7ra9DW<7U=yr>>){eO z6P^x_g$Kit;0PNq-Zfq^o;Dscer?=lTxVQioNuIzCZobAHx?Vyjnj-{j023}Mz-;h z!DqN=_|b6Cu*o4hh^oR7j^qcgn z^zZ6t>1}#Q->5IuXX@khWAp>`q57A)2f7|bj zjnfU*MSug&Bke8iFWM8@ecCUypJ-QT9a>zg*S2aav^m;%twcLO8>W4!`BU?o=B&n} z*`wK_S*=;DnWeF6lp49FP?MsWq>0f)fz9$`wNHIs{k{4d^)~g#>i5)h)pj+cZcrDg zQ`M8z!_-k~p864V3;G2*4()|Lht@!gp;?dxQb4tk3`&H?LxZ3&=%vc9x~e*@I;`5M z+Ng4>-d5o%t*Tj7s!CVIs)nheR9w|VU4HGI?+ybXMJZuXJY5r&i{RD0icUi-tg>usmo4z+D>Ti3RvZDt$X*49?mmfkk0ZE#yy+w<1DtruF4x9(}( z)aq<~s}*Tgw$`-fw8piLXpL%RxB6QyxBS?$ujTWWRV@oz@D_E8yd}RSzGYNPpB8S* zgXXKvJZeKO)HxmO-Pfnsk$k< zX-ZQ}Q+U%qjdvQ)H+mX(H*RQL);O!t)Y#fs(wNdXuCafku<=pD^@dXo`x~}4eAKX@ z0c%h-)HdWaOl^p12yb{^f4lyd`eXGw>p!VqQqR=u>l^C}>J#cm)%UJv*WZ_4l7BCE z%QwoG$!E!7d5gSA4oa(XaM_I9U-xU>iMp@qKCN3`H@gn5YpE-$ORO7H*QbtCcfa;h z?eSW7?S|U-YG>3MY8z_{YU681*7mA>QFFKEmzrZWJ8C|zdAEkFQP58B!Bc z^Q8J__37&U)t^_dtaen}synL7s#B`RR!3KJtNm4%s*YFfu3BHUq>8T6R>`Y!tEN^B ztqQFQRNkmORrzh@mdXz*=T@34TPuqzrIn*9qbgrk+^O(Z9I5!CVs*uW3Z$Z|qP!xt zVq8UZ1-IgU`NeWi`Ofl>%NLd7<*M>3@Bs3Ja&bAo{LivWWyi~Qm8~m#w~Q!Ll~tEz zlualTm+{N~EWK3vUFojUb)}0+@ls`JWocUJxYB;5+|v6c7fOzmd|9%lWI+j1(pgeg zl3X&Tq<6{7;ycCXiVqfVEnZnXuh?ANQe03xy?9u0Sn-ph>qR|9dy8B}?-emc+M?Q` ztfEOp{fqcTe->UW^c3zWTvNE9&|cV4SW=i+II=LZ@L9pFf>QBB1 zvMB*C*}6f z<>lVbIiGVRXIsw7oVhu0PD4&^PHfJ=9Da^J`$G1S?C$Ijv*%{R*^Sw`*|FIJv-#Qn ztn*n%vbJTd%$k#B%xcKW$(o$iKZ~1nFVmZODD(47XXdO-eP&%|X6A&<=uB4Tos6>? z-)3yiSe8L&s57cEQZvS6L}ffrzX{%<{yKd_`n%~^dS`kGc&mDNdT9FNv@2=H({`k- z2CrmW(wfuq)25^i1jn)aslTKiO8q?b{nVMM+SHoVv{XrIRO<7Tn<+ghds5b?EJ{IA z+Ea>Brl$-|2}*g8d@=cGa(D6v$+MI7$#uyY$>WmyB)>?ymGo26*GcP>7A2uc?MX#R zaY;jxL`i=pUPwHgxHZw4I5Sb3Se=-bI3}@I;#28$=?~J~(zVk0Qj4@%nkSts?GNI? zy9s9#_9eIymL%W_T?r)#@d+^rK?x7yFUB8<-x}|XpBb--uZmBN9~~bNADDi1`uEd! zO#f*5yy?d2^66RA$4~Dw{hzp-aX-en<35gC5NC~Rj?0Ui947{$+wEzmr|q4#VcMc; z$h5X;1=FTZ8#s+O?T@MFrhYrsHFfb+Y--2UqN#CH2ZM;_{uJ+&{ZlqgSvrN7(lw=c z%JeBirU<9_W4*BlVmHUW7fZx;#g@dz#}0`V#`-6FCm)!+dGgZ9#N@8Y#gnH`9x_=l z`TivDr2UgNOkiER@LCQg|+U?OMYoe8HW z?47WF!aEae6Iv$ZO_(&H--MUredBw^yT^Y#{_XLm@eSj%#*ZK0d;GI;*Tt4F7d9yvO6 z^utjXM;#uuWz@1! zAF+MJ$`P|hXhu|yNE|V2M9_#ohyOBs|8Upv#lz9zZNu}2PafWH_{(9phMgR?YuM^x z^M>h%)eK7=HfmVtu!k`hV-Cf97V};V4$3-(F;ipu$FO65AKEk2J#@{`w}u*r)(%Y@ zI(lf>&__cq4LLky%aHem5JNhK6b_j>r2h~$m|5=`ynFDP!EX&V46YrVI(XFJ(7_J} zT^Mv|(B?r)2VsNS2gwG-4(d1P<-nT*PY&EU@S}lq2I>Y@4NMw1d|=SPKL>aR>>u#y zfJFoB1DXfq4wx{Y_kd^puk}CP|BL?4{xkZk`j_^P??1RdzyDqFY4O+Mb>g?hCb3+c zE*>Ke7eDHEso&v#pY>bX5AWCBPu4HCU%!4YqHje15WOS%!{}Mjn&^sXY4p%&Vf4Me zXZ!B$yT0#&zUIF5eKY$?`bPA9+~-oCBYn2?d9M%Nr@c=>pV&VA`n>3UqxXs4J9>ZE zdsc6C@ABRWy@&P|^!_92Ow`v=>!RL{GDXRw(xXO4g+)E=b)nb6UYmL?>4o-c?UmPS zVy`~Eo<&}Z{4TOP(izD_DkDoG<01z}aw30^=!w`Ju{vUIgf5~gA}L~6gebxv{&V=g z@D1S$!!6+r;hEu*@QCooVVA-VhkX{dGz<%C3(F6i6xKKFdFXGU$3wpeb%rvb%FvR~ zxX^*2oY3DxdO~)GtPYtQq6?`CNeYPx5r*6gJ{!C@_>C-igRRQ^44g!z_ngLC(0<`d>a<~?QsGmF6(m{Bp!Ocf(zQkkjD7-k?7 z!El+!^zZaV`bYWz{UyDgUQW-W5n4sp(fM=&J(}(VVz57{%hV6l9_mwS88w5_QF1Dq znoRYlc+@@8OCBUYBbSjBsU%CucycfZ&hHSXh_8q>#2i9Hlo4@6f8rnfDt-ia;R|pB zUXD-0`{Iu=FZLDo0fu7@SQ6GBdxCn=UFdSuf>xlD&`|Vu=_&j@{2{D`li^_aym6BeG3FWj7_S+&87M=cp`YP5eYc*}%k;hV zzv?#Wth#hvknXg0l~$>ptPN-mXx`RTX!>ies$FWMI$r$`bO?GIDuen$=T&P|U8=FF zKa^i6ZOTODbH%rcS&CeRQ1M;Yg07OT@U9;_7k5^4_Ub&?P2ZT zx4qq#52WA0R;D$j^-0Ul7E{Z_mfxE#OC}Vbuq!Y*mt~ir3_a8)!^gjRf84wnxvKT|fhEWYeksk2m8`lMu2NqtFBiMtpo?pJ)Y$W}D6=v3j% z!pVh~3g#C`3vSBZlV!;M$X}VCm;YDZn!KXCzjHsyEzNzJvmvKE=UMiK?DFiVSsSv- zvYuqF%Ph`(oUtZDmhor$%Jl5?J8AEwrKDX?U6?v8^+L+*lyNCPC8NnhlaD6pl6oh7 zmDrjnNc>D%A^kgHRYF$6t@wrUQ{vA}C#DabemD+_3ytfZRy{2+b=B02slQE`H)Y(E zA7bIy-myC;%O^jZ^wFgBN!KRMnK*i)XM%b{$b`?wmyW+bZppZ*<4%vYj_o^kr=(W$ zc+C4_62^E(qoc*6-J|5A{vP@M$b^ySM%YL69kFA0_3*!jEgd#xSWk>0CM;&l(88g= z4|!|Is3C_3cMN6?UOgyf(D{Mr!03Tr4yYJ#zyHGiCWd?$tO#ZWuL_a|oe>#DA)-%(S;AihxS+4#3w|-*$D7R?%G<-O<^IWeha=$} zX1B7Ru~x9A{=epb|2q-<|MNHhNe}SprSDEI2cmP(#H~a}w&j0W#?R>+1kb1u19#}o! z@CQgi-|#96eUpdY0W0e(ZvV^gARm2&@4vVOR^C_K{FfUbIeo?TfB6lp%dc|OH(UjI z>MO3i<}z5ZU-9d|Tmm`ktEBZ67yjiuSkqtSuCMU^%g-Q%eU-z$;_PeAfJF8TbNV%> zKsNg-oqa{mYkp*2aq=}kfW-C(=EQ5h2j3L0(%V=0?JGR5IR>)aS8481@GbI+!>>66 zvfYEPIq*8;-4Al!Z(p+y-?g4xSaKC2v>m+y=NP~9*b^yM7&Gy&X z@E1%sVB2f9GFw4X{5iAbHJ^dZcr#$r>*UzQdoV z4PZ6kBfzTHdGM)%31BhcUBDv1JAj3N1%Ua0w*e03 zEx%a00GnYkFX@-`3;G}WIY{=O(NF0oAm9HR@ED~059z-E4?x=Qr|$#q(SOi) zLGFKtz76(1KKd4Y6L14qfZynAfUEQs`ZDkVmjD;(3&0EfLVE!})92{3z!03KPXT@c zrr<~VB(Mc10N>Ncfi>{Z$ACFFN*|#Q1AlN3?5Xwxi|{SIkN$?<3v9w3`YT`*-1KgG z7rhghg)iytz%F#t+W=dEW!OT0228^y+C_f~e8Wb11K5#$0=&b=^jhE^R?{ERtAK&{ zkX}iDKs$knSONBH%joy$rSuZuB;KVL(eD5j(hKPM^xMEtyajf1bAhLrP0s?ZVg~r{ zNdsd+(gckIZ-IiH9zxrJzp&C4+6*iPOdDwfa2YyUOKX79fWS^r3A{!Z-AQ)@ef$>A;Unqo>kSfF+qsPogK%fc@tvU`Aqlp+8g+kUUVdIDq(ae9Rkcs5G|sGK;rUW%Um{)x-Y30 z)IZd7>KXME7?;1P$J8V0Auulws6T;yxkvp$-KFjT3-deW119DMb)EW+x(1BQ73x=D zWiC<|sPoh>z|Neb&H_VonmR@OMDI+~fw*jZKh5C%z49t#;+6e5Eu9dJBrsMXX*)GBHv z^#SFi-lvv>{q}p*Qs8~wr4~`|0Q)nadYf_p2Q-hGL(K*zXePw~8$?kgg##yqQV3-O zX2?RBDH!-61Er_5z!Iq`h*APq)J1ht?Z6ndQY};y)d=}1M@^%q0@E~^nnX>c##7^{vA{Wv zrbbaCsNujp4W))qgQn?b=Q5B6pHslH18{ zavS+MxdohEHUa;&k=y_r*gEoKat*nfTt$9Jen2{b5nB#UHcNpQdzV}U+}HwgKItIe zBIlBG$XVn}u*}mWNfIPRq9j7vfHgCdCejGpnU2%~e+Gdwkpft>4zi7G1um_LY#{4N zIay2AkX2+QSx%ObC1f#KNEVR!WFDDAW|Nt~w55?LWHRt=QgEJ{4y@Z$GM1bS+}i|l z966R81038)as)XHn7AS2AaWqtpA?hPWM8s38AV2t5o8z{LIwjrCj@7)SK~}<@+I*P z@tk-{JR$xj9up6VzlcA9x4TE&CGHTv1AljuxK8{=TqUj$zXFqYf%t{+66b)?J5BsV z^bjYBABgXP+w%}di6g`z;sCLq*hhRrd<{-{ZekbkeP0q^5Z%O9VhiyZu?e`pjl_E5 z6XIiH4Y8V7MSMtnK)g?^AeI3qzl3;~c!yX>%qQL^-Xi9LGvX{_2Kch12m)9_l&}*v z!a|q`m@p7JLQANDHB=H^L?f~9%Es#JlhgybW&wX0#En$LsJKyb78q_%M7ZJ{TW}_s9F;(Rd#`3XjCY@lZS% z7lFYj9vF*a<1ev)uxHp4>~HK5_80ai=Ev?~cd^@;54(w7$F5;luwSu@*m>+1>}TvO zb{hK$`w{yA`yTraJBA&>4q*qdZ?SKHncaiAv0c~>Y&+JCZN;`=n=u!*5nGR~!`5P} zu~pbg%!#eQmSIb=CD^;zJJv1Y6htH^08bj8_UGfu~aM>OT-ee>DV-E3N{&=h>gd_ zVq>sT*a&PGHWV9-4Zy@$G}Z@;!XmM7EEEgIM3?~MVH}Kwy+EI%PtgGS7=4I7K>g?+ z=pFQT^cH#p{SCc}UPdpW7tmkOpV71EY4j)bBzgipj(X6e=wb9Ax*y$#?nU>YZgeO5 zCHe)r4gDPb4Bdo&if%wZLD!Rt6SBo^vtPAewqLZLw|nhp?WgTO*-zR}*pJ(f*^k%{+4tM`+4tJN zvhTLzTIJ;YoBeOX{YU^ z9kU~Lo84@O?RvY`uC^=fUG@%ptG(IYV3*r#?N#;)d#SzHUTDv^=i0OE8TK@LvOUor zZ;!K2wNJKBw2!k(?4#@>?8EFs?1Sw6?fvY1?NRnfdzd}ME&`)`JTT1n()Qf;)b_XS zk?n!aZ@Xu^WBc89({|l<)ppr-(RSYEwVkz{w)NOf+P=4aXFF;;Y&&54*0$HS$L6-} zw0&vowr#b2X4_=jXj^al*tW*D%C^$>zHPZ}sco_C9oqt%!#2-0$2JojZ%7+%Lu@vi z*#_J6Hmwb^DQ%s$c3X?B$yRTxwN=|HY-P4$TcIuAmTSwhW!O?}$u_Ai-ZsrP#Wu+{ z!8X=5#x~M6+&0uU$Tq;%&(_x#Ws9_h*+Oh0o504kv28D`&#X_ZkF5`_e_HQb?^wK%jI@dbOI>Sm?2`g%~SuIxBs<&#bkX32zw6fGmQ$7= zEhj9;EypZ}Ee9;$TJ~DLvh23(uzX?JX4zudWck#x-tw_!jb)YP1Ir4_GRqRnBFjR{ z+m?BjIhL6g+Co?`i``0{|-3Acn;f-C|H*TS;AFh4T~%#X}} znf>NJ%(u-x^9}Pg^JViz^Lg{n<}>D>%s-k>n7=b0H6Jn`Fz+*eZFZY?n!hx6n?E;i zHoMFl%6s~DdSv>`qX^^SEDcaQA6ln@G1)GE>o{4RG0Y8HS@MHKd*bn~!--d6&*Ws)1ukZ!f3!jBg z!9T($;P2q0@F93V{0+PZ-VN`7zks*GpTRD81H2Ai1FwQVfLFlp!HeN{;Q8=d@Emw1 zOv40>!Zz3p8(|%+hLvz9+y*zp4R9S?4OhUWa1ktnbKxvF9ZrE0;dpo&91Bl`$H8OZ zk?=5h2s{uL!+qf>I06oZgFsn?3u+_(7@r#dHvVPw8~-rgHr_H`H(oXVYP?|d8qXR} z8GkgMFn(t|YCL4zZ`^DA%DBt;rLo)ixpA}cQ{#H$$Hvvh4~x|XL3S)_}(3o$`F=iUmjLAl+ak_DeaguSo zQDPir9Bv$H9AxZo>}!lNMi@hlK}La*Yh)Rp8=e>*8~!r*4SyJJ8*UkXGh8uTGMqR3 zY&c{1$?${WxZ#-Lu;GAVpJ9(-w_%6j3&U2!X9kyHz2RfSYQu*Hr(wBaiD8jpfx%&z zYnWxA4TJ$T*bHWa(V#Uz28E%+&}wKj$PG1yN<*2U*dR0H8nO)Oh7^O;Fx@cKFxfD{ zATf+G3^xol3^IrfeGO5D2t%kr1O}cthL`$h`hfnC{(=6!{*KC5%S`T~8PK3kuzPthmph|i~x}Cc1x~;m;bS~X`-N(Asx|O>3b<1>%b?@lr>*ncZ>t^Uk9j3GE z%sQh^r-O6~U5Bnk*Qk^0s&y5*QeB}gUzelH(531Ub@94sy2-i;y0N-Zy5YK^x`8^e zuCK0_E?gI^6N17BOZSiVsrIqF6{>G$J*7}54G=WmuVMk-_g$3&eP5Y@f)edv^K3-YtU-7khV+P zu5H#fXlu1q+H!5Nwm_S!&C;f6leJQ9oOX(KqIR5iw049xMmtE`U)xt3r484HXoXsy zmaY9q^HlR#^Oxqn=B~!4xuLnL`Big4^RwoRrbqLG<~z+%%|Xq#ny)o(%?`~Mnys46 znol*KXx3_0X+F>_*DTd6(k#%trJ19dp`kRG#;!4Ij2f*5(sXIsHO-m^O|7O%Q>H1_ z$TYc{Oih|5Nt2+Nris-|(2UiL(hS!O(G1k|)AZ3qYQi)@pj5%pyi`9^2hO6I}I$fQtma5~_Q`8gH zQq&#a#gWPrpi%es!~;ns(95@ z)g;w8)fm+X)lk(Sl~~nB6{!kS1*!Ndw(5oQsq(S%FXesZ9px?Mb>$W1MWt7HR{4|i z2jzFlqsoKIeabz`-O4YO+mxRvUCQ;!waQh>50uN5OO)>@=PTzaXDMkVp+uAxrBSI> zLdq^>o3cq+udGp4C`*)u$~+bHP zyL0;~c6S$ccVV|!C>DPeTQRW%n}_FZoO69YccH0JSEw$O7m5q{h3rClA*GO5h%H1F z!U`dUS%n#eDTN7zF@+I@A%%g3zJ;EJu7!?;f2}{Q->sjm@2zjFFRV|k53K{%|ExEy z*Q}SVJ=QbU6V{{FZtFhlF6%byChIzDmvy;yiFJW>j&+80igki@tkq_1wKiGntX0-B zYmwD#)mzn8xm98nSUFaPm0~4Yu~w87W`$V6)(mTkHNhHVjj)DT1FSw)kI^L0!TQJY z)AG&o$@0$f+A?T)VtHV>Yq@Q?Zt1mLw4Ae?vK+S@wj8kRvFxyHv23ucv8=Q#wJfyE zwam0kwM?{hTI`lKOS7fkQf(=>6k9A7gGFOeSR@vKg=1k@C>EjxYe89H7KjCGNw*|h z;w{mZa7(bo-{Ng?w>Voy%)iaU<}c=t<{|Sd^K&?~Xa&xiSVm6pHW`$W|7MM9^ zhM8g}nz3e-8D@rNnjmT{T@Yoj08}9XA~|9Wd=N?J#XIZ7{7ituQSyEilb7%`i+a_`rDAc-wg0*lWCKJZC&*JZkJV?lbN(ZZmE&t}}KSmm3!u=NV@i zrx_<1$Bn*A+Ko-dI%Cx+4_ah28}&w&QDzhwc}A9zW+WMLMzj%b%r#~iGmI(5cw@9N z+!$>1H+mc0M`PT7hF^y7hR=rghS!Ec!xO^;!(GE|L!aS_;ez3;;iTcH;hvQ#BeY!qbAFq$nhv|d#etJ*6tKL!nSNB8rRrgW%R`*i(O!r84 zPuH)zp}VTPs5_@Sr8}zY*6q{n(rwjk)UDO6)GgI5)Xmk+&`r@z(2db`=vs6Qx@ujy zu2^T*>2+$IOefOubSxcJSD?e`P&$|nqRZ5!>5_DDx=3B9E>P#A^U%5IMzp`R!`jc< z_u4nwLG2Um1MMB{Ep4CnvbINiMtfX)SbIRbTf1GmS-Vc#rCqLFq@AaorJbsssO{9+ zw5{4kZH=}t`%$fT9%fkC24V5v=*j?Xu;YvZIU)l8>tP|25Nn@9$IJZ zh~~HEyXLdzz2>!MQ1e)GUvo!uQ*%voS#w@_wEKP+kE;)<_p5iSx2ZR&*Q!^k zm#P=4=c;F@r>MuP$Ee%Y&FVUJmAXt_s5Ys!YNcAD7O2^3x|*cMt1)W0I#&%=r>m3H zaq38Qs5(IHqjpz2t4CD7RNqyfRPR);RL@n9R0FDh)eTjz>Z0nb>ZIz3>Y!?mYKLmG zYQ1W;YPo8$YMyGAYN~3YYOKnpYEd<)s#WExB9&RCQ>j!^l~Bb|F;rv~L4{EvRJp1w zRk|u!6{m_)g{lHoJ}M8Dv+AGnm-3tPlX6J;O8HFrNO@1$ue`48RbEh@Ri02DQ65n4 zQEpdmR<2X7QZ7?2RL)h-P)<>fSB_D(E1Q*d$|_~4(yBBnHA;n2tmG?MN}94jiBqDK zdCD9mNSUfkP{t_3mBGqUqCh!HbSVEQh815F?-j2VgNnzB`-=Y*Hx*YE7Zv9eClyB( z2Nio2I~1E0>lIy!<%&g$d5W2eDT)b-F^UdFv!YH>r6^StDvS!PLZJ{V_zISSrYKNg z6(~iXB1ZvIq$m;;(TZ?Ikiu8tsc=z@$bZYf%RkHC$zREz%OA-Hat`8c^<-YRdD*T^g6#d5P;FIUN>a-p0fr_0H5 zyc{Ek%OP^GJWZY`kCjKrgXR8mFS)DSQT|6ZEc+sRFMA^!ls%T+m;EQZA-gKOC_5`V zDLW!NAloC`F54tqCtD?3DqARrtXO82>0~OIR3?ydWONxx zhL@pbFd0OaDNB_l$YNySvLKnC%v0tfbCCU(ewTihzLUO^K9fF@-jm*zUYA~x_DD}l zk4q0p_epn2w@Noi*GN}L7fa_!XGy0@CrHOgJEYChI%$=(RBDwPq#CJQDw6V~OesZ5 zkmgGf(p)K6nl4R}#!4fkAyR*-m-PR!`X9-#6KiNoRJ)t z9G2{t?2>GiY?Q2#tdK00%$LlPOqEQKjFEImnk99TN=d22DltgZ61hYq;Yt`1ii9A+ zNZ=BP1T0CDBuZi=5t3kupTtw*B5{!X7JnCi5)X-AiJyrditmbVi~Gcv#plJR#K*+l z;=SS>;?3gq;x6$r@j~$&@eJ`~@i?(v+$wGq*NDr-MPid!Csv9jV!oIqriu&1STRxz z6=#Vv#L40~ailmz>@W5f|3AV0BN`Tc5xp0^7Cjd|65SK^i>`~Vh zI^ineQsDyOY~eKFL}91UCTtPb3#){sLaWdqR14)ok&r872+2ac5G{lWbA%vasxUzq zEesO|3Vnp`LMP#0!4JV#!3V(`!Jy!=U_j6>xGuON=n=W!1Y!R#%bP1LT z77FGFrVAzsIt6w?tDr$pEhrNd3XB4cKrRpoxB`ZNEWise0=NJo$P}as5(LqLFhQWe zN8m1S68z==;D6!2=fCC;@*ndD`2GCr{44w({%QU(em8$Fe+Pdve;t1ne<^Q&_ ze$Is?x@RRv*{78NX-=FWrcjY_q zfAhZcKJkWlFL_US4|sQYH+ffi7kOuSCwPZ>`+2)~TX`FJt9i?Li+FQ+GkBAE<9K#n zE3bi9%`4*-@{BwUPtFtZxI6}r%)|50JQy#B2jZph;(1ZLP+kDfo9D)J%jfZ`Of*o8RER;Jmoy# z+~M5hT;*KkoaG$n9OCTb?Bs0WtmkxbmT?wx=5VHSCUH7BHcm6Aj#J4g;aE6&j*27Y z2smsGjZ?tEauA$c4w#e1N#w+E!Z|@4UycXIne&(ZgZ+j5p8cBroc)M>kA0in$G*%y z$3DqE!al&>&ECe|$X>%8>>}qxy+sZbu)odAC$mX!=Y!VyG zMzW#oEOt6Oi5<(1UqaC)@#;t)+5$E)@@cF>oV&+>m=(4>i}yv zYa44LYYl5TYY}TMYX)mFYaGkYYGKv0s#v8gE6c!Av!pBmi_N033RqYcl9kH>v(i|J ztQb}}E0E>Ga%VZQ{xW|sKQrGkUooFCA2RPUZ!)hkFEYfIADt%zo#X=rkqh{mDOX(Sqs zhNMAhS+um#raguhP79>@(A;T`v_I5g>SyW@^(FNw^*;4K>J4fywTF6|dW?FIx`(=* zx{nUdndLCdyjM3d&;2Jjx8p zWXd>-jnYD?r&Ll(C>Dy2qNGSDJPMOSq2MWK3XGCX$)F@tVkr@nV2UrrgW^Q_Oa4Lr zOnygxMSeG;$(2h8#u?B>Ry6kBIyxeJ6b)y(PUMJths1`bmAH z%cS$9lcXc0{iI!_t)%s&F49uc0@7^KRMG?zKx!j3lB!8%BrC~4Qj?@40f|MTl87V> z2~Nr(fk-K&I8r1jnB+(DAUTu%75pgpQt+~CkO$D_D+`|*AF z%lLEnlla5<{rH{uE%9kFUg+;LUg)UV#_mxp)Sigva5L zcqkr>Ps1nRqw%5m0K6C81wVrOiTjFsk9&=KhI@#+gS(0A#a+Oi#vQ{Q#O=Xt!)?T^ z#x27w#LdP{!%e`A!L{KUan-mooE2xlsc;e;AIHQ|aCjUVmxs&7rQ?!tF}N^XAkG`- zhI7FE#(u+o#J<4}Vjp4eVsBxuVlQIPV2@+Fv3s%Gu^X{#u*DVM}3^p7ai1op`VI8o)^S|YP%zu;rJpWPt z-TYhmSMx9CpUFR#-<`iFe|!GM{5AQ@^B3mN$)A=#F@H>cTYh7Hb$(gCHD8~v%9rHx z^O^bNe0)ACKQBKkKP^8oKRQ1wKOolZM1U-Q6NB5yGq0gaDpbw+>p?9D+qt~KWpckX(qNk%L zp~s>-&`szXbUC^ZZ9uEhQZygULQ~LqG#Wk1r=!!+iRc(~7&-v$jdn$kpnjpgqTZuk zqn@E2pzfe!hI$ZyDx$T!I6$VbS#$eYNk$P38R$fL-E z$lb`T$PLIY;yL0G;x6JQq8D)iaT;+HaS*W^u@$ia(S=xwn2(r+n1UFG zup?R!b%+W?F~Wq9-|(P0HJEDQmIz(BARSR5<@76kKw zxx*Y`zw^H3eaw54_dM@m-rc;LdA)f(d8hM^<{ik}mA55tecr0PC3*AmX68-K>&)xO zYs#z5E6*#;GvulBq2W*#LEpNGnW=7ICl@)Gi*@YsyDWEM?(E#Dx#M%~xvjbNxs|!axu#rAt~^(m%g&|d5^^!Qu-xq2^xVYU=-jZ} zfLyO!m)w7lACNDQcaWEmCy)V1Kco+G333*49MTQh3)v3Y2w4qT23Y`^4VelV53xg9 zAa#&RNHN3&(LiJn0fY^qLI@BvBoC4WNrxmtq9LIWe~2f<8S*dZN6zP*p_~^vk8=ic zZs%OfxtMb%=UC3coIN?)ayI02ZR=P+}~ zIk+5D4m1axlbREs6PXj7^Iqi*^jdCX5Y;2&F;xQm3<`pK=!We zE!pd`S7tBHo|`=*ds6n;?Dp)&?CR{&Y)iI2TbV7+=4R8g3$pXG;n|REP5Y<75d zV77O*YxYRiudJ_G@3UTIJ{%^Yby*czMOmgSO_nT6kj2WPWZ|<=S@LTX8 z_!0On_$Ig)+yg!ZJ_6nk-UZ$QUI$(YUJRZKo(`S}9s_OzH-M|brC_+RFa%+HxanJ+S*WDaEB&b*d+G4o93vCM;+yEC_D zuFqVRxg>Lb=FH5=nVp#(nN68BnPr*QOns&@Q=G}oWMq;uv6+ZWNG2#VIWsmhJToxU zdlcmw0sRDh0lf#k0zC!Y2la#cK$k#gLB~Pepgo{%pbeld&{EKR&`i)2&^V9{)C{Tx zm4gaF29OFQ0r5Z#5DA0@AwUoi2$T$p1x0{@Kt3QhkOSyf#@CGZ8Lu*)X57!{&*;mz zlyNrWct&@|o{Vi78#1~wmS!x-n3XXlV_b$UqdB8CqdcQ9!;qoMkYw;O7#XAtYz86& zk^#y{&WOzj&j`%$9t8wP(toCZNq?XID*b8t{q+9yzVu7!XVZ_Tcc<@3-66nt(>v0e(rePo(yi(GbY;3YotsWiFG$Z%ho|SHXQU^k$E1g)2c&zYyQKe1 z`;qoJZ7A(!+LN?_wA*Rd(k`Z*NjsKyFl~3**0l9$tJ0RF%}bk+HYsgvT6e|#5sf$wQq)tnnkP4)>rq-ucrWU7~QZ=cvR6!~$m6D22MWsSh z!KtaK@u`ui!Kpr}ZmABbzf!)Yyia+R@-*dsN`FdU%B7UEDaTW~Q}(26OWBapm9jKt ze#*?0$tj&F9VtyIH7R8&))ak;GDV!iO`)e0q~xc-Q*u%=Qj$_)Qo>RKQoK@JQvN0n zCx1$Qn>?8ODEV&k&E($Xp5#->N0Rp^?@ZpDyf%47@}lH9$E<$@R&V$;HX0 zWKFUxnV-x|CMV;Pk;%EqnaL^1amf+MLCHSJZpjYGzmmQty-#|T^fc*yQh!ok(xs%c zNym~7ChbnznzTM?Rnn5Ac}X*pCMAtcYENoRs!l3RvLxw}6iK2ab`mv-kc3XkOUg=0 zOG-$JN(xExOY%r^O8S%dJ@I4Wo5bgd4-)@Nyq-;57<<{)_(+|2cjrelY$~{N4DQ@xAdq@u%XC z#P5&a8NWGxZT#~1h4HiFr^b(ux5u}{*Tq-F7sVUnRq>K|UOXe76pxKZ#6#ji@yYSA z@nP`+@m}#R@&Dp}#C?t%ihB|FIPPxT&A8sUp14zSN8EBh+`_ooaZ}^Q z$Jygr;_Bim;)>!7ajG~;950R$M~cJ7A>tr$ptz*Cn7FXGfHm$-kiKVm<}zKtD> zeH42)_GWBvY)|Z|*dwv~Vt2%Did_@CJa%F1?AWQX<6~{H&9Swy<*|jahFDdsB$gXX zk1dGJkA=tP#Ad`M#m2;j#`?#4#yZFTjTw&l6!SLbdCbF@J25w6uEd;=IT>>}W^c^) zn2j;3W0u7%h?x~LC1zYqM@&;pO-xygHAWw!j1k3fVrVhM7)%T-COalQCLty&CM3o$ z#v{fl=1=tZ=nv7aqn|}Ti2g77di3S!v(d++yQB9+Z;Rd#-4(qwdS3L5=t z>RQyrs54Q=q7FpuirNyjE^1}e;;1=M)1oFs0a2|{^-+~kMN!5mb(A!UAH|F!M`5E7 zQIIH5RB}{oRCrWClvk8X)W66dk)I>qMh-?kio6?nGqN|bC-P+E;mCcFJ0dqlu8CY0 zxgc^@s612{$_}N5 z;zLoP&`@w_YG_<&L}*Z`PpDhyNXXBSFCp(jUWPmlxfgOP9uq2ol%m^k0V}s$rIl&phNx{*uLPb8JP~*(aBtxDzzu<2flCAD2hIqb z6gW1pJ+LvbDzGHb9Hk2>0Yd?U z0gnRi2HXs|5^z4?WWeEoeF578HU_K?SQaopU}nJNfX;ySfX0C8fYJaQ$Yy}muZ zr+g3l?(^N@yUBO8?=s&7zO#HM`*!+v_%``g`rr9KuPt&iMC=)?A*_~3m|K2V=bpA?@sp9r5oA8#L5pAqjL-k-gPykB@f z^1kbR)4SLEy!T1(!`}P6w|j5&UhTcid%pKf@5$a{z1zJTy{o-Tyv^QP?@{K_o8?XM z#(N{ZbGF??3>FoK(5b5C%Oau0U*b$54naR24@)$P68OSdO( z18%q7uDV@tJMDJFZNJ-2x6N*A+?Km7beruq#ciCM&8^9;#;wfF>ZWs3xQX1@Zd5md z8`=%(26jtzi+77~3v%;ub9EbW{ptF}b;$LF>tok@t~XtKU3*+lx*m4j=eomnqw8wd zWv=sGXSz;y?R0H-ZFH@6Ep;`!YF*{70#}wR#TD<0bj@|mbWL`Rbq#k7boFv|asB7= z!{w99TbDtXhc0(qZn#`=Ip=c1<&euBmu)T^T)JGAxXg2z;WEi(j7ytKgG;4Lv5Uz? z<05t8yD(iyE?5_Y3&bVECCMemCDg^=#nZ*v<&X1s=a0^BoS!*AaQ@G^&-s$`S?A-< z2c362Z*^YhywZ8G^IYd?&J&yg=N9KW=L+W{XM?lKS>nufraKon=R3okvz^nO6P=@+ zL!AAb-JKnse>;71dhhhg>8aCz(`~0~P8Xd{I~{d8;Iz|ev(s9q6;2DCW;;!F8s}tl zYIdr1Ds!?r>7A5LA}5X$&57WIcFJ?ga!PfIcZzfha`JIL{>G;L*o#P9~$By?L zZ#nil_Bft$JnXp7afjn3$JLI@92Ypw9ChJ49XlKw9jhHn9nFqfN4cZWk>yBn#5N{3cDqkI*=T&4hRRxsA!+$5aST);P2q+;Or1)9s#b` z{Q_F%e+0^Vo&W@&tH55%e&E>EMZg$-BOrRt1NO~H1dPg$c1-?Zy8;8)M-)W+rp2S> z8`6pl^&4Gx*0C_ZYF#}@wIeO# zY9`D(RUKsbUB!NuTlFj5Tp5FyRdGG2yWD#5ei_^Jw>05dWa(B#Udf#vdhrpQqG;|3 zOW_Gsh4o5Et)=u=t+^tk+H|d=#JJa2Z_qgk^(Zkxcf|{&y@m+T1U>wsn(lW?DZjBx zu^B#9{a{3G- zqok33OrAn}x3rJaM`|N4QznuY51k`sd6y9SPr2hkaqF=+vJ3L({kwyvudGJhjdDQ> zI~T&wJWYe?+54fU9#U>x$(5Wx`LgV4{(Z3HZc`?wb}-}XisJMGv{$Lh=Hir{q`{=F zy{5$I`}gDHF3IEePQMoOA&(LLx;B^&i|!poF@BUbTE&M0QJ8{fcYOsfb&mA z0MDxj5;6z{W-I0sEPE zK=GR)!0a;wRD#|D(@1ZC!_wElFY_yaTk#UuRr3N!tr-Nil|2V&#%I6>;ZtB6?g`MA z{1{NXJ_2}89{{4m_krRW1HdfJJ>XKxT_F7Re?a4=e&D6~Hc%FE3vjr21K8AX9k4|A z0nlStfk1UH;QaYA;4$G6kPv(k;4JR}rX-vP?yWit;G@m}`(~X22o5KKf%4QhO zKKuxfI_D7J|N0={i#q_sP2C4jZtelv!*>Hc@|{5XobAA}^IL)B;myE_q)k8-YXgv1 zz7Fu7yapIv)dl?6vl8$T?}08T?jxg%m=m~n+p(k%m!X8nF*{OGaaZi zPX(03$$%t$B4B+p4w%|K7C1i&-Gwy*jGytJh1$=ui2hJI!z}CwmU~`@TI6j{Xy#2%i za@h=E`U)!GI79+wAcz384F|kGgaOWcMFP7s;lM!+6zHFn1NiO)1G?)OK+pSBfaRVH z3`QjYOF^+f2`mZ_qQe0(Is~YM1p;e9e!%A_Z$Rtr0X%x|0@$uQ0?3{J?4FZ<+lMtj z><-{>_LOg*?B>Jo?MK_*+VhaF>}Q6a+pAYTv7~W*pJ@}XV>}}HB_FG4{+qnr_MvMFn_Jw!W*h{ik z*_F0s_TmeR?DPHR+aC*N+d0#x+i#zlY`1?OZ)c>8wL^F|JF>RbuAALxU$>>!?sKxz zKCiFTj=f)KcYbEF4?Wk}zdcde6Yk0E6}=++-6K4E@p_g$d@9ZUx|C#pK*ig?L}BdU zA-H`)cdp%OOqP8OIm2#sNU^gI#oHy7(RLsv+kn*#?zxyYe#L!$Zp$W-CkSbiXFBa|82Hy^<8hv<)tdu~})OTJVQJ+uM0Qwl6Su8|a#&ZARgr zj)dXw9Z$x6>bUMb)bVlViw>gila6B(2Rh1r-|k?R_jSnoFLlhvo$GL3d7@*@uR|Sm z;(Z+r>vwc){IaRT2fwys?bsC^<);>P6#bdgF+Xp5$5+e5j>)sfbnv^|I+z0u9Zf&0 zI{phP?Wjz*bf8eW4kTI8QOXo`++cA!s_C>2GJ)8^fnqwQ#=|;BJhD5szDw(v(VNh* zVN+DccY8>OUFg?=kM-z)4?1>OHvMkDT=cEIJmEt-_4ccF`GlwKt8?$Sr~P-keX!+P z`-9Mn?EyPZx7$fa+td2?w|lC0wr4!r)ZS@W(;hLfto@B>LHmz0GutW9$?cbxjBTIw zx2=7SwxPZ6KxI46r?}lyXKZ)ctZL8yC~n`K$89gEp|$Ha6WZrKK()L3Lfem`GTZm) zlG|U|W7-YNLfa$u`n3n0cW>w2a%jK&;Ah*kr=QzqJbl}COQo*0%9} zb#0bIWo=UpmbRY`+O}OQq;0zpytbbgXl>IJgtnq5$hPT4khb41(%bf%6WR{ljcD`a z2DYs`bg$*Jw=#9yuXFFv=rlHRt)EPB>D=G8!J9^zIj)OMxSe)4Q<Yt>}=Mts~HhtzjH{D`049#Z*_dQrn7JSC7%R3OnVkVu0Ve zp_$&wFDJCJ)X3IF)STA*%(PahcU)`7%h1-?6TYoMb6s0?#=kB9K;K%vzaMI$?tI?z zs_cHt^Tb;%s9Tp?o{l}!GMIU!g>-FC%eSg6EzVwRTFSbXv}ESZX`!8%+;W&Pre(_I z=9Ycz>X!U-MJ+K{eT#aVtmSJ2ujS1cY75~xw&epE*79$8W=r|!#1*I{_vVvx-Zfu5|GYVGc%b=D(#_^{_NC^16{nilPVH{~wsvRp=I#y6CoimM z#@?FW962zpS^J=~*?FL~+5c8e^Oy_8&5CY)^Zd24X5>_Eb3p~Ac^50cc~TOz`TY0v z=Bo2?&9*tA&EFJ0&Ha(i&58g0Y`Q(`W7Aj4%chPm51MLL-fFr=z1+0q#i^#gaotUI zF*}<&cdc*wM_k_Y>eAdMqG(E!%T1sOEo^EUxKPpb4rghq-ll3Yh6|fc+vrX6AK{wr z;9yPD7l4}fzK(C=V#1mf<9(WLUvg^d@%h=9#s1LfI&QF0a&VwA^yT$NUeJZcU+CkF zv6_922U@l?o}bgz$lI{6k$YfzWzZ_J;E zYqYiHHDYxcjg8p2MsR3IqwbAoqwkTC2F#>y4bS**8+?MEH0Om2*ER&cS=@l0GPB`v^7sbt!>tY7oa%;GcdQM|OzMUkgMx+`g|vn%kMkR5 zD{>p|T}*A*jEZjf*A>uk*VU~7SM<9+?exd`MUgM+=Tr>T2OsIHk9R#^zn6Wa{`$0C z^=%i{*Kc=NR$mUEUBBNlp?>Pjw)&xc)%ExKt@ZM+s(OR3p#FOzwLUrzQ-2MgQy)Z2 zt{-GX)HCV6^|%73`jd#^y8g7GI$Q9Qx`V%O*NuC0sqWeF6LtMd_SI=?HrF+iSJtHm z%&V)oJE@MbvZJnBUt4z~s;EwPLtQs-f}qX_r`DZ&h^{+3KD$nnmQ*+WOjw;l>s@#B z<4En%F<)yHKCf$M&3jO54!co%WB&QtM}9|Yr;guQd*j>M+C%2WwZzNQYYQP`YeBOb zYiGSFt({NO*J9_3YsWvO*H&d=M=M20EqHHo?Y|GophR&(-u`4%Ji&w$~gsuCCc#xu8baG^J*7o2_PQTWw8RQ{iazr5Xi}c{P9e zq#6bWQA3Ca)jV;Ct;u^BPy;>aQuA=yk7}%TsG6SfxZ3gK&Fad%J=Ig|j#MkMcUJ%R zY)!St!iClEC{wG)zq3_en_F9b6;@c?*{7_2Tf(jO{7bBUI2~495|LiLWmQ!5+9bbf z*=on?*c%!`J-Y{p00xnY+t}cdac)hAu1@G)^ujUvDc91XY$F?J$&+uZYSwgj363>XGGcYck56 zpG1{EiuNsEDjq3APWV)|XYaEz|A)8B_%0X9s?rXZ)ls*VDfKJMk{f21U7yfdRyePr z?7{M)GTa(v+1R!0vh7{CvXe`4%8txTC|d;tl~q)@lqJi)m!8GEDiucEEA9DyxfFEm zSZT}Jou&KhSC>8{&MW=yKB4r_<)+e4(@IMF8S2ulBb?IOz4+1$3#9bAUt(#+fuPdg zDwk5*&u=AP=D#e_W!)_~cH&Y=u;6Hk;okO=)uvS?_n*%$@w0Z8pdZzjXyt_^trz7b zbI{C^b!#ytyS>0AM=E1VPF?XWIh#IGe9r!{`0Vv3#itT(79TG^TYO~C{^IU$8;TFW z7Z)F>o>JVsp{@AX-SXnI9=hT_7{BDQv;p9YKm z{^>8Gxm+k(`6iR)k7Jfh0R=A_AywDb` zEwprV3(YEgVe9wo!Y#An3cscJ7itcSSnpFlT3dP_TcMKcR`=VdtiQy2tUkSKtT@U% z>-7EOtiO{RtkY*&t@v+JYk-nwbvuZ##s#HW)umz9!$;k$M4w^H8^ue@;Z^@xc0cQ} zTubh@gc>(l#xGuMiSC_jx&ODt(vw+gc_2|);#*mk8A~yi^lp&l!}UnZ^Ov3$&tE^y zT8}s8M?v?@b0aUAn_~`}XGCu?-ws=97Wz#!|8s0JKlxN@{_#L%rk!V*d$wTAW2b@4 zwIz|}C8SXuJ?y7x-m6!pq62qK4P!2tj?%kL1)iHs4i^@g{&r3>q4JweyWSOGW+y$- zO~~xiP4_>c`}T3W?)25=x-Xli=_Uhhx^d!C-Sb4HZreM$ZeTw`SJ#%JtHTEC?*DMq z?cDQG`>y1Xc2V?I?Y2utwUDN*+PJu-+K$tcwM&C3fKo#~)v=6~xoDE54f@=&Mdb4snoZH7TJ?-Nh6T#VBs z?8?+6ctvVf7~M6C_kL3cIzLx?3T~*!E;^}hxxYjGDRzZ=NHa}cy0BGU+FPt1a*(UP zROdhJV%Ap0;xgzF6x2uiQ{GE&%tix`tuuGb^os@Q8*e)f% zUn-pvFj+bS(kK;j%+ebcfi$EQCk>wlk`62hlbY5$OSf$QC^@j_fn?&oOOlwq2PMrr z)=8FZm?P<2W|zQbluNd^D3lDRoq?@B%T#JB5J$#R)n+P5&Z``Ct}~& zEn3vPQgkA6n&@% zfd4jY4S&6SCSPf5^HIi??S&Y1ONPPZV3<24+~XAPPTQJku zYc4ji9TjGF=Mx?~trWw4|1O1nuR4JJ=KXJ0V);v!{rL@+ljb;U=he-u@x%qJ@!Q9+ zc0^RLoX09y<6n?juu;w5e{&=&%FUG}HGX6sKRCct`SdVT^?R79+gC6ZKPNMflN*?- zDF$X{FPoX?hh)}r6Pd3j`7oE99A+kwQjW zl8C`4;}{l0I^%F_5JNiWFCDt!6VZ>Om{7t^vz$I%45D%$xR6>YXJmA2z` z4lVIaB<<}I7n*m~2kJQDJ*vd-9MyJjC)HuyQtG3!3DihP4RzN?HFe!i8ufd5E_G9C zH1*JZS1NeUN6J6)00sW}9OcT&U6hN=Wt7a16DXhN*HGe78p_^&8f8~~E+y12nliZF zl@f>jNIuhhk9-(%DJWcxF91JFFK9^$D&QIZ5VtIOL7a2FkLcun zg!mV;o;aaw7IDeqRwDMSg;@TMN6ZXC6Wh>9M77$7c%}6_;rhbIgwoxY2n#OmBPbrN zB<%P+nXtmSo{$uzBaq@4grDh90vi%dK*3!JCy^iUFOYZfo8f2h-nrZH-k?SJZSiCA z?}N+nH(X_S)i(mZ^JxZN)Ek69yZ;aF;j$OFRX`uk-EXs;fXu`{4@61j{Dd{P3N&>+%BwbWC^z7C%a-9>2qR)8gL z&%_=#hhV>lj_xCzf0;k8@p}I6#3T7}SJve_G|bFj71@&i_oyj9TF=S<`3IiAWJz59 zADBme;+0PrZ}R}=@VB!V$fO;ZvarRN%C%!L=$vv)?*S<$3s1nvPNicwlt7H%nP2FY z1<%ocj`X545eLzrZC&Ue2~*Ka=GCKpU36$!9UWcw5Q4TcBhgvAoY0p;hftK(+o*Z> zj-!raHlfZeoP%2XsSRahTT#Edc&PesNYo`p0?KKzCo1a2XJkm;edNdXbI4t1b|9sm zi;)kxW0Aa>WyrO?668}aJkpb%hKvOKks$|uAb!1hg18cU88Mx|4}r0*K-}Iu5n;Mj zjd=J+iQp!a5!)GHghN>ff;sgse8Q#|@PlWs!Jj~SohN$Ins=(loL8`olXq<%*$Q&r9C%xmo@iP883HAGBUUEUR>_PS?;;V$R8omU++M=)}De0L|Y(ff9FC# z8`~jrffcgr8yA9Fih#Vs#X+t=aDxnXe8>Ss-O1_Ne=>(9*qoF4a!wA?)|S%|Xvz7p zmXos$4$oP1CMM^I&^0IW{=4iwh5gwR-yP3hRKGEMaClaBU0X{w;kPlH-NwpZGz`s7 zt&hqc9&*a|Eqt3*Ja9A1O?Wix-RX5%QScdAv)49e2?F(5N*g_E`^%gxo-jNs|KJF? zA?6kMAJ7N>?@2e_ve{V<(16c z8~0^S|F%5y3~559Yf{Mu|qfMrF};M#mn%FgntA!{~+DStI80Xrt^TZzJ0(Ya`qFZAK3bMU2>i(}u+t ze;P)4ygAxrqjGsWb!LCqV{Fr7i}9)*S|?`ehBi%&h2_@(t)4OEv1NtG(90`hVfV^t}GM z6<&YE{+K>+ve&<~Usqq%O-$d?ZC3B+{w_Ts=W4x*z4>~A*4Opgcfoo#h7o#(8i(|9 zWi0fH1=RFTENs!cIy9>5|D#R!^~d+Rk6%30HNBOnd*mEVR|prR8{p%jyWeVu?q_9L z-LaKro&2so9gz>8bp&n|>fB@A(&_ez)p@rAt7FH1ROe);jgJ0HEuCv|B04z%)7qii ze`;4RS7ofJ zsDGB$4#f*vTHgs;jVZ^qOuhDMc?jugsaJ?;J!Q>q`)Ay>ZLaU*wxaaBZRQ@=wvm>( z+i*|AwiyI^Zp#)l+cr?Bylp6iciVHJ5l!2I7R^NeV$JNeyP9zi;x$d(NSY6Z{WO1F z+Nb%~NMEz!lelI?wFEd)@vG7(U6AcMwmva$nl{aT|RGdezsC+ucRPiVc zQK{8+RdGn%sq$t@R%Pe$73BxTeaecepOvq|FO@~QGn6mbpH&vR9i@C_@vyS$aVzB) z1?tKNw+bjvMT{xkD{WIcA^%=!8~%aPOywn|ZweHpkJtdEkEISuZIT8`v!^ALj9$(u zl6krnn+{hi?#s+mtQ}5OjI`h?s)JC)iBIl|Kc#mm_68~{^4(uoa2gs^xVy7SL6!1a z;qB|&3iO3o1>eoP{c*030{5M@LiLiSf`zq^LIYz${$k;GdD6rOd0><+UlN`uuX%?m z|MGjFJXzdHK4ib4JeMmeU-x2O&UK($ZdS2I?my3bxe551ob7Y2+=re}Il6?0+?l<* z%0^8$$|7p7Wn0{C%Z8C-WzBD5WcOEk%ib8?BfC>lQ&zxIP*&^2 zxXd~9o6L>}?`2eL9>^RWx+L>em?D#D6d+UR;UFW6(U+-=7ndo0G%GFiu~Yg%ZvGZ>`72U|Ree%f?e$WF;{{Ujd>K-kMVi!a zqe!XS_Fhu24_inXpH`I;qVP$%#EeM(PHvGLxcgS}(DN)wnwjgn)!4A-*Yzonrq<9F#AUXjgwE@m()T!r7Q6p=EJGf@Uj}7FAZwWdr&J%n<911oOrv=N4{|#Cd`+cHcEHLo1*irwN zV$H`g#F~A8nD608u@Fx$u?bfTF(D^au^c--v9FdRTjNbzw$>TG-Fi(cYwNgj+}7{X z_^n!j$mhWwB0Imyh?rL` z3HQDDC2V`APS`f#x$qz}P1rsh7T$LxTzJCPQ}~enZs9;_C1Hitb)mRFgF=s58im;J zUI}eJPYT&zjuA3pMhpFS@`#Z20V|=Srs_iaiu^*a*Z&Hx54H*lG!+Zhzq%`U=+*_n zt7i#x7&OR--7gC-n^+6Ua#i2yxq^Tcuyw9 z@wQ;`ycQn5ya@)jyx#@1c;yC!cs;5nco_G-^V~!~@Dv3<=C@bFU$(6Mg-&8KU?Q>#rWrnDHW&bv5y*Xw1thC>KAuHXxvX1N2neJ^PJXa-)KHUJtgRDs?L zNzib53s9=w{Acdx2wHo$3*DpCjFO!zQMSe_G$214RT)b|Yr8L?kufZE%YRX5PLDqt zlyLyv&c6rM)YeCx|H+~E=vz?dC)0>UaxW5N)Pz_t-XVds9As7JI${`q78%LJBVK0$ zkdwb$kR1}HNcn^^Vi?Ph&^}GT&nw&EK|&R5*pvsK>%9&OJVM|P>XGnUkHav(krn*v zy*m7rR{$ojj6zwtUm=`G3G_$(E~NSAJY*1tg(OmsK!Xem=!3X2lpVOneIEFmJ0@Pk zB{6fk?$;8z2@yo@fxq6|WLtCeu7dv0=m9p`c+Voz{F!)-ZZ zOUj&&u1o9{w{~{!+8cH+CXM|nk;b+Q_hBbanXrq^#n?Z0j<9&UYFO@04_F_AQPw4s z6Ra0+ELn%`;L=Aq4?S!a0A zMC;UPKc7!iE05GryPsrG-Ai%QZ3+9RsFXDItam@f$+L*kvvz?(#|2O{uNhHR>C0q8 z=>~E|)NOJ<8%KV&-;QkGAWD8N)a-^ z*_Wa(#2kq(Qz8cy>vFP$zwcHp$~BLC*eLRF{SE`w7z zV1KIBYU$*IS4AfU=P4(R){Re^H;#lHIsGUk=iTX$Go7j-MO8n7%gHIh1%n5J3$+A; zr*tcV(kD4VUt-LIYC1RdpS4FPZVjD0(Rx$y1VgSRu+aZvU{SbZ;1lb`fYKi?0#x@! z1xyn)0tlGz{_l*F`~^Qa`=fG8e%^at_&wD<<5$w9;`j7a%kgK=;*L+$+8)o$n>_X> zDErvbe*wn?wuv9Jv8eQ|l4JO`R2urG+I1bZj=g$xD$V)mU*??8alKrhu=^)`97n}` zG`Ey{n~spZ@88k(&ffOz2!A9gcc@=6bR;LmMGTcEo+|dQsDe;G{XR{8wdh;*u zzvl30KkDth-)+x|i^l9D7yEc`mv2+c&Z@f~IlH1+>NAe8Id7b9sc$?X|7qvr4$RKwb6a<6$voQ;5O;V-d-vq_F4dInSq^5~ z13cP{+-&GZ_a)_x9yJyjUMBk)rmoBzOcQPx^w;e%cqG!UPc~=k$G9r#%QzP6oze-= zdoa16tN7@K?y}1s-T1~IIt%-lIu~!t>(KjNYcI+k(>}6mMyqH~s@9q9yR|ZfTehWr zC2qTXQG8qZ_I%Cg5>L&K79$$scj7f-|LJL*w5(R|J`<+C_dJh!adMVgQlh=uJiSA8 zmls==Bd4G$-tbDrkm92vBs8f!l$4~*zh%4fZA_ig---yOog$kGlk;80vjlrZv4o!r zAcLu(bW>JACaFOFDaA`()AO&~bNP6=)NeX+qVW~7zQ!T4PwSRsy!_H-I6uu~us+Sw zr^|5C>Dz>*53;kR-q$!v>5Ftr);V(|yQuP#**9NG1ikf=aBLhAzuF!r9^a)Uex|)t zEV?mJtf6>rYxA9ytuG+stxu2Ei>_;*5gi`m5zQ&c6k!vsMQ-YU6F%^hBwTf2tFWtS zj*xVlvrrhdN02Gb6->;Q7wp~hQs8CXA%T6zhWS5spW{Cpp~+u3{BBD+)^7{`?=&Ad z`Z8bNfFa-dscPOW9jADA`L6I(Hl*{+xtQ_HZ}xvVn-|_v!}lTiF2c(gyHd z*Z^I#8$kZw2H=_80Jlds!0^xp80_Ed1$#HZOveV`|FPK(wrl{KhRtrUW&`Xl-vDom zH^9Wp4e;aX1|U7$0429K!0T%pAT)6Ul*MjQKZZ?SS8z6V@ z2Dogt0dx&E08VuSL`ZG`i7gudGrtZPBkN#y*E+cSWgV1Ntb;3s>p(Jl9XO}01HB9D zpoF>UO+~JQIlpy~>9!7LEjO=q*FmxDI?&}?2aZ!~K%!?2Ty9tcABxw&okwfHG<6M7 z(KQf>T?1SF)B&5>J2wwb1+gU&VjDdIlxSt0~Po=@WEvcU{vNn z-PA1jQ9BFLGiQM?brx(tFbmdHXF=@L40u~T1F|w^fE9iQpbj&DEi(gj2LA!@_8&;P z^bdFj{R1UC|AC)t(;)B5G%&t94MIuNz|~zTK~q4@a|#$JO@V>I zN#OHp5|GYLf_+|-pj>$pObt$ewwDti3Yh@;?i1j?>;!P{83*@r$H7zTIEb(x2h9TG zVC>5nD7i5PtWS@DD8n(}J~awD-i`wGO>IlsZ4|r_8wFx*e}UZ1zo7BtUtp#C7kH11 z0JY~M;3jnh)LD&y$IHXOs%#jrVuk@`|1c028U~^DLm(<~2xxc>fjEgFkk$MLL?{0N z{oa3ol=L4k-ZBWF%@^hGk8F0Q5`)02X#m_y901uK10Yan0F+nvga2as!QFlRKzXGP zxV-HHnzYR>)ua#n9r+D@X8#79Q@=rj@^8@8_6x*Z{sjizeu0&ZUQkus3v4O9Al#@I z?EBpV>N9$Ppmz_L5$pk}rQM*9)(!fNx`gAMF+S!^b-u<+?<0yLB?7;Sbp9PBu=-3uTt&cK;?gcNcj)AY5fP9TYdnM zvp>MB$q$g+{T*~Ceg|DP-$ByQH!yzv8`yCA2C637fYt3b5PYBwn9Y0z@3Ovv8IP}^ zd$tv@@3w*(k5*7M(*h`WT0pB?3+S6{2H6?SK+&lg*pGYxGAUm`hV>WF(%S?|E;NB- z#!cXETO-KiGy+e}M)0J%0hC}G09T>`j2C_eQvRR8;Bq~{Wz~ZRPW2#h;1ke|{{%=z zp8&3*4k!`o08^q4TzF9n+`MZ+@l*}yOs)YhcGUpOmTG__RRdp%YA}}n5m+7k2zHND zfu0Lhz)rUccve;d(UX+`TCMo-7Eq)<05ds;x&l(eGN4KyaE{ZD-bUF3P@%a0=#h{;Fi4v zHb*w)&E5jgKq>%P8!v#))fXT@;{|Yd_8k0Y_Z)2d{0yiDJOj0Z`9O!34|en9gXyF^ z5T=|5&Odqz{C7VEogbb6Y4;~!@oO$f4#@>ShjPF-N)9-?@)&fVe+W5^9S{iL0m&PgfE}9&qy;iTQ2cG+FLE33C*IoZwr>II<(t4<;wE@>B?Ekt$N+b) z+yFWfH$c$kbl@VE4!RT4fRRWV(2Ktg+W4;nv)F6EWg`{v!>NG1m;y5CDS$ea43==o zVE52fpc-}+yy?0E`24Scjh4&cx#wjdS)By7?M(vxMTx-QBoQEw6TmTz1kjas3CN3I z0zBt0g3RT3@RuA9M*ds?H-j&L<<>YLejpCCzCRBR>^cvK+2??p(mBwa7z;!Vp+HO>1z#^Cz+)W-6e0``_CVl=7X)NWxqx>k7u>tW0aL;p z@Q=v`j|W&l^e78xl{3Nc4kifAV1Pt^28bfl!E7fDm>r-2?LsQ}s73|y@f4suO$J|1 zkbz}233wTkfMPlkq^uJ_StJ46{(=YFtu}qPJ2()+j{`h7EI8JR0VnogfXtm}0P#hG zw5TW$+87CXc0~fQv@>9AF#;gL5ul4)bBW$e0dC95I+XKMEinIACCf>#!=AB_5s~ry}_NG-az8Q5wNTGFyOa73@#;m zfr{ZnAlLB_aLzagE>C)b1UFA$ea8c2%(#Om9_|2t_W<}c>jnfp-9UGiD>yT=AKX2# zA0*y(0fv*#faSb7X->d!*byY!I)Zyi4j{5;ALudN2ZUnwg1%OJK-9Jec~m=ayUG^W z$=HG`p*A3;z#1Ib*aMzS$=&jj!qn*a@#F&M4b32>r2L8k8xfM#w7GJ{4Sz}N^JVHkqN4+h{UzX3RT zP#>tJ>Vd>|U67}t3(yE1!247i?3vU88WvjM4SO5lDb)n4JeuIiehnaeQ5`5XsDTb~ zHE`Hl70^;ufaf=5@Ks(Ji1{ml#T$wstz7{OC~Z!FJV?)w1Iz!(0!c+#@Z-1)IC5PY zaK1``V^UI}&r1?$B}xG4PvYPezc>(b5(ArJ7N{;31;(=?;DD(Jki`mvlx!hT(IW`% zD+vPgqXL^d9Q=S#y#>gx@d2VGAK(ypf#o9}klnR`ew5un(>&KvrI+LFPKE8rB zXs@910n4cL>+F#Uza(;EA6{6i}iA5J0ak3Mwi0?qZ z6#PW5{A@>g_}Wq3?f;=mK0na2obPDKy>IBlx;E5t;wySZZgXr~QHRql=)<^XwD{>4 z6f`%Xi!+U=wo)UyVb_3OKJ^)GimgY>AALf@KGmUb|JI^qVznsCqz3IfQjM;YKcY=3 zRj5~C<>t+y0uBFHjxI`I>9W;RPzb>p2?l@eF+xmXD@Dd8pR) zr)YTo6V$&t7hUblL49W)qamV?Q6;TMXxyG`G~4STN)La4F0k*TJFeVAWggx|pT5mP zXB+OIQ@xpJ*34~mUGO$4rE&}Xw(};j68cgr5xs7jfEw<-gpxcjqEY_wsC2{ylt7L{ zVfZ|1fAJjp{8}vfH7f?qeR3Av^%|hqG8FaugrKvnFuK1JLfr0Y!^v06Ph&W zh~DUOKz-Zxp&#q_q66jj=-VPY)IQG^rQfqbPo`O;%a`_SiicLHJJk|hK4XEN3^Yd> zhs@A@4!hBk-Mi2~I;Loiyb0SBH7ld1-z%Zrj}=kzR0VVb zmPccwP^ka$xRO*<=swnhn~6^Dh; zP)kAdwWUv^9AWIZ9=xDH6nj-4G7iwGxAcY z9(g!Xha9M`Mef|JK^_yUH$TTmq*<{FnH;S^D$C0ew`*kx5?P8w*?d5@h`mRS_LLyL z1;vO^>|2E3`v!^AEkeBKULj32g~(dkOQiQq0YbNYfxPE`juf@!BcTuSkP7lsq;=mD zBuy+A+1l|KG0%B~NYJy9Ovi^vm)HZOx&0nO&%TQ^kg|{;ws(+JflP$An5@g zo`ImoH;}jUX~@I!>xk3EP4Uq?6-if0K@R=8ioDLbf;1B^Z&nORi27;*;$3wKvAlQ@ zY4VCk6lE_Ua_#4l>dbS9erPOWs~3atjQ|ABN0D3-g2bD_i1Hj433zUYO#bU1{3n)gIfo_QeR5$=e+$^k^Z#T9uOw;x%wbwQ>l zosg_-M`SI)0g({jhqP7LBc60Sgl=Gq_;gq!zmoPKIu2Hd(zFFq{=ghjIcA0!2<%3N zicFCcktWDl1!E+zb_X)R*p6uH86mRY43Iam`iS^$Jw%~b2l<+$jX2qAAz?$B$e!yO zNSUKLvN)!S3}&bxn}rk7KB!*T;&noDOp7GmJBlKB8||-C6TA;638_Nal~|Z zD}pAAB4@2d5X)ae$enmWq}W6NiTl0<5rFv+8*N@h^V0@gOjw8cW!K;>#VhdZ;AL2u zcM0D8XaQbvpNBbPv+$FvGjNjGKUn+w6pUj{!coc-u)_N>m>oO{UtSx5k7o_TE&GPx zwVpw^2OWT^8vSr_>2J6&_!oR~r3Ws%*$ubs>4MY0cfb;~pRlb|JFN8V2mI9IJ3KMi z1`o!3g_G4=;ql^Tc-{94TshGQ@43_fhw6NW_m+NwoBZlvsi_)R;8HdGT&!lc`{EwJ#})6x+}yjcuT2)*Tb~JQoVX23 z{k;jl;bg!PA~#@_j5N4i|2phhlnRqvQegMit8m-NE3nL161;_z2 zTx3FlXNpMhpgj>z_=t!5J#g?uGX{QkJQ~*QjD%fJpMf<7!{MixFnDDAG~7u!1;@;V zz#Z&h_|M7-_%Rx|`5gwp4(I$}Wr5@H;|sp zpoqf5{lYNt6N2kM3BYx>{4hJ85AIgyh3BqpK$RP7kP~?oqWxNiPIxatv*inrlj%I< zoHYy0i_JhMHziT-$Ry<9KLIsXk3oE9qtIB^$mUM@Fx0{N1NHU~KsS!`LwxUlLt6U3 zpxNXe2wLfaiq3RG51M~M`)%5xj0ZoU`&++5A@nw=v8xrD+TQ}z<$r;E*KCTPAEC-$mC%T51yudC4DyvMh0Kunsf6dy`LTSc(JK$Cd;SDsO6Ed8Nspn)=4|Ml=|jl+>U{_^aThw` zl?4swWkQysw;`+Oo6z5y8_-dmbclHNI<&7l6{@mHftJ#)LIcy6p>tkI(2v{%sB6n5 zDE(wS#9tBz>C2vnR`IdWh1#>wM@;~|W+PBwD+Co9aiOvpHUxe$p_yF_NcAEOTIiub z@s?z$A(04G{l-JYJvgW-2?PE59R=lBMMBz%5s*)B7-V4{3VptC3X<;#fn<$?p;~YP z+W9pAa?|yP#(67_=eP8@_Ho_auEmkvNP?ru>1js4Kk zKh99Hg%cDL>#({1xEDIBZVz3?+CqolT0+Wldf`)GZUtL3=B^@*9|T2{?)oA~~5Ra~aHD(5D+%~fMuYrawLai(+$a#%;cV$yTvs&xXFDHaDzK|DUI9m?i!agn!>G8P3C?+c!e7eC2<#?CUDg{ zE^_CEwBNcwQizw+ZL%@ZCwgi z?+A(8%^`3-vTmm^p60GrpX7><2XkBHg186m1G$`V ze{N91aqhnYU+&)je7Jkpj&T2JALa(RAL6nJp4@|}?%dWlZd~!s{oJ*6XYPG%C+@PV z16LTcm-{)T;6>$-1R^yZUIAr ztC%9jHOm*}^3@4*<9`csD_8irFXXpykDBswpSo{w-h{4kSlkuPcX_ktpPuHl2~Tk@Xijj(Eyp+_hyHRpLWeo0S${aUlLj~m_xm^|Z+>y&KlgCbdb&6P z|2jA=0zWycO8;@XcYNp2_O)@!yjwYCVa*&Gy@}Hm*T7jxujhQpspI$+*Kn?V`pAiE zujK3;F6UfaDCJ}be&C#xf5&OpDdq^7z2S^GyynDt6>{266mWh-J?C7Z=W|xhKIN!i z&gINzJm#Fu&gN9Uc))q{?j9$!CW}+qoXPqA^A_iBe+EZmJe}h+f1P8yk;-WoO5tpm zy2>$Ay3Co>Oyq z`V5WJi=lAN5lEaaGJ!Kf!*TMN7>@3yk?RAU;g}=goX=<|NAc__j#5krr#U8wW49S1 z1;_ex%wmsoN@ILE>t}s9GvEj(3-#ix!v{ICkO!xmeSj0fbmgSbTsRQfiK9Yr;E*tT zIqWlboIRm7oV?&YoNxY?oWi5#95=7soT~>+IhUP`IgWNaI8Q8$ICaJboLl;O9BoY< z&S^z0j<2L9XGKt*6S%Iz!OtmiEXEW#g?)0Ifp!^A;}eviq7Yv9A}zvsY8&*vgD^>@mL>Hp3dQ zUnwK(oMkTCyOYf>c+X_l+@`ayLR7X?5Si^}OJtiV;z2*w)~P}DtD2eyPD`#Hq1E0#(?nJC)czJPPcfHd(gnW9d!hSdv}lDbBv9 zwv}x?Ax^_aYpkn-WtiK}Qlb4|ecbzvr7irG zW%ae0#hcm0iapc7Dlw^NJzl6~c~(@j9$u_s6?#{&*h*!r+1~do{hSh(1o15^-=c`c zvr@>~T3NtqyzrdmawwlgmVV0e{gJ~OyY+}=f9fI2S?4}${ZAH){4|qwlW>d0+Lgf) zn@MB&7hT)5ic?rpHdk5bauVyo`vevOUu22zy}&xQc8+zlG=?RB02av}VO?F}vd+9? zv;MJ}EXzG~mdPB2)l*1f?I#mhr;Twe^S{xo504{RD`63=X^k+}osLtijkFM!l1~t8 zXloz~U+c%pJ$sCG+x95SW%dZ`!80#bapXbPc})+NV7nX3A$dQ`#NC+N2a zGtrK#WLPp^Bw3L_oJHNWm1X{0n3b0z$m($7XH`t|vV!k# zFrRy`F^e~rne69_%!%N6rs~#N=0@=}^Je5E^RMhU^IyeZW&vTCsi*RX>0R5;G^hS% zHmLV9RqMN$TJ#QPk48K5X#IC4OlxC?sJAlbYQHdD$c;>Q< zT?JDytc-a^0-X!MhvkA;%t&2=*RUC65 z>>N{UOAK@L0m_VVhM8Y}bC_SxvY3}O8O-%kD$^jC%oJKCFz?*JF-I*h%*obBW*#wu zslGLgc_8N$)4(N!S=Mu6GYtq}%E_XLw=;cC8!{ix=`o)r z=rD#7|&<^G0J1781d2*48eP&411Fi#`X_?7+*XF z7@OffV_!rsLu9&(k%)9KszurvuhYIWg0~R4@&*VA7xhRjJWdDSbUG0gI6e& z;U9OBab`;}V@FINBX`}8(G4AA)Gzulh?|Oa{q!M5H^GyUJ92=r{fsN)%r9q#e~=@C z=f_?~sJ9&h`fSZOxZjHLt<;<$w`Vs)tiXiv-f$;F`@RvwN!fs*l%mVX5!Pmm15L*0 zyc**kL4_ePpvW*kAF=L( z(AAaO=~frN(}fql(o@c~(7(1d(Hor_=*Wvt^gn8~bfJWg^k4H8bZU4R{eAO$`Ukrb zIwR)|{g2FRx+MCNJ~jNDe#tkV-dXyDK46eTf0U9<*I2nv_l~$rw`t0xcUs<}TV&m! zy9uVzrHHBY)bCg64fdDmWe*eR(V`dWpUH9bfgiE-xAtf0&JPg!c_D}n@NBwSD}$b8 zNuyWZB-8J#5$L-^adfyknjT{iN#C0gPA?ogP478;lK!zEh#o2vNPk1~qgQ|Pr6*YW z(1p_v)A!9Eq#OHr(7zSA(aq)eZ|dAmbk(+f^oP6c>HSx2=w0Jh^vee==<~U|=}Lm8 z^nYPH>F3Lh=*_AI^sg*k`js{~_1x?{xKF#s#6Pk`z4y~M&O_MFV zPunJTmo^xfNej=pNxL#yG(0J~m zG~x(EOEcem%te?q@j4pqq!fh~9Z00@cz~ll{u@o}G>fEt;)c_RRi|l9A}47B-a)jY z8v(R^J;!M=y1q0R>rLBL;6=ML=Si!wb*J42t~BdvXWAuUM_THky|iP=wzQVEJv4qr zOWJgx8SO@NBYs>dc`j>h#5N z>XYifR280K>VCUHssXc)`mvywsx;a~)z|BwPMrLYO3L^~ebU-W%@l2>y1O(|pF#E1 z##gn}?9q=@OPxw8I8jDDm-3$K@M%*nUoWB#SiGV(VGF3Fd(Wu#-=9)@M02Tm4v(m2 z^aoUG?p-RbE0d}rb&Hzda)bJUd7XOYNeWfJ>k5@6kwlGkytJv6U!Z<`c#gXC?JRXf z0Ht2Df~fP6Y^ux+26d>GN@dQIsO5SDYUMF36+Rb5oq8ET)%X=k6_hwd&9Mun@?rw1 z^67rm{wiN8cG8>rRP``5`@lh}Kh2$5o#jgXTklN$JnKLW*W62e<6%qvNZUibbjN}! zT(_I*G-X1yP~J)XlDYF6^diSB4v4EjzW-`q1>{ZqQnG@Q?#MK6!^{% zCAoZna`N|Y${=4a#Xz@61g%zOc5O6ED`l4%~L^I$GzDC!aA*|`Ulopya9=u&iX~liG(l~Rs6Q*2TkD8z^Ml#n7DieQ};1=DU$i67ZTIk{|1nG)SWu~#*u zIPcJ-@Y!io5Km1?VW1l2ezY>hlchj;7AH$-xF$t;cwd}i`9hQu`$33ush*$W`Gc2I z)3>R;Ppptfmlw%tg7f5M=^3)J`V{$}!8rMX*&dp6wPe?aAIYLmE6522rR3^2@5sd;-jbuLUXxqv zUXte;pOf2K^T_xgx#WtDN8~R(56J0#cgf0sGRgiUH_1oF(#gD&*T}@_WODkk$v4n$cODWO?tB}WV!(l`L5a;DNcHsq%XKYid~)|-JF;r;rhl&i{Jl} z9P5WjE*}O+yf1!}xc7TV&#!fo?!>i|+*sd9dC^}<4S~(1$DWNOd%JqlS%`9ccGy8j9Z|0R(WTyl{llpROHUx_7MW&;v73?}g&;*gG6GD%??G|~$(0kPJgkkQ!Y4N!zy{Bkh;+A*sxJk@7k{NedMR zNE?s#ld2M&NRFg^B(AR=iL}R>q^W92N?hMfD*SCiN~_*MGS4w2UB0A8dVtd=QN1)t z>n3U>S1DzZ`?Nes@T&~zY@sCSO{y5_F;#@*dsLA0Zub^aj}#B7baIvG|7D5zEPtL@ zmM}w1jGiLOxs4M8bp8?pc!r3w-TlObl3&Eqv~FS^rGt3f>p$W}jo+hGq z$!B8rwL0Q!LN#$SU?U1@l@UFb-w_YAy(RMHzb3NIza%~heojoc$Rj$4$N^B?ZS%tx-oO1d-gzKa8KpNu^*{g*W{@3|!rg3XA+o~Fdjbyec=0YjqvOFd#L zqD^e@&?HvKs}U)`m54q0@tdN5orh5Z$V(loykOa{LY z&OL1)q>(-m!YpbCV~dpp^U^YcWz2iR?EYc`Nw|oR)9{jT`^s~|L7zNAv1~5k_xEf< z?T!0{=)f#Ot;%h}ug)8Ux0%-oo*^lOTk2N`kGm5H#5?hXnc(vTOSKq+c_%^`zsV&; z1h5D<6zGKbZ)AdbDuIxB1WTwCiy}O%4<|TXI8DfO4k5f+4i2&fdp+ z8E4^*I&R^sF5JK?nP126>`lh6CS1l}vP!_W{l0+jOge|ZyXP!^TOW)+mBhgZSuydl zzo__2mq_>zW_WylXEZ+W{26@p&M^Gwx0Co5I0#SG4ZycH9K(-Oeeku)hw&j5p7?^u z1Dh+T`|(!`9r3CGd-36GHh9bfEBwv_=J;o$rue^Ccj5=ljqrE=)5FU`+IUwDO}tg5 zD!xBl34d5n9?#5`#s_&y;MYe*@h2|};UN=#yk9d9euA`y+b^|@^DCIg8F+xHE(23m2`YF}^y0d&>aN?k;ZHYk zw9xCg4@=3os+7yP3q}bzp~?$5w}5jvmq~zIkArbcH4ZMnkb%4BPR0535OEbW9By1V z8rOa&0(aId6!)h#1ScAF0yj3{hf9q0#f`{&U5zW3N@Y%zAnzt`A& z&P(hl&vWc>{8MbUL=ILx?IHHK>OJhi`eSa&4^1cZp zX7(8qnOlni8Xqx!*UK?uA|EhLpcr#}_BF;3^Ac0i{R|^=^eINE_A%y<%|i_B*Zh+lY$8yy^M(pNx_!|g z_eSh6&Bv`VrIi*KtnqHlj|^iBFaLJTC{Z7i_EQ_P=Awzwd#;KRQ&Ped#>in5N2M@! z$HXz3r6QOrJwc4_6+VpX{Cc$B$(87unuTaxr>I&R>q=BLr0>OKMh7(nDj+U zUhj#1veXgHcj~`r)#|qBfB$3Xy#Jwaz&M_gBqi$(XB>CN*&Ggsb8c|Pxjo&UNFk%8 zL|YP-L_<=Pkt7WiEfl3h15pSmWro7{`wu+NZ_n%XJg?95e%o{?k7c$g2PRvTbM$A* zw);&=k;y~lozw@)mcd$O0sgkq@%l~Wz76Hd?3hxe=ykDj()qFyopV7+nm(sAqva|q zYI2l|dRfYKi5bdw?+z=4ZU>ZQr&5)*Q+t&A$vc%BsuGp-P4Pj$X=Zfyrj}=|t9x6_I)+uz4-BnO~ZYwDERSNBtaz%D~siMQ=s^WFb zWkpuQ1%=ked<8KgS3xYxQEXZ~p*Rtgp?H;hSn+x&U6JLQs@R;mM?q@ep&%P2Ds&Zb ziqp4a6kRKkiuWOM#ksR$1!$13;5%{^!ktV7zwa;=ULIZt;;zJ)O$_c_-q zZ}0gaH!rv_W)BhcsaMcHHd>uV3?(vb)92iAAx9g5rXl9HQp)JU29 ztW~MJN>(gCT3jfH4xX3qGe0LU5S)=GU&xm0^<>K94UWmP>4)U8Icak3*L&sh8+OZ2 z1t!ar(znYEA8nJTEJn+V+?Dbpu~NBHnNXfP93g*X#+H||>2k^`vb>=!Og^?YSl;c2 zmmf$DkWbz8lUs~>%XPpA`BNrb?vdprk9uw==Py~yb={!yV^LsvQ=zf^ez$>qyQaSU zCt6z$OWr8AEMG4l99SzC>93YwCM?T}QWj;>TXV9Jp(&Z2!7rI}$hd4SWkj~OYEbt4 zYrm{RuUA%p{~)v8@lKX_y+fA%sZB=R&?*~3K9hNDX_67nH^@xe?#pWa-jQvvtCm4H zm9nKHH)MHtugPYHi)1=_mt>RZ0$KL9v$E;)r)2ssvSf>M8L~@|BQiD80h!aDRGC5P z9@*2*9Wv*Y1R38pP8LRwkuC3wl*QeU$%@~JWapN7GLj8P)VA-)EV;QK$K(_U# zo-AEQTgFCgl>O$emj$P;{lAHd4BfIM9T;Db`fJTe#jaCQJbgksp8Q=($^RzZUH?@o z|NL31v#Lj$YW`kY70@XylDw8O4!o4UEN+&re)dHAZ|ISdua<=ru)=a5I#!=~xl7rHdPxecr`ctH8 ze|JiyfF$Vwmw2f>bgNWD5hab?FPG*Oh^1+F_)^E$9O;EohO}LUDs40hmnOnPq(4Fe zrIu2R6ubu|?K_2(^2!j>OON5wD<7Stk-zPvlWI0n9}}oF2o9D43C7avd;{sf?Rrw3 zqnoAQFK9{+RI5wBJXe*j>RBcIGVxDxaP@*@Tz^)g3!9WIA%9A45XU4&qG3tM_Ae6D z!9K}c?nlYC(k{u3`)?$rFWM!_o>s~D_%n&~za|Mn^Pxn=_<`hvU9F_gyIL|qsFXZr z-H@;q*Cf@6MUwXPi<0u}d`ak~T*=My97)&x6OxC|k4Yjs4@tWF(@T@ z=>$r0CKoA5x`>b%UV}?gE1V?PYwRSsb=DHxV~FH#i9eGA-V==C`<6?T7g5`cd&C%^|T+Ye4)|yH`A} z`$7Cp|DAY0utPj)&?bf&wTO*CPsN>}Msc`ty*SJGo;cgMM$9y>68D43#de@lvA0pN zSktgjd>MFNyr`ci*4H~Np3y!j&eb|D{;PRJ4AD3s)>@Y;ez<0j*m>0svFzV=F@JuW z*k~qNeD0S*-1}W3{xU2Omkn^mh#sc+a2Hja|2kY8+ZrO)coHa9)?>s+?x4h5Dv@Hn z5`=i~CAhfatdsa+mYtY(*jn7S7a~?qG83!EfW$8)Krxx4D=r{uiLc`~hMc^~9 zM2f>NL~%Qxi~OS>i{3^&6xk3Th|s87k*RaF=n=S51l7JF3RAfz@|wIX8XLGE;&q%8 zoqlvibh0vA6n-I7^fu$D$Z*#|5mdQfG(}Gl9mMPu^*ASrW=-Nmof6uzJ#A`hsE44PMqu2d`wr%o*j*Y27V z_6eqhJ8=`j54PWhOIqKA!!uum*&q9as~>(8B8s|%E{EO-CnDR0v0<&kTIXlNCfz3C z$+>zVQ9UnY51$owK077Uxt1ja9Lf;( z$qoynaOuJa(0#&=HM@n^za|NTn&O2wE^QUQO^FgVaOJ|SUSi=_0AFZ4!xkF7p$mH} z$U@1nFyT!(LHH;DCp>M67CJ8a2#$JdEdr~hQ~{Z4QEoJeWXVW+_tlezdr6Fzt}yWzjpBq z-|k^HADEWOZ^0eqqt+kf?`ccr@5|c552Wnicj+bYVehx`G3TQB7F-3t*;vAN{mkc! zFLC&6A%m}PPT`;Z62|YpOyK_%;rNZ_Xg=qQ5C49lC;zj+jo)hO%-_{#$Db^)<~wpA zd}jkQ{z8`#|Hvr-zn7%L|Fdxu|NV>g{Jn?Q^1owL_$I5Cc>4A8ym!enJU09{@5;nD zujcv)FGD)WvoY)EWqka^t2x!pyAt-6$6oh}_pY&(2iWzDX992HjgQy!Qj72LK1I~< z7WJxlU)sueCk~YGRD7=Rkkc1=-Z%1jt3Q5&#zS8Xz?DN z5oZTaM=OE%=E*i5V@EWv$X>y#84&Z1pXT#ygE+jCf9brsN;0oP6vmV35qLw-u{_(I z{ycX(AD((2f>(F~&Rga0#Iu~V<>?ez@t#pEcz$b4d3$dg@(xP$c@$l3-tc2ho`1YL zPh_sj3+h;j__OzKM6|=7h?1VEi0eluBH|I>BUFZmBUm|KA`(%35v(5{BG#OH7mPKj6YDes;)QqSksYjGft%-;{y~3Sz|I77%KgVV6nBuw{ zPH;cnALHUV!`xkq1Kh;?UM|A>1Gnj8Cs$|ZYp$KaOYVld&$-p~$6WK71}-z_K9}Zv zhimw%ihC`(oV%c2%GJMih5IMq61S*7pR2nkmm6k~!wsv+)t5hwz7F#=roHPbezV8Tavin8bY{2Mj*FnB7j?d z$d9|%)SC;eb?5E~bKzbdvgc;+w&4;rtQwab~AJaOw`e;}8rwIG1j` z=j0{ka)4`d zIK0!DoGp-}98C2A&Y*uPC;0Vl&MsauCvH5RqK0!g{lOe)G@f&J4$aX?^X0g2^x~N3xpBHIoH^tQJ5DabnscSeg0nNklmqNC z1Rh^s<|sM1ISby>Dk5^IF;GzdmITDH_?cKkC@86fuUuzuOux#0 zt9F?!Ja(R4yD^X5b@CLuK{t!NHTM{M)Zh@?wqQTo-6Vy*{?ZQiHE;rZL(w+2HzbdrLdEP|S9$Cv#G~4+0WI~*{jpnu+>+VS?_l(vbN66vR=nc zvKD^)VEt5#vaWv}WI6KsSt;*7vCfdYSxGP7u)w%>*6D{WtT%|KtoK!qSl3{6EWe^! zR-sWf>t#*_t5M@RDN8mSQS`HmR~KHm1k|ts>=hiuCLc+33qK`efhqgWyf91LcLtY zGC}@hKD+UU>0va@j5|8POqw5KVim*8zODf#3fs$!u71xHfjgPt6R(&z{<0)q3juXtKuSc2O zu!GD4cT<^3=6jf~8OhB1Gx5yz{H;uAb0l-Uvy6E+PsnsuiC}JzWHM9VP?$_FB6FdT zz?7=vnEBiMnfcvFrqma~oWJ7AWN0`t_r=1P@!e3SlMk4A_cDm7z7EKQZqZ?CyxGXC zb6?N&$X8|VUS45ji2pLA&*vEHZKoK?nLim-zegE0)FHZc66^btex>;Z#nRm)g^_!i^XNI9cBu$1wm5t=FI{6ZM9x{ zG4DNHSo4-XqVbCEC2FNJ?>?oYHa60y#dY+!d$shsjn(uHaRt5VZYiCsSxkQ;yhPW% zlTQb)&!x{tWYY_(j?>qx9-(8H>GYr*d+7#CJL$K>6X`}pvGmZHXgUF}pzGv`>DR`1 z^tDJf-T63;Zq*k~A8`nwC+x-3+g_pRzfFDV{aZch=N`i8W}BSou{>LPX1OIj@h_MT z3pS>g<^k!`-*o8f-8a$4)7I0^b*R#HOjpqv(SK?3dvmmawNtb)@=sdC#Zg-R_d(iK zkAB*&v`;kSS6#HDhHq$(rERq5H=Aj>i;ropxQDd-toyX~k2SP5NEPjDOc~Ab?ls!U zRYkN%gbTF$IeD~wJ*Q}!p;@%8TaMAr)*PfA|CdS&!|tJd%1EZcJL73AqpdW8D3Z3e zR7yKBA)pPqacOIIGibjX$+S|nFq%VX5G^GeLp#^)M@s{F(-1;;+TCJjn(CMx&BVc) zwmQy&cDu%e<~(me+lkbpo!F~Ii*3@NnW(DK&f-;QeMkOLf4%raeWf`~-9en7{>mDo zy1p5r2Ive>O{hK8XQ#TUUhm#ecj>iL57Anvg40i^Yu`PjChI<+-l5!~KFY45=5~}( zy|hZG*Taga!xnlw8kq{r3Z>p@4Wyc>VyJXKKPr2N7Zq0RMtwH!M0K*X zqssVJRK;0yDx$-f+No|p^+D@W<9BYNCfr(2#f+&^`@yTIL9D-&y;*aV)aR3w@TDJ= zAMjBMJ!+70tnf1>v-=~3r`bhWKzC3i$uBAA%AZp%d}*S@02(M7A@?W=`)*UpZ&y;P zMy^x#gRWA{!V4+K(h4X~?&MNhMzbjepiGK4@d%|PHJvh0y_YgFw3AW?NTfsr#Zq4E zjHalS$tjz9MU){;9_6qvi}ELiN^!eLq@Z3AD8OYbrQX4x;>bf%wjTGO?5=a6(7)SL z{u$U%;sPO*+li)>Cszz9g>UpI!7Eyn$Mzd2>o{r@!^0|+h1>tg*9QKO%{NYyBfTcb zdu3x}arO{dr=g#Ga`Y4Vf1@vX*6$6uC$f!v@^mv<`_W^vaIArxqI;jL^sOO-6*tLO zPu?Ie+`mdT8Z0EMYn~@RbvsKY@^Z-64rY>HRvaNe>`Eu^TiQ$BXu0eEH8GKVYI`g> zBR`r>&mK^gNMc$^5B%{1N$bEbla!|TG zIjzK+eC(wKS@6q*yjs_goZz8HzRlJmH|^0NpTD%0jDNg}+%WW)v}WBO5&$+unh*X- zD%~RO$MXq(Xg8ve@24(mqvBdR2Xw#C}^%x;e+mq^v0=}bcT3|WD}E5I+AgQbnp5}(w*iE(*EH?B+!~PQaU(=^uTuq=@Dl;=~VJo zlKbgM($y*{X{b#=njGbj+Ep2(WH6cZ3mHoCUqe0*OByQ z4n}I&Y)RT-3ns0`f=C=5fV4kJo0OcTNkW#cBegfKCOLgv3KvYyhx6CZgxi__3UBuO z9_~sS4&R~}2v6AC6CQG=JN$Rqn{e6Vw(!yq&EXFw9)}mGJ`4{rx*y)^R1*%w-3*6w zZiJg|yBhu>y)ayqR}g-$JU6_*F+2R-yW`>KMh}PE|4R$c(%Ku|Xt6WA(LEtND`;D| zBR49%AVwDcexERWFq<3RaD@>rze5i1e;yic{UI>icPt~%(IxA`)oWLWZ-2T(tav+5ygM*WJUKBz z^!hhOytRIqI1d;gZi4m@XPmo<*L~j*9fRA5X^dv#RqpXV*RAkAt^~VcC_$ zl=Ih#DJ8|kuBEPJ&cF5(%jfqH=T&wP^)_rLuIO$h zJ}{0XVlAb_iw*)}vpa{_($5->~hs=E6$vOomn5{}Gnf zFcN0n^fm1K)4s4T%^$+%UUY_iYJU}$)zKQJ*ZDLovg=XUiT4k}(m&n_3+kx~>+3BG z!+gFLwxj=YSjxcpFzT1HVGCb!!nS?Q47>C7NZ8A->0!72M+Yds?hO0&B_Ry|Wm{Ox zKvbBtUlwNnSs3=TmmB8L!w8doB!_K%9~u_e6&N=8HXtmz!#C_syJuL(3wT&vvtwA& zQ&`yQCTJMH!7MD}zERkbJNjYtTbskC%Qu9H{~!E?S5(5PF8&KWdG1fB|LLjFrV~Fy zb&rmQx~C6@+N69A9Z&igx-a%!=wRgQPy@+}P}7KKp)<6`(1NhKP+fd&DA(^+Xo5$1 zDBrOp)X=IZwAkcA=qmlZPzTLZp|)#Igw8J<2|fEeJ#^j3-q4`FouTZ`gwX#ZCZWF` zMul##k%hKg7l!`4$PFDj#Rx4wLJq~Igoake1%{5w0z#+RzM&mqo}npdc<5g@$IuWP zSZFi|8XB?5EYwWJD71Q7FBJGqD>U?jMkw{g+EBatRiW=H{)P}Q&4rvhIT> z@gpH($=8r6YF`Ky`yu3@TW81-=&KN(UTer2)u$o5ryqtq`FcO3?@dieOXJOugEw!4 z=v=%S5`Vlfq-a+`NU<_EB$<&NVvIc=lH+nXw>8lYJ;89Zw2=%%Y!3`CBc>O zqTn|M7lNCY&IX_OniFi(oEdzo>`3sNtn}c4?R$eCGj|3jArpfCnQjZFu8s;$8I}g` zY!L(pm2rYcGwH#cSW@sMN=R_68$S3F03FPkM+T34^au{Da|zyg-aa@b#X6YEw+Q~{ zXA+!jW)S>zMJITue`9dhBlY0?OKXCi_bn67@fQg1d}jz>jeijy{~aSFd>SGw-0LTh z&VC~7O6(#eQ9B4YmzRWZo1PQcKN<;zt#yQZ*J=q@(r*z&!g9i-PYHo$SVTBFd!CT} z<}6`LMGnF6XeQyD^a$YxDxIJW+DlkJw}a5xv7HcGwv{k&Fp>ZfN(r9c0s>f%L+JTQ zBPg5039W^}gnv76gw<4kLXRDia7fjIu(r>cz_?>a*p+ETh?AKUkiN!*4|+gC;16xW zu_u~@!u)lFBXO$<*r27Lx2E$!ZnINC%9lTbVlR&d1t$*%&4+#t+F|iAsO?W@&~)3Y zpr4mpgYG9i4Pu8p3Tiid5TrX(6J+0VGsy7#ji8U)t_E$v6b8Ko6a;PfekRDE;bhQ! zRz^^n_)w6G`~IMeb$f#DeM}0vR~8p^JY`D|JX{e}0Tu@>PDTWQo-l(ppQZ%8mxle1 zTnGyKvKA8r>Glosyyh8Xo&*o-!#M`U=);0Kh9E)fYD|N)(+z`uk@bQK!CFCCVm%uOnf(=b@$vV-A6dhJn|K3(YixT0+vd6gBcF5xe$09qXcF-} z(A}mf(0ryYaNtpGU_!>Nz)y_wKz)mnK@RgfW;K*NCVAo@4VD3?~Kzou=U@kyE@LjJ~;I|@;z;@-@z{8HK0s%9N z_?`D>@l|_&6JYiD7e8w8 zvo~+yXX4B8E$$`w*!j!&pAXLC{Zh{2C8!)cPbCv?|Ku?K^?@`z9-o5GS+@g!yCoi9 zdNc+f7p%lMGfru}78H9Jwz~HY0`{75{d*PQ`;P~;wj`(ss z3?Hx-im!NLivO|S5U=8|haX$ogfFREkN4iGiofi!g6o@Jz)e)m;NHdj!e!Zh$C-@` z;nJ`4w94NXF zN3txyar)2Tyw07(O;9p$$(o07-Oo~S8vAzRbUl-BlfPqe#n+>8_F_5in2`uq|CWn; zdW?Z93LxWXiy^q)TX>vTBpMeD_Q7p`?|}f0^m5++CMR`2z?I0GmV4i|ym4;!zGlQ_ybr@_; ztuMAj=84VLgJa209I&HtHdq=Mg3Wzpg1x!N0DHk!7c2U(5&Q3;I(7?u4Yqn<3G+I0 z9@FGKjX5^*69YRvin-uFh#CFShtW9q0i%NJ#Ju|5j)_0tf*B8dfiVfcjG z7?+s}%*TtR7&hSwrgHiM=F^2dOmE;ROwD8_MpAGDGm1^eU?x&9iD!3UQvA1LxMMMx z%{fZUd2b13=_?Q8k-@@X;ZzK)Ck!*37KBN*#b5^B_+rdsSAPF-cP%t_ba5nR2K&0zvfbRRR0jGBN z1&o<}2mn5P8vs(a2h43~2`Ih!IKYM45O8wtZb0+7>VS7X6#@79O9Hm16$Pxdyb!Rp z`D{RCWKO`-4VeMe6^8?o!qWnDCies!%t;P-1&B>MzJ0ucetwJrfmbo&5}S*w7FQ|1BJU5x{L-T(rwZqp9< zwox-+xlAo!f}j#`XXG!MdTd(wKECz;xwYN@-kKKwh`h)CAM6|a?V9fTGwId-+_7?h zL`sSO_~s)2 z_oUE&ERE|QtHAcS$GrX7yWIU>YB>Ar7ufnE>@59V>&*Pu zh8X$Z`lRRY9;M}BGI)g=zS@F9!=Ip%8XHjQVfRo`pQ=$XMFpyHx&-BtT7=rAc>#4k?<^`8nuCg} zI*tPP97Yv1??)|A_Mn_UC!tW0aVVRaXw=wVIVyd<2sL+#iwZDhpcJJfl*}~*(O*uS`9ZKR^o=eQ`Z%tCcD$xN_NV zmB)f#R>QR4AMAvmXWOVBg*xbm|J3KFEBfGff8?#7=hk+=?3rf2$GaZ;wXbUMt3Gts zZ<}VdpIT12Uox=7uj%|{zajJUegoHX{c7#9{bW@ceiLqo{7Cmx{f_(Y_PgAa=$D0y z^<%b1`OSyQ{I+)p{933SzqxLj-!ePgufLbzcTRxybNuS(cV6n{H~0G5q$>h@*Kb@(s!2YvEz zsXm(ZyL>pVi9YG2+k6h2M)}B3OMSo^0-u_FY#+!h)h8y3=#$+aYeCEk&KHkq(`7k~IB1vVlNQmig zTsky$pNV~WQ{yUwm?olG)6kw1Ch9M z+DL?&CUWg|HRR3yRYYcZL*(>k8 zfL8Ck{ZG6ze>8XtnD@LjA6I*yv9Iu6%q{WuRw?pkMxXZ%@5=Rtpt8L?OEbI$I)}WQ zcc*%54Da%`B_?`X-QDKBWESOp>xk6bf0FNA#%6m@H&ML-wnT40PLTK1LV)*mk*~LJ zE5f_N+0}dDti8ASij}ve+}wL@JIK2U4)EsWZ}xt@YJ)devDQ1ReZ`9bU-a@hH{-Ru zJmGa-I_3p@G3XWJ^x3QM^aro1g|}V>{B|$NlV&e)Ud#VtyrKk3uj(eT z*Lw)h>*GPD*S!(4*LFgvmqr=hYo8|Ct0M;Kwe-r}OWoPo>(@zJuiKMQFB-+n>rJ(x zmz}Pjmw5XoucS_OF9m#!m)of&&(BkTJmr)r&lk6Tcxq^mc-q8%@r1nY@%-!1?RoQf zhbMach38GeGta*zk31o24?JPg8qW=nD?MMDUH4R^T=D$!>4K-HXP)PlGdZ3qQ^!4{ z!w-9Ul<)WatiH!nDogTw-W2PpW*Y4Y*(LKd=@xj-x^O&iWYRp5V?@s~EWz{7C5)%} zUtdofhNtJoTdtn3HaK|3$gMrUH=285LB^iD69JwlUvKtIgKh96r?2%~?p;9~@mNIs z&YD4Zj7=ce0b>Yu!5{)L(}$P}{eZ~0`WCTzxedW!G$RgIHX+Wc)gun@YZ1iSD#YBz zGQ=L)Rm4F3C4{+NKEglxG{X1s2?WsaDB|_DbcF1A3gV;j4utLYcm%t33qo$DK#&tf z2&0!=L=%{Sz$K9oB`<>!BVZgtEeVBK{n883YvzVHmEeegwb~#qm_QJ};!F@`&w&UB zBOQd{R!zj$CN;z{eHFy!$iE(m^|Ky#wSIfN7k~HYzBA-et={hu!~N)?R@v#1vg(z` zTS|+E+SSJ%27l^3)CqSzy7O;&r2Q!K*ywl7BPpxUqhTQ5W62&A; z4_M+}kCJCQJXQm?d-%#@Jm|Fwk5DzShXo_Tqx&kuBXXAH@d+E^0XvQJU=E@@q^{l` z;rrb@3_Bb>noMCHK`{`IiaHaI$@K;vdMq6e{cD;Yv(suGHE0zNO4eWZSG}|DHnzXr z#mV2@cRd|)kJIjV59EJz|97L)J?l@qy9&0&opSQAds=V3d$!G8_q_?X+(R16+~+o2 zbKlP_bpKwI@9sKr+MVr{z zW;bGDliR(zI=9uUYu#*vs@&iwZnzn}D|Y*8c**UE;GCP*)l+VX-!t7FI2~~tNJw)V zy1&P*bvel`6BFm=d?ebfrcLGs)E2t2=^VE`=V)$w`-pBrbAp?>4CD5s)YlFB1L1bn z$<^&!yuF)Rt(Dul1+d!)66990SKlqLNz1KyjfR^QUe!&0WEppCQn;|72)@7P zJbXXsEL_aZhFcV5z@L6P2*(+v!mqJ+!AJ8F;2Iyc!Zm@B@LzNZy!tc`PVZ#GKWJ0n zKBQ21>IppjYMVd&h6WOz732=5A98~KeFB50sX*alex`7jJqB?0eI2-HP7@vsUkBHV zRe?V&|LYnwHtSkr`P+3x^xf6|;*hJ?r_ZidfRC=T897}T*KHcN$y`1Dahlq2{ ziHmmCDwDZx84|dbnQ&ZRGH9-CSwz>0mLS(y6^yH%x36nnJi>MPhKnn1(9U%W$jUX5 z3U(D_7`fU$(R1xy+~g{8UGMrfa*eC`oeu@6+EZ#oi+*AC;*`vG1IeuNYbGB!Pb9Uql=Y;&H&YmwHI)DCq&slDN+qom6 z!r3^p#5uU(vNPvrfpe%yt}{67q;vP4W6oR44>*tY>~+R%*y)_^z1_JuGRC5}4r z)9RePPC@lMoZ`O4JMGyV;}qqsa6(E&PQNm_P6zMOomK|IowypoPWf=GQ(c6gQ{zET zr_xGSr}+2wPG+mDoo?EgJ6VuHPCIw%J5^uSa(dOe-l=_ZjZ>xJvg3C2ydx-b%CY3+ z4@dob-yG%r1CIG>J&v~=x*W@CuN{x>ZgmVUdg3_I(%_i*>#k$Jezl{6Pq`yce9bZL zNTH*$GT#yN?zH2o#S@N~&5k-+;?f;6qf#6{WF3@1!~UrMPua)t4!f`WJG^S~c33;==3u_g$pLHy zb5O-W9NHu%4m;9-4(gY+9a0``aOmn=>!9;*#U5_7Xz%4YV{gHju>ZY%)V?VDtG(CF zUi+H1ZhPJD9rlcMFYWh2pV?=iAKCBb-?u04zHP6OS7BdTQ(|xX=CXbE&jS0t^||&N ztxnpT2OP6E;vca8vvaTg{WCl4g}37E$J@5pb4TU&H`j>lM@_l*YTk5vb$Yn{uWbbT zx?>po=&Qc=s~QpZyFR(tf0(heH`cPU$HKt&WQ>u008h`}FnN>xyOZkn2{%^TFFg5Y zC+VBByEXUQZdhyFZpmiY?k~FEu8;H4u6TQ=9r<{>-Pht~J61!J-R-VAyP2PN>>#E$>~uYf?MA{b+Fh3A*`ZQ$?4F!HZf9S9$Zpq@RJ+PgyX>A%CfGey-)48sEYfb9 zhs4e}jAvIVVcJ>kBHN{(46%ED4QKbW9%Z-q*30haDBSMZvV&cko{b&U*21nFWo&0i z2iR?i+H6<6Ps8rm=mZI7LavK=Uq+8RIL+xoS!Z1JBdw(#Gfw(C|0+BWKL3XfVT?eVKm{Vb} zABBN1N+lY0u?`7))8Y>M-sJ@Q{uKu6_yvJo_-6tmuQz~=>+8U_SZKoDIjX@R$W<^_ z;G#_eb;c%1FkvHz9<^~!{%Z3rt=HzjiEf+q`5iV1S6|pXuX<{;Quolttofde)!S+t z-M(_0(UEI5SEdSW@JsnNuh*TiLFr`KoHagb(`A)zv*?^+vksYTvxtqe=^{qkJ`vt zpC?d$f! zT7rCP9UJh_T1L2MjV4uFuVt27SMjb{W2A-F4N>{lW^t#jmB}Zp&!rr(u1-(0zI}9$ zbwO5=b<~+yYx9CA>&8NKC=b!{2TTJsjgI=D8}dRradI;GLyI{ulrb@&T6YrWTw z){UJu*7Oe+)^B=^tv$W~tkZ@!Ti1?hSik+LYTY%tY}GV7Z*^v2%8I=7!)kWbh*hfU z7ps|dJyxU*T~?`S)#=oezO zh{9Q|L8Gi@(Oy=s1K?IU7zZm~thH4K*4!!-2ePWd>02$~w5;Ix^;Ts38Y?D#$r6wM zV`++?wET=4w>*p+wlu``Tb{yxw4B3qTB0%SmPrB4mO1Dq%RK)&%R{I;mOQ_kmL|T} zEuSN=STemYSibQ*Yw3o_woG-;u)G65X!+Jy1w z*V4#>Zn@Vi+_KG>V7bN!V+jHJTH5O&EKRjtEEhJ~SvF``T1Krivs|TWXqmc7*K+iq zrlt3Snq|W5D$BgdMd-DkGtl#66VN@wqfqRZuh6;PUTDsTZYbbg2lT+}7to#;Poc)o zA42g>_n_?hYAEAwITTra4Z5MC5c;$vA1W_84V^rH0xCay1o|vH4Z8989;n};Bq%#I z7Ruih1r1G*LLpoE&>;m2nkAw@q1;gDWf~s3p6Czd1bRcy_`5+LcsW8_Ty3C@b{5df zP-AF}2>@yV*bHsjqyZ(YQ-#*AEI|zB|3LV^Cm|JG9X772O)N0 z`ylr*J0Z^A+aWp5F_1nh1w_|G1cB>vA%5%W5Z4tVM0+*}^67g3By+$AV%zNjseb7U zfi~GfQfr}*<}y>re4znEH&+K@n4t+-pQ;8KOjrdeja;-~@@Fh2DH9fnfuj~f$gdW@ z&b=0?&~A%LgAR*k%@-CgRz0=2H`8Eoa`dhRwfB~VN=KQ+xhGdGKzA=$9KCVQ;>(3o z7Le>r3-W=(7Lm#OEw)7MwqWxTEnG?4EM@~DEsESF7DyYO#X}>eg~LX&#i5m8i`Gf3 z#r)v^I`M8#3qXsjh1vsqi-9sLi>nvF7K|(-i^)_yi{$uC7NZh%3oL!LMF#$#`9s8< zd5_I+^FhP!=I=Fz%h)4{cp2ZE zkk2v?IZ842+!1QNS%EiyNB1{Bfb}*vgS(kuGj}vM*lc5-v}|tv=m*Gr=99j;UaOWl z`0jdhgR5)I|K==#U!?v4AJ{qxwu=}CHxP!w-iUs1G4vyNLAw*|z0wAj|9B4G_puS2 z{`>)W`|TQVcwr?Nm{|&bv9kyqB|i_IrR0LQpiY8c+Z_X&8XN$#Rri8Ze+7Q^6uh7pO2|V>4xTNau%H$G>5-btC;|wr@U~dDV5AxnFHJ zGs$W;o7~Z4RxPeG6NcU~TX4T=mTGq0Y)bu#8D;9c*@d25v#zHn%@!+;nQb_Gz-)c$ zUb7kH4zm~Jc(W7UTg?0*a0taQ&;p4({P(_rYx-i z)9|^ErmlURrmLT}n>OBPHjT<|GF`o+&h!xfj_Ex1rYXbjx@nR271N$S=S@{U=bGw0 zJ!z_UMqA*k6!-1x} zEojq7GSXDy;cglXaxyht1v4EOvM@c_YHVs>2{5hA*=*{VtYLbJt7`fUwQOPqoj0MX zPnm4{F>aFFF>JE6rr(5|_t6Bhr_EUT>0h zYK_To!jiEqOL5UoqubrpVDUhg7@5bt6!tBirE9> z{VTVPfA?1yhc%WMpDVm<+?iTn{8xC!SO=YD3^YG#tf7)_{9|B`aeZTw@$SM{W1G|{ z<0k^CaTtnk{M?jf?66EWPVWmbZm!1}FBG7RLA$+-?Kp5_n3sbwz`)vgY7T5%-(_T+ zSfgiba%z)tO`N*17iqO|h2uYv*2X!IaQqkOa_boAb;%&;=fOVEqU1ej7X1d)Z}t*& zZ|Ny0wdWxSasM8uH@6xTmrxFxC0_$6oC-lLn)x8Z@25bl=1kDx;=`cg{rf>x{N12( zWFqLS!8TCrtP-h8abXAx15>CPn~Npb@oiv(f%q4Wo-$sz&9?Wy9;}dBa?zDZ_;6aYJ<5 zu;FrXzhQaGM?(Um)9}4xyCH2|v*F|ZMnmwu2Zmcu)) z!x^UMpbXDOdKnh@!ws{54u%O6R))dPz=oU88yP;2*E5VEY%*L6RyWL?Q!!L)|7)=A z%B(@_&R+(4q%nhVt3iX^|9TD1zU?+BF6}TV+WW#FoA%To*7l)+|EhZiD&4mXs>{j@ zX#1}kj5016MBAS;7*IK7fPa77;C%TZgQ5MY2FA=?1~~f!1A)p`gQ#wWfxJv)KuzTu zIMe9{E3j~bN6SG5v7G@1I;B1aSNC`rz{t)97cFfKR2Lxz+*c+B#YI4azNG&J&mkKO zpk`|gT&9%!uOBBiH1(#q3m|xCRsD^h-VXUdP5yB zyuSu`p}G>-d$1I^kzE9IvOfe47RIy?PXAxg#C89Gn7dHAw~@`W*{|KZyc% zo{<8jNsVE56#fCTO=K-J+F;L!3YVBz&wfZ%d3pfihQr0;+Zb9;9vu zK*%wGedY?lt4SeX(_;<*okIi2#Y8}gYY^bj>Ht96TO=U1$Q?k6cLG=hzyKrK5WvMR z#(n3Y&O5HAH;&`gy|=xWN*PHM z8d_B6`3NOxYDh~AMe+>=h@%!Jon!7 zea<<@r+-#!AL&pNJZw`_+SRP45#6MwJgZTS6>m^`_v(t;se|X$Qc_QG{sFtueTCHqCnA)+v0JRI(ebmkt zyQ@|EI;pMJpRcxbkWrg>%S!FtW>d8dfz#BcPn)dPFg#Apu~9?qR++MzafqziW+QR6 zk0V0WsSp0DhHe{BEeZRfddlRhYJ=c|YU9H+S@pUfJTSdN^RQYSC0@)xbe}Rs9C2e%vryb?Xu{Rf|b8R3G)}tNL7>p!%Xv zOV!>(RrQ#*yej9LgsR(lQPs@_BPzES4ykmj{#4<8_@<(I{G*C`##k=TAvWlKno7 z8>u`Do~jaVsH@UHFjgh?hMG$ES_Ks^cPW+gnj95g*Qm0~i9gCk>A#d~Nw@M_iBHOd z&)zAE?rK%$ggsXtp7u!jXr|%huK^`@5Y}9;0zW`QC>b<+!8!lzAyTmCLND zaX6clH$Gac{9oA$4Uql2P#$B?FK1N}3ucmDr9$ zN^Lb&N{8ciDaD$VD^32lN$EwyI;G5YE0q*obCoJp)0K4F6O?vWM=41~g(}4v1t{Ga z^j1>7=BDJca-mYmf_X~UFX(p_39}7Iy*+`Wu}tSNk&E~ zkHb@%^MF|7RjXI=+xyRoSvBt!*_hXg*(NU(yN8+--LEw&o>5Au8B`We4 zL@V0KhAIAg7NB^f!bj1?&t38BI48x-u6c@r!;E5foRwm)iK(L3kfGwaD|(9J1>+Pw z=4vRGiYqJLdnltgSi(~r<0(`y8S__xwD&8_-`A^vurCTGQ$8qY^t@L1bLxe{!<5Gg z6_)oDy#F;Q$kts|xVrL!LZJOAh5savD6DI$R*>JaTVaD|g#xR-St068k;47Gs}#nE zt6E|Chif+p9}gcZ#{89{z_M`yz!wg^1Gux z$g_rTh@|K(}4d}V2vyo+a`{DA5b`7JH(@_IX*O zW?bjViRB4ppV|DC-8RxM>v^qLRx0<4>}Bf@vVs3z%Z^-mAzPaLSa$sEd$Kjd4YGQ* zS7mo)UXYctIwhO*=dkS4i`BCF>APjq%`0SY43x+U&K1d8q^y#SFwK+Q{EI$P_H?4` zgM?_=_8DQapL+vjza96H?TT@iZ830?z4dLL?4iSq?CJMT~vXeg<%J%HnlRXwP zPBvtMhOE+iCD|)`Wn}#Vc(MapLYczX!!n9H`en*|dSw*UzR0Y8@m}Uv>1!Du_ZKo3 z!cMtR!aYq%awlrFirZ#x&-Np`BBmlqM_2Jb^g*rIo{Iet=yzz2OXt# z&d!y-A8#uiZ)hnk^VL}TzySkki{MGpH??)79bT(TH&!T0W3jaKS$VGXxJLr1HS7M9 z`aJKq6hwNY%C3Ks>dfkpGO%cqiv9gu>hQ@&Qg5U0O3CWiOId!bm0DVPPAb#ygw$sB zLsC`E`=m~k?36m^R3>#!e3R6PTWh7N3sy*Nw$72t`jaZ?<9XXwo1<9K9?-3e<<0Jb4OCovQ9Gm z_hrd_C(cT~j65#Mom3-f+)*j%y>o|Ty4P08EeabYYaSL#UM%EG-kg&y**HQUH+m^f z@>X($tc%_Yxqj3jgFrbv?PiISsc zV(&$Tqj~qmV=QlpPyKaGyz}Tqar%T2@dY|Z#RpsVi|^gCM|`f+Ht{ab z7V#A~){ARot`$={K)`MT07}Z|C>{ zUQ1gqPk!qc-n>O0c=z_Z$amFMYyffuWKinrqNVcyoY z)x0X~<{cX@=bbxS!n+t##Je@f_bu^CT*`yxT4; zH&1++JG1^b_j6_sx5DHzckcHNZf|uPx6H4ZYo*e}ZF_W=o3W;ztHfO49vwQzC8ths zpVKEM1&^=d{%GCF&D>JPWgRzhSBb9Ua<8u7u1d+_vW98g%&vHD-|k3mh*t==S=OIx zch`%1BHxv(X6eYy>$Bs&KV-w5v&@3KZ;UZ_~Zkq9ATX~XD>N$Y7^#gZs=Qc8am84H@D5;G`LRT+z_A0xl*UaIhUcz zIcg-&+4n_)Q&uU;S>rPzmL@+W7S`A&=2q}c%-Zs!m~LOYnAD+HVm||)iZ!b}5WDdB zmRNb=b+J^2-h4E4TFmg|Q8DiF17dHr_lli+xlL@{#w}ug^NYo%jjk3OIiD}~AU0EM z+oWW%(DoRyX=UMJgHAzW*Tj6qR$TQEo1d~sOv2D!?0zQ^E800rY=Os2F|O2fvHFI| zVmVpk#mr1J#d^Lfi&gKF6FrpKa&Ywn3Q+uRh*8MrDs;rIp7yP>BN~LJy$e3lNI@6G%T|E%Wn~d${vy3 z-k(ME<=%^&xzi?Mo!2aK+pI~%x#zCPtNryNfqqv+J}I3SiG6TFq<_UBk*rx&BJ9td zB5MwpiAXKmBvPWjPDJ_13X$!FIU-t2nn>kfyvW28ks>u=AtF=8`imTE_7a(1>?(5F z&QZklubs&GGd3a?Q5GVX#v6;wYMm-_r9@Z6#z9-;xC}{vH3P18hiM-7sJP1V@h`c9_%i_qIT(ALfKz3QgL&3a zUpxzO6D)E4s~L2Tn4%`c7}2UTu&Tijyojlg=IP_;-bwgtJQ2#*$3b?kHbib|Lc(?o zW}i{TnQ_WkvrYlex@B?FQ5u%j5?C|H#o4)HI5$Q}W>ozp65|I+c6lGUEb^WF3+p1; zb?->5VjGe2YbG0ZHxYwZjbxm}O;Tlgjr4k5B-Y8N$(^-F$=!+rB&%{S8B@KTyxUt! zBq}zLCu<8y=a&NFaVdpF~QBx6<| zbA@@u+_t{XY&1E*NKYtcqE$l~i4Vri)rBLrmmX}hEmC-3BNXy6MCqj5q3of=QcNh_ z)Hilh=21Qf_(-J)M)}C6^pEfnM7jBo4^2wsUp`I@Q(yXzk1-VThY$ZDJ`$*JWe!mK z`H1_?hwm>wtbg*M+(+B&<>O!vZKs9`vC*nfwQ>|1;+Xy8Mp zj*q+7_(;FP$Jon!T)x1E(>XqxPxIk%lD2V-57Q%jY^AS1|Gu9Ot13Qn_VRII7ayOt z^C4ZqhyGSRW^d-hZX+La*7IS$mXGnP`4Cybr~9e-sLAFdI)e}0RN8JLA6apHs7CW~ zcsU(^C?BVSXr4bGo0jm==gEh?J0E4ve6%?7p=eLrwBsX!;bYZoKFTfV{4=HYn8C*u z13q#m^ARwS_Nl{%s3w&~l@GomZC94cE5S!HhYzl>02}`mK;};YR{SnNPj3O7zZKwM zR{{Dv3SjZ30Ew>(Q1z?;jgJb@)mVU`n+0I67eH{CmN{2|j*|swI8uP^2MVyfvH%7< z3-GC|0OchGuvuS#w$%lQEhxZXRsqsd3(y^30Q#C;Tn;UOVqgJ+mK5NC2W@9j0Tdhx zU^%A%p4J73G%rB15oIdA2JT-^ATizi=m@v0*i&98ECw<#B=Z|7q3)m%iJ&Be?kxfrU<#i@#11Z~U( zcXckRvT1r!F0Mu7!a6V)XFPK;)+rbHb8^vQnG3xcxrm;Wi-VfzItRM#~~XWn{2E$&c@$K*;uZTjr+3M zm?)Z!UbvlD>E^D zYbF8;GqE}=6IHR9xDb?yI*&}$&(Fjqt4tg;%tVn+Cc+dmVb00K$WR8Ze9J&Wdj>S0 zWPrX>2#e2W;6qIYmhZ?wXK@BR^D}TQF#}qm8A$Y^pB*y5&Z3)ur)3~QCj%Q5GH_Hh z1J?)AarZN&H67O6GX%MSTgU!)2#O_MN)(vSmotK8&@o9J*l!hm6X}CKl z4d+eMutS&DQAvY6Hw|(_sc8C~id8MCFuIqD=a*9vb0ii2cBEqE`c$ylsYr=Q#aq8r zkVUDeut~+IX{ng1or-YTRBRhfL49uuI^L#Ws3`@aH&VbmnF8US6#U$ng4VngT#QS> z`hXO8Ij7M3U{dgOS_%rrra(_7g?c_IYGYLhYlNHUIWPX>2gGJG>_ZdK z=azs?OadlNOTZb81el8_;M71oCUnN5=t(@jUW*5FG#2Z+K zjKelw9JKmlQQi>?@kg;pyc~-s2VyaKODt0IVsR-d7Qek>p=TEhml?5$*Nnv)UMxy~ z$6(vL7;JqIgTjk3NT`m1+ol-kXUAYDJO)?YV~}YZ1H-8?c%>493}H0nd!kX<5)Hju z(WpKd4fUPTSh*$|U5U|P{G+kSAsR1DqoJ%54M)jnqzy!2dq)(`J&3~X3-mYRz9>8@ zj>4_)3MCS1d;Xe>u#fm!os>aunJw#{~W5IIplA%-?X__!th0rf}3; z42R6Va6}h{qb@ld(*EIanIDdIGs1C2J)Hg~3xnwQFlaW1Val~I%s3bZ!%blrmk|c3 zWnt)D5Qe)ZVc4b_hGk+jy(bi}UW8)x^-xT$3B}z_p;(#`icdkIh@f{2e=rV(hejx_ zh=fA(dk7MrhoJ6C2srygFsC>KX(=Jt=NE#Tb3@Q>7=jjG>Rg=zSQB_H)6w zxhoiztAddl6AZFA7-H7JxIQr$2~xq(_`M9ZZOh=%unZp#FGJ+!W%!)24E{mOaNm9z zrq5W0BGqMR9|?kfR}i8e2BG?F5Sn)c;U7N;T9H98bqxY6f?%&5gn67GSak*qji6QLg|5 z+XUd+!~n=k2Eez^AG==q_Lod;zA#tmCxBgsUa-sd zf?1#!bnLt!)bqk?NiQ7h^+eh;Pgq>=MBjE#ROWhO!7@*Lo$HAe`kqjf_QZ}Ki=pv+ zF}7S-4B__0h|FD##-PO*H+M1OCojeY$;BAx@qpn|4=g?B0e*!CDziLr(cc5Ni3c7| z^uT?t2kO4M-VgA~!6L zbwiJf8=_6z@Lt&sE<>(3-|7nGtFDOJO13)gfq5% zUj*Yvi%@@J5f+pz!u`ZWu=7}ibM(H;v8s!ZH{^s@El!wH>xAT;^#5p%6MpzRVLamm zr*Te*7cNB6hlSXEb0H4xUx;I?=`nmEcG)k)TK$EHl~@SJZ;sG;;E3*{jyO~7h=f>2 z=s7#$#dJqx%Q-@$ZvoCcSpb|~fP0%4z%gk78r&Da)N}!MDJ{V0ZwL4^JK)GU2lQ`s zfJLeU=nHLd(98kPR2(okU=O92_Rzmz53_Q6%uch1m6tt?%-P@&Vy*_JZwsu2W9tp*kU{n;tKPS);AaJ zkLSYXTde{#3YwfUfxg8?r+aYd}9b&}n z5YjmZ?hSJ=Yu_Ab7R*6^z#QDMnS&CoIq>)k$hH9umw@;RK$%`8!R4U1L2@GYMQMv z|BN--H(4Vt)*3^O*2vViMnA_I%R6VIxo$SB_RK~__H6X}%%%@ zMo2XNi*!UJUA5laf(=_z)?e}CXVT2Qx`|?>!Q6{7vj0PnC7Jmry05k71u@D`-xalI}vM3C!#QBA`0eB zM6&io1Px7q{gVlpe0T!A)-eGueJ7yWbONHKCtzCFczn4w9=prO!zq3|2JFXU+qm(V z`QJD^csdSCkBmdtigAcqIu2h<$01O99G-sEfz34?RF~;MBu)o@^L21iTL&Y9+L-%T z8>?%yQJ=4kL2qqLGSY^#xHb|y#$wZ@u{c;V78fJNqJfOXUG=fJ)2D^HMlGDJ)Iw#3 z7S_6IAyQupb6HJjv}oe%NllzB)I@rqCd@1}(Icygy`MC&@VW+mmT6#ftOg9{X`oI^ z11|kz(DGmmmR8ea))=_Dk3s#EF_XexFpwqC$1-3s6U&nL4aw)RFU14VSN| z;pY}LOpH>43)GORu7C$D%k6( z0=}UN{6$q@+NKP#)5>^UsEn-v%2;fs3|VPq-29+Ke}5}cA63Hja3%QJC}BWJ35DMj zp;E7iT@{MZj#I?Wxr$KKRK&`k3ixqX0iJsla3Mtj3JVpme7piK4#`8LNgnq5m4Cu*Y(uf?KpUWZnupBn$%i*Y}9BvrM;gL`lFJH-`?YJyjR?6b(5?S1uA&WB{ zS?qW%gS^u+SXwB9nf@~1naZG9Tn4+}N+al;G{zQ5<3*q})|yGfTuK^mJEXwBAO)Rb zDO_A81xE`hv`9-K=z}D^z95NZ8zj*dEQv*ylDHxx3EfT!ti2?GPa7maLL{)&QUV`j zBw*Mnj)Y6%IJrR_UxUS=Z7B|C8F6HM;9<{291j-4oSif285UA966@58-qF5cd;9WQ^Ak zc{MUfiVqADi$#N^wSRyl?iwJh-2hqhy`PAb_LJ0E{p8*I--KEBo0J>n3Q#sXS2IW#E0)>aP4=JHG>{sd?OJ#-^jBG--zkGucRpcD`{2vN_4J% zA%4MMNQw9ta^=Kl(!TgJ85;gXc>6vPIr~pUwx^4Tm3EO|mR;o4+mGbzs*hyN)Q`mV zNheWE>m&~}J4sIc2covfh;-mo_zLxPhv(o$k(b4;_uKw?)AJQhNbVw8q0U2 zrTr}#zw#{!)_+TOJZdNRliJBIwRWO#?G2e6{DzqE-jLbHUK1;~*JS!&8`0R=Mz>?M zk+zSmpv;guNo0Bwvy7Cts2y9xsW(pBH5Rt`|fF zFGyZjGkLqNnV3&+CWX(QlgDY#iJazhVt?ZqNe_8O_VS*Q8%Lj#S1wP<=ig7rj|$4{ zC*3FCfCAllSksW$;+d+$Sdbt zuzIptyq?$}ts_H=>d4-{8-yvnL0Zjjkm#1{WH9SG$)tgn!5h~|bnrFOB6f{1HCM^r z1y{+?_bbF<;}x>S=n8r9td_{9){=Q@wIu2CWwL$gWpZic5_z)s68V5jq`UJX`LX&U z`9Ap~>9}`+JdVCVF34OUlY&?U|iq(0wNn|Gk4Km+l}MraOq{^X)_>c{`C* z+D`sEvyFUk-$ri#svy-{DoD0T1zGg0oQz2-C+`%>N#*G>ved1NDE!PxngXrrw} z?nx;*5noE|EUc3Qw|i9pt;3lOXqrWeZ_jxHGVze))$e9K}BSiU>#Yw zXC3jeSw{ljtR=zOYe}HSTH<}VkSy>iBo;$!h)($$B4W0Nynnu$)F!Pa8x>X)|5K~T zWS3Q>yJsaiR=kodH&{u=-d{nQB36(r-U`Av^2w^g0&@LUKKUWcBdSauG0n*(_Lp;r z+h8_vGtDLr30cJKcqSS1Era~l%OE#H(n(Qe8gXb(CI7~xk{YiRvY<4XynmcT5~P#J zphF@_TAe_;>f?#)XdF2`D~^b##}ehpN}uJV zXlpoG_auzuNr#bWhfw0ODufu+1(VUg%SfZeGO{i?h|D<|NPd3{AUpK}$gE(0@^rT! z32I$RJ}ECHp{~B9b^Q`D|E>=?D&j-LZM}(KrWZMM&XaWiSWNT{78Ad453+WjJ30Es zjoejpBd^_E$)^o2kn9vL+{MV^)cq;k%t+1v0)~8dDoOY5t@)&vrWjU zRAV}yjY#U(8N_+w3_@?QCEv@ZkyB3$NvxzHnKajcyv&_S3NB6|x=(LOQhFo z5&L>gl0B?Jj+knY=P_f*-~n}_^iGW!sH+hhH&wErNQJoER3@(fl*mFeB|_p9iBXLL z(ddvT0(E)v)=iFFDv~7|Zpsk9f6_$HOqzU)l_G}^N|KOw5=32Hg4}f#CyDELM74oS zE(~+1k8#N7XfcwpUzCWpi;yA}5u&<-W#pv<44XZ|eD40s-0~l0Dw_T<^kpE-_)`N+ z%ea1K_2ys9RFR*|?W7-!cV`dN;nB?m-ulM8ocWcRd*Cy3SmhJLS@V%uGWdbnAO4>C z^zt1u&i*aqcJU39HTgBOqoS2L!)sw0(qA(7KQ}Y?yq`1mcb_t+ES@miYMPjIwMUFg z;R8lz=pOSqypcKd@(#0X{%uC_!cFGtqy{Fitd1ELyTNQsxyERIyu$4BsAY6+UScXt zE;78T^Gu?`Ii|Vb3^Swe6tg<;B=fxKIHPHMjPW~ugsIRv%sg0M!~8dVfEgdPpPAEI z#rQkyW0EfJW%zn~n4+>>%m%TYOi}W7hX0|0Np>q|0_(Oi^JbJXllE+8Sm_exW%fqq z;J0EXVaa;Nym1{fXug&?eP9i7E|I#=Q4-qpziL`DrvBFVaC{;;noHdI=e8`>PqqLgF zy0`IhtC)}Y0vfAM=A$=^k9u!D1|9g=Xhmc9Q)nDroyPllbbrYJjZ1eH!2C%8_*V-s z<4^&ZQo6?^w*W=U3vknw#)7RV;|p+0oTmNA$GI2zm~$l`CYAXpTt(x+5&2lUFduEx z@^M{`#(aO~;ndSS+&E45rfklGWI`V1JLloEK_0$~=fSfp7Zd7p;khdp-D$b_>Y5A3 zskx9Br7_aiG&XrA2RGN{Ks$)WGR<|n~k??vaxGPHtG$s;WUy3o2D$3 z?a9L8xGZGaWPvN4h5uSJ;Zc(bm6S}_l1wy7W#Z1u4Cw94KyOqA#?H*Z`G4s+e=8l@ z#p(Fro{lMF((&MJ8eUbWVPQlXrWmFn;YTXQpGn2+lvLE2rQ*b33b+?ja4#(dgJvn% z*q@A&Gszf9YM&|d6{S8rUP80LaU-Oi9qamKyjMUdhz zLKAlpREnMOR^AB)Wef37eIZABi8I&fXImp@MOOOu1#{FF&%pSRnHzZ2j=6r z?tILmFNt;@KM&vb%!Q2BTwLB}hhAkn94(oHUs7|>um%__BoJm1B=j?gjAhWGSg6!ZiprC4N&W7fHP;OVvg2SM6H?v!)|@7@z6(R?PPGrPsa2@J@j=?!Xo!c zn0HYZt(x>YRKY|vcTRwf{RG$@8IRA>+8hnFP;eJ&GeQGK&NmhntlM)W=E8*=5 zMby4gfQ>o5CbCH$v%bjTJds1|Hd)m4$w1pd2FzY*NDb2K6;4v9u9Bqj8wq?{Bmwzq zaeN%&A=HV7(n>Dk`#Bi4=V0beF=+RS;vx}+aEk~A?h1)hG)uU$0-}3rgw(kGBPG9v z$=faekusA% z{Le&Q;}f}a`XlLc=p>uoy(jxqJBX3gJ7QYdPEO8zLk={y5f#5yBItcZ!uchx`PBAwgF zrr-)v|Gtcr2W=&a@3xSc{+r2Y+a{9Wvyl|PC?@Xi>&eZgb>zL{T5{~p8lpRAHF3JO zlIU8lAU+}a<;Kb6_{0QatP)Ffxlv^8U^of*6he-?2qH1J{K>&H zzQniEo2=ikn9Ry@Baz|GM8ka{aj|hA68iJVLd7{m?Vl})>zYm6n=Hwl3uffO9upF> zW(L_5Ye+m6Pa!8~>5-ao6Ui*@I1>9^i!e{dkaOo$Nz*nZvLQ#F3Yniy(70ma~X-ueJ6yyBFpE+&k#*|)| z%Z%zxk%0J3~lmW_5N;l;brGwH+c}BTUsi$0`oS^KdY@=+T z6i|{W;S?Xr0*V!73S|t1M;T;==%hTMT%{bMlu~jj%PFoDE6R9^IOT^xh!>Pv%3jJ! z%5sV$Wg116@?(^?M>$2=M2Vv~QKnG1l+F<$u2Z&Ck|~QQdKAGwAzo2VP*zixQj91Z zO6y-Cj#COK?i5|hz_1W^C}or|iYZ0-pAe5JyC@M9Q_AQcA?{JOP?l13DcwUtoTX$@ z2!%trKPbdTiaSMx@@jyNk>X3yptSYVbBYf|mGbi} zqDE=z6Jiy`iqiW-h$@N~MVxY_SBMzOSV~im5P6holsDZ%tfN>^K7OZtQD##F#S2nEXed({6Z`He#Sxl8p!`Eo~yK+4P8 z)Q*(;TSAyqj@+d7pp-NSAwo&1r#7e)!jp3A1|2)4>N*`4CHI;T->y=7QtGb=VMr;j zrSe{;I;1?kMD0$gyh!_}#9W|h=V?Eb9p|V%&r(03G@PMwP*$H7qU)3p^Co@S zl+{~>cu-39K=Ir{=f`I1wGdrqWKiRb#$#-OUF=1 z>r))p(DqhSe_TcFzfy=9l;tag*u$q~3WSiPF!|ILdDMS$g?ODq{f$DhsefhBwlnFR z%%J+B7^hR6rBQ!NrSmI=`c<+JN)#rE+9XkktqD}0@pLZ5(KaaNu~hCDx}HT-*`uhh zM+)&fg3evatmQN>occ`|wP7f=aR}96FkNew(fLDRf~YKkbS(*>y7m|1j32GPl-k0V zj)kJNgw7uyy3Tpib;?VK98bCyEv7Pf&@s5vb=-}P!O>qbp2gO zVr@pWvJb4h3K~t;;%Iw<7~Rl zQ>16nIbcQC14|*)E$AFHr~Yk5`zXQh5 zd8RIeiyGCJsu0svs9uz*O_ivv73jF-X&Z91zN`=jWvHJ@Q+-NNpOF+|p#=3;aq9a# zI;S{PS7OxXL}@=F)Q&lf|VEEQ;Q< z@b6$T{T=P6oyFrfEcU);5!c4Trj@qQ!lLCRivurMBsSCf&sp%Ev3UA~#m>hpLYr6^ zK4Q`TfW?*jELPlOVc*Eo{j9XiZ5Cy>SS-28LaTwr+d3ANH(1bj=3@Lc7Vodn^I8@G zmudbb7Ht<;l%HqeevXCgSr+$BvsihGj^iYY!Q(7W9HTNEWij>$i{?Xg>@_TygS7Ac zEDlw(SXxEv?PF25mqpSZ787^Vayw}oJE%Uk)BY-0Y$~TRl(G0)O2@W^1vazj-bDM| z$bxL3>FZf+E@EM|jzvcyi^4T5rmbf2Y$dhJ3Kp7tYKMFl!Fepia;eUkm}8V#hEEAjP$Ag^;j58Vo@`Z>UIM4#c?duby#c}OUI%`$E(58|D!BY z)L48|p>|fLGAgoIs6cflN86I6`jTcbMv9I_f|lj6h~=_q7h~ZhO8rMDz*JU%ictZ? zMg&OwE5Muo1aSBxz?ne-v<3uN{ab+Ep8|OG32?nvfJr?9tp6^+&#yG?ivYEs1kmmh zfZr*=$M*uv?+~EotpMWf0z|wPps`he$t|>(<%y#R4H1h{!k0JW<$y;gu5mjqC}C_w0W0nVQlfP03H zOy6A7GSOuwT~m!or3`M4I${COZ9F?Z3UXn z2(ZJ3$~l{sw-P|!QUG&v0sLkPz&8=#fDx@TosPp$09gY8jHU?SHd%nANdjz{D8T9Q z0zA>7b{;E$w3YxBP?$0%~&j-v3*C`#H!v8`nkl`lu>9;{Iue>RG`i+>a- zuEi7L32{$|y9;r5cX#*X=1PEXe$2BwXO7J5m7O{2BgVZ1o`=A96Lc#ls%1-S6SZ-5xgI>0!~W9>(4jG}n8my4pkH z>M-NHcda&Ojp4Bfs2+I>cZ|Gs%`W~8p66;E8=p(|QP-(u3Bd9?nnbVdc0UdXMQLbz~1F!^Jv=inR~!q3=LJ z->(P5zCB#*-NVvv3c7m~gvb@VlPcIJQ82DkL4KP8^A-hvH7QuoprEltcYLXOKB`7!@r(jZyg7ioQD&Y#Yg(~O? zQs5P+;F`aJnZ63Ly%c=#Q1FYJ;Nz^o)=|N6dj&&m6@0cCJLSyDOhNr zAXitx8yy8Jv=kJnD^OAu^ZFp}--~s;Rj~ZE!1+(Xi{}dFJr%T%6x?~BVB$RmL3b45 zJ)_{en?lxg1-q{*Xt*Ti_m_gj7ZfC(6>~eSV9-f1eq6!!qYBFYQ1I-aSjz!1_r2md z{i>jLmxBLxD44uWfyZXS2L+`Y6x>@c=Dt=uzt!T|tWprWT)~N@3Yr!vc)mcvsCf!3 z=7_n^QV=#n!TxCqiYE)16BS6uiFJ)pFmjXv9e&0o$BzH*Gc~vfs)neI;l2e{wvY z$(j5_&dY~#>h1|%|H|>cC15w@Ji9KZ{EEotc}b4lMLC1d%ej6=PSQy^Oa7FLm_0d- ze~7sr6yy8l^xG>JdO$hBI|coAId`|n#eP`M{Ec${TQ4X7Cpjxu%TZb>%(1c94;1E91LQ zGJdv{aobFWow1B!0~w?BWbD)t^=>p}xTwh}{UBgUGPb^z@$V}c)-PmaK9$k;v5XZD zWSqGxL*=#%znd~~7LqaIs*LrQWL&%`L+zXl-_tTmPRJN=T*lHPGX6Lucps2qwpT{v z9vQVeWenXeW7!rNza!($1{pf*WO%I+a#qRcST5u*m9c!0jD7QET$?N7-7FbaGsL>5 z%E+B0qkX)LA!B9C86{)Ga3N!ejH?4>{MS#0ZXcP@Ye@<1k&-EsQX`Qf?~pRIP0F-p zDN7rqP%C9$m6TKEQm&Usc~mInU7i%3Y$@g$Qt|GQ;*%sLEM7`{jFgN>DTQHDDubmo z1WIZ5lOpw&^2I|+A2%ueouv$RkTT3x%1CP|qb;P2F_kjbNHl$M|53oSq>NIRGF(L} zzS~j;zLko2KPlgyi}^i~()mzI(>*EGcchg3BPIKWl;o>YA}>h^xG2T-oD}QRQuI$q zQ8^~%`C%!y4obPOUn=6Nq-@(Q<;NXT=4=(Rev#69qm<@#QW2vlC1#Zr&*f4~mq<}s zDCN#PDJSPh**;UslIc>$O_9DALs znY5d*u5K*ayLr*l&6&n-Hr91Bxw@O~@@_Ipx^XS+MmevWi`m_5%IIc7YB#Nk-NeRq zV;0@by@+mp3+-lBkf8DJ7JkSA?%B;9w{EsO3w(!e>TJ3Ruo8UCyZO_kn+1jfSGSue z?QXO*gk05b7AXtZ+it>Nb))j4nh}&FMpe=0G>4zjb52Tkze{&GfC^6w!^*hHj3n>t^hlZct^8SZi0q)b9+cPKMd?9|GREfdw288R|#!$ z30B<_4s}ZC+a|%YNy7Ph2_tJH1XoD7Rw`j)k%Y)R2{*GPOwJJZDH3iZN*Es}AtXw| z-{BI5he*VGQNo{o5_)+{uy&WQ+eJd7gGB6wC9JfTkYO(2u8D+kh7!DWB^=h4(5Ws# zOGUzRC5iA;m2l;ygnrK@m_L^A^8*Q4{|dRcB*OkGU{@uqy(A&!f`q@$N>H4Xpm|)v z+#?eF4@%g(Uqb1x5^nF3@ZEL^A2&<*VUq-(^%A!KBoV)52^W@2Xk9Gf=>iFZe~_R% zOTx?<5*(*USTj+qXRL%>qa>sblW=UXgp&SZeSIY~eCy&?PZtttmpF@e@ujVc7tLMt zZRp~4O&9$uyLekFu0`US*Tr|)UA#)~qE|{6PZPS3$8>QovWvFRE^(gdqT0WUGd^A9 zdUSEXwToECF0kvu$GVHf7G2_9)WvwiE)k2@#aFE^{!#Cu;zJjQ-**xHx{Edcb&0*6 zz)?BdHi^Tq2%eooIG;Qs3Ii)}~Gj>pE$#>SR}WC#J=nbmn)mJEs$q zj80lpI@y-kiEeBswUM2y3+qHVsFQsEP8Rxf^3bD`7?)1QId*d1wi6etPUL2t>@XHG z^gAig>13{EC;wCJ#7C)SW^mPEOtF#NuWrRo6P1f4P&Z7dvq} z+e!1uPL>_-g7|uns;3br9s=L6vt0Lp?fJ z>C(Y5hYp_FbYNlGL6m6+b%tV0uY;x99UM^a;MRu@G~adL{;Gr2=Yr?s4u(DGV9~!F zBBrN=wrLDPZ`zRvAnf1@IZYQ(6or2tcDm!+kw>@lHN2f(A?@@D zZ09>)(LCGf=PIs_?ew)3a4Rux*3K70fv?++L`%@C2|mj0)Vyt{>}5Oo&)Ug&)K0>^ zcEWGBQ+^)9s>F;)o&bOm}x}8^lwsZeTJ68_2b8=rhd-t@nX-B)*6SOm9Q#-@g z3mL21X;{%t?vi$*7PR9rw;j`&?I=xa=gy>dPLFG6=csm;4{K-QATh6gVh+99g&nC4 zFKHVFoozg8ZR31n8#`*-SWwxY|w_z$2P8Owy{;UjY&#vw7eEHFWS(5BH$0& z;NLbz|0D3Pwc&HAjdvFWpEGUDJJE*ZNE=ZH+tA+E#<@LhEZxzDd~+Mo8{5!a*T%`! zZTzr8@Lb%6-~2XS%xPoS_ic=r+D7(-HjKvzx)B0rNE`M2+i>aA#;vcdtdh6V)zyk` zTPydQT3K7yN_SKiZDr)4Rs#36^7kHbzoS*?pj)}Hv6Ug~TJij`l|Pra(tB|$ zw)0x~ZFVbd(_4iuxRrI|TPYmX%JX5Z%pBB8#CL+OSF5lIwutv=3tKx{C~I!vd3_7h zs$1|cYvD*y3vIbAsARS|UX5n{E@`GLznK%+ z&19xEvp1=k=-6g9iF%dZA(+g|XnZl=ym&=@t7q}vQy&A6#H z^Sx3t8n2s0Y>?ppxS67R&Fs0|jPH$R=3Hq;{bDnUGtK;UqM4K<&8#~pc<*gy@a|@A zZ)+xxW`6m(8JjiD3|-mGttHK5%@=rcnlYZy%(uzSoEzUv_^4)P4{PT2z-B7?Hna6x z6BhC&zI8Qms;!BD#wNzsHgUV6iKOBt=I1x@GOLM#)FysRY(h1riOTRMHUu}J<=;fD zR}-7un$UJ^qQ<64oNJm;Gijnsze&VHHt|}$i7e$N=Duy>?te{0K51gigC@@1X~N}y zO(?E3vGXrMf3}I@6HP2Q+QglMO?=+lM8Dll?AzAFN17;F-^A=SOn%FwBi8n)Bi+&@^bs9OZ z-iVHJBhhaf>3-43yeEwuy)S5QH{yMxk&4TWjJ(*$#xp|3pMw5yBVh*`Y528~aXZCa zwls2iV{tFvfJhzeGzi;H;ltzrkHxe?ck@BI9^cyH-^lfC<*9NZ0 z8c^#P zjty+JX%I154Z?oVz#F{=47D0?Rc#>ReFNFA8bm!*f&Z|9VRsvt{!ar-uQjmg?*{gs z6Z}s$aP6p&aZu3iZ9r>R1EyQWd^R=UwXT8SABD_i4Wun>Ab+lq{k`BfrGeJ*4M;{c z&@;4w-UA!x-?xFmU+Wnrt7l|qJ)>Ld8Cze^xT<=_mx@*(TDIt?)iWlso>4LN3=gko zNKn0qWv{1?XFXq>>yg^k({5EygK0gL2K5x`)RUoJPrPzHVQ=d3eNm6o<9aOa)${RI zJxbT>d2*?q|DCVr?5TQwKUU9{L-nlMSI?~7Le92&dQmUVZS~^+qF$_}9)Ac3o|QxEnKD4krB6NeJ$0mZ*WuG%hjCLK|JByF?bH0xBQ+3!LtK-R`Iu7isWA^SkBwIzz+)Z^DuB+qv zk9BNVR>!b~brjC2!*NC(k0#f#b6g$cM%Gb2xDJjmVl8811Ws5jrk`s$?_0}Uk6LP+YH_d?G?uk2HmRjiuNEh* zTCS_svhaN^buVkNd0NYb2eo{ErYO&o~ z%jr!**1B5aSBbHuVlE46shwRb>@s2=lWOTbwieIfwOkxj%ee1qiTYZ@U0DrtI%`O8 zuHi*p4NEI)#Gb20=oe~Om03e^at-g}YFHUrBkXlGyz#GLiB}C-E;T%{uVJ=z4RNM5 z+%%|RtWFJnYBiixs^QzK8Z4jHuXy{-YJLq68t%ki5Yp5D6@P^eeW?&8WeQMbBrJ9WH zYA&@`qiC!~t)`lp<<)o=RH{!Xk$5?#%kuxiGBt`_f^YL>ZIi(CcO?6wg& z=GB}vs;1#%HTN{C`KDaW`#05$dQpwRBf;-(HFh_vS$ee^uZz{JJ5x>Y@oKjGQBCwd z!DDwd30te#yQ!L#wbdM0RZZ#=ah)&vvjluvHHi}h-e`e8RL~6&^u4QvEw>6UNfpc5 zs<3OQVrF#}hNV@EE~r8&tBPK!RosuSqA{|H^C4Aa`&Y5YtBPQkDpuH6VP#dtIMXWL z=~vOMRmEl1DstXcvEyYG-cPESeZLBgTUC6yR>jr71^wA7HlL`%>2MX}4^#<%!zyaG zRSBI|75?k0`2I)1YiSit^Q$;Cy9&Q)RZN>$#ebu#s2Wl?+I!%lvq@Xc=Srt zbt|dSs1!EVN_5^-QvbXX9#x8bG?mo;uacjy2;LVeg|BfXE00z3`d}qlzg04KXC?n` zt`xEPm5g3f$=T(VxGbzhF{hH9GX(vlN{Yu+vS4^6cLr7x)TfgEUn}1;q^& z!hfhj=q@U7&#yp|S;5aK6+DltAR?lI{=pUO@~c4Eqk=@I3ZWybV6R05sz##!v4SBQ z73@~7;O%RH|Ez*u4=dPkr-J)8D)6{eLF2g!emGgdnIjeGAE+R8PXzraPS=TY#vc)K4wQ3rPdWFtmGf~^Ii73FMgE0yv9~X0$h>mq z&lEDJl#8=WIS)saqdlk`=f34ce<>5O#$`y_${5yI#+>Rh)|ZxXAis>iGRt_BT!va~ z85ZGXczrGtcCRw>+{&nTC_`agCTyQ&Ofe{9p>`Q-Rm<4f>TzB@D(fJVO$BPBTCpBRKh&p5{9^!(Be=+nso_YrX_sTFX5h6 z2}e~*_~~s46JC@cd00Z`of155l%R2`gzM)@*nOgexra;WwZDXdT_t#LDM4*R376KC z@XPWNCN30wXO|E?tpt+^CEOWR!mc4DOzT%d+t*^Eq{ZmB7jvz#n2puN3@~jp>c#w~RLuBS#S}j&#`az@ zH~%SS&DCPQTqq{uR540Ni`n;kF=Ku$CTCkQMw^N`y;ks9Sxm*EVyx#Di`esG=1wXW z?}}nR4K3zE|6*qK67!K2VbW2=@unii)fACdT7*h|5j!)B=$%|dKui&L!ircFSVV)h^NboSg^2&tl34pm{!EX38M1%$ReH%7JR=eBIQdV_qz+3 z-d0FdeIeH>3mH{hh)+%-C(;V}7GH=}WFb3(3#s)jMA^NN#g2s}Sr>A{w2)!?g*a&z z^6Q5}>R%V~?pYyo9uyLGtB_OI3XxqbMCWuN%Z?Qi_j@7de=S6@O~5u4vS@7~5i1J$ zb5S9!a|(Goy^tvr3vnA&$hIMc}*0FTN7wiXwNJRt>~Pb;7; zzJTYE1q=%=z|gmVdF};xIuw9)0r4gU9M&tKM5BN!$_2E)D&W!60{Yx9K>42nMqMpH z??M67P8DEvM9>~6z-e~@%eM+18wyynrU1WX1*}_8K;Wzbex53>9$KfwsrE=7dk*AbvpbJoTk|-vAy4S!@)*7>kH6>V5j-=G@l*1+F*c9LVR=j* zkjKql;$D`^q>fx}H0BaomCKltT>i?<#WyXNK?%A18JUYiP%d(xTz0$VqHmu|wPh|p z8t3xg$6S)saz*|tLGxcOZjW+N+{tD8ja=0J&L!teF5e%|*V$A*&1TSjG4@Y3`>$kk>wGraC$jPSBb&^<*&>!Lo3X!Svua&7zpu>Z z=Avv==VW6)Et}}^*_4mS=F7lrCicl@r6P;pIQ=Azxc|0?d+mkc7JSLOV zLo+$lFH`6PGT7Li!HU)l=G0{{p*({@1sTFlok3$_21QXBBn4-P+&vjMxn*EvpMjEP z2KS9JxTurC@2Z0SZ3YXTXE63b2H*b4pzcZr>E|;DJduI*9~r3Z&EVf18Jr-4&1*B5 zzam3?$1`Z3l|jxFfj2e-(_tC>*I)4bmd*}oI`i7n8CaiAU3ofj1?kvjrt>Z-oxh{g z*%p${Ouux#x}}qEpN@}ZI$B2Q+|Ws9r>Yoxn~wZhIvMxVar!5nS69+GaXww-ND(~$ zNT>L>bUe4G^L|r0Cx1$3`SNs;OC+7_nL^IwbRLaK=eMEhOzoF0;vUlYEJ;J9C5=C8 z(?pK$G$eUxM5L#ok&wp8$Ta2$rP1M?Ce9#fythr`pn00ux1~|3nTC^cny|m8@$-{3 zdf!bW_C^}2e+!&5X-qhlM!|tJ%yy@7eoGp2e@>%jRT_4S)3`D>jfKslrB`Dr`Kd9J!pzpmV8wKAy_WgQ?8?HI?+Osl3{d%8#p4sa%qZ z_7ACSnUPA{gjCE%rt;gMRAjwVv5}{6up@;p4Jp`Frf{f8+-Id=lbj;l1VO4=2Ag2 zy)u*0PfTW6R5H;)$(-^@ro$y!d`8K_zbF|G{bY7%CX=U>%=MSae0!8E(xfLd`+BlC z(m>F) zO(NxP68ry`MC#w-dM1hFqe<*NkVL|+BzA93B6?jCTURC#vM`CCXD8t^C5aVdlW-iG z#N2*Kn0`q_6iY+BIgtT1i99Pwq$?+pYpIEp#U^qjERh8NMDR!y`;kQEStVj%l*mvW zfvb`zY$1u9eVRz>-9&!*Um|XQCo=s^qVT~k@HZk;tTliM*bb zNb}@Gj*Uqqd`KdTzDq>ACqd+tO5j3Mf{0B?V0m$Z@DEI&Cpm$0F$qM6B(Tsg0adpI zTI~`zWRZZkK>`!B5_q7TK<>)~);&%@|4stk*Ah5#F#)fW35-6Rz|Fl0ByLY&{-y+8 zuSpO(&;-`cOF(Bv0?iW=*f}x*^MMISdnJh2p?K`t;`v$^&*AcT9P{Jpl_BmE;<1m2 z=SyHbzk9_Cf7Ey+*758ziO1k$yzqIB=jXTae0Ua5{=Ik>+>GbJrFf#x#549-Jm(I? zi`?_^$bN}u`?`2ER>V`VAfCCi;<-6F9>3A?^d1t=?!NKD$1+ZwUE`S17$^LL;&3dC zqct;*)k$$YjEW;DD2`q}aU%XBjyE=O#F)l0NH2~(>TxK)izEKI=s$=P_Q*KiU5+E_ zY#e=#$HDJ$JlP$G-{v?v*Tu1HWgJ%)#$h!pj-ttNj2{!n{vm>ENP78 zLS-xlg|Q@O#?m(_mYF;#FcvbB^UZn^@ME#&StF7Jao?V&BG!{AaPuzaPud zo3XsP6pQDXSjvvZGWvsv{&!SWa$toJH~LwDu$0nG5Bi7kozG9>8ltf zK8a!NzcC!W9>cwhG3cC(!Q+n@Qhtk}VOtCXH^wk~bqp+t;rQGb{+$+s>bMwehs6-u zPw@E?O>0-Q&>=)Ky*irJ#nJql9nIO~XzoTwqZ}NKsZTWSF408UM3ZA0O`UEu3bkm4 zzKdqs^Jtdbk7nb|XnwmC&51M7Tsa!e{r%Cr*%^%{g8rvy9F|4nJujNj8POz6h$d@9 zG{pm=sreQ~Yj+gVmMD7FMlql?is89Yj7^PVQfw46LZg`D7sY(HC>GmAi9EqktkjR< zM~x`fypLk-izwDT5bYn)E{k?nz>bNr0|IB4!2LzgtQEA&1&{fH*Y|?w#3&|@6fy=1 zS-pfzX(YW`Bazia(pC~lZB8U5DUoEyM3NX1NtkaWKCY2C+D2k#7KyfAByZItdH61p zYtJJ&bw84QHzVOvB+Jf3GUI3@Blbt~bw?zPn6T=LoicieRBh1S391(4i7R z_Ui}&o3pI3|M5 z!4ahP5i;cAylW2^K0D!TC=X|RemE^@;li&e9P_Yn9{7i|-#wfk?8EtD9!`dSICdK0 zJbfR|!50GlARPJ4aFQ;CV|FH-+egFMx<6dlWx}c26pqiDaNaHr=kO2V%$Xie$GC99 zhJ~ZnFPsx!!kFI`MrUIfp_O5LC=BCBW*FZmhEX38hG$?HPdvle<`~9Mt1vPR!!Xhc z6EReR?qwKF55w@d6~_H5Vf=h9jBm%n2tN?Un_Xe-{3VP*Yr{xb7KX~aFn*gMcuWW* zak!AvKaAa9Lm4OuC8{ZuS5=`<6iQEKD87lI+=&cj>E}>tJwvf{4CSO%DC3MmNzw}C zjdCa(Uxo_bwon{zg>vpnC=?hg!+IGbUi}Y;t)cUMF{!^;$Aa^ z#`ht7d?9cigiw7m1hq>ctT_`x(UA~d?GrqAgpjf^gnw6uFlk8$L32VlH#LOs#)e=! zB!oSELuil(quL(K()wUh%7VF>7tHXqV4P!vh5uSG^}fNpcMawT+h8J0gE^xcj6yXS z-8aFkcp6ONzrp-{J(yk>gE2S}%*sQ-#P10fd$wR?>w?99elYVE1QYaqFb5|FQ!^r% zCj){R`7H=*Nsx&B3=;3YAWjwq(VQ8?i^L!iFA;=AU=S-jg9vj7;(%okB?dv<&ND#?;gE+Q5i1H0VT>CMI&P72ynH|J;Q-V+#9mMFt zK^XK7VutK9pISe&u=X=9C7)T9^BJGy&#aIB%;%ub;Qg5}r_XG${w(q%erB8YXCjrw z^`+=P{LJQCp9#JEnN4Ru6L|D9YxjS~YsY7nZ~BbW>d(wu@)^rHpP4%KGrD6wGh)bR z-uL-TFL@vj+5%~<4dha3AVoQW97+i!E;^7+!GU;s2Qtq&5F_hAMi>Y3Qag}NB;ax&3(p3Md>?@f+AsL+2&8&rAb+e5Bz$oo%jN`PJSC8UV*>eia3CeU z1KA@Bz^gTY>9qm8FA1P6JAmWK0fa>buplTv*R`*Bytv~fo{n>oi zAHD1TG+pp#%L#FR(4U6g{;*l#to5gQnLlgi3EJuY6pr&}=`equedkY#!jBmpe*CZA zkDxL?hUWS4XR04|F@AIf`?1Bx4>e~$@~!>&!Pt*m+I|Eo`_ccUANwErVepS1WtaR| zc*c+0NBr>L>qoEce(c=fhw3UnG8XzVah4yaCi!78(vPYEek}Or%XNt_u1&tQRr<2B z(3gKReDRL=74=JeS?w?SZoYWg`ii;?zAV@E6+ULZIKK9!_OUN>@Az`=sxQXpe91ZH zD{>V3^4m^d-fr?GWVJ8S#lEbVpeUKn4tNqufERF7+m(#T!MnH*<=;`8CU%JBi*HMtBn% z;4Nf&GsNCo_`iD#{hc=t)x0rz<4xETZz}J2)Bl<`^Ur&;=eRf54tS%o(;KHv-XyN} zreU!+gXeg&V2U?8M|<PGry-sw`*@<~?1`1NC$2`G z1Za5@rQ}KK3s3Uzds6v7Pn!PnL~_!TuZKM8|Enj%w|FvcohMV4dopXDC-bIzvSgg6 zuyK2`rmrXKy%-RMVY*-n(=DxjTpMxwGwtyU-)L z^TP>u#vODQ{v_^n;!edHchZ))6Eepgrz!3jjCSYEAa`!{a_3aH8@rm_SXJf5v_esM zFvE?uI5+Y`-H7mY!_mbJ?N4qzGIryfw!l?(W9ffx!l%Uz+5g-q`pb>*lWy1?azkm4 z8`n3xv45=_E0zhIAKd7g>PGe$H+%-Wq1)Syds0{7Bk9VI)vn_I$5q&BTuF&{#VO2{ z_kOPY7!RnI> zcZ^-wqV2*cWfw|bxZr%>g~$JMVb@;==1PXS$u73AA$NxuG*#HJ$1I z-kG>(&V0D*%--wH48Pz^%5i5j4mfjQr!ylriT;nys4a5lw^_~%p5#pI2xs2(cV^2M zC%$z!5m@iUy)q|}3)qRqWG8H*oH+a0iOHT$WY{~QV(!E?Jtulpo$!3^#MQ@6%)ISH z&SfW5&p5H=h!fqvIpMff(5-i3%nB!B<~i|jx)Y1XIZ-^s3H3fsY?e9F*5Zg|wIc_M z9O<3uh+DiPXTlsA=I1El-W<8|$&vBKj)ZGDa#P8X$uAsT(=VO?F^;lmi)o z4&3u_V4}SP0cH-I)OFyCiUX#v9N6^8f#QE0czVf!siz$X{KJ9czdF#p*#Vuk4&r<1 zK=ND%u1205^ymjgKxdu}z^Go;cU>wJ3=^I}g{j6FAk?dj)jkFldYt1Rt_ z*SF`ax;`{JV&x||vcwMn)*I9cCj@a|Rz4r9pW{>uIdqjP4eCLU=>GtG}wdcwZ zd!dK2M@eeO#1=bjs_ewR(oX2+>^Kl-M^T6!SAFb|IN9;i%8p@%cIa!^G5ehz&QI<5 z>0diSuiCNuoE_;$?f7$_9p&5Xxbm|dtt;%fKi`fo)9rXQ&W?dY?NIGw$7q=?x-GUM zPQn(GLR-Giu*EXYmbsy}*!b8o-`N&BD_argV2izmxV{tpr?$-d*OpILZJB+}7K@{{ zOy6gV(KcHq{%niR3R_0bw-xVsTl$Z)<;4(NSoBpsj8rVo_{(`oxB|+csRhVngm38}=NrA?P<7mTk2W{>V0r zUT(w7A8hEDYQu#wHe?L4VM{L?+$Eow(ew$`iccu=K5;qq6Is!p*c|i;XU|Vea`?n+ z^G~$se&V?5Cn8>bV#%XV=>GGGZ-0N{(y33R9Qwphdp=?M%P0E%^oi?BK9N3Kz$Smf zc;qK~5BS92U#yAmux3fUHJYW?bY@#~B*_}T2x}$>So7G;nnD|EHkeprtZhw?k~Jq@ zSQBv1nn^dTxqrc$tmD?KJYbFb4r>}VShH)DHC79(`8LCvKgV0+HPo8neXY4Hvm&g; zN_E4EaaKGEu_Ddeiuq1fJhQYSQ{RdO>f-*56&a7Mn0MQX$Cs^0K5fO! z!&dzJs}<3kt(dshimOYl2%KZZkSSK29Azb9!>mwzv1CuDB?k4D)RbDXI>(Y%NtUEW zSTZfZk}GbOc-vUg%fyo3v@Ow9vZU;}C5!G^^6zy^g3nuuI4eu`@3%y6yCo$*Tk^w7 zOK!}!6gF^6uA#&YY@aZoxe!_xT2Q4_e%L0>47UchE!GuK?9GYo?`UDFShFQ@6 zI}0|;%|%WdbG)m~X(=>keug>c;>G#fxfwjH#4W|wK3yP&2;xn6b#&jAK@2yfHAtUENIV?aUbT#EjLq%{Y764CT{i!Zu_^@g6e< zZZ>1ZPi7onV#dqaW;jeTBW;8k(tc*l=rLt`yD8UeO@&U@6rW5}3gS)a6=upDUsHBE zn{v&{6g2}=+|*4)ZW2>EADc4%wkbbdHs$DPQy%#f_FbtloTd>YBM3M#)P6G6Qmg?jEOg4X{ZUid`vj+WWr-h6Lj=V#9q~esMiAT zkqKS@m@xE`3A0a`u(Y(+HP)CD!Ny$oGUkbcu{d)WW2kG4y^1k@FO7+QU`)pUj48WlEb=B8BR^nF z|DDE+-e}CURmLn>V9cr+#%vsC%+4Xk{NCG`Kf8^D?$(HF6-M02GvaZI5ig^RPzp3c z!`%p7TO*83j6@v)BW#q6aC~lr>s=!}uNmQc&WM1cMg;9OB4n!(Ve5>DSY|}zTqB~U zh&IZI=mFyT#gM2DLn7-8i6}87EX$CP1VcWD84}=Yh>x=&o>qpq8W`fJZivkrLo6N} zVsy(8-Ajh3pE5-0kRdO38}b-K?yNTC+9E?P%rxZB35NVW%#fXZ4cRC&U{#9&3#ts5 zUSPoJGz0p_7$E;_K(mJdWp)N+ni>$TV}PHs0S+$=FuG@e%5?*to;TpeF#}HRGvK#v z2K>CG1Y+1QG$Me0m)zV3GC3vwoV_d5`CU!>2oDPpFhI%+2pG)-VgeW zveHMPuTO=VzR>sUlA9h^Z1mV|tS8R7dJKH8N6k|`qVMQo zeMOI#XY@F8SdR_A>M?1v9$jnnNL#Fj^DI5yPt@bWa6OS|SdWQvUD{i8NvP5l?h3j* zP1EIYj4n%pbm`}*OQD@Eo~F7e>*#V;S(i00bQy9_m(pvxc%KvSqq>~ltILY50)L$@ zxl46%n4`;+$-3+tsmu5Mb!k(4B)sh-S~VXzU-Xfc86W8#_mR}#kC=IVJdU%+mBr2mDFq#yf;$-a+V+9qh%f23#GN22C_L~Y7Pj*j}s_X9ps z+oOY9yAJnjb=Xv_L%&QN65@2w4AJ4Jw+>Ssbtp5};ghZoS5$OZ@=}Mk`#N~t5HuHb zSa)0p#XcQ^w(0O}y$-^Gn_fTY5IRMN7o$XffDT`Kvx;F;?_L}4IBjl+ zXtT^)n+6AMY|XW~psUSv6>akV(?O+^w(xhj~0z>T3FU-akNN_p&43)#%l3zuom;Zv?#RKLfuS@Eg!XnPDKlw z7g`*Q97OO{SQSqG?nsQAxwQ5pd zrHNjFCR@`qX^GYpHD5H@?x9Jmt++SQ6#61fn%)bXXPW%-uO_uuG|@Pt$=bu3lhxQtj?o--mQ7YCa)dg^`l$<@q8iUz)fio^CVm@g{FJ69 zbX;ou`B{xdcQu~csxiz&P57v&vE;p)$c3ZEZ+FxvxU9z2(`rZ$squEV8e>qy{6~Sa zP>p~YYU~)NM*3hiPW4iwwo8>e4XS)8Rpni_Dx(rrMXf4T@xD^U$w`&fma4+%PL=Jd zswBQt<{|R#rt-uEK~` z6*Q|<7*n9a$5a)@N2{P0sKP{d74&Vy)mZd31^k^Df1<+J+bU>XQW14#RZu;s!jN4m zyxXWEYI>;fV!jGJ(^R-WMuql)D%|+`f!dA_oUi*JYL9&2aOMY+<36x6+dk0y+6V5R{Xpa452B9Z2eNb$yljL#9MS%_Aj@ZwlC7N?iU^iKP8Xtk|xE?s`GHOo`KT zl?a=x#GH{zyz8e#z5G4DwZ6x>>OCV0-t$lDd(xubvm)?4nr`oD`}CgQjo#y?A;#bS zpQH1R>*@RBcvggz5VA@|Mj}M@xvzK0ii`$|6#1q!gp3Ah7osE?k&KLrlD$qcGK#FE zsI*Ia?>@it`2BGn=bmx*=YH-z=ly=ap26ho8BFQBf@#|JU<%q4OeJfBNq=cDUDOSx zj@iN7<`7JG#|6{S;lX4l8BD2NK{UQ0i1wESQReR;Qu`W2K50Re`z(kw?*`G)>p@f$ z6-3%6gD5O8h{`;JNZ1`jr?v-C#ik&FF<)L9MCH0cB$~tfObMdmaY3|TIA2#Xi1NAu zxvzF0`IH6H_uqk>6Bx*CXn~aWERf{y29n+NKzbMzNRlT5X^+f zYzm}5YXkWlejx4F4Ww7I14(8|AZ;2KNY`ZpsbN4MiMj$Ps6K$cmImwo~d?h!yWE&(*pHh?@f22jeH02;6)fL7=PP^d-# zeOKXq6#{6JOaNW#A3#MN{-j#xPxdAL6qn=A$NT=I{>GnNp7>MJ9e=97>Q8gd`P1$b zyzIxzZvLdP)1P*3^QQ!JfBLt|pVSQe$#$VXT~YU^g310gevChvOZ!tqUw_JM^P?d( zezdg6kG!+}=xK%@HK+Q~tVe!im*7V+m;ERw(vOCR_|XaFyD{F)BR|kq95%T`_VVCFG;relJ-Aeu7BXmefoUq+Xr77km5@V z?)#GcEnhkx?MvyWe5pIwmu7nTlBKIJh1mPj^Uc0gW#UT;%YA9N;7bQIeJOS-Uw^zW zNyzz<`aoZ@==Pz&1|Lc;^Wo!9ACmg&L-W#n$oiQN9Zm9~`?0+Kyblcw^PxEbKD5!p zhkRXpDE>bm`flMvovVFl@?sw{)b^oWvwSF0*@vEw@u4DV9~#upht%7>$)v`c_7{0m zRJJ#zWO!3isy9hK@}_AC-eh#yn|4NeQ`j+YO7`}qAN#zi#lf58w|JA*I&WIPg0D;7 z6gkhE9!%ry6TPWvgg41ad6RYbVTvl_T<;3F7t%yBLexZlyxjWZG-*%X0tma(v zg@-vq_b`1LdYJmQd68D37dfPR(ZvT|lzGXE`W*El&Anb^W97wTl(-JMrWe(Z_o9gd zxpsQPA#(qHh+^L!qOXaZbA9d*P4PcOYj^T`^FwrH(INUc^AI)2AEGgR4iTyj(zdLF z6r6I9Zr?gcUrrsQrb7ow-u@shG&x8XqJ!iy)cNY0gzo zT6LWBq7QhI|5i`Bw9=F7K6}!)NuE?CyrtbW`>dv(# z+{tUWJ0H)uQFy5vUC4B!Yfs!L;i?6=g{kh9i6i)#>xg4P176&ND-~eT-AD|zj575^>2k2APetMs^pI)czrx&;O zb36ZjN;iMjizZu~yVm)u7g^?T`Q?q0g_W-mqD*-PGMIaAqpFRgdlOM2_~(saGO zG-CQ*>Kd_^ihEosz1)@Ves$&VKUX>w>&j#FTxqGhD^1_#O46%bsb0&KzA3uWy}_;& z(Y%ND=5rSE`#m%_c@GW0z&XhQd+3wP9=c_*hXM@t&{p+5BpS_G$$j=v{lDGx;m2;e z!giAf=OUYg?D4~<>4eC#e7)sO4WSG&;dpDyJ7(uEA-Tu3^?g|ZL1P>h`m*&Dmi zY+V;>Q*j|S%!T~hcXCeQPLj#kN#7srq%)Ux(#9h@X@cucDzMy1F-v#y_|}~?Sz#v? z_1j68Yn;hC+nFY$I@9ksXF40Bi0!sOwC6s?O9g%$btgoyf7siEFYt zQSJjL3cKV)OOJ5I@g66-Yw1L`OPy%!Y$wVX>qLk9InkUNM=JX1NT*&p(&9KrYC7de zR}VRov7IA{*E-T|9Y@-z!r8~e94WcYfi@R9(4ce&O1|$vmeCG0AlQL!?{=Vdn;fWT zu>;pjb0EVp4pi62fg-AQkapG%%40jo`{oW(4&OmZ zc2H1@J*gIOj`4eY+LCNfJyG^_F2J7Vx!6;txjpSz#P#-P+S7$m_B3B?N1rO}$o88Z zbw9JC@K`%i3$-KWW=Ezrc2v$e#vb$SXxJn>?t5fMnvL7(&F}4G_I5j!-q}w3&Tgmv zzT4@P<90r`#QDb9PP%H_xn2wJ(`8EqCAQ@7*_N6gaenb-TN-%GmO}U1(r7DNy0pxe z$CTSrf`Tn+_P3=+HUE)_>-)ca`5(W2|8XC(|HzPQ{iko|4CA%`(P!=dXtgrWhw^gk zHcBtpMk_vSqj$;MXz_(@JhpKg_hH#akIlEy+(p~y_6*KA9<_~PdO4f8!iG+MwV^@J zZ0PVc8)`jnLrw>5sBnu7|KGLYv2-?s2{zpS*M^kqw^C%zRvP$vE4d|XrOMM=$^7tE zdT+m#7MN_MSlz8OLUk*7592)Jwk>2)xP{()+(H`nxA3vV7S0FXLe9Ik&`%4_Gd9>l z*Jo}aY56U*S8UDsq}HVO&6;ALS(8+(H94QKrmqLAY2H?Aid> zdMonCv7($;RUSk znY=D+rmTR?G}C1>`I&E~9R1CtF=I3NkKD}tg)C`ixg{O`VoBegSd!{hOWGe|N$>Yr z(im$?+OeE-5aw9YpmCP8zP}}1tJ%a^3Y&;tZlYtiHc@u?CQ?4QiFVpjpXOJk=~naq@mbIYo>0baM_KN)nP%S zi!I1J!-CE|u%Mi13mO}2K^D6$=*&h7`e|T6Bh)R(Sl)t;i_Pg{g*grQW=?v~%*peb zIXyUTPIdduNo|WcZ80>bvzq4gWt=$;9AHjD?FMqq-axlrZlL^I8%XZd25xuTK<>61 zC}B0PTd;v-l{S$6;0?5=X+2%}v!1@aT~B=y*K6n# zL1sPKx3A-zSI#{CxQ@#1ts|L>>v$}|I@;p0j)KhB(H;GDlr?=Fb&gm^ialnuq|A(V zWSY_O$7Ymt*^Is)HKP_+Ga9|wjI@`Uk%fjC*OfKnJ`QH|Je>bJp=cY8`x+!Ol zn9?dYQ*zj9N&zcODQ2!IJsWRISp!U|uGWMG{W2k?R1?yUGoiJoOvwJA33=I?P{e8z zid$epDT*fi9cDrmjmA7y)tH98H72Dy#x(bgF)j8srgb}vX}gIr|5i1o02O08Ep1F! zTi4Rvg0)=Na4lurT}!{tucZ>dwN&r4mb%uhr2({-WYpHu*x_qwa_1VFUc81hGuDvK zgEgcdy@tnhabEJSHDqeBhRheOA1NoQWJ zq~KdC$vu1}?eJVl7XPiJ<*QcG08rHFd3JaG|^2a6Qe{TtyU06b@0ZXXac?rE)zl2WF z656V^gfxaP;X1^N=|jg2w2Sdyqw{@VKHscTTF`67E|T$#dNpR zfZU4>NH4>H20k#L&le52e~1BDxERnxa|0^UGob6!49G#wfYiGdQC;yO?y|dxTpui= zdC`lgC2$cva9KqA%oovo{YBI?jkn7!qFr73q+X&=|1$LH#shuY7OhVcgY+rKMV}(f z^=Y-fJ`I|#PpO=1;?bo?nk9O?uO3}~phxD>dL$F1M{iy9$irNZH1zeTWSSnGmD3}m zE+TR9|J{b^zXwF}(M0b8iQHU>rkNAv=n(}^BU&IwRMrWKCnI~ft#wd;~(p)Otfpi2hHy7c$F zE_wOsl7f>iJu=fJQ$d$%RdwmeFkMn<(;-%%LmS@fP(zXq9XY2%lYMpQse=v~o9a-7 zt`46=(VBy7(545*+O$kZn{p;=lfw{gZg*YC z{rncvxVH-_?)E~`j$BCZycW_ryMqT%6M6zRbk)Z4Tu zdZiXA&C{Z5sqo8OvUoC= zzFeM5%Z|>a7klQ?+)Z=oromjAFmo=2kDSY6jWx-mRFi5xY0{R5n)E$dla>T&(nA+b znrf~|XZ18mYMLgw4cDZKjybfUXb!#oIEQQH&!Njvb4bRYvv8c|P=(nXG85*|OVv3v zW7r&uY@JOK1+&TF9cSbu&L+{>*%a$No1}NlrhUe<>5ukoGMGG@;s(zq*(MFz|67B8 zzt$kV1P!_tp+SQVX^^9>24$|&pgCF^6fseQS|l}SLmlT?XV0QBFK3ba%~|v-Y!)qa zpG9Z3&Y~8>S!Aj?i|#7S;&#Sahu}ht~Z04qGr$%{~6q0YzDsuGe}#QK}S?)P>%ErQfr+~2lA&=TH16PnK+$n&P=DI z!_%q9ZaNvRold70PNzb}>7*_-o%`lZqgOf8Xy~hHv_5Vc=W%m}w#PJ@vuzr=ubf7y zbEnau@zZEc|7mo(T8;kvP$Q)mYGfCyM)AkhsD2-3X&pOQrfPmT+d)CEzzG!{?n#%?Ugj; z6q@Zfh5Knup&O=Cs7QATjaQjM>xWLE&}LQ6=2E3TZ&gX>wkqv8txC5JsZyb>Dve&v zdE8p62=7LaJMM-EtK=I$MRFjZvW*2^E@9 zsZ6WCDwEd}Wx9P?nevV()6hN2q_a_(Yk@0MJ324Mme_kIH0<8akQYG%Hc{A0-<3R*CDdE0N7k6zThQMQS~v$aU8gNyl1|ESD+LAq_=}9<4}BJc;tl zCsA+aB%1Je5{Y6a(Wc-@xSG7r0D?5n>cTA)yg%e5t!$h*YJCP2Y zn@A^pCQ|&4iS)*JBLAzJNUcf}NoMdwn%X#lkUN3aznZ}9D-$@&VFK55m_Ug(6S%hL z1j^Bzz~eY3P~UzNNWN-3P5VBcM9;?4nyce!>#_0V>N=hRHjSr9gYk4@#&~)(Vm!U; z8b{g1aq0o$5_gFK9&lujis`Xu~fZxEHzk; zrMAUmscYs~k{C6X`uB{XL8W78$fq$h?7(xQNp{s}lAb@B22U7Gk^@Fl-x_)9{UJ{s&*iE4 znmpBo$W!HBc`CM)r@Y1T^mC>>Wsa1mcip2XrG#_HGe*&!`=jXkg;8|De-wo~jiO+) zQRF4!OmdY`WIuEiZEhY(#(zfA;x{AtIAtWwh!{x|502z|KO?EH(MZmi8%d?(M$*rI zBPp$F1U>pbg04RsL6KKSP{6SfwAXb6*=!m?YYj#aW{jX2BSz4eE;$-dEXU)GWNE*-ELrHu^0BKdO^}r( zahnYNEs&wqcQSM(QHK1^$k4XKGPKA}h9<9(p*{;_s9>TDF-aM^P&Se34IfI09z)6BW+<7j7|M0~hmwQ>XQ}rY z%5Ael$o=aOGI}zECSD#w^}$0Zb=MFIHy=XV^oGz}wIS3`b_mx{8BA9S2Gj0$gGn!O zFbzAy8R}kxDQ^2?i590QyK~#}Eh?33^q65BzNN^ZL{Y?hZN9{pe+kFtNlNv+{ z4Fjp**Fd`Zav<5?97r?522$ODfs|}LkoGMbNDDLuQiuFNde$pRhsq=gpCw8BK$21} zN|JYgByeu@}>wd*LqX#rq+>kpJC-ZE-zFa_>R+@*XT7(}Ppx z-N<{`jj4g%*tM=3k5#%M(cFdQue)#}ybC|Jc0plI7px_^a5b|N<$*woyH$k%Q765fWvHf>lm zrwyJGZAi{+#lPrQDDG^p z*9>o!W+XN>A@5ZahJ-g^;npVnH@gX8;zm6G+=#M^jgWP2gpQ~Y+lDmaSZ)LE-D*It zTLbzmZ@|>i4KOOJ$L!gx_7tcO>^ z>2C$x6DttlRe_V7-*;hr1#VQ8t!4Q0whToPWvJX%hFZ-s zH1#P%`->dzA2`?W>@PHK|Anvfe<88|FNA#0 z#*Qo5Sh71CN_yGo9+r*lyq~z6@Ds;8f8xItKOv0$iBT0whRN5yp<&NAr09Rc zaoKO!RPYsQcfO+e;8(m{`4z_$zG8jl7brdcf~vqTxWDcT4yk;>lBP^Zzsf{bSSBu5 zXToMyCe(U9qbB_`lFxs}fgPWryYMr5B|jrI>l6I0eZmsgPZ+r96W+^yLU2I_mfy+1 zphFpWw=x3(3K=k{Oh=!`>0p8B@K~1)EtPaMHh#qI)Q_+W`v@iLkNBU*r*^BxlV?{Qz|J?!(}VchL^`0V)(J}cfqbL=~m zl&9hJ!!#@jNJEQh8e%7>!L;Em`o4UNq!VvpwfQZE%zTSSoo}%1!yCw)eS@dl-@tZ0 zU+(_~Prki|&E?k^vg^3SM9IH`erYO7@1^31Zz|M{ zQ}Ja|DqL${V$_S5cy#O~%s0M7huTY=Z%cu8S_*O^QsA~N1*0`n@IWF3CYcO%7a2mF z7}Rtb-bgWQ`Sk*w*I(fDz8BC~`~vUgUSMnCb95#?N4VE>OkedJspFo*{NFRwK7I!O zpl486{|t#L&tTB>6xpdy;TZN5y;e_gQvE5EyPx2}$0t~N?g_H(p1@w~3EKNVLD2Wd z7=7h2Vs|~pTzZUD>Bm^}=MnzIJ%YXaBQ!621aJ9A7*hHWk@p@#(f1+Z);`4CNe}V7 z<^h&Ge}GR%AHdAw0sc&V0GrnPsC;uDE~oCJdFy?+&%Te|-h1%p zhZ6(uLH1`d!mlM`gljS)^pi1Cmgo6*G2-@JgnQn_@D+CvI_55<%ad^QK@tY~C&Aw& z2@*<4@T^Nj>x)F}4oO7S#zfdoOGH829hj%x!Pkg8Fx++rsdMgNp~M{|e!dOWi??yX z@ivBY&S%h|+vxh4fL*Z(C~-}I`Jx1*%O(H?@kqKIkI4t)acV_828@lzzVbMfJ&414 z|2VugiNidlI9#o}h2iWL4u{-A^~PJUn05ri#Qju8FpXp*@Oi~LxmB*a3+GZse-V^KRg7A9ra z@bLaMjP<*QgT~iTFzFifYp>$!^Q-88>?&+6t|D#fRZMBUg1|RdP#S&(i??3ERgEj? z(|Z}#8JF?m{ADQYxQzV^F5~-v%h31{gQHhsP`WDydK826(lKcMeF>}MF5!mTB}gp0 z1dCCZaJM)bgOa1M#XB00R!2j6LNvBjUBr_o7aDKVTT(CJe&_`Z zw7P(eGcO>aGm0}*qpb{$7WIw7sW0bI6n!3=&gbEydmfom=P~iuIXGQE zhbMc_LDJwHOoyLCOu<=H-#&{42hYN9#aVnFa~5OD&%oxv86^0fL96i@aHk^#*GA&Y z^GJ+27Ktquk+?B6616R-G5^hJc!r-wDrd4vYMjQ(o(P1cMgY=SP z&>L|Ku7yW&J@F`V4jsi1qoWWh9L3IxBe?YN2)OSIButNBw$c%7sS8Hfi(sT23r3Aa zFvhC|V?}Ea+};EsHarO5wgf>uD+n`t0%4vW2>)||NVE&Y@A-ik&_58fzXf1pOaT0M z2H=h;0NH~BAd%ybX*c{~yw4x*2L6Z{?vM8ceyF?c2l<135Uuco%@{ufm-*uMeP4X@ z^+nrSUyPsR3%wd2{P)ZUK}UQLzrhEeReez3g}t_C;UIPQkLX>O29JAh?22jJPeABpGpqeyE%Mt6#rYK063EBukPLiLr+=)z`5 z{kFvD1C~%3VTn13n;@**1jF);F!S38>q#52rHF%vTY4soLYk?8f)+%eKqddtwwym)wq6X6=HN(;as*6!d;DURK^It z@hjo6Y$bLVuYld*71%s(1xy|pVwtHSM0LwC``B_QPhAfA*UKPfy$oHQOHmWK6#1G< z@%i%-Foz|$Be?_@uPo+I*J60&8o++P0oKVGV9}jL&{(ku8p>13Htc+L=S1} z^pMyW2&x6MRF?+iRWKLf|LX2AN}bj;p49eoB*$G6yNxS~G| zd-Bw<$XyM?N2%d&(p20rnu>!JQ()*n1@ekhQ2b04i5pbm*`$JHp(>D@p@KhY%D7>p zjNQGHp>uvR`e{u@##bdoI4i+YN(m~lim1|4MDm|WaC4gkjGTo2NfYs57c&mUNTNN<9XDq7Djz#>uv2gq{1~Z(-;NQS8 zxOH_j?6^|el;83w-Y<{Ka`LdcGYaEYj6!zlNSyK+i8T{OV(^m@cxyHShwJ5_6C#J^ zsdBjedN{UQ567e~S^SEW<=_9ZSoT>4;vF)0I6wx@mxn=F7>1l*(g@uvjm5Ik=!hSR zJIjW`rg#YC4-dgdg&{cfa4=?@3`TK{6iy$J!ZKAUbi5pdILkrU)IJbHBL?ER#y~iw zOJcm8Br^I+!ZUgRrs)j8udMzE+}$7Zr2C`rWl_a3zA{Uu3;t^r=pW=wB!N(XADfU2B9L zan(X%VU^H4rb^IW`%gF&R4Jsg3ZZ{%xv*5dTnPTJO!yF0Dh&Q!BCHr(A{^B(7CyKY z34@Xfg{9?x1;2@Zg_r9Jgr1OmLHkXfu(#`vkf`}bsNC^eP`;ciSpLcpPRry7pO*d- z26$x)q6a?(*Xk_cmU5O*uac;^>E{(7dcJnysMKJv2= zxAK$l+c!fP@-$u0ZTKiSsC^X9T7MAUMZOoBKfM!_2D}qii_!!S*SEs;xHrPr!q-Cg znAgITwXcM=L8*cVdnsIPNfFX#rU*^jm@qEtg|O(`bHQHfxe%)NOt^pGsgQf;iO^g6 zSWuquSXgHENN_mzP&oeTfsoX3U-&lrzR+xUPZ)J6S#Pth;T3(bOjEoXYR-PB^ ze9sA!kMv~gbP6yLQKmB;o7$K!i}$HLL9d=Cfqg_?u=V2Bpz8UB()g{NwzD6 zr0<5DA-`O>lekn!n6N~MJ7yrKtlZc^$ ze%~R&>|IjA#QcGRw2`FH^`yU0F}0uY^K>8Kbw3Hgy0}}kFr`Bz8`UZ*-`^xkF{u}w zo>e1q9Q;qDS5_t(^{QA@dGW94g?pYTY+bI%W=^(fzVr`~WaSr8_M1e(DwScP`&CaxKJOlh)?B?W8h7}vsAA(C(S5CWk+iJ%qDJp2BDaN#qTaf( zBL5pBL{iq$q7(81MRK1dMCwCYbmx0i=!zl&D6>KeX#rMpJ!p{`l%EnSO|7j-xL zh3VQf`st>>+Nt|3W}R-1mq@q3QdzfDXRz*%IYm18HHkW3O+9r=(&cr2%NS})NJtP* zDbGKN(Ipl$wEL=U%+&6|;-F zz1YR`jZ(cB!E^cS9>n*E+4pNb(B^sQo*uAnF*DNRWu8k7>p@(Xn5F&h#&Dkd-Rj29 zPBGIv(2dj%G3!~}jUhaLCfAJ>?fkg@cEP(%%(U)wA)!^wnmxPlxkb#94ZBd*EM~h$ zccHmS%rr_n(cUO#waJ}mY7n#A-km6}7c-~To%mQMW;4cj;zq5QRaJJtqejf)A9cW> zTFe{+I?%U@x0`n0aV2k8?7+4Pe%`h17*H-|&d=L%v6OHBXgg+<@awXn9f?JJ|9sAL zTA`TjZEC~00x?^V+6IYyG3z|h2FpKU_QJ9aiMe9tGrbM%zr<{Ddn*=X^Yc$@g;SQ8 zeLB^OGvCE5d}}M7d=)cujaGck6tf9EEy({QX2l;{P?Roaac5ib=L0{_?JdZ7CuR%h zwIKPem`U_)LFj8Sd!N~it*K%bcCi`LQ^d@|u^E-m#Y|bd8PQM0tVXgKhL6SU(T^tl zdmv`MSDN5^Ps~>BYJ$vNF&m2}oVp`sr9+w^oxsm4rxAy4iP_;BjVQj(`|WE4T@$l$ z28}p*S)HX=7#%%0>oV9W(EJCe|VRp|LT#si#VrICi9`XMCe8<(}q>q?2R@A}Si=WTKI_PVjVnpi`kUgT1?p~X5weHc;_HyzmC+x+D^>wZKy@{HZeP)S__vgV&>3P zgGx&=Tbfz}3k!ZdLTiw+PR#mjuE97HF)Nr}1LxIZmeO90hb#F0(yGzCl%ID*HKrMe z*;bosn30$n%&x{hUB2JmDugT$v%wivI6qg+>dsZ+qK26Lu&ctE8DjQyeieeI^7HIh z1!rY`UB3Q<;Us?FF8#y!abmW~`5#K;#cYZ0KU|d)v)NMrU_MOD#%EWe-(dc`h^@r6 z0bHZF=Qq8~ z>|q%^Q+nAN|1unY+RKbg%HaN>ml-OSVMkIgTV7j=weh`d+4EAUU+4KzK2Lp_x0{#Z zLsTzYIi(cAk$nB;5(p=Indz$%R378o4=cg3K)ye#5-9uhGW(e&xa-M}r?VLI_xCc7 z_r*xs)yo1Ri=pJ$%TE4Rj9}Yd7Oh!~QtMuJTcQ{XH}fPqC=D)cgitU_2V=w)-R7Q%TBKknUy*fXP-Z6#h-<@=N7?UQ=h z>EC~`bZjq6zV(-n<$77>fxl=Q+RJK}{KYHDUN&qbpBIbb7YRB&Y$|fGY;F(RJv0};X7sS< zxjERP(!&Pb%0b@v9=85K4va_ju-GLzcrM+;T1VtyykrkEEcyl4-fng==@(wMcC$vW zU+7oY&7bRE5S4ec%j15*si2#6Rc0eRyPIuzoQ*q~-Ryo~HeSB#W+T>R<3ma}b5+j9 z`$yd@tKlbJBzCifFMs0J4ZhtIKXLR@H|xLoCv47iGp89pF(OJFzCf1iaU zuWoiHG7DSxce4q$Ss1jln;oB0&ls->|H@i&YzagK2RWa~t;!>vFr;fPY`H>T4H^c>EQ*@4J|4 z&{rs?bg{?lzM}g<7c)}%icbk$thn(DPG9X}o~d78dcKQ|3j2bAC%f2Pt1n0n>SC+a zdA(N`tL@6fzr9^7^kXL69J`q2xlD9#?PA$>nb>dM#k{mKQNFs1O&ySl)l0hAx9^`3 zugmMNaC^g?E~dWwGnT7$u{`>W;E7!ngYEUPuoso|1hdSBI&X4Hp+Q}k5aNC7_Cv!Oa z5#y~o*&@4-h%)VDzCwqM51GJ`fvh%w?z<**VJFNEs zA4YVt?J^(GU#gR>$$t;6-VUa7`#r3hI@r{M@A;U#gUPRakCS;FY>>ixT=>?(x+>n` z;=2yk@aP>*Kks0bf$!jVw}Tb0dk6dL9jrj*9Sov6SbkF)Muze7t2F%a?_h-|({SFs zgOzVd!|I(KtX3lp9X1`Tz4tB7Z|GqCKEH*gQ3o4-@hx8Jb+E}!Z?SlO2b-t+7Aey@ znBm~Jm_4zBZOM6qvvM8GcRW@3*tFO0N-evz?{Yzrv{tyno6ooD6Gc(?VY%(7&Bo zTfM?=w{{k({t6~e?d)rJDyDB~XVMv|Xg6(VMp3DFzO0=ccSywnUEZ#pifJ0{Y_wD= zzD{muTYkNSi+nqazwr|N2e-5K{Vx&P)5exBeF@oyHgw`Vo;NUroo!=^sSIzAwXwi3h6XRbzBR*$J#B2G z2Ez>7Huk>v1$4~Y*uu{*ptrJ(#b0~@5!#rN^9#(H)5gw;USPCJ8yhk71zP3X*va3| zks;N_WaFRXTz4xwRQ>D70)rMsFhtB`y6k6w6f`y&*1p3l|6j?3M4XWxs8oV(F$fCe%+BO7?!9VZQzt*hh5Ie+U&AAKUTZN z<8luxmp8Kzx(8@CvvV@{Fm-w}iz`URz;Vs&MPf4YhBUM9hm#T4-Nb6vBx7ey6O&R* zhFX3TQ>(v=oX<^c<;%P9Noiuc!tP>HQWHD3$ef}Un9G_|2B4+@qWv0W5MD^c6{`0G|z2heJT=gQ@N2H zc$@%}5sj=NI04Ol8=1330zw)aSk1HqC=@lY-JS8c^tFMteT?U}>jvf%6^|214Q!ZG zJlZZbuxL>{HiR~?InwdCB(GpxeL}E5_l+ z^afU4e+x}x8(3uOEew+4_2IWLvb~-!#CF_~g=j(87sbe+K*HKkm$9}k6$Hs4UEJg1+QeM`v zJHxMITw)!&R1}My7wg#Rd$D+Ytd5=Vk43wC9Xq-%7PIYnJ|z}b>+9I@wrlWPT*o5b zUqiHJ9g9A94M~c1EWzO#o(`*HOqb`~we0&)UjMI_Rpnhp^sibrF!3sU(`wmN@2lKD zp_Z*Mz6y;iwQTp~t7s3cWl>F6@aRx2`@n66&W^RL>+}^USk$uFc2~fb)-wBrS70%( zmc>e4L6uT1E6u$OSD9L-mT(!3-8F32q06xUSHqsIzKpEw8vgsf4DGiyY*RxFP9@i{ zyRTwUa;b(5iHL#v@fv1t8v`eg8umde2AAz>nEId?d^W3LkvW&ps9(eS#$UovjT*N5 z;3Z5LU&BgQU4p7q4YQnd2`a7CEW17$3dPlI-K%H}{8G(+or=c4=he*0HX3hlRkI4M zXhcRvJax zMuAoA&EY7V-c!XwjH8fcRmIjTM`7s7DyG_U9@-14SbN%eSSj=EoIMYBnJRY6;XFdR z{;^=ud7Li)#~g<7{QEz)_U}1_r2Jz#$>-o1|Bp@cKZh-6{;_fE&q3t(j}2El2N{=t zY)I!>WV&T%ko~uk89(N> z(~L^yc=QZP9#yg^<3ih$>6mH5_ zFrAO5;M}KzC0;m%Y1QRyD!0$({VZqK^iLruwVbJp{eMgQX|Wm=96$3`;@bn z$HMW;v78xOg=5|Na#lV&93S<{nNPoPXw4{Ria$@{+^BN)>gGu_iObjy&y!g4uZ)dc zeGKb5kTeYt)3Q7O~RI)Ohi zrEKEO6Noul%7%HKz{b6$tl#Pr7-Ch*x)o30{<2cm(R3VUb4poP+Hq7Vl(IhDUhLk# zlnrq{j^3IQrl5Bmp4laA)`;V%eObbmmW99~u7ue<3Bj{dCCo1*1S1cXu$$H)u-#t5 zzG{XbVND4W4+ufk!V;#La|}w8OW2NtV^}?;gk3w#ZOhHYtiiN!1><0ul&7PH|oM-l5&%w}|!a9}ESRA{Lz;gutOiOo$J{zve<#3z7kX3aAVsd05yYeXzo4g8{)#X4O-CoEh?F+=+)rG8t2hn`dDr9%Y2cmRh zAv;(f!2ib!+1fV&Xs!Lr)Xwtq&%dm{QvgcYU&bka$h`iSWsC^m{zHG+qjG;7+5eYa zf98*kR)1Mks6UjJ{$&x{{P9=)FAHDbkH}HHJj5T1dkWYEZYQrSDPTA6`5`c)fISKF z!`S-;EOV0|VxtP!KMg-j^($af{rzy+p@6CX@`ap90b8Ho3s3C==I`x`---q7k(n>% z4k}=EYQFHP%V#rseDMBfK6C!+g8?j`-HY{sPHaBwb@zc?NIqM=+6Tv6^V!wOKDfRy zpLMr-nL z5Hz^EySonX)t5bg)YA{Mv%51%ch|4(J?DK@S481hhI?A9e-!lFU7cGs3OnxJ)f8S) zSP*wte?J<9fm`nC=c%JmbM{^R7BmXEhuqa9_eSDj>${p`;z%s7d{@K#MxuV{yV~~V z2>i=@SLclxfi=JG=;e|lfQNT9_toLJc;b$BA2}S&x8Ko|#fIbV+&k)X(ca$=yQ9m8 z4#SDIcQkw9VeqYbN0*!(iWxq4w8WsHc$Vdky7Lc3(C^#Y{`3$GeRx|l_8)?SCvNL; zuOWE5?Y2%hF&Me#-qyN(1_MKHYth_;(X7pFO@3?;dRD%z?|KfxkW#nxVGcV7;Cb7A z{uzh?KW^#s?gP>J-Yxx^Z6NBz-O{Y?0r1~^OO40@NF9AkyJsDMn*(m?#v}c)viU82 z+qFMhm%F8sr9ZM2yQK@XAL7#9(%)VBq1&gM+AVWGq`YxcADex#)V!&kyYxkgH8=H( zXJ2fabW^9BeNdw3P4(;22TSYU)VrR2kShG9&NX|ZTi%=6s7r4gOL|iaW$uk^FK_5C zvlrT&yP>zc^unq=H}pj2UbwaJhN|{Nnvpm3NY|bSY=1-Jv-Cv$syFoEksjz)`i3Tn z?13SkH?(xN9`?NXy0&+B$EZ8kb#3?V7~sCH@3VJD`}Nng($Pp%oqAo@^^8Q(-q$r_ zu1NfDa9t-H>xL8I*EL0-ZkU$$y3Wqi4ONp~*WxF;;`j4wda_?vY&dgG`{(P5h+Wsz zJH88^&by|s2X?{Wq1SYO!7fPB`kGEZ*BRp~T+^OIJL7M$Yuc=6XY@{cP3vCjgqt6( zYW}!B8 zd(Z3H_6;z7!FjFa*#P;5p4VGeeQauRUi*J$j}dvL`#QBZk$( z=x67&f_FVUIeAXA-mD93Ij5f{))bkM6lDMP3Ux3! z+d2LGsW$ffIIG!K*T&UbXSGt@+W6o)t5Jz+Bgu-hdSXW{q#J!!bGEL9jP1|rp!Bui zQR%EcG;88d(X-mPM@_s)byjcYsfqYkXSCCq8d!hkjQ$%|14Fi-(X}OOpi=Z1ZFsvn zQuRHfo>QwMuKpRl?Wm5y!Dn>Gs|Xazenz7gN8rSdcpVWDf%doJb-=G`_z@GYLpE2# zxMlG=rCBwk9u=?aJ*r`Rn|M8UxGH{?i`S%)RnfUnyjI9v6=#yg>&*Bn@P2k$Uks~) zQ72AojZ#%`cH?O^?^H(SDW^4jdS%p&Jgu=(853)q*2eEDVSnk<`h9sN+)000*Ve9t z-|tUp%S4sndGVAM+Eoz+cc0QPZ7ZV0oKt$q(|+xLN@I>zK!Jv*bXWfh$P{u)_Y|ps zU)fG+?6vZ^_5GyYnOGisZk*Jl;pH*@&`Aw>RSvZlpVWa%$|2*hlj^Qf4yT)+)SQ3I zVz_ZqN9-tzVqPcpU7NBv{pW;6dX`1UdnfeE(K7g{Cv@_FG8nhwgqAE;2C1S>=&c*D ze-0;f?iAox*%R8_06G^qp}y|~XA+;#3@ZiRkB;l_x`L?K zM;8MP+8@{AxeQFLa9r!3aU!PBah)>KiN{Hg>p4Fsl0G@6c^^BFC+?UIo##O5wa4^H z6$e7c9n+@2!V%u#nBLhMj=+k?G_rL#iWWYmDLliGDcLdI9v6nMkK?rcpfFrK8mEQ5 z!?12moPN3!ioRpx^z6(~gtm{UVcA!d4yCk^_QqGU}*C77s?DC5w{L%Y{Tb)(>vG9OfeSiDmzg{sjXR=+zLi9~_D3}FmXi3d+!1}# zx+G@iKcY{vl!U!T(pRUvvEr`keV`@hR%_u`bQMQoNA^% z{#O(SiX{{ZFaWlJ12X!nA*Vh=`p1Uv>UXIaE7Ym`st{AO2sSunqV{{D)A#slw&G@w- z+z~N4WlKQ}DITMq?FynqiWuFHqaZFnKCIQw7qIWchxO<90?4@HupTf9VD0e3I_7hJ z_%}PO%{J%9fzZQRwrzd{XFaSzIr3xcr$ZWiJ|Da;9MXyt@?re8L)upI;rWz9I`vCl zl<#s#W4GkRyh?{ORr|bnSn!ZG%as?!5*^Z*i(cq>_n?-T?1iO=59+$IUWi|CPI(4IYWp^)Q%jxL%D$+92NRrhk@{^$LAVSY~Rxv*c;*3OAh+xBat zlsQpp%6{E`BnOgp-mh5(=dkw|`*o6E4s_4IUsJ!#j;w$7*?XPrICyiPhBV8L`uq3k zL(lAZK6{@oiO+@sz4mFlaoO;@`aTVnY#3I2pXU0O6`zys(=qT|E8nz~C?oHzGs zwgOoZxOlJn-^zlS1NUmPIa%$mBMX9j_v*FeSuiZkUM+DXGhEO2=#;^k@$Kjy z{pp_>C06dyfv-K$aQGfgyv`Fto9xlWtvs|r=2Q?(_#3z zoqEmArsdnbQ%CrwL(KS{8t^JD>a^XdU)QF^J!7YyXr0#1v+mRlxzgg<=N&r#Y8tdT zze8t7r@`gTJ9K&VG_Zk@dLTs_tZTbN@4G#aRCZ|A5gursV}~{i^T4*x+jZOL)cAgG zyJpyt8qUqzbyT<17(9Nv{;~6J+uLl{DGyWOo^!hvS(XYZvv1e)O;Vx6r)@ehODa@6 zyG?6dNQtH!w`t*NDbacCHceSIC3>~mroWQfui@MD_mLFnnq`}M3{QcU@3(64uoS3v zdaE}0k{rJ4wrcdw(I26297d}mf@fo*j`qjx0@p_BSZj}tF zj&IQ-xs&0@$}M{QdQ$WrwnYcdO^V!&wrFtOq)@*tnk0QvG*7cd@10J9Pfs`NsfkH2 z#@eh$D<(mjC7U%qaT3fJuvs5zVtCZqtf_`4MwItvHNq3)eX`9u>RTc-zQ0K??nz|l z;x}nPpG3$ycayI2NrbLFH))w0|KwoRP1>~nKS@+*lg>K#SIYg_sL!kYwR1-swb`*h zvUAr)eO>mC+?%>l7rXwG(n*!lf*}^)BFE@l*mf!w7{^Bk}Tgkjr#dP7XDbPe+PY#BA3?c;&1O| z>z1|JV8DARHGZv@`tnZJw_2-(`n{7}VQV$)(_5LCX{|=~c`NT;tx@yC8>t<)Moag8 zBb%13(U|wI<|3of z-@lMPGgj;8UN2-(=hfQ(!*hu#yIQmMc`ny;uGT9bpUIm~t8`c2XYxCKmHj?`D#_NZ z(v$t4N{W%IG|9IolC<$EZ8qqM{PbO=7k)gJm#J21r=gGK(!-US>%T{`|L{tEJK~Yd znX^*w{d*|gy06rCqaTX1(n`&n?4hK{yHdMPcp&lLR_KjX4`lNB7209yeJQtbg{Dt` zUp`0Ke?9u1tZ2GIt<3kNQoss5G5@YS^;n^AbKaGakC$t}vOD7GTCVf+-;ot_mut?o zx20&0?*A~9FWWl#(+I-JVNpXIe4hg*}y*4b<12H$`;;3bs zx$F(`X|hab#$A_je#_Lm+I6{_YMDMcdrk5^T&iZhYtsJEQr&m`s;r*1RL{1!Dz~~W z)ufNENZRsCwOQvY5|(SJo_}*$T7O!i9r|9DQKy$^jvtp~(ds4odc-B!Hgt*JOL|FS z>MhX^lP}6q?|`FLT;0){i^S z$sosKy&rl`8hS3)w|Z85UM=`+`XpvrNa7O0#S)^_5#7o0!i!@D# zc*#&;kzRj&TH<~z)YyKfrQd~xdiM7z@!GghzmGj7)~JPAF6}94*?6IDnR`;c`YhC7 zuahz{#X`Ne?u2;WTc8_!PRPQ23pDz`amg`#fi5b0T;_CGpzc%0B&D%HJ?bBmfteR* z-#c+~@6~+$)iF-W#m?8&?~lrgMf0`WkfZXg_k69F^r%#+I$xVjkCi$3=Ifa3v2yd< zJUzY2EjiE4(|}TLX|Qgd9^P-sq~Y_lT{%k*)Ssu`XO74N?|JIk_=qG+GEZ~aqpSiq z=W2x>D&afl>eL^mRG&Ckzl=4dNvpX!B7-Tdg6C?{B`#^5cCNlJ>XPP<=je^yF;eI7 z9DRfsDLZS9rj0)=-d*NsqsE6NLzy}1etbyYWu2ondLNP#Z)WTF{|?IHqq8-3@%wg%~b>HKw;uCBgca-Nx`emD2YvDLHmUZ;H$ zIb@b@`?6Qk)|sVC$Ly62MQ7>OjC)1?MC;wDuS&W*I$uy4LBmS(bH~u64g}l0BHNeJ5>_V_Bx_ zzMPxn!mDYTW6MUlZcWo=hW$E!nwCGeK`wWnrm5O&kW=NS>4%T&<#3K^`eW>RS@&+L z7RQh%AOrGBlH?WZPd@);|o z){4pcufR%q*?+R;+P^|ZMNHPl5i2BP{>i%U-f~&;b&>}4TQ2$IC+XFc%VpKdNxER^ zGRZS=k`D7Gf@*zWcC5uEtN)#uJuE$f}9@DEAVXJ#eDV z*tJ+*RG+9Vsw@^qfr(oE?jo7+ZGyJww@A*$PtcjE7fJe66ZG+lg;IUs1Z@(sP{vfB zpzqJvS>*f^bYuGk^62Y$9s6s(c*Kv_QM2Ytsg>h(S@HQ2F<`vjIWkY$MT}QzJWmGX z8?V;8xiap{IPExLu1r5QPD|#UE3=l5)6Dzl$jpA@)T`DUnOt?8R(m#EMtY6Y1tVum zk56MYMfTa!_{3OUuw$0U(yR2*XgQZ_tomk-mKE>EXt%91 zB{FV|o~Sfa0v3(YO7~~TmmXvE+29$ntNa+<=s82WW*?)|w@#NlZ$|5!%G2evHCkN{ zrb)kfqc!EQX_CF$XziDEn(V`9O|o;U)XqFw_e4yUC(omF!qX|z-xa09qNd2d=qR0? zdy0(j7^P?SPnHypC@ofRvW!U|rR&~KlF!FRX{E`Nye!!}TwkReFU498 z*N1Dz$>!w4^;fxZQgHh)4Y@y7W;Yt9bBB+W?|+ACmRw_{{)VA?;J_GJS9_=qZ#YKY zeIKG7K982tD~D*$S)-+0)gijXceKp-Fj!xmjgp-U2W#{0QF5~EV14fqCD&gJ(i-(g z$(`sy`Y(E<+z1<_-_DJY_y+?uFx?2*Gijjit3F)j_zl$IQ-(>G8v}Imsi6`aH9&8t z8Y(}E4bZ+-hsdt;{k7Jl!P0h6f9-v8kfhAlU$3VcBx{fN({a@XN?6Z+I&jJWiOt$i zx5xLF3T9s|nXbRYbm*(^YW0&6Y5VH8=)N*zPamy#xsSYR)<>_~d2=I4AKlrcw~XJ^ zThA})CCBRY)}Z@6<@fhqdaqzlDZZkYp6k>@YEXk)I;ZMR~b0Dhk7ULD((GxXwrx-QssJgEg0Qd3XJTo6R&lW&xN~dpjRh} ziI3F69XiU;zLDBuO9%1G8L78EwU@g`y6JL9dl}uSn{FJ_PV%Jdraw-%mF;`F>dee- zCA3*rjcn0I4kWVwysowQZ0Mpt-nEjYHM{7>uvU`zOJ`j^rlqu8+*xm*X(7AHcGgze zTgdNcowRtn=3-3mq+#2d$$-F4I^#!ES$ngimaN!R;zxDV4AD*GWs#2RxYJnv#&^&y z#T$!9-wxVtKqE3OdzB~{io;h3T^3)MBL|f{j=GEjz z`<8lpTUGH%-BLRysw%^`x6qLKRm5Gth1ObMS^oTJuG@cB6947RwPDRl(y~Hxt+1-1 zM7?OHL%vp!CDWVfw`vt+TR<~Cyu7>|xZYHce=aA7hBwum)ym240!?-A^0Kn#coUuf zrHo9CY@${~8Hvo;L<3gAK36u@*WX1lH*2hKYKh$X+em}f8?tCkBaQpxl-gAr>C%Qy z`SYfsy0$rF?W~4cD1}4Hg*4Plt-|H{tp8)zMn& zA75JDb*`o1B}&VyG_`c{#8Pr^M@=pGtfZW-UsID*Dk(d@*U*w{y=Cf>8oDg0x3no! zLmRa(A*CKy*QQ5{%f|`Tbxon-vfaD7hK?&H?axKnzyG3=v2TQiR4yv}vPS5d4Mn8> zp=#PBbrE^lqM9~}EG&Z(Rnui>3(21~Rkf5~AsJq!swSILP(Ht^qJ_T|kajbw==7!q zQ6RsJ8C+RMj?X8Ta#vQ5S9vA(kxF{MR$gh*u9E)Q<0bQxSJDnS zz2xM^ikf9q9{E(gqNaVCTe7~dptY*!7XR55^v14SQZcxKZq1QP>fR`?r$*(JhQrFM z&+{BoKW}-xTPufDb(hnt`?E`EhjN-NUv|lxvYf7*m`(m{Dy#iIWRVYq^Cr9L7mq!$-5(>P0MAHsqI9M zY|UtQl0sFy5&Q9+5g6=p)J#k?@XtrJDpBe`a88$XgW!A#i8@o zrj?!p9a_aRt(?x`&&S57NwNZz*(&_~h#jGf5?bn=kDM&t&6jcfPE$Xm@{=hXPmh=1j$-$Q;IeWv;8 z`vSj=j6QxkEZt9I<9T0Q^7Fgl=;Nz(o_#ZpdHU+2%U_LZdwq1E`-^eBp^v`U@!2rG zm)7^oKN(vWmewgVJ{nmarS;Ir560lzrF3Mk_r{gsrSw{xcSec4r8KVITVv3Xl3JzG z8{o>`4-iq)*a*Ng(AAZb=x@Br-&vxbjw)bSw#QsyJ_^@Q&{KjxnY!PP*`=> zbtC!LLOOEiHRIU4LV9_}Rby00A=MpMjKJ#!wam`T#)Clxwc)Ny#>5;2HOZcfM)5-h zwBo)CMr_jpn&;qoqw%l&Iwj_u@pN&1opI!>(ZiWvi^rWY-rdfpjZeiJ-G=8=uk)vk z`+4%|kgKPR+GbvjymQhx*fOtvd3?gi{ntx9-yAmvFZa?DUyd2)VgLDWoRR;29{rp$ z&geEOk3HW%YV63DM~8UD8t;ze*1RR$MzJ=zwP~R}_DJBRjMa>&TmHix#_deF$3IEOwp4;a~3 zW!Iz^_8aNTW!D3b_8EyDX49nK_8M=Zvgy;*dyPx^vuUfmdyG9+R_ztI+nC-at7faV z%V?J3T{qMMAn%QD$HnvKQ~$)pupZ7?$4&8Ufotv6N;&!~+Tt}{yI z$*7g~uQhhZWYE)B)))cJGwAcrtBq~H((BU9tBrz-)9Z`CRmSY_^m?YjO5?v9>9oqg z6-L{^>9pCx<%X3#ou-IcX5>1MR;%4xYV>TBRtqIrYM5Ws==`EfjFj`z=&I_Ajp{*Z zv_hXn#+1t*I8<7i(Gt*Z-+@0mO_=IMN+=&sbN>E;`C>ZI1DA@hv>?^Eft)^m+H zGg4`j$#aZtrBi9lp4o=`OiDd)Zrg6V&3SAUE z!?^i8xz5z-#<>Z})$8pv<4BR@S|QIgV{=?GO;Tg3F|&O#Z8m(0(K|^pjo3EXsIe-k zUcNWUC|EYBe#tn=_;N3aZm%%Wutp@&#DgXnlkz0dH=D;B5iyCi_x*83s%D9GdX{m9 z^&^p1h!|`1Uyw*=M~yKGh9uIV2SytUH~lkzy^As)KKpBCE*53vFZ|b>c4VZ{sO=xK zV894t%<})t*XxEEYj6KHpXC~AxN`h9GtU}q#5eq9_DeO$xG?*tnQZg`Ttv1zH=qTD>(>Z)<6cTKvZR72d+QbM3X6?_@K>H}h+AaO0-NklL@zWG@;U zho`Md_M8Q+@H3gQ83vH^X|&}M%A*<&Crl~MyKJ=%wuQj7()*}H79ncZA|#` z#2o&orZL&?iMf734P$Kg$7a&N>PG*KkIZ@Js~IhxJT#m2sA?GbADRu)RxvWScwmm+ zTFH2{;J*2|W<_J;<$LCk59N)H8SdHIrE*5D>UYfw;bo2E6YiJ;@5AU8d)vG>L5$>o zZ<#}V4P!z0EwlPfhf#3AO|#CpaAWPx8|D*lg)!N!kv*USM% zkkMrMRdejy0Att9E9S8k{zl@gS4^Y6pHZ#OW%ET!Ut{vrOXg{_wBbH}(R|Rql<_g~ zMYB}tl15IsU~YR>!U!9D-fX|BxKU@%IkR@lVn&;HXU$%@iW;3uoHdW%C~S1@aK@~= zu#nMuMZB50X+fj*t<$DQ?gBj7DLIToJLAmSjj|gZULQ5R3uQA>7CmY@KV~u3w23vx zSecE`C2sRyw5Jhw)iU?A%Vbo`Xqn4`Ga4r%j+kcZ3cx*>hhq zqu}fV=8kzujXG!co5cntF$SmDZ(eJf*jQM0pXriB#_pke&7GD0I^*{4F&lgS=RE&z zw;B2Hr}Ikj-R8U9-<_A*?K1CA`06~hbf<}ypPh%U?J(1Xd~~kPxWlZH>AiD&#CG%J zyEo3ZD00#{Y}N|% zlizXY-P6m>nq}ggVab-8IqSqaXUH-g4Nv zvEX8J!^wlr2hA6mSzqjTW}3Iq{G589Q_d|g%lqtcwokdhOww?db8Ol9X5h#j&gDbq znO8P#bMD?f*L-$;iyh;fV|Gim*?GF~9J7^kqw`$L*=Aht_0BW%XPHYju64$pk2W7a zTJ1cLD%xC@Zu% zer`F{ta@a=^T_-urdPUo&I#uyn;lxtaaK(=+4R~u%bC2~B(rMrXs2t)MDuBj8P1-& zCzxONPjlveJ>DFcd8#wE(0H?3-^tF7EykG_E>CnOnK#zl6gt7VNDC|X;75uab%QpZtGEI@QUHi*%wBbmB$TnPAoUvGIoj>2W>h;$NN3W$EfT(?)hO zeeF-zz}p?nO}!$V*Q&QSJvLTx`ncMf^`BOBjwsc}99OKoGj3@sb7{{q&Lrttn#&Fw z&d?Ff&GBg*&JJ&znvL3qIw!YmVy1TmIoF+SWbViv;5;M^&G0B+=do?|%`GoWIZt}k zGgCD2cE(MwV^)hV<~;DHmN~FO5$Bp7HO;A3LFa_K)y>J}^E=zsj4=D0@^XflRn2k@ zb32oiu44Xvn!|Z~X(e;Tux!q;X)BtgvSo3G4=-=7-j~Vw>~&c)NwW;j>CJ7eYtnSi zQt@I&?ecIQbr|OI4yl|CHapDqc~Us<<_tF%-c0IjJvr3uza+8q){kIwK-^zPtu8_4 z_2$1EG1mjk^nboO3RLkob8YdcsUD%x1?t){QUm-I`r!$V7D+-uV{Z2a0 zr_XO%Q{o)YN8~lHZLu6b-{dimUUNB;x5#ZyN^{8J5uej69I?;g;mBbwoW0ADd{Z{_ z$&+o4pV_mTDa&nkJfD!+OuAvc*3fAj;u#N zx^^#bO0ysd*N!=v8JP2=u=n9^Hm&OvpjOOt5M$3`r|!U z-@AsR#<|*BLwjveLByZYQJ=;)XCjO*k> zFNfdnldkLk<#0T?e$2JBWERJ)y|J#GJu^5$XB~0Xit}(>?cs9SA1X)ph(oRiTM|3| zE4tq`bm*_}@k#f%*2R4cPx)Ynt6a#-@G-8fu3G0GgnwJO$#r(-jqnZw*1L`jx)2^; zca5vi#FOEreO9`DnpXHEk7ce3c@Bl&eYVJzX!Wk}Qb*^z{A+IxAFyJM>uRAj;RlCB zyWZtn8vd>Ebl0#7^TK_DrnpATm=WGC<3!h&M3cg!-;8xVSUfuX(8(y*xPt@34_6!J z3YgL@{72#euCtq4g_k#LXu7j z`}85H%jp^zR=w`;n9JK*g>AOp#f09j686vcQB3EG0bw;(T#f1Q(km=F{izt=(;i`G zMz~_4&wdO|@^(i|+mRPS{aUPvxww8;Xp{K)F^?+G3mxW|5>vt)80uGlSj^?yRYKeN zw~IOc(kpaQhH5cM&wUKp_|`Wj!-icU?)Ypm9n66to9h2QeD9@K$ngxP4(HvlEBJQ& z{KHRPdIew2Q0?%umtH|PGn_hPcmET0@IJqhe-7t=?%?0=;D6u2|2+r)_nrLzbMpV+ z$$uUv|M{H!=XLU*-^qU;C;$DN{P%V8-`~lfhm$`aCx2c}{`{Q$c^drr8vJ=1{P`RF zeHi@x82o)1{QVjHeH#4z8vK15{QVnzKNx&}7<|7NeE%4HKN);~8GOGPeE%7IKN@_0 z8hpPReE%AJKO2018+^YTeE%E#JQ)0Z82r2#{QMaFJQ@6a8T`B%{QMdGJR1Cb8vMK( z{QMgHJRAIc8~nT*{QMjIJ}~(GVDS6G;P;2Y?-PUHF9yGF41WI@{5~@H{bca_%Ha2x z!S6GJ-){!L?+kwb8T>vp`28sSz7&3c3cpW<-><^&TjBSw@cUT!{Ve>x7Jh#Vzt4r= z@51kU;rGArejvO*2=5od`-kv;BD}u{?>EBxkMMpZygv!=SHk<3@O~z|zX|Vm!uy}_ zeki;@3h$S~`={`JD!ji6@3+GHukd~>ygv)?*TVa^@P015zYFj8!u!AQJRm$D2+s?` z^Mmj_Av|9Q&l|$?hwwZiJf8^9E5h@O@H`_t-w4k;!t;;tJS03H3C~Ny^ONvAB|KjV z&s)Otm+(9$Jf8{AYr^xJ@H{6x-wDrq!t*# z@4yqzr^559@cb$~&kE1C!t<{1{3|>U3(v>G^Rn>#EIdyO&)359w($HdJdX>{=fd;4 zjrLABzYEXv!t=fGye~Ze3!evs&j-Ti1>y69@OeV`d?9?^5I%nhpGSnxC&K3y;q!~| zc}DnrBYfTwKK}@xhlI~Z!sjL7^ONv-O89&weBKg1e+i$*gwJQf=QZK;oA7x~_E__}WKEDf}=Y`Mr!smVA^S^K& zAe;{f=LN#~fpDH6oG%FH4Z`_@a2_F?PYCA~!uf@8o*|rX2UokoG%LJjl%h(a2_d~PlEGGaDEBS zGr{>LIPV1KpWr+coR5O@QgD6>&QrnpDmZTi=da*A7M#z5^IC9z3(j-F`7Su`1?Ruu zJQ$o0gY#l=ehki&!TB;cZwBYj;5-_fPlNMnaDENWv%&c`IPV7M-{3qPoR5R^a&UeQ z&eOs9Iyi3!=kMS=9-PmE^LlW856<(!`93)B2j~CbJ^AK*R&+>e0!5^#S4?o({$O2U2x+_!-H7jPc~?q|S# z4Y6- zcY*saa32Ql$H09VxIY8;Y2bbh+_!=IH*g;Z?&rXL9k{;(_j%xc58U^G`#*3W2<`{L zeId9%1ow&Hei7U^g8N5s9|`U!!F?sTzXbQ0;C>U_cY^y*a35-Ot`qj7;Jy^xpMv{T zaK8%fTfzM+xQ_+*v*5lK+~0!xTyVb&?t8)gFSri|_ro?PJ7Hf8?vKHJGPqv`_s!t` z8Qe#M`)P1r4eqaPPIrzJP4Q%0rMhYegw>ufcX+IZvy5|z&r|=PXY5PV15P6vw-;)Fz*89U%)&Jn2!PT zGGKlN%+rAR8Zd7I=5N3}4w%mY^EzOD2h8(;`5rLu1Ll9gJP?=<0`o#(ehADHf%zgZ zZv^I#z&sL|PXhBwHa9&XzXax)z?f;{U_w3z`PWgp91q#V7>~>TY>p2 zo8O&~#{%%g=#%Ixt@c=Iy}zo&9r3$m4VEz%z zLxTB8FfR$_C&4@=n6Cu$mSFx8%wvN2Ofatr<~PASr`;t@$ajKyPn(CGkpBeppkO`} z%!`8gQ7}&m=1al6DVRS6^Qd4x70j!G`BgB_3g%nEyepW01@o|AJ{HW&g85l6PYdR2 z!MrV)zXkKSU_KYj>w@`RFwYC-d%?UfnEwUyz+gTY%nO70VK7e&=8M6+F_=FF^T=R6 z8O$q#`DHNA4Cb4`yfc`82J_HhJ{rtRgZXJNPYvd)!Mrt?zXtQzU_KknYlHc1FwYI< zyTQCSnEwXz;9x!+%!`BhaWGE~=F7pnIha2O^XOnc9n7nP`E@YQ4(8jzygQhG2lMb? zJ|4`=gZX(dPY>qn!Mr_~zX$X9U_Kwr>x21yFwYO>`@y_FnEwa+0AN1=>k0Q(hS-vaDk zfPD*iQocN??Bp>@$J=Ca~`W_MgB$6xfdf z`%++k3hYyX{VK3;1@^DNJ{H)|0{dEEe+%q$f&DJ9?*;b1z&;q*4+HyRV1EqklY#v* zux|$T&%iz!*iQrdYG8j2?6ZOWHn8so_TRuh9N3Qo`*L7^4(!u`{W`F32lns4J|5W5 zv%9AWeLb+h2ln~EejnKP1N(nq9}w&Zf_*`-KM3{-ZSPM)zYy#jg8f6Vj|lb?!M-Bc zUj+M%V80RUJA(a3un!6LBf-8T*q;RZlwiLS>|28UOR$d#_A|l0CfMHu`;r@SV6ZO?_J_ef zG1xB#`^I4Z80;g1{baDO4EC47J~P;Fw%uY0eP^)$4ECYHel*yZw%^AI{b{gI4fdCkaq#{FF+m!$j1PA86ZCc~!MycLkY0`gcu zJ`2ce0r@Q;&jsYWfV>xw{{r%0Kt2q}i$VDR_%R?)2IR|tycv)`1M+A-!e*^MxKt2x0%K`a0AWsM6>wvr+kiP@+ctAc6$m;?5Js{5qL;uJ30eL?l z{|Dp&fqWp47X&X9Ia{AioXdxuNy{ z_--KY4dlOpJUEaK2lC=TejLb?1Nm|wZw}ZxG}Uf;>WyPYCh~L4F~~GX(jDAny?5AA&qYkdFxR5u_MV-K>1bLMp zzY^qGf_zJmcM0+@K^`W^#{_wqAU_l2X@Y!Bkhcl)H$fgJ$maxkoglvxD^-D#%*}`Kut0738ymyjGCk3i4b*zAMOk1^KTa4;JLZg1lIe9}Dti zLB1@=n+5r^AdeR0(}KKOkY5Y(Y(c&)$h!skw;&G}gF~~ax`Ntp+8RR2_ykwA{4DysgzB0&L2Kmb%j~V1MgS=*t-wg7cLB2EE z9ZKLmgZyXPS)9Ow2Kmq+FB;@WgFI=FFAeghLH;zzqXzlZAg>zaSA#rjO#UC=8suGr z{A-Yh4f3%;UN*?jwmqH+JZ+G#4f3`@{x-k%N44kXH`!%R!zw$TtUh=OF(a=WCdF%N7KmIz%V+Z-{_Rl$i*ADXAL7qFvcL#azc8(^2{|@rtK|Vali?`hv3H*4F zCvUUR68Q2UZyt{S@#jGvJ;%-0?=Oo`V2t70q8pb{Rf~A0rVq)z68*p0QwX_zXIr60R0P~j{)>EfW8LM-vIg? zK)(a%djS0ppbx?Z5hVB_Kwkvtj{toVpkD&?O@RIh&_@CKDL`KZ=&t~M7NFk(^j(1d z3($uF`Y}LX2I$WKeHx%&1N3cx{teK_0s1*WUkB*#0DT^y-vji0fc_8A2Lk#*Kwk*x z4*`85pkD;^je!0U&_@FLNkCr-=q~|%CZOL0^qqkI6VQhO`cXh%3g}M(eJY?|1@x_e z{uR*20{U4%Ukm7O0evo@-v#u&fc_WI2Lt+HKwk{#j{$u$pkD^`&4B(H&_@IMX+U2M z=&!Ng-w8e&&~F3!Zfw`t?*I4SfIb}1j|2L0Kz|PC(*gZDpl=8C?|?oY(9Z+);BG6w1`iwxo z5$HPt{YRh=3G^d@z9i6}1p1UfzY^$M0{u&%j|ucMfxaft-vs)cK)(~{djkDWpbrZ4 zLxH|1&>sc*q(HwE=$iulQ=pFu^izSpDxCbEzY5L%=d;55|M{&z-xcV;0)1GZ9}Dzl zf&MJerv>`8K;IVV-vWJHpq~r$b%Fja(B}pEy+Gd==>GzJV4xoi^o4=`FwiFk`o%!s z80a4ZePp1Y4D^+O{xZ;K2Kvn~^nboH(0>N{&_F*L=t~3rX`oLH^s9lsHPF8X`q=E} zp9DV}=xYQ0ZJ^H$^t*w+H_-nE`rtr69O#P!{c)gA4)n``zB$l82m0thKON|+1O0WN z&kpq4fxbJ?e+T;Tkhf)m9}o29f&M(urw97=K;NF7GfeRBfj&Oa&jHzDCgB2>KjBza!{-1pSYo4-)i4g1$)5 z9|`&-LBAyEn*{xnppO#tQ-Z!q&|eAqEJ42|=(_~{m!J<5^kag)OwgYR`ZPhmCg|G) z{hOeV6ZCU}zE05J3Hm%izbEMX1pS}(UMIl^3i?4oUnuAg1%0BRUljC>g8os^M+*8$ zL0>88F9m(3px+eqor3;T(1!~8Q9)lS=uZWGs-RyL^sR#aRnW%@`dL9=E9h?peXgM2 z74*G={#Vck3;JO}Uo7a41%0xhUl#Pug8o_1M+^FCL0>KCueDud2|ioUZwvZvLH{l2 z!v+1gpf4Bn=Yl?6(60;nc0vCx=;HfpE2k+27Sk%|Ja@vB>0d)KQib`2K~vPPZ{(p zgT7_ZzYO}AK|eF-YX<$zpwAifJA=Mw(Ekkjpg})0=!*vZ(V$Nn^h<-jY0y6n`lvxa zHR!7b{nen)8uVL(zH9q)o#4L)eb}HM8}wy^{%p{v4f?e~-!=~Y&%X`&xIsTR=<5dk z-Js7K^m~K8Z_xh@`oKXyIOq!p{o$Zb9Q2EWzH!h$4*JMJKRM_t2mR%s&m2wu=Qjs^ z=b--_^r3@(bkLU$`qM$5I_Osiee0lq9rUq-es<8;4*J_cpF8Mx2Yv6L{~h$fgMN6> z7Z3X5L7zP6mj`|Gpno3p(Sv?^&{q%o>p`DA=(h)b_c(t0KV{Va{zY&5^a zbstHsOZIi#z7E;fHYBrF+SgqBnrL4`k=*KOUv2HHAyQaX?aQz)U!=4O*;h9EN{v+3 zA4z3>kkr-_`?_vl@#0~reeISs);jxIC~2)}_BBe=ijv865{YExxvwbZyvRku^9M(Ad8f@gWB8^;@ zO{=o%8M&=WMjk8N@UlwTSAHX}O+U(Kr8M$eznuB4cg_OVLuWzjshZjEr3uzEYatq#tTR%83B?kr`&S=tJ4`dCGrzE)1BpOx0>ZzXaD zSf3q%)-y+tb;}WKoppp*ZbzuK*AZrIbc9<=91d%y!)c9i7}h|CSX~`utd@?lRvkw< ztD>X473!#9m2_0J@;WM6o{lP3az|C`XLvR1O?ZU$AiTPDIlP8-BD|J$IJ~yCJ-m*! zD!i^WFTB1rDZGI-JiMXRE4-1_KD>$5D7>i^5#G#_@D`STcuT8rcq=PMcpEECcw6gV zSUc-eSO@D_SV!w-SZC{OSQpC*>uT){i?lX`b+?v;^|WS$^|Ho<^|1zo^|iW&^|xAt z4Y2Bj4YDeP4YoqVhFacX!>qhvBdkneBdz3NQP$7U(bk*LvDSmo@z&+g3D$|wN!H=e z$=3GJsn)8{>DIi^8P=rGXlr=rY^zu39IJikJgaf&0xKePp@q=JmVf9{t4Qc_D@W)G zD{bg1>tDzk>vPCD>v_m}>sH7{>s-iY%N?@S+846j+8DCKS{ky;iVoRhjSbmn4GKA6 zbqhIUwF-%`>V}wBr4Y5kLoBOQNUW7VB+kkla@!e8zede9pQWe8D;u ze93YJU$J%uU$fQ*->?=0-?F9#-?2sp-?RD#Kd?FlKeCzzKe1{CKex&TzqEpaUt7h4 z-&(nY-&+}iKUztHKU?2|zFDt=epq*depwfT{uyR-m{0Twp1;JJ8p?FVNq;DKN;rG%&;+9T?^w7wB{k3KVx_U|DzT!1C^TftB2q z1FN_lff4S~fi>I(0&Bao2G(__3T)v1FQAe8LqJpalYr*#>jACY@d0h!M*`ZrcL#KG zuMgYbcY2*xl0C&b>|D1;LaQ{ z*_|?As{5D!4EH<#S?)*vbKO_{=etk&FLImyOWnKtSGd>uuXZo=U+bRczrh{lzuDd2 zf1A6r|4w&v|2^*7{`=h({13WA{A1kS{_4)_?{<6o$GMaHpK$;5JMDh!ch>#T?}GcP z-(~knziV!n-%a;UzdP==e)ruA{T{ie`aN}z@_XU#=l9y(+3%gZx!*^3Ex#}B@_ygl zA%4Hy-hO}FdHoW{dio`cP41U6_NT8$>|5V-u@8MS#$NT!9DB+)d#uYhSL{w-uh_M| z`C}LQ7K)wbTP!xp*E_bqZ|T_1zJ9UIeS>0a`-a9=@O8w7`XaWZZ@Jifz7=CL`&Nlf z;affSmrt$OcRqDvANe$lz2?&-_OwrnSoLWgyW6K-?0TP0v5S1V#!mO?5j)zackBS4 zez9GB2F14Y8Tx+|-F0vjNy7&4o>_NyPj<7OY-C*q3-0b5hs)uTLth9Sa`@qLz@djb z96H3^jU*5kh!7Q4=n9w}}|L$wZA^VPeM4HF0Ann}o5$P14vtCS`1d zDKJ)N(#A?n##p8)Bo=21kL@h_P%jc>=om<*i*(y zvHOkFVz(J*#jZ8ZiCt`55IfVjBzCNEdF(*r>R6X?eQdCCV{CwNYb@Uw9ZNRuiv4NW z7u#+)6kBIF8e3vG8JlT18yjo55c||{CH9u#-`ER=+p$Lt_hWY(9>;DnJda&rcpW>> z5EDDakPth%4wHN>PE(u>&C_9=_bV`>!!!O(#?*$ubUTlMYlNav~F44 z0p04j?YgMA^}0=QOLW`fX6bgujo0ms8>~AR=h6KY7pglMr_r5@6X`C-(REkjVBO8Q zFWP%?4cbR>W!nGZa<#AHlC&{#FSUtr_qAzpSG3u2r?dre2eid;+qGqJ>$TN!OSB*3 zW@($_#%tT+25YkJRMH_tTWb+co9!CQVJeQu8UEr)h~N zX*%P7sC(ku)gYlxjY}w1lM}Mk%!GI~FX6dboN!02Ot_@hB%D+m685Pr3ER}xgmr3n z!eVuwgjwpygz@TO34_(66TIq)31RAK2|?=F2@>`E1g3gv0#>~;p*wJWLUZ7zgv!9} z359{X64CT-@J_apFt9d(7TA~o1-2!83Ft~_2lC#0|MqH3IdiSQUg{dLILX&zo<4RHmIT#%T;?4^Hm2EQ&h(iU#m_hK2%*uyso;M zcusXI@rdd{;x5&*#7(N#i7QociStz{iPKbBiKA5oiIJ+(M3<^EF+^3Ls8%&6id3D6 zbk(;+j0#Hnsw5;eDQQWSN={OtQk0aYR3yDsYLcEPjY&6^VM!O1j-+EsU(#OXfTXR; zp-F3$qmvdXCne2P&PW=soRc&}xhTn}T#*#6T$iL%Zc36VwZTa-%OY%9%C*_Nh_sdr#N6XhGN69xQ|0a)4{#Cv=d9wU)@(B5f zJoVK1%sR`XXhMG$v)0G&yB~G%IC>v@m6?^h3&EX-$g%0Ed)tX?u!Z+LI!e zLaAISF_k1`r2drfQ#&Q{)K3ykYPrOenlA}YO_jJ(-%9$XK9LMgy(Jly`j2E{>Iuor z)culqsnL?9sZo;EsmmlAQs+vxrB0FTNgX9Qlo}~Hk?NNGoobO>NezC&ZkzePVIi zcCjigN~}*?Cbp!_6+6xuvJzQ9kZV-MSW@YRbEXar!EYH{=Sf8;% zur*`8U{}U;!NH7if)g1-1m`ml!Lv^9bLOxtrf7b1Q#v=34%k z%%%J(nZNR9XHMZS${fXCnHkCdJ=4SAo*Bm9o2lm?$yD%9XY%=%GO7HVnHc`V%x>O` z%obi;W-Tu*^F1#wGmlrAnZm2de9LRfe9G(0yuV!99pUk_cJmZjTY1{7 zwLDAKQl2Ag4zEwv6yA`m(Y!HPgLqT2yu4qtB6y3l47}A@D&EE{Aul?M&fAxT;~mZV z&OMja&b^ZLk$WerockoJkozVpotu~y$IZ%m!7a*qz%9?Z&i$Bmp4*mnoZFMNpNq+k z=2EgZaJktlxzg-~Tut^Yt~q-G*Ou+yexKc+J1E=59i1J@ot&-X&d!!|7iIIftFo!w zjoBD(baoGCUv?|!Sav<d0oROT+oJfu<$HVEL6V4f)W8h54QE_JE z2s!g}7@XxfcurJKFMC@~2YYW$1N%r$CHqXyJND(AZ1(M(B=(b>H|#e#PuNL0x7pb_ zm)Y-f&af+Uj<6eY_Od&2wy}G2qS*M{Z(y($;a-k96V+L7DA+MnCNI-Xm_I-gt2x}KZOx}TfOdY+52 zVsoFe(sJ*z@^i1U%5u-K>T{2=T66cYdUB&#n7oZFYThaqFK-b`o;RDN%bUy!%^S^f z&-1Z{=h;{j^31GRc^cNjJSl5s9+$NtkHU)1!?5<}^)Qd;wK31*U17H8onwB_JIci6?_<*QqnX0|jZ9VkYNjE7 zF*73nSEe_A3Ug5Y80P5wA?WIWApV!X|-VWi}jGV=2C81M7b7`6FvjF$WtjPCr03{1gI2DRW4gI{o(p(r@Q z&=>4wgcWROcnW@JL>8=Mj4D{fm{KsC@oT{p#?pc@jI{-W8CwhbFm@L>7)J^$j57r~ z#+3pk<8FbF@vMN!h$$d2QVV|4^9#D@Wd)z<^#yhGwt_PH_kuz?t}v6%C`_b_3g6HJ z3ZK$Vg?H(;!fSM-@H~A;;R*VXpuL~XYq(TclyHH0jDOA#H3WfB~g-rU_LLwb5g6PzuZW_O+m8LBE zNHY{w(87z}(Y!@Dv_VBFv@u07v}r}pY4eI6(3Th7q(v27qHQlaL)%yM7wve_KH7z% z9kd%on`n=U*3w=V{YFbFnn%kinn5cqnn@?at3r+A&M^n91 z(v0s!H0wJS4S7eR4S5IC#=YyI&Un{OUGT1fy7FBWb>q8I>dtq0)PwKRsi)t?Q!l@J zO}+E(3H8~#yVRI>*QjalE>H{Journ(J52rbZV$EN-FE7acN?h0;?-16@e-=6crI02 zJcAlqJb~&i9!ZTX9!MQkj8LZ*JE(JuE!1VjdTLa$in_g6Ox;(^p`IwFP%jo^sW*#z zDUXXgDQ}9KDJjKul)U0{%7@}2N_}xQrM)8DCrMyH#`BWmObe8ZbKT8-CQYn$bErlrZ(jKzDw4EGY+DP`6){qC6 zejtx6EhNt<%_1)-O(w4@jUjI;eL?=C^bz@R>230v(yQdFrRT}_N>7nrlpZ0+m;Oo4 zD&0XYF5OJ7DP2eYT)LdxQ@W6heLtJbct4FSdOx15em{a7{C*(W`5qw;c<&&Od>=-h z^4>_E^IlC}_FhJgde0|Ezh{yUyeE-QzK6+|-hU(Ae&0!Y_P&`E`@W8p{=S@4^uCx> z`97D_^gfOB^?d>f{_uuG`|yk;{P2Jj@Zl!O{NXam@!@Y$zYix!BR(7^P5!W#^y`Oc z(r+I&lcGMXBSn8$LE8Ue5$WWIIiyP;rju@em_T~=VH7F$!(dXzhkm4@4{lP`2P>)h zLoliPgN}qLQ<3Op5|XHlM^cy3Ng-uKlCumV4Ji9Y997mqoLbgQoL5#)TwYc|+)!3R z+*y`KJXDrJJX4lLyi)d-c(3dQ@kQBVVnW#+Vs_beVrkhw#JaLG#MZK7#P4MXiG=b! zM0WXhqO5!qQCGf>7+$`D=qq1D98x}qIKF%aac21>;-d1=#5LtZiCfDD5cih*h{wtu z#0%wN#GB@ol++=pUjG3(Gmg%5oa9shmLkS`HC072gQ-icW&4qM4ws@OP?J zR1#bjrG&_e0>bEuEW)&k6vF(9IKs+`*Mvk>_?ba=_RbFv=cT~h7xvF8VN@#HH34OO2YL@G2vk)m+-ohPDrUF5%McBg!0N> zd_!dy{!3*W9;#}@)2eFm!m0{;GgR;A!aSHT9Zz15@fgR6(($5%(7!I^5xarT-L zT)&!p+{l_N+?1MB+`O6u+=`mFxJ@-LaJy=r;EvSX$NgP%3-@o$HQeKxi#W9AEH16) z1g@~=2(GGTKd!lEH?F598i%Xhf@9T2;iR>zak|=NxbWIVIHYziZfNZ++{D_cxY@N6 zaKF`##zoZ*!|kXYh&x!@7k8%CgS%R5$33VG!@a6C+m>D9fS+5`;PV2bzukBwPDBCHDhPheZ(%QtH!RcE5mNDE5;tEE5M$r z%f?=*OT*r;OT@mci@_$ei`<3{bKBu`gz#<^|P_B>ZfCq z>nCCJ>c?Tr>qlZ6>xW{y>Lan3kA1O>j~=Y#qXQfCF&rEAF$C-TXuuBr7=)ehF#tRJ zqYV4oM-le-k6i4Ik4)^Lj}+|Lj|A-Xj~MKuk3TSPKK5WzKYqa!er&~5eQd%sfBcB) z`B;s?e=5hYKb2zSp9(ShPq`TDr%X)WPbruYpAs-rKE+_>eR_>q@##5c)2GLn-JkAb zj()n0x$x;<%&kvXFi$^Sz{Gw!i^=?S5>xW&D5mbyAx!(HeVCu0c45d3(HMTiR!l&{ zMoe(SdW@@KHD+MLa?IF4XZ_zA9Wtc5!ot6{KDZ;FS1X?hDUZF&tyH9d!SG(Ck6H9dsSHr<7< zH{F6CHC>0%rYmq-(?z(b=^R|$bQ*4HIu3tt`U@sCAB1_$`(Rb`ZrI$s6LvOlgCm=_ zz+;*>z%!cH!;6|%!)u#Yz}uRCgZDQtf=@Nihp#sO3O{I`1;1{d4yQCvh6|b}z?IEo z;O6F$a8L6v82@cic zeGY_AepbSlKg-~IpT+RY&jL94GY8K9%!DgG)8MAhWVrh?0mijpVRj1y%UgOOLrV{2 zYw3dewRAuuTUw!MEzQt^mIi2bOFgu;r3U)5r4l;XQU+aaDTVH}yn|l06hKKWxln#f z7F5xa4mGu;K;12g5Uw>2Vz<79B`yb?J+X4+}+X#(ri-M-Nt%DY|t%laNt$?<*ErSlUErCwAErhPN&4(Ve&4J#u z&4yCjWMCg0lc!=0O2I94kf>iCpA#?js$kjdw8rU8QjcxA-&1&xh zEot{c>)YMXj&=uhsNDvgZI6KdZ4ZSWw}(J)+f7hLy8$Y0*Fm-I8mPTJ5c=7!geV0R7d0gD!Mnpj#aPde-p+ z#CLoL*&RLLeaBbuspAXy($Nkuovnb;`58z$n}Dvf0Yr3u1bsT|z=+OjFr~8+%~bfbb;&aK6L= z<(C*>`ho)Im)9Wj%PTPE%L_2`%YR_;m#1L;m&YLb%R_MJ%YAV6%Uy8&%N_9e%PsKs z%MFn6ogJppX$9uIbRj|0cL$AF97qrsi-QQ&#^NRZe)9OQNn1LfUAL1Xt2(A_;4;CcoD zc26Xb_Y45Wp8mkz(+>>j=?g~p^Z_$^5U{An3)b~`!1f+DIN0L?XL_9AdXED<>al~j zJvNZuV+F-M5ummw9JKd@0q`vpP`_D#=vxTTd;&hGlEHebH5qDif?+b z`I`>x`KATOzXgGRzG=YSZ))(;FX>w#$p01qD!!>e^EV~v@gsa!0M2(gP=1#Ilb`du z6hwZPfU)1jV3yyK?;;TOT?lsg9sVu==f3m74ZkPfc_8*X7x<_Cp!7QjeDv%5&IWKV z3()-}y-c9>i|A#5K7J#5>0qkg{9YPZ?YFg;3ikP(?4^J!eh+%d;I&_BF9{U-Rr|H{ z5<#yY=?4Mu{Q~_$e&B(}Z?NBlA2=}EZ<*hQA6T%<@2KAezuP}B;6J|vzZ}1^A24Y2 z`|5}L2?Lg&{3iqqes;eBexv`z{&ad6?|9><; zkzbIX|4sqKZexww;!g1(|%WB26*U)!c36n_YP)(8oxG}4Sv8JK*4Z;0K)}p zKMRHjycj+h>NgQ10CO-xu-tDGMg(?a#Ne3UMT`X8!AQXij0`0DQM%3kNh@1Q6q_AP8pz;W#@$a1JmW=LC~+E-(-01}kwMum$G@ zdvORjf$IY<;rfDmxPIUzu0Ke|4FLJLNKlCz1e$S!!8hCxK)??LT>LPg#198%{7B%$ zj{*bnqrq7G7%&Sz4lKcs2T}M5UY;p#Wle2)4oCECSJTQP<07jFGz;tpk zSVS%bYsnwLc5*p5K&}L*$<^Q*xeh!ee*`GG0i=f5R3LQE^VM2dXIM7WB4|+-wK(Q1N zltqz3r4%_-PfVQ^I-Owhg z7urMZ10AFGgDz4dp*z$;&~xfgD1ka0%B7Bi%BW+Y2I_d|D|I4-rA>jDv}ur(HWSj* zWf-KRf;UeRAbDfHJ+0sSphNsoh?>50%cdJ05fq(dA=7NlV0 zLPkab;C`%M;gPKQ@Kn|!cmeA-cr|MUyp^>Y{*$#HKEc`mUt(>6@3OYRFIYR_MAmLN zm$eTrV;zJWSbxD?tm812eHv!6&%sjmMOeqa0!Of~!+qGd;Nk4M@MQKwcrN=Xyn_84 z-o$ztm_r;c<}62uxz3Sd9&wZyloN=**qjp1++jDp)AW8@CP*tx?n{kfwsqqyTR)3}o`3%JuT ztGTl*Bycxka=2SDAGpz&PuyLYFWh|?h<6A> z;~m9_cqcI$-dRj2?*hilyMh_Q`xi5wcN_By?>=TJ?=dEd_Z+i>_ZoAE7lS#&OTb*? zrC=WNGBIy>xtLU5A*PU5imBw4W14x@m>%9o44&VFVe?xtGX58gp5KG9@_%6Z@-f)q zd;)edpMsssXJS|Ix!6s75q1|}hW(2lfIZI-!rtT?uuu3Q*cg5|HiPfL7V|yW8h&4F zD?bw3%O8p*2}WYMf^k@-U=r3On2xmzW@Gyc=3z$(7GtLgmSN`$R%2HQqOe;8o3MKX z+pxz3JFyo9d$G3!2eHote_`VUC$X7=bJ!BWMQokmDz;5<6Z=DO4@(w4!t#XwVO7G{ zShFw&>kuYl2ME)!qlDSmX~F{R0%0+Bm9PxEMOcm9Bm9UxCTzxD6t-b+3A?b*gx|5T zLI{^B#N$eY6kM&4iE9(`aJ@n?jwF)fxS~LuQl!I~L}r{_6o%_Bvg1aIJh-W%zPNd! zfw+~TVYp4A(YW2B3An#RQ*q}-vv4;=b8$~Zi*Rp6%W&zU)wm*26s}sd1@~DLjr%6r zjl+xgTZ zTO!5}lqm6IB^vw;i2=V*V!^MGSn*pWZv0+JAN+AiB>tjg82*-IH2#@nB0g3!4WA*I zjW3qW$Ja=f;#(vu@!uuu@dW86JX^XQFPHAZ>!thg5z-@gM0yfGOnMGKQF;kKTY4S8 zRC)&=C4GdCmi~u7Abo>BC5^{lk*479Nwe@Tr1|&+X$d|@T7iErt;N?%8}aSZHvCU% z7oIHZ#q(qsf>K5z7-e*VO~xhklZgoM5vV3Z#t z*yN`P{p1%2Bji^JljXMvbL0;Q%jC}pzsp|}cF5xh2jwY*)AB6B6?p;Sp1hRsLS9Ko zkk=Ek<;{drc_*Px{*BNkhlss$0+Fbo5jhGDQLYdX^$G`G#)lE{a>H+D4>KUnC^@h~0N+A7ErICmMxg<_NF-aa!PSOR`k-`I- zN#1}?(%^t^q;UZ-c}4(~csvbodubxPmsh&w$ zq@G7vtzJsmtX@sot=>R6qTWV1tKLJoranZuuRcL}q5hi^uf9UbQs1T&s~=IS)h{TY z)iIQAbqWQe$)?aWMHHc?oD!g^qnI?!6q}}#(pS?<8K%KfCuk_tSsD&?kw#2iqft?} zX!O+G8VmJ^#z8%+L8we!%o>hz#=>inQQ>dK%}>c*fd>dv4B z>cOCP>Zza}>ZKr23`CVdIH0$XEJU z#x?y)#(n+oj2HUtj5z&XMuz?fqfmdEQK7%Y_@uwd=+Hl8^y*(Q2!=QY(~!mx8}b-| zhEj&fP{Xhpniz4^6<7ifbaWX5@IGa^uT*Rt0u3|M9H?lg6(X3wMJ{I0|jKwgWV+l=H zSt`?AmeKT-6=6bIUQ;q_pedU*%2dpnY^q|-HZ`yon>tvlO}(s5COmtmiOxP?60lF0 zl1Xh2~#4<>p14kLFdJHuFYKk9h|N z6TF{84L;7{1)t~0g0FLeg70%ef}eBj!Lgh^!D*Z!!TFpq!DXDO!S$Ru!L6Jn!9AQc z!5Hr5U@CWKFpqm6Sk65WtmB>!4&`1Cc5&|o_vii>Je(U7Jb{}MJd2wfypUTGypmfT zyn)*o9L?`_*Ynt@Jv{#@KRW<@J85Y z;e)Vl;qx$z=xrEHlpH1yWre9kMPWu!d6-pH7lw#FhYb;Rg^d&a2%90ohc6J(!dHrT z;TuJ=@SP%c_(72={In=M{IbX$en-?V{F!KIc#LRFc$#QRc!B7b@N&_@@K2)U;T@v& z;Xg!M!inNP!a3so;WF{DaIN@kc&PYNxLbTPJW~81e3bZk_*C)R@VVlo@MYqx@F;O% z_;ztw_&#xM_z7`S_(gGN_)YQm@W*0I#2YasB1O!O$PN+xB}XIn zOU^``ko*(zkK{(gEy?|eCz59oZzXRcQY8ry`I7XAa!FpqCrL>}r=&9Cr{q%vN!l90 zm41zoOMgb_rFd(&lxFoxxz@o_iFK?rz&b;!w=R%ctgEDU>n5qs`iC^qdRRK#dPX|V zdR02rdQUpr`a-(E8ZTXD&62LQ7E3o-YoyWE&(git9_e8#R(8_Lke#=RWLK_wnfYL+V;y2*-pw&*e=P>*>1}(+n&j9+G6GRZ5i@swj%j! zTa`TC)+|r8b<1;X7)6ndt|+sK6g4)rqQMrTXtOyLUu^>vKW(EFIQvuu)jm(bwl7x* z?Hd#d`%Z<%en?@mpHYO_uP7Y$dkVzFOWM8EG*SK0%vaeQEB!~lZ&LMh>{1PO98ryQoKuZ=TvttXJXHPSc&(c6 zNKq|ut80aqOZ0&Y1*1w3#} z4S4357x3D#A|TeWF(BEoD!642(z59o4~2lP4` z0x-@m0VF3BNO#f#xlUoA*clk8a0UlzoUTBlGcwTP935zLP78E97Xy9GPo3pFsV;C{QkOXI zsLP$t)wRxeb%QfY-Qp}&e{t5Szd8N;#$7+uco#`Saq%=vmr}!bnKTlYU88jM(`Z~H zHAdGIjm0%jV|A_2xLlhwh-;T7(se{L)b+P!l4NsV!h?>ukf0N;p+RR|6N4_gW(Qq${T6i76%};P zwIk@U>tN7x*O{OLxS6)z&t32qvt1+n3)fH6h!e|>@bZv`E ztnGAZv^}m+?N66ii**mylHB99boVSR+r309aIe=&-P^S)_W^B?`;^w;zM>6r-`7UC zUuvE1B(2Y#>pzRUOgqTkpdIf1q8;sqbrall-BhvU-`s)f++8{JEETixq*JKWoKyWIzL``xE?N8DF*$KCgJXWXxJ=iSM=%kDhgzwUC~ZFi&Y zfxAoh#EsFva5MC8+!B49J4m184%4T*efn(oP2TmQlRo4(5ZyS~o7L*M8= zq;GMb)pxqD>$}~L^u6vkdf1by$9oF(WKWfz;c3=$JUx1W2XByi*am+}&!G0`4SJ8& zVD|JignC98Y@R6wmuH^A=UHLs=hk43 z^^_PEdg=^IJ?(}So}Y#_9 zQ?^HH%J=9@?>rHv_ntnca?fy6wP&)a-ZR(K=viTE@oX}6cy^nTQWM)-Z{mA9OkyuE%e+*x$}2Q$ylS(~YcZR=9<#+e*c{;&4@S3+|RqiJkWc{Jj8p}Ji>e3JjVOTJl>0%CwtS()4WCIS>9^%9B+$xzW2L% zv6mG5o0k{7(yIzy<246Id7Z%v6duIgy;awEG$GbLozjs^kA@Ba+zr3e{ zPk65epY}co{@eRH_@Xx@__DVk_`0_;_@=ix_^!7n_<`Om8edFeHVyz$yY zV!ZuB61<~AlD*SH(!2{ovb<|Ta=rfxDe&$KdFMSD^4@znq}+Qiq{{m;q}H1p^3j_g z(&ViOY4J9Nw0pZlzIbt#ZZF&N-7B~J^cpM}pUr~z^|O$CBP~?lGz-JGz{2*ew(xvg zEkfU)7K!hqMee(7QTgs!)V`M%tuM)9@a0>~z6y)Q*JKIzbz5vcT&UB>4)yrtp@`2A z+RtYTjr8>o9qbzwI@C8UbcAm~=xE=X&~d*1g--PC3!UOS89Lo}IdrD)e&}r9tI)Z= z5w^i+4BPDU=j40?!nXTHhwb!D58Lfq z6t>s5Hf+CdTi7Arfv_XK(_zPaSHn*F9)z9ty$L(#OAR~kD-8R`R~>f6*AjNk_dV=} zj~IT-#|yvfQ-$C6nZqCXT;WfA1H=FGjSYX{n-%`rw z{tZv_Jr2+Gy$#RyWrXMXio*+hwc$m+_V5zl&+zv?N<_I&7*Xj{M^yVP5p_Oq#7Ezd zhz8$;h$i2!5iP!D5pBMW5goo=5naB&BD#GSBEI=$Wk-W7}Bdt!+G#VVj5)+a@D*wy8+FZ5r~^ zHUpvBXCXrSY(!)K6$!P^MSS-8$WZ%2WRiUmGRM9IS#JLg*<@da?6$8!j@efs7wxN& zJNC86bNhNE(H@25+BYEO_KirReKXQ+-|An)`yaw`Y)9mdXvE;yiP#-~ApIS?kvfXhIIp8>qoN*jMt~rh(j~vGk)Nukycbr7tIZh$9jx$J`<1F&i z@i#(oo=1ev3y9kJ4-)FUgm|5ok)h73$VBHgWRCMXvfOzC+2p*5>~`KljyZ257oB&J zJI;H^bLV{|(fI($bv{DMosW@5=M$vc`4qvqo*``4e~8@m0x`N?B6im+WPs~6GTQY9 znc+f_MXtBVI#(>R-4%x%bj2fQTnWf^S0eJrm4v)?B_rvs6r|XdiqyK&kakx(0^Au0 z)t!lm+*ydmosERKa}fU*1{vngLngWNk-2^=+y%&HcOkOJU4$HWzeE0U7bADwCCE#6 zDU#%u?|zR|xIZAx?lPpuU5*eu zZODAT)!uewtKU9v2XfNyinkMa;P=}51xfWQ^mZZDel32z-meJB_Z8v$x{*M?5I>Kv z2N~=)!Ed(j8?wxAgWoRScjTzw1;5*V|M_~61iu`=GQURO59F&K4*7ww{N#QHP!s7ovc>~Y zPt+Ntb0k1V*BwBb=Kyr!#O=tejR4&lzZMyE%-EI7Kv(tP?`LzkEVpt zgZmqNq6sic?fu|8yAMW>F3s_sNPtmYX}ph&!JtXQ{_}P8#h`0m-11F~#-PE*3%-y< z4BC16FW>)YSTu#a%Qtu;7QM4!gKzgmEPCL`2aM zEndd|h-lR7DsO!~5seHf^g70qQ0;{j@6Wd+RL*+s^@fpA)Asw`_RC~+O#5Z8QcOYj z&pqjlJ4`_<^8fUfQ>f^OL0i46c2m)uXRExM2sCtsVZOI_Hx1RDo#O4J($Q|(2=Cm# z=xFWMKHi~H2HMmb?!A7EfimZ6y_>8|baa8(n;6eTZw{t=_fBS^>KBkVwuyzlFn4;^ z>|~?MFVuU^C^%?8PN~QFl7mM4k?9#Zjf+Nh$9RgrbJ6unpLpJ1;Gs!n|9U13;-l_y z=RAX2_-JOrAE)6+a#j6Nri^;{E4 zP}SB*PeHB(z18mUY&s-GXDl>%PK}bG5$_cqBTJ5kj^%i)`Eqo8BHr`(i~>FH>2cqj zt3=rkn%qK*3caPRaDVGnp)1bixyNS&pwl`2W`&D^=;}Q$+>6(#(T6|pxV0lSsC?Z& z?kTz;^ikt6H;mJwYv=57tE#o=oZ?OHC-MH?g)uAKZ~xV!aY=LB{SFyWXP-%K=kG?e zF0)olaO(}6e_bbAn* ze&MS#yLd3_mNz>2l%Z(tnKEalcNm%`%60x&H5_d@k>I>|V+1;e|J?bkdL-I%^tLln zH5yIlTy#eMG6wy0keSoJ%H@bCHP-`CO{8Tf^0s1bE^uUv#u?>=;# zC|isMhhKACAGH)c_4KqOIOaEWgy(=G$i5sM_I8`&$ek7Fk%4O+D|M?-b=pEl?B&%c zG@lu0BZr_N;x62%XF`LleHnJRN zMr}doVsMU~Wn0mI|NLsNT)7SPaU1Oq@X=_%xiWjlxgF@Fpj`XE{(g$my9xHJ++FBH z=X3kwReR8q*xUAXoIlYCBQM%JpX@^e-W|2qOh173o4eaS79*J2Za9tp;tsX1u0DerlGXNk7tW!> zCJF6HGtZ-OH5B_f#YOb^nxD3+%70K4({4L+{W3b>uUcE&imRw9u-G=!eI1?hFx|G8 zcmr+h|JGJpcoTh>_sEv_?`<@2{&idUmb++j*BKi;;XazW=b)`$@I%xnjkdLu9;5Yl z*4cRVPf$$1#kOln&(O{JGi*0*K1U}m8e@|keu*CJ9bkige~s#nIBXN z)(8DQpkC%GD>S|w{ol=b*4GOvQRAQ~)`rd1C{i`t`p5BF^wrir)LX2wr$&XS8cD_)*!ZRyRp;ry!$$T?CU!F z?6ulv@crKRdG7nG&>+@-ihld=-|w{kuLpPjE}rz+f6ER=wY%|||MPcj)xj&b{l`{u zRjoZP_|H)aRJoal{WF(~RNeP&_YZllqvATP_P4E(sQQJ@^DhdJsj62^_BY$7uaX-K z_x}=MsCxXlmw%ACiR$%iZ~wk4%v4@HM}Oy^7ApJaCjQ$DtW_r_>iBnGVXIo+*6Fu6 z&|dZHey!hMJ15o2QAK{-eJ-l#hE%`Jd9JDxw^>7pbR*2=BjTGvlS|%Bd2`pzO7QZVf!(fw^pTT z*ywv#xIvZwVyW+?x0_T)7ti#qpS@M}!DgKAH^~mw($s;z6+d^W?q3M-J+ywWYVjDQ z?@`48)fgb9-E$4^=_~9d7pMx)#GcfkL&FV zD)rVxAO7M?s-%EWpHW^{Ra=_A`?R!PS3UUj+D8(4OEr7z1E1qp@2Vbkzv8ocLZ{2O|{tC&FA8PpQ`bNRzABuRI2Fba-S%3ttw|D&*z{xSarB}i}#)O zP}MJfrMG=egz8jGj<>iZT2*r`!Fy_MoT_Y5h_`NLqH4R(cWx|hGNwK&IWH0yIj>8x7fQ-R;3zsf4aAe zeT}Ny#xdRzUFuc82M_R08rh`EGwJF*cwwvRZkemM$({~X+Yc-6F*g`>-8s2;$v2Mr z$YP#%Q6^vgwP%ahFt%8IT#nmPTqWw3;vBE86J%=PuLLjkE(7(4OCerwo*An-YrcDN zGR)MqLtlG+mRhOz**)-z8EC71+jiM&J;ukuSElTsGSSCdexlltv1uTd1a;cQ@?#+ z?d9$|NL_nK-z#JLP<84OzE@?`2=$T?t)8=;#;9+4RC)UB92xI_H$<)N3o% zGl%W-JS|+S?&Z75(|+3qb*SYsPveTsYOZjW=kj^m)s=PQJS|gqsSoB1^7NdzPaPiF z&GUBjLAC0eyXWdLN7YN7+IrrIKB4|`)zH&*;u*E}n9$QO^}KrL_I8h1^De22R{Zhc zRa{kbW*2yfx7}37jZ5)ZCA_PiG$_Ku^V$RT@ov98MteR{Z}fQY5vqNrHgI_2ac|Zu z^%Aoi9x2Ul)oW#EJyu@&sP+;b^qAT8tNJ0c)#JaEAL`ha6&@3Isnj3p=6FnV3{;P= zn&|N@GDQ8bbg0L+Z4v4>g*`nky2PlrRZW(W);ronoAO6}x^AKrS^cfqCaJaww%XJPKkAD>Ig_B)0 zCJQayH}z6#wCiQ=vz@#&0sFb`w`6{rHRqd^0i9hnEALk*U8;I$yguY8*XH!md<{-e z$`S`?bkakVf`}m+hwAUje*#BnxZF3&_TOVPFU%e)TYgT^*mz%6j{fzJX2#G{$|lux z&D=Trl+8i2HC|gcDaS?4*Myy0rtC;wtnqq2OUWu&u9+J=UOA(7wPsfSV5OL|LF2;o zQ0f_P(fqXXR4%7GY>+0J4cw!dG{abFJ?nsG(hjk5>$W2r#~Yn)E>})yG(T$H+`gRA z_~aD1?a#QNS<6Xx^I~7o>~V>9^THiBb4O|14o_`&3)ek&7~{P+!U{$Xexi* zcH5f!Tw_vl!Og@PPgd?zG#jwTI<&M6ww_Dm&4jd7&Tf>R8mGX&wH{ z_2|G(jl=$TuD$NFwTf?#UHkC_T2aGw*Ne+^w836yT?1nDvbmNI zskTeuO4q+~EA2{$d9FG8?6mvmPj;2nJ88Gx8}52$shf68es9;A*`8XSldtQRsealU zOPpPE;{&wD&&*w~j_;*iS1onD728ky%Aey}J8`f!dV7=Ne9CZbysBKWcg`5?S5c1Q zd&vat;Ry+fK^v!N18#&U%-A!vkwxDXJ(nLN@?&|xdK zM?BRoT-4}t`M@jfg5PB>9lhRb$602(ylDQcRc?!SdGzszwmvD?rDU^O`=ZNtm-XF) zwUhsS?J~GCTwB@jz-4Y=jCS*st1g<;iQ4Kfr(D)dPt#7b+V3)7k*)o>Z?nsd=6o%; zc)5#pc!_rK=s7OMw=1>V-cNLC+FYx>YdOqi%(y1)_d~s0DwOToh-z<_7!fNlcDj>G zTPZIvJjl#tMT9u;o1fIh?u}mH-MefTt1E_qyJbzzbM~19PS{)ST(r_U(5fce`R#Ov zz})!>&YBU5z#EAn&ZfOR0>=;k;r!0WH}LO|H_qo2xJ$_Ik@I`IUV+1&UURmv>K|BW zcg8u$d`RHVYX_X)n~w~X8E$nhv>X?B`}9iZ>2{L?-Nf^p^%c_t-yNRpEb*BW*o`~F zc|@;;f#3J{aSj{4EU*vT&-vuE)qy|vyEva+u_3TG*U~v@&(^^2hh@&QF6|2JDdssl zzuF)8?R1NiPuP*bo`zLUJBv>Se!rIIBov$v>}Q|sl&H8I82B{YDSyV5Qg z;6{VBPD6hN2HHJb=ybL*EHE)(nv&OfbzmrmC@zI*UD@PV?} z@lFFb=tpR}W9Tq(P~OrQN6%Y&L58A0$LI#bpb1aEI6fb19&~fmOGoW9o1n((dyb}J zr=VFEFFQV3?iLh}W^7HQSJ0H4y^b4vy9AXV+2r`&az4k74h|K*Nls#aE!}h(}pzHi`4m0h-f;NN?a#*j8 z4q9@qyTi|Ai9wsEdOGx$rw84$b#VCeH7BUN)WjiqaZ%9t_qqOM?BT8^Yi&$3yLZPmu<1ocYtfkC9<;g4a9y z$^^6Ef4EQVqb}J5H>cjP&zbHN{NwdGdj~sZ@Png=?Jt*l2fv!P!@k%1uE7~S*V@bX z^$PYhS!8cKZb0z;x@q>K?1lyRjvZtFrhasA`>TQWL&7Eo=bq_iFTOV|xO}aLedmrj z!Il&4?QN$n3f|b&#C~1Z6~T4py7qsJ*9Bi?SoSwtHU}>)Zm`>ywKI55beY}$!2Q8{ zK4;r~d3iKAXJx_<)y*zR;IA!}!yOmq61>afv&Th)GJHZ#GJh59n>rwEV zp*QW`One^Ph9=o|)Z5_o$|H7PhkOn;ve{|3Z{W}1LW6a7>j!9q^F@p8&I}9-ma%5o zB@KxQUfwd+Zs@3_;JVsDcKH)Cf}dA*w|hD(FZkb5PrGZ&N`hY$IoQ41QWe}-U~1QR zq&|3Ufy8e9wbo$ELbhGgOD3eHsLA$2AU{M@R$+TROE+X>Rj%!SE&3sL!4yV`^dWvgs8Q=CGk>U^|ayF(dr%jlWyz`H&n=5}{%`-BFBgnRsJJEyL9$lIRB zZ6DbT3W*-E$JTJnh!Dpa8*Lx&9vAX@Ta|6t{}8-pQlZeTpIfGvxCi(gNC6|e@tyQx0r|8yGd>4ueA&PzK~(Pscg_>rotvMBALhsstwoceE zIdsF47uKqd8KI|M+_MfnHb1nc{<3w2$+FN}y-!)YJy{ca>BxTT13fl}ro?TrZiw0$ zy2xgg_5MW%Li?&9bk;()_1v$4p?!WeS+y>S2wiPa zY4yw`KD2skp4EoX)KFD&veo!qIiUpskyb>}qU_WxMs7F!kta%frm(utDJk zmbL{u!|X<+S%!rk2%8obZF%s`@vw@KftF*gp9@Qm`fBNN z*4CCY#c1$%eU~R%q{aD$N9l%JgjIGAk9z&vLL=@U?*Gq63$5$0a8}1Ni^vgU!~GxLwa8xe zPk7Xr%NEV&XN5<%oU}0ex-h)kqx}~B^H+q6CT+D?E8P%2fV0}-VbAU1h3^(v*gcg%0C z(23A{cFEjEqaX3#wv*;}EX^a{58rQYztt|n$6~Ab{X|8CUDYac$1dIx2h|JAA6^QG zn095Fxl?POi2G~Cn%|!@Bx3Hc!REHXqa)7S_cXumJvpLVr?&0dW-7V%tBW~Q$_8^M?5 zn62%5B_g#s(Jbuy?Fgs*a5L*(k0VN>;A#AL8R7E%liBBfA0x7#zA$SK{1G9)e&4Le z=)j1dC$E~VONxjn+H=P2-n@i}V;c{dMO39nJXyZOta?{|#K8IM%*1--5z}WZF|)c? z8&N%ZmYHinYXob;L^EX+EAs5v;bu-tM3J|~^ffbP%Ol;!b}{R`Wg6LKywWVAw{7IF zNp@zhvs@xWrWDs(CF@#DuWlL=S--Q|G{AODHyyWQR;1(OSkrLjqR4KagH5|e86CCd2MC6kmMbD~DDPMH`hmqbYhA28`{wI*ur@ogq! zRGMsW{1}CS*yMHFIUO-;ht!BKN7q$ZI%(NQM`@l4(uCr6FE z)n>fcAv@}JOO3IQZ*kPIe@cvl2UJH1KV%vApWGB>Wt3=qd)eQp(9Pk-xqAfBI%z6n z-W9#*f?hDC4l*ks&!V_dZ9?G?rbK~tm0>(4h9*36A|Ix^Kb(`s4t#f~w?=SHoI zzP$;J#I9}8L#lfkUw*YO`si|BO^D`Pj5oSF zIV0N0F3f1vt%B&FSHF#nN-Ltx`h7CG+@&E}68FNW{y<0c{Y4Lq+!A;(>8;m{x;sl_ zKAbyeWWU`w#@FqrQ9-nI%mnRjqunkpF~)N@8P)9dirLk%!l-9PK+Lfl^NnV8?-$df z_cWt_t_+JglRehRxn*3;u>(VlB4B?BE8+Bq_9pefCAiJS+TaIR0;PjQfK(hF$mM z#7tfI#IS-Xjq!HAZMgnmP0YK}e+@%LtuX~JPa6I?%Z^oTI$&6ArV~4|&vwHX4-8@t z2-g`7@Ue_tmaxR|(J#l?j=QrBQ^$J5_FFgEFg3SJtnYwPhEF#2iH$cLXgEk`XsknN zcf%L=#>P7S@;1!tIW;!%l8a$s(%jg9wbq93HY|%BG1ACzwEp^7sY2KA-P`T42l*Vs zf=LHrUlg?%nJ36DZzot@qom`{t1y=VBuKp{zsjpyAq=uqdyer^8O;M(@` z*eR7K4LbblW1r<8FmS1EkNudw-N58IFK%1nI)jMi(zv>qr3S;4CUMSDa}17F+Qi8t z|1miAMiKWuaW`t*o%N$6?NML007Db?3tMEuCOeYvg%c6TPl1(n$v zd|y2)E~vr8z^w1$xV>yWgKqLQaZNJ5fob8EI9Iz4{cm6Q#+mxn>sy~c7N;3fuHS#f z`8egwJbmXO*W<=*NYxLse-P()GDhE%^&&3eQLz5_+z)YnnxFdkPaOVlef95GY-GEKK=~x__OHa&lHb8n?C-G z@%XdqCkyq5ZSP2=&}%JCY<fX}uZpYa5I*5&xjC*ZR$$9EtB-vv3o6AAck$nhOXz;{KC?@R)| zJ2HHS67XG;;X9Rp@0JYTu>^eAWcbb{;JYWocQ66pMH#-63HWZx@EuLScU6Y(Yy!T! zGJJ;<@LiVSJDq^Siq#MvXm8I*{#NQN^h5oePOXH+82DjCkKM4VkRoMDML z%Vapy5^=W4aKfsDc#969` zGc^%ss~*nSM4YvHICB$m_UhpbPQ+QPhch`5XR{v8=tP{=dN{L_aCYnA3{S#Yu7@){ z31_<=&iEvp^?Eq-lW_Ly;Te#GXMrA`2}yW1=;0ZWglB~wo*7AacIe?5l7wf89-b*l zc(&-_8Iy!(jUJvkNqF|?;Te>KXOSMBNlAD%>ERibglCl=o>@tFcIn|6mV{@S9-e7Q zc(&=`8JC1-ogSWfNqF|@;Tf2OXQ33Vc$rFcdr;aMrgGcyU#PAQ(DNqCk@@k~v^ zvsH>`Y%-p;Qap2$@$8l28Jvt~v6Mn8Je#F>MknK0EyXiC8P9Ghp5e)OmP_$WPsX!d zif4Q>p7l~Z^ON!HmtqD;#w;MkOpuJ(K#Cb58MA^EGea_F2PtNVWXuv$%oNF(Eu@$+ zk}+#YF>@qi_K;!*NyaQ9#Y~cn*+hyNB^k4d6f;XQW)~@Dm}JZ{Qp_~Tm~Et(ags6X zNHOyyWA>3^21>y!B*jdWg4sxd87T#`k_0nT3T7t>W~da*QWDHmDVVJ!n6XkYYe_J3 zrC|1wU*Pj*i_8263n!zm~ADPaZ@qtN-*=LV)m6_22RB+ zEWu2iirH9#895cRvMy%kRLsu0n4wcKOY35$PQ`4kiy1o=v$if~?o`a)x|qRJF^lVB zCQrp|u8SEx6|=f7X7*If?z))aQ!&fyVx~{UY_E$MKNYjSE@u8z%>KIA0aCFG=wc^G z#crUB9U&FFf-ZK3RO}AA*dfxeOXy;!NW*TSiyb2kyM``yjx_8Zy4XR|u#4zoCrQI@ zqKh3R4ZDgic9t~kF1pxZ(y+_uVy8*NZljAGCk?xfE_R+Y>^{2Kfzq%G>0&2J!)~OD z9VrdFk}h_pH0(~g*rC#}OX*;zO2clYgB>dkyOs`it~BgkI@rO|u#4$nCriU_rh^?V z4ZE5ScD6L^ZaUcE(y+_vV5dvRZl{ACFCDv{4tBnD?0!1f0n@Py>R=~K$8M;D9Wfod zq7HV(bnK2g*df!gOX^^!Ovi4igB>#+yQU6y&UEaaI@m$ev5V?pCr!t0s)HRh9lNRy zcGh(4t~%IZ)3M9yV5d#TZmWYGHyyjK4tCyj?7lkKfzz=I>tH8N$8M~H9XTDlvJQ6U zbnMPL*rC(0OY2~#PRDMogB?2qyS5H??hNeSI@rN8u#1balV@Nz7h^}yz^*RF&YpqY zU5p(*1G~H!JADRrdogzW4D9-1?ED$n{l&-tGLQv`kqKlV8xSKS$Us&gMrM$K>_ChR zAp=>07@0x_vIQ|Rh74p4Vq^{($R5PVATp3eh>=NTAe#^)qsTy3Ax37Af$Tzz3?lSWk;RCS$z&p%5hJ6?L{=k4W|N8RMvM$66IqTJnNB9M z9T75~Ok_PGWImb5eniNCGLZ#|kO^fX8xkQS%0yNqLS~eS>_~(RDHBJEh3ra%3@Zy+mI#?v7P2i7GOjFS zT_R*&S;)Rb$iT9Yg^7@fWg#0AAtTE|RwhDbmWAw0gbXbUS(*r$S{AZ35i+(cWNjj3 zZdu6QM9AQ>kj06R$z>s%6CtC^LRKe2W|xKRPJ|3E3t65BnO+vMJrOd#Y-D{RWPaJm z{zS+CvylagkO^iZ8x$cU%tlryLS~qa>`;UZF&kN;5Sd~&vPB^>#%yGbLS&BF$R35r zAhVH03Xw@>BbyW=qs&HDDMV(OjqFm03^N;9rVyECHnL42GR|ydokC=u*~mVH$Uw7^ zg$j|0W+NLFA|uU4Rw_hhnvLvKhzvCwS*j43YBsV}Au`q+WUWGEt~tnFg~(uYki`m- z$>t!N6(Xa}K~^h7W}AcTR)`EY2U)HVnQjiUT_G~w9Av#hWWG7beuc<@bC3lKkqPG@ z8x|rX&OufzL}r|W>{y5lIR{y?5SelgvSlGM<{V_rLS)W4$exABpmUH#3z13ZAe$B< zqs~EAEktIWgX~&}3_Ax|wh)hc0W$VnWbFcE?zza`1<2rYk;My;$>$=Q7a*h0MOH6B zW}l1fUVscg7g@dlnSL&^eE~B5Tx9(MWd6Cx{srg&a?u3{&f2+&F7p_>q(qsT*7AwXx5hwegv z4kHg;h5(&L9=Z(yI*vSa9RhS7dFVa_=s@z&g$U4zgD%;iIF;Ls!E`XOoZahK~*>A6*U~ zolZWw9X>jqd~`j0bUyj$e)#Bs^3etH(Fx_F8{(rQ%12kkM`x6e?ud^LDIZ-DADvP@ zx+Ok3rhIfwd~{Cv=$`oKpz_g0@zF`;qnqNRqsm8D#YbnAkM4?(4l5sB79X8fKDsSF zI<9T^b*qS^>H>K03An zbZvZeZUyMx_~_sY(8cl5$rYfRf5nADv5#LUg@6biPICetGDCi_iu0 z&e{51n!mx@8_Z<|1^>Jao=Q=$?7#po`E&^Uz5b zp_}HRqb@>M%|mBhgzlP$4!a0lHV>V45xQ+2I_@HL-8^*OMd-eH=)jB6h4avf7oi*H zp(8IsSI$FcUWD$PhYr06T{;h)dNI0n9y<17bnQHJ?#1ZddFbGa(Z%!7$rq!W=c1!8 zMpw^8XJ3r&o{J8@7+pRWoqjR8eJ(owVs!mnbpFNY{<&ZPiopVK!2}e84d8+iC5$D4qPw~C14-8U?57sLU6%Elz@%kf{`czE5QXbQ37^? z3x=WuECm-#MG4pnE*Ogvuohe}7bRdXxL`0!z+!O0WR!r-;DXU80jt3Uvrz(egA0bE z1S|&^Oh*aW4lWpv60jazFdrpgKe%8(O2C3}!Gx584dH?jDFrLS1v63#c7zLtq!cU( z7feYh*b*)nlTxrITrel4U{APUP)fm~aKWUMf=%IqQ7Hwh!UeNZ3U-AHhNToN3l~gF zDcBY+7?)D8E?h7#rC?vUU|>qY!f?REl!A@nfRQN$E5iXZQwny51BRv)EDZ-tO)1zK z4j7wKur?epH)UXNIACzfz~XSgh-(%D@6~zyy_n4dQ?iDg!IT0W(wvc8CLps0=I-2TV~J*dh)XqcX5Y z956>^V2?OpkjlU!alj;%flcCoQ7Qwg!~wHZ26l-9hN%oJ69-IFIoKu+7^iZuP8={# z=p+MS21z0*Zn7RtEb!;$p6=3byVD2iw-m$^pRf5H1gUPD| zo5u#DR|!^+4Q8(r>>e8oUnN*RHkiIjuzk3td1574KQ@@ZO0a)yFo2a{0oh;zE5Qb` z!3b7@6=Z`MtOPsA218g0mXHmmuo7$`8;oHkSVK0L!%DD+Y%qwGU=i715-Y(bvcV`; zf>mULS*!%R$Ogk$36_x!rm+faBO8ok6<9|$n8zxxk8CiIRbV06U?Qu)MzX<3R)Ljd zgPE)XJIMw^Sp}Ao4W_aRY$Y3vWffRUHkivQu$OEwm{njg*CPd1p(DzKkyFrZanLD^tJtH6e`!H8Ca6=j1Ntp+>F z218m6mXr;qv>I$F8;of+SW`Bb(`vA%Y%r+RU{Tp%QmetHvcafUgH>gNS*-@U$_B$) z4VIM+rnMSuD;tb!HCR_RnAd8suWT@|)nH-SU}CGm#&yc4Tm$x*1qQkXEHn#DbPd>O78vOou+l6r(=}kHSzxGZz*4ioRM&v5W`VJ; z0c*_yb6o@Wngs^C1}ruUOm+>}Y!(>p8nD_dFxxd?w^?AgYrt}|z;xGu?Ph`Tt^w=K z0`px1_L~I;yap^d3ru(|*l-pY@mjFrEHLA>V8>Zt$ZNrpv%r+sf-Pr(F|P${&H{5@ z3-+7^2E7(6ItxsCE!cDx81-7P>MStpwP4p-VAyNHva`Un*Me&^o6UJLe} z1qQwrEIbQLd@a~`78v%j7}!1ULF?Pr1UuLJAP0`p%7_MZg@pbjno z3r;{C+yE9FfjYPXEI0#oa0gg$27zha2V?0GO*w@)WdCH!EvaE>%fBZP!IQk1qY%YE(8lsL_ORH z795FsxDqTl6ZLQ>Sa2xn;Zm^RRMf+*V8OAdhik!tb5RfXf&~Yo9xet8PDVZ434+aiM16&XWPDlgX5C)D&16&aX z&PW5?5e5!P16&dYPDumY5(bV*16&gZ&PfB@69x`S16&jaPD%sZ6b6n;16&mb&PoH^ z6$TDV16&pcPD=ya76y(>16&sd&PxN_7X}VY16&vePD}&b7zU0^16&yf&P)T`83qnb zBU~B=PE8}+8U~I{BU~E>&P^lS8wL(eBU~H?PEI4-90ra~BU~K@&Q2rT9R?0hBU~N^ zPERA;9tMt2BU~Q_&QBxU9|jIkBU~T`PEaG+*&QcTHB?b;t6I><+PE!-yCI*gE z6I>?-&QlZICk75w6I>_;PE-@zC|<&QufJDFzNz6I?0=PE`}!Dh7^K6I?3> z&Q%lKD+Uf$6I?6?PF54#EC!BN6I?9@&Q=rLE#|)y%}sE*7&u+caJv{dUd?d57&u?e zaK9KhV9jvB7&u|gaKjilV$E>H7&v3iaK{)pWX*8N7&v9kaLX7tX3cQT7&vFmaL*Vx zXw7iZ7&vLoaMKt#YRz!f7&vRqaMu_(Y|U`l7&vXsaN8I-Zq0Dr7&vduaNig>aLsVx z7&vjwaN`&_axHM>7&vn+aOW5_)-7=97&vt;aO)U2b}ex27&vz=aPJs6cr9@87&v(? zaPt^AdM$AE7&v<^aQ7HEd@XSK7&v_`aQhfIel2kQ7&w0|aQ_%MfGuzV@%sg}zzt;J z2)4i#WZ(?8z#U}Z5VpW2WZ)FGz%69p7`DPSWZ)dO!aZc*AhyCqWZ)#W!cAo0D7L~? zWZ*2e!d+zGFt);FWZ*Qm!fj;WIJUxdWZ*ou!hK}mK(@k#WZ*=$!i{9$NVdY2WZ+D; z!kuK`P`1LQWZ+b`!mVWBShm8oWZ+!3!o6hRV79`=WZ-1B!p&shXtu)DWZ-PJ!QEuw zaJIqaWZ-nR!R=(=c(%dyWZ-wiD z*tWy9W#HVl!@XtT;I_lXW#Htt!_8&j=(fYvW#H_#!`)@z@V3L{W#II-!|i3@__o9K zW#Ig_!~JF80Jp;hX5a+3!wqKO2)Dx(X5b8Wz#V4b5O=^OX5bWez%6Fr7Q|$NO!=MX5dVBz@28`PR_#>xA3Q!13;c>&?LV?j+eA4tOVAa0X6z zC){ubj(8_raR$zKC){xc4tXbBat2O$C){!dj(I0sa|X_NC){%e4tghCbOug(C){)f zj(R6tbq3CQC){-g4*OrY>*0{x95l1`hpSxbzI1`oD1N894TT;o38B?*GEQXW-!fg^SO?$^Q#CpMj(Q7p^`7 zXa6tUeFhHyU%bo=oc_P~aTz%Nf8qKwaQ^@Q{(t-$`0t%(bs75K+w9C3`sbV8Ix+O` z*9`P!=+`St=)=&jpSx%zL%&}_;}nK|f9;Wl4E=dto33N%&v)g&T@3wscl0>U(4T*5 z_$7vZ9`Bj=8T$Fym9H53c_VgxXXxiYD-C7n^%!+Kk)hY;uU8&Juh-MxRoF;a%*gR= z485NDxdIlwzU$T-vgq}$XWOyp^!b#l-|7QKIQ33FKV ze(Ee*$)fkSYXfFByx$WJ9b(b@KgZ}ii#`vt9^PWn=VN4-XDs@>C;~sR==0MsNz0`aI^_bJ+Cx?DtlWO`q4J{Vmz_`TZ87VAJP0 zbxs#HeZKRm`m^ctp0H~Sn?C=qbZ4;X`>^5q5;lE5Y}_`o>HG5T^IkT6e>{htV$=8O zY~ocmeZNu`JYv)LO;G!mP2WHBy}#J>eKe3pu<85x=Xwg8zOS!c3)%Gjo&2eWP2cB? zL7i;+eh-clbLjhiZjK3uzW+b*w++#G5V6ghL+8Uces2z)7soCP=g|4l&GsJ-ohO0M z=X2obht9hQ`y39Pf6*^0ICLI9@7BVh^KqVr$EEYKYP3F=&d*6H)?7MI&(6o+ ztAO+MK}7(U&f8O)2XX2A9gV+ZfzIQ+W3#w)K94e3&ZYDE#Es2dI=^o^9pKV=e&FR9 zE}iea0&Z~Wybu2MgiGhY)36U*dLB%QQE}<{FllNOm!21nIcZ#aegrNl=F;<|OLZNW zo-Z3WGdz0U?C;R!(er2aK{FmbkAynTJbFIuIp@ox=at5!FOQyI@i#~E=y~?iVJeTF zZ7SOyjf2yB==BMa{z5<%3>c@=|(0mmaF;zhG z){r1^%B=HbQ_{|RY6_Qu~TNb|D61htUn=Q~>5YK?h1scX8B=IakniiI?9_cE^+ z()_*r1S6t(ykEPni01R}E6qeSuV-gCiD-U*Jjz!@^St5rJ|dd$U6dn5H1B6#og$+7 zKR~!pMEgLO&1*%pA0+1Q6w$t5I{ui5_J@ui|B7gzIN)|qMEk|lOE2+PQT$}qvA>CE z|43OCETVlRJ0)I3`^lk!IU?FuLSIyfXn%Qb(juaL#(f`8O#997GP#)c9nM5+G3`Io zzPX8M9~$8hAg28&`S?IF?Mt0CW5u*T{hm5gO#76@ucczzuVhY}#I$eSJibp%`+RqX{KN8cvrm}n|ru}W;-d|$c=Vs)Gi)p_T4M`ExzBlqoftdC`dvT4J z_Q6vtI>fXeo{SLb(7tHpVXQ;@C!&# zBX-uM{e070UtQYQ`+w}COZ)pposqh<&##_4MVI#bsP_wWY2SY*T&qj_zxB+Wx|9b< zUmew@d|*HRE)dEKwokmPOZh>=gBQA#C)723(WQK0!;m0d${RLciqob1p`|cOm-2{C z|8iZ*Ck`BF(xtrOSS&|E`GwR*CZRk-zS2@c`NqZ13JK*M|8l!XDE}}R*Iz<;i1hks z3FRY)3#UmaFWKR>SVH+p`PTIk%2Se5yCsyb^cJ6xP~KuS;j)DCm#tUtODK;Sne$3Q z`OFpP?-I&uW~~g7P=0gmO@f5-oUx5L63TaW^r)0j-ea}9MMC*c7Zp!Rd60&qFQt4a zXt1@E@}fRR+@zErxrKChje3;#WrXk5qx|n@`$;{@1Nk0T^(Y^FKl7m; z<%J<9-sn+&*zfBPJ<1cUOG5Q1Uz}ro4V8ReG(QyUrOna%x_GRikcE(?%R-q~?>pp5cQ>F2RB%0u^L&5%((I)=McMtSKD z*NrmDPx)i^$|z5*T6a=L`Ks@~S7em8#(#Psqx>}{^|g%hSVh}+8RfHS7NIiAYm0j( z$|%1bGb2|RCBQ=V<0`$|sv_D-8`a>~2A_y)@<|L!{|UQT)V)ydg%%Et#TE|*hY-fMG{obvO7 zhdBC_r<-5Y)2DpBP#-fx^UHwxndXn-2GrNY|Cek){Y~lhd;{up zdY!5^pnfNG7yj-U^gZWR2@I+Kxj56nkout55jKX@4-M(2G^D<$!7;#)`lC$QKtt-2 z+S|q$Qol5@Xu2WwO}WvF4XJ;6_<6k{^-*{3>^7u+D)z{6L+Y!#uD)bQ{Z;J5dxq3! z-Rbtykov9rmR}92?@Ij}Xh{9nfV@~k>cg@$nTFJlJ%3PYNPXG!gAIn%pJgmy8Bw3s zdw|4<`n6~qGb8HT&bB)mQUA6t#oLJbxI6E98Bsr1b!wOq^>xdaOfsVW&Y<61BkJ=? zO;#FFzgJPU#fbVoi@*a$)cO1)#`x#UJnYn9}G4-J-gQgl&KiVW-XiR-+_n0-t)SuqGxWkzGREMcY zjHzD@H@{#^ee1=HTgKGC?!NidnEKeGvpyPAKl|2FZA^V_TUw+s^|uSJq#9G7TQ;fC znEKr_vKnLRd&h^j8&m)5b4X}HeXvI#Llf$Uhcw!lP+z?Lh0=ujmx@NW~NO{gEA){$mHeYx(VA`|M*<44z;P@n#?zQct2 z^&8hjrqs9J>}zC7{rl^DTT|-e6A!zaQa`Wj+Rc>u`iWr!O{u?swtTE9_4x+k8K%_l zAAhpgl=^=8koBh2|3A*#WlB82h~39bi4SNu{nwOufp2f`m=Zs5WaM*G;tA&De=;S$ zV9<7rDe(sWvS?G{54;|xnG%oCrF)Sn@d<+?YD|e&m@~V>l=y}H)j~7k8D8!&G$Xzt zUutVcyo1e6r5W)L3*7?Dh=+Lfaex`|5v&1Y%!rqm9x=^~_=(Sx7nu=HVUe}gjQEO! zi*}k3Z}F%6h#B!0^VVH3BOW8E;g%Wk8Kbv7H6valr0s(l@f(A7smzGyP~Ds$pj5_Gqj6VKwe>!3ODEhj6^ zm=o`kJ^i{l@h{4dN9M%Ctn+_sPJGO(+ds^Smnjs5niD^xzahb#c$$FpY;)pkCJrb! zC*Ee!lSXsmZ&pg!7R2K$Unj93K4)fvsRi*m1G_p}5Wi!6*~@}>o{GjE7R2|woIJ#W zc%KFD##<2oBbLpwARg%cilr9B2YCc-upnOOKbt)k#19#5J#Ilf(Yok=Er>7r;dIx6 zc%zo>&n<{Qa)|z9K|E3~dyNJ0Ndq=USrD%j5SVH~{F13rp#||wMGO8|5Z`p?O`8Sr zPD48Rmc&1$4A-|L9%|A>D@)>|zGW&biI>uK_O~Q{YUrxImc&!7csIh5_^PeVlP!t2 zTGeZwCGl4y_N=rd9!sj)Vo7|~7uEqw;wB_>L5$v!Hz$UwIn`lc6Np(@nS~CC6>gGy&73(Nj#ZyZ>J^kWyju$tcW)Y zEi|+u{;bs4){1zvvLQ;W#Zp1|rmj}RtDU^x--`G(_n1*u#IrqZn_@+Lo6vcI74dEZ z$F8;_{%z)#ZC1p?jlXr!iugE3?HMcL<>E@NSrI=sOZSl#@pKx`H&(>gamRhPBHqqs zZLk&bcSdL8tcb@ec%ErReBQ~>5-Z~MB!zWW#P2Qn+i68S-xX7_HSv9Sy^XAi_uDtr z)|&XgZnKou!~+Jd>uODWpyE(}YvKjxULIvl{NSo5Q>=+69Q%2`HSvYK;8oVd8=g+s zYEArMdCmcA;t?$>PFoY7Xw`Vtns~)Ooe!*uU%bSBZB0C*MDop=_{K^4LDs}Ot}u?Z zCjN1vS%x+7kYbBsYvLo%TGUz-FIiyTVNLv`z)WaEJY|!SferDMALQ0H#9Q{&b+sY> z@)FPAhIq^`9er$w&wNrp+=h6~`DK%Ah~F&AnqxyeXP3C;HpF+1(QdLK-qYv9UK`>+ zGaj6`rq(a&ab|AklYaBPWRJ-bh8OFZkSd1ki6w}$m~v?bnE$I8o=_*cD_ z?zY6kCd3c2B|dh>i?O!E%icdU-In;-=Q9`C5>LCycdae)wVnJOw#3^GNjqdq{O#!H zXKjhcHQ06CmiXMuqaN83ubXQA#+LZql;Ur;#Pk09F36VnUdirQTjG5O49&15{?}Kp z*p_(Uti&2y;)4fWZ?`30c+nhz9r45c?Dg%4Cr-?_v?IRQ;em@C@y4zTeC>!oF0t)x zM?CVJ%%OI~C!e}9!H#(44HIVB5x=abv(%1w=K1RNcEmR?-@40=cxQ#jQ9I(Fujib% zBOY3P{-z!A(YFRZu_IpEv+k`O@zd+>{;(sSddZj&JL0SLTI1}9w_g4r(~kJ-&7(`~ zh{yJCsI?4VzCpkPmRB z02SaVRvQDkgqUWpXEsY!oW>Bj^r~WCK)-B-@py9btK;*>R&fU@*jNb{2j@M@EzON zk^G2=|Asq~FY%W>$&vhti0QK($*1srv(%CN3LpLkNAfK~rtNYh|Dx&H5l8Ydezu=; zBtOGq)D1`SHT14MawLD_YSC*)@;Scxd~+nfW6h30NAf+sYN8#<|F|Yjb0i-`IM?>*_>) zO7-4;PUNeYejedO{z`1+Bq#D&%64?X_*uGE>jL~a3cR@)W=;;B>?Kl6CWBPa4{W}SWQM1IYkPhXwLw^^O3bt3;Jgca>XKF)K;R44Lt zEQaJek*{O8xYCLIoy!NCoXF?7cbDZ%eow#;9cS`=CM6p=lmF9NZR1Qnkc+_0nf#!1 zOMhqbg-m?J`YltCzxT0oy@Gtcy01GG;t;eFgb}Z^pe) zkS}Po)k zv+3hq$)CJmJKdFhO7^jZuH;vSTCH{^-?HiT7FY5wPY&4UN4k`H>-G})E>P|IsMuH=hy z%*$NKA02h2&Xs)9M#BzQ@=G~q`EKN!t`*7L$Up77&&-W{)YVP)ZsezStZ;WDU$s1| ziyQf?J;wEQBcHYS*DyEoTkAX~xRLKV>)H%A@?V{Ji`>YE9l3h78~L$OiCf&rmwnlD zpBwqJWw(#JkxzSoebJ5l+ARxix{+@iq<-W^{_Q&3*KXwFZrS<8Z3O(>q$IT)`MPJl zBHYN|y?;2-jeK5NMwT1-y@_5WZshyc?W=Jk|94qjs~h>i0d`y^`N1<+OO)gbr+zV3 zl0W>MW2+>eIB}$_lKkSy=Y5sr8@naRcuH z%cG5#E6HcJ9KS(HeskaBJC)=+e^4D#lK;G`>9mr3=*!A0O7f#Qv+pX&m;QbFsgnHZ zs2}f?yL_UlJNe&FSKGOh5B~9pn>+d8(%XLS@(e);V3DemN(d$i7VC;xniV7WW_=>O?&a3?=~vgJ;9^3_K;9&#st{fOIX zcke6`m%ck<&?m0EZ5_PVp3?974gYF+FF+b`-_Ys6to%Nvm35tJT^`QF-2A#X-LH8GA z&w1uS_ZfV2fA2x}8-zD~_n`X@ELDLXbpOHAqfs7oAHs$)$sTk+!dCqp54tbmb3%y+ z-Jjt9Z;c1tr%*bv)r0O=NR@Fs>AnR{gpMcOzp(g_p(owP!0Bz}N%u3P)H-?6eGNsA zJU!|D2KQ+Jo^+qXQ&B%py5C{$=V6|7-@~Xy<2~vAhqbclo^byS!oJM+r28SJ&s*V1 z_eIzWHhR+i5th$(deVIoqema|r28e_Ri5&s`zA)8yyQvuPguC#_N4nLthJ9l>3)id zvtE1BeHGv9KYP;s6;qF^Jn23Q7wa%jy5GX(b(|;NcQL(Rx+mR#@iQvllkUTqIHSUo z?#D1Is`sS(GGuEyJn8<7fJUAd+<(Kf*0NI5t};Qi|+eq7`4EQ?*AD4bA=b( z2cq)W=tcK~EW5tbi|z~QB{<|o_lNXYcgl8U@4+K4x_=~% z|H_N*BYC>ylNa4jazE&o7u{D9=n&#X_m}AHiSeTQO!lXwc+vePmfpEubl*wVp;9lp z|0FoI#*6MlNm90Y(fug8JK5fJU&^vDu{YhHQf_SEP4}r>m}lWl_p8i#>flZHt&Fcx zdei+YOS<}d(|s)Ww)OJ<-~BA#26@wcEeBdhdDHzZif)s=={}b~8)kXa{VwS*7J1Ws zFQtX6yy^ZIQ_IcXbRW#Jal5_gewd8?hrQ{(m^JTCd(-_f4tbZn={}ie>1}ViU#7DA zV{f`|hP~jGH{Cze_4p@mx{v1At6$!9KTTU)us7XTbFx0#o9?gaX_(?o_t^-2bG+$( zo4U~@-gMth+mb)tbpMUb-ezyQ4`<#b#)t05`Sn!jL-*x${~`0C`*WfrO?}}08}H4q z^`ZN9MwKdj=)N7ldT$@Pf2T`FHy^r>XB@Y`58cmmSTx*+?(0d^9q&W;_wD&cpU%GF}d!DB+-M^IM-qn}xW4hDW+n4TVTKjXbFWuKP z?%-%&y1%L4u*tr3pHm<4EML0cX;j!kU%KyU>Cu(GbpO+ZK^uMPKB$P!9lmrwl>Vm! zzI0#I;#DVn>Her-y9>T_pH!EGYrb^9)a!%yeCfWau6|E_>HewE>^Hu2AJvlMUwr?M zqx+7lvH#;ZZm$U0TVzF)_8ISYW+aJ96qSagtzoZZ@4Yj#Z+p+|O=cvatcWP>aemk5 z_s9MCKF)Qnb9L&F>ps`{yq?mhYN%w^rB`+5?Y-X8ubMwAxwrJJoDJXfmcEtIjSs!0 zcU5KFx8Bmf`ceM7xAd^yZ7S$3eXLhz6}_dGm2$7Tx%9I#$JR5Ko>sx1#^%!3Y8cnr zTzXp;4UNpDzvY$C-CTNHE4!JSOP}k`NtL3^+C3N)7<*l%^Xx%9z?pNTb>Uf8)Fv&^L*)?xR2bLok#YO>s1`eKzA zt}~b3SWLlIbLo#|`|UATX8&6TJUwJCeX@@>C(Wf-Hg@L)bLp48tA5>FdS;$M_spel zmiFMOx%AG)8mE{`|15oBy1Dewd@{e7OCRl%=9jtj(tOwbGnal^Mpmi0^wh>_t6E53 z?Zb*X7SdbuOmAqR%>K80)xCv<^w@?@Zf_xdwwp;^ETq?FRjZeU^xO6gwX%?&o55lY8$s z*+Tkq?bgq-klviM>E&O&;3+We~)(!aAZxMLwbyv`<%Eu@cEci>A4>E-GcETpHm zFh0vd`g#M`|FMwXUg@4f3+eAA9CbJZNO8%>K82|D>g* z^!$cCGqjYx--%~kEv5HYE4i1Y^#4XYva*yO;L1B%OX&k%yV~DUdV!x#53!Vf;J*VS zETtz{vSqZT^acMe@v)TN;M*yImeL#%uzi^sv zv8D73t9@E!DSgA4NgFMtclc#{f~E8iHB%EUrH2?d;)ta(``_kFw^NqVOH8S_U@85? zZ_kn}rKgy=`>v(*6`w>tv6S9oB3@Zae{n+XG)w6*ws@XlDSgH>o3bpW*Qg!)$5Q%@ zC)yQSO3$(3$8t;QJ9;Kmvy$H9Di1v?=|3KCY+xll$cvAfTS*`CSX?_R=|wKL>TD(b zNVo5bB&PHvYiu&NlD_250V*r$O?LciXC?i~6m@{uLwvt}vYxh-F z($8%CeS?+sG_7N|TS;G&RrXp*Z?ng;Lsrt?EN^teN_w29HlI^Y+1|8uY;)C0dY$(Z zZdpmc(^xT2rRN#8^_i9QJ=ZsVVtTwx_WQD58Y*3uW2%Oq`mdws94S8M6h zy4Uz+Expcv`n$6)_py;4@4yT8 zHqz()cxtGP^m>OKaj}tp@0#7CZKUUWaD%sv^nKSY3b2vh?}#bEHq!si42ZOm9;Bfa2-iU%wGV80rRZKNmMAZvw<^o3X6UuPq|;g9>b*hqi4O8ib6=@A!< z-De|x;)|9?Y@}B_Oz)(P^oviYpR1Hno*L^xkw!Tj@nFn60*zezbYpKDN@6K5}uOt@NdTyE@uRZ@MgdxUKZ3U&OiF zN{>3G=~!FoQ-9p=Yb(9#Ce{;drC;6nR;aD?tkayLY^84uCSF}w$5jrt@N||rfs&Bp7s#89k$ZfZvAMlt@O4}+a0o%{&u5N z$84p?ZQJpTt@OD&t-fe0z3!BbyU(PKVa8DrOf_!+P$cWO8VvAPg<&^XP(}$y-ND#?OZykq<7wNjj>Al z=ii_7Qb`XzqPC?<`sf$>s8rHRzd4yI>8Gza++QU<^_K4ktE8_USa+C8dh5})t}5xT z_w^sGk{)~VGB1_%+1s4*Q%SGAd&&fr^xKPyLRHG_f2a87Q7Y-XKee2qlHPl&^Gua8 z``>v_P@GD7@Wyi%s-zDev2K}4dhyZwR;!fR|ISutH>jj1fA;29mGtHFp6pa9v;Uoc zrzEPRKff>ikV<;=tul|Pq)+eo<+MtA^{OuyRLbms=PwyoRnoI}Ouwm;zI}MgJ(cwC zhdz0%lK%bo8_!kJ!`GfkQAr=)DKSkYz5JGIKdGdjziZZ4l`{L^B{T4+O8WXAoc^e! zx4+&zUnTwh>P<^j(&INRs8C6tzwyheYU%Z#JXT9B{r=jE>#3#Z-@?a0Eq(tCi)L!+ z{rlH!tyX6LyCkHvSBnR*Ild;o2vv0A)Fu;Px5T6}@#i?wR; z20RA$Rf|91Qqx{79zoTcL)79E1kG?(i&wC~+)b^_{&)5GK3XlF!RIYrYVi#^4)Ifq zchI6ZP%Zw!t-T>?@en#WMXJR|(B#Lc#Y?EUWtv+2goT>fYVi~qjt$dGKJcr9m52(d==-=!= z_5ZzxohQ`dKZJETs}>JJ|HwtP_z=E5uc^h02t0aIEq+A19{1GZNi5#~NG-m^-uBPb z;!Q+ue5DqD;*VacT0DyOv(nY#Q&j$)p%$-Vt>-tj_!Y12{8Wo)alh9ewfGhx8~&-q zyGSZ2Qj33aYfQOXJd7!qD{I8ZNNZ6;BVNXz=sFtlGfqC%*NCTKWYkC_zQ%wl%{1a| zG=0!YBmTy^7VS0SaoiYhq!FJZ;Y3%BGW&1bwWNne{0<*GGmUs21LG|<;(Mgtw$+ID z(W*K$;(yfX+gBqV$i5i^HOlP2an5N6jd&qnemH5w4_VaKMI)Zbn_=!6@kL(F^3;eo zGUKqfM*NXyulzLPkvuC8)QC?qt7C{pypq=gBQ)ZdybX-jh-b2B!4!@7CKl*Q2-Zs3g5fA2m<@*|C_P>X3&LfR@F}qWfHR8uCz4=ljo=mGlZ#3e|j98JT5pTvU z;-g0VnRCNFYn0jl9-kGbS$vxFHM2G1)%5&wub~wm=knq@TJdrMhv{p@&pBscpcPN&zZXrk;_D1r(?ToW z&LXEaT4na%B&3$1Ry>}9Yerh}c{;{))r!|s(4~h~{GO0Ey|m)_EL>o&72jt-Z)>f1 zKl|UQwBr99je}M^AonhPwc-Qqy+1&!%>J9K3mU8yKd5WXp<3~TymmWl#TT+xyK2Q7 zI`zz5EB?^)08g!WL~9GZwBi#LEb!GTv;QWgjmB%0*?*Hg2|-%%jIuk2YQ;B7ITE22 z@5tXYS}Xq1niG??%Its7ai-I?;v+pjGD|C7(&x@`TJe)MB+S=}r}U%IVy*Z}=?j)= z#ao(GxKbKHH!bpD9%|EXdKkDV{OIq=yI&{9K6m*6%VVt<5#WtSi@YiwBltUE?cY2{`Y$DUyfFp{qL3cI#(;c*7@>$ zt$154I}~fh-)i2!Oe-GONk5%de6FlHRUls1rLEPW%>J7ipRNV*yeuB*L42>b@AV&$ZS=QDhzD1`FB;;* zsr)BHytsPpra}C;DJe6c%>MVDzI-;smuuW74&u!X$c=~ib9Hwugm`olhc1Embl!!_ zAYR?igq0A#u3rB&5YO(;*L4uzuF1lU5bv(kXbZ%@i%r@F@$eRn-U0FPdi~i2@$y3A z_d@(UHr)^L^bRB*g!p>e2k#g6L>Aimo;sf@gfUNn^6472&ZNgPjXsN3yLq2sx`&a)PHJA@ik8+sVUy(w_{q0zj=5YDITY8 zK_80GnHkoP;&qO69YFCrM_b!dJkOua22*^`dIb&?@AK+2M~eShamb0{fj*w=Oz}Z` zj2uDnLR)rqrTC#63f(B4=f++rJX6{6ahq`Td2*pRu92Q3LQqPx!Q~cCc zdm<^Gs@~uzim$pPJDTFHZde{m@mEcIOrdzJ?)RornfpPv|wK^5gpfdY!-FC$+ zisw4L{Tzz#8gP6r#e03Pok#IsGw#JxJlN>r3n)J9nv{hUFBYDQDSqtav?UZzR_nQp z;>)f~Sx)h0!-lV<__L|^R#80K=h`(CpLW#owNz&RZGzgbr}(usS8Skow!MotQheL* z<2F;7{kQ3HZwr;#f1A?o+bACH$mQE9J}$BoC|>T#K|3ja?#bP|D4wpiWH*)Be_OX< zdnw*-@vcOQzuPr;AC=jE+e{vy_`JqT4^q6|@)w6Fey?ZCBNWeffY*N%-}lmvqZIG= zQu;9}v;Ve(TAfh7-W^+Sx04hfxXSWV6ffB9#%YQl{NvvliYMHw(>W@$|0>;x^AvB` zW7Y+VKWw-EBE=&<@%R$OC;sp6Wr|m9(da70FCN(Y8pSitbV{Q5#&v?OQiJzNv;QiGclRj1@|{ojsm%VX9)Ed2 z@t3{6J*0Td)4o2U_{{AyA5*+$=l4%2ezV@Irxee5*n?z>@7(svGm7^-`M>8B|Jh^f z3o5h!>bnbGQknf%Uk!gn@uE5MHN}s1P^C~j=?|^mP<-i%k~dUl|JD0b-ctPOw|@B8H5pA`T5Zoh1b2OjV-o8p5n zoA!(1g=-CdQ~dDQ{l6)mxUDLO;)};W$f0=SqelIq_~U0Y|4=;gZ6SXtKDl1rUy4^= zb#gAnFOM(ErFiBmCg)Ln^Y;JpDBigy>>tHH|M=w}#Y3;>nNMZ*UwiX$KE+F~i~@?E ze(!Jr#ZzzItdQcX|D9b(@zzItEu{GC8iyi^$A0v15yfXeRHvBYwVMPMQUuGi z*?&B3UPAHRvqMX$%>H9dQVEsWe_U@+O7Y;Qc$HFo`11!#`F}4yx0K??KeH*Lc=Cs4 zlu>;7x>w66-h4q>8O5IuvMr~0^!`!h6rcXvp>m2>pZB4h;@2-SsGxZEd;3;Ue0zt8 z3W|3>d20og*?*ecs-QCa&yXJ#RA&F#TVF?I_MdURbW~>lIoe4_W%i#JChDln{&QEn zj>_ym4Yuj1%>GmFgpSJWKbPIqQJMYch8H?2v;XY+Nk?V&pZ&6RRA&GA^`DN)>^~cp z>Zr{A^Hzn9l`2*G|9>4?RAQ-4hyJ}QFF`Wp_!F9Us)e*s6;1a z{e7$w^_8{3{Yr8im}OLAgtEGnR$?P%jcHt&hs$-?Xi}NB%6fiaWnL}QA=O*Ct*m8J zD)UgO4sF&{mgfT=uFS9!9ei$8=JjG7=Dx2?J!RcfP?-)zI^3#Xg>wpZ_|mlsj}+)o zqi+>H$=9KaXBGLrFethT|K;g0VR;o6%LnKkHEIWmO)_P`XXq}>b|J$lDnNJb7D(O0%nTr95*LAQtQJu!ul-J=wb!J`G zAw07>6D}&>Pg!*iKCeS!lN$VSMu%%XYcTGV4sY#iu>J`h{`u74+M_zun^uGMjws*P z+8UgBPzSps%DK}%9XxK=AouDpDZK_)@6usuVGX7xD6db0nryyJhfCdRa_D9qUi7W0 z{EpJ$r)N!WUaLcun3_DXO8Gul)a2FWI`rCKlQ)(qKd+>kytGhh<~uyWoOnOl>q z=jyOfuNFgR>9EbH7VW0%a6(&)wWjEBdt@!%jaHs-cr8wk)Zy2nTI?LAL*?Dd_K7+) zzEq3efy(oKS&P|zI@tcI#c&_xb*)jGSz~k<+pac8kJcf~rZ%s+=`d$_ZMGVr!>Wn3 z8S13GPV;K>tb_9Pw$Trv> z4zdhty?Lt%l$h1+*Ajz zj5^$7p!|6)t;13J%Fng29;?>TVTOqw_g2?o{y;ryDl4zQw;u18RbayuJq|6ZK*DN0 z-p#8(;vqd+=TzW`GBUjVM+Hu$>9P1r1uo?4(eYCSuIkt2`m_q%>Qa|4Qz~%Jt}bi8 zsKBGqb!qXW0?Cu=((Qf)UM#K4&|4LFy|*r>U#q~ID|I>hVg*uP*X7hR6?m6ZmqEuX zkXEZ6oex*wy{D*5>ao%;Wp$~?`&*U$L+WwSh6=o$Uys_=%JCBFF>9%E{B!lV zbb<2qlIyYKT;=O$)#Hij%JZqBPs`W}+-#-K;}I3OVxdpN;0l}@s?S9M6*w_opI^Ky zaA>wZZ9FQldy_unTr05Ugg&o3Rbcf4eHIR?z`{&@cI;PynPvJMsI5R$llt_suE2zz z^%-hbfid>=IjMUEoPCtrohs08s&aq33RteG&w(u}(B*J_8a1jw^IP>OuN!dLopM;`G~mx`bKm!nx_ z14c)eqqv0uy+X_JwzmPbVnRK@dlieEg{K^Z=_YQp2Q%5c!43CG2jVbahhtQA%U)%Ygd7f^=Evzt&g zwhVVSHsLMTGAujZg#8`MF#LWKUg}qd#u-i6Rb7UZk|tc*y9}EfHC4`O%iz(YDJ=}k z&}u+aPHSF<)Ui!@u6`Ld#WrPDjWUc}*^~wqrD$}ZDb4ar@ieI^?Xyd<1nbU#~kC$Li&6eD_uLNk{lB2hk;Ehd78muWn66hq&wH7D#V#;VZP?6KoPbtY|FLVico!L zTdrPJgy8dSxgfp>&yw3Ra!L^_v)Xb*ND($wZbxIEBIWl+I~KVV!J~IOUbZj71&4N= ztS&-xzjo}_s|YdE+wob4A|$VE$MB{_=zgRftJP87f4S98dC#E`X=&});BO(!^V@OJ z=Rz#5*Pewbg?QhoJ;yvOgeltd+|@$Fjcm`_Ckyc+tUZS(7NWz#_FT285D`1t^Y+q0 zTshaCe`gh5X$9p+6^g$v6&$?P#!nfkUh-`aeAB~ zn;8|NV5%VtnifL2{LM$T3o+%8Avc#5;M@&Edgc`1U#cOSWE8+O&ycrX79d!!1B34t zAhBZy*1TAN_v#MZa-;x_T|3ZdM*$o{I&kmm0?dlEkJXxj@(wO0F3R( zQziNEU(t~_vh%TMUq{|a&&T1b%I)NQJbta*eci5vT9VN7r^nbl#MY z{?CCWSc__{4 z%&zHq$gbIiZ=dAhUAr!vdo2(5th=z?@jRR!)`h2c<{=@l3%NQE3ukxX^|^Tn+t`J+ zlk(tttP2nL=E3G}7wWs@q2-4z4DOeQvVtzWYOWklzbk7R<>5l-uC#BQhYje;S=I6o zIkGE{{L6(ySXU;0&P9g>UHS86E{e8yW!bGvGYj zyemJ)=b}NAZpwLTF4B5*<4*rv9O&PT5w6O9W4h70zw&-&bT|Gp&qbwW-FTp5E^hDX z#u1H_PZL~HwpYo;;1}JvEcY*J|Ln$=8Gn`YBxCM)_80LjjoIq@U)c3F=8EHgQ9Rg~ zg**P@#5iNRul$R^sm44y>n~cbHfCw)UpzfvOpg7FIZ4Kx=J*$;Z;W|F{TJyu#(Zh~ z7fWh(XI_iHux!_zwQ4Kdt-7;u(I3or>dt20{-FE#?riw_51!8K&dRs{AaZ?oW}W&2 zga5ko&h9@rajQGGuKok3wC)@~=MR45b!XS`KZw`s!B1oVpmoO{TeGu8e*D6oQN8#og+O?mrZHkN%h<%SK} zxLs;WuX))hH!x${h-~yWHsi}N*$C)k#yNwtv2m0cjjXb9H{6WZI%Fe%ff=3aXQO?B z8Q+%vgu@v#j{5!+lOCDz$;+SEoM}e&^`E#>V#b~S{ltfcy;-{XCv;tV({aI1w6*Ka z^^<-=<=&gGynezhtT*cp`H9f^y=iOx6Y<-6)2pL$oKw9ywf;{We$boCN`K(;C*^V9 ze&At|vcC9%H}%cA?Ai}xb~fkq!#|L%HK)(UAINhxr)J&{6a|~Je)tcR#+mc2#}AZk zHs_Xs%I)Lk9MN03|E@VJw^jB}H|PG^%H#9R*)Kl}nRP9g@-YiPs>8w1`DnZ$U^Xc7X0d*g%P(b*jtkY>vtB6?vjO; zxfVQXkcE<3mi$ou9dFxNvS!wIoVBuK=a=8HYN#bO*S;gj-;#q5eFvvo(sBKFG+tv# z`#In7^?)U9gO&ZSS+e8E@0kDEl2!YB$M9d4Ozr+1t*Tk^K-2HYY-z>N%HMI&%!=Kz zzaeyx72m)9hMwM5TzLH(e#a==k9@=7Wmdet;Tr^8 z**7abu=@s9SkbEcH~eXA&CN}|VMljs=IOp-NMCCX`0*75qpZ37eMbVHKywGAg1f5D~UHuTE;0>=q9R6qWLce8BR;M^AkuD4;@&M)|T*oHfoe8JQkHuQ-8 z0^J)M>Un)ZT#gM-+kZjT8n$#b`+|9`ZTYk17gRF0<^hma4!1&MD_|=w2hJ8k*a^-k7pApzd zMZ*rC@u-`MPI{lw(@w>xf0{n=(;&OvS{x znQ*+L;`)i1*pa5A6KY3Wpf7FCaT#WE(0Ey)Z95S18bkD+1Vun55B3nSDgV}xtcAF zGGNwN!v%FSFwR)RAOAjKrJaTY-haZyks5Bg{Ry8#H2n16C)AmzVTTRM^}5X(dd~WU z;m0&wGX4`HZ)@JriIxKUH9{2u>=H*K^m`27*t=F08YA5k$_ z%P&_yqMnbIPxpO9%UCUsulR^g%d}h^`w=F)we;}%2=nt=8V>vjt0!81H2DbY&suJ1 zqTDXgvVZvp^lkuVeg1$RoxufGA_5-e71K+j(fW5Ck^I9LU_$N3wCmj9lvgqR}0?b>^t(<`}dgn zm)v;kJ^IwNW9;GgsM^MkL)W~=&E9rwHT6B_46@@V@Apu7*)d_@d*nvh(Z%FF4lK5# zuF-pV?y%#Yk~HX@u_HdE;lcwuKD(QSfRA?cJemgm0z2heP#VtYDcAa@r(v{VAKo38 zh7zkj>@_G2n;rXbMb9)?`S#)0#%V~N+=mvW?-01W52t;4hqB#$c>eA?tUTXGxhD4x zZJ+dE%XRN?B(o1O?H#O(`_RMZ9j@v3W!S)X7+}{BO})Y+t3^ z4ttA#iOT&hZ!!2%Ki0B+i>=AZoSpkqPq|*bDxg2j{odg5wElD%^aiz7_2)#BH?T|WA)5OcA=@_us) z_CM{<*=Z?A`P`o|*Hcifq(A-krJz^+0UWe61@1-z*f}BvGi(R2)HMY=oCff&Z3?dX z4dAl2DM*{5>{m4f13)_DV2YVZm*YT2`8;Y<8#ZBMgz zFY(OGo_5z>;?zKU+V6RZHJ7@%gX)xp2PRqAf8_Q9Cg1c zj}Lv0(JR1}^XDk;IG7EaJ;x@S!E`No28*GCx$^xpJRUcgHu;WI4UF_^{^pP|X=!PE|YhMo5Y)86zMy1pMwheprv-`~OPUyuyb8Vr>OVMfy*~OMQEu5+f93l2la>W;FzZ{G8)3}e2VEd zLzrmz6i*$M0j_FKVK{CG=YD;H@R%X|eD4V^EgnJ~eu8QVL%3@B6AV5%gsI_Aun!9Qi8sF^+Y2NZLV)a4Ndn+@d@%SUh>Fq9peJ;IpLLwUF8A;yIcRj#c* zgx}nuEV}d%zUzlFe)~gs9URKqvme6!%23Ytc?id6Ls`=2A^2q|13NxMui~M6RP7;J z*K?xr*9WL!=)~D~AK;gT6CWRVfMMcOllL+2n-jaOy${DyWsSa%hV_Th(Ct26b{NKn zR`;>iY8XqJ-iNcpFs2sXLv62NJoV-tu0;;x{0sLmY5p)eZMlbzn}@N%^m|A?GK>#A z?_pZfFwW52gW=0z?9%2QZhup@m)}J|=`aSQ-$m8>&Mdxq7YQAl8NcH$EUlbbYtCIf z80@V49PYw%tTRjO?jkF~nSq9P5gqT$N0slQY@;$FRd}vBl0@+V2j2)*a4E9q(Xl`{B&2dIyiqhqLPE+px7C&epeXW0%Kp zn(V!enqk9f9e*1W=MJZ>|83k~H=O4EZ==(J;p}X58?!DAXTxf@@$$)V=4akQmyF?j zcJme{=MQJ%o?EzCYXm3FyM=nKN6^~u7F>FbV1D0Q*wA+b4|lkQ*KQ-|QRNm4f<~}X z#!WcR7{Q&_Zz68x2-@tri8H%L@ZOx8_;O|hhx^=w!Tk|@&YRGrji6(@oAAvU!K)QF zFu#fmyQSYyu4}n)*_9i((ba|Dx81-ywF@;fZXnmmg^N9Jpt`RMpQvu2NsJ5iTHb)+ zA{X{8zK-r&T^RA^I?Rr`aMQW#u(|%avmslQ3tsD~-D+ zVa#4v{;8b=%X6+g_Wc^_JaA>;-D`NC=E`RKuHi_IE0f}{VR98W`ubgiT@yE!^|^-X zUER2{{WaWGxv`b*Di#cNM$KAPi#znNh z=}t3`iwJt<&U4lmar~P*Et_0KUa>omjzu_0!Q&vhYJXrI*MH?UBK$4qZsi1JkD+(#cdbQBjwmAKHPX7|E`bX zzv%O*|8f+YjyR7_Uq{ij*Lm0$jbgvL=P|g>XgX(|gInv-bh~p7UOh+CWzRYI+l{8f zoO2jIVzhEy;v53}N3)~q9DHI&vs$xr7`13LKjfW-3O3W(*7*2R`+0&@-x`d%!B9Op24JU9&|Z-27}Zd{I=!{ zS`77IO!ygm_wr!rkTW@z%!7n3DBQ4v57QIemX@&B5z0B-FBWr#{r&n zn{f(BBRx57)G3Uf;K@xEr|@U0CyzBy_FL-7r0kPuxZRWY@14Z=U_ar(cdGhX@ zlQ{THIqsN~FwXSkA)Avp@XwR08=pjn8e@VAu(i%u`aC^`cdf?q#i3(pVKSCna10|b zmWktzVbQR$tg1bROFm=i+58x?BFFN-yrXC`Z!8O+9EE1xSgH>lg-_yGPMLocbI*?D zQJ)kkse%~;lKc2v1OI+opX|3iAoSoVMXAF}nlIQqbUC~WP;z>(7Y9E$f}e3-?3H)~X=}Y$f6fs+*z3h_9!GHc zj2ACh9>JD7UYy_H2xg{u(c$M|jQQ@xT6YdB=l@>3w(~Ib>v%I_`e9_W^k%D(hjFUA zH?Nu=#%zr@J@pP_&`@vYemMkvFK@;r9m3NvZ|ZG5gyplnxgzEe2CedD9p^)+*y+tV z#)oj?gttO19D>gcZ@Path`KMldEvrAoX+%SlXV9%>Yq1*!VaRSnh(zpI*9d6d|0XD zLGA66fK0C`h<*xBv?Vi)_+uH^yb zZ}y?epfU-f zUYJz&<&ndC;nvWXJ?8JlG(%tR^V*ATX1;7`vlkco_;O*xy?8O)m%o4P!S`{#9Cm9D zN+NxEaQhzAj`L-C>>e~)_(MbUv3WEjlY%sc*$-z-Z%7PN{ijNW9Y~1++8?i=Eu^9yRf8>AFCzqLf~*e z)|j;mcH{h5)qNM5MEbF~*DidW^gZs!wQF~xT9Tjg zS<9Wc@zjs%0Xs3{gL0gikIj{q0>(9J7%61cf?ijrT zi?se6(0d2E4E5)iIy-PNWc7)XoV7%#eylWc3 zSGBgIf9C+U`?L)QECc9wVH;`>2;lD3+c4fWfT=;-kmMJ@x_!5yNmKxBS}NP)0_dH) z6{lARaQ1_(DBl^t&AYdv-|+zcH*G88uLbbZh^@HsB!D-Kx1#KQ0Pj@Uir&8hcq4TS z{L2D({^S;{(HqYLOSa&0%kf<6y9F8D#&fc23#!?Ur<=hRbQmLp?hOoNP0dE^a0_H?qm7v4AIS6{8_*{zkbQ1!K;5`N?%2EmFIEMzAYubH>$TRd5hX{mv9O@^to zaRRs8T!VYRCvd`+H83upK-0)ISgaSsJo`1sY!SrcZP&oIYY+qTS7Vt~5L-N2jnw`@ zyuEuhj9h{kJasiDjtgR4=hZk89>o2fSL4UbAZp83!Dv|!AHP@yk1auTKeP(V4g@i6 z&MI6y8$?g{Rmi**#8)P(Q2Rv?2UlB#?w^8qK6NDqqRvVrSWe`-k1MdJ-$Zsir>w&#GGO@%?DU?<-F_>uIdmdZZC7CV z^ogw7UGg?JrVNn#WFl`jUXJ@| z6Pf&D8MgnJ$dsgI2q{w54a;CtBbYBjmOFGe?`5N^$1gw19lZ2xc(sxySUb}mAwV+dQvF2b|XAzU+L5ljO^ zSk-V5mPUs#ykH?R=7#Xq!-cS18A2;%{v&>yvR~{%JUJM`??V=%$+-}!3>U)vRtOgq zEWo;FA$pboC8o{J(gZhlg_c{dlNngmQI4Jg_*F zE2H9}*$~RbgW_SmCzP|=#KYuxC_{7Sq1}~Gy5F6LdJjUW-8K(}uS3};avst$Ls>Ln z9RVR$Wx8h*mER4N3$Dx@~82^RFA=5OBC;GZIEW`^+$=AzP)Fb-=p7l$^4@$9T(sY99<|;;?CO zJ`>L0g;TNadN@sXPQ~-b;q)Ce74=fXx#G_h^!pmlA;f)n1vAkZa(mUCh-$vc8Y zU1BgbID#jhMq~Qq2#%W^jj8h@ShHO;qE<$5@0}=2*cw5buqce)AHf?v*IOo?CG&3VgJ0@?o;a4wuU&aZk1n zZqpfz!g%i}PQ5x711CoDjo(;wh>2p)+G9~NJBl-oj=|$4QM~Rl23yxhvAoC=0Xw5; zmf(r*hod;QpC_`x#cx$mNB{L>j`UzPh;IwRyyG?$n=V|Ph3kERU6i)t}^Fnt&*)sJC%yJ6_oB8ES1 zI$>zX82%1)LWqfSTh9p#t(E(a4Mjp9Wq+5UI6fqX#|j;B#Vv+Qw>sjEcMN^#h=)Nj z?2$PH529lDcfk>s3_|&%7|yUCgyh#T%==-FgpV=wU15*FAIkGEvqz7AG3@qg zAhOG27&m1g4%Ce0^Hu}l-7uD|t_^@et5}Zl9e^aGSZ=63026!0^4@{|sBaU?+#&sO ztWPYPPjq4Er|_xV)-)# z$bA~iglT}o+gLiZ0k&nt^7l0@e*BF6A4}&QpVRsNaWkQ zNJ1hJ*?IQefl^hYR8dt`HCv;tm7I^gTB|imDXLbjqO>B$@BDl}e_XHgsuJ?#8TYxa z>+^n#*%K5s`e~)`ZLFxKSCwMZ8iTsiu}Z}DH>girRf%o)lGKp)RU&L|k~+R~mG~ke zNu3j1C7Pc}RJX@eiK5Cx^^#g8esoV%U-YRGUeyU|yJ1zLFe5Df6nt{$sJ~kR?_6=S{5I{mUwG zvsJ7bwxLSg+Zv;~f3IIh#;7l9s>F?dqt#0XtHilaqt)#vs>I&JX!WCCtHkO{QEKMZ zD)Fv8N)7p|N~HKissBEz5?%L2s=J<7iNCWWRZ~Nw*xWc$jc#ES1#2SIJ8g`@t6zk= z%+sj%+r!nq{zg&qVYvDz)F@hohN}zXjAHG{Fg5Beqev_XQ&03Yii0j;YW6Ur==Xi7 z`edw892ym>zB9on4F83wO$&_r96Ch(u*@jj5<}ExR--Up3|6O2Gm10TV72x`qX_T{ zRwpkqimKf~>bd1cu{$$JRlYWg`VE5AFTOR3q*a0Ht8GRxwO61zX17t#Lj!olN3jNf$Lf&?Hv4bWw*!nndY$erk52 zNr;htYH1IXX#BLZYVEK8zD1qYcZQpUjP0zxn`#nKzjjjX6HMZ2RVTG#vPrz}-bu|X zHHmIJebv!slh`-bR~7G?#F*zks^16t-?!99ZM487rX=~OSC*K>gNxqk4=YV#vejFC zf1OEO>FBMF++q?#G%wY2r%CL{@KUetF^LYZJk=F?=Fs@Lrb25u> z-fFM9x|zj^s~+l#j%M-K+a78cKeKq{_m z(Qais_3eIU;oQBQdS|Fv)cd2YIyA*B?!Dbs-7?-Re(`CmI!!W*@AkNa1q{YZeO@lRCJOMPwPB zRHeB^>}ltuc5|_a_S;*i&K?#~G`fZQx3@)TPn)Yh`CEkJqUP$V5Q`WP-CV7Vwulc- zH&c5hS;YR*W~x&Ui}t&NqW+L= z5#NL~Q725ch`q-g)n+9YajL*k?{izkZ_OOlfp&|yvd%%hIZeOzbxwd9_{?+x>Mi(riNosvH{fhqopVd>py`lem z7uQqk?&^O&ww}IUZV{iZd#%iTW)Xkfe5D+IWf4ApuapLjtzvZ6OC_$kRlNK83nj0$ zReW`^PFdK_Dr(&8lp0T~_-WL0<#K1MIJKZwc@bb0$4)*|+`_E_EuJX>u~zYQzyFkY zgH=qQ@vqXehgGERf2#EBYZdLu7BMR zjws_lu!(&K4=cUq+QjU7hZVntHZdsakn;Ldn{cc=sGMDH6FWB_P}Y2D6FGPHD`ji+ zU-#dyByF^bRhj#gSDS4jZrNU?<_DWNaCVPUu}l9xTJ2E+ciY6_{=1b6`)xv<4rSUA zoA_q8rUV|h3Ag7p%8x(WL}hf1GU=R6oGhwVUj1ehzUy`=^RC!L;h#Gduj@9k*>k7z z^=+HDH)e+tcwc{f7i?G7J<`ALW80L@|JsDnVVkn#xlMff)(=Y4*EX@${Jm1q&@K*q z|DAHt(JoFt*s3Tk?BYzft;*6?cJa%EEz09Ic5(Ex%}Q?%yV!Ydld{m$F1~EFN%`H^ zE~fYYR_Ww#7g^K3Q6>c1MJzTd%R}v=(X$Q8=}5ac7O_ET6lWK63f3zTNp{h9^*SX* z*u{&>YZXgRyIAkOR{6A#T?`w(M%gmJE*{VRS~)nxEe~ z*~QhgB}(`LyJ)@WQ{~vWv#uXDUyx*hP)$eWmxGc2Tr-hO*$MU39oRUAgd=UF_>T zUFmS&E^^bSDJc)_qQRo~l==VI#j@k?DhK|xi%^Gmm49mWKd-){bbM(S$yIMF-RnuQ zaJ*Eq8cMO?lufZZNb!DmtFoY}6lGh@%BmJpjO=VuHno%@cwv>Y%|(j3MwQA=H!1d1 zlq=iZrLf*CRW@~yB6LiNvdT+}Uk^`J7Whh08DFGW{iJYOSEyulm13z!fzmxt3hxi{ zm5w3$e?On3JPwnhMZrYnK&1ZrFXkxoVx%}XAX`a^*S}s(meL_f3R`fda$b?*z-Qx> z`EN{Lc6Zx5B?;5Q?b zwj-oC;yGMdJ4*jLbA~E0DN<~IIatwBrC2p(kRmdqnDP4nMH?^0ghBn4xCv6kYJHUr zIr`rh(no1ONs2?CB`eeNrFgGJFXc{w6baTIO8+7$Zr*)M`MOw&Ica+9vQ&SZeo~ad z6;kX^G$_le^v7>~qVlInir+mF6o0D}<7dSwxppajdlsX7{7Zoq zl6uajvC^nU|Nj>oDqm<)pkD(eZnqSLJL)M%_vqi};8%vx`=lrjsxw^PFU5CFo*A+Z zO7Yi?Cx$DBq;T8+$dGbGiuf-c7>*y6Vwml&!SIv*b4$H#SaVGOcf{Q=v^XL4`QJ6e zl#}}7{phmc=qV`%p15f6{zZz24d)Fdr=@V7dDeh4Qe4aV#o%yGicQ^58v6aJKkvPc z8D^f>AJ4iYhP@Z0xc=)w!_(jN@ALb82ER-C^KSlb!;s&lI6I}rP<~neclY0ESad~- z7yjD}Tdqnmz2SF;!+%KOcy*KE!Zj)0t=VX}`KJ{Be!9-^;JW^Nt@zsT=!O(O4O?aS z`=%5jp za||i>r3j1uz!3UC|GrzjZ>aaT6!Y%AXE?53cOH4$u<)V&{OD&fjCrI#Kk8Q)+#c&+ zZwgnmsa%`?3Fj}+#>35Lig`p@NBn&Fau{d(yr!#hv)$6@#oL#KcB=S{PI22H=N z+ttnGJ>;`gKNRtfBOo{`lSrGt}zW-d_e7thG{fOzmuVu3zu9_B50|mtxz| zwuW2!)%;E?!{|Ew=ataRut&c>e%R2^<%JZwzdmWYe${>UNq^|q*J0O^;$G@Mrxjepkonxu}e^w;72O-bYRYk2yqq~-cG<)=@Q&gxf7;s;4hU+cdMUE&4(dZ^{m#5?-+;!mF>{;OZl zw(OVqO21xcc{HJ3y|+b9;K^?M@16YryZHNe@z3w#*W1OfU(LU-nty*a|2@_G_f_-X zTg`ueHNT%~et*^ceyjQYSM%|x=HpY%$E%u;Uo{`k8a}=?e7tM;_}B2~QNy244S!xW z{Q1@J=UKy_Zw-ImHT?P4@cB@~=SK~nFExDr)bROK!{=8GpKmpM{?+jLSi|RM4WF+y zeE!z(`CP;2cMYHKHGKZp@byr`*GCOsFExDq)bRCG!`D|0UvD*h{nhaGSi{$64PUP{ zeErt={qOZ$!`F8WU+*=1{nzmQpoZ@cHGIFQ;rmAo-%o1z{!+vDn;O3V)bRbNhVM@` ze7~yU`&SL$&uaMoR>SwZ8ovM4@cpoc?~fYaFEze@YJ5M{`2MQ#{Z`}qug3RdjqlGI z->)^ke`|a{*ZBUfIsfndUgP_}#?J$dpAQ;8FEoCBXw}Q#e4c3he9`!Mqw(`c4Z<9SZw`A*|`PviMd<9Sfy`B39|QRDeh<9Sl!`BLL~Q{(wl<9Sr$`BdY1Rpa?p z<9Sx&`Bvk3SL69t<9S%)`B>w5S>yRx<9S-+`C8+7TjTj#<9S@;`CQ|9UE}#(<9S}= z`Cj9BU*q{-mU-p^^gztecX zr}6$zabB*`w8t>mV-p^~izt?!bukrq0 zV?RJ+e?ViuKx6+vV?RM-e?eovL1X_xV?RP;e?nuwLSz3zV?RSe??=zMPvU(V?Rb?e@0`!Mq~d*V?Re@e@A1#M`Qm-V?Rh^e@J7$ zNMrvV?Rn`e@bJ&N@M>@V?Rq{e@kP(OJn~_V?Rt|e@tV)Ok@8{ zV?Rw}e@$b*O=JH}V?Rz~e@YlKiK~V z=K_3q0Ot|ld;*+Tfb$D*o&nA`zG2na#oY#Q!8*rWj&Ue6h4>;Cu|6mx1#$aGnOv*T8ujIDZ4@ao~IooY#T# zJ8+%{&iBB1A2|O5=YimS5S$l+^Fwf+2+kM5c_TP~1m}_9d=i{jg7Zsoo(ax3!FeY* z{{-iu;CvLEmxA+CaGnazSHXEJIDZA_vEY0boY#W$TX3EW&Ue9iFF5}N=fU877@QY_ z^J8$H49=Iqc{4bF2ItY>d>WirgY#=}o(;~o!Fe}0{|4vb;CvjMmxJ?jaGnm%*TH!^ zIDZG{@!)(OoY#Z%dvKl)&iBE2KREvf_W{8D0B~Ob+#dk<3BdgVaNhvjKLGa;!2JYp zUjf`-0QVWd{RVK~0o;E8_aVUj2ykBl+@ApVDZu>-aNh#lzX10!!2JwxUjy9V0QWh- z{SI*71Kj@r_d&q@5O7}v+#dn=Nx=OQaNh*nKLPhq!2J|(Uj^J>0ry$J{T6WF1>AoD z_hG>O7;s+(+@AsWX~6v&aNh>pzXA7g!2KL>UkBXZ0rz>p{T^`N2i*Sw_kqCuAaGv@ z+#dq>iNO6LaNh{rKLYoW!2Kj}UkTh_0{5A~{U&hV3EY1I_o2Z3C~#j2+@AvXslfdz zaNi2tzXJEM!2K+6Uklvd0{6MV{Vs6d3*7$#_rbvZFmPWC+#dt?$-wA?LuaNiExzXSL2!2LXMUk}{h z1NZsB{XTHt58VF)_W{BEKyY6W+#dw@3BmnBaNiKzKLqy?!Tm&VUlH721os)i{YG%# z5!`B0SaaNi!>zX$j6!To%2Umx7x2lx5G{eE!YAKd>3 z^8jEz0L%-3`2jFb0Okw8yaAX$0P_f7J^{=tfcXV5&j98dz`O&Pe*p6kU_JuOOMv+a zFi!#IE5N)3n7;t?7+^jF%xi%84KU9E<~zW=2bli=^B`b81k8(o`4KQr0_ID=ya|{; z0rMzeJ_XFHfcX_L&jRLKz`P5Xe*yC_U_J)S%YgYAFi!*KYrwn>n7;w@IAA^p%H- zyc3vz0`pK{J_^iBf%z#gPX*?yz`PZhzXJ1EU_J}XYk~PKFwX_%yTH5`nEwLvU|>EB z%!`5fF)&XC=F7mm8JIr<^Jri`4a}>7`8BBj%d>&`HZbo7=HI|P9GH&-^KxK*4$RYm z`8qIf2j=gb%rk=dMlkOP<{!a4B$$r`^O9hG63kPA`ARTv3Fa@sJSLdW1oN6;eiO`d zg85D`?+NBV!8|CK4+Zn0V15+LlY;qDFmDRxPr*DYm`?@ss$hN<%(H^|Rxs}h=3l`) zESQf4^Ri%m7R=Lv`C2e<3+Hif^0#0f7t-)1p9|)7ajpHE{4SX11@paN-WSaOf_Y#t z9}MP&!Td0oCkFGyVBQ$aAA@;hFrN(OmBIWnm}ds_&0yXc%s+#9XfPiQ=B2^>G?=Fb z^VMM98q8mVd2BGB4d%7M{5F{92J_uu-W$w+gL!Z;9}ecl!TdOwCkON8VBQ?epM!aH zFrNE4Kz;zo69D-FAa4NV4}d%ZkWT>e3P64V$TI->1|aVM)QC3&?W;`7R*u z1?0bgJQ$D<1M*@(ehkQy(fb&0_%a}G2IS9xJQ|Qs1M+G>ehtX80r@r{?*`=GfIJ+K zj|1{@Kzjx=fgKVB9Ko6@`^xy5y&$F`9>h`2;?7uJS32h1oDzVeiF!20{KcHZwcft zfjlOV&jj+CKz%op1@f{$eiq2n0{L1XZwusafjlmd&js?jKzi~JUoz(2lDbjejdov1NnL&Zx7_}fjmBt&j<4Q zKz<*{^8@*QAny<4|A9O}kPis*0zrNt$P)zlf*@}YcX`Gz3x z5ab_%JVcO>2=Wp^ej>i$&j|7wL4G61a|HR0Any_6KY~0+kPiv+ zB0+v6$dd&5k|1vq669ZkJWP;}3Gy;QekRD%1o@gE zZxiHif;>);&k6E6L4GI5^VHA(Z}^@d?-S&If;>==4+`=^L4GL669xIAAa4}pkAgf> zkWUKoN`Klmq738miJXVm;3i4V(ek;gx z1^KQZ?-k^~f;?D|4-4{QL4GXGu6x6i1^KcdZx-awf;?J~PYd#DL4GaBvjzFKAnz9B z--0|`kdF)UazTDB$kPS+x*%^C{EycT^4me4JIHqjdG8?q9pu4-e0Y!- z5Ax$do;=8x2YK@#e;(w~gM50BR}b>*L7u%nw|K+12YL4({~qMwgM56Dmk;vuL7qOy z*9Up~`aJOse;?%WgM5CF*AMdhL7qRz_Xm0ZApalq0f2r0&=&yu13;eu=obKe1E7BZ z^bvr50?=0g`U^mx0q8dXeFvcb0Q4b%egx2$0QwU^p91Jt0DTLfe*yF{fPMzh*8ut( zK%WEXcL044p#K5%L4bY;&=&#vBS4=7=$8O}6QF+r^ihC*3eZ;p`YS-61?aZ`eHWnr z0`y^kehko;0s1pQp9bjH0DT*ve*^S!fPN0p*8%!FK%WQb_W*q#p#KB(fq;Gx&=&&w zLqMMh=obNfBcOi-^pSvm63|xy`b$8c3FtQgeJ7y*1oWYReiYD`0{T-xp9<(#0evf= ze+BfhfPNOx*8=)mK%WcfcL9Abp#KH*!GL}k&=&*xV?dt_=$8R~GoXJ4^wEHR8qik* z`fEU+4d}N4eK(;02K3>8ejL!31Nw77pAP8P0ew55e+TsOfPNm(*8}={K%Woj_W^xB zp#KN-0fBxX&=&;ygFv4U=obQgL!f^M^bvu6BG6X^`inrH5$HDpeMg}G2=pO=ek9PB z1p1RepAzU-0)0!Me+l$4fqo{?*97{TK%W!ncLIG+p#KTzqd=b&=$8V0 zQ=oqe^ihF+D$rL2`l~>n73jADeOI9W3iM%tek{U=o1G0 z!k}*$^bdnRV$e?v`ien+G3YY}{l=j081x^5K4j334EmBme=_J(2K~yQZyEG2gFa@^ z&kXvSL4PyobJouVZ~V@n?-}$zgFa}`4-NXFL4P#plLr0Lpl=%VPlG;c&`%BeszHA> z=(7g>)}ZfNe_g-vUxPku(2ouJvO#|~=+g%M+MsV6^lyVcZqUyS`no}XH|X;Q{obJO z8}xsJK5%`m^~Mhl`ockfIOr1x{ovzg2mR)t?;IZg^Phu0 zbkL6u`qDvvI_Oge{pz4^9rUk*K6cR04*J?be>>=N2mS7#?;Z5NgFblB4-fj{L4Q2x zlL!6spl=@Z&x1aC&`%Hg>Op@!=(7j?_Mq<`o(t-W)^)G(!dPFd*RQ{guP+i_yvB~+ z^#%0n;t>76U%o~~oBCpdejQO)Pq@B%jfiXYM6rHtb+n#1pkE(sswbRZzs9jo>WRVn zb-k^gn66)E=F}5g^y|a{^~4$d+AFf2xTjw`dDIhi`nBF$_1<#Q%R?`Jy(0AzdJWJk zMXy}FO7ybp^}$=O#bUiy>9tv}8oiF{bxyBqZ@m(K>s6;$lkTrX8@+tHzZ9W*CF<2j zuMyo}h)lf-^)l%-qkElLpw|k$Hgtb3cIb6Lub;cuir@9Rqt}1kpNWP&o{3gH{u3Sb z3eYR2$G@V7UW0o)6={0q^>`x6^?IkrKVptvOM5&PU+eWnA-EUu?uPvmnStRIO!`^+X z#PGfqVtn5+QP8(k82c8BX?=^te4T~7yl;V6*Ee5m>zgO`=}h#KeRIUcz7xdlzFFc) z-|?b;zYO8jFHLy#OBMe8Qbc6G(L(eaDF*Z#E>ijp6FL2ch~j>Ogsq?MN$S^6eA2Iv z__ANJ*wnA5sP5N89Pam)IMYuRSNj>n{eFp}wqLw(=pQRw`bP_|{*fZ6f4GS2A1ZqF z4;DlF2a5Fm-9&zWe^JrjPrTc|llZ8=k67B@ORVYNQGD0mL+sH94#)btiSzwk#f|>0 z#iRZ$#moLqqS=6EqV0etqVoU;5jLQaNE*;U^wnRpBL}=xGY9BC?*X-{N%tR5AMiw7 zFyOKJ`GAM&h5`50?YcX2|A4>LQv+_Pmj+x{Zx6VpJ{@pXtv~R0)oI{Gwf(^Js{g=q zYUIE(su=jQI$+>Qb`j%Tpc`UshT?IQ+48? zMY?}|fhq^hQ)dsFqb?q#bGZl2R5uTruGS2CS3NT5ZT0LRoBGEfvwD9}m0CNfLUkBi zs=5rGs(KABRD%XjR^tXwQhN^0QHKo9Qqu>IQ}YI=>&}I->f3`ys~-*?p)MIbR9!uI zkh*1Xe^ndYSN(BtvU+ZC5B1t$p*|RFQ0oRKsE$KoRo5X=s`rp^HE2kP8b2gZ?KPyU zI&_Ginm)u=%^TvSRt)K&zB9yKoioHuT{6T)T|K0wx^+kk6+@b;KMrwF&kbp)UK{dS zc`)RKQa7YlaUA-u;yUyn#e3*OC1~h=6T%Gsg2l|P2oDEEi%RGtt0L2($iRdE@%N%0!C zK?xkTR*4<!@66L>PQ@21=y-bHyb z+*heL!c%E6qP^liqOIaL!bJ%m;j9=&G*|kLa8yQ)XsBe4cx@;gQD-oYcxIS3;)!A2 zh=+#HM%**39dX<6{fO&^JtM9fj*a-;aDK!E!}Sqo4G%~BY^WP?+~7F!sKIsQL4)_m zy@sHXnjvoFPD9U;KNyCL++s)@`Hf-H$aRLYk*f`Ia1{kJ|>TQ@es)u3ODAllLRHEU#QL%>IqaqAHjS4aRIx4_$ zZIqwk!6+ZY^HCiQ4x`%{Tt>SZJV&=Q1dMKGh#Bo*=svoEVc_VONhzailX6BsO)4J! zFv&XlUef!cZzX*^`p={lqc10I82ww)w$bO3_Kp5I>BQ*cNxzLgl5}JAfuu*HcPG6Z zU7gf)%(kR9W40#wjQJ)hc+9$_xG`TP^&GPzX~>vmNoiv~Nt!rjK~m|MIZ5_0Gm~bG znU=I@j7(ZN#*(ygOl8uJF(pX{#!N{%IVLaZ;+X8DTVuv2Jsy*q^lHqgq-H5YliX4U zCi$lHNeW5nkrbbzCiO~5NE(t7os^ammNY3PFsU@fKgpirn=~t>W749Oc1bH!T#`1X zI4A8$X_~Y@rBTw!l-G$DQ=TW@OnI94IOSpD%apr`O~>9$Y%}&+qR-gh6NAT|PmCLT zI26N!Vz9!*Rgdmu4)?C!*pvAYtjV}D4TId*g6$744nt{D4u;`*^G6Ss~1EOGDH z#fitqE=W8-c245;u`?6@9{X-$-B??qL#i>+CABQkGqor&AT>WRIyEQpt<>>}15(E( zj!7MvI3aaNVo_@UL{n;V;2b(u9X;3lmVMF|7a^Abja-+>B4jxEi0GaWTFq<7~Vs<7E8wjHB`MGWN$W%Rv0s z89U;)WNeME$=DcwIOFU1(-|w{FJ~-^|0`or{F98i@vk#x#Wx%GUcB2lTfEP>s`#LB zCGoN23gUZ=n;1W6TxNXAxYYRUaU zeDyfL_(S8o;(s3J9)D?^OZ=^I&Ep@BYaIV_-0Qd|<7?ww$Nv-OHU55F!1!Bn(c}M! z6XP$&^&fvWZq)b_ahc=HL4(>rc{rhDA7OqaN?Gh4)M$!r`~lleOKaOShv zpEDoFUdp^1dn@xs?BmQUu`e^v$2w;H66=!nQ>gtJ5vycviS3)UA$CO8 zSFssc%VYDh7RQ!l&5N~VeGoe{>%G{Ivuv@SXH~|o&6*nfT~>Z9vL?hH$x4qsoi!@< za@OG3+gW{M|HngoiP<33p;H#9FqQ~W| zkIv8eGP*2hS+p%@Vf4(LInfJpW<-CMBcs>kR7G#eDUPnr$&WsmGa>p^PFnPDIU}O4 z=M0SgJ1051Hb;$am>V1Ilp7Z9p4%Q^rsJ0WQM)^$4iwc~W85KQoY?L~2SXAGM{iB9Y>=Bhd zF)3=|#Hgr}iNR5piGESjCwfNBo#+;|WTI2ls)-I!-%NZJxqae)k$Wfp9r@G5Tajlc zUX8pm@qFZ86Hi6{Gx2ET%ZYm<9VhLIY&~gfWcx|$BmE|=iVU5!EHZx5$B{iI&5j&6 zXlI`4KwhrFv1UGmOHgyo%zh|fC` z(Ian9#K63r5u@|AL}cczi^$Jg8BvzEB*K3NOk(5^l`j6aG&Aj_}#}o5C07uL=J=e?|D3 z{Kes0^5=$E=f59*Am1K-BEK^H*ZiXJKk_Gr-^tGif092c{AK>2aL38X;jJbc!rM=d z4(~iUI6Qc=UwG`~4&h?5Yk0rO&BKRJZV;Y6`FU9G;7%%H-)`wT>RIoYpWWn0d^93tHuN5o~ zy<6~6=#zr!p)U(;p$>)Rp)CswLfs3qLwyTVLxT#3g+>?l3snl=3hiAO7doUcEHtIi zKQyb*GjwvHTWDEfi%@G}!_eu4&qF>cd>pd4@UM_B3a^H&EBrNNYvIX|>cT@I2MV>2 zowQ(nG?gj0lOJ z(m$m8lbHU$FIUcM{IS_nkN_FtbDO-boow6?Y>Xa{n|C+Km`0?K&C^{dsw&-Ng=AuJEJBzfSeMR2~{aCai=ycJ_po>MH23;?j z8+5N|M$pqDThPm*vLJ`4lY^Y6W(BpIniAwQb#PF(smVd%Qw>20Q=@{qPYnp_Kh-B_ z_|$emX;YnovZpo*Dx6vuSU&Y}pl#~y!0A)31kRayF7T77#{xf}x<7Eu)SZEwrfv@0 zK6Opto~g?Nk4#+{cxvkGzzb8~3H)QKG4RgRqQJ*fa|54GO%H5PJUp;@alb&P1z~bUH0V|3>4_H&YFkn;h?0_A`?*!~AHU=CiE($nRoEvbyI4$66@vwl~ z#eD-F7OMfZ#W4Z(OM(KLmiPv=E^!a=C~*$(Eol@GP*T?|qU2Gxgpym`x|dw;*01DD zw_zneb{ku=w_8@p_HOwl-*hV}`Kp_#WNEi|O6GN&RWhU7{1RKYB_(CuR+i*aM*@mvtRnI=}0v(wSW|O6^^9OUt`X zDV^N4yfm|`wRCjXX{7_Z&MxiI_2bg`uFFb8yRItr>$<+Qeb=p}t-J0jb?myg^ripN z(trF_zVwR!)zY*6w@QEV|GRXr|9_?1{a=-SHdCY z7XRR~691^OiT+7t>Ha;+hWqy~>+3(PO!XgI7VV!|7U-W>=HoxLtgU}lSqp!ASp)wW zWzV|IDZAfgQQ4neJ}bM>WmVb9E*r`YcG+51-DOwVmM(kCzV33Q?6WSX$`*9_wQOdW zD`oaBH_OVq+%L=T^0aJxmltKDx-={w(4~2K_bx8wv0XgMgS+^Yck0ru+`UU!xl@;*-^1uBCmS6W9QU04>TKOrz3FQa<^2@9Jip#h7Rh6&tljWcJ%_v{sH>Z52 z-@lq>ALuMHNY%D=NY}TPyrKzgN+r^9L2JJI}9h z==^ELi%u&l9(7t>ajVnDic6iotN5kUu8PB*_Eyw%I#RK<(}{{Toz7M)?{ukRL8m_} zW_G$$Ve9m;qO{Y06?vUrRb+H(Tsfjs^UA)RTq>1L9+gp@d@8$j@~`yj6jJHhDY~*r zr^L!vzTGST@$FlA+jnr~W#3Vir+w2akN8fggl~T3cfM0A*ZNjge(r0l{Mh%s%9*|& zRN8#!RhIcKuFUgYUYX(hRpkiZ4V8U;w^S;=J1Qf6QQ6J+V5O(;Pn9mdzf?Nj1VV~EPH9n22w)nKD`r5~(YMGCF)qEfCsu@0Asw_Ui zRmDD$Rk=R#RcSt=YN$_gRkF{3szjgRRbf6URet($+QTQes-;gsRU@C0s#@==st4Zo zsz1G_Rh{?#pz65yysCZPi>tPKFR$9@y{hUQ%h zGQCe!jq*NQ)!+MKm98GFiuS%$72tip%FFwoDp&8?swUpAt6q9FHa_-hZoK8?V!Y(# zZv5HH%XrAk&sgmhXx!`-Zd~mZYh3DOFwXVrVVvgG*J$z@Y%KB`Y0UOYHKurF8V7kz zH1_Z+Fvfb77=yg3j6PmAqnp=z#%5l#jITZC8lQMBGXCYc%y`*zrSY`q*T%!18;v!d zTa8;hcNo9+gmIbYe&amPqsHl;Cygf0v&JINi^govtHu=1o5n$&_l!L}9~)ym|1$=8 zzBKxHHZ-|;HZ?W#bT+;2*v9lv$M&Y%9lcGzckE*NrDKrkP{(jnb;nrK=8j3G)g8N= zmUQf6`l#bT(|a9HTiX@GkJ8VXLjn~U~bT%x%t2L zt;~1Zw>4jF-@$yQy^r~5`z~g*4>E6UA8uaLKE}MPeWH0@dtsi|KG|$)-``x+eu#NO z`;q1`?Z=u2v>$JNt9_0+x_!PmpnZ|qvwfM_rM=PY(B5XQ^LW?%x5rHLb&omb^BxP# z$2}IC_j-J0-sZ8=yx!w$^9qj*=8ru#n`e6bV77YfGM9MlHs^XAFsFJPH4pYUVeaX1 z+8pO`-W=@lyV=L%nz@a~O>J{Y@wzE34?Pz`O=3{-}=4ZX;7GV9=EyVhh zTZDDDTdegvw?yk2H`Th#t%r4+ZgLew=`=%w@jWIE3|sJ6!dc{Sku~Uu?}hTgSBUyoz}QEnl-4+UaNPTgI3ozN3D)+ zj$7+of3`k!J!`%0dck_$^>^zr*Q?e&uGg*KyWY00b-ic(%=Mvlp6e6qG}mWVqidbD z(Dk)7)3u>(q^qN?uWNIg!PVIo?&@Omb8TyLcWrNL;p%Ct=jv;F;?l)-+ohZBl1s4d zluNknfJ?M(hfADoqf3(Q3m0Kq=+eVB)1|k~>eA0v>@vuf<1);a;xf`U&?Uw8mP?u~ z+GV`0n@hH>qsv5FE0@W(MlMrq|Ftf$-ECcNyVBZdJKfr1JKS2@s$0Kn+thl7ZB^@8 zw#BXI*k-q$XOpczww1MBY@5`2sV%kj=eEJESK4~C{>m2HdaW(6^#+?)>rFP7)>~~3 zt$(mRZ?)5Qzg3Oxk5;>FXIt&F9c^{UrnNe1+tTWoZFQ?twk54j+dgb{&h~bz3%2rB zzuWR!UA3jR`qMVF)lFNkR)5*zTHUt=wR&jtZuO7Nwbj2i$5yqrx|T0&4_dyqU2ECU zey*j1{l}I~?P%G;zO`jb`|6f1_9ZRd>~mVW+uv!~!CukQ%bwTL*Ph8A@-n_;dbwqQFhmsv3AFn3HCZ?gZ+WCuwQfTVL#`bZ2!@@uU&KQZ{OlP$iCWn zsC|j^2>XZ5qwQ}ykF}ROr`z+K$Jx`Jv+P5hbL>5xC)wkiC)%L$T3|1AT4bN- z^r=17X{mj%({g)vrxo@Xr!VaRPOI%5oz~b}Ijy%ha@uHr)?$qz%_HSFjzOuz0`=S>6?Xy}Ov|C#ou@|@a(Vo-dn0-u(llB2EezuDiXY7$J z&e{E2oVT}canbJ7;&*%f7FX?0n_sivZhqZp8(kxawG>ezDO%vt)rUrSnsVdJjeM=s0+Cx@1?I|}k zO_pCa?IS;F+E31EIzZZ*4wA)9hsd0!!(>X+;c`IJky11rEhC$zNdKm((xYjbbZVL* z>o*-QpESvmx0_6m7n|hBlT9YdeNFP@wkG*Dc6LS?Bn!{M+$8dChUUJm)w=9(9~4HOE}mE(tUvExT_w&PrBcbqRv9T&)4$AxmN<03iGaj|^M@lzS)xI}h!TqfH)ekPqA zKbQ3#SIDOhU&z}IU&>1ktK>fv7lkFQH zmrjjO$a;-W$|sFZ$y<$nmKPiSB2P3rE%!A#BY$XgR<6_QvqtCSyhgvu_Zpp-RgEsl z$&G%K;~HI*!x~+Zz4VH2^t%jdbXj^gx*}Z~U6l@c)i(S?-fwtKUTyfNJfqj)hSz0v z!yEG3hBxI(y%sgRC1*CgEvu-DvPoUeN1UgGX|YUf(r%EWg%kX@h^{9KGIY@I;pDmDk{@Ow(&{gMVcYy>*NZ(7U(sj{tIc+t5B~@y++i3 zDf{S^s8^_7zV%b;id^g60njb5AeTBX-wy*|*(u2+d(xq7AO zH9#++SEOG4dU@#Oq*pz?{(1dc-qPzgy-w)0SFa!RTC3MGz2@rmu3nXTgtC#YMUccydNUxo*UdV6s`a-XTdcFUuPMY;9(ktuL zb2&<{zIqv6)ygovI_uT;)ic>tua__XlMnT}uGg%*7- zNU2xZ%g1t}Ua2o1$w7L(_41*N)~oBwzhwu#oL@eW4PM@tPhZ@Zf4#UTFX?sa#a+4o z#T~g#uk|nflFMJ*mh<(R_TrW_zPKq1^cw%-h8+Ilx=eoYr%cc*_{BBp^WqQb`r@i| z)a!ZO75Sj(0s?y~fm? zkpt>ZOSSG78CmzU>{541deohiE$Z~wOWkq#&+}vQ=JTKAZ_j^}$DbdSd!HYX-#T+vL64ALP~A@8#**t@3c~7P+f-v;4MplU!N*ja*c_QO>O0Ag#6Q<<#1>GP`z- z99{dh>|gtpRBBhrh}tiuU+ovty>^9cUi-Ox{p>UO_}Maf^Vt%4;n}D1__M`w&$C7H z`)3Q~nr92-vS;)EkD;@UYwG*M_)k$V5D~latI}PAvF*~$M%ULS-7y1091ulPdA%Wky5YMk!h~*b7#PEMCMDaf? zu=!6HSp3@y41UrAjn7$#;L{hv`Gf@u-*X|9Z?_P_$1D)}+6%$_lM6xoeG376=>Kc7?J-&@-tE6wfTADr9H z-#)jEFEO`;KR>&PKRheRZ=2n~ubN%Y&zt=pKWBE8modA-dosJkyE(hSyD&S;OPHPJ z(Pk%k!LwsL_t_Di?d%W_Jv+eDn(gJCnC<56o9*Onoo(Z-&9v}lW*T|@GxfaYnOa`? zOchTsQ^ET(Q_6cYQ_OoXQ^-r1$>Sx?hCqjo_BOQhPQJ%iYGPA;w?|ndE--5 zUiVZOuWpLWE1DwmeoY1OvZwrc&!>EOcc;90m!|+vO}X+Sr<{1?DMucD%8rMdvf-Ie zS@H~~%y=qO5bwwoiYGT^#M?M!z+0Ns<&8~h@wz6}d3BR2yuwLE-p|PsysXJ%yyufg zcy}ic@-9v8R3_KBM<)MrN!j+u($Xy=KoG^}gE3of%9s^5am0=jId1Ey z47YN0D_1-!#myO&;AV`jah{B>aBht*a*{@8Ih@f+4r6qbLmVCCc#ZaQ97a1iCZlZ} zz0oF)(r6v$&}bD$cC?JMakPlDG?K>|8xe52Mt*VXM!s{3M!s-sIL@tMdrs1@6^Aoy#$gO&IHY0l zhV`%k$8lJjV>+zP(H~akC=Z|D92u79$PFLjNDlAiED!DEj1O(+^bBp`Gz>{{N`}^R z{tT@qd>&d#cs(?i@L*^%A!TSZA#rFRA#SKAA!4XKA!w*M!F{Mc!EUH30W(yVpfgmM zpfDs(I5_ktVf#>Sg2d3*goVM638RDW6FLXqB-9Q*PbeCEobYQfEg^d_HQ~kJjfDGy zR}!ucCMBF1OiYLw$M(OAkLZ6HAJqRe-lP9Pyj}mD zc&PtIyl(%Mc%}ZN_(T0?;&=3O<2Uxl#xM7={J-A+#n1Gv#0~V$$F=rO##Q!?#O3w&$NlK-jQh~r5|`dvA9uI6GVXG3 zN!;n)ytwFII4-O=H!h&}OPpJ8R-8@m+cF*j*QUqq`#ZLU&PYLboWE(fvD?)SVOS)BQ0P*PRh- z(fu;ksQYQGdUsmvf8DoZ_jX^4mF`ZCUDtg!cD{=nJJJ;s+u6m8t?LSpE$#}5{oNH9 z`>D$(_H~zA?87c>?2Rs)*b7}|v79bcEVIiXHl#}{7T={3>(q53*0SqJEV64~tY(*7 z?1`?evHQC=#>#Z9#Yl85#VmHt#Ef;0#dLQL#58nv#gulo#0Wa;V!n2k$Gqz-jCs;2 zjJe(UGv;FF*BE|hR!n5)n;1%GdW?VP!x*>DJ2AGMDKVJNi!r*Li7`r@yqLqCF)?zT z%owT8@R+|Hq?oA=|CoUeub9>jmzb&!`1JFy=*vPE1;dT1-mE$(VB; zM`PkU_QlXU1`l9!DbVSQ^G)7BwR7Wqh zmqd@Z=SBCl|Bh~K&xtN?&yE(gzl+Xke;)n5{b6)^`<>{!?J3b$+Al_*Z9f|w+s=)S zXpfE#Zl_0kwNs)U+k>Oc+I^!9+uftp+p*FAwcAARYd4MF){cx`->w(E*rpym)}|2M z-6kL1*tS2qtW7Rj)V4J`r)^{O`?h~k>1_*9ciSeTuC@(Foo(xhifwC+qP5jU5!%Y5 zyxR(+ux)}Ui?$z8Ms1&>G}CvqtaR(qOP}EMxAfPL~&XXQLI+2C~~WElwa$AQ7)|q zqikAtMWI`_Md`LmMk%+hMILEgjNH{a6}h=}IC8C}J94h2C33i>HnOv&EV8a8KeD9d zPo$tFC-Q4cc4S7&+sJ1v&m!-%q(xq7xfOY~0b8;8Hv4e%752{N^XyH{Jodk)81`%voju$X%I<6mWY;%&vrC(t*}^6}c21KS z`$Lm4`+1Wt`+k!e`&!cp_PM6R?1ZM>Y-ZCoHn~ZX?bq~=<=V8svTd4Rfv*8(={I$< zRGS)E$C@fxdz*?_+nNL{iKZW{rN)n}iN?3A{>F4xYhxO#y74Bfu<;V>cVi;!b0dfK zwlR|Rq%ne(+DKwuZuDcFX>@1BHey-yMk^Mn5yQea8nB!jHCWb-iY#>FQI>AwUY1JZ zc9wjj6l+i88dJJ)k-5HclDXJ0$ed{CWcD>QGFuudnNG~ba!TQb2j{0@Xy80zXN&O^4SUI)e+>S0DweGY?PpUH@-f5o8IKV}5i-(h&yUt{3vFEA|Yc??v2G()GJ#!#*g zVH~aZW9+GSXGqsOG9>CP8B292#$=ryqrXm#(N=eYQCoMAQCzo^A*kER_*S=`@u6;+ z{=9CQo>n(ZzfspkPpWI8^Xn?R!>U>mJe3b*Xf{x+`>* zx^whnbzJ(sx=6ZA9hJVZjzIrgi>J@jy3mJe?dYAgru2qdBYIh_7F}GcM9;02r+=*7 zOMhJ}Lw{T=Nl&d^rCq6=qn)iCrN!6w(wMa^w9wibT0m_v&AnDgbEy4JGq25}A!}dL zv}+&JlxpwLj?`YI?XEpXldk2`Bx)mR%QfM&sTu-pu*QehQR7UjtFfh()|k*lH3-^| z8ckYujRNg;&0*T(n%%V28fn^<8VOor&2mIS&2$8-W+;ME(-{$1(-7fVQxSo!$&awC z`4xex`5d8J^DaWACOzU<&HaddHP<7y*Ca(q*6<@%tD_@kt7#D<)uf2-YTt;aYS)OW zYP*QSYSV~6)rJvYt2HCuS1U$5uRaoyR=qpoMzwUr#cGL&)78t=*y<@Ny?T%uQr$uI ztFEWISC>&8s>M|E>Rc+a`Xg1l`VCdN`UzFO`VMt(^;N1&^*O3!HHW%d#iq_yg;7VU zf~Y-JUex9)9JQ*-ids~KrovTv)NfU))Xb`5)R$HJs1K{QQ*T#EQZHAnhM%pP4Ns^V z31?Mxhf}H=!-J|S!o8~U!=0*rg*!ors;gTkjPy~2kovEiMSmf?++sPM{4-SC1+E3?9!D_@1#Rz3_fsk{|tSa~T- ztMYW1Vr6XD(Mnp_o=Q@fOr>v_WTi{kzY5#1xe6$3tim9yuR<-Xwc>bKZN-7G(hAuy zafMV^ZpA9)Q^hRhUBxgZy`qb9zoLP1qoSO0u|iBaQ;|!FtH`D>D_&736^|%E6}Kqf z6_+T^6{jgS6|oeP3L3?*f<)1(z*CeeoGJ1ZHk5r87>aC#K1HfRm9kcTjIvO^k1|m% zLm4RFKNlq&ZBi}3wBwsG`ASaeNkU3>${oVx>`}IZ zj4hKQTa~SX?S^MU5M@IlT4fy}N@aB+@?|9<`^y9&JIcO=Y%Y5rvc4=mWV!TS$V}?Azw=|A(^FmA+JhRLY|b$hukgQ6LP&& zIwZMteaM;8MN)j}7>QllLkcf#A`wd~NPeYxB=^!>61Fs(WL5f-1eHD@8J6B4X_Y3C zluLP}W2KR#1Emzw&e8zV)>3!UhEjXdYKbXnuEc;eUZO@CDEW`nS+bARSh9^&RU$zu zE?FW9OD2f9CB4MYCC$Y5C6&Y%C3(b0CAq{qCE3K3l2^p!k_W`oB{zuiB}qhf371GM zVG~Iu6rz8LKhdMajfg9;BifWeMAH&|BCcBVY#@BFjFidj27n*`iegg+KbZ(4aN5emBm*HMa78(VR1Ymx0p`&TudUo zFZLn4EOsJ1F194xD>f$FDApoeDpnvQ79S*Vi+2#BizNy4;=jS6#Z$pS#RI|k;?`id z;_6_>;(}nS;-A4#@yB4p;#a{s#Sep3i*E#&@Mo=5DGY1s26awP&r_K;gNuyg*yYb z6>bWUDqQtnS2*pzQZV2@SJ3J|UQp#fSdj1EU6AYFT9D;mU+}`evf#ddaltizaY3U0 z?}9l0oC2Ev#{z&>> z-s_*OkAm8+S58sFR_P%%X zA>SMMdcIfkm3=SdAMrhtFXzk2m-3Ct|BGklPvWWhefW_4W_(b7IUb)c!h7WB;GOa_ z@b>vn@s|0ic$55#c;kFNUOzt)uazH)SIPIopUii`%ja9+59Ax;cjs&2W%Ezqx8(1~ zZ_Edu8_!>lU(Q?bnadmTnau0-8P2Qq>B}qf>CF4>(~|emr!Mc6Pi0=3Pf1>iPkvsa zk03A3CpVAg^EEHnCp*v6CnL|^=T)AG&(l0Tp9gu$K6mmC``pNr^SP2I>64VV;(a!6 z!kd@Z>m8fd=*`Y6^QPqqyeWBKy@`2my#w+dd;8?w^mfln@^;GOc-!YOy{+;{-llmz z-l#mRHzLp6TPF|Ut)8dmt&}J4eLQcM_mRBK-Usqly>{nKd&%bYdu`2Y@siA|@LHEA z^7<>z@mdgPcuk9+dX0;3dku+`y?VtwuMRQGt65C;su$zEs>C?2Qn7_sf!NSXC|39S zEk5S;UA)`tvv`YFmiV9NJMpyVOYwl`Q*n#uLve-YU9s5nrZ~s*nmEJrqWG!jIq_}J z)8b@Lj+o~eD`t7J#UY+FG2SywjPoRk%{_y}2v1+Jny05&-qTgQ%M&Z!>}e-n^{^CA zd6q@>_rGSYmus(x#*}HB--g_ERu3Vh*n&6MU$?YqFz^3 zQKPG(sMPhi2zHeheRe%0dhNPT^uTqOD8*G)l;|ogign#2qPlJr1-h;ixw)e48zbg31JT`Gk+E~UZ@mm=X4 zmptJu7lAOz<+qUI@Tg>5LUFJJ}1zoUDaiP8PyCCsSdO6Gr&U z2`S8WLI__t=?U*SX$dbosS8gzsR$#T6osKq$A!L5@aBnZ9*xhEy5L?lyDrkLD-F3C#=V<3W{;dg5S6W!AIPz;010wxPluIoW>0b zqHukJP+Ygb7uO+h!nF!4a7_Y3T)jXQS0gxzs}$_Sl?kM9#ex-VfnXdf7Ib3;f_m(4 zK`}O0@C%zG$i{vZyuf}E+{0!GE@R&dPGR2)BC)Roq1fjFU+gmh4*OVOj(s3NVDAZ3 zv8jS1*joZQ>~(=8_NrjX@seQ7F%cwSKFcvb+`$q9Zs@&s9q34-U2v4T5}(Sl2k zYysbqAz(Su1R;*$0w2dv0oE}@VCqN^=sN}plpXyAhaB+&Sx0Zd21gIUqJx`Y#KBq6 z;eZp=I5-IM9qa@@9IOQ&94rM-9n1u`9ZUqt4rl?#!C1g>Fcc6S3(pn7l`cl3clIz7QD0HDR^Wr zE4X1VBRFR-Er_$SsxJ*zb;DQfI^i>R?QoP`D@?I#hJEcCVJEwK z*ut(BM%Y!us&}YzyHr+kCjwRt(qL3gH4<7|yl*4QJZ^f}h#u z!l}03;bhxyFxU1A%&`3g6K%6$FWXGm-u43w*=E2xwr^nt+t=`Z+n4Y*+ZXUU+jMx= z<|#aA^B8Wic?4J3Jb;BZ_u;QLci}fSci@LMx8dtHH{nE^8*r>m3LI{86%Meu0=w8; zf~{fm}E_Zy{)ORgLOD;VoiZ{twUi&YchPmngq*O6XA8%!SI|_ z5IkrV2)A1K!xdJ3u*k|6{%Yj|zqRs)A6j|A*R4F@L@ReV*2)bIw{nF8tejyND<{~> z3I`imVPSPE2Uy<99^PeT2TNJm!Yh_G@VKQl+-+$I*I8P?MV999PfIg6%hD81w={w8 zSVHhcOEk>0M8Ql;W0+)#guN_{U7_vmbx|Rm8f~7uuz)}z1W~mGR&r%1Twa|tK zEVSSj3r)D(LIW0BsKZ|@)ZjN3s_+A#6blvjtc5ZhW1$3xSt!E(77DPl#Yx!0;sk66 zq-t>-K5FqFEN5{Hmb8$Em(1niG4rEvr}+`M*8DJB0F-Nf2>xJx5PoWY0KN^BWWFEf znD2w>Km_x>u!s2`*bWG7z8lsu-vyrl+H1ZO-U{^3Ob(tl+X43hHJQo6r9iORcK8#} zOEVexKF}4jZSZNJNHb|T6bNs&6~+RYnQejfft1ZQ!-s%mfh5c}!3(CF;9*lKxDBWZ zNNg$z=K#F}dThE8z5#R|D9&^POa%%Aas{$Bm4J~z8bHT@cA2h+Hvz4ftcNFnx`FCV z*1<(UKY_A<(t+*(T?7K_^-%A_&L0Nr{b8`~AO7F} zzzzUF|5Bt)z&--d%CY?>U_SzA;p0h@{@FEX%3R09d~^*OuEm%rb*({NBzu$8nl-3) z-qYl=XbloyAewB=2Kxc*W17f4ScC4q;hH>6T!Rvj7frs0twCNTsV3goHAu@h-Qgkd)o#|MGn5g?66677(X8Lx^5;P$(Z2IBdBE-Hq zZ;G;8gnIsyFmvf&fJ{DaH=E)wKuM;D%=YbFfO0F9%nIMlLrnqtX6rEXQ1`g0nW$_I zs^wzMw&CZXOliDXXWuNuP9vM4XtU5!l}I!B*%|0l&MC92F*A^c^%b+k#c3#|?w*-M z%rw+UcxkqEW(ty;{%H1qIt3j#^~daM&m^={rqs;KYZ97FYcxwNo`ABH`^=1x6OjA2 zDYNKT<4~)`KQpx4IAmG9#r$&o7<4^guQ{o66#6}S+`Itne^45yW&ZK`2$U;{Hdl}s zfs$|9nja4sh79FB%-`e;L3tU$=HIsuLE1)ia~I+ul#rKT9{F_udgh#DepGS*dewHz z+|9KgN}@b9mwVI)S7EI;h~!Ym0*Owa`hMFBU#&HIQ4Sz#`^-HRR@1ZgJ#S6?CGr*#cKw z3FVOoEVkBFK>8Ci7EW#DP-OJ~EaiL3pfjt|mht_ikbmNSOaFlqXwy~&%d);=h<{zj zGQX<`677X7?OF<eCAp%-4;Qc zj4oRKJSBu0ex+J&p$H(lS-NEp7KSSGGcB!j{y>X%KP~lk{)Pt13oYMI{e&L5)LCYi z{}97s1n%1ZO(Hz==br`7Q67w7;{-b!2e8Pe-l zvs!=U6C@jIWEJ545y~90w6Zyv4atVPSmm~7Lb{{=R=JNqKzky>tt|cDL%Cxy;MOPu zI!a5lTCI5tS&XMxsa$#kDbgNV^+2zoqOmttO4BbP<%q9VOHW@wHlso-cieO6czA^s zdifcYJJe$J@!3;wyg{pvHcue={#h%`=p$%^u+G}!%0r0Nwat1(^#SzB|A4hx;eF^s zi-PrF&^;*FOV?Uw=?+v;3t3BDO@(Hi9IPqwx1s7%FKe%?n-JNCWL=HE0euoNt(yx| zpf4DnHO=`NMEicx`dY&ks8#olH5z{zT6>>v9n*RdYEaCw#^947!qcDDHySQL=?99e zBc0DfsW+UtSN`7(NYzPzPph2%Y{=*ros39zN^`nf#TuC3)hZ zpVa-fsB7L(N9#%3XJSw2m4l9L>ViA8>nFzcfRY=esA_Mk=HUXh-Sf09JM9D^HW6+A zy~RTM(G1()RSr;H565=fydAX9IoWn(uPwCt>$a^o!WufO^32x5%@TT>`oXq`W)3me z=i08FH-#D_3T)p!fS``X8ry+PG<43q6Ht{gRP=t-R;I!T%GkSPyWEU`)J|`-i|*Bj zY=?K)ogUGJBwUZ!9iG&NymM9T?4~s#yWn>x3%wZwhCpJ**7DUcPpZ zyA`2>e?sjZHJ*fIPe$2klpcp3UOa7w{dEiyO@~RzkNg!S{&7|e={ZlnK&5RJN;M(?SE%&pPaac zIkVZ#-pyeZ!yyOSXYW|SNaj)PpVls7j{X;CfBg15rhs?O-q3Xx^SAlBeW%Pc1~zzP zf1q#zv*X5F`vKkIuUbM;iuy+(=!-9YN2Do z6+Y&EcCBM<0|$ef?{wUDG#-)&3OBW9DJkX6jQ;orByN+XZ`iwF1mzJ@dIYUgmP!bm?VSq7R zlEbyj=wjHKM{)CewJ_UBs<_uj)G>SRBXG0-sbJ2Ro8wweC}INFJK_9JoWP{(`{Lq` z9m8NlLvdP%z_+5^kHnqXbr929atcS^vJdn7?`7P=>Mo3=`aRsii5-~FzAtc1Z8Dg` zOW8QR;;k5yAHQ%apEqHS3>M*X(>7uPcGu&EPOZmmH0#EFB&?yg(Z+H6EdHY7?k(dE z{I`U*5=%Petj?jM$K{-6>Zj3C`;Iylzn?%any5Nq&Wxh%DF`Q=+Yov+#oTH2ct2Vu z2j^rn)s5!2e1uO%T5aw)o7jDcb#Ug zR-kLXJ$JfdUy815%5uuvScFzu`RSDQD-Yd#u*hjUTZkSou5K))smJjH}@x#t(3h&T=H>)^H6}>{2oG@^f zqdZ4XV$7U>Nj^n~d10M5J$r~oGJTw#qQ?0~ zb`1KSdxtYoD-vxUGUD8j!9b&;7o0~GBG8HFBwW%TQP2l&ZFgDO8G>GYdeCM5d@x!g zQ_r-Q^a= z7G1TF;PSl45{+NG;Nq!hhSrq4#N|~B5}mmt!^KhufyVF2ak+3_7mYh0 zcA++EqLU9-y38x8p*PF7x*U&ELRTCcbeaEi0^Rc8tP6G1F|^w8|G6e%52FSDNxRzI z*pI${Y@h4t>__M=>XCT~GM+->9fRUnBL$-23EF04nZ zYz=gMsIrEt-avIt#;>4qS7TfcUR*%+%$;?0{W^oPAG_wN(>Z~f?n!gaks3ucG`(`| zRU1Stmw$5ohU-P)MSoni8J(!buO+T7S6fjvZyH<=zHLMerS-U864jzmS0-GaHCLjF zxGS!~6Q!u@5n%V3bw#LKzB}ETcI2U|?2fvn92KCf3{~AGRequ7P9WTtbibq8WX;{) zBEO*iu3+6ZK-nnQejhg})Ay*ZiV(L?CT~zLa#(JgF)vV0z!z0*GJ1-tx^U4gOZy?p zfR^eep>z*b<@(HR?ci#Z25ilh78dB>@!l)oq3t5(UV z(~Vm0Rdoc^lTRpj&bt8A_!S%XS{@!1Ms{;=#Cf82ngqHh9dShs?WMZ+4P#NG<1y|N zpY2cw^Uk`z zM^3T3(y|(AM{>RUqiiKqidVP0FysWvP;uP-)_!@E)ZCK$p5lY3Rl!CN%h!6a<71f&D(|?m$7JLdlI+@{s4X8}lB% z^_bk+Y@Fox)q{Db&iLaYp~rLiD&v*rGLPg}rN+d&O&&+p3XO-|`aH-VM8?--r#yl+ z{un!#{PmE@_+hMlZj&cX@vE^qW|!xwC)vhU^G7``_P#fcf3NEK^U`bMA_Bs5U^U%X zcfYx3Uc_VLoHDGZXUlzK&(l7h53N#-x9f#?-pRaf+}X$UwAgdSxHy&T`7%DqxYR1y z^JnW>Umz*-T1-%&0Z9alkr1nx0i&--Z-mA z-pf_W+PLn#nwO8QnX$C8q1V1-w6SZkx!2WvL*sX0IIrAwdd54q;Juz8HH|O64)H=W zRg8C7vAnLoIBEQ$V4vZ&IeD9L zK+iX?kC~f{E#gI9yJ{tj^<*o&wC4XIHD5G)ZQQer)Hmw)x~)5hv@D(S>cCDS1N>LL zddMTlGZUM*i1gTiWL=2tUs$MQ1d zIy0;{y`d24Q|j&Q&@MvexRbp5x_=`NwllnueczFZB#yU3-)H3H$OZ3%J( zP^7WDp3mV=1mvd@$fxqMKT^rm-p7pSjlB28!za?n4JoA@>_e8uAsJ~AJ_p)tk+srs zK3CsaAa%KkKB5>1d3p4j&v#QKvco6Mhp|~7sap8bXRuro$<+JkbNq%1GV}2-pQElP zk$szseA;)&Bjwn&J^|$ikcgHJpJz$Ck*;PVKCew=k)+r2KFs+oNb0ur_|-QXkzvej zct^0$k#FrjeBhQ9BXffjc*M6kqa$}T@zp_-Mx*mcy!Mt6qYv&@c(<%RBf=+Vupw5b z(H2=h{NP-(QF?eN-sg6mk$OHGe_f~2=*>|+{z_S~(eBubcw9)H5wqepzTxj5qhBYV z;!j@xVYC#Vfj2t-#prm&H~h{|nMSDpMEK7pZ;i|%%khUwpBo|an(+4SkB#>2?!%k4 z-ZSbaOybu9Zy7zwUcsO1xoTwfPtv!VkZjawE9X1db=Ju3)?wd#Kb}!;o02cJA=XG* zLC?1p%Qmu(fP8m}BaFg7+4=59gc`*zy8Cv%3O0&B1^Gtp@iVgHQ+;dBcpAwFVtoIO zIvagoch+~@&B4gt^r~;h4=W=v|DLbz5mTdMzn=S^=NlW5mNI>xx9b~S(aZI{YOG~+ zkCyLima1ZO@l}L(l?F;uH`@Y|`{ zZ}@h_(@%%eX}C#&;3xm0+0YzE^J{CbHS~>%^P}vkFm!&D=qI)>GCU!^<~P9;8CDP8 z_Z!aqW#}jU((iNoH$#y|wjXZmN5c(HKmC5_XBZx36!^`9{hfAStM*%;_{6X`qs_1L z)qTUuMT36Vif$Qh>znbD9lB~rUi;@qkW4nbyKjsCg=1$8pK9&)=OMX*7vt({{G z4gFO8dq_;fJf?xaOKiBI(m7NATS+9tz&j59Z&CvcBVK#@-+1P2h|3A~$7Q%0ZY+rK z@BHLwc(pdx-|D-y;YjCMfBsKX!-Jz&{jdHqHat9k&!72I-*EEZbAOfZnue*8S^nQY zDI0Fvmg|2w(hACWd1 z_8wUE-|W1GklMc~z#h4TSlGQYfOKpI@ny%608hy=1SG8-aBQd_k-AYYKvdL;_`Zq> zK)-HAyq>iUNJ*?k1P{9f{PHhH^tT6qH=GI)`qg0pPo;$jtT-ybr!yC!{pD1^X!aLG z>+?$i-lsDWPB&8no?zb~E}wcDAl#phxK7Oo_}%>g;p_P=AoWcuV!}iiU`tCu*eI6; zG-_Q$kYyVK%%{#G9OkGxtl#z`jP-V=$yq_!|b%4wNE)0;$u zL(u-fMk{|rF?1r(VbK$@^{{5(qgT#|?Mp_1e%_7}WI~3MzUeHaPxVG05TY zZv$n5PSB@&-wX!j(Lt*_vkd~;tb^1pzcsjW*ChyA|J;D>;unO7erT|LYiQ7}!Bm4_ zAuFifGsPe*mK(&)OEyqaPYT+qebykY^F|QwKF2_K<6%(4x@dz(=C6bHlIaE-GarL6 z#i0hwr@w+6RD%u3*uo&wi+F?W%hf@L2iy$8p0@>cn_>;39S4K1-nTZ;o0|?gK4oH% zp0*nF#1d&BG}#m^c~{rqMz373`=FY^jthr_uNWv8KuSu%nP-j~94gca{!zNm;B^Q( zIBS=jLAQiWaEi}XgW|_7!T3iT4E&LP!8hw);V5cr-xxQ9Mc5u(L0{!BMpTPrFu)g$4 zesIIT@A`}9tAf8Mf6~9aqc!-9ONM^o{r+H7+zb78|4jw=J$$5Z@Ma~L3*XTvYe*6{ zbfxHHKFSi}*OK*r>K!C>9z3hx@#Q4Jz<{Iw3heI1!A9xt`ivxeB+~RxYFiSTV#)f= z892h!#Xx;sMIXZQeQ$k@Cq%;RYZv{}y>vp?XM6o^SK|nOep~2ItWP9d%SY?8qpuQN zN)7by4&Ehfs?^l?_f98dS1IX>3*QqQtB&ax8{~iwA0N=Crwa*z#XI#s$&?WqMbi4I zu?+-^+>QEsySfN3vi|8IY(@zy=?i)@@8=0twta$)XVgAX7q>#a`}2XIEaXz`>j{{#+Hbx|E9OL-i@gHB}=c= z$DerY#v47I>`>ySh-Z4*l5FCDWtv{0H<$S5&@H`%cNd5$Qkko{&eJ69wu05LFN#Ui8tszonUIigVSI zaq1;@?r_lCeQTVUP;H@?Rli7-yN=fD*egML>1d$$#B&?TV3Vfa%N}=v6@=H?7 zMuDzhN*2lQ$#>l+-+quf4L|DA+QcMM#arFNbrqyhLb`6oi6&Cie46e-s~*z23%7K4 zg^ZC>c3;uGlej?o@7X!sXHVCKd{g7;B7SWRasCpm>(;P4WZampyF76;Bn2kxDoUw@ z7?=m@wj9z6=@xnE?$ySG+%R+2Z8EnBvH4@Gd(7P>WCPMncY^2}lK&B@YsL-39By?9dhH?7J#SCSUxnBYjquT-1@R!;3yZHqd>mLkm4Y&Psfy z)9R%`)~~&6m6 z$e~G89j<^)b|@z5l)T`QF z)`m=Sr<#GzosJx`R*;5{-ghDS`b`BL+v}xd3Goq~I&wYv!t@@UMpP&H(9!KWF0#X9 zk*$=DY4;47!&=jR^>LMKb8kWW^l7P3#orU!m00k}%B}(JTL%t?9$DY1UD|sh6mhIk zJNCUsC=pYseK*oD^o4h!whGcLbcF?LYyPtj4Y`=3{StN$9eA9jopL%Ll=JDe_OJ;h zR4MO?_Sb)`(Bay<+A}{mp`z{-?I%&^LqCouY5&ql3C&qNrES-LFSP!DaoSc7(nF=C znA+J+??b(}QnW8gd<*@vEl9iiGaQPM@zzcv7KheJJ8Qp_s|`KB*;d>5Pg|(d22*WB z*g&ZMs-gCiol~K@vs&6wxyzvrLrU6Tf;Lc2waRM;Ny<vHntS4k@4F=w#j2XSs${c%0 zS(JIK)e`%Pa=bfLi@H9WLjQDCE9l}6O6!^PT0dmP6p9m1EB1C7W#6G_t$X_#C_{Y_ zT8Hj;Qd-`Vv?LA;QzqGdS`K$-C`yLzTJyVBDQA}*v?Nj_!~U0Rp~cuN8}=*?r3Ibd zA4WFN)1oc>7v?;rsr+pAI|I*r+-D_+r?0ex>Hw z^|!+Eju&di5FUo5=l{{n7rqR8Oa7+Gl+OxlmdwDXM>XDk1>g6!Y-{G2wV;jQf90;1e zv~A&4O+K1U-}i(!6J0bjB;>=lkK1b2*(-;$qf9m3Z|H_~LW$CLL&_z!8{{C5w zFM@O7uJ}<6?!wjZ-{n0TcU13&`wxYtF2hWg0Q z@Sn3e8f|;>!(IKdG+Iq6!jFhwX{b^f!w)Jy)+oBx74CRBRpaaD;qXsmS2U&@X2KmE z&uMU${)QiV$I)=zFG-b`iqwchY^VAJg=>ts?xPle57u}~J4R*5`e=N;ph9&ZIcvx~ z)};pK*l1*bMp55xHqm%eXh~J`MrbrQW2yZwH8lK3JgJS-CpFZU1E~_|!x~mnVbqXw zyENX&v8fWJTQ%Gdai~qQ5*l_V&QXV4m(?$*T&3#Wo>JeYd54-)JE-2Q{e&7T*Qq|C z^M=aCHmE!3e5AfjDp#M-%%vU@Jk9SfUOdNK$WTUmsy<$yXmN-5Svi_WDDA-xcxaR)l(8 z`r(M???m;i%L)+&ZFu!Ewq`{2KNod1Z^MYpBX;U#DANcab?|cp_?TM+5#XHF zz_~|&YfuB%5&^DB4P09UxJET_tr6gw)xfn!fH6=5V-W$yL=B8h1Q;VVFjf&@%+$cx zMSw9>17jHh##9ZAEe(vZ8W?LD7;`l+_B1dDYG5vCU{2J)+|a-rse!qofjLtHb4LSn zs0QYe2If=^%q2w8LkB&i3VMkSdP)`a z79I4MD(E#j=s8u;dvwr)s-PF?peI#9Z_+`Js)AmngPv6dy-No@tO|OW4tiP@^fn#z zxGLy%I_P;-(ED`Y0V==?=)e_0Iy^K&r|{4$p9Xz0=$#~JXHmFD+73}3h-J6@LUz( zy$s;ND!_{wz>`&gH#2}os{pTN0MAwi-pv3Wt_-}K0X$t9csm1lyfW~52Jn1k;Qb7c z0m>i?7$6grK{hZzMks@97GF2I5D-&d_63AL6$Xq3my-bk7N+64wAd{6q zHZws+D}k(Lg3ML|+06tQt^~522{K&?WIGdNyb{QICdhmxko`=+07`%bn1BhC02?p? zBPan@U;<`P0_?y9450*Af(e*H39tndFoqIf4JKd?CBPm`z#vM1MVNp|lmMGB0i!4Z zR$&5WQ3CA31Pr4DScVChMhUPD6EKbvU>zo49wop&Ou#^356CqpU?N4pMl8Tcihz|^ zfSD8lJFx&mDFT*a0j5#}Y{deMr3hGy1(-__uonw3m?B^?7GN?(z-BDKXo`T9wjHd`#j|G@d5wIT%FrXq}K^9;_MZktEz=(=~6 z0G4F|rd0rJ%L0t609cm=m{$R?FAFfR0$^blU}6Qp#w@_d3V@Z_fSDBlJF@{pD*%>e z1Ey90Y|RFYtpHe?4VYU2us0hpxB_5tHehlEz~*eg=n8<<*?`#<0K2mR!z%!mX9K2J z0Bp|&jIRJ#pADE_0kA(C+yf|pdjU4MCr|+Q25fMTpzwc|&H_5BbKl}|B_VFa1ub42 zGPqlDhvIJWWM&TT#f!VQNbyo6b7tb65Fzdf2{EEX2)w=TdT*__?!7G}Gv|EY%=!L% z|MtdN!3$@G&Nw@G;SAw{vxFDU6dpKRc;SrUfwP7e&Kw>%dwAgt;(@b>7tSOeIGcFk zjN*Z_iWkl-9yq&r;SA$}vy2zcG#)tHc;SrWfwPVm&O9DC`*`6D-Z*o* zjWen{&Z^!xv%2H#>Wwq3JI=D+IMcf0Z0n6Pt~<`U-Z=BRPHI8(dhZ0(IRwj0jc-Z*o+;q2{=Gq@Yh;yyT&yWwo^ zgEP7t&gwomv%BH!?t?SD8_x1RIMch~Z100Jz8lW^J~;Ec;q32&8GsvR0X~=sxM4Qn zgBgJvW(7W&8Mt9~;DZ^08)gYUm?^knw%~&qgBxZIKA1VUVfNsI8H5{V5k8nnxM4Qo zgBgVzW)(h|S-4?#;e#258)g|km}$6Sw&8;rhbv|sKA3s9V)o&K8Hg)pAwHOixMDWq zgBgh{W+gtDnYdzh;)5BAD`qJ^n5np8w&H^siz{X=KA5?vnJS-D_#<%=1X3ualqm}$9Sw&jZ%mkVZHzLD`_cIb;4qBCZRewZmbW47pr8KX01jeeLpI%D?ehZ&?ZW|4lFNjhUT z>4zDmGiH^3m{~ewcIk&1rZZ-lewb-GW47ss8K*O5oqm{kI%D?fhZ(3dW}$wVi8^C8 z>W3MrGiIfJn3+0bcIt;2sxxM(ewe8`W47vt8LJa!t$vufI$`$ehZ(FBX0d*l$vR;+ z>xUVw6K1u3nAtjEcI$^3t`latewgVxVYcgs8Lty&y?&VaI$`$fhZ(RFX2E`#2|Hmn z?1ve#6K2JJm>D}^cI<~4vJ+;>ewZmcVYcjt8M6~+&3>3UJ7M6_NjqUS z?S~n)6K2(Zm{~hvcI}55wi9OAewb-HVz%v%8Mh;5-Ts()J7V_jj~TclX5s#ri92F8 z?vEL{BWC6Pn3+3bcJ7ZEx+7-k{+OvdVz%y&8M`B9?f#g#J7V_kj~TopX7T=*$va{; z?~fV1BWCsfnAtmGcJGfFz9VM&{+Q`IVz%#(8NVZD{r;HwJ7V_l4-LQ(T7W+^0Y_*9 z{?G^ zC>)?w_(QXBfOg>z4Z{IihCeh72WT7q&^R2Rb@)T`aDevV4-LctT8KY15eH}^{?JGq zpq2PTGjV`+;tvhQ0a}VbG!+MEEB??}9H6!MLvwL}_Tmo>#sOMP05ll~XfpxOXdIx` z1VFQ~hjtSH4aXi@P5?9=duTfW(0J^j^#nlkv4{2(01e0;0nmu-p%n!{ zGqQ(v6aWp$9$HcWG$ngzO99ZB?4dOUKy$K(_7ngO${t!&05mCkXj1{usO+It1wga1 zhjtYJ4a*){Rsb|DduUq$(75cObp=54vWNB+01eC@T37%yF?(oZ0no@gK`RS@X4VPX zSpYP&PSDZE&!TbCunm4(C9irs|$c;*9qEP z05rT#(DDMH>2-p(7XXc~6STenXnvib{RKb+>;x?^0GePYXoCUJ2s=S541i|X3EE)* zG{jEO5(A(qc7nDT0FAK|w8lVaj-8-A210}E1T8WUnxq}H$v|k7cF-yVp;_8Ny9|Ve zX$LJc5SpePw9Pbi z5Sp$XwB0~xymruf1EKlaLi-Jb25bv0I1rk!Ewtf4XvDVAiUXk;+d?}IgobPjEjbXH zvMsdbKxoXi(3%6GIom>e4ul463oSYjnzSvn=|E`Iw$Q2rp;_BPyAFhgZ3`_s5Sq3v zwCzA>+_uoV1EG1_Li-Mc25t*2JP?|=Ewu4KXymrg$^)U9+d?}JgobVlEjH7Z2fzkifFO7RY~T$Df=9pxUV$KZ25jIR2!e;e23~?7cnWObEeL|g zzy@A}Ab1XJ;5`U}2f+qjgdlhlY~W1@f=9syUWFid7Odf22!e;f8eWDVcp9wXZ3u$L z!5UtNAb1|E;e7~#2f`X&h#+_(tl^Caf=9v{UWp)hCamF|2!e;g8eWPZcq**ntq6k0 z!Wv$SAb2jU;k^ig2g4d(j39V2tl`ZFf=9y|UX37lHmu>@2!e;h8eWbdcsi`%?FfR$ z!x~RcuK6`EeV3h z#0p-MAb3u!;5`X~2gM3rlpuIgtl&)vf=9&)UX>ttR;=J%34({k3SO2Vcv`IBZ3%+M z#R^`RAb4J^;C%^#2gV9s7%4n4R`AA1;gPX|S4IlYj1{~yQg~>r;H8nmQ)2~hjT9am zD|l_B@Z4C!dn1Jh#}Zx~DLgrr@a9P2(XoVAM+(o5CA>RQcz7(~<&nbEV+n7M6doT- zczvYs{8+;KBZUXZ5?&xFJVBQ521(%&vV>Pi3eS)wyhBoWh%DhHlEPDD32%`U9wSS5 zjim4#S;BiHg$KzJUL+|zNtW;?N#RklgjY!l&ypp)OHz24Ea7F6!qa2{Z<7=rCkuF; zr0_gh!22YH2g(9oC@DNq7Vt(%;gPa{S4s-clm)y~Qh2B=;H8qnQ)K~fl@uN;3wW)h z@LXBIdnJVj%K~03DLh#g@McNj(XxP7OA61H1-x5Qc(^R!<&whFWdU!O6do@Nc)g_X zd|ANzC4~pf0$wmFJYg2_hDqTOGly493eT81ykk;$$jsp-lfqMG4sV$h9y4=z&7|<0 zng2VZSPBoCIlO36c+$+_O_Rc-W)82K6rMG6c-N%xu$jZlCWWWX{P5y7DLiiG@VZIi zc{7LiO$HB~IlOQ(c;d|Ajg!G6XAZBN44yf2c;{sB(3!(aCxfTX9Nsz^Ja*>r+R5O# zGl%z11`nPYym&Hr^334Plfk2B2CtqBo;@>o_hj(!nZe5^gQw37-ae!>KQe>YPX^DQ z8N7cocmU1d1(d-PXa;Yf3?4xMRJcVZP7Rul;G=tYr2G5}x zyoWM)5Y6C4l);l|25+Ja9z`>F6=m=&n!&p$gNM-!UPc)_ji&H6%HVM{h1XFA&!Z{4 zk1}{5P2q)YN*O$rrtntE;ITA?*HQ-0r766Z zGI%ge;l-4}lW7WXrVJiUQ+PFH@NAmGyD5W*(-dA#89be)@OH}J@ic|kQwGncDZHOD zctB0z1(m@QY6@?t3?5MvctvIKjGDkZDuajA1YS}ZJf$Y^mdfBUHG$Vu2G6Mpyr(jF zP)*=PmBEv00&l7e9#s=~Rb}w3n!vj%gNM}wURD`AttRlc%HVM|f!9?A&#MW%uQGUG zP2h!$U+Srd3=W$?_Jz&k60ht>pMS{XdGCU4psW$@UVz-udm=e8rfw=#He zJHm@AgD1Bmyt#6CbUVVUD~D&dBfPtEcz8R)%PWVcwfBfP_Mc!)c~ODu<{xFfv9a(Ik8!fPyt=eQ%h$8va( zJHm@BhbOrsyvcHSlsm$!EQe>gBfQIUc$kghWtPL!Yz%L+93E$5c%9|&JR8INEQbf$ z7+z>OJkiGRM$6%mHilPP4$rhPywh@csEy&JmcvtR3~#j@9&2NGt>y4s8^e1ohX>mj zUTir$*~ai@%i+;BhF4n-&$cnV+j4lgjp5~%!_#dHZ?_yCZ)149 zbU8ffM)0P~;ZZk&S6vRzx)HqVa(LK{;ANM?({2QByBr>OBY55A@Vpzr`!0tE-UwcJ zIXv-3@W#vGkvD=@UJlQ^5xnzqc<7DbrI*7~Zv=0>93J})@Y>7ax$gk)y&N9=4)Eg3 z;mPj+Z@wHJ{SNTz%i-DY0PnsW9{vvS^2_1r?*MPV93KA;@cPT)`R@SlzZ?ue2e1Hg zFaaIF2FSq(bO0+L2Q$zC?0_5$K?kq|axeuQz!u2C7<2$@AO~~M0qlVs3_=I62y!q9 z9l$2Y!6Ctf876JZE8 zLJmg45Uhk8%!DD>2{{-FL$DNbFcpSiE977-48dB+!CV-Ey^w>!Fa(Ps2a{n4HbVfT zVF*@30JC8Tc0&NeVF;E(0MlUzwnG5pVF=bk0P|r0_Co*zVgMFI025*WHbej;VgOb| z05f6$c0>R}VgQyz08?TBwnPA9VgS}e0CQph_Cx@KVgMFJ0Fz<>HbnrVVgOb}0JCBM zc0~ZgVgQy!0MlXswnYHrVgS}f0P|u1_C){#V*nOL025;XHbwv=V*pl005f9%c18e0 zqYsuw08^t6wnhMBqYu_b0CS@c_C^4MqYoBG0F$E+Hb(%XqYqX`0JEbHc1HliqYsux z0MnxnwnqTtqYu_c0P~{{_D28%qz@KI028DSHb?*?qz_g|05hZyc1Qq2qz{%z08^w7 zwnzYDqz~3e0CS`d_DBGOqz@KJ0F$H#Hc0@Zqz6_>0JEeAc1Zxkqz9Hs0Mn!gwn+fv zqzBeX0P~~=_DKK(r3V&D028GLHc9{^r3Y3@05hcrc1i$4r3aQu08^z0wn_kFr3cnZ z0CS}W_DTSQr3V&E0F$K$HcJ4br3Y3^0JEhBc1r-mr3aQv0Mn%lwo3rxr3=0q5PXN=W1GY~9QQ5WjDT4%k2e zjGzu!K>^I54%k5f451EKLIF&n4%k8gjG;DILjla8HrPV}45BtzL;*~qHrPY~jG{JJ zMFGsBHrPc045Kz!MgdHtHrPf1jH5PKM*+;EHrPi245T(#NC8ZwHrPl3jHEVLNde5H zHrPo445c<$N&!rzHrPr5jHNbMO99NKHrPu645l_%OaV-$HrPx7jHWhNO##fN7T8Sz z45t=YP614(7T8V!jHeb@PXWxQ7T8Y#45$`ZPytM+7T8b$jHnh^Q31@T7T8e%45=1a zQUOe<7T8h&jHwn_QvuAW7T8k(45}7bQ~^w?7T8n)jH(t`RRPSZmbON&0ESfyEUN&f zRSRsZ0LE1dtg8U#RTJ#100veQEUW+~RugQj07h05tgHZLRuk;30ESi*EUf^hR@3ZS zi2%k{6RfQO=2jEztpEmB6D+O(CRY<|t^h_?6RfTPW>*vJt^kHt6D+R)rdJbeuK>nZ z6RfWQ=2sK!uK)&E6D+U*CRh_}umDC_6RfZRW>^F4umFZw11zxsrdR`Pu>i(c1FW$C z=2!#lu>b~H11z!tCRqb)vH(U|1FW(DW?2L5vH*rz11z%urdb1QvjE0f1FW+E=2-*m zvj7HK11z)vCRzh*v;an01FWR_=2Fxl#0vjs5P>R`16Fx%>2w*@fV>R`DAFx~24y9F@b>R`PEFyHE6zXdSh>R`bI zFyZQ8!v!$n>R`nMFyrcA#|1Ft>R`zQFy-oC%LOpz>R`R{0YFzM=G z(*-c<>R{CcFzf1I*99=_YGBy~Fzsq!+XXQ0YGB<3Fz;$$-vu!6YGC07F!5?&;{`DC zYGCCBF!O3)=LInIYX5EgDS)Y016wbEu~!3YFMzpM1A8xk!B+!|FM!Ec1Dh{^(N_bj zFM!!s1G_JP;a3C8FM#P+1KTfv@mB-uFM#=1`-${^@c;k&-x}NMfAZgJ=a&BDpVyz3 z`ICRY!Y6N@RQeTp2YMg zuivXDT0eO`9UPl~@cN$kqv8jzcZc@eAH4o&H-G%W`_VN!><8~p;0*n>$%H~=ytAeN7LYTuJ>Q|JZtCr|E>N`JNLsMt1q;3e-xx1ZRdWOhOch!pO0^L zwsSvi@4mL3`>X4fh3(vLEk@JYx&KPhalrjpRolOv`_p7~mv-*gnQ3tB!Qc7$wsie3-}!m>YmU=*e*X2HW&WL?hjSuyzVq|(`ta5^eqNeAuWIAx=c6tK zZTvjlel?|ypRY^IBis0S>vi~D8$W+v{Cv{J&tpg5TW$P&ep&fv8$YjoRvm8R=l7~i zX&XP!Wxs82&S^rLM z@?|T(&t_%cZ{_#f!+Dom`F%Ge>3A!@|JtYQY327}bGT0{zaP7e-q6bL%TphgwDSA2 z&ybm|{65utHKvu{ueN;$wetIR<>T(H{QfQJ=Ge;bW`${nzv1E&Trf&FXCnp9j94ecZz5gE;e>Eqq@1a{6ow zpC87V9ctn8M8T<`7Cv9RH{I64=Z%b0D_i*dG01FQ3!g_mou1Uf=aV<)BU<>pl5@6C z3!h)cS-H3HdFJbR>lQxWZ{oB6zT@!w0$eEym?{CG2;$EGNEH}m=I^mw0UKCijQ zu5ae^oBFIJ&3vBgmOi7I&v#dsjcMld-qMnR&3yjbxVd{Xp9jP09h&)kxFyK6na_)> zHMN`h{P@?==5KtS^t7n_#^+1dt9jq}yg9#f@;5$zX8#lZjnAVmhP?g8=hLi^$KUw8 zI(PcbZ+w1r%{cpw&$FXfANt1U+gCL~-}t;M3)=RL&%YOSSAFC2u)*1R-}ro-=sfuw zpO>p1kNC#t=M}^He&h3W_bB&oe7>GC-{u>iw?j(|zw!C|ocGTrK97r<^-X*}AA6>> ziO=gUZkbJdeqZ<^u8Gg{m1C4me7?^}dD+D0eYdp_n)v)5_3d&K&jT@sPc-p-(8GRj z6VD4}Pkftre$X7fv5DsiS?bazo-gKY_^pZOjT7x-n|S`{dU|jZ&m%5fere+QBCRyXpz)BdQSk>{WLV^bS>9(tV}*~s%zH=p;7 zJTGY&KW*gsY2^LejXY14j6C1S^VQePBaJ+7t@4pK^87WzWM||5&SMYPH1d4bW5U8l zp4TKrQyY1H`+&|3p6Bk`|Jum&-M9a`H1fRnYJR6ip8s+ijT?C$^g652$n&9h|E30> z7mGfYH}L!zyfdeP=Se;Dqz0ZZ#TTIsJa2xU^QM94PkGbB2A)UvUAW%B^J(kQGYvei z7UUdg;Q4jP?!X3~XSF=GHt>8qGU|8qbyUe~w#;qd`PbBZQUlM!_umX};Q9FJvOWzw zFZb4VZ{Yda^^tW0&(lX|8#eHKy|L{_JU+jaFke;=D#TF>)%LSsff&*w+4$JO(^ zu9&2(=lOke!^?V}=TBdMP|x#yzbRMhdETG)?Lp7R64#k1-;PcSkVU(fl%AO8)h=e*&_hMx7DKj_-I)N>x85o1x$`GicWSI>Ec zU$5_VoL|)C*VJ*IQFErKj`NMp6F${(-m$4Ix{mXYs(*s(I1i~?{k)FzkwCk9b)1*% zPrO*i`HAJhKk7J7>F&9^j`Nj}M(;Y#TZ$g9ujBmX(Ap(+oX5O!npwyB%=(Nmb)47S zJ~OC}^P9EPd(?5B^Gx5Vj`N-UVPTF#&D4Y^Rud6cZ}Xf5Ycg&%}k&a2XP zdDU`$wQ%gZTF$e!=q;}0e9JU$dM)Q&6Hbq=<^0QN!N6M1!`3=>ujPE~w-Se1&dU-W znbvZCmhY`y%X!*?5iMUiUsLE*edWCEkHq}1oWIpxO8Lrp+?O?xUpb!(?EC&J=XE#Q z|M|-K-O}jWFjhOtpPxVfmGiypYmR>9ywCkt;Vb8Vqcy$0avs?FaqU;m2dCa%^p*3% z!QRuqa(*a|8~v5@#6s(VUpZgA`K8-e&Kui4IDF;&vHq0lSI#33uGRj^`Q+PS=t{x7 z@`!0w4d<6FpYv-t&(u?-)NsD}>Reuj%7ah|{3bSIxhQ^Z%rlO;ywbUezzJqCW6j_3SF@1$WCQ zR8c>8Rx+%LdV*hJ?<(pG-}2n5s5kV@wXUN6;E`ikMLi-V`)4Kf2}w?UCH0E6xt}Yk zUrf%=s-&Lrr7)qA`o_f4kV@(utG@hON&RC)&BIFSA!!ZQE2)q4YCBU&y=0ump-So} z4hGUn>M5_xwpUVLF}7b_Nxh|8=LMD2Uv&CTt)w1vclgLk>N9$ieyyZl({ouZ-1W(>Q&LFHdIi*>iuYG z1@){I5x-SX-&$HUu7Y}37qy`k)W3oqdR0&la~K4-S`-!Ihb&Rux;h5B8U;`$fr zdDdlTzEIz@Fg^5zdSA&<=@;sMN7iirLOoFX)aozP2j_fP@P&F|z?Z3Cs2_UUjQT=7 zar}ea_}hcDD0BhyX4P>*ae(D_1rQq!}woO)&Hj_Pvim$&Z~mQ&9h zmYr5keeYr|VUX)W0?fUM1IrUNf#>?f@OCx%pET?|DYSX@Q>Zv*R z{mZGZ4k+1NPQ7)r+wbMnU-zt>TTVUJ|JI~(>a){}MwC;p)%NIDPW|@Ey3Xa)bFCiQ zl~do{QDasz53Vxe9Nd`+Zk*sqn=&9czGH1 z?VC?#mr?H?qcO3J`gg*-;bqjr$35y(Mt%IghDRCo@`i=z^MQWe^SMzO_4HYW8fDbi zSFdUMOuc=T_~kS8_nG#2pQ*?92uS`+eZC1UX=tD=Uqt2j-U2uQ6C_aw+{A@Ar6?($C?k(Z7`b zj^I6AO6m6)p=Do6|Hu0SCZ+U)3^UL!r9b4|@s<+$MTS{am(V}*{!(EH{Ujq@Kb6p5 z683jY3H>J1ennIy{3q$bFH7i0SvUEw68ckG(yo@!uX1wr=@R-^eyKlDLO)B~o}d!? zTfEJ;m(cIxa(8tJ{V%D57M9Qtb0TJ13H>p@tr%TGzf7m5fhF|MR3Gb6LO)HEyK@Qs zHIF}7l+bT;dA@!L{WoXp+KcJOId{CSnEsqQJw6xHuk#@)tC;?s!u5&8^z&HghZWP` zGwbjFis|>cI`v60{Xb1Lw~FZpT6*?;G5tZwLyi^GFEl@YS26uV6$gEa=_fkTXJaw_ zMPo9T71M8|yMJ~u{YN={CKl6=6q+-M9Rc|Sx|EcTisv`QK9&IWtqCaY!>!%|6r5Z9~is+yE@3dG%Kh>X8Ulq|` zbx8N`BKob)gj_44|LXOwGez`c)p;H&qCacG4`~toTCak46w$vmeAn6{`nmE(FD|0L z>$1+wBKp0&V#XHH|F!PakRtlQd>8a8qCf1Gvs)4UVio1qMf8vT_Oe3}{bZ?vdJ+9) zG#t`zHps4`kp464^1MR&(X9SUDWpGbz>%mz`qjLb1Q*i3meTu0A^mLgv>p`F-`1RQ zrI3EN4^K}O(*Jhn(1Akw;r{tOsF41+>|xsr>6hzey{3@DQ~b>rhDl-bFR_Li+jEe{L+Gzi)ZM zmje3zgg1Ew^#4WPN-3ZpaMMO41@tr4*NrWpzwuGk zkOKN0|19rSK>y?8Qnv#7A)AVA3h0mAUTjoAzodPMMgjekEv4V`>8I5HQkhSG<&^4z zeEKbw^=bL^Uv6xT$)_K4f`&4m{>%l2uk-2Gyk_|@pZ-ldmmB%?bH?=iGoSv>=fjTV z)9;xuS;(jV(|xgbKK-CiH*d(NKh#@TmQTOvwllNy=^wrGU}8S~q^61y`Sh2*N$ZzS zzv;!AF8TDIzSMWfryte8!z`cv)XSrE^XXSzxBPn^{j1yMwR!ZjzPwhNM}O-;F)NRL z*T%xcJo;a2b;9%LhyCT3cX{;3-ktR{kAB&ufp_!hpPh62QXc)ZN8?W9(O;|4vM-N* z+qWKpdGz1Dn7u8Je%z`(tMlm3-SA>z9{svqN~Y)0zuVPjY##l*o2CxQqrbO)cdtD9 zeS_b)<6u});-RpU-^&6w{q!Uu5CD;-+b=io?QB! z(?9y<(*L~1X-h8s(4JdX=F%U%^8Nf=`lUa1n3hZb^oeDobLpqP_-s%v{nfSFJ#*=| zKDXF4m;UP`&#iOm$Bs2H%B4Sh>1vH!`n5e3-*V{R-rA`uhkouF|H2&lyOp0l<vw!5!U!LB+Cx?FX z)9d|n=s&-evL%Opbe+*a<>5~kpDxIuUp>)zdJg^T15c01p`X1$Ye)|L?Ro*da_D#W zu6E0z|9$Wp+Z_7g=jIsa&>tT?Pb-Ih`HM*{+4Rq=rqyKAPd_%MIGg@@m&uvg^xH3t zPROSJzH&-fHvRZn@o%%~&+k0@X*T`(ap`xn>EHjj{Bkz^{J)l+%%;D;e#e1q`u$DY zgR<%W|KsqEZ1Mo>t=DCf54d%2Nj7oRQ<>zzwqHmLl$|49^JlVk#G1OnU_W0q2I>T zEb`<_XjWW|HJO!6g08_P1un{@4&n@RrU zS#5GAd6d8YjmjjSVk#&y$*Yu2c$G7FSAdzDwF)o!V3#C$U{$}ux zKAGfk=45rwB%f3ApM55Ioyv=5ndEmi1nFgx=UKMwM+W(xsL>4>{gOfcN5>>T zgFH}1b7}_pAdjM$4Dv$d@yZPHLtWngn?ar^@9)PM;Y0>` zq{H6(Gsq`B*cg;SUTMtA9U0`87A;S_NI(f1l=eDMkFWdflbvk*o;pvOg$)6o>o0(1?ZG-cK zbn--@YyWieYdtP>ODE6PHN+{MeA|;6OLV{e+@WyjkWT(>;WUkO@^FH@ z`4joLKF_K@k(b+CQv8Yh+^?OoK9Q$8G%M*7`MUK-BR-M0OAGt(iTquX`pZw`@fJz` z{zN`+yZpu{@_JT^bDzlXO;-Qo6L~(PaeF_J?^|&s;1hYjF-hA#k^g&byY>@#z_+WG zd?Ft>pZJOVV6Q2XPvi;xFAw-czHn|;k5A+c!|*^%{xIrKn@{8sS5z8* zBA@ppi)BOhA4 z#wm@wXnToe8u`(e>pG;7CpDH~mr}{YzB+X(m3(Z!?uSyz z%gzdwr;?wwTH%vQo>tbrDV2Qf;VUas$=ePcu`reV?TNe@spN4F?;W2?KDT?f5vk;L zwbCBM5gpnEEL-mh*hspNZmBwDAE_cf9mr;`6Y-%~r4JaANQTMGH$JE!VW$P0HF zU!FpKc+U5{6!OG9UZ$mxFMhZsE`_{tTG!AN^2ZNL-lmX8{^icI6!OUnRzFA~uiU5e z^%U~UFUtQ+Ah5aMt)5u?``?$b29nwd8cxd$%9Y!PfaEtUbiAPnY{RnDIv+^ z$5#w`n@pa(v&XY!^5wTI9wd`DPu9MkO#b|B^PkD&(dSnkOD3QGuxM{GdG*&>fyw08 z15$S+lV`6_T%Sz7y>tBXWb*E&ar2VNzrT!|mP{VrG;wS)`S>m=!;;C%f6M5XOn!cM zLAPY`^x`dHilJ?H|eK+w^bvNM1i=e8ord`#qKv zek9L7(<|d6`TqXL5HZ1Ng1r)ko$7^iqHPk$C~pu6I5%KcMsY z%O9C1Fly83kIWZvJbm~h^9J6%-Sv_A12!doADKrm*mT=R<`dXT)_!DO!TYUCKQh0- z<;I+k%rlsrJmn+v4F>3q`N+J3V$Y!;nSU_PukT0ZA^h>I>qq7z9IA5q$h?G!J*+=6 zKOuIb@kiz0QYgDS0Co*qippc)){Egp!eoAB>hv)8uMCNm}Yegh7uj7v+ z!HLZ8s5O0^$UKkEmmeoG-=lZuyNO``HyOUTlF0mzccacGG7m)Z@n|CRLC&w^P* zDdz_?CNMw6vb-{Zc`9436(=xX<>uV%1m>;$W1Nz}{FRGQF$v6LS#}^K;eYuoa_m+D^IbeMU3IyE*u>TvbqsNi?IHTr% zi)UU=#ORuM=I8Y7_c`2o_RZQh6(Y^--*$Ph-V(p)3)Gvu>b1= zn_kB=uct@-lX&L$sA})UGtXyK-L-h;``m9h7tg$(hUVk(%>U{B^FTcFfF|k+@yrLB zZt54$yr2;d+v1rYWYuF`JoALohc1t2zRQUJoASx`Amps9+CDRl6dA5 zExtD>o_R%Al)dAbUlf(wC7yXkh3!u9%r`1?w25clQN}2fc;+9yS*sTh_J7^JKh)xx zk2K zd>r$sYGOU(m{&El^Po89R|W0v9mhPYr@39?m~WLm!a0t4S3j=V#4-QMO2agcc~~Cn z^y8S1)gxX#j(J(#2DQdAKg;1(T`cpo3_4cCGGD7kRus#;t=Q_USmtlt`aLCC${~|&RFJ){q)}y3-*7_QT^4i%pbG3vLu#y zWS9HQjb%O=S^#62S9W{(_*mwbd9-@QGSBSpxk0fYKGwJo=o8Dlv)id%W0`;E>hBWE zJhU73cCpMya|$twWnS8~O@^_|Pjj@=ie;YKb=CJ6=Bv5vXpCXr+Fh6G80N3_NGXkB z9@~pUc`?jq8zD)LVP0GGx5OCcw=H@e6~jEY>aD66=DY3h`7VZeZ_d>(VwnG?c={-Y zd2p+I?#3`5&T#m(80N+Or*%FC?EmUb2`6HhC+BwMPz>1r)dd@O$1rd1?y$fZ=Fe?6 z_KIO1-Ke5XG0dm4eY-k_d3DXFm&P!^E^o`c80OiW9^j54s%Yi|jvDnYnt6dvQ(i_hKd{66$I;9a)LC;cn)!kqeXd6{Z?Mb3 z3(?FUoPPOKH1i1eJv$Q3e8T9cz0u4obS{=gGr#bFnr}4o48J>Wi)OyzUdj4s<{frI ze<<@0Lk}#9W*(ya@$6{kBTh-18qK`KZtCNsnV)FeOA^gIMTez>qnWSR?|9#6<}EH( zc8_NM;)N!+Xy!3~?&%QCe8ws3tfHCM7;>v)H1iv0{*)Zvv;%-2-5FOFi~ zW{TI`DCTc!R!)y%9_O^R6Qh{V`Lb|S6!SU-X)58 zpDVY!L^1!219&e=ne%wP4JxhIl&tRIY}kzoIqcTMn#WM1pPr?y2hzjfoh4Uu5~mydQ>70G;8 z&(bB4%zIt&Y+fYuU+>FjMlui9V*2Dr=EL4|8XL*H*yZ&jBAFlS88s-9d9q_}_Kjq| z?Dn7@k<6P7neP$F{Miu$og$e>n`dPk$$Z+sTFfGuS9>|PLnQNSUxn#JGSBwg6SYX@ z+pfIS8o|8Vrh^R;%)fo%R~^AT+)EqEBAAc+_tL@$=H(X6&W>Py?u4mn5zNy~8=n}# zeBBdcq9d5MyK{7C1oL-yj|q-o9`D=nZz7n_>pb;&1oL{I&3+WY{NAlg??o`rcm9SO z5zP19>~|@GdB0B%o{eDsufwI|5zGVr@5!ME<^%5u+Y`aO;DB6d1oMNhw)jRcPx!0V zjtJ%p?-;l#f_cNv3)Vz1fA~kx@(AV;8{AqL!F=NJ(X%6%SNyDDS_Jcpr@BmxV4ktn z%+V3dH#XfpJc4=0!(R@JVE*y>@;(vFLw0lN5y5=q{6!uS%u9|x=M=&G&OGTk zoH7vapC)-rz*&iv_~vIpVJqdr=GD;(_q66Xb1!nU5W0zayM^+3MFfg)=`p*lle% z^R!?6y&|0X+Qt1Bhcj<`s$y<9^S7&}&J1TBcSQE&aOQJoZ5#>7It=XpBI)O2Va#{$8+|a0dGDS7*%QY6_oe4#Va$V16a2%N4}Wr#R~Yl+kD-s3 z`SH<{HiR)xe)90uVa%5|>bpFQdGlsn7lko@ev!-EFtGm%OYCQcF`xdW-IOrq)rZ@S z4`Y6PCkJ%)BG3M%%kVJf+n?$>D2#dcFZ%WiWB$F(h@N3!{}+Z#?i$8?d?dk#F)zP# zvttlnto{Y|k3Va(reE7uNV9)F^~dKmNhD|>toWnTaE zncqU0-~Y|GE|huxpRZSiGT+}ZrYw|s|5uueLYe=+vTI%_`vA5r$_!;cK*;gbQ1%6^ z2uloQf55mOF`?`e*f}I36zuqKKx}U`w7nP{U?-t z1%a`Dhl2f|f6w|}DEkcT*W3&R`#(SD<&{wO9emcg5X%08;fv3NvJWBa+3`^JBZL|p z31weG%bNY6>`w>?*%it@g|TkZQ1&Y<+V2<2zJ>SYJ44yOuwmxbQ1&sb`fo!h`x*Xn zUlYo{hGC~ygtEWER%1yh`y9r4&ktq4!~3#Xq5tc9SUx?J{ST+pCxx;PqHgxMQ1(My zOBxx7=ngJCH9E=FqWhO+-+_-&0)_F)_v^CN`) z81AJlA?(XAIocQk_J7{=ezhU&)5y-M3}L^LfFUQc`+-5 z{TwT&e+qevzK(S5H$vDy(!2YW5cZMu z*0>PDev&=eXF}Ll(*3^^A?z>da^YwQ`%L@;4u-Jb#BnLQlhJo#J4Og$|H;N4K_Toz z>1gE_0``B7fu>go`%)IyZ4F_6ihA+J5ca9Ge_9*DewCT=D?`Bk&uI={7Q+6OZ^}g> zVE^Y#Q_KrtKTAvStPu9Kd>5yOu)k$q*yIrQx#-4@4`IKHN$Thj_PuP+_Y7hGOPA`Q zA?$-0^kZNM`(dt`^bcWQ%rcMOAz=S!`wZ_9!akXjxm`loFY{!FTL}AR5>7aUuzzOK z(@r5^|7Y7LTZgcpW@58>2>WW{olHX5U-NiUhY|eg9*st?uOR0)|JO0lKRbc;T zo&A=pVjqve$Sf86d2)_?Qn9bcAU#>d{+_d45>@Q;2?&T)vES!iT%?M9KMUQ%RP6tm zB~z-{2lQ9^2NnB)mJEEWVqehabFWok|7WE)KUc9&=+@GIRO}au3VoUHUkihV>|^lqxyPh=2qRmHv{?aGTP_7^Sv{hW$@Miv>TRqQwFHv5E%eMeUkj;h#y zv~~I+75k8`C+t(PAF0>u-75Aa*=NX9>`&VGd!UMaN>-Kl;6cBVYk-%EeM`snwyW5` zwBXWa75kX>_S&FgKa+9T8WsDRnwPFrvA=0d%Q6-FoT|?)R}PmmFy!kC`(YXpUky3R>{7y8{eap>@VAA5TRtBS-f4SlKp1#o=PSA&d!bwR^$-cC&Po68;pQfAmj}q+v^aJ&eluGyuVjDRp{{$CVE?D>-?>Z4e!0qEnUZ~T?~H+0WaQL@i&sO=^t`|T?H*DKj~r=7J% z$^N?|l2uCf;rZWNp=3W^QpaUV_T`-oTC8M$p0a#_l6`s$7R^(#UvE*|Y$f~l!bkt6 zWdGjPx6_sEp=2MT?QSzA`w>eAnJC$p=v-^0WPf7hBSR(o6mvG}E5ZIxS>8ie$-c!I z)mlpSFFtyqp=2MUUyz!T{ftk?{SevLIN$8M$o|Gn1uY``9IKyy6WQ;Wcc4*Z-=pW! zdXfE)h68Iw_CZcCtr6J|SzBExvM*9U;fu)r$dk{?M6myp51cC%!TwLKkQIyUn+#r8 zD6)T2eNMi}KFa5#b4B)3e(awuvafPwmrRlUmA^Zri(vmJCs?M5?6-Vuk|MJ2veoFL z$o|XMMu{T(FpE0Ii|oe~EMi6WWgh7iEwVpT$0Jf?pJrX3aFP9*(=zB)eoqAZKk4#=J0kl> ziwbXv>?6JEbW>zMY2>o&BKu0$+_)-&{h#Pnd|70lX?^!gBKu8?y)KCCJDsRFCxZQ- z=wS4x$UfB7OV5bxM|F65N(B2qaiaD~k^QM9OOA`|Q*C^GOk}^RulZ4teXARH9v0cZ znwWf0WFPBagAR!7XKlE;Ph?-~bDg~+*#C)zJ9dlgbKRdOi0pU0JVP$B@6}Bu71{sl zI4DSDAMCLw0V4Zhw|4ax*%zz2<14a1_OP3e$UfPSJ6#i2uI{o$BKvpK zjTVaR<8=_{i|pr3^PVTNuUGSzxgz^}@0QFK+2{N2<}4BH|M+n$eiPaEJI-aM$o}6q z#nbWohK#@Y_cW3Hz(00Q71=#ylJV9jN@V(vRMX>+l zQ2Z{kk9bDEu_F74XB&?Z!TyhntsEt?zxZw3NRfTU4$mYa`;D8{EX2J_t}`zi~qy2a4=l?r%3hWdHIl zn_ortF(0t)FS4IG-@c#7zUHT{eMR;+H+JtMvd{V1fZih5|FMOmdx`9OK0K?Z2=;&M zz16>nVE@Ms3FslRAA0o3?jrl5m49^;*&qEntgFaAX_w+IBKxH^w7ZDxn_k$pv&jDG zF4H|k_EB&2br;!B?S9iuWMB21cvlhZ|Jb&67mL zQXNJ1VfQd~6xok`afXA)zHI49dy)OwX~~^L_G#a@?If~ayZU!Kk$u~b9@&cQ-!5pe z5!uImY?6)0e(ooitwr{APxxvjvcG%&1S^q!-Z?icMX>*4GQV4h?E9X+*g|Cg_mKDI zBKyEEJDH2@2lw7@CW8GR9a3c~vOoOD0#lKF;t^pcBKyUq158BrjX${GQDp!4Wc!XH z`^Z>#r5JoJ>I$o_L@J42Cu z==FCDME0YP=w~3ZFa4)dUu1v!;5qst`_#+I^hEZncig2XvTyx~t)9sK_0U(kBKz29 z&CwOv&pxkFM`T}n@&z4{{q5nNIwIKrQGGvai(vmpS)A4u+4sIxqAjxjT~ebZvJd{y zO)ZiA@Dt~0iT~@1H_{T>AKyDdQ)Hj~yuF$t`{f%(X^QNdH_+4+**||iTtj3Z{gq=H zBKzrW=W2-Tt2c7i5ZPbvU!^Xx&wj}Vb&>t{uTQ9p?7Kg_T3rPDKQeikx(N1vfO!N6-kZzs`-=_4=O?13yHL=>5K6gxB-d5eF0WJ@<~Z@_hBs z)$^7~Z_k9S!#q`C6Fk)|=XjbgS>Y*M+Uyyd;O{BQ_IRE-e#q1H(s9pzH_mz2ePYgRq?>^}C5=Ol+ba{d({sk@d{3YL zrJnC%Dm=d|s`ZS?Z}RN2^t)&AXEn))E1Hr$Q*N^~vv{0jP3{DVS<)m)^Sdb$jqB4S z&Ve%|Bc}Z(nPf9t(l=|4q~y?pt3;*ik=8^K5^~1+xIj)rbIzhF72@*dj<0_b5oxb(mBV zrI1P<4V6h^AIc~@8|2_>*4F->*MR>>*ed_>*xF6 z`{DcI`{VoM`{n!Q`{#Aw_26~k_2G5m_2PBo_2YHq_2hNs_2qTu_2zZw_2+%y{osA! z{o#G${o;M&{o{S){p5Y+{pEe;{pNk={pUL1df>X?`rta@df~d^`r$g_dg8j``reqIR^YxXaQ_up2MVkQ1=fWE>qCKcqQH7lVBILN zeiT?o3alpu)|CS5OM!K!zKX;2MX*51@?sk`$K_!qQHJpVBaXPe-zk93hXBZ_LTzr zOM!i+z_-Lmr2_j?fqkmLepO)KDzN_**vAU&X9f1P0{dHmeXhWM zS784uu>b$}pZwqa=lu8lbNuuF`+NBN{5kx2{JH%3{5|}A{Js4Bd>wo}d|iBfe4Tu~ zeBFHgd>?#2d|!Nje4l*3eBXTkybin`ye_;xyiUAcyl%XHypFt{yso^yyw1GdyzadI zybrt|yf3^zyidGeyl=dJypOz}ysx~!ywAMfyzjjKTnAhaTo+s)Tqj&FTsK@lTt{3_ zTvuFQTxVQwTz6c5T!&nbT$fy*T&G;GT(?}mT*q9`T-RLRT<2WxT=!i6+y~qb+!x#* z+$Y>G+&A1m+(+C`+*jOR+-KZx+;`l6+=twc+?U*++^5{H+_&7n+{fI{+}GUS+~?fy z*#Gab|99aDK;2#Qwbn$P4BbuoZ3f3W*c(6WIMg)KY_3J2w`dw=hy&l^ceidkouwXhrbzNE%6>1KdSSX zps{h|942g>_;OO) zUb&+7_qvretIAjBu1Q?`Vcq@p$2M%;IAxRj=9bOTTh4D?zRhiW(e`UQ=I+$ya#mhe}i(LA0$<@Vs7Oh@5W`X1Urn%8`F3;XD z>(}4fW{A^wPa8S4ZSu=W8z(wUh#MC)w)2?yQQjl1C2vN|A6`H7k0Bm|-wvEUAg}+{ ze&72X>}}fX;xA4;?sV(Y^+D&Z9{1hcU9UUaIh}FnV87R{#b&E@q2*kQNVB1)4?Ef$ zAM4O&ut`5dccRW~EqBe+>S}6Re`J53-1erWOY@&i+Kt}z#kF(4hF1@+dRXE3<#d_u zXIV)@(U!u}{NMAka~5W&XD-Od__QRgAZ1;0O;SLjR>J8xm)Pgg zDi@C_`UPjc-~X=v+oCt;{+;?-`<3`Ycs}x(_S4uW=O3?mH1MIp--Qo8+`n>9es|TK zskaB;>UPuqhQ;-c*Nm^4Ua`LHda2LFF&7q|_da*}&sS%&&*+{RczVOBn<-EX@8_P(L}()Rl8wci`Q$9GTn zJ%zh(>|V9I`|hS)k-M(#3fQ%9m*=i7yR3E@?9$k!hW|IffA4~Swh;gB8vabvuI~8r zH+C29?vB47zQ-OvD{b%4eYf|S;^(*S_dU>bAn2g>p|gj&91cFb=t$d<8%HM}Yd-ey zkCn$APUM`pd2++4fv0uPWS@C;_Vl0L=N6tHbD_^g*GtxyO|KYV?Rd@Ny8VrAHwWLE zdVAF!`Q0n`KHM*SVDR_Ahie|4e;oTn`{~GM!gKM3_N%F{&;48UrvKah?=s)_3qGbO z7bmLz3NZ@v3eSodAN4%iCH8cjRzg5xP13sLf|Mm`8J`wpq-QS7&d&KguQY#4VMCFu zMECRQGRH3uD+X7ESI_-gTiBY@O`4Uw00>ck-D(`?Y!al z`n?(PW|FnUq0VdM8prri1C$Ozdy@a?*v(ZIc`FBvV6I z?w)qHOfh}hnzk8dWBdQM)ojD8uiY=to?;L^=i{BmxvkX>^XKG@UT|Uc>V=mA_AHuX zdUbKW^UEdDs}W0&NIxz6<3-W(K7%V)NYrY7f23Zw@?^i7RhwDrVeN;G zAJ*-@c5nS=_hTFGT-dTPplFRRtamiXf3H$H*jQD4i@8L-qzFE^Z`yKwT)z4zzKL4J7 z=?6S>I}-4?T03yDwk*(XRZZYE&80yn3&Vn{+qy|}ryQ0(k1vu|?izwa;St%1wP~_1 zXB^~bikHj3&%G)SFG-b$p3)bZ<_{K53|uMH_c$oL9C%+iH&-PbKbS6vG3CM@mnLD+ zp>}~eaQsjHZ~k-sd;U58dHy~Aef}K&JpNq%eEuH(KK@?*e!dRA9=?q}|6?r-jM?sx8c z?*IJ4Ek8!3W_`b1I;m}6=Qk}Y?{sedciW#$ZRfQbZ~fw3Z$F~AHZ^_D*S;OYt54Mo zs+w{5?}~R74qse5pDqiXp!+#s<|6f|r}nq^FW%J}~y>OA0UzQ6ykYP3eJmX=tRnpLZ|+>cR3%zo_|LWznI z#K^ig%ZL?%P(r9pYmXxLZB(roMU_Ssq19GP6*Wq~=Xt!Z{vVJ2{_Qu(y`Rtf{XXZs z&g*^7dF2{%cFFxezFG45gwtCaa@X5EweBGu< z!9&R{*BkTxyB57Qf9Hu`+wKTS z$+f*exqVxkq{VFMU83pct)J%F6j~?qi#fl~|Gev34R2?x z4q3El)!<3dD>wWRyrSHXZ9hv0Zm@h@eC1_h+WDoQK3r_+{(oOv(&bsfv{5GtFaCa9 ziAB|Oz5VHx7>Q1InlEq<=$SePlR%GPlv)vv{>Ub%9Qs*L%6IVWtOZ;JR;l$v7mM4rV-6)}GuJiG4ZyOii zp_X6#>+Y}P_N9l%g)OWSS3LAu?C?_QvANa-$2KZiHMYr!2cCRu4tv6mrg;jUo8W18 zw1?-Dbpf8y6DoO{zF*uEbNN-zs__y71qbr~^WXgM{G8w8_xU^ip3mX)_*_1p@8SFS zUcR5_;CXm1o{#6`d3kQ0pZDN>crV_M_tf{5_vZas2iAjiVSQL9){Avx{a8oVlXYc% zS!dRpb!YwA2lj(~VSm^s_KSUE|JX*=P2feP{nU2b>4a1?Piv!g=A`aDF&P zoF~o|=Zka3dE?x1{y2x6N6sbZlXJ>><=k?9Imeu5&Nb(obIy6^+;jf11MC62z&@}O z>;=2Qey}6#3A@6+ururpyTkslL+lZ|#6Gc8>=nDkez9Zh8N0^5v2*MlyT|_J2nZj< zEKs*Iwb0SV@I%SM5&U$|?d&)@zX=@CCgBaLTy;BNwt3QIf$&A|3YReJpxeoNrA7eU zQ4Qf2-dyZXXM;FC7Uj}>|0Ppmka2OR@#5m&`{1MVEqqMXa){9N!^vTr?Sj*T2OD#5ptCc_FE02!xUs@u#O_PTsQj zT=0HyXqDoFoa*V1TyTK!YTgHZoh>E)b-@S1wH+SN$JyLGr*ebvZ=JsCFFSI^n|a~^4V~yd>7xzcf+sp zEIbp>2ItDN^2|ItJS^|RJMnJ3Bk#&P^X~AqtOaYr+9>xfYsH$ecJR8aC2Pvs!u7J& ztT}7X9K9s--eIF*WvT< zeR^LYz7U^?Z^TF9EAg55PJAf76rYN3#mC}n@wxb3d@#NkpNwzDN8_vU+4ydJIKCX8 zj&H}uGuD~K7y4q^zggqT8XA;u7Eh&jX_Vi2*2m_%$MMiHxs zS;Q`47_p3)Mr?H;h zi;2m^W@0q4nwU-OCWaHsiRr|4Vmz^)m{05n1IT~x;lJhQd-=Ki{$74x{(diiFQ2!U z&y&y3;Pd7CGWb6E{tUifo+pFnk>|_c`Q&*scwTw_44z-!CxiEam*oBAeKUApxJuq% z)+2-UkoC!6ePq2dST8tD)=$>c%X-TCdRbptZ!hZ&_sROpet6jr*&i?aBm3oLzu-vO zKiN+&`w4H#{>pxP*>AX1_Fv9}m-7I>%K4D<;^n-+xpIEwJb5`!@UWaOId5Lh8{91C zPtK#4^9Wzd`IPhO<-Ee-a(?AJdpXbWx}0x`{a((yoPRIpU+lq)J;48BA7U?F>_zOy zi~Wc_d9f#WV(d%o&5OOk9bVioJTVS2$+uSM1q~J&S#Nv2U?=FZK=> zjs1&1@Zt~Pr|}QsFTD5*IBWce_!BSw1RfjzBL2pUzk%Dv|A;^G;*a3F@lWEfy!b0P zaQv6}GcW!OUL5}>{?3cP6aVMM|A{~J;t%1^@sHv!z4%Kwb^NFJQ!oA$o*n-x{?_1c z;okAT;*Smf7(Sl6Lh;uIe+@^E{}z94@aORM_;>O527eEikN=l=V2B6s`@{!{7lwEN z=TH2Qcw&er+yf9_B;FX}4R-^?ABjhXc*K1H@k!#9AzpEZK>U)}Z-{5yD-ho#-WlQ@ zcMZfpiHC-GDDlw{A0=KI;w5(y#7~K*hIq<71@Tqlts&lWcR~D>cx;Hr+-DGMNrLj0G1H(&tnN5BB`y9Nxvoe3B~KFfdsxJLm4$afhq z0Cy{30C^Sz29RgtE```{zyRFAfC1!P3>ZM(jXM@%zX1bqR|5u+wJ=}+?r*>VvQ`GX z#GMWpK-SWL0l4P@1ISt%FaUQyU;x<*0|t=2F<=1MD+31LjtC4OduhM`+#7)bWUmbv zfV(6xfSd&b2H<`P3?OI4fC0F30t3idGKvA@9tsQ~XU%{CxSIk4$XPUC0Pd^60CH9h z7(mW0_d>*e0|ww;3k)D<-GBk)>>DtE*n$BAaQ_7c5L+=|0Pe)V0Afo948T1Z7(i^z zfC0EW0|SUH8ZZF&XA7(jfP0RwO^2nG;e zXTSj56@mf87aH;*?hiFTYCq0^0k~5H1Bfp*U;yqJ!2sfG4H!UtuK@#yFE(HR?jykf z;;Ri9fICVsfcSC)2H@Tj3?RPVfC0q!8!&*x0s{u%eiIBJvBH1>Bz71ufW#652H+kP z3?Q+_fC0E01p`PdGGGAiOThpVs|*-GVwV8}NGvm80Pa=6021pA7=XK4Fo48D0|wy! zRrBK-ZUYA3P8JLxvDAP8xTggJNUSwr0ExW@3?Q-CfB_^n8!&*xY6Aw~ju#9dvD|zMNUS$t0Eztu1YrMrkNr8ZpWi3;^Y_GlK5wu6d}2S}N9^bOiTykev7hH7_Vc{N zex9G$&-)Pjc|T%5?@R3G{fYgo2eF^^A@;Lg#D3N%W>pY{`AKlV!O$9{?Z*fX&o`zH2d@5FxWpV*H-Aok-Qi2e8rVn6v0v}*t-mMs?i&Z`-w-yeytg>@ru~5bp$q^5&N~az{Wdb zzt$Vrcu4FgJ`($hm&AUpOR({j*srw;Hr^8ZwSK|IV`9J7G}w4e>?eK``-$hoeyx45 z@m^~ozyKBx=+F2aix>27`3#FE^t1U6i#PPUc?OF|^x1eui&ym7c?XMU^xb$zi+A+h zSp$oQbZuB8ie=9oSiGobhcjgHq}F>-i(>Jno;}W>#iPW2ty!^nRnIPG*y33|+njNWclGRJ0~Qaf zZD1o7FRSffLl#e~ZDC^;Z>#NLgBFjgZDOMqudD51!xqo0ZDZpW@2lVKG^1C>YMS=HeXZUjSsi^oceZryv_I2_Y(tbKB%#Q7-928 zjUB`gn@?(NA;#EzQ)3S?$mXLOn}|_1U)9(}472&H#x`P{&385S5d&>Ltg(?8Y4c@` zoy1U^Pit%?#@c*aV=pn-=HtYE@^g*V#B7_tYb+k#d=@>%l{}A1Or%pNUCQ16Y0xdr`~` zcE*0d(qI6~uPN3B16ck|u{apO@^gyS!2p)OQ!Eb#u>784eK3IK|1=i>16Y1ga|JK} zxdZ-#TmlSW`9;k&zyOwi#2;x+V);qURloq2ztmg?3}E?9&2_*4mjBdT2n=BPQO%XW z0G2=1TnY?e`BlxezyOwi)m#h=VENhSxtd@A%in4)2L`bGuI74R0L%YsE(iv&{IKSV zU;xV>Yc2@}u>7*-nqUCSKWi=u2C)3J=Bi)-%U^3Q3kI88_+F$_7ziTcI2C)3R=IUSo%in7*4+gOOzUKO10CIogKU@G90B!(| z0ImQG0Cxa>fJ*=az%9Trz%_sY;2z*0;3B{Pa1(G8a1~$xxC=N8xC}4=+y?jtt^*7J z_W=h27Xk)=8-XK%D**$*oxq{MrGNq8R^V9RTEGBsFW@h@7%%|b4EPML1`Ggq1BU~b z0|tQG0pG#(fC1osz<+Q-U;wxwI3lU9Fo0HQf>)+3D*P$fO`Ue!bO1r;HJO; za8+OcxGV50ToxDrZVP-1*98WE`vU*Mg@FO!#=ysLWncifGw?H98W;d>4SWsP1_pq8 z1AoKCfdSy=z~^vvU;wdQ2mB6~2L^!K1K-2-fdSzD!2fW8U;wy5@&mX+FaX>k`2$=c z7yxdO`~t2K3;_2?{s9*W27sF+KY^Esde}YQ|1Hi44U%|D40pMQAzu;oQ0C2P9XK=M(0JvN7H@I9d0NgJ59b7LM zKw`f`{s$Kf27ntTKZGj=1Hc`VKf)!00pOO&FX5WO0C3ObpK#G&0Jv%LQ@Cm{0NgeC ztHd$~3;?%Hehb$P27vn}|Ah+&1Hg@Ie*FBtT)A`dXSj4Q0NgtHwZvKn3;_2|{tXuo z29VgS96ek;`8wP^7(imbLq0FDT{(V<{mS{H1p2T0XpX1uIWIkS_s;pi?ft4|Y#0(B9p-U;}rl z*UG!IUwhTPzR;bR(S^T_X;@@;%u7YnVvZDb$IL7i6w~!}C#KXJrDLwW@i=--@$=Ec zOKgg+^JY@?!#9JYGu~<#9apkYbgNR?QThFLMxFAT8kJJIS5&t$RifT1`!MoS*+Y>_ z%gu=#P+ls_-mVyV7~&rtQTd(b5jWq-9kHh3k%>bpB~7eYIdI~Q%CAoR ztjggD1F9xWC|j-RgiF;Pk6-Zaw((u7hmJ4uUWM_Q?_C@>xyH*gPutKRl8yXysw8CgH?82<(vM_*{rb@cRxkHeZa zS`v1*QM0g>jjxUB)+ByZ-hc|Db_MJo8R7~WS;BcT;*c|c#F(ZvN0e`NZ1~A$!NVh( zKMH-P#jMcNE&M|xKG-$Pzh&UC6D==&68_=vPyAXv9eS|U^r1srzcsW_n^hs(+SCr| z5tuRLN#KV=mb5)J*lE{&@YQxdd>q?;;K$`V+#F;&gbwQ0@%F$c9m58ucDfr}=cBOT zlOO##VCerw4#?U0R{uqvL;Bb0k{xucOTVE0UBByhziX#{N!QyMFz<_LEP` z4yw~7L_Ymi|D2si%D4SF;G}$WosaGYr*;aHr@1|_U&l~+x|@T_cNi#7`@_dq<;k6P zrv@)+`=Pu|#*iL?wdL(rg%oP@mb~qBdF!V`{aOu|Rk-xY30V>Umb->UeBdvuG)q?N zQD{W-U|GFm!^=0TDXTeOR`tn<5>Ak;^8S&#WX1Ca#LMbm8?~}=Gue$LvMZ0nrZ?;= zyR>n%e}lZTYeBMm+sEXpmtS@>NOpD0*vqoR73*}B-CilXelPrqoPcIEXUb`~I4)C8 zMv?bI<&C zw%AaWd{wOZ7qRL)V%-nK${&lhKNYKgZvFNC{ntJG z*;Dt5r;puP|2%LP{pXIm&68i;p2t_+yB=L|-+p+~UGd=oci+FayXQSv?asWP>dtk4 zvb)K>aQE21g54YLws&9uvw_?1&+_grcV2bRxP2!^s*qxy{k}V<{_klqVYl2d>wXK0 zx&EsYQ~KA^G2MT896jge`RL4_H$~_DIVrmNPr=dAHyTFox?V^so3f*7X77v&y*4#! z?bTjUKV7L3RpH9R$o@Y{UFqdHk(Ykx8(H#)ijh4p-Huq0wIkxY@1rA1eBV5x`^DT5 z3oaa)c=5ZWi6y@aoY?35s}q-edw9Z?a|shFoNGE^$l1r^*PYom{*P}$$JhC$!uScN zFOKt`nmI1lsb=E>Pu>fkePU(!#muhZ#JsAYY$!<_3%Las8$Cmj7r_Vf8@=5K_eUOdop6W znLpyPx8{gi-ebcPGlGYIzxPpSjlHu%6ZiOsX6@cJtoH7}VM$+J`XqbT@K2iTdOCFe z&gnz%?09Qv+a0SyR&TEzl52a$kOA919I|igsljEob{`zG<%f?iZyxw@)6F*rE!z}2 zDA%Uj14A~34b1%FZg8zH!h+|2{^x+F8%7QowBc6&%=IDt>#olZTDq=ZP`-8F^$TCy zso%9Vhx>M1UsXNb3NLA*1X65 z<(s-USYEpO#$`#}Dlfa=by<49v73$M1TxzK6%<$@(`n=g10cp|k&V9(TT zZGM_xsLh!9LtE#Zf3Ve@d48=b%nSc;``i;PTg~-vnUxap!KjqeE%Kzi(;{t7MDx0H zPBuF=yL_{uv&S^eHT#g0o?OClC5N~!&Ds?ZH7jpG=~>;HcxSF`JYeSCM!9D;ZM1I2 z^oE^gTxjrcx_^W8=_Bh0PTyVc-n3lx(xo_n#zPuCp$wVx3+|BWmYQ+Fr{$ z^-0aJsm*FuoI1J2r74;3rA#UEUfU^MtLL7w;9WEMQnkp*WvexqJfP}>NuO2OKIul~ z@JSUb*Pk?`(&NN66*CfVz7v;N`JFb2L;MRTuBvb`;l|s`6DqttJYhijMhQ#H`D>E)WrF84~Q+|H&`Tg$1wJP;>TwKYtxQw^L;~u`*F|N*=RpN%1$Q`$) z__f$;Z|sXL^+tMZ*VjFYR#v)rB)Pha(9{Zq(O^q=CMHc!fUJdZ1Rc0H=) zx&1J}Q}JP-r|;iAJo6recrx!#@Z`Fmz*mb|{i@pBqwb;_X=8o(BOO?1eH#^2<{u~~c_vf^@ z=0ANM7k%SS+^*|>@%OS@$Jfjr7aw|UW&GN!=i`66k~g8kl|~8ue;l5$Ov;o$zPU7|&NmgOPBVPXbb$@#D&3(CMH`+IJ_H=V<_GNF~IkmiLa}qQ1qj)TNp0{nG2MUzWafUFBu@)@@uCzP7>gYisr|@3^MzXBn%{e^zaE@QOvNZm%e? zDtcw~$^!Cli&h1%s3t$jSl#xsj`Ew=)-+fizILPhb>(GC*DaGz^GnZMpDLeTZ0XYt z$?|QlEvY5nocTq;w2+N6XM%LknvTNzG zdx6uR9K9#InJ&B9ep-3i;ftB;WVd_CuIEq6B`3gpDojp8#i@1VWc=|>ikyBi0ivR@73gsj662q1Y~W9*C7)7Hc~!R<}j0FHNj4Nvv^#SY?PUvD#W7ppEL*8Qqjd2X@xoMQDkJoJEY|5rTtU-y(kM|02*QdW8c zz8U@4{awZ0Iq3~C(l0Q6u4v9z{QYJ6MCc(Hc38CBbGUQQke-n!=__y*IO+c2v%-1l zAEDP^%fRjKPjf7Pgp%9>e>{uFv4o^^L(5`Qf9#xK&V@`3b6tX}XqI(M-(#b-+23Oy5lKiw34b8wwE z9qD1AkK#~LaP-~d8E?_g@{aUYyxF`^^zGWMN^O?j7WysxEA5QhI{lR257OsC4@Sp; zUQuO^bt^;93w;?ir#y@-dFfKwSQ}dhjja07Fbi&9Em#R&X{u+8oek`$V{F6pqtJ7;k ze@XSA3ggR!WWF~=`flhsS^3(`as3ZBtJy?)aOgwH_wK#$zJc3o(T_uKO52RC;Rmi& ztkY6@bLdxzKeA1(MtIB3j=OGehGe}`U| zRk=5gPI-2rL4x%1(Erj}vZimUH*G{;4?QutUTGFqrOe94^!U&x^K3%=sBib@4Ol4s zJ}aenCNX9I$anLHxHe1g&ra#5DH`--MCz?W&SL2UqQ|C9cFhr=_9)+so}fX}ck{SX z@bJ^kBAP#u{vdjB{OZmMz4hto7W4|ypL4qCu3>w-`L~=PeM9u@3_5!0lS(1sAJRkg zll1Wf4tP5By#ohZ(N8o;dV9)czcuua?uFXWTSULly6&|@()@Y^?v*~HROtcw?(m00 zX1%AU#U-84Z0L7ChqI$&XypuSDFi>@9oDUbE-yJ!gQkz?tA|a7H*QoEgpz zXNa@Jnc{45#yD%7InEwukh92{zsMcJ~n_YU=!E| zHiE5SGuRF`ge_rH*cLX1tzmQ69yW+AVw2b=Hj1rcv)C>+j4fl+*futftz+}pK0W|n zfKR|T;3M!A_zZjpJ_KKaPr1|pUxrV^x8dXP zb@)7dA3hLYh)={f;v?~u_)L5!J``VyPsO+5WAU~4TzoG+7+;J}#y8`m@zwZjd^bKE zUye`5x8vjS_4s^zKQVw~c#0+8wF@#t`Od+-qV~91x9AXbKh*(5SA~q4D zh*iWaViz%tSVl}Ewh`lqb;LYkA2EkJiPgkxVmC3ISWZkQwiDxt^~8K)KNw)boqGTB-}D9X^U4=jJmvT472@yT zx>)odK5x175ApfO|MfiP`{Jdii0|Li=k`OMXMpq>@q8cu+xKstcZc*I@%%0R&b-h2 zJeGbW-tSoFCii&XWzwU>`w#cuaF_LZo>>2m{$aP+j}FoY#r{N;yZ$TtMQ;@Q_vBXhU)ay`(l5pSmROkiGy8o|dZ^g{ zg6}u~iSs~T73ZVyiCxz@FY|yHB%O3ao*|i;`|5hF7Z9~K;IYkQ6PB1 z1?=TJ=>@}nw$Cj29ri?j820t7!;){Yx7Vd-4EsyoT;Uw{*i!n)u+LnF)}6s#=`F*4 zucp@d276AEelzTQX#?*m?0t*$pke>Zw+EiYA2g7@H0@0;eK8Y%F+qCO@E@C^haShD z(7%R%sdVGXQTz=(ZTO$v1Co#6kLYv5KZU+j=`jB4g!I1Qzur4z4&l#QOFta`?YpbJ zzQW(lk{&tyUscz`1NcMw=J1ba@1^d?U(!p5{|qVCXdnLcn)KJ!2rvjZCnNh zpr;ZH(C+TCbTGhZ>9Yg_)JjQR3I?F}5)3f+x8x;Y0Qxb(0P}OtOat$9mL5$oK%L)a zE(Qb8w+RMlx+-N67~rDxa)JSdH(mTG7~oy$?*s#UaB$5+FaSNDV1UXEzFYtXpbr!b z&~?p;R4_n{^oD`~e)RikJ{W+0Q82*vB{}DV0eVXhDHvc;y$bWd0Q8lD0c!l-YAzUH zsq~tH0j?h#l>!E!{}c?6`$F0rFu-rplL`jd;dg2_7=S)iFu?EWxn_d_=v@T^M1;DM z!2tBLf&pHd95o9J&`5e*!2nPG_Ra(YRF}S2Fu+b>8NdMa!h!*MKJGLF3_yP@7~tZ< z^yy##dS<}@xi{RK1_q#y77P$ozx^~Yz;5ZS1p{nrzAgz2P*eJC!2tKq=1&3x(1QyG z==EpVR4@Sj$Y6l8>6fN}0sN&m84OVFX4@%X0Qz^q0N-Vr$zT9_dcgqwx-^&!2B6Ou z4Dd(%_DNuX4$}Jz2AI>o{vnixdYHigujK3)2L_<884S>4NbWc=0KLv&fS1j4H}eZT;$ z7Z`x`0|T(0V1S0QzKQ{4y}^~TQ z^8g0me1HKsFJJ)94;X;+1P0)IfdM#gU;xe^7=ZH#2H<>x0XVN<0M0KMfb$Fn;CzDt zIPYKp&OaCcdjJDqA7B9N1q^`wfB~>4FaY)i2Eg9H0N5WG0DA-jV4q+B>=g`v{el6o zXD|Tv4FX(){+<6# z=OM`N@VopCf6Hg^S$rm+&3Eu!d?(+{Gw>`t6VJvo@~k{F&(1sWF1!=(rtc{4$~*J! ztO0Amny@yk5o^Vov39H>Yss3jwyZI0&6>0J>;Zehp0GFU5qrg+v3Kktd&!=%x9l-{ z&7QOOoB_@PXM(fA8R4vOW;i>XAbw5PS(f1>b^?!Pnq(@ICk-d=Wkg z--M6CSK+hpUHCA389oi)hL6M7;q&l)_&|IiJ`vxDkHlBvGx44HP<$yq72k@F#n<9< z@xAz9d@(*5-;9sOSL3ts-S}{PIX)fVj*rLJlpQC{En@wq&81K!`6A~XY(Dl?o_{s}hKe3-29Gt6ch{Oe zY64jUY71EdY7|)mY8`n$Y9?6&YA;y>dMH=}`I%vT=xJaL=uKb^=rLdo=oMgnsrhFO z)PYph6AkSvlA8O)R19^7C{>i%-)__`b)_|IE)K(KlIsnM!R47?7V~BPklGu(e5|z?qLmB3)aM*4_zzPfVJcASxeS{ zwdM0!Yu13Z=lj_U)_}d?`RsYsz2o`WOV)tB<^9-e*1(>BJqxUX{LEo}I4i7y{H??K zS$i__*$(T=Sz`_4yB*e_v&b6AvpMV!XO%UOXLr~?&N6Gj*=B#Oy=TAxQsYM*AGLba z<56=*T^+S^)W=Z+N1YqBY}Bh!lSbVcwPn2(-05;}%iXN+ z{?&Jn>bnp1-D~>pCw=#fzWYMoy`S&?&UX*zyHE4oi}~)ieD_qo`zGJL5!?^|z~S(} z`R-$U_bR^o5#K$B@4mu!@8G*XfCJ!}e0;u-m-q4OKAzmicl&s2d=G2j*G8u;=JU*6!u|2`b=!{a_&?Zd}Doa@7@KHTZUk3Jme!*f1d=EGM$ zoaDnhKHMU&@9_TCkGZTr#HZm`^=JGJK92vk@q!uh>U;6s_V4*`uP>h1-{)r@e#d^^ z3x8|B&x`-V$Kl8DRrn)(4t@pS!C&J8uybtLXRkiH^VyHj4tN%R$9FD$=gW6ah1sjz&TCV;(q~ScdBEmmx6>ef1pVjKp9j1$LF&=7;^|ALEC2>r@lSl=sz*e_Yb$z_fFk=z`5^YoQ6>c zUf|E6n_`@uPfyY(Pn~?gv`H~e{pc+E=c%6$XwWOh`SkJ6^wm>WA27OFjI%HN-ivv0 z4IW23Eyw5389emiPyagF8L=e~{rS}AyGA5OJAt+BzUy-LXy=%JF>n%b()EL1 zv~#8RTP|DY?+X1f%88s^mi~Y0|6NH-qnzo7-eE2PeF3gUeWRRQ534aRfPMj2#G6sh zxyrR&wvWKo{+meWR`&+X7ofkuwPkXo<4SZfcYwYF*ZRhh&X=1$0BaDhUG;yDa5{b; z$eaTD6kI(QM>v1J^bzw5=wEOZZWH0ms??pi2J|(!`u#Q0DcQEK%l13CS}dCA#D@-K z4g!4;u6<1>I=iP0Wj+G^5w7#u6Pzt;Mlv^nz6sZ)gb7ZsgW+HtaD(fcwvlSQIGM?sGJGRWuPy^)%*51=lgt#@$WatoOsLH~&B;>j`2#)rT-NgJ0`d?h7HjZ>wUfRlB4EkbRo63!J4rcCf*?t+Im~Y=-+WofAWd*Mb+cX^`NiEb+Okc&ae4T(yK?mkL&u*p-$D`PSdkTACT*dqC=e_ zN6xxze~_!;un=eAXXlw4Lf?>U^8O*tmr)nNu;5D9!Z(IE`#WEvr;k1(SJ;rj&f3a9 zGJk~rBUj;_A3L8sxyoD;`jT7|bA9YQJAR#cCG;z~Hgp{1^!@Z_=9tjOZ{4r_p0H;O9UFM|FC*?Y|s=rg$bD#Ms z^iR2dxgO*kY5I`4D)d#kvdRTHe?NQ7ycPPbT&sHZbN1|h`eJTi`#F7`JdK{uW}}Dj zo5OvaG4ozxZVP=|&ihY#J4lp9?qP$&u7KabLhU*-RZFORh=Qn9GTWHcXxLF`QQA(XO+4+N1H#NImg_Y z6@guy*f|9qi}#(z!@4+GSN@wzcz9}O=iBPfXV+ji=CXH0?%jQF$ZVO?T*gQ&d+D#(Zg6GS4U^*!s5)$p>NKaTD*f(^zwi644+nP z?-VNke8wJgb|%zq=cELeWd08Qch2KxZJmY7OX*BL=JHH#7wD9|`ro|6@?G0FZ-x^R2G3_J(u3*#yq*)$-+=-231g{fB?&f8%HLX7aoIjqTsm&*C%rYbvkxyc_SxyYkL9FV(eRO;{UxJ6S8%%=Vw^TC%3nqZ_N(e%uqW&dd&FL` zXY3t4pzI}k%HGlo%3ibQHb2(0z?tA|&>PBG;mp|nSv^afDb5zXqMS9(ob9*Ov&fm` zY|=Z*S>?>y{#-rFoN3NBy`-FV&b-aj)fTV`Yy%s?R7ifZ6h{o`-|0xg-l$I)0wOe8iE zBZ-y7Oxypiv6Pr<`{Fg$5_5^Y#9(4EF`3v*j3!nSvu%I9#&Tjhv7H!CtS9E%JVmhp zm;h`5MgS{-8EpT)VhJz>*aD0J)&O(Zet*RxU=pwi7zL~XW&yi^VZbtA8n6u*2do3; zvAmXIAutix2#f?)0yEk91B#`76X&nIR=W=z-)HDfnqr@9oPyY!1`;Y^X3y~9%8<8WCE0HsiJCQ??OOaENThZ%G zu0_se=XGcjz_LX&S&{o%>~H`$qmU7$rZ^N?fekU zCCMqtEtxAyu1U^m=Z$DCN=`~{syV9Us^qM8K8fbCi8 zT$!Ai+?gDjT$-HP&PCB&o1B~6n;e{6oSfXwQPEtToSodA9G+aBoSxjCUTkuGa(=i0 zH~{(YJ^Z))d=EdD-`~sc%in7cx8(kN`8;~M;Q-|O_VRu5{o3;_x&L0ChaPZx!R2`~ zcwRdnhWE+fedrm71CZQ5gZGv9S8iC=BZKv@b7okt4AzU@b2tFW{WFvUuybA|_s?Lx z=~agVkp0MDKkOVE_A7(^qPHCmK=w0({j_s$*zXMX8*UnoTFyfT=fTd&;k;yUUg({N z1CaBS!FjTCbvSPsoHu&y>A9El=;b`xIXs+KFXvUxulDH6dG>Oi?c5&DyO;BB?+M8L zz1V}D^Mk#3u@`#(;Q+**yx5bS3xvISu{UM~zyXLoda*}4M+kfMVz0~=fCCVF_F~U= z?hy9w#opoS;Q+)Rc<~2zP7(gXi@#uY0UUt%6EFURnFjb5$^E_f8)hBA0f;~H;*abc zB>a^Zf5mJBH~{fyUi_Jzn}omf;_tXKfCCVJ=*1t3f7DqElKXp=1F-XL#h-fdr*pYZoy{5^LUZ~zhyyu<@LCyIFC zC0;N)0uDfOe=qTbnG$dS5^uc38;L(Ub3$@|FY$;O6mS5N`+JF3%%*??ka*@Lp4quo z#5*tXjyn`M0EvfQ;vq9Gh>sF4y~In2pE?6W;;EN-YUg4RZ@t7@W@W$uNIdoukL?^S z;b;yE)ni0_j7dx`g!w*(J(!2@3>Fe=m54J0&;($^E_HA;CvF zYeaH?FL;UBBX9tMr@Y`PW|DxfB=`4%x0qD|2OxON3m&s`%)o12@EWsC-~a^AdBJmb z?iqN`3*O^yi#smCgI@5Uos$M$^nw?eodO3Sc+v}=v~$(Kn_loHvsT~$1dn>bqk>Pp z%wmz;-+)({&BBZp!LtTDYv;CscMW*g-ZO%S4S3kjc>^yS@UqSpl=;Gfrww>o@U;P7 zOYU#L+suk#W{lu*10H9F4ES7fe*<1;whS|71kW4ryq!A--Z$WV?)t$0k`Ea20XwIT ze8G?}FuR5sHj+;m@(DZFj(o$AZ!qhInKzP;81fN22akNkkgqTshZ#AN&lvI<$!~Oa zj^zG^e8=9qk`Ed3Avr#} z@-=4rFylw^IYT~Y=l+rJ8S*{uKDh&xe9({&+Bt#bi-vqr@<*K^B>AKvpR{uY$u|x8 zCbNc^IVAb0As=N15wnOS_c!FL%qC(+k>s<6eAdn_B;PgUyWGKYFE9D9As@DL4#}4d z`7*PQn1Lkuv>~6C{90!tN$zjRx0#j1%p}Rj4f(j8qe#AP$k&;z#Ed1$=MDM1ox4cx zZ^-w3_Z#x>1`fc^X(abIZ~%6GBYc8^Pq1?x$^8u+fSvc~$g>#u2;bahc~%1lVCO@^ zXBhYlW=6pQ$h#Ui0AC$~tc8IOk=$QrP03mrH~?ll!U4!y8u%1uQo#YpS{pb3W4}lHA|G0ob{h*qJd8o-=ee4#Mc-&0A^Lf0f;X$@R8!1bQYTU zDx-X*%&vq35MO5CGws||a(@E{;HxtcUufV%nXv{3AimPT0r=)yi!U|ssdg?axxaw} zVAdrZfcRnqAIl6kH~{h01`dGPmv8{$%ME-kGvD9<#Mc`*0BR@T03;R|_+Vzl!2w9D zFmM3O#)JcqSYqIlCHFVVFLxYd-~c4{7&rilMFu`vVv~UbkXU8l0GOQ#2OzP`z-QaJ zweZ~rzMC2jH~@)-20mP3qk#jESZUw@n5_v1AhFcIr%P-#Z~zi(4Sc)g{ss;}VzGe( zklf$E0Z6PiZ~)BSgaeRRZs7Boxd#UzvEIM|`0h0Y3mEPL1REGQ0Kp0d4uIL5Z~%fO z4EG7l^n(KstYP2)nAHgfAXvn3AHfVjH~_&a1`dGPop1nxWegmEU>gGmAXvx10Z`Kd z2OwC;a38{qK{x=xN(K&q*`9C!f~5@iDa<5<0}!lbxNl)rAsm2UF#`u+=NNNeW4Nzj z_9q;GU^&Bm4l@to00iq9H~?yE-~a>*8t#Lbkq8GMSkb@%2zE4Z0D>hA_eqlb>ug2A znuhx(W`)852o^QmM=^sD4nVM~fdgQ6C>(%bS;KvnoP+}qtZ(1|1p6B}0LcXm_kql)gaeRV!N379n-mT}atXtIA~P-F03_EiZ~&5f z7&rjQMGW_mlKUGt0LfJh900RR;Q%C;G2Ca`x!L6Y1`dFlCpZAfg$x{k<)+%T4ZY-~jBrZti0Z_py@u8#n;T)eIZ}vrpjwB$qSX=SuEx-~c4o zGjIU5{*3!z!+o&i{ss;}azz6Nz-&}F0Ldi{_sMpyIJv)p1F-YPxsNv7M@#N+-~c37 zHQZNA?rPuwB$qYZXG`vH-~c4oHE;mFx;V*&4fo-a8yh$P$(0TF<;*^X1CU(WzyUC0 z6%IghZNq&#vr^#zBo{Yu0Fs*L+;OcVy+(Ni`<{{_F`VVJ&(-cV|FaLKj)R) zpYu!Z&v|BUALpCgpYu+g9Os|hAA9gx`yltnUda8iA98=}$!qP4+#h=*_s9Oo{jo={ zwNG+??3LUf`z80sp1sz-$^Ef+a)0cf+#i3yoI?Bqxj+7b+#mlz?vFnq_s74G`{QrO z{qaBK{`e#2AmX3M{qa}i{`fC)fBYG96Y+24{`fm`fBYZ0KmL&1AOA@1kH35|-`@ID z<}%`6$^G%S*ZOC2fBZGMKmMECAAio=NBldvKmMNFAOBD8Pds2wB=LdV zpLjv;Py8VFC!Ub|8#n+PZ^-?LKji+zBXWP@6S+U}irk<0Mea{LV{Rq!johDjNA6Gj zBljmBlKT@M$^D6!L0ko$vo$o;`TUKlq8|n3Ot2&z<4#47B=C*=w$^F5*)Y($IOYRRIexWO1@$w6O z0gI=}{lVAd{^0EwdIJ`Zllz0u$^F6W{@{OdfAWDBx&$^~ zc%e^V^9knKl3$SflW)AxE3o+pb8rnDfX!E4=oi?0hTNb0hTNZghq_|}2VnCdWAh_& zfAS@AfAS}CfAT5j@)|e*n{Sc(8#n-)k1@xW{EXb6e2v_n8OY@RDl89T0Tn8CTG<0ReE+g! zo31|2@}27Y@PU>ORo{q@w0tS^*VTtwK2?1yKGyQB>U;6QmXB56jE}Z_t@>_!xaD)z zx8vh2->bf#7-0EejSa*I%NJ|xAcj~zSz`+^#`4V?dx$}nkJi{kjIw;S#x7!*<+C-m z5#uc1t+9_7X!&rBjl@XHmuu`KhFU&dV=FP%^6eUXiNThSC->JFZTWhQ-NbOq=WA>y z##_E$V?P+c-Ulc)03+D@0>uts2z#HP*aD0J)&O(Z`v=7$U=n*jp;!gXV(%{$%YbR@ z{f1&4Fps_eP%H!{viBp3mB38){zS19n9AO-DAodVfxW+4~>Gf?z^>KcrX@%xLeA6ib3BeL5lbzDcns7}VZJDK-V8+WRVU|K}L? z`F)mRTQIJ@?^5gw2DbNMijBd@_P$K9GZ-2y4W_pDYl^kO-1h!Wu{fCA-p?sk2eaGz zJH_%~dV9a8SRc%9@BcIxASbZ*gPJRlGuZn>%_Ybw?ERwV8sr@I{!w!gauRz#sksU{ zi@m?pT!x&+-fwEIL(XIGKQ$L3C$jgWnk$hr+51z?rO2u5{VKUX_pRu4XbxuYV>LG; zN3-{}n!Az1+5240?a1-$eJ}l2ngiPVU~+%W5$%1k=8oi$_CEQAPKv#6*4&dE)ZRyH zZmK!z^ZRPeUCCkXeYWPdV0#~~xiLAiy)W0?nH<{Qr<40@j&1MTHTNb5 zxA*ayo0Fs4`+CjY$>HsNzUKDi`1Zb^+}{HSVCw;t8{p@*UO>46{vIv?4#3tIDAxc7 z0QbQ6!$rUW*!l$JD&PQY{ep5CZ~(TxLAee%0LlH81Az;H1F-cG%9X$Y*!l_OQj`OD zUSFYH3mky0zfdj)4#3uDC|3gqVCy%O%Yg&1^&QIfzya9$59Na30Bn7Taz$_ewthsp zBsc(DU!q(S9DuDqQ7($}XzNorugY1$UBLm^dKS*Na$L6FMY%6H09y}(eJDo;SBAa7 zoxuUvdK%@{-~iy-us66jH~?FZqud-E09+mR3U>zw0GEe7+xi~m`mlGnKR5te52V~6 z8~|J){sQh04#3tE;a^;E0C0`?8@NX}09%iw+$0)-U1Dl+(2JP0Dq`0oeK{ zI)>q+gm2_<(lCD;GT&;aM8pgxM?^5xN71R+%+74 zt!Gni8x8=jn|KHJ4F_QB;glPP1F-dS%ALaj*m^qU*5Lr)+KIPt?{EMTk6pxLTc4*~ zJsg0o-y@zYr*G@~lRkgI0Cx}I5AGu1 z0Bn7t-c`T>*!o4i%YXy0^^JPh0S92~AN4K-4nT5$y(1C4q<1E^ep2sJ-~eoWrQWr` z0oeLWy^DbZu=SaGR|5xN>o@f-2M)m2cY^oy&d1h&f(P|Z$kvDIT@f6Btsm99Bsc(D zU#fRaZ~(UcRPUnT03`Q!fls-sf&;MitKeC^)3Wugde;R9VC!G?E({L9*2n5y861GE zpVhlGH~?E;t9Na10Ji=XJWf5X-pzr}xvPT%u=Tromj?%6>wERC4-UZA|LR>J9DuD4 z*1JOT1zSJ-{4P=M6m5Mmxxd~y+WKR?izFYh^~riy2?t>7m-Q|a4#3to>s==tfUSSl zyHGd)TOX}=rEmbYep>HR;Q(xXwcfSD0oeL$y^Dndu=Uw`R|^MV>$mkT7Y@MIca!hw zov*F`*1KRh09zlfcg1i3wtigilHmYseYxH>!vWa(bMjHWleYEg> z^)4R{z}ENcT|XRvt^e0r05||@|KSIy6@UYvb^!i>S^_u#pH36C25#0Z{u7zeBAD900W+@ITaozyVPE4?je$2poXq z{#rvKXUTyBp!OeriCPml0BTR*pQuHF1EBUFeu`QZH~?x_;IF7b0INSGwyZTh zJ{>A*ec%A7{el0Z76=Z2+J86z@fBJ#MC}m#A+Q-sHK7f5Z|gbR^n?N zH~?y|;9sf5f&-xTAAXivEjR#bx8QH7<$?pC_8)$iS}!;NYQNxrsRe@rp!Oerm|8J7 z0BXnJk0q8kZ~)Z)E5H1_-%M-I;Gd~Qg9D&84St$hH8=oj*WjR8w3byk0Kv8n_gmDu!U0hG%KaC$uy6p>{&PP@tt=b>wX@ux36^%?0I2UKyrVF`$}q;;Q%C;(VAwT zj+x~C4)>kZ{=)%K3(b9~?T^-4Y3@s@{f7gfmYVxipU#=&T3U1M(>s$~Olz_w_jkCT zm0Zn%1E6-B`&(+c;Q%D}cevlB)*BAMH=l%Ba5wc%y zj5|maqz>jE=B^}DS*8`};l8b!ZY|t9RoAV$+pXGeZ@62D`qcVDPh(yaC92Vdvt!Py z&fAfgG}U@rA2Uex-e$&B6XmLz#YV>5Ro%CaF}qaz?Y$Vc>c16;X(>uqYl`2D&L^r@ z!%G~DKCN1CY0>jl4{ls^Z&Aj|c&kHnIZ?@qE9oD7UA5sJMXgnRxD!#sRU>uhbVFlC_g^(fa=FJk4#Vvx%`nW zMYU^Hg|iWPMZs%`|ECd$RZlJ`Vv1_Y`A4)Cm9I4wf1a3E6u*X4T08Nu>dSpHagu7x zRh{@j6?EoqPRJ<=VFRkJny^px=7J|gtL9wk35`TWOlGBy|68@^lE-gV{kc}-N2mtf zvvE~Kb!>8tt>dn%7G21=C8|ePYFrOdCfi;sGrWkXl#Qqz9ezx;>8gjv)j^*wYiuJ? zGMoSY)UkI}r>^eUHL6v2WlWIj)g_I2U6jv8)~_?>nCjMLjgC?6y13D`MICK=!%Cxn zYWP^x(lWyqs*c^ruy&%Lwz6^2u&1hLw{_G;)wJt8s=uhL?FzU%val$wg}9PO8W;L@ z)klsHCALG((GjIZm2FJZfg_Ho*4@+L<5ll&{&0U$Zi{GMefVkBz56OOQnl}ThQ1@} zZV?~+G3=CT;KdG`pgMTPhLsluxbP2Gesc6f<_p#RWRz;+eKoYWsKgCz-FfI<)yBIL zGC=k5LPPS1l3b6#zlW?sWoz2G!BqG_Z{**rj%=HSmV&>1_#)RZYEG!G5B0H}rp-25eVt zz3KxxsJ`C1{y(e6Ud8?~UC`M}4|+os^7?lz8MI#Y_EP#a73I97Zu$G2Q{BDzzC%=d z?@^yes=qg)&otHG%kJ$bs(XWacI&-CwfK(qYAjPo;^hAxRZYGP@)LCV{CZ}qHs7=! zBUGR7QTIox(Kn=fyz2CwlW#(+uW7dw)$3a?Pl9IO8(q^?w=bqkMNtF{k*8j#`h6Wb zR~Mzgk@8lXRL9Tnf3-wGFihThi|YB^kd;8wuT7^-s_VBwR;r(@SfP$`u_7xtszXIl zA{;2Inyxy3wc3{yg~IN#>M5%CcUyJ>&A)bS<5c%=t?X0}*|9u;3(O7=0_cslYk~*`45YUN@Ad#l33LSJS8UweZY4<=&2fkkuAPboxsy_ z($EU@Z$4l30>?Lds+xhvDQbev;}92GzTw znuBZV)>YlXyJD$m4>o!~OZ5li>Qq+^!ee6D=nxjEovB)cJ!+MbNi@yG3xud9;dSv0 z=n__`@l3S|N4(cc^$E9DPgae>zs0klQ`qR;(xPzLRJ=~G>J{!2PlRS+&Z;+6xA221 zRaLuiQsqxnzwoelvLWKp@>cp;bqrfq^j9szDenZSp5bBfglHP(^*^h+hAk`P7sbtr z;x(JAzTpA!q-Y%GD8E5<4qfGbRIS6vvPGhp@wH1lF`9?>#WSafhptsRU9}H~`<+nz z!?mRzsRrV8@$7Np;meimpjwE%-x?Rqe6aa%rl}_4X^9NzBIYY`Q=-M==$6F`hL<1;^oD9E zx?iiVI*L0Bwoom_+Y8 zM17+FqJRH&qse&Y*)un~jITcXN3|K7K7FYAjN||LOEnt5c=EgIG~Rf8L$wxtG)q))QbDHWwuJ~!3YC`^a zqeC>hkfm<;t2Sh}>yM()hn$mrA_|Sjlh@K!Co)jmbUdtE$fA({FE1Kx@+Zc9rT)#+?gR&B;S&ORMhWD`&q` z?a6j$l2w0l_BX9mgYx|8XXDVJEOmOTYEce26{32St523vP0Bw`WU4M@-4oHOO&Oh8 zUG*ss9nTtzMrFa{Q&p$3`?0#JRhfSD${1$l{dOctH7n~LsiV4;v4^upqg{F8>p0b~ zeCz8O_hwuh=lX1DEs z4?!n$>$W)6$}GGszv^X<+?p~N&CHWqN~&(=dt1^~J9F0NimIP^XVW^>(Coaay6R}| z*tkixG)r!*rFxn%Uu;oL&Fs%>sjg<==bKbpbMuDks;~LxhIOj38N0rs>TLeHE?u=Y zyR0jzdYfi#ifV3FTbo~XHy5ml?~C?ko;8p9puahG^$6AA%wCn<8y(KhtGcNc=T|F_ z_G0c>y_JnslXLBg4XVrOx57`gIcI-1P4zkReDWbExxlpx5FUXr7Kyss*nr6nfkRNc~VCw-vW zrSm3DQvK3ylMYux!}QHbc~!?WE3vg|nWiUBQ9aX-6A$~NY5HzrUez_dm(WtRO*0Y_ zRNr(;!h!N=oOVvgp*pAK5?rcv`bT`E>YZl9?<#}l>CE{1rO`bNim#>Gr?umUtNv-8 z__d|bK+TG~UJ@PD&2i;QqJ=s&uD9x;2FJ};P1GiFr%RxVS|To=YNP%Y+fwyWzln9L zM(U>6U9Y2)njCw#7+R@evDH*BwM*Fs|G&mvJ~toQFro-?A-IQ-emo>x_yHLs_s>a!N`j8~1;qMk2A)v?W!lAar) z@aTE`w#V-=vrOOhbXLvQ`ko}!ZEfK>Ac~NE|NhAHNYo+cJ?QVLr5diIJRz#%8tX|H z1<5A&=6Wv3RMN43t@adFP1n7i)~f4z#^X_K*Izxm?x63QGxkqWqMUKtFSd&6yw;Bm zR;|}Av5QpiH7xd=C|8EvN{%h4y04pJTdDTzH?bbofBh?Vwy1sA$aYM}bE^CnGHjoEJ}?GaVb zKIcnJekux~OTO(n*-^dOw8?Sj(44(C`H-lH4mn$S$}6fpJ90`p)t}upWwvV2zBKi` zsE$rJ-EL|r)uK(EIzaVkuTNbq%A|oO>m>alDy6ee#3j{LZQ3(Q(V|{jKGT2NAyG0N zdVJipf~r${Y+85Ksx3P`UG-|ir~f9(r^!b$r`J{8TK^fbs$CmBqQoa{;*Tg+V z=GIgV+?ctOccX)QYwl%HfKB?c*SvbFhkI<^EY-wqJpUI_iJiZ5!~7PijaxQ#iR$B~ zq&^ZQ+11-$S

    &a-$b)6@}RW+wLtWta`bj3rDJE?u~^fMTItIOVFq9sdnzgPiLuq zZr4S3M5%V!rZbB=tB!8R#XCg7He}<;#U)iww|!cSYU-X$%NCW}`JZ=O5~$j`XO?W< zfWB_mrEjXn?!~3C>-|I-Hz@sAQOI4o?nZhS)!PkSW<)tReC@qu)l_#kYWV`y-p%t_ z9@XES{n=R6;PqRPEvmbVR;^vpS+#iUt^7)+j7H1h{L2zbJ~psq)laRlj%hhBKlR zoGfqEQFVN?KR+o7!ZYQq+pC^$Nm&UreRpi^sJgzLWu?&ey|byS>if>xd{LB$7t5*! zsm|}oEjL7=c#W)jsOtR|mYqQJck8xj)&1=zJB9Y|qwOiF=>IO+QC2m8Tgc9$1N_U* z#;OH8Yu7QEt~^IhK`+$=zWn7aIUU>Ol*Fhua7{Tm=mUShXO(IMC+uykI>9yMq@fj@ zl`&NHf~R~mmb(K3oYSJ2ivKh za89uVG=;Z*m8`nLgT+$N7Jf@C2YulaUq`FPaO`1!)fuiUmWI~wZ%4vaZ#eyES=Aiw ze(cyZbcYLyrJ_B2=(xY?4@YO7Q4Qj{V%g{r|8b&@Y7wtKd0i&Wdc_N*swQzM@eJq^ zpFjPQY7@`?W|!&{w>vXZHHu#m&w@_zp|jV-+ZgdWX{uN3h$lj``02MLRJVA~`EMto zT|Du-d8%LBKs?z3@n{b(ys0|IJ1=Ibmht%S(^b#7fp|hRjUQ&ctGdR!FWnQx?Tg|y zGgRL=Ks+fL$NygLtUAa0fBZjDcLMk6SiX}-?@RVAOUAwo z#>_J_#x}A`3yP90m9>QDzHCv5vP4nJQb?8|$@)9rr|bUw{;!w+FJCjy^ZDHOwVda1 z9OrQ?mRZNs|Mo&SXa6xy;nB=I{$QNUa*ywQVwcQ5KJ&?yGXHp+r{>HIx1^Mwb$K624zb(q(D z=(JZxp1thEVQ%y3+x~mxhzmE*Y)JV~A9(rcksVK6C^IAFMm@jDUq&uF;K^a0^A-m` zFmm8pR}6EVx7_YGBi*cr5A&TrILA#Rms~k6Gb!a#oqgEPM%LJH&djQmSM`a@e=u^= zefJJ?pMQSQX(K;g^V`Gx=acuGJo1B6cFD|3xmOQ9yWhx3w=J1jm^{LN@rCV14uAB; zVJ`F@>wJ0ShzEW-%!i(L;pIopziecf6aB*VpBQ;(hxIaRQ{L9th2Nh1(`V+*3{E** ztE~Ivi`w zleb-A<}hD+@as({k6d;AFlYMl^FBZM_*q6WD^y5nfzwUCTTxn?i@?0?66VUNp(dDZ(|_`74aJbnLRZuQH%TyV_B6IRS@ zRQYJHKX>pkW&ZyRbF62sz4kHd?sxtF^*-}k?(>mjrW`hLm}`CZ4v$ZqXUrh8SLLs* zxX2X~=RR+i%w(0zcIi(iOg!%ww+{2JkDh1kiH}d3KFqydZrt1x|NG)Pne8gyZJlw! zy3GCl%zTymw&}dzJ9?$x-TD9Xu&>f@{k=eKM?=C;(;R#<{`oF`R z?Qz?kKH<(W*9`Nv?|pN<31{AUz~}qi?Rk$14EJA4XSS|Rz;PGohS5P5$uzWnH6C)~A0W&q0p{M5E59d^klXAbkbN6%a3u*Lsz=_-AW_m6J- z+o5ZIewSgM_xJCaap*EHeLORU~=`zV}imK6=Qhf1W(d`QB^nv_npK zccsiKmRGp&AD292r*HpbnESoNHuoI7?FHW*=6~-qdf>q~EVxl-9?L!a^@l!s@bBJv zdzc5l_&V1d^ykffKFkF_c<(I_T6UgYhxy>=95(a7c~+V)GnM5kPT&9Z1MeBF!@Th2 zwp{+e>wk8@FgJYK62CoQvDp{NY-ah4BhTz{z_!1-YnUVcsqekL|CRSm80Lv@HTInS zr+j7c%y^dbxa9Ab-~a#S|NSsu{M*~yKK}1(PaNiqU-tX2jsNU#KbKk2@*;OHFYH$? zxo?;|{<|Md-S4bNj~wQY|L2{L?RU(cpU%u_xs%Uq{^M`#xYlondE~!3f0b{Xwf{lG zT=JuzynWx}o|`|jtL0a&z4(^GO_T_iG?&VE}dFh)Tbos8|9`ny(Zu&#ZFR|;P7fc@J zr~ltO7wqz2`9x-x%Pl?hiG_Aqcb=aN^VAo8?5v%)eg9gSaW3cdfamAl`Mb+KILueS z^5e(ubpFJ>hdJx3Z}Yz$|2y-4!@TwFu0CMLa>mKS-1WVed2)w&w_Z52)#a;>)@^op zd+Zg%9QJDu{q6RbueWAqamW<#zy06(Ty}rf-|6$&{VYGT&uRC&{LVhF-DmNc`rLM( z)o1SW+kF?`sn2ouU47?12gI}RO!{1R&&o5C?J9rPv-C{+oOjRKGw<`>y$kQ8&wcl< zyt4yZ{=0YSoyvffd+S|$=Y9T&wO~#3x$xGCHPh$ATT9lIwIx^ATC?W*ym)KTn(TAq ztyOEb&yTm3t?52T-deZj``iN&(3;hexEPnE^sHf8{|a0E8H2faqnO5`+1kRQ)J}I zm3G&-bKE`hrrkyEB$>GvM-H{S%AF-US3b47%$??LTOx9+-F5D~KG()w=uVWW>yC6+ zx-(_#%D;A(x>Mb)akf7oyOU+^%F%XLyR+Th^0nRN?sRv%+--NgJHO8n zQ46REWb(@CRx79()DH5y)e>q78NF%@wT7BQRt)u4Yb9~f7Y9h6foN=|1nn~@n++}lREv2TC@vFvCYpJi>b+E{;JW` zYHBvMn|yP%oSIGsu-x;k^`hqM^MllaYC^T4oOHFKno;d2KV2=Urj!vZS6!{C=9CpI zZ(S{_CRLltVOOiFS=Fxc+10XYS{cG}+ts>i-afZTEvzP%DJt}i=4y1cx|&_>E?-_PuclYq%bi#2tNHu9B)x#1Kqj%AdcA_4 zLGK{HUN51i&|Ap0*K6oG^d9o=^&)x_nZ@sHTe4Ttv&b$!>#1F`m(kPcZMOO1NcK8< zo<65ZFQg~ROyf0f$X-d$B-{9oryt5*N>8P?+GV?!ve(jc>Ah|{W3KGQ^kg!RuRY__ z*{kWa7-t4K3v)9w}_4!bGK|P_~aAcFivsctJ%0_-=*%Pvt)Kkhx zzUkg?XRoQ})O%jL>LuBW>PhvcSMPCM_NsbT*~#Z@eQWlzdRiIEgAd)Cy{?}3n8;F= z#ibY46YGulyYuhaE9;r{&NtuvZ1&Q6Y8lHD&VDI-Z9R95tmSE+el2@(J^90tx%`Ji z-pF2E&#rgh{=~Plm)FzFV4i>X_j-Ljzuq4Pu*i|;zU$xRH2UwG?tA|`{=ED~e}CVd z=6c7^lk4c`@375UZ~J}n9{v9Lx0&#k&m#xY=R0ZVpS|hx%7^s%FFN??H+&ztk-pzH zXDs}N@7w2aonE*6pXVWG()0P!J2PJQyyQ=Me%oz&>wi5@xs;youdn^zYo52fO3(j@ zF)P02eaNx&ezw1TpZ|DY@-4l;T@Sh7Rqykz$i4J_j~M&NE8cgX|21Rr`ChRe2z1O+_w%+^Pu{ozd_`Llf=hObU^!M{TZ@57i#|<^YjhR+K+NX?axDJ`_D7>t9()W_bc12@QnQ|chvrVE!qJKCKulIN7U7xcya`N=QIS=KmIv;1= zcgy3>OZltL&sX<&_pi=Vxvb9DJ=P!hSLf{-k=N?{U2NLKzc`QOxH_LdFy9T2Ij`lr zI=^3k_4P-c=W<`2@4s7V^+%oeeZJf7cTf29BXJ+diFH4mb@MO(;CxS$6tTM zeIi%Z{j&UTR)55OBX8FIv+iGydf0s=ht~bH({?xh(S0SK*8R2K>Tf^fK6@u}Yu#@l z=Y7b1*XPPTGbT8kxDVyrx*ylw_}34(FXi95KkxYC2O^dC;R$ka-LI?Px6%FXTY0(e z-~CrV;}7m*IlAuWl|TN+-@C8n>$<=dC9hch^}~HWd53yTjKTx;J>htl7pKybEUB2{@GdI}p*mM8-EA_nG={j&giZ?N0j`yTy?XMd?*kY7E1@o(t|l``K$F)&;0MNSDjh+ z`1(NyopzOeOI|k&;Lk6-bftbwj<^17>oHqisb7=tecDPd?y>i(zxcU+PVVcGw{I2`lx8N1}Q90!Ij^Ah3Z|*YnC;C!vNOZ{jP7p0CtEhdKkb0 zKimFWFaVkKFo3ydeg141fNXjgz)Cw#J{txgqaFru{>>jb8wMb&9tN<@3KyRR1CUt{ z1K8)XHP3xNYAvVE}#3=~G{y?MxVeOnVr>lm*T^0|p@5 z9tJS!Pph5*1CVhK19;$y`%i}f$hwCCOg!_z(_sKdN9H{YVBeGHIUNSD*Ncyx1_L2R)zt5_qIu=zyQAX#%8C$03MmJ_$e@eF=Jod(F9+-Ou4B&--KXnoepw9_C>8)>{1OwRq<%3Ux0c^CwMkm1lCj4TFlVAWZ zA3y6!Fn|Xxc0HReT~|9E2Jp4B7CasXu*FB- zI1UDI#-ATO4hFE~i=)TE0G8VHg5zKSeSYqhFMs_w7{HESSpPT}zzw&C8Z9t@$IhGY zI2gbKx4t?Z25{vU{xls1aNNw%=`euZ-}>Qn7{In$oH!i@aKx+oPlo~A`^1*hVE_j$ zvc_~6z`qDHQz|#{RodyH= z*vK8zU;tAexM~^&tsW5SDDKLPKuJ_y&eC$RC{B;Tp;N>UppMtOb z;H7s?fdQO%!%b80xj+BZ)l*;q>)(CJ6nt-=kG$;sXHS6vOu1^t6d1r^=T4o1FP`VY zBd5RsHrwH#Dfr|suei??7{GH|?>YtFywPvBn*sya@8r#=;G;J_Z-Xf?fY;vq@)Uga zzL$@i0t2|>lGUc*vu}B2#VIg=pPsth6nuA|%lxscJ~IUdaQ5o|Hw6ap-+33Bf-hg| z3-eEb0UUVgN2lP^Pu%arQ(yq!ob;h7`1VPEoofmVVCPeV;}1Um^QXLT3Jl<-KhHh| zU;pC?vrT~kY`n*;Q}FrEo&N2nxAOGJJ|3Ci@1MuHr0RB7-z~6@f_<1k@ zKOY9*_rU=Cei(qy0|W5+U;sWZ48Z4y0r);J0N)P=;QPV=`W$M{0|wyvzyLfi7=Y&o z1Moay0G=-l!1IOyc>XW|?*j(l{lEacFBpLL2LtdvVF2DQ48Z$_0rdIT)&mT{`hWpg zFE9Y>2L@n0!2ql;7=ZN#1F-%Q1Bmqq1F$|}0M;uE;ES<-VF1=M48Zz^0a))afIfHI zet-ekA20y>1qNXMzyRzg7=Zl+1F+v<0QMgYz zVE}#JxAOo7;Cz4qI4@uT&JP%X^8^Oqe1QQtZ(sn<9~gl12nOJMf&ny0XXkq0DaE5^AHB$e1riwFJS=APZ)sn6b9gYg#kEkVF1ow7=ZH_2H<>#0XVN= z0M2h1fb$#%;CzPxIPYNqeZIN-00!WGfC0EKU;yq97=Zf(2H<{y0l05q0PY_cfcppr z;C_MuxUXOU?k^aC`wRx)euDwH?_dCZuDbgW2H<{#0k|(=0Pas1fcq2%;C_VxxNl(q z?q3*y`xpk`eue?KuVDc0Zy13490uTihXJ_nVE}zDxOxBvpgw>Bs25-W>IWErdIAQZ zzJLL!H(&tj4;X-Y1O}i!fdQyjU;yeD7=U^P2B5xy0jPIi0DX?UdI$!fK7s+LmtX+u zCm4Ww3I?FQf&r+vU;yeb7=U^V2B1EJ0jSqt0O~gwfO-xFpuU3vsP|w1>OUBOdJqPn zK7;|N7hwSEM;L&55(c2YgaN2GVF2n+7=U^d2B1EL0jO7D0P0s5fO-}NpuU9xsCQui z>R%XudKdVFu3egFobKY#(~7hnMT2N-~U0tTSJfC1zrKZF737hwSUM;L&95(c2ZgaPO` zVF3D17=V5h2B1HM0q9p@0Qy%LfPNMRpudFy=yzcN`d=7;ei#OzKZXJ5mtg?{)x}p1pVAU3e$njd$c-d1v08cj#Sur{1l1>|J~3-n}(o zEm#xQhBacXSToj+HDoPWQ`VL>X02Is)}A$JEn1V-rZsA)!HEbQ}?HaH`k70wK2hcm=k;!JV2IAfeO&KzftGss!wOma3kqnuUFEN7Q9 z%vt74bGA9-oORATXP-0BS?El3Haa7nmCj6Or!&-9>P&UEI%A!+&Rl1&GuT<|Om;Rq zqn*{xY-hJK+*$5SceXp@o%POqXTLkZUEoe|H@G9*748gohdabw;!bh5xMSQk?i_cI zJIGz+PI5Q7quf>QEO(bX%w6VAbGNzU+;#3e__sUIUFc49H@YL;mF`S;r#sYL>P~gH zx?|n7dFRI6>kf7oyOZ6`?r3+lJKNpu4tJNk)7|avcz3-!AO5cfPz$ID)COtC|>=Jhh&h z5C5YER12yJ)rM+BwW69)?Wl%SOR6c=mTFA3rkYdjsRmVxs!7$RYE-qVnpN$phE>a| zY1OuBT(z#67yqRORtu|%)y8UMwX&L7?W~4YORK5X)@p3Ewwhb*tp-<%tI5^oYIL=_ znqBR#hF8n0>DBgXe6_xsAOEKZ&B;nFdNjS7o=xwjhttdH>GXDbJiVTt5C5wN)C=kf^@e&xy`r8`@2H2= zOX?~0mU>LRrk+#psRz}I>PhvcdQ`oto>lLvhttq0eO>&f-zdUUGk${e7(M&KidDI z|8G7*W1An5TqC|ly+OY&r-f&^2cP5@(|@?CJ&7tnq0NQ+q3zz$$8`RHfVlva_0)~%jRDv2TvAdX?}Wg z`S|k5_v7y;Cs0;nX?}xp3k&bWSLVnJ#Qfj>Z_SS}|E#~${2}va`I*hHGJluf+59u} zv-nJXo_+HL-rq4|{Nck>;aZ)$#b&!G9Z=CkpPny+j=JI}EB+~%|Oj6e3C?`}SO z@1Xer^U}&Z?LHT~`5V9YF5{gxzh$0Le4F##TLV0#{CoWO^rYfxWeqfc>|xGv^XvBe z()+9Vho=XbHNeZv=i`ZH4aB=ok2M}`)VP_5S!t;E1>RAK4`K$pR zf7U>sm)dd%(!0JW-yE-WP92YoO&sq}QZ1(C22x`%e$dKF2ctTeSxIT*>&m z)f$MOm0qJQuVk3JC_BL#h<9JD$Cl?(;;ac=zeS8_%Lz z1H6Fk51zu-0B>UZC!S@s2IARP`-|tYH4yJUJ)Bz()G$x2&qeF=&3KgC&n<6jT)gY_ z?v8g~+y3|OH?{vh%++dtf0%O>`=4jEcVDf6_WQf`dAxg{&%5_|y?dYEyZ3$g{rP@; z1AX6N{!n`!-o5AJ-DkE!dw#>5o%Vb)bHW;E&wrRh)83DF?|pgq-d|>fSOe|-4s%o5 z`>%bD2`^HArmdI!yM9JnPs6;9K6it6rq9sUV{PlxyU)+u)^C0n->I!{@7{X%?(-RV z7M@AlANj02v$lWoS$d{ze|h)$%-jCUcj2A1{W2 z&$B<)Oz)50`<%D)#qV^bZu(RJ9Xy>>0nR~jO@7}jNVCa9_?t`HpZSO1V z?67{ECDuUi*V_B8I(w{vb{`G>Oxt}m^cQuOIn$hN)_}9l8ff>Qcb{jXv)>wUR@yJl zerv#4YCkz!t$}vm4*eVBUF4bE?&q%eMeO|zd!NGIZ?N6>H&Fn-7A`@Lgp&}jK7M>W z_s$Pzqea5~XvU=17kn~Yl$H*srJcf!X;L^g%?MYg>EZk|KHQ%MU6dM4bwW`^U}^Wh5ia5#ru8}4HK$JXBN+8zHBPG;wZ z+u6#S&)l8oSJ~*ky{--SHU3;Yxb6+7H(pxXjD6xDo>(`8^W0xop5t)-RUi5M_z8=ZvVZpG=>h$NsX@#E1Vp>F7T_JmaXpJvjZy z7ydAQ!W{Q~>4;C?Gsoe4a1Om=>q9QP?TLe)xp|iZ`O+MB#Aq=yys^#ci;1h=Xd?!aO35za!`0-0DHSM^i zKKH}vpZ&}qkNxDL3m-f8!iP_LeZeQDKJkg&r~c-nyeRlh@RZ;iG1rvEXSe(3iYZY( z4!j!pG4Nd2JtkY9i0RkEV?uV}n42mYuqnB*> zqYuU;`<^lFe$UV5Ie)E~n!ov)G2b=2Z9dx!_KGp-ZiP1oOr^Y9u6%2&(n^3>@Po@ZZ7!MCl@~U{o(LnhIh4air6aLB+T2IsWmtI z=v#9Q=U-`9@o2QT$Al)ArWCJt+N!&!MwrGE&-m8X=ci_w<`VB&cA1eHY8ps9Y(LLP zlZY4I;eC@*V@@N8r~cUV>8W|A*~6QU{rQ(tgWu25{r+Fq_hjZqJW{7Ub?2mu? zIi7wVr=P3o=VSUgmwsNQpF8R2NBTLCex9SB%joAT`ZUN-|O>xoqeyD?{)9Je!bVB_j>YP7vAf;d!4p->mB#HX|)gibFX9W^~k-hxYq~w zI^SNe+v{%i&(=V%gYEUKy)L!am-aeQc!%!?H?anK{bjGC?DdenuCdoA_Bz8}FWBq; z;CI$Qufyy0biFPPzG)5gI<;PJ*6YT4{a3H!>h)N?uBz8Z^*Se5r8Us&j(Yu2uLJ7! zJiRWb*VptqnO^VG>sEUGNv|X6^&q{jqt|EjI*VQ}(d!<1{X(xp==B7>E}-Z4d!D}M z+k4(TUVof`v&_=-*gYTJ^U6Ix-1EFWU)%GpJ%8Hspgo`2^O8Nk*z<%v-`DeYJ^$A8 zXgwd+^IAPW)$>d}U)1wHJ%7{lFy4Sst20i}YF@(`_4W7*yD&j9@yi0JwDgtY&~Aq<6b>})#Fe- zp48()J-*Z9G(FzZ<0kR?i}xQjZ1&Qv9vif}Zio-GI#a)@XB+n2{;r?V_rZNX+xh~3 zKWog^rxdlWpP^=ko2b40g!b>leyIIeYWKX2GC^mV^q?q~Q}en$Iz!@4;Betw3& zPVMW>_I*3`pBhgcr&d#sskziuYA5xP8c3a^mQk;$Nz@%`3%^~Bpbl`?yU*R(?qzpx z?=R8cll^_y-&_6t)88ZgebArl@%{3A?$6o&yzI}t{`~6Cq5eGS&xQEw@d;;{rQfIh ze(U#5zyAAm+^@%eUBzF|_3?c8Wk2}g->%Vov)9}t{{5D_&snqiX|MUQ@YNo(<(q3Z zpY5?KHtyJE+?E% z__);`9x2yPoKJo@|L}2txNoGK_`yZwit`m8ch8+8<+blDEpNQYZE|$~Ir+wU0 z^N*BezjcNDcK+?-E_&Zcx$)tv<+>NS?svX2x%}mmzZ%#4-p6h9_sQjyh~sHK@Z-L4 z@8ojFdA}awpCdO+F311nZn^P%xLI_~#GCe1B4TWv96Zk*QZ?ksUW}QaSnPd1a9mnPlVknpEyN=OcsW!$0`i`jg7l zSARUQL_Pl_%T6le?pU&_v}Kl%8Jag*gZKls^w$CMxc z-=}4l@&6x;{`{Eo)72Lrv|NC}il-e@Hs4~&LCXsmeBgj%$|?ITBhyTdz~Czz9aDCj zzWfkpetPL+%5TpbGibR3gJ{`9;}h zMF!fI-(95=pyeG5{<+D-^8O{hJZL!xgRd?%v248Ny3W)* z>*t+yVp(vr^#?6CVX(%ZjxKxexzV8IDGctu^60Yqk(p{z982n}Bqsv8CZYN7kUc+FHxsER1xOE4aYH}O~XZ+=;a_Iv*4_co; zIQFWe%8pO%HfXsIgU6;HRgQmk&q2$B7<_NrqsnLI*hl7?oQOeP`lzzP$Mzev{D{E@ zZys5G^63L)u*sDeta;Co9<;oP!CB`WS)Lht*r4T547M15WVv|#3GhaE!(hUi zN0z&{K6=n{D+Y6X@W`^wZj)rS$+H;z_u&cUGplB1Tan$i`Hv@*4Q`w|X!#d|j~x>K zeXU~$Ef-@jb}*q_e*5%6%gY$tGuMRj_*ajY=_W^GaQlNtlw0mO0qzO+7%cvSBg$r* zoiu2<8-wTfIik#XV8)>3aST4S(h=o=ZN52ZIUR#*-Z;Fx^~fo*-{f};uDSK_veFKx z4IP@_hyHevv)po&~iWqOD=GDsgIupe}%sce*4&A<&<5& zHE6jZgNH6WtjzNFa|SI>WU&5Thn4wv`;N>wIU|E5mpQE5`?v4Pj*~w!IN;xhmL+#R zSB6}XCAa96hnB@2KX1_TN(Ns%(?%n zF(>zAFvoR=l$9U;;h^QA4DLMakW#j~NamcJl)F3jNi zlMgI^{LZz5mKQTP_A3XLf6SMec5-9}H@tN~nSSCg2Mre+>~!q`ca9^Sv4y!+^&<<|_BKV|>&uZKGscyet9GrzQd zd1#}X2QBYru=s1C4!`A=LCe7z{Q9!-;%9^7$!`OT%b4_a={V6zX8FZX}y zjzP=Q8LWBBer5Ml@06J*XJ_!OL-s2ZX8G-)TWNm;dk& zgO&$0SZVCO<*OfgV9;`c2Je4%pR(u3gM*eIG}!1{`;@nze`wHhg$A>KX`k}3?H?Yr zyrID|&+lD+bjKrumP0hS<($3CPgnXgz5-r3xNEJw%ZlHBbkK5(2J1YxSNZ&0nblWh z_KgWE{vRItSDAfsjs~Z$xmP*mFOLse{?TCPC%;}^SoiOPmWwpFV8++W?LU8F(DIT7 zTdnx@GVg*<4O))UVB*7jmb*uu9`b-6pR{Lr^B?~hM8;oZe{5YWk#UfsKM`7-L0&Cz$=56CpDP)$6d=+ z_q{r3Ia7m^j@Y%FHRiR!r{Bw;8l3ZqUCU#q|98-GsRp0Cc9(MMORo=FUe(~ETkKMP zyy+W*mSZ)T`r^*zGe3KC$b0Vn&7I2}A9{Pxa<2xrEwyvmVBdFS4a&nBeEasD$}7Kq zchGXO%HMa{sl0poET!dVl^?yaW4UgS8H94R%3sdju`K-jtfl2`l~X^zV_E6Dvz3;^ zRj$8thw}P5iM1!Ex&5v?l>KMUURrKfIsEnQ%NgIFqqID)GS}(bm)$pbUuijCW&S0% zFHijEeWm4pmGefwR_48M&eC$h%6VIUtvs{g`%B9UD+@fkT{-Zz_m`F+g0l!e!wyR`hW zGTScOlpnt^cX{W%T(k10m$ohspYx&8^3KX~)3z?x4CW~<2d%vM(XGqs|Cp!rec*aO z+Nym0lzB_bO)DQ>d8@MK7d~8Co?6-Z)-B8RfBtZ3IcsIX&9^L%O_{H(|6cxD`P$=K zluMTQNNKrjWx@ToD4)FNBcpC~Oqt}I(NE$e-C{?c;g z%2U7Dq&)uI{N?ob^5)9ITWnGmJY|8>a_GuKf8MzK=kp5=`Skhr*ti_}`vptOt&1$L zjmp^vf3mbZyYhiUHY!_xbfMC6?#i97Z&w8HYh(lW8u=PuwGenoyAJa^(%XSdcAW0-xn(_@2}kZ z!*$D?lQR=i4q&1XzjAhb4v_$3%@+)OJ$#FnK3E%usr|KFO{_xTB@`>#B$lGYn3an%FIbQ ziRGoa)+*P3b?MUb6U)uhOWF4ErAy0IET4LJP)*1&2r>%pD!&JvK)TP8fAwCS12tnvix$jHOd2*uTWZ!WI67qUo3wen;adk zzWn_&Uo6MmJEpYU$#VC%S1&)^WyR9+D9e{Ww0b%Cr4>udsVo~zS*_eTWu?;cE6d}r ztXh6P-^!)sT9!HXUbQTJ!OErOU6$+rv`YEH3STIZiCH2Cv%IFThUnAOG9` z&42S}{8@je6@-rhdGk=HQ<#)FH&HOArQ)Fo7XY^Tp=9br)-^F)|OwIg`zN_!t zc*=Yho=IeE<}>oFJhPSun$OZR{qMc+J!8+>GjI8!`7XSZ$l%O(W^FHQ#vK+za+ZWPIixu~+PwmdBcV$)2*e>@j=Ip8MSW@9jZ*(Vkpr^~H0K z+N<_#%X`heY)?lfXzp=)-JWm!ah?Uvgq9ndXN5DP<;mt*;!KIm&^%+DHO`!tKbvQf zGbu7e^NeyFs9p$caXSKZGyvy8ayL{;5dB?fy+OJ|CbCr3Dr%O< zQq3AhEu*GsInG(@sCk;sA!{KuQDm%UjigpmGp%~zdo`3=N=+4+t65{IwbWcKKRRnM zHCbe^W{sv+Q?s?a>8$0{bdkxLHJ(~e&DZPM)Picl$Y{+PQLU(EY2-s8Aw5xK z%w~_ISJE@JJoN0P^i+{Kn?06ZOV8Ev)3X=TleJv+?A7#adN-N0dO1B^WYT7jr`OZ- z>HYM8dOP7XWkzt!Xs$Nyk+VbMF zm(|m@9Qo{Z^}J0Nl)Z5F#B<-9J+fX|&wTQ^_hb*Pm)2A3t@YS?Z9R9(ug_jwPu_Cv zvsc%%M;31O@OpVYePrThkFVF)^EW;vu>hDrWaK7B04snQL{@HM2(Sd00&D@s0Be9b zM0Rds5U>cCL}chDMggmUSwxm@Vi>Rtm|OyI=$V0|z@*dGiK76=nuWzn+|BZL*g3}J^bL|7tB5w-|p zgf+q(VUI9KSR_m`GK3SOgjK>UBTG0jOjssNGctt}Je!U#u~3*OY!pTcD}|Xx z)^K8|uvD08WDY0B3TuVA-aKhqVz97Sm@I5o7BQ?AW(&K8;lgrZx{*no7%!|B<_r6U z0mFh}!jVy&7%{9EW*k|?i6O(1Val*&7&ELH<{a6@i9y4nVbZW^7&WXKW*u3^iDARC zVcL;toESH(8|K~XoMGWGao9MF999l9hn>UFVd*gS$UIJr9o7zWhrPq#Vev3|*gT9L zRu8j}Eab%SVfirq$V5(zAJz}^Z@g-90XTukNKTFbSAa8E?c6UVhk#4KDc}}x47diI z1MUF_fs4RN;3jYsxC)#_WGN?yfy=;YM5c0b9JmggN3ZL~h2TVRBRCRV3C<+4mXkxl zrQlQ|b2&K{Tno+x_kx4L#o%OcGdLPt4bBF4gTuk);B+FBIXNC&56-9QJ(CN<2}MS8 zazwZyoDuE_hlESQDdCoIOt>bT6YdEIg^R*T;ihm@xGJ30Y~PwaIV@ZjPHUYBvkY)t zxGtPmuVcrB;lyxbI5J!r&J1^kL&K#dr}oA_lViiR;oNX>>*~ zIXqk*P7k+-%@6B9d2@=I8odvjucmlGsT_aP;sd^)ek;; zY;vr)R-7yD6$gup#mPnnb#k=0TAVHJ7Ke+=#p&X9alE)*oNqrbfD6V6xMG|! z?ih!ROTH&KW!y538P|++#y#VpanU$w+%%3FSBche;& z7mgFhjpN91>#vF9$Mxg4E34b*kMDDn?<2$8_Y3a-Cf_%{f6isZ^SH_Li05;Y=M&HC zCeJIL-%T_C@jOR8PZ{B!Z#?f&&s%o5=O6E5)ccSr?)}938uh+pjeCFbK1aPz8RXt? zyzf!(yPpS%^)PBZ$Sk)$V!e!7FS5+7pIA?$){~5L8h}`Dqt=`3bL%hGoc>_ zW4(^%dX21f>o?Z(sP!yE-TDshf7E(!x^??u)P9h;Zhypn8MR+zvC{y=ej2r(WVG8~ zvEN4RH`(p>U+l+G`%$L5{Tcgp)P9ZqJ4yo(`+3xUmH|%#5c_@9e(&dB;yf629>|P$ zKE!!3>b#I8PXiF=$*A*0#=P?-&YMx^jqG{nPn<`i&Lf%ht8bs@)u{7IR=x8p&a+YH zS)6a9&bK)4MxA$Y{+YdS9*#N><9zI#k8xgh&dWGII~ssEPdn#noUfhpHO|}4c^l_% z=lqTHxN{!I`P@05D)hYA9e1dxSu*2fVi(Z_f_0q9SuO-XPx^j z?zhhU7WZA}zU$|V;y&!$hjBl4Gyrj5cJ9l#KRX(LxKBIxY22@!`!(*{&V3vAZ|DAv z`?zx-$Nk*7pX0vn+}Ck`cQgQTpLg!_xZgV(fZ+Z+_kGh@;r=`IK-32v4M5Zjoq8ea zhmHmy>WNN05%ooXoQpI`vD`Go5-S>YGk| z6ZKA~-f43lxc^Q)6!lR@0}%C6r(TNssiOgida6@TMSaz&ucF@S)LT)1bu<7`k9F#? zsLwj}S=4KtdM)a=js_s=xlTP7^<75;5cOWC-fQzFxc^Q)81-RC0}%CMr(TTuu~R=r zJ=v)zqrU9amr-waS#M67*3ke&J=&>9qdx6u0HR*))T>dyb~FG{&vxqBsBb&g7(o9QAWY0}%Cer=E`bx}yPzdb?9^NB!NYzoQ=S)ZI0 z(@#Wy(djRu-{|xk(SLOMkLX7_{YdmDo&F^Hl}^7B{Yys!5dBQ2pNamaqXCG1r_=95 z|C6&I(GPX{q3Dk~{ZaHwoqj3$r;Y|7`l(Jo75!DGzlwgV({Dxp)#<;YAM5mE(VulR z0MV~?`nBlaIvRlJ=Q{md^miQ%K=gZ^ey`0V;r=`QVDyI_4M6mZoqjR;$BqUd`pHf| z8U1BP0}%aYr{9eJv!elsezen%Mt|DT07Spq=~ttF?Pvg^pY8Os(cgCZ+u;5?{cf9! z(hqm~;pmS${c-fmoqjp`=Z*#-`sq$T9sPAj0}%aor{9kLyQ2Y!e!SCF&#W6@R^PV zAh`byUK99DM*|ReP6y8ke5a!U2)w6*_q2I6+)5O`My@9O73 z0}t!qVS$fz@Uh_jJ9t^(XB`bd;AtH^E%3FD1|Ycq4&D~{TSo&Bcw7gM3w*Al0SNBD zgVzOq*Ue%a9g1fJQ!GXvl3XaEB5?BJdK+-u;W z9XvGf(T)Znxc?4b8u)2P0}$MQ2Tu)rwbB3t_g~?yfxlK7fZ+ZsJT~yz`iDD{`>*iY zz;7!JK;XF*o*VdXr2z=Mx59h-dE3B)D?B*x;YtG#+<%1^2Yy^>00K|0@Z`XkD-A$! z{}tXG_;aNJ2t2yNqXVC=Gys8DS9o>c*Odk!@aziD4t%@P00j46;oWVn5*}XR;en6W zk;jtzukiA~&npc;;OP~f9{75NuLt*E;q8IHR~mr8<10Kq@cBvu5Zr%-*9U%IX#fJx zukif9_bUxR;QbZe-|M)852*Nn;0G!VKyd#RUl9C3r2z;&q2d#QU#K(y!8gb@KBeMQf?ugL0KxrNd`s{zl?EXAn2L`Hex}j@1ovO@HNoFh8i3$)Dn2Lp zok{}`d{4#q^z+og2UUDf@I#dbAh`dEFADys(f|aXRPjl{FI5_V;QlMVDfp*K0}y;v z#YY7{RcQc%ud4W};IAqTK=4@=pB4O8r2z=;zv8>hT$;TMKCI%yf*-3i0KxrNd|B{k zl?EXAw2Ds)ey!2~1ovO@ZNa})8i3&ADn2gwxk>{N+<(Q_1%Fp*0D}9k_`Klv>Q;Ls z_h0dSWcXvK#HKU)93RdW9oUmE;rr2z=; zzv5GaU#&ZCl-z&Cw+8=OX#j$ct@zmBXDbaraQ~GCAo$x#0}y;}#pedUTWJ7-@2&XW zHV=&tuK3{Khbw+Kxc`bT4*s~(00f_0@yWq2R~mre{wuyY_~%Lk5PWpSM+ZM$X#j%z zulVZVuPY5e@Yxlg9sG8s0SNBD;=9{iHtxUT!-F5MGyuWt-e^(lS z_-~a4ApUHn0f@g_X#nD9ReFN>*_8$$epjUdh~Hgl0OGS$dW86Fl?EU_Yo!5*&t7Q& z;=5FOhWKuk1|Ys`r2*)D3F28)dWd*7l?EW5Riy!lXIE(e;#pRDig>n_1|Xhwr2&X% zUugj1T~vCEcsG>>Al_A_0f={3X#nC~R(g(jx0MDU-gTt`==~64EmRtSSR0iFAl6Ey z0f@CzQv>kspwg4X+Nv}FvDPXLK&-t=0}yMm(xb%MtTX_zRx7+cs7enNXJe%Sh_kZN0L0l@X#nCZtuz2}wpJQ|IBP2nK%Bjm1|ZJjN{njaF?{^V*L8SqRyP?tm#9dKo0OIbbGyrjzRC=;x4W9baA&<8i2TKYwGP5+_KUD#9drz0OD@0Gyri| zR~mr0yDJSq+~t*?FYfkA0}yw8r2**YwxSlOGyqW>R2qP&6)Fut)DD#fAZm$9PZ+gD zr2&XqqtXCG?NMm}q86$2h*6tV8i1%(Dh)u?E|mr#YMDv{5VcLE0f<_s(mVFPB2f!f zddR4aDh)u?N|gp6YNtvA5VcgL0f^eF(f~xQRcQdC_Np`hQHxc2%&5&O4M5atl?EVc zw@L#LwOpm=jM}c!07R`X#k?u ztn{W)dsZ5Ns6{J1YSgBc1|VwHO0OEVYo!5*TDH=&Mr~VZ0HW5dGyuJiO4P!Y1|VwV zN&^tJa-{)?+PTsIL@izEX`{BTGyqX+R~mq*y(cX#k=(s5Ai4D^wbQ=p8BzK=cxoo;Z4oN&^tRMx_CW z-lNh0L@!e5k)t=MGyu`7R2qQjT`CPg^fHy6IeME)0}#DVr2*)DW1<(TGyu^XRT_Zk zl`0KD^iGuqAbP1vPaVBgr2&XutI_~O?^S64q8F?5*wLF+8i454D!q2}ZZ+<&D3 zh~BQ!07S1>X#jX}&;Ud)SZM&FH>@-O(JNLOfao174M6mgm7Y9$%SrO+6kKVXOkBs}T zGyu^%R~mrmr7I0U^wyOIAbRae0}#D;r2&Xuywc-GZ(eBtqF1l<`q8^r8i45KD-A&O z_LT-8di_cR(9dfI7EsLt1U67<00JwhGys7eR2qQ55-JTqU<;K7Ah3o?0}$9lr2z;m zqS62aHc@E+0;{Mr0D)ap8i2quDh)tj8tLsat+fsIrefWS&B4M1Qg zl?EWNlu82-*h-}V2&|>j00j0@X#fI?sWbqA%|zXv+<&D32<)cP00fp(X#fJ-sWbqA z^;8;w-j67-ph^P}*ifYb2&|~m00eeaX#fICsx$zBEmazTz?v!zKwwXm1|YDgN&^ts zRHXq3tg6xg1a?(v00PUZGys8ZRT_Z6x+)C-4;&hRz``mGKwx8)1|YDq8kiaGztR9K zdgY;&1|YDtN&^sBTcrUA?5)xO1Qu6m00NtFY_QS*1XfsS00KL#Gys7mRvLi77Ap-vV2zaqAh5@p^G9zSUTFXV zo2)bdfmK!-fWR&*4M1R-l?EWN%}N6hSZAdH;Q2!X5LjppOceKDX#fH%tuz3EomLuv zz)~v>Kwztt1|YE3N&^tsYo!4QEVj}B1U6e~00OJ6Gys9!RvLi7aw`o$V7rwDAh6y_ z1Hj9N1|YEDN&^tsaHRnVthmwu1a@3$00K*{Gys7uR~mr8nkx-JV9%8XAh7640}$AB zr2z=6y3zmyc3o)z0?V#60D)~+8i2sMD-A&Ja}`*4r2z5LkSr0SIiq(f|ZjUuggWyRS3=f#p{kfWY=E4M1T1l?EW@ z|8llExPWRNFt~wA0}xz6r2z=;pwa*Ymr!W{f?KFG0Kqj>8i3#)Dh)tz5tRlYxQR*w z5L`v20SNA*(f|aPQE32z+o&`E!F5y`fabG>`>!+r!HrZJfZ$3h4M1=wl?EWVlu82- z+)AYZ2(G2l00j3^X#j$YsWbq=&D7v%aQ~GCAh?@K0}xzJr2zh|5L{8E0SNA>(f|aPRA~T$TdFhw!8KJHfZ(1g4M1>Fl?EWVsY(M7Tveq3 z2=1!V00fs+X#j%Tsx$z>byXUG;J$cSjSDWU(f|ZER&zdfwaJwRAh@$i0}xzVr2$xd z`}lv~_$Tha(f|baR%rl&i>ovM!Oc|~fZ*yX4M1>rl?EWVyh;NQ++L*t7`b6`r2**u z(}D}EGyuU3RvLid3TtqNPiC;+;yb^2rj$Q00g&PX#j%jt~3DQQ?%&V5F}Qy}ANTL~;r{)8+`rF*`}g^9|2{A7-{;5u`#!jT z-w*fi`{Mq6f84+4f&2G-aQ~hc?%(sfsXb5Jzvqkl_q=ico+rPMf`x*Cdf8+k`_tD<}u$>3Ef9C`4-+6)icYfghohP_|=L_!Nd4v0R z{^0(dN2Be0!u>n1aR1IP+`sb-_wRhe{X6f5zKiWV9Bt<#?%#Qd`*(ig{+*||f9EUi z-+7Dscm8(mJjVSypK<@rYuvx{8~5)#$Nf9sasSTyuJ?Ov_W|zT{eb&-U*P`TAGm+_ zN!RWd+`sz<_wW9}{kxC4c0b|%-B-AO_ZRNpeTMsYzv2GfcSE1ab|2#Y-H*6`_a*M% z{fYZ`pW^=Aueg8rE$-j_i~DyUxxPSLG?%(~5`*)w?{@w4mfA@XY?tk3BdI0yY zKEVB}7jXaT2i(7U0{5@J!2PQ?aR2HL+`oDR_pd&|{i|1S|LPaqzj_AuufDMh*A`V0539>e{s&v5_hHQc}Y4fn5}!~Lu8 zaR2H(euL^i+`oDd_pd(0{i_#o|LRBFzj_k)ufD|nt2c4~>QCIidKCAsKE?g3S8@O9 zSKPmP7Wc2d#r>;yasTSyuGPc1fAul$U%ia`S3l$a)zi3t^)>Eay^Z@H+`oPl_pd+2{p(k8|N2+lzkU|?ufN6p>vy}>|Kk4j!(Ho- zasT>d+`s-A_phJE{p+uB|N3p*zy2HduOG+#>(6oj`gPpD{vG$PpU3^{?{WY7{h=RI z!vk>t@B!REya4wPKfwLN6LA0V1>8Tp0rwAo!2QD`aR2a$uHhB9fA|INAD)5xhi~Bi z;T^bt_y_JE9)kOakKq2{CAfe13GN@Bg8PTB;Qrw)xPSNy?jIh5`-jiq{^2#afA|gV zAD)BzhwtG2;XPf$e{lcsAlyHE2=@;!!u`XKaR2Zm+&_E?_YZHv{llMd|L`c>KYR-J z53j=g!>@4v@GRUvd<*vv?;835H#`jY4gf5iR6BXR%mN!&lY688_k#QnoFasTj5+&{c?=zHAoP~1O!6!#A=#r?xiasTkt zuHmb-;jOrT_$%%o9*g^j&*J{!wYY!yE$$zli~EP~;{M^i{A_vd;{M^mxPSOC?jK%^ z`-dOn{^7~EfA}))AKr}nhdxPN%}(C4|~;kbYJ zIPM=_j{Aq7U?jJve`^Q(| z{_$71e|#41AHRkB$9LiWD-A&7!*KujG2B1C4EK*e!~NsaaR2x<+&{hz_m6+W{o~_s z|M)rFKfVt4kH5qHjRJ{R|o-^Kmodu#8P-uPhLKYkeZk1xjk$rb>JMJIQ-?jL`T`^V?w{_*>`e|&%K{TG`a zApe^`)AR!Qcm0f}C&-`ecQn00{%)V4=@Ig?`HW4kke}UmXnKbHZoZ@M>N_|6Lp}@7 zr0FB_S$SqnKatPUGi~~ceAb?M(_iGf@J^aOBj1&G*7O_sF1^#H@4)@jd&ok_HPG}R zxi+kkrWeVzV+}PuNvdha?k#()>1}fF*@I1wlY7%1ZF-&DyY_I?^W@&P$D7`#HvLbY180}QbcQ-hovBS=-t=9#e|oRl^j~=w zxD%Q_Ebj_;hP%TZ()46`x42`P-YoAPcTm%#<=y0tYI?Q2yWC+-&z5(aJFe;7aQ}G+ zx(nTjO&^zcr90Ez=?-mry1ZN6u}yE6cdt9R>GASzc1Jh8Uf$jA@TTX>yWJh%^nQF) zvj%8-z^o0_2u&}TwSyX>=?Sy8P-8T`Vb&gMkfuk>+C+__R#CGw{bJTKYMQ2R#QoDd z4s#`%9x`hqHB!?{X6>YgYI@47t<+deZ<)218m#Ftvo=$sHN9rmZfdxu=gitpjo0*^ zS^KF0n;tZ4Lp5U4i)QVphEz+cDVx4DYfUw0)1Tu0vnFl&)T~w2tZG*^Y}2!5ZL7v@ zde_?LXf!=+*2Ze&rkBmySqB+OV)MGZidG?-q(56Sv-c*m;^y=BW>S6V= zdfKLM&t6y0+w||*3ujOKo<2T%Wj%A#&*T2Hr*8WC?6vjWO@E)gxSqV}^Rrjivp4;I z_VRlArtio7)B6womfJi)VgoROHZPFa0Suwd6C}0(V`%dRi9Ns|+B`yH6EKQ4uaMXU z45Q66;QkZifOWt;`dpYc50TgijHJy=Bz6KrY4a3`t-x5?yhUO!Fqk%vk=P83rp;?4 zb_2s{^BjrozHV;!_V=yvU8O*HB&m@)xQ)}}ziM7Gp+WbvoaWJ_y zpOaV}%&yJvB$fx$Yx6yc^}+nw{7+(mFu^t-lvp9mu+0x8mIza9^F@g@!W`TDQDTuW z$u^&qSS8G|%`YXE3Dbma!Z_Q!Q(~VmP*^BTw9Q8)Rtht1^HYhX!c^OQRbs6$SJ*2I zw#{QDHVdO|^ID1B!f@L>S7N&`-Zt-**e?vY&4VR23?pvyVu>BYklQ?2V#_dQSToGI z&7a}^6O)Eb!>HT5T4L8Q>^9Gq*fxy2&ASbAj@mq2V&gFKHZPahISjqc(a?CRcz{w5b z2yult!!|#hTp~`f%@-%vh;wZ7$H_(FB-?y)a+NsCHou%)CQh@>H{<@zJIicK4z$ff zCpU^CZS&H}o#Ig2JauxbIMz0Ao!l!9w#{QFH;bcf^V-SX;&9tMcXGQp-Zt-@+%FEe z&4VX5j3aLI;>jK3ka5X49~LM>d9T>u-iO)a@#oWHt(L? zHx9hb!zVY6BX9Ha$(`fSap^eqHea7y`z^t_t-)LGX%GDV=0}j)gbhLi5T7?S z3(dbEwG1=>&EFuk4m1G4{ig$#`6HxOf(D@ZC#06b^Q5hy0cd^;slA{9XnqW- z&3Ga-0P((3v(fw;Qp-UD(EJ@z>p=q$+<$67XhCQInm z2B7(Er1pjep!sp6HirhF`E{grhXx?_b832;zej3)XaM^ByXFUy+8`Q$<`0GfYIYT0N2XxrRxv~Dy2 zea>L>!%1zN`;k_T2B7)pq?V2bp!w^h){X|C`R}9_j|PA?&;3lRM*~2+=l-VUqXB6C zKB@Ji0qAp8XaQ*enmiZlStzbLhg zGyu)tD7B6>0L}j>wU9Ib%^yjr52V3fHqcr-2AdqJ4*x5{IpVAO9Mb_tKO!) zr2%MuT&c~a0cd_*sokXkXntO)?WF-|eqX8mr2%MuV5tqJ0cd_^`&sd1)trU9UR*8k8#>xXEgX#kpET56|h z0Ggkg{wg)r&2KHW*E9gpkEJHN`Lm@~n+Blyx22Yw2B7)7rPiAUp!vV07Mup4`NO4F zoCYAc|J0DvlG6Y*f4S6}(*QL8xzwW505pHP)T+|}H2=EPveN)Gf4kJW(*X22p|tS& zVcK{a09tt(faafqQvk^1^W+mVyW+&h$W+`X@n!h5vC1)<0|6Imq7(3{6BLR2p(uQhz7u{5WKMYhrTyU z6dHi$FPgJPGyu(iG-r`$0GdB(&MMIWH2>0^WugIS{-!zWL<7+0-kOD?0cifHIV(j2 zV0H?A8r;7OfSj$O0WfPt17P-w2EZ&9Jl1R$4S-oKcy04<%~>uQfadR-vtBd+ecrBF zFdBg751X@MGyu&%HfPCb0GhvS&YIBxH2+z6bfE!g{a11JL|!bJmRp zpwIa=3kMH38%G1s{Bm=4js_s`^qi?{{<`q?oVjcMyE%(T1JL|=b5@TAp!xUaEFTR( z^Y_hJKN^7M|C_UbGyu&XIA;ZE0GfX=J|Slco4;_*8qxqX|KXfPqycFD#5t=-0}%X0 z&M=x~#AldoqyaGNi0|lgjm<*R05pH(oRy>jX#UALOGyLJ{FQUok_MppFXt>K4M1@J zIiqP-lLo--CjO@RIpcS7#aYZg0IS%)#hKFv#c}#&EGm_U1s7(g2u^#gCblr2%OE**Qx~ z0}%XL&e(n_W^M6pW^ZW#g8R>zT(h|}0A_XZb!K;I0D}83_&l?{GyrCO@qNwzJ7Gs2ag}l8F91X_+qo;Gyu&{K4;5m0L+@>o6Vln05m`PoK2?zFsqKQ zHoHy((ERLkww(sRtUJED`QPU(JU+bnQ5^JT<0Pv1T4~cg(Pa?e~=u2X)6&irx{tNv{ti?hDz?*^wAl7Q3 zSK(bj0}yMu(6jKipaF=rUT6UN9Clt9GyuFY=wo896dC~D8T2!}G-v>LYtYy5+Mog8 zy+MD&i-QJ$HwS%A?A1a8z`KKfhnEKp0B;Za9$p_b0Db;@oCSp*h&KogK%5nYUWj)H z4M3bFg`SAF2n_(Q5qcxuBQyYU7NsXiaQ}q{fL93(0Phm|C0-^p0CBbz`X*i{GyuF$ z=%09@&;am8p^xH~LIc1%g?@^c3Jm~n6&ipzYYV+qoV|qxAkN}Kj}>Qgp#k94La)WU zg$5wb@7yM}&^mkkX7ZyWkHUN(JNn+Mxkx`8(;wLj%B@hdz&24-EkC9{N3AJ~RNledzmm{m=mPxv9K>XaINv z(FgJhq550V~ zi#|4L97!3gLF#2I$Vl)7}#psK9jnM$`9-}|zMMeX_ zn~Xl0R~Zce?=t%3=w%8G0BC6ck_Cq0ciPe=>(8EV>TJqc<-! z0MV|?mGyuFXX#jX*21bVaFM*kvpD8o|fu*IVCT~p|0A8Es zZFq0e0Px~8kHedj27p(mc^%%JGyuFj&GQ7dS7-oueVX^-{Z9kH3)DPNV1tDQfLEw_ zA>N@h0K7!a6Y&~-vz={hE0Pk4yW4vT(0C>xqFAJ=> z&;anBr2*hYO9Q~0mIi=VEe!zgTJvkXY-s?3`!D9(c-_(fwEWxj!leP=jcY!RS1t_z z?_Be9ymV;*c91qS1}C$ z?_%?dyo_l8g4-zO8+jem0L1)%dLZ*crU3|Uq?nK7l}rP`JK6jsFJ&5l;QrHNIk=WW z1HgOP{AF-4g$5wFne=E5uBMpR7#XKo*X&L}t(=-6Qr)dCqQJY8QO-%#9tJ=J3a94!}fS0v-R^HY$ z0KBeg0D}8U5A5Lni+R}K#!Ak|uJ)d1c5r8f27s6L_hO!Q_3hvD*ygou-j??^4M1>l z#XK%=ZW@5#{)>6t;O+_y055Ozyu7_>07h=e3;^7JdVmKPn4aLg!OaKr3a0_!9Zmxf z+JH$NR*YM}uLZnc=N4z9J(00j46%wO|jrvV7=znISs zuC~ws1ovOeZ}W1e0pRU!zB{;H835+L(*vFtJPkl_|HXWGaK(iNAh`cxemuDULIV)o za-jhT?!TBf5AM0p00j46%%cZ4U1$J;t4`1Q;QovG_29A#4FGR@^X7gIof1v@`AiVWy0D}83=Iw)fPY?c>$1kY?2ycG#`N7o} z8i1JJPY?g#@(T?>aQo@;&+DHC;N6i~W_fpHrTAyh_~)GX=eP0Co3p$#viz*?jO;S& z+aqVr`qs$p@y~0szB#hgY;TP0Fx&q|PMIwz{@MOJ^73r2jVwOsRSv(Fs4 zVfL3s{yqB(|Bt2ffTyzm|NmVX2_Y+@5)macD=TFrGc%ICclJ2vI_KCUvyk18nVHg% zO46`WiAY6+gj6z8|M&a*`#{t`LPxB}5NX0rB6K zTtaS3HsQJ@oygsiLOk1&K&)+{5t7Vg!k#&T$Yc&7+L;50U(DWw7>he`ip7aYVX-4x zS*(e97BfPK)sQe_)g$6qj}o_7)re_UC1S@`S;BCuBtdKyBO0~}5#w8T5Zr9sgf1H! z5y8epRI_a&-m|Tfx3VvhHQ5))XW6I8SJ}tO1MDN@%^YvY${f99Z;q$rB94dTUXDBD z4cnT?vfHZ3F59k>bG8+cpKiNAUfGsL-p?6Nw&NtoX`Er?2b})oMNW6JFqb{qg3F4W zz-3Hs;nF3~aA}Zta4V7xxet;FZc%bQw;*|pn~TiJ!$Q{P*+dTIStV8Qd?yX@Op&(m zejusx4v>6#yGbRy?W8{5JEV=<>q&Ck%SkTVi%2=!&yza0CzF=9Q%Dkgp(I;AA5tox z6RDNYnl#U6MB2@Nlw``UOrr5ik(&5LNT2!nNIW~(NV+@dNZ~tHqAPdIMZeoI9?dK; z7_BPM9qlXdD7skSR&=jGb@YFNrO`5i=cAnjlcKW)Nzso51EYTlx<&8ZX%lU^(OU>+TOx>bv`+{C0OlmF&J9)wjDQ z>OY~9C>f!wC`X~#s4Stds7FFxQ9p$2qJ;MtN15-@ii+JMA9Z7oXw<|Wz9?>C<|u99 z^~g}+`N(U+pCSi@Uqv#CbVMqO+>CS=sff%K$&c(5Ns0U|LWAVi_%9{h%QA8ihhY;6dR0C6nh%sE_OR2SFAFkQ|w~Il2~$t z=)TAZ%Y9xE@%wBdn)m5POzcyM;1-vNI3~^)5iHIWaYcM3{FV4r_(qAra9N4Ya7T%o z;h7TG!XHRn2%ndT4d1mtDBNhjQ#fhAY54X1n&Bh+4~8=z5DZs2z!L6xU^Oi7z;xKt z18>8AALs}ZmAnyVA$d70Rx%^3Ns=5kCg~H#anL4A33tsVRu zDlYXk)LLpNG(qY~XtPvP=x3?YP)_Nz&?C}Op#jn!p~ceXq21C)Lf51ZhDyln2(^}B z42_rh8PY8CF=Sk(D}+P#c8I2IS%{x(W=NqdDdf4VXUMXwMTn@}kq~n^$qwQnU~9S3Dk6s3;foTv0ISw<2SZh|>47 zrb@$S$x0n(tCi}`4l3oHWl*M_l~wjWYp-l^HdR^u>}_SSvy;jkXE{|?12t8~1ASDw z0xzmG2R>0L4qQ};58QRwKhWT?bzu16BY|ay#RFd+-WIricr`#mbu7SA^+iC8YEwX+ zYC*uTYD@s5ns>;Hu>tU_W?LpQ5?Ov(>&b?p1)qPFB#9ibB&E4RHi+jik z9rxlB;_gpQFuTv6_~yoI(CemQ(BS4_knNUX5aQNiVCDA7K-rDSkl#(l@Q>>$!}qRK z!#3AS!&29mhBVg|LuXeZBW+hbBT?4?BSzOeqbZj*qh~H(jH+DNj8j|`jD1|r7#q68 z8B4m<7;klXZ9MP1X58z%$E4o*xJia{fJvZpu8FC0n~99`gb9Z;i|L}1oN2$4jcKD3 z)ileg!ZgsS$JEs6m#K`Cz)21#t&`s!Jx}&Irk|{LY(AOpIC9e8aif`$<32MFI*`rj9Il#=+dnsdWIu0SYR_#!*sEBa zv3IagwU4vlx39KXIn!tH_RKGf<}>`3*=IB@1JAfxnw&|tlsr>s$$aLu<+R<3Wv88> zRhgZZRg9gxm4jWXmAYNM)egHiRx77htOic+w7zj#%R2M4yS3lx6zdbG>#W63zqV#L zy=*;hD{$(8t>&pBTbEN2wuz@KZEH@++4h}cxBYQy)`r*SnayFFGMh6tH2CKX{OK_K z4X@3t%@6pBKKRNS_>M&QP8awIn(&hZPL10x!%uznP3t3T@y0#CvSp2$9U zG8@hO;VGrV)2fH3)(21TyQ3C7Nr96x@KjCV=?216&Vr}i2v5Bqp8lc}izx@}1{v5D zrm#B#VV7jUZmEY|(+j(2-uX4`q#D>!aj>(_zz$P@oyKNd1-tGU?7k_NJlKf=up{+g zX9^iP!!D)4ZY_mf+XlP$J?!E?t}?KrnGBU-cU!?O4}smD4ZFSpc7HFNf^Tl~a3Y?- z$tZ>s5&|d108Wg^i4r(Ht#FFo!D;&KPKA?Y4JS+rP8x&051hIrIDOaP6t=@@{0OIV z-Gl8oADmJJIIU)IYW?B#rot(%fYbaKPW2}^-RqwDaMA755OAAbyS1@hnyvtznM8X6zfl0LY*eRGw z!7!cDVM%Ims z8HJ8W!<5vAY3U48lLXT<2c~EpOw(sDRmWhuuKDG|r1gV|dlV)wuZBHL;V_uS88DSA zVLCsADg6$n^`if0nA|Ne!Bb(9JHSMjgUQaQ76Vhh0H%EtO#K%y{l`EBRs+^S5nh5a zlz~EogHjlPV(dB`59(12D$)#U(gmtA4(hTR$f?2sY9j`!qYmn00V?DTYD5E7$^&(( z1C{CkwHgN1`hHeKi4jyx5Y$W#RP8vZn?0yp2&i2$s9q_kUo)uS3sA$4po&XDbPCL% zlDk1I4}ogxgL>M7iUxz4CV{FJgSs|?%65X<4uk401doCO*Mkz%K#|QsnMLI+K&3rF ztx2HTnV{ZfpyIbd&AUL=KZ3gd42cJ&w+6+RkU0qIe*`GN9B9A;s2~dHAPp#?6lkFd zsNo6F!w^u!SD=Z%p=&@ET|gK`KpK8P92!6#90z@XLdZZP89*hMflh7!rE~zTyaj5R z26|Zy^8}Jn0it0(a1iK56DY?NXvYbtCkW^#7AWWf(9kuYqMJZRoj^&0Kuc3VO)KG7 zfS`hbq>cemaf_<}UFid5*#K>M0d++JeI)~hT?87d1S-1?boLY|Z4hYf3sBoqLJ5pu`TK#aBR$pMW0cfg;x< zwSg$Ph53LkMS(Kqfi|^(I*oxo?SMkPfJVcBN@Iaevw%`dfL3dOT5kirb^yip1I>N_ zs{IOdyBt*mq#Fgqs}JPMw@Vx-SOI8Q3#ix#=-37**$rqp5U801^qd3~eI97K6sWoy z==v5=_9LL}ZlLZ#pzm>@@HwFImFRFFb6p^Go*jHZ>moqyQb6y@K=DU`=8b^rt%2^H zfbxBS_CtaCDM0_p-~!Hr8z=%-P!8^(9$dm5a0~6=8oI$f41kOH0B&LmT*Y^A7ptUD za2nd+I5>H@z5Sb=-72N&ZGZpI&6O&GWv0$ff! zxScd`Jr}_J6oCu63T~(xTu~FaqdVY|9)eqX3a+Ua+|wIyQ6u1{#=%uhgS%P)m$d|L zYn}WaoL4nCun2Hsy5PvT*>-?C69She25wCfT$?PoHzja!YT)LMf~(U5cV`GL&kWq2 zHMl-IaDPtV0^Pw4dV?zr0CyMyE-?b!A{ksG4cub_xX2W6lj-0pv%y{Fg3Bxbw^;(N z^9s1na&Vzl;6`h~l{SDoZ3dUx0&evlxYjmsuaCgRc7U6G3a<7AxZ56ZxqaYvUxDi# z0QWlxF8Cd|;rHN*KY%;_1TJ|T-0}pt<}cu$r@=*k1vmW-T=g8d>jiMxi{Q3@fb0GV z?t2Mb_-}CI%izjaz@4vxOJ4)G{(r7L3mm*XIC*sQYyaQfqsvFPkFFoxfA_zCL;<`! z;iUjCI(YT}{Y#X>%lGd(aro~af(c%4*Vl-v>#M}s^%X*MeVN$0{+k&7vqV(>`ALNR z`9Wy^StPdoSs*^H%@MV0--zh7uf*}SX@Ym{3o)@eK{Tz76O`3Ygwg5;LSXehF|+cH zXjvH~;#LL-vz1qb&`KXMzuZH#F25j>m!A^W%N>O1@+0Es?>6Gm?|VeX?-s)DcQdj7 zcLTAqR7-R&RS_4K$_eMCD}>Ba3Gwe&0nzmO?doDClr3A5Olv1i2k26qVy-3 z@cS7-sQwHgw)_kr27h=H*M7JY!9Sb`tsiy-`wwekbkU5cSu`Xf7xf6e#iInzq8jn} zyAsj(U6!DHmn4k7ixC3fg@~Dj9Yo6lHxa+UMwl-!5qlOk5#Q(6$!+sX_T^51WF$lc$X$OYf3$)4Y?k`=!dkr}>SAithX zBVV44CkM_FWR2M{GV82AdE~1*x$3JuIsB^?S@)|knft3Q`SXkhxp793Oqn@IHl7hB z3(g3VXQ#Qyccxj$NzK#!&Em(YO0;I{^bs->q|YU z;7d8l^Ggv)>C1T%SQP>XwrwIHR(iRpR^`@m@p#MP8=nXCX`7A6H=rd z6C$MP&wQko&upZG&vYcq&nwY;KhH(~93PKvA0Ld)8t;yF9DfuoJ$@_t-&l2Y&sb@6 z(b)NDpRuIq!(*iAEn|Vv?>@OjSAMdI4*z5nt@}wUn&*>3^yEkJ=;n`t(Xk&nqRl?i zM+<*kj#~WiHR|Dq4^f#P`lB2^bVNygxE=Lxv?i)&v?Qu{G%Lz?G&V|YG%Si`)GKP_ zy~8R3h%Gr}B|G_oFfYGgiAeB@K)^6;z3r^6kQdBZm& zJ%%eHm4@>pHxH*ozI{iEEPv-08TQUTQum!nB=0+|$S*^3k++6KA`^zVBdvz$BgKZ6 zB9;fgL_8fFjK~{&8sRZ`J3?u&GJHxZ zAQ6!=z!!0PfGOg@z)JY~o2l^bH-q8DZ#u*M-rNk=cyleB{mq5&kFR6H8(s&6(_TA; zpL}f^F8o?E{O7BK;T^98!*gD-guB054O4tI9k%(^+pwYjj z$zgLZeZn5Rv@=%!EOW`oOm+WB!eSbsC`@V*T_YH;W_dN;S(bp6@+gloX zzc(#3y*DbBYGG^^?QDX2=sgmnd|NfY3sfnlG$Ar z;@q7Xa;TdW!r1K@GSp=eQr&eVgw!P&V%)_SBGg3}^5exqaL0?`;M^CT!JaP~gAczb z4rYCk6#VgdaB$;u`{3B;`oUJu4+V=q-yOX6j5)aH*-}vHvyVYR&t3#+KWh%!{;V|U z>(k_*)~6vs8BgtloSz;KI`mX7X!BFSpy5u&pxVywXQ`dTXU#i1&Wd%`on3j7ceeWp z?QH22@3TQqEY9jYQ9sM~MC|Nr2M2uMb~P}&V?5BUqbpFkqdAbZqd4&6YEoqz7bhyFefEB!SeX83bG4D+9QVDEqLfsTLX14)0^2VDLt z57zv)J{a>GYkTH*tF6v2wJpcbp^fBssLk1rsZHMx{$IrWn(p)ZCEj26wYxv=D|7$3 zFT?$M-{ICA-}=^Q-?&yMUz=7vU#V6}U;0)~-*@*`eCqCv`o!LQ>|=AU(nsoEx)0sG zV4rt)Px;i{)$obCE8=5wm&r%^?wmLM-B;ejcUrs~?i6|_+@X4(zT@UCdq>}U^BpPg z(c7HfH*PO`CEp(La=87_OW}5z7t8G=ukjXNuiGuAUg<4|yj)xOyi{A(J-4-d@|?c) z*t6|cg=fyKR8OB<{+>r~nR)WvQt({3$>-U5bKRr(=0}f^o9!MaZeH`)b2G_frP;@$ zui4n6yjj+R+|2D^+5FpGviY4mU307Z@Qo7prW-W(dk zuD2SrUDF#xUELcPT{Rn~T(&nnb6Kdba(Pyt;&Q3p$0f4f(8a7?(q(`BRu{VZdFS_a zz0No5>YdZ;GMqi?0-ZJMOr81bWSoE0ayWO@E;^Of_B)Yl8=b6bvz%mV1D&?inmUbN zmvL&n&f%1E{kvnp^*%@a>-CPp*V7%>Yy2JG))+Z9)JQre*RVRe)XX}l*Sv7pUQ^|; zSe@k1Rqf$WUajjutrm5#t)_E0R6TCbUj4{^rmEDwql&OEsXAjHS*2=kUd3-ORkdWUv{^$xvXWSbXm}f=kki>&r7c@`!Cg5)?G@rOuOW2>2pcb zQvVXa<-SY5EEq2JSxl5xTeO$PSzIc0u%MKxSlE|xTd0-Jn+udaH(x8cYCcp#Hg74h zHqR}QGY>6cHMc1FVkTem(2TRBz-+NN#H_#A$gH7wpIJunMzet8k(0*7%_pUb(@$VXldP zVStHo;c*k`!aXMJg=@y&3tk)d7t|Ox7Q`867o0H;E>JMGC}1;IDEMN;ThL~-oS$bj zlpkPpCtuH~Fki@sl)qwVpa0TOGr!VsPd?RfQ~oK#iHkCZPcAYUR$TmKkbJSlz~^Fy zfzd?|1L=zz2HP(38vM+gKQWN^(}3$SE)af zOV#hrwbrlCmD117WzY}JeSiE^?v3NBxyi?Ovz$r2nw)!j89CW{ zK{=j!Rymq_hjV!JcIJH3-I&v^J9!~r_xXhY-P#K}x>*+lbVD!v(6PDjOh^4fiH`7v z5FN$~Cv;}d3+eQo|E=A8zFYg^`77Gw^Woag=Z&;=&x>duIKO&~<9zS2rR=g}!`YF? z9%P#wyOzE8SW5QV(SYo}qn6oaM-OL59TmzpIm(c|_vmcas#bqipVqCcGOePlNUfMG zV=d1t5iR4al_Q6;dX5NWT|TlgE9}TrrooZkOrayqnM<05na?$8nI)Q@nL(N+nR=QE znSz>vncp?&GCMTBX5?%1XZUH{&N!-3n!&4)nDJHJKch|EG9z1EJ;OtNZ-%NmYX-ae zuk_DqBk3(_kJD4tYSJCl&Zo<%MW-{Wxug%P8l=~$%BRPu3Z`4C(x*$PeoI?FJdpPC z@cp#1!{uq=hcnU)4o9TzI_#LXsG^_tL`5#`qKZJ8j|zR7rpnwoPL;uPlgbaz-BzwT zm#TdJoV_yXoUF3@IR<5ubAw7M=c<)N&XJY2o-dCErKIdS z6q>Rq@0jvf-Y_LcUMa;xUL-|Do-Kt%el2-aZZf%Eu0NS3cR$%&t}0nnE+=_emX`cn z)-SnG)+X6cRwr3gRxX)Cc31Ma40Cd`%yLq^%;zL)nU_ftGWV0#q^py)`XmqJu4oeh14EH4bJc zavY>4j!F6_Hc8qg#!8+@w2)Lu6qVeU`1=4);?o24iFpTpBzPVeOHeuRGJ*L(Tf)fx z+Jx)-ixNotQxlB#M1` zi@%9KCf*UxE#4eIv9Bz?dEbTj_^{#&wEV z#pQ||k8>AMiBl9g5XUI8Gj2ebJ?@(D#<)=7pRwA)ld;^wL$MQkUc}zm(;6GQr#{wv z&*fO*Jr`ns2qnfo5{in=67r386mp1_5i*PYPe>=WZ?{Tp$!^J5zumiI)pv8nvhHS# z9oe-SQ?qL>CTiDMjQ*~H7`|Q4Vy1Vt#U%Rkd5&b5Q|Y25Qt$G;D~v*gCVAJ#~Lks#{x}v$0Uts z$1v?Pe;=)h{|Sx8e~)I$-$2{VUrw9nE26dXWz$mml4!Pk1Wf{hqvh@1w9f5Lw4CkM zG?(qhG`a2Cw2j+UX??u1v=Ux%nlJBenkp|ZZ42*K+7J&tt%BzdHI(NERh#E4m6KtRjt>=D8CAgnb4Y?mscW}2*XSnLAEnF4U1g=u51y>$bm@9+2$eBoez)7K|aYj(> zI0LEsIlZVW+nlIRx7kv2wwY61wi!@mw`o&1Y*VN9awt-ZIHalG91>Jz4q@tM4gu-_ zI}i0LI~(;ZI}=rteIs=%`ya}Cwk1k6+X5wmZHA)D_L;)XHcA=aI!I~Q+D{?2c2f+u zc2ah1eMFgNy+^sldW#ar+DI{Dt)U39mQ&_gE>l`riYO^8d6ZKu=P6<=>6Bm0$&_~H zcuFQSm156KqDV4_Q`WWwQ=V-JpyY1xp}21GpvY};q5QYSfzrctno`JQP4Qx~peQk! zQW%(wD6co`Q!a1TrTA|?N>SUaNnzfsMj2vMp_DT!QbHKzDO!v&6m~`_$|%DDN)3ZJ zC6YmmqRX(C!p*RUGETpn(m=nHLeL9P4CwhO{Pf!?Q*=C(n{-^17`kl~Q#uaHE;=^K zw@s{+JDXT2iJO=ymYbL;BAYf-zHeltv~6UdoZCoGvE4{V*|%{MWog4E%Hs_iDOnpf zQ0(C)x#2&`8hq6M8N71fXgF@%_7r zau{Arf9WW1*Xb!&*BK~h*BL3A>zgTC*O@58f0!wie^@ACe^@Enf7mG7{%}w}u5F{# zu5nSK*LWz$*S1r5*Z3(Ds{)j!)twZ|>TZhB>K=-~>R!ssiWsG3MVu11a)4sCB1I8e zk)g~l%TrpH6)DNfDirHwHHzr6Cgtbvqm)O#btxIY^(l70jVSwnn^IPmEGV5z)|3lN zrzy@$4iuRs7s|h19+a+MK9u}l0Thp4!4!pG;S{=GBuf8JDy8&iJjL&4GDY=gI%Uhx z^OV6Kd6a8EiYUQ9E>pCAlvCJ$)KEqj8!0u5wd4npYSq^YYWUZBs_xeoD)-k1)Xy_dsf{x)sg#)^s`1PiRdD7jb$0p( z_0IGkYSJ`4&1!lpO>~-<_G@Z4t$j+ImNg|ybC^=4Nlj_f*1s6jy1rP`3cfheJimC; zl)i+}7{3s-H8z*n3$wZe_o)q zd|sm^d}fHT{LB%v_p?CE&vCJs_Ho&mtZ}s%$8o(F>2dRze`EGBJ!9T6MPs2cK4Y|) z!((YNTgEQNy!%uZQ~9YOCj3)tjP9prF+86JVkSS1#Wa7Mi;4ZX8e{g6F;@5^SM1`4 z-LVfpNXBM

    FT;pc5 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%0DP9vaViWz#a^|h!T@~Nzr<7+faVjk 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 z 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

    RpbWCxCRgH8UjT7xh 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

    -7vZf(qbDjPa*LnB)q!v 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∈(zQ*|_@use2C;^Y8tT@Lk#7tv-&Q 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%0Dt{XT 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

    gh5 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.nu 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�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�K(542b0v_g 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℞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

    &m(>) z$fbFdQv|yS_7sGN1(nWKgtX&gJ>o<`F4Uu3Cdj3ElrI!qB}o5;)L$$3JwYzpqkf|x zmlsohUhoyc*93P6{zH)KTWKE=%oNNL93Yq{SS(l~c%tAWK`swud3Az|h-T|1rTF!G3~+1oH)l3Kk2N2u={3C^%Vgn&5Q78G>^KYXs{Bn*^H$ z+x{J0A^O#VR|%TGqc@7YRsir%DGv9D|9T3y^L65I+pm!W*gxFHBH&V_b*q7}4A+ciGik>{fkV$JmV|!& zvE&-ZHJ``e@N`&S7-15E$%Cl#4(7rw_*-i>lU4?Wi8E~#9`Ibv3S={BXF;~>ZO+%< zm0-QB&(zD~$>c%Q>4|}lF(R8u z+-vcqC>zrlcs{W0lKSqO!_Dh$+L>)R?1mZvXy(gL5Vza61?@|Rj_vCpcHA$IBcOZS zEoxieraV&@(V8C4Td<2k*$H|+^JBd%pLJTp<%Ijg4mz`$@|efA+m7};xBG75la`9Ka6;Nyt@*-83#hc;z3s5vo$gH~DE-uNDEFJkZFY|--W7P*k5-^1 z&M%$@KRatv$>SxRxBHWZZGL%|Q!MS-F?P3a`-Nk={u1pRd%@N>8z20@O?qmVliv$g zfdg5!dumr8za6Z?&iQ-r)%4vymi6H!t!2H|_|&d&zW+WjxUW#{nP}RxZ0DjM{^V~Q zsoc${jY-c>A9CFI$udUcc87M3MSQZ1i#@*s7_#m^W%t;zkl0h!@M1!5f1!Fi zWeoc}4sA63yT7%6qE-F5qqRSy(HFEorrYoQ^82_i*K<4I79o;45EJk*YciUsPkkAw ze{>iWemC?fPN;r2OeP3?a`Q?VJoEOvAiEX@zLT zZ16c*7f=-r-iN~hobxL%^W&Uzu1xZcg32%cxu>$SK^dn|&+nP}^D`?LC-c`|l(ATq z6`&VG-#q*TdUbvss$k$P{Dx|f+4YS?3xk8w*f?JR*@6u!?(vd3ROv>qLjoxNxBGeT zoU{bZ3a(8hRVj%~oZy`q)H}(e@G}mv6x#d2BMjb}R0}zB5`Ka|@OXywWjm34jA-z# zU%Yug6bMs8ru@V&mONjyEFw0CbU$Siq45)woj}b95(vx|Q6)`Kqdws81#IBJX8jlt+=5%O>Q471?3E=?hhahMU5)q54ve#Oeqqil4e22WMEHRquPmubrG_JHm^ZsS2g{!ger7Phf|D2Fhe2ux z1~|1c-1K|U)UdZOd>6#XFYx0nYR@<;%4IVbn~G2pXI=V_QQuteC*f@5Y+qXMcn@@t z4DCxB9Pg)QCbTbI?06eQ3P)D6T@NOW1;9aX~w{1$yiCoWC|0dGGV`{(1N>=pSq+BHq zYG1l=w&Oh|73D)j2YxRdD1wL{Y?gXQMaZP}o^3xwhkruba@u}U1=}_-R`jM!whC}exUZSDqx#`&>3A`JsK zKa%EwXRg!pqwld>;F<4K=|iJeus-n2b$U_sGs@tZhxmX$dsK8F%Y#pDeJUxAvS;2R zV_y>OL3{Abb^3%TAJ}-{nWw7!6Qksrd+^Dv%by%=Wc~2T&B4JiN69nyz%zePwP$*i z$CY=hFN24YKl=$^bRG)?&z#4IKl@2vl*DrnKDoQ227mU;!RT*UBzWetu-EjSAj;1sdf=JMj6jX-crd`?v(7`gY2LAJcq@ydBW({na|$f#DP{%FT+5;8Ei4*5 z^ApfI<&&F{-7uDBci!wR_u&MLqK;!x;Fa`a4~x6*fndJvO6Jvxl`@X4(YxVh0S ztPebME!Ri8(f(2+H%G}c_rNnh8TIpw9-U8v%Y5lGm13nEy^0p#nX?7{>@{xmr?ddi zoJIPxZ*!w(vQF^KwPKwc<=1vR_~h1#^=@=4E#Q+|D;{>EIaGjWt`(cy=#lLARr+|u zbcJij%TPR9rN*?gmf0vJds?1v<@B91A1a#P@#-@!2h&-_j$H#^BZ zt5Z-#b#s!rb9f+$e8hHdsn7o^6kT}M@xU|Z&h7FJ+X$XHYt{9?XEJ3uq031HG%ugU=ibIfw@X9q^mXIXDs#)d29p=dlOine)u&y4`-niorAI zQ%cu`FIG~u!80F%D!V@frRJIAdj_HJpp+hbI=U?OGJ5I65F9u5Yh*yVNk|A^=F6^v zmFp@Zc@jKu-wm5~w?OA%VT_Y>mG;sd3{Vve+>76y?ktuwTvN+GgcUcp*QF>BzPBHT z$#N(rBV_Ya2yT%o&poBrnXm=PoG*OtNAzBVUUS%wk?9+e>mA6?Qa6|-9o2!8ix2(z z0wCuY+8wQQPeZ-~p?CFsaLiTV9g*V|^s#r{!Y1f4*ji53nFu+zGwZRc+8_q^Gqfp( z-xhI;m2L!d1qe{IcYCL0r1;aiq@5aS?@n>m7o9q3=4gs`lIzcLQc{kA4X%78iksYE zJ7`Jr4Q0T36mIuD$tJ#a!%;VdK8#Tc9r5D3(29;Kg(kc1@fp;o^mLBT7>t{R)QklC zh;2`=$Z4z)d#VrYak?8=thjQ4)dgHBonc3nToF z2bxEirlKQTJz+H}Hg%I-A6S_E*#T{S&^0U_v|;|w{Xh0!etu5$+A z4Ftb)j;m%1nbFV_IA55fAg^`mkmAc$4^>vD5%|ky{$VrKwmAuz)tr%wyxb9E9yk8xu?u^z#gG2V=T5(pe?Ora*?as*?>_(}wr5%fN2 zY$mQoFlLOeMSvN1#KV%*fc7xXy?|B|p0Sb`=bk_k;VqT403*_;g>k)uNNcnnR~RJt)ReWa)gkUwEPHl7NEV6O#zmXFMrr3 zd$Z-OF#Cc&dCN!6sBfs7(@^$>Jlf)wLGJvz`IWhqWwWbiz{_LJ!ivfnwPodVtLIlb z|BA93&uRRU<^HEAkD8TmydER0qG*7Z%yRR#Mfv0{t*ERjTUgUns%Q*(b2$ezM- z$FV`TTQI#Km=x*>FTHTmn;CTd3uAE7n?xtQ`Ov@vZ2t6M#GeF~U}!)_FsWnb&Ygo< zA^%)*6i)=zk2pBk37DK0jP!(bbg-S$=4Zh0Utrb|wYF2WM?x9FPCcaJvbZDUtq6R_MQH*(lat#>OOeEzjRKHl3Y~H!1_B?St(GL#fA~tsnfkwf=b+ z2!GTX$SO_=e~;;U7}2!6U{)WLeUuqXU5Wo3WE>8?8nK0mBc_^ha0}ghMG75-Y5Tbx z3m*~_$T|p18}I?{gd2f|f~IaFFzQ#Pj&d_)|lLkdYms%&VO zU+0wm8~CH(JfY_Dy1KKg!H67FJ%{c;mE+yTiUQbB*@zR0)5_RFa*=W-43gm7Iz0a_ zMdpRbqumNO(oulUUyFwdrPa0d3mYm+>ziOWzp}Xru2BEgPKDdL6Gn@N4>e7uTj2%6 zhZymk!_I|stE%dA|1-{o|6^{1%WEpj=Hpe4co;8TRN2s24cEWsfHTvhy0M~>&T#Qp zb1Er*rE|@Z$wRgEIH1>Hb?~Zr_WAq=|GSu>^D7tQFkjSEQ^{_YH7~BfVP7+RXqh@M zmBQh#Iu&8zhIAgO==OimH}Kh0s(NR^`5F6c48yhE|>4;5ks4K5*Y^-Z&j1}c3e6gc{tSGNA zuRwjqqoA;0NUUE&B@Tzi%Kou4=aiS{7Uj;y8M=IKtf6vIHIIr|;qVdpBZguLLMpEP zY@R2de3*@Q6JyeHRwP{*zR0^cv@-bZz$N}m!Sx)SmhZbNIW1>Qif?9G&exLn+1_+Q zVf>DX;@6S)nTdAsW{zVX=Y3jNA%^&ARIufB`BthQeQa?+uQm|35 zS@0sk%LKnCxJGcD;0D1>g3k#4QSfa+#X&*6dqnmy7HkJy2N3%UP7<6cIA8EwLEiq; zo{vt6w+nLF0_Dwue-?aCuotc*nLb$X7{QYSX9%7xsQm81{@Ws7C&{JG%o1YZ%{ zCiqXm2qrwsQ-0ilT%1DrXu*>N&l2Ps3Z^d=RDRhYuMzo2g46JRi*{v#b%M(TuMk`( z_>kal1pg$c*7BpAj$vJ1Z^2=L;{;C?tQ1@*c%k6cfvreeH?RcN9EA^u0yyFPJC#BSk)1aE$0r68RLt zS%MXUO@hsW=Mho=N|9FyUMcz;MP4I_)0pZf4i|;|Tg!f@3uXzbCwtK6h}=(*e~W29 zRB)7FvEXvS6@r%vULnZm=FESC;H`pp2;L{SUhwCFj|e^?$VbI2=MRD}3T_d6LvWkm z2ZFl=)k9?DSLbtJ3eUH|4uYKo4TmsWGAYm*;<^8%|-W$c9tM zg*r^{CU`LavFh&?>zc*&>!enCG?#f?UEw{gHxgxr7r%ul|0* zt}U0aLel37(w`K|zF&}DIB55Xpz$mF zJCW7jYovF^34?Y$1$zq)5;UB`B9RTJaIDD32~HB6D)o`>OMS{l)8b7ym(87F^1i7Y$@^ykOg0~8; z7u+EDOTkA4>CcAwpA!6&;H!df3cf8!*H*OuSdcdalmmh(g6#x52_7NXN6>I23q&3! zsIIF}9v8i`Ty=c~JVoT`f-?jw1m_CUDHHQG3oaAn(md)f6;#({kiRD~m!LBJcEP&@ zxn7F;hXj@XT*!}!{IuX71YZ{1B1qqj%)ecb>zybk38o8X3U(3fA;`5*v_DGlIKdMI zPZvB>5Y-%zd-)anb8Wpd%){M(UPa~Xg>&#otE$eCc-idPxc|4Qf_REzi)DC7Fo&PY zis#>3Q^S{dQX(GEIC<4iHg2{uZb8^&iVvNXU(rO_mls80Q!?HYFnzxp>0&$ZEQD;8N z9VqPbVknROWBd5J-IVuz#F>ZJ z)!b@u;mvc1*_g&~kD#&3&E7W`P_Lvgxv^phb|rC9)l2aK1iO9xtp0XDnrYv!5yxDv z2dM2WlxNRr(_f-BJ)EvN*l$pFf}YR4SRTinb)vl1Z4~BTuU09(ub9WSD?cMWy1w8JRU9siA`kR=eDnAf=mux@$?Ukt{d?vfcc;6@`$xyo?w-&`!5!^_nWOKyKd_@+;I{jtqdSfEcC_tNQ*APMcEzb5gj3T#2&X*_{rG~1LvZ@Jz;3lN_`0)hz zQeC1{-a<;@;7?E~cx?^Xi*a7t2{7@IQ)7IoPG>xpF_!upkrDn=6+tabeSRkAB-T;a zv6gS*2mVuEhe~*DKS2i9w-T*_|5P@}$6G}BPi5S@8maW3dL4vtASArDS!fpgr-o2| z(l(R`|Ec@owS|P&)(@uepL!+B7Y-Esr)EH_cx`mP1^=nzD4)*4_u{qj{z3EFUPKK3 zQ#nxS@8O63Q@QRu!do@?Ph}i+kk=ND^V)db2mh(M0pZANs1W{BwU`>YnOPHfZQ+CR z+A2^Y{iiBk+cPX6&TAV*G0tntq8R734P+1Eyf$9S!+)x7OL~M?zVM%_#mvY@9Qin} z?Iji!=e6;%ApECltaGcjRgT`@Q+g~Zhd2JU_jPu$q z;I4`D+Wy8?$9ZivtSFJ!7Ea`~g%f#g;W)4DQx+BHweb=h{!?vUTR6^ZJC!3D=e0e^ zy%guQ@v$)cr;dRUd2Q7+j`P~iV~^szwx6-0FT`u(-G=s`s(5XSSgyruQ~pdXUfa`5 zw|H&aSh2-xdy}28cx@zp(0?k~EabI)pY|57Z3JbD*T#ngVT;$6#!;|%ZM>48|5SY{ zDUQyiZ1LLs%y049_%I-B@!F2!Fj~Aeekh0jQ!hq2XY}pW4c6@w6J+?VJd81+XVLW%kkR6 zhSzoqtG9S zm#IHRu0&oNZZ=zaZNEUAo7;k0)n0T4D%>_+#m5kO1#n*~+_oDb^V+Z1aMUIYw?`oV zoVxqiLCtXc5Hc?+vyWkUM|F45kQUemcz^+fmv4M8&%>-luwgf#a4W zkuAr&@ic_K)$`$zwIq!?q{9ec~T;^sb^cXp(rH(Q=`y#zJLLL)TE9d+y&JM=S>tQ;d=1dWDr%*j_{>X*b*5^^c z5cOF4A8x7=)H|GAZYpQOQ029Cx2vWOj*5-Y4O1V8{)5}qrG;N-eqLwR_AiM2VdCWf zs(;r*rB1feDRI)+2a~d|t-~oJ#ntX$`?vaaZSQt)r>C5ea=N0&4hT908N$pQm;zcZ z-=hw)9lo|^JT(;0mdA2&3^6wj0@~x4*~=7!%{DKP7YFh7GYAI zB%P@Qwiezd3G)#YqmdEagP8<%nsTNRZdWFaz7|F{Xd%$T$U|C)_duOS$-`p#97C7S z5OvMpAk0)LXApGFU?j3SKJ5sieh?QKU4h^_(+PZl>IeTy@x%D%0eS*QkU2nHWRy)I zVGtl2YhI6lK{6_zI@b?S%2SQ9of-}{0!&7u>})A{{j9b$OWA6fWhq-NmAT8oy9NPN zFEeyxeL=(4CbWw#PM1Q--e%w_>s7wuoMQMFTht4|lx*}xh>Y5Yz8Jcaedtes?&N*wspH&eTmDSwX7599 z>)0Q&Ek$HG0;enYIrkO!`wa-(@pmC`uiM)%EMXn~`hP(-Tp~y7U%_8H%#GUzV=#dY zhxZMN4QH{|Fst|C#$hMNxpA2AT<)$paIM@pXj{2)xGp!`IH(W6h6B?oJulcbKbYii zmlsU;FCfz?CnKYCCYW(xx&*U^gsMp@qg*!@}|1l*@hZGwiXun&zZk3epdDT(FI^Z{4bES_T}2|;8ZPe zTndJh4)U+2Y-vAy7I8}v(8$$Nkwar?HB^>Wl%k`}h06EhVds9JywuJH-$y39CcKn> zN#}n18TUz=Fc%aE%2QeRaZDT zhQalTAH-GFHONXvmY%I>;#WoQ!bgyB3Md^tN_7epb@@EKthC2196by6f6F6YvLNq>)8$o{JDGGnV%9_g1jK$@1XOjN&yPNvYLsw*ooG>QP#R9#!Cxn2wBFKn#DFn&==SZV2$aZ~??h+#O-7anGZ zX@AaNf*rOuKP+ZlQ}gM3_(JcZ(8a-(fp7aS0Xyt4A55(}iVu`OVHFhbLwMgD z-~4LTjxA?8nGku8&oOSx2UF+TL_Qc!IlTA7yV^v4NK5&da`XNtZ`6Z(BSM+O$2tO2jSnw6W zcLnk1PL+peND9#%h3SI%f$V0*`g0+H+1kV+` zK=5M08wJ-0-XVCm;3I;M2|g*fS@1)_j|BfI$d?an57&qiQw2K;b{32Y^22eo8z?wf zut<fJBw z9}`*e#UVc@GFKe1Jg!zGa%hNObyH6yYOVQ|i%<%3yQAYiIKTqUZQ(~dm@hv@N zUtJ-e1F0ECkRdyoGi!}D@>mySRpu9utu<1aEah@!4-n51^G^b>g* zdr;Qjag3YIq|JuH#F@6eJvi;AQ&t-P?%4IdJOJwkV8?n{ANxV%eV|=lGYn$Tna!l} z@0DF%YMwp^usmGSwU)O6agzs8=QDSysjv(7>O(|6~VMmzaNG|w&k7R zFLNLL{SMOY@@5Ry{bPCDEvCHhBhEJDBXG;dOW$_bA7*13!##q=?%1A(#v|GQJ9}=i zUTzN{*zK!8`_iFf`}jn`wC~r5qkHuLwY}S>JhqJ+(V8Akte100Jfh-k{mxhwBIPiS zY1DdbP;Nr|{>X@Ire5o1&Ir(mVgMk&mTG@7R!%u)4v7z`NM|~kHrdx3>yN# zc5oh1tUy(^7mp}>^RGVez#_UPb;|u`ZJxAsRjU7;R4>@AXN&bJmGJ8x#B>5d7`avr0N`_lLS~Uj4C?k5BOLap}=( zhku9XKdL?hS~uU#v$fx>4@2wAhfa7!p6{W0@``$lfAMe5FV!`y>T1B{^+xJNI1}&> z&UP7W1HK$gi#WGv5KcW=*2 z7V)eBZV^AE5a$++MP?sqIfh%r6`O`zL}w$0Ta-+FE4Szb)uEpCxo^&RIHtzp*B$t{XtXj-{NymYm=MaNK#bBm6k80Qx8 zdkYq~Xf&G^=N56fti>(bg)Um$qE}c{oLdy4vBfRoBH}o=h`s_WZqZ3-vCSQZTbx^@#yid}dY3JWbBq4Mmc+S5s$qxDEqaMfHQXY82g2eO&0;h6;uc+p z>c0TDh|gXvZqd`MYQNl~$uy30i}*Lw;ufu>80Qx8D-ag9=t;IZ&Mlh7ioPJX=r1fP z&Mo3+0QS!<`jpLxbBlh)y%gsbt!8SRTf{FoSll8$c(%AjYgo}2;uaMlr^PLr$8s%h zQ3D6V;uby2bcNqik`DE~dT3EmE8ii(52@^;z7a*C<=uBCh_k zxkd9RTil|5;Php4i*96oi(B*tN7dpMRdQG@Zqc8aZgGovTqSUe=pitHThyNln_I+h zQY3JTE@T;BZ*I{KIE;o{^g22a=N74RiN!4%!R}eyBHsG$ms>O&<;J;1^eAU@i*9FD zi(B+77JX>kqH|f4#Vv9vTil{c*&&Nt^aS^T#VtCARa@L5eqh7q78P=yTil`u?JaIm z8tpA^ks@eX+#*F=vAIPfSfI@*FBaVeWy^e2wN7vmQ3tkcRZ`Xk%8UvAMOF#W2yMaQuRac4Ap^KY??7d7i>4sI??Sgj3v9H{EcN_P*hZfE zIL|(bM*RGZaiH}KYry7?#Ix33i%~U*M$h7AaX6GQgkE&!>=r3T&Tk<Hu??Z4b=UbI?XnkfVowIkfYc^ zW5Zn{5wdgHmJ(IouOR<| zx<-HDh3w0xuPL;>gJn!#&^8-+Bi7KxT`l`4@*;#D#X^Q`oianEzkUbEIqU#Bn z7kW;ge)w5}`(>Tubd_TQQpUID(7LlApQ&;zM~-`2b4*t`Rv?9*19cr*cRl25RSsU6 zynr0NRjbZWIkcsYZ-f*lM8a$F z`#}3y08MWFDI*-;2ww_?yhpLSeMP<$ zQhWw0+RsQ|5(UtHICTz_dHz?)JfO6+@^pk;Lsw|6e&Q@wXsvdbu7<4BcOOI=d{2xV zoBkGGXMiT*4AktKK{jzlGi`Fgv|*h>tpVfIaB(>BgA<82n2)%FMldWJo-PwvHm=X- zhaW`h^@a(~tt$f9GXw^|v+%qYOIT_P%argfmE%;xMLNfl7DiSn{ba)TmA>9>VT4b$ z6)A_2-)O<#@)RO$CF;g+n{6Xxka7sL)1;huj#HpZ*wg{(Od+t$y_}i3=)J|x(G(cC z_gMmC1~_V4qPQ^Z2lRxSRrGYidIaTei;*X^;A>$-cW1HP9lo?n*w}75A~Wr`os#iP zr*=fEOR{um@K_Ss83gW%ARH(a_EuwjiHM-?F!~(?*Ex-_20?iZG>3 zVua}kph^++j^ItN+Fa#8Y#QQVB#92ud5G31C6i<;21-dr6>6{TQ zzK=0;_Ek$jHI2PR-t!KScOQ)jr~)PL(*5QQsE&x)vi+K=X1bh^wPh zMRd}~!AlF8n)3;Y56F5~eNs>~T`hlO1OAt@j4 z@LRX8i20Pnlak(e@S2V3F@!+~`3OT1iV#L26eE}|hDZ*Au_;Ep1YrWgLZSCAh-uvj_n*KD$Sk&cLy`@e!+4;rd%T!H)LPZ zO;}>d;@T{Ms5Ihhz*Fkd3#_43@|2p$Q|g`3Nzs%>ft54Hu!TZ{^K%Cc&Mg?I*f&9V z$pUXE*d;V1nAyLLsxX*2FfZ7pBOo^z%n4==unjcrNVAImq}fBD4s{9n*DL`IC>HDj zvXCY)ZSm)Y1{=cBTBL$1ROyZ)v#3WNeMYr1i=v8I)IS*Qy>Dg_(nEP<79G%FFJ=)& z<)l2HZ*O+d0r^D26gVKQ=%9=uVE~M19;%2e{|!!{{x9&0N)I!N{=JN%(nK=Ne-B}( z4aw(_h(miZg%VjorKSJJX+Q_Lo*A65P5`{YIh9SIOI6Ze7id@&6^^)*vhBc=`j7aQ zS}=m7%EJz(+B%p@#kH&LUn*u@_wus$zlA@PZnaxKbBQayj{cbXc;{t&NG z6X`=EaGQqPvant^#Wl}d%R}VaBI050kRFHIF{m7m9}B9r!H^I8lG5Wc3wQM#pBn`a z`;yY*aoCrX9*3{Wm((N4y1bVJ|3btYFMf1~_zn?^CI2qz4xT|#4hSX@F;6o^&Jye< z`hFr05-bq?D3OZ=$BBNj$kPPR5WVpwHCObtqBlOJmWbZ?l3FdY@ga4a$m<0+2tFbB zq~Oy;^yg)fw+Ox|`t2g`6#Q890sMjHxG1g>FhUvSbSA>4m&mzdS0FfC^rJ-{CwQpb zqeih`EO;If^<6|n{a1?qYQY;s{{xZl6jYofCXzjNQB+%lD! zS#XNrnS!N)a|LSz8wD2&E*D%Oc&XqOg4YS&DEI@xI|c6-A z0n`5~$h8NQ_Xu){0p)Z-E-#?W?|Txtpny10kc$Z@^Kmzk%Lj;DQB3600pd-98wEEB za!CNw`C(z=M}oTrU0#1c9~9(r0m?DKBL$BZc1Tu;OKOE}kN-^3X9;!{>?b%#Fkg_bL0Es0;3&aj!4kpAf_%+E`{{x+ z1ZN3W2(~?s)Qi4JaJk?L!Igrm1Xl}QCD``7vR3r#1n(1EFSt=~li(AAPYP}pd`|EM z!IuTM2)-e>U2vyhq0G-r%4t}QEqW)f@toSGve`g*nN~R0#PER^xHD2;X33k~2!BXa z#3Lj?^mjay%YFv7v?IIr8*%YAFM zfJDXuP1#hDW7>?rt!6W6$3lTW!%ndzOwYz^I~6@*wIw0)rSMvY9s3K(@qO7z2Qro1bmu*=KO z*ZpL97|Pc2Zb6)RkgT@x;70A_Nm4eZF{~3bb|ZW4n;Z3@*a6gbAMEToXm-s{kZQND z2nDA@$M$tVF#UZTadfX9ptd*Kl*hJlBU;nL$?D}C5;v+S8+I%}Hd7v-r&z=4OhEg1 z4P`cC7eC8X4JkYXA4^9bIYLvT4uKoRwqZ-)M%AysCfs|o^FeyR{UF^xZ2Yusfph1) zxBOi9=&^`R+vZnN0O?~9pSCTeWIt@jB0g9F1J>$rLIHb<8; z@)5)$kXx1{x)B7{loRgZRdTOYF@zQ($LhAm^7y-MdA-UB84%K zJ~!mYnEBjrA4n>v!=R9F#T@8h;d1E7+jo-a6Qa z;Ogj`NC*dlxBGV@l5{h)!L_N6F-|{F!8@kzc}%|B&#ZoW4GR9S%hgCr3j_lbA#zZVqaEY^a>Tq&Y7o-@ z0!5ZLILwRN$Ves>WT*>W?dr%Ylo|t(7f^#&n4%jHjy#DBUSXydQzO4;*1|4YOmAP> z?07>`)RVC6Obk>7tdpnXXA6Sr8;-?fbUeo!0onrUeiyCvj!ZKB8_4oTiWrD=VQoi= z7>>-tOz=jDm>PK#1$ak`m>zk8;xQs-MxJ9)$BLL0;pL`REMnJ4h((PSG3Im_fSSUt zcS874wrV}=Ju#Vajyl@tcoUN-`m>k2kyBap$*NZif3W1y4=I* z@E+o;UGJPr|RGQ*?FY zJCqUf^FT+s34bu@ z>gXY+gN~%r^P_7igO2oLl|D2|?+za5NIJbJO764=I?`h*eN^-sro+{dK9v+lc_Q~f zN7D8sY6-UoS4TR1LX>`hA{z%IK7R-XNZ`tJd2PZ8YMD}H_UHY|i1|2e<3`B;M<~?U zpR-UM%s74Uxa?qLw62`p1|5lRsk2^1<5InBH#`#-QFZPH9f<;t@#tjs7jz^&f`KUS zu06Oqk{N*-+3{e2#b@yrD9t<84d2P4{zlVcw*v(hHI$PLbR;c@qNE9Wpd*b#F6HWo zkq2Qc&F;L}gR7%|;+i-5E1H6i#J^@Ns+cn9NP0g8qTgmKK}VvoFFPD7XNNxjFhzwg+^ih}!4N-ROC25a>wVlwzeDJ)0JAb;K6>mh-ZQ>JnMLHb;O<9Whc%<9_UD{Ro8!y$&}@U9)%KgB&xc)JPoMXjS2Q3 z;=uq9^sX)sK65PmMd_c$Z!+iL$B3u~fHsuE7K4t&Gap-$33uF+Gnn~ji2js1ItFtm zWu6V)+mQcE-CZnka))mrPAXL%LiWQD+$pKlvBf-#K+)dqotBZ}PwSF)YN)+C#ZAWq z_T}JvX2(E@3D?QuB;ZO>QgHMH+rfy0fKUcZMxkY%*a~kT9CcGtKqE*wQu*&liX@bj z?7GKixX7N;(>XqapG8Z}NU)FC_C@Gi8Y{&3^?^OE9x~t|#4f)*>|2=z$1 zhKDNm*i;T$_W=5FObUlmQ!Z%NqaVhqE3W=xDuQ13%yW-THSCbSsdTtf9J+Q43h0&K z0w(m+G1!6G`(ToAZ>!rI5;ZWj)H-*>Q!hfCvyS@srk4ET$0jfEW)`FgLU#ne)6~?$ z$N()gw=j~Yg}E(^aN@$Orez8u(-DxJFjwj811*d+Yay&Wgsjj)Di5TDZ8;>Lv$~kb z=7yXd{=XOZx9s+A>M8MRPl;E%z^-VP!jkwI=dAaO81QtD|8>R7Vw# zK0NtpAa#OKJ#MEF@F)T%rxH#;0O!S3W5e>91MCV$XCt6iLKTAFX>iq0Ez)`dM~yka zu3(hoW;;gds$~4A#}35!xkXEf@{5=fU(h+lVRsa{m1VQ5XZ-6|c_*%}cM>1eDCZP= zxud{tjk}}3d=+;Th_$+-K)lr*1*WTUM*+3CqrhJ;R<%#(6r1r!*q`B#xtVZK;Xey2 zsQuZo7?ydT9qbIB3Q6OFk=~HSU3%C@!LHT&-aDqSCT8V8JqpZZY!-4b> zT_jvN_|#hKipILqxn=V!@J08=@-lwcy|MaS{2C7gm9>=(b1LVTpJTp;-sW5Ii_06; zx8WP*qxWM+&N#KPvY~NCc}-buSwnuojHgH9J zH#N>UZtPh7adWlcbm4q{d%dzEroK{dzN=ne*I3WUoKBUdbhX z#=N<%z7pSWubqvyEiO0CC-}K``Z!2j*eccOuk|mSy%1l2*Wbpc`P@3(uIja*iEb^* z>*~&~#yFKW&Z${gsf$!CuBs`U)992|H(Spjg{yIR-mhfn?Yqq;(i6NkWstVsG5(8N*AKqA%*O{{%Cy_C$bWoD%4`k zG1YTa%Mw@jmePF#_H$(;KKu_?+FUg2v>AN$;d`|%mi@pgTh&ywME5t*T6+bUUtKpF ztwK{us}{~LmoM=rTI!{@`MSa42&A;Eu{{38eBCOv2`z9+Cr%oBV(BzzF?zv%v42?2 z$#KSK2yu4^32sYT zo3AH{`i}oxu5_JWXSo_s)o9llvdmSFMd|qCCyrA)wTTO4QB7%Mf=VB4a1VetTL~T{ z;9>zQYpdsDKcUm==#2YXK%?p_%d4xZD=W+qpgsgxU!vSOlr=A|z>ZMoER1wzB?>7m zuUlx2n6n*g;#5{*L~YLoRXE_-Qr$=0Z8eIV%(co@gl;Zh%hjD-T2sbKWx;-Yr7hP1 zxB8T@R|qGZpkX5J6BgmjQOzB-x3h)W-0f4SMWcDi)VDROJ@NawiRmHJ+Y=n+)MQypNKDWGXep5qPdDGFD=kP$GPBY?9_!Aem-v}o+&s_aHSw0Q88Vu0Rqx#H04c#&kFJjeAIUp z93(hOaH8N0!5YCOf~y2?6kI3xu;Bk^?@i$IsOt6ccituMOqyxaCheqqXu7XyTG|3_ zNolDqv@}40f-PyArVDgQlWrhjDijbw*%T3_0vBYFMNn2*l+9ZZiXd~@Iv8z!Y70;3f~rHu@ADGa$$erSm89`T;USo zdf}Uo5;#`s*a$D7;1bA4+~e_>lBZN`6N8-_pM#`86R9 zBUT>_TSK15SU)~9Ayx?Ou?A#5SfYME;Y{IdAs?bJ{wQICaGB7KgNV21{6IeXV*1U( z(}iaW`EHx>7YZ*GULoYuSjOKid{Fq1@MYnv!ncL*2;UbPp#XMDc$@>43cCyK_zFFr z>N1|+vnNgxP7&_PMcp9%@xskQzUN~8Glk^mP`*(34dIo-Zwqe{-Xgq5c%Seg;iJN5 zgwG4Hn;UmA-o6m6+<5zs;qeyrD5oCJq2ulUQ8;rv^ZrjK&GkfopbI}1oH_0z@xtxK zWg1r2FJ8Wnz}wiz<0X!(g#w406p_ndG^`Zco7X>p0#~XI;W!V1sT*)j#CLS@5(gJU z5r-Lf5srntW{8(Kcr+Brawk+`x?)7KTpXGU<*r3I&Vyj;^PN(uN(QvVajPIF?G5hd zj#;$FX0u;t_Y|yg9t2ZY!5+tcyu@*>P$cb5NZ8{sF}BC+v^WofsoP-hXK9Aq633kj zF==lG?6E$qA9kyPy-N{ho@%UIzS0H9M((6q7{~QmVVtfQ7pi<39WQY@UN15nFRe%y z=b?`6;Bqt8Wc}(A?L`#|_2cmrmr6|lTW)~8v9SP*%OWPaA@w5CRYKVfdR}9*+)}J8 z6ZQ&A7UK^^7nax_^CZ(PM53n(soKgNHMRyf)@@5+KJl7(Ch=;EEX*ffQ$22iX+C^D z@g>8oz?^IEU>pmhRQ)UGmAwAlfn?3)(qP6dn||0kr7Jh@JoWd}fQP+PqHqbqzQR7j zSqppnPD3b%ykyn=;;}iel=NCSZSl0S*E5+;+q26z?>yygZ=dpo!S-n`JZ$d5%=VKJ zKKYGv7QPOy9H-uM{hamaZ&1<=J$oAJS()e@20@bJM8)8P)f3V=zRU+njue>8kw}0! zz7J-)Y|du?UPb+!?n_LS=OF=vInob6n4`l*8)0rDGjkGD%;mj5!&ydGm(OEXKg%oZ z%%@No=JLJ~s$BL~{1??BgO`agv@w@A3(owM>Shb)s}ak&yj!93vqe{Aa|x zQHj~`XQ(FT@^%&Q!_Syl?!=PtRA#N|=|m&X`C~f#!VHl-M*>pu3jA@(S!)~0<|N6S z%llMp_V5lwU@q^teFG@&EioI06!($nhed3`M2RI~$hu6DSQ=hJak9kn@J%!kb9p<< z6(O%DFqgLzdxdnhz+B!=1bGfeJvWy(@7Kb|vGp*Qx81v;*Y~A3E1+oPIh&gHAZwVB z=Qukk=JIAkGgTzd9fr`0NNr69d5#VlHkWrbigo>cbQgxXO&@2?>Wf@e(BZ7fqF|iG z`k_^9aUXV;$a6GYJRQ+oRRXw@5I~+ggH^>`-p4~U4j1O~W|##Pvzi;@g0Oiw>PksT z;9TBsp^hZa`8Rh_29oFeTjG&G@|=IGBtJZa)x0er&xho>TTuq)@^+#l&-r(BKFCTg z4QDd(_m#II+(GeP>m`!sS}5M%`&?9y(+t?J9R-cot1P-Z_(JLA7BYicfU5J4BJ^{HJ7UTKHR5;~C|h z6<)%v^lb56*50~sGh?6c!a2N2o-1az?5o7}f2U_;Yi4vv;Bf+68&ejg?e%Bs&A-x%JkfZ1iKsgFNSC zKRSU0V=iwemqd@C5YFZ8@|Q+eQ3iR=ZW2MB8_o0}&$;;O=phvEgFJU1&T{Fhu@Sc? z=kj*(6C%!X%DKFswD^h9pIAP~bM8=58`aT1$a60JG$Z(ME^ikE}hYS`ykJCL^nqEEd-F~T9JaLZeUiB=iGM8 zMr+w1kms0~gVtF9X^|5UZ@*I1db9s+61;}%oXaVFo*1*Vf z3~(-QnlSQQ57rUnIi~=5j(4P-%iAeHp1X=EK%R37kmp`tH9?+p3XtcrtOv+*u9SyC zo?8GTtd;dC$a9ogDU(5-qdYm5NuKjTo?8J$v^R?fd5!}6{1o;X$aBY;4DuY0>J-cr z$aAe|5qBiXJzn=gp1Tf;o;>PsE^lt!o;J@q$a5^!m48>93FNtBQ3}X&RQ2+B7_iZe z0k#d{T$Vd}FYh(#*+yvIHvJC#7jq027pnr`x{YKDK%V1~59GNovU5P5vssosxJvXz zJg&z`EbDUt(&W4$Fd2YDM@Rg=oSosbl^3CvsY^us}{=PSo@J??~OMz zKZ1N8bqBKk6FQ%abZViZb|9UVm zqZ8fl2Ydw)JCWiYtOGs|fo>il)`4-#L6<>G*V`(rGS!C`_&1P&gF4Xz-%RndeRLu* zQ*#iQjdft0(o8i%(|}c`hSCE6Y8aT?>9?_|Q^gZ@uX!GV<{Av0`E(`bsLC_$*9Fp0u&JFQRkJ5WGLpD-P9 zW%56l=}2BAcD|V-9zAKoTp7C%JGbvDJm~A1~lqa)FrS zG1@^TRY%}n4!&TLa=G47F1e>6=7g;b%)knUA>nYRZ!$`u+vVyA%S|u#ZZj;K+6ZKY>Y`)<{@omHaqI2E3-LSX7dNjJPO7!)i9wIE6Y5z zK=*V91EX9r6+6xjC|RV;rCMU@rR%@>gj%d#>IlL#tTwAQdx-X#1Jp|fmtaMygr!(9 zKewY^Hak6m)n^V+FXK*2QZK!>vp}2sV4D&XSU16dTf81Xu9!1hDzt^0+7A86{IL@G zS*lw+CUZ#>`QxKFwpbxy;Us|kn__Lst3i-!yYk0DG1-)f{IN1Q0e8w{GM6+_zKvs# zn|-mf!V$OH1zGpwU68=F{b;h?ppZF@XMS;RgtKvWgneXn3$}mCV^OZSxh%>RH#aUL z(G|TAo3@M`EN*Fy1Hic6aj|ici6p6HdVZQIlcFEmKR8`7NG4O)G&hc#xw>KH`X!D3 ziV1?}uUgcwe8uX2jqR4>T0UZ(SFZT?Oq;wLLak#b)~_8i8gw2UQW{pZfaM5c)X3!= zH6I|@V&gmd<2oe3fFgm*g$e{)XbS{eT)e~tTd3P8wF!c49s>=}7jrg7GkbvwTb9d2 zHh*%?%WT4|!-GMXU71bi`expRw_c{a{6L%2ILv&m2@@U{jkTz^+DDz9h|Mut zeS~yj=31-dK(LI(>5chuV!^g2uC^mKI$jrfqoQFJn2yF6UAcIvV*`uS3M!(grj8d# zqAEF!q#2S-+K#6B4>Ezdx!XpXjUXeQ#*9QGy~ga@nA+OL_!D!qjoZj5v3MQ(QB+Ur zSCP$_q&7pwH70jDDxxEL##=-*X4gKjD+}c6Si@S8qMYE8 zwsAmXg6J;f;7_JW#sFLeBK2w!y%Tg*V}TaP$Q+;v3Zv-2AR=Q-IL@>q96R2wsE-M* zu*lr)iPUX_!uA=*9d9ENJF;y3VYAk(Ue-o*bv*E0xb%)e-Nx{Bqo$3ws=W=o+;${q zju}VZOmJjldUApL{I~Em+x9yWHbuLR8P<-qo!~ovoF`1KKX}TtX`+f-XSLg5W6uFc zRu`|laBNGsL^v+B80TW?7c6O*wH<1b1ZSH98ANX*+$L$rtJ=1wdGB70fBZbR^ybGe;^}>^drwh*)UMl>S@HV0G*^vJs$>cuJ z-mAiQh4zpadOi#`9-{C7;X>gtLgS+${mGKQDZE~Im+(#D`@)XA%R;{1!r{VwgmxE( z_#-7R7j6`uCj7GSKZM^E-Y4YqN|y7MFpbN6%AJLk!a2hE!efP-g?z!vd=Cow2|>zl z3o{tzl)DJ`5LOFU3i$$`>G&x@;+4W%gbxV$Dvt3l3i*+A%J`<6;UwW~;Q}FP7fg4e z@GRjsgx3o16#iKFGvTYk_k>}Qv)5ZVLO4nImw3OM72h8>L9EYc;l9E-!g}Ee!ZU`?5| z#k}8Pl4IWQc*&fOfcENyhYRNm8-&fmbA%TXvCY0A^OAQ6Z7yW!-<14&;U9_67vWgP@`{CJMAXOTLI(Dd9M6GVt#o?{Ckgjcy6M6> z(jO{3TKWdzGT}zWe@1wU@O0r>MAYLP;n$?USa_B6*9mVF{!sA`2p<(bE_|8@yEa!c z(B?=+KfJ7XnXg$Vk^2=LYs$4`Cl6UhtY-PIN%~)zXg@?koK?B5c-4 zKUcUwxJbB^h;(Zt$8#oshBCI_e+Y3Ju<~%&F@)N%R2cJj?b#dZRV)28;eo*R<3c!PoIZv2NIfC`RQO-Q7lpqP@*OAB{aMJ@oRrIi1B63_e38lc$wI!% zqHZTOD4yfuB~Et-6b#2pZJ+jh_;|eB zf&|I>osj51-fze4<@pZHYl`iy+r?g77BMkAQdc5fC6wKu=e;cLm11R?iSA1M2;;9m zbnz0~W1eKXGf}^%<3zwX9r*QQ_N;7M3jF#pe}P{=X3U#YyLw^n4L|oL81#>HY?{_= z4EiqHZ+JIVd;ZSOSNZIQ1c6NT_oYvRxOx=Am_BYp`S&#RwCA`6Z z5Nj*eLv%Yh^>p-V#K7Uz2+HH6c{_>aSw?GZjT(}>4E`N3Ik0yd& zzbB1clVR2j&!qY5d)|dO^6Tva%Jb(!+lk@K|3fI~W}Q>o6N-vpl>Zhm7V>-NRhRCl!3!&o8OoJk< zZP;lh!(#tnyniutA;(0pSKth!!ud?Qx5R8Xnc_YY{gBrb!9;E08d#FLGUw z4Lh>livmYY_d`}JSlox5C4M~(7axtxTvY<-z7W8#r<<}LtoP4_7;eX3u%R=&kQeF@*55DJjKu+@OgPXf31NrsAE%8VozdpECk{_PSdfgUG1(09Qi3Nk( zB|3h6a7X8*R&r_hc_#k8@>YapY~sDvOXSzz#Mt|LUybUe!LR2Npy0vYKQ*y`_yB9Y zE!=71;P7i~(?da5KHjKu{QBS#73BE!!J}$`w&=x< z+=I!l{~8N=NrR32`YniO)~@!)(b9Dd|ER}y*%MKn7}aeEat_W03)4P(C%TMw!LMgJ zY|-f3>8C}bnIHUm7e6C+RuD)x3!N zRRDfHcO~Q3pFo4)*K;2+etiQK;MW%wQ-R58U!e)`>t~?LGUV6aOdH_Wcd-=4ujj7d zHqxW$fW$^JaSJ*b8|ehpDVMzg3Cg`4&~Shzl2R3K&u1+W^Ksa=B|`ob6vn6LD72kf z{Q7-j83%RVqXyvD^E$MGzCR@aCZ|0ODIz;|gI`a9BVsXP158fK!Z3Y#bUxb;e!WHn zN@T+^mo@$?T4A?ifXQipLQ@=J0r>S4XzJ(83Vywli=qc<8vObL%ryA*4D3K+RlEE4 z0Q~xa*p$&yngYL`XEU05lUc#9ciS-=-M|KcU(dwk*T2hc0De6W(&X3Q#G=8kcdeKa zv6lnz>rXO!bsbTi*Wbnz;MdcH@#|NyOz`WS0{r?aR6YQ|-YLMZ z=N$I|`1MW!em#Ar0`Tjd0{r^J*lzIaT`A<(uZMZo%K8-iddjSn$>7&hK0KDmuMfbl z-wcKMECk@!Q(&Jz!9D}O{v4CRujf&nf|&xpo*RcdlH?w*2jJH~07Xw8bpr6~xp8~? z>-jC`1MqYN6+IH1{fLi@Kix{dwJaX;(eh6;arx^EX5py{UBNe zz=Ll@;sE@5S^&TP5q1vv_0=YVUw=5_aXm(Fwm$y_rQ_EZgI|9TcOEismf))g8w~` z5?MsHUrGUshe=aY{rG+YWc%xojHl5`to?Z51F}60d>!&vsXL3cpV0YA=za|OPU;S1 z-o3h9gYaI+vM1K6Pcz*!<*CV9_G3j%3+8ff_1<-5NZ*ajCCMW4Y~%J z!y(PZin9<~Z4Wj1$Ey-=POd`wtj}S`j!2>yS9*pjv3Z2F+Ko!W7#; z3mN|P!|K%ym`PJ?$Mr~aE!H7%q_yQgp?MH1aZnt@Y}9ozL8C&+|z099C=3 zTL^GIn<4#_(%R%>gcNaw2gKHpDSzGALcmP(M z#aWxl%sqpDD*-|#Tj_g8E|=?R-RGx8Oq#U z)Ys#{%T&{!0ODv$5NaswOJVfs7)F^N6qQgwqdxH`z%KWH&7UB43!pc`F5U!(;jpxO zUxM~d2=FIxjt4_`<7_Z2>19x9P7A~3^k9=lW5mPDfb(2S9GT2Ow*=N~)UHYl<@UY` zqj%%0fV~Fi1vfeLQWxgq;dsemKWXQi;EuO-1Q(o3;6VjbK4-TwFafKVnoF>wL8^{0 z3u`9Tl-|m~QBKGf$oGgT;wh)yvKSI5+yqvwJ!714Jn$#I5L}H8A@GO^j|jp@tnie` z+T_%(a)%M7TarTvb1g}8dMg7g50fuvw=%HA2_LN7L`1-4fDl)%%~63BL(TXvHw8Wy zbk#eWFxX;_Ah_yn^tQ52G$+3V2JJwaI+Sn#R`W|>|INdS!U^n3`6V#O`X>Dn+!IOG z(6jey2q0L*I&dvYz4<7PmxU!;h)J8rgNrEgn6?+zgpoF7GHJ?VGMDslmm9fE={Cu3 zl&HiX+ErqA$ul1F_rtntol{;Vw2W!z&p^dMQ_jb~EuN)v%0fL-9u>PNJyUSgByARy zAEfS2)?w3?$1f#E@97*l5*`*9lu5S^Z1xYhbzsD{xpm;oC$|oS z3T_<;7u-6E+T1#zmRkpIQkj0GM~mx>za;E^k;gEvL5%&8eT zc62Q-D~CHpCfBzpvm-E1k8HXqbHN7aGA{>}MWYa#&h;$H+_(X;-OBec=ZjoX=J694 z(F;$%&CDMCb}_SS#w;gX&-~bOWimHqDvS0g8VMy#J$Hh|!Tkb$ALZ@+K2WpF<0YSoyEJGINrHZH7??J95l_mn>c=#na(vUI;P>@Soq8VzU<+q(J#ytUmt(F0dA1C zzpq>M54xF{i^}M6sDIlhIR0<=o9OzZX;H(mjqnhj4m+ZW}p3<@Wl-!o=shQK#U*tW_ zlri{Q#82j=ydk_q8o&RD*{Py1KRZYl7j?;&dtJRKQ{i>@df)+IFRxF!pWO-}X<=5|)@6_)xn%G-fn1ojrR{cwx{tH(3H$d0z9)7WvWxEt4mG$& z#ft*Bz0!CnO70DjTqR<6Vh23eB9?s6_hf?7O&87<9wJ;QY!tQ#j~8wheo1(~@SDPK z3vU}-|H$NIGUec{7GKCq|$J)v<@AsYu3I0VC(@e_p0 zgzJPS3ojIs_rUc3EqqT{g5gd*Ut1H03ilGu5S}7DPxu|-Jwkqxnfad=zAF5aa2)Q8 z7{9;pFkz!`y>N^0%ficr-xJ<1{HgFI;qQbw40M)5x(acCa8Kd>LO!r%JYUNaHwsS| zUMQT%*Qtn~DLg{BOt?{azVK4vjlv%aUlqP546!fLZg1fT;UwW~;R4|*;fcbtgcl31 z7v3X$Ot?e%mN1LAj4ZdSaFKAW@Y}-Mgii^p@L-PlV&9Xgl4IYKIg&Z87t<{lt`@En zenxnP@asbJH9@|+C}UgxP#DiCzg_8`C8AC?mpt%A>3=KzTf%pw&)}HG^m$aZ zdkQ(F5B0+&^P`l^H&*(6B~KO3BBGuL6R|FmzEOCL^evKOUz5*KM!wS&e}UpJ5^}aL zmV2e}S|Zk)CEqT*p9nkKgpUZHSNsm)uZ5iYi*{q*l6NR0zlUQz^*LcF5&Eve?!qC8 zA0e!few@&JOJHZJ;t!JkP~j26Wr{ymxK6l9cp?$yZx)^*{TGE7N`EmCZLqnBQ7(DV zY{wnKyM^~D-H#!XW1*d&k^gDQ&k0`;{!;k5@NJ>dHIa`OZ>%SYqQqh$`EZmYVWqIY zkR$=dPZCZO8j}Hf5(XIGB-|+cjL^>ih(A>_X<1Bvp73Jfr9w`-%J^%AvG2_7l7Ap1 z`;+Om3!e~@tU&!MLQ)ebn{O+yi065n8%R)~zPpfQ1j?g?wL-hzfSzmw#vdgl>wxka zpE)kM7 zKsolAA#s2*c|Sz+ok2OI4^XZXk}g1*6aNvLgm!%c`7@F~DdL8K|Dt?A=matC9S0uDIPdHz=P`E_6T)0x$BwQzK6`mse*Z3IW zM&=VABlIv|7`kN;0GD=!yIP(vl1rR!IFt-?+;L$#ZqsV@15gaSc$!VaD~x4JxUC z@e;??Ly;`^t3#ncI+n|Rh|6t8IL?D$>Nq5*WI#(Cw;FOgdwADd3LWj?60%@#3&L?8 z1XC9x!PyLGiQ_gyPTIQ?_O?SudpyU-^}7J!I1hrUA$S-1ERHqt633kfMbh4;QLde| zhpsHxy9{CGsm97B+XHj1#v2ZJ4lfiML=))~^-yD}|2r z<8zg`y+1-2&1(YKayING$13Z_g_sx~sr!(w5=y=*#*i?3w9hgV-IaQ=AI1!H@e3_V%s&?T^qO9&_L6 z=(_!achOh-_|sBvrX1vSb%$x0xAK|un)uC*{PZ2aglmcVHtY38 zCzo`^*7-8(HY4s0VY&ek*&)%MkTYIU6~!}eRRUG6yvqZGhWhGqj-!m9J%Od1jz9Pz?SKlCv*W+$tH|J`m!MYgLt=%}Pv8%J zNDSx6`J*4wS0R`m63M1P1F8i-BwmLGoUcI5!L!x_vdDFlT=^Us* zE)Mx*2!2R*;aZhVrHg6gnhdk1kD~GGdp?Pz^g}ueI&>(X;dEj+eFsADLt;mjzKlQm zA$5Q~=L9&#(qeh%@F;NE=P3n zh4|Y8Dr+0c{uC_I59wx>{Q?c_6*vQ_a5TleC1#z&%03ePa3otWQDR9*-!S+gsqpX> zijyUlhi{;X@I!L372$7axmIGYaDOJAA`yN_osio6km#Qs_QY0&ACmcMqt{PkAIu6U zX24nxIkyP>kk~ND>F`?02TP_O(iX&&BegXden=OfH1k7RNbB4`f}^`I%x%i6boe2; zie|&-SnoxFbK!B{`G6l1J4=2@G+azqQLZWhZV?dRhx8MUJNO}84KchNfAB+Mm<1id zYHo}R!sg+qD?Jy*(+{Z%Ipv3>4Dv%##pH+NB=?;U_#ts0r61DIS=8+k3w}r^S;_7@ zAMitpx5Y2m#Cxrm=!dkK;{CmUi0Y-`hjcbK&4ayPHL-vA7;C*P?1J-tx@vGpzjpW` zjWDs`hvW(>_#wFl6#S4}xf8?R(bVIe$5`IlkaN_-4{5521wSNbYFapf8~qv8c~*EY zx6-r4uUUKR!fmYN^Ii5sBKjfCV&WYo#~~5@kT$VJFLvY}Oh2T{SOOS zb;|HVqN4%*ka)vQKO}c3sg0Jan>OHwG}Ka<9};&3w~>B{4oGYy6InTIr1MdyT=qvuQ10!7h66N_l&W}p zzGaD+kHfYt5%O0+VMl+CLfe^f_~3qdXe{HPel5EZen>Zq zu#ZP;**y3mxgN|$ytSntl12ndWW#e=ny)wvcFhmz6`J}UH#Yo`D9{w|YUzjM1b2H59uDJfFBZTkg58n7oCOx{g7zF{E+rznean$ z3iu)M=?eXjoC1DGk1+-OkemX3NPNFSKP0DsAJS1Ad+oBzpGHRH?EX(RPi!*0@kYMn0kCi8t@M8 zcODxtq4dX)eu&r`u=cBCuD!b4i|{^3%qzkE$1vSKrsK(E8FeSIk86W_koR54Z($u! zflOb;qvHODFvBt3Slj*4+52Mc&pF+sYlXZTYib}LW)DWd~jf7MvMIX(A)ZqTprcQn$>$2#a)2%KZiEzyQX`2Op#%$oPlo6 zfXh>%Jfm+xM`jklbLU=^nHgc8I}3`cDM5he&Vr)J6lxZr+)RB@2?aE2x1KxQQf;4> zK39rj4gEaU5?lCpN`!(@7X(zzoG#C|Xk>2Wb=-ZlyQospitASiBT8Pj(u_~WPs zWnEL83aq@VH>kvw-8E;n{x^E=wEH>;dZWLbT&#Qag^vOJng_SRz=HQpd-t3{iEo4q zj$L(zB)$={Teltejga9U@GoroU4Nh$~%rss`wRh&JPUerDc}DN5#DM+~@14~c zrP>0pNq`|;K zC#1JBu+j;ct#QFH3RT8%X7N;D@cLAJ^+3w;ORLPKC>-G@fns(omjoIPZ{L`Ja%dqLCBwDSq9IvsFo z25e;&X;2^x$c$3tO02SUxv0TutI_-6yp+ zRomZxzqWsmwW%5X_gI_q-|vC{3H^)TM<8K~7l>_($DW*v727H9M+D@6G5xW8m6Uzpd2JD6A0J=JpBL_<2t2wPmA*6;M6cEy$Kgun?N1 zPMdDaMhz>AipF(DwnPHN+2WrV39)MyR0T;b1xe_PTX71dZ1{yb?*<&=e# zDUXU>l%6TwcrK)DQ=$spaDXo?+1(}QR(2hY6P}iJaR3+>TZ1r5ikDghreWoXn}xLw zE9<}w&mLZgm3@_5l6E<1T_!aXMgM~zHu=OKrlxxIgb{1Uj##zmm^IDwKNkKl<3Gmk zFr6pn%0}io!!Kr_^NZ=+<{C2*4jucMQ_BO+sby5bH|8GSTu=&5ElHpf-P5zk%DfyVR@J ztZx5Nl@E1MIkdUK<$yKV;P*x*06%taDfRV-?0=}MX}gbv{4f6o%G&WfbpD+mLiv|D zrZ|VW_+0a`@=__mHEz;JrGMg@mzTU#+P;ypq1b&SWeTs$KaRdCofCEE-D-0AIQpuT zqk_C`W!uy0j5k4h+S@>I_ab8hw9v#B+?b$YPh~zoK zqlKhMFx~OOvxR)KPyH3bn}o(Wh5o-Kzb5R*n>gr=LkgTMdA4xA@L1vT!p{piMHTaZ zOL&X$e&G|s7lm&NyW$p-`KpA*{e(P4a-GmPoY0>snGc(p?>oX@3I8A@ZH4jug=2*K z2@e)76nbO63!O#?F!Sa67uB(bRevxpE@Uy}%3BN78UARs7 zjPRp=FJ%k%W!B@%!pns>3m+6dEqqzHQ`iCTtC+u+aD?zU;pc_-2_F;wR=7{G%OCry zd|GnstFlZor_5tHt-@1q@CQQkO+o$_C}Z2&_fLSori{A$PU%uOxlqmu z10wR7PYSS~^aF+FlLGxX$$JaUCk6TgBp)QS@18(!-#tM&i>0^ko*>*r8S(LVPd=-7 z`~C^^Uy^*D@Eb(5<5J-j!kZNz`=s10{k_766~A5htn@z@z9=-G6x7pvQh*)~{Oq6D zC#9G&%I_$Q6yH-gQ2Jp+*c>nYK0^E63GB^~JX`4wmwc3PF%j)QNw`&Lz9Z28UNR2n zRv#QL452nG6;=rC(H-jDU-Dq#4B;#xAFi@}M+g@Rmk5s)t`Tk!9xpsuc$)BR;rYUE z2rm)-Q22oG$HK>iPYa(Dz9f8E_`2|I;jX?MKF>R75BYq=uEOrZe!_u5zF}p$eT95o zPWb@gT;V*SQF#!5qU2MAoTHEV&J$iBjD0xle2MsLrT>obcHv#Z`-T50jD0wsmi%+! zi$cEnWx4MOvpoMn_JzZR)k3}uX1qOI1=dOCtdi7!T39b^6~;asUy&U9a9kq!a-p4{ zVdoCXvG2xXlAjiuk15iF%HEOA+seP3n#|8&=fR8RB+c9C{I2oMVky3Lk7@XvJEytc64 zlMCax48rPT{jhZ0j=Pq-4!U^Zah%IEtg&s%S7OcLxF0WZTrCthour6d>h?&bc^hv zpNaDzm|B2=Sjm8vIBpf>q`lT*pcz0%d$?37*gFN`I1hrU6Jc*216ty^R>(8 zIIhVq$otN-9%-lkdauJ=}}v*ko*v_sxlJHQEpFP2(j_hwrQGiBG8%mJjoN*lVu| zV_o78_kF0XveMf5J~VyzEB=7(sW(cq-W#QvJ*UroHGBNV*IJMFCQU_X?yDJ-vWTCG z@Z496OwJ(fRD|cgnlpJS@E4Db^Qxzfp4R2{OuFm#?XRYsoxOj6Pzc#`^3We3l!Kf; ze*9~##hYJE7dOEt;&on+TlKQup4f3qR%44D823&BG10co!{8OY18v&#d!k$M>6P&Y zdGo={<|d&(Gv*gMr+YoqW%DCo9-muzg_58D9H8xUE4)hJ>?5g6b-7&u`dQBAoVgHx z*?!$GLE>EYTlg<}7sYs)-$S1p-f!LGd_JTa)3=@B+eTd-(-^U(~|&_t9M#ruA>JX7xp` z3$h`vfAfoi0T%0rtXO_=A9j}98ECk8PegN73HVL|1h_LC2=MdkebSi2V&>h@nPC>h zqkVp3To5)7M_uVLh+Urlp1%W)qB}$W<}S)WcZU2e@kpRML;hAte#qMa(8?#n1l<`( zqs-qf(YZ6^@91oP#8su?l`Q%D%3BeRVBUMJm*~#$TZ;Gh-i%F>hC2g2H}Vhm{=gyFSR1I+M4EgOUcVfuhB>#BlH!W{%*o&r~ z=*)}Pbd_^w$Uh}h)52qz_!;G$71A|5|70RcjP49qvd%k7CLj^r z8Jf|j`4>BK52icAb&P#UgN^PC+}6z6)&4kIy0SmJQjhIYf+)P=hC9QHFf=%uUzqmU zI}vty42HBSm5Rtm&%>Qzi8Uc>AK8Fh?qomWo(Q>*lS?A{Vdvq_;Ko{M)Pt>nJHt0{ z!lXOHU5tl2gNv`W&$i^@&Tx~(kBxrKhQOV{#ZQR7%k*$(xZmO@Mqgk&+!@@Vq&E5; z%ZEFIOFu1I&K`$5gNvULWtboC3=diUSs)u!0J>GjJaa zcLweXZX;cR3MV#_iL4wp(xJ$g%btb=<=$=3(CsFXl&W}p-e`%KkHfYt5%QB>Ye#>M zLfe^f_~3p??+6_+^YhqjxHHg|r-Fl{B#+Ok9E}u_9lPPqKmq%B#Jku$+!tQ6orh3JA;!q zMZ?gCdAKu#w$0(rzz;0u;m*+86mVzY*ADVv%loq?)e9uEUHx-r1$D3Qx@NAKlv z=Zp7+7fjEG!NnYd?;>CofZIVQ_Bq@cc;tgS!~GQD&X6||-&1LUu|D60HfNMPAASsc zc-)t}>t`$ZMYdGsy{u2=h4_cTF39P_kAdzK@M9Q?mIN1iorfT{(~;2SvhJUL4tscH z+k5*K(M;-e{$cU@RiInF+OBJngy%ZkOr-kpRfadEjG6C%d<%6?G53C5kA?1K$p1|p zUuAexyL=Ae8kil4wdy+%y!}l_Uj-gTpx7<{y^ZjmX-|d!g#Qk*HW}mHMb?+tLtKA} zJ;mJ@v%41=_srEh$<^MsgiZr}vRqz#tjv?OPH% zB@8MdO})10g8g6sdt0oZSteq8)o#e{+}d_~6Mxp>RFh9EA#&7F-?o5^jnM%{xMOA8 zVByUyn7D*KSn*|tbz2!2>V!>O85rq=<@Q+x4qPN#x%ChP=3zy4!gA9$Ww$c0$qD{e z22OE8$yQ*yr4>>-b#^V0)h$ZBmHA!mkVLu9Li; z#aK})VJTL8cEYo++TipAb{2Dt9$DzO9I<-M>c$bA1a$t2)eS4xFKL{=YEi@T6{{Ol{|ehJ$F+P!yZUATRV>rZ<*W+wP9;BwS z$H@#Q!c-2HF=pp&!uBjHMF!HferWedtVb(s!fTCgvQ*EXv1&T&QWt6BC5j zFIlt>vwLrBXkNEw)natpB9ag{Hnf=BBE{6b=O5P6*xWL|VdbJ#i<+xP&tJNx`Peb@ zr_Mff=Ard_I-Ec4(7O3`&1;TnY*^Pa|5H<^IzpOF3f+#CR^b0Ot!Y`Y2{S7%UTW2g z*=mUyf8)uV#S~t(7}eU?5LdH)-73rpEQ+3$L!KTdjBZ>~*|40mLEGHG^@|s^pjAx1 ze9d~!5lsf)n$`7z1s*eAIEp zS~je}?8fnY(U@j_@k$tJ*syN#dKR&CX-gw0Y9Jn4#pC{jqIqTG>bM7CqAl*n(T%P-HKI>PH?qColt{Ry?B=!(F(SU?E{T(<)URRH5hx%D>wwXv5w<}-t8t8 zU){KA9r~4#WOLTLlA&l>vI5&>1+1aZVN`STFU6j{azzW&8ygY>yik2NNNhIn<@K0V zdi5GL&^p-auw>D3v~O*4eIZ7)*yL^H(R>)Hq_b=l9m**pHF58k^1L zDQB}ARyHnLy}s!$&zS9|50B?8w<8xi-e%3#cM0lUk0!>E&6~YqRnz+B#`>mp*a4Pe z*JH(9lU*-Zr*dqs!T`dCM_0q}It<)n>sKy9AI76up8{wjUM^a)B=vXjcioY@zW%UT zYgRAAZ0?Qga1d%_UC@5b-o61xn-$!`%T}&gj3Je%{9=xmL+yALr*?C_yUE?{AcyU} zg!>Z4$wu3Nwo}V`eZhEP3h~0!@1Hv8u*#{U$5&1mSu=99owrBVj2=@txVaJArKNF5 z<)@c5G>n)qVlfV-4a+N=8#kd~bH-GTSh{-62yBoQ4al`}#iEuKtCvB^-Etl3Fan1{VheOUswd^8O(PoC ztX|i=sA1hCY({Kd8_${!-zwq`IqWev(Z3s#ZM$&8$~8QQHjf1Zde!3OVYq2eb@eKC z^}lN(c0O@Ua$I>i7%#kzozk)7l+2d&sa|@&2kyVGW zC&2#QmD}p}^7iCb9szkR_4jaF`4oVhq%lH1*r7Z{I74WY{Xjog@?zl%VUzGA;mN{t zgkKR}DZEa2yYK;_ae`3JuOxRw2e3Xdmz59PDeonWIju)ZZWJ~PZQfO+xA|6q*Gm5j zVa#DQZVlo~c*6qhDI6-?OE^P#gm9^FgU~oM$bX*X%Y-)xV=k-BZ;EtpNY9I7mTO!X z;AF{s3qn0-_#!q5`KpDoaaVv(NPa>1rqIJMXSz~hU*V^P#|Sye8PjoE9pV+j?+Nb{ zJ}wM#3D0!Bgu{gsg|me7g)4<82+tILUHEO`_k|A&pA-H@_$Ofr2D+6m94?GGt$ew{ z_ zQ-v1@uN2-U+$MZh_#5E_JcVTYW(ZFfo-Mpi$T?b=F2GYhVh>?oVLT5zCw^f3WZ^X7 zfx@GN#|bwRv5mF}`C(>qEx)AruSvdGc$xH^W`*f)6y75J4<$b!d`S8yB|jsy`Pxy> zS0ukC#9_qhgJEmP^BC*LXD7r8p*`M!%m+-=?45SSA)oY8K32Fv$oE^+Zx(J5o+&(Ac%kqc!YhT}7TzShMRf^r^}{EYB%GDdo<1O-+Gu=OnJI536C-VlQN8R-baS&D(m$o)GGGu=fv#_*aUUgBUq6v=XHD^sc05y^5{9@{}|#v12A zF!lLPsZ=EcTH?6XkdyYR`?+Hl?cvZ?u(t)_I1hrUt6-1Ews?u-HbarLSDUcMV`5yt z3lNU;(8g`B_jBws@e;?K2Sw6e9qh4vtRHr(g1yTSW}a%STrR{#_{Ml+LuMRTUJoYI zm3H4fcaFzHri+);kuJ7PT|8d+CM#LLd5QM&J|J%Ij}XQf! z2I(rH>;^q~aJ0vMXPNPsM=(`_@zV>p1Sk$-%kb3eWyg> z5`=w)eT1_X_V%5M5V>{a)BWPHIj@xTS~zWyG3ZLSr>e5cPuY3d+uq(K3xn;`TzKfL zg_-T2TmHG7m%a6cg`7+Hatuh<*IDlm=!lXL=-ty$(+O7Jw!gGj^aOTlaKq*i(z&CN zFrCi-5>nJH#qcf~-jM}o9-z9}!ucVH&4WnS z3Z0)Vx*~&T-l>3Wr=lxMo`f8Dx*GC%u(GHp$@GGkVsc_S-`V#*a?3{m*MJI{8y1f=GuWABc4R0Y2~9Lf(-02Nv7? z8+x5n#QL)WibkZ{N%pu(1Q6*?X4U-l{_zmQ z6Y=M7=*%z+%CMRnm?HDS}5M%`&?9yM7loQjt};} z)5QMa8rFJSxWmN3A?GRd9}3~@j;|>`AefqD1%66H;N$Ak!s?D zNay0Kqx(?240JB-Bi{KS(mjbYA?F2to8^N@=ME*c5kH{ggGlGn zPmB1$7av4A7e6C9nf5@Wd(QIDihjyo1(D9BuZ!wfK8SSe9L@{8o$(;jnUf~w1?GO` zgGk3+$%u4h+W8>TaUU@vT`3hH(sANaBhp<$lOWPnqsxp)w}Cc5q~lF;rV5W9a#`*Q zZX?}-4oPez6InSVT7o*|vR_4la&H?n9H5D$RK?r#UQ5J$9JXzVkpEXu*wLS(&~|1V zKDb|2#WKz#C$k$tq-#ZED$YOyN_-IM=z$yAu^U7>bH^2Z$_J6o^FBH*9g3>>AkvxVE=--ptRT`kxhOh`JqIG4-8ENXUSJ03-m7YN z-|mA**Ad+q^`f zR?LWwq&*PnctH&st5MW^5a~XH(y_lqZ*yFMNauFA<dAksMnh;;8T1&DO6l!rm2TL2@hmGvozbd*^slR>1TJUNz0r1L?f zTLDGHn|U8ZItuLb6WM1V(wSp(6^L{^s#7piAkwv>Mck1j_juh0k?uMudh)2_gGk4X z+w({4D-h{esw@AlI1`9;{4N5BbX4{7co?wJjRCd|;arwGdN1!a>e)tUIK_A_y958l z9D~KhssMOz1K9!)>3HM=k?xBu7(}`X6X7-yAs*Lb0gCK%Hk3JU2ux!B>7vE3(w83j zpRK$ItxQ#7O?j21Hp1?Ypu(ijRpXEfe7bj#t{4;lo`y7?NRZ2A-Tz4l@8SI?GI?Vi zpY9ae!Q!pORcgQG$ms3anNPWDq2vX1ziF)8xXvd-#}oH`)V+rCyzyOl*TgE9VXf-P zbbFa@7GyH6`{ML?un_AY zrW*V;Xf{FOQ)$fqKogY+r1>`(t2d_;KL}`M&O#cpoy`m%SJUBRXq?ha-3ASvK4oe+ z0ydi=ZydbCJN>`d6hFN4Fjh0g<1L?Z4`p(uG*dgFc?YXZ@rpjpzgn!`f=;7RQ>zu9 zgNInn6g>#4unvt=nkim6?}ZhU1+#%iBap73nT?&y#9YMj>|`cRMW7YyAf~YFyga!P zE0*EU;x9cD$5RdfH`y=5QIu@5UkH;ZjGTfkl0MMyKmjFvLUzOjNnu)GkrksPS&`3= zD+*H!E5*l!>_}>4zrT_0$oYN?(;>(6{T8PAJ*;S6ha)>2VN_0hHf3~7oE+rl?j4+% z;&(_PQ~SArhsN^(4=W^ytzv|JaGu@~yG;I@q=MS$#H}BYEKK6(T)33TV_183rl^k8 zC-|8>?0{fNsKjdgOa{0|L)c_<_i~?vaKcsw4#0}}O$qayzG*81+&N*1u+sFPYBI3N z363+_>Vza`GC6&)tBvt4owWJm&gqCEu@2XrnTc66p9 zT9En#1=Ce#K4Cvgcm!cOR-3VyZKi!uFd1Bq6{Ql6!D@F6a#^bKIWQ4OUw$cEqn-Uryi z^vN96Hb7mDYGc^C9La)FqDT8&u@^BhR|J`sYhtEk*Y(h00LRNIaRAr_Yq?gYjhCYl zU;!Kfw9fvd>Ex2Ma|X_l8N1N#ITIr_LeRqvl4praG z=2DxD_duI#H_Yr@!&!63xVWA0G|ZHj$8npR5^-;}k2^gX_nTx~ka-I>!%Qy{j&aS; z>Kx69f-?i>C1>(=MgF9H)=ObF9E6MmNj+|{8GYL&oMiP5GJj*jFmshvbRdY(q8-Pi zynp%ZzNFPUzOtjfwjUfWTZO+~#`@Va|Fyq+GuTbAZ5a_yI-BAa@H)T+Xg!KHa}$?$3_v1D)!om@CG z3$M`I7F;hSmX9+ZnSET~Bey$#h>zT+`=|4fr=x805$6hz6fP647OoebEIeI!zVK4v zw}iI|?-o8Jd`f8iI+XjaWKL$nde9Tv_>sZ`gbRho2#qI)^n7o_^xqU-FT6|mrtp1X zM+_sT?=2iI+(*aGgqxLmkVc$)Cb!v7F{S9qWBCE;7bG=?kfb{19&=Lq@DH^v_; z+$`i%Rq7uUz9f8Gn87e-d>7#!!fGMEU&nZo3Wyg9uN3mLY}7v>*&X`Y{8 z$6mk!drIb26ZL#?OXQnPVx92Q!g}FSp`9m@Zmnd}#F&q4GUDfiX9>>{epUE&;pM`s zgf|H7d$6!Wx(n^yE97fd%D)u;R`{0ik3u^iBVC^7M_>nGnJ^Oe6;=s{32knC?Ik9XaFD;3{gI9NDbI6*j3 zXxCk^$0zL{-Jc+F;rxj|0eX}#Jlrw}z-@=kY|B_-3~@ScCx$r=xG>!*7IJ@Ch4%-> zd8oP->s1^STH?4Vka2oR)k=R#Wh!+KjFab%&2H~rSTC}D<2(qa7U3N7b?j5|62~<_ z5r-M~UZ+&*7jdH!al85xOhX6UfOIUE<*^+^o-dO2p2sWgO6cMxj^lk%vK?;^b$oT& z!zD_=-WG)8JP4-#40|&e&=SXOhMcsQ9hOQhgpT&ujdA^U^(UB)9p#I=Y43T+leD)4 z_Sin!>zJ^28N#ds`EXpGh%mo*ys;rOj_Y;8INicN?wks>EpfVC{Ry5%y5!i3$IC6q zm8{=N)Q{HytRL^=)*{xFPXk{ zdTLPbt&n~?M_Sk;IyQ%83-=*gCxck%l z^}O*@zkk2Q+q*++SLoBb>W3cK8bF`jMgN6X`V!D$zrSFu+h4F&yjyEcpKAJ4>h5Oj z*KWIIy{QP4G@#8qc+|x`Erf4EH;hZr?Z1ZOM5YWIG&{axDq`WMa3&=9DGWgZ^Ha#q zu2{gBZ0?(g$y|vX**V=gh%m|Tfso**a36*N{1iw!-o;O06I8j%vhhfsX-4AQ@G>5b zGQ0-MRhKWJ89&QO4>RlWSJbcjHmGvh?f5VH0y21+Lr|0a@Q$oR<`4MGH(NM=EMk55 zESw3QpUq#9=?$B~*{DkX%97Wh4EV8|{8eStJC-Uvv^y|8eHQYU1*9^E`{FNud43Dj zAR>mm`pI9N`=g2QSr|_v*JPMAa~h3b-}5fS(PzOf1U>(7Xge{S;n#YCZq_-aB~VlZ zqkLYih23B@7+q#pZq8>Rs8Na8urC@C)O2ta@WVS%U{F);#FFrSKGG+QuH zVu{Vc8%&Z|8ot1)O_o?5mNW0Z5-Y+q8(Ax{SGXS&Pmx#|`z!{iO$1Jbd&!EPs!A@a5OjiGs-(F{5glyv&BzZd+Wk`S;^5FzQ09lvf{ULKJxv)t3nVh9t7b(}4l;ZeT>84`T*~lS zVCT?hfo$dgJ`48n3tV;XR{?w$xGR~@!bvm;p9StC=Cja91$-8YaII!O3op9|V4v7S_W& zYh`^3p9RXSl*#Z}pnP~N(`O-o&%$OXB0c~L;Ilx1eSSCl3_c6zm<*o<9@QzBDfldK z<8Vik+~f5CJ_`>(Ve|b4@LAx-?ODv8fX@O;b>%-9XM)cHr^ANN0#))&;BgBBYzH*| zAA45%BH{D#x2rn=dEG&l!0;4Oxw+5eqTLt6s5`jLPm!$(%DxEQ zPGL)jw7C|#_aVPZ-2~>_x9#~wk#UKt(^CD&m3B|?u05S~HgX@s84)oVU9Z$kPL z0!-w|L?{Kxosh%T;d&H7$?^IzLQf|2DubpFjVD_dud%q(e8vj#Pa%RkF~arVdc1=_ zrO4A4p~q_wMjKv3C$4*FvSMYg2z96|Lac9;SzAB5e>*w&(eOPX$bH8 z&#Ya;8_)3%4P{xuW~{IZaPI0nK9wcm>XVqJ_{9{Bfs5 z%)a~qX}?D>`|>^_?;`YM4znM5ICiZNu=V{hQoQ%^+1txT-6iK!{J_mM!k=+ay&Y~Y zk6tO(BX_)yTyrQfwm3lgaS0OdIeal^4v%|f4LolR*fKAwOj$o1m(V-WyZ0+O^gh(dV;xNIFkvJ5j>|p)WpaFE7*Ch*H|Iiv=)(55MZBhDS|1%$Zb{# zH!<>r6{7qh@;4V361Ld<^_4{1%qfII1US1BdLe*S5^iF|ws<;W7=r6eA!c8_)sELtBtq^Wv#I_hE5Z`61fChXB!de8&7h&vV1SAl6 zjG7Zk?8Ox?fRKXCr;_+RK(uj`!!I@7VHbvADMs5F0 z9fIh11T={-5y7xbCL=P>>In-F#4=%&okf<(S|Ee#%p`E9R0X3yM1WnwB?!hYkNYiF zPvDW4T}B^6pj{%nH{=AU4v=@Z@vv4QVAvA42jp5z2hOx=0(S!H&?4Y6t0t_m>hKxB zA6PZv600^dYh7p61h$w)?gZX%)daQ{>M+1;F|>t8q7WhEG@3Ihg*fJ1$6vE$xy;ZW zff@WQs15A6%X|z01EClVFhrfd{w5pfZ;^CL(6noeutfnQ86}MTF=!;byX>CJ@|_S` z*6Fx=DJ5Xt+ue?PhU}9wx= zu`L37+TU8H`T7(h4E|Y$XnG6U=b|28DG|oH=lb-FJ+v4*W51aj*q^umADmYoPWHR5 z1%Qup0pI)bfx9Kb1PCj*W!+^Gd<=yQEe2P5(P9uw(_#=$(_*3-S`5^p#o)0qK!n-X zC&IKhOqfzoVH#85o+K<4=7z*DQDI(caKm1tlXsd2woAK$`~pKMiA23^Yg|K-xh!F5 zFkw(u{$SLk&aRC#1%+wU(nSr^$beU+&XKnYd1gPU75SonrmqQyc|$m z9yg^u?^Z7r?HVn$WS!U7n6!DQDC%`dS=LNxshxU14wg?O+Aorby5q2WtA|ArJ)kI} zwUvf26ZwK!hMD3Z$gsL&N`oYwFKX&@G|1EzbyN6Vcir@a+W$N@&KL3FH)C0|j{ocF zJ70viv$TAmnb|$a-f4bTTGGrXka^(MUp|Ni{zar7JosYOg3n9skr#bSE)Qu`)!6Y> z71ax|D8zpwv!|L2ukt}$FQEAn82?EWpY-7T*OGk#+?^@q16vSy%(4%`!N(;!>;f2^ z%pRlBEMBpj^#Ck)jY~zOFLri407GKQOkl6c?lJaPniV>@>;)EhS!Eb==>-7NYk7cx zYAyg+MZ*$t_V9V^;wE;1jbfWd(P#_;?}zNxbZ(Rr*WQ7O?{{2e0Re zxtfy#`u<8EA{--}Ae<_kC9DX3&KAN`Kg)t zz(_aPMmShFMtG=jwvawIENA?Zf!~vSvG8``Bf{r}*?59wIpZ%3>>+ueuu3>hX#9bZ zZ>i+9!n1`HQ{z)7+>y8{|IY@ zONBQG?-0HqEW(>9ma7ns68e0eNs>8z8}ls?E*35mep`5k@Dicn@1We>lyNNY7d}ix z8#XH6%aYBy0nooL{X5cc7w(YW!!?cNW5Qe_>M{Hs=sQZ^M_4KxE*vR5n22_97B^le zXGuR-SSMU6TtP%QUh+x8?-60=93sLM(qALILHb)I`@Ee8DWlx4g-;59r+j}9ZWg{R z+)hNf4}^5`WqPGFVvV}+B1(}af$j}p!o9wTfJt`L3}kLUvBqstfD zbEWWF;f=zd3-1!%EBv+aN#Xm#kA(cxLA&O67D&%c%6Y;LLi&+XUo7k;>?iCm944$3 znrU`Xj-C!IZ+@?VhfA&z(m8|ai-irsZwrqX(#e7Od|uHNlCKf|On9sCF5$gGIz+Ji z$HJDpp|<>8Mmimzh=$(_>?+x;I|R8@^1j0Th2}m1>1I75;3VnIeFNl~l4l9$3y%?U zW=Ph%T6m)H6k$uA(IwJv5c+(h>m?gLG3?zg`5xf|!j?Rwm!#+PzibD+MTpr#!#jrD zPI6~qS79$zS$LX| zo-NdG5MC?1K}f$Arr#%|YYSyAwoRmC3vr8(PArr|yzc>K5%HT(R~E{hgmhVTm?sB4(yN@107 zvT(ZapTq0I1JoW~7kbz}cM^Ld@YrIwn{9y52V6eQ#^cC1#|by)+h}6;5620&(FlGS z%3%mA@Eh!Je%c5q@bm9fDj|%4GX&$3&#@RL<`W~^MIwb?22p1*|P z<4l{02je0d(&ndCLk`wEY#+x-As_2yecTTsf4}`Qh&spPOJ<4@ZGPHf$U%EE%j`!` z+QY4D+TJ?E{W6F;O|UnM5p90j36O*K7QxS0K(ZNH$yBj(9KOA8crt#_&_2pKnvw&&TVU(XBZT%Wvv0U@zFd zcVRdWI<}7=kp2CA6mg8vdVtx^Y+;XW<35_h*$?L+hGJ{gwKAYF|R*9*;8Lw;WEf>VQZ@kBOs6*};r^nf^-+yNa$c3nsD#rK!~0j{Xd*To*O@r5Q?lt zniq<-;luY~$RK`|7ml2bl+b$Q62Hm|$NIBOJaRfJ^5U`i=y~z0kY;`^@}Y_pwCxQ; zp~I0`{Hjnk^_E}d#lz+omL#j@{HjJ2a6<>6CE{0wo`oHsUo{P>yYj0JK~sEw6>jB;_X6!Uv&@T;b? zEg62*;}kResvX$H0KbYe_6PV?CCvPZ{Hpi4(;0r%Y>EMX73qCJe${HqpT@6Rh1xRw zD%0N?e$^JXEW@vQh3)>*{HmXzscC-I1?;a3zp8@G4Dzcu>hive>i=_c{HmoqG#P%?rEGPEUsc0>`jY&r`)Mk}uNp(~6Zusgc+fNas-N;GW%yNG zfFQuHf-7l|U$u&Rl;Kx3u%a);ugXTr0KaMu?FRT&jqHp7zv>C52l!Qnn-<_#(dj$L zuj0dPkY8mOX90fI+uW@HziI*N3-GJr?1cco3ceG~_*F+z4)CkEKtPaR^&{E~@T>k# zdjWoxAvOm1Reab8@~e1WHRD(DsjwNp$}qZu{Hn*fOF@3s2HN;~`Bgj*gZwJWL4FnA zS)}<@w_pb{{3>%T3Gl1NbN2%LDnm*AB!1OI*v;^(PUI-9^!Zdy@*4JKfL}%O^5^7N zji;#qzv>wl4e+Zt`Ad*rWvH(*4u;Rjrsmz^~fG`aXqU)tc#_%CEYZ zIfDGEQ+a9y`Bi)|(TrckH$%<%RSz&nkYB}bHO=@{BRTfIB7POwM?rqo9qh9&$FJg5 zC(W<=E8F;q{Hk-1^{e7n?Z-XH@T+cT#c6((7Y_GDI_}4Ypvo?H;`l^d-Xo^@Rh%*I z_!OymP71+sQ%xuUepOo}1o&0ODDSOv&H5~sU)2r9cF(WkS3ZA%m_un4n>!BAOWnx! zaR=s+Uo{p=zJ}W>4MZp!&3u+~#n+R(GqnrEv?8~Q zB-k*5Cuw(s#A6ueL6H_RS< zG5=#ku0ZI?9KBwH=4D9FAz22ssZ%8PIq@{j_ z)-*H}q&1aY$)n#cBw7=jVhyyn25gx^l_`4@Rhji;$RF_7`B*jv)F!MULrr=O84Bg* z)ilUj^-oxFtjzMVq&z!lWtCqwL&gSmX>po(QMZ}D4+VAuFgUE z{V*VM^PA;Q1oLzGmsYG0PZvFqA2*We#b98NcJSpSv#<*Dw@ve$lq0{L!|C1%+POV* zZQbo6#?~H2)a_pzBZ_O`_>8FL1gU<_2~xXop?J{Co70~vcI8X)r>zky~OT*gM1FK05ZhzwvYt!ZK;g#b1afma%E69|J4JZHJv#7LDD zLQRZJw1U^f2C!lj#^225x*+_Bm1VTNK7xHj=wzbP2@Gb<97a+IU_BAaOmqriI0D#B zZWANptq^Kr#5Q7Sun|+BZm|_Z24RQ5##(MtrrC^{4Zktia5>~3G~Y&90GEmkDG3)2 zq9jQt7ruE-IT-S*U4|H56h8F#9gd znGm%Mf$A(T#~%A>NHSYSxeN2fkab#Q=kUi%B>%7Jj=qqx&>iQxV~fZ3Fe@?H(KDIA z5J(*aai~?fDnOA#3nQ4ofC7FhJC^q=P=!>0B8OkFf6W>)K;4KkudN{6PwWS?+h#aIz;>tw^EVfN{iDId3ZP`*RHsC{5hC0`wX%e=Kq5bP;zx z0C9&o$h`5IEOBR{A?|c+#-wRys6{W@ebl?M-cplZXDB1uBLS_*fI;? zG#Eb5Zi|wtXs}9-*fT&)Tb}L z6X4@aYnWq8zzo_$64Vgj9uAIKROV}3Q)lU5UJk#$g>@_?(Es81Cato=JL|t=!}IK# zR(Nq(9Ju@Co$!bZCue@PCFP93OP+7!Iy>~C$ZX+E6tQpOIy(hu7az#k&%5w)cu8wP z%NdM(QG_qT%jv`Xc;U+z(!>LVV}uigQ-!mHwZcZ>YT*gOJ-i&-pL=*YwjXNoeu?92 zxp1BEJmFQsTZIn^pA)_zd{4NCmt*^L4==~|!#A3jgE4yneiTDMpOgQy ze?6W1l>UVDPZJS*Ud|gz_jx&gm27x9h<_?C2k9yNu(SSRVTsW2a-cWs=pf$#(vK3F zb#!nZ&!-GLO=x&CkbOSPHtF|*j`_H8|M{y+M6$s=A>YtZZ{G9)d7nXqs0g zxJhEebXcKCdlc9MNQOgG7#%bof7ahS*n)rp3m3LGbSx^RY&AC8&N z=e3+6+3;1NKTq;S!YhT>3V$yAh460S{ldqEzY!XqE9|}``3>Ql!fnF$g#3!l_T>o+ zg`I@O!d}8M;Q%4Oc(c5D7YpR~ZOTUp`H7oyqmUoCDW5LnhiuB6n4EYO5q{t;`7Hcw z&GaXQK5vD-;MBjVa{PWx`C}o!S5w|wSSqX#?kn71NbgMMpDe5v&Ji9hTrBkYC?`nf z)ch=eu8^O|DbuTyNWTZ-9m4yB4+;4Jo#}?(3;bWnn}yqi?+ML)C;H1jpE0aWdH;Nm zOZLzEmgjp)>Hc|NCfR)LLH*|b6gW)!N@10-<@I5*^wWhigfoQ;gp2%i9j5}y_>|zc z&nay@wr*L?Y~Zp6iwpeNvf5S4oKiDyM(OOvMyHgD(&jI!{>^C~4&3j}GYF3_Hy)4R zhHf)kSNz4PjOQr3wamvfZger>Soo}beUXP{g7xwk`Wwd;Hy(fAHsv!Bdg=FuvY%Fo zIDXa~BDV*-!f^%0+aZo&Wqy~~E{+?&45H30u*GxR-~6=MQ224CosWSZ_8S#QI|}h& zy)%0`&L-?U>t%f`LR^XvwD&^{#1wS?=BL#`5wtf99fhimJ@`zd?VXIcUj|XQo@ZmHt5tr2PQ#puLY_kNZb^{6gp3yBu-a zD?{M+JWe>SXW(y4WB7^C&v)tGyXSe_seAyl6{PGnL!zmd@!JrB?F*M=`j201{q{YA zICifdV7Bq8=40RQ3u0h+IBStF1!a5a`M!bn@(@^Opu3z6UE%BnoxjlzHDy{FG~RecB*ga3^7n5R?G2R}PK;pceiGve&bbjACNVd`DNSPgOUz4f?)lho zi3N$BGV~|4$x-G}1NIn@0VeAhDCuA|ZjCFL1Q2BZ{c4WK|5!>HKwPl>vNqCA? zM{O5`6R*)&O;#6^8c(ocvDsbNSz1SjhO>EF$)Fk{VY(e-9i8t2;<4p%(wh@}c8INL zW2nxkh?n`;O1~l;9$stnu0zfRv0LLWW2d-|PVBa}D!_GgV!!Z50@u-r-7YDfSV`M= zWbsub*U_m*qhfbTwCm`^e%Xd+2iMWzqNB09RJJg26w5wfdWq}kq*(T$&ScAku#V23 zC_d8pDkByrhO)CCOFU-8UWo&F;2zIV$gZOk`;B(MuA>v%sCtJb2D08~ z+Wf_otxRyLm)Nsyb{f&HqZ4~Urm7MbGxJL-J3hhZqS(vXSDXEvoaoLydbO=#Ib$82 z|6!Y7%PmJHuA_4^_B-}^E1tnzN9XrUeM5td>*(-UvuHc>hohw(pYPgHkK+=-^{zFO z+PA}>Ug6lRP@KJ!B(o_7o`)SPPVy8Kih<{GByPyLYRW`b1fGYL;n!*9E>_M>l7t?^ zIy$y|UUDz)1=i6yAHP~$N9P@;gXdw>%aXsN44#LX+@)whav#dzdD!$JNiOys1JC1b zQ+`;IXGjd|=-5k1Ws;K}#lZ8h`KyvO>~XB4W7EebN3lG39uJ!G9%(OJm+SVzZ9I)im|cwWV@jt);HvyKj*?qXO+hv$e{N9Q|Kfak%5KFm5g z^Jo%0k3w{rSF|aTJeUgbJYF+7-io0Ac`De0)Px2H4w4bsIAj`+a*^;_WGHZNhK2() zkd-R`cwTQZu^fkOCKJkUgu<+&!%=8XX04->gZAl)8M~0XiFI^Hvnk}@$cn@8c#g`6jc1=fPhyn&K*S zG4MR>aSSJKWGk_b4l{Ed9lGwv!1LhG1lQ3a5j2K%bnIS?P5zR5fpv7|8GDnH6PX|D z=*%%qosoQ)>ELk^uyTEJ0@JaMj+Iv>i_wQM@I0dCm}4ECD_9}c(P?iK zSVw0ATMV8DTVU4Fd4j_PJP(>M>*#n?U>zN+z&bj=qyp>cSOwP6*#~7~;CWaD*3sd+ zsupqlI|jO^AU{am)6|V<`)$ONFhM49(Q6RgQAWp$#t>tA z&k85`7};she|VPDO*|NR6Ixk&~^EYbYy-W81YgQ)t(k zo02iNG-z&V(A?6XIb%~U^-~Xp#GYurpa!m2++2IU7&K9wVz?%>SU%%Wb`75q;nPnT ziC}#C*+|-#%Q~ZcR|BtR!aM}yvd+F(Vf6%df?U@9{-Db`v}WTm;2~v`{f#>i+=B97 zklAy(z1_s|Q>jL12X4VD3fYrJHh^5yBKs>!J z07gqgZSCS^r3)||{B;5F^Tc<_S|uQgF%)r~h#6kqefV|F%7^D{SJyZP&xGg|r&92^ zJtoo`Q|l+jAzJn+(JXIyX{5E6lZqrbA%A%kuT!$ThEh(R-*%jr&8hpLibT5`BU!y8 zt-C8Lr|4g0r|4%@pOR!+Q4a6rb|K@6JGXI3^@5tka~EL}^~Qy(@mCYK2d7lG6H%|6 z)39tw-E8z?&9YkO3po4PgR;xa;-iMnJfyL

    gJ%MKyIb4Q1ss=PhYCrvJ=Q6Q&(B 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 literal 0 HcmV?d00001 diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h rename to Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c rename to Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h rename to Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h rename to Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h rename to Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h rename to Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c rename to Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c rename to Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c rename to Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c diff --git a/HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt b/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt similarity index 100% rename from HAL_N_Middlewares/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt rename to Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c b/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c rename to Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h b/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h rename to Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h diff --git a/Middlewares/Third_Party/FreeRTOS/Source/LICENSE b/Middlewares/Third_Party/FreeRTOS/Source/LICENSE new file mode 100644 index 0000000..2ce4711 --- /dev/null +++ b/Middlewares/Third_Party/FreeRTOS/Source/LICENSE @@ -0,0 +1,18 @@ +Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/croutine.c b/Middlewares/Third_Party/FreeRTOS/Source/croutine.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/croutine.c rename to Middlewares/Third_Party/FreeRTOS/Source/croutine.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c b/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c rename to Middlewares/Third_Party/FreeRTOS/Source/event_groups.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h b/Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/FreeRTOS.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h b/Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/StackMacros.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/atomic.h b/Middlewares/Third_Party/FreeRTOS/Source/include/atomic.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/atomic.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/atomic.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h b/Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/croutine.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h b/Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/deprecated_definitions.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h b/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/event_groups.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/list.h b/Middlewares/Third_Party/FreeRTOS/Source/include/list.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/list.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/list.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h b/Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/message_buffer.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h b/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/mpu_prototypes.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h b/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/mpu_wrappers.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/portable.h b/Middlewares/Third_Party/FreeRTOS/Source/include/portable.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/portable.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/portable.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h b/Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/projdefs.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h b/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/queue.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/queue.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h b/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/semphr.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h b/Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/stack_macros.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h b/Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/stream_buffer.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/task.h b/Middlewares/Third_Party/FreeRTOS/Source/include/task.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/task.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/task.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h b/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/include/timers.h rename to Middlewares/Third_Party/FreeRTOS/Source/include/timers.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/list.c b/Middlewares/Third_Party/FreeRTOS/Source/list.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/list.c rename to Middlewares/Third_Party/FreeRTOS/Source/list.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c b/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c rename to Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h b/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h rename to Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c b/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c rename to Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/queue.c b/Middlewares/Third_Party/FreeRTOS/Source/queue.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/queue.c rename to Middlewares/Third_Party/FreeRTOS/Source/queue.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c b/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c rename to Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/tasks.c b/Middlewares/Third_Party/FreeRTOS/Source/tasks.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/tasks.c rename to Middlewares/Third_Party/FreeRTOS/Source/tasks.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/timers.c b/Middlewares/Third_Party/FreeRTOS/Source/timers.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/FreeRTOS/Source/timers.c rename to Middlewares/Third_Party/FreeRTOS/Source/timers.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/Config/SEGGER_RTT_Conf.h b/Middlewares/Third_Party/SEGGER/Config/SEGGER_RTT_Conf.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/Config/SEGGER_RTT_Conf.h rename to Middlewares/Third_Party/SEGGER/Config/SEGGER_RTT_Conf.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c b/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c rename to Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.c diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.h b/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.h similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.h rename to Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT.h diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s b/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s rename to Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s diff --git a/HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c b/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c similarity index 100% rename from HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c rename to Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_printf.c diff --git a/HAL_N_Middlewares/Src/adc.c b/Src/adc.c similarity index 100% rename from HAL_N_Middlewares/Src/adc.c rename to Src/adc.c diff --git a/HAL_N_Middlewares/Src/can.c b/Src/can.c similarity index 99% rename from HAL_N_Middlewares/Src/can.c rename to Src/can.c index fe60482..19e132b 100644 --- a/HAL_N_Middlewares/Src/can.c +++ b/Src/can.c @@ -81,7 +81,7 @@ void MX_CAN2_Init(void) hcan2.Init.AutoWakeUp = DISABLE; hcan2.Init.AutoRetransmission = DISABLE; hcan2.Init.ReceiveFifoLocked = DISABLE; - hcan2.Init.TransmitFifoPriority = ENABLE; + hcan2.Init.TransmitFifoPriority = DISABLE; if (HAL_CAN_Init(&hcan2) != HAL_OK) { Error_Handler(); diff --git a/HAL_N_Middlewares/Src/crc.c b/Src/crc.c similarity index 100% rename from HAL_N_Middlewares/Src/crc.c rename to Src/crc.c diff --git a/HAL_N_Middlewares/Src/dac.c b/Src/dac.c similarity index 100% rename from HAL_N_Middlewares/Src/dac.c rename to Src/dac.c diff --git a/HAL_N_Middlewares/Src/dma.c b/Src/dma.c similarity index 100% rename from HAL_N_Middlewares/Src/dma.c rename to Src/dma.c diff --git a/HAL_N_Middlewares/Src/freertos.c b/Src/freertos.c similarity index 97% rename from HAL_N_Middlewares/Src/freertos.c rename to Src/freertos.c index 6229414..d4c2165 100644 --- a/HAL_N_Middlewares/Src/freertos.c +++ b/Src/freertos.c @@ -30,7 +30,6 @@ #include "led_task.h" #include "daemon.h" #include "robot.h" - /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -63,8 +62,6 @@ void StartMOTORTASK(void const * argument); void StartDAEMONTASK(void const* argument); void StartROBOTTASK(void const* argument); - - /* USER CODE END FunctionPrototypes */ void StartDefaultTask(void const * argument); @@ -118,6 +115,9 @@ void MX_FREERTOS_Init(void) { /* definition and creation of defaultTask */ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128); defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); + + /* USER CODE BEGIN RTOS_THREADS */ + /* add threads, ... */ osThreadDef(instask, StartINSTASK, osPriorityNormal, 0, 1024); defaultTaskHandle = osThreadCreate(osThread(instask), NULL); @@ -129,10 +129,8 @@ void MX_FREERTOS_Init(void) { osThreadDef(robottask, StartROBOTTASK, osPriorityNormal, 0, 1024); defaultTaskHandle = osThreadCreate(osThread(robottask), NULL); - /* USER CODE BEGIN RTOS_THREADS */ - /* add threads, ... */ /* USER CODE END RTOS_THREADS */ - + } /* USER CODE BEGIN Header_StartDefaultTask */ @@ -145,7 +143,6 @@ void MX_FREERTOS_Init(void) { void StartDefaultTask(void const * argument) { /* init code for USB_DEVICE */ - USB_ResetPort(USB_OTG_FS); MX_USB_DEVICE_Init(); /* USER CODE BEGIN StartDefaultTask */ /* Infinite loop */ @@ -158,7 +155,6 @@ void StartDefaultTask(void const * argument) /* Private application code --------------------------------------------------*/ /* USER CODE BEGIN Application */ - void StartINSTASK(void const * argument) { while (1) @@ -167,7 +163,6 @@ void StartINSTASK(void const * argument) INS_Task(); osDelay(1); } - } void StartMOTORTASK(void const * argument) @@ -196,8 +191,7 @@ void StartROBOTTASK(void const * argument) { // 200Hz RobotTask(); - osDelay(10);//syh此处暂时将时间改为10ms,原因在于未使用缓冲区发送,发送时延时5ms + osDelay(10);//syh此处暂时将时间改?10ms,原因在于未使用缓冲区发送,发?时延时5ms } - } /* USER CODE END Application */ diff --git a/HAL_N_Middlewares/Src/gpio.c b/Src/gpio.c similarity index 100% rename from HAL_N_Middlewares/Src/gpio.c rename to Src/gpio.c diff --git a/HAL_N_Middlewares/Src/i2c.c b/Src/i2c.c similarity index 100% rename from HAL_N_Middlewares/Src/i2c.c rename to Src/i2c.c diff --git a/Src/main.c b/Src/main.c new file mode 100644 index 0000000..a8c16fa --- /dev/null +++ b/Src/main.c @@ -0,0 +1,243 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "cmsis_os.h" +#include "adc.h" +#include "can.h" +#include "crc.h" +#include "dac.h" +#include "dma.h" +#include "i2c.h" +#include "rng.h" +#include "rtc.h" +#include "spi.h" +#include "tim.h" +#include "usart.h" +#include "usb_device.h" +#include "gpio.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +#include "robot.h" +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +void MX_FREERTOS_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_DMA_Init(); + MX_ADC1_Init(); + MX_CAN1_Init(); + MX_CAN2_Init(); + MX_SPI1_Init(); + MX_TIM4_Init(); + MX_TIM5_Init(); + MX_USART3_UART_Init(); + MX_RNG_Init(); + MX_RTC_Init(); + MX_TIM1_Init(); + MX_TIM10_Init(); + MX_USART1_UART_Init(); + MX_USART6_UART_Init(); + MX_TIM8_Init(); + MX_I2C2_Init(); + MX_I2C3_Init(); + MX_SPI2_Init(); + MX_CRC_Init(); + MX_DAC_Init(); + /* USER CODE BEGIN 2 */ + RobotInit(); + /* USER CODE END 2 */ + + /* Call init function for freertos objects (in freertos.c) */ + MX_FREERTOS_Init(); + + /* Start scheduler */ + osKernelStart(); + + /* We should never get here as control is now taken by the scheduler */ + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 6; + RCC_OscInitStruct.PLL.PLLN = 168; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) + { + Error_Handler(); + } +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief Period elapsed callback in non blocking mode + * @note This function is called when TIM14 interrupt took place, inside + * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment + * a global variable "uwTick" used as application time base. + * @param htim : TIM handle + * @retval None + */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +{ + /* USER CODE BEGIN Callback 0 */ + + /* USER CODE END Callback 0 */ + if (htim->Instance == TIM14) { + HAL_IncTick(); + } + /* USER CODE BEGIN Callback 1 */ + + /* USER CODE END Callback 1 */ +} + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ diff --git a/HAL_N_Middlewares/Src/rng.c b/Src/rng.c similarity index 100% rename from HAL_N_Middlewares/Src/rng.c rename to Src/rng.c diff --git a/HAL_N_Middlewares/Src/rtc.c b/Src/rtc.c similarity index 100% rename from HAL_N_Middlewares/Src/rtc.c rename to Src/rtc.c diff --git a/HAL_N_Middlewares/Src/spi.c b/Src/spi.c similarity index 100% rename from HAL_N_Middlewares/Src/spi.c rename to Src/spi.c diff --git a/HAL_N_Middlewares/Src/stm32f4xx_hal_msp.c b/Src/stm32f4xx_hal_msp.c similarity index 100% rename from HAL_N_Middlewares/Src/stm32f4xx_hal_msp.c rename to Src/stm32f4xx_hal_msp.c diff --git a/HAL_N_Middlewares/Src/stm32f4xx_hal_timebase_tim.c b/Src/stm32f4xx_hal_timebase_tim.c similarity index 100% rename from HAL_N_Middlewares/Src/stm32f4xx_hal_timebase_tim.c rename to Src/stm32f4xx_hal_timebase_tim.c diff --git a/HAL_N_Middlewares/Src/stm32f4xx_it.c b/Src/stm32f4xx_it.c similarity index 79% rename from HAL_N_Middlewares/Src/stm32f4xx_it.c rename to Src/stm32f4xx_it.c index be8484d..06a3db6 100644 --- a/HAL_N_Middlewares/Src/stm32f4xx_it.c +++ b/Src/stm32f4xx_it.c @@ -1,20 +1,20 @@ /* USER CODE BEGIN Header */ /** - ****************************************************************************** - * @file stm32f4xx_it.c - * @brief Interrupt Service Routines. - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ + ****************************************************************************** + * @file stm32f4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ @@ -88,8 +88,8 @@ extern TIM_HandleTypeDef htim14; /* Cortex-M4 Processor Interruption and Exception Handlers */ /******************************************************************************/ /** - * @brief This function handles Non maskable interrupt. - */ + * @brief This function handles Non maskable interrupt. + */ void NMI_Handler(void) { /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ @@ -103,24 +103,23 @@ void NMI_Handler(void) } /** - * @brief This function handles Hard fault interrupt. - */ + * @brief This function handles Hard fault interrupt. + */ void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ - asm("bx lr"); + /* USER CODE END HardFault_IRQn 0 */ while (1) { - asm("bx lr"); /* USER CODE BEGIN W1_HardFault_IRQn 0 */ /* USER CODE END W1_HardFault_IRQn 0 */ } } /** - * @brief This function handles Memory management fault. - */ + * @brief This function handles Memory management fault. + */ void MemManage_Handler(void) { /* USER CODE BEGIN MemoryManagement_IRQn 0 */ @@ -134,8 +133,8 @@ void MemManage_Handler(void) } /** - * @brief This function handles Pre-fetch fault, memory access fault. - */ + * @brief This function handles Pre-fetch fault, memory access fault. + */ void BusFault_Handler(void) { /* USER CODE BEGIN BusFault_IRQn 0 */ @@ -149,8 +148,8 @@ void BusFault_Handler(void) } /** - * @brief This function handles Undefined instruction or illegal state. - */ + * @brief This function handles Undefined instruction or illegal state. + */ void UsageFault_Handler(void) { /* USER CODE BEGIN UsageFault_IRQn 0 */ @@ -164,8 +163,8 @@ void UsageFault_Handler(void) } /** - * @brief This function handles Debug monitor. - */ + * @brief This function handles Debug monitor. + */ void DebugMon_Handler(void) { /* USER CODE BEGIN DebugMonitor_IRQn 0 */ @@ -184,8 +183,8 @@ void DebugMon_Handler(void) /******************************************************************************/ /** - * @brief This function handles EXTI line3 interrupt. - */ + * @brief This function handles EXTI line3 interrupt. + */ void EXTI3_IRQHandler(void) { /* USER CODE BEGIN EXTI3_IRQn 0 */ @@ -198,8 +197,8 @@ void EXTI3_IRQHandler(void) } /** - * @brief This function handles EXTI line4 interrupt. - */ + * @brief This function handles EXTI line4 interrupt. + */ void EXTI4_IRQHandler(void) { /* USER CODE BEGIN EXTI4_IRQn 0 */ @@ -212,8 +211,8 @@ void EXTI4_IRQHandler(void) } /** - * @brief This function handles DMA1 stream1 global interrupt. - */ + * @brief This function handles DMA1 stream1 global interrupt. + */ void DMA1_Stream1_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ @@ -226,8 +225,8 @@ void DMA1_Stream1_IRQHandler(void) } /** - * @brief This function handles DMA1 stream2 global interrupt. - */ + * @brief This function handles DMA1 stream2 global interrupt. + */ void DMA1_Stream2_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream2_IRQn 0 */ @@ -240,8 +239,8 @@ void DMA1_Stream2_IRQHandler(void) } /** - * @brief This function handles DMA1 stream3 global interrupt. - */ + * @brief This function handles DMA1 stream3 global interrupt. + */ void DMA1_Stream3_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ @@ -254,8 +253,8 @@ void DMA1_Stream3_IRQHandler(void) } /** - * @brief This function handles DMA1 stream4 global interrupt. - */ + * @brief This function handles DMA1 stream4 global interrupt. + */ void DMA1_Stream4_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream4_IRQn 0 */ @@ -268,8 +267,8 @@ void DMA1_Stream4_IRQHandler(void) } /** - * @brief This function handles CAN1 RX0 interrupts. - */ + * @brief This function handles CAN1 RX0 interrupts. + */ void CAN1_RX0_IRQHandler(void) { /* USER CODE BEGIN CAN1_RX0_IRQn 0 */ @@ -282,8 +281,8 @@ void CAN1_RX0_IRQHandler(void) } /** - * @brief This function handles CAN1 RX1 interrupt. - */ + * @brief This function handles CAN1 RX1 interrupt. + */ void CAN1_RX1_IRQHandler(void) { /* USER CODE BEGIN CAN1_RX1_IRQn 0 */ @@ -296,8 +295,8 @@ void CAN1_RX1_IRQHandler(void) } /** - * @brief This function handles EXTI line[9:5] interrupts. - */ + * @brief This function handles EXTI line[9:5] interrupts. + */ void EXTI9_5_IRQHandler(void) { /* USER CODE BEGIN EXTI9_5_IRQn 0 */ @@ -310,8 +309,8 @@ void EXTI9_5_IRQHandler(void) } /** - * @brief This function handles I2C2 event interrupt. - */ + * @brief This function handles I2C2 event interrupt. + */ void I2C2_EV_IRQHandler(void) { /* USER CODE BEGIN I2C2_EV_IRQn 0 */ @@ -324,8 +323,8 @@ void I2C2_EV_IRQHandler(void) } /** - * @brief This function handles I2C2 error interrupt. - */ + * @brief This function handles I2C2 error interrupt. + */ void I2C2_ER_IRQHandler(void) { /* USER CODE BEGIN I2C2_ER_IRQn 0 */ @@ -338,8 +337,8 @@ void I2C2_ER_IRQHandler(void) } /** - * @brief This function handles SPI1 global interrupt. - */ + * @brief This function handles SPI1 global interrupt. + */ void SPI1_IRQHandler(void) { /* USER CODE BEGIN SPI1_IRQn 0 */ @@ -352,8 +351,8 @@ void SPI1_IRQHandler(void) } /** - * @brief This function handles SPI2 global interrupt. - */ + * @brief This function handles SPI2 global interrupt. + */ void SPI2_IRQHandler(void) { /* USER CODE BEGIN SPI2_IRQn 0 */ @@ -366,8 +365,8 @@ void SPI2_IRQHandler(void) } /** - * @brief This function handles USART1 global interrupt. - */ + * @brief This function handles USART1 global interrupt. + */ void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ @@ -380,8 +379,8 @@ void USART1_IRQHandler(void) } /** - * @brief This function handles USART3 global interrupt. - */ + * @brief This function handles USART3 global interrupt. + */ void USART3_IRQHandler(void) { /* USER CODE BEGIN USART3_IRQn 0 */ @@ -394,8 +393,8 @@ void USART3_IRQHandler(void) } /** - * @brief This function handles TIM8 trigger and commutation interrupts and TIM14 global interrupt. - */ + * @brief This function handles TIM8 trigger and commutation interrupts and TIM14 global interrupt. + */ void TIM8_TRG_COM_TIM14_IRQHandler(void) { /* USER CODE BEGIN TIM8_TRG_COM_TIM14_IRQn 0 */ @@ -409,8 +408,8 @@ void TIM8_TRG_COM_TIM14_IRQHandler(void) } /** - * @brief This function handles DMA1 stream7 global interrupt. - */ + * @brief This function handles DMA1 stream7 global interrupt. + */ void DMA1_Stream7_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream7_IRQn 0 */ @@ -423,8 +422,8 @@ void DMA1_Stream7_IRQHandler(void) } /** - * @brief This function handles DMA2 stream0 global interrupt. - */ + * @brief This function handles DMA2 stream0 global interrupt. + */ void DMA2_Stream0_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */ @@ -437,8 +436,8 @@ void DMA2_Stream0_IRQHandler(void) } /** - * @brief This function handles DMA2 stream2 global interrupt. - */ + * @brief This function handles DMA2 stream2 global interrupt. + */ void DMA2_Stream2_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ @@ -451,8 +450,8 @@ void DMA2_Stream2_IRQHandler(void) } /** - * @brief This function handles DMA2 stream3 global interrupt. - */ + * @brief This function handles DMA2 stream3 global interrupt. + */ void DMA2_Stream3_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ @@ -465,8 +464,8 @@ void DMA2_Stream3_IRQHandler(void) } /** - * @brief This function handles DMA2 stream4 global interrupt. - */ + * @brief This function handles DMA2 stream4 global interrupt. + */ void DMA2_Stream4_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ @@ -479,8 +478,8 @@ void DMA2_Stream4_IRQHandler(void) } /** - * @brief This function handles CAN2 RX0 interrupts. - */ + * @brief This function handles CAN2 RX0 interrupts. + */ void CAN2_RX0_IRQHandler(void) { /* USER CODE BEGIN CAN2_RX0_IRQn 0 */ @@ -493,8 +492,8 @@ void CAN2_RX0_IRQHandler(void) } /** - * @brief This function handles CAN2 RX1 interrupt. - */ + * @brief This function handles CAN2 RX1 interrupt. + */ void CAN2_RX1_IRQHandler(void) { /* USER CODE BEGIN CAN2_RX1_IRQn 0 */ @@ -507,8 +506,8 @@ void CAN2_RX1_IRQHandler(void) } /** - * @brief This function handles USB On The Go FS global interrupt. - */ + * @brief This function handles USB On The Go FS global interrupt. + */ void OTG_FS_IRQHandler(void) { /* USER CODE BEGIN OTG_FS_IRQn 0 */ @@ -521,8 +520,8 @@ void OTG_FS_IRQHandler(void) } /** - * @brief This function handles DMA2 stream5 global interrupt. - */ + * @brief This function handles DMA2 stream5 global interrupt. + */ void DMA2_Stream5_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream5_IRQn 0 */ @@ -535,8 +534,8 @@ void DMA2_Stream5_IRQHandler(void) } /** - * @brief This function handles DMA2 stream6 global interrupt. - */ + * @brief This function handles DMA2 stream6 global interrupt. + */ void DMA2_Stream6_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream6_IRQn 0 */ @@ -549,8 +548,8 @@ void DMA2_Stream6_IRQHandler(void) } /** - * @brief This function handles DMA2 stream7 global interrupt. - */ + * @brief This function handles DMA2 stream7 global interrupt. + */ void DMA2_Stream7_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream7_IRQn 0 */ @@ -563,8 +562,8 @@ void DMA2_Stream7_IRQHandler(void) } /** - * @brief This function handles USART6 global interrupt. - */ + * @brief This function handles USART6 global interrupt. + */ void USART6_IRQHandler(void) { /* USER CODE BEGIN USART6_IRQn 0 */ @@ -577,8 +576,8 @@ void USART6_IRQHandler(void) } /** - * @brief This function handles I2C3 event interrupt. - */ + * @brief This function handles I2C3 event interrupt. + */ void I2C3_EV_IRQHandler(void) { /* USER CODE BEGIN I2C3_EV_IRQn 0 */ @@ -591,8 +590,8 @@ void I2C3_EV_IRQHandler(void) } /** - * @brief This function handles I2C3 error interrupt. - */ + * @brief This function handles I2C3 error interrupt. + */ void I2C3_ER_IRQHandler(void) { /* USER CODE BEGIN I2C3_ER_IRQn 0 */ diff --git a/HAL_N_Middlewares/Src/system_stm32f4xx.c b/Src/system_stm32f4xx.c similarity index 100% rename from HAL_N_Middlewares/Src/system_stm32f4xx.c rename to Src/system_stm32f4xx.c diff --git a/HAL_N_Middlewares/Src/tim.c b/Src/tim.c similarity index 100% rename from HAL_N_Middlewares/Src/tim.c rename to Src/tim.c diff --git a/HAL_N_Middlewares/Src/usart.c b/Src/usart.c similarity index 99% rename from HAL_N_Middlewares/Src/usart.c rename to Src/usart.c index 5d513a2..8595e32 100644 --- a/HAL_N_Middlewares/Src/usart.c +++ b/Src/usart.c @@ -46,7 +46,7 @@ void MX_USART1_UART_Init(void) /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; - huart1.Init.BaudRate = 921600; + huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; diff --git a/HAL_N_Middlewares/Src/usb_device.c b/Src/usb_device.c similarity index 100% rename from HAL_N_Middlewares/Src/usb_device.c rename to Src/usb_device.c diff --git a/Src/usbd_cdc_if.c b/Src/usbd_cdc_if.c new file mode 100644 index 0000000..2cb391e --- /dev/null +++ b/Src/usbd_cdc_if.c @@ -0,0 +1,328 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_cdc_if.c + * @version : v1.0_Cube + * @brief : Usb device for Virtual Com Port. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_cdc_if.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE END PV */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @brief Usb device library. + * @{ + */ + +/** @addtogroup USBD_CDC_IF + * @{ + */ + +/** @defgroup USBD_CDC_IF_Private_TypesDefinitions USBD_CDC_IF_Private_TypesDefinitions + * @brief Private types. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_TYPES */ + +/* USER CODE END PRIVATE_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Defines USBD_CDC_IF_Private_Defines + * @brief Private defines. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_DEFINES */ +/* USER CODE END PRIVATE_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Macros USBD_CDC_IF_Private_Macros + * @brief Private macros. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_MACRO */ + +/* USER CODE END PRIVATE_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Variables USBD_CDC_IF_Private_Variables + * @brief Private variables. + * @{ + */ +/* Create buffer for reception and transmission */ +/* It's up to user to redefine and/or remove those define */ +/** Received data over USB are stored in this buffer */ +uint8_t UserRxBufferFS[APP_RX_DATA_SIZE]; + +/** Data to send over USB CDC are stored in this buffer */ +uint8_t UserTxBufferFS[APP_TX_DATA_SIZE]; + +/* USER CODE BEGIN PRIVATE_VARIABLES */ + +/* USER CODE END PRIVATE_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables + * @brief Public variables. + * @{ + */ + +extern USBD_HandleTypeDef hUsbDeviceFS; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_FunctionPrototypes USBD_CDC_IF_Private_FunctionPrototypes + * @brief Private functions declaration. + * @{ + */ + +static int8_t CDC_Init_FS(void); +static int8_t CDC_DeInit_FS(void); +static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length); +static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len); +static int8_t CDC_TransmitCplt_FS(uint8_t *pbuf, uint32_t *Len, uint8_t epnum); + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ + +/** + * @} + */ + +USBD_CDC_ItfTypeDef USBD_Interface_fops_FS = +{ + CDC_Init_FS, + CDC_DeInit_FS, + CDC_Control_FS, + CDC_Receive_FS, + CDC_TransmitCplt_FS +}; + +/* Private functions ---------------------------------------------------------*/ +/** + * @brief Initializes the CDC media low layer over the FS USB IP + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_Init_FS(void) +{ + /* USER CODE BEGIN 3 */ + /* Set Application Buffers */ + USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0); + USBD_CDC_SetRxBuffer(&hUsbDeviceFS, UserRxBufferFS); + return (USBD_OK); + /* USER CODE END 3 */ +} + +/** + * @brief DeInitializes the CDC media low layer + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_DeInit_FS(void) +{ + /* USER CODE BEGIN 4 */ + return (USBD_OK); + /* USER CODE END 4 */ +} + +/** + * @brief Manage the CDC class requests + * @param cmd: Command code + * @param pbuf: Buffer containing command data (request parameters) + * @param length: Number of data to be sent (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) +{ + /* USER CODE BEGIN 5 */ + switch(cmd) + { + case CDC_SEND_ENCAPSULATED_COMMAND: + + break; + + case CDC_GET_ENCAPSULATED_RESPONSE: + + break; + + case CDC_SET_COMM_FEATURE: + + break; + + case CDC_GET_COMM_FEATURE: + + break; + + case CDC_CLEAR_COMM_FEATURE: + + break; + + /*******************************************************************************/ + /* Line Coding Structure */ + /*-----------------------------------------------------------------------------*/ + /* Offset | Field | Size | Value | Description */ + /* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/ + /* 4 | bCharFormat | 1 | Number | Stop bits */ + /* 0 - 1 Stop bit */ + /* 1 - 1.5 Stop bits */ + /* 2 - 2 Stop bits */ + /* 5 | bParityType | 1 | Number | Parity */ + /* 0 - None */ + /* 1 - Odd */ + /* 2 - Even */ + /* 3 - Mark */ + /* 4 - Space */ + /* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */ + /*******************************************************************************/ + case CDC_SET_LINE_CODING: + + break; + + case CDC_GET_LINE_CODING: + + break; + + case CDC_SET_CONTROL_LINE_STATE: + + break; + + case CDC_SEND_BREAK: + + break; + + default: + break; + } + + return (USBD_OK); + /* USER CODE END 5 */ +} + +/** + * @brief Data received over USB OUT endpoint are sent over CDC interface + * through this function. + * + * @note + * This function will issue a NAK packet on any OUT packet received on + * USB endpoint until exiting this function. If you exit this function + * before transfer is complete on CDC interface (ie. using DMA controller) + * it will result in receiving more data while previous ones are still + * not sent. + * + * @param Buf: Buffer of data to be received + * @param Len: Number of data received (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) +{ + /* USER CODE BEGIN 6 */ + USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); + USBD_CDC_ReceivePacket(&hUsbDeviceFS); + return (USBD_OK); + /* USER CODE END 6 */ +} + +/** + * @brief CDC_Transmit_FS + * Data to send over USB IN endpoint are sent over CDC interface + * through this function. + * @note + * + * + * @param Buf: Buffer of data to be sent + * @param Len: Number of data to be sent (in bytes) + * @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY + */ +uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len) +{ + uint8_t result = USBD_OK; + /* USER CODE BEGIN 7 */ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData; + if (hcdc->TxState != 0){ + return USBD_BUSY; + } + USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len); + result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); + /* USER CODE END 7 */ + return result; +} + +/** + * @brief CDC_TransmitCplt_FS + * Data transmitted callback + * + * @note + * This function is IN transfer complete callback used to inform user that + * the submitted Data is successfully sent over USB. + * + * @param Buf: Buffer of data to be received + * @param Len: Number of data received (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_TransmitCplt_FS(uint8_t *Buf, uint32_t *Len, uint8_t epnum) +{ + uint8_t result = USBD_OK; + /* USER CODE BEGIN 13 */ + UNUSED(Buf); + UNUSED(Len); + UNUSED(epnum); + /* USER CODE END 13 */ + return result; +} + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/** + * @} + */ + +/** + * @} + */ diff --git a/HAL_N_Middlewares/Src/usbd_conf.c b/Src/usbd_conf.c similarity index 100% rename from HAL_N_Middlewares/Src/usbd_conf.c rename to Src/usbd_conf.c diff --git a/HAL_N_Middlewares/Src/usbd_desc.c b/Src/usbd_desc.c similarity index 100% rename from HAL_N_Middlewares/Src/usbd_desc.c rename to Src/usbd_desc.c diff --git a/basic_framework.ioc b/basic_framework.ioc index 28060eb..48dd651 100644 --- a/basic_framework.ioc +++ b/basic_framework.ioc @@ -13,8 +13,9 @@ CAN1.BS1=CAN_BS1_10TQ CAN1.BS2=CAN_BS2_3TQ CAN1.CalculateBaudRate=1000000 CAN1.CalculateTimeQuantum=71.42857142857143 -CAN1.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate +CAN1.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP CAN1.Prescaler=3 +CAN1.TXFP=ENABLE CAN2.BS1=CAN_BS1_10TQ CAN2.BS2=CAN_BS2_3TQ CAN2.CalculateBaudRate=1000000 diff --git a/bsp/bsp_init.c b/bsp/bsp_init.c index 61887d3..6d33f25 100644 --- a/bsp/bsp_init.c +++ b/bsp/bsp_init.c @@ -11,7 +11,7 @@ void BSPInit() { DWT_Init(168); BSPLogInit(); - USBInit(); // 务必在进入操作系统之前执行USBInit + // USBInit(); // 务必在进入操作系统之前执行USBInit // legacy support,待删除,将在实现了led/tempctrl/buzzer的module之后移动到app层进行XXXRegister() diff --git a/modules/can_comm/can_comm.c b/modules/can_comm/can_comm.c index 29c83fa..39baec4 100644 --- a/modules/can_comm/can_comm.c +++ b/modules/can_comm/can_comm.c @@ -103,9 +103,6 @@ void CANCommSend(CANCommInstance *instance, uint8_t *data) CANSetDLC(instance->can_ins, send_len); memcpy(instance->can_ins->tx_buff, instance->raw_sendbuf + i, send_len); CANTransmit(instance->can_ins, 1); - if(instance->send_buf_len - i > 8) - DWT_Delay(0.001*0.005); // delay 5ns以保证CAN发送的顺序,如果是最后一包,不需要延时 - // CAN的邮箱不保证发送顺序,当存在空闲时便放入对应邮箱,因此需要延时保证发送顺序 } } diff --git a/modules/referee/referee_communication.c b/modules/referee/referee_communication.c index d714605..3896700 100644 --- a/modules/referee/referee_communication.c +++ b/modules/referee/referee_communication.c @@ -9,7 +9,7 @@ */ #include "referee_communication.h" -#include "crc.h" +#include "crc_ref.h" #include "stdio.h" #include "rm_referee.h" diff --git a/修改HAL配置时文件目录的更改.md b/修改HAL配置时文件目录的更改.md deleted file mode 100644 index 6c1a83a..0000000 --- a/修改HAL配置时文件目录的更改.md +++ /dev/null @@ -1,14 +0,0 @@ -# 修改STM HAL配置时文件目录的更改 - -> 仅修改引脚位置和外设配置时 - -1. 在generate code之前,保存Makefile的副本 (因为修改了makefile的内容,添加了注释和伪构建目标,HAL无法正确识别格式导致直接其将整个文件清空) -2. 生成之后,将原makefile的内容替换到新的makefile中,注意保留新添加的src code和include path. -3. 将原main.c和freertos.c以及stm32f4xx_it.c替换到新的Src文件夹下 (Src的内容不用修改,**除非你新增了功能,那么需要将新增的初始化头文件`xxx.h`包含到main函数中,然后调用其对应的`MX_xxx_Init()`函数对硬件进行初始化**)如果在cubemx中配置了新的硬件,则main.c将会包含新的头文件并添加MX_xxx_Init()以供外设初始化.freertos中会新增任务的声明和定义. 对于这两个文件将之前的内容覆写到新的文件中即可(注意不要把新生成的东西覆盖). -4. 将新生成的Src,Inc,Driver/STM32F4xx_HAL_Driver放入HAL_N_Middlewares下的对应位置(第三个目录只有新增了功能的时候才需要添加).Middlewares在大部分时候不需要更新,直接删除根目录下的Middlewares文件夹.(内部包含ST的usb库和segger的rtt viewer支持,如果新增了usb功能则需要将st的部分复制到HAL_N_Middlewares/Middletowns/ST下) -5. 删除根目录下的Drivers & Src & Inc & Middlewares文件夹. -6. 一切搞定之后,重新编译你的代码 - -> Q:为什么这么做? - -> A:CubeMX生成的依赖库和文件有很大的冗余,占用空间较多.为了方便pull&push并精简仓库,已经将Driver和Middlewares中不需要的文件全部删除. 修改HAL的配置(在没有新增其他库和依赖的情况下,大部分我们的更改都属于这种情况)大多是对初始化配置,即放在Inc和Src下的文件进行修改;若新增了功能,可能还会新增Driver/STM32F4xx_HAL_Driver的内容(比如新添加了flash或iic,原来没有这两个功能). 实际上最节省空间的方式是生成软链接(快捷方式),将你需要的依赖文件在必要的时候链接到你的可执行文件中(你在cubemx内部已经下载了f4开发包,应该放在"用户名/STM32Cubemx/"下) \ No newline at end of file From 4a2bc01525fe79ccfa0fc32f5f24da8adaefc464 Mon Sep 17 00:00:00 2001 From: NeoZng Date: Thu, 13 Apr 2023 11:38:19 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=B0=86=E4=B8=8E=E8=A7=86=E8=A7=89?= =?UTF-8?q?=E7=9A=84=E9=80=9A=E4=BF=A1=E6=B3=A2=E7=89=B9=E7=8E=87=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA921600?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/tasks.json | 2 +- Makefile | 2 +- README.md | 2 ++ Src/usart.c | 2 +- basic_framework.ioc | 3 ++- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 6291ce2..7fb39df 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -22,7 +22,7 @@ }, }, { - "label": "download jlink", + "label": "download jlink", // 要使用此任务,需添加jlink的环境变量 "type": "shell", "command":"mingw32-make download_jlink", // "mingw32-make -j24 ; mingw32-make download_dap" "group": { diff --git a/Makefile b/Makefile index c6f243c..d709577 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Thu Apr 13 11:28:19 CST 2023] +# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Thu Apr 13 11:37:21 CST 2023] ########################################################################################################################## # ------------------------------------------------ diff --git a/README.md b/README.md index ac7dd04..4eaa7b1 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,8 @@ 在vscode-设置-扩展-C/C++-C_Cpp:style下修改。默认为`Visual Studio`。编写完新的代码后,使用右键-格式化文档(注:请勿对cube生成的文件使用此操作)。此操作不会改变文档的内容,但会改变缩进、空行、符号位置等,使代码更加统一、整洁。 + **在cubemx生成的文件(尤其是main.c和freertos.c)时,务必按照cubemx的提示将用户代码放在usercode注释代码块内,否则重新生成时会被覆盖.** + 请保持良好的注释编写习惯,建议安装doxygen插件。务必统一在.h文件中为外部接口编写注释,并给类型定义编写必要的注释。对于私有函数(.c文件中static修饰),请在.c文件中进行注释。对于复杂的代码段,也请添加注释。 每个功能模块编写完之后,及时添加说明文档。内容参照已有的文档,要进行简短的**总体说明、代码结构、外部接口和类型定义、私有函数和变量,以及使用的说明和范例**。如果有特别需要注意的地方,也请说明。 diff --git a/Src/usart.c b/Src/usart.c index 8595e32..5d513a2 100644 --- a/Src/usart.c +++ b/Src/usart.c @@ -46,7 +46,7 @@ void MX_USART1_UART_Init(void) /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; - huart1.Init.BaudRate = 115200; + huart1.Init.BaudRate = 921600; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; diff --git a/basic_framework.ioc b/basic_framework.ioc index 48dd651..6507887 100644 --- a/basic_framework.ioc +++ b/basic_framework.ioc @@ -626,7 +626,8 @@ TIM8.Channel-Output\ Compare3\ CH3=TIM_CHANNEL_3 TIM8.IPParameters=Channel-Output Compare1 CH1,Channel-Output Compare2 CH2,Channel-Output Compare3 CH3,Prescaler,Period TIM8.Period=19999 TIM8.Prescaler=167 -USART1.IPParameters=VirtualMode +USART1.BaudRate=921600 +USART1.IPParameters=VirtualMode,BaudRate USART1.VirtualMode=VM_ASYNC USART3.BaudRate=100000 USART3.IPParameters=VirtualMode,BaudRate,Parity,WordLength From ec005f163cf0d629f5720ee4774e5c49eda6213e Mon Sep 17 00:00:00 2001 From: NeoZng Date: Thu, 13 Apr 2023 16:09:03 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=9F=BA=E4=BA=8Ebsp?= =?UTF-8?q?=E7=9A=84bmi088=E7=BC=96=E5=86=99,=E6=9B=B4=E6=96=B0can=20comm?= =?UTF-8?q?=E7=9A=84CAN=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/can.c | 2 +- Src/stm32f4xx_it.c | 3 +- application/gimbal/gimbal.c | 4 +- basic_framework.ioc | 3 +- modules/BMI088/bmi088.c | 168 +++++++++++++---------------------- modules/BMI088/bmi088.h | 2 +- modules/algorithm/user_lib.c | 6 ++ modules/algorithm/user_lib.h | 4 +- 8 files changed, 77 insertions(+), 115 deletions(-) diff --git a/Src/can.c b/Src/can.c index 19e132b..fe60482 100644 --- a/Src/can.c +++ b/Src/can.c @@ -81,7 +81,7 @@ void MX_CAN2_Init(void) hcan2.Init.AutoWakeUp = DISABLE; hcan2.Init.AutoRetransmission = DISABLE; hcan2.Init.ReceiveFifoLocked = DISABLE; - hcan2.Init.TransmitFifoPriority = DISABLE; + hcan2.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan2) != HAL_OK) { Error_Handler(); diff --git a/Src/stm32f4xx_it.c b/Src/stm32f4xx_it.c index 06a3db6..62b6f5c 100644 --- a/Src/stm32f4xx_it.c +++ b/Src/stm32f4xx_it.c @@ -108,11 +108,12 @@ void NMI_Handler(void) void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ - + asm("bx lr"); /* USER CODE END HardFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + asm("bx lr"); /* USER CODE END W1_HardFault_IRQn 0 */ } } diff --git a/application/gimbal/gimbal.c b/application/gimbal/gimbal.c index bf8272f..6ed40d2 100644 --- a/application/gimbal/gimbal.c +++ b/application/gimbal/gimbal.c @@ -54,8 +54,8 @@ void GimbalInit() .cali_mode = BMI088_CALIBRATE_ONLINE_MODE, .work_mode = BMI088_BLOCK_PERIODIC_MODE, }; - // imu=BMI088Register(&imu_config); - gimba_IMU_data = INS_Init(); // IMU先初始化,获取姿态数据指针赋给yaw电机的其他数据来源 + imu=BMI088Register(&imu_config); + // gimba_IMU_data = INS_Init(); // IMU先初始化,获取姿态数据指针赋给yaw电机的其他数据来源 // YAW Motor_Init_Config_s yaw_config = { .can_init_config = { diff --git a/basic_framework.ioc b/basic_framework.ioc index 6507887..011cd40 100644 --- a/basic_framework.ioc +++ b/basic_framework.ioc @@ -20,8 +20,9 @@ CAN2.BS1=CAN_BS1_10TQ CAN2.BS2=CAN_BS2_3TQ CAN2.CalculateBaudRate=1000000 CAN2.CalculateTimeQuantum=71.42857142857143 -CAN2.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate +CAN2.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP CAN2.Prescaler=3 +CAN2.TXFP=ENABLE Dma.ADC1.8.Direction=DMA_PERIPH_TO_MEMORY Dma.ADC1.8.FIFOMode=DMA_FIFOMODE_DISABLE Dma.ADC1.8.Instance=DMA2_Stream4 diff --git a/modules/BMI088/bmi088.c b/modules/BMI088/bmi088.c index 91ab6c9..1a45fdd 100644 --- a/modules/BMI088/bmi088.c +++ b/modules/BMI088/bmi088.c @@ -151,7 +151,7 @@ static uint8_t BMI088AccelInit(BMI088Instance *bmi088) */ static uint8_t BMI088GyroInit(BMI088Instance *bmi088) { - // 后续添加reset和通信检查 + // 后续添加reset和通信检查? // code to go here ... BMI088GyroWriteSingleReg(bmi088, BMI088_GYRO_SOFTRESET, BMI088_GYRO_SOFTRESET_VALUE); // 软复位 DWT_Delay(0.08); @@ -164,9 +164,8 @@ static uint8_t BMI088GyroInit(BMI088Instance *bmi088) DWT_Delay(0.001); // 初始化寄存器,提高可读性 - uint8_t reg = 0; - uint8_t data = 0; - uint8_t error = 0; + uint8_t reg = 0, data = 0; + BMI088_ERORR_CODE_e error = 0; // 使用sizeof而不是magic number,这样如果修改了数组大小,不用修改这里的代码;或者使用宏定义 for (uint8_t i = 0; i < sizeof(BMI088_Gyro_Init_Table) / sizeof(BMI088_Gyro_Init_Table[0]); i++) { @@ -195,25 +194,31 @@ static void BMI088AccSPIFinishCallback(SPIInstance *spi) { static BMI088Instance *bmi088; bmi088 = (BMI088Instance *)(spi->id); - // code to go here ... + // 若第一次读取加速度,则在这里启动温度读取 + // 如果使用异步姿态更新,此处唤醒量测更新的任务 } static void BMI088GyroSPIFinishCallback(SPIInstance *spi) { static BMI088Instance *bmi088; bmi088 = (BMI088Instance *)(spi->id); + // 若不是异步,啥也不做;否则启动姿态的预测步(propagation) } static void BMI088AccINTCallback(GPIOInstance *gpio) { static BMI088Instance *bmi088; bmi088 = (BMI088Instance *)(gpio->id); + // 启动加速度计数据读取(和温度读取,如果有必要),并转换为实际值 + // 读取完毕会调用BMI088AccSPIFinishCallback } static void BMI088GyroINTCallback(GPIOInstance *gpio) { static BMI088Instance *bmi088; bmi088 = (BMI088Instance *)(gpio->id); + // 启动陀螺仪数据读取,并转换为实际值 + // 读取完毕会调用BMI088GyroSPIFinishCallback } // -------------------------以上为私有函数,private用于IT模式下的中断处理---------------------------------// @@ -227,64 +232,44 @@ static void BMI088GyroINTCallback(GPIOInstance *gpio) * @param bmi088 * @return BMI088_Data_t */ -BMI088_Data_t BMI088Acquire(BMI088Instance *bmi088) +uint8_t BMI088Acquire(BMI088Instance *bmi088, BMI088_Data_t *data_store) { - // 分配空间保存返回的数据,指针传递 - static BMI088_Data_t data_store; - static float dt_imu = 1.0; // 初始化为1,这样也可以不用first_read_flag,各有优劣 // 如果是blocking模式,则主动触发一次读取并返回数据 - static uint8_t buf[6] = {0}; // 最多读取6个byte(gyro/acc,temp是2) - static uint8_t first_read_flag; // 判断是否时第一次进入此函数(第一次读取) - // 用于初始化DWT的计数,暂时没想到更好的方法 - if (!first_read_flag) - DWT_GetDeltaT(&bmi088->bias_dwt_cnt); // 初始化delta - else - dt_imu = DWT_GetDeltaT(&bmi088->bias_dwt_cnt); + if (bmi088->work_mode == BMI088_BLOCK_PERIODIC_MODE) + { + static uint8_t buf[6] = {0}; // 最多读取6个byte(gyro/acc,temp是2) + // 读取accel的x轴数据首地址,bmi088内部自增读取地址 // 3* sizeof(int16_t) + BMI088AccelRead(bmi088, BMI088_ACCEL_XOUT_L, buf, 6); + for (uint8_t i = 0; i < 3; i++) + data_store->acc[i] = bmi088->acc_coef * (float)(int16_t)(((buf[2 * i + 1]) << 8) | buf[2 * i]); + BMI088GyroRead(bmi088, BMI088_GYRO_X_L, buf, 6); // 连续读取3个(3*2=6)轴的角速度 + for (uint8_t i = 0; i < 3; i++) + data_store->gyro[i] = bmi088->BMI088_GYRO_SEN * (float)(int16_t)(((buf[2 * i + 1]) << 8) | buf[2 * i]); + BMI088AccelRead(bmi088, BMI088_TEMP_M, buf, 2); // 读温度,温度传感器在accel上 + data_store->temperature = (float)(int16_t)(((buf[0] << 3) | (buf[1] >> 5))) * BMI088_TEMP_FACTOR + BMI088_TEMP_OFFSET; - // 读取accel的x轴数据首地址,bmi088内部自增读取地址 // 3* sizeof(int16_t) - BMI088AccelRead(bmi088, BMI088_ACCEL_XOUT_L, buf, 6); - static float calc_coef_acc; // 防止重复计算 - if (!first_read_flag) // 初始化的时候赋值 - calc_coef_acc = bmi088->BMI088_ACCEL_SEN * bmi088->acc_coef; // 你要是不爽可以用宏或者全局变量,但我认为你现在很爽 - bmi088->acc[0] = calc_coef_acc * (float)(int16_t)(((buf[1]) << 8) | buf[0]); - bmi088->acc[1] = calc_coef_acc * (float)(int16_t)(((buf[3]) << 8) | buf[2]); - bmi088->acc[3] = calc_coef_acc * (float)(int16_t)(((buf[5]) << 8) | buf[4]); - - BMI088GyroRead(bmi088, BMI088_GYRO_X_L, buf, 6); // 连续读取3个(3*2=6)轴的角速度 - static float gyrosen, bias1, bias2, bias3; - if (!first_read_flag) - { // 先保存,减少访问内存的开销,直接访问栈上变量 - gyrosen = bmi088->BMI088_GYRO_SEN; - bias1 = bmi088->gyro_offset[0]; - bias2 = bmi088->gyro_offset[1]; - bias3 = bmi088->gyro_offset[2]; - - first_read_flag = 1; // 最后在这里,完成一次读取,标志第一次读取完成 - } // 别担心,初始化调用的时候offset(即零飘bias)是0 - bmi088->gyro[0] = (float)(int16_t)(((buf[1]) << 8) | buf[0]) * gyrosen - bias1; - bmi088->gyro[0] = (float)(int16_t)(((buf[3]) << 8) | buf[2]) * gyrosen - bias2; - bmi088->gyro[0] = (float)(int16_t)(((buf[5]) << 8) | buf[4]) * gyrosen - bias3; - - BMI088AccelRead(bmi088, BMI088_TEMP_M, buf, 2); // 读温度,温度传感器在accel上 - bmi088->temperature = (float)(int16_t)(((buf[0] << 3) | (buf[1] >> 5))) * BMI088_TEMP_FACTOR + BMI088_TEMP_OFFSET; - - return data_store; + return 1; + } // 如果是IT模式,则检查标志位.当传感器数据准备好会触发外部中断,中断服务函数会将标志位置1 if (bmi088->work_mode == BMI088_BLOCK_TRIGGER_MODE && bmi088->update_flag.imu_ready == 1) - return data_store; + { + memcpy(data_store, &bmi088->gyro, sizeof(BMI088_Data_t)); + bmi088->update_flag.imu_ready = 0; + return 1; + } // 如果数据还没准备好,则返回空数据?或者返回上一次的数据?或者返回错误码? @todo if (bmi088->update_flag.imu_ready == 0) - return data_store; + return 0; } /* pre calibrate parameter to go here */ #warning REMEMBER TO SET PRE CALIBRATE PARAMETER IF YOU CHOOSE NOT TO CALIBRATE #define BMI088_PRE_CALI_ACC_X_OFFSET 0.0f #define BMI088_PRE_CALI_ACC_Y_OFFSET 0.0f -// macro to go here... 预设标定参数 gNorm - +#define BMI088_PRE_CALI_ACC_Z_OFFSET 0.0f +#define BMI088_PRE_CALI_G_NORM 9.805f /** * @brief BMI088 acc gyro 标定 * @note 标定后的数据存储在bmi088->bias和gNorm中,用于后续数据消噪和单位转换归一化 @@ -300,80 +285,58 @@ void BMI088CalibrateIMU(BMI088Instance *_bmi088) { if (_bmi088->cali_mode == BMI088_CALIBRATE_ONLINE_MODE) // 性感bmi088在线标定,耗时6s { + _bmi088->acc_coef = BMI088_ACCEL_6G_SEN; // 标定完后要乘以9.805/gNorm + _bmi088->BMI088_GYRO_SEN = BMI088_GYRO_2000_SEN; // 后续改为从initTable中获取 // 一次性参数用完就丢,不用static float startTime; // 开始标定时间,用于确定是否超时 uint16_t CaliTimes = 6000; // 标定次数(6s) - int16_t bmi088_raw_temp; // 临时变量,暂存数据移位拼接后的值 uint8_t buf[6] = {0}; // buffer float gyroMax[3], gyroMin[3]; // 保存标定过程中读取到的数据最大值判断是否满足标定环境 float gNormTemp, gNormMax, gNormMin; // 同上,计算矢量范数(模长) float gyroDiff[3], gNormDiff; // 每个轴的最大角速度跨度及其模长 + BMI088_Data_t raw_data; startTime = DWT_GetTimeline_s(); // 循环继续的条件为标定环境不满足 do // 用do while至少执行一次,省得对上面的参数进行初始化 { // 标定超时,直接使用预标定参数(如果有) - if (DWT_GetTimeline_s() - startTime > 12.5) + if (DWT_GetTimeline_s() - startTime > 12.01) { // 两次都没有成功就切换标定模式,丢给下一个if处理,使用预标定参数 _bmi088->cali_mode = BMI088_LOAD_PRE_CALI_MODE; break; } - DWT_Delay(0.005); + DWT_Delay(0.0005); _bmi088->gNorm = 0; - _bmi088->gyro_offset[0] = 0; - _bmi088->gyro_offset[1] = 0; - _bmi088->gyro_offset[2] = 0; + for (uint8_t i = 0; i < 3; i++) // 重置gNorm和零飘 + _bmi088->gyro_offset[i] = 0; -// @todo : 这里也有获取bmi088数据的操作,后续与BMI088Acquire合并.注意标定时的工作模式是阻塞,且offset和acc_coef要初始化成0和1,标定完成后再设定为标定值 + // @todo : 这里也有获取bmi088数据的操作,后续与BMI088Acquire合并.注意标定时的工作模式是阻塞,且offset和acc_coef要初始化成0和1,标定完成后再设定为标定值 for (uint16_t i = 0; i < CaliTimes; ++i) // 提前计算,优化 { - BMI088AccelRead(_bmi088, BMI088_ACCEL_XOUT_L, buf, 6); // 读取 - bmi088_raw_temp = (int16_t)((buf[1]) << 8) | buf[0]; // 拼接 - _bmi088->acc[0] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; // 计算真实值 - bmi088_raw_temp = (int16_t)((buf[3]) << 8) | buf[2]; - _bmi088->acc[1] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; - bmi088_raw_temp = (int16_t)((buf[5]) << 8) | buf[4]; - _bmi088->acc[2] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; - gNormTemp = sqrtf(_bmi088->acc[0] * _bmi088->acc[0] + - _bmi088->acc[1] * _bmi088->acc[1] + - _bmi088->acc[2] * _bmi088->acc[2]); + BMI088Acquire(_bmi088, &raw_data); + gNormTemp = NormOf3d(raw_data.acc); _bmi088->gNorm += gNormTemp; // 计算范数并累加,最后除以calib times获取单次值 - - BMI088GyroRead(_bmi088, BMI088_GYRO_CHIP_ID, buf, 8); // 可保存提前计算,优化 - bmi088_raw_temp = (int16_t)((buf[1]) << 8) | buf[0]; - _bmi088->gyro[0] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; - _bmi088->gyro_offset[0] += _bmi088->gyro[0]; - bmi088_raw_temp = (int16_t)((buf[3]) << 8) | buf[2]; - _bmi088->gyro[1] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; - _bmi088->gyro_offset[1] += _bmi088->gyro[1]; - bmi088_raw_temp = (int16_t)((buf[5]) << 8) | buf[4]; - _bmi088->gyro[2] = bmi088_raw_temp * _bmi088->BMI088_ACCEL_SEN; - _bmi088->gyro_offset[2] += _bmi088->gyro[2]; // 累加当前值,最后除以calib times获得零飘 - // 因为标定时传感器静止,所以采集到的值就是漂移 + for (uint8_t i = 0; i < 3; i++) + _bmi088->gyro_offset[i] += raw_data.gyro[i]; // 因为标定时传感器静止,所以采集到的值就是漂移,累加当前值,最后除以calib times获得零飘 if (i == 0) // 避免未定义的行为(else中) { - gNormMax = gNormTemp; // 初始化成当前的重力加速度模长 - gNormMin = gNormTemp; + gNormMax = gNormMin = gNormTemp; // 初始化成当前的重力加速度模长 for (uint8_t j = 0; j < 3; ++j) { - gyroMax[j] = _bmi088->gyro[j]; - gyroMin[j] = _bmi088->gyro[j]; + gyroMax[j] = raw_data.gyro[j]; + gyroMin[j] = raw_data.gyro[j]; } } else // 更新gNorm的Min Max和gyro的minmax { - if (gNormTemp > gNormMax) - gNormMax = gNormTemp; - if (gNormTemp < gNormMin) - gNormMin = gNormTemp; + gNormMax = gNormMax > gNormTemp ? gNormMax : gNormTemp; + gNormMin = gNormMin < gNormTemp ? gNormMin : gNormTemp; for (uint8_t j = 0; j < 3; ++j) { - if (_bmi088->gyro[j] > gyroMax[j]) // 可以写的更简短,宏? :? - gyroMax[j] = _bmi088->gyro[j]; - if (_bmi088->gyro[j] < gyroMin[j]) - gyroMin[j] = _bmi088->gyro[j]; + gyroMax[j] = gyroMax[j] > _bmi088->gyro[j] ? gyroMax[j] : _bmi088->gyro[j]; + gyroMin[j] = gyroMin[j] < _bmi088->gyro[j] ? gyroMin[j] : _bmi088->gyro[j]; } } @@ -387,15 +350,11 @@ void BMI088CalibrateIMU(BMI088Instance *_bmi088) break; // 超出范围了,重开! remake到while循环,外面还有一层 DWT_Delay(0.0005); // 休息一会再开始下一轮数据获取,IMU准备数据需要时间 } - _bmi088->gNorm /= (float)CaliTimes; // 加速度范数重力 for (uint8_t i = 0; i < 3; ++i) _bmi088->gyro_offset[i] /= (float)CaliTimes; // 三轴零飘 - BMI088AccelRead(_bmi088, BMI088_TEMP_M, buf, 2); - bmi088_raw_temp = (int16_t)((buf[0] << 3) | (buf[1] >> 5)); // 保存标定时的温度,如果已知温度和零飘的关系 // 这里直接存到temperature,可以另外增加BMI088Instance的成员变量TempWhenCalib - _bmi088->temperature = bmi088_raw_temp * BMI088_TEMP_FACTOR + BMI088_TEMP_OFFSET; - + _bmi088->temperature = raw_data.temperature * BMI088_TEMP_FACTOR + BMI088_TEMP_OFFSET; // 保存标定时的温度,如果已知温度和零飘的关系 // caliTryOutCount++; 保存已经尝试的标定次数?由你. } while (gNormDiff > 0.5f || fabsf(_bmi088->gNorm - 9.8f) > 0.5f || @@ -410,12 +369,12 @@ void BMI088CalibrateIMU(BMI088Instance *_bmi088) // 离线标定 if (_bmi088->cali_mode == BMI088_LOAD_PRE_CALI_MODE) // 如果标定失败也会进来,直接使用离线数据 { - // 读取标定数据 - // code to go here ... _bmi088->gyro_offset[0] = BMI088_PRE_CALI_ACC_X_OFFSET; - // ... - // acc_coef,gNorm ... + _bmi088->gyro_offset[1] = BMI088_PRE_CALI_ACC_Y_OFFSET; + _bmi088->gyro_offset[2] = BMI088_PRE_CALI_ACC_Z_OFFSET; + _bmi088->gNorm = BMI088_PRE_CALI_G_NORM; } + _bmi088->acc_coef *= 9.805 / _bmi088->gNorm; } // 考虑阻塞模式和非阻塞模式的兼容性,通过条件编译(则需要在编译前修改宏定义)或runtime参数判断 @@ -428,14 +387,12 @@ BMI088Instance *BMI088Register(BMI088_Init_Config_s *config) { // 申请内存 BMI088Instance *bmi088_instance = (BMI088Instance *)zero_malloc(sizeof(BMI088Instance)); - // 从右向左赋值,让bsp instance保存指向bmi088_instance的指针(父指针),便于在底层中断中访问bmi088_instance config->acc_int_config.id = config->gyro_int_config.id = config->spi_acc_config.id = config->spi_gyro_config.id = config->heat_pwm_config.id = bmi088_instance; - // @todo: // 目前只实现了!!!阻塞读取模式!!!.如果需要使用IT模式,则需要修改这里的代码,为spi和gpio注册callback(默认为NULL) // 还需要设置SPI的传输模式为DMA模式或IT模式(默认为blocking) @@ -485,14 +442,9 @@ BMI088Instance *BMI088Register(BMI088_Init_Config_s *config) // 可以增加try out times,超出次数则返回错误 } while (error != 0); - // 尚未标定时先设置为默认值,使得数据拼接和缩放可以正常进行,后续合并到BMI088Acquire()?? - bmi088_instance->acc_coef = 1.0; // 尚未初始化时设定为1,使得BMI088Acquire可以正常使用 - bmi088_instance->BMI088_GYRO_SEN = BMI088_GYRO_2000_SEN; // 后续改为从initTable中获取 - bmi088_instance->BMI088_ACCEL_SEN = BMI088_ACCEL_6G_SEN; // 或使用宏字符串拼接 - // bmi088->gNorm = - - // 标定acc和gyro - BMI088CalibrateIMU(bmi088_instance); + bmi088_instance->work_mode = BMI088_BLOCK_PERIODIC_MODE; // 临时设置为阻塞模式 + BMI088CalibrateIMU(bmi088_instance); // 标定acc和gyro + bmi088_instance->work_mode = config->work_mode; // 恢复工作模式 return bmi088_instance; } diff --git a/modules/BMI088/bmi088.h b/modules/BMI088/bmi088.h index ab3c4be..39bc1f8 100644 --- a/modules/BMI088/bmi088.h +++ b/modules/BMI088/bmi088.h @@ -104,7 +104,7 @@ BMI088Instance *BMI088Register(BMI088_Init_Config_s *config); * @param bmi088 BMI088实例指针 * @return BMI088_Data_t 读取到的数据 */ -BMI088_Data_t BMI088Acquire(BMI088Instance *bmi088); +uint8_t BMI088Acquire(BMI088Instance *bmi088,BMI088_Data_t* data_store); /** * @brief 标定传感器.BMI088在初始化的时候会调用此函数. 提供接口方便标定离线数据 diff --git a/modules/algorithm/user_lib.c b/modules/algorithm/user_lib.c index 5fe5042..8556b39 100644 --- a/modules/algorithm/user_lib.c +++ b/modules/algorithm/user_lib.c @@ -174,6 +174,12 @@ float* Norm3d(float* v) return v; } +// 计算模长 +float NormOf3d(float *v) +{ + return Sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); +} + // 三维向量叉乘v1 x v2 void Cross3d(float* v1, float* v2,float* res) { diff --git a/modules/algorithm/user_lib.h b/modules/algorithm/user_lib.h index 0197d2e..3028f46 100644 --- a/modules/algorithm/user_lib.h +++ b/modules/algorithm/user_lib.h @@ -88,7 +88,7 @@ extern uint8_t GlobalDebugMode; #define VAL_MAX(a, b) ((a) > (b) ? (a) : (b)) /** - * @brief 返回一块干净的内?,不过仍然需要强制转?为你需要的类型 + * @brief 返回一块干净的内�?,不过仍然需要强制转�?为你需要的类型 * * @param size 分配大小 * @return void* @@ -116,6 +116,8 @@ int float_rounding(float raw); float* Norm3d(float* v); +float NormOf3d(float* v); + void Cross3d(float* v1, float* v2, float* res); float Dot3d(float* v1, float* v2); From 681dce3c903107848b4dd7035d52a93f1d9b8082 Mon Sep 17 00:00:00 2001 From: NeoZng Date: Thu, 13 Apr 2023 18:23:01 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8DCAN=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Drobot=5Fdef=E5=A4=84=E5=AE=8F=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- Src/can.c | 4 ++-- application/robot_def.h | 3 --- basic_framework.ioc | 6 ++++-- bsp/can/bsp_can.md | 4 +--- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index d709577..664d149 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Thu Apr 13 11:37:21 CST 2023] +# File automatically-generated by tool: [projectgenerator] version: [3.18.0-B7] date: [Thu Apr 13 18:20:17 CST 2023] ########################################################################################################################## # ------------------------------------------------ diff --git a/Src/can.c b/Src/can.c index fe60482..41173da 100644 --- a/Src/can.c +++ b/Src/can.c @@ -47,7 +47,7 @@ void MX_CAN1_Init(void) hcan1.Init.TimeTriggeredMode = DISABLE; hcan1.Init.AutoBusOff = DISABLE; hcan1.Init.AutoWakeUp = DISABLE; - hcan1.Init.AutoRetransmission = DISABLE; + hcan1.Init.AutoRetransmission = ENABLE; hcan1.Init.ReceiveFifoLocked = DISABLE; hcan1.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan1) != HAL_OK) @@ -79,7 +79,7 @@ void MX_CAN2_Init(void) hcan2.Init.TimeTriggeredMode = DISABLE; hcan2.Init.AutoBusOff = DISABLE; hcan2.Init.AutoWakeUp = DISABLE; - hcan2.Init.AutoRetransmission = DISABLE; + hcan2.Init.AutoRetransmission = ENABLE; hcan2.Init.ReceiveFifoLocked = DISABLE; hcan2.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan2) != HAL_OK) diff --git a/application/robot_def.h b/application/robot_def.h index 107eb7d..0e58bb7 100644 --- a/application/robot_def.h +++ b/application/robot_def.h @@ -188,10 +188,7 @@ typedef struct /* @todo : 对于平衡底盘,需要新增控制模式和控制数据 */ typedef struct { -#ifdef CHASSIS_BOARD attitude_t chassis_imu_data; -#endif // CHASSIS_BOARD - // 后续增加底盘的真实速度 // float real_vx; // float real_vy; diff --git a/basic_framework.ioc b/basic_framework.ioc index 011cd40..45bd186 100644 --- a/basic_framework.ioc +++ b/basic_framework.ioc @@ -13,14 +13,16 @@ CAN1.BS1=CAN_BS1_10TQ CAN1.BS2=CAN_BS2_3TQ CAN1.CalculateBaudRate=1000000 CAN1.CalculateTimeQuantum=71.42857142857143 -CAN1.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP +CAN1.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP,NART +CAN1.NART=ENABLE CAN1.Prescaler=3 CAN1.TXFP=ENABLE CAN2.BS1=CAN_BS1_10TQ CAN2.BS2=CAN_BS2_3TQ CAN2.CalculateBaudRate=1000000 CAN2.CalculateTimeQuantum=71.42857142857143 -CAN2.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP +CAN2.IPParameters=CalculateTimeQuantum,BS1,BS2,Prescaler,CalculateBaudRate,TXFP,NART +CAN2.NART=ENABLE CAN2.Prescaler=3 CAN2.TXFP=ENABLE Dma.ADC1.8.Direction=DMA_PERIPH_TO_MEMORY diff --git a/bsp/can/bsp_can.md b/bsp/can/bsp_can.md index 39c5cab..0e75446 100644 --- a/bsp/can/bsp_can.md +++ b/bsp/can/bsp_can.md @@ -2,9 +2,7 @@

    neozng1@hnu.edu.cn

    -> TODO: -> -> 1. 增加自动检测ID冲突的log输出。 +# 请注意使用CAN设备的时候务必保证总线只接入了2个终端电阻!开发板一般都有一个,6020电机和HT、LK电机也都有终端电阻,注意把多于2个的全部断开(通过拨码) ## 使用说明 From 9e364cbaaa33e1e30b13b12cedaff396ad3d54f1 Mon Sep 17 00:00:00 2001 From: NeoZng Date: Fri, 14 Apr 2023 18:17:46 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=96=87?= =?UTF-8?q?=E6=A1=A3,=E4=BF=AE=E6=94=B9=E9=80=9A=E4=BF=A1=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE,=E6=9B=B4=E6=96=B0=E4=BA=86=E5=B9=B3=E8=A1=A1?= =?UTF-8?q?=E5=BA=95=E7=9B=98=E7=9A=84VMC=E6=98=A0=E5=B0=84=E5=92=8C?= =?UTF-8?q?=E4=BA=94=E8=BF=9E=E6=9D=86=E8=A7=A3=E7=AE=97,=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BA=86=E5=8F=8C=E6=9D=BF=E9=80=9A=E4=BF=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84=E6=AD=A5=E5=AF=B9=E9=BD=90=E7=9A=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +- application/balance_chassis/balance.c | 205 +++++++++++++----- application/balance_chassis/balance.h | 39 +++- application/balance_chassis/vmc_project.h | 14 -- application/gimbal/gimbal.c | 7 +- application/robot.c | 17 +- application/robot_def.h | 12 +- assets/image-20221201144336613.png | Bin 29283 -> 0 bytes assets/image-20230413195155471.png | Bin 0 -> 30682 bytes modules/BMI088/bmi088-datasheet.pdf | Bin 0 -> 1592053 bytes modules/can_comm/can_comm.md | 5 + modules/master_machine/master_process.c | 2 +- .../湖南大学RoboMaster电控组通信协议.md | 2 +- modules/remote/remote_control.c | 2 +- 14 files changed, 225 insertions(+), 97 deletions(-) delete mode 100644 application/balance_chassis/vmc_project.h delete mode 100644 assets/image-20221201144336613.png create mode 100644 assets/image-20230413195155471.png create mode 100644 modules/BMI088/bmi088-datasheet.pdf diff --git a/README.md b/README.md index 4eaa7b1..6b45bd9 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ > ***强烈推荐使用VSCode进行开发,Ozone进行调试。*** VSCode可通过Cortex-Debug利用OpenOCD进行调试,jlink/stlink/dap-link都支持,具体的使用方法和环境配置教程在[VSCode+Ozone使用方法](./VSCode+Ozone使用方法.md)中。**请使用UTF-8编码查看\&编辑此项目**。 + **此外,本项目中使用到的物理变量值均采用标准单位制**,若有特殊需求,可以通过module层的`general_def.h`添加物理量转换关系的宏。 - **分层**: @@ -165,11 +166,11 @@ Module层主要存放的是类型定义和实例指针数组,在该层没有 务必为模块添加说明文档和使用范例,以及其他需要注意的事项(如果有)。 -> **待优化:** +> **面向对象小指南:** > -> 由于C语言没有对象的概念,对于需要使用通信的module,在其.c文件下都需要保存每个实例的指针,在收到消息时遍历所有实例指针,找到收到消息的实例。这种处理方式可能会导致实时性下降,CAN接收时要遍历所有注册了CAN的实例,进入module层还需要一次遍历。用C++则可以将对象的this指针和模块的回调函数进行绑定,生成一个可调用对象然后再进行CAN的注册,使得其不需要module层的遍历。 +> 由于C语言没有对象的概念,对于需要使用通信的module,在其.c文件下都需要保存每个实例的指针,在收到消息时(发生回调)遍历所有实例指针,找到收到消息的实例。这种处理方式可能会导致实时性下降,例如CAN接收时要遍历所有注册了CAN的实例,进入module层还需要一次遍历。用C++则可以将对象的this指针和模块的回调函数进行绑定,生成一个可调用对象然后再进行CAN的注册,使得其不需要module层的遍历。 > -> 后续考虑在CAN instance中加入一个额外的`void*`域成员(成员变量),其内容为module层实例的地址。这样CAN收到消息时只需要遍历所有CAN instance,对于相同的模块,可以在其回调函数内部获取CAN instance的`void*`指针并通过强制类型转换cast成模块的实例结构体指针类型,从而访问特定的模块。 +> 考虑在实例中加入一个额外的`void*`域成员(成员变量),其内容为module层实例的地址。这样CAN收到消息时只需要遍历所有CAN instance,对于相同的模块,可以在其回调函数内部获取CAN instance的`void*`指针并通过强制类型转换cast成模块的实例结构体指针类型,从而访问特定的模块。 > 这实际上是保存“对象”的parent pointer,使得实例可以访问拥有自己的实例(访问自己的父亲)。和回调函数配合,就可以防止交叉包含并为底层访问上层内容提供支持。 ## APP层(application) @@ -208,6 +209,7 @@ ROOT:. │ VSCode+Ozone使用方法.md # 开发环境配置和前置知识介绍 │ 修改HAL配置时文件目录的更改.md # 重新配置CubeMX时的步骤和注意事项 │ 必须做&禁止做.md # 开发必看,规范和要求 +| 如何定位bug.md # 开发必看,快速定位bug并进行修复.还提供了一些debug典例 | ├─.vscode │ launch.json # 调试的配置文件 @@ -217,7 +219,12 @@ ROOT:. ├─assets # 说明文档的图片 ├─application # 应用层 ├─bsp # 板级支持包 -└─modules # 模块层 +├─modules # 模块层 +| +├─Src #hal生成的外设初始化源文件 +├─Inc #hal生成的外设初始化头文件 +├─Drivers #hal driver和cmsis drivers +└─Middlewares # STusb ext , rtos , segger rtt等 ``` ## BSP/Module/Application介绍 @@ -232,7 +239,7 @@ ROOT:. ### 运行任务 -![image-20221201144336613](assets/image-20221201144336613.png) +![image-20230413195155471](assets/image-20230413195155471.png) ### 初始化流程 diff --git a/application/balance_chassis/balance.c b/application/balance_chassis/balance.c index d587381..1c1c370 100644 --- a/application/balance_chassis/balance.c +++ b/application/balance_chassis/balance.c @@ -1,6 +1,5 @@ // app #include "balance.h" -#include "vmc_project.h" #include "gain_table.h" #include "robot_def.h" #include "general_def.h" @@ -12,77 +11,156 @@ #include "super_cap.h" #include "controller.h" #include "can_comm.h" +#include "user_lib.h" // standard #include "stdint.h" #include "arm_math.h" // 需要用到较多三角函数 +#include "bsp_dwt.h" +static uint32_t balance_dwt_cnt; +static float balance_dt; + /* 底盘拥有的模块实例 */ -static BMI088Instance *imu; +static attitude_t *imu_data; +// static BMI088Instance *imu; static SuperCapInstance *super_cap; static referee_info_t *referee_data; // 裁判系统的数据会被不断更新 - +// 电机 static HTMotorInstance *lf; static HTMotorInstance *rf; static HTMotorInstance *lb; static HTMotorInstance *rb; static LKMotorInstance *l_driven; static LKMotorInstance *r_driven; - -static CANCommInstance *chassis_comm; // 底盘板和云台板通信 +// 底盘板和云台板通信 +static CANCommInstance *chassis_comm; // 由于采用多板架构,即使使用C板也有空余串口,可以使用串口通信以获得更高的通信速率并降低阻塞 static Chassis_Ctrl_Cmd_s chassis_cmd_recv; static Chassis_Upload_Data_s chassis_feed_send; -// 由于采用多板架构,即使使用C板也有空余串口,可以使用串口通信以获得更高的通信速率 - -/* 方便函数间无开销传递参数的中间变量 */ -// 若将下面的封装函数取缔,则可以将这些变量放入BalanceTask函数体内. -// static ... -static float leg_len_l, leg_len_r; // 左右腿长(虚拟) -static float leg_angle_l, leg_angle_r; // 左右腿角度(虚拟) -// 倒立摆的虚拟力和虚拟力矩 -static float F_virtual_left, T_virtual_left, F_virtual_right, T_virtual_right; -// 左前,左后,右前,右后关节力矩 -static float T_joint_lf, T_joint_lr, T_joint_rf, T_joint_rb; -static float T_leg_left, T_leg_right; // 左右驱动电机力矩 +// 两个腿的参数,0为左腿,1为右腿 +static LinkNPodParam left_side, right_side; +static PIDInstance swerving_pid; // 转向PID,有转向指令时使用IMU的加速度反馈积分以获取速度和位置状态量 +static PIDInstance anti_crash_pid; // 抗劈叉,将输出以相反的方向叠加到左右腿的上 +static PIDInstance leg_length_pid; // 用PD模拟弹簧的传递函数,不需要积分项(弹簧是一个无积分的二阶系统),增益不可过大否则抗外界冲击响应时太"硬" +static PIDInstance roll_compensate_pid; // roll轴补偿,用于保持机体水平 /* ↓↓↓分割出这些函数是为了提高可读性,使得阅读者的逻辑更加顺畅;但实际上这些函数都不长,可以以注释的形式直接加到BalanceTask里↓↓↓*/ +/** + * @brief 将电机和imu的数据组装为LinkNPodParam结构体 + * + */ +static void ParamAssemble() +{ +} + +/** + * @brief 根据关节角度和角速度,计算单杆长度和角度以及变化率 + * + * @param p 5连杆和腿的参数 + */ +static void Link2Pod(LinkNPodParam *p) +{ // 拟将功能封装到vmc_project.h中 + float xD, yD, xB, yB, BD, A0, B0, xC, yC, phi2; + xD = JOINT_DISTANCE + THIGH_LEN * arm_cos_f32(p->phi4); + yD = THIGH_LEN * arm_sin_f32(p->phi4); + xB = 0 + THIGH_LEN * arm_cos_f32(p->phi1); + yB = THIGH_LEN * arm_sin_f32(p->phi1); + BD = powf(xD - xB, 2) + powf(yD - yB, 2); + A0 = 2 * CALF_LEN * (xD - xB); + B0 = 2 * CALF_LEN * (yD - yB); + p->phi2 = 2 * atan2f(B0 + Sqrt(powf(A0, 2) + powf(B0, 2) - powf(BD, 2)), A0 + BD); + xC = xB + CALF_LEN * arm_cos_f32(p->phi2); + yC = yB + CALF_LEN * arm_sin_f32(p->phi2); +#ifdef ANGLE_DIFF_VMC + float p5t = atan2f(yC, xC - JOINT_DISTANCE / 2); // 避免重复计算 + float plt = Sqrt(powf(xC - JOINT_DISTANCE / 2, 2) + powf(yC, 2)); + p->phi5_w = (p5t - p->phi5) / balance_dt; + p->pod_len_w = (plt - p->pod_len) / balance_dt; + p->phi5 = p5t; + p->pod_len = plt; +#endif + p->phi5 = atan2f(yC, xC - JOINT_DISTANCE / 2); + p->pod_len = Sqrt(powf(xC - JOINT_DISTANCE / 2, 2) + powf(yC, 2)); + p->phi3 = atan2(yC - yD, xC - xD); // 稍后用于计算VMC + +#ifdef VELOCITY_DIFF_VMC + float phi1_pred = p->phi1 + p->phi1_w * balance_dt; // 预测下一时刻的关节角度(利用关节角速度) + float phi4_pred = p->phi4 + p->phi4_w * balance_dt; + // 重新计算腿长和腿角度 + xD = JOINT_DISTANCE + THIGH_LEN * arm_cos_f32(phi4_pred); + yD = THIGH_LEN * arm_sin_f32(phi4_pred); + xB = 0 + THIGH_LEN * arm_cos_f32(phi1_pred); + yB = THIGH_LEN * arm_sin_f32(phi1_pred); + BD = powf(xD - xB, 2) + powf(yD - yB, 2); + A0 = 2 * CALF_LEN * (xD - xB); + B0 = 2 * CALF_LEN * (yD - yB); + phi2 = 2 * atan2f(B0 + Sqrt(powf(A0, 2) + powf(B0, 2) - powf(BD, 2)), A0 + BD); // 不要用link->phi2,因为这里是预测的 + xC = xB + CALF_LEN * arm_cos_f32(phi2); + yC = yB + CALF_LEN * arm_sin_f32(phi2); + // 差分计算腿长变化率和腿角速度 + p->pod_w = (atan2f(yC, xC - JOINT_DISTANCE / 2) - p->phi5) / balance_dt; + p->pod_v = (Sqrt(powf(xC - JOINT_DISTANCE / 2, 2) + powf(yC, 2)) - p->pod_len) / balance_dt; +#endif // VELOCITY_DIFF_VMC +} + /** * @brief 根据状态反馈计算当前腿长,查表获得LQR的反馈增益,并列式计算LQR的输出 * 由于反馈矩阵和控制矩阵都比较稀疏,故不使用矩阵库,避免非零项计算 + * @note 计算得到的腿部力矩输出还要再综合运动控制系统补偿后映射为两个关节电机 + * 而轮子的输出则只经过转向PID的反馈增益计算 * */ -static void CalcLQR() -{ +static void CalcLQR(LinkNPodParam *p) +{ } /** - * @brief 将LQR的输出映射到关节和驱动电机的输出 - * + * @brief 腿部控制:抗劈叉; 轮子控制:转向 + * @todo 确定方向 */ -static void VMCProject() -{ // 拟将功能封装到vmc_project.h中 -} - -/** - * @brief 腿部角度控制:转向和抗劈叉 - * - */ -static PIDInstance swerving_pid; // 转向PID,有转向指令时使用IMU的加速度反馈积分以获取速度和位置状态量 -static PIDInstance anti_crash_pid; // 抗劈叉,将输出以相反的方向叠加到左右腿的上 - static void SynthesizeMotion() { + PIDCalculate(&anti_crash_pid, left_side.phi5 - right_side.phi5, 0); + left_side.T_pod += anti_crash_pid.Output; + right_side.T_pod -= anti_crash_pid.Output; + + // PIDCalculate(&swerving_pid, imu_data->Yaw, 0); // 对速度闭环还是使用角度增量闭环? + left_side.T_wheel -= swerving_pid.Output; + right_side.T_wheel += swerving_pid.Output; } /** - * @brief 腿长控制:长度 + roll轴补偿(保持机体水平),用PD模拟弹簧的传递函数 + * @brief 腿部控制:长度.用PD模拟弹簧的传递函数 * */ -static PIDInstance leg_length_pid; // 用PD模拟弹簧的传递函数,不需要积分项(弹簧是一个无积分的二阶系统),增益不可过大否则抗外界冲击响应时太"硬" -static PIDInstance roll_compensate_pid; // roll轴补偿,用于保持机体水平 - -static void LegControl() +static void LegControl(LinkNPodParam *p, float target_length) { + p->F_pod += PIDCalculate(&leg_length_pid, p->pod_len, target_length); +} + +/** + * @brief roll轴补偿(保持机体水平) + * + */ +static void RollCompensate() +{ + PIDCalculate(&roll_compensate_pid, imu_data->Roll, 0); + left_side.F_pod += roll_compensate_pid.Output; + right_side.F_pod -= roll_compensate_pid.Output; +} + +/** + * @brief 将前面计算的T和F映射为关节电机输出 + * + */ +static void VMCProject(LinkNPodParam *p) +{ + float s23 = arm_sin_f32(p->phi2 - p->phi3); + float phi25 = p->phi2 - p->phi5; + float phi35 = p->phi3 - p->phi5; + float F_m_L = p->F_pod * p->pod_len; + p->T_back = -(THIGH_LEN * arm_sin_f32(p->phi1 - p->phi2) * (p->T_pod * arm_cos_f32(phi35) - F_m_L * arm_sin_f32(phi35))) / (p->pod_len * s23); + p->T_front = -(THIGH_LEN * arm_sin_f32(p->phi3 - p->phi4) * (p->T_pod * arm_cos_f32(phi25) - F_m_L * arm_sin_f32(phi25))) / (p->pod_len * s23); } /** @@ -90,6 +168,7 @@ static void LegControl() * 通过模型解算地面的支持力完成离地检测 * */ +static uint8_t air_flag; static void FlyDetect() { } @@ -98,14 +177,13 @@ static void FlyDetect() * @brief 功率限制,一般不需要 * */ -static void WattLimit() +static void WattLimit(LinkNPodParam *p) { } void BalanceInit() -{ +{ // IMU初始化 BMI088_Init_Config_s imu_config = { - // IMU初始化 .spi_acc_config = { .GPIOx = GPIOC, .cs_pin = GPIO_PIN_4, @@ -116,16 +194,6 @@ void BalanceInit() .cs_pin = GPIO_PIN_4, .spi_handle = &hspi1, }, - .acc_int_config = { - .exti_mode = EXTI_TRIGGER_FALLING, - .GPIO_Pin = GPIO_PIN_10, - .GPIOx = GPIOA, - }, - .gyro_int_config = { - .exti_mode = EXTI_TRIGGER_FALLING, - .GPIO_Pin = GPIO_PIN_11, - .GPIOx = GPIOA, - }, .heat_pid_config = { .Kp = 0.0f, .Kd = 0.0f, @@ -141,6 +209,7 @@ void BalanceInit() .work_mode = BMI088_BLOCK_PERIODIC_MODE, }; // imu = BMI088Register(&imu_config); + imu_data = INS_Init(); SuperCap_Init_Config_s cap_conf = { // 超级电容初始化 @@ -165,7 +234,6 @@ void BalanceInit() rb = HTMotorInit(&joint_conf); // ↓↓↓---------------驱动电机初始化----------------↓↓↓ - Motor_Init_Config_s driven_conf = { // 写一个,剩下的修改方向和id即可 .can_init_config.can_handle = &hcan1, @@ -184,12 +252,11 @@ void BalanceInit() .close_loop_type = CURRENT_LOOP, }, .motor_type = LK9025, - }; - driven_conf.can_init_config.tx_id=1; + driven_conf.can_init_config.tx_id = 1; l_driven = LKMotorInit(&driven_conf); - driven_conf.can_init_config.tx_id=2; + driven_conf.can_init_config.tx_id = 2; r_driven = LKMotorInit(&driven_conf); CANComm_Init_Config_s chassis_comm_conf = { @@ -204,7 +271,7 @@ void BalanceInit() }; chassis_comm = CANCommInit(&chassis_comm_conf); - referee_data = RefereeInit(&huart6); // 裁判系统串口 + // referee_data = RefereeInit(&huart6); // 裁判系统串口 // ↓↓↓---------------综合运动控制----------------↓↓↓ PID_Init_Config_s swerving_pid_conf = { @@ -251,4 +318,32 @@ void BalanceInit() /* balanceTask可能需要以更高频率运行,以提高线性化的精确程度 */ void BalanceTask() { + chassis_cmd_recv = *(Chassis_Ctrl_Cmd_s *)CANCommGet(chassis_comm); + + ParamAssemble(); // 参数组装,将电机和IMU的参数组装到一起 + // 将五连杆映射成单杆 + Link2Pod(&left_side); + Link2Pod(&right_side); + // 根据单杆计算处的角度和杆长,计算反馈增益 + CalcLQR(&left_side); + CalcLQR(&right_side); + // 腿长控制 + LegControl(&left_side, 0); + LegControl(&right_side, 0); + + SynthesizeMotion(); // 综合运动控制,转向+抗劈叉 + + RollCompensate(); // 俯仰角补偿,保持机体水平 + // VMC映射成关节输出 + VMCProject(&left_side); + VMCProject(&right_side); + + FlyDetect(); // 滞空检测 + // 电机输出限幅 + WattLimit(&left_side); + WattLimit(&right_side); + + // code to go here... 裁判系统,UI,多机通信 + + CANCommSend(chassis_comm, (uint8_t*)&chassis_feed_send); } diff --git a/application/balance_chassis/balance.h b/application/balance_chassis/balance.h index 4e63883..18c3aaf 100644 --- a/application/balance_chassis/balance.h +++ b/application/balance_chassis/balance.h @@ -1,17 +1,44 @@ #pragma once +// 底盘参数 +#define CALF_LEN 0.25f // 小腿 +#define THIGH_LEN 0.15f // 大腿 +#define JOINT_DISTANCE 0.108f // 关节间距 + +#define VELOCITY_DIFF_VMC //通过速度计算增量,然后通过差分计算腿长变化率和腿角速度 +// #define ANGLE_DIFF_VMC //直接保存上一次的值,通过差分计算腿长变化率和腿角速度 + + +typedef struct +{ + // joint + float phi1_w, phi4_w; + float T_back, T_front; + + // link angle,phi1-ph5, phi5 is pod angle + float phi1, phi2, phi3, phi4, phi5; + + // wheel + float wheel_angle; + float wheel_w; + float T_wheel; + + // pod + float pod_len; + float pod_w; + float pod_v; + float F_pod; + float T_pod; +} LinkNPodParam; + /** * @brief 平衡底盘初始化 - * + * */ void BalanceInit(); /** * @brief 平衡底盘任务 - * + * */ void BalanceTask(); - - - - diff --git a/application/balance_chassis/vmc_project.h b/application/balance_chassis/vmc_project.h deleted file mode 100644 index b74b239..0000000 --- a/application/balance_chassis/vmc_project.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef VMC_PROJECT_H -#define VMC_PROJECT_H - -#include "stm32f407xx.h" -#include "arm_math.h" -#include "math.h" -#include "general_def.h" - -// 将五连杆和直杆的vmc映射放在此处,方便修改和调试,balance.c不会太长 -#endif // !VMC_PROJECT_H - - - - diff --git a/application/gimbal/gimbal.c b/application/gimbal/gimbal.c index 6ed40d2..3cdf1c0 100644 --- a/application/gimbal/gimbal.c +++ b/application/gimbal/gimbal.c @@ -136,7 +136,7 @@ void GimbalInit() gimbal_pub = PubRegister("gimbal_feed", sizeof(Gimbal_Upload_Data_s)); gimbal_sub = SubRegister("gimbal_cmd", sizeof(Gimbal_Ctrl_Cmd_s)); } -int aaaaaaa; + /* 机器人云台控制核心任务,后续考虑只保留IMU控制,不再需要电机的反馈 */ void GimbalTask() { @@ -178,10 +178,7 @@ void GimbalTask() default: break; } -// if(yaw_motor->motor_measure.total_angle>120) -// { -// aaaaaaa++; -// } + // 在合适的地方添加pitch重力补偿前馈力矩 // 根据IMU姿态/pitch电机角度反馈计算出当前配重下的重力矩 // ... diff --git a/application/robot.c b/application/robot.c index 6463b39..02b621c 100644 --- a/application/robot.c +++ b/application/robot.c @@ -10,7 +10,6 @@ #if defined(ONE_BOARD) || defined(CHASSIS_BOARD) #include "chassis.h" -#include "referee.h" #endif #if defined(ONE_BOARD) || defined(GIMBAL_BOARD) @@ -19,6 +18,11 @@ #include "robot_cmd.h" #endif +#ifdef BALANCE_BAORD +#include "balance.h" +#endif // BALANCE_BOARD + + void RobotInit() { // 关闭中断,防止在初始化过程中发生中断 @@ -35,9 +39,13 @@ void RobotInit() #endif #if defined(ONE_BOARD) || defined(CHASSIS_BOARD) - // Referee_Interactive_init(); ChassisInit(); #endif + +#ifdef BALANCE_BAORD + BalanceInit(); +#endif // BALANCE_BA + // 初始化完成,开启中断 __enable_irq(); } @@ -52,6 +60,9 @@ void RobotTask() #if defined(ONE_BOARD) || defined(CHASSIS_BOARD) ChassisTask(); - // Referee_Interactive_task(); #endif + +#ifdef BALANCE_BAORD + BalanceTask(); +#endif // BALANCE_BA } diff --git a/application/robot_def.h b/application/robot_def.h index 0e58bb7..cf9569a 100644 --- a/application/robot_def.h +++ b/application/robot_def.h @@ -131,11 +131,11 @@ typedef enum LOAD_BURSTFIRE, // 连发 } loader_mode_e; -// 功率限制,从裁判系统获取 +// 功率限制,从裁判系统获取,是否有必要保留? typedef struct { // 功率控制 float chassis_power_mx; -} Chassis_Power_Data_s; +} Chassis_Power_Data_s; /* ----------------CMD应用发布的控制数据,应当由gimbal/chassis/shoot订阅---------------- */ /** @@ -188,7 +188,9 @@ typedef struct /* @todo : 对于平衡底盘,需要新增控制模式和控制数据 */ typedef struct { - attitude_t chassis_imu_data; +#if defined(CHASSIS_BOARD) || defined(GIMBAL_BOARD) // 非单板的时候底盘还将imu数据回传(若有必要) + // attitude_t chassis_imu_data; +#endif // 后续增加底盘的真实速度 // float real_vx; // float real_vy; @@ -197,9 +199,7 @@ typedef struct uint8_t rest_heat; // 剩余枪口热量 Bullet_Speed_e bullet_speed; // 弹速限制 Enemy_Color_e enemy_color; // 0 for blue, 1 for red - - // 是否需要剩余电量?(电容) - + } Chassis_Upload_Data_s; /* @todo : 对于平衡底盘,需要不同的反馈数据 */ diff --git a/assets/image-20221201144336613.png b/assets/image-20221201144336613.png deleted file mode 100644 index df4ce2e714176b764ab3bbc425d229c7514d66e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29283 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 dk zET@sKe)00e=k-$stO~`<#=%pb%|MiUF5AF5c1OulT#JoUX2m_Bu>7;ZMZ* zmk*{6<*)IF>w`B4wCi|E7-^4wRtN}9RM+07F~02i^#v0-n=+Tv z);w@>V2y!8o~fEFs>ZstuTLTQ<^KMDB{(Qb+CC)X)_YcZQBN>4v{8m(WN&B6o0cbG-YiIetc{}n8 zRgM0<4aT2>6TGG-DjW-Pb1#E-stO!=h_4Ir3JMAe38|V$WsCwAC{+jEaQtSY4jWSq z;Gy@$7)Q?rxF6tH7AxWiV6f#-{%akb#{5gSbkEiBf(&jBm?jeRMIkNAE2hiKkH}}m zDb7kJrRC*)!OY5Gje6G1;3M@uB#MfP;uMeIHn=W=snB`i8}wh@F8NKIEO6q_AoApm z45SD)-v0t2DK%d-ZI!f05#ucZ0ee9D02?gsdPFiwfjz8u#W=bzM_YgIP9;K5e9s^NtB1hVT&>Eh%wDMRJlTHRV#rOC%U_E+gGE1(X;H zf{OI?tSmAN4Y)J8KW%Ppr9)a<6GT;dbQQVhg$fIi$blg%xMFtwwO5h?dsaG<5UNQ{ zDv_|}(HI{aq1Y}jk#}PG2t>_a58L&>?zJM~prA;TXF(cuFQf-deb@-J;85yy)}R!@g};~aMB?|{90et1WJt)ybl_4qYeXmM8U2~Z}X_@FsR9#wHd>ESXb037+xG|9W!u}~>+@IMLOiO1V!VH}*^oNq0%* zdJb%#E)BFRS9~55`Y9%&EuQ3-+M1lm3~!Qz#QL``i{)5fmRc=O_$^)>7Yy7N^N*&q^2~3b?#+RM+u&`LoiEaa|*X^cwOwkd!?NH zHfjH#1sF5#^3%#PEeRFZt^CbEwN_Kc z4pgW{6=k8z;mZ^cba}GGGl_6g-!+uPJni5&xl}idug^#B%Cm4EwM?vRrSTC%sfw7__L*-@mO3FqT{Sf2Y09T#RB^}gxZSzTRQ>O3$|el@E2-1m3b z46Bw()hAKm7aEE}$77706lbJ-hcn9anj70C8A?*C=cfflGtTSz)tS0sAmQh!hu{_ z>%wlhXnmWRRMB0t52jN=(TBT4620SR1B*s?1_(}!2M+x^=vQBN-Vb)0!p5H#-|KdwPF8z7;xk7e$`zF(8p9&eZvP&?dN4?vt~rlt zziKMUg;}fax^;E8U)7AdWP|oxmhB7TrCe@@jMIxY)Mn98pbf^>c>c@o1-{|`_3h5# zx^nxfqv<>R5?T{5KQb5}<)TW{a3UoGXGe-?^QEb0>nQ^|IV-H9gg>^^)x^H3i=i}Q z!Rdh2l|_vcr|rOi5D_-<%7Y=yqF@rfQJr;jiB!#Wxu^Rx9_?`;TA|=y`_DnV$74tz zrZ+||xm1L!5lf;>dHJ~uY9IQ3Ic&t^-Xws4^arTkIy$P{jxnlP>{BgwZKq~-6?1>D2m4gGGV?6$$?@;D z9WRx^8fZJ&6yhgiKtGv1AU1?Cd`*yGX`Be7D(Gg1y}(+xUY>S9$o)1Epm7vpyvt?liiHuE3D!ukr|{sdLX*yyNd_Jv`tHx3Ek&v3Skf1`A4*`oH{qzh zA}40NRH7AichtHWVMvjeoZMymz%UFLI*#kVLS0Xtr^hSTst!3sL|nk88V-8Vo{gR; z_-5w>NV1;fFGpT)RYZNuxORuC0xz3Ayie0hspq)STT zGqyekhRE+UA7by^Ji$N1JM;<(83hHHax23z`FJZr!7Qu2k1MK4K_Qrx72|~QwqJ`m zx$|8NNm|nCbRDWn^B|wVnqRA5zY2%)82Cmv9uPAk10~^PVTap!^wctOmLk}Gcu*L| z48++mpvPfNzx&C6jJp7fyfxBr|P8tUs#)3@sFOfQ; z-1}4u>aWfbXW2HwMLdHDJ6!{a8q-7s3@wL6~& zv+S+2eE~uAKS_2$kdtxQ3Y^2Rg|!+GY428Hu2KRGrOD2%F|gvDrnlBO&V7e)(tuKl zPY49*Ic$%BmM!~;8%O$Mu=)5j>qQa^G{<94q5?7X!YO>1cO7DO96 zAMA<;Zj$_K%W685g(DknjBt35hRF8+z8N7P!ur=9#ZdDp%Pom6R)*1rU3(egM&D)! z@>&r4MY`+MeIN;u8PMhO=Du&t7kq;>1dKDK7_MM|R}ax1CAaPwa9-zAxX1K2BviGn ztIW77p>Jq7kfSB`rS%qkN2I5_JA#0~pCM~!FR1gHkue$_ZLv#8Sja12ytvf4a+qHD zi=QO$y09Ys9Y1piso0C!xGpX(DYEfZpr=Apa2{>$66jyTf1Xz_rOzfX@tu;FkDp(D zK!gSJ9P2?19^&FkTW7FAbOrbggQqJ6r)DMxYX%4F6-fDB0uTdrSrnLpWM*c1X3t!N zAO4n7(Bc;u*tpm4+Tt6}@ z$_r$gA3oq~T)0m``RF`E(OU}tBoJoNR1`&uhdSaSBv}EmoO~(e8L|3{+j#eL>iXI? zUqfbpT5ue{xKkb!kHJISkGN?NM`x6^^T5$j)($uVEKuG;tY2{Dd9O1@`M9U^O84(B zE{~3YHfl$6bM;Qm9KTpGJ$1p7w1gyw$;R#5Gr@x+rfclP8#fwFv(hu14Sya$=6d*#qL9N<1~} z*-4ER+Grscj*`mii)-n)bKz4u2GbY6_M&-)dP390kcOuLx2C`wZBWa^jQVWLigGU? zaLxc+?9Kzve4^LNbA@vDstS@oX5gxi(d8t>4?rWoQYFu5do%06(9+|m1dSjX* zp?Z_D+Wk*-^pD|dcQbrZF|L)4&MF~4gi@PwQm_QG5nFqHZ zwB??&`993pRi|XUxEs#^{RWU}TTH~B&)G9I0$tlJJtcmm&hJf4Z=Wl!$H)Jbc;JH^3anl97|1>on zMKNT&W7;8lsSBt7Vm0eF*X~%Xqo}#k;^h4Lg*0V0GXKOnx~;?K@W26+2)GoieVsn@ zVZ%-0EvjX0#?U~T*}8)xU#5TXC-ru%Sdqpe>yk|QYB66O`@WOYIbqB(0vEA`I4iX2 zTX}d4L{;QOSXdT8 zfTkOeYjbHLLztMD-T)o}4JSm+O+mo}!jaD{`p!Gc3lr6--D?XTN<0UbXaqlg{``A! zQOIHa*SBxq*4HhjRZ6cWJSV+!1$^^cG|^E}7u5(Uvp^uz*474g;(I@3#mF$>i~u=b z4v|S^WyZelI`3pwRvwpHPS@7ed0)DoE^n8rM05W#u#o`OphIT39cu<0R`xUvjJJ=~ z0!WLg@p;p?7@gnq%Gquv=48N&fC9czPgmEI!*AZv`AhTEP8diF4L97EQ5Cr38;uNi!BWom(k>u+a-LYkjtKh?16++h@4it zdbOJUx+(-ZrWA7>mSp;M1Iw|QLquy`Ox&U&HON|E6 zewVqv zbpD*)ZAyg0xdZLCy~D#`N^bFamN;g!PX;@REab4Be_H2A;}hu_$3F6YY#|J9SmT>b zV6^nP@=(r$XD_461N68QKrZGC7ub4ts2BTP+Ap);i1u^DlI%bygK9@}tAcTniRHE9 zur8Y4RsvpnPyv*gJ)=h9U1@Oqkj{JmrXC_86h19NJQ#D7p(^e7A2|3y#yuW5uFI%m z?~WFQRKdX9{yI@9n2ff?tJwqu*ol8_qJ(vOeUw?QvM+GLDco%*DeAkKi76T)g2$e-8$Vl&(aUO7C3_SJvO;N6jeYY-9*PC%s$(YrR^yE#j|!3D$IHsY0@jT8 zhQ7vg1I7G-W7+pHo_^~(r`Ig1Gk!fSWzP*yrw)7Jpc6=uHm@Xw`vzn9lm}UTt55F1 zw!TzQysAQEVb_8Q>l7taR8Wclr?ACoRx*DT*|xHbq0x?ifzZJmnI13x69|0~q2UGK z?WlE&sisr_F`;7f3>Ic4h=yBM5V|XiPeh0OdsOSf_6|iy3HcWA3B5W=m7)V_d&>{4;?HO#*he+b6BV}9fbe(}j`Vx^Em2f-(y`6WUaB;>%&7hQc zL+im@)KYxOc`8Hf*ejI^796iLPZ6%`JGe-3{>RmzS@Q4- z1$d#`xlKisFY5l_D?XBW`r-j(t ziCX)e!;gs%nQ6#=oB&8&{8ZoU#>sFD;Eqb8)r?`=)^bGrCH2VxAF)5bf~}r3IoKSH zZj(T!;^4)eBQ((qjf#Q>2C@DGoqZ2df2B~7Kuas+SMu2GXF0D(q~sLc?vbddsy<5w zL<0u_84@(>fW}Ph?7OYBuzlN1=-Ji<3*=l00VSw92Na|bH^tky!2J)h52&wF@3<-` zsxaH!?UL4t7x~iv#)nBnWV9Anz!N6`_k@L%1PUk6#RXcq9XU)pZT*;;#`8epdYGD; zcxDp_Ej3XK1ien8xW{x03Ch+-{^S?2HXmS$qYFK=SQRswzzm@4O^~`E>UXW<7uNTy zxkW`9RW4;+3W%D{%RI8M7cxS9m!6)Ukr8_Hzzd487c{Qgg#RBHGs-EK3=x2%J8K9% zJ)o@(RJ@&z_PBK$3zbz=K;fPy?-zi>#qUG)5b6|))iG(f2n2>m_P@c&v~e?sDt3i> zCR?sLL^EWC`@qR0flS={AmE2YB*oDO@_FIHg#<=| zXXGNbh7NIjz5TOVQjADLLqjZAQ1Nf&&fLuC8C34%R*ODhR0Ec9@l=Zry2pgQ1#)tL zGyfI3R?w-m5lusF!~K6$e#6tgrmL$-y^dv@J#K%V>vlKyqFdPc0Y0V%6pXyaEQJ#TOpd1|@9E9pT z;9E+HiaSZnaDf}ZI>2^?*x#49N=Z2w8p*w+Q}Sc6F9Ygf5)vRzhMNuw3WE4f^zCH? z!czf&KOly`dX?B`w6d}SjY!y_H`|!1EX7;RTLiZ)IUY2_T)Cd1ZsB+^A{g zWuBP7o&L_P;t0Y|eFT9O8~H9c_q$e70bq+b#|7eN$h%>G`%h@d{|-C(@BaIQ_zPps VovVi1A#i!b(?>EA+2Y#o{|%wpU0eVF diff --git a/assets/image-20230413195155471.png b/assets/image-20230413195155471.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bbd52a22dbe2a60ed24b8bb90389a236fa21ff GIT binary patch literal 30682 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�^C>S9~oy8vOvqhQt!{{oxXNf&(Np z1hCJAM_1l$k)R>S5ml^Ah*aYNfP`lD3~F%qv^DYuUoAjgCw_+xtRdU;dg8(Kni8v+ z@sO;+J{gNNb!%U3>|FffNm9vBrKO)fIqn@WS1bF}+Z(>J690qP;rgGJ+C23HcPcN_ z8EgwfjXrOO^8&2@n?+FfU6JHurbi1|Zv<`Fhyit>;5eP)cesM3_pa^@^Z_{W5(*y~ zzVbS@F{RI2^P~2;7UXpZ+qL^|me~K25dM>)oGhP1L|9MKVjoHkIOZoDXmS{}s44=V40s-sA!!X#`1J zX7N(d?&OL5oLS_cf2pysN@3vingBx4xsTW5zF~913?;aCAd5=ii)0xY1}Js5w+2sN zEbA&6R{4d`4k%zNIwh{pjDZjd0L}^eK`4lfE^lHGZwyOPWdTZtQH#WQn%L0=1cd{H zGKx+EtmX|~7+_fd&!!d~YiL|Nkra01bJolmFa&yoCDlhuidd=Te-{Sm*ECKP@MKM8 zu|!XSV7IHJNNbW!PPJnYR2&js4GQHMNE}^~vNxxl&`-XWmrmZh^3sTbo&0F71%zK> zypZOWLK_2?ghVUv10O~S^09g&rNE2%Gj@Z|u~_R}gfoFKB(sd9EU0Ny*Q^5sBN$6% z$>ScP~=Pyx51(|2`A zSzT{$9i{SyUi7Pj{DS(jiX=i4Yhz;u_0@cWx*iqUKDmon>tZF{_Z^obt;i(iWa~+# z=jB`^_b1{}|Dj7ZQ*#LYQBxX1a7|KE!@nmJGc(DJ^?T>P!q}fArKhJ@0c|>~Zr3hV z?+s2W&v;Pp>MiJFg5A`AXzN3}c%%b3E6|-}_+I%wqI&f+8-4k?{n`1#Rd5VgGtI6y zSGGgFZKuB1=VbpDwBCL&I;iy?){^E@i#X*@mkro9%xOhQUNQ#hNzUW-#pYXjrHu_?{GUO_HKz982?ZFMsI!2%*@Qq$S%2V-DEjGW4@|G5vWBiGe6LUT%K=#+oX^)NnlHalI%NpDENrhxp_EPxaOxjUQIV z?K^h18S5^C-m?3~fST?V?aDpgwlnNNYNJl2%-_;DZ;4ga3@Y}j{r3k(`)Gr~hK=E` zEYd`|{+;kIkbqWx{lM2y+)KLzxE*W*vhrV^voQuYwYGr0j%-d=^s;0Ka_AYGno-I} zO5!&=Kz|)we)ng8V}ldE{A$wDp5s;Ga(iZWs*d{wA6<86r_o^14lit!7TkfOOt<#S znSu3I5H@b=b8-5hYgufS>f_1d20nTonD(tE>;!cagbJ;<2Fb*!sTM>=Dk&+?3s-Sr z1K+ATHnwkQsNZ@hwAd}`{t3pxBOp0TfDO&QOD*fwc)WFSaZ#{kO)^54rzK2DBfA$O zd4;CCeityc;$X=Dl@IlT#wy0s`2QQx`~P1bzt9?^BqRIBZO6xRrw$;H&RSLGc^oS!4p};Kw-LkrEyJNt)lu|G>AXrBJ)`!;rERr>x(%*%r?Z&XTgNcl5gLhtAqyu zZQfE{O&5SSYPxQV;QGFZhe$ECA~H(yXAeF_Uqe?BjR+ooep{Cm2qZ_WKvhRyEk5JW zG)P?@C-vdqxU4K{y5J&pmaRvAD6`4&wFm#ksJc2feekHzf@1&GeFy|&<0SL<{QNs> zQ&2FcSGM|WaqB_A%a^l{3zIt96z6gk<1ZH%CxDLq{`&jVy~sxp2nr!>n4NgzC#dB4 zT`aGtVtt)P=}oiG(;^9$r+z+nf%}#Ek~U?H^Ov~gO>b%CP@XiUJnts?#E%~*?uzwy sAY@!aib|V$o)6(zAi%(>>jsT~N+P%Gdvy%hvlk*K{pMALq*37i0lhBpvH$=8 literal 0 HcmV?d00001 diff --git a/modules/BMI088/bmi088-datasheet.pdf b/modules/BMI088/bmi088-datasheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eecb83d97b1b652b6440387ba92b657ab16de63b GIT binary patch literal 1592053 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

    ixPK0+Yf#chRCsoRLMwLiF#HC@5IRnIZ2B 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
    pY{ahn;CL597}e#C4D>aa1^HxufijqoJqg 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
    =aG}I>0!*@xkAG*7}RyGhR2$i$KR=n#=R0b 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
    s&tNq!(tx_$OdOfm+F{cPKEIHa+h^MASq9A*@P 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

  • dsarHLO) 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