Bonjour à tous,
je suis entrain de dévellopper un programme qui génere un fichier .c et un fichier .h qui contiennent la déclaration d'un tableau à partir les données d'un fichier CSV en entrée.
Mon probléme ici ce que quand je copie le contenu du fichier CSV dans la déclaration du fichier .c (comme initialisation du tableau) ça me donne les valeurs mais pas avec la syntaxe correcte utilisé en C ( des ' ' , [ ,] ) .
Jai essayé de remplacer des caractéres avec d'autres pour que ça soit compatible avec la déclaration du tableau en C mais ça ne change pas.
j'ai besoin de votre aide si présieuse
je vous mets mon script python pour que vous regardez qu est ce que j'ai fait ainsi que le fichier .c généré.
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding: UTF-8 -*-
import csv
import glob 
import os.path
import sys
 
class ExcelFr(csv.excel):
    delimiter = ";"
    lineterminator = ""
 
csv.register_dialect('excel-fr', ExcelFr()) 
 
fileC=open('scenario_generated_data.c','w+')
fileH=open('scenario_generated_data.h','w+')
 
fileC.write('#include <stdint>\n''#include <stdbool>\n''#include <stddef>\n'.encode('utf-8'))
fileH.write('#ifndef _SCENARIO_GENERATED_H\n''#define _SCENARIO_GENERATED_H'.encode('utf-8'))
 
path = "/home/amna/Documents/workspace/accelerometer-treatment-implem"
l = os.listdir( path )
for file in l :
 (name,ext) =os.path.splitext(file)
 if ( ext == '.csv'):
    f= open(file,'r')
    fileC.write('int16_t array_scenario[size][3]  = ')
    reader= csv.reader(f,'excel-fr')
    for row in reader :
        tableau=str(row) 
        lineNum=reader.line_num
        fileC.write(tableau)
        newline=tableau.replace('[','{' )
        newline_1=tableau.replace(']','}' )
        newline_2=tableau.replace(', ''','' )
        fileC.write(newline_1)
        fileC.write(newline)
        fileC.write(newline_2)
        print repr(newline_2)
