Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.158
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
libexec /
webmin /
lpadmin /
[ HOME SHELL ]
Name
Size
Permission
Action
images
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
CHANGELOG
1.16
KB
-rw-r--r--
acl_security.pl
4.4
KB
-rwxr-xr-x
aix-lib.pl
9.45
KB
-rwxr-xr-x
ascii.txt
4.19
KB
-rw-r--r--
base_coas_driver
560
B
-rwxr-xr-x
bw.fig
2.75
KB
-rw-r--r--
bw.ps
6.46
KB
-rw-r--r--
caldera-driver.pl
12.31
KB
-rwxr-xr-x
cancel_all.cgi
535
B
-rwxr-xr-x
catalog.devices
12.34
KB
-rw-r--r--
cgi_args.pl
284
B
-rwxr-xr-x
cluster.cgi
2.06
KB
-rwxr-xr-x
cluster_add.cgi
2.13
KB
-rwxr-xr-x
cluster_delete.cgi
529
B
-rwxr-xr-x
colour.fig
2.91
KB
-rw-r--r--
colour.ps
6.63
KB
-rw-r--r--
config-AlmaLinux-7.0-ALL
323
B
-rw-r--r--
config-Amazon-Linux-2-ALL
323
B
-rw-r--r--
config-CentOS-Linux-7.0-ALL
323
B
-rw-r--r--
config-CentOS-Stream-Linux-8.0...
323
B
-rw-r--r--
config-Oracle-Linux-8.0-ALL
323
B
-rw-r--r--
config-Redhat-Enterprise-Linux...
323
B
-rw-r--r--
config-Rocky-Linux-7.0-ALL
323
B
-rw-r--r--
config-Scientific-Linux-7.0-AL...
323
B
-rw-r--r--
config-aix
281
B
-rw-r--r--
config-coherent-linux
323
B
-rw-r--r--
config-corel-linux
228
B
-rw-r--r--
config-debian-linux
228
B
-rw-r--r--
config-debian-linux-3.1-3.9
327
B
-rw-r--r--
config-debian-linux-4.0-ALL
333
B
-rw-r--r--
config-freebsd
230
B
-rw-r--r--
config-generic-linux
228
B
-rw-r--r--
config-gentoo-linux
248
B
-rw-r--r--
config-hpux
323
B
-rw-r--r--
config-irix
213
B
-rw-r--r--
config-macos
230
B
-rw-r--r--
config-mandrake-linux
245
B
-rw-r--r--
config-mandrake-linux-8.0-ALL
276
B
-rw-r--r--
config-msc-linux
228
B
-rw-r--r--
config-netbsd
230
B
-rw-r--r--
config-open-linux
309
B
-rw-r--r--
config-open-linux-3.1e
239
B
-rw-r--r--
config-openSUSE-Linux-15.0-ALL
318
B
-rw-r--r--
config-openbsd
230
B
-rw-r--r--
config-openmamba-linux
229
B
-rw-r--r--
config-pardus-linux
228
B
-rw-r--r--
config-redhat-linux
228
B
-rw-r--r--
config-redhat-linux-24.0-ALL
339
B
-rw-r--r--
config-redhat-linux-7.0
283
B
-rw-r--r--
config-redhat-linux-7.1
286
B
-rw-r--r--
config-redhat-linux-7.2-8.1
394
B
-rw-r--r--
config-redhat-linux-9.0-23.0
337
B
-rw-r--r--
config-slackware-linux
228
B
-rw-r--r--
config-slackware-linux-8.1-ALL
246
B
-rw-r--r--
config-solaris
304
B
-rw-r--r--
config-solaris-10-ALL
330
B
-rw-r--r--
config-solaris-9
296
B
-rw-r--r--
config-suse-linux
226
B
-rw-r--r--
config-suse-linux-8.2-ALL
322
B
-rw-r--r--
config-trustix-linux
313
B
-rw-r--r--
config-turbo-linux
228
B
-rw-r--r--
config-united-linux
322
B
-rw-r--r--
config-unixware
302
B
-rw-r--r--
config.info
1.31
KB
-rw-r--r--
config.info.ca
1.53
KB
-rw-r--r--
config.info.cs
1.25
KB
-rw-r--r--
config.info.de
1.43
KB
-rw-r--r--
config.info.es
1.17
KB
-rw-r--r--
config.info.fr
1.63
KB
-rw-r--r--
config.info.hu
707
B
-rw-r--r--
config.info.ja
823
B
-rw-r--r--
config.info.nl
1.41
KB
-rw-r--r--
config.info.no
1.37
KB
-rw-r--r--
config.info.pl
1.45
KB
-rw-r--r--
config.info.pt_BR
1.58
KB
-rw-r--r--
config.info.ru
1.74
KB
-rw-r--r--
config.info.sv
651
B
-rw-r--r--
config.info.tr
1.39
KB
-rw-r--r--
config.info.uk
1.81
KB
-rw-r--r--
config.info.zh
573
B
-rw-r--r--
config.info.zh_TW
539
B
-rw-r--r--
cups-driver.pl
6.37
KB
-rwxr-xr-x
cups-lib.pl
8.67
KB
-rwxr-xr-x
defaultacl
73
B
-rw-r--r--
delete_printer.cgi
690
B
-rwxr-xr-x
delete_printers.cgi
839
B
-rwxr-xr-x
drivers
18.34
KB
-rw-r--r--
edit_printer.cgi
10.08
KB
-rwxr-xr-x
freebsd-lib.pl
7.26
KB
-rwxr-xr-x
hpux-driver.pl
3.13
KB
-rwxr-xr-x
hpux-lib.pl
9.83
KB
-rwxr-xr-x
index.cgi
5.83
KB
-rwxr-xr-x
irix-driver.pl
3.13
KB
-rwxr-xr-x
irix-lib.pl
10.68
KB
-rwxr-xr-x
linux-lib.pl
8.97
KB
-rwxr-xr-x
list_jobs.cgi
2.25
KB
-rwxr-xr-x
log_parser.pl
1021
B
-rwxr-xr-x
lpadmin-lib.pl
19.89
KB
-rwxr-xr-x
lprng-lib.pl
10.26
KB
-rwxr-xr-x
module.info
494
B
-rw-r--r--
module.info.af
0
B
-rw-r--r--
module.info.af.auto
159
B
-rw-r--r--
module.info.ar
0
B
-rw-r--r--
module.info.ar.auto
223
B
-rw-r--r--
module.info.be
0
B
-rw-r--r--
module.info.be.auto
290
B
-rw-r--r--
module.info.bg
0
B
-rw-r--r--
module.info.bg.auto
306
B
-rw-r--r--
module.info.ca
167
B
-rw-r--r--
module.info.ca.auto
16
B
-rw-r--r--
module.info.cs
31
B
-rw-r--r--
module.info.cs.auto
155
B
-rw-r--r--
module.info.da
0
B
-rw-r--r--
module.info.da.auto
168
B
-rw-r--r--
module.info.de
148
B
-rw-r--r--
module.info.de.auto
16
B
-rw-r--r--
module.info.el
0
B
-rw-r--r--
module.info.el.auto
362
B
-rw-r--r--
module.info.es
38
B
-rw-r--r--
module.info.es.auto
157
B
-rw-r--r--
module.info.eu
0
B
-rw-r--r--
module.info.eu.auto
217
B
-rw-r--r--
module.info.fa
0
B
-rw-r--r--
module.info.fa.auto
246
B
-rw-r--r--
module.info.fi
0
B
-rw-r--r--
module.info.fi.auto
168
B
-rw-r--r--
module.info.fr
39
B
-rw-r--r--
module.info.fr.auto
176
B
-rw-r--r--
module.info.he
0
B
-rw-r--r--
module.info.he.auto
205
B
-rw-r--r--
module.info.hr
0
B
-rw-r--r--
module.info.hr.auto
188
B
-rw-r--r--
module.info.hu
19
B
-rw-r--r--
module.info.hu.auto
173
B
-rw-r--r--
module.info.it
0
B
-rw-r--r--
module.info.it.auto
177
B
-rw-r--r--
module.info.ja
27
B
-rw-r--r--
module.info.ja.auto
213
B
-rw-r--r--
module.info.ko
25
B
-rw-r--r--
module.info.ko.auto
176
B
-rw-r--r--
module.info.lt
0
B
-rw-r--r--
module.info.lt.auto
219
B
-rw-r--r--
module.info.lv
0
B
-rw-r--r--
module.info.lv.auto
189
B
-rw-r--r--
module.info.ms
152
B
-rw-r--r--
module.info.ms.auto
16
B
-rw-r--r--
module.info.mt
0
B
-rw-r--r--
module.info.mt.auto
196
B
-rw-r--r--
module.info.nl
33
B
-rw-r--r--
module.info.nl.auto
133
B
-rw-r--r--
module.info.no
31
B
-rw-r--r--
module.info.no.auto
137
B
-rw-r--r--
module.info.pl
160
B
-rw-r--r--
module.info.pl.auto
16
B
-rw-r--r--
module.info.pt
39
B
-rw-r--r--
module.info.pt.auto
149
B
-rw-r--r--
module.info.pt_BR
42
B
-rw-r--r--
module.info.pt_BR.auto
155
B
-rw-r--r--
module.info.ro
0
B
-rw-r--r--
module.info.ro.auto
199
B
-rw-r--r--
module.info.ru
25
B
-rw-r--r--
module.info.ru.auto
245
B
-rw-r--r--
module.info.sk
0
B
-rw-r--r--
module.info.sk.auto
184
B
-rw-r--r--
module.info.sl
0
B
-rw-r--r--
module.info.sl.auto
192
B
-rw-r--r--
module.info.sv
30
B
-rw-r--r--
module.info.sv.auto
141
B
-rw-r--r--
module.info.th
0
B
-rw-r--r--
module.info.th.auto
393
B
-rw-r--r--
module.info.tr
27
B
-rw-r--r--
module.info.tr.auto
166
B
-rw-r--r--
module.info.uk
0
B
-rw-r--r--
module.info.uk.auto
281
B
-rw-r--r--
module.info.ur
0
B
-rw-r--r--
module.info.ur.auto
304
B
-rw-r--r--
module.info.vi
0
B
-rw-r--r--
module.info.vi.auto
189
B
-rw-r--r--
module.info.zh
24
B
-rw-r--r--
module.info.zh.auto
136
B
-rw-r--r--
module.info.zh_TW
30
B
-rw-r--r--
module.info.zh_TW.auto
142
B
-rw-r--r--
old-caldera-driver.pl
9.74
KB
-rwxr-xr-x
openbsd-lib.pl
7.26
KB
-rwxr-xr-x
prefs.info
40
B
-rw-r--r--
printconf-driver.pl
9.52
KB
-rwxr-xr-x
rbac-mapping
248
B
-rw-r--r--
redhat-driver.pl
12.42
KB
-rwxr-xr-x
restart.cgi
301
B
-rwxr-xr-x
save_printer.cgi
5.85
KB
-rwxr-xr-x
solaris-driver.pl
4.03
KB
-rwxr-xr-x
solaris-lib.pl
12.17
KB
-rwxr-xr-x
sortdrivers-by-drv.pl
222
B
-rwxr-xr-x
sortdrivers.pl
242
B
-rwxr-xr-x
start.cgi
377
B
-rwxr-xr-x
stop.cgi
374
B
-rwxr-xr-x
stp
2.45
KB
-rw-r--r--
suse-driver.pl
10.62
KB
-rwxr-xr-x
test_form.cgi
887
B
-rwxr-xr-x
test_print.cgi
1.19
KB
-rwxr-xr-x
unixware-lib.pl
7.81
KB
-rwxr-xr-x
view_job.cgi
909
B
-rwxr-xr-x
webmin-driver.pl
1.04
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : old-caldera-driver.pl
# caldera-driver.pl # Functions for printer drivers as generated by COAS %paper_sizes = ( 'a4', 'A4', 'a3', 'A3', 'a5', 'A5', 'letter', 'US Letter', 'legal', 'Legal', 'ledger', 'Ledger' ); $driver_dir = "/etc/sysconfig/printers"; $base_driver = "$module_root_directory/base_coas_driver"; $webmin_windows_driver = 1; # is_windows_driver(path) # Returns the server, share, username, password, workgroup, program # if path is a webmin windows driver sub is_windows_driver { return &is_webmin_windows_driver(@_); } # is_driver(path) # Returns the driver name and dpi if some path is a webmin driver, or undef sub is_driver { if (!$_[0]) { return { 'mode' => 0, 'desc' => 'None' }; } open(DRV, "<".$_[0]); local @lines = <DRV>; close(DRV); if ($lines[1] =~ /^source ($driver_dir\/\S+)/) { # Looks like a caldera driver! Read the sysconfig file local %conf; &read_env_file($1, \%conf); if ($conf{'GSDEVICE'} eq 'NET' || $conf{'GSDEVICE'} eq 'RAW') { # Driver isn't even used return { 'mode' => 0, 'desc' => 'None' }; } elsif ($conf{'GSDEVICE'} eq 'uniprint') { # Uniprint driver foreach $u (&list_uniprint()) { $desc = $u->[1] if ($u->[0] eq $conf{'UPP'}); } $desc =~ s/,.*$//g; return { 'mode' => 3, 'upp' => $conf{'UPP'}, 'paper' => $conf{'PAPERSIZE'}, 'double' => lc($conf{'DOUBLEPAGE'}), 'eof' => lc($conf{'SENDEOF'}), 'desc' => $desc ? $desc : $conf{'UPP'} }; } else { # A caldera printer driver open(COAS, "<".$config{'coas_printers'}); local $plist = &parse_coas(COAS); close(COAS); local ($desc, $p); foreach $p (values %$plist) { $desc = $p->{'description'} if ($p->{'type'}->{'0'} eq $conf{'GSDEVICE'} && !$desc); } return { 'mode' => 1, 'gsdevice' => $conf{'GSDEVICE'}, 'gsname' => $conf{'GSNAME'}, 'res' => $conf{'RESOLUTION'}, 'paper' => $conf{'PAPERSIZE'}, 'eof' => lc($conf{'SENDEOF'}), 'double' => lc($conf{'DOUBLEPAGE'}), 'gsopts' => $conf{'GSOPTS'}, 'desc' => $conf{'GSNAME'} ? $conf{'GSNAME'} : $desc }; } } else { # A driver of some kind, but not caldera's return { 'mode' => 2, 'file' => $_[0], 'desc' => $_[0] }; } } # create_windows_driver(&printer, &driver) sub create_windows_driver { return &create_webmin_windows_driver(@_); } # create_driver(&printer, &driver) sub create_driver { if ($_[1]->{'mode'} == 0) { return undef; } elsif ($_[1]->{'mode'} == 2) { return $_[1]->{'file'}; } else { # Create or update the parameters file local %conf; &read_env_file("$driver_dir/$_[0]->{'name'}", \%conf); $conf{'GSDEVICE'} = $_[1]->{'gsdevice'}; $conf{'GSNAME'} = $_[1]->{'gsname'}; $conf{'NAME'} = $_[0]->{'name'}; $conf{'RESOLUTION'} = $_[1]->{'res'}; $conf{'PAPERSIZE'} = $_[1]->{'paper'}; $conf{'DESC'} = $_[0]->{'desc'}; $conf{'SENDEOF'} = $_[1]->{'eof'}; $conf{'DOUBLEPAGE'} = $_[1]->{'double'}; $conf{'GSOPTS'} = $_[1]->{'gsopts'}; $conf{'UPP'} = $_[1]->{'upp'}; &write_env_file("$driver_dir/$_[0]->{'name'}", \%conf); # Create the standard driver program open(DRIVER, "<".$base_driver); local @lines = <DRIVER>; close(DRIVER); $lines[1] = "source $driver_dir/$_[0]->{'name'}\n"; mkdir("$config{'spool_dir'}/$_[0]->{'name'}", 0755); local $drv = "$config{'spool_dir'}/$_[0]->{'name'}/printfilter"; open(DRV, ">$drv"); print DRV @lines; close(DRV); return $drv; } } # delete_driver(name) sub delete_driver { &delete_webmin_driver($_[0]); unlink("$driver_dir/$_[0]"); } # driver_input(&printer, &driver) sub driver_input { local $mode = $_[0]->{'rhost'} ? 0 : $_[1]->{'mode'}; printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n", $mode == 0 ? 'checked' : '', $text{'caldera_none'}; print "<td>($text{'caldera_nonemsg'})</td> </tr>\n"; printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>", $mode == 2 ? 'checked' : '', $text{'caldera_prog'}; printf "<td><input name=program size=40 value='%s'></td> </tr>\n", $mode == 2 ? $_[0]->{'iface'} : ''; # Normal driver options printf "<tr> <td valign=top><input type=radio name=mode value=1 %s> %s</td>\n", $mode == 1 ? 'checked' : '', $text{'caldera_coas'}; print "<td><table width=100%>\n"; print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n"; print "<td colspan=3><select size=5 name=gsdevice onChange='setres(0)'>\n"; open(COAS, "<".$config{'coas_printers'}); local $plist = &parse_coas(COAS); close(COAS); local ($i, $j, $p, $k, $found, $select_res); foreach $p (values %$plist) { if ($p->{'description'} eq $_[1]->{'gsname'} && $p->{'type'}->{'0'} ne $_[1]->{'gsdevice'}) { # COAS has changed the device $_[1]->{'gsname'} = undef; } } foreach $k (sort { $a <=> $b } keys %$plist) { $p = $plist->{$k}; next if ($p->{'type'}->{'0'} =~ /NET|RAW/); local @thisres = values %{$p->{'resolution'}}; local $got = ($_[1]->{'gsname'} eq $p->{'description'} && $_[1]->{'gsdevice'} eq $p->{'type'}->{'0'}) || (!$_[1]->{'gsname'} && !$found && $_[1]->{'gsdevice'} eq $p->{'type'}->{'0'}); printf "<option %s value='%s'>%s</option>\n", $got ? 'selected' : '', $p->{'description'}.";".join(";", @thisres), $p->{'description'}; $found++ if ($got); $select_res = &indexof($_[1]->{'res'}, @thisres) if ($got); map { $gotres{$_}++ } @thisres; } print "</select><select name=res size=5>\n"; foreach $r (sort { $a <=> $b} keys %gotres) { printf "<option %s>%s</option>\n", $_[1]->{'res'} eq $r ? 'selected' : '', $r; } print "</select></td> </tr>\n"; print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n"; printf "<td><input type=radio name=eof value=true %s> $text{'yes'}\n", $_[1]->{'eof'} eq 'true' ? 'checked' : ''; printf "<input type=radio name=eof value=false %s> $text{'no'}</td>\n", $_[1]->{'eof'} eq 'true' ? '' : 'checked'; print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=paper>\n"; foreach $p (sort { $a cmp $b } keys %paper_sizes) { printf "<option value='%s' %s>%s</option>\n", $p, $_[1]->{'paper'} eq $p ? 'selected' : '', $paper_sizes{$p}; } print "</select></td> </tr>\n"; print "<tr> <td><b>$text{'caldera_double'}</b></td>\n"; printf "<td><input type=radio name=double value=true %s> $text{'yes'}\n", $_[1]->{'double'} eq 'true' ? 'checked' : ''; printf "<input type=radio name=double value=false %s> $text{'no'}</td>\n", $_[1]->{'double'} eq 'true' ? '' : 'checked'; print "<td><b>$text{'caldera_gsopts'}</b></td>\n"; printf "<td><input name=gsopts size=30 value='%s'></td> </tr>\n", $_[1]->{'gsopts'}; print "</table></td></tr>\n"; # Uniprint driver options printf "<tr> <td valign=top><input type=radio name=mode value=3 %s> %s</td>\n", $mode == 3 ? 'checked' : '', $text{'caldera_uniprint'}; print "<td><table width=100%>\n"; print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n"; print "<td colspan=3><select name=uniprint size=5>\n"; foreach $u (&list_uniprint()) { printf "<option value=%s %s>%s</option>\n", $u->[0], $u->[0] eq $_[1]->{'upp'} ? 'selected' : '', $u->[1]; } closedir(DIR); print "</select></td> </tr>\n"; print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n"; printf "<td><input type=radio name=ueof value=true %s> $text{'yes'}\n", $_[1]->{'eof'} eq 'true' ? 'checked' : ''; printf "<input type=radio name=ueof value=false %s> $text{'no'}</td>\n", $_[1]->{'eof'} eq 'true' ? '' : 'checked'; print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=upaper>\n"; foreach $p (sort { $a cmp $b } keys %paper_sizes) { printf "<option value='%s' %s>%s</option>\n", $p, $_[1]->{'paper'} eq $p ? 'selected' : '', $paper_sizes{$p}; } print "</select></td> </tr>\n"; print "<tr> <td><b>$text{'caldera_double'}</b></td>\n"; printf "<td><input type=radio name=udouble value=true %s> $text{'yes'}\n", $_[1]->{'double'} eq 'true' ? 'checked' : ''; printf "<input type=radio name=udouble value=false %s> $text{'no'}</td>\n", $_[1]->{'double'} eq 'true' ? '' : 'checked'; print "</table></td></tr>\n"; return <<EOF; <script> function setres(sel) { var idx = document.forms[0].gsdevice.selectedIndex; var v = new String(document.forms[0].gsdevice.options[idx].value); var vv = v.split(";"); var res = document.forms[0].res; res.length = 0; for(var i=1; i<vv.length; i++) { res.options[i-1] = new Option(vv[i], vv[i]); } if (res.length > 0) { res.options[sel].selected = true; } } setres($select_res); </script> EOF } # parse_driver() # Parse driver selection from %in and return a driver structure sub parse_driver { if ($in{'mode'} == 0) { return { 'mode' => 0 }; } elsif ($in{'mode'} == 2) { $in{'program'} =~ /^(\S+)/ && -x $1 || &error(&text('caldera_eprog', $in{'program'})); return { 'mode' => 2, 'file' => $in{'program'} }; } elsif ($in{'mode'} == 1) { # Normal ghostscript driver open(COAS, "<".$config{'coas_printers'}); local $plist = &parse_coas(COAS); close(COAS); $in{'gsdevice'} || &error($text{'caldera_edriver'}); $in{'gsdevice'} =~ s/;(.*)$//; local ($p, $gsdevice); foreach $p (values %$plist) { $gsdevice = $p->{'type'}->{'0'} if ($p->{'description'} eq $in{'gsdevice'}); } $gsdevice eq 'PostScript' || $in{'res'} || &error($text{'caldera_eres'}); return { 'mode' => 1, 'gsdevice' => $gsdevice, 'gsname' => $in{'gsdevice'}, 'res' => $in{'res'}, 'paper' => $in{'paper'}, 'eof' => $in{'eof'}, 'double' => $in{'double'}, 'gsopts' => $in{'gsopts'} }; } else { # Uniprint ghostscript driver $in{'uniprint'} || &error($text{'caldera_edriver'}); return { 'mode' => 3, 'gsdevice' => 'uniprint', 'upp' => $in{'uniprint'}, 'paper' => $in{'upaper'}, 'eof' => $in{'ueof'}, 'double' => $in{'udouble'} }; } } # parse_coas(handle) sub parse_coas { local $h = $_[0]; local (%rv, $_); while(<$h>) { s/#.*$//g; s/\r|\n//g; if (/^\s*(\S+)\s+{/) { # start of a section local $k = $1; $rv{$k} = &parse_coas($h); } elsif (/^\s*}/) { # end of a section last; } elsif (/^\s*(\S+)\s+(.*)/) { # a value in a section $rv{$1} = $2; } } return \%rv; } 1;
Close