1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
|
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY kappname "&ksysguard;">
<!ENTITY package "tdebase">
<!ENTITY % addindex "IGNORE">
<!ENTITY % Polish "INCLUDE"
> <!-- change language only here -->
]>
<book lang="&language;">
<bookinfo>
<title
>Podręcznik &ksysguard-dopelniacz;</title>
<authorgroup>
<author
>&Chris.Schlaeger;&Chris.Schlaeger.mail; </author>
<othercredit role="developer"
>&Chris.Schlaeger;&Chris.Schlaeger.mail; </othercredit>
<othercredit role="developer"
>&Tobias.Koenig;&Tobias.Koenig.mail; </othercredit>
<othercredit role="translator"
><firstname
>Marcin</firstname
><surname
>Kocur</surname
><affiliation
><address
><email
>marcinkocur@op.pl</email
></address
></affiliation
><contrib
>Polskie tłumaczenie</contrib
></othercredit
>
</authorgroup>
<copyright>
<year
>2000</year>
<holder
>&Chris.Schlaeger;</holder>
</copyright>
<legalnotice
>&FDLNotice;</legalnotice>
<date
>2000-12-14</date>
<releaseinfo
>1.00.00</releaseinfo>
<abstract
><para
>&ksysguard-mianownik; zarządza procesami i monitoruje system, także zdalny. Posiada dodatkowo funkcjonalność programu <application
>top</application
>.</para
></abstract
>
<keywordset>
<keyword
>KDE</keyword>
<keyword
>KSysGuard</keyword>
<keyword
>monitor procesów</keyword>
<keyword
>top</keyword>
<keyword
>ps</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title
>Wprowadzenie</title>
<para
>&ksysguard-mianownik; jest menedżerem procesów i monitorem wydajności systemu dla &kde;. Potrafi monitorować zarówno lokalny jak i zdalne komputery. &ksysguard-mianownik; otrzymuje informacje z tak zwanych czujników. Czujnik może zwrócić proste wyniki lub bardziej kompleksowe, jak na przykład tabele. Dla każdego typu wyników przygotowany został jeden lub więcej typów prezentacji danych. Typy prezentacji danych są umieszczane w tak zwanych widokach, które mogą być zapisane i załadowane niezależnie od siebie. Tak więc &ksysguard-mianownik; jest nie tylko prostym menedżerem zadań, ale także potężnym narzędziem do kontroli wielkich serwerowni.</para>
</chapter>
<chapter id="usingtheksysguard">
<title
>Obsługa &ksysguard-dopelniacz;</title>
<sect1 id="getting-started">
<title
>Rozpoczęcie pracy z programem</title>
<para
>&ksysguard-mianownik; może zostać uruchomiony z &kmenu;, przy użyciu pozycji <guimenuitem
>KDE Strażnik Systemu</guimenuitem
>, znajdującej się w podmenu <guimenu
>System</guimenu
>. &ksysguard-dopelniacz; można także włączyć przy użyciu polecenia <command
>ksysguard</command
> w terminalu.</para>
<para
>Na główne okno &ksysguard-dopelniacz; składają się pasek menu, opcjonalny pasek narzędzi, pasek stanu, przeglądarka czujników i obszar roboczy. Przy pierwszym starcie programu, Twój komputer zostanie oznaczony jako <guilabel
>localhost</guilabel
> i wyświetlony w przeglądarce czujników, a także w dwóch widokach na obszarze roboczym. To jest domyślne ustawienie.</para>
<para
>Domyślne ustawienia są wystarczające dla niedoświadczonego użytkownika, który chce na szybko wykonać jakieś zadania, związane z zarządzaniem systemem. Użytkownik zaawansowany, czy nawet administrator dużej ilości serwerów mogą mieć zupełnie odmienne potrzeby. &ksysguard-mianownik; stara się być użyteczny dla szerokiej grupy użytkowników, dzięki dużej elastyczności.</para>
</sect1>
<sect1 id="the-sensor-browser">
<title
>Przeglądarka czujników</title>
<para
>Przeglądarka czujników pokazuje zarejestrowane komputery wraz z ich czujnikami w widoku drzewa. Kliknięcie na plusie lub minusie powoduje odpowiednio otwarcie lub zamknięcie gałęzi. Każdy czujnik monitoruje odpowiedni, ustalony parametr pracy systemu.</para>
<sect2 id="connectingtootherhosts">
<title
>Łączenie z innymi komputerami</title>
<para
>Aby połączyć się z innym komputerem, użyj pozycji <guimenuitem
>Połącz z komputerem...</guimenuitem
>, znajdującej się w menu <guimenu
>Plik</guimenu
>. Wyświetlone zostanie okno dialogowe, pozwalające na wpisanie nazwy komputera, z którym chcesz się połączyć. Poniżej możesz wybrać rodzaj połączenia. Domyślnie jest to bezpieczna powłoka <application
>ssh</application
>. Alternatywnie możesz użyć zdalnej powłoki <application
>rsh</application
> lub trybu usługi. W celu ustanowienia połączenia, kliknij <guibutton
>OK</guibutton
>. Wkrótce potem zdalny komputer pojawi się w przeglądarce czujników.</para>
<para
>Aby uzyskać połączenie, program <application
>ksysguardd</application
> musi być zainstalowany na zdalnym komputerze. Może on działać w dwóch trybach:</para>
<variablelist>
<varlistentry>
<term
>tryb usługi</term>
<listitem>
<para
>Możesz uruchomić program <application
>ksysguardd</application
> podczas uruchamiania systemu w trybie <guilabel
>usługi</guilabel
>, dodając <parameter
>-d</parameter
> jako parametr. Przy takim rozwiązaniu, musisz zaznaczyć tryb demona w oknie łączenia z innym komputerem. Wadą tego rozwiązania jest fakt, że nie będzie możliwości zabijania lub zmiany priorytetu procesu przy użyciu <guilabel
>Tablicy procesów</guilabel
>, a wymiana danych przez sieć nie będzie szyfrowana.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>tryb powłoki</term>
<listitem>
<para
>W tym trybie <application
>ksysguardd</application
> zostaje uruchomiony przy łączeniu się <application
>ksysguarda</application
>. Aby było to możliwe, jego lokalizacja musi się znajdować w zmiennej <envar
>PATH</envar
>. Niestety, ssh nie odczytuje Twojego pliku <filename
>.profile</filename
>, więc Twoje normalne ustawienia zmiennej <envar
>PATH</envar
> będą niedostępne. Zamiast nich, ssh używa domyślnej zmiennej <envar
>PATH</envar
> np. <parameter
>/bin:/usr/bin</parameter
>. Ponieważ jest bardzo prawdopodobne, że &kde; nie jest zainstalowane w tych katalogach, powinieneś utworzyć lub uaktualnić pewien plik w katalogu domowym. Ten plik zwie się <filename
>environment</filename
> i znajduje się w ukrytym katalogu o nazwie <filename
>.ssh</filename
>. Zobacz stronę manuala dla <application
>ssh</application
>, jeśli chcesz poznać szczegóły. Wspomniany plik powinien zawierać linię podobną do tej:</para>
<screen
><userinput
>PATH=/bin:/usr/bin:/opt/kde/bin</userinput
>
</screen>
<para
>a więc program <application
>ksysguardd</application
> może znajdować się tu: <filename
>/opt/kde/bin/ksysguardd</filename
>.</para>
<tip
><para
>Gdy używasz <application
>ssh</application
>, upewnij się, że Twój plik <filename
>identity.pub</filename
> znajduje się na zdalnym komputerze, a klucztego komputera jest zarejestrowany w Twoim systemie. Najłatwiej sprawdzić to przez wpisanie polecenia <command
>ssh <option
>zdalny_komputer ksysguardd</option
></command
> w powłoce. Jeśli zobaczysz komunikat powitalny <application
>ksysguardda</application
>, wszystko jest w porządku. Możesz wpisać <userinput
>quit</userinput
>.</para
></tip>
</listitem>
</varlistentry>
</variablelist>
<note
><para
>Dla ekspertów: <application
>ksysguardd</application
> to bardzo mały program, który jest zlinkowany tylko z libc. Może więc być używany na komputerach, które nie posiadają pełnej instalacji &kde; (np. serwery). Jeśli wybierzesz opcję "Polecenie użytkownika" w oknie łączenia z komputerem, musisz wpisać pełne polecenie, które jest niezbędne do uruchomienia <application
>ksysguardda</application
>.</para
></note>
</sect2>
<sect2 id="disconnecting-hosts">
<title
>Odłączanie się od zdalnych komputerów</title>
<para
>W celu odłączenia się od zdalnego komputera, wybierz go w przeglądarce czujników i wybierz z menu <guimenu
>Plik</guimenu
> polecenie <guimenuitem
>Odłącz od komputera</guimenuitem
>. Jeśli ciągle masz jakieś czujniki w użyciu, obszary widoku staną się szare, a wyświetlane informacje przestaną być aktualizowane.</para>
</sect2>
</sect1>
<sect1 id="the-workspace">
<title
>Obszar roboczy</title>
<para
>Obszar roboczy jest zorganizowany w widoki. Wybierz <guimenuitem
>Nowy widok</guimenuitem
> z menu <guimenu
>Plik</guimenu
>, aby utworzyć nowy widok. Otworzy się okienko, gdzie możesz ustawić nazwę, wielkość i odstęp pomiędzy odświeżaniem widoku. Aby usunąć widok, wybierz <guimenuitem
>Usuń widok</guimenuitem
> z menu <guimenu
>Plik</guimenu
>. Wszystkie modyfikacje zostaną zapisane do pliku. Jeśli widok nie był nigdy zapisany, zostaniesz zapytany o nazwę pliku. Widoki składają się z komórek poukładanych w kratkę.</para>
<para
>Każda komórka może być zapełniona widokiem jednego lub większej ilości czujników. Zapełnienie polega na przeciągnięciu czujnika z przeglądarki czujników i upuszczenie go w obszarze komórki. Jeżeli dla wybranego czujnika dostępnych jest więcej typów prezentacji danych, istnieje możliwość wyboru żądanego sposobu z menu, które się pojawi. Widoki zwykle mogą wyświetlać więcej, niż jeden czujnik. Możesz dodać kolejne czujniki przez przeciągnięcie czujnika z przeglądarki czujników i upuszczenie go w obszarze już zapełnionego widoku.</para>
<para
>Widoki mogą być konfigurowane przez kliknięcie na polecenie <guimenuitem
>Właściwości widoku</guimenuitem
>, znajdujące się w menu <guimenu
>Edycja</guimenu
>. W oknie, które się pojawi, możesz ustawić pojemność widoku i odstęp pomiędzy odświeżaniem. Odstęp pomiędzy odświeżaniem stosowany jest dla wszystkich wskaźników widoku, które mają w konfiguracji <guilabel
>odstępu między odświeżaniem</guilabel
> zaznaczone <guilabel
>Użyj odstępu między odświeżaniem widoku</guilabel
>.</para>
<para
>Wpis <guimenuitem
>Konfiguracja stylu...</guimenuitem
>, znajdujący się w menu <guimenu
>Ustawienia</guimenu
>, pozwala na globalne ustawienie stylu i zastosowanie go do aktywnego widoku.</para>
<para
>Wykresy mogą być konfigurowane przez kliknięcie na nie prawym przyciskiem myszy. Pojawi się wtedy menu, z którego możesz wybrać zmianę właściwości wykresu, usunąć wykres z widoku, zmienić jego szybkość odświeżania, a także wstrzymać odświeżanie i je wznowić.</para>
<sect2 id="signal-plotter">
<title
>Ploter</title>
<para
>Ploter wyświetla wyniki pomiarów jednego lub większej ilości czujników. W przypadku większej ilości czujników, wartości są układane w różnych kolorach. Jeżeli wykres jest dostatecznie duży, zostanie wyświetlony zakres w postaci siatki. Domyślnie zakres jest ustalany automatycznie, jednak nic nie stoi na przeszkodzie ustalenia maksymalnej i minimalnej wartości. Możesz to zrobić w oknie właściwości.</para>
</sect2>
<sect2 id="multimeter">
<title
>Miernik</title>
<para
>Miernik wyświetla wartości podawane przez czujniki w stylu cyfrowego zegara. We właściwościach możesz ustawić górną i dolną wartość. Jeżeli wartości zostaną przekroczone, miernik będzie wyświetlany w kolorach alarmowych.</para>
</sect2>
<sect2 id="process-controller">
<title
>Tablica procesów</title>
<para
>Tablica procesów pokazuje procesy działające na Twoim komputerze. Lista może być posortowana według wybranej kolumny, wystarczy kliknąć jej tytuł lewym przyciskiem myszy. </para>
<para
>Lista wyświetla następujące informacje o każdym procesie (nie wszystkie informacje są widoczne pod każdym systemem operacyjnym):</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Nazwę</guilabel
></term>
<listitem
><para
>Nazwę pliku wykonywalnego, który zainicjował proces.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>PID</guilabel
></term>
<listitem
><para
>Niepowtarzalny numer (identyfikator) procesu.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>PPID</guilabel
></term>
<listitem
><para
>Identyfikator procesu rodzica.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>UID</guilabel
></term>
<listitem
><para
>Identyfikator użytkownika, który uruchomił proces.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>GID</guilabel
></term>
<listitem
><para
>Identyfikator grupy, do której należy proces.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Stan</guilabel
></term>
<listitem
><para
>Stan procesu.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Użytkownik%</guilabel
></term>
<listitem>
<para
>Użycie procesora w przestrzeni użytkownika (w procentach).</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>System%</guilabel
></term>
<listitem>
<para
>Użycie procesora w przestrzeni systemu (w procentach).</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Priorytet</guilabel
></term>
<listitem
><para
>Priorytet użycia procesora dla procesu.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>WielkośćPW</guilabel
></term>
<listitem
><para
>Całkowita wielkość pamięci wirtualnej używanej przez proces (w kilobajtach).</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>VmRss</guilabel
></term>
<listitem
><para
>Całkowita wielkość pamięci fizycznej, używanej przez proces (w kilobajtach).</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Identyfikator</guilabel
></term>
<listitem
><para
>Login użytkownika, który uruchomił proces.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Polecenie</guilabel
></term>
<listitem
><para
>Kompletne polecenie, które uruchomiło proces.</para
></listitem>
</varlistentry>
</variablelist>
<para
>Dokoła tablicy znajdziesz kilka dodatkowych obiektów:</para>
<sect3 id="the-tree-view">
<title
><guibutton
>Drzewo</guibutton
></title>
<para
>Widok drzewa został zaprojektowany, aby pokazać zależności między działającymi procesami. Proces, który został uruchomiony przez inny proces, jest nazywany dzieckiem tego procesu. Proces <emphasis
>init</emphasis
> jest protoplastą wszystkich innych procesów.</para>
<para
>Jeśli nie jesteś zainteresowany dziećmi któregoś z procesów, możesz kliknąć na minusie, który znajduje się po lewej stronie rodzica. Spowoduje to zamknięcie poddrzewa z dziećmi. Kliknięcie na plusie spowoduje ponowne rozwinięcie poddrzewa.</para>
</sect3>
<sect3 id="the-process-filter">
<title
>Filtr procesów </title>
<para
>Filtr procesów może zostać użyty do zmniejszenia liczby wyświetlanych procesów. Możesz wyfiltrować procesy, które Cię nie interesują. Na dzień dzisiejszy możliwe jest wyświetlenie wszystkich procesów, tylko procesów systemowych, tylko procesów użytkownika lub tylko Twoich procesów.</para>
</sect3>
<sect3 id="therefreshbutton">
<title
>Przycisk <guibutton
>Odśwież</guibutton
> </title>
<para
>Ten przycisk może być użyty do natychmiastowego odświeżenia listy procesów.</para>
</sect3>
<sect3 id="thekillbutton">
<title
>Przycisk <guibutton
>Zabij</guibutton
> </title>
<para
>Jeśli zaznaczony został jeden lub więcej procesów, możesz kliknąć na przycisk <guibutton
>Zabij</guibutton
>, aby je zabić. Wysłany zostanie sygnał <errorcode
>SIGKIL</errorcode
>, który powoduje ich natychmiastowe zakończenie. Jeśli programy mają niezapisane dane, wszystkie zostaną utracone, więc używaj tego przycisku z rozmysłem.</para>
</sect3>
</sect2>
<sect2 id="bargraph">
<title
>Słupek</title>
<para
>Słupek wyświetla wskazania czujników jako poziomo ułożone belki. We właściwościach możesz ustawić górną i dolną wartość zakresu wyświetlania. Można także ustawić górną i dolną wartość, po przekroczeniu których, słupek zmieni kolory na alarmowe.</para>
</sect2>
<sect2 id="sensorlogger">
<title
>Rejestrator czujnika</title>
<para
>Rejestrator czujnika nie wyświetla żadnych wartości, ale zapisuje je do pliku, razem z datą wpisu. Dla każdego czujnika można ustalić górną i dolną wartość alarmu w oknie preferencji. Jeśli wartości zostaną przekroczone, wpis na tablicy czujników przybierze kolor alarmowy i wysłanie zostanie zdarzenie dla <application
>knotify</application
>.</para>
</sect2>
<sect2 id="logfile">
<title
>Plik rejestracji</title>
<para
>Monitor pliku rejestracji wyświetla zawartość jakiegoś pliku, np. <filename
>/var/log/messages</filename
>. W oknie właściwości możesz utworzyć listę wyrażeń regularnych, które będą porównywane z zawartością pliku. Jeżeli któreś z wyrażeń będzie spełnione, wysłanie zostanie zdarzenie dla <application
>knotify</application
>. </para>
</sect2>
<sect2 id="listview">
<title
>Widok listy</title>
<para
>Widok listy wyświetla wskazania niektórych czujników w formie tabelki.</para>
</sect2>
</sect1>
</chapter>
<chapter id="multiple-platforms">
<title
>Konfigurowanie <application
>ksysguardda</application
></title>
<para
>Graficzna nakładka jest dostępna na każdą platformę, pod którą działa &kde;. Nakładka jest dostępna w tej chwili na następujące odmiany &UNIX-dopelniacz;:</para>
<variablelist>
<varlistentry>
<term
>&Linux-dopelniacz; w wersji 2.x</term>
<listitem
><para
>Aby <application
>ksysguardd</application
> mógł działać, niezbędna jest kompilacja jądra &Linux-dopelniacz; z włączoną opcją systemu plików <filename
>/proc</filename
>. To jest domyślne ustawienie, większość dystrybucji &Linux-dopelniacz; go używa.</para
> </listitem>
</varlistentry>
<varlistentry>
<term
>FreeBSD</term>
<listitem
><para
>Program <application
>ksysguardd</application
> musi być w posiadaniu grupy <systemitem class="groupname"
>kmem</systemitem
> i mieć ustawiony bit setgid.</para
></listitem
>
</varlistentry>
<varlistentry>
<term
>&Solaris;</term>
<listitem
><para
>Do napisania</para
></listitem>
</varlistentry>
</variablelist>
<para
>Wsparcie dla innych platform w toku. Twoja pomoc mile widziana.</para>
</chapter>
<chapter id="credits-and-licenses">
<title
>Autorzy i licencja</title>
<para
>&ksysguard; jest aktualnie rozwijany przez Chrisa Schlägera <email
>cs@kde.org</email
>. &ksysguard; został napisany na bazie <application
>KTop</application
>, menedżera zadań dla KDE 1.x. Wielu innych ludzi pracowało nad <application
>KTop</application
>:</para>
<itemizedlist>
<listitem
><para
>A. Sanda <email
>alex@darkstar.ping.at</email
></para
></listitem>
<listitem
><para
>Ralf Mueller <email
>ralf@bj-ig.de</email
></para
></listitem>
<listitem
><para
>Bernd Johannes Wuebben <email
>wuebben@math.cornell.edu</email
></para
></listitem>
<listitem
><para
>Nicolas Leclercq <email
>nicknet@planete.net</email
></para
></listitem>
</itemizedlist>
<para
>Portowanie z &Linux-dopelniacz; na inne platformy:</para>
<itemizedlist>
<listitem
><para
>FreeBSD: Hans Petter Bieker <email
>zerium@traad.lavvu.no</email
></para
></listitem
> </itemizedlist
> &underFDL; &underGPL; </chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
|