1 /*
2  * Copyright (c) 2021, Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief Internals for looping macros
10  *
11  * Repetitive or obscure helper macros needed by sys/util.h.
12  */
13 
14 #ifndef ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
15 #define ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_
16 
17 #define Z_FOR_LOOP_GET_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, \
18 				_12, _13, _14, _15, _16, _17, _18, _19, _20, \
19 				_21, _22, _23, _24, _25, _26, _27, _28, _29, \
20 				_30, _31, _32, _33, _34, _35, _36, _37, _38, \
21 				_39, _40, _41, _42, _43, _44, _45, _46, _47, \
22 				_48, _49, _50, _51, _52, _53, _54, _55, _56, \
23 				_57, _58, _59, _60, _61, _62, _63, _64, N, ...) N
24 
25 #define Z_FOR_LOOP_0(z_call, sep, fixed_arg0, fixed_arg1, ...)
26 
27 #define Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, x) \
28 	z_call(0, x, fixed_arg0, fixed_arg1)
29 
30 #define Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
31 	Z_FOR_LOOP_1(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
32 	__DEBRACKET sep \
33 	z_call(1, x, fixed_arg0, fixed_arg1)
34 
35 #define Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
36 	Z_FOR_LOOP_2(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
37 	__DEBRACKET sep \
38 	z_call(2, x, fixed_arg0, fixed_arg1)
39 
40 #define Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
41 	Z_FOR_LOOP_3(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
42 	__DEBRACKET sep \
43 	z_call(3, x, fixed_arg0, fixed_arg1)
44 
45 #define Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
46 	Z_FOR_LOOP_4(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
47 	__DEBRACKET sep \
48 	z_call(4, x, fixed_arg0, fixed_arg1)
49 
50 #define Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
51 	Z_FOR_LOOP_5(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
52 	__DEBRACKET sep \
53 	z_call(5, x, fixed_arg0, fixed_arg1)
54 
55 #define Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
56 	Z_FOR_LOOP_6(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
57 	__DEBRACKET sep \
58 	z_call(6, x, fixed_arg0, fixed_arg1)
59 
60 #define Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
61 	Z_FOR_LOOP_7(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
62 	__DEBRACKET sep \
63 	z_call(7, x, fixed_arg0, fixed_arg1)
64 
65 #define Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
66 	Z_FOR_LOOP_8(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
67 	__DEBRACKET sep \
68 	z_call(8, x, fixed_arg0, fixed_arg1)
69 
70 #define Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
71 	Z_FOR_LOOP_9(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
72 	__DEBRACKET sep \
73 	z_call(9, x, fixed_arg0, fixed_arg1)
74 
75 #define Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
76 	Z_FOR_LOOP_10(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
77 	__DEBRACKET sep \
78 	z_call(10, x, fixed_arg0, fixed_arg1)
79 
80 #define Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
81 	Z_FOR_LOOP_11(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
82 	__DEBRACKET sep \
83 	z_call(11, x, fixed_arg0, fixed_arg1)
84 
85 #define Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
86 	Z_FOR_LOOP_12(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
87 	__DEBRACKET sep \
88 	z_call(12, x, fixed_arg0, fixed_arg1)
89 
90 #define Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
91 	Z_FOR_LOOP_13(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
92 	__DEBRACKET sep \
93 	z_call(13, x, fixed_arg0, fixed_arg1)
94 
95 #define Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
96 	Z_FOR_LOOP_14(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
97 	__DEBRACKET sep \
98 	z_call(14, x, fixed_arg0, fixed_arg1)
99 
100 #define Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
101 	Z_FOR_LOOP_15(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
102 	__DEBRACKET sep \
103 	z_call(15, x, fixed_arg0, fixed_arg1)
104 
105 #define Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
106 	Z_FOR_LOOP_16(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
107 	__DEBRACKET sep \
108 	z_call(16, x, fixed_arg0, fixed_arg1)
109 
110 #define Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
111 	Z_FOR_LOOP_17(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
112 	__DEBRACKET sep \
113 	z_call(17, x, fixed_arg0, fixed_arg1)
114 
115 #define Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
116 	Z_FOR_LOOP_18(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
117 	__DEBRACKET sep \
118 	z_call(18, x, fixed_arg0, fixed_arg1)
119 
120 #define Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
121 	Z_FOR_LOOP_19(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
122 	__DEBRACKET sep \
123 	z_call(19, x, fixed_arg0, fixed_arg1)
124 
125 #define Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
126 	Z_FOR_LOOP_20(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
127 	__DEBRACKET sep \
128 	z_call(20, x, fixed_arg0, fixed_arg1)
129 
130 #define Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
131 	Z_FOR_LOOP_21(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
132 	__DEBRACKET sep \
133 	z_call(21, x, fixed_arg0, fixed_arg1)
134 
135 #define Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
136 	Z_FOR_LOOP_22(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
137 	__DEBRACKET sep \
138 	z_call(22, x, fixed_arg0, fixed_arg1)
139 
140 #define Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
141 	Z_FOR_LOOP_23(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
142 	__DEBRACKET sep \
143 	z_call(23, x, fixed_arg0, fixed_arg1)
144 
145 #define Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
146 	Z_FOR_LOOP_24(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
147 	__DEBRACKET sep \
148 	z_call(24, x, fixed_arg0, fixed_arg1)
149 
150 #define Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
151 	Z_FOR_LOOP_25(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
152 	__DEBRACKET sep \
153 	z_call(25, x, fixed_arg0, fixed_arg1)
154 
155 #define Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
156 	Z_FOR_LOOP_26(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
157 	__DEBRACKET sep \
158 	z_call(26, x, fixed_arg0, fixed_arg1)
159 
160 #define Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
161 	Z_FOR_LOOP_27(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
162 	__DEBRACKET sep \
163 	z_call(27, x, fixed_arg0, fixed_arg1)
164 
165 #define Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
166 	Z_FOR_LOOP_28(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
167 	__DEBRACKET sep \
168 	z_call(28, x, fixed_arg0, fixed_arg1)
169 
170 #define Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
171 	Z_FOR_LOOP_29(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
172 	__DEBRACKET sep \
173 	z_call(29, x, fixed_arg0, fixed_arg1)
174 
175 #define Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
176 	Z_FOR_LOOP_30(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
177 	__DEBRACKET sep \
178 	z_call(30, x, fixed_arg0, fixed_arg1)
179 
180 #define Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
181 	Z_FOR_LOOP_31(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
182 	__DEBRACKET sep \
183 	z_call(31, x, fixed_arg0, fixed_arg1)
184 
185 #define Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
186 	Z_FOR_LOOP_32(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
187 	__DEBRACKET sep \
188 	z_call(32, x, fixed_arg0, fixed_arg1)
189 
190 #define Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
191 	Z_FOR_LOOP_33(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
192 	__DEBRACKET sep \
193 	z_call(33, x, fixed_arg0, fixed_arg1)
194 
195 #define Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
196 	Z_FOR_LOOP_34(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
197 	__DEBRACKET sep \
198 	z_call(34, x, fixed_arg0, fixed_arg1)
199 
200 #define Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
201 	Z_FOR_LOOP_35(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
202 	__DEBRACKET sep \
203 	z_call(35, x, fixed_arg0, fixed_arg1)
204 
205 #define Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
206 	Z_FOR_LOOP_36(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
207 	__DEBRACKET sep \
208 	z_call(36, x, fixed_arg0, fixed_arg1)
209 
210 #define Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
211 	Z_FOR_LOOP_37(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
212 	__DEBRACKET sep \
213 	z_call(37, x, fixed_arg0, fixed_arg1)
214 
215 #define Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
216 	Z_FOR_LOOP_38(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
217 	__DEBRACKET sep \
218 	z_call(38, x, fixed_arg0, fixed_arg1)
219 
220 #define Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
221 	Z_FOR_LOOP_39(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
222 	__DEBRACKET sep \
223 	z_call(39, x, fixed_arg0, fixed_arg1)
224 
225 #define Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
226 	Z_FOR_LOOP_40(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
227 	__DEBRACKET sep \
228 	z_call(40, x, fixed_arg0, fixed_arg1)
229 
230 #define Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
231 	Z_FOR_LOOP_41(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
232 	__DEBRACKET sep \
233 	z_call(41, x, fixed_arg0, fixed_arg1)
234 
235 #define Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
236 	Z_FOR_LOOP_42(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
237 	__DEBRACKET sep \
238 	z_call(42, x, fixed_arg0, fixed_arg1)
239 
240 #define Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
241 	Z_FOR_LOOP_43(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
242 	__DEBRACKET sep \
243 	z_call(43, x, fixed_arg0, fixed_arg1)
244 
245 #define Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
246 	Z_FOR_LOOP_44(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
247 	__DEBRACKET sep \
248 	z_call(44, x, fixed_arg0, fixed_arg1)
249 
250 #define Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
251 	Z_FOR_LOOP_45(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
252 	__DEBRACKET sep \
253 	z_call(45, x, fixed_arg0, fixed_arg1)
254 
255 #define Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
256 	Z_FOR_LOOP_46(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
257 	__DEBRACKET sep \
258 	z_call(46, x, fixed_arg0, fixed_arg1)
259 
260 #define Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
261 	Z_FOR_LOOP_47(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
262 	__DEBRACKET sep \
263 	z_call(47, x, fixed_arg0, fixed_arg1)
264 
265 #define Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
266 	Z_FOR_LOOP_48(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
267 	__DEBRACKET sep \
268 	z_call(48, x, fixed_arg0, fixed_arg1)
269 
270 #define Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
271 	Z_FOR_LOOP_49(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
272 	__DEBRACKET sep \
273 	z_call(49, x, fixed_arg0, fixed_arg1)
274 
275 #define Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
276 	Z_FOR_LOOP_50(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
277 	__DEBRACKET sep \
278 	z_call(50, x, fixed_arg0, fixed_arg1)
279 
280 #define Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
281 	Z_FOR_LOOP_51(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
282 	__DEBRACKET sep \
283 	z_call(51, x, fixed_arg0, fixed_arg1)
284 
285 #define Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
286 	Z_FOR_LOOP_52(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
287 	__DEBRACKET sep \
288 	z_call(52, x, fixed_arg0, fixed_arg1)
289 
290 #define Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
291 	Z_FOR_LOOP_53(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
292 	__DEBRACKET sep \
293 	z_call(53, x, fixed_arg0, fixed_arg1)
294 
295 #define Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
296 	Z_FOR_LOOP_54(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
297 	__DEBRACKET sep \
298 	z_call(54, x, fixed_arg0, fixed_arg1)
299 
300 #define Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
301 	Z_FOR_LOOP_55(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
302 	__DEBRACKET sep \
303 	z_call(55, x, fixed_arg0, fixed_arg1)
304 
305 #define Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
306 	Z_FOR_LOOP_56(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
307 	__DEBRACKET sep \
308 	z_call(56, x, fixed_arg0, fixed_arg1)
309 
310 #define Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
311 	Z_FOR_LOOP_57(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
312 	__DEBRACKET sep \
313 	z_call(57, x, fixed_arg0, fixed_arg1)
314 
315 #define Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
316 	Z_FOR_LOOP_58(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
317 	__DEBRACKET sep \
318 	z_call(58, x, fixed_arg0, fixed_arg1)
319 
320 #define Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
321 	Z_FOR_LOOP_59(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
322 	__DEBRACKET sep \
323 	z_call(59, x, fixed_arg0, fixed_arg1)
324 
325 #define Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
326 	Z_FOR_LOOP_60(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
327 	__DEBRACKET sep \
328 	z_call(60, x, fixed_arg0, fixed_arg1)
329 
330 #define Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
331 	Z_FOR_LOOP_61(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
332 	__DEBRACKET sep \
333 	z_call(61, x, fixed_arg0, fixed_arg1)
334 
335 #define Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
336 	Z_FOR_LOOP_62(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
337 	__DEBRACKET sep \
338 	z_call(62, x, fixed_arg0, fixed_arg1)
339 
340 #define Z_FOR_LOOP_64(z_call, sep, fixed_arg0, fixed_arg1, x, ...) \
341 	Z_FOR_LOOP_63(z_call, sep, fixed_arg0, fixed_arg1, ##__VA_ARGS__) \
342 	__DEBRACKET sep \
343 	z_call(63, x, fixed_arg0, fixed_arg1)
344 
345 #define Z_FOR_EACH_ENGINE(x, sep, fixed_arg0, fixed_arg1, ...) \
346 	Z_FOR_LOOP_GET_ARG(__VA_ARGS__, \
347 		Z_FOR_LOOP_64, \
348 		Z_FOR_LOOP_63, \
349 		Z_FOR_LOOP_62, \
350 		Z_FOR_LOOP_61, \
351 		Z_FOR_LOOP_60, \
352 		Z_FOR_LOOP_59, \
353 		Z_FOR_LOOP_58, \
354 		Z_FOR_LOOP_57, \
355 		Z_FOR_LOOP_56, \
356 		Z_FOR_LOOP_55, \
357 		Z_FOR_LOOP_54, \
358 		Z_FOR_LOOP_53, \
359 		Z_FOR_LOOP_52, \
360 		Z_FOR_LOOP_51, \
361 		Z_FOR_LOOP_50, \
362 		Z_FOR_LOOP_49, \
363 		Z_FOR_LOOP_48, \
364 		Z_FOR_LOOP_47, \
365 		Z_FOR_LOOP_46, \
366 		Z_FOR_LOOP_45, \
367 		Z_FOR_LOOP_44, \
368 		Z_FOR_LOOP_43, \
369 		Z_FOR_LOOP_42, \
370 		Z_FOR_LOOP_41, \
371 		Z_FOR_LOOP_40, \
372 		Z_FOR_LOOP_39, \
373 		Z_FOR_LOOP_38, \
374 		Z_FOR_LOOP_37, \
375 		Z_FOR_LOOP_36, \
376 		Z_FOR_LOOP_35, \
377 		Z_FOR_LOOP_34, \
378 		Z_FOR_LOOP_33, \
379 		Z_FOR_LOOP_32, \
380 		Z_FOR_LOOP_31, \
381 		Z_FOR_LOOP_30, \
382 		Z_FOR_LOOP_29, \
383 		Z_FOR_LOOP_28, \
384 		Z_FOR_LOOP_27, \
385 		Z_FOR_LOOP_26, \
386 		Z_FOR_LOOP_25, \
387 		Z_FOR_LOOP_24, \
388 		Z_FOR_LOOP_23, \
389 		Z_FOR_LOOP_22, \
390 		Z_FOR_LOOP_21, \
391 		Z_FOR_LOOP_20, \
392 		Z_FOR_LOOP_19, \
393 		Z_FOR_LOOP_18, \
394 		Z_FOR_LOOP_17, \
395 		Z_FOR_LOOP_16, \
396 		Z_FOR_LOOP_15, \
397 		Z_FOR_LOOP_14, \
398 		Z_FOR_LOOP_13, \
399 		Z_FOR_LOOP_12, \
400 		Z_FOR_LOOP_11, \
401 		Z_FOR_LOOP_10, \
402 		Z_FOR_LOOP_9, \
403 		Z_FOR_LOOP_8, \
404 		Z_FOR_LOOP_7, \
405 		Z_FOR_LOOP_6, \
406 		Z_FOR_LOOP_5, \
407 		Z_FOR_LOOP_4, \
408 		Z_FOR_LOOP_3, \
409 		Z_FOR_LOOP_2, \
410 		Z_FOR_LOOP_1, \
411 		Z_FOR_LOOP_0)(x, sep, fixed_arg0, fixed_arg1, __VA_ARGS__)
412 
413 #define Z_GET_ARG_1(_0, ...) _0
414 
415 #define Z_GET_ARG_2(_0, _1, ...) _1
416 
417 #define Z_GET_ARG_3(_0, _1, _2, ...) _2
418 
419 #define Z_GET_ARG_4(_0, _1, _2, _3, ...) _3
420 
421 #define Z_GET_ARG_5(_0, _1, _2, _3, _4, ...) _4
422 
423 #define Z_GET_ARG_6(_0, _1, _2, _3, _4, _5, ...) _5
424 
425 #define Z_GET_ARG_7(_0, _1, _2, _3, _4, _5, _6, ...) _6
426 
427 #define Z_GET_ARG_8(_0, _1, _2, _3, _4, _5, _6, _7, ...) _7
428 
429 #define Z_GET_ARG_9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) _8
430 
431 #define Z_GET_ARG_10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) _9
432 
433 #define Z_GET_ARG_11(_0, _1, _2, _3, _4, _5, \
434 			  _6, _7, _8, _9, _10, ...) _10
435 
436 #define Z_GET_ARG_12(_0, _1, _2, _3, _4, _5, _6,\
437 			  _7, _8, _9, _10, _11, ...) _11
438 
439 #define Z_GET_ARG_13(_0, _1, _2, _3, _4, _5, _6, \
440 			  _7, _8, _9, _10, _11, _12, ...) _12
441 
442 #define Z_GET_ARG_14(_0, _1, _2, _3, _4, _5, _6, \
443 			  _7, _8, _9, _10, _11, _12, _13, ...) _13
444 
445 #define Z_GET_ARG_15(_0, _1, _2, _3, _4, _5, _6, _7, \
446 			  _8, _9, _10, _11, _12, _13, _14, ...) _14
447 
448 #define Z_GET_ARG_16(_0, _1, _2, _3, _4, _5, _6, _7, \
449 			  _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
450 
451 #define Z_GET_ARG_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
452 			  _11, _12, _13, _14, _15, _16, ...) _16
453 
454 #define Z_GET_ARG_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
455 			  _11, _12, _13, _14, _15, _16, _17, ...) _17
456 
457 #define Z_GET_ARG_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
458 			  _11, _12, _13, _14, _15, _16, _17, _18, ...) _18
459 
460 #define Z_GET_ARG_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
461 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
462 			  ...) _19
463 
464 #define Z_GET_ARG_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
465 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
466 			  _20, ...) _20
467 
468 #define Z_GET_ARG_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
469 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
470 			  _20, _21, ...) _21
471 
472 #define Z_GET_ARG_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
473 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
474 			  _20, _21, _22, ...) _22
475 
476 #define Z_GET_ARG_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
477 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
478 			  _20, _21, _22, _23, ...) _23
479 
480 #define Z_GET_ARG_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
481 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
482 			  _20, _21, _22, _23, _24, ...) _24
483 
484 #define Z_GET_ARG_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
485 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
486 			  _20, _21, _22, _23, _24, _25, ...) _25
487 
488 #define Z_GET_ARG_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
489 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
490 			  _20, _21, _22, _23, _24, _25, _26, ...) _26
491 
492 #define Z_GET_ARG_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
493 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
494 			  _20, _21, _22, _23, _24, _25, _26, _27, ...) _27
495 
496 #define Z_GET_ARG_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
497 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
498 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
499 			  ...) _28
500 
501 #define Z_GET_ARG_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
502 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
503 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
504 			  _29, ...) _29
505 
506 #define Z_GET_ARG_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
507 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
508 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
509 			  _29, _30, ...) _30
510 
511 #define Z_GET_ARG_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
512 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
513 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
514 			  _29, _30, _31, ...) _31
515 
516 #define Z_GET_ARG_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
517 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
518 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
519 			  _29, _30, _31, _32, ...) _32
520 
521 #define Z_GET_ARG_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
522 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
523 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
524 			  _29, _30, _31, _32, _33, ...) _33
525 
526 #define Z_GET_ARG_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
527 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
528 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
529 			  _29, _30, _31, _32, _33, _34, ...) _34
530 
531 #define Z_GET_ARG_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
532 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
533 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
534 			  _29, _30, _31, _32, _33, _34, _35, ...) _35
535 
536 #define Z_GET_ARG_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
537 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
538 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
539 			  _29, _30, _31, _32, _33, _34, _35, _36, ...) _36
540 
541 #define Z_GET_ARG_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
542 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
543 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
544 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, ...) _37
545 
546 #define Z_GET_ARG_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
547 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
548 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
549 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
550 			  _38, ...) _38
551 
552 #define Z_GET_ARG_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
553 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
554 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
555 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
556 			  _38, _39, ...) _39
557 
558 #define Z_GET_ARG_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
559 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
560 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
561 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
562 			  _38, _39, _40, ...) _40
563 
564 #define Z_GET_ARG_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
565 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
566 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
567 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
568 			  _38, _39, _40, _41, ...) _41
569 
570 #define Z_GET_ARG_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
571 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
572 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
573 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
574 			  _38, _39, _40, _41, _42, ...) _42
575 
576 #define Z_GET_ARG_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
577 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
578 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
579 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
580 			  _38, _39, _40, _41, _42, _43, ...) _43
581 
582 #define Z_GET_ARG_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
583 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
584 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
585 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
586 			  _38, _39, _40, _41, _42, _43, _44, ...) _44
587 
588 #define Z_GET_ARG_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
589 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
590 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
591 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
592 			  _38, _39, _40, _41, _42, _43, _44, _45, ...) _45
593 
594 #define Z_GET_ARG_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
595 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
596 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
597 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
598 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, ...) _46
599 
600 #define Z_GET_ARG_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
601 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
602 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
603 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
604 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
605 			  _47, ...) _47
606 
607 #define Z_GET_ARG_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
608 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
609 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
610 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
611 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
612 			  _47, _48, ...) _48
613 
614 #define Z_GET_ARG_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
615 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
616 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
617 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
618 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
619 			  _47, _48, _49, ...) _49
620 
621 #define Z_GET_ARG_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
622 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
623 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
624 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
625 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
626 			  _47, _48, _49, _50, ...) _50
627 
628 #define Z_GET_ARG_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
629 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
630 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
631 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
632 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
633 			  _47, _48, _49, _50, _51, ...) _51
634 
635 #define Z_GET_ARG_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
636 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
637 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
638 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
639 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
640 			  _47, _48, _49, _50, _51, _52, ...) _52
641 
642 #define Z_GET_ARG_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
643 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
644 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
645 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
646 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
647 			  _47, _48, _49, _50, _51, _52, _53, ...) _53
648 
649 #define Z_GET_ARG_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
650 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
651 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
652 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
653 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
654 			  _47, _48, _49, _50, _51, _52, _53, _54, ...) _54
655 
656 #define Z_GET_ARG_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
657 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
658 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
659 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
660 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
661 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, ...) _55
662 
663 #define Z_GET_ARG_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
664 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
665 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
666 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
667 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
668 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
669 			  _56, ...) _56
670 
671 #define Z_GET_ARG_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
672 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
673 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
674 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
675 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
676 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
677 			  _56, _57, ...) _57
678 
679 #define Z_GET_ARG_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
680 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
681 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
682 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
683 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
684 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
685 			  _56, _57, _58, ...) _58
686 
687 #define Z_GET_ARG_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
688 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
689 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
690 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
691 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
692 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
693 			  _56, _57, _58, _59, ...) _59
694 
695 #define Z_GET_ARG_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
696 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
697 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
698 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
699 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
700 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
701 			  _56, _57, _58, _59, _60, ...) _60
702 
703 #define Z_GET_ARG_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
704 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
705 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
706 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
707 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
708 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
709 			  _56, _57, _58, _59, _60, _61, ...) _61
710 
711 #define Z_GET_ARG_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
712 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
713 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
714 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
715 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
716 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
717 			  _56, _57, _58, _59, _60, _61, _62, ...) _62
718 
719 #define Z_GET_ARG_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
720 			  _11, _12, _13, _14, _15, _16, _17, _18, _19, \
721 			  _20, _21, _22, _23, _24, _25, _26, _27, _28, \
722 			  _29, _30, _31, _32, _33, _34, _35, _36, _37, \
723 			  _38, _39, _40, _41, _42, _43, _44, _45, _46, \
724 			  _47, _48, _49, _50, _51, _52, _53, _54, _55, \
725 			  _56, _57, _58, _59, _60, _61, _62, _63, ...) _63
726 
727 #define Z_GET_ARGS_LESS_0(...) __VA_ARGS__
728 
729 #define Z_GET_ARGS_LESS_1(_0, ...) __VA_ARGS__
730 
731 #define Z_GET_ARGS_LESS_2(_0, _1, ...) __VA_ARGS__
732 
733 #define Z_GET_ARGS_LESS_3(_0, _1, _2, ...) __VA_ARGS__
734 
735 #define Z_GET_ARGS_LESS_4(_0, _1, _2, _3, ...) __VA_ARGS__
736 
737 #define Z_GET_ARGS_LESS_5(_0, _1, _2, _3, _4, ...) __VA_ARGS__
738 
739 #define Z_GET_ARGS_LESS_6(_0, _1, _2, _3, _4, _5, ...) __VA_ARGS__
740 
741 #define Z_GET_ARGS_LESS_7(_0, _1, _2, _3, _4, _5, _6, ...) __VA_ARGS__
742 
743 #define Z_GET_ARGS_LESS_8(_0, _1, _2, _3, _4, _5, \
744 				_6, _7, ...) __VA_ARGS__
745 
746 #define Z_GET_ARGS_LESS_9(_0, _1, _2, _3, _4, _5, \
747 				_6, _7, _8, ...) __VA_ARGS__
748 
749 #define Z_GET_ARGS_LESS_10(_0, _1, _2, _3, _4, _5, \
750 				_6, _7, _8, _9, ...) __VA_ARGS__
751 
752 #define Z_GET_ARGS_LESS_11(_0, _1, _2, _3, _4, _5, \
753 				_6, _7, _8, _9, _10, ...) __VA_ARGS__
754 
755 #define Z_GET_ARGS_LESS_12(_0, _1, _2, _3, _4, _5, _6,\
756 				_7, _8, _9, _10, _11, ...) __VA_ARGS__
757 
758 #define Z_GET_ARGS_LESS_13(_0, _1, _2, _3, _4, _5, _6, \
759 				_7, _8, _9, _10, _11, _12, ...) __VA_ARGS__
760 
761 #define Z_GET_ARGS_LESS_14(_0, _1, _2, _3, _4, _5, _6, \
762 				_7, _8, _9, _10, _11, _12, _13, \
763 				...) __VA_ARGS__
764 
765 #define Z_GET_ARGS_LESS_15(_0, _1, _2, _3, _4, _5, _6, _7, \
766 				_8, _9, _10, _11, _12, _13, _14, \
767 				...) __VA_ARGS__
768 
769 #define Z_GET_ARGS_LESS_16(_0, _1, _2, _3, _4, _5, _6, _7, \
770 				_8, _9, _10, _11, _12, _13, _14, _15, ...) \
771 				__VA_ARGS__
772 
773 #define Z_GET_ARGS_LESS_17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
774 				_11, _12, _13, _14, _15, _16, ...) __VA_ARGS__
775 
776 #define Z_GET_ARGS_LESS_18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
777 				_11, _12, _13, _14, _15, _16, _17, ...) \
778 				__VA_ARGS__
779 
780 #define Z_GET_ARGS_LESS_19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
781 				_11, _12, _13, _14, _15, _16, _17, _18, ...) \
782 				__VA_ARGS__
783 
784 #define Z_GET_ARGS_LESS_20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
785 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
786 				...) __VA_ARGS__
787 
788 #define Z_GET_ARGS_LESS_21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
789 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
790 				_20, ...) __VA_ARGS__
791 
792 #define Z_GET_ARGS_LESS_22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
793 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
794 				_20, _21, ...) __VA_ARGS__
795 
796 #define Z_GET_ARGS_LESS_23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
797 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
798 				_20, _21, _22, ...) __VA_ARGS__
799 
800 #define Z_GET_ARGS_LESS_24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
801 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
802 				_20, _21, _22, _23, ...) __VA_ARGS__
803 
804 #define Z_GET_ARGS_LESS_25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
805 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
806 				_20, _21, _22, _23, _24, ...) __VA_ARGS__
807 
808 #define Z_GET_ARGS_LESS_26(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
809 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
810 				_20, _21, _22, _23, _24, _25, ...) __VA_ARGS__
811 
812 #define Z_GET_ARGS_LESS_27(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
813 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
814 				_20, _21, _22, _23, _24, _25, _26, ...) \
815 				__VA_ARGS__
816 
817 #define Z_GET_ARGS_LESS_28(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
818 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
819 				_20, _21, _22, _23, _24, _25, _26, _27, \
820 				...) __VA_ARGS__
821 
822 #define Z_GET_ARGS_LESS_29(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
823 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
824 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
825 				...) __VA_ARGS__
826 
827 #define Z_GET_ARGS_LESS_30(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
828 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
829 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
830 				_29, ...) __VA_ARGS__
831 
832 #define Z_GET_ARGS_LESS_31(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
833 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
834 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
835 				_29, _30, ...) __VA_ARGS__
836 
837 #define Z_GET_ARGS_LESS_32(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
838 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
839 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
840 				_29, _30, _31, ...) __VA_ARGS__
841 
842 #define Z_GET_ARGS_LESS_33(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
843 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
844 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
845 				_29, _30, _31, _32, ...) __VA_ARGS__
846 
847 #define Z_GET_ARGS_LESS_34(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
848 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
849 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
850 				_29, _30, _31, _32, _33, ...) __VA_ARGS__
851 
852 #define Z_GET_ARGS_LESS_35(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
853 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
854 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
855 				_29, _30, _31, _32, _33, _34, ...) __VA_ARGS__
856 
857 #define Z_GET_ARGS_LESS_36(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
858 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
859 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
860 				_29, _30, _31, _32, _33, _34, _35, ...) __VA_ARGS__
861 
862 #define Z_GET_ARGS_LESS_37(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
863 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
864 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
865 				_29, _30, _31, _32, _33, _34, _35, _36, ...) __VA_ARGS__
866 
867 #define Z_GET_ARGS_LESS_38(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
868 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
869 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
870 				_29, _30, _31, _32, _33, _34, _35, _36, _37, ...) __VA_ARGS__
871 
872 #define Z_GET_ARGS_LESS_39(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
873 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
874 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
875 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
876 				_38, ...) __VA_ARGS__
877 
878 #define Z_GET_ARGS_LESS_40(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
879 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
880 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
881 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
882 				_38, _39, ...) __VA_ARGS__
883 
884 #define Z_GET_ARGS_LESS_41(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
885 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
886 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
887 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
888 				_38, _39, _40, ...) __VA_ARGS__
889 
890 #define Z_GET_ARGS_LESS_42(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
891 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
892 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
893 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
894 				_38, _39, _40, _41, ...) __VA_ARGS__
895 
896 #define Z_GET_ARGS_LESS_43(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
897 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
898 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
899 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
900 				_38, _39, _40, _41, _42, ...) __VA_ARGS__
901 
902 #define Z_GET_ARGS_LESS_44(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
903 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
904 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
905 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
906 				_38, _39, _40, _41, _42, _43, ...) __VA_ARGS__
907 
908 #define Z_GET_ARGS_LESS_45(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
909 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
910 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
911 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
912 				_38, _39, _40, _41, _42, _43, _44, ...) __VA_ARGS__
913 
914 #define Z_GET_ARGS_LESS_46(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
915 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
916 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
917 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
918 				_38, _39, _40, _41, _42, _43, _44, _45, ...) __VA_ARGS__
919 
920 #define Z_GET_ARGS_LESS_47(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
921 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
922 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
923 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
924 				_38, _39, _40, _41, _42, _43, _44, _45, _46, ...) __VA_ARGS__
925 
926 #define Z_GET_ARGS_LESS_48(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
927 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
928 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
929 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
930 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
931 				_47, ...) __VA_ARGS__
932 
933 #define Z_GET_ARGS_LESS_49(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
934 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
935 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
936 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
937 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
938 				_47, _48, ...) __VA_ARGS__
939 
940 #define Z_GET_ARGS_LESS_50(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
941 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
942 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
943 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
944 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
945 				_47, _48, _49, ...) __VA_ARGS__
946 
947 #define Z_GET_ARGS_LESS_51(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
948 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
949 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
950 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
951 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
952 				_47, _48, _49, _50, ...) __VA_ARGS__
953 
954 #define Z_GET_ARGS_LESS_52(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
955 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
956 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
957 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
958 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
959 				_47, _48, _49, _50, _51, ...) __VA_ARGS__
960 
961 #define Z_GET_ARGS_LESS_53(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
962 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
963 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
964 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
965 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
966 				_47, _48, _49, _50, _51, _52, ...) __VA_ARGS__
967 
968 #define Z_GET_ARGS_LESS_54(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
969 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
970 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
971 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
972 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
973 				_47, _48, _49, _50, _51, _52, _53, ...) __VA_ARGS__
974 
975 #define Z_GET_ARGS_LESS_55(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
976 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
977 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
978 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
979 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
980 				_47, _48, _49, _50, _51, _52, _53, _54, ...) __VA_ARGS__
981 
982 #define Z_GET_ARGS_LESS_56(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
983 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
984 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
985 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
986 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
987 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
988 				...) __VA_ARGS__
989 
990 #define Z_GET_ARGS_LESS_57(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
991 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
992 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
993 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
994 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
995 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
996 				_56, ...) __VA_ARGS__
997 
998 #define Z_GET_ARGS_LESS_58(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
999 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1000 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1001 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1002 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1003 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1004 				_56, _57, ...) __VA_ARGS__
1005 
1006 #define Z_GET_ARGS_LESS_59(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1007 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1008 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1009 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1010 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1011 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1012 				_56, _57, _58, ...) __VA_ARGS__
1013 
1014 #define Z_GET_ARGS_LESS_60(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1015 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1016 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1017 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1018 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1019 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1020 				_56, _57, _58, _59, ...) __VA_ARGS__
1021 
1022 #define Z_GET_ARGS_LESS_61(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1023 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1024 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1025 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1026 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1027 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1028 				_56, _57, _58, _59, _60, ...) __VA_ARGS__
1029 
1030 #define Z_GET_ARGS_LESS_62(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1031 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1032 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1033 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1034 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1035 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1036 				_56, _57, _58, _59, _60, _61, ...) __VA_ARGS__
1037 
1038 #define Z_GET_ARGS_LESS_63(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1039 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1040 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1041 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1042 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1043 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1044 				_56, _57, _58, _59, _60, _61, _62, ...) __VA_ARGS__
1045 
1046 #define Z_GET_ARGS_LESS_64(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
1047 				_11, _12, _13, _14, _15, _16, _17, _18, _19, \
1048 				_20, _21, _22, _23, _24, _25, _26, _27, _28, \
1049 				_29, _30, _31, _32, _33, _34, _35, _36, _37, \
1050 				_38, _39, _40, _41, _42, _43, _44, _45, _46, \
1051 				_47, _48, _49, _50, _51, _52, _53, _54, _55, \
1052 				_56, _57, _58, _59, _60, _61, _62, _63, ...) __VA_ARGS__
1053 
1054 #define Z_FOR_EACH_IDX_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1055 	fixed_arg0(idx, x, fixed_arg1)
1056 
1057 #define Z_FOR_EACH_IDX_FIXED_ARG(F, sep, fixed_arg, ...) \
1058 	Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_FIXED_ARG_EXEC, sep, \
1059 			     F, fixed_arg, __VA_ARGS__)
1060 
1061 #define Z_FOR_EACH_FIXED_ARG_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1062 	fixed_arg0(x, fixed_arg1)
1063 
1064 #define Z_FOR_EACH_FIXED_ARG(F, sep, fixed_arg, ...) \
1065 	Z_FOR_EACH_ENGINE(Z_FOR_EACH_FIXED_ARG_EXEC, sep, \
1066 			     F, fixed_arg, __VA_ARGS__)
1067 
1068 #define Z_FOR_EACH_IDX_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1069 	fixed_arg0(idx, x)
1070 
1071 #define Z_FOR_EACH_IDX(F, sep, ...) \
1072 	Z_FOR_EACH_ENGINE(Z_FOR_EACH_IDX_EXEC, sep, F, _, __VA_ARGS__)
1073 
1074 #define Z_FOR_EACH_EXEC(idx, x, fixed_arg0, fixed_arg1) \
1075 	fixed_arg0(x)
1076 
1077 #define Z_FOR_EACH(F, sep, ...) \
1078 	Z_FOR_EACH_ENGINE(Z_FOR_EACH_EXEC, sep, F, _, __VA_ARGS__)
1079 
1080 #define Z_BYPASS(x) x
1081 
1082 /* Set of UTIL_LISTIFY particles */
1083 #include "util_listify.h"
1084 
1085 #endif /* ZEPHYR_INCLUDE_SYS_UTIL_LOOPS_H_ */
1086