1/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 * manual.css
3 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
4
5/* Licensed to the Apache Software Foundation (ASF) under one or more
6 * contributor license agreements.  See the NOTICE file distributed with
7 * this work for additional information regarding copyright ownership.
8 * The ASF licenses this file to You under the Apache License, Version 2.0
9 * (the "License"); you may not use this file except in compliance with
10 * the License.  You may obtain a copy of the License at
11 *
12 *     http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20
21/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22 * mainframe ;-)
23 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
24html {
25    font-size: 14px;
26}
27
28body {
29    background-color: #fff;
30    color: #036;
31    padding: 0 1em 0 0;
32    margin: 0;
33    font-family: Arial, Helvetica, sans-serif;
34    font-weight: normal;
35}
36
37pre, code {
38    font-family: "Courier New", Courier, monospace;
39}
40
41strong {
42    font-weight: bold;
43}
44
45q, em, var {
46    font-style: italic;
47}
48
49span.transnote, span.phonetic {
50    font-weight: normal;
51    background-color: inherit;
52    color: #888;
53}
54
55/* fixup IE & Opera
56 * otherwise they forget to inherit
57 * the computed font-size value
58 */
59table, code {
60    font-size: 1em;
61}
62
63/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 * Links
65 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
66
67/* normal links           */
68/* ====================== */
69a:link {
70    color: #0073c7;
71    background-color: inherit;
72}
73
74a:visited {
75    color: #5A88B5;
76    background-color: inherit;
77}
78
79a:link:hover,
80a:link:active,
81a:visited:hover,
82a:visited:active {
83    color: #0073c7;
84    background-color: #f0f0f0;
85}
86
87/* hover on non-white backgrounds */
88tr.odd a:hover,
89tr.odd a:active,
90tr.header a:hover,
91tr.header a:active,
92div.note a:hover,
93div.note a:active,
94div.example a:hover,
95div.example a:active,
96div.warning a:hover,
97div.warning a:active,
98div#quickview a:hover,
99div#quickview a:active {
100    background-color: #fff;
101    color: #0073c7;
102}
103
104/* code.module [links]    */
105/* ====================== */
106code.module,
107code.module a:link {
108    color: #8b4513;
109    background-color: inherit;
110}
111
112code.module a:visited {
113    color: #bc8f8f;
114    background-color: inherit;
115}
116
117code.module a:hover,
118code.module a:active {
119    color: #8b4513;
120    background-color: #f0f0f0;
121}
122
123/* hover on non-white backgrounds */
124tr.odd code.module a:hover,
125tr.odd code.module a:active,
126tr.header code.module a:hover,
127tr.header code.module a:active,
128div.note code.module a:hover,
129div.note code.module a:active,
130div.example code.module a:hover,
131div.example code.module a:active,
132div.warning code.module a:hover,
133div.warning code.module a:active,
134div#quickview code.module a:hover,
135div#quickview code.module a:active {
136    background-color: #fff;
137    color: #8b4513;
138}
139
140/* code.directive [links] */
141/* ====================== */
142code.directive,
143code.directive a:link {
144    color: #287f00;
145    background-color: inherit;
146}
147
148code.directive a:visited {
149    color: #35a500;
150    background-color: inherit;
151}
152
153code.directive a:hover,
154code.directive a:active {
155    color: #287f00;
156    background-color: #f0f0f0;
157}
158
159/* hover on non-white backgrounds */
160tr.odd code.directive a:hover,
161tr.odd code.directive a:active,
162tr.header code.directive a:hover,
163tr.header code.directive a:active,
164div.note code.directive a:hover,
165div.note code.directive a:active,
166div.example code.directive a:hover,
167div.example code.directive a:active,
168div.warning code.directive a:hover,
169div.warning code.directive a:active,
170div#quickview code.directive a:hover,
171div#quickview code.directive a:active {
172    background-color: #fff;
173    color: #287f00;
174}
175
176/* glossary [links] */
177/* ====================== */
178.glossarylink {
179    cursor: help;
180    border-bottom: 1px dashed #0073c7;
181    text-decoration: none;
182}
183
184
185/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186 * Headings
187 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
188
189/* h1                     */
190/* ====================== */
191h1 {
192    padding: 0.2em;
193    margin: 0;
194    border: 1px solid #405871;
195    background-color: inherit;
196    color: #036;
197    text-decoration: none;
198    font-size: 22px;
199    font-weight: bold;
200}
201
202/* h2                     */
203/* ====================== */
204h2 {
205    padding: 0.2em 0 0.2em 0.7em;
206    margin: 0 0 0.5em 0;
207    text-decoration: none;
208    font-size: 18px;
209    font-weight: bold;
210}
211
212.section h2 {
213    background-color: #405871;
214    color: #fff;
215}
216
217.directive-section h2 {
218    background-color: #557697;
219    color: #fff;
220}
221
222.category h2 {
223    background-color: #e5ecf3;
224    color: #405871;
225    font-size: 14px;
226}
227
228/* take care of <a name>s inside */
229h2 a,
230h2 a:hover,
231h2 a:active {
232    color: inherit;
233    background-color: inherit;
234    text-decoration: none;
235}
236
237/* h3, h4                 */
238/* ====================== */
239h3 {
240    background-color: inherit;
241    color: #036;
242    text-decoration: none;
243    font-weight: bold;
244    font-size: 16px;
245    margin: 1.3em 0 0.4em 0;
246    padding: 0;
247}
248
249h4 {
250    background-color: inherit;
251    color: #036;
252    text-decoration: none;
253    font-weight: bold;
254    font-size: 14px;
255    margin: 1.3em 0 0.2em 0;
256    padding: 0;
257}
258
259/* margin adjustment */
260h3 + *, h4 + * {
261    margin-top: 0;
262}
263
264/* IE confuses the + * :-(
265 * so reset some things
266 */
267ul, .section table, .directive-section table {
268    margin-bottom: 1em;
269}
270
271/* titles for
272 * examples, notes and warnings
273 */
274div.example h3,
275div.note h3,
276div.warning h3 {
277    margin: 0 0 0.5em 0;
278    text-align: left;
279    font-size: 14px;
280}
281
282/* sidebar */
283div#quickview h3 {
284    margin: 1em 0 0.3em 0.5em;
285    font-size: 15px;
286}
287
288div#quickview h3.directives {
289    margin-top: 0.3em;
290}
291
292/* take care of <a name>s inside */
293h3 a,
294h3 a:hover,
295h3 a:active,
296h4 a,
297h4 a:hover,
298h4 a:active {
299    color: inherit;
300    background-color: inherit;
301    text-decoration: none;
302}
303
304/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305 * Up & Top helper images
306 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
307
308/* arrow left             */
309/* ====================== */
310div.up {
311    width: 30px;
312    height: 20px;
313    padding: 0;
314    margin: -20px 0 1px 0;
315    text-align: center;
316    vertical-align: top;
317}
318
319div.up img {
320    vertical-align: top;
321    width: 11px;
322    height: 11px;
323    border-style: none;
324}
325
326/* arrow up (to page top) */
327/* ====================== */
328div.top {
329    width: 30px;
330    padding: 0 0 0 30px;
331    margin: 0;
332}
333
334div.top img {
335    margin-top: 0.5em;
336    vertical-align: bottom;
337    width: 11px;
338    height: 11px;
339    border-style: none;
340}
341
342/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343 * Tables
344 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
345
346/* general                */
347/* ====================== */
348table {
349    border: 1px solid #aaa;
350    border-collapse: collapse;
351    padding: 2px;
352    margin-top: 0.5em;
353    margin-bottom: 0;
354}
355
356td, th {
357    empty-cells: show; /* show border around empty cells */
358    padding: 0.1em 0.2em;
359    vertical-align: top;
360    text-align: left;
361    line-height: 1.3em;
362}
363
364th {
365    font-weight: bold;
366}
367
368td.centered {
369    text-align: center;
370}
371
372td.data {
373    font-family: monospace;
374    text-align: right;
375    padding-left: 1em;
376}
377
378th.data {
379    text-align: right;
380}
381
382tr.odd { /* for large tables alternating colors */
383    background-color: #f2f2f2;
384}
385
386tr.header, tr.header th {
387    background-color: #e2e2e2;
388    border-top: 1px solid #aaa;
389    border-bottom: 1px solid #aaa;
390}
391
392/* bordered table cells   */
393/* ====================== */
394
395/* turn off borders in tables nested in
396 * bordered tables per default
397 */
398table.bordered table td,
399table.bordered table th {
400    border-style: none;
401}
402
403table.bordered td,
404table.bordered th,
405table table.bordered td,
406table table.bordered th {
407    border: 1px solid #aaa;
408}
409
410/* index page layout table */
411/* ======================= */
412body#index-page div#page-content {
413    width: 100%; /* IE fun */
414}
415
416body[id]#index-page div#page-content {
417    width: auto; /* reasonable browsers. */
418}
419
420table#indextable {
421    width: 100%;
422    border-collapse: collapse;
423    border: 0 none;
424}
425
426table#indextable td {
427    width: 33.3%;
428    border-left: 1px solid #aaa;
429    padding-top: 0;
430    padding-bottom: 0;
431}
432
433table#indextable td.col1 {
434    border-left: 0 none;
435    padding-left: 0;
436}
437
438table#indextable td.col3 {
439    padding-right: 0;
440}
441
442/* mod/dir. overview table and quick reference  */
443/* ============================================ */
444table.module th,
445table.directive th {
446    white-space: nowrap;
447}
448
449table.qref {
450    border-collapse: collapse;
451    width: 100%;
452}
453
454table.qref td {
455    border-style: none solid;
456    border-color: #aaa;
457    border-width: 1px;
458}
459
460table.qref td.descr {
461    padding-left: 1em;
462    font-size: 13px;
463}
464
465table#legend {
466    width: 100%;
467    border-style: none;
468    border-width: 0;
469    vertical-align: bottom;
470    padding: 0;
471    margin: 0;
472}
473
474table#legend td {
475    vertical-align: bottom;
476    margin: 0;
477    padding: 0;
478}
479
480table#legend td.letters {
481    width: 100%;
482    padding-bottom: 0.5em;
483}
484
485table#legend table {
486    vertical-align: bottom;
487    margin: 0 0 0 0.4em;
488    padding: 0;
489    height: 7.5em;
490}
491
492table#legend table td,
493table#legend table th {
494    vertical-align: middle;
495    padding: 0.1ex 0.2em;
496    line-height: 1em;
497    white-space: nowrap;
498}
499
500/* related modules & dir. */
501/* ====================== */
502
503/* assuming, all links are enclosed by
504 * <code class="directive"> or
505 * <code class="module">
506 */
507
508table.related {
509    border-collapse: separate;
510}
511
512table.related th {
513    padding: 0.2ex 0.3em;
514    background-color: #e5ecf3;
515    color: #405871;
516    vertical-align: middle;
517}
518
519table.related td {
520    padding: 0.2ex 0.3em;
521}
522
523/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 * Lists
525 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
526
527/* list default values    */
528/* ====================== */
529ul {
530    list-style-type: disc;
531}
532
533ul ul {
534    list-style-type: square;
535}
536
537ul ul ul {
538    list-style-type: circle;
539}
540
541li, dt, dd {
542    line-height: 1.3em;
543}
544
545dt {
546    margin-top: 0.5em;
547    font-weight: bold;
548}
549
550ol li {
551    margin-top: 0.5em;
552}
553
554ol.up-A {
555    list-style-type: upper-alpha;
556}
557
558ol.lo-A {
559    list-style-type: lower-alpha;
560}
561
562dd.separate {
563    margin-bottom: 2em;
564}
565
566li.separate {
567    margin-bottom: 1em;
568}
569
570/* table of contents      */
571/* ====================== */
572#toc,
573#topics {
574    margin: 0 0 1em 0;
575    padding: 0;
576}
577
578#toc li,
579#topics li {
580    list-style-type: none;
581    margin: 0;
582    padding: 0;
583}
584
585/* see also               */
586/* ====================== */
587.seealso {
588    margin: 0 0 1em 0;
589    padding: 0;
590}
591
592.seealso li {
593    list-style-type: none;
594    margin: 0;
595    padding: 0 0 0 34px;
596}
597
598/* related modules & dir. */
599/* ====================== */
600table.related td ul,
601table.related td li {
602    list-style-type: none;
603    margin: 0;
604    padding: 0;
605}
606
607/* list of all directives */
608/* ====================== */
609div#directive-list ul {
610    margin: 0;
611    padding: 0;
612}
613
614/* indextable */
615/* ========== */
616table#indextable td ul {
617    list-style-type: none;
618    margin: 0 0 1em 0.5em;
619    padding: 0 0 0 0;
620}
621
622table#indextable td ul li {
623    margin-top: 0.3em;
624}
625
626/* sidebar                */
627/* ====================== */
628div#quickview li {
629    font-size: 13px;
630}
631
632div#quickview ul {
633    margin: 0 0 15px 0;
634    padding: 0;
635}
636
637div#quickview ul#toc {
638    margin: 0 0 0 0.5em;
639    padding: 0;
640}
641
642#module-index div#quickview ul#toc,
643#manual-page div#quickview ul#toc {
644    margin-left: 0;
645}
646
647div#quickview ul#toc li {
648    margin: 0;
649    padding: 0;
650    list-style-type: none;
651}
652
653div#quickview li img {
654    display: none;
655}
656
657#module-index div#quickview ul#toc,
658#manual-page div#quickview ul#toc,
659div#quickview #topics,
660div#quickview .seealso {
661    padding-left: 15px;
662}
663
664#module-index div#quickview ul#toc li,
665#manual-page div#quickview ul#toc li,
666div#quickview #topics li,
667div#quickview .seealso li {
668    margin: 0.4em 0 2px 0;
669    padding: 0;
670    list-style-type: square;
671    list-style-position: outside;
672}
673
674/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
675 * main page sections
676 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
677
678/* page header            */
679/* ====================== */
680div#page-header {
681    margin-left: 30px;
682}
683
684div#page-header img {
685    padding: 0;
686    display: block;
687    margin: -70px 0 1px 2em;
688    width: 248px;
689    height: 70px;
690}
691
692div#page-header p.apache {
693    background-color: #405871;
694    color: #fff;
695    padding: 0 0 0 248px;
696    margin: 0;
697    text-align: center;
698    vertical-align: middle;
699    font-size: 16px;
700    font-weight: bold;
701    line-height: 29px;
702}
703
704div#page-header p.menu {
705    text-align: right;
706    font-size: 13px;
707    margin: 30px 0 0.5em 0;
708    padding: 0;
709}
710
711/* breadcrumb navigation */
712div#path {
713    margin: 0.2em 0 1.2em 30px;
714    padding: 0;
715    font-size: 13px;
716}
717
718/* content sections       */
719/* ====================== */
720div#preamble {
721    padding-bottom: 1em;
722    margin-left: 30px;
723}
724
725div.section,
726div.directive-section {
727    margin: -1.2em 0 0 60px;
728    padding: 0;
729}
730
731.section p,
732.directive-section p {
733    margin: 0 0 1em 0;
734    padding: 0;
735}
736
737/* look for this on directive
738 * list pages
739 */
740div#directive-list {
741    margin-left: 30px;
742    padding: 0 0 1em 1em;
743}
744
745div#directive-ref {
746    margin: -1em 0 0 0;
747    padding: 0 0 1em 30px;
748    width: 100%; /* IE is BAD (broken as designed) */
749}
750
751div[id]#directive-ref { /* a big sorry to ICab, Amaya (and old Konquerors?) */
752    width: auto; /* other browsers are fine ;-) */
753}
754
755/* sidebar position: right */
756div#quickview {
757    position: absolute;
758    top: 5.5em;
759    right: 1em;
760    margin-left: 0;
761    margin-top: 40px;
762    padding: 4px;
763    width: 13.5em;
764    background-color: #f0f0f0;
765    color: inherit;
766}
767
768/* -> move content left */
769div#page-content {
770    padding-top: 0;
771    margin-right: 13em;
772    padding-right: 30px;
773}
774
775/* unsqueeze on some pages... */
776body.no-sidebar div#page-content,
777body#index-page div#page-content {
778    margin-right: 0;
779    padding-right: 0;
780}
781
782body#index-page div#page-content {
783    margin-left: 30px;
784    padding-bottom: 1em;
785}
786
787/* in general */
788p {
789    line-height: 1.3em;
790}
791
792/* translations           */
793/* ====================== */
794.toplang {
795    padding: 0;
796    margin: 0.2em 0.2em 1em 0;
797}
798
799.bottomlang {
800    padding: 0;
801    margin: 0 0.2em 0.2em 0;
802}
803
804.toplang p,
805.bottomlang p {
806    font-size: 13px;
807    text-align: right;
808    background-color: inherit;
809    color: #ccc;
810    margin: 0;
811    padding: 0;
812}
813
814.toplang p span,
815.bottomlang p span {
816    background-color: inherit;
817    color: #036;
818}
819
820.toplang p a:link,
821.toplang p a:visited,
822.bottomlang p a:link,
823.bottomlang p a:visited {
824    text-decoration: none;
825    font-weight: bold;
826}
827
828.toplang p a:hover,
829.toplang p a:active,
830.bottomlang p a:hover,
831.bottomlang p a:active {
832    font-weight: bold;
833}
834
835/* page footer            */
836/* ====================== */
837div#footer {
838    margin-left: 30px;
839    font-size: 13px;
840    border-top: 1px solid #405871;
841    padding-top: 0.2em;
842}
843
844div#footer p.apache {
845    float: left;
846    text-align: left;
847    padding: 0 0 1em 0;
848    margin-top: 0;
849}
850
851div#footer p.menu {
852    float: right;
853    text-align: right;
854    margin-top: 0;
855    padding: 0 0 1em 0;
856}
857
858/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
859 * subsections (examples, notes, warnings)
860 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
861
862/* examples               */
863/* ====================== */
864div.example {
865    background-color: #e5ecf3;
866    color: #000;
867    padding: 0.5em;
868    margin: 1em 2em 1em 1em;
869}
870
871/* example inside a note:
872 * blue in gray doesn't look good
873 * so simply draw a border around
874 * and keep it gray
875 */
876div.note div.example,
877div.warning div.example {
878    border: 1px solid #aaa;
879    background-color: transparent;
880    color: inherit;
881    margin-right: 1em;
882}
883
884/* example inside table */
885table div.example {
886    margin-right: 1em;
887}
888
889/* the following [block] elements
890 * may appear inside example...
891 */
892div.example p,
893div.example pre,
894div.example table {
895    padding: 0;
896    margin: 0;
897}
898
899div.example p {
900    line-height: 1em;
901}
902
903div.example pre,
904div.example p > code {
905    font-size: 13px;
906}
907
908/* notes & warnings       */
909/* ====================== */
910div.note,
911div.warning {
912    background-color: #eee;
913    color: #036;
914    padding: 0.5em;
915    margin: 1em 2em 1em 1em;
916}
917
918div.warning {
919    border: 1px solid #f00;
920}
921
922div.note p,
923div.warning p {
924    margin: 0.5em 0 0 0;
925    padding: 0;
926}
927
928div.note pre,
929div.warning pre {
930    font-size: 13px;
931}
932
933/* inside table */
934table div.note,
935table div.warning {
936    margin-right: 1em;
937}
938
939div.outofdate,
940div.retired{
941    background-color: #ffffc0;
942    color: #036;
943    padding: 0.5em;
944    margin: 1em 2em 1em 1em;
945}
946div.retired{
947    border: solid 1px #ff0000;
948    margin-left: 3em;
949}
950
951/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
952 * quotations, indented paragraphs, forms and figures
953 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
954p.letters {
955    margin: 1em 0 0 0;
956}
957
958p.centered {
959    text-align: center;
960}
961
962.letters {
963    text-align: center;
964    background-color: inherit;
965    color: #ccc;
966}
967
968.letters a:link,
969.letters a:visited {
970    text-decoration: none;
971    font-weight: bold;
972}
973
974.letters a:hover,
975.letters a:active {
976    font-weight: bold;
977}
978
979blockquote p {
980    font-style: italic;
981    margin: 0;
982}
983
984blockquote p.cite {
985    font-style: normal;
986    margin-top: 0;
987    margin-left: 2em;
988}
989
990blockquote p.cite cite {
991    font-style: normal;
992}
993
994p.indent {
995    margin-left: 2em;
996    margin-top: 1em;
997}
998
999span.indent {
1000    padding-left: 1.5em;
1001    display: block;
1002}
1003
1004#index-page form {
1005    text-align: center;
1006}
1007
1008#index-page form p {
1009    line-height: 1.1em;
1010}
1011
1012#index-page form input {
1013    font-size: 1em;
1014}
1015
1016p.figure {
1017    margin-left: 2em;
1018    font-style: italic;
1019}
1020
1021p.figure img {
1022    border: 1px solid #aaa;
1023}
1024
1025p.figure dfn {
1026    font-weight: bold;
1027}
1028
1029/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1030 * -> The End <-
1031 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
1032