size=lineNum # c'est le nombre de lignes dans le fichier csv
et voila le fichier .c généré

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#include <stdint>
#include <stdbool>
#include <stddef>
int16_t array_scenario[size][3]  = ['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-57', '-2', '']['33', '-57', '-2', ''}{'33', '-57', '-2', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-4', '']['34', '-56', '-4', ''}{'34', '-56', '-4', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['34', '-56', '-3', '']['34', '-56', '-3', ''}{'34', '-56', '-3', '']['33', '-57', '-2', '']['33', '-57', '-2', ''}{'33', '-57', '-2', '']['33', '-56', '-3', '']['33', '-56', '-3', ''}{'33', '-56', '-3', '']['33', '-56', '-2', '']['33', '-56', '-2', ''}{'33', '-56', '-2', '']['34', '-56', '-2', '']['34', '-56', '-2', ''}{'34', '-56', '-2', '']['34', '-56', '-7', '']['34', '-56', '-7', ''}{'34', '-56', '-7', '']['24', '-54', '5', '']['24', '-54', '5', ''}{'24', '-54', '5', '']['34', '-54', '14', '']['34', '-54', '14', ''}{'34', '-54', '14', '']['31', '-61', '-4', '']['31', '-61', '-4', ''}{'31', '-61', '-4', '']['19', '-59', '-2', '']['19', '-59', '-2', ''}{'19', '-59', '-2', '']['37', '-59', '-4', '']['37', '-59', '-4', ''}{'37', '-59', '-4', '']['39', '-55', '-10', '']['39', '-55', '-10', ''}{'39', '-55', '-10', '']['40', '-55', '-7', '']['40', '-55', '-7', ''}{'40', '-55', '-7', '']['27', '-59', '-18', '']['27', '-59', '-18', ''}{'27', '-59', '-18', '']['43', '-47', '-14', '']['43', '-47', '-14', ''}{'43', '-47', '-14', '']['37', '-60', '-15', '']['37', '-60', '-15', ''}{'37', '-60', '-15', '']['46', '-51', '10', '']['46', '-51', '10', ''}{'46', '-51', '10', '']['-4', '-37', '42', '']['-4', '-37', '42', ''}{'-4', '-37', '42', '']['31', '-64', '9', '']['31', '-64', '9', ''}{'31', '-64', '9', '']['56', '-53', '-1', '']['56', '-53', '-1', ''}{'56', '-53', '-1', '']['59', '-48', '-6', '']['59', '-48', '-6', ''}{'59', '-48', '-6', '']['54', '-35', '14', '']['54', '-35', '14', ''}{'54', '-35', '14', '']['46', '-32', '31', '']['46', '-32', '31', ''}{'46', '-32', '31', '']['45', '-41', '40', '']['45', '-41', '40', ''}{'45', '-41', '40', '']['41', '-44', '31', '']['41', '-44', '31', ''}{'41', '-44', '31', '']['34', '-52', '10', '']['34', '-52', '10', ''}{'34', '-52', '10', '']['37', '-49', '-17', '']['37', '-49', '-17', ''}{'37', '-49', '-17', '']['57', '-43', '-28', '']['57', '-43', '-28', ''}{'57', '-43', '-28', '']['59', '-46', '-10', '']['59', '-46', '-10', ''}{'59', '-46', '-10', '']['53', '-52', '9', '']['53', '-52', '9', ''}{'53', '-52', '9', '']['43', '-47', '9', '']['43', '-47', '9', ''}{'43', '-47', '9', '']['26', '-44', '28', '']['26', '-44', '28', ''}{'26', '-44', '28', '']['15', '-43', '40', '']['15', '-43', '40', ''}{'15', '-43', '40', '']['32', '-49', '49', '']['32', '-49', '49', ''}{'32', '-49', '49', '']['57', '-56', '27', '']['57', '-56', '27', ''}{'57', '-56', '27', '']['56', '-60', '25', '']['56', '-60', '25', ''}{'56', '-60', '25', '']['43', '-52', '-8', '']['43', '-52', '-8', ''}{'43', '-52', '-8', '']['31', '-39', '-14', '']['31', '-39', '-14', ''}{'31', '-39', '-14', '']['41', '-36', '-11', '']['41', '-36', '-11', ''}{'41', '-36', '-11', '']['54', '-41', '-10', '']['54', '-41', '-10', ''}{'54', '-41', '-10', '']['64', '-49', '-13', '']['64', '-49', '-13', ''}{'64', '-49', '-13', '']['51', '-56', '11', '']['51', '-56', '11', ''}{'51', '-56', '11', '']['32', '-55', '22', '']['32', '-55', '22', ''}{'32', '-55', '22', '']['27', '-47', '30', '']['27', '-47', '30', ''}{'27', '-47', '30', '']['28', '-43', '35', '']['28', '-43', '35', ''}{'28', '-43', '35', '']['30', '-39', '34', '']['30', '-39', '34', ''}{'30', '-39', '34', '']['45', '-47', '39', '']['45', '-47', '39', ''}{'45', '-47', '39', '']['56', '-66', '25', '']['56', '-66', '25', ''}{'56', '-66', '25', '']['46', '-60', '3', '']['46', '-60', '3', ''}{'46', '-60', '3', '']['38', '-37', '-15', '']['38', '-37', '-15', ''}{'38', '-37', '-15', '']['39', '-28', '-11', '']['39', '-28', '-11', ''}{'39', '-28', '-11', '']['47', '-29', '-12', '']['47', '-29', '-12', ''}{'47', '-29', '-12', '']['67', '-46', '-10', '']['67', '-46', '-10', ''}{'67', '-46', '-10', '']['55', '-57', '8', '']['55', '-57', '8', ''}{'55', '-57', '8', '']['32', '-50', '22', '']['32', '-50', '22', ''}{'32', '-50', '22', '']['33', '-48', '31', '']['33', '-48', '31', ''}{'33', '-48', '31', '']['37', '-45', '32', '']['37', '-45', '32', ''}{'37', '-45', '32', '']['35', '-41', '38', '']['35', '-41', '38', ''}{'35', '-41', '38', '']['45', '-44', '39', '']['45', '-44', '39', ''}{'45', '-44', '39', '']['54', '-60', '21', '']['54', '-60', '21', ''}{'54', '-60', '21', '']['41', '-57', '-2', '']['41', '-57', '-2', ''}{'41', '-57', '-2', '']['46', '-41', '-23', '']['46', '-41', '-23', ''}{'46', '-41', '-23', '']['53', '-40', '-13', '']['53', '-40', '-13', ''}{'53', '-40', '-13', '']['50', '-38', '-2', '']['50', '-38', '-2', ''}{'50', '-38', '-2', '']['40', '-38', '3', '']['40', '-38', '3', ''}{'40', '-38', '3', '']['32', '-46', '16', '']['32', '-46', '16', ''}{'32', '-46', '16', '']['32', '-55', '25', '']['32', '-55', '25', ''}{'32', '-55', '25', '']['41', '-57', '29', '']['41', '-57', '29', ''}{'41', '-57', '29', '']['36', '-47', '15', '']['36', '-47', '15', ''}{'36', '-47', '15', '']['30', '-38', '12', '']['30', '-38', '12', ''}{'30', '-38', '12', '']['33', '-35', '13', '']['33', '-35', '13', ''}{'33', '-35', '13', '']['34', '-47', '8', '']['34', '-47', '8', ''}{'34', '-47', '8', '']['30', '-62', '-4', '']['30', '-62', '-4', ''}{'30', '-62', '-4', '']['48', '-55', '-13', '']['48', '-55', '-13', ''}{'48', '-55', '-13', '']['55', '-52', '5', '']['55', '-52', '5', ''}{'55', '-52', '5', '']['55', '-52', '26', '']['55', '-52', '26', ''}{'55', '-52', '26', '']['53', '-51', '22', '']['53', '-51', '22', ''}{'53', '-51', '22', '']['52', '-48', '15', '']['52', '-48', '15', ''}{'52', '-48', '15', '']['51', '-44', '14', '']['51', '-44', '14', ''}{'51', '-44', '14', '']['47', '-42', '12', '']['47', '-42', '12', ''}{'47', '-42', '12', '']['50', '-46', '14', '']['50', '-46', '14', ''}{'50', '-46', '14', '']['46', '-57', '14', '']['46', '-57', '14', ''}{'46', '-57', '14', '']['21', '-55', '7', '']['21', '-55', '7', ''}{'21', '-55', '7', '']['14', '-42', '-5', '']['14', '-42', '-5', ''}{'14', '-42', '-5', '']['31', '-49', '1', '']['31', '-49', '1', ''}{'31', '-49', '1', '']['44', '-54', '13', '']['44', '-54', '13', ''}{'44', '-54', '13', '']['55', '-56', '15', '']['55', '-56', '15', ''}{'55', '-56', '15', '']['58', '-49', '15', '']['58', '-49', '15', ''}{'58', '-49', '15', '']['53', '-41', '12', '']['53', '-41', '12', ''}{'53', '-41', '12', '']['46', '-38', '11', '']['46', '-38', '11', ''}{'46', '-38', '11', '']['48', '-38', '12', '']['48', '-38', '12', ''}{'48', '-38', '12', '']['52', '-43', '11', '']['52', '-43', '11', ''}{'52', '-43', '11', '']['56', '-50', '17', '']['56', '-50', '17', ''}{'56', '-50', '17', '']['45', '-66', '15', '']['45', '-66', '15', ''}{'45', '-66', '15', '']['16', '-61', '6', '']['16', '-61', '6', ''}{'16', '-61', '6', '']['21', '-46', '-6', '']['21', '-46', '-6', ''}{'21', '-46', '-6', '']['38', '-49', '1', '']['38', '-49', '1', ''}{'38', '-49', '1', '']['45', '-53', '7', '']['45', '-53', '7', ''}{'45', '-53', '7', '']['49', '-53', '12', '']['49', '-53', '12', ''}{'49', '-53', '12', '']['53', '-47', '10', '']['53', '-47', '10', ''}{'53', '-47', '10', '']['52', '-41', '9', '']['52', '-41', '9', ''}{'52', '-41', '9', '']['48', '-39', '17', '']['48', '-39', '17', ''}{'48', '-39', '17', '']['43', '-43', '11', '']['43', '-43', '11', ''}{'43', '-43', '11', '']['45', '-55', '15', '']['45', '-55', '15', ''}{'45', '-55', '15', '']['44', '-63', '17', '']['44', '-63', '17', ''}{'44', '-63', '17', '']['30', '-63', '11', '']['30', '-63', '11', ''}{'30', '-63', '11', '']['16', '-45', '-5', '']['16', '-45', '-5', ''}{'16', '-45', '-5', '']['27', '-44', '-11', '']['27', '-44', '-11', ''}{'27', '-44', '-11', '']['47', '-51', '7', '']['47', '-51', '7', ''}{'47', '-51', '7', '']['45', '-51', '15', '']['45', '-51', '15', ''}{'45', '-51', '15', '']['47', '-50', '16', '']['47', '-50', '16', ''}{'47', '-50', '16', '']['53', '-47', '19', '']['53', '-47', '19', ''}{'53', '-47', '19', '']['54', '-44', '14', '']['54', '-44', '14', ''}{'54', '-44', '14', '']['50', '-42', '11', '']['50', '-42', '11', ''}{'50', '-42', '11', '']['46', '-43', '10', '']['46', '-43', '10', ''}{'46', '-43', '10', '']['49', '-50', '11', '']['49', '-50', '11', ''}{'49', '-50', '11', '']['52', '-71', '21', '']['52', '-71', '21', ''}{'52', '-71', '21', '']['25', '-69', '14', '']['25', '-69', '14', ''}{'25', '-69', '14', '']['8', '-42', '-4', '']['8', '-42', '-4', ''}{'8', '-42', '-4', '']['18', '-41', '-12', '']['18', '-41', '-12', ''}{'18', '-41', '-12', '']['43', '-60', '2', '']['43', '-60', '2', ''}{'43', '-60', '2', '']['47', '-58', '14', '']['47', '-58', '14', ''}{'47', '-58', '14', '']['49', '-60', '18', '']['49', '-60', '18', ''}{'49', '-60', '18', '']['48', '-52', '21', '']['48', '-52', '21', ''}{'48', '-52', '21', '']['55', '-39', '21', '']['55', '-39', '21', ''}{'55', '-39', '21', '']['48', '-40', '13', '']['48', '-40', '13', ''}{'48', '-40', '13', '']['38', '-43', '7', '']['38', '-43', '7', ''}{'38', '-43', '7', '']['42', '-59', '16', '']['42', '-59', '16', ''}{'42', '-59', '16', '']['48', '-80', '23', '']['48', '-80', '23', ''}{'48', '-80', '23', '']['23', '-77', '28', '']['23', '-77', '28', ''}{'23', '-77', '28', '']['5', '-45', '13', '']['5', '-45', '13', ''}{'5', '-45', '13', '']['8', '-40', '-7', '']['8', '-40', '-7', ''}{'8', '-40', '-7', '']['31', '-50', '3', '']['31', '-50', '3', ''}{'31', '-50', '3', '']['42', '-61', '17', '']['42', '-61', '17', ''}{'42', '-61', '17', '']['43', '-58', '15', '']['43', '-58', '15', ''}{'43', '-58', '15', '']['41', '-56', '23', '']['41', '-56', '23', ''}{'41', '-56', '23', '']['47', '-51', '24', '']['47', '-51', '24', ''}{'47', '-51', '24', '']['48', '-45', '27', '']['48', '-45', '27', ''}{'48', '-45', '27', '']['40', '-38', '22', '']['40', '-38', '22', ''}{'40', '-38', '22', '']['46', '-47', '18', '']['46', '-47', '18', ''}{'46', '-47', '18', '']['41', '-77', '14', '']['41', '-77', '14', ''}{'41', '-77', '14', '']['23', '-83', '19', '']['23', '-83', '19', ''}{'23', '-83', '19', '']['14', '-56', '5', '']['14', '-56', '5', ''}{'14', '-56', '5', '']['20', '-44', '5', '']['20', '-44', '5', ''}{'20', '-44', '5', '']['28', '-45', '8', '']['28', '-45', '8', ''}{'28', '-45', '8', '']['31', '-47', '9', '']['31', '-47', '9', ''}{'31', '-47', '9', '']['33', '-50', '11', '']['33', '-50', '11', ''}{'33', '-50', '11', '']['42', '-61', '17', '']['42', '-61', '17', ''}{'42', '-61', '17', '']['40', '-66', '6', '']['40', '-66', '6', ''}{'40', '-66', '6', '']['39', '-45', '10', '']['39', '-45', '10', ''}{'39', '-45', '10', '']['29', '-35', '-9', '']['29', '-35', '-9', ''}{'29', '-35', '-9', '']['48', '-105', '6', '']['48', '-105', '6', ''}{'48', '-105', '6', '']['29', '-53', '26', '']['29', '-53', '26', ''}{'29', '-53', '26', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-55', '8', '']['33', '-55', '8', ''}{'33', '-55', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-55', '9', '']['33', '-55', '9', ''}{'33', '-55', '9', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['32', '-55', '9', '']['32', '-55', '9', ''}{'32', '-55', '9', '']['32', '-57', '8', '']['32', '-57', '8', ''}{'32', '-57', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-57', '8', '']['32', '-57', '8', ''}{'32', '-57', '8', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['33', '-56', '8', '']['33', '-56', '8', ''}{'33', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['32', '-56', '9', '']['32', '-56', '9', ''}{'32', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['32', '-56', '8', '']['32', '-56', '8', ''}{'32', '-56', '8', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', '']['33', '-56', '9', '']['33', '-56', '9', ''}{'33', '-56', '9', ''][][}{]