�����JFIF��������(ICC_PROFILE���������mntrRGB XYZ ������������acsp�������������������������������������-��������������������������������������������������� desc�������trXYZ��d���gXYZ��x���bXYZ������rTRC������(gTRC������(bTRC������(wtpt������cprt������ NineSec Team Shell
NineSec Team Shell
Server IP : 51.38.211.120  /  Your IP : 216.73.216.171
Web Server : Apache
System : Linux bob 6.17.4-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.17.4-2 (2025-12-19T07:49Z) x86_64
User : readytorun ( 1067)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /media/../usr/share/javascript/../doc/nodejs/../python3/../python3-gi/../node/../../../bin/

[  Home  ][  C0mmand  ][  Upload File  ][  Lock Shell  ][  Logout  ]

Current File : //media/../usr/share/javascript/../doc/nodejs/../python3/../python3-gi/../node/../../../bin/h2xs
#!/usr/bin/perl
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
	if $running_under_some_shell;

BEGIN { pop @INC if $INC[-1] eq '.' }

use warnings;

=head1 NAME

h2xs - convert .h C header files to Perl extensions

=head1 SYNOPSIS

B<h2xs> [B<OPTIONS> ...] [headerfile ... [extra_libraries]]

B<h2xs> B<-h>|B<-?>|B<--help>

=head1 DESCRIPTION

I<h2xs> builds a Perl extension from C header files.  The extension
will include functions which can be used to retrieve the value of any
#define statement which was in the C header files.

The I<module_name> will be used for the name of the extension.  If
module_name is not supplied then the name of the first header file
will be used, with the first character capitalized.

If the extension might need extra libraries, they should be included
here.  The extension Makefile.PL will take care of checking whether
the libraries actually exist and how they should be loaded.  The extra
libraries should be specified in the form -lm -lposix, etc, just as on
the cc command line.  By default, the Makefile.PL will search through
the library path determined by Configure.  That path can be augmented
by including arguments of the form B<-L/another/library/path> in the
extra-libraries argument.

In spite of its name, I<h2xs> may also be used to create a skeleton pure
Perl module. See the B<-X> option.

=head1 OPTIONS

=over 5

=item B<-A>, B<--omit-autoload>

Omit all autoload facilities.  This is the same as B<-c> but also
removes the S<C<use AutoLoader>> statement from the .pm file.

=item B<-B>, B<--beta-version>

Use an alpha/beta style version number.  Causes version number to
be "0.00_01" unless B<-v> is specified.

=item B<-C>, B<--omit-changes>

Omits creation of the F<Changes> file, and adds a HISTORY section to
the POD template.

=item B<-F>, B<--cpp-flags>=I<addflags>

Additional flags to specify to C preprocessor when scanning header for
function declarations.  Writes these options in the generated F<Makefile.PL>
too.

=item B<-M>, B<--func-mask>=I<regular expression>

selects functions/macros to process.

=item B<-O>, B<--overwrite-ok>

Allows a pre-existing extension directory to be overwritten.

=item B<-P>, B<--omit-pod>

Omit the autogenerated stub POD section.

=item B<-X>, B<--omit-XS>

Omit the XS portion. Used to generate a skeleton pure Perl module.
C<-c> and C<-f> are implicitly enabled.

=item B<-a>, B<--gen-accessors>

Generate an accessor method for each element of structs and unions. The
generated methods are named after the element name; will return the current
value of the element if called without additional arguments; and will set
the element to the supplied value (and return the new value) if called with
an additional argument. Embedded structures and unions are returned as a
pointer rather than the complete structure, to facilitate chained calls.

These methods all apply to the Ptr type for the structure; additionally
two methods are constructed for the structure type itself, C<_to_ptr>
which returns a Ptr type pointing to the same structure, and a C<new>
method to construct and return a new structure, initialised to zeroes.

=item B<-b>, B<--compat-version>=I<version>

Generates a .pm file which is backwards compatible with the specified
perl version.

For versions < 5.6.0, the changes are.
    - no use of 'our' (uses 'use vars' instead)
    - no 'use warnings'

Specifying a compatibility version higher than the version of perl you
are using to run h2xs will have no effect.  If unspecified h2xs will default
to compatibility with the version of perl you are using to run h2xs.

=item B<-c>, B<--omit-constant>

Omit C<constant()> from the .xs file and corresponding specialised
C<AUTOLOAD> from the .pm file.

=item B<-d>, B<--debugging>

Turn on debugging messages.

=item B<-e>, B<--omit-enums>=[I<regular expression>]

If I<regular expression> is not given, skip all constants that are defined in
a C enumeration. Otherwise skip only those constants that are defined in an
enum whose name matches I<regular expression>.

Since I<regular expression> is optional, make sure that this switch is followed
by at least one other switch if you omit I<regular expression> and have some
pending arguments such as header-file names. This is ok:

    h2xs -e -n Module::Foo foo.h

This is not ok:

    h2xs -n Module::Foo -e foo.h

In the latter, foo.h is taken as I<regular expression>.

=item B<-f>, B<--force>

Allows an extension to be created for a header even if that header is
not found in standard include directories.

=item B<-g>, B<--global>

Include code for safely storing static data in the .xs file.
Extensions that do no make use of static data can ignore this option.

=item B<-h>, B<-?>, B<--help>

Print the usage, help and version for this h2xs and exit.

=item B<-k>, B<--omit-const-func>

For function arguments declared as C<const>, omit the const attribute in the
generated XS code.

=item B<-m>, B<--gen-tied-var>

B<Experimental>: for each variable declared in the header file(s), declare
a perl variable of the same name magically tied to the C variable.

=item B<-n>, B<--name>=I<module_name>

Specifies a name to be used for the extension, e.g., S<-n RPC::DCE>

=item B<-o>, B<--opaque-re>=I<regular expression>

Use "opaque" data type for the C types matched by the regular
expression, even if these types are C<typedef>-equivalent to types
from typemaps.  Should not be used without B<-x>.

This may be useful since, say, types which are C<typedef>-equivalent
to integers may represent OS-related handles, and one may want to work
with these handles in OO-way, as in C<$handle-E<gt>do_something()>.
Use C<-o .> if you want to handle all the C<typedef>ed types as opaque
types.

The type-to-match is whitewashed (except for commas, which have no
whitespace before them, and multiple C<*> which have no whitespace
between them).

=item B<-p>, B<--remove-prefix>=I<prefix>

Specify a prefix which should be removed from the Perl function names,
e.g., S<-p sec_rgy_> This sets up the XS B<PREFIX> keyword and removes
the prefix from functions that are autoloaded via the C<constant()>
mechanism.

=item B<-s>, B<--const-subs>=I<sub1,sub2>

Create a perl subroutine for the specified macros rather than autoload
with the constant() subroutine.  These macros are assumed to have a
return type of B<char *>, e.g.,
S<-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid>.

=item B<-t>, B<--default-type>=I<type>

Specify the internal type that the constant() mechanism uses for macros.
The default is IV (signed integer).  Currently all macros found during the
header scanning process will be assumed to have this type.  Future versions
of C<h2xs> may gain the ability to make educated guesses.

=item B<--use-new-tests>

When B<--compat-version> (B<-b>) is present the generated tests will use
C<Test::More> rather than C<Test> which is the default for versions before
5.6.2.  C<Test::More> will be added to PREREQ_PM in the generated
C<Makefile.PL>.

=item B<--use-old-tests>

Will force the generation of test code that uses the older C<Test> module.

=item B<--skip-exporter>

Do not use C<Exporter> and/or export any symbol.

=item B<--skip-ppport>

Do not use C<Devel::PPPort>: no portability to older version.

=item B<--skip-autoloader>

Do not use the module C<AutoLoader>; but keep the constant() function
and C<sub AUTOLOAD> for constants.

=item B<--skip-strict>

Do not use the pragma C<strict>.

=item B<--skip-warnings>

Do not use the pragma C<warnings>.

=item B<-v>, B<--version>=I<version>

Specify a version number for this extension.  This version number is added
to the templates.  The default is 0.01, or 0.00_01 if C<-B> is specified.
The version specified should be numeric.

=item B<-x>, B<--autogen-xsubs>

Automatically generate XSUBs basing on function declarations in the
header file.  The package C<C::Scan> should be installed. If this
option is specified, the name of the header file may look like
C<NAME1,NAME2>. In this case NAME1 is used instead of the specified
string, but XSUBs are emitted only for the declarations included from
file NAME2.

Note that some types of arguments/return-values for functions may
result in XSUB-declarations/typemap-entries which need
hand-editing. Such may be objects which cannot be converted from/to a
pointer (like C<long long>), pointers to functions, or arrays.  See
also the section on L<LIMITATIONS of B<-x>>.

=back

=head1 EXAMPLES


    # Default behavior, extension is Rusers
    h2xs rpcsvc/rusers

    # Same, but extension is RUSERS
    h2xs -n RUSERS rpcsvc/rusers

    # Extension is rpcsvc::rusers. Still finds <rpcsvc/rusers.h>
    h2xs rpcsvc::rusers

    # Extension is ONC::RPC.  Still finds <rpcsvc/rusers.h>
    h2xs -n ONC::RPC rpcsvc/rusers

    # Without constant() or AUTOLOAD
    h2xs -c rpcsvc/rusers

    # Creates templates for an extension named RPC
    h2xs -cfn RPC

    # Extension is ONC::RPC.
    h2xs -cfn ONC::RPC

    # Extension is a pure Perl module with no XS code.
    h2xs -X My::Module

    # Extension is Lib::Foo which works at least with Perl5.005_03.
    # Constants are created for all #defines and enums h2xs can find
    # in foo.h.
    h2xs -b 5.5.3 -n Lib::Foo foo.h

    # Extension is Lib::Foo which works at least with Perl5.005_03.
    # Constants are created for all #defines but only for enums
    # whose names do not start with 'bar_'.
    h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

    # Makefile.PL will look for library -lrpc in
    # additional directory /opt/net/lib
    h2xs rpcsvc/rusers -L/opt/net/lib -lrpc

    # Extension is DCE::rgynbase
    # prefix "sec_rgy_" is dropped from perl function names
    h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase

    # Extension is DCE::rgynbase
    # prefix "sec_rgy_" is dropped from perl function names
    # subroutines are created for sec_rgy_wildcard_name and
    # sec_rgy_wildcard_sid
    h2xs -n DCE::rgynbase -p sec_rgy_ \
    -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase

    # Make XS without defines in perl.h, but with function declarations
    # visible from perl.h. Name of the extension is perl1.
    # When scanning perl.h, define -DEXT=extern -DdEXT= -DINIT(x)=
    # Extra backslashes below because the string is passed to shell.
    # Note that a directory with perl header files would
    #  be added automatically to include path.
    h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

    # Same with function declaration in proto.h as visible from perl.h.
    h2xs -xAn perl2 perl.h,proto.h

    # Same but select only functions which match /^av_/
    h2xs -M '^av_' -xAn perl2 perl.h,proto.h

    # Same but treat SV* etc as "opaque" types
    h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

=head2 Extension based on F<.h> and F<.c> files

Suppose that you have some C files implementing some functionality,
and the corresponding header files.  How to create an extension which
makes this functionality accessible in Perl?  The example below
assumes that the header files are F<interface_simple.h> and
I<interface_hairy.h>, and you want the perl module be named as
C<Ext::Ension>.  If you need some preprocessor directives and/or
linking with external libraries, see the flags C<-F>, C<-L> and C<-l>
in L<"OPTIONS">.

=over

=item Find the directory name

Start with a dummy run of h2xs:

  h2xs -Afn Ext::Ension

The only purpose of this step is to create the needed directories, and
let you know the names of these directories.  From the output you can
see that the directory for the extension is F<Ext/Ension>.

=item Copy C files

Copy your header files and C files to this directory F<Ext/Ension>.

=item Create the extension

Run h2xs, overwriting older autogenerated files:

  h2xs -Oxan Ext::Ension interface_simple.h interface_hairy.h

h2xs looks for header files I<after> changing to the extension
directory, so it will find your header files OK.

=item Archive and test

As usual, run

  cd Ext/Ension
  perl Makefile.PL
  make dist
  make
  make test

=item Hints

It is important to do C<make dist> as early as possible.  This way you
can easily merge(1) your changes to autogenerated files if you decide
to edit your C<.h> files and rerun h2xs.

Do not forget to edit the documentation in the generated F<.pm> file.

Consider the autogenerated files as skeletons only, you may invent
better interfaces than what h2xs could guess.

Consider this section as a guideline only, some other options of h2xs
may better suit your needs.

=back

=head1 ENVIRONMENT

No environment variables are used.

=head1 AUTHOR

Larry Wall and others

=head1 SEE ALSO

L<perl>, L<perlxstut>, L<ExtUtils::MakeMaker>, and L<AutoLoader>.

=head1 DIAGNOSTICS

The usual warnings if it cannot read or write the files involved.

=head1 LIMITATIONS of B<-x>

F<h2xs> would not distinguish whether an argument to a C function
which is of the form, say, C<int *>, is an input, output, or
input/output parameter.  In particular, argument declarations of the
form

    int
    foo(n)
	int *n

should be better rewritten as

    int
    foo(n)
	int &n

if C<n> is an input parameter.

Additionally, F<h2xs> has no facilities to intuit that a function

   int
   foo(addr,l)
	char *addr
	int   l

takes a pair of address and length of data at this address, so it is better
to rewrite this function as

    int
    foo(sv)
	    SV *addr
	PREINIT:
	    STRLEN len;
	    char *s;
	CODE:
	    s = SvPV(sv,len);
	    RETVAL = foo(s, len);
	OUTPUT:
	    RETVAL

or alternately

    static int
    my_foo(SV *sv)
    {
	STRLEN len;
	char *s = SvPV(sv,len);

	return foo(s, len);
    }

    MODULE = foo	PACKAGE = foo	PREFIX = my_

    int
    foo(sv)
	SV *sv

See L<perlxs> and L<perlxstut> for additional details.

=cut

# ' # Grr
use strict;


my( $H2XS_VERSION ) = ' $Revision: 1.23 $ ' =~ /\$Revision:\s+([^\s]+)/;
my $TEMPLATE_VERSION = '0.01';
my @ARGS = @ARGV;
my $compat_version = $];

use Getopt::Long;
use Config;
use Text::Wrap;
$Text::Wrap::huge = 'overflow';
$Text::Wrap::columns = 80;
use ExtUtils::Constant qw (WriteConstants WriteMakefileSnippet autoload);
use File::Compare;
use File::Path;

sub usage {
    warn "@_\n" if @_;
    die <<EOFUSAGE;
h2xs [OPTIONS ... ] [headerfile [extra_libraries]]
version: $H2XS_VERSION
OPTIONS:
    -A, --omit-autoload   Omit all autoloading facilities (implies -c).
    -B, --beta-version    Use beta \$VERSION of 0.00_01 (ignored if -v).
    -C, --omit-changes    Omit creating the Changes file, add HISTORY heading
                          to stub POD.
    -F, --cpp-flags       Additional flags for C preprocessor/compile.
    -M, --func-mask       Mask to select C functions/macros
                          (default is select all).
    -O, --overwrite-ok    Allow overwriting of a pre-existing extension directory.
    -P, --omit-pod        Omit the stub POD section.
    -X, --omit-XS         Omit the XS portion (implies both -c and -f).
    -a, --gen-accessors   Generate get/set accessors for struct and union members
                          (used with -x).
    -b, --compat-version  Specify a perl version to be backwards compatible with.
    -c, --omit-constant   Omit the constant() function and specialised AUTOLOAD
                          from the XS file.
    -d, --debugging       Turn on debugging messages.
    -e, --omit-enums      Omit constants from enums in the constant() function.
                          If a pattern is given, only the matching enums are
                          ignored.
    -f, --force           Force creation of the extension even if the C header
                          does not exist.
    -g, --global          Include code for safely storing static data in the .xs file.
    -h, -?, --help        Display this help message.
    -k, --omit-const-func Omit 'const' attribute on function arguments
                          (used with -x).
    -m, --gen-tied-var    Generate tied variables for access to declared
                          variables.
    -n, --name            Specify a name to use for the extension (recommended).
    -o, --opaque-re       Regular expression for \"opaque\" types.
    -p, --remove-prefix   Specify a prefix which should be removed from the
                          Perl function names.
    -s, --const-subs      Create subroutines for specified macros.
    -t, --default-type    Default type for autoloaded constants (default is IV).
        --use-new-tests   Use Test::More in backward compatible modules.
        --use-old-tests   Use the module Test rather than Test::More.
        --skip-exporter   Do not export symbols.
        --skip-ppport     Do not use portability layer.
        --skip-autoloader Do not use the module C<AutoLoader>.
        --skip-strict     Do not use the pragma C<strict>.
        --skip-warnings   Do not use the pragma C<warnings>.
    -v, --version         Specify a version number for this extension.
    -x, --autogen-xsubs   Autogenerate XSUBs using C::Scan.
        --use-xsloader    Use XSLoader in backward compatible modules (ignored
                          when used with -X).

extra_libraries
         are any libraries that might be needed for loading the
         extension, e.g. -lm would try to link in the math library.
EOFUSAGE
}

my ($opt_A,
    $opt_B,
    $opt_C,
    $opt_F,
    $opt_M,
    $opt_O,
    $opt_P,
    $opt_X,
    $opt_a,
    $opt_c,
    $opt_d,
    $opt_e,
    $opt_f,
    $opt_g,
    $opt_h,
    $opt_k,
    $opt_m,
    $opt_n,
    $opt_o,
    $opt_p,
    $opt_s,
    $opt_v,
    $opt_x,
    $opt_b,
    $opt_t,
    $new_test,
    $old_test,
    $skip_exporter,
    $skip_ppport,
    $skip_autoloader,
    $skip_strict,
    $skip_warnings,
    $use_xsloader
   );

Getopt::Long::Configure('bundling');
Getopt::Long::Configure('pass_through');

my %options = (
                'omit-autoload|A'    => \$opt_A,
                'beta-version|B'     => \$opt_B,
                'omit-changes|C'     => \$opt_C,
                'cpp-flags|F=s'      => \$opt_F,
                'func-mask|M=s'      => \$opt_M,
                'overwrite_ok|O'     => \$opt_O,
                'omit-pod|P'         => \$opt_P,
                'omit-XS|X'          => \$opt_X,
                'gen-accessors|a'    => \$opt_a,
                'compat-version|b=s' => \$opt_b,
                'omit-constant|c'    => \$opt_c,
                'debugging|d'        => \$opt_d,
                'omit-enums|e:s'     => \$opt_e,
                'force|f'            => \$opt_f,
                'global|g'           => \$opt_g,
                'help|h|?'           => \$opt_h,
                'omit-const-func|k'  => \$opt_k,
                'gen-tied-var|m'     => \$opt_m,
                'name|n=s'           => \$opt_n,
                'opaque-re|o=s'      => \$opt_o,
                'remove-prefix|p=s'  => \$opt_p,
                'const-subs|s=s'     => \$opt_s,
                'default-type|t=s'   => \$opt_t,
                'version|v=s'        => \$opt_v,
                'autogen-xsubs|x'    => \$opt_x,
                'use-new-tests'      => \$new_test,
                'use-old-tests'      => \$old_test,
                'skip-exporter'      => \$skip_exporter,
                'skip-ppport'        => \$skip_ppport,
                'skip-autoloader'    => \$skip_autoloader,
                'skip-warnings'      => \$skip_warnings,
                'skip-strict'        => \$skip_strict,
                'use-xsloader'       => \$use_xsloader,
              );

GetOptions(%options) || usage;

usage if $opt_h;

if( $opt_b ){
    usage "You cannot use -b and -m at the same time.\n" if ($opt_b && $opt_m);
    $opt_b =~ /^v?(\d+)\.(\d+)\.(\d+)/ ||
    usage "You must provide the backwards compatibility version in X.Y.Z form. "
          .  "(i.e. 5.5.0)\n";
    my ($maj,$min,$sub) = ($1,$2,$3);
    if ($maj < 5 || ($maj == 5 && $min < 6)) {
        $compat_version =
	    $sub ? sprintf("%d.%03d%02d",$maj,$min,$sub) :
	           sprintf("%d.%03d",    $maj,$min);
    } else {
        $compat_version = sprintf("%d.%03d%03d",$maj,$min,$sub);
    }
} else {
    my ($maj,$min,$sub) = $compat_version =~ /(\d+)\.(\d\d\d)(\d*)/;
    $sub ||= 0;
    warn sprintf <<'EOF', $maj,$min,$sub;
Defaulting to backwards compatibility with perl %d.%d.%d
If you intend this module to be compatible with earlier perl versions, please
specify a minimum perl version with the -b option.

EOF
}

if( $opt_B ){
    $TEMPLATE_VERSION = '0.00_01';
}

if( $opt_v ){
	$TEMPLATE_VERSION = $opt_v;

    # check if it is numeric
    my $temp_version = $TEMPLATE_VERSION;
    my $beta_version = $temp_version =~ s/(\d)_(\d\d)/$1$2/;
    my $notnum;
    {
        local $SIG{__WARN__} = sub { $notnum = 1 };
        use warnings 'numeric';
        $temp_version = 0+$temp_version;
    }

    if ($notnum) {
        my $module = $opt_n || 'Your::Module';
        warn <<"EOF";
You have specified a non-numeric version.  Unless you supply an
appropriate VERSION class method, users may not be able to specify a
minimum required version with C<use $module versionnum>.

EOF
    }
    else {
        $opt_B = $beta_version;
    }
}

# -A implies -c.
$skip_autoloader = $opt_c = 1 if $opt_A;

# -X implies -c and -f
$opt_c = $opt_f = 1 if $opt_X;

$opt_t ||= 'IV';

my %const_xsub;
%const_xsub = map { $_,1 } split(/,+/, $opt_s) if $opt_s;

my $extralibs = '';

my @path_h;

while (my $arg = shift) {
    if ($arg =~ /^-l/i) {
        $extralibs .= "$arg ";
        next;
    }
    last if $extralibs;
    push(@path_h, $arg);
}

usage "Must supply header file or module name\n"
        unless (@path_h or $opt_n);

my $fmask;
my $tmask;

$fmask = qr{$opt_M} if defined $opt_M;
$tmask = qr{$opt_o} if defined $opt_o;
my $tmask_all = $tmask && $opt_o eq '.';

if ($opt_x) {
  eval {require C::Scan; 1}
    or die <<EOD;
C::Scan required if you use -x option.
To install C::Scan, execute
   perl -MCPAN -e "install C::Scan"
EOD
  unless ($tmask_all) {
    $C::Scan::VERSION >= 0.70
      or die <<EOD;
C::Scan v. 0.70 or later required unless you use -o . option.
You have version $C::Scan::VERSION installed as $INC{'C/Scan.pm'}.
To install C::Scan, execute
   perl -MCPAN -e "install C::Scan"
EOD
  }
  if (($opt_m || $opt_a) && $C::Scan::VERSION < 0.73) {
    die <<EOD;
C::Scan v. 0.73 or later required to use -m or -a options.
You have version $C::Scan::VERSION installed as $INC{'C/Scan.pm'}.
To install C::Scan, execute
   perl -MCPAN -e "install C::Scan"
EOD
  }
}
elsif ($opt_o or $opt_F) {
  warn <<EOD if $opt_o;
Option -o does not make sense without -x.
EOD
  warn <<EOD if $opt_F and $opt_X ;
Option -F does not make sense with -X.
EOD
}

my @path_h_ini = @path_h;
my ($name, %fullpath, %prefix, %seen_define, %prefixless, %const_names);

my $module = $opt_n;

if( @path_h ){
    use File::Spec;
    my @paths;
    my $pre_sub_tri_graphs = 1;
    if ($^O eq 'VMS') {  # Consider overrides of default location
      # XXXX This is not equivalent to what the older version did:
      #		it was looking at $hadsys header-file per header-file...
      my($hadsys) = grep s!^sys/!!i , @path_h;
      @paths = qw( Sys$Library VAXC$Include );
      push @paths, ($hadsys ? 'GNU_CC_Include[vms]' : 'GNU_CC_Include[000000]');
      push @paths, qw( DECC$Library_Include DECC$System_Include );
    }
    else {
      @paths = (File::Spec->curdir(), $Config{usrinc},
		(split / +/, $Config{locincpth} // ""), '/usr/include');
    }
    foreach my $path_h (@path_h) {
        $name ||= $path_h;
    $module ||= do {
      $name =~ s/\.h$//;
      if ( $name !~ /::/ ) {
	$name =~ s#^.*/##;
	$name = "\u$name";
      }
      $name;
    };

    if( $path_h =~ s#::#/#g && $opt_n ){
	warn "Nesting of headerfile ignored with -n\n";
    }
    $path_h .= ".h" unless $path_h =~ /\.h$/;
    my $fullpath = $path_h;
    $path_h =~ s/,.*$// if $opt_x;
    $fullpath{$path_h} = $fullpath;

    # Minor trickery: we can't chdir() before we processed the headers
    # (so know the name of the extension), but the header may be in the
    # extension directory...
    my $tmp_path_h = $path_h;
    my $rel_path_h = $path_h;
    my @dirs = @paths;
    if (not -f $path_h) {
      my $found;
      for my $dir (@paths) {
	$found++, last
	  if -f ($path_h = File::Spec->catfile($dir, $tmp_path_h));
      }
      if ($found) {
	$rel_path_h = $path_h;
	$fullpath{$path_h} = $fullpath;
      } else {
	(my $epath = $module) =~ s,::,/,g;
	$epath = File::Spec->catdir('ext', $epath) if -d 'ext';
	$rel_path_h = File::Spec->catfile($epath, $tmp_path_h);
	$path_h = $tmp_path_h;	# Used during -x
	push @dirs, $epath;
      }
    }

    if (!$opt_c) {
      die "Can't find $tmp_path_h in @dirs\n"
	if ( ! $opt_f && ! -f "$rel_path_h" );
      # Scan the header file (we should deal with nested header files)
      # Record the names of simple #define constants into const_names
            # Function prototypes are processed below.
      open(CH, "<", "$rel_path_h") || die "Can't open $rel_path_h: $!\n";
    defines:
      while (<CH>) {
	if ($pre_sub_tri_graphs) {
	    # Preprocess all tri-graphs
	    # including things stuck in quoted string constants.
	    s/\?\?=/#/g;                         # | ??=|  #|
	    s/\?\?\!/|/g;                        # | ??!|  ||
	    s/\?\?'/^/g;                         # | ??'|  ^|
	    s/\?\?\(/[/g;                        # | ??(|  [|
	    s/\?\?\)/]/g;                        # | ??)|  ]|
	    s/\?\?\-/~/g;                        # | ??-|  ~|
	    s/\?\?\//\\/g;                       # | ??/|  \|
	    s/\?\?</{/g;                         # | ??<|  {|
	    s/\?\?>/}/g;                         # | ??>|  }|
	}
	if (/^[ \t]*#[ \t]*define\s+([\$\w]+)\b(?!\()\s*(?=[^"\s])(.*)/) {
	    my $def = $1;
	    my $rest = $2;
	    $rest =~ s!/\*.*?(\*/|\n)|//.*!!g; # Remove comments
	    $rest =~ s/^\s+//;
	    $rest =~ s/\s+$//;
	    if ($rest eq '') {
	      print("Skip empty $def\n") if $opt_d;
	      next defines;
	    }
	    # Cannot do: (-1) and ((LHANDLE)3) are OK:
	    #print("Skip non-wordy $def => $rest\n"),
	    #  next defines if $rest =~ /[^\w\$]/;
	    if ($rest =~ /"/) {
	      print("Skip stringy $def => $rest\n") if $opt_d;
	      next defines;
	    }
	    print "Matched $_ ($def)\n" if $opt_d;
	    $seen_define{$def} = $rest;
	    $_ = $def;
	    next if /^_.*_h_*$/i; # special case, but for what?
	    if (defined $opt_p) {
	      if (!/^$opt_p(\d)/) {
		++$prefix{$_} if s/^$opt_p//;
	      }
	      else {
		warn "can't remove $opt_p prefix from '$_'!\n";
	      }
	    }
	    $prefixless{$def} = $_;
	    if (!$fmask or /$fmask/) {
		print "... Passes mask of -M.\n" if $opt_d and $fmask;
		$const_names{$_}++;
	    }
	  }
      }
      if (defined $opt_e and !$opt_e) {
        close(CH);
      }
      else {
	# Work from miniperl too - on "normal" systems
        my $SEEK_SET = eval 'use Fcntl qw/SEEK_SET/; SEEK_SET' || 0;
        seek CH, 0, $SEEK_SET;
        my $src = do { local $/; <CH> };
        close CH;
        no warnings 'uninitialized';

        # Remove C and C++ comments
        $src =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs;
        $src =~ s#//.*$##gm;

	while ($src =~ /\benum\s*([\w_]*)\s*\{\s([^}]+)\}/gsc) {
	    my ($enum_name, $enum_body) = ($1, $2);
            # skip enums matching $opt_e
            next if $opt_e && $enum_name =~ /$opt_e/;
            my $val = 0;
            for my $item (split /,/, $enum_body) {
                next if $item =~ /\A\s*\Z/;
                my ($key, $declared_val) = $item =~ /(\w+)\s*(?:=\s*(.*))?/;
                $val = defined($declared_val) && length($declared_val) ? $declared_val : 1 + $val;
                $seen_define{$key} = $val;
                $const_names{$key} = { name => $key, macro => 1 };
            }
        } # while (...)
      } # if (!defined $opt_e or $opt_e)
    }
    }
}

# Save current directory so that C::Scan can use it
my $cwd = File::Spec->rel2abs( File::Spec->curdir );

# As Ilya suggested, use a name that contains - and then it can't clash with
# the names of any packages. A directory 'fallback' will clash with any
# new pragmata down the fallback:: tree, but that seems unlikely.
my $constscfname = 'const-c.inc';
my $constsxsfname = 'const-xs.inc';
my $fallbackdirname = 'fallback';

my $ext = chdir 'ext' ? 'ext/' : '';

my @modparts  = split(/::/,$module);
my $modpname  = join('-', @modparts);
my $modfname  = pop @modparts;
my $modpmdir  = join '/', 'lib', @modparts;
my $modpmname = join '/', $modpmdir, $modfname.'.pm';

if ($opt_O) {
	warn "Overwriting existing $ext$modpname!!!\n" if -e $modpname;
}
else {
	die "Won't overwrite existing $ext$modpname\n" if -e $modpname;
}
-d "$modpname"   || mkpath([$modpname], 0, 0775);
chdir($modpname) || die "Can't chdir $ext$modpname: $!\n";

my %types_seen;
my %std_types;
my $fdecls = [];
my $fdecls_parsed = [];
my $typedef_rex;
my %typedefs_pre;
my %known_fnames;
my %structs;

my @fnames;
my @fnames_no_prefix;
my %vdecl_hash;
my @vdecls;

if( ! $opt_X ){  # use XS, unless it was disabled
  unless ($skip_ppport) {
    require Devel::PPPort;
    warn "Writing $ext$modpname/ppport.h\n";
    Devel::PPPort::WriteFile('ppport.h')
        || die "Can't create $ext$modpname/ppport.h: $!\n";
  }
  open(XS, ">", "$modfname.xs") || die "Can't create $ext$modpname/$modfname.xs: $!\n";
  if ($opt_x) {
    warn "Scanning typemaps...\n";
    get_typemap();
    my @td;
    my @good_td;
    my $addflags = $opt_F || '';

    foreach my $filename (@path_h) {
      my $c;
      my $filter;

      if ($fullpath{$filename} =~ /,/) {
	$filename = $`;
	$filter = $';
      }
      warn "Scanning $filename for functions...\n";
      my @styles = $Config{gccversion} ? qw(C++ C9X GNU) : qw(C++ C9X);
      $c = C::Scan->new('filename' => $filename, 'filename_filter' => $filter,
        'add_cppflags' => $addflags, 'c_styles' => \@styles);
      $c->set('includeDirs' => ["$Config::Config{archlib}/CORE", $cwd]);

      $c->get('keywords')->{'__restrict'} = 1;

      push @$fdecls_parsed, @{ $c->get('parsed_fdecls') };
      push(@$fdecls, @{$c->get('fdecls')});

      push @td, @{$c->get('typedefs_maybe')};
      if ($opt_a) {
	my $structs = $c->get('typedef_structs');
	@structs{keys %$structs} = values %$structs;
      }

      if ($opt_m) {
	%vdecl_hash = %{ $c->get('vdecl_hash') };
	@vdecls = sort keys %vdecl_hash;
	for (local $_ = 0; $_ < @vdecls; ++$_) {
	  my $var = $vdecls[$_];
	  my($type, $post) = @{ $vdecl_hash{$var} };
	  if (defined $post) {
	    warn "Can't handle variable '$type $var $post', skipping.\n";
	    splice @vdecls, $_, 1;
	    redo;
	  }
	  $type = normalize_type($type);
	  $vdecl_hash{$var} = $type;
	}
      }

      unless ($tmask_all) {
	warn "Scanning $filename for typedefs...\n";
	my $td = $c->get('typedef_hash');
	# eval {require 'dumpvar.pl'; ::dumpValue($td)} or warn $@ if $opt_d;
	my @f_good_td = grep $td->{$_}[1] eq '', keys %$td;
	push @good_td, @f_good_td;
	@typedefs_pre{@f_good_td}  = map $_->[0], @$td{@f_good_td};
      }
    }
    { local $" = '|';
      $typedef_rex = qr(\b(?<!struct )(?<!enum )(?:@good_td)\b) if @good_td;
    }
    %known_fnames = map @$_[1,3], @$fdecls_parsed; # [1,3] is NAME, FULLTEXT
    if ($fmask) {
      my @good;
      for my $i (0..$#$fdecls_parsed) {
	next unless $fdecls_parsed->[$i][1] =~ /$fmask/; # [1] is NAME
	push @good, $i;
	print "... Function $fdecls_parsed->[$i][1] passes -M mask.\n"
	  if $opt_d;
      }
      $fdecls = [@$fdecls[@good]];
      $fdecls_parsed = [@$fdecls_parsed[@good]];
    }
    @fnames = sort map $_->[1], @$fdecls_parsed; # 1 is NAME
    # Sort declarations:
    {
      my %h = map( ($_->[1], $_), @$fdecls_parsed);
      $fdecls_parsed = [ @h{@fnames} ];
    }
    @fnames_no_prefix = @fnames;
    @fnames_no_prefix
      = sort map { ++$prefix{$_} if s/^$opt_p(?!\d)//; $_ } @fnames_no_prefix
         if defined $opt_p;
    # Remove macros which expand to typedefs
    print "Typedefs are @td.\n" if $opt_d;
    my %td = map {($_, $_)} @td;
    # Add some other possible but meaningless values for macros
    for my $k (qw(char double float int long short unsigned signed void)) {
      $td{"$_$k"} = "$_$k" for ('', 'signed ', 'unsigned ');
    }
    # eval {require 'dumpvar.pl'; ::dumpValue( [\@td, \%td] ); 1} or warn $@;
    my $n = 0;
    my %bad_macs;
    while (keys %td > $n) {
      $n = keys %td;
      my ($k, $v);
      while (($k, $v) = each %seen_define) {
	# print("found '$k'=>'$v'\n"),
	$bad_macs{$k} = $td{$k} = $td{$v} if exists $td{$v};
      }
    }
    # Now %bad_macs contains names of bad macros
    for my $k (keys %bad_macs) {
      delete $const_names{$prefixless{$k}};
      print "Ignoring macro $k which expands to a typedef name '$bad_macs{$k}'\n" if $opt_d;
    }
  }
}
my (@const_specs, @const_names);

for (sort(keys(%const_names))) {
    my $v = $const_names{$_};
    
    push(@const_specs, ref($v) ? $v : $_);
    push(@const_names, $_);
}

-d $modpmdir || mkpath([$modpmdir], 0, 0775);
open(PM, ">", "$modpmname") || die "Can't create $ext$modpname/$modpmname: $!\n";

$" = "\n\t";
warn "Writing $ext$modpname/$modpmname\n";

print PM <<"END";
package $module;

use $compat_version;
END

print PM <<"END" unless $skip_strict;
use strict;
END

print PM "use warnings;\n" unless $skip_warnings or $compat_version < 5.006;

unless( $opt_X || $opt_c || $opt_A ){
	# we'll have an AUTOLOAD(), and it will have $AUTOLOAD and
	# will want Carp.
	print PM <<'END';
use Carp;
END
}

print PM <<'END' unless $skip_exporter;

require Exporter;
END

my $use_Dyna = (not $opt_X and $compat_version < 5.006 and not $use_xsloader);
print PM <<"END" if $use_Dyna;  # use DynaLoader, unless XS was disabled
require DynaLoader;
END


# Are we using AutoLoader or not?
unless ($skip_autoloader) { # no autoloader whatsoever.
	unless ($opt_c) { # we're doing the AUTOLOAD
		print PM "use AutoLoader;\n";
	}
	else {
		print PM "use AutoLoader qw(AUTOLOAD);\n"
	}
}

if ( $compat_version < 5.006 ) {
    my $vars = '$VERSION @ISA';
    $vars .= ' @EXPORT @EXPORT_OK %EXPORT_TAGS' unless $skip_exporter;
    $vars .= ' $AUTOLOAD' unless $opt_X || $opt_c || $opt_A;
    $vars .= ' $XS_VERSION' if $opt_B && !$opt_X;
    print PM "use vars qw($vars);";
}

# Determine @ISA.
my @modISA;
push @modISA, 'Exporter'	unless $skip_exporter;
push @modISA, 'DynaLoader' 	if $use_Dyna;  # no XS
my $myISA = "our \@ISA = qw(@modISA);";
$myISA =~ s/^our // if $compat_version < 5.006;

print PM "\n$myISA\n\n";

my @exported_names = (@const_names, @fnames_no_prefix, map '$'.$_, @vdecls);

my $tmp='';
$tmp .= <<"END" unless $skip_exporter;
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

# This allows declaration	use $module ':all';
# If you do not need this, moving things directly into \@EXPORT or \@EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
	@exported_names
) ] );

our \@EXPORT_OK = ( \@{ \$EXPORT_TAGS{'all'} } );

our \@EXPORT = qw(
	@const_names
);

END

$tmp .= "our \$VERSION = '$TEMPLATE_VERSION';\n";
if ($opt_B) {
    $tmp .= "our \$XS_VERSION = \$VERSION;\n" unless $opt_X;
    $tmp .= "\$VERSION = eval \$VERSION;  # see L<perlmodstyle>\n";
}
$tmp .= "\n";

$tmp =~ s/^our //mg if $compat_version < 5.006;
print PM $tmp;

if (@vdecls) {
    printf PM "our(@{[ join ', ', map '$'.$_, @vdecls ]});\n\n";
}


print PM autoload ($module, $compat_version) unless $opt_c or $opt_X;

if( ! $opt_X ){ # print bootstrap, unless XS is disabled
  if ($use_Dyna) {
	$tmp = <<"END";
bootstrap $module \$VERSION;
END
  } else {
	$tmp = <<"END";
require XSLoader;
XSLoader::load('$module', \$VERSION);
END
  }
  $tmp =~ s:\$VERSION:\$XS_VERSION:g if $opt_B;
  print PM $tmp;
}

# tying the variables can happen only after bootstrap
if (@vdecls) {
    printf PM <<END;
{
@{[ join "\n", map "    _tievar_$_(\$$_);", @vdecls ]}
}

END
}

my $after;
if( $opt_P ){ # if POD is disabled
	$after = '__END__';
}
else {
	$after = '=cut';
}

print PM <<"END";

# Preloaded methods go here.
END

print PM <<"END" unless $opt_A;

# Autoload methods go after $after, and are processed by the autosplit program.
END

print PM <<"END";

1;
__END__
END

my ($email,$author,$licence);

eval {
       my $username;
       ($username,$author) = (getpwuid($>))[0,6];
       if (defined $username && defined $author) {
	   $author =~ s/,.*$//; # in case of sub fields
	   my $domain = $Config{'mydomain'};
	   $domain =~ s/^\.//;
	   $email = "$username\@$domain";
       }
     };

$author =~ s/'/\\'/g if defined $author;
$author ||= "A. U. Thor";
$email  ||= 'a.u.thor@a.galaxy.far.far.away';

$licence = sprintf << "DEFAULT", $^V;
Copyright (C) ${\(1900 + (localtime) [5])} by $author

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version %vd or,
at your option, any later version of Perl 5 you may have available.
DEFAULT

my $revhist = '';
$revhist = <<EOT if $opt_C;
#
#=head1 HISTORY
#
#=over 8
#
#=item $TEMPLATE_VERSION
#
#Original version; created by h2xs $H2XS_VERSION with options
#
#  @ARGS
#
#=back
#
EOT

my $exp_doc = $skip_exporter ? '' : <<EOD;
#
#=head2 EXPORT
#
#None by default.
#
EOD

if (@const_names and not $opt_P) {
  $exp_doc .= <<EOD unless $skip_exporter;
#=head2 Exportable constants
#
#  @{[join "\n  ", @const_names]}
#
EOD
}

if (defined $fdecls and @$fdecls and not $opt_P) {
  $exp_doc .= <<EOD unless $skip_exporter;
#=head2 Exportable functions
#
EOD

#  $exp_doc .= <<EOD if $opt_p;
#When accessing these functions from Perl, prefix C<$opt_p> should be removed.
#
#EOD
  $exp_doc .= <<EOD unless $skip_exporter;
#  @{[join "\n  ", @known_fnames{@fnames}]}
#
EOD
}

my $meth_doc = '';

if ($opt_x && $opt_a) {
  my($name, $struct);
  $meth_doc .= accessor_docs($name, $struct)
    while ($name, $struct) = each %structs;
}

# Prefix the default licence with hash symbols.
# Is this just cargo cult - it seems that the first thing that happens to this
# block is that all the hashes are then s///g out.
my $licence_hash = $licence;
$licence_hash =~ s/^/#/gm;

my $pod;
$pod = <<"END" unless $opt_P;
## Below is stub documentation for your module. You'd better edit it!
#
#=head1 NAME
#
#$module - Perl extension for blah blah blah
#
#=head1 SYNOPSIS
#
#  use $module;
#  blah blah blah
#
#=head1 DESCRIPTION
#
#Stub documentation for $module, created by h2xs. It looks like the
#author of the extension was negligent enough to leave the stub
#unedited.
#
#Blah blah blah.
$exp_doc$meth_doc$revhist
#
#=head1 SEE ALSO
#
#Mention other useful documentation such as the documentation of
#related modules or operating system documentation (such as man pages
#in UNIX), or any relevant external documentation such as RFCs or
#standards.
#
#If you have a mailing list set up for your module, mention it here.
#
#If you have a web site set up for your module, mention it here.
#
#=head1 AUTHOR
#
#$author, E<lt>${email}E<gt>
#
#=head1 COPYRIGHT AND LICENSE
#
$licence_hash
#
#=cut
END

$pod =~ s/^\#//gm unless $opt_P;
print PM $pod unless $opt_P;

close PM;


if( ! $opt_X ){ # print XS, unless it is disabled
warn "Writing $ext$modpname/$modfname.xs\n";

print XS <<"END";
#define PERL_NO_GET_CONTEXT
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

END

print XS <<"END" unless $skip_ppport;
#include "ppport.h"

END

if( @path_h ){
    foreach my $path_h (@path_h_ini) {
	my($h) = $path_h;
	$h =~ s#^/usr/include/##;
	if ($^O eq 'VMS') { $h =~ s#.*vms\]#sys/# or $h =~ s#.*[:>\]]##; }
        print XS qq{#include <$h>\n};
    }
    print XS "\n";
}

print XS <<"END" if $opt_g;

/* Global Data */

#define MY_CXT_KEY "${module}::_guts" XS_VERSION

typedef struct {
    /* Put Global Data in here */
    int dummy;		/* you can access this elsewhere as MY_CXT.dummy */
} my_cxt_t;

START_MY_CXT

END

my %pointer_typedefs;
my %struct_typedefs;

sub td_is_pointer {
  my $type = shift;
  my $out = $pointer_typedefs{$type};
  return $out if defined $out;
  my $otype = $type;
  $out = ($type =~ /\*$/);
  # This converts only the guys which do not have trailing part in the typedef
  if (not $out
      and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) {
    $type = normalize_type($type);
    print "Is-Pointer: Type mutation via typedefs: $otype ==> $type\n"
      if $opt_d;
    $out = td_is_pointer($type);
  }
  return ($pointer_typedefs{$otype} = $out);
}

sub td_is_struct {
  my $type = shift;
  my $out = $struct_typedefs{$type};
  return $out if defined $out;
  my $otype = $type;
  $out = ($type =~ /^(struct|union)\b/) && !td_is_pointer($type);
  # This converts only the guys which do not have trailing part in the typedef
  if (not $out
      and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) {
    $type = normalize_type($type);
    print "Is-Struct: Type mutation via typedefs: $otype ==> $type\n"
      if $opt_d;
    $out = td_is_struct($type);
  }
  return ($struct_typedefs{$otype} = $out);
}

print_tievar_subs(\*XS, $_, $vdecl_hash{$_}) for @vdecls;

if( ! $opt_c ) {
  # We write the "sample" files used when this module is built by perl without
  # ExtUtils::Constant.
  # h2xs will later check that these are the same as those generated by the
  # code embedded into Makefile.PL
  unless (-d $fallbackdirname) {
    mkdir "$fallbackdirname" or die "Cannot mkdir $fallbackdirname: $!\n";
  }
  warn "Writing $ext$modpname/$fallbackdirname/$constscfname\n";
  warn "Writing $ext$modpname/$fallbackdirname/$constsxsfname\n";
  my $cfallback = File::Spec->catfile($fallbackdirname, $constscfname);
  my $xsfallback = File::Spec->catfile($fallbackdirname, $constsxsfname);
  WriteConstants ( C_FILE =>       $cfallback,
                   XS_FILE =>      $xsfallback,
                   DEFAULT_TYPE => $opt_t,
                   NAME =>         $module,
                   NAMES =>        \@const_specs,
                 );
  print XS "#include \"$constscfname\"\n";
}


my $prefix = defined $opt_p ? "PREFIX = $opt_p" : '';

# Now switch from C to XS by issuing the first MODULE declaration:
print XS <<"END";

MODULE = $module		PACKAGE = $module		$prefix

END

# If a constant() function was #included then output a corresponding
# XS declaration:
print XS "INCLUDE: $constsxsfname\n" unless $opt_c;

print XS <<"END" if $opt_g;

BOOT:
{
    MY_CXT_INIT;
    /* If any of the fields in the my_cxt_t struct need
       to be initialised, do it here.
     */
}

END

foreach (sort keys %const_xsub) {
    print XS <<"END";
char *
$_()

    CODE:
#ifdef $_
	RETVAL = $_;
#else
	croak("Your vendor has not defined the $module macro $_");
#endif

    OUTPUT:
	RETVAL

END
}

my %seen_decl;
my %typemap;

sub print_decl {
  my $fh = shift;
  my $decl = shift;
  my ($type, $name, $args) = @$decl;
  return if $seen_decl{$name}++; # Need to do the same for docs as well?

  my @argnames = map {$_->[1]} @$args;
  my @argtypes = map { normalize_type( $_->[0], 1 ) } @$args;
  if ($opt_k) {
    s/^\s*const\b\s*// for @argtypes;
  }
  my @argarrays = map { $_->[4] || '' } @$args;
  my $numargs = @$args;
  if ($numargs and $argtypes[-1] eq '...') {
    $numargs--;
    $argnames[-1] = '...';
  }
  local $" = ', ';
  $type = normalize_type($type, 1);

  print $fh <<"EOP";

$type
$name(@argnames)
EOP

  for my $arg (0 .. $numargs - 1) {
    print $fh <<"EOP";
	$argtypes[$arg]	$argnames[$arg]$argarrays[$arg]
EOP
  }
}

sub print_tievar_subs {
  my($fh, $name, $type) = @_;
  print $fh <<END;
I32
_get_$name(IV index, SV *sv) {
    dSP;
    PUSHMARK(SP);
    XPUSHs(sv);
    PUTBACK;
    (void)call_pv("$module\::_get_$name", G_DISCARD);
    return (I32)0;
}

I32
_set_$name(IV index, SV *sv) {
    dSP;
    PUSHMARK(SP);
    XPUSHs(sv);
    PUTBACK;
    (void)call_pv("$module\::_set_$name", G_DISCARD);
    return (I32)0;
}

END
}

sub print_tievar_xsubs {
  my($fh, $name, $type) = @_;
  print $fh <<END;
void
_tievar_$name(sv)
	SV* sv
    PREINIT:
	struct ufuncs uf;
    CODE:
	uf.uf_val = &_get_$name;
	uf.uf_set = &_set_$name;
	uf.uf_index = (IV)&_get_$name;
	sv_magic(sv, 0, 'U', (char*)&uf, sizeof(uf));

void
_get_$name(THIS)
	$type THIS = NO_INIT
    CODE:
	THIS = $name;
    OUTPUT:
	SETMAGIC: DISABLE
	THIS

void
_set_$name(THIS)
	$type THIS
    CODE:
	$name = THIS;

END
}

sub print_accessors {
  my($fh, $name, $struct) = @_;
  return unless defined $struct && $name !~ /\s|_ANON/;
  $name = normalize_type($name);
  my $ptrname = normalize_type("$name *");
  print $fh <<"EOF";

MODULE = $module		PACKAGE = ${name}		$prefix

$name *
_to_ptr(THIS)
	$name THIS = NO_INIT
    PROTOTYPE: \$
    CODE:
	if (sv_derived_from(ST(0), "$name")) {
	    STRLEN len;
	    char *s = SvPV((SV*)SvRV(ST(0)), len);
	    if (len != sizeof(THIS))
		croak("Size \%d of packed data != expected \%d",
			len, sizeof(THIS));
	    RETVAL = ($name *)s;
	}
	else
	    croak("THIS is not of type $name");
    OUTPUT:
	RETVAL

$name
new(CLASS)
	char *CLASS = NO_INIT
    PROTOTYPE: \$
    CODE:
	Zero((void*)&RETVAL, sizeof(RETVAL), char);
    OUTPUT:
	RETVAL

MODULE = $module		PACKAGE = ${name}Ptr		$prefix

EOF
  my @items = @$struct;
  while (@items) {
    my $item = shift @items;
    if ($item->[0] =~ /_ANON/) {
      if (defined $item->[2]) {
	push @items, map [
	  @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]",
	], @{ $structs{$item->[0]} };
      } else {
	push @items, @{ $structs{$item->[0]} };
      }
    } else {
      my $type = normalize_type($item->[0]);
      my $ttype = $structs{$type} ? normalize_type("$type *") : $type;
      print $fh <<"EOF";
$ttype
$item->[2](THIS, __value = NO_INIT)
	$ptrname THIS
	$type __value
    PROTOTYPE: \$;\$
    CODE:
	if (items > 1)
	    THIS->$item->[-1] = __value;
	RETVAL = @{[
	    $type eq $ttype ? "THIS->$item->[-1]" : "&(THIS->$item->[-1])"
	]};
    OUTPUT:
	RETVAL

EOF
    }
  }
}

sub accessor_docs {
  my($name, $struct) = @_;
  return unless defined $struct && $name !~ /\s|_ANON/;
  $name = normalize_type($name);
  my $ptrname = $name . 'Ptr';
  my @items = @$struct;
  my @list;
  while (@items) {
    my $item = shift @items;
    if ($item->[0] =~ /_ANON/) {
      if (defined $item->[2]) {
	push @items, map [
	  @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]",
	], @{ $structs{$item->[0]} };
      } else {
	push @items, @{ $structs{$item->[0]} };
      }
    } else {
      push @list, $item->[2];
    }
  }
  my $methods = (join '(...)>, C<', @list) . '(...)';

  my $pod = <<"EOF";
#
#=head2 Object and class methods for C<$name>/C<$ptrname>
#
#The principal Perl representation of a C object of type C<$name> is an
#object of class C<$ptrname> which is a reference to an integer
#representation of a C pointer.  To create such an object, one may use
#a combination
#
#  my \$buffer = $name->new();
#  my \$obj = \$buffer->_to_ptr();
#
#This exercises the following two methods, and an additional class
#C<$name>, the internal representation of which is a reference to a
#packed string with the C structure.  Keep in mind that \$buffer should
#better survive longer than \$obj.
#
#=over
#
#=item C<\$object_of_type_$name-E<gt>_to_ptr()>
#
#Converts an object of type C<$name> to an object of type C<$ptrname>.
#
#=item C<$name-E<gt>new()>
#
#Creates an empty object of type C<$name>.  The corresponding packed
#string is zeroed out.
#
#=item C<$methods>
#
#return the current value of the corresponding element if called
#without additional arguments.  Set the element to the supplied value
#(and return the new value) if called with an additional argument.
#
#Applicable to objects of type C<$ptrname>.
#
#=back
#
EOF
  $pod =~ s/^\#//gm;
  return $pod;
}

# Should be called before any actual call to normalize_type().
sub get_typemap {
  # We do not want to read ./typemap by obvios reasons.
  my @tm =  qw(../../../typemap ../../typemap ../typemap);
  my $stdtypemap =  "$Config::Config{privlib}/ExtUtils/typemap";
  unshift @tm, $stdtypemap;
  my $proto_re = "[" . quotemeta('\$%&*@;') . "]" ;

  # Start with useful default values
  $typemap{float} = 'T_NV';

  foreach my $typemap (@tm) {
    next unless -e $typemap ;
    # skip directories, binary files etc.
    warn " Scanning $typemap\n";
    warn("Warning: ignoring non-text typemap file '$typemap'\n"), next
      unless -T $typemap ;
    open(TYPEMAP, "<", $typemap)
      or warn ("Warning: could not open typemap file '$typemap': $!\n"), next;
    my $mode = 'Typemap';
    while (<TYPEMAP>) {
      next if /^\s*\#/;
      if (/^INPUT\s*$/)   { $mode = 'Input'; next; }
      elsif (/^OUTPUT\s*$/)  { $mode = 'Output'; next; }
      elsif (/^TYPEMAP\s*$/) { $mode = 'Typemap'; next; }
      elsif ($mode eq 'Typemap') {
	next if /^\s*($|\#)/ ;
	my ($type, $image);
	if ( ($type, $image) =
	     /^\s*(.*?\S)\s+(\S+)\s*($proto_re*)\s*$/o
	     # This may reference undefined functions:
	     and not ($image eq 'T_PACKED' and $typemap eq $stdtypemap)) {
	  $typemap{normalize_type($type)} = $image;
	}
      }
    }
    close(TYPEMAP) or die "Cannot close $typemap: $!";
  }
  %std_types = %types_seen;
  %types_seen = ();
}


sub normalize_type {		# Second arg: do not strip const's before \*
  my $type = shift;
  my $do_keep_deep_const = shift;
  # If $do_keep_deep_const this is heuristic only
  my $keep_deep_const = ($do_keep_deep_const ? '\b(?![^(,)]*\*)' : '');
  my $ignore_mods
    = "(?:\\b(?:(?:__const__|const)$keep_deep_const|static|inline|__inline__)\\b\\s*)*";
  if ($do_keep_deep_const) {	# Keep different compiled /RExen/o separately!
    $type =~ s/$ignore_mods//go;
  }
  else {
    $type =~ s/$ignore_mods//go;
  }
  $type =~ s/([^\s\w])/ $1 /g;
  $type =~ s/\s+$//;
  $type =~ s/^\s+//;
  $type =~ s/\s+/ /g;
  $type =~ s/\* (?=\*)/*/g;
  $type =~ s/\. \. \./.../g;
  $type =~ s/ ,/,/g;
  $types_seen{$type}++
    unless $type eq '...' or $type eq 'void' or $std_types{$type};
  $type;
}

my $need_opaque;

sub assign_typemap_entry {
  my $type = shift;
  my $otype = $type;
  my $entry;
  if ($tmask and $type =~ /$tmask/) {
    print "Type $type matches -o mask\n" if $opt_d;
    $entry = (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ");
  }
  elsif ($typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) {
    $type = normalize_type $type;
    print "Type mutation via typedefs: $otype ==> $type\n" if $opt_d;
    $entry = assign_typemap_entry($type);
  }
  # XXX good do better if our UV happens to be long long
  return "T_NV" if $type =~ /^(unsigned\s+)?long\s+(long|double)\z/;
  $entry ||= $typemap{$otype}
    || (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ");
  $typemap{$otype} = $entry;
  $need_opaque = 1 if $entry eq "T_OPAQUE_STRUCT";
  return $entry;
}

for (@vdecls) {
  print_tievar_xsubs(\*XS, $_, $vdecl_hash{$_});
}

if ($opt_x) {
  for my $decl (@$fdecls_parsed) { print_decl(\*XS, $decl) }
  if ($opt_a) {
    while (my($name, $struct) = each %structs) {
      print_accessors(\*XS, $name, $struct);
    }
  }
}

close XS;

if (%types_seen) {
  my $type;
  warn "Writing $ext$modpname/typemap\n";
  open TM, ">", "typemap" or die "Cannot open typemap file for write: $!";

  for $type (sort keys %types_seen) {
    my $entry = assign_typemap_entry $type;
    print TM $type, "\t" x (5 - int((length $type)/8)), "\t$entry\n"
  }

  print TM <<'EOP' if $need_opaque; # Older Perls do not have correct entry
#############################################################################
INPUT
T_OPAQUE_STRUCT
	if (sv_derived_from($arg, \"${ntype}\")) {
	    STRLEN len;
	    char  *s = SvPV((SV*)SvRV($arg), len);

	    if (len != sizeof($var))
		croak(\"Size %d of packed data != expected %d\",
			len, sizeof($var));
	    $var = *($type *)s;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
#############################################################################
OUTPUT
T_OPAQUE_STRUCT
	sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var));
EOP

  close TM or die "Cannot close typemap file for write: $!";
}

} # if( ! $opt_X )

warn "Writing $ext$modpname/Makefile.PL\n";
open(PL, ">", "Makefile.PL") || die "Can't create $ext$modpname/Makefile.PL: $!\n";

my $prereq_pm = '';

if ( $compat_version < 5.006002 and $new_test )
{
  $prereq_pm .= q%'Test::More'  =>  0, %;
}
elsif ( $compat_version < 5.006002 )
{
  $prereq_pm .= q%'Test'        =>  0, %;
}

if (!$opt_X and $use_xsloader)
{
  $prereq_pm .= q%'XSLoader'    =>  0, %;
}

print PL <<"END";
use $compat_version;
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
    NAME              => '$module',
    VERSION_FROM      => '$modpmname', # finds \$VERSION, requires EU::MM from perl >= 5.5
    PREREQ_PM         => {$prereq_pm}, # e.g., Module::Name => 1.1
    ABSTRACT_FROM     => '$modpmname', # retrieve abstract from module
    AUTHOR            => '$author <$email>',
    #LICENSE           => 'perl',
    #Value must be from legacy list of licenses here
    #http://search.cpan.org/perldoc?Module%3A%3ABuild%3A%3AAPI
END
if (!$opt_X) { # print C stuff, unless XS is disabled
  $opt_F = '' unless defined $opt_F;
  my $I = (((glob '*.h') || (glob '*.hh')) ? '-I.' : '');
  my $Ihelp = ($I ? '-I. ' : '');
  my $Icomment = ($I ? '' : <<EOC);
	# Insert -I. if you add *.h files later:
EOC

  print PL <<END;
    LIBS              => ['$extralibs'], # e.g., '-lm'
    DEFINE            => '$opt_F', # e.g., '-DHAVE_SOMETHING'
$Icomment    INC               => '$I', # e.g., '${Ihelp}-I/usr/include/other'
END

  my $C = grep {$_ ne "$modfname.c"}
    (glob '*.c'), (glob '*.cc'), (glob '*.C');
  my $Cpre = ($C ? '' : '# ');
  my $Ccomment = ($C ? '' : <<EOC);
	# Un-comment this if you add C files to link with later:
EOC

  print PL <<END;
$Ccomment    ${Cpre}OBJECT            => '\$(O_FILES)', # link all the C files too
END
} # ' # Grr
print PL ");\n";
if (!$opt_c) {
  my $generate_code =
    WriteMakefileSnippet ( C_FILE =>       $constscfname,
                           XS_FILE =>      $constsxsfname,
                           DEFAULT_TYPE => $opt_t,
                           NAME =>         $module,
                           NAMES =>        \@const_specs,
                 );
  print PL <<"END";
if  (eval {require ExtUtils::Constant; 1}) {
  # If you edit these definitions to change the constants used by this module,
  # you will need to use the generated $constscfname and $constsxsfname
  # files to replace their "fallback" counterparts before distributing your
  # changes.
$generate_code
}
else {
  use File::Copy;
  use File::Spec;
  foreach my \$file ('$constscfname', '$constsxsfname') {
    my \$fallback = File::Spec->catfile('$fallbackdirname', \$file);
    copy (\$fallback, \$file) or die "Can't copy \$fallback to \$file: \$!";
  }
}
END

  eval $generate_code;
  if ($@) {
    warn <<"EOM";
Attempting to test constant code in $ext$modpname/Makefile.PL:
$generate_code
__END__
gave unexpected error $@
Please report the circumstances of this bug in h2xs version $H2XS_VERSION
using the perlbug script.
EOM
  } else {
    my $fail;

    foreach my $file ($constscfname, $constsxsfname) {
      my $fallback = File::Spec->catfile($fallbackdirname, $file);
      if (compare($file, $fallback)) {
        warn << "EOM";
Files "$ext$modpname/$fallbackdirname/$file" and "$ext$modpname/$file" differ.
EOM
        $fail++;
      }
    }
    if ($fail) {
      warn fill ('','', <<"EOM") . "\n";
It appears that the code in $ext$modpname/Makefile.PL does not autogenerate
the files $ext$modpname/$constscfname and $ext$modpname/$constsxsfname
correctly.

Please report the circumstances of this bug in h2xs version $H2XS_VERSION
using the perlbug script.
EOM
    } else {
      unlink $constscfname, $constsxsfname;
    }
  }
}
close(PL) || die "Can't close $ext$modpname/Makefile.PL: $!\n";

# Create a simple README since this is a CPAN requirement
# and it doesn't hurt to have one
warn "Writing $ext$modpname/README\n";
open(RM, ">", "README") || die "Can't create $ext$modpname/README:$!\n";
my $thisyear = (gmtime)[5] + 1900;
my $rmhead = "$modpname version $TEMPLATE_VERSION";
my $rmheadeq = "=" x length($rmhead);

my $rm_prereq;

if ( $compat_version < 5.006002 and $new_test )
{
  $rm_prereq = 'Test::More';
}
elsif ( $compat_version < 5.006002 )
{
  $rm_prereq = 'Test';
}
else
{
  $rm_prereq = 'blah blah blah';
}

print RM <<_RMEND_;
$rmhead
$rmheadeq

The README is used to introduce the module and provide instructions on
how to install the module, any machine dependencies it may have (for
example C compilers and installed libraries) and any other information
that should be provided before the module is installed.

A README file is required for CPAN modules since CPAN extracts the
README file from a module distribution so that people browsing the
archive can use it get an idea of the modules uses. It is usually a
good idea to provide version information here so that people can
decide whether fixes for the module are worth downloading.

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires these other modules and libraries:

  $rm_prereq

COPYRIGHT AND LICENCE

Put the correct copyright and licence information here.

$licence

_RMEND_
close(RM) || die "Can't close $ext$modpname/README: $!\n";

my $testdir  = "t";
my $testfile = "$testdir/$modpname.t";
unless (-d "$testdir") {
  mkdir "$testdir" or die "Cannot mkdir $testdir: $!\n";
}
warn "Writing $ext$modpname/$testfile\n";
my $tests = @const_names ? 2 : 1;

open EX, ">", "$testfile" or die "Can't create $ext$modpname/$testfile: $!\n";

print EX <<_END_;
# Before 'make install' is performed this script should be runnable with
# 'make test'. After 'make install' it should work as 'perl $modpname.t'

#########################

# change 'tests => $tests' to 'tests => last_test_to_print';

use strict;
use warnings;

_END_

my $test_mod = 'Test::More';

if ( $old_test or ($compat_version < 5.006002 and not $new_test ))
{
  my $test_mod = 'Test';

  print EX <<_END_;
use Test;
BEGIN { plan tests => $tests };
use $module;
ok(1); # If we made it this far, we're ok.

_END_

   if (@const_names) {
     my $const_names = join " ", @const_names;
     print EX <<'_END_';

my $fail;
foreach my $constname (qw(
_END_

     print EX wrap ("\t", "\t", $const_names);
     print EX (")) {\n");

     print EX <<_END_;
  next if (eval "my \\\$a = \$constname; 1");
  if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) {
    print "# pass: \$\@";
  } else {
    print "# fail: \$\@";
    \$fail = 1;
  }
}
if (\$fail) {
  print "not ok 2\\n";
} else {
  print "ok 2\\n";
}

_END_
  }
}
else
{
  print EX <<_END_;
use Test::More tests => $tests;
BEGIN { use_ok('$module') };

_END_

   if (@const_names) {
     my $const_names = join " ", @const_names;
     print EX <<'_END_';

my $fail = 0;
foreach my $constname (qw(
_END_

     print EX wrap ("\t", "\t", $const_names);
     print EX (")) {\n");

     print EX <<_END_;
  next if (eval "my \\\$a = \$constname; 1");
  if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) {
    print "# pass: \$\@";
  } else {
    print "# fail: \$\@";
    \$fail = 1;
  }

}

ok( \$fail == 0 , 'Constants' );
_END_
  }
}

print EX <<_END_;
#########################

# Insert your test code below, the $test_mod module is use()ed here so read
# its man page ( perldoc $test_mod ) for help writing this test script.

_END_

close(EX) || die "Can't close $ext$modpname/$testfile: $!\n";

unless ($opt_C) {
  warn "Writing $ext$modpname/Changes\n";
  $" = ' ';
  open(EX, ">", "Changes") || die "Can't create $ext$modpname/Changes: $!\n";
  @ARGS = map {/[\s\"\'\`\$*?^|&<>\[\]\{\}\(\)]/ ? "'$_'" : $_} @ARGS;
  print EX <<EOP;
Revision history for Perl extension $module.

$TEMPLATE_VERSION  @{[scalar localtime]}
\t- original version; created by h2xs $H2XS_VERSION with options
\t\t@ARGS

EOP
  close(EX) || die "Can't close $ext$modpname/Changes: $!\n";
}

warn "Writing $ext$modpname/MANIFEST\n";
open(MANI, '>', 'MANIFEST') or die "Can't create MANIFEST: $!";
my @files = grep { -f } (<*>, <t/*>, <$fallbackdirname/*>, <$modpmdir/*>);
if (!@files) {
  eval {opendir(D,'.');};
  unless ($@) { @files = readdir(D); closedir(D); }
}
if (!@files) { @files = map {chomp && $_} `ls`; }
if ($^O eq 'VMS') {
  foreach (@files) {
    # Clip trailing '.' for portability -- non-VMS OSs don't expect it
    s%\.$%%;
    # Fix up for case-sensitive file systems
    s/$modfname/$modfname/i && next;
    $_ = "\U$_" if $_ eq 'manifest' or $_ eq 'changes';
    $_ = 'Makefile.PL' if $_ eq 'makefile.pl';
  }
}
print MANI join("\n",@files), "\n";
close MANI;

NineSec Team - 2022
Name
Size
Last Modified
Owner
Permissions
Options
..
--
March 29 2022 11:10:06
root
0755
X11
--
April 08 2025 12:08:09
root
0755
7zr
0.039 KB
August 09 2019 9:00:38
root
0755
GET
15.82 KB
November 29 2019 4:16:23
root
0755
HEAD
15.82 KB
November 29 2019 4:16:23
root
0755
Mail
110.242 KB
August 08 2018 11:12:01
root
0755
POST
15.82 KB
November 29 2019 4:16:23
root
0755
[
58.336 KB
September 05 2019 12:38:40
root
0755
ab
58.336 KB
October 26 2023 3:54:09
root
0755
add-apt-repository
7.241 KB
March 21 2023 4:23:10
root
0755
addpart
30.227 KB
May 30 2023 5:42:35
root
0755
addr2line
34.703 KB
January 02 2024 4:48:50
root
0755
appres
14.305 KB
February 29 2020 7:29:50
root
0755
apropos
55.211 KB
February 25 2020 6:13:45
root
0755
apt
18.383 KB
October 06 2023 11:42:30
root
0755
apt-add-repository
7.241 KB
March 21 2023 4:23:10
root
0755
apt-cache
86.461 KB
October 06 2023 11:42:30
root
0755
apt-cdrom
30.461 KB
October 06 2023 11:42:30
root
0755
apt-config
26.383 KB
October 06 2023 11:42:30
root
0755
apt-extracttemplates
26.469 KB
October 06 2023 11:42:30
root
0755
apt-ftparchive
274.469 KB
October 06 2023 11:42:30
root
0755
apt-get
46.461 KB
October 06 2023 11:42:30
root
0755
apt-key
27.276 KB
October 06 2023 11:42:30
root
0755
apt-mark
62.461 KB
October 06 2023 11:42:30
root
0755
apt-sortpkgs
46.391 KB
October 06 2023 11:42:30
root
0755
ar
66.43 KB
January 02 2024 4:48:50
root
0755
arch
38.367 KB
September 05 2019 12:38:40
root
0755
arpaname
14.297 KB
September 19 2023 1:22:19
root
0755
as
680.297 KB
January 02 2024 4:48:50
root
0755
aspell
166.5 KB
July 22 2021 8:20:06
root
0755
aspell-import
1.996 KB
July 22 2021 8:20:06
root
0755
atobm
14.297 KB
February 29 2020 12:10:29
root
0755
atop
290.258 KB
January 25 2019 5:41:25
root
0755
atopconvert
24.156 KB
January 25 2019 5:41:25
root
0755
atopsar
290.258 KB
January 25 2019 5:41:25
root
0755
awk
158.742 KB
February 16 2020 8:41:09
root
0755
awstats
669.616 KB
February 27 2023 9:27:24
root
0755
b2sum
58.367 KB
September 05 2019 12:38:40
root
0755
base32
42.336 KB
September 05 2019 12:38:40
root
0755
base64
42.336 KB
September 05 2019 12:38:40
root
0755
basename
38.336 KB
September 05 2019 12:38:40
root
0755
bashbug
6.635 KB
April 18 2022 11:14:46
root
0755
bitmap
106.391 KB
February 29 2020 12:10:29
root
0755
bmtoa
14.32 KB
February 29 2020 12:10:29
root
0755
bootctl
62.344 KB
November 21 2023 10:10:21
root
0755
broadwayd
118.383 KB
February 15 2022 6:50:52
root
0755
bsd-from
14.148 KB
March 30 2020 11:26:14
root
0755
bsd-mailx
110.242 KB
August 08 2018 11:12:01
root
0755
bsd-write
14.148 KB
March 30 2020 11:26:14
root
2755
bundle2.7
0.517 KB
July 06 2023 12:57:08
root
0755
bundler2.7
0.519 KB
July 06 2023 12:57:08
root
0755
busctl
86.344 KB
November 21 2023 10:10:21
root
0755
c++
1.1 MB
October 24 2022 11:28:06
root
0755
c++filt
30.266 KB
January 02 2024 4:48:50
root
0755
c89
0.418 KB
May 07 2006 11:28:01
root
0755
c89-gcc
0.418 KB
May 07 2006 11:28:01
root
0755
c99
0.443 KB
April 11 2011 9:54:37
root
0755
c99-gcc
0.443 KB
April 11 2011 9:54:37
root
0755
c_rehash
6.646 KB
January 31 2024 9:45:27
root
0755
cal
36.945 KB
March 30 2020 11:26:14
root
0755
calendar
34.633 KB
March 30 2020 11:26:14
root
0755
captoinfo
90.414 KB
May 16 2023 8:47:48
root
0755
catchsegv
3.253 KB
November 22 2023 2:32:50
root
0755
catman
38.688 KB
February 25 2020 6:13:45
root
0755
cautious-launcher
0.833 KB
October 19 2019 1:05:50
root
0755
cc
1.1 MB
October 24 2022 11:28:06
root
0755
cct
30.148 KB
February 13 2020 4:29:49
root
0755
certbot
0.376 KB
October 26 2020 3:42:45
root
0755
cgi-fcgi
18.148 KB
March 22 2020 4:45:46
root
0755
chage
82.531 KB
November 29 2022 12:53:10
root
2755
chardet3
0.38 KB
December 17 2019 1:31:30
root
0755
chardetect3
0.38 KB
December 17 2019 1:31:30
root
0755
chattr
14.313 KB
June 02 2022 2:59:32
root
0755
chcon
70.336 KB
September 05 2019 12:38:40
root
0755
check-language-support
2.706 KB
September 27 2020 10:07:12
root
0755
checkgid
14.148 KB
October 26 2023 3:54:09
root
0755
chfn
83.07 KB
November 29 2022 12:53:10
root
4755
choom
50.227 KB
May 30 2023 5:42:35
root
0755
chrt
38.227 KB
May 30 2023 5:42:35
root
0755
chsh
51.797 KB
November 29 2022 12:53:10
root
4755
ckbcomp
146.391 KB
March 27 2020 11:10:06
root
0755
cksum
38.336 KB
September 05 2019 12:38:40
root
0755
clear
14.313 KB
May 16 2023 8:47:48
root
0755
clear_console
14.227 KB
April 18 2022 11:14:46
root
0755
cmp
50.094 KB
April 08 2019 2:04:00
root
0755
codepage
13.992 KB
May 09 2019 5:22:51
root
0755
col
18.148 KB
March 30 2020 11:26:14
root
0755
colcrt
14.148 KB
March 30 2020 11:26:14
root
0755
colrm
14.148 KB
March 30 2020 11:26:14
root
0755
column
14.164 KB
March 30 2020 11:26:14
root
0755
comm
42.367 KB
September 05 2019 12:38:40
root
0755
compose
18.054 KB
October 19 2019 1:05:50
root
0755
corelist
14.734 KB
November 23 2023 4:02:19
root
0755
corepack
2.08 MB
March 28 2023 10:16:29
root
0755
cpan
7.964 KB
November 23 2023 4:02:19
root
0755
cpan5.30-x86_64-linux-gnu
7.984 KB
November 23 2023 4:02:19
root
0755
cpp
1.1 MB
October 24 2022 11:28:06
root
0755
cpp-9
1.1 MB
October 24 2022 11:28:06
root
0755
crontab
42.695 KB
February 13 2020 9:44:42
root
2755
cs2cs
26.25 KB
February 13 2020 4:29:49
root
0755
csplit
54.367 KB
September 05 2019 12:38:40
root
0755
ctstat
30.508 KB
February 13 2020 6:21:59
root
0755
curl
234.227 KB
November 29 2023 8:26:14
root
0755
cut
46.367 KB
September 05 2019 12:38:40
root
0755
cvtsudoers
266.695 KB
April 04 2023 1:56:28
root
0755
daemon
236.984 KB
September 05 2019 12:47:28
root
0755
db5.3_archive
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_checkpoint
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_deadlock
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_dump
18.023 KB
March 21 2020 1:26:50
root
0755
db5.3_hotbackup
18.023 KB
March 21 2020 1:26:50
root
0755
db5.3_load
34.023 KB
March 21 2020 1:26:50
root
0755
db5.3_log_verify
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_printlog
34.023 KB
March 21 2020 1:26:50
root
0755
db5.3_recover
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_replicate
18.023 KB
March 21 2020 1:26:50
root
0755
db5.3_stat
18.023 KB
March 21 2020 1:26:50
root
0755
db5.3_upgrade
14.023 KB
March 21 2020 1:26:50
root
0755
db5.3_verify
14.023 KB
March 21 2020 1:26:50
root
0755
db_archive
14.023 KB
March 21 2020 1:26:50
root
0755
db_checkpoint
14.023 KB
March 21 2020 1:26:50
root
0755
db_deadlock
14.023 KB
March 21 2020 1:26:50
root
0755
db_dump
18.023 KB
March 21 2020 1:26:50
root
0755
db_hotbackup
18.023 KB
March 21 2020 1:26:50
root
0755
db_load
34.023 KB
March 21 2020 1:26:50
root
0755
db_log_verify
14.023 KB
March 21 2020 1:26:50
root
0755
db_printlog
34.023 KB
March 21 2020 1:26:50
root
0755
db_recover
14.023 KB
March 21 2020 1:26:50
root
0755
db_replicate
18.023 KB
March 21 2020 1:26:50
root
0755
db_stat
18.023 KB
March 21 2020 1:26:50
root
0755
db_upgrade
14.023 KB
March 21 2020 1:26:50
root
0755
db_verify
14.023 KB
March 21 2020 1:26:50
root
0755
dbilogstrip
1.348 KB
July 30 2021 1:22:12
root
0755
dbiprof
6.061 KB
July 30 2021 1:22:12
root
0755
dbiproxy
5.268 KB
July 30 2021 1:22:12
root
0755
dbus-cleanup-sockets
14.141 KB
October 25 2022 3:09:26
root
0755
dbus-daemon
243.195 KB
October 25 2022 3:09:26
root
0755
dbus-monitor
30.141 KB
October 25 2022 3:09:26
root
0755
dbus-run-session
14.141 KB
October 25 2022 3:09:26
root
0755
dbus-send
30.141 KB
October 25 2022 3:09:26
root
0755
dbus-update-activation-environment
14.141 KB
October 25 2022 3:09:26
root
0755
dbus-uuidgen
14.141 KB
October 25 2022 3:09:26
root
0755
deallocvt
14.07 KB
May 09 2019 5:22:51
root
0755
deb-systemd-helper
20.828 KB
June 21 2019 8:56:55
root
0755
deb-systemd-invoke
4.326 KB
June 21 2019 8:56:55
root
0755
debconf
2.792 KB
August 03 2019 12:51:13
root
0755
debconf-apt-progress
11.271 KB
August 03 2019 12:51:13
root
0755
debconf-communicate
0.594 KB
August 03 2019 12:51:13
root
0755
debconf-copydb
1.679 KB
August 03 2019 12:51:13
root
0755
debconf-escape
0.632 KB
August 03 2019 12:51:13
root
0755
debconf-set-selections
2.866 KB
August 03 2019 12:51:13
root
0755
debconf-show
1.784 KB
August 03 2019 12:51:13
root
0755
debian-distro-info
22.891 KB
April 25 2023 3:57:38
root
0755
delaunay
22.383 KB
February 03 2017 11:04:42
root
0755
delpart
30.227 KB
May 30 2023 5:42:35
root
0755
delv
48.391 KB
September 19 2023 1:22:19
root
0755
dh_bash-completion
2.389 KB
January 26 2020 4:42:18
root
0755
dh_perl_dbi
1.04 KB
July 30 2021 1:22:12
root
0755
dh_perl_openssl
1.363 KB
February 03 2020 12:05:01
root
0755
dh_python3-ply
2.281 KB
June 01 2021 5:05:04
root
0755
diff
214.336 KB
April 08 2019 2:04:00
root
0755
diff3
66.211 KB
April 08 2019 2:04:00
root
0755
dig
134.797 KB
September 19 2023 1:22:19
root
0755
dircolors
46.344 KB
September 05 2019 12:38:40
root
0755
dirmngr
569.859 KB
July 04 2022 6:20:36
root
0755
dirmngr-client
119.063 KB
July 04 2022 6:20:36
root
0755
dirname
38.336 KB
September 05 2019 12:38:40
root
0755
distro-info
22.891 KB
April 25 2023 3:57:38
root
0755
dkimproxy-sign
3.896 KB
February 08 2020 7:07:01
root
0755
dkimproxy-verify
2.248 KB
February 08 2020 7:07:01
root
0755
do-release-upgrade
9.987 KB
March 14 2023 1:29:22
root
0755
dotlockfile
22.148 KB
October 11 2019 7:55:06
root
2755
doveadm
637.016 KB
July 07 2022 7:17:38
root
0755
doveconf
180.68 KB
July 07 2022 7:17:38
root
0755
dpkg
302.68 KB
May 25 2022 1:14:20
root
0755
dpkg-architecture
12.551 KB
May 25 2022 1:14:20
root
0755
dpkg-buildflags
7.388 KB
May 25 2022 1:14:20
root
0755
dpkg-buildpackage
29.893 KB
May 25 2022 1:14:20
root
0755
dpkg-checkbuilddeps
7.445 KB
May 25 2022 1:14:20
root
0755
dpkg-deb
174.539 KB
May 25 2022 1:14:20
root
0755
dpkg-distaddfile
2.717 KB
May 25 2022 1:14:20
root
0755
dpkg-divert
150.594 KB
May 25 2022 1:14:20
root
0755
dpkg-genbuildinfo
16.401 KB
May 25 2022 1:14:20
root
0755
dpkg-genchanges
17.082 KB
May 25 2022 1:14:20
root
0755
dpkg-gencontrol
13.866 KB
May 25 2022 1:14:20
root
0755
dpkg-gensymbols
10.646 KB
May 25 2022 1:14:20
root
0755
dpkg-maintscript-helper
20.033 KB
May 25 2022 1:14:20
root
0755
dpkg-mergechangelogs
8.347 KB
May 25 2022 1:14:20
root
0755
dpkg-name
6.63 KB
May 25 2022 1:14:20
root
0755
dpkg-parsechangelog
4.46 KB
May 25 2022 1:14:20
root
0755
dpkg-query
162.586 KB
May 25 2022 1:14:20
root
0755
dpkg-scanpackages
8.494 KB
May 25 2022 1:14:20
root
0755
dpkg-scansources
8.952 KB
May 25 2022 1:14:20
root
0755
dpkg-shlibdeps
30.68 KB
May 25 2022 1:14:20
root
0755
dpkg-source
22.482 KB
May 25 2022 1:14:20
root
0755
dpkg-split
122.484 KB
May 25 2022 1:14:20
root
0755
dpkg-statoverride
62.266 KB
May 25 2022 1:14:20
root
0755
dpkg-trigger
82.492 KB
May 25 2022 1:14:20
root
0755
dpkg-vendor
3.186 KB
May 25 2022 1:14:20
root
0755
dsync
637.016 KB
July 07 2022 7:17:38
root
0755
du
106.367 KB
September 05 2019 12:38:40
root
0755
dumpkeys
174.523 KB
May 09 2019 5:22:51
root
0755
dvipdf
0.983 KB
October 12 2023 3:06:46
root
0755
dwp
1.95 MB
January 02 2024 4:48:50
root
0755
edit
18.054 KB
October 19 2019 1:05:50
root
0755
editor
312.633 KB
April 10 2020 4:12:30
root
0755
editres
72.703 KB
February 29 2020 7:29:50
root
0755
eject
34.844 KB
July 08 2019 10:40:51
root
0755
elfedit
42.672 KB
January 02 2024 4:48:50
root
0755
enc2xs
41.124 KB
November 23 2023 4:02:19
root
0755
encguess
2.994 KB
November 23 2023 4:02:19
root
0755
enchant-2
22.375 KB
November 05 2020 3:13:12
root
0755
enchant-lsmod-2
14.305 KB
November 05 2020 3:13:12
root
0755
env
42.336 KB
September 05 2019 12:38:40
root
0755
envsubst
42.227 KB
March 22 2020 4:42:12
root
0755
eps2eps
0.624 KB
October 12 2023 3:06:46
root
0755
eqn
201.5 KB
March 21 2020 1:27:30
root
0755
erb
4.944 KB
July 06 2023 12:57:08
root
0755
erb2.7
4.944 KB
July 06 2023 12:57:08
root
0755
etckeeper
2.806 KB
March 30 2020 12:24:10
root
0755
ex
1.29 MB
December 07 2023 4:42:49
root
0755
expand
42.367 KB
September 05 2019 12:38:40
root
0755
expiry
30.578 KB
November 29 2022 12:53:10
root
2755
expr
54.336 KB
September 05 2019 12:38:40
root
0755
factor
78.367 KB
September 05 2019 12:38:40
root
0755
fail2ban-client
1.386 KB
March 02 2020 2:20:11
root
0755
fail2ban-python
5.21 MB
November 22 2023 11:22:35
root
0755
fail2ban-regex
1.25 KB
March 02 2020 2:20:11
root
0755
fail2ban-server
1.384 KB
March 02 2020 2:20:11
root
0755
fail2ban-testcases
2.231 KB
March 02 2020 2:20:11
root
0755
faillog
22.594 KB
November 29 2022 12:53:10
root
0755
faked-sysv
34.266 KB
September 07 2019 12:48:18
root
0755
faked-tcp
34.25 KB
September 07 2019 12:48:18
root
0755
fakeroot
3.761 KB
September 07 2019 12:48:18
root
0755
fakeroot-sysv
3.761 KB
September 07 2019 12:48:18
root
0755
fakeroot-tcp
3.756 KB
September 07 2019 12:48:18
root
0755
fallocate
34.227 KB
May 30 2023 5:42:35
root
0755
fc-cache
22.227 KB
April 06 2020 12:09:42
root
0755
fc-cat
18.227 KB
April 06 2020 12:09:42
root
0755
fc-conflist
14.227 KB
April 06 2020 12:09:42
root
0755
fc-list
14.227 KB
April 06 2020 12:09:42
root
0755
fc-match
14.227 KB
April 06 2020 12:09:42
root
0755
fc-pattern
14.227 KB
April 06 2020 12:09:42
root
0755
fc-query
14.227 KB
April 06 2020 12:09:42
root
0755
fc-scan
14.227 KB
April 06 2020 12:09:42
root
0755
fc-validate
14.227 KB
April 06 2020 12:09:42
root
0755
fcgistarter
14.148 KB
October 26 2023 3:54:09
root
0755
file
26.469 KB
January 16 2020 9:39:11
root
0755
fincore
34.273 KB
May 30 2023 5:42:35
root
0755
find
312.656 KB
February 18 2020 2:05:59
root
0755
firefox
2.604 KB
February 06 2024 2:59:08
root
0755
firewall-cmd
115.96 KB
April 04 2020 7:50:39
root
0755
firewall-offline-cmd
104.194 KB
April 04 2020 7:50:39
root
0755
flock
34.305 KB
May 30 2023 5:42:35
root
0755
fmt
46.336 KB
September 05 2019 12:38:40
root
0755
fold
42.336 KB
September 05 2019 12:38:40
root
0755
formail
42.148 KB
November 16 2017 11:42:36
root
0755
free
26.234 KB
October 31 2023 12:35:56
root
0755
from
14.148 KB
March 30 2020 11:26:14
root
0755
ftp
106.695 KB
February 24 2019 2:39:21
root
0755
ftpcount
23.445 KB
February 27 2020 8:34:56
root
0755
ftpdctl
98.273 KB
February 27 2020 8:34:56
root
0755
ftptop
27.164 KB
February 27 2020 8:34:56
root
0755
ftpwho
39.586 KB
February 27 2020 8:34:56
root
0755
funzip
26.148 KB
October 07 2022 7:09:47
root
0755
futurize
0.375 KB
January 25 2023 9:33:14
root
0755
g++
1.1 MB
October 24 2022 11:28:06
root
0755
g++-9
1.1 MB
October 24 2022 11:28:06
root
0755
gapplication
22.383 KB
June 08 2023 4:20:31
root
0755
gcc
1.1 MB
October 24 2022 11:28:06
root
0755
gcc-9
1.1 MB
October 24 2022 11:28:06
root
0755
gcc-ar
34.633 KB
October 24 2022 11:28:06
root
0755
gcc-ar-9
34.633 KB
October 24 2022 11:28:06
root
0755
gcc-nm
34.633 KB
October 24 2022 11:28:06
root
0755
gcc-nm-9
34.633 KB
October 24 2022 11:28:06
root
0755
gcc-ranlib
34.633 KB
October 24 2022 11:28:06
root
0755
gcc-ranlib-9
34.633 KB
October 24 2022 11:28:06
root
0755
gcov
656.234 KB
October 24 2022 11:28:06
root
0755
gcov-9
656.234 KB
October 24 2022 11:28:06
root
0755
gcov-dump
528.133 KB
October 24 2022 11:28:06
root
0755
gcov-dump-9
528.133 KB
October 24 2022 11:28:06
root
0755
gcov-tool
544.195 KB
October 24 2022 11:28:06
root
0755
gcov-tool-9
544.195 KB
October 24 2022 11:28:06
root
0755
gdbus
50.383 KB
June 08 2023 4:20:31
root
0755
gdk-pixbuf-csource
14.328 KB
September 07 2022 5:05:42
root
0755
gdk-pixbuf-pixdata
14.313 KB
September 07 2022 5:05:42
root
0755
gdk-pixbuf-thumbnailer
18.391 KB
September 07 2022 5:05:42
root
0755
gem
0.532 KB
July 06 2023 12:57:08
root
0755
gem2.7
0.532 KB
July 06 2023 12:57:08
root
0755
gen-auth
14.428 KB
February 15 2022 9:03:43
root
0755
gencat
26.367 KB
November 22 2023 2:32:50
root
0755
geod
22.164 KB
February 13 2020 4:29:49
root
0755
geqn
201.5 KB
March 21 2020 1:27:30
root
0755
getconf
34.289 KB
November 22 2023 2:32:50
root
0755
getent
38.648 KB
November 22 2023 2:32:50
root
0755
getkeycodes
14.07 KB
May 09 2019 5:22:51
root
0755
getopt
22.227 KB
May 30 2023 5:42:35
root
0755
gettext
42.227 KB
March 22 2020 4:42:12
root
0755
gettext.sh
4.521 KB
March 22 2020 4:42:12
root
0755
ghostscript
14.148 KB
October 12 2023 3:06:46
root
0755
gie
42.375 KB
February 13 2020 4:29:49
root
0755
ginstall-info
115.242 KB
October 11 2019 12:32:01
root
0755
gio
90.398 KB
June 08 2023 4:20:31
root
0755
gio-querymodules
14.305 KB
June 08 2023 4:20:31
root
0755
git
2.98 MB
April 26 2023 2:52:23
root
0755
git-receive-pack
2.98 MB
April 26 2023 2:52:23
root
0755
git-shell
1.71 MB
April 26 2023 2:52:23
root
0755
git-upload-archive
2.98 MB
April 26 2023 2:52:23
root
0755
git-upload-pack
2.98 MB
April 26 2023 2:52:23
root
0755
glib-compile-schemas
50.375 KB
June 08 2023 4:20:31
root
0755
gnome-www-browser
2.604 KB
February 06 2024 2:59:08
root
0755
gold
2.21 MB
January 02 2024 4:48:50
root
0755
gpasswd
86.391 KB
November 29 2022 12:53:10
root
4755
gpg
1.02 MB
July 04 2022 6:20:36
root
0755
gpg-agent
409.039 KB
July 04 2022 6:20:36
root
0755
gpg-connect-agent
163.156 KB
July 04 2022 6:20:36
root
0755
gpg-wks-server
203.195 KB
July 04 2022 6:20:36
root
0755
gpg-zip
3.434 KB
July 04 2022 6:20:36
root
0755
gpgcompose
874.289 KB
July 04 2022 6:20:36
root
0755
gpgconf
174.656 KB
July 04 2022 6:20:36
root
0755
gpgparsemail
34.375 KB
July 04 2022 6:20:36
root
0755
gpgsm
507.242 KB
July 04 2022 6:20:36
root
0755
gpgsplit
86.758 KB
July 04 2022 6:20:36
root
0755
gpgtar
151.625 KB
July 04 2022 6:20:36
root
0755
gpgv
447.148 KB
July 04 2022 6:20:36
root
0755
gpic
216.344 KB
March 21 2020 1:27:30
root
0755
gprof
99.883 KB
January 02 2024 4:48:50
root
0755
gresource
22.305 KB
June 08 2023 4:20:31
root
0755
groff
121.531 KB
March 21 2020 1:27:30
root
0755
grog
2.711 KB
March 21 2020 1:27:30
root
0755
grops
181.938 KB
March 21 2020 1:27:30
root
0755
grotty
129.563 KB
March 21 2020 1:27:30
root
0755
groups
38.336 KB
September 05 2019 12:38:40
root
0755
gs
14.148 KB
October 12 2023 3:06:46
root
0755
gsbj
0.342 KB
October 12 2023 3:06:46
root
0755
gsdj
0.344 KB
October 12 2023 3:06:46
root
0755
gsdj500
0.344 KB
October 12 2023 3:06:46
root
0755
gsettings
30.383 KB
June 08 2023 4:20:31
root
0755
gslj
0.345 KB
October 12 2023 3:06:46
root
0755
gslp
0.342 KB
October 12 2023 3:06:46
root
0755
gsnd
0.271 KB
October 12 2023 3:06:46
root
0755
gtbl
138.508 KB
March 21 2020 1:27:30
root
0755
gtk-builder-tool
34.734 KB
February 15 2022 6:50:52
root
0755
gtk-encode-symbolic-svg
18.414 KB
February 15 2022 6:50:52
root
0755
gtk-launch
18.461 KB
February 15 2022 6:50:52
root
0755
gtk-query-settings
14.305 KB
February 15 2022 6:50:52
root
0755
gtk-update-icon-cache
38.625 KB
February 15 2022 6:50:52
root
0755
gts-config
2.585 KB
February 03 2017 11:04:42
root
0755
gts2dxf
9.867 KB
February 03 2017 11:04:42
root
0755
gts2oogl
26.727 KB
February 03 2017 11:04:42
root
0755
gts2stl
10.008 KB
February 03 2017 11:04:42
root
0755
gts2xyz
9.867 KB
February 03 2017 11:04:42
root
0755
gtscheck
9.977 KB
February 03 2017 11:04:42
root
0755
gtscompare
22.164 KB
February 03 2017 11:04:42
root
0755
gtstemplate
5.967 KB
February 03 2017 11:04:42
root
0755
h2ph
28.539 KB
November 23 2023 4:02:19
root
0755
h2xs
59.439 KB
November 23 2023 4:02:19
root
0755
hd
34.25 KB
March 30 2020 11:26:14
root
0755
head
46.367 KB
September 05 2019 12:38:40
root
0755
helpztags
2.455 KB
January 30 2020 12:11:47
root
0755
hexdump
34.25 KB
March 30 2020 11:26:14
root
0755
host
102.766 KB
September 19 2023 1:22:19
root
0755
hostid
38.336 KB
September 05 2019 12:38:40
root
0755
hostnamectl
26.219 KB
November 21 2023 10:10:21
root
0755
htcacheclean
38.156 KB
October 26 2023 3:54:09
root
0755
htdbm
26.148 KB
October 26 2023 3:54:09
root
0755
htdigest
14.148 KB
October 26 2023 3:54:09
root
0755
htpasswd
26.148 KB
October 26 2023 3:54:09
root
0755
hwe-support-status
10.576 KB
November 15 2023 11:28:54
root
0755
i386
26.5 KB
May 30 2023 5:42:35
root
0755
ibd2sdi
6.48 MB
January 17 2024 9:13:42
root
0755
iceauth
38.117 KB
March 18 2018 11:19:30
root
0755
ico
50.438 KB
February 29 2020 12:10:29
root
0755
iconv
66.406 KB
November 22 2023 2:32:50
root
0755
id
46.367 KB
September 05 2019 12:38:40
root
0755
info
309.742 KB
October 11 2019 12:32:01
root
0755
infobrowser
309.742 KB
October 11 2019 12:32:01
root
0755
infocmp
62.383 KB
May 16 2023 8:47:48
root
0755
infotocap
90.414 KB
May 16 2023 8:47:48
root
0755
innochecksum
6.37 MB
January 17 2024 9:13:42
root
0755
inotifywait
30.305 KB
August 06 2019 6:42:10
root
0755
inotifywatch
30.305 KB
August 06 2019 6:42:10
root
0755
install
154.406 KB
September 05 2019 12:38:40
root
0755
install-info
115.242 KB
October 11 2019 12:32:01
root
0755
instmodsh
4.268 KB
November 23 2023 4:02:19
root
0755
invgeod
22.164 KB
February 13 2020 4:29:49
root
0755
invproj
26.164 KB
February 13 2020 4:29:49
root
0755
ionice
30.227 KB
May 30 2023 5:42:35
root
0755
ipcmk
34.297 KB
May 30 2023 5:42:35
root
0755
ipcrm
34.227 KB
May 30 2023 5:42:35
root
0755
ipcs
66.227 KB
May 30 2023 5:42:35
root
0755
iptables-xml
96.969 KB
May 09 2023 8:39:57
root
0755
irb
0.495 KB
July 06 2023 12:57:08
root
0755
irb2.7
0.495 KB
July 06 2023 12:57:08
root
0755
ischroot
14.195 KB
December 07 2019 3:13:44
root
0755
ispell-wrapper
7.053 KB
November 15 2018 4:24:46
root
0755
jk_uchroot
30.469 KB
November 11 2019 5:23:32
root
4755
join
54.367 KB
September 05 2019 12:38:40
root
0755
json_pp
4.558 KB
November 23 2023 4:02:19
root
0755
json_xs
6.849 KB
October 19 2019 10:04:01
root
0755
kbdinfo
14.07 KB
May 09 2019 5:22:51
root
0755
kbxutil
174.969 KB
July 04 2022 6:20:36
root
0755
kernel-install
5.069 KB
April 01 2020 7:23:42
root
0755
killall
31.273 KB
November 12 2019 12:16:21
root
0755
l4p-tmpl
1.803 KB
August 01 2017 10:39:59
root
0755
last
46.227 KB
May 30 2023 5:42:35
root
0755
lastb
46.227 KB
May 30 2023 5:42:35
root
0755
lastlog
31.656 KB
November 29 2022 12:53:10
root
0755
lcf
7.604 KB
December 14 2018 9:51:14
root
0755
ld
1.66 MB
January 02 2024 4:48:50
root
0755
ld.bfd
1.66 MB
January 02 2024 4:48:50
root
0755
ld.gold
2.21 MB
January 02 2024 4:48:50
root
0755
ldd
5.301 KB
November 22 2023 2:32:50
root
0755
less
175.844 KB
July 02 2020 1:25:13
root
0755
lessecho
14.313 KB
July 02 2020 1:25:13
root
0755
lessfile
8.363 KB
September 03 2019 6:41:52
root
0755
lesskey
23.719 KB
July 02 2020 1:25:13
root
0755
lesspipe
8.363 KB
September 03 2019 6:41:52
root
0755
letsencrypt
0.376 KB
October 26 2020 3:42:45
root
0755
lexgrog
98.945 KB
February 25 2020 6:13:45
root
0755
libnetcfg
15.405 KB
November 23 2023 4:02:19
root
0755
link
38.336 KB
September 05 2019 12:38:40
root
0755
linux32
26.5 KB
May 30 2023 5:42:35
root
0755
linux64
26.5 KB
May 30 2023 5:42:35
root
0755
listres
14.727 KB
February 29 2020 7:29:50
root
0755
lnstat
30.508 KB
February 13 2020 6:21:59
root
0755
loadkeys
210.57 KB
May 09 2019 5:22:51
root
0755
loadunimap
34.133 KB
May 09 2019 5:22:51
root
0755
locale
57.563 KB
November 22 2023 2:32:50
root
0755
locale-check
14.156 KB
January 02 2024 6:12:43
root
0755
localectl
26.219 KB
November 21 2023 10:10:21
root
0755
localedef
326.961 KB
November 22 2023 2:32:50
root
0755
lockfile
17.875 KB
November 16 2017 11:42:36
root
2755
logger
50.82 KB
May 30 2023 5:42:35
root
0755
logname
38.336 KB
September 05 2019 12:38:40
root
0755
logresolve
14.156 KB
October 26 2023 3:54:09
root
0755
look
14.383 KB
March 30 2020 11:26:14
root
0755
lorder
2.817 KB
March 30 2020 11:26:14
root
0755
lsattr
14.313 KB
June 02 2022 2:59:32
root
0755
lsb_release
3.553 KB
August 25 2019 11:11:20
root
0755
lscpu
98.227 KB
May 30 2023 5:42:35
root
0755
lshw
841.195 KB
December 17 2020 10:34:41
root
0755
lsipc
94.227 KB
May 30 2023 5:42:35
root
0755
lslocks
38.555 KB
May 30 2023 5:42:35
root
0755
lslogins
66.227 KB
May 30 2023 5:42:35
root
0755
lsmem
66.227 KB
May 30 2023 5:42:35
root
0755
lsns
50.234 KB
May 30 2023 5:42:35
root
0755
lsof
171.625 KB
December 25 2020 5:57:35
root
0755
lspci
91.953 KB
April 01 2021 12:55:11
root
0755
lspgpot
1.056 KB
August 28 2017 12:22:54
root
0755
lsusb
242.508 KB
October 01 2019 11:03:11
root
0755
ltrace
301.328 KB
February 01 2019 1:10:30
root
0755
luit
52.422 KB
February 29 2020 7:29:50
root
0755
lwp-download
10.051 KB
November 29 2019 4:16:23
root
0755
lwp-dump
2.647 KB
November 29 2019 4:16:23
root
0755
lwp-mirror
2.356 KB
November 29 2019 4:16:23
root
0755
lwp-request
15.82 KB
November 29 2019 4:16:23
root
0755
lynx
1.85 MB
February 28 2020 3:28:01
root
0755
lzcat
78.5 KB
April 08 2022 2:56:10
root
0755
lzcmp
6.477 KB
April 08 2022 2:56:10
root
0755
lzdiff
6.477 KB
April 08 2022 2:56:10
root
0755
lzegrep
5.764 KB
April 08 2022 2:56:10
root
0755
lzfgrep
5.764 KB
April 08 2022 2:56:10
root
0755
lzgrep
5.764 KB
April 08 2022 2:56:10
root
0755
lzless
1.76 KB
April 08 2022 2:56:10
root
0755
lzma
78.5 KB
April 08 2022 2:56:10
root
0755
lzmainfo
14.227 KB
April 08 2022 2:56:10
root
0755
lzmore
2.11 KB
April 08 2022 2:56:10
root
0755
mail
110.242 KB
August 08 2018 11:12:01
root
0755
maildirmake.dovecot
0.509 KB
April 11 2021 5:50:21
root
0755
mailq
34.305 KB
January 29 2024 9:49:03
root
0755
mailstat
5.722 KB
November 16 2017 11:42:36
root
0755
mailx
110.242 KB
August 08 2018 11:12:01
root
0755
make
225.555 KB
July 28 2018 12:07:31
root
0755
make-first-existing-target
4.79 KB
July 28 2018 12:07:31
root
0755
man
116.828 KB
February 25 2020 6:13:45
root
0755
man-recode
26.898 KB
February 25 2020 6:13:45
root
0755
mandb
139.094 KB
February 25 2020 6:13:45
root
0755
manpath
38.703 KB
February 25 2020 6:13:45
root
0755
mapscrn
26.133 KB
May 09 2019 5:22:51
root
0755
mawk
158.742 KB
February 16 2020 8:41:09
root
0755
mcookie
34.297 KB
May 30 2023 5:42:35
root
0755
md5sum
46.367 KB
September 05 2019 12:38:40
root
0755
md5sum.textutils
46.367 KB
September 05 2019 12:38:40
root
0755
mdig
50.398 KB
September 19 2023 1:22:19
root
0755
mesg
14.227 KB
May 30 2023 5:42:35
root
0755
migrate-pubring-from-classic-gpg
2.988 KB
January 06 2021 7:10:35
root
0755
mk_modmap
15.784 KB
May 09 2019 5:22:51
root
0755
mkfifo
66.336 KB
September 05 2019 12:38:40
root
0755
mkpasswd
26.227 KB
February 16 2020 10:25:51
root
0755
mlock
14.148 KB
August 26 2019 10:52:52
root
2755
mtr
80.25 KB
August 20 2019 11:26:21
root
0755
mtr-packet
38.375 KB
August 20 2019 11:26:21
root
0755
mtrace
6.346 KB
November 22 2023 2:32:50
root
0755
my_print_defaults
6.29 MB
January 17 2024 9:13:42
root
0755
myisam_ftdump
6.58 MB
January 17 2024 9:13:42
root
0755
myisamchk
6.69 MB
January 17 2024 9:13:42
root
0755
myisamlog
6.53 MB
January 17 2024 9:13:42
root
0755
myisampack
6.6 MB
January 17 2024 9:13:42
root
0755
mysql
7.33 MB
January 17 2024 9:13:42
root
0755
mysql_config_editor
6.31 MB
January 17 2024 9:13:42
root
0755
mysql_migrate_keyring
7.24 MB
January 17 2024 9:13:42
root
0755
mysql_secure_installation
7.16 MB
January 17 2024 9:13:42
root
0755
mysql_ssl_rsa_setup
6.33 MB
January 17 2024 9:13:42
root
0755
mysql_tzinfo_to_sql
6.23 MB
January 17 2024 9:13:42
root
0755
mysql_upgrade
7.26 MB
January 17 2024 9:13:42
root
0755
mysqladmin
7.17 MB
January 17 2024 9:13:42
root
0755
mysqlanalyze
7.18 MB
January 17 2024 9:13:42
root
0755
mysqlbinlog
7.62 MB
January 17 2024 9:13:42
root
0755
mysqlcheck
7.18 MB
January 17 2024 9:13:42
root
0755
mysqld_multi
26.677 KB
January 17 2024 9:13:42
root
0755
mysqld_safe
28.454 KB
January 17 2024 9:13:42
root
0755
mysqldump
7.25 MB
January 17 2024 9:13:42
root
0755
mysqldumpslow
7.489 KB
January 17 2024 9:13:42
root
0755
mysqlimport
7.17 MB
January 17 2024 9:13:42
root
0755
mysqloptimize
7.18 MB
January 17 2024 9:13:42
root
0755
mysqlpump
7.6 MB
January 17 2024 9:13:42
root
0755
mysqlrepair
7.18 MB
January 17 2024 9:13:42
root
0755
mysqlreport
38.102 KB
June 14 2023 9:23:16
root
0755
mysqlshow
7.17 MB
January 17 2024 9:13:42
root
0755
mysqlslap
7.18 MB
January 17 2024 9:13:42
root
0755
named-rrchecker
22.297 KB
September 19 2023 1:22:19
root
0755
namei
34.227 KB
May 30 2023 5:42:35
root
0755
nawk
158.742 KB
February 16 2020 8:41:09
root
0755
ncal
36.945 KB
March 30 2020 11:26:14
root
0755
neqn
0.892 KB
March 21 2020 1:27:30
root
0755
net-server
3.338 KB
April 03 2020 5:02:06
root
0755
netkit-ftp
106.695 KB
February 24 2019 2:39:21
root
0755
networkd-dispatcher
19.712 KB
May 04 2022 3:49:53
root
0755
newaliases
34.305 KB
January 29 2024 9:49:03
root
0755
newgrp
43.734 KB
November 29 2022 12:53:10
root
4755
ngettext
42.227 KB
March 22 2020 4:42:12
root
0755
nice
42.336 KB
September 05 2019 12:38:40
root
0755
nip2
1.02 MB
September 19 2018 11:30:07
root
0755
nl
42.43 KB
September 05 2019 12:38:40
root
0755
nm
51.43 KB
January 02 2024 4:48:50
root
0755
node
78.78 MB
August 09 2023 12:24:22
root
0755
nohup
42.336 KB
September 05 2019 12:38:40
root
0755
npm
0.053 KB
February 16 2023 4:41:30
root
0755
nproc
42.336 KB
September 05 2019 12:38:40
root
0755
npx
2.77 KB
February 16 2023 4:41:30
root
0755
nroff
3.216 KB
March 21 2020 1:27:30
root
0755
nsenter
34.43 KB
May 30 2023 5:42:35
root
0755
nslookup
106.797 KB
September 19 2023 1:22:19
root
0755
nstat
78.234 KB
February 13 2020 6:21:59
root
0755
nsupdate
70.523 KB
September 19 2023 1:22:19
root
0755
ntfsdecrypt
50.273 KB
November 01 2022 12:56:50
root
0755
numfmt
66.398 KB
September 05 2019 12:38:40
root
0755
objcopy
182.477 KB
January 02 2024 4:48:50
root
0755
objdump
392.828 KB
January 02 2024 4:48:50
root
0755
oclock
27.719 KB
February 29 2020 12:10:29
root
0755
od
70.367 KB
September 05 2019 12:38:40
root
0755
odbcinst
22 KB
January 14 2019 9:05:00
root
0755
on_ac_power
2.176 KB
July 20 2019 5:43:51
root
0755
openssl
735.68 KB
January 31 2024 9:45:27
root
0755
p7zip
4.643 KB
August 09 2019 9:00:38
root
0755
pager
175.844 KB
July 02 2020 1:25:13
root
0755
paperconf
13.992 KB
June 26 2019 12:04:32
root
0755
partx
118.234 KB
May 30 2023 5:42:35
root
0755
passwd
66.609 KB
November 29 2022 12:53:10
root
4755
paste
42.367 KB
September 05 2019 12:38:40
root
0755
pasteurize
0.379 KB
January 25 2023 9:33:14
root
0755
patch
190.523 KB
July 27 2019 12:10:00
root
0755
pathchk
38.336 KB
September 05 2019 12:38:40
root
0755
pbr
0.148 KB
April 09 2020 9:32:59
root
0755
pdb3
61.268 KB
November 22 2023 11:22:35
root
0755
pdb3.8
61.268 KB
November 22 2023 11:22:35
root
0755
pdf2dsc
0.682 KB
October 12 2023 3:06:46
root
0755
pdf2ps
0.888 KB
October 12 2023 3:06:46
root
0755
pear
0.774 KB
March 22 2022 11:59:18
root
0755
peardev
0.795 KB
March 22 2022 11:59:18
root
0755
pecl
0.71 KB
March 22 2022 11:59:18
root
0755
peekfd
14.148 KB
November 12 2019 12:16:21
root
0755
perl
3.32 MB
November 23 2023 4:02:19
root
0755
perl5.30-x86_64-linux-gnu
14.305 KB
November 23 2023 4:02:19
root
0755
perl5.30.0
3.32 MB
November 23 2023 4:02:19
root
0755
perlbug
45.279 KB
November 23 2023 4:02:19
root
0755
perldoc
0.122 KB
October 27 2019 5:52:24
root
0755
perlivp
10.609 KB
November 23 2023 4:02:19
root
0755
perlthanks
45.279 KB
November 23 2023 4:02:19
root
0755
perror
7.62 MB
January 17 2024 9:13:42
root
0755
pf2afm
0.486 KB
October 12 2023 3:06:46
root
0755
pfbtopfa
0.504 KB
October 12 2023 3:06:46
root
0755
pftp
106.695 KB
February 24 2019 2:39:21
root
0755
pgrep
30.242 KB
October 31 2023 12:35:56
root
0755
phar
14.882 KB
January 20 2024 3:16:18
root
0755
phar.default
14.882 KB
January 20 2024 3:16:18
root
0755
phar.phar
14.882 KB
January 20 2024 3:16:18
root
0755
phar.phar.default
14.882 KB
January 20 2024 3:16:18
root
0755
phar.phar5.6
14.479 KB
September 02 2023 9:57:07
root
0755
phar.phar7.4
14.536 KB
September 02 2023 10:03:15
root
0755
phar.phar8.0
15.017 KB
September 02 2023 10:04:32
root
0755
phar.phar8.1
14.887 KB
December 21 2023 9:19:26
root
0755
phar.phar8.2
14.885 KB
January 20 2024 3:16:39
root
0755
phar.phar8.3
14.882 KB
January 20 2024 3:16:18
root
0755
phar5.6
14.479 KB
September 02 2023 9:57:07
root
0755
phar7.4
14.536 KB
September 02 2023 10:03:15
root
0755
phar7.4.phar
14.536 KB
September 02 2023 10:03:15
root
0755
phar8.0
15.017 KB
September 02 2023 10:04:32
root
0755
phar8.0.phar
15.017 KB
September 02 2023 10:04:32
root
0755
phar8.1
14.887 KB
December 21 2023 9:19:26
root
0755
phar8.1.phar
14.887 KB
December 21 2023 9:19:26
root
0755
phar8.2
14.885 KB
January 20 2024 3:16:39
root
0755
phar8.2.phar
14.885 KB
January 20 2024 3:16:39
root
0755
phar8.3
14.882 KB
January 20 2024 3:16:18
root
0755
phar8.3.phar
14.882 KB
January 20 2024 3:16:18
root
0755
php
5.51 MB
January 20 2024 3:16:18
root
0755
php-cgi
5.39 MB
January 20 2024 3:16:18
root
0755
php-cgi.default
5.39 MB
January 20 2024 3:16:18
root
0755
php-cgi5.6
4.29 MB
September 02 2023 9:57:07
root
0755
php-cgi7.4
4.47 MB
September 02 2023 10:03:15
root
0755
php-cgi8.0
4.65 MB
September 02 2023 10:04:32
root
0755
php-cgi8.1
5.2 MB
December 21 2023 9:19:26
root
0755
php-cgi8.2
5.31 MB
January 20 2024 3:16:39
root
0755
php-cgi8.3
5.39 MB
January 20 2024 3:16:18
root
0755
php.default
5.51 MB
January 20 2024 3:16:18
root
0755
php5.6
4.32 MB
September 02 2023 9:57:07
root
0755
php7.4
4.58 MB
September 02 2023 10:03:15
root
0755
php8.0
4.77 MB
September 02 2023 10:04:32
root
0755
php8.1
5.31 MB
December 21 2023 9:19:26
root
0755
php8.2
5.43 MB
January 20 2024 3:16:39
root
0755
php8.3
5.51 MB
January 20 2024 3:16:18
root
0755
pic
216.344 KB
March 21 2020 1:27:30
root
0755
pico
312.633 KB
April 10 2020 4:12:30
root
0755
piconv
8.161 KB
November 23 2023 4:02:19
root
0755
pinentry
66.641 KB
March 22 2020 4:54:08
root
0755
pinentry-curses
66.641 KB
March 22 2020 4:54:08
root
0755
pinky
42.367 KB
September 05 2019 12:38:40
root
0755
pkaction
18.305 KB
February 21 2022 1:58:33
root
0755
pkcheck
22.375 KB
February 21 2022 1:58:33
root
0755
pkcon
74.305 KB
September 23 2020 12:55:22
root
0755
pkexec
30.305 KB
February 21 2022 1:58:33
root
4755
pkill
30.242 KB
October 31 2023 12:35:56
root
0755
pkmon
22.305 KB
September 23 2020 12:55:22
root
0755
pkttyagent
18.305 KB
February 21 2022 1:58:33
root
0755
pl2pm
4.427 KB
November 23 2023 4:02:19
root
0755
pldd
22.367 KB
November 22 2023 2:32:50
root
0755
pmap
34.242 KB
October 31 2023 12:35:56
root
0755
pod2html
4.037 KB
November 23 2023 4:02:19
root
0755
pod2man
14.682 KB
November 23 2023 4:02:19
root
0755
pod2text
10.55 KB
November 23 2023 4:02:19
root
0755
pod2usage
3.855 KB
November 23 2023 4:02:19
root
0755
podchecker
3.572 KB
November 23 2023 4:02:19
root
0755
podselect
2.468 KB
November 23 2023 4:02:19
root
0755
postgreyreport
23.784 KB
May 09 2019 1:35:38
root
0755
pphs
0.395 KB
October 12 2023 3:06:46
root
0755
pr
74.43 KB
September 05 2019 12:38:40
root
0755
precat
5.523 KB
July 22 2021 8:20:06
root
0755
preconv
66.508 KB
March 21 2020 1:27:30
root
0755
preunzip
5.523 KB
July 22 2021 8:20:06
root
0755
prezip
5.523 KB
July 22 2021 8:20:06
root
0755
prezip-bin
14.297 KB
July 22 2021 8:20:06
root
0755
print
18.054 KB
October 19 2019 1:05:50
root
0755
printafm
0.386 KB
October 12 2023 3:06:46
root
0755
printenv
38.336 KB
September 05 2019 12:38:40
root
0755
printerbanner
22.148 KB
March 30 2020 11:26:14
root
0755
printf
58.336 KB
September 05 2019 12:38:40
root
0755
prlimit
38.742 KB
May 30 2023 5:42:35
root
0755
pro
0.432 KB
November 07 2023 3:23:40
root
0755
procmail
94.383 KB
November 16 2017 11:42:36
root
6755
procmail-wrapper
1.35 MB
January 26 2022 8:09:58
root
4755
proj
26.164 KB
February 13 2020 4:29:49
root
0755
projinfo
86.32 KB
February 13 2020 4:29:49
root
0755
prove
13.335 KB
November 23 2023 4:02:19
root
0755
prtstat
22.227 KB
November 12 2019 12:16:21
root
0755
ps2ascii
0.616 KB
October 12 2023 3:06:46
root
0755
ps2epsi
2.688 KB
October 12 2023 3:06:46
root
0755
ps2pdf
0.266 KB
October 12 2023 3:06:46
root
0755
ps2pdf12
0.21 KB
October 12 2023 3:06:46
root
0755
ps2pdf13
0.21 KB
October 12 2023 3:06:46
root
0755
ps2pdf14
0.21 KB
October 12 2023 3:06:46
root
0755
ps2pdfwr
1.053 KB
October 12 2023 3:06:46
root
0755
ps2ps
0.632 KB
October 12 2023 3:06:46
root
0755
ps2ps2
0.653 KB
October 12 2023 3:06:46
root
0755
ps2txt
0.616 KB
October 12 2023 3:06:46
root
0755
psfaddtable
21.992 KB
May 09 2019 5:22:51
root
0755
psfgettable
21.992 KB
May 09 2019 5:22:51
root
0755
psfstriptable
21.992 KB
May 09 2019 5:22:51
root
0755
psfxtable
21.992 KB
May 09 2019 5:22:51
root
0755
pslog
14.148 KB
November 12 2019 12:16:21
root
0755
pstree
35.164 KB
November 12 2019 12:16:21
root
0755
pstree.x11
35.164 KB
November 12 2019 12:16:21
root
0755
ptar
3.466 KB
November 23 2023 4:02:19
root
0755
ptardiff
2.566 KB
November 23 2023 4:02:19
root
0755
ptargrep
4.289 KB
November 23 2023 4:02:19
root
0755
ptx
78.398 KB
September 05 2019 12:38:40
root
0755
pwdx
14.227 KB
October 31 2023 12:35:56
root
0755
py3clean
7.63 KB
March 13 2020 1:20:20
root
0755
py3compile
11.836 KB
March 13 2020 1:20:20
root
0755
py3versions
11.442 KB
March 13 2020 1:20:20
root
0755
pydoc3
0.077 KB
November 22 2023 11:22:35
root
0755
pydoc3.8
0.077 KB
November 22 2023 11:22:35
root
0755
pygettext3
21.03 KB
November 22 2023 11:22:35
root
0755
pygettext3.8
21.03 KB
November 22 2023 11:22:35
root
0755
python3
5.21 MB
November 22 2023 11:22:35
root
0755
python3-futurize
0.375 KB
January 25 2023 9:33:14
root
0755
python3-pasteurize
0.379 KB
January 25 2023 9:33:14
root
0755
python3-pbr
0.148 KB
April 09 2020 9:32:59
root
0755
python3.8
5.21 MB
November 22 2023 11:22:35
root
0755
quota
95.406 KB
April 09 2019 10:12:04
root
0755
quotasync
70.719 KB
April 09 2019 10:12:04
root
0755
racc2.7
0.572 KB
July 06 2023 12:57:08
root
0755
racc2y2.7
0.576 KB
July 06 2023 12:57:08
root
0755
rake
0.498 KB
April 01 2020 9:46:04
root
0755
ranlib
66.461 KB
January 02 2024 4:48:50
root
0755
rcp
114.297 KB
January 02 2024 6:13:02
root
0755
rdma
130.234 KB
February 13 2020 6:21:59
root
0755
rdoc
0.501 KB
July 06 2023 12:57:08
root
0755
rdoc2.7
0.501 KB
July 06 2023 12:57:08
root
0755
re2c
526.398 KB
April 27 2020 2:48:36
root
0755
readelf
642.93 KB
January 02 2024 4:48:50
root
0755
realpath
50.367 KB
September 05 2019 12:38:40
root
0755
rename.ul
22.227 KB
May 30 2023 5:42:35
root
0755
rendercheck
59.953 KB
February 29 2020 12:10:29
root
0755
renice
14.227 KB
May 30 2023 5:42:35
root
0755
reset
30.313 KB
May 16 2023 8:47:48
root
0755
resizecons
22.133 KB
May 09 2019 5:22:51
root
0755
resizepart
62.227 KB
May 30 2023 5:42:35
root
0755
resolvectl
126.375 KB
November 21 2023 10:10:21
root
0755
rev
14.227 KB
May 30 2023 5:42:35
root
0755
rgrep
0.029 KB
January 16 2020 4:27:20
root
0755
ri
0.497 KB
July 06 2023 12:57:08
root
0755
ri2.7
0.497 KB
July 06 2023 12:57:08
root
0755
rlogin
774.945 KB
January 02 2024 6:13:02
root
0755
rmail
18.148 KB
January 29 2024 9:49:03
root
0755
rotatelogs
26.227 KB
October 26 2023 3:54:09
root
0755
routef
0.203 KB
February 13 2020 6:21:59
root
0755
routel
1.617 KB
February 13 2020 6:21:59
root
0755
rpcgen
98.688 KB
November 22 2023 2:32:50
root
0755
rrsync
7.069 KB
September 14 2015 1:23:54
root
0755
rsh
774.945 KB
January 02 2024 6:13:02
root
0755
rstart
2.549 KB
February 29 2020 7:08:03
root
0755
rstartd
1.435 KB
February 29 2020 7:08:03
root
0755
rsync
500.805 KB
September 01 2023 8:38:04
root
0755
rtstat
30.508 KB
February 13 2020 6:21:59
root
0755
ruby
14.148 KB
July 06 2023 12:57:08
root
0755
ruby2.7
14.148 KB
July 06 2023 12:57:08
root
0755
run-mailcap
18.054 KB
October 19 2019 1:05:50
root
0755
run-with-aspell
0.056 KB
July 22 2021 8:20:06
root
0755
runcon
38.336 KB
September 05 2019 12:38:40
root
0755
rview
1.29 MB
December 07 2023 4:42:49
root
0755
sa-awl
4.872 KB
March 24 2023 5:36:49
root
0755
sa-check_spamd
14.617 KB
March 24 2023 5:36:49
root
0755
sa-compile
21.851 KB
March 24 2023 5:36:49
root
0755
sa-learn
44.788 KB
March 24 2023 5:36:49
root
0755
sa-update
72.544 KB
March 24 2023 5:36:49
root
0755
sasl-sample-client
26.469 KB
February 15 2022 9:03:43
root
0755
saslfinger
8.619 KB
February 15 2022 9:03:43
root
0755
savelog
10.235 KB
December 07 2019 3:13:44
root
0755
scp
114.297 KB
January 02 2024 6:13:02
root
0755
screen
463.164 KB
February 23 2021 6:46:21
root
0755
screendump
13.992 KB
May 09 2019 5:22:51
root
0755
script
54.227 KB
May 30 2023 5:42:35
root
0755
scriptreplay
30.227 KB
May 30 2023 5:42:35
root
0755
sdiff
50.094 KB
April 08 2019 2:04:00
root
0755
see
18.054 KB
October 19 2019 1:05:50
root
0755
select-default-iwrap
0.463 KB
November 15 2018 4:24:46
root
0755
select-editor
2.385 KB
November 17 2019 1:21:22
root
0755
sensible-browser
1.201 KB
November 17 2019 1:21:22
root
0755
sensible-editor
1.142 KB
November 17 2019 1:21:22
root
0755
sensible-pager
0.441 KB
November 17 2019 1:21:22
root
0755
sensors
30.5 KB
March 31 2022 10:52:36
root
0755
sensors-conf-convert
13.698 KB
March 31 2022 10:52:36
root
0755
seq
50.336 KB
September 05 2019 12:38:40
root
0755
sessreg
13.992 KB
March 18 2018 11:19:30
root
0755
setarch
26.5 KB
May 30 2023 5:42:35
root
0755
setkeycodes
14.07 KB
May 09 2019 5:22:51
root
0755
setleds
14.055 KB
May 09 2019 5:22:51
root
0755
setlogcons
14.07 KB
May 09 2019 5:22:51
root
0755
setmetamode
14.102 KB
May 09 2019 5:22:51
root
0755
setpci
30.234 KB
April 01 2021 12:55:11
root
0755
setpriv
46.234 KB
May 30 2023 5:42:35
root
0755
setsid
14.227 KB
May 30 2023 5:42:35
root
0755
setterm
46.227 KB
May 30 2023 5:42:35
root
0755
setxkbmap
30.703 KB
February 28 2020 9:13:02
root
0755
sftp
166.508 KB
January 02 2024 6:13:02
root
0755
sg
43.734 KB
November 29 2022 12:53:10
root
4755
sha1sum
50.367 KB
September 05 2019 12:38:40
root
0755
sha224sum
58.367 KB
September 05 2019 12:38:40
root
0755
sha256sum
58.367 KB
September 05 2019 12:38:40
root
0755
sha384sum
66.367 KB
September 05 2019 12:38:40
root
0755
sha512sum
66.367 KB
September 05 2019 12:38:40
root
0755
shasum
9.742 KB
November 23 2023 4:02:19
root
0755
showconsolefont
18.07 KB
May 09 2019 5:22:51
root
0755
showkey
18.07 KB
May 09 2019 5:22:51
root
0755
showrgb
9.992 KB
March 18 2018 11:19:30
root
0755
shred
62.367 KB
September 05 2019 12:38:40
root
0755
shuf
58.336 KB
September 05 2019 12:38:40
root
0755
size
34.453 KB
January 02 2024 4:48:50
root
0755
skill
30.227 KB
October 31 2023 12:35:56
root
0755
slabtop
22.234 KB
October 31 2023 12:35:56
root
0755
slogin
774.945 KB
January 02 2024 6:13:02
root
0755
smproxy
26.313 KB
February 29 2020 7:08:03
root
0755
snice
30.227 KB
October 31 2023 12:35:56
root
0755
soelim
46.508 KB
March 21 2020 1:27:30
root
0755
sort
114.625 KB
September 05 2019 12:38:40
root
0755
sotruss
4.209 KB
November 22 2023 2:32:50
root
0755
spamalyze
5.514 KB
July 15 2016 4:10:30
root
0755
spamassassin
29.197 KB
March 24 2023 5:36:49
root
0755
spamc
47.141 KB
March 24 2023 5:36:49
root
0755
spinner
2.381 KB
August 22 2017 11:23:46
root
0755
splain
18.701 KB
November 23 2023 4:02:19
root
0755
split
58.773 KB
September 05 2019 12:38:40
root
0755
splitfont
13.992 KB
May 09 2019 5:22:51
root
0755
sprof
34.367 KB
November 22 2023 2:32:50
root
0755
ssh
774.945 KB
January 02 2024 6:13:02
root
0755
ssh-add
362.281 KB
January 02 2024 6:13:02
root
0755
ssh-agent
342.289 KB
January 02 2024 6:13:02
root
2755
ssh-argv0
1.421 KB
April 04 2023 12:47:13
root
0755
ssh-copy-id
10.408 KB
February 14 2020 1:40:54
root
0755
ssh-keygen
466.297 KB
January 02 2024 6:13:02
root
0755
ssh-keyscan
454.305 KB
January 02 2024 6:13:02
root
0755
startx
5.39 KB
August 24 2019 11:28:16
root
0755
stat
86.367 KB
September 05 2019 12:38:40
root
0755
stdbuf
50.336 KB
September 05 2019 12:38:40
root
0755
stl2gts
14.039 KB
February 03 2017 11:04:42
root
0755
strace
1.51 MB
April 17 2020 12:23:25
root
0755
strace-log-merge
1.778 KB
March 18 2019 8:06:47
root
0755
strings
34.656 KB
January 02 2024 4:48:50
root
0755
strip
182.477 KB
January 02 2024 4:48:50
root
0755
sudo
162.164 KB
April 04 2023 1:56:28
root
4755
sudoedit
162.164 KB
April 04 2023 1:56:28
root
4755
sudoreplay
63 KB
April 04 2023 1:56:28
root
0755
sum
46.344 KB
September 05 2019 12:38:40
root
0755
symcryptrun
123.031 KB
July 04 2022 6:20:36
root
0755
systemd-analyze
1.51 MB
November 21 2023 10:10:21
root
0755
systemd-cat
18.227 KB
November 21 2023 10:10:21
root
0755
systemd-cgls
22.328 KB
November 21 2023 10:10:21
root
0755
systemd-cgtop
38.242 KB
November 21 2023 10:10:21
root
0755
systemd-delta
26.219 KB
November 21 2023 10:10:21
root
0755
systemd-detect-virt
18.219 KB
November 21 2023 10:10:21
root
0755
systemd-id128
22.219 KB
November 21 2023 10:10:21
root
0755
systemd-mount
50.453 KB
November 21 2023 10:10:21
root
0755
systemd-path
18.219 KB
November 21 2023 10:10:21
root
0755
systemd-resolve
126.375 KB
November 21 2023 10:10:21
root
0755
systemd-run
58.422 KB
November 21 2023 10:10:21
root
0755
systemd-socket-activate
26.219 KB
November 21 2023 10:10:21
root
0755
systemd-stdio-bridge
22.227 KB
November 21 2023 10:10:21
root
0755
systemd-umount
50.453 KB
November 21 2023 10:10:21
root
0755
tabs
18.305 KB
May 16 2023 8:47:48
root
0755
tac
42.336 KB
September 05 2019 12:38:40
root
0755
tail
70.398 KB
September 05 2019 12:38:40
root
0755
taskset
34.227 KB
May 30 2023 5:42:35
root
0755
tbl
138.508 KB
March 21 2020 1:27:30
root
0755
tee
42.367 KB
September 05 2019 12:38:40
root
0755
telnet
112.672 KB
March 23 2020 7:20:39
root
0755
telnet.netkit
112.672 KB
March 23 2020 7:20:39
root
0755
test
54.336 KB
September 05 2019 12:38:40
root
0755
tic
90.414 KB
May 16 2023 8:47:48
root
0755
time
14.375 KB
April 21 2017 10:57:03
root
0755
timedatectl
46.219 KB
November 21 2023 10:10:21
root
0755
timeout
42.773 KB
September 05 2019 12:38:40
root
0755
tload
22.242 KB
October 31 2023 12:35:56
root
0755
toe
22.305 KB
May 16 2023 8:47:48
root
0755
top
126.047 KB
October 31 2023 12:35:56
root
0755
touch
98.367 KB
September 05 2019 12:38:40
root
0755
tput
26.336 KB
May 16 2023 8:47:48
root
0755
tr
50.336 KB
September 05 2019 12:38:40
root
0755
tracepath
18.148 KB
September 13 2022 9:06:15
root
0755
traceroute6
26.148 KB
September 13 2022 9:06:15
root
0755
traceroute6.iputils
26.148 KB
September 13 2022 9:06:15
root
0755
transform
14.352 KB
February 03 2017 11:04:42
root
0755
transset
22.789 KB
February 29 2020 12:10:29
root
0755
troff
735.906 KB
March 21 2020 1:27:30
root
0755
truncate
42.336 KB
September 05 2019 12:38:40
root
0755
tset
30.313 KB
May 16 2023 8:47:48
root
0755
tsort
42.336 KB
September 05 2019 12:38:40
root
0755
tty
38.336 KB
September 05 2019 12:38:40
root
0755
tzselect
15.019 KB
November 22 2023 2:32:50
root
0755
ua
0.432 KB
November 07 2023 3:23:40
root
0755
ubuntu-advantage
0.432 KB
November 07 2023 3:23:40
root
0755
ubuntu-distro-info
22.891 KB
April 25 2023 3:57:38
root
0755
ubuntu-security-status
22.249 KB
November 15 2023 11:28:54
root
0755
ucf
39.731 KB
December 14 2018 9:51:14
root
0755
ucfq
18.913 KB
December 14 2018 9:51:14
root
0755
ucfr
10.471 KB
December 14 2018 9:51:14
root
0755
ul
18.164 KB
March 30 2020 11:26:14
root
0755
unattended-upgrade
96.985 KB
May 19 2022 7:38:48
root
0755
unattended-upgrades
96.985 KB
May 19 2022 7:38:48
root
0755
unexpand
42.367 KB
September 05 2019 12:38:40
root
0755
unicode_stop
0.518 KB
May 09 2019 5:22:51
root
0755
uniq
50.367 KB
September 05 2019 12:38:40
root
0755
unlink
38.336 KB
September 05 2019 12:38:40
root
0755
unlzma
78.5 KB
April 08 2022 2:56:10
root
0755
unrar
376.875 KB
March 22 2020 5:01:42
root
0755
unrar-nonfree
376.875 KB
March 22 2020 5:01:42
root
0755
unshare
42.43 KB
May 30 2023 5:42:35
root
0755
unxz
78.5 KB
April 08 2022 2:56:10
root
0755
unzip
182.289 KB
October 07 2022 7:09:47
root
0755
unzipsfx
82.273 KB
October 07 2022 7:09:47
root
0755
update-alternatives
54.406 KB
May 25 2022 1:14:20
root
0755
update-mime-database
58.367 KB
March 24 2020 4:58:21
root
0755
uptime
14.227 KB
October 31 2023 12:35:56
root
0755
usb-devices
4.004 KB
October 01 2019 11:03:11
root
0755
usbhid-dump
30.383 KB
October 01 2019 11:03:11
root
0755
usbreset
14.297 KB
October 01 2019 11:03:11
root
0755
users
38.336 KB
September 05 2019 12:38:40
root
0755
utmpdump
30.227 KB
May 30 2023 5:42:35
root
0755
uuidgen
14.227 KB
May 30 2023 5:42:35
root
0755
uuidparse
38.227 KB
May 30 2023 5:42:35
root
0755
vi
1.29 MB
December 07 2023 4:42:49
root
0755
view
1.29 MB
December 07 2023 4:42:49
root
0755
viewres
31.266 KB
February 29 2020 7:29:50
root
0755
vim.tiny
1.29 MB
December 07 2023 4:42:49
root
0755
virtualmin-config-system
3.221 KB
August 01 2020 12:21:33
root
0755
vmstat
38.25 KB
October 31 2023 12:35:56
root
0755
volname
14.148 KB
July 08 2019 10:40:51
root
0755
w
22.227 KB
October 31 2023 12:35:56
root
0755
w.procps
22.227 KB
October 31 2023 12:35:56
root
0755
wall
34.227 KB
May 30 2023 5:42:35
root
2755
watch
26.57 KB
October 31 2023 12:35:56
root
0755
watchgnupg
18.305 KB
July 04 2022 6:20:36
root
0755
wc
46.344 KB
September 05 2019 12:38:40
root
0755
wcmgr
30.039 KB
October 15 2018 5:03:02
root
0755
webalizer
220.195 KB
October 15 2018 5:03:02
root
0755
webazolver
220.195 KB
October 15 2018 5:03:02
root
0755
webmin
15.095 KB
November 08 2023 4:49:09
root
0755
wget
531.711 KB
November 12 2021 6:09:16
root
0755
whatis
55.211 KB
February 25 2020 6:13:45
root
0755
whereis
34.664 KB
May 30 2023 5:42:35
root
0755
which
0.924 KB
December 07 2019 3:13:44
root
0755
whiptail
34.164 KB
February 18 2020 10:21:04
root
0755
who
58.367 KB
September 05 2019 12:38:40
root
0755
whoami
38.336 KB
September 05 2019 12:38:40
root
0755
whois
156.719 KB
February 16 2020 10:25:51
root
0755
word-list-compress
14.297 KB
July 22 2021 8:20:06
root
0755
write
14.148 KB
March 30 2020 11:26:14
root
2755
www-browser
1.85 MB
February 28 2020 3:28:01
root
0755
x-www-browser
2.604 KB
February 06 2024 2:59:08
root
0755
x11perf
197.461 KB
February 29 2020 12:10:29
root
0755
x11perfcomp
2.741 KB
February 29 2020 12:10:29
root
0755
x86_64
26.5 KB
May 30 2023 5:42:35
root
0755
x86_64-linux-gnu-addr2line
34.703 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-ar
66.43 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-as
680.297 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-c++filt
30.266 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-cpp
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-cpp-9
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-dwp
1.95 MB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-elfedit
42.672 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-g++
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-g++-9
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-9
1.1 MB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-ar
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-ar-9
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-nm
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-nm-9
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-ranlib
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcc-ranlib-9
34.633 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov
656.234 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov-9
656.234 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov-dump
528.133 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov-dump-9
528.133 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov-tool
544.195 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gcov-tool-9
544.195 KB
October 24 2022 11:28:06
root
0755
x86_64-linux-gnu-gold
2.21 MB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-gprof
99.883 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-ld
1.66 MB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-ld.bfd
1.66 MB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-ld.gold
2.21 MB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-nm
51.43 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-objcopy
182.477 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-objdump
392.828 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-ranlib
66.461 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-readelf
642.93 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-size
34.453 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-strings
34.656 KB
January 02 2024 4:48:50
root
0755
x86_64-linux-gnu-strip
182.477 KB
January 02 2024 4:48:50
root
0755
xargs
74.367 KB
February 18 2020 2:05:59
root
0755
xauth
54.969 KB
August 25 2019 11:09:53
root
0755
xbiff
24.188 KB
February 29 2020 12:10:29
root
0755
xcalc
47.484 KB
February 29 2020 12:10:29
root
0755
xclipboard
26.656 KB
February 29 2020 12:10:29
root
0755
xclock
65.141 KB
February 29 2020 12:10:29
root
0755
xcmsdb
30.742 KB
March 18 2018 11:19:30
root
0755
xconsole
27.281 KB
February 29 2020 12:10:29
root
0755
xcursorgen
22.297 KB
February 29 2020 12:10:29
root
0755
xcutsel
22.641 KB
February 29 2020 12:10:29
root
0755
xdg-user-dir
0.229 KB
January 24 2019 3:37:01
root
0755
xdg-user-dirs-update
26.07 KB
January 24 2019 3:37:01
root
0755
xditview
108.141 KB
February 29 2020 12:10:29
root
0755
xdpyinfo
43.07 KB
February 29 2020 7:29:50
root
0755
xdriinfo
14.305 KB
February 29 2020 7:29:50
root
0755
xedit
673.352 KB
February 29 2020 12:10:29
root
0755
xev
34.656 KB
February 29 2020 7:29:50
root
0755
xeyes
31.797 KB
February 29 2020 12:10:29
root
0755
xfd
40.063 KB
February 29 2020 7:29:50
root
0755
xfontsel
47.906 KB
February 29 2020 7:29:50
root
0755
xgamma
9.992 KB
March 18 2018 11:19:30
root
0755
xgc
78.422 KB
February 29 2020 12:10:29
root
0755
xhost
13.992 KB
March 18 2018 11:19:30
root
0755
xinit
22.328 KB
August 24 2019 11:28:16
root
0755
xkbbell
14.32 KB
February 28 2020 9:13:02
root
0755
xkbcomp
212.094 KB
February 28 2020 9:13:02
root
0755
xkbevd
42.391 KB
February 28 2020 9:13:02
root
0755
xkbprint
94.344 KB
February 28 2020 9:13:02
root
0755
xkbvleds
23.086 KB
February 28 2020 9:13:02
root
0755
xkbwatch
23.18 KB
February 28 2020 9:13:02
root
0755
xkeystone
16.584 KB
March 18 2018 11:19:30
root
0755
xkill
14.305 KB
February 29 2020 7:29:50
root
0755
xload
27 KB
February 29 2020 12:10:29
root
0755
xlogo
27.266 KB
February 29 2020 12:10:29
root
0755
xlsatoms
14.305 KB
February 29 2020 7:29:50
root
0755
xlsclients
18.313 KB
February 29 2020 7:29:50
root
0755
xlsfonts
26.398 KB
February 29 2020 7:29:50
root
0755
xmag
48.422 KB
February 29 2020 12:10:29
root
0755
xman
81.203 KB
February 29 2020 12:10:29
root
0755
xmessage
27.188 KB
February 29 2020 7:29:50
root
0755
xmodmap
34.336 KB
March 18 2018 11:19:30
root
0755
xmore
18.578 KB
February 29 2020 12:10:29
root
0755
xprop
48.602 KB
February 29 2020 7:29:50
root
0755
xrandr
62.086 KB
March 18 2018 11:19:30
root
0755
xrdb
30.086 KB
March 18 2018 11:19:30
root
0755
xrefresh
10.07 KB
March 18 2018 11:19:30
root
0755
xset
29.992 KB
March 18 2018 11:19:30
root
0755
xsetmode
9.992 KB
March 18 2018 11:19:30
root
0755
xsetpointer
9.992 KB
March 18 2018 11:19:30
root
0755
xsetroot
18 KB
March 18 2018 11:19:30
root
0755
xsm
102.766 KB
February 29 2020 7:08:03
root
0755
xstdcmap
14.57 KB
March 18 2018 11:19:30
root
0755
xsubpp
5.043 KB
November 23 2023 4:02:19
root
0755
xvidtune
39.414 KB
March 18 2018 11:19:30
root
0755
xvinfo
18.305 KB
February 29 2020 7:29:50
root
0755
xwd
38.313 KB
February 29 2020 12:10:29
root
0755
xwininfo
50.383 KB
February 29 2020 7:29:50
root
0755
xwud
34.297 KB
February 29 2020 12:10:29
root
0755
xxd
18.273 KB
December 07 2023 4:42:49
root
0755
xz
78.5 KB
April 08 2022 2:56:10
root
0755
xzcat
78.5 KB
April 08 2022 2:56:10
root
0755
xzcmp
6.477 KB
April 08 2022 2:56:10
root
0755
xzdiff
6.477 KB
April 08 2022 2:56:10
root
0755
xzegrep
5.764 KB
April 08 2022 2:56:10
root
0755
xzfgrep
5.764 KB
April 08 2022 2:56:10
root
0755
xzgrep
5.764 KB
April 08 2022 2:56:10
root
0755
xzless
1.76 KB
April 08 2022 2:56:10
root
0755
xzmore
2.11 KB
April 08 2022 2:56:10
root
0755
y2racc2.7
0.576 KB
July 06 2023 12:57:08
root
0755
yes
38.336 KB
September 05 2019 12:38:40
root
0755
zabbix_sender
269.063 KB
February 04 2020 5:03:41
root
0755
zdump
26.211 KB
November 22 2023 2:32:50
root
0755
zip
211.188 KB
April 21 2017 11:02:44
root
0755
zipcloak
91.617 KB
April 21 2017 11:02:44
root
0755
zipdetails
49.529 KB
November 23 2023 4:02:19
root
0755
zipgrep
2.884 KB
October 07 2022 7:09:47
root
0755
zipinfo
182.289 KB
October 07 2022 7:09:47
root
0755
zipnote
87.391 KB
April 21 2017 11:02:44
root
0755
zipsplit
91.391 KB
April 21 2017 11:02:44
root
0755

NineSec Team - 2022