Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ 1e6eec8b

History | View | Annotate | Download (19.2 kB)

1
HXCOMM Use DEFHEADING() to define headings in both help text and texi
2
HXCOMM Text between STEXI and ETEXI are copied to texi version and
3
HXCOMM discarded from C version
4
HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5
HXCOMM monitor commands
6
HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7

    
8
STEXI
9
@table @option
10
ETEXI
11

    
12
    { "help|?", "name:s?", do_help_cmd, "[cmd]", "show the help" },
13
STEXI
14
@item help or ? [@var{cmd}]
15
Show the help for all commands or just for command @var{cmd}.
16
ETEXI
17

    
18
    { "commit", "device:s", do_commit,
19
      "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
20
STEXI
21
@item commit
22
Commit changes to the disk images (if -snapshot is used) or backing files.
23
ETEXI
24

    
25
    { "info", "item:s?", do_info,
26
      "[subcommand]", "show various information about the system state" },
27
STEXI
28
@item info @var{subcommand}
29
Show various information about the system state.
30

    
31
@table @option
32
@item info version
33
show the version of QEMU
34
@item info network
35
show the various VLANs and the associated devices
36
@item info chardev
37
show the character devices
38
@item info block
39
show the block devices
40
@item info block
41
show block device statistics
42
@item info registers
43
show the cpu registers
44
@item info cpus
45
show infos for each CPU
46
@item info history
47
show the command line history
48
@item info irq
49
show the interrupts statistics (if available)
50
@item info pic
51
show i8259 (PIC) state
52
@item info pci
53
show emulated PCI device info
54
@item info tlb
55
show virtual to physical memory mappings (i386 only)
56
@item info mem
57
show the active virtual memory mappings (i386 only)
58
@item info hpet
59
show state of HPET (i386 only)
60
@item info kvm
61
show KVM information
62
@item info usb
63
show USB devices plugged on the virtual USB hub
64
@item info usbhost
65
show all USB host devices
66
@item info profile
67
show profiling information
68
@item info capture
69
show information about active capturing
70
@item info snapshots
71
show list of VM snapshots
72
@item info status
73
show the current VM status (running|paused)
74
@item info pcmcia
75
show guest PCMCIA status
76
@item info mice
77
show which guest mouse is receiving events
78
@item info vnc
79
show the vnc server status
80
@item info name
81
show the current VM name
82
@item info uuid
83
show the current VM UUID
84
@item info cpustats
85
show CPU statistics
86
@item info usernet
87
show user network stack connection states
88
@item info migrate
89
show migration status
90
@item info balloon
91
show balloon information
92
@item info qtree
93
show device tree
94
@end table
95
ETEXI
96

    
97
    { "q|quit", "", do_quit,
98
      "", "quit the emulator" },
99
STEXI
100
@item q or quit
101
Quit the emulator.
102
ETEXI
103

    
104
    { "eject", "force:-f,filename:B", do_eject,
105
      "[-f] device", "eject a removable medium (use -f to force it)" },
106
STEXI
107
@item eject [-f] @var{device}
108
Eject a removable medium (use -f to force it).
109
ETEXI
110

    
111
    { "change", "device:B,target:F,arg:s?", do_change,
112
      "device filename [format]", "change a removable medium, optional format" },
113
STEXI
114
@item change @var{device} @var{setting}
115

    
116
Change the configuration of a device.
117

    
118
@table @option
119
@item change @var{diskdevice} @var{filename} [@var{format}]
120
Change the medium for a removable disk device to point to @var{filename}. eg
121

    
122
@example
123
(qemu) change ide1-cd0 /path/to/some.iso
124
@end example
125

    
126
@var{format} is optional.
127

    
128
@item change vnc @var{display},@var{options}
129
Change the configuration of the VNC server. The valid syntax for @var{display}
130
and @var{options} are described at @ref{sec_invocation}. eg
131

    
132
@example
133
(qemu) change vnc localhost:1
134
@end example
135

    
136
@item change vnc password [@var{password}]
137

    
138
Change the password associated with the VNC server. If the new password is not
139
supplied, the monitor will prompt for it to be entered. VNC passwords are only
140
significant up to 8 letters. eg
141

    
142
@example
143
(qemu) change vnc password
144
Password: ********
145
@end example
146

    
147
@end table
148
ETEXI
149

    
150
    { "screendump", "filename:F", do_screen_dump,
151
      "filename", "save screen into PPM image 'filename'" },
152
STEXI
153
@item screendump @var{filename}
154
Save screen into PPM image @var{filename}.
155
ETEXI
156

    
157
    { "logfile", "filename:F", do_logfile,
158
      "filename", "output logs to 'filename'" },
159
STEXI
160
@item logfile @var{filename}
161
Output logs to @var{filename}.
162
ETEXI
163

    
164
    { "log", "items:s", do_log,
165
      "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" },
166
STEXI
167
@item log @var{item1}[,...]
168
Activate logging of the specified items to @file{/tmp/qemu.log}.
169
ETEXI
170

    
171
    { "savevm", "name:s?", do_savevm,
172
      "[tag|id]", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" },
173
STEXI
174
@item savevm [@var{tag}|@var{id}]
175
Create a snapshot of the whole virtual machine. If @var{tag} is
176
provided, it is used as human readable identifier. If there is already
177
a snapshot with the same tag or ID, it is replaced. More info at
178
@ref{vm_snapshots}.
179
ETEXI
180

    
181
    { "loadvm", "name:s", do_loadvm,
182
      "tag|id", "restore a VM snapshot from its tag or id" },
183
STEXI
184
@item loadvm @var{tag}|@var{id}
185
Set the whole virtual machine to the snapshot identified by the tag
186
@var{tag} or the unique snapshot ID @var{id}.
187
ETEXI
188

    
189
    { "delvm", "name:s", do_delvm,
190
      "tag|id", "delete a VM snapshot from its tag or id" },
191
STEXI
192
@item delvm @var{tag}|@var{id}
193
Delete the snapshot identified by @var{tag} or @var{id}.
194
ETEXI
195

    
196
    { "singlestep", "option:s?", do_singlestep,
197
      "[on|off]", "run emulation in singlestep mode or switch to normal mode", },
198
STEXI
199
@item singlestep [off]
200
Run the emulation in single step mode.
201
If called with option off, the emulation returns to normal mode.
202
ETEXI
203

    
204
    { "stop", "", do_stop,
205
      "", "stop emulation", },
206
STEXI
207
@item stop
208
Stop emulation.
209
ETEXI
210

    
211
    { "c|cont", "", do_cont,
212
      "", "resume emulation", },
213
STEXI
214
@item c or cont
215
Resume emulation.
216
ETEXI
217

    
218
    { "gdbserver", "device:s?", do_gdbserver,
219
      "[device]", "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", },
220
STEXI
221
@item gdbserver [@var{port}]
222
Start gdbserver session (default @var{port}=1234)
223
ETEXI
224

    
225
    { "x", "fmt:/,addr:l", do_memory_dump,
226
      "/fmt addr", "virtual memory dump starting at 'addr'", },
227
STEXI
228
@item x/fmt @var{addr}
229
Virtual memory dump starting at @var{addr}.
230
ETEXI
231

    
232
    { "xp", "fmt:/,addr:l", do_physical_memory_dump,
233
      "/fmt addr", "physical memory dump starting at 'addr'", },
234
STEXI
235
@item xp /@var{fmt} @var{addr}
236
Physical memory dump starting at @var{addr}.
237

    
238
@var{fmt} is a format which tells the command how to format the
239
data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
240

    
241
@table @var
242
@item count
243
is the number of items to be dumped.
244

    
245
@item format
246
can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
247
c (char) or i (asm instruction).
248

    
249
@item size
250
can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
251
@code{h} or @code{w} can be specified with the @code{i} format to
252
respectively select 16 or 32 bit code instruction size.
253

    
254
@end table
255

    
256
Examples:
257
@itemize
258
@item
259
Dump 10 instructions at the current instruction pointer:
260
@example
261
(qemu) x/10i $eip
262
0x90107063:  ret
263
0x90107064:  sti
264
0x90107065:  lea    0x0(%esi,1),%esi
265
0x90107069:  lea    0x0(%edi,1),%edi
266
0x90107070:  ret
267
0x90107071:  jmp    0x90107080
268
0x90107073:  nop
269
0x90107074:  nop
270
0x90107075:  nop
271
0x90107076:  nop
272
@end example
273

    
274
@item
275
Dump 80 16 bit values at the start of the video memory.
276
@smallexample
277
(qemu) xp/80hx 0xb8000
278
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
279
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
280
0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
281
0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
282
0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
283
0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
284
0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
285
0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
286
0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
287
0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
288
@end smallexample
289
@end itemize
290
ETEXI
291

    
292
    { "p|print", "fmt:/,val:l", do_print,
293
      "/fmt expr", "print expression value (use $reg for CPU register access)", },
294
STEXI
295
@item p or print/@var{fmt} @var{expr}
296

    
297
Print expression value. Only the @var{format} part of @var{fmt} is
298
used.
299
ETEXI
300

    
301
    { "i", "fmt:/,addr:i,index:i.", do_ioport_read,
302
      "/fmt addr", "I/O port read" },
303
STEXI
304
Read I/O port.
305
ETEXI
306

    
307
    { "o", "fmt:/,addr:i,val:i", do_ioport_write,
308
      "/fmt addr value", "I/O port write" },
309
STEXI
310
Write to I/O port.
311
ETEXI
312

    
313
    { "sendkey", "string:s,hold_time:i?", do_sendkey,
314
      "keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" },
315
STEXI
316
@item sendkey @var{keys}
317

    
318
Send @var{keys} to the emulator. @var{keys} could be the name of the
319
key or @code{#} followed by the raw value in either decimal or hexadecimal
320
format. Use @code{-} to press several keys simultaneously. Example:
321
@example
322
sendkey ctrl-alt-f1
323
@end example
324

    
325
This command is useful to send keys that your graphical user interface
326
intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
327
ETEXI
328

    
329
    { "system_reset", "", do_system_reset,
330
      "", "reset the system" },
331
STEXI
332
@item system_reset
333

    
334
Reset the system.
335
ETEXI
336

    
337
    { "system_powerdown", "", do_system_powerdown,
338
      "", "send system power down event" },
339
STEXI
340
@item system_powerdown
341

    
342
Power down the system (if supported).
343
ETEXI
344

    
345
    { "sum", "start:i,size:i", do_sum,
346
      "addr size", "compute the checksum of a memory region" },
347
STEXI
348
@item sum @var{addr} @var{size}
349

    
350
Compute the checksum of a memory region.
351
ETEXI
352

    
353
    { "usb_add", "devname:s", do_usb_add,
354
      "device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" },
355
STEXI
356
@item usb_add @var{devname}
357

    
358
Add the USB device @var{devname}.  For details of available devices see
359
@ref{usb_devices}
360
ETEXI
361

    
362
    { "usb_del", "devname:s", do_usb_del,
363
      "device", "remove USB device 'bus.addr'" },
364
STEXI
365
@item usb_del @var{devname}
366

    
367
Remove the USB device @var{devname} from the QEMU virtual USB
368
hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
369
command @code{info usb} to see the devices you can remove.
370
ETEXI
371

    
372
    { "cpu", "index:i", do_cpu_set,
373
      "index", "set the default CPU" },
374
STEXI
375
Set the default CPU.
376
ETEXI
377

    
378
    { "mouse_move", "dx_str:s,dy_str:s,dz_str:s?", do_mouse_move,
379
      "dx dy [dz]", "send mouse move events" },
380
STEXI
381
@item mouse_move @var{dx} @var{dy} [@var{dz}]
382
Move the active mouse to the specified coordinates @var{dx} @var{dy}
383
with optional scroll axis @var{dz}.
384
ETEXI
385

    
386
    { "mouse_button", "button_state:i", do_mouse_button,
387
      "state", "change mouse button state (1=L, 2=M, 4=R)" },
388
STEXI
389
@item mouse_button @var{val}
390
Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
391
ETEXI
392

    
393
    { "mouse_set", "index:i", do_mouse_set,
394
      "index", "set which mouse device receives events" },
395
STEXI
396
@item mouse_set @var{index}
397
Set which mouse device receives events at given @var{index}, index
398
can be obtained with
399
@example
400
info mice
401
@end example
402
ETEXI
403

    
404
#ifdef HAS_AUDIO
405
    { "wavcapture", "path:s,freq:i?,bits:i?,nchannels:i?", do_wav_capture,
406
      "path [frequency [bits [channels]]]",
407
      "capture audio to a wave file (default frequency=44100 bits=16 channels=2)" },
408
#endif
409
STEXI
410
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
411
Capture audio into @var{filename}. Using sample rate @var{frequency}
412
bits per sample @var{bits} and number of channels @var{channels}.
413

    
414
Defaults:
415
@itemize @minus
416
@item Sample rate = 44100 Hz - CD quality
417
@item Bits = 16
418
@item Number of channels = 2 - Stereo
419
@end itemize
420
ETEXI
421

    
422
#ifdef HAS_AUDIO
423
    { "stopcapture", "n:i", do_stop_capture,
424
      "capture index", "stop capture" },
425
#endif
426
STEXI
427
@item stopcapture @var{index}
428
Stop capture with a given @var{index}, index can be obtained with
429
@example
430
info capture
431
@end example
432
ETEXI
433

    
434
    { "memsave", "val:l,size:i,filename:s", do_memory_save,
435
      "addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", },
436
STEXI
437
@item memsave @var{addr} @var{size} @var{file}
438
save to disk virtual memory dump starting at @var{addr} of size @var{size}.
439
ETEXI
440

    
441
    { "pmemsave", "val:l,size:i,filename:s", do_physical_memory_save,
442
      "addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", },
443
STEXI
444
@item pmemsave @var{addr} @var{size} @var{file}
445
save to disk physical memory dump starting at @var{addr} of size @var{size}.
446
ETEXI
447

    
448
    { "boot_set", "bootdevice:s", do_boot_set,
449
      "bootdevice", "define new values for the boot device list" },
450
STEXI
451
@item boot_set @var{bootdevicelist}
452

    
453
Define new values for the boot device list. Those values will override
454
the values specified on the command line through the @code{-boot} option.
455

    
456
The values that can be specified here depend on the machine type, but are
457
the same that can be specified in the @code{-boot} command line option.
458
ETEXI
459

    
460
#if defined(TARGET_I386)
461
    { "nmi", "cpu_index:i", do_inject_nmi,
462
      "cpu", "inject an NMI on the given CPU", },
463
#endif
464
STEXI
465
@item nmi @var{cpu}
466
Inject an NMI on the given CPU (x86 only).
467
ETEXI
468

    
469
    { "migrate", "detach:-d,uri:s", do_migrate,
470
      "[-d] uri", "migrate to URI (using -d to not wait for completion)" },
471
STEXI
472
@item migrate [-d] @var{uri}
473
Migrate to @var{uri} (using -d to not wait for completion).
474
ETEXI
475

    
476
    { "migrate_cancel", "", do_migrate_cancel,
477
      "", "cancel the current VM migration" },
478
STEXI
479
@item migrate_cancel
480
Cancel the current VM migration.
481
ETEXI
482

    
483
    { "migrate_set_speed", "value:s", do_migrate_set_speed,
484
      "value", "set maximum speed (in bytes) for migrations" },
485
STEXI
486
@item migrate_set_speed @var{value}
487
Set maximum speed to @var{value} (in bytes) for migrations.
488
ETEXI
489

    
490
    { "migrate_set_downtime", "value:s", do_migrate_set_downtime,
491
      "value", "set maximum tolerated downtime (in seconds) for migrations" },
492

    
493
STEXI
494
@item migrate_set_downtime @var{second}
495
Set maximum tolerated downtime (in seconds) for migration.
496
ETEXI
497

    
498
#if defined(TARGET_I386)
499
    { "drive_add", "pci_addr:s,opts:s", drive_hot_add,
500
                                        "[[<domain>:]<bus>:]<slot>\n"
501
                                        "[file=file][,if=type][,bus=n]\n"
502
                                        "[,unit=m][,media=d][index=i]\n"
503
                                        "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
504
                                        "[snapshot=on|off][,cache=on|off]",
505
                                        "add drive to PCI storage controller" },
506
#endif
507
STEXI
508
@item drive_add
509
Add drive to PCI storage controller.
510
ETEXI
511

    
512
#if defined(TARGET_I386)
513
    { "pci_add", "pci_addr:s,type:s,opts:s?", pci_device_hot_add, "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", "hot-add PCI device" },
514
#endif
515
STEXI
516
@item pci_add
517
Hot-add PCI device.
518
ETEXI
519

    
520
#if defined(TARGET_I386)
521
    { "pci_del", "pci_addr:s", do_pci_device_hot_remove, "[[<domain>:]<bus>:]<slot>", "hot remove PCI device" },
522
#endif
523
STEXI
524
@item pci_del
525
Hot remove PCI device.
526
ETEXI
527

    
528
    { "host_net_add", "device:s,opts:s?", net_host_device_add,
529
      "tap|user|socket|vde|dump [options]", "add host VLAN client" },
530
STEXI
531
@item host_net_add
532
Add host VLAN client.
533
ETEXI
534

    
535
    { "host_net_remove", "vlan_id:i,device:s", net_host_device_remove,
536
      "vlan_id name", "remove host VLAN client" },
537
STEXI
538
@item host_net_remove
539
Remove host VLAN client.
540
ETEXI
541

    
542
#ifdef CONFIG_SLIRP
543
    { "hostfwd_add", "arg1:s,arg2:s?,arg3:s?", net_slirp_hostfwd_add,
544
      "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
545
      "redirect TCP or UDP connections from host to guest (requires -net user)" },
546
    { "hostfwd_remove", "arg1:s,arg2:s?,arg3:s?", net_slirp_hostfwd_remove,
547
      "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
548
      "remove host-to-guest TCP or UDP redirection" },
549
#endif
550
STEXI
551
@item host_net_redir
552
Redirect TCP or UDP connections from host to guest (requires -net user).
553
ETEXI
554

    
555
    { "balloon", "value:i", do_balloon,
556
      "target", "request VM to change it's memory allocation (in MB)" },
557
STEXI
558
@item balloon @var{value}
559
Request VM to change its memory allocation to @var{value} (in MB).
560
ETEXI
561

    
562
    { "set_link", "name:s,up_or_down:s", do_set_link,
563
      "name up|down", "change the link status of a network adapter" },
564
STEXI
565
@item set_link @var{name} [up|down]
566
Set link @var{name} up or down.
567
ETEXI
568

    
569
    { "watchdog_action", "action:s", do_watchdog_action,
570
      "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" },
571
STEXI
572
@item watchdog_action
573
Change watchdog action.
574
ETEXI
575

    
576
    { "acl_show", "aclname:s", do_acl_show, "aclname",
577
      "list rules in the access control list" },
578
STEXI
579
@item acl_show @var{aclname}
580
List all the matching rules in the access control list, and the default
581
policy. There are currently two named access control lists,
582
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
583
certificate distinguished name, and SASL username respectively.
584
ETEXI
585

    
586
    { "acl_policy", "aclname:s,policy:s", do_acl_policy, "aclname allow|deny",
587
      "set default access control list policy" },
588
STEXI
589
@item acl_policy @var{aclname} @code{allow|deny}
590
Set the default access control list policy, used in the event that
591
none of the explicit rules match. The default policy at startup is
592
always @code{deny}.
593
ETEXI
594

    
595
    { "acl_add", "aclname:s,match:s,policy:s,index:i?", do_acl_add, "aclname match allow|deny [index]",
596
      "add a match rule to the access control list" },
597
STEXI
598
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
599
Add a match rule to the access control list, allowing or denying access.
600
The match will normally be an exact username or x509 distinguished name,
601
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
602
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
603
normally be appended to the end of the ACL, but can be inserted
604
earlier in the list if the optional @var{index} parameter is supplied.
605
ETEXI
606

    
607
    { "acl_remove", "aclname:s,match:s", do_acl_remove, "aclname match",
608
      "remove a match rule from the access control list" },
609
STEXI
610
@item acl_remove @var{aclname} @var{match}
611
Remove the specified match rule from the access control list.
612
ETEXI
613

    
614
    { "acl_reset", "aclname:s", do_acl_reset, "aclname",
615
      "reset the access control list" },
616
STEXI
617
@item acl_remove @var{aclname} @var{match}
618
Remove all matches from the access control list, and set the default
619
policy back to @code{deny}.
620
ETEXI
621

    
622
#if defined(TARGET_I386)
623
    { "mce", "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l", do_inject_mce, "cpu bank status mcgstatus addr misc", "inject a MCE on the given CPU"},
624
#endif
625
STEXI
626
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
627
Inject an MCE on the given CPU (x86 only).
628
ETEXI
629

    
630
    { "getfd", "fdname:s", do_getfd, "getfd name",
631
      "receive a file descriptor via SCM rights and assign it a name" },
632
STEXI
633
@item getfd @var{fdname}
634
If a file descriptor is passed alongside this command using the SCM_RIGHTS
635
mechanism on unix sockets, it is stored using the name @var{fdname} for
636
later use by other monitor commands.
637
ETEXI
638

    
639
    { "closefd", "fdname:s", do_closefd, "closefd name",
640
      "close a file descriptor previously passed via SCM rights" },
641
STEXI
642
@item closefd @var{fdname}
643
Close the file descriptor previously assigned to @var{fdname} using the
644
@code{getfd} command. This is only needed if the file descriptor was never
645
used by another monitor command.
646
ETEXI
647

    
648
STEXI
649
@end table
650
ETEXI