root / scout / Doxyfile @ 3d0c1eda
History | View | Annotate | Download (69 KB)
1 | ad0e9d48 | Alex | # Doxyfile 1.7.3 |
---|---|---|---|
2 | |||
3 | # This file describes the settings to be used by the documentation system |
||
4 | # doxygen (www.doxygen.org) for a project. |
||
5 | # |
||
6 | # All text after a hash (#) is considered a comment and will be ignored. |
||
7 | # The format is: |
||
8 | # TAG = value [value, ...] |
||
9 | # For lists items can also be appended using: |
||
10 | # TAG += value [value, ...] |
||
11 | # Values that contain spaces should be placed between quotes (" "). |
||
12 | |||
13 | #--------------------------------------------------------------------------- |
||
14 | # Project related configuration options |
||
15 | #--------------------------------------------------------------------------- |
||
16 | |||
17 | # This tag specifies the encoding used for all characters in the config file |
||
18 | # that follow. The default is UTF-8 which is also the encoding used for all |
||
19 | # text before the first occurrence of this tag. Doxygen uses libiconv (or the |
||
20 | # iconv built into libc) for the transcoding. See |
||
21 | # http://www.gnu.org/software/libiconv for the list of possible encodings. |
||
22 | |||
23 | DOXYFILE_ENCODING = UTF-8 |
||
24 | |||
25 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded |
||
26 | # by quotes) that should identify the project. |
||
27 | |||
28 | PROJECT_NAME = Colony Scout |
||
29 | |||
30 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. |
||
31 | # This could be handy for archiving the generated documentation or |
||
32 | # if some version control system is used. |
||
33 | |||
34 | PROJECT_NUMBER = 1.0 |
||
35 | |||
36 | # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. |
||
37 | |||
38 | PROJECT_BRIEF = "The Colony Scout swarm robotics platform" |
||
39 | |||
40 | # With the PROJECT_LOGO tag one can specify an logo or icon that is |
||
41 | # included in the documentation. The maximum height of the logo should not |
||
42 | # exceed 55 pixels and the maximum width should not exceed 200 pixels. |
||
43 | # Doxygen will copy the logo to the output directory. |
||
44 | |||
45 | PROJECT_LOGO = |
||
46 | |||
47 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) |
||
48 | # base path where the generated documentation will be put. |
||
49 | # If a relative path is entered, it will be relative to the location |
||
50 | # where doxygen was started. If left blank the current directory will be used. |
||
51 | |||
52 | OUTPUT_DIRECTORY = docs |
||
53 | |||
54 | # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create |
||
55 | # 4096 sub-directories (in 2 levels) under the output directory of each output |
||
56 | # format and will distribute the generated files over these directories. |
||
57 | # Enabling this option can be useful when feeding doxygen a huge amount of |
||
58 | # source files, where putting all generated files in the same directory would |
||
59 | # otherwise cause performance problems for the file system. |
||
60 | |||
61 | CREATE_SUBDIRS = NO |
||
62 | |||
63 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all |
||
64 | # documentation generated by doxygen is written. Doxygen will use this |
||
65 | # information to generate all constant output in the proper language. |
||
66 | # The default language is English, other supported languages are: |
||
67 | # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, |
||
68 | # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, |
||
69 | # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English |
||
70 | # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, |
||
71 | # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, |
||
72 | # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. |
||
73 | |||
74 | OUTPUT_LANGUAGE = English |
||
75 | |||
76 | # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will |
||
77 | # include brief member descriptions after the members that are listed in |
||
78 | # the file and class documentation (similar to JavaDoc). |
||
79 | # Set to NO to disable this. |
||
80 | |||
81 | BRIEF_MEMBER_DESC = YES |
||
82 | |||
83 | # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend |
||
84 | # the brief description of a member or function before the detailed description. |
||
85 | # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the |
||
86 | # brief descriptions will be completely suppressed. |
||
87 | |||
88 | REPEAT_BRIEF = YES |
||
89 | |||
90 | # This tag implements a quasi-intelligent brief description abbreviator |
||
91 | # that is used to form the text in various listings. Each string |
||
92 | # in this list, if found as the leading text of the brief description, will be |
||
93 | # stripped from the text and the result after processing the whole list, is |
||
94 | # used as the annotated text. Otherwise, the brief description is used as-is. |
||
95 | # If left blank, the following values are used ("$name" is automatically |
||
96 | # replaced with the name of the entity): "The $name class" "The $name widget" |
||
97 | # "The $name file" "is" "provides" "specifies" "contains" |
||
98 | # "represents" "a" "an" "the" |
||
99 | |||
100 | ABBREVIATE_BRIEF = |
||
101 | |||
102 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then |
||
103 | # Doxygen will generate a detailed section even if there is only a brief |
||
104 | # description. |
||
105 | |||
106 | ALWAYS_DETAILED_SEC = NO |
||
107 | |||
108 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all |
||
109 | # inherited members of a class in the documentation of that class as if those |
||
110 | # members were ordinary class members. Constructors, destructors and assignment |
||
111 | # operators of the base classes will not be shown. |
||
112 | |||
113 | INLINE_INHERITED_MEMB = NO |
||
114 | |||
115 | # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full |
||
116 | # path before files name in the file list and in the header files. If set |
||
117 | # to NO the shortest path that makes the file name unique will be used. |
||
118 | |||
119 | FULL_PATH_NAMES = YES |
||
120 | |||
121 | # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag |
||
122 | # can be used to strip a user-defined part of the path. Stripping is |
||
123 | # only done if one of the specified strings matches the left-hand part of |
||
124 | # the path. The tag can be used to show relative paths in the file list. |
||
125 | # If left blank the directory from which doxygen is run is used as the |
||
126 | # path to strip. |
||
127 | |||
128 | STRIP_FROM_PATH = |
||
129 | |||
130 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of |
||
131 | # the path mentioned in the documentation of a class, which tells |
||
132 | # the reader which header file to include in order to use a class. |
||
133 | # If left blank only the name of the header file containing the class |
||
134 | # definition is used. Otherwise one should specify the include paths that |
||
135 | # are normally passed to the compiler using the -I flag. |
||
136 | |||
137 | STRIP_FROM_INC_PATH = |
||
138 | |||
139 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter |
||
140 | # (but less readable) file names. This can be useful if your file system |
||
141 | # doesn't support long names like on DOS, Mac, or CD-ROM. |
||
142 | |||
143 | SHORT_NAMES = NO |
||
144 | |||
145 | # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen |
||
146 | # will interpret the first line (until the first dot) of a JavaDoc-style |
||
147 | # comment as the brief description. If set to NO, the JavaDoc |
||
148 | # comments will behave just like regular Qt-style comments |
||
149 | # (thus requiring an explicit @brief command for a brief description.) |
||
150 | |||
151 | JAVADOC_AUTOBRIEF = NO |
||
152 | |||
153 | # If the QT_AUTOBRIEF tag is set to YES then Doxygen will |
||
154 | # interpret the first line (until the first dot) of a Qt-style |
||
155 | # comment as the brief description. If set to NO, the comments |
||
156 | # will behave just like regular Qt-style comments (thus requiring |
||
157 | # an explicit \brief command for a brief description.) |
||
158 | |||
159 | QT_AUTOBRIEF = NO |
||
160 | |||
161 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen |
||
162 | # treat a multi-line C++ special comment block (i.e. a block of //! or /// |
||
163 | # comments) as a brief description. This used to be the default behaviour. |
||
164 | # The new default is to treat a multi-line C++ comment block as a detailed |
||
165 | # description. Set this tag to YES if you prefer the old behaviour instead. |
||
166 | |||
167 | MULTILINE_CPP_IS_BRIEF = NO |
||
168 | |||
169 | # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented |
||
170 | # member inherits the documentation from any documented member that it |
||
171 | # re-implements. |
||
172 | |||
173 | INHERIT_DOCS = YES |
||
174 | |||
175 | # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce |
||
176 | # a new page for each member. If set to NO, the documentation of a member will |
||
177 | # be part of the file/class/namespace that contains it. |
||
178 | |||
179 | SEPARATE_MEMBER_PAGES = NO |
||
180 | |||
181 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. |
||
182 | # Doxygen uses this value to replace tabs by spaces in code fragments. |
||
183 | |||
184 | TAB_SIZE = 8 |
||
185 | |||
186 | # This tag can be used to specify a number of aliases that acts |
||
187 | # as commands in the documentation. An alias has the form "name=value". |
||
188 | # For example adding "sideeffect=\par Side Effects:\n" will allow you to |
||
189 | # put the command \sideeffect (or @sideeffect) in the documentation, which |
||
190 | # will result in a user-defined paragraph with heading "Side Effects:". |
||
191 | # You can put \n's in the value part of an alias to insert newlines. |
||
192 | |||
193 | ALIASES = |
||
194 | |||
195 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C |
||
196 | # sources only. Doxygen will then generate output that is more tailored for C. |
||
197 | # For instance, some of the names that are used will be different. The list |
||
198 | # of all members will be omitted, etc. |
||
199 | |||
200 | OPTIMIZE_OUTPUT_FOR_C = NO |
||
201 | |||
202 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java |
||
203 | # sources only. Doxygen will then generate output that is more tailored for |
||
204 | # Java. For instance, namespaces will be presented as packages, qualified |
||
205 | # scopes will look different, etc. |
||
206 | |||
207 | OPTIMIZE_OUTPUT_JAVA = NO |
||
208 | |||
209 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran |
||
210 | # sources only. Doxygen will then generate output that is more tailored for |
||
211 | # Fortran. |
||
212 | |||
213 | OPTIMIZE_FOR_FORTRAN = NO |
||
214 | |||
215 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL |
||
216 | # sources. Doxygen will then generate output that is tailored for |
||
217 | # VHDL. |
||
218 | |||
219 | OPTIMIZE_OUTPUT_VHDL = NO |
||
220 | |||
221 | # Doxygen selects the parser to use depending on the extension of the files it |
||
222 | # parses. With this tag you can assign which parser to use for a given extension. |
||
223 | # Doxygen has a built-in mapping, but you can override or extend it using this |
||
224 | # tag. The format is ext=language, where ext is a file extension, and language |
||
225 | # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, |
||
226 | # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make |
||
227 | # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C |
||
228 | # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions |
||
229 | # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. |
||
230 | |||
231 | EXTENSION_MAPPING = |
||
232 | |||
233 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want |
||
234 | # to include (a tag file for) the STL sources as input, then you should |
||
235 | # set this tag to YES in order to let doxygen match functions declarations and |
||
236 | # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. |
||
237 | # func(std::string) {}). This also makes the inheritance and collaboration |
||
238 | # diagrams that involve STL classes more complete and accurate. |
||
239 | |||
240 | BUILTIN_STL_SUPPORT = NO |
||
241 | |||
242 | # If you use Microsoft's C++/CLI language, you should set this option to YES to |
||
243 | # enable parsing support. |
||
244 | |||
245 | CPP_CLI_SUPPORT = NO |
||
246 | |||
247 | # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. |
||
248 | # Doxygen will parse them like normal C++ but will assume all classes use public |
||
249 | # instead of private inheritance when no explicit protection keyword is present. |
||
250 | |||
251 | SIP_SUPPORT = NO |
||
252 | |||
253 | # For Microsoft's IDL there are propget and propput attributes to indicate getter |
||
254 | # and setter methods for a property. Setting this option to YES (the default) |
||
255 | # will make doxygen replace the get and set methods by a property in the |
||
256 | # documentation. This will only work if the methods are indeed getting or |
||
257 | # setting a simple type. If this is not the case, or you want to show the |
||
258 | # methods anyway, you should set this option to NO. |
||
259 | |||
260 | IDL_PROPERTY_SUPPORT = YES |
||
261 | |||
262 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC |
||
263 | # tag is set to YES, then doxygen will reuse the documentation of the first |
||
264 | # member in the group (if any) for the other members of the group. By default |
||
265 | # all members of a group must be documented explicitly. |
||
266 | |||
267 | DISTRIBUTE_GROUP_DOC = NO |
||
268 | |||
269 | # Set the SUBGROUPING tag to YES (the default) to allow class member groups of |
||
270 | # the same type (for instance a group of public functions) to be put as a |
||
271 | # subgroup of that type (e.g. under the Public Functions section). Set it to |
||
272 | # NO to prevent subgrouping. Alternatively, this can be done per class using |
||
273 | # the \nosubgrouping command. |
||
274 | |||
275 | SUBGROUPING = YES |
||
276 | |||
277 | # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum |
||
278 | # is documented as struct, union, or enum with the name of the typedef. So |
||
279 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct |
||
280 | # with name TypeT. When disabled the typedef will appear as a member of a file, |
||
281 | # namespace, or class. And the struct will be named TypeS. This can typically |
||
282 | # be useful for C code in case the coding convention dictates that all compound |
||
283 | # types are typedef'ed and only the typedef is referenced, never the tag name. |
||
284 | |||
285 | TYPEDEF_HIDES_STRUCT = NO |
||
286 | |||
287 | # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to |
||
288 | # determine which symbols to keep in memory and which to flush to disk. |
||
289 | # When the cache is full, less often used symbols will be written to disk. |
||
290 | # For small to medium size projects (<1000 input files) the default value is |
||
291 | # probably good enough. For larger projects a too small cache size can cause |
||
292 | # doxygen to be busy swapping symbols to and from disk most of the time |
||
293 | # causing a significant performance penalty. |
||
294 | # If the system has enough physical memory increasing the cache will improve the |
||
295 | # performance by keeping more symbols in memory. Note that the value works on |
||
296 | # a logarithmic scale so increasing the size by one will roughly double the |
||
297 | # memory usage. The cache size is given by this formula: |
||
298 | # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, |
||
299 | # corresponding to a cache size of 2^16 = 65536 symbols |
||
300 | |||
301 | SYMBOL_CACHE_SIZE = 0 |
||
302 | |||
303 | #--------------------------------------------------------------------------- |
||
304 | # Build related configuration options |
||
305 | #--------------------------------------------------------------------------- |
||
306 | |||
307 | # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in |
||
308 | # documentation are documented, even if no documentation was available. |
||
309 | # Private class members and static file members will be hidden unless |
||
310 | # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES |
||
311 | |||
312 | EXTRACT_ALL = NO |
||
313 | |||
314 | # If the EXTRACT_PRIVATE tag is set to YES all private members of a class |
||
315 | # will be included in the documentation. |
||
316 | |||
317 | EXTRACT_PRIVATE = NO |
||
318 | |||
319 | # If the EXTRACT_STATIC tag is set to YES all static members of a file |
||
320 | # will be included in the documentation. |
||
321 | |||
322 | EXTRACT_STATIC = NO |
||
323 | |||
324 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) |
||
325 | # defined locally in source files will be included in the documentation. |
||
326 | # If set to NO only classes defined in header files are included. |
||
327 | |||
328 | EXTRACT_LOCAL_CLASSES = YES |
||
329 | |||
330 | # This flag is only useful for Objective-C code. When set to YES local |
||
331 | # methods, which are defined in the implementation section but not in |
||
332 | # the interface are included in the documentation. |
||
333 | # If set to NO (the default) only methods in the interface are included. |
||
334 | |||
335 | EXTRACT_LOCAL_METHODS = NO |
||
336 | |||
337 | # If this flag is set to YES, the members of anonymous namespaces will be |
||
338 | # extracted and appear in the documentation as a namespace called |
||
339 | # 'anonymous_namespace{file}', where file will be replaced with the base |
||
340 | # name of the file that contains the anonymous namespace. By default |
||
341 | # anonymous namespaces are hidden. |
||
342 | |||
343 | EXTRACT_ANON_NSPACES = NO |
||
344 | |||
345 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all |
||
346 | # undocumented members of documented classes, files or namespaces. |
||
347 | # If set to NO (the default) these members will be included in the |
||
348 | # various overviews, but no documentation section is generated. |
||
349 | # This option has no effect if EXTRACT_ALL is enabled. |
||
350 | |||
351 | HIDE_UNDOC_MEMBERS = NO |
||
352 | |||
353 | # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all |
||
354 | # undocumented classes that are normally visible in the class hierarchy. |
||
355 | # If set to NO (the default) these classes will be included in the various |
||
356 | # overviews. This option has no effect if EXTRACT_ALL is enabled. |
||
357 | |||
358 | HIDE_UNDOC_CLASSES = NO |
||
359 | |||
360 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all |
||
361 | # friend (class|struct|union) declarations. |
||
362 | # If set to NO (the default) these declarations will be included in the |
||
363 | # documentation. |
||
364 | |||
365 | HIDE_FRIEND_COMPOUNDS = NO |
||
366 | |||
367 | # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any |
||
368 | # documentation blocks found inside the body of a function. |
||
369 | # If set to NO (the default) these blocks will be appended to the |
||
370 | # function's detailed documentation block. |
||
371 | |||
372 | HIDE_IN_BODY_DOCS = NO |
||
373 | |||
374 | # The INTERNAL_DOCS tag determines if documentation |
||
375 | # that is typed after a \internal command is included. If the tag is set |
||
376 | # to NO (the default) then the documentation will be excluded. |
||
377 | # Set it to YES to include the internal documentation. |
||
378 | |||
379 | INTERNAL_DOCS = NO |
||
380 | |||
381 | # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate |
||
382 | # file names in lower-case letters. If set to YES upper-case letters are also |
||
383 | # allowed. This is useful if you have classes or files whose names only differ |
||
384 | # in case and if your file system supports case sensitive file names. Windows |
||
385 | # and Mac users are advised to set this option to NO. |
||
386 | |||
387 | CASE_SENSE_NAMES = YES |
||
388 | |||
389 | # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen |
||
390 | # will show members with their full class and namespace scopes in the |
||
391 | # documentation. If set to YES the scope will be hidden. |
||
392 | |||
393 | HIDE_SCOPE_NAMES = NO |
||
394 | |||
395 | # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen |
||
396 | # will put a list of the files that are included by a file in the documentation |
||
397 | # of that file. |
||
398 | |||
399 | SHOW_INCLUDE_FILES = YES |
||
400 | |||
401 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen |
||
402 | # will list include files with double quotes in the documentation |
||
403 | # rather than with sharp brackets. |
||
404 | |||
405 | FORCE_LOCAL_INCLUDES = NO |
||
406 | |||
407 | # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] |
||
408 | # is inserted in the documentation for inline members. |
||
409 | |||
410 | INLINE_INFO = YES |
||
411 | |||
412 | # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen |
||
413 | # will sort the (detailed) documentation of file and class members |
||
414 | # alphabetically by member name. If set to NO the members will appear in |
||
415 | # declaration order. |
||
416 | |||
417 | SORT_MEMBER_DOCS = YES |
||
418 | |||
419 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the |
||
420 | # brief documentation of file, namespace and class members alphabetically |
||
421 | # by member name. If set to NO (the default) the members will appear in |
||
422 | # declaration order. |
||
423 | |||
424 | SORT_BRIEF_DOCS = NO |
||
425 | |||
426 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen |
||
427 | # will sort the (brief and detailed) documentation of class members so that |
||
428 | # constructors and destructors are listed first. If set to NO (the default) |
||
429 | # the constructors will appear in the respective orders defined by |
||
430 | # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. |
||
431 | # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO |
||
432 | # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. |
||
433 | |||
434 | SORT_MEMBERS_CTORS_1ST = NO |
||
435 | |||
436 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the |
||
437 | # hierarchy of group names into alphabetical order. If set to NO (the default) |
||
438 | # the group names will appear in their defined order. |
||
439 | |||
440 | SORT_GROUP_NAMES = NO |
||
441 | |||
442 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be |
||
443 | # sorted by fully-qualified names, including namespaces. If set to |
||
444 | # NO (the default), the class list will be sorted only by class name, |
||
445 | # not including the namespace part. |
||
446 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. |
||
447 | # Note: This option applies only to the class list, not to the |
||
448 | # alphabetical list. |
||
449 | |||
450 | SORT_BY_SCOPE_NAME = NO |
||
451 | |||
452 |