Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 /******************************************************************************* | |
2 * Base styles | |
3 ******************************************************************************/ | |
4 html { | |
5 color: #212121; | |
6 background-color: #fff; | |
7 font-family: sans-serif; | |
8 line-height: 1.5; } | |
9 | |
10 /** | |
11 * Stretch content full-width | |
12 */ | |
13 .full-width { | |
14 display: block; | |
15 width: 100%; | |
16 margin: 1em 0px; } | |
17 | |
18 /** | |
19 * Center content within a (responsive) fixed width | |
20 */ | |
21 .container { | |
22 width: auto; | |
23 max-width: 100%; | |
24 margin: 0px auto; | |
25 padding: 0px 1em; } | |
26 | |
27 @media (min-width: 768px) { | |
28 .container { | |
29 width: 720px; } } | |
30 | |
31 @media (min-width: 1200px) { | |
32 .container { | |
33 width: 1170px; } } | |
34 | |
35 /******************************************************************************* | |
36 * Grid component | |
37 ******************************************************************************/ | |
38 /** | |
39 * - .row contains one or more .column(s) | |
40 * - .row clears .column(s) | |
41 * - .row negates the left & right padding of it's left-most & right-most | |
42 * .column(s) while preserving consistent padding between .column(s) | |
43 */ | |
44 .row { | |
45 margin: 0px -1em; } | |
46 | |
47 .row:after { | |
48 display: block; | |
49 clear: both; | |
50 content: ""; } | |
51 | |
52 /** | |
53 * - .column is 100% width by default | |
54 * - Modifier classes are applied to .column to change it's width | |
55 * - Modifier classes behave differently on different device widths | |
56 */ | |
57 .column { | |
58 position: relative; | |
59 width: 100%; | |
60 min-height: 1px; | |
61 padding: 0px 1em; } | |
62 | |
63 /* - .column(s) within .row .reverse appear in reverse order | |
64 * - .column(s) within [dir=rtl] appear in reverse order respectively | |
65 */ | |
66 .column, | |
67 [dir="rtl"] .reverse .column { | |
68 float: left; } | |
69 | |
70 .row, | |
71 .column { | |
72 box-sizing: border-box; } | |
73 | |
74 .reverse .column, | |
75 [dir="rtl"] .column { | |
76 float: right; } | |
77 | |
78 @media (min-width: 768px) { | |
79 .one-half, | |
80 .one-fourth { | |
81 width: 50%; } } | |
82 | |
83 @media (min-width: 1200px) { | |
84 .one-third { | |
85 width: 33.333333%; } | |
86 .two-thirds { | |
87 width: 66.666667%; } | |
88 .one-fourth { | |
89 width: 25%; } | |
90 .three-fourths { | |
91 width: 75%; } } | |
92 | |
93 * | 1 * |
94 { | 2 { |
95 font-family: Arial, sans; | 3 font-family: Arial, sans; |
96 font-size: 16px; | 4 font-size: 16px; |
97 } | 5 } |
98 | 6 |
99 body | 7 body |
100 { | 8 { |
101 margin: 0; | 9 margin: 0; |
102 line-height: 1.5; | 10 line-height: 1.5; |
(...skipping 26 matching lines...) Expand all Loading... | |
129 border: 1px solid black; | 37 border: 1px solid black; |
130 overflow: auto; | 38 overflow: auto; |
131 } | 39 } |
132 | 40 |
133 .sprite | 41 .sprite |
134 { | 42 { |
135 display: inline-block; | 43 display: inline-block; |
136 font-size: 0px; /* fix for IE6 height bug */ | 44 font-size: 0px; /* fix for IE6 height bug */ |
137 background-image: url(../img/sprite-main.png); | 45 background-image: url(../img/sprite-main.png); |
138 background-repeat: no-repeat; | 46 background-repeat: no-repeat; |
139 } | |
140 | |
141 header | |
142 { | |
143 display: block; | |
144 position: relative; | |
145 background: white; | |
146 border: 1px solid #d9d9d9; | |
147 border-top: none; | |
148 box-shadow: 1px 1px 0 0 #d9d9d9; | |
149 z-index: 1; | |
150 } | |
151 | |
152 header nav li | |
153 { | |
154 padding: 0px 5px; | |
155 } | |
156 | |
157 header nav li.selected | |
158 { | |
159 color: #db1313; | |
160 text-shadow: 1px 1px 1px #eee; | |
161 cursor: default; | |
162 } | |
163 | |
164 header nav li.install-link a | |
165 { | |
166 color: #048e48; | |
167 } | |
168 | |
169 header nav li.install-link .install-link-icon | |
170 { | |
171 display: inline-block; | |
172 width: 12px; | |
173 height: 12px; | |
174 background-position: -167px -13px; | |
175 } | |
176 | |
177 .language-entry a | |
178 { | |
179 display: block; | |
180 } | |
181 | |
182 #logo | |
183 { | |
184 position: absolute; | |
185 width: 128px; | |
186 height: 128px; | |
187 background-position: -83px -83px; | |
188 } | |
189 | |
190 #content h1 | |
191 { | |
192 font-size: 30px; | |
193 } | |
194 | |
195 #content h2 | |
196 { | |
197 font-weight: bold; | |
198 font-size: 25px; | |
199 } | |
200 | |
201 #content h3 | |
202 { | |
203 font-size: 20px; | |
204 } | 47 } |
205 | 48 |
206 #adblock-browser-notification | 49 #adblock-browser-notification |
207 { | 50 { |
208 text-align: center; | 51 text-align: center; |
209 } | 52 } |
210 | 53 |
211 #adblock-browser-notification a | 54 #adblock-browser-notification a |
212 { | 55 { |
213 font-weight: bold; | 56 font-weight: bold; |
(...skipping 30 matching lines...) Expand all Loading... | |
244 .toc ul ul | 87 .toc ul ul |
245 { | 88 { |
246 padding-left: 40px; | 89 padding-left: 40px; |
247 } | 90 } |
248 | 91 |
249 .toc li | 92 .toc li |
250 { | 93 { |
251 margin: 4px 0; | 94 margin: 4px 0; |
252 } | 95 } |
253 | 96 |
254 #social-list ul | 97 #social-list ul |
juliandoucette
2017/10/06 13:03:40
Forgot about this style :D - It should probably be
ire
2017/10/09 10:38:02
Acknowledged.
| |
255 { | 98 { |
256 list-style: none; | 99 list-style: none; |
257 padding: 0; | 100 padding: 0; |
258 margin: 0; | 101 margin: 0; |
259 } | 102 } |
260 | 103 |
261 div.animation[started="false"]:before | 104 div.animation[started="false"]:before |
262 { | 105 { |
263 content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPBAMAAADJ%2B Ih5AAAAFVBMVEUAgAAAgAD%2F%2F%2F%2Fr9uvY7Ni%2B376h0aGeNpcsAAAAAXRSTlNtc%2BXFgwAAA DVJREFUeF5dzVEKACAMAlC7QW6t%2F7r%2FIYOBEPr1GOgw2AHiduaHkwKXwBK4BYZdylrpy4K%2BP%2 Fu5C1CVKVSzAAAAAElFTkSuQmCC); | 106 content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPBAMAAADJ%2B Ih5AAAAFVBMVEUAgAAAgAD%2F%2F%2F%2Fr9uvY7Ni%2B376h0aGeNpcsAAAAAXRSTlNtc%2BXFgwAAA DVJREFUeF5dzVEKACAMAlC7QW6t%2F7r%2FIYOBEPr1GOgw2AHiduaHkwKXwBK4BYZdylrpy4K%2BP%2 Fu5C1CVKVSzAAAAAElFTkSuQmCC); |
264 padding-left: 0px; | 107 padding-left: 0px; |
(...skipping 28 matching lines...) Expand all Loading... | |
293 [dir="ltr"] .alert | 136 [dir="ltr"] .alert |
294 { | 137 { |
295 border-left: 5px solid #d14841; | 138 border-left: 5px solid #d14841; |
296 } | 139 } |
297 | 140 |
298 [dir="rtl"] .alert | 141 [dir="rtl"] .alert |
299 { | 142 { |
300 border-right: 5px solid #d14841; | 143 border-right: 5px solid #d14841; |
301 } | 144 } |
302 | 145 |
146 /****************************************************************************** | |
147 * .content | |
148 *****************************************************************************/ | |
149 | |
150 .content h1, | |
151 .content h2, | |
152 .content h3, | |
153 .content h4, | |
154 .content h5 | |
155 { | |
156 font-weight: bold; | |
157 margin: 32px 0px; | |
158 margin: 2rem 0rem; | |
159 } | |
160 | |
161 .content h1 { font-size: 2.4em; } | |
162 .content h2 { font-size: 1.6em; } | |
163 .content h3 { font-size: 1.3em; } | |
164 .content h4 { font-size: 1.2em; } | |
165 .content h5 { font-size: 1.1em; } | |
166 | |
303 /******************************************************************************* | 167 /******************************************************************************* |
juliandoucette
2017/10/06 13:03:40
What do you think of this comment style?
/**
* C
ire
2017/10/09 10:38:03
I don't mind it being used for subcategories, but
juliandoucette
2017/10/09 16:44:12
That's what I meant by "(except lines are 80 char
ire
2017/10/09 17:01:13
Oh alright. I thought you meant literally what you
| |
304 * #site-footer | 168 * #navbar |
305 ******************************************************************************/ | 169 ******************************************************************************/ |
306 | 170 |
307 #site-footer | 171 #navbar |
172 { | |
173 height: 4em; | |
174 background-color: #c70d2c; | |
175 } | |
176 | |
177 #navbar li | |
178 { | |
179 list-style-type: none; | |
180 } | |
181 | |
182 /* padding provided by navbar contents */ | |
183 .navbar-container | |
184 { | |
185 width: 1170px; | |
186 margin: 0 auto; | |
187 } | |
188 | |
189 /* full-width under .container max-width */ | |
190 @media(max-width: 1199px) | |
191 { | |
192 .navbar-container | |
193 { | |
194 width: 100%; | |
195 } | |
196 } | |
197 | |
198 /* #navbar #navbar-logo | |
199 ******************************************************************************/ | |
200 | |
201 #navbar-logo | |
202 { | |
203 /* padding is visible in hover background-color change */ | |
204 padding: 0em 1em; | |
205 color: #fff; | |
206 } | |
207 | |
208 #navbar-logo:hover, | |
209 #navbar-logo:active, | |
210 #navbar-logo:focus | |
211 { | |
212 background-color: #AE0013; | |
213 text-decoration: none; | |
214 } | |
215 | |
216 #navbar-logo, | |
217 #navbar-logo > * | |
218 { | |
219 float: left; | |
220 } | |
221 | |
222 [dir="rtl"] #navbar-logo, | |
223 [dir="rtl"] #navbar-logo > * | |
224 { | |
225 float: right; | |
226 } | |
227 | |
228 #navbar-logo img | |
229 { | |
230 height: 4em; | |
231 padding: 0.5em 0em; | |
232 margin: 0em 1em 0em 0em; | |
233 } | |
234 | |
235 [dir="rtl"] #navbar-logo > img | |
236 { | |
237 margin: 0em 0em 0em 1em; | |
238 } | |
239 | |
240 #navbar-logo > span | |
241 { | |
242 /* full-height: 2.91 * 1.375 = ~4em */ | |
243 line-height: 2.91em; | |
244 font-size: 1.375em; | |
245 } | |
246 | |
247 /* #navbar #navbar-menu-toggle | |
248 ******************************************************************************/ | |
249 | |
250 #navbar-menu-toggle | |
251 { | |
252 float: right; | |
253 padding: 1em; | |
254 } | |
255 | |
256 [dir="rtl"] #navbar-menu-toggle | |
257 { | |
258 float: left; | |
259 } | |
260 | |
261 /* show on mobile */ | |
262 #navbar-menu-toggle, | |
263 #navbar-menu-toggle > img | |
264 { | |
265 display: block; | |
266 } | |
267 | |
268 /* hide on desktop */ | |
269 @media(min-width: 992px) | |
270 { | |
271 #navbar-menu-toggle | |
272 { | |
273 display: none; | |
274 } | |
275 } | |
276 | |
277 #navbar-menu-toggle > img | |
278 { | |
279 /* plus 2em padding = 4em */ | |
280 height: 2em; | |
281 } | |
282 | |
283 #navbar-menu-toggle:hover, | |
284 #navbar-menu-toggle:active, | |
285 #navbar-menu-toggle:focus | |
286 { | |
287 background-color: #AE0013; | |
288 } | |
289 | |
290 /* #navbar #navbar-menu | |
291 ******************************************************************************/ | |
292 | |
293 #navbar-menu a | |
294 { | |
295 display: block; | |
296 color: #fff; | |
297 text-decoration: none; | |
298 } | |
299 | |
300 /* #navbar #navbar-menu #navbar-locale-menu | |
301 ******************************************************************************/ | |
302 | |
303 /* caret */ | |
304 #navbar-locale-selected:after | |
305 { | |
306 display: inline-block; | |
307 width: 0; | |
308 height: 0; | |
309 margin: 0em 0em 0em 0.255em; | |
310 vertical-align: .255em; | |
311 content: ""; | |
312 border-top: .3em solid; | |
313 border-right: .3em solid transparent; | |
314 border-left: .3em solid transparent; | |
315 } | |
316 | |
317 [dir="rtl"] #navbar-locale-selected:after | |
318 { | |
319 margin: 0em 0.255em 0em 0em; | |
320 } | |
321 | |
322 #navbar-locale-menu | |
323 { | |
324 display: none; | |
325 } | |
326 | |
327 #navbar-locale-menu.visible | |
328 { | |
329 display: block; | |
330 } | |
331 | |
332 #navbar-locale-menu > li > a | |
333 { | |
334 padding: 0.75em 1em; | |
335 } | |
336 | |
337 #navbar-locale-menu > li > a:hover, | |
338 #navbar-locale-menu > li > a:active, | |
339 #navbar-locale-menu > li > a:focus | |
340 { | |
341 background-color: #434343; | |
342 } | |
343 | |
344 /* #navbar #navbar-menu (desktop) | |
345 ******************************************************************************/ | |
346 | |
347 @media(min-width: 992px) | |
348 { | |
349 #navbar-menu | |
350 { | |
351 float: right; | |
352 } | |
353 | |
354 [dir="rtl"] #navbar-menu | |
355 { | |
356 float: left; | |
357 } | |
358 | |
359 #navbar-menu > li, | |
360 #navbar-menu > li > a | |
361 { | |
362 display: inline-block; | |
363 } | |
364 | |
365 #navbar-menu > li > a | |
366 { | |
367 padding: 0em 1em; | |
368 line-height: 4em; | |
369 } | |
370 | |
371 #navbar-menu > li > a:hover, | |
372 #navbar-menu > li > a:active, | |
373 #navbar-menu > li > a:focus | |
374 { | |
375 background-color: #AE0013; | |
376 } | |
377 | |
378 /* #navbar #navbar-menu #navbar-locale-menu | |
379 ****************************************************************************/ | |
380 | |
381 #navbar-locale-menubar | |
382 { | |
383 position: relative; | |
384 } | |
385 | |
386 #navbar-locale-menu | |
387 { | |
388 position: absolute; | |
389 min-width: 16em; | |
390 max-height: 20em; | |
391 max-height: 50vh; | |
392 top: 100%; | |
393 right: 0px; | |
394 overflow: auto; | |
395 z-index: 9001; | |
396 background-color: #292929; | |
397 } | |
398 | |
399 [dir="rtl"] #navbar-locale-menu | |
400 { | |
401 right: auto; | |
402 left: 0px; | |
403 } | |
404 } | |
405 | |
406 /* #navbar #navbar-menu (mobile) | |
407 ******************************************************************************/ | |
408 | |
409 @media(max-width: 991px) | |
410 { | |
411 #navbar-menu | |
412 { | |
413 display: none; | |
414 float: left; | |
415 clear: both; | |
416 width: 100%; | |
417 background-color: #292929; | |
418 } | |
419 | |
420 #navbar-menu.visible | |
421 { | |
422 display: block; | |
423 } | |
424 | |
425 #navbar-menu li a | |
426 { | |
427 padding: 0.75em 1em; | |
428 } | |
429 | |
430 #navbar-menu li a:hover, | |
431 #navbar-menu li a:active, | |
432 #navbar-menu li a:focus | |
433 { | |
434 background-color: #434343; | |
435 } | |
436 } | |
437 | |
438 /******************************************************************************* | |
439 * #footer | |
440 ******************************************************************************/ | |
441 | |
442 #footer | |
308 { | 443 { |
309 overflow: auto; | 444 overflow: auto; |
310 margin-top: 2em; | 445 margin-top: 2em; |
311 padding-top: 2em; | 446 padding: 2em 0em; |
312 padding-bottom: 2em; | |
313 color: #ececec; | 447 color: #ececec; |
314 background-color: #292929; | 448 background-color: #292929; |
315 font-size: 0.9em; | 449 font-size: 0.9em; |
316 } | 450 } |
317 | 451 |
318 /* #site-footer body | 452 /* #footer body |
319 ******************************************************************************/ | 453 ******************************************************************************/ |
320 | 454 |
321 #site-footer h5::after | 455 #footer h5 |
ire
2017/10/09 10:38:03
This should be `:after`
juliandoucette
2017/10/11 13:12:06
Done.
| |
456 { | |
457 margin-top: 1em; | |
458 margin-bottom: 1.5em; | |
459 } | |
460 | |
461 #footer h5:after | |
322 { | 462 { |
323 content: ""; | 463 content: ""; |
324 display: block; | 464 display: block; |
325 width: 1.25em; | 465 width: 1.25em; |
326 height: 3px; | 466 height: 0.125em; |
ire
2017/10/09 10:38:03
If the width changes with the font size, I think t
juliandoucette
2017/10/11 13:12:07
Good point. Done.
| |
327 margin: 1em 0em 0em 0em; | 467 margin-top: 0.5em; |
ire
2017/10/09 10:38:02
NIT: I don't think you need to set the margins for
juliandoucette
2017/10/11 13:12:06
Done.
| |
328 border: none; | |
ire
2017/10/09 10:38:02
I don't think this style is needed. There isn't a
juliandoucette
2017/10/11 13:12:06
Acknowledged.
| |
329 background-color: #ececec; | 468 background-color: #ececec; |
330 } | 469 } |
331 | 470 |
332 #site-footer li | 471 #footer ul |
333 { | 472 { |
473 padding: 0em; | |
334 list-style-type: none; | 474 list-style-type: none; |
ire
2017/10/09 10:38:02
NIT: I don't know if it makes a difference, but I
juliandoucette
2017/10/11 13:12:07
Acknowledged.
Never thought about this.
| |
335 } | 475 } |
336 | 476 |
337 #site-footer ul | 477 #footer a |
338 { | |
339 padding: 0px; | |
340 } | |
341 | |
342 #site-footer a | |
343 { | 478 { |
344 color: #ececec; | 479 color: #ececec; |
345 text-decoration: none; | 480 } |
346 } | 481 |
347 | 482 #footer a:hover, |
348 #site-footer a:hover, | 483 #footer a:active, |
349 #site-footer a:active, | 484 #footer a:focus |
350 #site-footer a:focus | |
351 { | 485 { |
352 color: #fff; | 486 color: #fff; |
353 text-decoration: underline; | 487 text-decoration: underline; |
354 } | 488 } |
355 | 489 |
356 /* #site-footer #social-list | 490 /* #footer #social-list |
357 ******************************************************************************/ | 491 ******************************************************************************/ |
492 | |
493 #social-list ul | |
494 { | |
495 /* negative margin canceled out by li margin below */ | |
496 margin: 0em -0.375em; | |
497 } | |
358 | 498 |
359 #social-list li | 499 #social-list li |
ire
2017/10/09 10:38:03
I think your trick of using negative margins on th
juliandoucette
2017/10/11 13:12:06
Yep. Done.
| |
360 { | 500 { |
361 display: block; | |
362 float: left; | 501 float: left; |
502 margin: 0em 0.375em; | |
363 } | 503 } |
364 | 504 |
365 [dir="rtl"] #social-list li | 505 [dir="rtl"] #social-list li |
366 { | 506 { |
367 float: right; | 507 float: right; |
368 } | 508 } |
369 | 509 |
370 #social-list li | |
371 { | |
372 margin-right: 0.5em; | |
373 } | |
374 | |
375 [dir="rtl"] #social-list li | |
376 { | |
377 margin-left: 0.5em; | |
378 } | |
379 | |
380 #social-list img | 510 #social-list img |
381 { | 511 { |
382 height: 2em; | 512 height: 2em; |
383 } | 513 } |
384 | 514 |
385 /* #site-footer #footer-legal | 515 @media(min-width: 1200px) |
516 { | |
517 #social-list img | |
518 { | |
519 height: 3em; | |
520 } | |
521 } | |
522 | |
523 /* #footer #footer-legal | |
386 ******************************************************************************/ | 524 ******************************************************************************/ |
387 | 525 |
388 #footer-legal | 526 #footer-legal |
389 { | 527 { |
390 overflow: auto; | 528 margin-top: 1em; |
ire
2017/10/09 10:38:03
NIT: I was a bit confused about why this style was
juliandoucette
2017/10/11 13:12:07
There is no good reason for this.
| |
391 margin-top: 2em; | 529 } |
392 font-size: 0.8em; | 530 |
393 } | 531 @media(min-width: 1200px) |
394 | 532 { |
395 /* #site-footer #footer-legal #legal-list | 533 #footer-legal |
534 { | |
535 margin-top: 2em; | |
536 } | |
537 } | |
538 | |
539 /* #footer #footer-legal #legal-list | |
396 ******************************************************************************/ | 540 ******************************************************************************/ |
397 | 541 |
398 #legal-list li | 542 #legal-list li |
399 { | 543 { |
400 display: block; | |
401 float: left; | 544 float: left; |
402 } | 545 } |
403 | 546 |
404 [dir="rtl"] #legal-list li | 547 [dir="rtl"] #legal-list li |
405 { | 548 { |
406 float: right; | 549 float: right; |
407 } | 550 } |
408 | 551 |
552 #legal-list li:after | |
553 { | |
554 margin: 0em 0.375em; | |
555 } | |
556 | |
557 /* IE9+ only */ | |
409 #legal-list li::after | 558 #legal-list li::after |
410 { | 559 { |
411 margin-left: 0.25em; | |
412 margin-right: 0.25em; | |
ire
2017/10/09 10:38:02
Since the margin i sonly applied to the `::after`
juliandoucette
2017/10/11 13:12:06
Good point.
| |
413 content: "|" | 560 content: "|" |
414 } | 561 } |
415 | 562 |
416 #legal-list li:last-of-type::after | 563 #legal-list li:last-of-type::after |
417 { | 564 { |
418 content: none; | 565 content: none; |
419 } | 566 } |
420 | 567 |
juliandoucette
2017/10/06 13:03:40
Maybe I should put a #site-footer comment here?
ire
2017/10/09 10:38:03
Sure. Or you can group all the `#site-footer #foot
| |
421 /* float copyright and legal links left and right on ~desktop */ | 568 /* float copyright and legal links left and right on ~desktop */ |
422 @media(min-width: 1200px) | 569 @media(min-width: 1200px) |
423 { | 570 { |
424 #copyright-notice | 571 #copyright-notice |
425 { | 572 { |
426 float: left; | 573 float: left; |
427 } | 574 } |
428 | 575 |
429 [dir="rtl"] #copyright-notice | 576 [dir="rtl"] #copyright-notice |
430 { | 577 { |
431 float: right; | 578 float: right; |
432 } | 579 } |
433 | 580 |
434 #legal-list | 581 #legal-list |
435 { | 582 { |
436 float: right; | 583 float: right; |
437 } | 584 } |
438 | 585 |
439 [dir="rtl"] #legal-list | 586 [dir="rtl"] #legal-list |
440 { | 587 { |
441 float: left; | 588 float: left; |
442 } | 589 } |
443 } | 590 } |
444 | 591 |
juliandoucette
2017/10/06 13:03:40
Maybe I should move this up? e.g. under #site-foot
| |
445 /* hide all footer links except #social-list on ~mobile */ | 592 /* hide all footer links except #social-list on ~mobile */ |
446 @media(max-width: 767px) | 593 @media(max-width: 767px) |
447 { | 594 { |
448 #site-footer .column | 595 #footer .column |
449 { | 596 { |
450 display: none; | 597 display: none; |
451 } | 598 } |
452 | 599 |
453 /* overriding display:none above */ | 600 /* overriding display:none above */ |
454 #site-footer #social-list | 601 #footer #social-list |
455 { | 602 { |
456 display: block; | 603 display: block; |
457 } | 604 } |
458 } | 605 } |
LEFT | RIGHT |